
:root {
  --navy-950:#041329;
  --navy-900:#071d49;
  --navy-800:#0b2b62;
  --blue-650:#076fc4;
  --blue-600:#0876d1;
  --blue-500:#1495e8;
  --blue-100:#eaf6ff;
  --ink:#10213e;
  --muted:#5c6b81;
  --line:#dfe7ef;
  --soft:#f5f8fb;
  --white:#fff;
  --gray-map:#e7ebef;
  --shadow:0 24px 70px rgba(5,27,67,.11);
  --shadow-soft:0 12px 32px rgba(5,27,67,.09);
  --radius-xl:32px;
  --radius-lg:24px;
  --radius-md:17px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--ink);
  background:var(--white);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.62;
}
img,svg{display:block;max-width:100%}
a{color:inherit}
button,input,select,textarea{font:inherit}
.container{width:min(calc(100% - 40px),var(--max));margin-inline:auto}
.section{padding:96px 0}
.section-soft{background:var(--soft)}
.section-dark{background:var(--navy-950);color:white}
.skip-link{position:absolute;left:-9999px;top:12px;background:var(--navy-950);color:white;padding:10px 14px;z-index:1000}
.skip-link:focus{left:12px}
.eyebrow{margin:0 0 12px;color:var(--blue-600);text-transform:uppercase;letter-spacing:.12em;font-weight:850;font-size:.76rem}
.eyebrow.light{color:#91d3ff}
h1,h2,h3{margin-top:0;line-height:1.08;letter-spacing:-.035em}
h1{font-size:clamp(3rem,7vw,6rem);color:var(--navy-900);margin-bottom:24px}
h2{font-size:clamp(2.1rem,4vw,3.7rem);color:var(--navy-900);margin-bottom:20px}
h3{font-size:1.25rem;color:var(--navy-900);margin-bottom:10px}
p{margin-top:0}
.lede{font-size:1.16rem;color:var(--muted);max-width:780px}
.muted{color:var(--muted)}
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(255,255,255,.94);
  border-bottom:1px solid rgba(223,231,239,.88);
  backdrop-filter:blur(15px)
}
.nav-wrap{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand img{width:218px}
.primary-nav{display:flex;align-items:center;gap:23px;font-weight:720;font-size:.92rem}
.primary-nav a{text-decoration:none}
.primary-nav a:not(.button):hover,.primary-nav a[aria-current="page"]{color:var(--blue-600)}
.menu-toggle{display:none;border:0;background:transparent;padding:8px}
.menu-toggle span:not(.sr-only){display:block;width:24px;height:2px;background:var(--navy-900);margin:5px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.button{
  display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;
  border:0;border-radius:999px;background:var(--blue-600);color:white;text-decoration:none;font-weight:850;
  box-shadow:0 12px 28px rgba(8,118,209,.23);transition:.2s ease
}
.button:hover{transform:translateY(-2px);background:var(--blue-500);box-shadow:0 16px 34px rgba(8,118,209,.28)}
.button.small{min-height:42px;padding:0 18px;font-size:.86rem}
.button.secondary{background:white;color:var(--navy-900);box-shadow:none;border:1px solid var(--line)}
.text-link{text-decoration:none;color:var(--navy-900);font-weight:850}
.hero{padding:64px 0 78px;text-align:center}
.hero-logo{width:min(470px,84vw);margin:0 auto 40px}
.hero .lede{margin-inline:auto}
.hero-actions{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:34px}
.promise{margin-top:28px;font-weight:850;color:var(--navy-900)}
.hero-panel{
  margin-top:58px;min-height:355px;border-radius:var(--radius-xl);overflow:hidden;position:relative;
  background:radial-gradient(circle at 25% 18%,rgba(20,149,232,.34),transparent 30%),linear-gradient(145deg,var(--navy-950),var(--navy-800));
  box-shadow:var(--shadow)
}
.hero-media-background{
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(2,23,51,.72),rgba(2,23,51,.22)),url("/assets/full/photos/hurricane-hector.jpg") center/cover no-repeat;
}
.hero-media-background picture,.hero-media-background img,.hero-media-background video{
  width:100%;height:100%;display:block;object-fit:cover;object-position:var(--media-focal-x,50%) var(--media-focal-y,50%);
}
.home-benefit-grid{margin-top:42px}
.hero-panel:before,.hero-panel:after{
  content:"";position:absolute;border:1px solid rgba(255,255,255,.14);border-radius:50%;transform:rotate(-14deg)
}
.hero-panel:before{width:820px;height:270px;left:-150px;top:30px}
.hero-panel:after{width:980px;height:340px;right:-260px;bottom:-95px;transform:rotate(12deg)}
.hero-panel-copy{
  position:absolute;left:38px;right:38px;bottom:38px;max-width:650px;text-align:left;padding:28px;
  color:white;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);border-radius:22px;backdrop-filter:blur(12px)
}
.hero-panel-copy h2{color:white;font-size:clamp(1.8rem,3vw,2.7rem)}
.hero-panel-copy p{color:rgba(255,255,255,.8);margin-bottom:0}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{padding:30px;border:1px solid var(--line);border-radius:var(--radius-lg);background:white}
.card p{color:var(--muted);margin-bottom:0}
.icon{
  width:48px;height:48px;border-radius:15px;background:var(--blue-100);color:var(--blue-600);
  display:grid;place-items:center;font-weight:900;font-size:1.2rem;margin-bottom:24px
}
.preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.preview{
  min-height:270px;padding:30px;border-radius:var(--radius-lg);border:1px solid var(--line);
  background:white;display:flex;flex-direction:column;justify-content:space-between
}
.preview .mini-graphic{height:95px;border-radius:16px;background:linear-gradient(145deg,var(--blue-100),white);position:relative;overflow:hidden}
.preview .mini-graphic:before{content:"";position:absolute;width:180px;height:55px;border:8px solid rgba(8,118,209,.16);border-radius:50%;left:-20px;top:15px;transform:rotate(-14deg)}
.preview a{text-decoration:none;color:var(--blue-600);font-weight:850}
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px;align-items:start}
.check-list{list-style:none;padding:0;margin:25px 0 0}
.check-list li{padding:13px 0 13px 34px;border-bottom:1px solid var(--line);position:relative}
.check-list li:before{content:"✓";position:absolute;left:0;color:var(--blue-600);font-weight:900}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;list-style:none;padding:0;margin:0}
.process-grid li{padding:27px;border:1px solid var(--line);border-radius:var(--radius-lg);background:white}
.step-num{width:34px;height:34px;border-radius:50%;background:var(--navy-900);color:white;display:grid;place-items:center;font-weight:900;margin-bottom:24px}
.band{padding:42px;border-radius:var(--radius-xl);background:linear-gradient(145deg,var(--navy-950),var(--navy-800));color:white}
.band h2{color:white}
.band p{color:rgba(255,255,255,.8)}
.comparison{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.compare-card{padding:28px;border:1px solid var(--line);border-radius:var(--radius-lg);background:white}
.compare-card.featured{border-color:rgba(8,118,209,.42);box-shadow:var(--shadow-soft)}
.compare-label{display:inline-block;margin-bottom:18px;padding:6px 10px;border-radius:999px;background:var(--blue-100);color:var(--blue-600);font-size:.74rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.page-hero{padding:72px 0 58px;background:linear-gradient(180deg,#f8fbfe,white)}
.page-hero .lede{max-width:760px}
.page-hero-grid{display:grid;grid-template-columns:1fr .8fr;gap:60px;align-items:center}
.page-graphic{padding:30px;border-radius:var(--radius-xl);background:white;border:1px solid var(--line);box-shadow:var(--shadow-soft)}
.map-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
.map-shell{padding:26px;border:1px solid var(--line);border-radius:var(--radius-xl);background:white;box-shadow:var(--shadow)}
.map-caption{font-size:.85rem;color:var(--muted);margin-top:16px}
.county-list{display:grid;gap:14px}
.county-card{padding:22px;border:1px solid var(--line);border-radius:var(--radius-md);background:white}
.county-card strong{display:block;color:var(--navy-900);font-size:1.1rem}
.faq{max-width:900px}
details{border-bottom:1px solid var(--line);padding:20px 0}
summary{cursor:pointer;font-weight:850;color:var(--navy-900)}
details p{color:var(--muted);padding-top:12px}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
label{font-size:.86rem;font-weight:800;color:var(--navy-900)}
input,select,textarea{
  width:100%;margin-top:7px;border:1px solid var(--line);border-radius:12px;padding:13px 14px;background:white;color:var(--ink)
}
textarea{min-height:120px;resize:vertical}
.full{grid-column:1/-1}
.notice{padding:18px;border-left:3px solid var(--blue-500);background:var(--soft);color:var(--muted)}
.site-footer{padding:66px 0 26px;background:#03102a;color:rgba(255,255,255,.73)}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr .8fr .9fr;gap:36px}
.site-footer a{color:rgba(255,255,255,.9)}
.footer-grid img{width:200px;background:white;padding:7px;border-radius:12px;margin-bottom:16px}
.footer-grid h2{color:white;font-size:1rem;letter-spacing:0}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:46px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);font-size:.85rem}
@media (max-width:980px){
 .menu-toggle{display:block}
 .primary-nav{display:none;position:absolute;top:88px;left:20px;right:20px;padding:22px;border:1px solid var(--line);border-radius:18px;background:white;box-shadow:var(--shadow);flex-direction:column;align-items:stretch}
 .primary-nav.open{display:flex}
 .page-hero-grid,.split,.map-layout{grid-template-columns:1fr}
 .card-grid,.preview-grid{grid-template-columns:repeat(2,1fr)}
 .process-grid{grid-template-columns:repeat(2,1fr)}
 .comparison{grid-template-columns:1fr}
 .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:700px){
 .container{width:min(calc(100% - 28px),var(--max))}
 .section{padding:72px 0}
 .brand img{width:178px}
 h1{font-size:clamp(2.65rem,14vw,4.5rem)}
 .hero-logo{width:min(350px,90vw);margin-bottom:30px}
 .hero-actions{flex-direction:column}
 .button{width:100%}
 .hero-panel{min-height:410px}
 .hero-panel-copy{left:18px;right:18px;bottom:18px;padding:22px}
 .card-grid,.preview-grid,.process-grid,.form-grid,.footer-grid{grid-template-columns:1fr}
 .full{grid-column:auto}
 .band{padding:30px 23px}
 .footer-bottom{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}


/* v1.0 interactive homepage topic tiles */
.topic-tile-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 38px;
}

.topic-tile {
  position: relative;
  min-height: 320px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: white;
  box-shadow: 0 10px 28px rgba(5,27,67,.06);
  text-decoration: none;
  isolation: isolate;
  transition: transform .24s ease, box-shadow .24s ease;
}

.topic-tile:hover,
.topic-tile:focus-visible {
  transform: translateY(-5px);
  box-shadow: var(--shadow);
  outline: none;
}

.topic-tile > img {
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
  transition: transform .42s ease, filter .35s ease;
}

.topic-tile:hover > img,
.topic-tile:focus-visible > img {
  transform: scale(1.035);
  filter: brightness(.4) saturate(.7);
}

.topic-question {
  position: absolute;
  inset: auto 0 0 0;
  padding: 24px 25px;
  background: linear-gradient(180deg, transparent, rgba(4,19,41,.88));
  color: white;
  z-index: 2;
  transition: opacity .22s ease;
}

.topic-question h3 {
  margin: 0;
  color: white;
  font-size: clamp(1.25rem, 2vw, 1.62rem);
}

.topic-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 30px;
  background: rgba(4,19,41,.93);
  color: white;
  opacity: 0;
  z-index: 3;
  transition: opacity .25s ease;
}

.topic-overlay h3 {
  color: white;
  font-size: 1.55rem;
  margin-bottom: 12px;
}

.topic-overlay p {
  color: rgba(255,255,255,.82);
  margin-bottom: 20px;
}

.topic-overlay span {
  color: #91d3ff;
  font-weight: 850;
}

.topic-tile:hover .topic-overlay,
.topic-tile:focus-visible .topic-overlay {
  opacity: 1;
}

.topic-tile:hover .topic-question,
.topic-tile:focus-visible .topic-question {
  opacity: 0;
}

@media (max-width: 980px) {
  .topic-tile-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 700px) {
  .topic-tile-grid { grid-template-columns: 1fr; }
  .topic-tile,
  .topic-tile > img { min-height: 290px; }
  /* Touch devices do not have reliable hover, so preserve concise text access. */
  .topic-overlay {
    position: absolute;
    inset: auto 0 0 0;
    opacity: 1;
    padding: 22px;
    background: linear-gradient(180deg, transparent, rgba(4,19,41,.96) 28%);
  }
  .topic-overlay h3 { margin-top: 48px; }
  .topic-question { display: none; }
}

/* v1.0 editorial photography treatment */
.topic-tile > img { filter: saturate(.48) contrast(.92) brightness(.88); }
.topic-tile::after { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:radial-gradient(ellipse at 50% 43%, transparent 30%, rgba(4,19,41,.42) 100%); transition:opacity .25s ease; }
.topic-tile:hover::after,.topic-tile:focus-visible::after { opacity:.18; }
.topic-tile:hover > img,.topic-tile:focus-visible > img { filter:saturate(.28) contrast(.9) brightness(.43); }
.map-runtime { min-height:650px; display:grid; place-items:center; }
.map-runtime svg { width:100%; height:auto; overflow:visible; }
.map-loading { color:var(--muted); font-weight:700; }
.county-shape { vector-effect:non-scaling-stroke; transition:filter .2s ease, opacity .2s ease; }
.county-shape.active:hover { filter:url(#countyLiftStrong); }
.county-label { pointer-events:none; font-family:Inter,system-ui,sans-serif; font-weight:750; text-anchor:middle; dominant-baseline:middle; }


/* v1.0a homepage refinements */
.site-header {
  transition: transform .32s cubic-bezier(.2,.7,.2,1), box-shadow .25s ease;
  will-change: transform;
}
.site-header.header-hidden { transform: translateY(-110%); }
.floating-schedule {
  position: fixed;
  top: 18px;
  right: 22px;
  z-index: 80;
  min-height: 44px;
  padding: 0 20px;
  border-radius: 999px;
  background: var(--blue-600);
  color: white;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 850;
  box-shadow: 0 12px 30px rgba(8,118,209,.28);
  transition: transform .2s ease, background .2s ease;
}
.floating-schedule:hover { transform: translateY(-2px); background: var(--blue-500); }
.primary-nav .button.small { visibility: hidden; pointer-events: none; }
.hero-logo { width: min(600px, 92vw); margin-bottom: 34px; }
.hero-promise { margin: -6px 0 24px; font-size: 1.12rem; }
.hero-actions-single { justify-content: center; }
.hero-actions-single .button { min-width: 235px; }
.icon-svg svg { width: 30px; height: 30px; }
.headline-dash { display: inline-block; margin: 0 .18em; }
.topic-tile .tile-image { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 320px; object-fit: cover; }
.topic-tile .tile-image-hover { opacity: 0; transform: scale(1.03); transition: opacity .35s ease, transform .45s ease, filter .35s ease; }
.topic-tile:hover .tile-image-primary,
.topic-tile:focus-visible .tile-image-primary { opacity: 0; }
.topic-tile:hover .tile-image-hover,
.topic-tile:focus-visible .tile-image-hover { opacity: 1; transform: scale(1.07); }
.topic-tile > img { position:absolute; inset:0; }
@media (max-width: 980px) {
  .primary-nav .button.small { visibility: visible; pointer-events: auto; }
  .floating-schedule { top: 15px; right: 72px; min-height: 42px; padding: 0 14px; font-size: .78rem; }
}
@media (max-width: 700px) {
  .hero-logo { width: min(440px, 94vw); }
  .floating-schedule { right: 64px; max-width: 150px; text-align:center; line-height:1.1; }
}


/* v1.0b site-wide navigation refinements */
.site-header {
  transition: box-shadow .2s ease;
  will-change: transform, opacity;
}
.site-header.header-hidden { transform: none; }

/* Why Fabric page refinements */
.why-fabric-page .page-hero {
  padding-top: 88px;
  padding-bottom: 78px;
}
.why-fabric-page .why-fabric-eyebrow {
  font-size: 1.52rem;
  letter-spacing: .06em;
  text-transform: none;
  margin-bottom: 18px;
}
.why-fabric-page .why-fabric-title {
  font-size: clamp(2.45rem, 4.8vw, 4.55rem);
  max-width: 770px;
}
.deployment-modern {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
.deployment-step {
  min-height: 215px;
  padding: 24px 18px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: linear-gradient(155deg, #fff, #f4f8fb);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.deployment-step svg {
  width: 66px;
  height: 66px;
  margin-bottom: 20px;
  stroke: var(--blue-600);
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.deployment-step h3 {
  margin: 0 0 7px;
  font-size: 1.08rem;
  letter-spacing: -.015em;
}
.deployment-step p {
  margin: 0;
  font-size: .9rem;
  color: var(--muted);
}

.compare-card.photo-card {
  position: relative;
  overflow: hidden;
  min-height: 360px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background-size: cover;
  background-position: center;
  isolation: isolate;
}
.compare-card.photo-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(255,255,255,.84);
  backdrop-filter: grayscale(1);
}
.compare-card.photo-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(255,255,255,.58), rgba(255,255,255,.94));
}
.compare-card.photo-card.money {
  background-image: url("/assets/full/photos/ggws-family-home-exterior.jpg");
}
.compare-card.photo-card.corrugated {
  background-image: url("/assets/full/photos/tampa-bay-service-area.jpg");
}
.compare-card.photo-card.fabric {
  background-image: url("/assets/full/graphics/tile-why-fabric.svg");
  background-position: center;
}

/* Full-GGWS launch: keep the recovered visual hero in the first viewport. */
.hero-fold{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);
  align-items:center;
  gap:clamp(30px,5vw,72px);
}
.hero-fold .hero-brand-stack{grid-column:1 / -1}
.hero-fold .hero-message{text-align:left}
.hero-fold .hero-message .lede{margin-inline:0}
.hero-fold .hero-actions{justify-content:flex-start}
.hero-visual-panel{margin-top:0 !important;min-height:clamp(390px,42vw,560px);box-shadow:var(--shadow)}
@media (max-width:900px){
  .hero-fold{grid-template-columns:1fr}
  .hero-fold .hero-brand-stack{grid-column:auto}
  .hero-fold .hero-message{text-align:center}
  .hero-fold .hero-message .lede{margin-inline:auto}
  .hero-fold .hero-actions{justify-content:center}
  .hero-visual-panel{min-height:340px;width:100%}
}
.compare-card.photo-card.fabric::before {
  background: rgba(255,255,255,.63);
  backdrop-filter: saturate(.9);
}
.compare-card.photo-card.fabric::after {
  background: linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,.9));
}
.compare-card.photo-card h3,
.compare-card.photo-card p,
.compare-card.photo-card .compare-label {
  position: relative;
  z-index: 2;
}
.independence-kicker {
  font-size: 1.52rem;
  letter-spacing: .06em;
  text-transform: none;
}
.financial-band {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: linear-gradient(90deg, #061a43 0%, #0876d1 64%, rgba(8,118,209,.82) 100%);
}
.financial-band::before {
  content: "";
  position: absolute;
  z-index: -2;
  top: 0;
  right: 0;
  width: 38%;
  height: 100%;
  background: url("/assets/full/photos/wind-mitigation-report.png") center top / cover no-repeat;
  opacity: .38;
  filter: saturate(.35) contrast(.9);
}
.financial-band::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, rgba(6,26,67,1) 0%, rgba(8,118,209,.96) 60%, rgba(8,118,209,.30) 100%);
}
.financial-band > * {
  max-width: 790px;
  position: relative;
}

