/*
Theme Name: Allegry Cleaning
Theme URI: https://allegrycleaning.com
Author: Ben Zeph
Author URI: https://allegrycleaning.com
Description: A sophisticated, SEO-optimized premium theme for Allegry Cleaning Services — Metro Boston's luxury residential & commercial cleaning company. Navy & champagne-gold identity, conversion-focused CTAs, local-SEO ready.
Version: 1.20.5
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: allegry
*/

/* =========================================================
   DESIGN TOKENS
   ========================================================= */
:root{
  /* ---- Fresh & Airy palette (WCAG AA tuned) ---- */
  --ink:#173B4A;          /* deep teal-navy — dark sections/text */
  --navy:#1E6C8C;         /* primary blue — darkened for AA on white */
  --navy-2:#2B7A9B;       /* raised blue surface / hover */
  --navy-3:#3FB0C9;       /* bright teal — large fills / decor only */
  --gold:#127C9B;         /* accent teal — darkened so it passes AA on white (icons, eyebrows) */
  --gold-deep:#0E5E75;    /* deeper teal (pressed / strong accent text) */
  --gold-bright:#3FB0C9;  /* bright teal for large decorative fills only */
  --gold-soft:#EAF4F8;    /* pale sky wash */
  --cream:#F3F9FB;        /* soft sky-white section bg */
  --cream-2:#E6F1F6;      /* light blue section alt */
  --white:#FFFFFF;
  --slate:#CFE0E8;        /* muted light text on dark-teal (lightened for AA) */
  --slate-ink:#4A5B64;    /* muted cool-grey text on light (darkened for AA) */
  --gold-ink:#0E5E75;     /* strong teal for accent text on light bg */
  --line:rgba(63,176,201,.30);
  --line-soft:rgba(255,255,255,.16);
  --shadow-lg:0 30px 60px -20px rgba(23,59,74,.26);
  --shadow-md:0 18px 40px -18px rgba(23,59,74,.18);
  --shadow-sm:0 8px 20px -10px rgba(23,59,74,.16);
  --radius:18px;
  --radius-sm:12px;
  --maxw:1200px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ff-display:"Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --ff-body:"Source Sans 3","Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

/* =========================================================
   RESET / BASE
   ========================================================= */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:var(--ff-body);color:var(--navy);
  background:var(--white);line-height:1.65;font-size:17px;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
/* Prevent embedded iframes (e.g. BookingKoala) from forcing the page wider */
html{overflow-x:hidden}
iframe{max-width:100%}
.prose iframe,.booking-embed iframe{width:100%!important;max-width:100%!important;border:0;display:block}
.booking-embed{width:100%;max-width:100%;overflow-x:hidden;margin:0 auto}
a{color:inherit;text-decoration:none;transition:color .25s var(--ease)}
h1,h2,h3,h4{font-family:var(--ff-display);font-weight:700;line-height:1.15;margin:0 0 .5em;letter-spacing:-.015em}
h1{font-size:clamp(2.4rem,5.2vw,4.1rem);font-optical-sizing:auto}
h2{font-size:clamp(1.9rem,3.6vw,2.8rem)}
h3{font-size:clamp(1.25rem,2vw,1.6rem)}
p{margin:0 0 1.1em}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.narrow{max-width:820px;margin-inline:auto}
section{position:relative}

/* Utility */
.eyebrow{
  font-family:var(--ff-body);font-weight:700;font-size:.74rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep);
  display:inline-flex;align-items:center;gap:.6em;margin-bottom:1rem;
}
.eyebrow::before{content:"";width:26px;height:1.5px;background:var(--gold)}
.on-dark .eyebrow{color:var(--gold-bright)}
.ctaband .eyebrow{color:var(--gold-bright)}
.ctaband .eyebrow::before{background:var(--gold-bright)}
.lead{font-size:1.16rem;color:var(--slate-ink);line-height:1.7}
.on-dark .lead{color:var(--slate)}
.center{text-align:center}
.center .eyebrow{justify-content:center}

/* =========================================================
   BUTTONS / CTA SYSTEM
   ========================================================= */
