/* =========================================================
   ROYAL THRONE ROOM — Bermuda
   Design system: white-first, charcoal type, royal blue reserved
   for interactive accents only (buttons, links, hover/active states).
   Signature motif: a single chamfered (cut) corner — echoes the
   RTR monogram's angular chrome facets — used only on primary
   buttons and a small number of key panel edges. Everything else
   is sharp, quiet, restrained.
   ========================================================= */

:root{
  /* Palette — 5 values, all drawn from the RTR mark */
  --ink:#1B1C20;         /* charcoal — headings, primary text (sampled from logo wordmark) */
  --slate:#5B5E66;       /* muted charcoal — body copy, secondary text */
  --line:#E5E5E8;        /* hairline borders */
  --surface:#F6F6F7;     /* faint off-white for alternating sections */
  --white:#FFFFFF;
  --royal:#0090FD;       /* royal blue — sampled from current logo wordmark, primary accent */
  --royal-dark:#0062AC;  /* royal blue, shaded — hover/active */
  --royal-tint:#EDF7FF;  /* royal blue, tinted toward white — small badges/backgrounds */
  --royal-line:#C7E7FF;  /* royal blue tint for borders on tinted surfaces */

  --font-display:'Manrope', 'DM Sans', -apple-system, sans-serif;
  --font-body:'Source Sans 3', 'Work Sans', -apple-system, sans-serif;

  --step-0:clamp(1rem,0.96rem + 0.2vw,1.0625rem);
  --step-1:clamp(1.15rem,1.08rem + 0.35vw,1.28rem);
  --step-2:clamp(1.4rem,1.26rem + 0.7vw,1.7rem);
  --step-3:clamp(1.75rem,1.5rem + 1.25vw,2.3rem);
  --step-4:clamp(2.2rem,1.75rem + 2.25vw,3.15rem);

  --radius:6px;
  --radius-sm:4px;
  --cut:18px;
  --cut-sm:10px;

  --shadow-1:0 1px 2px rgba(20,20,24,.04), 0 6px 20px -10px rgba(20,20,24,.12);
  --shadow-2:0 24px 56px -24px rgba(16,16,20,.28);

  --ease:cubic-bezier(.22,.7,.2,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--font-body);font-size:var(--step-0);line-height:1.62;-webkit-font-smoothing:antialiased;padding-bottom:70px;}
@media(min-width:900px){body{padding-bottom:0;}}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;line-height:1.12;letter-spacing:-.015em;margin:0 0 .5em;color:var(--ink);text-wrap:balance;}
h2{font-weight:700;}
h3,h4{font-weight:700;}
p{margin:0 0 1em;}
button{font:inherit;}
:focus-visible{outline:2.5px solid var(--royal);outline-offset:3px;}
html{overflow-x:hidden;}
body{overflow-x:clip;}

.container{width:100%;max-width:1200px;margin-inline:auto;padding-inline:20px;}
@media(min-width:720px){.container{padding-inline:32px;}}
.container--narrow{max-width:820px;}
.grid,.split,.hero-grid,.decision-grid,.footer-grid,.check-list,.proof-row,.contact-strip,.steps,.ba-grid,.spec-strip{min-width:0;}
.grid>*,.split>*,.hero-grid>*,.decision-grid>*,.footer-grid>*,.check-list>*,.proof-row>*,.contact-strip>*,.steps>*,.ba-grid>*,.spec-strip>*{min-width:0;}

section{padding:56px 0;scroll-margin-top:108px;}
@media(min-width:900px){section{padding:88px 0;}}
.bg-surface{background:var(--surface);}
.bg-white{background:var(--white);}
.bg-ink{background:var(--ink);}