@media (max-width: 980px) {
  .deployment-modern { grid-template-columns: repeat(2, 1fr); }
  .financial-band::before { width: 48%; }
}
@media (max-width: 700px) {
  .deployment-modern { grid-template-columns: 1fr; }
  .why-fabric-page .why-fabric-eyebrow,
  .independence-kicker { font-size: 1.25rem; }
  .financial-band::before { width: 100%; opacity: .18; }
}


/* v1.0c hero spacing refinement */
.hero{
  padding-top:32px !important;
  padding-bottom:48px !important;
}
.hero-logo{
  margin:0 auto 18px !important;
}
.hero .eyebrow{
  margin:0 0 8px !important;
}
.hero h1{
  margin-bottom:12px !important;
}
.hero .lede{
  margin-top:0;
  margin-bottom:16px !important;
}
.hero-actions{
  margin-top:18px !important;
  margin-bottom:14px !important;
}
.promise{
  margin-top:12px !important;
  margin-bottom:0 !important;
}
.hero-panel{
  margin-top:32px !important;
}
@media (min-height:800px){
  .hero{
    min-height:calc(100vh - 88px);
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
  }
}


/* v1.0d — standardized section-label typography */
.eyebrow,
.why-fabric-page .why-fabric-eyebrow,
.independence-kicker {
  font-size: 1.52rem !important;
  letter-spacing: .06em !important;
  text-transform: none !important;
  line-height: 1.15 !important;
  margin-bottom: 18px !important;
  font-weight: 850 !important;
}

.eyebrow.light {
  color: #91d3ff;
}

/* Preserve the compact above-the-fold homepage composition */
.hero .eyebrow {
  margin-bottom: 10px !important;
}