.btn{
  --bg:var(--gold);--fg:var(--white);
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--ff-body);font-weight:700;font-size:.98rem;letter-spacing:.01em;
  padding:15px 30px;border-radius:100px;background:var(--bg);color:var(--fg);
  border:1.5px solid var(--bg);cursor:pointer;position:relative;overflow:hidden;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease);
  box-shadow:0 10px 26px -12px rgba(63,176,201,.7);white-space:nowrap;
}
.btn:hover{transform:translateY(-3px);box-shadow:0 18px 34px -12px rgba(63,176,201,.85);background:var(--gold-deep);border-color:var(--gold-deep)}
.btn:active{transform:translateY(-1px)}
.btn--ghost{--bg:transparent;--fg:var(--white);border-color:rgba(255,255,255,.35);box-shadow:none}
.btn--ghost:hover{background:rgba(255,255,255,.08);border-color:var(--gold-bright);color:var(--gold-bright)}
.btn--ink{--bg:var(--ink);--fg:var(--white);box-shadow:var(--shadow-sm)}
.btn--ink:hover{background:var(--navy-3)}
.btn--outline{--bg:transparent;--fg:var(--ink);border-color:var(--ink)}
.btn--outline:hover{background:var(--ink);color:var(--white)}
.btn--lg{padding:18px 38px;font-size:1.05rem}
.btn--sm{padding:11px 22px;font-size:.9rem}
.btn svg{width:18px;height:18px;flex:none}

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:sticky;top:0;z-index:100;background:rgba(10,14,39,.92);
  backdrop-filter:saturate(140%) blur(14px);border-bottom:1px solid var(--line-soft);
  transition:background .3s var(--ease);
}
.header-inner{display:flex;align-items:center;gap:20px;height:78px}
.header-inner .brand{margin-right:auto}
.header-inner .primary-nav{margin:0 auto}
.header-inner .header-cta{margin-left:auto}
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand-mark{
  width:42px;height:42px;border-radius:11px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--navy),var(--gold-deep));color:var(--white);
  font-family:var(--ff-display);font-weight:700;font-size:1.5rem;line-height:1;
  box-shadow:0 6px 16px -6px rgba(63,176,201,.6);
}
.brand-logo{
  width:54px;height:54px;object-fit:contain;flex:none;display:block;
}
.brand-logo--footer{width:88px;height:88px}
.brand-text{display:flex;flex-direction:column;line-height:1.05}
.brand-name{font-family:var(--ff-display);font-weight:600;font-size:1.16rem;color:var(--white);letter-spacing:-.01em}
.brand-sub{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-bright);font-weight:700}
/* Header brand text on the dark header: metallic gold for luxury; "Pristine Clean" centered */
.brand-text--header{align-items:center;text-align:center}
.brand-text--header .brand-name{color:#D7C65F;font-size:1.12rem;font-weight:700}
.brand-text--header .brand-sub{color:#D7C65F;letter-spacing:.22em;opacity:.92}
@media(max-width:600px){.brand-text--header .brand-name{font-size:.98rem}.brand-text--header{max-width:none}}
@media(max-width:420px){.brand-text--header{display:none}}

.primary-nav{display:flex;align-items:center;gap:6px}
.primary-nav ul{list-style:none;display:flex;align-items:center;gap:4px;margin:0;padding:0}
.primary-nav a{
  display:block;padding:10px 15px;color:rgba(255,255,255,.82);font-weight:500;
  font-size:.95rem;border-radius:9px;position:relative;white-space:nowrap;
}
.primary-nav ul{flex-wrap:nowrap}
.primary-nav a:hover{color:var(--white)}
.primary-nav .menu-item-has-children>a::after{content:"⌄";margin-left:.35em;opacity:.6;font-size:.85em}
.primary-nav li{position:relative}
.primary-nav .sub-menu{
  position:absolute;top:calc(100% + 8px);left:0;min-width:230px;background:var(--navy-2);
  border:1px solid var(--line-soft);border-radius:14px;padding:8px;opacity:0;visibility:hidden;
  transform:translateY(8px);transition:all .25s var(--ease);box-shadow:var(--shadow-lg);
  max-height:70vh;overflow-y:auto;overflow-x:hidden;
  display:block;
}
/* Submenu items always stack vertically (override the horizontal top-nav flex) */
.primary-nav .sub-menu,
.primary-nav .sub-menu ul{display:block;flex-direction:column;align-items:stretch;gap:0}
.primary-nav .sub-menu li{display:block;width:100%}
.primary-nav .sub-menu a{display:block;width:100%;white-space:nowrap}
/* When a submenu has many items (e.g. 18 service areas), show two columns */
.primary-nav .sub-menu.mega,
.primary-nav .menu-item-has-children:hover>.sub-menu.mega{
  display:grid;grid-template-columns:1fr 1fr;gap:2px 6px;min-width:420px;
}
.primary-nav .sub-menu.mega li{width:auto}
.primary-nav li:hover>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.primary-nav .sub-menu a{padding:9px 14px;font-size:.9rem;color:rgba(255,255,255,.75)}
.primary-nav .sub-menu a:hover{background:var(--cream-2);color:var(--gold-ink)}

.header-cta{display:flex;align-items:center;gap:14px;flex:none}
.header-phone{display:flex;align-items:center;gap:8px;color:var(--white);font-weight:600;font-size:.95rem}
.header-phone svg{width:17px;height:17px;color:var(--gold)}
.header-phone span{opacity:.6;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;display:block;font-weight:700}
.header-phone .num{font-size:1rem}

.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;color:var(--white)}
.nav-toggle svg{width:28px;height:28px}

/* =========================================================
   HERO
   ========================================================= */
.hero{background:var(--ink);color:var(--white);position:relative;overflow:hidden;padding:96px 0 110px}
.hero::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(120% 90% at 80% -10%,rgba(63,176,201,.14),transparent 55%),
    radial-gradient(90% 70% at 0% 110%,rgba(27,35,80,.9),transparent 60%);
}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;width:100%}
.hero-copy{min-width:0}
.hero-media{min-width:0}
/* Hero content stays visible even before scroll-reveal fires */
.hero .reveal{opacity:1;transform:none}
.hero h1{color:var(--white)}
.hero h1 em{font-style:italic;color:var(--gold-bright);font-weight:500}
.hero .lead{max-width:520px;margin-bottom:2rem}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:2.2rem}
.hero-trust{display:flex;flex-wrap:wrap;gap:22px;padding-top:1.6rem;border-top:1px solid var(--line-soft)}
.hero-trust .item{display:flex;align-items:center;gap:9px;font-size:.86rem;color:var(--slate)}
.hero-trust svg{width:18px;height:18px;color:var(--gold-bright);flex:none}

