/* =========================================================
   BrightShapeStudio — shared stylesheet
   Neubrutalist aesthetic for a branding agency: hard borders,
   raw offset shadows, flat saturated color, no gradients.
   Class + ID prefix: bss-
   ========================================================= */

:root{
  --bss-paper: #FFFFFF;
  --bss-paper-2: #F2F0EA;
  --bss-black: #111111;
  --bss-black-2: #1B1B1B;
  --bss-black-3: #0A0A0A;
  --bss-mist: #55534D;
  --bss-mist-on-dark: #C9C7BE;
  --bss-yellow: #FFD93B;
  --bss-pink: #FF5C8A;
  --bss-blue: #4D7CFF;
  --bss-line: rgba(255,255,255,0.16);
  --bss-line-light: rgba(17,17,17,0.85);

  --bss-r: 0px;
  --bss-shadow-off: 6px 6px 0 var(--bss-black);
  --bss-shadow-off-sm: 4px 4px 0 var(--bss-black);
  --bss-shadow-off-dark: 6px 6px 0 var(--bss-yellow);

  --bss-header-h: 84px;
  --bss-ease: cubic-bezier(.19,1,.22,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--bss-paper);
  color:var(--bss-black);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Bricolage Grotesque',sans-serif;
  margin:0; line-height:1.02; letter-spacing:-0.02em; font-weight:800;
}
p{ margin:0; }
a{ color:inherit; text-decoration:none; }
ul,ol{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
img,svg{ display:block; max-width:100%; }
::selection{ background:var(--bss-yellow); color:var(--bss-black); }

.bss-skip{ position:absolute; left:12px; top:-60px; background:var(--bss-yellow); color:var(--bss-black); border:3px solid var(--bss-black); padding:10px 18px; font-weight:800; z-index:9999; transition:top .2s var(--bss-ease); }
.bss-skip:focus{ top:12px; }
a:focus-visible, button:focus-visible, summary:focus-visible{ outline:3px solid var(--bss-pink); outline-offset:3px; }

.bss-wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }
.bss-wrap-wide{ max-width:1480px; margin:0 auto; padding:0 40px; }
.bss-eyebrow{ font-family:'Bricolage Grotesque',sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:.04em; font-size:13px; display:inline-flex; align-items:center; gap:8px; background:var(--bss-yellow); border:2.5px solid var(--bss-black); padding:6px 14px; transform:rotate(-1.5deg); }
.bss-tone-dark .bss-eyebrow{ background:var(--bss-yellow); color:var(--bss-black); border-color:var(--bss-black); }
.bss-h2{ font-size:clamp(30px,4.2vw,48px); font-weight:800; }
.bss-lead{ font-size:17.5px; line-height:1.6; color:var(--bss-mist); max-width:620px; }
.bss-section-head{ margin-bottom:52px; }
.bss-tone-light{ background:var(--bss-paper); color:var(--bss-black); }
.bss-tone-paper2{ background:var(--bss-paper-2); color:var(--bss-black); }
.bss-tone-dark{ background:var(--bss-black); color:var(--bss-paper); }
.bss-tone-dark .bss-lead{ color:var(--bss-mist-on-dark); }
.bss-mist-txt{ color:var(--bss-mist); }
.bss-tone-dark .bss-mist-txt{ color:var(--bss-mist-on-dark); }
mark.bss-accent-word{ background:var(--bss-pink); color:var(--bss-black); padding:0 8px; box-decoration-break:clone; -webkit-box-decoration-break:clone; }