@media (max-width: 700px) {
  .eyebrow,
  .why-fabric-page .why-fabric-eyebrow,
  .independence-kicker {
    font-size: 1.24rem !important;
    line-height: 1.2 !important;
    margin-bottom: 14px !important;
  }
}


/* v1.0e - tighter above-the-fold hero */
.hero{
  padding-top:12px !important;
  padding-bottom:18px !important;
  min-height:auto !important;
}
.hero-logo{
  display:block;
  max-width:340px;
  margin:0 auto 8px !important;
}
.hero-logo img{
  display:block;
  margin:0 auto;
}
.hero .eyebrow{
  margin:2px 0 6px !important;
}
.hero h1{
  margin:4px 0 8px !important;
  line-height:1.08 !important;
}
.hero .lede{
  margin:0 auto 10px !important;
  max-width:720px;
}
.hero-actions{
  margin-top:10px !important;
  margin-bottom:10px !important;
}
.promise{
  margin-top:8px !important;
  margin-bottom:0 !important;
  line-height:1.25 !important;
}


/* v1.0f — corrected homepage hero composition */
.hero {
  padding: 6px 0 0 !important;
  min-height: calc(100vh - 88px) !important;
}

.hero > .container {
  min-height: calc(100vh - 94px);
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Restore the larger logo; remove only surrounding white space */
.hero-logo {
  width: min(72vw, 500px) !important;
  max-width: 500px !important;
  height: auto !important;
  display: block !important;
  margin: 0 auto 0 !important;
}

/* Directly beneath the logo */
.hero .hero-promise {
  margin: -2px 0 7px !important;
  line-height: 1.15 !important;
}

/* Compact brand descriptor beneath promise */
.hero .eyebrow {
  margin: 0 0 6px !important;
}

/* Reduced roughly 25%, positioned at the lower edge of the initial viewport */
.hero h1 {
  font-size: clamp(2rem, 3.45vw, 3.55rem) !important;
  line-height: 1.06 !important;
  max-width: 930px !important;
  margin: auto 0 18px !important;
}

/* Intentional breathing room after the headline */
.hero .lede {
  margin: 0 auto 22px !important;
  max-width: 770px !important;
}

.hero-actions {
  margin: 0 0 16px !important;
}

@media (max-width: 900px) {
  .hero,
  .hero > .container {
    min-height: auto !important;
  }
  .hero h1 {
    margin-top: 30px !important;
  }
}

@media (max-height: 760px) and (min-width: 901px) {
  .hero-logo {
    width: min(66vw, 455px) !important;
    max-width: 455px !important;
  }
  .hero .hero-promise {
    margin-top: -4px !important;
  }
  .hero h1 {
    font-size: clamp(1.8rem, 3vw, 3rem) !important;
    margin-bottom: 13px !important;
  }
  .hero .lede {
    margin-bottom: 12px !important;
  }
  .hero-actions {
    margin-bottom: 8px !important;
  }
}


/* v1.0g — logo tagline hierarchy correction */
.hero-logo {
  margin-bottom: -10px !important;
}

/* This line functions as the logo's tagline */
.hero .hero-promise {
  margin: 0 0 24px !important;
  line-height: 1.12 !important;
}

/* This begins a separate thought beneath the logo/tagline unit */
.hero .eyebrow {
  margin: 0 0 8px !important;
}

/* Preserve complete above-the-fold visibility */
.hero h1 {
  margin-top: auto !important;
  margin-bottom: 16px !important;
}

.hero .lede {
  margin-bottom: 18px !important;
}

.hero-actions {
  margin-bottom: 12px !important;
}

@media (max-height: 800px) and (min-width: 901px) {
  .hero .hero-promise {
    margin-bottom: 18px !important;
  }

  .hero h1 {
    margin-bottom: 12px !important;
  }

  .hero .lede {
    margin-bottom: 12px !important;
  }

  .hero-actions {
    margin-bottom: 8px !important;
  }
}


/* v1.0h — optically centered logo tagline */
.hero-brand-stack {
  width: 100%;
  display: grid;
  grid-template-rows: auto 1fr auto 1fr auto;
  justify-items: center;
  align-items: center;
  row-gap: 0;
  margin: 0 auto;
}

/* Preserve the approved large logo size */
.hero-brand-stack .hero-logo {
  grid-row: 1;
  width: min(72vw, 500px) !important;
  max-width: 500px !important;
  margin: 0 auto !important;
}

/* Tagline sits in the exact middle of the available vertical space */
.hero-brand-stack .hero-promise {
  grid-row: 3;
  margin: 0 !important;
  line-height: 1.15 !important;
  align-self: center;
}

/* Separate marketing descriptor below the centered tagline */
.hero-brand-stack .eyebrow {
  grid-row: 5;
  margin: 0 !important;
}

/* Equal spacer tracks above and below the tagline */
.hero-brand-stack {
  grid-template-rows:
    auto
    clamp(12px, 2.2vh, 24px)
    auto
    clamp(12px, 2.2vh, 24px)
    auto;
}

/* Keep all first-screen hero content visible */
.hero h1 {
  margin-top: auto !important;
}

@media (max-height: 800px) and (min-width: 901px) {
  .hero-brand-stack {
    grid-template-rows:
      auto
      clamp(8px, 1.5vh, 16px)
      auto
      clamp(8px, 1.5vh, 16px)
      auto;
  }
}

@media (max-width: 900px) {
  .hero-brand-stack {
    grid-template-rows:
      auto
      12px
      auto
      16px
      auto;
  }
}


/* v1.0i — corrected logo canvas and true optical tagline centering */
.hero-brand-stack {
  width: 100%;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  margin: 0 auto !important;
}

/* The asset is now tightly cropped, so this is the visible logo—not blank canvas. */
.hero-brand-stack .hero-logo {
  width: min(74vw, 500px) !important;
  max-width: 500px !important;
  height: auto !important;
  display: block !important;
  margin: 0 auto !important;
}

/*
  This dedicated space begins at the visible bottom of the logo and ends at
  the top of the Tampa Bay descriptor. The tagline is centered inside it.
*/
.hero-tagline-space {
  width: 100%;
  height: 82px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-tagline-space .hero-promise {
  margin: 0 !important;
  line-height: 1.15 !important;
}

.hero-brand-stack .hero-market-descriptor {
  margin: 0 !important;
}

/* Preserve the remainder of the first-screen composition. */
.hero h1 {
  margin-top: auto !important;
  margin-bottom: 16px !important;
}

.hero .lede {
  margin-bottom: 18px !important;
}

.hero-actions {
  margin-bottom: 10px !important;
}

@media (max-height: 800px) and (min-width: 901px) {
  .hero-tagline-space {
    height: 66px;
  }

  .hero-brand-stack .hero-logo {
    width: min(70vw, 470px) !important;
    max-width: 470px !important;
  }

  .hero h1 {
    margin-bottom: 12px !important;
  }

  .hero .lede {
    margin-bottom: 12px !important;
  }
}

@media (max-width: 900px) {
  .hero-tagline-space {
    height: 68px;
  }
}


/* v1.0j — calmer first-screen composition */
.hero {
  min-height: auto !important;
  padding-bottom: 0 !important;
}

.hero > .container {
  min-height: calc(100vh - 88px) !important;
  display: flex !important;
  flex-direction: column;
  align-items: center;
}

/* Keep the tagline exactly where v1.0i placed it */
.hero-tagline-space {
  height: 82px !important;
}

/* Add deliberate breathing room below the tagline */
.hero-brand-stack .hero-market-descriptor {
  margin-top: 28px !important;
}

/* Rebalance the lower copy so the paragraph ends at the viewport edge */
.hero h1 {
  margin-top: 38px !important;
  margin-bottom: 18px !important;
}

.hero .lede {
  margin: 0 auto !important;
  max-width: 770px !important;
  padding-bottom: 10px !important;
}

/* Move CTA below the initial viewport, but directly after the visible paragraph */
.hero-actions {
  margin-top: 18px !important;
  margin-bottom: 28px !important;
  transform: translateY(22px);
}

/* Ensure the first-screen copy, not the CTA, defines the viewport edge */
@media (min-width: 901px) {
  .hero > .container {
    padding-bottom: 0 !important;
  }

  .hero .lede {
    margin-top: auto !important;
    padding-bottom: 12px !important;
  }

  .hero-actions {
    flex: 0 0 auto;
  }
}

@media (max-height: 800px) and (min-width: 901px) {
  .hero-brand-stack .hero-market-descriptor {
    margin-top: 22px !important;
  }

  .hero h1 {
    margin-top: 26px !important;
    margin-bottom: 14px !important;
  }

  .hero .lede {
    padding-bottom: 8px !important;
  }

  .hero-actions {
    transform: translateY(18px);
  }
}

@media (max-width: 900px) {
  .hero-brand-stack .hero-market-descriptor {
    margin-top: 22px !important;
  }

  .hero h1 {
    margin-top: 28px !important;
  }

  .hero-actions {
    transform: none;
  }
}


/* v1.0k — structurally correct fold boundary */
.hero {
  padding: 0 !important;
  min-height: 0 !important;
}

/* This region alone occupies the first visible screen beneath the header. */
.hero-fold {
  height: calc(100svh - 88px) !important;
  min-height: 690px;
  box-sizing: border-box;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  padding-top: 6px;
  padding-bottom: 18px;
  overflow: hidden;
}

/* Keep the approved tagline position relative to the cropped logo. */
.hero-fold .hero-tagline-space {
  height: 82px !important;
}

/* Make the requested separation unmistakable. */
.hero-fold .hero-market-descriptor {
  margin-top: 54px !important;
}

.hero-message {
  margin-top: auto;
  width: 100%;
  text-align: center;
}

.hero-message h1 {
  margin: 0 0 24px !important;
}

/* The paragraph is the final content in the first-screen region. */
.hero-message .lede {
  margin: 0 auto !important;
  padding: 0 !important;
  max-width: 770px !important;
}

/* CTA begins outside the first-screen region, with no transforms. */
.hero-after-fold {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero-after-fold .hero-actions {
  margin: 22px 0 24px !important;
  transform: none !important;
}

.hero-after-fold .hero-panel {
  width: 100%;
}

@media (max-height: 800px) and (min-width: 901px) {
  .hero-fold {
    min-height: 0;
    padding-top: 2px;
    padding-bottom: 12px;
  }
  .hero-fold .hero-market-descriptor {
    margin-top: 38px !important;
  }
  .hero-message h1 {
    margin-bottom: 16px !important;
  }
}

@media (max-width: 900px) {
  .hero-fold {
    height: auto !important;
    min-height: 0;
    overflow: visible;
    padding-bottom: 24px;
  }
  .hero-fold .hero-market-descriptor {
    margin-top: 30px !important;
  }
  .hero-message {
    margin-top: 34px;
  }
}


/* v1.0l homepage refinements */
.hero h1{
  align-self:center !important;
  text-align:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
  max-width:900px !important;
}


/* v1.0m — unified page-hero typography and photographic layouts */
.page-hero h1,
.page-hero .why-fabric-title {
  font-size: clamp(2.45rem, 4.8vw, 4.55rem) !important;
  line-height: 1.03 !important;
  letter-spacing: -.045em !important;
  max-width: 900px;
}

.visual-page-hero {
  padding-top: 72px;
  padding-bottom: 82px;
}

.visual-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
  gap: clamp(38px, 6vw, 86px);
  align-items: center;
}

.visual-hero-copy .lede {
  max-width: 760px;
}

.stacked-hero-title span {
  display: block;
}

.stacked-hero-title span + span {
  margin-top: .08em;
}

.hero-photo {
  position: relative;
  margin: 0;
  min-height: 520px;
  border-radius: 30px;
  overflow: hidden;
  box-shadow: 0 28px 70px rgba(7, 29, 73, .16);
  background: #eaf1f6;
}

.hero-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(7,29,73,.02) 45%, rgba(7,29,73,.67) 100%);
}