.hero-media{position:relative;display:flex;flex-direction:column;align-items:center}
.hero-media img{border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.hero-badge{
  margin-top:20px;background:var(--white);color:var(--ink);
  border-radius:16px;padding:14px 22px;box-shadow:var(--shadow-lg);
  display:inline-flex;align-items:center;gap:14px;text-align:left;
}
.hero-badge .stars{color:var(--gold-bright);font-size:1.05rem;letter-spacing:1px;line-height:1}
.hero-badge strong{font-family:var(--ff-display);font-size:1.5rem;display:block;line-height:1}
.hero-badge small{color:var(--slate-ink);font-size:.76rem}

/* Marquee trust strip */
.logostrip{background:var(--ink);color:var(--white);padding:20px 0;border-bottom:1px solid var(--line-soft)}
.logostrip .row{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 40px;align-items:center;text-align:center}
.logostrip .item{display:flex;align-items:center;gap:9px;font-size:.82rem;font-weight:600;letter-spacing:.02em;color:var(--white)}
.logostrip svg{width:19px;height:19px;color:var(--gold-bright)}

/* =========================================================
   SECTION SHELL
   ========================================================= */
.sec{padding:96px 0}
.sec--dark{background:var(--navy);color:var(--white)}
.sec--ink{background:var(--ink);color:var(--white)}
.sec--cream{background:var(--cream)}
.sec-head{max-width:720px;margin-bottom:56px}
.sec-head.center{margin-inline:auto}
.sec--dark h2,.sec--ink h2{color:var(--white)}

/* =========================================================
   SERVICE CARDS
   ========================================================= */
.grid{display:grid;gap:26px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

.card{
  background:var(--white);border:1px solid rgba(23,59,74,.08);border-radius:var(--radius);
  padding:34px 30px;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);
  position:relative;overflow:hidden;
}
.card::after{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--gold);transition:width .4s var(--ease)}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:var(--line)}
.card:hover::after{width:100%}
.card-ico{
  width:56px;height:56px;border-radius:14px;display:grid;place-items:center;margin-bottom:20px;
  background:var(--gold-soft);color:var(--ink);
}
.card-ico svg{width:27px;height:27px}
.card h3{margin-bottom:.4em}
.card p{color:var(--slate-ink);font-size:.98rem;margin-bottom:1.1em}
.card .card-link{color:var(--gold-deep);font-weight:700;font-size:.9rem;display:inline-flex;align-items:center;gap:.4em}
.card .card-link svg{width:15px;height:15px;transition:transform .25s var(--ease)}
.card:hover .card-link svg{transform:translateX(4px)}

/* Dark card variant */
.sec--dark .card,.sec--ink .card{background:var(--navy-2);border-color:var(--line-soft);color:var(--white)}
.sec--dark .card p,.sec--ink .card p{color:var(--slate)}
.sec--dark .card h3,.sec--ink .card h3{color:var(--white)}

/* =========================================================
   PACKAGES
   ========================================================= */
.pkg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:stretch}
.pkg{
  background:var(--navy-2);border:1px solid var(--line-soft);border-radius:var(--radius);
  padding:38px 32px;display:flex;flex-direction:column;position:relative;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.pkg:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.pkg--feat{background:linear-gradient(180deg,var(--ink),var(--gold-deep));border-color:var(--gold-bright)}
.pkg-tag{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--gold);color:var(--white);font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;padding:6px 16px;border-radius:100px}
.pkg-name{font-family:var(--ff-display);font-size:1.5rem;color:var(--white);margin-bottom:.15em}
.pkg-tier{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-bright);font-weight:700;margin-bottom:1.3rem}
.pkg-price{display:flex;align-items:baseline;gap:6px;margin-bottom:1.4rem;color:var(--white)}
.pkg-price .amt{font-family:var(--ff-display);font-size:2.6rem;line-height:1}
.pkg-price .per{color:var(--slate);font-size:.9rem}
.pkg-price .from{font-size:.72rem;color:var(--slate);text-transform:uppercase;letter-spacing:.12em;display:block;margin-bottom:2px}
.pkg ul{list-style:none;margin:0 0 1.8rem;padding:0;display:flex;flex-direction:column;gap:12px;flex:1}
.pkg li{display:flex;gap:11px;align-items:flex-start;color:rgba(255,255,255,.82);font-size:.95rem}
.pkg li svg{width:19px;height:19px;color:var(--gold-bright);flex:none;margin-top:1px}
.pkg .btn{width:100%}

/* =========================================================
   PROCESS TIMELINE
   ========================================================= */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;counter-reset:step}
.step{position:relative;padding-top:56px}
.step::before{
  counter-increment:step;content:counter(step,decimal-leading-zero);
  position:absolute;top:0;left:0;font-family:var(--ff-display);font-size:2.4rem;color:var(--gold);font-weight:600;
}
.step::after{content:"";position:absolute;top:22px;left:52px;right:-10px;height:1.5px;background:var(--line)}
.step:last-child::after{display:none}
.step h4{font-family:var(--ff-display);font-size:1.12rem;margin-bottom:.4em;color:var(--white)}
.step p{color:var(--slate);font-size:.9rem;margin:0}

/* =========================================================
   SPLIT / FEATURE
   ========================================================= */
