/* =================================================================
   ST. PETE DOCK & DECK — DESIGN SYSTEM
   Coastal navy / gold / cream. Mobile-first. Premium-industrial.
   ================================================================= */

:root{
  /* ⬇ Colors are driven from logo palette ⬇ */
  --navy:      #14233a;   /* deep brand navy (logo outline)  */
  --navy-2:    #1b3050;   /* card / section navy             */
  --navy-3:    #24406a;   /* lighter navy / hover            */
  --gold:      #e8a72e;   /* sunset gold accent (logo sun)   */
  --gold-soft: #f3c25f;
  --cream:     #f5efe1;   /* warm white (logo badge)         */
  --cream-dim: #c9c2b2;   /* muted text on dark              */
  --sand:      #b9874e;   /* wood / sand tone (logo planks)  */
  --ink:       #11161f;   /* near-black for deep contrast    */
  --line:      rgba(245,239,225,0.10);
  --line-dark: rgba(20,35,58,0.12);

  --display: 'Anton', Impact, sans-serif;
  --body:    'Archivo', system-ui, sans-serif;
  --mono:    'JetBrains Mono', 'Courier New', monospace;

  --maxw: 1280px;
}

/* ---- RESET --------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--body); background:var(--cream); color:var(--navy);
  line-height:1.62; font-size:16px; overflow-x:hidden;
  padding-bottom:60px; /* room for mobile call bar */
}
@media(min-width:900px){ body{ padding-bottom:0; } }
img{ max-width:100%; display:block; height:auto; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }

/* ---- TYPOGRAPHY --------------------------------------------- */
h1,h2,h3,h4{ font-family:var(--display); font-weight:400; line-height:1.02;
  letter-spacing:0.005em; text-transform:uppercase; }
h1{ font-size:clamp(42px,9vw,92px); }
h2{ font-size:clamp(32px,6vw,64px); }
h3{ font-size:clamp(22px,3.4vw,34px); }
h4{ font-size:clamp(18px,2.4vw,22px); }
.accent{ color:var(--gold); }
.eyebrow{ font-family:var(--mono); font-size:12px; font-weight:700;
  text-transform:uppercase; letter-spacing:0.22em; color:var(--gold);
  display:inline-block; margin-bottom:14px; }
.eyebrow.on-dark{ color:var(--gold-soft); }
.lead{ font-size:clamp(17px,2.2vw,20px); line-height:1.6; }