.hero-photo img {
  width: 100%;
  height: 100%;
  min-height: 520px;
  object-fit: cover;
  display: block;
  filter: saturate(.72) contrast(.96);
}

/* Final production visual contract */
:root{--navy-900:#071d49;--blue-600:#0876d1;--ink:#10213b;--muted:#536174;--soft:#f6f7f9;--line:#dfe5eb;--max:1200px;--radius-lg:22px}
body{color:var(--ink);overflow-x:hidden}
.section{padding:112px 0}.reading{max-width:720px}.lede{color:var(--muted)}
.nav-wrap{min-height:82px}.brand img{width:190px}.primary-nav{gap:20px}.primary-nav a{min-height:44px;display:flex;align-items:center}
.site-header{box-shadow:none}.site-header[style]{transform:none!important;opacity:1!important;pointer-events:auto!important}
.floating-schedule{display:none!important}
.site-footer{padding:58px 0 24px}.footer-grid{grid-template-columns:1.35fr 1.1fr .8fr 1fr .8fr;gap:30px}
.site-footer nav{display:grid;gap:5px}.site-footer nav a{text-decoration:none}.site-footer h2{margin-bottom:12px}.site-footer p{margin-bottom:10px}
.hero{position:relative;padding:88px 0 0;text-align:left}.hero-fold{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero-copy{padding:28px 0 92px;position:relative;z-index:2}.hero h1{font-size:clamp(3rem,6vw,5.7rem)}.hero .lede{margin-inline:0}.hero-actions{justify-content:flex-start}
.hero-visual{position:relative;min-height:650px;border-radius:22px;overflow:hidden}.hero-visual video,.hero-visual img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(7,29,73,.3))}
.editorial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:48px;border-top:1px solid var(--line)}
.editorial-item{padding:30px 36px 0 0}.editorial-item+.editorial-item{padding-left:36px;border-left:1px solid var(--line)}
.editorial-number{color:var(--blue-600);font-weight:850;letter-spacing:.12em}
.story-grid,.visual-hero-grid{display:grid;grid-template-columns:55fr 45fr;gap:64px;align-items:center}
.story-grid img,.hero-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:22px}.hero-photo{margin:0}.hero-photo figcaption{display:none}
.explore-list{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:42px}.explore-row{display:grid;grid-template-columns:48px 1fr;gap:12px;padding:28px 24px 28px 0;border-bottom:1px solid var(--line);text-decoration:none}.explore-row:nth-child(even){padding-left:24px;border-left:1px solid var(--line)}
.explore-row strong{display:block;color:var(--navy-900);font-size:1.15rem}.explore-row span:first-child{color:var(--blue-600);font-weight:850}
.final-cta{background:var(--navy-900);color:white}.final-cta h2{color:white}.final-cta .lede{color:#dce9f5}
.editorial-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;list-style:none;padding:0;border-top:1px solid var(--line)}.editorial-steps li{padding:28px 24px 0 0}.editorial-steps li+li{padding-left:24px;border-left:1px solid var(--line)}
.product-video-frame{max-width:900px;aspect-ratio:16/9}.product-video-frame iframe{width:100%;height:100%;border:0;border-radius:22px}.product-video-section .section-heading{max-width:720px}.product-video-fallback,.media-attribution{display:none!important}
.bounded-product-video{position:relative;overflow:hidden;border-radius:22px;background:#071d49}.bounded-product-video iframe{pointer-events:none}.bounded-video-cover,.bounded-video-replay{position:absolute;inset:0;width:100%;border:0;background:linear-gradient(135deg,#071d49,#075c8b);color:#fff;font:800 clamp(1rem,2.4vw,1.4rem) inherit;cursor:pointer}.bounded-video-cover[hidden],.bounded-video-replay[hidden]{display:none}.bounded-video-cover span,.bounded-video-replay span{display:inline-grid;place-items:center;min-height:48px;padding:.7rem 1.2rem;border:2px solid #fff;border-radius:999px}
.comparison{border-top:1px solid var(--line)}.compare-card{border:0;border-radius:0;padding:32px 32px 0 0}.compare-card+.compare-card{padding-left:32px;border-left:1px solid var(--line)}.compare-card.featured{box-shadow:none;border-left:3px solid var(--blue-600)}
.county-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}.county-columns h3{padding:30px}.county-columns h3+h3{border-left:1px solid var(--line)}
.mission-list{counter-reset:mission;display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line)}.mission-list article{padding:36px 44px 36px 0;border-bottom:1px solid var(--line)}.mission-list article:nth-child(even){padding-left:44px;border-left:1px solid var(--line)}
.mission-list article:before{counter-increment:mission;content:"0" counter(mission);display:block;color:var(--blue-600);font-weight:850;margin-bottom:12px}
.legal-page main,.legal-content{max-width:720px;margin-inline:auto}.schedule-page input,.schedule-page select,.schedule-page textarea{font-size:16px;min-height:48px}.schedule-page button{min-height:48px}
@media(max-width:980px){.footer-grid{grid-template-columns:1fr 1fr 1fr}.hero-fold,.story-grid,.visual-hero-grid{grid-template-columns:1fr}.hero-visual{min-height:520px}.editorial-steps{grid-template-columns:1fr 1fr}.editorial-steps li{border-bottom:1px solid var(--line)}}
@media(max-width:700px){.section{padding:72px 0}.hero{padding-top:48px}.hero-fold{gap:22px}.hero-copy{padding-bottom:22px}.hero-visual{min-height:440px;order:2}.hero-actions{flex-direction:column}.editorial-grid,.explore-list,.county-columns,.mission-list,.footer-grid{grid-template-columns:1fr}.editorial-item,.editorial-item+.editorial-item,.explore-row,.explore-row:nth-child(even),.county-columns h3,.county-columns h3+h3,.mission-list article,.mission-list article:nth-child(even){padding:24px 0;border-left:0;border-bottom:1px solid var(--line)}.editorial-steps{grid-template-columns:1fr}.editorial-steps li,.editorial-steps li+li{padding:22px 0;border-left:0}.nav-wrap{min-height:74px}.primary-nav{top:74px}.button,.menu-toggle,.primary-nav a{min-height:44px}.footer-bottom{margin-top:30px}}

.media-source {
  position: absolute;
  z-index: 3;
  top: 12px;
  right: 12px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(2, 23, 51, .78);
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
}

.media-attribution {
  padding-top: 20px;
  padding-bottom: 20px;
  background: #f3f6f9;
}

.media-attribution p {
  margin: 0;
  color: #334155;
  font-size: .82rem;
  line-height: 1.55;
}

.product-video-section .section-heading {
  max-width: 760px;
  margin-bottom: 28px;
}

.product-video-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 26px;
  background: #071d49;
  box-shadow: 0 24px 60px rgba(7, 29, 73, .18);
}

.product-video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.product-video-fallback {
  margin: 16px 0 0;
  font-size: .9rem;
  color: #334155;
}

.hero-photo-insurance img {
  object-position: center;
}

.hero-photo figcaption {
  position: absolute;
  z-index: 2;
  left: 28px;
  right: 28px;
  bottom: 24px;
  color: white;
  font-size: .97rem;
  line-height: 1.45;
  font-weight: 700;
}

.hero-photo-consultation img {
  object-position: center 32%;
}

.hero-photo-trust img {
  object-position: center;
}

.hero-promise-card {
  margin-top: 34px;
  padding: 28px 30px;
  border-radius: 24px;
}

.hero-promise-card h2 {
  margin-bottom: 10px;
  font-size: clamp(1.55rem, 2.2vw, 2.15rem);
}

.hero-promise-card p:last-child {
  margin-bottom: 0;
}

.icon-svg {
  display: flex;
  align-items: center;
  justify-content: center;
}