/* --- buttons --- */
.bss-btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 28px; font-weight:800; font-size:15px; border:3px solid var(--bss-black); background:var(--bss-paper); color:var(--bss-black); box-shadow:var(--bss-shadow-off-sm); transition:transform .15s var(--bss-ease), box-shadow .15s var(--bss-ease); white-space:nowrap; }
.bss-btn:hover{ transform:translate(2px,2px); box-shadow:2px 2px 0 var(--bss-black); }
.bss-btn-primary{ background:var(--bss-yellow); }
.bss-tone-dark .bss-btn-primary{ box-shadow:4px 4px 0 var(--bss-yellow); border-color:var(--bss-paper); }
.bss-tone-dark .bss-btn-primary:hover{ box-shadow:2px 2px 0 var(--bss-yellow); }
.bss-btn-pink{ background:var(--bss-pink); }
.bss-btn-ghost-dark{ background:transparent; color:var(--bss-paper); border-color:var(--bss-paper); box-shadow:4px 4px 0 var(--bss-mist-on-dark); }
.bss-btn-ghost-dark:hover{ box-shadow:2px 2px 0 var(--bss-mist-on-dark); }
.bss-btn-ghost-light{ background:transparent; }
.bss-btn-text{ display:inline-flex; align-items:center; gap:8px; font-weight:800; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; }
.bss-btn-text svg{ width:16px; height:16px; transition:transform .18s var(--bss-ease); }
.bss-btn-text:hover svg{ transform:translateX(4px); }
.bss-btn-sm{ padding:9px 18px; font-size:13px; box-shadow:3px 3px 0 var(--bss-black); }

/* =========================================================
   HEADER
   ========================================================= */