.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.split-media img{border-radius:var(--radius);box-shadow:var(--shadow-md);aspect-ratio:4/5;object-fit:cover;width:100%}
.checklist{list-style:none;margin:1.5rem 0;padding:0;display:grid;gap:14px}
.checklist li{display:flex;gap:12px;align-items:flex-start;font-size:1.02rem}
.checklist svg{width:22px;height:22px;color:var(--gold-deep);flex:none;margin-top:2px}
.sec--dark .checklist svg,.sec--ink .checklist svg{color:var(--gold-bright)}

/* =========================================================
   TEAM
   ========================================================= */
.team-leaders{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:8px}
.team-card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow);transition:transform .3s var(--ease),box-shadow .3s var(--ease);
  display:flex;flex-direction:column;
}
.team-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.team-photo{position:relative;width:100%;height:0;padding-bottom:125%;overflow:hidden;background:var(--navy-2) url('assets/img/logo-mark.png') center/130px no-repeat}
.team-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%;display:block}
.team-info{padding:28px 30px 32px}
.team-info h3{margin:0 0 2px;font-size:1.55rem}
.team-role{
  display:inline-block;font-family:var(--ff-body);font-weight:600;font-size:.72rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);
  padding:5px 12px;border:1px solid var(--line);border-radius:999px;margin-bottom:16px;
}
.team-info p{margin:0;color:var(--slate-ink)}

/* Values grid (Our Team page) */
.values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:8px}
.value-item{text-align:center;padding:8px 6px}
.value-ico{
  display:inline-grid;place-items:center;width:58px;height:58px;border-radius:16px;
  background:var(--navy-2);border:1px solid var(--line-soft);margin-bottom:16px;
}
.value-ico svg{width:26px;height:26px;color:var(--gold)}
.value-item h4{margin:0 0 8px;font-size:1.18rem;color:var(--white)}
.value-item p{margin:0;font-size:.94rem;color:var(--slate)}

/* =========================================================
   THANK YOU PAGE
   ========================================================= */
.ty-hero{padding:96px 0 80px;text-align:center;background:linear-gradient(180deg,var(--ink),var(--navy));position:relative;overflow:hidden}
.ty-inner{max-width:720px;margin:0 auto;position:relative;z-index:1}
.ty-check{
  display:inline-grid;place-items:center;width:80px;height:80px;border-radius:50%;
  background:rgba(63,176,201,.12);border:2px solid var(--gold);margin-bottom:24px;
  animation:ty-pop .6s cubic-bezier(.2,.9,.3,1.4) both;
}
.ty-check svg{width:38px;height:38px;color:var(--gold);stroke-width:2.5;
  stroke-dasharray:32;stroke-dashoffset:32;animation:ty-draw .5s .35s ease forwards}
.ty-hero .eyebrow{animation:ty-rise .6s .25s both}
.ty-hero h1{margin:.2em 0 .4em;color:var(--white);animation:ty-rise .6s .35s both}
.ty-hero .lead{color:var(--slate);animation:ty-rise .6s .45s both}
.ty-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:32px;animation:ty-rise .6s .55s both}

@keyframes ty-pop{0%{opacity:0;transform:scale(.4)}60%{transform:scale(1.08)}100%{opacity:1;transform:scale(1)}}
@keyframes ty-draw{to{stroke-dashoffset:0}}
@keyframes ty-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  .ty-check,.ty-check svg,.ty-hero .eyebrow,.ty-hero h1,.ty-hero .lead,.ty-actions{animation:none}
  .ty-check svg{stroke-dashoffset:0}
}

.ty-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:8px}
.ty-step{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:32px 28px;text-align:center;box-shadow:var(--shadow);
}
.ty-step-num{
  display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;
  background:var(--navy);color:var(--white);font-family:var(--ff-display);font-size:1.3rem;
  font-weight:700;margin-bottom:16px;
}
.ty-step h3{margin:0 0 8px;font-size:1.2rem}
.ty-step p{margin:0;color:var(--slate-ink);font-size:.96rem}

.ty-contact{display:grid;grid-template-columns:1.3fr .7fr;gap:48px;align-items:center}
.ty-contact-list{list-style:none;margin:1.4rem 0;padding:0;display:grid;gap:14px}
.ty-contact-list li{display:flex;align-items:center;gap:12px;font-size:1.06rem}
.ty-contact-list svg{width:22px;height:22px;color:var(--gold-deep);flex:none}
.ty-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:1.2rem}
.ty-contact-media{text-align:center}
.ty-contact-media img{width:200px;height:auto;margin:0 auto;border-radius:var(--radius);box-shadow:var(--shadow-lg)}


/* =========================================================
   STATS
   ========================================================= */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;text-align:center}
.stat .num{font-family:var(--ff-display);font-size:clamp(2.4rem,4vw,3.4rem);color:var(--gold-bright);line-height:1}
.stat .lbl{font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin-top:.5rem}

/* =========================================================
   REVIEWS
   ========================================================= */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}

/* =========================================================
   GALLERY / OUR WORK
   ========================================================= */
