/* =========================================================
   DesignPixelWorks — shared stylesheet
   Swiss / International Typographic Style for a web design studio:
   rigid grid, near-monochrome, one sparing accent, extreme type contrast.
   Class + ID prefix: dpw-
   ========================================================= */

:root{
  --dpw-paper: #FAFAF8;
  --dpw-paper-2: #EFEFEA;
  --dpw-white: #FFFFFF;
  --dpw-ink: #101010;
  --dpw-black: #0B0B0B;
  --dpw-black-2: #161616;
  --dpw-mist: #666666;
  --dpw-mist-on-dark: #B8B8B8;
  --dpw-red: #E31E24;
  --dpw-red-dim: #C21118;
  --dpw-line: rgba(255,255,255,0.16);
  --dpw-line-light: rgba(16,16,16,0.16);

  --dpw-r: 0px;

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

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:'Hanken Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--dpw-paper);
  color:var(--dpw-ink);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Hanken Grotesk',sans-serif;
  margin:0; line-height:0.98; letter-spacing:-0.02em; font-weight:800;
  text-transform:uppercase;
}
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(--dpw-red); color:var(--dpw-white); }

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

.dpw-wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }
.dpw-wrap-wide{ max-width:1480px; margin:0 auto; padding:0 40px; }
.dpw-eyebrow{ font-size:12.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--dpw-red); display:inline-flex; align-items:center; gap:10px; }
.dpw-eyebrow::before{ content:''; width:24px; height:2px; background:var(--dpw-red); display:inline-block; }
.dpw-h2{ font-size:clamp(30px,4.4vw,50px); text-transform:uppercase; }
.dpw-lead{ font-family:'Hanken Grotesk',sans-serif; font-size:17px; line-height:1.6; color:var(--dpw-mist); max-width:600px; text-transform:none; font-weight:400; }
.dpw-section-head{ margin-bottom:52px; }
.dpw-tone-light{ background:var(--dpw-paper); color:var(--dpw-ink); }
.dpw-tone-paper2{ background:var(--dpw-paper-2); color:var(--dpw-ink); }
.dpw-tone-dark{ background:var(--dpw-black); color:var(--dpw-white); }
.dpw-tone-dark .dpw-lead{ color:var(--dpw-mist-on-dark); }
.dpw-tone-dark .dpw-eyebrow{ color:var(--dpw-red); }
.dpw-mist-txt{ color:var(--dpw-mist); font-weight:400; text-transform:none; }
.dpw-tone-dark .dpw-mist-txt{ color:var(--dpw-mist-on-dark); }
span.dpw-accent-word{ color:var(--dpw-red); }

/* --- buttons --- */
.dpw-btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:16px 30px; font-weight:700; font-size:13.5px; text-transform:uppercase; letter-spacing:.05em; border:2px solid var(--dpw-ink); border-radius:var(--dpw-r); transition:transform .15s var(--dpw-ease), background .15s, color .15s; white-space:nowrap; }
.dpw-btn-primary{ background:var(--dpw-ink); color:var(--dpw-white); }
.dpw-btn-primary:hover{ background:var(--dpw-red); border-color:var(--dpw-red); }
.dpw-tone-dark .dpw-btn-primary{ background:var(--dpw-white); color:var(--dpw-black); border-color:var(--dpw-white); }
.dpw-tone-dark .dpw-btn-primary:hover{ background:var(--dpw-red); border-color:var(--dpw-red); color:var(--dpw-white); }
.dpw-btn-ghost-dark{ border-color:rgba(255,255,255,0.5); color:var(--dpw-white); }
.dpw-btn-ghost-dark:hover{ border-color:var(--dpw-white); background:rgba(255,255,255,0.08); }
.dpw-btn-ghost-light{ border-color:var(--dpw-ink); color:var(--dpw-ink); }
.dpw-btn-ghost-light:hover{ background:var(--dpw-ink); color:var(--dpw-white); }
.dpw-btn-text{ display:inline-flex; align-items:center; gap:8px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; font-size:13px; color:var(--dpw-ink); border-bottom:2px solid var(--dpw-red); padding-bottom:2px; }
.dpw-tone-dark .dpw-btn-text{ color:var(--dpw-white); }
.dpw-btn-text svg{ width:15px; height:15px; transition:transform .18s var(--dpw-ease); }
.dpw-btn-text:hover svg{ transform:translateX(4px); }
.dpw-btn-sm{ padding:10px 18px; font-size:12px; }