.icon-svg svg {
  width: 27px;
  height: 27px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media (max-width: 980px) {
  .visual-hero-grid {
    grid-template-columns: 1fr;
  }

  .hero-photo,
  .hero-photo img {
    min-height: 440px;
  }
}

@media (max-width: 700px) {
  .page-hero h1,
  .page-hero .why-fabric-title {
    font-size: clamp(2.25rem, 11vw, 3.45rem) !important;
  }

  .visual-page-hero {
    padding-top: 52px;
    padding-bottom: 62px;
  }

  .hero-photo,
  .hero-photo img {
    min-height: 360px;
  }

  .hero-promise-card {
    padding: 24px 22px;
  }
}


/* v1.0n — dependable static service-area map */
.static-map-shell {
  padding: clamp(14px, 2vw, 24px);
  background: linear-gradient(145deg, #ffffff, #f3f8fb);
  border: 1px solid var(--line);
  border-radius: 30px;
  box-shadow: 0 24px 64px rgba(7,29,73,.10);
}

.static-service-map {
  display: block;
  width: 100%;
  height: auto;
  max-height: 720px;
  object-fit: contain;
  border-radius: 22px;
}

.static-map-shell .map-caption {
  max-width: 680px;
  margin: 16px auto 2px;
  text-align: center;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.5;
}


/* v1.0o service-area image */
.static-service-map {
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  border-radius: 24px;
}
.static-map-shell {
  padding: 0;
  overflow: hidden;
  background: #fff;
}

/* v1.0o animated FAQ */
.faq-item { overflow: hidden; }
.faq-question {
  list-style: none;
  position: relative;
  padding-right: 38px;
}
.faq-question::-webkit-details-marker { display: none; }
.faq-question::after {
  content: "+";
  position: absolute;
  right: 2px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.65rem;
  font-weight: 500;
  color: var(--blue-600);
  transition: transform .28s ease;
}
.faq-item[open] .faq-question::after {
  transform: translateY(-50%) rotate(45deg);
}
.faq-answer {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  transition: grid-template-rows .34s ease, opacity .28s ease;
}
.faq-answer > p {
  overflow: hidden;
  margin: 0;
  padding-top: 0;
  transition: padding-top .34s ease;
}
.faq-item[open] .faq-answer {
  grid-template-rows: 1fr;
  opacity: 1;
}
.faq-item[open] .faq-answer > p { padding-top: 12px; }
@media (prefers-reduced-motion: reduce) {
  .faq-answer,
  .faq-answer > p,
  .faq-question::after { transition: none; }
}


/* v1.0p Why GulfGuard trust standards */
.trust-standards-section .eyebrow {
  margin-bottom: 28px !important;
  text-align: left;
}


/* v1.0q smoother FAQ motion */
.faq-answer {
  display: block !important;
  height: 0;
  overflow: hidden;
  opacity: 0;
  grid-template-rows: none !important;
  will-change: height, opacity;
  transition:
    height .42s cubic-bezier(.22, 1, .36, 1),
    opacity .26s ease !important;
}

.faq-answer > p {
  overflow: visible !important;
  margin: 0 !important;
  padding-top: 12px !important;
  padding-bottom: 2px;
  transition: none !important;
}

.faq-item[open] .faq-answer {
  opacity: 1;
  grid-template-rows: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .faq-answer {
    transition: none !important;
  }
}


/* v1.0r screwdriver icon refinement */
.deployment-step svg {
  stroke-width: 1.65;
}
.deployment-step:nth-child(3) svg {
  width: 70px;
  height: 70px;
}


/* v1.0t approved Attach bolt icon */
.deployment-icon-image {
  width: 72px;
  height: 72px;
  object-fit: contain;
  margin-bottom: 18px;
  display: block;
}


/* v1.0u — living consultation CTA */
.floating-schedule {
  isolation: isolate;
  overflow: hidden;
  animation: consultationBreath 10s ease-in-out infinite;
  will-change: transform, box-shadow, filter;
}

.floating-schedule::before {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: inherit;
  z-index: -1;
  background: radial-gradient(circle at center, rgba(20,149,232,.32), transparent 66%);
  opacity: .28;
  transform: scale(.92);
  animation: consultationGlow 10s ease-in-out infinite;
}

.floating-schedule::after {
  content: "";
  position: absolute;
  top: -30%;
  bottom: -30%;
  width: 34%;
  left: -55%;
  transform: skewX(-18deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.24), transparent);
  animation: consultationShimmer 12s ease-in-out infinite;
}

.floating-schedule:hover {
  transform: translateY(-2px) scale(1.015) !important;
  box-shadow: 0 18px 38px rgba(8,118,209,.34) !important;
}

.floating-schedule:active {
  transform: translateY(0) scale(.975) !important;
  transition-duration: .08s !important;
}

.floating-schedule.nav-is-hidden {
  animation: consultationAttention 1.7s cubic-bezier(.22,1,.36,1) 1;
}

@keyframes consultationBreath {
  0%, 68%, 100% {
    transform: scale(1);
    box-shadow: 0 12px 28px rgba(8,118,209,.23);
    filter: saturate(1);
  }
  76% {
    transform: scale(1.022);
    box-shadow: 0 17px 38px rgba(8,118,209,.33);
    filter: saturate(1.07);
  }
  84% {
    transform: scale(1);
    box-shadow: 0 12px 28px rgba(8,118,209,.23);
    filter: saturate(1);
  }
}

@keyframes consultationGlow {
  0%, 68%, 100% { opacity: .16; transform: scale(.92); }
  76% { opacity: .52; transform: scale(1.16); }
  84% { opacity: .16; transform: scale(.92); }
}

@keyframes consultationShimmer {
  0%, 78% { left: -55%; opacity: 0; }
  80% { opacity: .18; }
  88% { left: 120%; opacity: 0; }
  100% { left: 120%; opacity: 0; }
}

@keyframes consultationAttention {
  0%, 100% { transform: scale(1); }
  45% { transform: scale(1.028); }
}

/* Scroll reveals */
.reveal,
.reveal-section > .container {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity .72s cubic-bezier(.22,1,.36,1),
    transform .72s cubic-bezier(.22,1,.36,1);
}

.reveal.is-visible,
.reveal-section.is-visible > .container {
  opacity: 1;
  transform: translateY(0);
}

.reveal-delay-1 { transition-delay: .09s; }
.reveal-delay-2 { transition-delay: .18s; }
.reveal-delay-3 { transition-delay: .27s; }

/* Consultation page */
.consultation-hero {
  overflow: hidden;
}

.consultation-trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}

.consultation-trust-row span {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  color: var(--navy-900);
  font-size: .82rem;
  font-weight: 800;
}

.consultation-visual {
  min-height: 500px;
  position: relative;
  display: grid;
  place-items: center;
}

.consultation-orbit {
  position: absolute;
  border: 1px solid rgba(8,118,209,.16);
  border-radius: 50%;
}

.consultation-orbit-one {
  width: 440px;
  height: 440px;
}

.consultation-orbit-two {
  width: 320px;
  height: 320px;
}

.consultation-home-card {
  position: relative;
  z-index: 2;
  width: min(360px, 86%);
  padding: 42px 34px;
  border: 1px solid rgba(223,231,239,.9);
  border-radius: 30px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 30px 80px rgba(7,29,73,.16);
  text-align: center;
  backdrop-filter: blur(14px);
}

.consultation-home-icon {
  width: 88px;
  height: 88px;
  margin: 0 auto 24px;
  display: grid;
  place-items: center;
  border-radius: 26px;
  background: var(--blue-100);
}

.consultation-home-icon svg {
  width: 58px;
  fill: none;
  stroke: var(--blue-600);
  stroke-width: 3;
  stroke-linejoin: round;
}

.consultation-home-card strong {
  display: block;
  color: var(--navy-900);
  font-size: 1.3rem;
  margin-bottom: 8px;
}

.consultation-home-card span {
  color: var(--muted);
}

.consultation-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-top: 42px;
}

.consultation-step {
  min-height: 260px;
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: white;
  box-shadow: 0 12px 34px rgba(7,29,73,.06);
}

.consultation-step-number {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  margin-bottom: 28px;
  border-radius: 50%;
  background: var(--navy-900);
  color: white;
  font-weight: 900;
}

.consultation-step p {
  color: var(--muted);
  margin-bottom: 0;
}

.consultation-prep-grid {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 60px;
  align-items: start;
}

.consultation-checklist {
  margin-top: 30px;
}

.consultation-info-card {
  padding: 38px;
  border-radius: 28px;
  background: linear-gradient(145deg, var(--navy-950), var(--navy-800));
  color: white;
  box-shadow: var(--shadow);
}

.consultation-info-card h3 {
  color: white;
  font-size: clamp(1.7rem, 2.4vw, 2.45rem);
}

.consultation-info-card > p:not(.eyebrow) {
  color: rgba(255,255,255,.78);
}

.consultation-mini-timeline {
  display: grid;
  gap: 12px;
  margin-top: 28px;
}

.consultation-mini-timeline span {
  position: relative;
  padding: 15px 16px 15px 42px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 14px;
  background: rgba(255,255,255,.07);
  font-weight: 750;
}

.consultation-mini-timeline span::before {
  content: "✓";
  position: absolute;
  left: 16px;
  color: #91d3ff;
}

.consultation-booking-intro {
  max-width: 840px;
}

.consultation-progress {
  display: grid;
  grid-template-columns: auto 1fr auto 1fr auto 1fr auto;
  align-items: center;
  gap: 14px;
  margin: 46px 0 34px;
}

.progress-step {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--muted);
  white-space: nowrap;
}

.progress-step span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: white;
  font-size: .85rem;
  font-weight: 900;
}

.progress-step.active {
  color: var(--navy-900);
}

.progress-step.active span {
  background: var(--blue-600);
  color: white;
  border-color: var(--blue-600);
}

.progress-line {
  height: 1px;
  background: var(--line);
}

.consultation-form {
  padding: 38px;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: white;
  box-shadow: 0 18px 50px rgba(7,29,73,.08);
}

.consultation-form-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  margin-top: 28px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
}

.consultation-form-footer p {
  max-width: 600px;
  margin: 0;
  color: var(--muted);
  font-size: .92rem;
}

@media (max-width: 980px) {
  .consultation-steps {
    grid-template-columns: repeat(2, 1fr);
  }

  .consultation-prep-grid {
    grid-template-columns: 1fr;
  }

  .consultation-progress {
    grid-template-columns: repeat(4, 1fr);
  }

  .progress-line {
    display: none;
  }

  .progress-step {
    flex-direction: column;
    text-align: center;
    white-space: normal;
  }
}