/* ---------- Utility ---------- */
.eyebrow{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.11em;font-size:.79rem;font-weight:700;color:var(--royal);display:inline-flex;align-items:center;gap:.6em;margin-bottom:.9em;}
.eyebrow::before{content:"";width:20px;height:2px;background:var(--royal);display:inline-block;}
.eyebrow.on-dark{color:var(--white);}
h1{font-size:var(--step-4);letter-spacing:-.025em;}
h2{font-size:var(--step-3);}
h3{font-size:var(--step-2);}
.lede{font-size:var(--step-1);color:var(--slate);max-width:58ch;}
.on-dark{color:var(--white);}
.on-dark .lede{color:rgba(255,255,255,.76);}
.on-dark h1,.on-dark h2,.on-dark h3{color:var(--white);}
.center{text-align:center;margin-inline:auto;}
.text-max{max-width:62ch;}
.mt-0{margin-top:0;}
.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;}
.skip-link{position:absolute;left:12px;top:-60px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:var(--radius-sm);z-index:200;transition:top .2s var(--ease);}
.skip-link:focus{top:12px;}
strong{color:var(--ink);}
.text-royal{color:var(--royal);}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;padding:15px 26px;border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:700;font-size:.95rem;letter-spacing:-.005em;border:1.5px solid transparent;cursor:pointer;transition:transform .16s var(--ease),box-shadow .16s var(--ease),background .16s var(--ease),color .16s var(--ease),border-color .16s var(--ease);white-space:nowrap;}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--royal);color:#fff;clip-path:polygon(0 0, calc(100% - var(--cut-sm)) 0, 100% var(--cut-sm), 100% 100%, var(--cut-sm) 100%, 0 calc(100% - var(--cut-sm)));box-shadow:var(--shadow-1);}
.btn-primary:hover{background:var(--royal-dark);}
.btn-outline{background:transparent;border-color:var(--line);color:var(--ink);}
.btn-outline:hover{border-color:var(--royal);color:var(--royal);}
.btn-outline-royal{background:var(--white);border-color:var(--royal);color:var(--royal);}
.btn-outline-royal:hover{background:var(--royal);color:#fff;}
.btn-outline.on-dark{border-color:rgba(255,255,255,.4);color:#fff;}
.btn-outline.on-dark:hover{border-color:#fff;background:rgba(255,255,255,.08);}
.btn-block{width:100%;}
.btn-lg{padding:18px 32px;font-size:1.02rem;}
.btn-sm{padding:10px 18px;font-size:.86rem;}
.btn{max-width:100%;}
@media(max-width:480px){.btn{white-space:normal;text-align:center;}}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}
.call-link{display:inline-flex;align-items:center;gap:.55em;font-weight:600;color:var(--ink);transition:color .15s;}
.call-link:hover{color:var(--royal);}
.call-link svg{flex:none;}
.call-link.on-dark,.on-dark .call-link{color:#fff;}
.call-link.on-dark:hover,.on-dark .call-link:hover{color:var(--royal-tint);}

/* ---------- Header / Nav ---------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid var(--line);}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 20px;max-width:1200px;margin-inline:auto;}
@media(min-width:900px){.header-inner{padding:10px 32px;}}
.brand{display:flex;align-items:center;color:var(--ink);}
.brand-logo{height:min(96px,calc((100vw - 148px)/2.333));width:auto;display:block;object-fit:contain;}
.brand{flex-shrink:0;}
@media(max-width:899px){.header-actions .btn,.header-actions .call-link{display:none;}
.header-inner{--logo-w:min(230px,calc((100vw - 140px)/.957));}
.header-inner .brand-logo{width:var(--logo-w);max-width:none;flex-shrink:0;height:auto;aspect-ratio:350/91;object-fit:cover;object-position:50% 59.3%;margin-left:calc(var(--logo-w) * -.0429);}}
@media(min-width:900px){.brand-logo{height:66px;}}
.mobile-nav-head .brand-logo{--mlogo-w:min(230px,calc((100vw - 140px)/.957));width:var(--mlogo-w);max-width:none;height:auto;aspect-ratio:350/91;object-fit:cover;object-position:50% 59.3%;margin-left:calc(var(--mlogo-w) * -.0429);}
.footer-brand{--flogo-w:min(240px,calc(100vw - 40px));}
@media(min-width:760px){.footer-brand{--flogo-w:clamp(150px,19vw,240px);}}
.footer-brand .brand-logo{width:var(--flogo-w);max-width:none;height:auto;aspect-ratio:350/91;object-fit:cover;object-position:50% 59.3%;margin-left:calc(var(--flogo-w) * -.0429);}

.main-nav{display:none;}
@media(min-width:1200px){
  .main-nav{display:flex;align-items:center;gap:2px;}
  .main-nav>ul{display:flex;align-items:center;gap:2px;}
  .main-nav>ul>li{position:relative;}
  .main-nav>ul>li>a{display:flex;align-items:center;gap:6px;padding:12px 14px;border-radius:var(--radius-sm);color:var(--ink);font-size:.93rem;font-weight:600;transition:background .15s,color .15s;}
  .main-nav>ul>li>a:hover,.main-nav>ul>li.open>a,.main-nav>ul>li:hover>a{color:var(--royal);}
  .main-nav>ul>li>a[aria-current="page"]{color:var(--royal);}
  .caret{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-4px;transition:transform .18s var(--ease);}
  .main-nav>ul>li.open .caret,.main-nav>ul>li:hover .caret{transform:rotate(-135deg);margin-top:2px;}
  .dropdown{position:absolute;top:100%;left:0;min-width:300px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-2);padding:10px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s var(--ease),transform .18s var(--ease),visibility .18s;}
  .main-nav>ul>li.open .dropdown,.main-nav>ul>li:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0);}
  .dropdown a{display:block;padding:11px 14px;border-radius:var(--radius-sm);color:var(--ink);font-size:.91rem;font-weight:500;}
  .dropdown a:hover{background:var(--royal-tint);color:var(--royal);}
  .dropdown a.dropdown-lead{color:var(--royal);font-weight:700;border-bottom:1px solid var(--line);border-radius:0;margin-bottom:6px;padding-bottom:12px;}
}
.header-actions{display:flex;align-items:center;gap:10px;}
.header-actions .call-link{display:none;font-size:.9rem;}
@media(min-width:900px){.header-actions .call-link{display:inline-flex;}}
.nav-toggle{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:var(--radius-sm);background:var(--royal);border:1px solid var(--royal);color:#fff;cursor:pointer;box-shadow:0 2px 8px rgba(0,144,253,.35);transition:background .15s var(--ease),transform .15s var(--ease);}
.nav-toggle:hover,.nav-toggle:active{background:var(--royal-dark);border-color:var(--royal-dark);}
.nav-toggle:focus-visible{outline:3px solid var(--royal-line);outline-offset:2px;}
@media(min-width:1200px){.nav-toggle{display:none;}}
.nav-toggle svg{width:24px;height:24px;}

.mobile-nav{position:fixed;inset:0;z-index:150;background:var(--white);transform:translateX(100%);transition:transform .28s var(--ease);overflow-y:auto;}
.mobile-nav.is-open{transform:translateX(0);}
@media(min-width:1200px){.mobile-nav{display:none;}}
.mobile-nav-head{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line);}
.mobile-nav-close{width:44px;height:44px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line);color:var(--ink);display:flex;align-items:center;justify-content:center;}
.mobile-nav-body{padding:18px 20px 40px;}
.mobile-nav-primary{display:grid;gap:10px;margin-bottom:22px;}
.mobile-nav-primary>a{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);color:var(--ink);font-family:var(--font-display);font-weight:800;font-size:1.05rem;}
.mobile-accordion{border-top:1px solid var(--line);}
.mobile-accordion-item{border-bottom:1px solid var(--line);}
.mobile-accordion-trigger{width:100%;display:flex;justify-content:space-between;align-items:center;padding:16px 4px;background:none;border:0;color:var(--ink);font-size:1rem;font-weight:600;text-align:left;}
.mobile-accordion-panel{max-height:0;overflow:hidden;transition:max-height .25s var(--ease);}
.mobile-accordion-item.open .mobile-accordion-panel{max-height:400px;}
.mobile-accordion-panel a{display:block;padding:10px 4px 10px 14px;color:var(--slate);font-size:.94rem;border-left:2px solid var(--line);margin-left:2px;}
.mobile-accordion-panel a:hover{color:var(--royal);border-left-color:var(--royal);}
.mobile-accordion-trigger .caret{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .2s;}
.mobile-accordion-item.open .caret{transform:rotate(-135deg);}
.mobile-nav-foot{margin-top:24px;display:grid;gap:10px;}

/* ---------- Hero (Home) ---------- */
.hero{background:var(--white);position:relative;padding-top:44px;padding-bottom:48px;overflow:hidden;}
@media(min-width:900px){.hero{padding-top:64px;padding-bottom:72px;}}
.hero-grid{position:relative;display:grid;gap:36px;align-items:center;}
@media(min-width:960px){.hero-grid{grid-template-columns:1.05fr .95fr;gap:52px;}}
.hero-copy .lede{margin-bottom:1.4em;}
.hero-copy h1{margin-bottom:.32em;}
.hero-phone{display:inline-flex;align-items:center;gap:.6em;margin-top:22px;font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--ink);}
.hero-phone svg{color:var(--royal);flex:none;}
.hero-phone:hover{color:var(--royal);}
.hero-media{position:relative;aspect-ratio:4/3.1;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-2);clip-path:polygon(0 0, calc(100% - 34px) 0, 100% 34px, 100% 100%, 34px 100%, 0 calc(100% - 34px));}
.hero-media img{width:100%;height:100%;object-fit:cover;}
.hero-media-tag{position:absolute;bottom:18px;left:18px;background:rgba(27,28,32,.86);backdrop-filter:blur(6px);color:#fff;font-size:.8rem;font-weight:600;padding:9px 16px;border-radius:var(--radius-sm);}

/* ---------- Hero (Home) — full-screen background photo ---------- */
.hero-full{position:relative;min-height:88vh;display:flex;align-items:center;color:#fff;isolation:isolate;padding:120px 0 64px;overflow:hidden;}
@media(max-width:640px){.hero-full{min-height:640px;padding:100px 0 56px;}}
.hero-bg-layer{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;opacity:0;transition:opacity 1.8s ease;animation:heroZoom 16s ease-in-out infinite alternate;}
.hero-bg-layer.is-active{opacity:1;}
@keyframes heroZoom{from{transform:scale(1);}to{transform:scale(1.1);}}
@media(prefers-reduced-motion:reduce){.hero-bg-layer{animation:none;}}
.hero-full::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(12,13,16,.86) 0%,rgba(12,13,16,.6) 42%,rgba(12,13,16,.28) 72%);z-index:-1;}
.hero-full .container{position:relative;z-index:1;}
.hero-full-copy{max-width:620px;}
.hero-full-copy .lede{margin-bottom:1.4em;}
.on-dark .hero-phone{color:#fff;}
.on-dark .hero-phone:hover{color:var(--royal-tint);}
.hero-full-copy .lede-kicker{font-family:var(--font-display);font-weight:700;color:#fff;font-size:var(--step-2);margin-bottom:.3em;}
/* Phones: hero (text + buttons) fits between the sticky header and bottom bar without scrolling */
@media(max-width:759px){
.hero-full{min-height:calc(100vh - 150px);min-height:calc(100svh - 150px);padding:16px 0 20px;}
.hero-full .breadcrumbs{display:none;}
.hero-full .eyebrow{font-size:clamp(.72rem,1.75svh,.86rem);letter-spacing:.14em;margin-bottom:clamp(8px,1.6svh,14px);}
.hero-full h1{font-size:clamp(1.5rem,min(9.2vw,5.2svh),2.8rem);line-height:1.1;margin-bottom:.5em;}
.hero-full-copy .lede{font-size:clamp(.92rem,min(4.7vw,2.8svh),1.25rem);line-height:1.5;margin-bottom:1.1em;}
.hero-full-copy .lede-kicker{font-size:clamp(1.2rem,3.5svh,1.65rem);margin-bottom:.15em;}
.hero-full .cta-row{gap:clamp(8px,1.5svh,14px);margin-top:clamp(10px,2.4svh,22px) !important;}
.hero-full .cta-row .btn{width:100%;padding:clamp(11px,2.1svh,18px) 18px;font-size:clamp(.92rem,2.35svh,1.1rem);}
.hero-full .hero-phone,.hero-full .cta-row .call-link{display:none;}
}

/* ---------- Sub-hero (interior pages) ---------- */
.page-hero{background:var(--surface);position:relative;padding:40px 0 52px;border-bottom:1px solid var(--line);}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:6px;font-size:.82rem;color:var(--slate);margin-bottom:20px;}
.breadcrumbs a:hover{color:var(--royal);}
.breadcrumbs .sep{opacity:.5;}
.breadcrumbs.on-dark{color:rgba(255,255,255,.7);}
.breadcrumbs.on-dark a{color:rgba(255,255,255,.9);}
.breadcrumbs.on-dark a:hover{color:var(--royal-tint);}
.page-hero h1{max-width:20ch;}
.page-hero-grid{display:grid;gap:32px;align-items:center;}
@media(min-width:960px){.page-hero-grid{grid-template-columns:1.1fr .9fr;gap:48px;}}
.page-hero-media{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-1);aspect-ratio:4/3;border:1px solid var(--line);}
.page-hero-media img{width:100%;height:100%;object-fit:cover;}

/* ---------- Cards / Sections ---------- */
.section-head{max-width:640px;margin-bottom:40px;}
.section-head.center{margin-inline:auto;text-align:center;}
.card{background:var(--white);border-radius:var(--radius);padding:28px 26px;box-shadow:var(--shadow-1);border:1px solid var(--line);height:100%;transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s var(--ease);}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-2);border-color:var(--royal-line);}
.card-cta-blue{background:var(--royal);border-color:var(--royal);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;}
.card-cta-blue h3{color:#fff;}
.card-cta-blue p{color:rgba(255,255,255,.85);}
.card-cta-blue .btn{background:#fff;color:var(--royal);}
.card-cta-blue .btn:hover{background:var(--royal-tint);color:var(--royal);}
.img-frame{overflow:hidden;}
.img-frame img{transition:transform .4s var(--ease);}
.card:hover .img-frame img{transform:scale(1.08);}
.grid{display:grid;gap:22px;}
.grid-2{grid-template-columns:1fr;}
.grid-3{grid-template-columns:1fr;}
.grid-4{grid-template-columns:1fr;}
@media(min-width:640px){.grid-2{grid-template-columns:1fr 1fr;}.grid-4{grid-template-columns:1fr 1fr;}}
@media(min-width:860px){.grid-3{grid-template-columns:repeat(3,1fr);}.grid-4{grid-template-columns:repeat(4,1fr);}}

.icon{color:var(--royal);}
.icon-wrap{width:46px;height:46px;flex:none;border-radius:var(--radius-sm);background:var(--royal-tint);display:flex;align-items:center;justify-content:center;transition:background .22s var(--ease),transform .22s var(--ease);}
.icon-wrap svg{width:22px;height:22px;color:var(--royal);transition:color .22s var(--ease);}
.card:hover .icon-wrap{background:var(--royal);transform:scale(1.08);}
.card:hover .icon-wrap svg{color:#fff;}
.usecase-card{display:flex;flex-direction:column;gap:14px;}
.usecase-card .icon-wrap{width:46px;height:46px;border-radius:var(--radius-sm);background:var(--royal-tint);display:flex;align-items:center;justify-content:center;}
.usecase-card .icon-wrap svg{width:24px;height:24px;color:var(--royal);}
.usecase-card h2,.usecase-card h3{font-size:var(--step-1);margin-bottom:.2em;}
.usecase-card p{color:var(--slate);font-size:.95rem;flex:1;}
a.link{font-weight:700;color:var(--royal);display:inline-flex;align-items:center;gap:.4em;}
a.link .arrow{transition:transform .18s var(--ease);}
a.link:hover .arrow{transform:translateX(4px);}
.section-next{margin-top:28px;padding-top:20px;border-top:1px solid var(--line);text-align:center;}
.section-next a.link{font-size:1.02rem;justify-content:center;}

.proof-row{display:grid;gap:26px;}
@media(min-width:760px){.proof-row{grid-template-columns:repeat(3,1fr);}}
.proof-item{text-align:center;padding:20px 12px;border-radius:var(--radius);transition:background .22s var(--ease);}
.proof-item:hover{background:var(--royal-tint);}
.proof-item .icon-wrap{width:52px;height:52px;border-radius:50%;background:var(--royal-tint);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;transition:background .22s var(--ease),transform .22s var(--ease);}
.proof-item .icon-wrap svg{width:24px;height:24px;color:var(--royal);transition:color .22s var(--ease);}
.proof-item:hover .icon-wrap{background:var(--royal);transform:scale(1.08);}
.proof-item:hover .icon-wrap svg{color:#fff;}
.proof-item h3{font-size:var(--step-1);}
.proof-item p{color:var(--slate);font-size:.92rem;}

/* Testimonials */
.testi{background:var(--white);border-radius:var(--radius);padding:28px 26px;border:1px solid var(--line);box-shadow:var(--shadow-1);height:100%;display:flex;flex-direction:column;}
.testi .stars{color:var(--royal);letter-spacing:.15em;margin-bottom:14px;font-size:1rem;}
.testi p{font-style:italic;color:var(--ink);flex:1;}
.testi footer{margin-top:16px;font-style:normal;font-weight:700;font-size:.9rem;color:var(--ink);}
.testi footer span{display:block;font-weight:500;color:var(--slate);font-size:.82rem;font-style:normal;}

/* FAQ */
.faq{border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%;display:flex;justify-content:space-between;gap:16px;align-items:center;text-align:left;padding:22px 4px;background:none;border:0;cursor:pointer;font-family:var(--font-display);font-weight:700;font-size:var(--step-1);color:var(--ink);}
.faq-q:hover{color:var(--royal);}
.faq-q .caret{flex:none;width:12px;height:12px;border-right:2px solid var(--royal);border-bottom:2px solid var(--royal);transform:rotate(45deg);transition:transform .2s var(--ease);}
.faq-item.open .caret{transform:rotate(-135deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s var(--ease);}
.faq-item.open .faq-a{max-height:500px;}
.faq-a p{padding:0 4px 22px;color:var(--slate);max-width:68ch;}
.faq-group{margin-bottom:8px;}
.faq-group + .faq-group{margin-top:52px;}
.faq-group h2{font-size:var(--step-2);}

/* Applications / check list */
.check-list{display:grid;gap:12px;}
@media(min-width:640px){.check-list.cols-2{grid-template-columns:1fr 1fr;}}
.check-list li{display:flex;gap:12px;align-items:flex-start;font-size:.97rem;}
.check-list .tick{flex:none;width:22px;height:22px;border-radius:50%;background:var(--royal-tint);color:var(--royal);display:flex;align-items:center;justify-content:center;margin-top:1px;}
.check-list .tick svg{width:12px;height:12px;}

/* ---------- Before / After gallery (reusable component) ---------- */
.ba-intro{max-width:680px;margin-bottom:36px;}
.ba-grid{display:grid;gap:26px;}
@media(min-width:700px){.ba-grid{grid-template-columns:1fr 1fr;}}
@media(min-width:960px){.ba-grid.cols-3{grid-template-columns:1fr 1fr 1fr;}}
.ba-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-1);}
.ba-compare{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--surface);touch-action:pan-y;}
.ba-compare .ba-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none;}
.ba-compare .ba-after{clip-path:inset(0 0 0 50%);}
.ba-compare[data-pos] .ba-after{clip-path:inset(0 0 0 var(--pos,50%));}
.ba-label{position:absolute;top:12px;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:6px 11px;border-radius:var(--radius-sm);background:rgba(27,28,32,.82);color:#fff;z-index:3;}
.ba-label.before{left:12px;}
.ba-label.after{right:12px;}
.ba-handle{position:absolute;top:0;bottom:0;left:50%;width:0;z-index:4;pointer-events:none;}
.ba-compare[data-pos] .ba-handle{left:var(--pos,50%);}
.ba-handle::before{content:"";position:absolute;top:0;bottom:0;left:-1px;width:2px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.15);}
.ba-handle-grip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;background:#fff;box-shadow:var(--shadow-2);display:flex;align-items:center;justify-content:center;pointer-events:auto;cursor:ew-resize;}
.ba-handle-grip svg{width:18px;height:18px;color:var(--ink);}
.ba-slider-input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;z-index:5;}
.ba-body{padding:20px 22px 22px;}
.ba-body .ba-service{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--royal);background:var(--royal-tint);padding:5px 10px;border-radius:var(--radius-sm);margin-bottom:10px;}
.ba-body h3{font-size:1.08rem;margin-bottom:.3em;}
.ba-body p{color:var(--slate);font-size:.92rem;margin-bottom:0;}
.ba-body .ba-loc{color:var(--slate);font-size:.82rem;margin-top:.4em;display:flex;align-items:center;gap:.4em;}
.ba-placeholder{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:repeating-linear-gradient(135deg,var(--surface),var(--surface) 10px,#EFEFF1 10px,#EFEFF1 20px);color:var(--slate);text-align:center;padding:20px;}
.ba-placeholder svg{width:30px;height:30px;color:var(--slate);opacity:.7;}
.ba-placeholder span{font-size:.76rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;}
.ba-more{margin-top:36px;text-align:center;}

/* Split content */
.split{display:grid;gap:36px;align-items:center;}
@media(min-width:900px){.split{grid-template-columns:1fr 1fr;gap:56px;}}
.split.reverse .split-media{order:2;}
@media(max-width:899px){.split .split-media{order:-1;}}
.split-media{overflow:hidden;border-radius:var(--radius);}
.split-media img{border-radius:var(--radius);box-shadow:var(--shadow-1);border:1px solid var(--line);width:100%;object-fit:cover;transition:transform .4s var(--ease);}
.split-media:hover img{transform:scale(1.08);}

/* Steps / process */
.steps{counter-reset:step;display:grid;gap:20px;}
@media(min-width:760px){.steps{grid-template-columns:repeat(3,1fr);}}
.step{position:relative;padding-top:8px;}
.step .step-num{font-family:var(--font-display);font-size:.78rem;letter-spacing:.1em;color:var(--royal);text-transform:uppercase;margin-bottom:10px;display:block;font-weight:700;}

/* Flow diagram (fire safety chain / hood exchange cycle) */
.flow{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:0;margin:8px 0;}
.flow-node{background:var(--white);border:1.5px solid var(--line);border-radius:var(--radius);padding:14px 10px;text-align:center;min-width:0;flex:1 1 120px;max-width:170px;}
.flow-node strong{display:block;font-family:var(--font-display);font-size:.86rem;color:var(--ink);}
.flow-node svg{width:24px;height:24px;color:var(--royal);margin:0 auto 8px;}
.flow-arrow{flex:0 0 auto;width:20px;height:2px;background:var(--line);position:relative;margin:0 4px;}
.flow-arrow::after{content:"";position:absolute;right:-1px;top:50%;transform:translateY(-50%) rotate(45deg);width:7px;height:7px;border-right:2px solid var(--royal);border-top:2px solid var(--royal);}
@media(max-width:860px){.flow{flex-direction:column;flex-wrap:wrap;}.flow-arrow{width:2px;height:22px;margin:2px 0;}.flow-arrow::after{right:50%;top:auto;bottom:-1px;transform:translateX(50%) rotate(135deg);}.flow-node{max-width:280px;width:100%;flex-basis:auto;}}

.cycle{display:grid;gap:18px;grid-template-columns:1fr;counter-reset:cy;}
@media(min-width:700px){.cycle{grid-template-columns:repeat(4,1fr);}}
.cycle-item{position:relative;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:22px 18px;text-align:center;transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s var(--ease);}
.cycle-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-1);border-color:var(--royal-line);}
.cycle-item .cy-num{width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:.86rem;margin:0 auto 14px;transition:background .22s var(--ease);}
.cycle-item.is-repeat .cy-num{background:var(--royal);}
.cycle-item:hover .cy-num{background:var(--royal);}
.cycle-item h3{font-size:.98rem;margin-bottom:.3em;}
.cycle-item p{font-size:.86rem;color:var(--slate);margin:0;}
.cycle-connector{display:none;}
@media(min-width:700px){
  .cycle{position:relative;}
}