/* =========================================================
   HEADER
   ========================================================= */
.dpw-header{ position:fixed; top:0; left:0; right:0; z-index:1000; height:var(--dpw-header-h); display:flex; align-items:center; background:var(--dpw-paper); border-bottom:2px solid transparent; transition:border-color .2s var(--dpw-ease); }
.dpw-header.is-scrolled{ border-bottom-color:var(--dpw-ink); }
.dpw-header-inner{ width:100%; max-width:1400px; margin:0 auto; padding:0 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.dpw-brand{ display:flex; align-items:center; gap:11px; font-weight:800; font-size:17px; text-transform:uppercase; letter-spacing:-0.01em; color:var(--dpw-ink); flex-shrink:0; }
.dpw-brand .dpw-mark{ width:28px; height:28px; }
.dpw-brand em{ font-style:normal; color:var(--dpw-red); }

.dpw-nav{ display:flex; align-items:center; gap:2px; }
.dpw-nav a{ font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--dpw-mist); padding:10px 14px; transition:color .15s; }
.dpw-nav a:hover{ color:var(--dpw-ink); }
.dpw-nav a.is-active{ color:var(--dpw-red); }

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

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

/* =========================================================
   HERO — asymmetric, oversized headline bleeding to the edge
   ========================================================= */
.dpw-hero{ position:relative; background:var(--dpw-paper); padding:calc(var(--dpw-header-h) + 56px) 0 80px; overflow:hidden; border-bottom:2px solid var(--dpw-ink); }
.dpw-hero-inner{ display:grid; grid-template-columns:1fr 240px; gap:36px; align-items:end; }
.dpw-hero-copy .dpw-eyebrow{ margin-bottom:24px; }
.dpw-hero h1{ font-size:clamp(40px,7.2vw,92px); margin-right:-4px; }
.dpw-hero-sub{ font-family:'Hanken Grotesk',sans-serif; font-size:clamp(15px,1.6vw,17.5px); color:var(--dpw-mist); text-transform:none; font-weight:400; max-width:480px; margin:26px 0 0; line-height:1.65; }
.dpw-hero-ctas{ display:flex; align-items:center; gap:26px; flex-wrap:wrap; margin-top:36px; }
.dpw-availability{ display:inline-flex; align-items:center; gap:9px; margin-top:28px; font-size:12.5px; text-transform:none; color:var(--dpw-mist); font-weight:500; }
.dpw-availability .dot{ width:8px; height:8px; border-radius:50%; background:#1E9E4F; }
.dpw-hero-grid-block{ align-self:end; aspect-ratio:1; border:2px solid var(--dpw-ink); display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; }
.dpw-hero-grid-block div{ border:1px solid var(--dpw-line-light); }
.dpw-hero-grid-block div:last-child{ background:var(--dpw-red); border-color:var(--dpw-red); }

/* =========================================================
   TRUST STRIP
   ========================================================= */
.dpw-trust{ padding:38px 0; border-bottom:2px solid var(--dpw-line-light); }
.dpw-trust-inner{ display:flex; align-items:center; gap:34px; flex-wrap:wrap; }
.dpw-trust-label{ font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--dpw-mist); flex-shrink:0; }
.dpw-trust-row{ display:flex; gap:32px; flex-wrap:wrap; flex:1; }
.dpw-trust-row span{ font-weight:700; font-size:14px; text-transform:uppercase; color:var(--dpw-ink); opacity:.55; }

/* =========================================================
   SECTION shell
   ========================================================= */
.dpw-section{ position:relative; padding:100px 0; }
.dpw-section.is-tight{ padding:60px 0; }

/* =========================================================
   SERVICES — flat pricing (Model B), 3-column card grid with dividers
   ========================================================= */
.dpw-svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); border-top:2px solid var(--dpw-ink); border-left:2px solid var(--dpw-ink); }
.dpw-svc-card{ padding:30px 26px; border-right:2px solid var(--dpw-ink); border-bottom:2px solid var(--dpw-ink); display:flex; flex-direction:column; gap:14px; transition:background .15s; }
.dpw-svc-card:hover{ background:var(--dpw-paper-2); }
.dpw-svc-card .num{ font-size:12px; font-weight:700; color:var(--dpw-red); }
.dpw-svc-card h3{ font-size:17px; text-transform:none; letter-spacing:0; font-weight:700; }
.dpw-svc-card p{ font-family:'Hanken Grotesk',sans-serif; font-size:13.3px; color:var(--dpw-mist); line-height:1.55; text-transform:none; font-weight:400; flex:1; }
.dpw-svc-foot{ display:flex; align-items:baseline; justify-content:space-between; padding-top:12px; border-top:1px solid var(--dpw-line-light); }
.dpw-svc-turnaround{ font-size:11px; font-weight:700; text-transform:uppercase; color:var(--dpw-mist); }
.dpw-svc-price{ font-size:21px; font-weight:800; }
.dpw-svc-price small{ font-size:10.5px; font-weight:500; color:var(--dpw-mist); text-transform:none; }
.dpw-svc-order{ margin-top:6px; font-size:11.5px; font-weight:700; text-transform:uppercase; color:var(--dpw-red-dim); display:inline-flex; align-items:center; gap:4px; }