.bss-header{ position:fixed; top:0; left:0; right:0; z-index:1000; height:var(--bss-header-h); display:flex; align-items:center; background:var(--bss-paper); border-bottom:3px solid transparent; transition:border-color .2s var(--bss-ease); }
.bss-header.is-scrolled{ border-bottom-color:var(--bss-black); }
.bss-header-inner{ width:100%; max-width:1400px; margin:0 auto; padding:0 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.bss-brand{ display:flex; align-items:center; gap:11px; font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:19px; color:var(--bss-black); flex-shrink:0; }
.bss-brand .bss-mark{ width:32px; height:32px; }
.bss-brand em{ font-style:normal; background:var(--bss-yellow); padding:0 4px; }

.bss-nav{ display:flex; align-items:center; gap:2px; }
.bss-nav a{ font-size:14.5px; font-weight:700; color:var(--bss-black); padding:10px 14px; transition:background .15s; }
.bss-nav a:hover{ background:var(--bss-paper-2); }
.bss-nav a.is-active{ background:var(--bss-yellow); border:2px solid var(--bss-black); }

.bss-header-right{ display:flex; align-items:center; gap:14px; }
.bss-burger{ display:none; width:44px; height:44px; border:2.5px solid var(--bss-black); background:transparent; align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.bss-burger span{ width:20px; height:2.5px; background:var(--bss-black); display:block; transition:transform .25s var(--bss-ease), opacity .2s; }
.bss-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.bss-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.bss-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.bss-mobile-panel{ position:fixed; top:var(--bss-header-h); left:0; right:0; z-index:999; background:var(--bss-paper); border-bottom:3px solid var(--bss-black); max-height:0; overflow:hidden; transition:max-height .32s var(--bss-ease); }
.bss-mobile-panel.is-open{ max-height:560px; }
.bss-mobile-panel ul{ padding:14px 24px 26px; display:flex; flex-direction:column; }
.bss-mobile-panel a{ padding:14px 4px; font-size:16px; font-weight:700; color:var(--bss-black); border-bottom:2px solid var(--bss-paper-2); }
.bss-mobile-panel a.is-active{ background:var(--bss-yellow); }
.bss-mobile-panel .bss-btn{ margin-top:16px; width:100%; }

/* =========================================================
   HERO — copy left, visual right (two-column split)
   ========================================================= */
.bss-hero{ position:relative; background:var(--bss-paper); padding:calc(var(--bss-header-h) + 60px) 0 90px; overflow:hidden; }
.bss-hero-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.bss-hero-copy .bss-eyebrow{ margin-bottom:24px; }
.bss-hero h1{ font-size:clamp(38px,5.4vw,66px); }
.bss-hero-sub{ font-size:clamp(15.5px,1.6vw,18px); color:var(--bss-mist); max-width:500px; margin:24px 0 0; line-height:1.6; }
.bss-hero-ctas{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:34px; }
.bss-availability{ display:inline-flex; align-items:center; gap:9px; margin-top:28px; font-size:13.5px; color:var(--bss-mist); font-weight:700; }
.bss-availability .dot{ width:9px; height:9px; border-radius:50%; background:#2EBD7E; border:2px solid var(--bss-black); }

.bss-hero-visual{ position:relative; height:400px; }
.bss-shape{ position:absolute; border:3px solid var(--bss-black); }
.bss-shape.circle{ border-radius:50%; background:var(--bss-yellow); width:220px; height:220px; top:10px; left:40px; box-shadow:var(--bss-shadow-off); }
.bss-shape.triangle{ width:0; height:0; border-left:110px solid transparent; border-right:110px solid transparent; border-bottom:190px solid var(--bss-pink); border-top:none; top:120px; right:20px; filter:drop-shadow(6px 6px 0 var(--bss-black)); background:none; }
.bss-shape.square{ width:150px; height:150px; background:var(--bss-blue); bottom:0; left:120px; transform:rotate(8deg); box-shadow:var(--bss-shadow-off); }
.bss-shape.dot{ width:24px; height:24px; border-radius:50%; background:var(--bss-black); top:0; right:120px; }

/* =========================================================
   TRUST STRIP — static wrapped row
   ========================================================= */
.bss-trust{ padding:36px 0; border-top:3px solid var(--bss-black); border-bottom:3px solid var(--bss-black); }
.bss-trust-inner{ display:flex; align-items:center; gap:34px; flex-wrap:wrap; }
.bss-trust-label{ font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; flex-shrink:0; }
.bss-trust-row{ display:flex; gap:32px; flex-wrap:wrap; flex:1; }
.bss-trust-row span{ font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:16px; opacity:.7; }

/* =========================================================
   SECTION shell
   ========================================================= */
.bss-section{ position:relative; padding:104px 0; }
.bss-section.is-tight{ padding:66px 0; }

/* =========================================================
   SERVICES — flat pricing (Model B), accordion / expandable list
   ========================================================= */
.bss-svc-accordion{ display:flex; flex-direction:column; gap:16px; }
.bss-svc-item{ border:3px solid var(--bss-black); background:var(--bss-paper); }
.bss-svc-summary{ width:100%; display:grid; grid-template-columns:50px 1fr auto auto 26px; align-items:center; gap:18px; padding:20px 22px; background:transparent; border:none; text-align:left; }
.bss-svc-num{ font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:14px; background:var(--bss-yellow); border:2px solid var(--bss-black); width:34px; height:34px; display:flex; align-items:center; justify-content:center; }
.bss-svc-name{ font-family:'Bricolage Grotesque',sans-serif; font-size:18px; font-weight:800; }
.bss-svc-tag{ font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; background:var(--bss-paper-2); border:2px solid var(--bss-black); padding:4px 10px; white-space:nowrap; }
.bss-svc-price{ font-family:'Bricolage Grotesque',sans-serif; font-size:19px; font-weight:800; white-space:nowrap; }
.bss-svc-chev{ width:22px; height:22px; transition:transform .25s var(--bss-ease); flex-shrink:0; }
.bss-svc-item.is-open .bss-svc-chev{ transform:rotate(180deg); }
.bss-svc-body{ max-height:0; overflow:hidden; transition:max-height .3s var(--bss-ease); }
.bss-svc-body-inner{ padding:0 22px 22px 102px; }
.bss-svc-body-inner p{ font-size:14.5px; color:var(--bss-mist); line-height:1.6; margin-bottom:14px; max-width:520px; }
.bss-svc-order{ font-size:13px; font-weight:800; display:inline-flex; align-items:center; gap:6px; background:var(--bss-pink); border:2px solid var(--bss-black); padding:8px 16px; }
html:not(.bss-js) .bss-svc-body{ max-height:none !important; }
.bss-svc-item.is-open .bss-svc-body{ max-height:260px; }

/* =========================================================
   PROCESS — horizontal numbered row, big bold numerals (dark)
   ========================================================= */
.bss-num-row{ display:grid; grid-template-columns:repeat(5,1fr); }
.bss-num-step{ padding:0 22px; border-left:3px solid var(--bss-line); }
.bss-num-step:first-child{ border-left:none; padding-left:0; }
.bss-num-step .big{ font-family:'Bricolage Grotesque',sans-serif; font-size:clamp(40px,5vw,64px); font-weight:800; color:var(--bss-yellow); line-height:1; margin-bottom:16px; }
.bss-num-step h3{ font-size:16.5px; margin-bottom:8px; color:var(--bss-paper); }
.bss-num-step p{ font-size:13.5px; color:var(--bss-mist-on-dark); line-height:1.55; }

/* =========================================================
   GUARANTEE — two-column band (badge left, copy right)
   ========================================================= */
.bss-guarantee{ display:grid; grid-template-columns:auto 1fr; align-items:center; gap:32px; padding:8px 0; }
.bss-guarantee-badge{ width:88px; height:88px; background:var(--bss-yellow); border:3px solid var(--bss-black); display:flex; align-items:center; justify-content:center; flex-shrink:0; transform:rotate(-4deg); box-shadow:var(--bss-shadow-off); }
.bss-guarantee-badge svg{ width:40px; height:40px; }
.bss-guarantee h3{ font-size:clamp(20px,2.6vw,28px); margin-bottom:10px; }
.bss-guarantee p{ font-size:15.5px; color:var(--bss-mist); max-width:640px; }
.bss-guarantee a{ font-weight:800; text-decoration:underline; text-decoration-thickness:2px; }

/* =========================================================
   COMPARISON — 3-column table-like strip (dark)
   ========================================================= */
.bss-compare{ border:3px solid var(--bss-paper); }
.bss-compare-row{ display:grid; grid-template-columns:1.3fr 1fr 1fr; }
.bss-compare-row + .bss-compare-row{ border-top:2px solid var(--bss-line); }
.bss-compare-row > div{ padding:18px 20px; font-size:14px; }
.bss-compare-row.is-head > div{ font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:13.5px; text-transform:uppercase; letter-spacing:.03em; }
.bss-compare-row.is-head > div:first-child{ background:var(--bss-yellow); color:var(--bss-black); }
.bss-compare-row:not(.is-head) > div:first-child{ font-weight:800; border-right:2px solid var(--bss-line); }
.bss-compare-row:not(.is-head) > div:nth-child(2),
.bss-compare-row:not(.is-head) > div:nth-child(3){ color:var(--bss-mist-on-dark); border-right:2px solid var(--bss-line); }
.bss-compare-row:not(.is-head) > div:last-child{ border-right:none; }
.bss-yes{ color:var(--bss-yellow); font-weight:800; }

/* =========================================================
   FAQ — two-column accordion (odd/even split)
   ========================================================= */
.bss-faq-grid{ column-count:2; column-gap:28px; }
.bss-faq-item{ break-inside:avoid; margin-bottom:16px; border:3px solid var(--bss-black); background:var(--bss-paper); }
.bss-faq-q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px 20px; background:transparent; border:none; text-align:left; font-family:'Bricolage Grotesque',sans-serif; font-size:15px; font-weight:800; }
.bss-faq-q .chev{ width:18px; height:18px; flex-shrink:0; transition:transform .25s var(--bss-ease); }
.bss-faq-item.is-open .bss-faq-q .chev{ transform:rotate(180deg); }
.bss-faq-a{ max-height:0; overflow:hidden; transition:max-height .3s var(--bss-ease); }
.bss-faq-a-inner{ padding:0 20px 20px; font-size:14px; color:var(--bss-mist); line-height:1.6; }
.bss-faq-a-inner a{ font-weight:800; text-decoration:underline; }
html:not(.bss-js) .bss-faq-a{ max-height:none !important; }
.bss-faq-item.is-open .bss-faq-a{ max-height:400px; }

/* =========================================================
   ABOUT — prose + visual side by side
   ========================================================= */
.bss-about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; margin-bottom:64px; }
.bss-about-copy p{ font-size:15.5px; line-height:1.7; color:var(--bss-mist); margin-bottom:16px; }
.bss-about-visual{ position:relative; height:320px; }
.bss-stat-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:3px solid var(--bss-black); margin-bottom:64px; }
.bss-stat{ text-align:center; padding:28px 10px; border-left:3px solid var(--bss-black); }
.bss-stat:first-child{ border-left:none; }
.bss-stat .num{ font-family:'Bricolage Grotesque',sans-serif; font-size:clamp(28px,3.2vw,40px); font-weight:800; }
.bss-stat .label{ font-size:12.5px; color:var(--bss-mist); margin-top:6px; font-weight:700; }
.bss-team{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:22px; max-width:640px; margin:0 auto; }
.bss-team-card{ padding:24px; border:3px solid var(--bss-black); background:var(--bss-paper); }
.bss-avatar{ width:52px; height:52px; display:flex; align-items:center; justify-content:center; font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:16px; color:var(--bss-black); margin-bottom:16px; border:2.5px solid var(--bss-black); }
.bss-team-card h4{ font-size:16px; margin-bottom:3px; }
.bss-team-card .role{ font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; margin-bottom:12px; }
.bss-team-card p.note{ font-size:13.5px; color:var(--bss-mist); line-height:1.5; }