.gallery{
  display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:18px;margin-top:10px;
}
.gallery-item{
  position:relative;margin:0;overflow:hidden;border-radius:var(--radius);
  box-shadow:var(--shadow);background:var(--navy-2);
}
.gallery-item--tall{grid-row:span 2}
.gallery-item--wide{grid-column:span 2}
.gallery-item img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s var(--ease);
}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-item figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:26px 18px 14px;
  font-family:var(--ff-body);font-weight:600;font-size:.9rem;letter-spacing:.02em;color:#fff;
  background:linear-gradient(180deg,transparent,rgba(23,59,74,.82));
}
@media(max-width:900px){
  .gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px}
  .gallery-item--wide{grid-column:span 2}
  .gallery-item--tall{grid-row:span 1}
}
@media(max-width:520px){
  .gallery{grid-template-columns:1fr 1fr;grid-auto-rows:140px}
  .gallery-item--wide{grid-column:span 2}
}
.review{background:var(--white);border:1px solid rgba(23,59,74,.08);border-radius:var(--radius);padding:30px 28px;box-shadow:var(--shadow-sm)}
.review .stars{color:var(--gold);letter-spacing:2px;margin-bottom:14px;font-size:1.05rem}
.review p{font-size:1rem;color:var(--navy);font-style:italic;margin-bottom:1.3em;line-height:1.6}
.review .who{display:flex;align-items:center;gap:12px}
.review .av{width:44px;height:44px;border-radius:50%;background:var(--gold-soft);color:var(--ink);display:grid;place-items:center;font-weight:700;font-family:var(--ff-display)}
.review .who b{display:block;font-size:.95rem}
.review .who small{color:var(--slate-ink);font-size:.8rem}

/* =========================================================
   CTA BAND
   ========================================================= */
.ctaband{background:linear-gradient(120deg,var(--ink),var(--navy));color:var(--white);border-radius:24px;padding:60px;text-align:center;position:relative;overflow:hidden;box-shadow:var(--shadow-lg)}
.ctaband::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 120% at 50% -20%,rgba(63,176,201,.16),transparent 60%)}
.ctaband>*{position:relative;z-index:1}
.ctaband h2{color:var(--white);margin-bottom:.4em}
.ctaband p{color:var(--slate);max-width:560px;margin:0 auto 2rem}
.ctaband .btn-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* =========================================================
   SERVICE AREA
   ========================================================= */
.area-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.area-chip{
  display:flex;align-items:center;gap:10px;padding:16px 18px;background:var(--white);
  border:1px solid rgba(23,59,74,.08);border-radius:var(--radius-sm);font-weight:600;font-size:.95rem;
  transition:all .25s var(--ease);
}
.area-chip:hover{border-color:var(--gold);background:var(--gold-soft);transform:translateY(-2px)}
.area-chip svg{width:17px;height:17px;color:var(--gold-deep);flex:none}
.sec--dark .area-chip,.sec--ink .area-chip{background:var(--navy-2);border-color:var(--line-soft);color:var(--white)}
.sec--dark .area-chip:hover,.sec--ink .area-chip:hover{background:var(--navy-3);border-color:var(--gold)}

/* =========================================================
   FAQ
   ========================================================= */
.faq{max-width:820px;margin:0 auto}
.faq-item{border-bottom:1px solid rgba(23,59,74,.1)}
.faq-q{width:100%;text-align:left;background:none;border:0;padding:24px 0;font-family:var(--ff-display);font-size:1.2rem;color:var(--navy);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px}
.faq-q .ic{width:30px;height:30px;flex:none;border-radius:50%;border:1.5px solid var(--gold-deep);display:grid;place-items:center;color:var(--gold-deep);transition:all .3s var(--ease);font-size:1.2rem}
.faq-item.open .faq-q .ic{background:var(--gold);border-color:var(--gold);transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s var(--ease)}
.faq-a-inner{padding:0 0 24px;color:var(--slate-ink);font-size:1.02rem}

/* =========================================================
   FORMS
   ========================================================= */
.form-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:44px}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-error{background:#fdecea;border:1px solid #f5c2c0;color:#8a1c17;border-radius:12px;padding:12px 16px;margin-bottom:18px;font-size:.92rem}
.field{margin-bottom:18px}
.field label{display:block;font-weight:600;font-size:.85rem;margin-bottom:7px;color:var(--navy)}
.field input,.field select,.field textarea{
  width:100%;padding:14px 16px;border:1.5px solid rgba(23,59,74,.14);border-radius:12px;
  font-family:var(--ff-body);font-size:1rem;background:var(--white);transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--gold-deep);box-shadow:0 0 0 4px rgba(63,176,201,.18)}
.field textarea{min-height:120px;resize:vertical}

/* ---- WordPress core Form block + Field blocks (editable in the block editor) ---- */
/* Applies the theme's field styling to a form built from Form / Input / Textarea / Button blocks. */
.allegry-form-shell .wp-block-form{display:grid;gap:16px}
.allegry-form-shell .wp-block-form-input__label,
.allegry-form-shell .wp-block-form-input label,
.allegry-form-shell label{display:block;font-weight:600;font-size:.85rem;margin-bottom:7px;color:var(--navy)}
.allegry-form-shell input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.allegry-form-shell select,
.allegry-form-shell textarea,
.allegry-form-shell .wp-block-form-input__input{
  width:100%;padding:14px 16px;border:1.5px solid rgba(23,59,74,.14);border-radius:12px;
  font-family:var(--ff-body);font-size:1rem;background:var(--white);
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.allegry-form-shell input:focus,
.allegry-form-shell select:focus,
.allegry-form-shell textarea:focus,
.allegry-form-shell .wp-block-form-input__input:focus{
  outline:0;border-color:var(--gold-deep);box-shadow:0 0 0 4px rgba(63,176,201,.18)
}
.allegry-form-shell textarea{min-height:120px;resize:vertical}
/* Submit button — inherit the theme's primary button look */
.allegry-form-shell .wp-block-form-submit-button__button,
.allegry-form-shell button[type=submit],
.allegry-form-shell input[type=submit]{
  width:100%;cursor:pointer;border:0;border-radius:999px;padding:16px 28px;
  font-family:var(--ff-body);font-weight:600;font-size:1.02rem;
  background:linear-gradient(135deg,var(--gold),var(--gold-deep));color:var(--white);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease);
}
.allegry-form-shell .wp-block-form-submit-button__button:hover,
.allegry-form-shell button[type=submit]:hover,
.allegry-form-shell input[type=submit]:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
/* Keep the block form's heading/intro tidy inside the card */
.allegry-form-shell h1,.allegry-form-shell h2,.allegry-form-shell h3{margin-top:0}