/* =========================================================
   PROCESS — minimal horizontal stepper with connecting line
   ========================================================= */
.dpw-stepper{ display:grid; grid-template-columns:repeat(5,1fr); position:relative; }
.dpw-stepper::before{ content:''; position:absolute; top:16px; left:8%; right:8%; height:2px; background:var(--dpw-line-light); z-index:0; }
.dpw-step{ position:relative; z-index:1; text-align:center; padding:0 8px; }
.dpw-step .circle{ width:34px; height:34px; border-radius:50%; background:var(--dpw-paper); border:2px solid var(--dpw-ink); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; margin:0 auto 16px; }
.dpw-step h3{ font-size:14px; margin-bottom:8px; text-transform:none; letter-spacing:0; }
.dpw-step p{ font-family:'Hanken Grotesk',sans-serif; font-size:12.5px; color:var(--dpw-mist); line-height:1.5; text-transform:none; font-weight:400; }

/* =========================================================
   GUARANTEE — two-column band (dark inverted)
   ========================================================= */
.dpw-guarantee{ display:grid; grid-template-columns:auto 1fr; align-items:center; gap:32px; }
.dpw-guarantee-badge{ width:76px; height:76px; background:var(--dpw-red); color:var(--dpw-white); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.dpw-guarantee-badge svg{ width:34px; height:34px; }
.dpw-guarantee h3{ font-size:clamp(19px,2.4vw,26px); margin-bottom:10px; text-transform:uppercase; }
.dpw-guarantee p{ font-family:'Hanken Grotesk',sans-serif; font-size:14.8px; color:var(--dpw-mist-on-dark); max-width:620px; text-transform:none; font-weight:400; }
.dpw-guarantee a{ color:var(--dpw-white); text-decoration:underline; font-weight:700; }

/* =========================================================
   COMPARISON — paired short cards, stark black/white contrast
   ========================================================= */
.dpw-pair-cards{ display:grid; grid-template-columns:1fr 1fr; gap:0; border:2px solid var(--dpw-ink); }
.dpw-pair-card{ padding:36px; }
.dpw-pair-card.is-with{ background:var(--dpw-ink); color:var(--dpw-white); }
.dpw-pair-card.is-without{ background:var(--dpw-white); border-left:2px solid var(--dpw-ink); }
.dpw-pair-card h4{ font-size:17px; margin-bottom:22px; }
.dpw-pair-card ul{ display:flex; flex-direction:column; gap:14px; }
.dpw-pair-card li{ display:flex; align-items:flex-start; gap:10px; font-family:'Hanken Grotesk',sans-serif; font-size:13.8px; text-transform:none; font-weight:400; }
.dpw-pair-card.is-with li{ color:var(--dpw-mist-on-dark); }
.dpw-pair-card.is-without li{ color:var(--dpw-mist); }
.dpw-pair-card li svg{ width:15px; height:15px; flex-shrink:0; margin-top:2px; }
.dpw-icon-yes{ color:var(--dpw-red); }
.dpw-icon-no{ color:#999; }

/* =========================================================
   FAQ — two-column accordion (odd/even split)
   ========================================================= */
.dpw-faq-grid{ column-count:2; column-gap:36px; }
.dpw-faq-item{ break-inside:avoid; margin-bottom:2px; border-top:1px solid var(--dpw-line-light); }
.dpw-faq-item:last-child{ border-bottom:1px solid var(--dpw-line-light); }
.dpw-faq-q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:19px 4px; background:transparent; border:none; text-align:left; font-size:15px; font-weight:700; color:var(--dpw-ink); }
.dpw-faq-q .chev{ width:16px; height:16px; flex-shrink:0; transition:transform .25s var(--dpw-ease); color:var(--dpw-red); }
.dpw-faq-item.is-open .dpw-faq-q .chev{ transform:rotate(45deg); }
.dpw-faq-a{ max-height:0; overflow:hidden; transition:max-height .3s var(--dpw-ease); }
.dpw-faq-a-inner{ padding:0 4px 20px; font-family:'Hanken Grotesk',sans-serif; font-size:14px; color:var(--dpw-mist); line-height:1.6; text-transform:none; font-weight:400; }
.dpw-faq-a-inner a{ color:var(--dpw-red-dim); text-decoration:underline; }
html:not(.dpw-js) .dpw-faq-a{ max-height:none !important; }
.dpw-faq-item.is-open .dpw-faq-a{ max-height:400px; }

/* =========================================================
   ABOUT — split into short labeled fragments
   ========================================================= */
.dpw-fragments{ display:grid; grid-template-columns:repeat(3,1fr); border-top:2px solid var(--dpw-ink); border-left:2px solid var(--dpw-ink); margin-bottom:60px; }
.dpw-fragment{ padding:30px 26px; border-right:2px solid var(--dpw-ink); border-bottom:2px solid var(--dpw-ink); }
.dpw-fragment .label{ font-size:12px; font-weight:700; color:var(--dpw-red); text-transform:uppercase; letter-spacing:.06em; margin-bottom:14px; display:block; }
.dpw-fragment p{ font-family:'Hanken Grotesk',sans-serif; font-size:14.3px; line-height:1.65; color:var(--dpw-mist); text-transform:none; font-weight:400; }
.dpw-stat-row{ display:grid; grid-template-columns:repeat(4,1fr); border-top:2px solid var(--dpw-ink); border-bottom:2px solid var(--dpw-ink); margin-bottom:60px; }
.dpw-stat{ text-align:center; padding:32px 10px; border-left:1px solid var(--dpw-line-light); }
.dpw-stat:first-child{ border-left:none; }
.dpw-stat .num{ font-size:clamp(28px,3.4vw,40px); font-weight:800; }
.dpw-stat .label{ font-family:'Hanken Grotesk',sans-serif; font-size:12px; color:var(--dpw-mist); margin-top:6px; text-transform:uppercase; font-weight:600; letter-spacing:.03em; }
.dpw-team{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:0; max-width:640px; margin:0 auto; border:2px solid var(--dpw-ink); }
.dpw-team-card{ padding:26px; text-align:left; }
.dpw-team-card + .dpw-team-card{ border-left:2px solid var(--dpw-ink); }
.dpw-avatar{ width:48px; height:48px; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:14px; color:var(--dpw-white); margin-bottom:16px; }
.dpw-team-card h4{ font-size:15px; margin-bottom:3px; text-transform:none; letter-spacing:0; }
.dpw-team-card .role{ font-size:11.5px; color:var(--dpw-red-dim); font-weight:700; margin-bottom:12px; text-transform:uppercase; letter-spacing:.03em; }
.dpw-team-card p.note{ font-family:'Hanken Grotesk',sans-serif; font-size:13px; color:var(--dpw-mist); line-height:1.5; font-style:italic; text-transform:none; font-weight:400; }

/* =========================================================
   REVIEWS — alternating full-width bands (dark)
   ========================================================= */
.dpw-review-band{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; padding:38px 0; border-bottom:1px solid var(--dpw-line); }
.dpw-review-band:first-child{ border-top:1px solid var(--dpw-line); }
.dpw-review-band.reverse .dpw-review-quote{ order:2; }
.dpw-review-band.reverse .dpw-review-who{ order:1; }
.dpw-review-quote p{ font-size:clamp(18px,2vw,24px); font-weight:700; line-height:1.4; text-transform:none; letter-spacing:0; }
.dpw-stars{ color:var(--dpw-red); font-size:13px; letter-spacing:2px; margin-bottom:14px; }
.dpw-review-who{ display:flex; align-items:center; gap:12px; }
.dpw-review-who .name{ font-size:14px; font-weight:700; text-transform:uppercase; }
.dpw-review-who .role{ font-family:'Hanken Grotesk',sans-serif; font-size:12.5px; color:var(--dpw-mist-on-dark); text-transform:none; }

/* =========================================================
   FOOTER
   ========================================================= */
.dpw-footer{ background:var(--dpw-black-2); color:var(--dpw-mist-on-dark); padding:74px 0 0; }
.dpw-footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:54px; border-bottom:1px solid var(--dpw-line); }
.dpw-footer-brand .dpw-brand{ margin-bottom:16px; color:var(--dpw-white); }
.dpw-footer-brand p{ font-family:'Hanken Grotesk',sans-serif; font-size:13.5px; line-height:1.6; max-width:280px; text-transform:none; font-weight:400; }
.dpw-footer h5{ font-size:12px; text-transform:uppercase; letter-spacing:.07em; color:var(--dpw-white); margin-bottom:18px; font-weight:700; }
.dpw-footer ul li{ margin-bottom:12px; }
.dpw-footer a{ font-family:'Hanken Grotesk',sans-serif; font-size:14px; color:var(--dpw-mist-on-dark); transition:color .18s; text-transform:none; }
.dpw-footer a:hover{ color:var(--dpw-red); }
.dpw-footer .contact-item{ display:flex; gap:10px; align-items:flex-start; font-family:'Hanken Grotesk',sans-serif; font-size:13.5px; margin-bottom:14px; }
.dpw-footer .contact-item svg{ width:16px; height:16px; flex-shrink:0; margin-top:2px; color:var(--dpw-red); }
.dpw-footer-bottom{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; padding:24px 0; font-size:12px; }
.dpw-footer-bottom .legal-shortcuts{ display:flex; gap:18px; flex-wrap:wrap; }