/* =========================================================
   REVIEWS — horizontally scrollable strip, own wrapper
   ========================================================= */
.bss-review-scroller{ display:flex; gap:20px; overflow-x:auto; padding:6px 4px 20px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; }
.bss-review-scroller::-webkit-scrollbar{ height:8px; }
.bss-review-scroller::-webkit-scrollbar-thumb{ background:var(--bss-yellow); }
.bss-review-card{ scroll-snap-align:start; flex:0 0 320px; padding:26px; border:3px solid var(--bss-paper); background:var(--bss-black-2); }
.bss-stars{ color:var(--bss-yellow); font-size:14px; letter-spacing:2px; margin-bottom:16px; }
.bss-review-card p.quote{ font-size:14.5px; line-height:1.6; color:var(--bss-mist-on-dark); margin-bottom:20px; }
.bss-review-who .name{ font-family:'Bricolage Grotesque',sans-serif; font-size:14.5px; font-weight:800; color:var(--bss-paper); }
.bss-review-who .role{ font-size:12.5px; color:var(--bss-mist-on-dark); }
.bss-scroll-hint{ font-size:12px; font-weight:700; color:var(--bss-mist-on-dark); text-align:center; margin-top:6px; }

/* =========================================================
   FOOTER
   ========================================================= */
.bss-footer{ background:var(--bss-black-3); color:var(--bss-mist-on-dark); padding:76px 0 0; border-top:3px solid var(--bss-yellow); }
.bss-footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:56px; border-bottom:1px solid var(--bss-line); }
.bss-footer-brand .bss-brand{ margin-bottom:16px; color:var(--bss-paper); }
.bss-footer-brand p{ font-size:14px; line-height:1.6; max-width:280px; }
.bss-footer h5{ font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:var(--bss-paper); margin-bottom:18px; }
.bss-footer ul li{ margin-bottom:12px; }
.bss-footer a{ font-size:14.5px; color:var(--bss-mist-on-dark); transition:color .18s; }
.bss-footer a:hover{ color:var(--bss-yellow); }
.bss-footer .contact-item{ display:flex; gap:10px; align-items:flex-start; font-size:14px; margin-bottom:14px; }
.bss-footer .contact-item svg{ width:16px; height:16px; flex-shrink:0; margin-top:2px; color:var(--bss-yellow); }
.bss-footer-bottom{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; padding:26px 0; font-size:13px; }
.bss-footer-bottom .legal-shortcuts{ display:flex; gap:18px; flex-wrap:wrap; }