/* ---- LAYOUT -------------------------------------------------- */
.container{ width:100%; max-width:var(--maxw); margin:0 auto; padding:0 20px; }
@media(min-width:900px){ .container{ padding:0 40px; } }
section{ padding:60px 0; }
@media(min-width:900px){ section{ padding:100px 0; } }
.section-head{ max-width:760px; margin-bottom:40px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.bg-navy{ background:var(--navy); color:var(--cream); }
.bg-navy h1,.bg-navy h2,.bg-navy h3,.bg-navy h4{ color:var(--cream); }
.bg-navy-2{ background:var(--navy-2); color:var(--cream); }
.bg-cream{ background:var(--cream); }
.bg-sand{ background:#efe7d6; }
.muted{ color:var(--cream-dim); }
.text-navy-dim{ color:#5a6678; }

/* ---- BUTTONS ------------------------------------------------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 26px; min-height:50px; font-family:var(--display);
  font-size:18px; letter-spacing:0.04em; text-transform:uppercase;
  border-radius:3px; transition:transform .18s, background .18s, color .18s, box-shadow .18s;
  border:2px solid transparent; cursor:pointer; text-align:center; }
.btn svg{ width:20px; height:20px; flex:none; }
.btn-primary{ background:var(--gold); color:var(--navy); }
.btn-primary:hover{ background:var(--gold-soft); transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(232,167,46,.35); }
.btn-secondary{ background:transparent; color:var(--cream); border-color:var(--cream); }
.btn-secondary:hover{ background:var(--cream); color:var(--navy); transform:translateY(-2px); }
.btn-dark{ background:var(--navy); color:var(--cream); }
.btn-dark:hover{ background:var(--navy-3); transform:translateY(-2px); }
.btn-block{ width:100%; }

/* ---- HEADER / NAV ------------------------------------------- */
.topbar{ background:var(--ink); color:var(--cream-dim); font-size:13px;
  font-family:var(--mono); letter-spacing:0.04em; }
.topbar .container{ display:flex; justify-content:space-between; align-items:center;
  min-height:38px; gap:16px; }
.topbar a{ color:var(--cream); }
.topbar .tb-right{ display:flex; gap:18px; align-items:center; }
.topbar .tb-hide{ display:none; }
@media(min-width:700px){ .topbar .tb-hide{ display:inline; } }

.nav{ position:sticky; top:0; z-index:90; background:var(--cream);
  border-bottom:1px solid var(--line-dark);
  box-shadow:0 2px 14px rgba(20,35,58,.06); }
.nav-inner{ display:flex; align-items:center; justify-content:space-between;
  gap:16px; min-height:78px; }
.nav-logo{ display:flex; align-items:center; gap:12px; flex:none; }
.nav-logo img{ height:62px; width:auto; }
@media(min-width:900px){ .nav-logo img{ height:70px; } }

.nav-links{ display:none; align-items:center; gap:6px; }
@media(min-width:1040px){ .nav-links{ display:flex; } }
.nav-links > li > a,.nav-dropdown-trigger{
  display:inline-flex; align-items:center; gap:6px; padding:10px 14px;
  font-family:var(--body); font-weight:700; font-size:15px;
  color:var(--navy); border-radius:3px; transition:color .15s, background .15s;
  background:none; border:none; cursor:pointer; }
.nav-links > li > a:hover,.nav-dropdown-trigger:hover,
.nav-links > li > a.active,.nav-dropdown.active .nav-dropdown-trigger{
  color:var(--gold); }
.nav-dropdown{ position:relative; }
.nav-dropdown-trigger svg{ width:12px; height:12px; transition:transform .2s; }
.nav-dropdown.open .nav-dropdown-trigger svg{ transform:rotate(180deg); }
.nav-dropdown-menu{ position:absolute; top:calc(100% + 8px); left:0;
  min-width:250px; background:var(--navy); border-radius:4px;
  padding:8px; opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .18s, visibility .18s, transform .18s;
  box-shadow:0 16px 40px rgba(0,0,0,.28); z-index:95; }
.nav-dropdown-menu::before{ content:''; position:absolute; top:-8px; left:0; right:0; height:8px; }
.nav-dropdown.open .nav-dropdown-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.nav-dropdown-menu a{ display:block; padding:11px 14px; color:var(--cream);
  font-weight:600; font-size:14.5px; border-radius:3px; transition:background .15s, color .15s; }
.nav-dropdown-menu a:hover,.nav-dropdown-menu a.active{ background:var(--navy-3); color:var(--gold-soft); }
.nav-cta{ display:none; align-items:center; gap:10px; flex:none; }
@media(min-width:1040px){ .nav-cta{ display:flex; } }
.nav-phone{ font-family:var(--display); font-size:20px; color:var(--navy);
  display:inline-flex; align-items:center; gap:8px; letter-spacing:0.02em; }
.nav-phone svg{ width:18px; height:18px; color:var(--gold); }

/* hamburger */
.nav-toggle{ display:inline-flex; flex-direction:column; gap:5px; justify-content:center;
  width:48px; height:48px; background:var(--navy); border:none; border-radius:4px;
  cursor:pointer; padding:13px; }
@media(min-width:1040px){ .nav-toggle{ display:none; } }
.nav-toggle span{ display:block; height:2.5px; background:var(--cream); border-radius:2px;
  transition:transform .25s, opacity .25s; }
body.nav-open .nav-toggle span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
body.nav-open .nav-toggle span:nth-child(2){ opacity:0; }
body.nav-open .nav-toggle span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

/* mobile drawer */
.mobile-nav{ position:fixed; inset:0; transform:translateX(100%);
  background:var(--navy); color:var(--cream); padding:90px 22px 40px;
  overflow-y:auto; transition:transform .3s ease; z-index:85; }
.mobile-nav.open{ transform:translateX(0); }
@media(min-width:1040px){ .nav-toggle,.mobile-nav{ display:none !important; } }
body.nav-open{ overflow:hidden; }
.mobile-nav a{ color:var(--cream); }
.mobile-nav > ul > li{ border-bottom:1px solid var(--line); }
.mobile-nav > ul > li > a{ display:block; padding:16px 4px; font-family:var(--display);
  font-size:24px; letter-spacing:0.02em; }
.m-group-trigger{ width:100%; display:flex; justify-content:space-between; align-items:center;
  padding:16px 4px; background:none; border:none; color:var(--cream);
  font-family:var(--display); font-size:24px; letter-spacing:0.02em; cursor:pointer; text-transform:uppercase; }
.m-group-trigger .ic{ color:var(--gold); font-size:26px; transition:transform .2s; }
.m-group.open .m-group-trigger .ic{ transform:rotate(45deg); }
.m-sub{ max-height:0; overflow:hidden; transition:max-height .3s ease; }
.m-group.open .m-sub{ max-height:600px; }
.m-sub a{ display:block; padding:11px 4px 11px 16px; font-size:16px; color:var(--cream-dim);
  font-weight:600; }
.m-sub a:hover{ color:var(--gold-soft); }
.mobile-nav-cta{ margin-top:26px; display:flex; flex-direction:column; gap:12px; }

/* ---- HERO ---------------------------------------------------- */
.hero{ position:relative; background:var(--navy); color:var(--cream);
  overflow:hidden; }
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; }
.hero-bg::after{ content:''; position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(15,24,40,.94) 0%, rgba(15,24,40,.72) 55%, rgba(15,24,40,.55) 100%); }
.hero-inner{ position:relative; z-index:1; padding:60px 0 70px; max-width:820px; }
@media(min-width:900px){ .hero-inner{ padding:96px 0 104px; } }
.hero h1{ color:var(--cream); margin:6px 0 18px; }
.hero .lead{ color:var(--cream-dim); max-width:600px; margin-bottom:26px; }
.hero-loc{ display:flex; align-items:center; gap:8px; font-family:var(--mono);
  font-size:12px; letter-spacing:0.12em; color:var(--gold-soft); margin-bottom:8px;
  text-transform:uppercase; flex-wrap:wrap; }
.hero-loc svg{ width:14px; height:14px; }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:36px; }
.hero-stats{ display:flex; flex-wrap:wrap; gap:28px 44px; }
.hero-stat-num{ font-family:var(--display); font-size:clamp(28px,5vw,42px); color:var(--gold); }
.hero-stat-label{ font-family:var(--mono); font-size:11px; letter-spacing:0.14em;
  color:var(--cream-dim); text-transform:uppercase; }