/* =========================================================
   COOKIE BANNER
   ========================================================= */
.dpw-cookie{ position:fixed; left:20px; right:20px; bottom:-200px; z-index:2000; max-width:560px; margin:0 auto; background:var(--dpw-ink); color:var(--dpw-white); border:2px solid var(--dpw-ink); padding:24px 26px; transition:bottom .5s var(--dpw-ease); }
.dpw-cookie.is-visible{ bottom:20px; }
.dpw-cookie p{ font-family:'Hanken Grotesk',sans-serif; font-size:13.5px; line-height:1.55; color:var(--dpw-mist-on-dark); margin-bottom:16px; text-transform:none; }
.dpw-cookie a{ color:var(--dpw-red); text-decoration:underline; }
.dpw-cookie-actions{ display:flex; gap:12px; flex-wrap:wrap; }

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

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

/* =========================================================
   Shared card icon, contact, legal
   ========================================================= */
.dpw-card-icon{ width:48px; height:48px; background:var(--dpw-ink); color:var(--dpw-white); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.dpw-card-icon svg{ width:22px; height:22px; }

.dpw-contact-hero{ padding:calc(var(--dpw-header-h) + 64px) 0 56px; background:var(--dpw-paper); border-bottom:2px solid var(--dpw-ink); }
.dpw-contact-grid{ display:grid; grid-template-columns:1fr 1fr 380px; gap:0; border:2px solid var(--dpw-ink); }
.dpw-contact-cards{ grid-column:1 / span 2; display:grid; grid-template-columns:1fr 1fr; }
.dpw-contact-card{ padding:28px; border-right:2px solid var(--dpw-ink); border-bottom:2px solid var(--dpw-ink); }
.dpw-contact-cards .dpw-contact-card:nth-child(2n){ border-right:none; }
.dpw-contact-card .dpw-card-icon{ margin-bottom:16px; }
.dpw-contact-card h3{ font-size:13.5px; margin-bottom:8px; }
.dpw-contact-card p, .dpw-contact-card a{ font-family:'Hanken Grotesk',sans-serif; font-size:14px; color:var(--dpw-mist); line-height:1.6; text-transform:none; font-weight:400; }
.dpw-contact-card a.value{ color:var(--dpw-ink); font-weight:700; display:inline-block; margin-top:2px; }
.dpw-side-panel{ padding:30px; background:var(--dpw-ink); color:var(--dpw-white); display:flex; flex-direction:column; gap:16px; justify-content:center; border-left:2px solid var(--dpw-ink); }
.dpw-side-panel h3{ font-size:17px; }
.dpw-side-panel p{ font-family:'Hanken Grotesk',sans-serif; font-size:13.5px; color:var(--dpw-mist-on-dark); line-height:1.6; text-transform:none; font-weight:400; }
.dpw-map-wrap{ margin-top:0; overflow:hidden; border-top:2px solid var(--dpw-ink); height:400px; grid-column:1/-1; }
.dpw-map-wrap iframe{ width:100%; height:100%; border:0; }

.dpw-legal-hero{ padding:calc(var(--dpw-header-h) + 60px) 0 36px; background:var(--dpw-ink); color:var(--dpw-white); }
.dpw-legal-hero p{ font-family:'Hanken Grotesk',sans-serif; color:var(--dpw-mist-on-dark); max-width:680px; margin-top:14px; font-size:14.3px; line-height:1.65; text-transform:none; font-weight:400; }
.dpw-legal-subnav{ position:sticky; top:var(--dpw-header-h); z-index:80; background:var(--dpw-paper); border-bottom:2px solid var(--dpw-ink); }
.dpw-legal-subnav ul{ display:flex; gap:6px; padding:14px 0; flex-wrap:wrap; }
.dpw-legal-subnav a{ padding:8px 16px; font-size:12.5px; font-weight:700; text-transform:uppercase; color:var(--dpw-mist); }
.dpw-legal-subnav a:hover{ background:var(--dpw-ink); color:var(--dpw-white); }
.dpw-legal-doc{ padding:60px 0; max-width:760px; margin:0 auto; }
.dpw-legal-doc + .dpw-legal-doc{ border-top:2px solid var(--dpw-line-light); }
.dpw-legal-doc h2{ font-size:26px; margin-bottom:6px; }
.dpw-legal-doc .updated{ font-family:'Hanken Grotesk',sans-serif; font-size:12.5px; color:var(--dpw-mist); margin-bottom:28px; display:block; text-transform:none; }
.dpw-legal-doc h3{ font-size:15.5px; margin:26px 0 10px; text-transform:uppercase; letter-spacing:.02em; }
.dpw-legal-doc p{ font-family:'Hanken Grotesk',sans-serif; font-size:14.3px; line-height:1.75; color:var(--dpw-mist); margin-bottom:14px; text-transform:none; font-weight:400; }
.dpw-legal-doc ul{ margin-bottom:14px; }
.dpw-legal-doc li{ font-family:'Hanken Grotesk',sans-serif; font-size:14.3px; line-height:1.75; color:var(--dpw-mist); padding-left:20px; position:relative; margin-bottom:8px; text-transform:none; font-weight:400; }
.dpw-legal-doc li::before{ content:'—'; position:absolute; left:0; color:var(--dpw-red); }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1080px){
  .dpw-hero-inner{ grid-template-columns:1fr; }
  .dpw-hero-grid-block{ display:none; }
  .dpw-stepper{ grid-template-columns:repeat(3,1fr); row-gap:30px; }
  .dpw-stepper::before{ display:none; }
  .dpw-fragments{ grid-template-columns:1fr; }
  .dpw-fragment{ border-right:none; }
}
@media (max-width:900px){
  .dpw-nav{ display:none; }
  .dpw-burger{ display:flex; }
  .dpw-svc-grid{ grid-template-columns:repeat(2,1fr); }
  .dpw-pair-cards{ grid-template-columns:1fr; }
  .dpw-pair-card.is-without{ border-left:none; border-top:2px solid var(--dpw-ink); }
  .dpw-stat-row{ grid-template-columns:repeat(2,1fr); }
  .dpw-stat:nth-child(3){ border-left:none; }
  .dpw-footer-grid{ grid-template-columns:1fr 1fr; }
  .dpw-contact-grid{ grid-template-columns:1fr; }
  .dpw-contact-cards{ grid-column:1; }
  .dpw-side-panel{ border-left:none; border-top:2px solid var(--dpw-ink); }
  .dpw-faq-grid{ column-count:1; }
  .dpw-review-band{ grid-template-columns:1fr; gap:18px; }
  .dpw-review-band.reverse .dpw-review-quote,
  .dpw-review-band.reverse .dpw-review-who{ order:0; }
}
@media (max-width:640px){
  .dpw-wrap,.dpw-wrap-wide{ padding:0 20px; }
  .dpw-section{ padding:70px 0; }
  .dpw-svc-grid{ grid-template-columns:1fr; }
  .dpw-contact-cards{ grid-template-columns:1fr; }
  .dpw-contact-card{ border-right:none !important; }
  .dpw-footer-grid{ grid-template-columns:1fr; }
  .dpw-hero-ctas{ flex-direction:column; width:100%; }
  .dpw-hero-ctas .dpw-btn{ width:100%; }
  .dpw-legal-subnav ul{ overflow-x:auto; flex-wrap:nowrap; }
  .dpw-guarantee{ grid-template-columns:1fr; text-align:center; }
  .dpw-guarantee-badge{ margin:0 auto; }
  .dpw-stepper{ grid-template-columns:1fr; }
}
@media (max-width:480px){
  .dpw-hero{ padding-top:calc(var(--dpw-header-h) + 36px); }
}
