/*
Theme Name: PSD Window Clean
Theme URI: https://psdwindowcleaning.com
Description: Custom Astra child theme for PSD Window Clean.
Author: Arrow Development
Author URI: https://arrowdevelopment.co.uk
Template: astra
Version: 1.0.0
Text Domain: psd-window-clean
*/

:root{
	--psd-blue: #1B4CA6;
	--psd-blue-dark: #0F2E6E;
	--psd-blue-light: #E8EFFB;
	--psd-red: #E31C2E;
	--psd-red-dark: #B8121F;
	--psd-white: #FFFFFF;
	--psd-off-white: #F5F7FB;
	--psd-ink: #17202E;
	--psd-grey: #5B6472;
	--psd-border: #E3E7EF;
	--psd-radius: 14px;
	--psd-shadow: 0 12px 30px rgba(15, 46, 110, 0.10);
	--psd-shadow-sm: 0 4px 14px rgba(15, 46, 110, 0.08);
	--font-head: 'Poppins', sans-serif;
	--font-body: 'Inter', sans-serif;
}

html{ scroll-behavior:smooth; }

body{
	font-family: var(--font-body);
	color: var(--psd-ink);
	background:var(--psd-white);
}

h1,h2,h3,h4,h5,h6,
.psd-h1,.psd-h2,.psd-h3{
	font-family: var(--font-head);
	font-weight:800;
	color: var(--psd-blue-dark);
	line-height:1.15;
	letter-spacing:-0.01em;
}

a{ color: var(--psd-blue); }
a:hover{ color: var(--psd-red); }

