/* =========================================================
   PixelOrbitStudio — shared stylesheet
   Bright Scandinavian "orbit" aesthetic for a web design studio.
   Class + ID prefix: pos-
   ========================================================= */

:root{
  --pos-paper: #F7F5F1;
  --pos-paper-2: #EFEBE3;
  --pos-white: #FFFFFF;
  --pos-ink: #16181C;
  --pos-mist: #5B6470;
  --pos-mist-on-dark: #B7BBD6;
  --pos-night: #12142B;
  --pos-night-2: #1B1E3C;
  --pos-night-3: #0C0D1E;
  --pos-cobalt: #3654FF;
  --pos-cobalt-dim: #2A42D6;
  --pos-coral: #FF6B5B;
  --pos-line: rgba(255,255,255,0.12);
  --pos-line-light: rgba(22,24,28,0.11);

  --pos-r-l: 22px;
  --pos-r-m: 14px;
  --pos-r-s: 8px;

  --pos-shadow: 0 24px 55px -22px rgba(18,20,43,0.35);
  --pos-shadow-sm: 0 10px 26px -14px rgba(18,20,43,0.3);

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

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--pos-paper);
  color:var(--pos-ink);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Familjen Grotesk',sans-serif;
  margin:0; line-height:1.06; letter-spacing:-0.01em; font-weight:700;
}
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(--pos-cobalt); color:var(--pos-white); }

.pos-skip{ position:absolute; left:12px; top:-60px; background:var(--pos-cobalt); color:var(--pos-white); padding:12px 20px; border-radius:var(--pos-r-s); font-weight:700; z-index:9999; transition:top .2s var(--pos-ease); }
.pos-skip:focus{ top:12px; }
a:focus-visible, button:focus-visible, summary:focus-visible{ outline:3px solid var(--pos-cobalt); outline-offset:3px; border-radius:4px; }

.pos-wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }
.pos-wrap-wide{ max-width:1500px; margin:0 auto; padding:0 40px; }
.pos-eyebrow{ font-family:'Familjen Grotesk',sans-serif; text-transform:uppercase; letter-spacing:.15em; font-size:12.5px; font-weight:700; color:var(--pos-cobalt); display:inline-flex; align-items:center; gap:10px; }
.pos-eyebrow::before{ content:''; width:22px; height:1px; background:var(--pos-cobalt); display:inline-block; }
.pos-tone-dark .pos-eyebrow, .pos-tone-dark .pos-eyebrow::before{ color:#8FA0FF; background:#8FA0FF; }
.pos-h2{ font-size:clamp(30px,4vw,46px); }
.pos-lead{ font-size:17.5px; line-height:1.65; color:var(--pos-mist); max-width:620px; }
.pos-section-head{ margin-bottom:52px; }
.pos-tone-light{ background:var(--pos-paper); color:var(--pos-ink); }
.pos-tone-paper2{ background:var(--pos-paper-2); color:var(--pos-ink); }
.pos-tone-dark{ background:var(--pos-night); color:var(--pos-white); }
.pos-tone-dark .pos-lead{ color:var(--pos-mist-on-dark); }
.pos-mist-txt{ color:var(--pos-mist); }
.pos-tone-dark .pos-mist-txt{ color:var(--pos-mist-on-dark); }

/* --- buttons --- */
.pos-btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 28px; border-radius:100px; font-weight:700; font-size:15px; border:1px solid transparent; transition:transform .18s var(--pos-ease), background .18s, border-color .18s, color .18s; white-space:nowrap; }
.pos-btn-primary{ background:var(--pos-cobalt); color:var(--pos-white); }
.pos-btn-primary:hover{ background:var(--pos-cobalt-dim); transform:translateY(-2px); }
.pos-btn-coral{ background:var(--pos-coral); color:var(--pos-white); }
.pos-btn-coral:hover{ transform:translateY(-2px); filter:brightness(0.94); }
.pos-btn-ghost-dark{ border-color:rgba(255,255,255,0.32); color:var(--pos-white); }
.pos-btn-ghost-dark:hover{ border-color:var(--pos-white); background:rgba(255,255,255,0.07); }
.pos-btn-ghost-light{ border-color:var(--pos-line-light); color:var(--pos-ink); }
.pos-btn-ghost-light:hover{ border-color:var(--pos-ink); background:rgba(22,24,28,0.05); }
.pos-btn-text{ display:inline-flex; align-items:center; gap:8px; font-weight:700; color:var(--pos-cobalt); }
.pos-btn-text svg{ width:16px; height:16px; transition:transform .18s var(--pos-ease); }
.pos-btn-text:hover svg{ transform:translateX(4px); }
.pos-btn-sm{ padding:9px 18px; font-size:13.5px; }