@media (max-width: 700px) {
  .consultation-visual {
    min-height: 380px;
  }

  .consultation-orbit-one {
    width: 330px;
    height: 330px;
  }

  .consultation-orbit-two {
    width: 240px;
    height: 240px;
  }

  .consultation-steps {
    grid-template-columns: 1fr;
  }

  .consultation-step {
    min-height: auto;
  }

  .consultation-progress {
    grid-template-columns: 1fr 1fr;
    gap: 18px;
  }

  .consultation-form {
    padding: 24px;
  }

  .consultation-form-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .floating-schedule {
    animation: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .floating-schedule,
  .floating-schedule::before,
  .floating-schedule::after {
    animation: none !important;
  }

  .reveal,
  .reveal-section > .container {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}


/* v1.0v — gentle page transitions */
.page-transition-layer {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: #fff;
  opacity: 1;
  pointer-events: none;
  transition: opacity .5s cubic-bezier(.22, 1, .36, 1);
}

html.page-ready .page-transition-layer {
  opacity: 0;
}

html.page-leaving .page-transition-layer {
  opacity: 1;
  pointer-events: auto;
}

@media (prefers-reduced-motion: reduce) {
  .page-transition-layer {
    display: none;
    transition: none;
  }
}


/* v1.0w — keep navigation visible during internal page fades */
.page-transition-layer {
  top: 88px !important;
}

/* One-time welcome splash */
.site-splash {
  position: fixed;
  inset: 0;
  z-index: 10020;
  display: grid;
  place-items: center;
  background: #fff;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.site-splash.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.site-splash.is-leaving {
  opacity: 0;
  transition: opacity .62s cubic-bezier(.22, 1, .36, 1);
}

.site-splash-content {
  width: min(90vw, 820px);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transform: translateY(8px);
  opacity: 0;
}

.site-splash.is-active .site-splash-content {
  animation: splashContentArrival .72s cubic-bezier(.22, 1, .36, 1) .08s forwards;
}

.site-splash-welcome {
  margin: 0 0 2px;
  color: var(--navy-900);
  font-size: clamp(1.45rem, 2.6vw, 2.35rem);
  font-weight: 760;
  letter-spacing: -.025em;
}

.site-splash-logo {
  width: min(76vw, 650px);
  max-width: 650px;
  height: auto;
  margin: 0 auto -2px;
}

.site-splash-tagline {
  margin: 0;
  color: var(--blue-600);
  font-size: clamp(1.65rem, 3.4vw, 3.15rem);
  line-height: 1.1;
  font-weight: 850;
  letter-spacing: -.04em;
}

@keyframes splashContentArrival {
  from {
    opacity: 0;
    transform: translateY(18px) scale(.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (max-width: 700px) {
  .page-transition-layer {
    top: 88px !important;
  }

  .site-splash-content {
    width: min(92vw, 620px);
  }

  .site-splash-logo {
    width: min(88vw, 520px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-splash.is-active .site-splash-content {
    animation: none;
    opacity: 1;
    transform: none;
  }

  .site-splash.is-leaving {
    transition: none;
  }
}


/* v1.0x interactive consultation flow */
.consultation-flow {
  position: relative;
  min-height: 650px;
}

.consultation-step-panel {
  display: none;
  opacity: 0;
  transform: translateX(22px);
}

.consultation-step-panel.active {
  display: block;
  animation: flowPanelIn .42s cubic-bezier(.22,1,.36,1) forwards;
}

@keyframes flowPanelIn {
  from { opacity: 0; transform: translateX(22px); }
  to { opacity: 1; transform: translateX(0); }
}

.consultation-form-heading {
  max-width: 760px;
  margin-bottom: 30px;
}

.consultation-form-heading > span {
  display: inline-block;
  margin-bottom: 9px;
  color: var(--blue-600);
  font-size: .78rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .11em;
}

.consultation-form-heading h3 {
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  margin-bottom: 12px;
}

.consultation-form-heading p {
  color: var(--muted);
  margin: 0;
}

.field-error,
.appointment-error,
.consent-error {
  display: none;
  margin-top: 7px;
  color: #a52a2a;
  font-size: .8rem;
  font-weight: 700;
}

label.invalid input,
label.invalid select,
label.invalid textarea {
  border-color: #b64242;
  box-shadow: 0 0 0 3px rgba(182,66,66,.08);
}

label.invalid .field-error,
.appointment-error.visible,
.consent-error.visible {
  display: block;
}

.split-actions {
  justify-content: flex-end;
}

.split-actions .button.secondary {
  width: auto;
}

.appointment-day-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 34px;
}

.appointment-day,
.appointment-time {
  border: 1px solid var(--line);
  background: white;
  border-radius: 18px;
  color: var(--ink);
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.appointment-day {
  min-height: 130px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.appointment-day span {
  color: var(--blue-600);
  font-size: .83rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.appointment-day strong {
  margin: 4px 0 8px;
  font-size: 1.25rem;
  color: var(--navy-900);
}

.appointment-day small {
  color: var(--muted);
}

.appointment-day:hover,
.appointment-time:hover {
  transform: translateY(-2px);
  border-color: rgba(8,118,209,.48);
  box-shadow: 0 10px 26px rgba(7,29,73,.08);
}

.appointment-day.selected,
.appointment-time.selected {
  background: var(--blue-100);
  border-color: var(--blue-600);
  box-shadow: 0 0 0 3px rgba(8,118,209,.09);
}

.appointment-time-label {
  margin-bottom: 12px;
  color: var(--navy-900);
  font-weight: 850;
}

.appointment-time-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.appointment-time {
  min-height: 56px;
  padding: 0 16px;
  font-weight: 800;
}

.review-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.review-grid article {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--soft);
}

.review-grid article > span,
.confirmation-summary span {
  display: block;
  margin-bottom: 7px;
  color: var(--blue-600);
  font-size: .76rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .09em;
}

.review-grid strong,
.confirmation-summary strong {
  display: block;
  color: var(--navy-900);
  font-size: 1.08rem;
}

.review-grid p {
  margin: 7px 0 0;
  color: var(--muted);
}

.confirmation-consent {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 26px;
  color: var(--muted);
  font-weight: 650;
}

.confirmation-consent input {
  width: auto;
  margin: 4px 0 0;
}

.consultation-confirmation {
  padding: 50px 42px;
  text-align: center;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: white;
  box-shadow: 0 20px 56px rgba(7,29,73,.09);
}

.confirmation-check {
  width: 90px;
  height: 90px;
  margin: 0 auto 22px;
}

.confirmation-check svg {
  width: 100%;
  fill: none;
  stroke: var(--blue-600);
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.confirmation-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin: 34px 0;
}

.confirmation-summary > div {
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--soft);
  text-align: left;
}

.confirmation-next {
  max-width: 680px;
  margin: 0 auto 32px;
  padding: 26px;
  border-radius: 20px;
  background: var(--navy-950);
  color: white;
  text-align: left;
}

.confirmation-next h3 {
  color: white;
}

.confirmation-next .check-list li {
  border-color: rgba(255,255,255,.12);
}

@media (max-width: 800px) {
  .appointment-day-grid,
  .review-grid,
  .confirmation-summary {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 600px) {
  .appointment-day-grid,
  .appointment-time-grid,
  .review-grid,
  .confirmation-summary {
    grid-template-columns: 1fr;
  }

  .consultation-form-footer.split-actions {
    flex-direction: column-reverse;
  }

  .consultation-form-footer.split-actions .button {
    width: 100%;
  }

  .consultation-confirmation {
    padding: 36px 22px;
  }
}


/* v1.0y — split consultation experience */
.consultation-split-shell {
  display: grid;
  grid-template-columns: minmax(430px, 46vw) minmax(0, 1fr);
  min-height: calc(100vh - 88px);
}

.consultation-persistent-panel {
  position: sticky;
  top: 88px;
  height: calc(100vh - 88px);
  overflow-y: auto;
  background:
    radial-gradient(circle at 15% 7%, rgba(20,149,232,.13), transparent 30%),
    linear-gradient(145deg, #f8fbfe, #edf5fa);
  border-right: 1px solid var(--line);
  scrollbar-width: thin;
}

.consultation-persistent-inner {
  width: min(100%, 760px);
  margin: 0 auto;
  padding: 42px clamp(26px, 4vw, 56px) 60px;
}

.consultation-panel-intro {
  margin-bottom: 25px;
}

.consultation-panel-intro h2 {
  font-size: clamp(2rem, 3vw, 3.15rem);
  margin-bottom: 10px;
}

.consultation-panel-intro > p:last-child {
  max-width: 640px;
  color: var(--muted);
}

.consultation-persistent-panel .consultation-progress {
  margin: 26px 0 22px;
}

.consultation-persistent-panel .progress-step strong {
  font-size: .76rem;
}

.consultation-persistent-panel .consultation-flow {
  min-height: 0;
}

.consultation-persistent-panel .consultation-form,
.consultation-persistent-panel .consultation-confirmation {
  padding: 28px;
  box-shadow: 0 16px 42px rgba(7,29,73,.08);
}

.consultation-persistent-panel .consultation-form-heading {
  margin-bottom: 24px;
}

.consultation-persistent-panel .consultation-form-heading h3 {
  font-size: clamp(1.5rem, 2.25vw, 2.2rem);
}

.consultation-persistent-panel .form-grid {
  gap: 13px;
}

.consultation-persistent-panel input,
.consultation-persistent-panel select,
.consultation-persistent-panel textarea {
  padding: 10px 12px;
}

.consultation-persistent-panel textarea {
  min-height: 84px;
}

.consultation-persistent-panel .appointment-day-grid {
  grid-template-columns: repeat(2, 1fr);
}

.consultation-persistent-panel .appointment-day {
  min-height: 104px;
}

.consultation-information-column {
  min-width: 0;
  background: #fff;
}

.consultation-information-column .container {
  width: min(calc(100% - 52px), 960px);
}

.consultation-information-column .visual-hero-grid {
  grid-template-columns: 1fr;
}

.consultation-information-column .consultation-visual {
  min-height: 390px;
}

.consultation-information-column .consultation-steps {
  grid-template-columns: repeat(2, 1fr);
}

.consultation-information-column .consultation-prep-grid {
  grid-template-columns: 1fr;
}

@media (max-width: 1180px) {
  .consultation-split-shell {
    grid-template-columns: minmax(390px, 48vw) minmax(0, 1fr);
  }

  .consultation-persistent-inner {
    padding-inline: 26px;
  }

  .consultation-persistent-panel .consultation-progress {
    grid-template-columns: repeat(4, 1fr);
  }

  .consultation-persistent-panel .progress-line {
    display: none;
  }

  .consultation-persistent-panel .progress-step {
    flex-direction: column;
    text-align: center;
    white-space: normal;
  }
}

@media (max-width: 900px) {
  .consultation-split-shell {
    display: flex;
    flex-direction: column;
  }

  .consultation-persistent-panel {
    position: relative;
    top: auto;
    height: auto;
    overflow: visible;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .consultation-persistent-inner {
    width: min(calc(100% - 28px), 820px);
    padding: 36px 0 46px;
  }

  .consultation-information-column .container {
    width: min(calc(100% - 28px), var(--max));
  }
}

@media (max-width: 600px) {
  .consultation-persistent-panel .appointment-day-grid {
    grid-template-columns: 1fr;
  }

  .consultation-persistent-panel .consultation-form,
  .consultation-persistent-panel .consultation-confirmation {
    padding: 22px 18px;
  }
}

/* v1.1a — mobile and tablet art-direction pass */
@media (max-width: 900px) {
  html, body { overflow-x: hidden; }

  .site-header { min-height: 72px; }
  .site-header .container,
  .topbar .container {
    min-height: 72px;
    gap: 10px;
    padding-left: 14px;
    padding-right: 14px;
  }

  .site-logo,
  .brand img,
  .nav-logo {
    max-width: 118px !important;
    height: auto;
  }

  .floating-schedule {
    min-height: 42px;
    padding: 0 13px !important;
    font-size: .76rem !important;
    line-height: 1.05;
    white-space: nowrap;
    box-shadow: 0 10px 24px rgba(8,118,209,.24);
  }

  .menu-toggle {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    flex: 0 0 42px;
  }

  .mobile-nav,
  .nav-links {
    max-height: calc(100vh - 72px);
    overflow-y: auto;
  }

  .mobile-nav a,
  .nav-links a {
    min-height: 48px;
    display: flex;
    align-items: center;
  }

  .page-transition-layer { top: 72px !important; }

  .page-hero,
  .visual-page-hero {
    padding-top: 44px !important;
    padding-bottom: 54px !important;
  }

  .page-hero h1,
  .page-hero .why-fabric-title {
    font-size: clamp(2.2rem, 10.4vw, 3.45rem) !important;
    line-height: 1.01 !important;
    letter-spacing: -.045em !important;
  }

  .page-hero .lede,
  .visual-hero-copy .lede {
    font-size: 1rem;
    line-height: 1.62;
  }

  .eyebrow,
  .why-fabric-page .why-fabric-eyebrow,
  .independence-kicker {
    font-size: 1.1rem !important;
    line-height: 1.18 !important;
  }

  .section { padding-top: 58px; padding-bottom: 58px; }
  .section-soft { padding-top: 58px; padding-bottom: 58px; }

  .card,
  .band,
  .consultation-step,
  .hero-promise-card,
  .consultation-info-card {
    border-radius: 22px;
  }

  .hero-photo,
  .hero-photo img {
    min-height: 380px !important;
  }

  .hero-photo figcaption {
    left: 20px;
    right: 20px;
    bottom: 18px;
    font-size: .9rem;
  }

  .static-map-shell {
    margin-left: -14px;
    margin-right: -14px;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    box-shadow: none;
  }

  .static-service-map { border-radius: 0; }

  .faq-item { border-radius: 16px; }
  .faq-question {
    min-height: 58px;
    padding: 17px 44px 17px 0;
    font-size: 1rem;
    line-height: 1.35;
  }
  .faq-answer > p {
    font-size: .96rem;
    line-height: 1.62;
    padding-bottom: 8px;
  }

  .consultation-persistent-panel {
    position: relative !important;
    top: auto !important;
    height: auto !important;
    overflow: visible !important;
  }

  .consultation-persistent-inner {
    width: min(calc(100% - 24px), 760px) !important;
    padding-top: 30px !important;
    padding-bottom: 42px !important;
  }

  .consultation-panel-intro h2 {
    font-size: clamp(2rem, 9vw, 2.8rem) !important;
  }

  .consultation-persistent-panel .consultation-form,
  .consultation-persistent-panel .consultation-confirmation {
    padding: 24px 18px !important;
    border-radius: 22px;
  }

  .consultation-persistent-panel .form-grid { grid-template-columns: 1fr !important; }
  .consultation-persistent-panel .form-grid .full { grid-column: auto !important; }

  .consultation-persistent-panel input,
  .consultation-persistent-panel select,
  .consultation-persistent-panel textarea {
    min-height: 48px;
    font-size: 16px;
  }
  .consultation-persistent-panel textarea { min-height: 112px; }

  .consultation-persistent-panel .appointment-day-grid,
  .consultation-persistent-panel .appointment-time-grid {
    grid-template-columns: 1fr !important;
  }

  .consultation-persistent-panel .appointment-day,
  .consultation-persistent-panel .appointment-time {
    min-height: 58px;
  }

  .consultation-form-footer,
  .consultation-form-footer.split-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .consultation-form-footer .button,
  .consultation-form-footer.split-actions .button {
    width: 100%;
    min-height: 50px;
  }

  .consultation-information-column .consultation-steps {
    grid-template-columns: 1fr !important;
  }

  .site-footer .container,
  footer .container { padding-left: 18px; padding-right: 18px; }
}

@media (max-width: 480px) {
  .hero-brand-stack .hero-logo,
  .hero-logo {
    width: min(88vw, 430px) !important;
  }

  .hero-tagline-space { height: 64px !important; }
  .hero .hero-promise { font-size: .95rem; }
  .hero .eyebrow { font-size: .93rem !important; }

  .hero h1 {
    font-size: clamp(2rem, 10.2vw, 2.85rem) !important;
    max-width: 360px !important;
  }

  .hero .lede {
    font-size: .96rem;
    line-height: 1.58;
  }

  .hero-actions .button,
  .button { min-height: 48px; }

  .consultation-trust-row { gap: 8px; }
  .consultation-trust-row span {
    width: 100%;
    justify-content: center;
  }

  .consultation-progress {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 6px !important;
  }
  .consultation-progress .progress-step strong {
    font-size: .66rem !important;
  }
  .consultation-progress .progress-step span {
    width: 30px;
    height: 30px;
  }
}

@media (min-width: 701px) and (max-width: 1024px) {
  .visual-hero-grid { gap: 38px; }
  .consultation-split-shell { grid-template-columns: 1fr !important; }
  .consultation-persistent-panel {
    position: relative !important;
    top: auto !important;
    height: auto !important;
  }
  .consultation-persistent-inner { max-width: 820px; }
  .consultation-information-column .consultation-steps { grid-template-columns: repeat(2, 1fr); }
}


/* =========================================================
   v1.2a — Calm Morning Light visual system
   ========================================================= */

:root {
  --canvas-top: #fcfcfd;
  --canvas-mid: #f6f8fa;
  --canvas-bottom: #fbfcfd;
  --surface-white: rgba(255,255,255,.94);
  --surface-glass: rgba(255,255,255,.76);
  --shadow-soft: 0 18px 48px rgba(6,30,68,.075);
  --shadow-medium: 0 24px 62px rgba(6,30,68,.095);
  --shadow-lifted: 0 30px 78px rgba(6,30,68,.12);
}

html {
  background: var(--canvas-mid);
}

body {
  background:
    radial-gradient(circle at 12% 3%, rgba(255,255,255,.98) 0, rgba(255,255,255,.74) 18%, transparent 43%),
    linear-gradient(180deg, var(--canvas-top) 0%, var(--canvas-mid) 48%, var(--canvas-bottom) 100%) !important;
  background-attachment: fixed;
}

main {
  position: relative;
  isolation: isolate;
}

main::before {
  content: "";
  position: fixed;
  inset: 88px 0 0;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(circle at 10% 8%, rgba(255,255,255,.88), transparent 32%),
    radial-gradient(circle at 82% 22%, rgba(20,149,232,.035), transparent 35%),
    linear-gradient(180deg, rgba(255,255,255,.3), rgba(241,245,248,.18));
}

.section,
.page-hero,
.hero {
  background: transparent !important;
}

.section-soft {
  position: relative;
  background:
    linear-gradient(180deg, rgba(242,245,248,.68), rgba(247,249,251,.52)) !important;
  border-top: 1px solid rgba(210,220,229,.45);
  border-bottom: 1px solid rgba(210,220,229,.35);
}

.card,
.band,
.map-shell,
.static-map-shell,
.consultation-step,
.consultation-form,
.consultation-confirmation,
.hero-photo,
.consultation-home-card,
.review-grid article,
.confirmation-summary > div,
details,
.faq-item {
  background: var(--surface-white) !important;
  border-color: rgba(210,220,229,.72) !important;
  box-shadow: var(--shadow-soft) !important;
}

.card:hover,
.consultation-step:hover,
.appointment-day:hover,
.appointment-time:hover {
  box-shadow: var(--shadow-medium) !important;
}

.consultation-home-card,
.floating-schedule,
.hero-promise-card,
.consultation-info-card {
  backdrop-filter: blur(16px) saturate(1.05);
  -webkit-backdrop-filter: blur(16px) saturate(1.05);
}

.consultation-home-card,
.hero-promise-card {
  background: var(--surface-glass) !important;
  border: 1px solid rgba(255,255,255,.68) !important;
}

.hero-photo,
.static-map-shell,
.consultation-info-card,
.consultation-confirmation {
  box-shadow: var(--shadow-lifted) !important;
}

.hero-photo img,
.topic-tile img,
.static-service-map,
img[class*="photo"],
img[class*="visual"] {
  filter: saturate(.84) contrast(.96) brightness(1.015) sepia(.025);
}

.hero-photo::before,
.topic-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(145deg, rgba(255,248,238,.055), transparent 48%),
    radial-gradient(circle at 18% 10%, rgba(255,255,255,.13), transparent 32%);
}

.button,
.floating-schedule {
  background:
    linear-gradient(180deg, #0d87df 0%, #086fc5 100%) !important;
  border: 1px solid rgba(3,82,151,.45) !important;
  box-shadow:
    0 12px 30px rgba(8,118,209,.23),
    inset 0 1px 0 rgba(255,255,255,.22) !important;
}

.button:hover,
.floating-schedule:hover {
  background:
    linear-gradient(180deg, #1495e8 0%, #0875ce 100%) !important;
  box-shadow:
    0 18px 42px rgba(8,118,209,.30),
    inset 0 1px 0 rgba(255,255,255,.28) !important;
}

.button.secondary {
  background: rgba(255,255,255,.86) !important;
  color: var(--navy-900) !important;
  border-color: rgba(190,203,215,.85) !important;
  box-shadow: 0 8px 22px rgba(6,30,68,.07) !important;
}

.site-header {
  background: rgba(252,253,254,.86) !important;
  border-bottom-color: rgba(207,217,226,.55) !important;
  box-shadow: 0 8px 28px rgba(6,30,68,.045);
  backdrop-filter: blur(18px) saturate(1.08);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
}

.site-footer {
  background:
    linear-gradient(180deg, rgba(247,249,251,.86), rgba(239,243,247,.96)) !important;
  border-top: 1px solid rgba(203,214,224,.65);
}

input,
select,
textarea {
  background: rgba(255,255,255,.9) !important;
  border-color: rgba(190,203,215,.8) !important;
  box-shadow: inset 0 1px 2px rgba(6,30,68,.025);
}

input:focus,
select:focus,
textarea:focus {
  background: #fff !important;
  box-shadow:
    0 0 0 4px rgba(20,149,232,.10),
    0 8px 20px rgba(6,30,68,.05) !important;
}

.page-transition-layer {
  background: #fcfcfd !important;
}

@media (max-width: 900px) {
  body {
    background-attachment: scroll;
  }

  main::before {
    position: absolute;
    inset: 0;
  }

  .card,
  .band,
  .consultation-step,
  .consultation-form,
  .consultation-confirmation,
  .hero-photo,
  .static-map-shell,
  details,
  .faq-item {
    box-shadow: 0 14px 36px rgba(6,30,68,.07) !important;
  }
}

@media (prefers-reduced-transparency: reduce) {
  .site-header,
  .consultation-home-card,
  .hero-promise-card {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: #fff !important;
  }
}


/* =========================================================
   v1.2b — Calm Morning Light contrast corrections
   ========================================================= */

/* Footer: restore a deliberate dark surface and readable contrast */
.site-footer {
  background:
    radial-gradient(circle at 12% 0%, rgba(20,149,232,.12), transparent 30%),
    linear-gradient(180deg, #0a214d 0%, #071a3d 100%) !important;
  color: rgba(255,255,255,.86) !important;
  border-top: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}

.site-footer h1,
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer strong,
.site-footer a {
  color: #fff !important;
}

.site-footer p,
.site-footer span,
.site-footer li {
  color: rgba(255,255,255,.78) !important;
}

.site-footer img {
  filter: none !important;
}

.footer-bottom {
  border-top-color: rgba(255,255,255,.12) !important;
}

/* Preserve intended dark promotional cards */
.band,
.consultation-info-card,
.confirmation-next,
.financial-band,
.hero-promise-card {
  color: #fff;
}

/* GulfGuard Promise and other navy cards */
.hero-promise-card,
.band:not(.financial-band),
.consultation-info-card,
.confirmation-next {
  background:
    linear-gradient(145deg, #0a2b61 0%, #071d49 100%) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  box-shadow: 0 26px 68px rgba(6,30,68,.16) !important;
}

.hero-promise-card h1,
.hero-promise-card h2,
.hero-promise-card h3,
.hero-promise-card p,
.hero-promise-card strong,
.band h1,
.band h2,
.band h3,
.band p,
.band strong,
.consultation-info-card h1,
.consultation-info-card h2,
.consultation-info-card h3,
.consultation-info-card p,
.consultation-info-card strong,
.confirmation-next h1,
.confirmation-next h2,
.confirmation-next h3,
.confirmation-next p,
.confirmation-next strong {
  color: #fff !important;
}

.hero-promise-card .eyebrow,
.band .eyebrow,
.consultation-info-card .eyebrow,
.confirmation-next .eyebrow {
  color: #91d3ff !important;
}

.hero-promise-card p,
.band p,
.consultation-info-card p,
.confirmation-next p {
  color: rgba(255,255,255,.82) !important;
}

/* Don't force every generic band dark when it is intentionally light */
.band.financial-band {
  background: linear-gradient(90deg, #061a43 0%, #0876d1 64%, rgba(8,118,209,.82) 100%) !important;
}

/* FAQ: remove white blocks and let content live on the atmospheric canvas */
.faq {
  display: grid;
  gap: 0;
}

.faq-item,
.faq details,
details.faq-item {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  border-bottom: 1px solid rgba(129,148,168,.28) !important;
}

.faq-item:first-child {
  border-top: 1px solid rgba(129,148,168,.28) !important;
}

.faq-question {
  padding: 24px 44px 24px 2px !important;
  color: var(--navy-900) !important;
  background: transparent !important;
  font-weight: 850;
}

.faq-question:hover {
  color: var(--blue-600) !important;
}

.faq-answer {
  background: transparent !important;
}

.faq-answer > p {
  padding: 0 42px 24px 2px !important;
  color: var(--muted) !important;
  line-height: 1.7;
}

.faq-question::after {
  right: 4px !important;
}

/* Light cards should stay light, dark cards should stay dark */
.card,
.consultation-step,
.review-grid article,
.confirmation-summary > div,
.static-map-shell,
.map-shell,
.hero-photo {
  color: var(--ink);
}

.card h1,
.card h2,
.card h3,
.card strong,
.consultation-step h1,
.consultation-step h2,
.consultation-step h3,
.consultation-step strong,
.review-grid article h1,
.review-grid article h2,
.review-grid article h3,
.review-grid article strong,
.confirmation-summary > div strong {
  color: var(--navy-900) !important;
}

.card p,
.consultation-step p,
.review-grid article p {
  color: var(--muted) !important;
}

/* Ensure section-soft still reads as atmospheric, not as a boxed card */
.section-soft {
  box-shadow: none !important;
}

/* Mobile contrast refinements */
@media (max-width: 700px) {
  .site-footer {
    background:
      linear-gradient(180deg, #0a214d 0%, #071a3d 100%) !important;
  }

  .faq-question {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
  }

  .faq-answer > p {
    padding-bottom: 20px !important;
  }
}

/* Final cascade lock: keep the approved editorial layout after legacy rules. */
.floating-schedule{display:none!important}
.site-header[style]{transform:none!important;opacity:1!important;pointer-events:auto!important}
.hero-fold{display:grid!important;grid-template-columns:1.05fr .95fr!important;gap:56px!important;align-items:center!important}
.hero-copy{position:relative!important;padding:28px 0 92px!important;text-align:left!important}
.hero-visual{display:block!important;position:relative!important;width:100%!important;min-height:650px!important;border-radius:22px!important;overflow:hidden!important}
.hero-visual video,.hero-visual img{display:block!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important}
.site-footer .footer-grid{display:grid!important;grid-template-columns:1.35fr 1.1fr .8fr 1fr .8fr!important;gap:30px!important}
.site-footer nav{display:grid!important;gap:5px!important}
@media(max-width:980px){.hero-fold{grid-template-columns:1fr!important}.hero-visual{min-height:520px!important}.site-footer .footer-grid{grid-template-columns:1fr 1fr 1fr!important}}
@media(max-width:700px){.hero-fold{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:22px!important}.hero-copy{padding:0 0 22px!important}.hero-visual{width:100%!important;min-height:440px!important}.site-footer .footer-grid{grid-template-columns:1fr!important}.site-footer nav a{display:flex;align-items:center;min-height:44px}.text-link{display:inline-flex;align-items:center;min-height:44px}}
@media(max-width:700px){.menu-toggle{min-width:44px!important;min-height:44px!important}}

/* Surgical visual correction: authoritative brand hierarchy and composition. */
.site-header{position:sticky;top:0;background:#fff!important;border-bottom:1px solid var(--line);z-index:80}
.brand-row{position:relative;display:grid!important;grid-template-columns:1fr auto 1fr;align-items:center;min-height:126px;padding-block:14px}
.brand-center{grid-column:2;display:grid;justify-items:center;gap:4px;position:relative;z-index:1}
.brand-center .brand img{width:230px!important}.brand-tagline,.brand-mobile-tagline{margin:0;color:#071d49;font-size:.84rem;font-weight:760;letter-spacing:.01em}
.header-schedule{grid-column:3;justify-self:end;min-height:46px!important;box-shadow:none!important}
.brand-mobile-tagline{display:none;text-align:center;padding:6px 14px;border-top:1px solid var(--line)}
.nav-row{border-top:1px solid var(--line)}
.primary-nav{position:static!important;display:flex!important;justify-content:center!important;width:min(calc(100% - 40px),1200px)!important;min-height:56px;margin-inline:auto;padding:0!important;background:#fff!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.primary-nav .mobile-schedule-link{display:none!important}
.menu-toggle{display:none!important}
.section{padding:82px 0!important}.page-hero{padding:68px 0 58px!important}
.reveal-section>.container{opacity:1!important;transform:none!important}.page-transition-layer{display:none!important}
.home-hero{position:relative!important;isolation:isolate;overflow:hidden!important;min-height:620px;padding:0!important;display:grid;align-items:center;background:#071d49}
.home-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3}
.home-hero-overlay{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(7,29,73,.9) 0%,rgba(7,29,73,.72) 52%,rgba(7,29,73,.36) 100%)}
.home-hero-content{padding-block:82px;max-width:1200px}.home-hero-content>*{max-width:720px}.home-hero h1{color:#fff!important;font-size:clamp(3.2rem,6vw,5.9rem);text-shadow:0 2px 20px rgba(0,0,0,.18)}
.home-hero .eyebrow{color:#a9dcff!important}.home-hero .lede{color:#f4f7fb!important;font-size:1.18rem}.home-hero .button.secondary{background:#fff!important;color:#071d49!important;border-color:#fff!important}
.editorial-grid{margin-top:34px}.editorial-number{display:none!important}.explore-row{grid-template-columns:1fr!important}.explore-row>span:first-child{color:var(--ink)!important;font-weight:400!important}
.story-grid{min-height:520px}.story-grid>img{height:100%;min-height:460px;aspect-ratio:auto;border-radius:0 22px 22px 0;object-fit:cover}.story-grid{width:min(100%,1440px);margin-inline:auto;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:64px}.story-grid>div{padding-right:max(28px,calc((100vw - 1200px)/2))}
.story-grid.authentic-fieldwork{width:min(calc(100% - 40px),1000px);grid-template-columns:minmax(280px,420px) minmax(0,1fr);gap:56px}.story-grid.authentic-fieldwork>img{width:100%;min-height:520px;border-radius:22px}.story-grid.authentic-fieldwork>div{padding-right:0}
.section-soft:has(.story-grid){padding-block:0!important;background:#eef3f7!important}
.final-cta{background:#071d49!important;color:#fff!important}.final-cta h2,.final-cta h3,.final-cta p,.final-cta .lede{color:#fff!important;opacity:1!important}.final-cta .button{background:#0876d1!important;color:#fff!important}
.visual-page-hero{background:#f6f7f9!important}.visual-hero-grid{gap:48px!important}.hero-photo img{min-height:430px;object-fit:cover}.product-video-section{background:#eaf0f5!important}.product-video-frame{margin-top:34px;box-shadow:0 20px 48px rgba(7,29,73,.16)}
.map-shell{box-shadow:none!important;background:#f6f7f9!important}.map-layout{align-items:center!important}.mission-list article:before{display:none!important}
@media(max-width:900px){
 .brand-row{grid-template-columns:72px 1fr 72px;min-height:82px;padding-block:8px}.brand-center{grid-column:2}.brand-center .brand img{width:170px!important}.brand-tagline{display:none}.brand-mobile-tagline{display:block}.header-schedule{grid-column:3;width:68px!important;min-width:68px!important;padding:0 7px!important;font-size:0!important;border-radius:10px!important}.header-schedule:after{content:"Schedule";font-size:.72rem}.menu-toggle{display:block!important;grid-column:1;grid-row:1;justify-self:start}.nav-row{position:relative}.primary-nav{display:none!important;position:absolute!important;top:0!important;left:14px!important;right:14px!important;width:auto!important;min-height:0!important;padding:18px!important;border:1px solid var(--line)!important;border-radius:14px!important;box-shadow:var(--shadow)!important;z-index:90;flex-direction:column!important;align-items:stretch!important}.primary-nav.open{display:flex!important}.primary-nav .mobile-schedule-link{display:flex!important;background:#0876d1;color:#fff!important;border-radius:10px;padding-inline:14px}.home-hero{min-height:570px}.story-grid,.visual-hero-grid,.story-grid.authentic-fieldwork{grid-template-columns:1fr!important}.story-grid{gap:0}.story-grid>img,.story-grid.authentic-fieldwork>img{border-radius:0;min-height:390px}.story-grid>div{padding:52px 28px 58px}.section-soft:has(.story-grid){padding:0!important}}
@media(max-width:700px){.section{padding:58px 0!important}.page-hero{padding:52px 0 44px!important}.home-hero{min-height:560px}.home-hero-content{padding-block:64px}.home-hero h1{font-size:clamp(2.75rem,13vw,4rem)}.home-hero-overlay{background:linear-gradient(90deg,rgba(7,29,73,.92),rgba(7,29,73,.62))}.editorial-grid{margin-top:24px}.hero-photo img{min-height:320px}.explore-row{padding:22px 0!important}.footer-grid{gap:18px!important}}
@media(prefers-reduced-motion:reduce){.home-hero-video{display:none}.home-hero{background:linear-gradient(90deg,rgba(7,29,73,.86),rgba(7,29,73,.46)),url('/assets/media/approved/ggws-storm-palms-hero-poster.jpg') center/cover no-repeat}}