/* =========================================================
   COOKIE BANNER
   ========================================================= */
.bss-cookie{ position:fixed; left:20px; right:20px; bottom:-220px; z-index:2000; max-width:560px; margin:0 auto; background:var(--bss-paper); color:var(--bss-black); border:3px solid var(--bss-black); box-shadow:8px 8px 0 var(--bss-yellow); padding:24px 26px; transition:bottom .5s var(--bss-ease); }
.bss-cookie.is-visible{ bottom:20px; }
.bss-cookie p{ font-size:13.8px; line-height:1.55; color:var(--bss-mist); margin-bottom:16px; }
.bss-cookie a{ font-weight:800; text-decoration:underline; }
.bss-cookie-actions{ display:flex; gap:12px; flex-wrap:wrap; }

/* =========================================================
   STICKY CTA
   ========================================================= */
.bss-sticky-cta{ position:fixed; right:24px; bottom:24px; z-index:900; opacity:0; transform:translateY(16px) scale(.96); pointer-events:none; transition:opacity .3s var(--bss-ease), transform .3s var(--bss-ease); }
.bss-sticky-cta.is-visible{ opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }

/* =========================================================
   REVEAL ANIMATION
   ========================================================= */
html.bss-js .bss-reveal{ opacity:0; transform:translateY(22px); transition:opacity .6s var(--bss-ease), transform .6s var(--bss-ease); }
html.bss-js .bss-reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  html.bss-js .bss-reveal{ transition:none !important; opacity:1 !important; transform:none !important; }
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}
noscript .bss-reveal{ opacity:1 !important; transform:none !important; }