/* ---- TICKER -------------------------------------------------- */
.ticker{ background:var(--gold); color:var(--navy); overflow:hidden;
  border-top:3px solid var(--navy); border-bottom:3px solid var(--navy); }
.ticker-track{ display:flex; gap:48px; white-space:nowrap; padding:13px 0;
  font-family:var(--display); font-size:18px; letter-spacing:0.05em;
  animation:scroll-x 32s linear infinite; }
.ticker-track span{ display:inline-flex; align-items:center; gap:48px; }
.ticker-track .dot{ color:var(--navy-2); }
@keyframes scroll-x{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

/* ---- GRIDS / CARDS ------------------------------------------ */
.grid{ display:grid; gap:22px; }
@media(min-width:600px){ .grid-2{ grid-template-columns:repeat(2,1fr);} }
@media(min-width:900px){
  .grid{ gap:30px; }
  .grid-3{ grid-template-columns:repeat(3,1fr);}
  .grid-4{ grid-template-columns:repeat(4,1fr);}
}
.card{ background:#fff; border:1px solid var(--line-dark); border-radius:5px;
  overflow:hidden; transition:transform .25s, box-shadow .25s, border-color .25s;
  display:flex; flex-direction:column; }
.card:hover{ transform:translateY(-5px); border-color:var(--gold);
  box-shadow:0 18px 44px rgba(20,35,58,.16); }
.card-img{ aspect-ratio:16/10; overflow:hidden; }
.card-img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.card:hover .card-img img{ transform:scale(1.05); }
.card-body{ padding:22px; display:flex; flex-direction:column; gap:10px; flex:1; }
.card-body h3,.card-body h4{ color:var(--navy); }
.card-body p{ color:#56607240; color:#566072; font-size:15px; flex:1; }
.card-link{ font-family:var(--display); font-size:16px; color:var(--gold);
  display:inline-flex; align-items:center; gap:8px; letter-spacing:0.03em;
  margin-top:auto; }
.card-link::after{ content:'→'; transition:transform .2s; }
.card:hover .card-link::after{ transform:translateX(5px); }

/* service/area card on dark */
.card.dark{ background:var(--navy-2); border-color:var(--line); }
.card.dark p{ color:var(--cream-dim); }
.card.dark h3,.card.dark h4{ color:var(--cream); }

/* ---- PROCESS STEPS ------------------------------------------ */
.steps{ display:grid; gap:24px; counter-reset:step; }
@media(min-width:700px){ .steps{ grid-template-columns:repeat(4,1fr);} }
.step{ position:relative; padding-top:14px; }
.step-num{ font-family:var(--display); font-size:64px; line-height:.8;
  color:var(--gold); opacity:.9; }
.step h4{ margin:12px 0 6px; }
.step p{ font-size:15px; }
.bg-navy .step p{ color:var(--cream-dim); }

/* ---- WHY / FEATURE LIST ------------------------------------- */
.why-grid{ display:grid; gap:20px; }
@media(min-width:700px){ .why-grid{ grid-template-columns:repeat(2,1fr);} }
.why-item{ display:flex; gap:14px; align-items:flex-start; }
.why-ic{ flex:none; width:46px; height:46px; border-radius:5px; background:var(--gold);
  color:var(--navy); display:flex; align-items:center; justify-content:center; }
.why-ic svg{ width:24px; height:24px; }
.why-item h4{ font-size:19px; margin-bottom:4px; }
.why-item p{ font-size:15px; }

/* ---- BEFORE / AFTER ----------------------------------------- */
.ba-grid{ display:grid; gap:26px; }
@media(min-width:800px){ .ba-grid{ grid-template-columns:repeat(2,1fr);} }
.ba-card{ background:#fff; border:1px solid var(--line-dark); border-radius:6px;
  overflow:hidden; }
.ba-imgwrap{ position:relative; }
.ba-imgwrap img{ aspect-ratio:16/10; object-fit:cover; width:100%; }
.ba-tag{ position:absolute; top:14px; left:14px; font-family:var(--display);
  font-size:15px; letter-spacing:0.06em; padding:6px 14px; border-radius:3px; }
.ba-tag.before{ background:var(--ink); color:var(--cream); }
.ba-tag.after{ background:var(--gold); color:var(--navy); }
.ba-card .ba-cap{ padding:16px 20px; font-size:15px; color:#566072; }

/* ---- TESTIMONIALS ------------------------------------------- */
.reviews{ display:grid; gap:24px; }
@media(min-width:800px){ .reviews{ grid-template-columns:repeat(3,1fr);} }
.review-card{ background:var(--navy-2); border:1px solid var(--line); border-radius:6px;
  padding:26px; display:flex; flex-direction:column; gap:14px; }
.review-stars{ color:var(--gold); letter-spacing:2px; font-size:18px; }
.review-card blockquote{ color:var(--cream); font-size:16px; line-height:1.6; }
.review-author{ display:flex; align-items:center; gap:12px; margin-top:auto; }
.review-avatar{ width:44px; height:44px; border-radius:50%; background:var(--gold);
  color:var(--navy); display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-size:20px; }
.review-name{ font-weight:700; color:var(--cream); }
.review-meta{ font-family:var(--mono); font-size:11px; letter-spacing:0.1em;
  color:var(--gold-soft); text-transform:uppercase; }

/* ---- SPLIT (image + text) ----------------------------------- */
.split{ display:grid; gap:34px; align-items:center; }
@media(min-width:900px){ .split{ grid-template-columns:1fr 1fr; gap:54px; }
  .split.reverse .split-media{ order:2; } }
.split-media img{ border-radius:6px; width:100%; aspect-ratio:4/3; object-fit:cover; }
.split-body p{ margin-bottom:14px; color:inherit; }
.bg-navy .split-body p{ color:var(--cream-dim); }

/* ---- STATS BAND --------------------------------------------- */
.stats-band{ background:var(--gold); color:var(--navy); }
.stats-band .container{ display:grid; grid-template-columns:repeat(2,1fr);
  gap:24px; text-align:center; padding-top:40px; padding-bottom:40px; }
@media(min-width:700px){ .stats-band .container{ grid-template-columns:repeat(4,1fr);} }
.stat-big{ font-family:var(--display); font-size:clamp(34px,6vw,56px); line-height:1; }
.stat-lab{ font-family:var(--mono); font-size:12px; letter-spacing:0.12em;
  text-transform:uppercase; margin-top:6px; }

/* ---- PROSE + SIDEBAR (service / area pages) ----------------- */
.page-layout{ display:grid; gap:40px; }
@media(min-width:980px){ .page-layout{ grid-template-columns:1fr 350px; gap:54px; } }
.prose h2{ margin:34px 0 14px; }
.prose h3{ margin:30px 0 12px; color:var(--navy); }
.prose p{ margin-bottom:16px; color:#3c4757; }
.prose ul.ticks{ margin:8px 0 20px; display:grid; gap:10px; }
.prose ul.ticks li{ position:relative; padding-left:30px; color:#3c4757; }
.prose ul.ticks li::before{ content:''; position:absolute; left:0; top:7px;
  width:16px; height:16px; background:var(--gold);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E") center/contain no-repeat; }
.prose a.inline{ color:var(--sand); border-bottom:1px dashed var(--sand); font-weight:600; }
.prose a.inline:hover{ color:var(--gold); border-color:var(--gold); }
.prose .inline-img{ border-radius:6px; margin:24px 0; width:100%; aspect-ratio:16/9; object-fit:cover; }

.sidebar{ display:flex; flex-direction:column; gap:24px; }
@media(min-width:980px){ .sidebar{ position:sticky; top:96px; align-self:start; } }
.side-card{ background:var(--navy); color:var(--cream); border-radius:6px; padding:26px; }
.side-card h3{ color:var(--cream); font-size:24px; margin-bottom:6px; }
.side-card .sc-sub{ font-family:var(--mono); font-size:11px; letter-spacing:0.12em;
  color:var(--gold-soft); text-transform:uppercase; margin-bottom:16px; }
.side-card .side-phone{ font-family:var(--display); font-size:30px; color:var(--gold);
  display:block; margin:10px 0 16px; }
.side-list{ display:grid; gap:9px; }
.side-list a{ display:flex; align-items:center; gap:9px; color:var(--cream);
  padding:9px 12px; border-radius:4px; background:var(--navy-2); font-weight:600; font-size:14.5px;
  transition:background .15s, color .15s; }
.side-list a::before{ content:'›'; color:var(--gold); font-size:18px; }
.side-list a:hover{ background:var(--navy-3); color:var(--gold-soft); }
.side-trust{ background:#efe7d6; border-radius:6px; padding:24px; }
.side-trust h4{ color:var(--navy); margin-bottom:12px; }
.side-trust ul{ display:grid; gap:8px; }
.side-trust li{ padding-left:26px; position:relative; font-size:14.5px; color:#3c4757; }
.side-trust li::before{ content:'★'; position:absolute; left:0; color:var(--gold); }

/* ---- FORM ---------------------------------------------------- */
.form-card{ background:#fff; border:1px solid var(--line-dark); border-radius:8px;
  padding:28px; box-shadow:0 18px 50px rgba(20,35,58,.12); }
.bg-navy .form-card,.bg-navy-2 .form-card{ background:var(--navy-2); border-color:var(--line); }
.form-card h3{ color:var(--navy); }
.bg-navy .form-card h3,.bg-navy-2 .form-card h3{ color:var(--cream); }
.form-sub{ font-family:var(--mono); font-size:11px; letter-spacing:0.12em; color:var(--gold);
  text-transform:uppercase; margin:4px 0 20px; }
.form-row{ margin-bottom:14px; }
.form-row.two{ display:grid; gap:14px; }
@media(min-width:520px){ .form-row.two{ grid-template-columns:1fr 1fr; } }
.form-field label{ display:block; font-size:13px; font-weight:700; margin-bottom:6px; color:inherit; }
.bg-navy .form-field label,.bg-navy-2 .form-field label{ color:var(--cream); }
.form-field input,.form-field select,.form-field textarea{
  width:100%; padding:13px 14px; font-family:var(--body); font-size:15px;
  border:1.5px solid var(--line-dark); border-radius:4px; background:#fff; color:var(--navy);
  transition:border-color .15s; min-height:48px; }
.bg-navy .form-field input,.bg-navy .form-field select,.bg-navy .form-field textarea,
.bg-navy-2 .form-field input,.bg-navy-2 .form-field select,.bg-navy-2 .form-field textarea{
  background:var(--navy); border-color:var(--line); color:var(--cream); }
.form-field textarea{ min-height:96px; resize:vertical; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{
  outline:none; border-color:var(--gold); }
.form-submit{ width:100%; margin-top:6px; }
.form-or{ text-align:center; font-family:var(--mono); font-size:12px; letter-spacing:0.12em;
  color:var(--cream-dim); margin:18px 0; position:relative; }
.form-card:not(.bg-navy) .form-or{ color:#9aa3b0; }
.form-call{ display:grid; gap:10px; }
@media(min-width:520px){ .form-call{ grid-template-columns:1fr 1fr; } }
.honeypot{ position:absolute; left:-9999px; opacity:0; height:0; width:0; }
.form-success{ display:none; text-align:center; padding:30px 10px; }
.form-success.active{ display:block; }
.form-success .fs-ic{ width:68px; height:68px; border-radius:50%; background:var(--gold);
  display:flex; align-items:center; justify-content:center; margin:0 auto 16px; }
.form-success .fs-ic svg{ width:36px; height:36px; color:var(--navy); }
.form-success h3{ color:var(--navy); }
.bg-navy .form-success h3,.bg-navy-2 .form-success h3{ color:var(--cream); }

/* ---- FAQ ----------------------------------------------------- */
.faq{ max-width:820px; margin:0 auto; }
.faq-item{ border-bottom:1px solid var(--line-dark); }
.bg-navy .faq-item,.bg-navy-2 .faq-item{ border-color:var(--line); }
.faq-q{ width:100%; display:flex; justify-content:space-between; align-items:center; gap:16px;
  padding:22px 4px; background:none; border:none; cursor:pointer; text-align:left;
  font-family:var(--display); font-size:clamp(18px,2.4vw,22px); color:var(--navy);
  text-transform:uppercase; letter-spacing:0.01em; }
.bg-navy .faq-q,.bg-navy-2 .faq-q{ color:var(--cream); }
.faq-q-icon{ flex:none; font-family:var(--display); font-size:28px; color:var(--gold);
  transition:transform .25s; line-height:1; }
.faq-item.open .faq-q-icon{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .3s ease; }
.faq-item.open .faq-a{ max-height:500px; }
.faq-a p{ padding:0 4px 22px; color:#3c4757; }
.bg-navy .faq-a p,.bg-navy-2 .faq-a p{ color:var(--cream-dim); }

/* ---- BREADCRUMBS -------------------------------------------- */
.breadcrumbs{ background:var(--ink); }
.breadcrumbs-inner{ display:flex; flex-wrap:wrap; gap:8px; align-items:center;
  padding:13px 0; font-family:var(--mono); font-size:12px; letter-spacing:0.06em; }
.breadcrumbs a{ color:var(--cream-dim); }
.breadcrumbs a:hover{ color:var(--gold-soft); }
.breadcrumbs .sep{ color:#4a5568; }
.breadcrumbs .current{ color:var(--gold-soft); }

/* ---- RELATED GRID ------------------------------------------- */
.related-card{ background:#fff; border:1px solid var(--line-dark); border-radius:5px;
  padding:22px; display:flex; flex-direction:column; gap:8px; transition:transform .2s, border-color .2s, box-shadow .2s; }
.related-card:hover{ transform:translateY(-4px); border-color:var(--gold);
  box-shadow:0 14px 36px rgba(20,35,58,.14); }
.related-card .rc-eyebrow{ font-family:var(--mono); font-size:11px; letter-spacing:0.14em;
  color:var(--gold); text-transform:uppercase; }
.related-card h4{ color:var(--navy); }
.related-card p{ font-size:14px; color:#566072; flex:1; }
.related-card .rc-link{ font-family:var(--display); font-size:15px; color:var(--gold); }

/* ---- PAGE HERO (subpages) ----------------------------------- */
.page-hero{ position:relative; background:var(--navy); color:var(--cream); overflow:hidden; }
.page-hero .hero-bg::after{ background:linear-gradient(120deg, rgba(15,24,40,.93), rgba(15,24,40,.72)); }
.page-hero-inner{ position:relative; z-index:1; padding:56px 0 60px; max-width:820px; }
@media(min-width:900px){ .page-hero-inner{ padding:80px 0 84px; } }
.page-hero h1{ color:var(--cream); margin:6px 0 14px; }
.page-hero .lead{ color:var(--cream-dim); max-width:620px; }

/* ---- FINAL CTA ---------------------------------------------- */
.final-cta{ background:var(--navy); color:var(--cream); text-align:center; }
.final-cta h2{ color:var(--cream); }
.final-cta p{ color:var(--cream-dim); max-width:560px; margin:14px auto 0; }
.phone-display-big{ display:inline-block; font-family:var(--display);
  font-size:clamp(38px,9vw,72px); color:var(--gold); letter-spacing:0.02em; margin:22px 0 8px; }
.final-cta-buttons{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:18px; }

/* ---- FOOTER -------------------------------------------------- */
.footer{ background:var(--ink); color:var(--cream-dim); padding:60px 0 30px; }
.footer-grid{ display:grid; gap:34px; }
@media(min-width:720px){ .footer-grid{ grid-template-columns:1.4fr 1fr 1fr 1fr; } }
.footer-logo img{ height:88px; width:auto; margin-bottom:16px; }
.footer p{ font-size:14.5px; line-height:1.7; }
.footer h4{ color:var(--cream); font-size:18px; margin-bottom:16px; letter-spacing:0.04em; }
.footer-col ul{ display:grid; gap:9px; }
.footer-col a{ color:var(--cream-dim); font-size:14.5px; }
.footer-col a:hover{ color:var(--gold-soft); }
.footer-phone{ font-family:var(--display); font-size:26px; color:var(--gold); display:block; margin-bottom:8px; }
.footer-contact-row{ display:flex; gap:10px; align-items:flex-start; margin-bottom:12px; font-size:14.5px; }
.footer-contact-row svg{ width:18px; height:18px; color:var(--gold); flex:none; margin-top:2px; }
.footer-bottom{ border-top:1px solid rgba(245,239,225,.1); margin-top:44px; padding-top:24px;
  display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between;
  font-size:13px; font-family:var(--mono); letter-spacing:0.04em; }

/* ---- STICKY MOBILE CALL BAR --------------------------------- */
.call-bar{ position:fixed; bottom:0; left:0; right:0; z-index:80;
  background:var(--gold); color:var(--navy); min-height:60px;
  display:flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--display); font-size:19px; letter-spacing:0.04em;
  box-shadow:0 -4px 20px rgba(0,0,0,.28); }
.call-bar svg{ width:22px; height:22px; }
@media(min-width:900px){ .call-bar{ display:none; } }

/* ---- ANIMATIONS --------------------------------------------- */
@keyframes fadeUp{ from{ opacity:0; transform:translateY(22px);} to{ opacity:1; transform:translateY(0);} }
.reveal{ opacity:0; }
.reveal.in{ animation:fadeUp .6s ease forwards; }
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .reveal{ opacity:1; }
  .ticker-track{ animation:none; }
}

/* ---- UTILITIES ---------------------------------------------- */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; } .mb-0{ margin-bottom:0; }
.divider{ width:64px; height:4px; background:var(--gold); border-radius:2px; margin:0 0 22px; }
.center .divider{ margin-left:auto; margin-right:auto; }