/* ---- WPForms (and other plugin forms) styled to match the theme ---- */
.allegry-form-shell .wpforms-field-label,
.allegry-form-shell .wpforms-field label{display:block;font-weight:600;font-size:.85rem;margin-bottom:7px;color:var(--navy)}
.allegry-form-shell .wpforms-field{margin-bottom:16px;padding:0}
.allegry-form-shell .wpforms-field-row{margin-bottom:0}
.allegry-form-shell input[type=text],
.allegry-form-shell input[type=email],
.allegry-form-shell input[type=tel],
.allegry-form-shell input[type=url],
.allegry-form-shell input[type=number],
.allegry-form-shell .wpforms-field input,
.allegry-form-shell .wpforms-field select,
.allegry-form-shell .wpforms-field textarea{
  width:100%;padding:14px 16px;border:1.5px solid rgba(23,59,74,.14);border-radius:12px;
  font-family:var(--ff-body);font-size:1rem;background:var(--white);
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.allegry-form-shell .wpforms-field input:focus,
.allegry-form-shell .wpforms-field select:focus,
.allegry-form-shell .wpforms-field textarea:focus{
  outline:0;border-color:var(--gold-deep);box-shadow:0 0 0 4px rgba(63,176,201,.18)
}
.allegry-form-shell .wpforms-field textarea{min-height:120px;resize:vertical}
.allegry-form-shell .wpforms-required-label{color:var(--gold-deep)}
/* WPForms submit button → theme's gold gradient button */
.allegry-form-shell .wpforms-submit,
.allegry-form-shell button.wpforms-submit{
  width:100%;cursor:pointer;border:0;border-radius:999px;padding:16px 28px;
  font-family:var(--ff-body);font-weight:600;font-size:1.02rem;
  background:linear-gradient(135deg,var(--gold),var(--gold-deep));color:var(--white);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease);
}
.allegry-form-shell .wpforms-submit:hover,
.allegry-form-shell button.wpforms-submit:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.allegry-form-shell .wpforms-confirmation-container-full{background:var(--cream);border-radius:12px;padding:18px 20px;border:1px solid var(--gold-deep)}

/* ---- Jetpack Form (Contact Form block) styled to match the theme ---- */
.allegry-form-shell .wp-block-jetpack-contact-form label,
.allegry-form-shell .grunion-field-label{display:block;font-weight:600;font-size:.85rem;margin-bottom:7px;color:var(--navy)}
.allegry-form-shell .wp-block-jetpack-contact-form input[type=text],
.allegry-form-shell .wp-block-jetpack-contact-form input[type=email],
.allegry-form-shell .wp-block-jetpack-contact-form input[type=tel],
.allegry-form-shell .wp-block-jetpack-contact-form input[type=url],
.allegry-form-shell .wp-block-jetpack-contact-form select,
.allegry-form-shell .wp-block-jetpack-contact-form textarea{
  width:100%;padding:14px 16px;border:1.5px solid rgba(23,59,74,.14);border-radius:12px;
  font-family:var(--ff-body);font-size:1rem;background:var(--white);
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.allegry-form-shell .wp-block-jetpack-contact-form input:focus,
.allegry-form-shell .wp-block-jetpack-contact-form select:focus,
.allegry-form-shell .wp-block-jetpack-contact-form textarea:focus{
  outline:0;border-color:var(--gold-deep);box-shadow:0 0 0 4px rgba(63,176,201,.18)
}
.allegry-form-shell .wp-block-jetpack-contact-form textarea{min-height:120px;resize:vertical}
.allegry-form-shell .wp-block-jetpack-contact-form .wp-block-button__link,
.allegry-form-shell .wp-block-jetpack-contact-form button[type=submit]{
  width:100%;cursor:pointer;border:0;border-radius:999px;padding:16px 28px;
  font-family:var(--ff-body);font-weight:600;font-size:1.02rem;
  background:linear-gradient(135deg,var(--gold),var(--gold-deep));color:var(--white);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease);
}
.allegry-form-shell .wp-block-jetpack-contact-form .wp-block-button__link:hover,
.allegry-form-shell .wp-block-jetpack-contact-form button[type=submit]:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.allegry-form-shell .grunion-field-wrap{margin-bottom:16px}

/* =========================================================
   Jetpack form — ROBUST full-width override.
   Jetpack lays fields out in a grid/flex row that leaves empty
   space on the right. Rather than rely on exact Jetpack class
   names (which vary by version), force EVERY element inside the
   form shell to full width and collapse any grid/flex/columns.
   ========================================================= */