/* Decision band (homepage final CTA) */
.decision-band{background:var(--ink);border-radius:var(--radius);clip-path:polygon(0 0, calc(100% - 36px) 0, 100% 36px, 100% 100%, 36px 100%, 0 calc(100% - 36px));padding:48px 28px;position:relative;overflow:hidden;}
.decision-band .call-link{background:#fff;color:var(--ink);padding:15px 26px;border-radius:var(--radius-sm);box-shadow:var(--shadow-1);font-family:var(--font-display);font-size:.95rem;transition:background .18s var(--ease);}
.decision-band .call-link svg{color:var(--royal);}
.decision-band .call-link:hover{background:var(--royal-tint);color:var(--ink);}
@media(min-width:900px){.decision-band{padding:64px 56px;}}
.decision-grid{display:grid;gap:28px;position:relative;}
@media(min-width:820px){.decision-grid{grid-template-columns:1fr auto 1fr;align-items:center;}}
.decision-col{text-align:center;}
.decision-col h3{color:#fff;}
.decision-or{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.2em;font-size:.78rem;color:rgba(255,255,255,.45);font-weight:700;text-align:center;display:block;}

/* Quote / contact form */
.quote-embed{min-height:560px;scroll-margin-top:108px;}
.contact-split{max-width:1000px;margin-inline:auto;align-items:stretch;}
.contact-intro{display:flex;flex-direction:column;}
.contact-img{position:relative;flex:1 1 auto;min-height:280px;margin-top:28px;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow-1);}
.contact-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;}
@media(max-width:899px){.contact-img{display:none;}}
.contact-strip{display:grid;gap:18px;}
.contact-alt{max-width:1000px;margin:56px auto 0;}
@media(min-width:640px){.contact-strip{grid-template-columns:repeat(3,1fr);}}
.contact-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:24px;min-width:0;}
.contact-card .icon-wrap{width:40px;height:40px;border-radius:var(--radius-sm);background:var(--royal-tint);display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.contact-card .icon-wrap svg{width:20px;height:20px;color:var(--royal);}
.contact-card h2,.contact-card h3{font-size:1rem;margin-bottom:.3em;}
.contact-card a{font-weight:700;overflow-wrap:anywhere;color:var(--royal);}
.contact-card a:hover{text-decoration:underline;}
.contact-card p{color:var(--slate);font-size:.9rem;}
.form-note{font-size:.82rem;color:var(--slate);margin-top:14px;}

/* Contact strip */

/* Sticky mobile CTA bar */
.mobile-cta-bar{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;background:var(--white);border-top:1px solid var(--line);padding:10px;gap:10px;box-shadow:0 -6px 20px rgba(0,0,0,.08);}
@media(min-width:900px){.mobile-cta-bar{display:none;}}
.mobile-cta-bar a{flex:1;text-align:center;white-space:nowrap;padding-inline:10px;}
.mobile-cta-bar .btn-outline{border-color:var(--line);}

/* Footer */
.site-footer{background:var(--surface);color:var(--slate);padding:60px 0 26px;border-top:1px solid var(--line);}
.footer-grid{display:grid;gap:38px;margin-bottom:44px;}
@media(min-width:760px){.footer-grid{grid-template-columns:1.3fr 1fr 1fr 1fr;}}
.footer-brand .brand{margin-bottom:14px;}
.footer-brand p{max-width:34ch;font-size:.92rem;color:var(--slate);}
.footer-col .footer-title{font-family:var(--font-body);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;color:var(--ink);margin-bottom:16px;}
.footer-col ul{display:grid;gap:10px;}
.footer-col a{font-size:.92rem;color:var(--slate);}
.footer-col a:hover{color:var(--royal);}
.footer-bottom{border-top:1px solid var(--line);padding-top:24px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:.82rem;color:var(--slate);}
.footer-social{display:flex;gap:10px;}
.footer-social a{width:40px;height:40px;border-radius:50%;border:1px solid var(--royal);background:var(--royal);color:#fff;display:flex;align-items:center;justify-content:center;transition:.15s;}
.footer-social a:hover{background:var(--royal-dark);border-color:var(--royal-dark);color:#fff;transform:translateY(-2px);}
.footer-social svg{width:18px;height:18px;}

/* Misc */
.divider{height:1px;background:var(--line);margin:56px 0;}
.tag{display:inline-block;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700;padding:6px 12px;border-radius:var(--radius-sm);background:var(--royal-tint);color:var(--royal);}
.parish-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px;}
.parish-list span{font-size:.85rem;font-weight:600;padding:9px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);color:var(--ink);}
.map-wrap{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-1);aspect-ratio:4/3;}
.map-wrap iframe{width:100%;height:100%;border:0;display:block;}
.cross-link-band{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.cross-link-band .inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;}
.related-links{display:flex;flex-wrap:wrap;gap:10px;}
.related-links a:not(.btn){padding:9px 16px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--white);font-size:.86rem;font-weight:600;color:var(--ink);transition:.15s var(--ease);}
.related-links a:not(.btn):hover{border-color:var(--royal);color:var(--royal);}

.callout{border:1.5px solid var(--royal-line);background:var(--royal-tint);border-radius:var(--radius);padding:26px 26px;}
.callout h3{font-size:1.08rem;margin-bottom:.35em;}
.callout p{color:var(--slate);margin-bottom:0;}
.callout-warn{border-color:#EAD9B8;background:#FBF4E6;}

.spec-strip{display:grid;gap:18px;grid-template-columns:repeat(2,1fr);border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:var(--surface);}
@media(min-width:700px){.spec-strip{grid-template-columns:repeat(4,1fr);}}
.spec-item{text-align:center;}
.spec-item .num{font-family:var(--font-display);font-weight:800;font-size:var(--step-2);color:var(--royal);display:block;}
.spec-item .label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--slate);}