/* =========================================================
   HEADER
   ========================================================= */
.pos-header{ position:fixed; top:0; left:0; right:0; z-index:1000; height:var(--pos-header-h); display:flex; align-items:center; border-bottom:1px solid transparent; transition:background .25s var(--pos-ease), border-color .25s var(--pos-ease); }
.pos-header.is-scrolled{ background:rgba(247,245,241,0.86); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom-color:var(--pos-line-light); }
.pos-header-inner{ width:100%; max-width:1400px; margin:0 auto; padding:0 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.pos-brand{ display:flex; align-items:center; gap:11px; font-family:'Familjen Grotesk',sans-serif; font-weight:700; font-size:18.5px; color:var(--pos-ink); flex-shrink:0; }
.pos-brand .pos-mark{ width:30px; height:30px; }
.pos-brand em{ font-style:normal; color:var(--pos-cobalt); }

.pos-nav{ display:flex; align-items:center; gap:6px; }
.pos-nav a{ font-size:14.5px; font-weight:600; color:var(--pos-mist); padding:10px 14px; border-radius:100px; transition:color .18s, background .18s; }
.pos-nav a:hover{ color:var(--pos-ink); background:rgba(22,24,28,0.06); }
.pos-nav a.is-active{ color:var(--pos-cobalt); background:rgba(54,84,255,0.1); }

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

.pos-mobile-panel{ position:fixed; top:var(--pos-header-h); left:0; right:0; z-index:999; background:var(--pos-white); border-bottom:1px solid var(--pos-line-light); max-height:0; overflow:hidden; transition:max-height .32s var(--pos-ease); }
.pos-mobile-panel.is-open{ max-height:560px; }
.pos-mobile-panel ul{ padding:14px 24px 26px; display:flex; flex-direction:column; }
.pos-mobile-panel a{ padding:14px 4px; font-size:16px; font-weight:600; color:var(--pos-mist); border-bottom:1px solid var(--pos-line-light); }
.pos-mobile-panel a.is-active, .pos-mobile-panel a:hover{ color:var(--pos-cobalt); }
.pos-mobile-panel .pos-btn{ margin-top:16px; width:100%; }

/* =========================================================
   HERO — centered, orbit graphic layered behind headline
   ========================================================= */
.pos-hero{ position:relative; background:var(--pos-paper); padding:calc(var(--pos-header-h) + 60px) 0 80px; overflow:hidden; }
.pos-orbit-decor{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none; z-index:1; }
.pos-orbit-svg{ width:min(760px, 90vw); height:auto; opacity:0.9; }
.pos-orbit-arm1, .pos-orbit-arm2{ transform-origin:220px 220px; }
html.pos-js .pos-orbit-arm1{ animation:posOrbitSpin 20s linear infinite; }
html.pos-js .pos-orbit-arm2{ animation:posOrbitSpin 13s linear infinite reverse; }
@keyframes posOrbitSpin{ from{ transform:rotate(0deg); } to{ transform:rotate(360deg); } }

.pos-hero-copy{ position:relative; z-index:2; max-width:800px; margin:0 auto; text-align:center; }
.pos-hero-copy .pos-eyebrow{ justify-content:center; margin-bottom:20px; }
.pos-hero-copy .pos-eyebrow::before{ display:none; }
.pos-hero h1{ font-size:clamp(36px,5.6vw,66px); }
.pos-hero h1 .pos-accent-word{ color:var(--pos-cobalt); }
.pos-hero-sub{ font-size:clamp(15.5px,1.7vw,18.5px); color:var(--pos-mist); max-width:600px; margin:22px auto 0; line-height:1.65; }
.pos-hero-ctas{ display:flex; align-items:center; justify-content:center; gap:26px; flex-wrap:wrap; margin-top:34px; position:relative; z-index:2; }
.pos-availability{ display:inline-flex; align-items:center; gap:9px; margin-top:28px; font-size:13.5px; color:var(--pos-mist); font-weight:600; position:relative; z-index:2; }
.pos-availability .dot{ width:8px; height:8px; border-radius:50%; background:#2EBD7E; box-shadow:0 0 0 4px rgba(46,189,126,0.16); }

/* =========================================================
   TRUST STRIP — static wrapped row
   ========================================================= */
.pos-trust{ padding:40px 0; border-bottom:1px solid var(--pos-line-light); }
.pos-trust-inner{ display:flex; align-items:center; gap:36px; flex-wrap:wrap; }
.pos-trust-label{ font-size:12.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--pos-mist); flex-shrink:0; }
.pos-trust-row{ display:flex; gap:34px; flex-wrap:wrap; flex:1; }
.pos-trust-row span{ font-family:'Familjen Grotesk',sans-serif; font-weight:700; font-size:16px; color:var(--pos-ink); opacity:.58; }

/* =========================================================
   SECTION shell
   ========================================================= */
.pos-section{ position:relative; padding:110px 0; }
.pos-section.is-tight{ padding:70px 0; }

/* =========================================================
   SERVICES — flat pricing (Model B), uniform card grid
   ========================================================= */
.pos-svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.pos-svc-card{ padding:28px; border-radius:var(--pos-r-l); background:var(--pos-white); border:1px solid var(--pos-line-light); display:flex; flex-direction:column; gap:14px; transition:transform .2s var(--pos-ease), box-shadow .2s; }
.pos-svc-card:hover{ transform:translateY(-4px); box-shadow:var(--pos-shadow-sm); }
.pos-svc-card .num{ font-family:'Familjen Grotesk',sans-serif; font-size:13px; font-weight:700; color:var(--pos-cobalt); }
.pos-svc-card h3{ font-size:18.5px; }
.pos-svc-card p{ font-size:13.8px; color:var(--pos-mist); line-height:1.55; flex:1; }
.pos-svc-tags{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:14px; border-top:1px solid var(--pos-line-light); }
.pos-svc-turnaround{ font-size:12px; font-weight:700; color:var(--pos-mist); }
.pos-svc-price-row{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; }
.pos-svc-price{ font-family:'Familjen Grotesk',sans-serif; font-size:22px; font-weight:700; }
.pos-svc-price small{ font-size:11.5px; font-weight:600; color:var(--pos-mist); }
.pos-svc-order{ font-size:12.5px; font-weight:700; color:var(--pos-cobalt); display:inline-flex; align-items:center; gap:4px; }
.pos-svc-order svg{ width:12px; height:12px; }

/* =========================================================
   PROCESS — dark, minimal horizontal stepper with connecting line
   ========================================================= */
.pos-stepper{ display:grid; grid-template-columns:repeat(5,1fr); gap:0; position:relative; }
.pos-stepper::before{ content:''; position:absolute; top:22px; left:10%; right:10%; height:2px; background:var(--pos-line); z-index:0; }
.pos-step{ position:relative; z-index:1; text-align:center; padding:0 10px; }
.pos-step .circle{ width:44px; height:44px; border-radius:50%; background:var(--pos-cobalt); color:var(--pos-white); display:flex; align-items:center; justify-content:center; font-family:'Familjen Grotesk',sans-serif; font-weight:700; margin:0 auto 18px; }
.pos-step h3{ font-size:15.5px; margin-bottom:8px; }
.pos-step p{ font-size:13px; color:var(--pos-mist-on-dark); line-height:1.5; }

/* =========================================================
   GUARANTEE — accent colored inline banner strip
   ========================================================= */
.pos-guarantee-strip{ background:var(--pos-cobalt); color:var(--pos-white); padding:36px 0; }
.pos-guarantee-inner{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; justify-content:space-between; }
.pos-guarantee-text{ display:flex; align-items:center; gap:16px; }
.pos-guarantee-text svg{ width:34px; height:34px; flex-shrink:0; }
.pos-guarantee-text h3{ font-size:17px; margin-bottom:4px; }
.pos-guarantee-text p{ font-size:13.8px; color:rgba(255,255,255,0.85); max-width:520px; }
.pos-guarantee-text a{ color:var(--pos-white); text-decoration:underline; }

/* =========================================================
   COMPARISON — paired short cards
   ========================================================= */
.pos-pair-cards{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.pos-pair-card{ padding:34px; border-radius:var(--pos-r-l); }
.pos-pair-card.is-with{ background:var(--pos-ink); color:var(--pos-white); }
.pos-pair-card.is-without{ background:var(--pos-paper-2); }
.pos-pair-card h4{ font-family:'Familjen Grotesk',sans-serif; font-size:18px; margin-bottom:20px; }
.pos-pair-card ul{ display:flex; flex-direction:column; gap:13px; }
.pos-pair-card li{ display:flex; align-items:flex-start; gap:10px; font-size:14px; }
.pos-pair-card.is-with li{ color:var(--pos-mist-on-dark); }
.pos-pair-card.is-without li{ color:var(--pos-mist); }
.pos-pair-card li svg{ width:16px; height:16px; flex-shrink:0; margin-top:2px; }
.pos-icon-yes{ color:#2EBD7E; }
.pos-icon-no{ color:#D65C5C; }

/* =========================================================
   FAQ — simple single column, rounded cards
   ========================================================= */
.pos-faq-single{ display:flex; flex-direction:column; gap:14px; max-width:760px; margin:0 auto; }
.pos-faq-card{ border:1px solid var(--pos-line-light); border-radius:var(--pos-r-m); background:var(--pos-white); overflow:hidden; }
.pos-faq-card-q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:20px 24px; background:transparent; border:none; text-align:left; color:inherit; font-family:'Familjen Grotesk',sans-serif; font-size:15.5px; font-weight:700; }
.pos-faq-card-q .chev{ width:18px; height:18px; flex-shrink:0; transition:transform .25s var(--pos-ease); color:var(--pos-cobalt); }
.pos-faq-card.is-open .chev{ transform:rotate(180deg); }
.pos-faq-card-a{ max-height:0; overflow:hidden; transition:max-height .3s var(--pos-ease); }
.pos-faq-card-a-inner{ padding:0 24px 22px; font-size:14.5px; color:var(--pos-mist); line-height:1.6; }
.pos-faq-card-a-inner a{ color:var(--pos-cobalt); text-decoration:underline; }
html:not(.pos-js) .pos-faq-card-a{ max-height:none !important; }
.pos-faq-card.is-open .pos-faq-card-a{ max-height:400px; }

/* =========================================================
   ABOUT — prose with pull-quote + stats + team
   ========================================================= */
.pos-about-copy{ max-width:700px; margin:0 auto 56px; }
.pos-about-copy p{ font-size:16px; line-height:1.75; color:var(--pos-mist); margin-bottom:18px; }
.pos-pullquote{ margin:34px 0; padding:28px 30px; border-left:3px solid var(--pos-cobalt); background:var(--pos-paper-2); border-radius:0 var(--pos-r-m) var(--pos-r-m) 0; }
.pos-pullquote p{ font-family:'Familjen Grotesk',sans-serif; font-size:19px; font-weight:600; color:var(--pos-ink) !important; line-height:1.5; margin:0 !important; }
.pos-stat-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; border-top:1px solid var(--pos-line-light); border-bottom:1px solid var(--pos-line-light); padding:38px 0; margin-bottom:56px; }
.pos-stat{ text-align:center; }
.pos-stat .num{ font-family:'Familjen Grotesk',sans-serif; font-size:clamp(30px,3.4vw,42px); font-weight:700; color:var(--pos-cobalt); }
.pos-stat .label{ font-size:13px; color:var(--pos-mist); margin-top:6px; }
.pos-team{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:22px; max-width:640px; margin:0 auto; }
.pos-team-card{ padding:26px; border:1px solid var(--pos-line-light); border-radius:var(--pos-r-m); background:var(--pos-white); text-align:left; }
.pos-avatar{ width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Familjen Grotesk',sans-serif; font-weight:700; font-size:16px; color:var(--pos-white); margin-bottom:16px; }
.pos-team-card h4{ font-size:16px; margin-bottom:3px; }
.pos-team-card .role{ font-size:12.5px; color:var(--pos-cobalt); font-weight:700; margin-bottom:12px; }
.pos-team-card p.note{ font-size:13.5px; color:var(--pos-mist); line-height:1.5; font-style:italic; }

/* =========================================================
   REVIEWS — grid of equal cards (dark)
   ========================================================= */
.pos-review-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.pos-review-card{ padding:30px; border-radius:var(--pos-r-l); background:var(--pos-night-2); border:1px solid var(--pos-line); }
.pos-stars{ color:var(--pos-coral); font-size:14px; letter-spacing:2px; margin-bottom:16px; }
.pos-review-card p.quote{ font-size:15px; line-height:1.6; color:var(--pos-mist-on-dark); margin-bottom:20px; }
.pos-review-who{ display:flex; align-items:center; gap:12px; }
.pos-review-who .name{ font-family:'Familjen Grotesk',sans-serif; font-size:14.5px; color:var(--pos-white); }
.pos-review-who .role{ font-size:12.5px; color:var(--pos-mist-on-dark); }

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

/* =========================================================
   COOKIE BANNER
   ========================================================= */
.pos-cookie{ position:fixed; left:20px; right:20px; bottom:-200px; z-index:2000; max-width:560px; margin:0 auto; background:var(--pos-ink); color:var(--pos-white); border:1px solid var(--pos-line); border-radius:var(--pos-r-l); padding:24px 26px; box-shadow:var(--pos-shadow); transition:bottom .5s var(--pos-ease); }
.pos-cookie.is-visible{ bottom:20px; }
.pos-cookie p{ font-size:13.8px; line-height:1.55; color:var(--pos-mist-on-dark); margin-bottom:16px; }
.pos-cookie a{ color:var(--pos-coral); text-decoration:underline; }
.pos-cookie-actions{ display:flex; gap:12px; flex-wrap:wrap; }

/* =========================================================
   STICKY CTA
   ========================================================= */
.pos-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(--pos-ease), transform .3s var(--pos-ease); }
.pos-sticky-cta.is-visible{ opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.pos-sticky-cta .pos-btn{ box-shadow:var(--pos-shadow-sm); }

/* =========================================================
   REVEAL ANIMATION
   ========================================================= */
html.pos-js .pos-reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--pos-ease), transform .7s var(--pos-ease); }
html.pos-js .pos-reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  html.pos-js .pos-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 .pos-reveal{ opacity:1 !important; transform:none !important; }

/* =========================================================
   Shared card icon, contact, legal
   ========================================================= */
.pos-card-icon{ width:52px; height:52px; border-radius:var(--pos-r-s); background:rgba(54,84,255,0.1); display:flex; align-items:center; justify-content:center; color:var(--pos-cobalt); flex-shrink:0; }
.pos-card-icon svg{ width:24px; height:24px; }

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

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

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1080px){
  .pos-svc-grid{ grid-template-columns:repeat(2,1fr); }
  .pos-stepper{ grid-template-columns:repeat(3,1fr); row-gap:34px; }
  .pos-stepper::before{ display:none; }
  .pos-review-grid{ grid-template-columns:1fr; }
}
@media (max-width:900px){
  .pos-nav{ display:none; }
  .pos-burger{ display:flex; }
  .pos-pair-cards{ grid-template-columns:1fr; }
  .pos-stat-row{ grid-template-columns:repeat(2,1fr); row-gap:26px; }
  .pos-footer-grid{ grid-template-columns:1fr 1fr; }
  .pos-contact-grid{ grid-template-columns:1fr; }
  .pos-contact-cards{ grid-column:1; grid-template-columns:1fr 1fr; }
  .pos-stepper{ grid-template-columns:repeat(2,1fr); }
  .pos-guarantee-inner{ flex-direction:column; text-align:center; }
}
@media (max-width:640px){
  .pos-wrap,.pos-wrap-wide{ padding:0 20px; }
  .pos-section{ padding:76px 0; }
  .pos-svc-grid{ grid-template-columns:1fr; }
  .pos-contact-cards{ grid-template-columns:1fr; }
  .pos-footer-grid{ grid-template-columns:1fr; }
  .pos-hero-ctas{ flex-direction:column; width:100%; }
  .pos-hero-ctas .pos-btn{ width:100%; }
  .pos-legal-subnav ul{ overflow-x:auto; flex-wrap:nowrap; }
  .pos-stepper{ grid-template-columns:1fr; }
}
@media (max-width:480px){
  .pos-hero{ padding-top:calc(var(--pos-header-h) + 40px); }
}