.allegry-form-shell .wp-block-jetpack-contact-form,
.allegry-form-shell form,
.allegry-form-shell form.contact-form{
  display:block!important;width:100%!important;max-width:100%!important;
}
/* Every direct/nested wrapper Jetpack uses for a field → full width, single column */
.allegry-form-shell .wp-block-jetpack-contact-form > *,
.allegry-form-shell form > *,
.allegry-form-shell [class*="jetpack-field"],
.allegry-form-shell [class*="grunion-field"],
.allegry-form-shell .wp-block-column,
.allegry-form-shell .wp-block-columns{
  display:block!important;
  width:100%!important;max-width:100%!important;
  flex:0 0 100%!important;flex-basis:100%!important;
  grid-column:1 / -1!important;
  float:none!important;
  margin-left:0!important;margin-right:0!important;
  box-sizing:border-box!important;
}
/* If Jetpack still uses CSS grid/flex on the form, neutralize it */
.allegry-form-shell .wp-block-jetpack-contact-form,
.allegry-form-shell form{
  grid-template-columns:1fr!important;
  gap:0!important;
}
/* The actual inputs stretch to fill their (now full-width) wrapper */
.allegry-form-shell input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]),
.allegry-form-shell select,
.allegry-form-shell textarea{
  width:100%!important;max-width:100%!important;box-sizing:border-box!important;
}
/* Consistent, tighter spacing between fields */
.allegry-form-shell [class*="jetpack-field"],
.allegry-form-shell [class*="grunion-field"]{margin-bottom:16px!important}
/* Phone: country selector + number on one full-width row */
.allegry-form-shell .components-phone-number-control,
.allegry-form-shell [class*="field-telephone"] input{width:100%!important}

/* Hide the "This field is required" helper/validation text that Jetpack reserves
   space for under each required field — this is what created the tall gaps.
   The field still can't be submitted blank; Jetpack just won't show the text.
   Class names below confirmed from the live rendered HTML. */
.allegry-form-shell .contact-form__input-error,
.allegry-form-shell [id$="-error"],
.allegry-form-shell [class*="__input-error"],
.allegry-form-shell .contact-form__warning-icon,
.allegry-form-shell .wp-block-jetpack-contact-form .contact-form__validation,
.allegry-form-shell .wp-block-jetpack-contact-form .validation-error,
.allegry-form-shell .wp-block-jetpack-contact-form .is-error,
.allegry-form-shell [class*="jetpack-field"] .contact-form__validation,
.allegry-form-shell [class*="jetpack-field"] small,
.allegry-form-shell [class*="jetpack-field"] .description,
.allegry-form-shell [class*="jetpack-field"] .required,
.allegry-form-shell .grunion-field-wrap .required,
.allegry-form-shell .grunion-error,
.allegry-form-shell .form-error,
.allegry-form-shell [class*="required-field"],
.allegry-form-shell [class*="field-required"]{
  display:none!important;height:0!important;margin:0!important;padding:0!important;
}
/* Remove any reserved min-height on field wrappers that held the message space */
.allegry-form-shell [class*="jetpack-field"],
.allegry-form-shell [class*="grunion-field"]{min-height:0!important}

.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{background:var(--ink);color:var(--slate);padding:74px 0 0}
.footer-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:40px;padding-bottom:52px;border-bottom:1px solid var(--line-soft)}
.footer-brand .brand{margin-bottom:18px}
.footer-brand p{font-size:.95rem;max-width:320px;line-height:1.7}
.footer-col h4{color:var(--white);font-family:var(--ff-body);font-weight:700;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:20px}
.footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.footer-col a{color:var(--slate);font-size:.95rem}
.footer-col a:hover{color:var(--gold-bright)}
.footer-contact li{display:flex;gap:11px;align-items:flex-start;font-size:.95rem;margin-bottom:13px}
.footer-contact svg{width:18px;height:18px;color:var(--gold-bright);flex:none;margin-top:2px}
.footer-contact a{color:var(--slate)}
.footer-contact a:hover{color:var(--gold-bright)}
.socials{display:flex;gap:12px;margin-top:22px}
.socials a{width:42px;height:42px;border-radius:11px;background:var(--navy-2);display:grid;place-items:center;color:var(--white);border:1px solid var(--line-soft);transition:all .25s var(--ease)}
.socials a:hover{background:var(--gold);color:var(--white);transform:translateY(-3px);border-color:var(--gold)}
.socials svg{width:19px;height:19px}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 0;flex-wrap:wrap}
.footer-bottom p{margin:0;font-size:.85rem}
.footer-bottom .legal{display:flex;gap:22px;flex-wrap:wrap}
.footer-bottom .legal a{font-size:.85rem}

/* =========================================================
   FLOATING MOBILE CTA
   ========================================================= */
.mobile-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:95;display:none;
  background:var(--ink);border-top:1px solid var(--line);padding:10px 14px;
  gap:10px;box-shadow:0 -10px 30px -12px rgba(0,0,0,.5);
}
.mobile-cta a{flex:1;justify-content:center}
.mobile-cta .btn--ghost{border-color:var(--gold);color:var(--gold)}

/* =========================================================
   PAGE HEADER (interior)
   ========================================================= */
.page-hero{background:var(--ink);color:var(--white);padding:72px 0 60px;position:relative;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 120% at 90% -20%,rgba(63,176,201,.12),transparent 55%)}
.page-hero .inner{position:relative;z-index:1;max-width:760px}
.page-hero h1{color:var(--white)}
.crumbs{font-size:.82rem;color:var(--slate);margin-bottom:1rem}
.crumbs a:hover{color:var(--gold-bright)}
.crumbs span{opacity:.5;margin:0 .5em}