/* =========================================================
   Shared card icon, contact, legal
   ========================================================= */
.bss-card-icon{ width:52px; height:52px; background:var(--bss-yellow); border:2.5px solid var(--bss-black); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.bss-card-icon svg{ width:24px; height:24px; }

.bss-contact-hero{ padding:calc(var(--bss-header-h) + 70px) 0 60px; background:var(--bss-paper); position:relative; overflow:hidden; border-bottom:3px solid var(--bss-black); }
.bss-contact-grid{ display:grid; grid-template-columns:1fr 1fr 380px; gap:22px; }
.bss-contact-cards{ grid-column:1 / span 2; display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.bss-contact-card{ padding:28px; border:3px solid var(--bss-black); background:var(--bss-paper); }
.bss-contact-card .bss-card-icon{ margin-bottom:18px; }
.bss-contact-card h3{ font-size:16px; margin-bottom:8px; }
.bss-contact-card p, .bss-contact-card a{ font-size:14.5px; color:var(--bss-mist); line-height:1.6; }
.bss-contact-card a.value{ color:var(--bss-black); font-weight:800; display:inline-block; margin-top:2px; }
.bss-side-panel{ padding:30px; border:3px solid var(--bss-black); background:var(--bss-black); color:var(--bss-paper); display:flex; flex-direction:column; gap:16px; justify-content:center; box-shadow:var(--bss-shadow-off-dark); }
.bss-side-panel h3{ font-size:19px; }
.bss-side-panel p{ font-size:14px; color:var(--bss-mist-on-dark); line-height:1.6; }
.bss-map-wrap{ margin-top:22px; border:3px solid var(--bss-black); overflow:hidden; height:400px; }
.bss-map-wrap iframe{ width:100%; height:100%; border:0; }

.bss-legal-hero{ padding:calc(var(--bss-header-h) + 64px) 0 40px; background:var(--bss-black); color:var(--bss-paper); }
.bss-legal-hero p{ color:var(--bss-mist-on-dark); max-width:680px; margin-top:14px; font-size:15px; line-height:1.65; }
.bss-legal-subnav{ position:sticky; top:var(--bss-header-h); z-index:80; background:var(--bss-paper); border-bottom:3px solid var(--bss-black); }
.bss-legal-subnav ul{ display:flex; gap:6px; padding:14px 0; flex-wrap:wrap; }
.bss-legal-subnav a{ padding:8px 16px; border:2px solid transparent; font-size:13.5px; font-weight:800; color:var(--bss-mist); }
.bss-legal-subnav a:hover{ border-color:var(--bss-black); color:var(--bss-black); }
.bss-legal-doc{ padding:64px 0; max-width:760px; margin:0 auto; }
.bss-legal-doc + .bss-legal-doc{ border-top:3px solid var(--bss-black); }
.bss-legal-doc h2{ font-size:28px; margin-bottom:6px; }
.bss-legal-doc .updated{ font-size:13px; color:var(--bss-mist); margin-bottom:30px; display:block; font-weight:700; }
.bss-legal-doc h3{ font-family:'Bricolage Grotesque',sans-serif; font-size:17px; margin:28px 0 10px; }
.bss-legal-doc p{ font-size:14.8px; line-height:1.75; color:var(--bss-mist); margin-bottom:14px; }
.bss-legal-doc ul{ margin-bottom:14px; }
.bss-legal-doc li{ font-size:14.8px; line-height:1.75; color:var(--bss-mist); padding-left:20px; position:relative; margin-bottom:8px; }
.bss-legal-doc li::before{ content:'—'; position:absolute; left:0; font-weight:800; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1080px){
  .bss-hero-grid{ grid-template-columns:1fr; }
  .bss-hero-visual{ height:280px; order:-1; }
  .bss-num-row{ grid-template-columns:repeat(3,1fr); row-gap:30px; }
  .bss-num-step{ border-left:none; padding-left:0; }
  .bss-compare-row{ grid-template-columns:1.2fr 1fr 1fr; }
  .bss-about-grid{ grid-template-columns:1fr; }
  .bss-about-visual{ height:220px; order:-1; }
}
@media (max-width:900px){
  .bss-nav{ display:none; }
  .bss-burger{ display:flex; }
  .bss-stat-row{ grid-template-columns:repeat(2,1fr); }
  .bss-stat:nth-child(3){ border-left:none; }
  .bss-footer-grid{ grid-template-columns:1fr 1fr; }
  .bss-contact-grid{ grid-template-columns:1fr; }
  .bss-contact-cards{ grid-column:1; grid-template-columns:1fr 1fr; }
  .bss-faq-grid{ column-count:1; }
  .bss-num-row{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:640px){
  .bss-wrap,.bss-wrap-wide{ padding:0 20px; }
  .bss-section{ padding:70px 0; }
  .bss-contact-cards{ grid-template-columns:1fr; }
  .bss-footer-grid{ grid-template-columns:1fr; }
  .bss-hero-ctas{ flex-direction:column; width:100%; }
  .bss-hero-ctas .bss-btn{ width:100%; }
  .bss-legal-subnav ul{ overflow-x:auto; flex-wrap:nowrap; }
  .bss-num-row{ grid-template-columns:1fr; }
  .bss-compare-row{ grid-template-columns:1fr; }
  .bss-svc-summary{ grid-template-columns:36px 1fr; grid-template-areas:"num name" "num tag" "num meta"; row-gap:6px; }
  .bss-svc-num{ grid-area:num; }
  .bss-svc-name{ grid-area:name; }
  .bss-svc-tag{ grid-area:tag; justify-self:start; }
  .bss-svc-price{ grid-area:meta; justify-self:start; }
  .bss-svc-chev{ display:none; }
  .bss-svc-body-inner{ padding-left:22px; }
}
@media (max-width:480px){
  .bss-hero{ padding-top:calc(var(--bss-header-h) + 40px); }
}