.screen-reader-text{ position:absolute !important; clip:rect(1px,1px,1px,1px); overflow:hidden; height:1px; width:1px; word-wrap:normal; }
.psd-skip-link{ position:fixed; top:-60px; left:12px; z-index:9999; background:var(--psd-blue-dark); color:#fff !important; padding:10px 18px; border-radius:8px; transition:top .15s ease; }
.psd-skip-link:focus{ position:fixed; top:12px; width:auto; height:auto; clip:auto; }
.psd-no-scroll{ overflow:hidden; }

/* ---------- Top bar ---------- */
.psd-topbar{ background:var(--psd-blue-dark); color:rgba(255,255,255,.9); }
.psd-wrap.psd-topbar__inner{
	display:flex; align-items:center; justify-content:space-between; gap:24px;
	padding-top:13px; padding-bottom:13px; font-size:13px;
}
.psd-topbar__left, .psd-topbar__right{ display:flex; align-items:center; gap:0; }
.psd-topbar a, .psd-topbar span{ font-weight:500; }
.psd-topbar a{ color:rgba(255,255,255,.9); text-decoration:none; display:inline-flex; align-items:center; gap:7px; }
.psd-topbar a:hover{ color:#fff; }
.psd-topbar__right span{ display:inline-flex; align-items:center; gap:7px; }
.psd-topbar svg{ opacity:.85; flex:none; color:var(--psd-red); }
.psd-topbar__left > *:not(:first-child),
.psd-topbar__right > *:not(:first-child){ position:relative; padding-left:22px; }
.psd-topbar__left > *:not(:first-child)::before,
.psd-topbar__right > *:not(:first-child)::before{
	content:""; position:absolute; left:0; top:50%; transform:translateY(-50%);
	width:3px; height:3px; border-radius:50%; background:rgba(255,255,255,.35);
}

@media (max-width:780px){
	.psd-topbar__right{ display:none; }
	.psd-topbar__left{ gap:16px; }
	.psd-topbar__inner{ font-size:12px; }
}
@media (max-width:560px){
	.psd-topbar__left{ gap:14px; width:100%; justify-content:space-between; }
	.psd-topbar__left > *:not(:first-child){ padding-left:0; }
	.psd-topbar__left > *:not(:first-child)::before{ display:none; }
	.psd-topbar__left a span{ display:none; }
	.psd-topbar svg{ width:17px; height:17px; }
}

/* ---------- Custom header ---------- */
.psd-site-header{
	position:sticky; top:0; z-index:500;
	background:var(--psd-white);
	border-bottom:3px solid var(--psd-red);
	box-shadow:0 2px 12px rgba(15,46,110,.05);
}
.psd-site-header.is-scrolled{ box-shadow:0 6px 20px rgba(15,46,110,.1); }
.psd-wrap.psd-site-header__inner{
	display:flex; align-items:center; justify-content:space-between; gap:32px;
	padding-top:16px; padding-bottom:16px;
}
.psd-logo{ display:flex; align-items:center; gap:20px; flex:none; }
.psd-logo img{ display:block; max-height:60px; width:auto; }
.psd-logo__text{ font-family:var(--font-head); font-weight:800; font-size:clamp(22px,2vw,30px); color:var(--psd-blue-dark); letter-spacing:-0.01em; white-space:nowrap; }
.psd-logo__accent{ color:var(--psd-red); }

.psd-nav{ flex:1; display:flex; justify-content:flex-end; }
.psd-nav__list{ display:flex; align-items:center; gap:clamp(20px,2.2vw,38px); list-style:none; margin:0; padding:0; }
.psd-nav__list a{
	font-family:var(--font-head); font-weight:600; font-size:15px; text-transform:uppercase; letter-spacing:.02em;
	color:var(--psd-ink); text-decoration:none; padding:8px 0; position:relative; white-space:nowrap;
}
.psd-nav__list a::after{
	content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--psd-red);
	transition:right .18s ease;
}
.psd-nav__list a:hover, .psd-nav__list .current-menu-item > a{ color:var(--psd-red); }
.psd-nav__list a:hover::after, .psd-nav__list .current-menu-item > a::after{ right:0; }

.psd-header-actions{ display:flex; align-items:center; gap:18px; flex:none; }
.psd-header-cta{
	display:inline-flex; align-items:center; gap:9px;
	background:var(--psd-red); color:var(--psd-white) !important;
	font-family:var(--font-head); font-weight:700; text-transform:uppercase;
	padding:18px 34px; border-radius:999px; font-size:16px; letter-spacing:.03em;
	box-shadow:var(--psd-shadow-sm); transition:transform .15s ease, background .15s ease;
	text-decoration:none;
}
.psd-header-cta:hover{ background:var(--psd-red-dark); color:var(--psd-white) !important; transform:translateY(-1px); }

.psd-nav-toggle{
	display:none; flex-direction:column; justify-content:center; gap:5px;
	width:46px; height:46px; border-radius:10px; border:1px solid var(--psd-border);
	background:var(--psd-white); cursor:pointer; padding:0;
}
.psd-nav-toggle span{ display:block; width:20px; height:2px; margin:0 auto; background:var(--psd-blue-dark); transition:transform .2s ease, opacity .2s ease; }
.is-nav-open .psd-nav-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.is-nav-open .psd-nav-toggle span:nth-child(2){ opacity:0; }
.is-nav-open .psd-nav-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.psd-mobile-nav{
	display:none; flex-direction:column; gap:4px;
	padding:12px 24px 24px; border-top:1px solid var(--psd-border);
}
.psd-mobile-nav__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.psd-mobile-nav__list a{
	display:block; padding:13px 4px; font-family:var(--font-head); font-weight:600; text-transform:uppercase;
	font-size:14px; letter-spacing:.02em; color:var(--psd-ink); text-decoration:none; border-bottom:1px dashed var(--psd-border);
}
.psd-mobile-nav__list a:hover{ color:var(--psd-red); }
.psd-mobile-nav .psd-btn{ margin-top:16px; justify-content:center; }
.is-nav-open .psd-mobile-nav{ display:flex; }

@media (max-width:1000px){
	.psd-nav{ display:none; }
	.psd-header-cta span{ display:none; }
	.psd-header-cta{ padding:13px; }
	.psd-nav-toggle{ display:flex; }
}

/* ---------- Layout helpers ---------- */
.psd-wrap{ max-width:1180px; margin:0 auto; padding:0 24px; }
.psd-2col-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
@media (max-width:780px){
	.psd-2col-grid{ grid-template-columns:1fr; gap:32px; }
}
.psd-photo-frame{ border-radius:var(--psd-radius); overflow:hidden; box-shadow:var(--psd-shadow); }
.psd-photo-frame img{ display:block; width:100%; height:100%; object-fit:cover; }
.psd-video-frame{
	aspect-ratio:1/1; max-width:480px; margin:0 auto; border-radius:var(--psd-radius);
	overflow:hidden; box-shadow:var(--psd-shadow); background:#000;
}
.psd-video-frame video{ display:block; width:100%; height:100%; object-fit:cover; }
.psd-section{ padding:88px 0; }
.psd-section--tight{ padding:56px 0; }
.psd-section--off{ background:var(--psd-off-white); }
.psd-section--blue{ background:var(--psd-blue-dark); color:var(--psd-white); }
.psd-section--blue h2,.psd-section--blue h3{ color:var(--psd-white); }
.psd-eyebrow{
	display:inline-block;
	font-family:var(--font-head);
	font-weight:700;
	font-size:12px;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:var(--psd-red);
	background:var(--psd-blue-light);
	padding:6px 14px;
	border-radius:999px;
	margin-bottom:16px;
}
.psd-section--blue .psd-eyebrow{ background:rgba(255,255,255,.12); color:#fff; }
.psd-lede{ font-size:18px; color:var(--psd-grey); max-width:640px; }
.psd-section--blue .psd-lede{ color:rgba(255,255,255,.82); }
.psd-center{ text-align:center; margin-left:auto; margin-right:auto; }

.psd-btn{
	display:inline-flex;
	align-items:center;
	gap:10px;
	font-family:var(--font-head);
	font-weight:700;
	text-transform:uppercase;
	font-size:14px;
	letter-spacing:.03em;
	padding:15px 32px;
	border-radius:999px;
	transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.psd-btn--primary{ background:var(--psd-red); color:var(--psd-white) !important; box-shadow:var(--psd-shadow-sm); }
.psd-btn--primary:hover{ background:var(--psd-red-dark); color:var(--psd-white) !important; transform:translateY(-2px); }
.psd-btn--outline{ background:transparent; color:var(--psd-white) !important; border:2px solid rgba(255,255,255,.5); }
.psd-btn--outline:hover{ border-color:#fff; background:rgba(255,255,255,.08); }
.psd-btn--ghost{ background:var(--psd-white); color:var(--psd-blue) !important; border:2px solid var(--psd-blue-light); }
.psd-btn--ghost:hover{ border-color:var(--psd-blue); }

/* ---------- Hero ---------- */
.psd-hero{
	position:relative;
	background:linear-gradient(155deg, var(--psd-blue-dark) 0%, var(--psd-blue) 62%, var(--psd-blue) 100%);
	color:var(--psd-white);
	overflow:hidden;
	padding:110px 0 130px;
}
.psd-hero::after{
	content:"";
	position:absolute; inset:auto 0 0 0; height:90px;
	background:var(--psd-white);
	clip-path: polygon(0 100%, 100% 100%, 100% 40%, 0 100%);
}
.psd-hero__grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center; position:relative; z-index:2; }
.psd-hero h1{ color:var(--psd-white); font-size:clamp(34px,4.6vw,56px); margin:0 0 20px; }
.psd-hero h1 span{ color:var(--psd-red); }
.psd-hero p.psd-lede{ color:rgba(255,255,255,.85); font-size:19px; max-width:520px; }
.psd-hero__actions{ display:flex; gap:16px; flex-wrap:wrap; margin-top:32px; }
.psd-hero__badges{ display:flex; gap:28px; margin-top:44px; flex-wrap:wrap; }
.psd-hero__badge{ display:flex; align-items:center; gap:10px; font-family:var(--font-head); font-weight:600; font-size:14px; color:rgba(255,255,255,.9); }
.psd-hero__badge svg{ flex:none; }
.psd-hero__art{
	position:relative;
	background:rgba(255,255,255,.06);
	border:1px solid rgba(255,255,255,.18);
	border-radius:20px;
	aspect-ratio:16/10;
	display:flex; align-items:center; justify-content:center;
	overflow:hidden;
}
.psd-hero__art img{ width:100%; height:100%; object-fit:cover; }

/* ---------- Cards / grids ---------- */
.psd-grid{ display:grid; gap:28px; }
.psd-grid--3{ grid-template-columns:repeat(3,1fr); }
.psd-grid--4{ grid-template-columns:repeat(4,1fr); }
.psd-grid--2{ grid-template-columns:repeat(2,1fr); }

.psd-card{
	background:var(--psd-white);
	border:1px solid var(--psd-border);
	border-radius:var(--psd-radius);
	padding:34px 28px;
	box-shadow:var(--psd-shadow-sm);
	transition:transform .18s ease, box-shadow .18s ease;
}
.psd-card:hover{ transform:translateY(-4px); box-shadow:var(--psd-shadow); }
.psd-card__icon{
	width:52px; height:52px; border-radius:14px;
	background:var(--psd-blue-light); color:var(--psd-blue);
	display:flex; align-items:center; justify-content:center;
	margin-bottom:18px;
}
.psd-card h3{ font-size:19px; margin:0 0 10px; }
.psd-card p{ color:var(--psd-grey); margin:0; font-size:15px; line-height:1.6; }
.psd-card a.psd-card__link{ display:inline-block; margin-top:14px; font-family:var(--font-head); font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:.03em; color:var(--psd-red); }

/* USP strip */
.psd-usp-strip{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.psd-usp{ text-align:center; }
.psd-usp__icon{ width:56px; height:56px; margin:0 auto 14px; border-radius:50%; background:var(--psd-blue-light); color:var(--psd-blue); display:flex; align-items:center; justify-content:center; }
.psd-usp h4{ font-size:16px; margin:0 0 6px; }
.psd-usp p{ color:var(--psd-grey); font-size:14px; margin:0; }

/* Steps */
.psd-steps{ counter-reset:psd-step; display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.psd-step{ position:relative; padding-left:8px; }
.psd-step::before{
	counter-increment:psd-step; content:counter(psd-step);
	display:flex; align-items:center; justify-content:center;
	width:44px; height:44px; border-radius:50%;
	background:var(--psd-red); color:#fff; font-family:var(--font-head); font-weight:800;
	margin-bottom:16px;
}

/* Testimonials */
.psd-testimonial{
	background:var(--psd-white);
	border-radius:var(--psd-radius);
	padding:30px 28px;
	box-shadow:var(--psd-shadow-sm);
	border:1px solid var(--psd-border);
}
.psd-testimonial__stars{ color:var(--psd-red); letter-spacing:2px; margin-bottom:12px; font-size:15px; }
.psd-testimonial p{ color:var(--psd-ink); font-size:15px; line-height:1.7; }
.psd-testimonial__name{ font-family:var(--font-head); font-weight:700; margin-top:16px; font-size:14px; color:var(--psd-blue-dark); }
.psd-testimonial__name span{ display:block; font-weight:400; color:var(--psd-grey); font-size:13px; }

/* Customer promise statement */
.psd-promise{
	max-width:760px; margin:0 auto; text-align:center;
	padding:40px 32px; background:var(--psd-blue-light); border-radius:var(--psd-radius);
}
.psd-promise h3{ font-size:20px; margin:0 0 12px; }
.psd-promise p{ color:var(--psd-ink); font-size:16px; line-height:1.7; margin:0; }
.psd-promise p + p{ margin-top:14px; }
.psd-promise__tagline{ font-weight:700; color:var(--psd-blue-dark); margin-top:18px !important; }

/* Areas */
.psd-areas-list{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px 24px; list-style:none; margin:0; padding:0; }
.psd-areas-list li{ display:flex; align-items:center; gap:10px; font-weight:600; color:var(--psd-ink); padding:10px 0; border-bottom:1px dashed var(--psd-border); }
.psd-areas-list li svg{ flex:none; color:var(--psd-red); }
.psd-areas-list--soon li svg{ color:var(--psd-blue); }
.psd-areas-list--soon li{ color:var(--psd-grey); }

/* Areas map */
.psd-map-card{
	margin:40px 0 48px; border-radius:var(--psd-radius); overflow:hidden;
	border:1px solid var(--psd-border); box-shadow:var(--psd-shadow-sm); background:var(--psd-white);
}
#psd-areas-map{ height:460px; width:100%; z-index:1; }
.psd-map-legend{
	display:flex; align-items:center; gap:28px; justify-content:center;
	padding:16px; border-top:1px solid var(--psd-border); background:var(--psd-off-white);
	font-family:var(--font-head); font-weight:600; font-size:13px; color:var(--psd-ink);
}
.psd-map-legend__item{ display:inline-flex; align-items:center; gap:9px; }
.psd-map-dot--static{ display:inline-block; width:14px; height:14px; border-radius:50%; }
.psd-map-dot--covered{ background:var(--psd-red); border:2px solid #fff; box-shadow:0 0 0 1px var(--psd-red); }
.psd-map-dot--soon{ background:#fff; border:2px solid var(--psd-blue); box-shadow:0 0 0 1px var(--psd-blue); }
.leaflet-marker-icon.psd-map-dot{ border-radius:50%; box-shadow:0 2px 6px rgba(15,46,110,.35); cursor:pointer; }
.psd-map-popup-tag{
	display:inline-block; margin-top:4px; font-family:var(--font-head); font-weight:700;
	font-size:11px; text-transform:uppercase; letter-spacing:.03em; padding:3px 9px; border-radius:999px;
}
.psd-map-popup-tag--covered{ background:var(--psd-blue-light); color:var(--psd-red); }
.psd-map-popup-tag--soon{ background:var(--psd-blue-light); color:var(--psd-blue); }
.leaflet-popup-content-wrapper{ border-radius:10px; font-family:var(--font-body); }

.psd-areas-cols{ display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:8px; }
.psd-areas-cols h3{ font-size:18px; margin:0 0 16px; }
.psd-areas-cols .psd-areas-list{ grid-template-columns:repeat(2,1fr); }

.psd-card--cta{
	display:flex; flex-direction:column; justify-content:center;
	background:var(--psd-red); text-decoration:none;
}
.psd-card--cta .psd-card__icon{ background:rgba(255,255,255,.18); color:#fff; }
.psd-card--cta h3{ color:#fff; }
.psd-card--cta p{ color:rgba(255,255,255,.85); }
.psd-card--cta:hover{ transform:translateY(-4px); }

@media (max-width:780px){
	#psd-areas-map{ height:340px; }
	.psd-areas-cols{ grid-template-columns:1fr; gap:32px; }
}

/* Before / after slider */
.psd-ba{
	position:relative; width:100%; aspect-ratio:4/3; max-width:720px; margin:0 auto;
	border-radius:var(--psd-radius); overflow:hidden; box-shadow:var(--psd-shadow);
	border:1px solid var(--psd-border); user-select:none; -webkit-user-select:none;
}
.psd-ba__before{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; pointer-events:none; }
.psd-ba__after{ position:absolute; top:0; left:0; bottom:0; width:50%; overflow:hidden; pointer-events:none; }
.psd-ba__after img{ position:absolute; top:0; left:0; height:100%; width:100%; max-width:none; object-fit:cover; display:block; }
.psd-ba__divider{
	position:absolute; top:0; bottom:0; left:50%; width:3px; background:#fff;
	box-shadow:0 0 0 1px rgba(0,0,0,.15); pointer-events:none; transform:translateX(-1.5px);
}
.psd-ba__handle{
	position:absolute; top:50%; left:50%; width:46px; height:46px; border-radius:50%;
	background:#fff; box-shadow:var(--psd-shadow-sm); transform:translate(-50%,-50%);
	display:flex; align-items:center; justify-content:center; color:var(--psd-blue); pointer-events:none;
}
.psd-ba__handle svg{ width:20px; height:20px; }
.psd-ba__range{
	position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize;
	-webkit-appearance:none; appearance:none;
}
.psd-ba__label{
	position:absolute; top:14px; font-family:var(--font-head); font-weight:700; font-size:12px;
	text-transform:uppercase; letter-spacing:.03em; background:rgba(15,46,110,.72); color:#fff;
	padding:5px 12px; border-radius:999px; pointer-events:none;
}
.psd-ba__label--before{ left:14px; }
.psd-ba__label--after{ right:14px; }
.psd-ba__caption{ text-align:center; margin-top:16px; color:var(--psd-grey); font-size:14px; }

/* Gallery */
.psd-gallery{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:220px; gap:18px; }
.psd-gallery a{ display:block; border-radius:var(--psd-radius); overflow:hidden; position:relative; cursor:zoom-in; }
.psd-gallery img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.psd-gallery a:hover img{ transform:scale(1.06); }
.psd-gallery--big{ grid-column:span 2; grid-row:span 2; }

/* Lightbox */
.psd-lightbox{
	position:fixed; inset:0; z-index:9999; background:rgba(10,20,40,.94);
	display:none; align-items:center; justify-content:center; padding:60px;
}
.psd-lightbox.is-open{ display:flex; }
.psd-lightbox__img{ max-width:100%; max-height:100%; border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.psd-lightbox__close, .psd-lightbox__nav{
	position:absolute; border:none; cursor:pointer; color:#fff; background:rgba(255,255,255,.12);
	display:flex; align-items:center; justify-content:center; transition:background .15s ease;
}
.psd-lightbox__close:hover, .psd-lightbox__nav:hover{ background:rgba(255,255,255,.24); }
.psd-lightbox__close{ top:20px; right:20px; width:46px; height:46px; border-radius:50%; font-size:26px; line-height:1; }
.psd-lightbox__nav{ top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%; font-size:30px; line-height:1; }
.psd-lightbox__prev{ left:16px; }
.psd-lightbox__next{ right:16px; }
.psd-lightbox__counter{
	position:absolute; bottom:20px; left:50%; transform:translateX(-50%);
	color:rgba(255,255,255,.75); font-family:var(--font-head); font-size:13px; letter-spacing:.03em;
}
body.psd-lightbox-open{ overflow:hidden; }
@media (max-width:640px){
	.psd-lightbox{ padding:20px 16px; }
	.psd-lightbox__nav{ width:44px; height:44px; font-size:24px; }
	.psd-lightbox__close{ width:40px; height:40px; top:12px; right:12px; }
}

/* CTA band */
.psd-cta-band{
	background:var(--psd-red);
	border-radius:20px;
	padding:52px 48px;
	display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
	color:#fff;
}
.psd-cta-band h2{ color:#fff; margin:0 0 8px; font-size:28px; }
.psd-cta-band p{ margin:0; color:rgba(255,255,255,.85); }

/* Contact page */
.psd-contact-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:48px; align-items:stretch; }
.psd-contact-info{ display:flex; flex-direction:column; justify-content:space-between; }
.psd-contact-card{ background:var(--psd-off-white); border-radius:var(--psd-radius); padding:32px; margin-bottom:20px; }
.psd-contact-card h4{ font-size:15px; text-transform:uppercase; letter-spacing:.04em; margin:0 0 8px; color:var(--psd-blue); }
.psd-contact-card p, .psd-contact-card a{ margin:0; color:var(--psd-ink); font-size:16px; }
.psd-contact-card--whatsapp{ background:#EAFBF1; }
.psd-contact-card--whatsapp h4{ color:#128C4F; }
.psd-contact-card--whatsapp a{ display:inline-flex; align-items:center; gap:8px; color:#128C4F; font-weight:700; }
.psd-contact-card--whatsapp a:hover{ color:#0d6b3c; }
.psd-form-wrap{ background:var(--psd-white); border:1px solid var(--psd-border); border-radius:var(--psd-radius); padding:36px; box-shadow:var(--psd-shadow-sm); }
.psd-form-wrap > h2:first-child, .psd-form-wrap > *:first-child{ margin-top:0; }
.psd-contact-info > *:first-child{ margin-top:0; }
.psd-form-wrap .nf-form-cont{ margin-top:8px; }
.psd-form-wrap input[type=text], .psd-form-wrap input[type=email], .psd-form-wrap input[type=tel], .psd-form-wrap textarea, .psd-form-wrap select{
	border:1px solid var(--psd-border) !important; border-radius:10px !important; padding:13px 16px !important; font-family:var(--font-body) !important;
}
.psd-form-wrap .nf-field-label label{ font-family:var(--font-head) !important; font-weight:600 !important; color:var(--psd-ink) !important; }
.psd-form-wrap input[type=submit], .psd-form-wrap .submit-wrap button{
	background:var(--psd-red) !important; border:none !important; border-radius:999px !important;
	font-family:var(--font-head) !important; font-weight:700 !important; text-transform:uppercase; letter-spacing:.03em;
	padding:14px 34px !important;
}
.psd-form-wrap input[type=submit]:hover, .psd-form-wrap .submit-wrap button:hover{ background:var(--psd-red-dark) !important; }

/* Page hero (inner pages) */
.psd-page-hero{ background:var(--psd-blue-dark); color:#fff; padding:64px 0; text-align:center; }
.psd-page-hero h1{ color:#fff; margin:0 0 10px; font-size:clamp(28px,4vw,42px); }
.psd-page-hero p{ color:rgba(255,255,255,.8); max-width:560px; margin:0 auto; }

/* ---------- Custom footer ---------- */
.psd-site-footer{ background:var(--psd-blue-dark); color:rgba(255,255,255,.72); padding:64px 0 0; }
.psd-site-footer a{ color:#fff; }
.psd-site-footer a:hover{ color:var(--psd-red); }
.psd-footer__grid{
	display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px;
	padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.12);
}
.psd-footer__brand .psd-logo__text{ font-size:22px; }
.psd-footer__brand .psd-logo__text, .psd-footer__brand .psd-logo__accent{ color:#fff; }
.psd-footer__brand .psd-logo__accent{ color:var(--psd-red); }
.psd-footer__brand p{ margin:16px 0 20px; font-size:14px; line-height:1.7; max-width:320px; color:rgba(255,255,255,.65); }
.psd-footer__col h4{
	color:#fff; font-family:var(--font-head); font-size:13px; text-transform:uppercase;
	letter-spacing:.06em; margin:0 0 18px;
}
.psd-footer__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.psd-footer__list a{ font-size:14px; color:rgba(255,255,255,.72); text-decoration:none; display:inline-flex; align-items:center; gap:8px; }
.psd-footer__list li{ font-size:14px; color:rgba(255,255,255,.72); }
.psd-footer__bottom{ padding:22px 0; }
.psd-footer__bottom-inner{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; }
.psd-footer__bottom p{ margin:0; font-size:13px; color:rgba(255,255,255,.55); }
.psd-footer__credit a{ color:rgba(255,255,255,.75); font-weight:600; }

@media (max-width:920px){
	.psd-footer__grid{ grid-template-columns:1fr 1fr; }
	.psd-footer__brand{ grid-column:span 2; }
}
@media (max-width:640px){
	.psd-footer__grid{ grid-template-columns:1fr; }
	.psd-footer__brand{ grid-column:span 1; }
	.psd-footer__bottom-inner{ flex-direction:column; text-align:center; }
}

/* Astra's built-in scroll-to-top button -- restyle to match brand */
#ast-scroll-top{ background:var(--psd-red) !important; border-radius:10px !important; }
#ast-scroll-top:hover{ background:var(--psd-red-dark) !important; }

/* ---------- Responsive ---------- */
@media (max-width:1024px){
	.psd-hero__grid{ grid-template-columns:1fr; }
	.psd-hero__art{ order:-1; aspect-ratio:16/9; }
	.psd-grid--3,.psd-grid--4{ grid-template-columns:repeat(2,1fr); }
	.psd-usp-strip{ grid-template-columns:repeat(2,1fr); }
	.psd-steps{ grid-template-columns:1fr; }
	.psd-contact-grid{ grid-template-columns:1fr; }
	.psd-gallery{ grid-template-columns:repeat(2,1fr); }
	.psd-gallery--big{ grid-column:span 2; }
	.psd-areas-list{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:640px){
	.psd-section{ padding:56px 0; }
	.psd-grid--3,.psd-grid--4,.psd-grid--2{ grid-template-columns:1fr; }
	.psd-usp-strip{ grid-template-columns:1fr; }
	.psd-cta-band{ flex-direction:column; text-align:center; }
	.psd-gallery{ grid-template-columns:1fr; }
	.psd-gallery--big{ grid-column:span 1; }
	.psd-areas-list{ grid-template-columns:1fr; }
}