/* Content prose */
.prose{max-width:780px;margin:0 auto}
.mission{max-width:820px;margin:0 auto;text-align:center}
.mission .lead{margin-bottom:1.1em}
.prose h2{margin-top:1.6em}
.prose h3{margin-top:1.4em}
.prose ul{padding-left:1.2em;margin-bottom:1.2em}
.prose li{margin-bottom:.5em}
.prose img{border-radius:var(--radius);margin:1.6em 0}

/* Reveal animation */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media(max-width:1024px){
  .hero-grid{grid-template-columns:1fr;gap:44px}
  .hero-media{max-width:460px}
  .split{grid-template-columns:1fr;gap:40px}
  .steps{grid-template-columns:repeat(2,1fr)}
  .step::after{display:none}
  .footer-top{grid-template-columns:1fr 1fr;gap:36px}
  .grid-4{grid-template-columns:repeat(2,1fr)}
}
/* Slightly tighten the nav on mid-large screens so a fuller menu (Service Area, Our Team) stays on one line */
@media(max-width:1200px){
  .primary-nav a{padding:10px 12px}
  .primary-nav ul{gap:2px}
}
/* Tighten header in the mid-width zone so the nav never truncates before the mobile menu */
@media(max-width:1080px){
  .header-inner{gap:12px}
  .primary-nav a{padding:9px 9px;font-size:.9rem}
  .primary-nav ul{gap:1px}
  .header-cta{gap:10px}
  .header-phone span:not(.num){display:none}
  .header-phone .num{font-size:.92rem}
  .brand-text--header .brand-name{font-size:1rem}
}
@media(max-width:860px){
  .primary-nav,.header-phone{display:none}
  .nav-toggle{display:block}
  .site-header.nav-open .primary-nav{
    display:block;position:absolute;top:78px;left:0;right:0;background:var(--navy);
    border-bottom:1px solid var(--line-soft);padding:14px 24px 22px;
  }
  .site-header.nav-open .primary-nav ul{flex-direction:column;align-items:stretch;gap:2px}
  .site-header.nav-open .primary-nav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;background:transparent;border:0;padding:2px 0 2px 14px;max-height:none}
  .grid-3,.grid-2,.reviews,.pkg-grid{grid-template-columns:1fr}
  .team-leaders{grid-template-columns:1fr}
  .values-grid{grid-template-columns:repeat(2,1fr)}
  .ty-steps{grid-template-columns:1fr}
  .ty-contact{grid-template-columns:1fr;text-align:center}
  .ty-contact-list li{justify-content:center}
  .ty-links{justify-content:center}
  .stats{grid-template-columns:repeat(2,1fr);gap:34px}
  .sec{padding:66px 0}
  .hero{padding:64px 0 78px}
  .ctaband{padding:44px 26px}
  .mobile-cta{display:flex}
  body{padding-bottom:66px}
  .form-row{grid-template-columns:1fr}
  .hero-badge{margin-top:16px;padding:12px 18px}
}
@media(max-width:480px){
  .grid-4{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr}
  .form-card{padding:28px 22px}
  h1{font-size:2.2rem}
}

/* Accessibility */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2.5px solid var(--gold);outline-offset:3px;border-radius:4px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
.skip-link{position:absolute;left:-999px;top:0;background:var(--gold);color:var(--white);padding:10px 18px;z-index:200;font-weight:700;border-radius:0 0 8px 0}
.skip-link:focus{left:0}

/* Free checklist download cards (Services page) */
.checklist-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-sm);padding:26px 22px;text-decoration:none;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);box-shadow:var(--shadow-sm)}
.checklist-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--gold)}
.checklist-card svg{width:34px;height:34px;color:var(--gold)}
.checklist-card h3{margin:6px 0 0;font-size:1.08rem;color:var(--ink)}
.checklist-card span{font-size:.9rem;color:var(--slate-ink);line-height:1.4}
.checklist-card em{margin-top:8px;font-style:normal;font-weight:700;font-size:.9rem;color:var(--gold-ink)}

/* Photo strips (image rows across pages) */
.photo-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px}
.photo-strip--3{grid-template-columns:repeat(3,1fr)}
.photo-strip--2{grid-template-columns:repeat(2,1fr)}
.photo-strip img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}
.photo-strip--2 img{aspect-ratio:3/2}
@media(max-width:860px){.photo-strip,.photo-strip--3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.photo-strip,.photo-strip--2,.photo-strip--3{grid-template-columns:1fr}}

/* Contact form (self-contained, posts to theme mail handler) */
.allegry-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-title{margin:0 0 4px;font-size:1.3rem;color:var(--ink)}
.form-sub{margin:0 0 20px;color:var(--slate-ink);font-size:.95rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.field .req{color:var(--gold);font-weight:700}
.btn-block{width:100%;justify-content:center;margin-top:6px}
.form-fine{margin:12px 0 0;font-size:.78rem;color:var(--slate-ink);text-align:center;line-height:1.5}
.form-error{background:#FDECEA;border-left:3px solid #C0392B;color:#7B241C;padding:12px 14px;border-radius:8px;margin-bottom:18px;font-size:.9rem}
@media(max-width:560px){.field-row{grid-template-columns:1fr}}
