/* ============================================================
   Redberry Insurance — Design System
   ============================================================ */

:root{
  --color-bg:        #FFFFFF;
  --color-bg-alt:    #F6F5F4;
  --color-surface:   #FFFFFF;
  --color-black:     #030303;
  --color-ink:       #030303;
  --color-ink-soft:  #4A4948;
  --color-primary:      #DA121F;
  --color-primary-dark: #A80E18;
  --color-primary-light:#ED2A38;
  --color-accent:    #030303;
  --color-accent-soft: #F0EFEE;
  --color-line:      rgba(3,3,3,0.10);
  --color-line-strong: rgba(3,3,3,0.18);
  --color-white:     #FFFFFF;

  --font-display: 'Manrope', 'Helvetica Neue', Arial, sans-serif;
  --font-body: 'Inter', 'Helvetica Neue', Arial, sans-serif;

  --container: 1200px;
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 28px;
  --shadow-soft: 0 20px 60px -25px rgba(3,3,3,0.35);
  --shadow-card: 0 10px 30px -15px rgba(3,3,3,0.18);

  --ease: cubic-bezier(.16,.8,.24,1);
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--color-bg);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4{
  font-family: var(--font-display);
  font-weight: 800;
  line-height: 1.08;
  margin: 0 0 .5em;
  letter-spacing: -0.02em;
  color: var(--color-ink);
}
p{ margin:0 0 1em; color: var(--color-ink-soft); }
.container{
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 32px;
}
section{ position: relative; }
.section{ padding: 120px 0; }
.section-tight{ padding: 80px 0; }
@media (max-width: 900px){
  .section{ padding: 80px 0; }
  .section-tight{ padding: 56px 0; }
  .container{ padding: 0 24px; }
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--color-primary);
  margin-bottom: 18px;
}
.eyebrow::before{
  content:"";
  width: 22px; height: 2px;
  background: var(--color-accent);
  display:inline-block;
}

.lede{
  font-size: 20px;
  color: var(--color-ink-soft);
  max-width: 560px;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding: 15px 30px;
  border-radius: 999px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: -0.01em;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform .35s var(--ease), background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);
  white-space: nowrap;
}
.btn:hover{ transform: translateY(-2px); }
.btn-primary{
  background: var(--color-primary);
  color: var(--color-white);
  box-shadow: 0 14px 30px -12px rgba(218,18,31,0.55);
}
.btn-primary:hover{ background: var(--color-primary-dark); }
.btn-light{
  background: var(--color-white);
  color: var(--color-primary);
}
.btn-light:hover{ background: var(--color-accent-soft); }
.btn-ghost{
  background: transparent;
  color: var(--color-white);
  border-color: rgba(255,255,255,0.45);
}
.btn-ghost:hover{ background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.8); }
.btn-outline{
  background: transparent;
  border-color: var(--color-line-strong);
  color: var(--color-ink);
}
.btn-outline:hover{ border-color: var(--color-primary); color: var(--color-primary); }
.btn-sm{ padding: 11px 22px; font-size: 14px; }
.btn-arrow{ transition: transform .35s var(--ease); }
.btn:hover .btn-arrow{ transform: translateX(4px); }

/* ---------- Header wrapper (topbar + nav, fixed as one unit) ---------- */
.header-wrap{
  position: fixed;
  top:0; left:0; right:0;
  z-index: 100;
}

/* ---------- Top utility bar ---------- */
.topbar{
  background: var(--color-black);
  color: rgba(255,255,255,.72);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 12.5px;
  letter-spacing: .02em;
  overflow: hidden;
  max-height: 44px;
  transition: max-height .4s var(--ease), opacity .3s var(--ease), padding .4s var(--ease);
}
.topbar .container{
  display:flex; align-items:center; justify-content:flex-end;
  gap: 28px;
  padding-top: 10px; padding-bottom: 10px;
}
.topbar a{ display:inline-flex; align-items:center; gap:7px; transition: color .3s var(--ease); }
.topbar a:hover{ color: var(--color-white); }
.topbar svg{ flex-shrink:0; opacity:.75; }
.header-wrap.is-scrolled .topbar{ max-height:0; opacity:0; }
@media (max-width: 700px){
  .topbar .container{ justify-content:center; gap:18px; flex-wrap:wrap; }
  .topbar span.tb-addr{ display:none; }
}

/* ---------- Header / Nav ---------- */
.site-header{
  padding: 26px 0;
  transition: padding .4s var(--ease), background .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
  border-bottom: 1px solid transparent;
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 24px;
}
.header-wrap.is-scrolled .site-header{
  padding: 12px 0;
  background: rgba(255,255,255,0.86);
  backdrop-filter: blur(14px) saturate(140%);
  border-color: var(--color-line);
  box-shadow: 0 10px 30px -20px rgba(3,3,3,0.35);
}
.header-wrap.is-scrolled .brand-mark,
.header-wrap.is-scrolled .nav-link,
.header-wrap.is-scrolled .icon-btn{ color: var(--color-ink); }
.header-wrap.is-scrolled .btn-ghost{ border-color: var(--color-line-strong); color: var(--color-ink); }
.header-wrap.is-scrolled .btn-ghost:hover{ background: var(--color-ink); color: var(--color-white); border-color: var(--color-ink); }
.header-wrap.is-scrolled .logo-img{ height: 42px; }

/* Header on dark video hero: light text until scrolled */
.header-on-dark .brand-mark,
.header-on-dark .nav-link{ color: var(--color-white); }
.header-on-dark .nav-link{ opacity:.85; }
.header-on-dark .nav-link:hover{ opacity: 1; }

/* Header on light hero (inner pages) */
.header-on-light .brand-mark,
.header-on-light .nav-link{ color: var(--color-ink); }
.header-on-light .btn-ghost{ border-color: var(--color-line-strong); color: var(--color-ink); }
.header-on-light .btn-ghost:hover{ background: var(--color-ink); color: var(--color-white); }

.brand{ display:flex; align-items:center; gap:10px; }
.brand-mark{
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 19px;
  letter-spacing: -0.01em;
  transition: color .4s var(--ease);
  display:flex; align-items:center; gap:10px;
}
.brand-mark svg{ display:block; }
.logo-img{
  height: 58px;
  width: auto;
  transition: height .4s var(--ease);
}
.logo-color{ display:block; }
.logo-white{ display:none; }
.header-on-dark .logo-color{ display:none; }
.header-on-dark .logo-white{ display:block; }
.header-wrap.is-scrolled .header-on-dark .logo-color{ display:block; }
.header-wrap.is-scrolled .header-on-dark .logo-white{ display:none; }
@media (max-width: 500px){
  .logo-img{ height: 46px; }
  .header-wrap.is-scrolled .logo-img{ height: 38px; }
}

.nav{ display:flex; align-items:center; gap:40px; }
.nav-links{ display:flex; align-items:center; gap:34px; }
.nav-link{
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 14.5px;
  position: relative;
  transition: color .4s var(--ease), opacity .3s var(--ease);
}
.nav-link::after{
  content:"";
  position:absolute; left:0; right:100%; bottom:-6px;
  height:2px; background: currentColor;
  transition: right .35s var(--ease);
}
.nav-link:hover::after{ right:0; }
.nav-actions{ display:flex; align-items:center; gap:14px; }

.nav-toggle{
  display:none;
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 1px solid var(--color-line-strong);
  background: transparent;
  align-items:center; justify-content:center;
  cursor:pointer;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:""; display:block;
  width: 18px; height: 2px; background: currentColor;
  transition: transform .3s var(--ease), opacity .3s var(--ease);
}
.nav-toggle span::before{ transform: translateY(-6px); }
.nav-toggle span::after{ transform: translateY(4px); }
.nav-toggle span{ position:relative; }
.nav-toggle span::before, .nav-toggle span::after{ position:absolute; left:0; }

@media (max-width: 900px){
  .nav-links{
    position: fixed; inset: 0;
    background: var(--color-primary-dark);
    flex-direction: column;
    justify-content:center; align-items:flex-start;
    gap: 8px;
    padding: 0 40px;
    transform: translateX(100%);
    transition: transform .5s var(--ease);
    z-index: 90;
  }
  .nav-links a{ color: var(--color-white); font-size: 28px; padding: 14px 0; }
  body.nav-open .nav-links{ transform: translateX(0); }
  .nav-toggle{ display:flex; }
  .nav-actions .btn-outline, .site-header .nav-actions .btn-ghost{ display:none; }
  .nav-toggle{ color: inherit; z-index: 95; position:relative; }
}

/* ---------- Video Hero ---------- */
.hero{
  position: relative;
  min-height: 100svh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background: linear-gradient(160deg,#030303 0%, #4a0a10 50%, #030303 100%);
  color: var(--color-white);
}
.hero-media{
  position:absolute; inset:0;
  z-index:0;
}
.hero-media video, .hero-media .hero-fallback{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit: cover;
}
.hero-fallback{
  background:
    radial-gradient(120% 90% at 12% 8%, rgba(218,18,31,.45), transparent 55%),
    radial-gradient(120% 100% at 90% 100%, rgba(218,18,31,.30), transparent 60%),
    linear-gradient(160deg,#030303 0%, #24040a 55%, #030303 100%);
  animation: heroDrift 18s ease-in-out infinite alternate;
}
@keyframes heroDrift{
  0%{ filter:hue-rotate(0deg) brightness(1); transform: scale(1); }
  100%{ filter:hue-rotate(-6deg) brightness(1.06); transform: scale(1.04); }
}
.hero video.is-ready ~ .hero-fallback,
.hero-media video.is-ready + .hero-fallback{ opacity:0; }
.hero-media .hero-fallback{ transition: opacity 1s var(--ease); }

.hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(100deg, rgba(3,3,3,.82) 0%, rgba(3,3,3,.55) 38%, rgba(3,3,3,.25) 70%, rgba(3,3,3,.45) 100%),
    linear-gradient(180deg, rgba(3,3,3,.35) 0%, rgba(3,3,3,.08) 26%, rgba(3,3,3,.2) 55%, rgba(3,3,3,.92) 100%);
  z-index:1;
}
.hero-noise{
  position:absolute; inset:0; z-index:1;
  opacity:.05; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.hero-inner{
  position: relative; z-index: 2;
  width:100%;
  padding: 256px 0 96px;
}
.hero-top{
  display:flex; justify-content:space-between; align-items:flex-end;
  gap: 40px; margin-bottom: 48px;
}
.hero-kicker{
  display:inline-flex; align-items:center; gap:10px;
  font-family: var(--font-display); font-weight:700;
  font-size:13px; letter-spacing:.16em; text-transform:uppercase;
  color: var(--color-accent-soft);
  margin-bottom: 22px;
}
.hero-kicker::before{
  content:""; width:8px; height:8px; border-radius:50%;
  background: var(--color-accent);
  box-shadow: 0 0 0 4px rgba(218,18,31,.25);
}
.hero h1{
  color: var(--color-white);
  font-size: clamp(42px, 6.4vw, 92px);
  max-width: 16ch;
  margin-bottom: .28em;
}
.hero h1 em{
  font-style: normal;
  background: linear-gradient(100deg, var(--color-primary-light), var(--color-primary) 60%, var(--color-primary-light));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-sub{
  color: rgba(255,255,255,.82);
  font-size: 19px;
  max-width: 44ch;
  margin-bottom: 40px;
}
.hero-actions{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }

.hero-stats.cols-3{ grid-template-columns: repeat(3,1fr); }
@media (max-width: 700px){ .hero-stats.cols-3{ grid-template-columns: 1fr; } }
.hero-stats{
  display:grid;
  grid-template-columns: repeat(4,1fr);
  gap: 1px;
  background: rgba(255,255,255,.16);
  border-top: 1px solid rgba(255,255,255,.16);
  border-radius: var(--radius-md);
  overflow:hidden;
}
.hero-stats div{
  background: rgba(20,8,14,.35);
  backdrop-filter: blur(6px);
  padding: 22px 26px;
}
.hero-stats strong{
  display:block;
  font-family: var(--font-display);
  font-size: 30px; font-weight:800;
  color: var(--color-white);
  margin-bottom: 4px;
}
.hero-stats span{ font-size:13px; color: rgba(255,255,255,.68); }

.scroll-cue{
  position:absolute; right: 40px; bottom: 40px; z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  color: rgba(255,255,255,.7);
  font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  writing-mode: vertical-rl;
}
.scroll-cue .line{
  writing-mode: horizontal-tb;
  width:1px; height:46px;
  background: rgba(255,255,255,.35);
  position:relative; overflow:hidden;
}
.scroll-cue .line::after{
  content:""; position:absolute; top:-100%; left:0; width:100%; height:100%;
  background: var(--color-accent);
  animation: cueDrop 2.2s ease-in-out infinite;
}
@keyframes cueDrop{
  0%{ top:-100%; } 60%{ top:100%; } 100%{ top:100%; }
}
@media (max-width: 900px){
  .hero-inner{ padding: 176px 0 64px; }
  .hero-top{ flex-direction: column; align-items:flex-start; }
  .hero-stats{ grid-template-columns: repeat(2,1fr); }
  .scroll-cue{ display:none; }
}

/* ---------- Page (inner) hero ---------- */
.page-hero{
  padding: 224px 0 90px;
  background: var(--color-bg-alt);
  border-bottom: 1px solid var(--color-line);
  position: relative;
  overflow:hidden;
}
.page-hero::before{
  content:"";
  position:absolute; top:-120px; right:-120px;
  width:420px; height:420px; border-radius:50%;
  background: radial-gradient(circle, rgba(218,18,31,.14), transparent 70%);
}
.page-hero h1{ font-size: clamp(36px,5vw,60px); max-width: 18ch; }
.page-hero .lede{ margin-top: 18px; }
.breadcrumb{
  display:flex; align-items:center; gap:8px;
  font-size:13px; font-weight:600; color: var(--color-ink-soft);
  margin-bottom:22px;
}
.breadcrumb a:hover{ color: var(--color-primary); }
.breadcrumb .sep{ opacity:.5; }

/* ---------- Marquee / trust bar ---------- */
.trust-bar{
  border-bottom: 1px solid var(--color-line);
  background: var(--color-surface);
}
.trust-bar .container{
  padding-top: 34px; padding-bottom: 34px;
  display:flex; align-items:center; gap:40px; flex-wrap:wrap;
  justify-content: space-between;
}
.trust-label{
  font-family: var(--font-display); font-weight:700; font-size:12.5px;
  letter-spacing:.12em; text-transform:uppercase; color: var(--color-ink-soft);
  white-space:nowrap;
}
.trust-logos{ display:flex; align-items:center; gap:44px; flex-wrap:wrap; opacity:.6; }
.trust-logos span{ font-family:var(--font-display); font-weight:800; font-size:18px; letter-spacing:-.02em; }

/* ---------- Cards / Grid ---------- */
.grid{ display:grid; gap: 28px; }
.grid-3{ grid-template-columns: repeat(3, 1fr); }
.grid-4{ grid-template-columns: repeat(4, 1fr); }
.grid-2{ grid-template-columns: repeat(2, 1fr); }
@media (max-width: 1000px){
  .grid-3, .grid-4{ grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 620px){
  .grid-2, .grid-3, .grid-4{ grid-template-columns: 1fr; }
}

.card{
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  padding: 36px 32px;
  transition: transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease);
}
.card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-card); border-color: transparent; }
.card-icon{
  width:52px; height:52px; border-radius: 14px;
  background: var(--color-accent-soft);
  color: var(--color-primary);
  display:flex; align-items:center; justify-content:center;
  margin-bottom: 22px;
}
.card h3{ font-size: 20px; margin-bottom: 10px; }
.card p{ font-size: 15px; margin-bottom: 18px; }
.card-link{
  font-family: var(--font-display); font-weight:700; font-size:14px;
  color: var(--color-primary);
  display:inline-flex; align-items:center; gap:6px;
}
.card-link svg{ transition: transform .3s var(--ease); }
.card-link:hover svg{ transform: translateX(4px); }

/* Coverage detail card variant */
.cov-card{
  display:flex; flex-direction:column; height:100%;
}
.cov-card .tag{
  align-self:flex-start;
  font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color: var(--color-accent); background: rgba(218,18,31,.06);
  padding: 5px 12px; border-radius: 999px; margin-bottom:16px;
}

/* ---------- Split sections ---------- */
.split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items:center;
}
@media (max-width: 900px){
  .split{ grid-template-columns: 1fr; gap: 48px; }
}
.split-media{
  position:relative;
  border-radius: var(--radius-lg);
  overflow:hidden;
  aspect-ratio: 4/5;
  background: linear-gradient(150deg, var(--color-primary), var(--color-primary-dark));
  box-shadow: var(--shadow-soft);
}
.split-media .badge{
  position:absolute; left:24px; bottom:24px;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(6px);
  border-radius: var(--radius-sm);
  padding: 16px 20px;
  display:flex; align-items:center; gap:14px;
  box-shadow: var(--shadow-card);
}
.split-media .badge strong{ display:block; font-family:var(--font-display); font-size:22px; }
.split-media .badge span{ font-size:12px; color: var(--color-ink-soft); }

.stat-row{ display:flex; gap:48px; margin-top: 36px; flex-wrap:wrap; }
.stat-row div strong{
  display:block; font-family:var(--font-display); font-size:34px; font-weight:800; color:var(--color-primary);
}
.stat-row div span{ font-size:13px; color:var(--color-ink-soft); }

/* ---------- Coverage chip grid ---------- */
.chip-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 28px;
}
.coverage-chip{
  display:flex; align-items:center; gap:12px;
  padding: 16px 18px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-line);
  background: var(--color-surface);
  font-family: var(--font-display); font-weight:600; font-size:14px;
  transition: border-color .3s var(--ease), transform .3s var(--ease);
}
.coverage-chip:hover{ border-color: var(--color-primary); transform: translateY(-2px); }
.coverage-chip .dot{
  flex-shrink:0; width:8px; height:8px; border-radius:50%;
  background: var(--color-primary);
}
.coverage-chip.soon{ opacity:.6; }
.coverage-chip.soon .dot{ background: var(--color-ink-soft); }
.coverage-chip .tag-soon{
  margin-left:auto; font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  color: var(--color-ink-soft);
}
@media (max-width: 700px){ .chip-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 460px){ .chip-grid{ grid-template-columns: 1fr; } }

/* ---------- Steps (Claims process) ---------- */
.steps{ counter-reset: step; }
.step{
  display:grid; grid-template-columns: 72px 1fr; gap: 28px;
  padding: 34px 0;
  border-top: 1px solid var(--color-line);
}
.step:last-child{ border-bottom: 1px solid var(--color-line); }
.step-num{
  counter-increment: step;
  font-family: var(--font-display); font-weight:800; font-size:16px;
  width:56px; height:56px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: var(--color-primary); color: var(--color-white);
}
.step-num::before{ content: counter(step, decimal-leading-zero); }
.step h3{ font-size:20px; margin-bottom:8px; }
.step p{ margin-bottom:0; max-width: 60ch; }

/* ---------- CTA banner ---------- */
.cta-banner{
  background: linear-gradient(135deg, var(--color-primary-dark), var(--color-primary) 60%, #8a2848);
  border-radius: var(--radius-lg);
  padding: 72px 64px;
  color: var(--color-white);
  display:flex; align-items:center; justify-content:space-between; gap:40px;
  position:relative; overflow:hidden;
}
.cta-banner::after{
  content:""; position:absolute; inset:0;
  background: radial-gradient(circle at 85% 20%, rgba(218,18,31,.35), transparent 55%);
}
.cta-banner > *{ position:relative; }
.cta-banner h2{ color:var(--color-white); font-size: clamp(28px,3.4vw,40px); max-width: 16ch; margin-bottom: 10px;}
.cta-banner p{ color: rgba(255,255,255,.78); max-width: 42ch; margin-bottom:0; }
.cta-banner .btn-row{ display:flex; gap:14px; flex-shrink:0; flex-wrap:wrap; }
@media (max-width: 800px){
  .cta-banner{ flex-direction:column; align-items:flex-start; padding: 48px 32px; }
}

/* ---------- Testimonial ---------- */
.testimonial{
  background: var(--color-bg-alt);
  border-radius: var(--radius-lg);
  padding: 64px;
  text-align:center;
  max-width: 820px; margin: 0 auto;
}
.testimonial blockquote{
  font-family: var(--font-display);
  font-size: clamp(22px, 2.6vw, 30px);
  font-weight: 700;
  line-height:1.35;
  color: var(--color-ink);
  margin: 0 0 28px;
  letter-spacing:-0.01em;
}
.testimonial cite{
  font-style:normal; font-size:14px; color: var(--color-ink-soft);
  display:flex; align-items:center; justify-content:center; gap:10px;
}
.stars{ color: var(--color-accent); letter-spacing:2px; margin-bottom:20px; }
@media (max-width:700px){ .testimonial{ padding: 40px 28px; } }

/* ---------- FAQ ---------- */
.faq-item{
  border-bottom: 1px solid var(--color-line);
  padding: 26px 0;
}
.faq-q{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  cursor:pointer;
  font-family: var(--font-display); font-weight:700; font-size:17px;
}
.faq-q .plus{
  flex-shrink:0; width:28px; height:28px; border-radius:50%;
  border: 1px solid var(--color-line-strong);
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.faq-q .plus::before, .faq-q .plus::after{
  content:""; position:absolute; background: var(--color-ink);
}
.faq-q .plus::before{ width:10px; height:1.5px; }
.faq-q .plus::after{ width:1.5px; height:10px; transition: transform .3s var(--ease); }
.faq-item.is-open .faq-q .plus::after{ transform: rotate(90deg) scaleY(0); }
.faq-a{
  max-height:0; overflow:hidden;
  transition: max-height .4s var(--ease);
}
.faq-a p{ padding-top:14px; max-width: 68ch; }
.faq-item.is-open .faq-a{ max-height: 240px; }

/* ---------- Forms ---------- */
.form-card{
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg);
  padding: 44px;
  box-shadow: var(--shadow-card);
}
.form-row{ display:grid; grid-template-columns: 1fr 1fr; gap:20px; }
.form-row.full{ grid-template-columns: 1fr; }
.field{ margin-bottom: 20px; }
.field label{
  display:block; font-family:var(--font-display); font-weight:700; font-size:13px;
  margin-bottom:8px; color: var(--color-ink);
}
.field input, .field select, .field textarea{
  width:100%;
  padding: 14px 16px;
  border-radius: 10px;
  border: 1px solid var(--color-line-strong);
  background: var(--color-bg);
  font-family: var(--font-body); font-size:15px; color: var(--color-ink);
  transition: border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color: var(--color-primary);
  box-shadow: 0 0 0 4px rgba(218,18,31,.12);
}
.field textarea{ resize: vertical; min-height:120px; }
@media (max-width:700px){ .form-row{ grid-template-columns:1fr; } .form-card{ padding:28px; } }

.contact-info-card{
  display:flex; gap:18px; align-items:flex-start;
  padding: 24px 0;
  border-top: 1px solid var(--color-line);
}
.contact-info-card:first-child{ border-top:none; }
.contact-info-card .icon{
  width:46px; height:46px; border-radius:12px; flex-shrink:0;
  background: var(--color-accent-soft); color: var(--color-primary);
  display:flex; align-items:center; justify-content:center;
}
.contact-info-card h4{ font-family:var(--font-display); font-weight:700; font-size:15px; margin-bottom:4px; }
.contact-info-card p{ margin-bottom:0; font-size:14.5px; }

.map-frame{
  border-radius: var(--radius-md);
  overflow:hidden;
  aspect-ratio: 16/10;
  background:
    linear-gradient(rgba(218,18,31,.06), rgba(218,18,31,.06)),
    repeating-linear-gradient(0deg, var(--color-line) 0 1px, transparent 1px 40px),
    repeating-linear-gradient(90deg, var(--color-line) 0 1px, transparent 1px 40px),
    var(--color-bg-alt);
  display:flex; align-items:center; justify-content:center;
  border: 1px solid var(--color-line);
}
.map-pin{
  display:flex; flex-direction:column; align-items:center; gap:10px;
  color: var(--color-primary); font-family:var(--font-display); font-weight:700; font-size:14px;
}

/* ---------- Values / Team ---------- */
.value-item{ display:flex; gap:20px; padding: 26px 0; border-top:1px solid var(--color-line); }
.value-item:first-child{ border-top:none; }
.value-item .num{ font-family:var(--font-display); font-weight:800; font-size:14px; color: var(--color-primary); }
.value-item h3{ font-size:19px; margin-bottom:6px; }
.value-item p{ margin-bottom:0; }

.team-card{ text-align:left; }
.team-photo{
  aspect-ratio: 1/1; border-radius: var(--radius-md);
  background: linear-gradient(150deg, var(--color-accent-soft), var(--color-bg-alt));
  margin-bottom: 18px;
  display:flex; align-items:center; justify-content:center;
  color: var(--color-primary); opacity:.5;
}
.team-card h4{ font-family:var(--font-display); font-weight:800; font-size:17px; margin-bottom:2px; }
.team-card span{ font-size:13px; color: var(--color-ink-soft); }

/* ---------- Footer ---------- */
.site-footer{
  background: var(--color-black);
  color: rgba(255,255,255,.72);
  padding: 84px 0 32px;
  position: relative;
  overflow: hidden;
}
.footer-bg-skyline{
  position:absolute; left:0; right:0; bottom:0;
  width:100%; height:auto;
  filter: invert(1) brightness(1.6);
  opacity:.05;
  pointer-events:none;
  z-index:0;
}
.site-footer > .container{ position:relative; z-index:1; }
.footer-logo-img{ height:60px; width:auto; margin-bottom:18px; }
.footer-top{
  display:grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 48px;
  padding-bottom: 56px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.footer-brand .brand-mark{ color: var(--color-white); margin-bottom:16px; }
.footer-brand p{ color: rgba(255,255,255,.6); max-width:32ch; font-size:14.5px; }
.footer-social{ display:flex; gap:12px; margin-top:20px; }
.footer-social a{
  width:38px; height:38px; border-radius:50%;
  border:1px solid rgba(255,255,255,.18);
  display:flex; align-items:center; justify-content:center;
  transition: background .3s var(--ease), border-color .3s var(--ease);
}
.footer-social a:hover{ background: var(--color-primary); border-color: var(--color-primary); }
.footer-col h5{
  font-family:var(--font-display); font-weight:700; font-size:13px;
  letter-spacing:.1em; text-transform:uppercase; color: rgba(255,255,255,.5);
  margin-bottom:20px;
}
.footer-col ul li{ margin-bottom:13px; }
.footer-col a{ font-size:14.5px; color: rgba(255,255,255,.8); transition: color .3s var(--ease); }
.footer-col a:hover{ color: var(--color-accent); }
.footer-bottom{
  padding-top: 28px;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px;
  font-size:13px; color: rgba(255,255,255,.45);
}
.footer-bottom .legal-links{ display:flex; gap:22px; }
@media (max-width: 900px){
  .footer-top{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px){
  .footer-top{ grid-template-columns: 1fr; }
}

/* ---------- Stats band ---------- */
.stats-band{
  background: var(--color-black);
  color: var(--color-white);
  padding: 60px 0;
  position: relative;
}
.stats-band .container{
  display:grid;
  grid-template-columns: repeat(5, 1fr);
}
.stats-band .stat{
  padding: 0 28px;
  border-left: 1px solid rgba(255,255,255,.14);
}
.stats-band .stat:first-child{ padding-left:0; border-left:none; }
.stats-band .idx{
  display:block;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 13px;
  color: var(--color-primary);
  margin-bottom: 14px;
  letter-spacing: .06em;
}
.stats-band strong{
  display:block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: -0.01em;
  line-height:1.25;
  margin-bottom: 8px;
  color: var(--color-white);
}
.stats-band span{
  font-size: 12.5px;
  letter-spacing:.01em;
  color: rgba(255,255,255,.5);
}
@media (max-width: 1000px){
  .stats-band .container{ grid-template-columns: repeat(2,1fr); row-gap: 32px; }
  .stats-band .stat{ border-left:none; padding-left:0; }
}

/* ---------- Segment showcase grid ---------- */
.segment-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.segment-grid-2{ grid-template-columns: repeat(2, 1fr); gap: 28px; }
.segment-tile{
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: var(--radius-lg);
  aspect-ratio: 3/4.2;
  padding: 28px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  color: var(--color-white);
  background-size: cover;
  background-position: center;
  transition: transform .5s var(--ease);
}
.segment-grid-2 .segment-tile{ aspect-ratio: 4/3.4; padding: 40px; }
.segment-tile:hover{ transform: translateY(-6px); }
.segment-tile::after{
  content:"";
  position:absolute; inset:0; z-index:-1;
  background: linear-gradient(190deg, rgba(3,3,3,.15) 12%, rgba(3,3,3,.65) 62%, rgba(3,3,3,.94) 100%);
}
.segment-tile .seg-index{
  position:absolute; top:26px; left:28px; z-index:1;
  font-family: var(--font-display); font-weight:800; font-size:12.5px;
  letter-spacing:.14em; color: rgba(255,255,255,.7);
}
.segment-tile h3{ color: var(--color-white); font-size: 23px; margin-bottom:0; }
.segment-grid-2 .segment-tile h3{ font-size: 30px; }
.segment-tile p{
  color: rgba(255,255,255,.8); font-size: 14px; margin: 10px 0 0;
}
.segment-tile .seg-list{
  display:flex; flex-wrap:wrap; gap:8px 10px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.2);
}
.segment-tile .seg-list span{
  font-size: 12.5px; color: rgba(255,255,255,.75);
}
.segment-tile .seg-list span:not(:last-child)::after{ content:"·"; margin-left:10px; color: rgba(255,255,255,.35); }
.segment-tile .seg-link{
  margin-top:18px; display:inline-flex; align-items:center; gap:8px;
  font-family: var(--font-display); font-weight:700; font-size:13.5px;
  color: var(--color-white);
}
.segment-tile .seg-link svg{ transition: transform .3s var(--ease); }
.segment-tile:hover .seg-link svg{ transform: translateX(4px); }
@media (max-width: 1000px){ .segment-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){
  .segment-grid, .segment-grid-2{ grid-template-columns: 1fr; }
  .segment-tile, .segment-grid-2 .segment-tile{ aspect-ratio: auto; min-height:380px; padding:28px; }
}

/* ---------- Momentum (dark editorial) ---------- */
.momentum{
  background: var(--color-black);
  color: var(--color-white);
  padding: 150px 0;
  position: relative;
  overflow: hidden;
}
.momentum-bg-mark{
  position:absolute; top:50%; right:-6%;
  transform: translateY(-50%);
  width: min(46vw, 620px);
  z-index:0;
  pointer-events:none;
  filter: brightness(0) invert(1);
  opacity: .06;
}
.momentum::before{
  content:"";
  position:absolute; top:-10%; right:-10%;
  width:520px; height:520px; border-radius:50%;
  background: radial-gradient(circle, rgba(218,18,31,.16), transparent 65%);
  z-index:0;
}
.momentum .container{ position:relative; z-index:1; }
.momentum-head{ max-width: 800px; }
.momentum .eyebrow{ color: var(--color-accent); }
.momentum .eyebrow::before{ background: var(--color-accent); }
.momentum h2{
  color: var(--color-white);
  font-size: clamp(32px, 4.6vw, 58px);
  max-width: 18ch;
}
.momentum h2 em{
  font-style:normal;
  background: linear-gradient(100deg, var(--color-primary-light), var(--color-primary) 60%, var(--color-primary-light));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.momentum-lede{ color: rgba(255,255,255,.68); font-size: 18px; max-width: 54ch; margin-top: 18px; }
.momentum .stat-row{ margin-top: 56px; }
.momentum .stat-row div strong{ color: var(--color-white); }
.momentum .stat-row div span{ color: rgba(255,255,255,.55); }

/* ---------- Reveal on scroll ---------- */
[data-reveal]{
  opacity:1;
}
[data-reveal].is-visible{ opacity:1; transform:none; }

/* ---------- Utilities ---------- */
.center{ text-align:center; margin-left:auto; margin-right:auto; }
.section-head{ max-width: 640px; margin-bottom: 56px; }
.section-head.center{ margin-left:auto; margin-right:auto; }
.mt-0{ margin-top:0; }
.text-white{ color: var(--color-white); }

/* ============================================================
   Homepage 2026 — large-scale editorial / illustrated direction
   ============================================================ */
.home-redesign{
  --warm-white:#f7f1e8;
  --blush:#edc6c3;
  --red:#d71920;
  --deep-red:#a90e16;
  background:var(--warm-white);
}
.home-redesign .header-wrap{ top:0; }
.home-redesign .site-header{
  padding:18px 0;
  background:#fff;
  border-bottom:1px solid rgba(3,3,3,.08);
  backdrop-filter:blur(14px) saturate(130%);
}
.home-redesign .site-header .container{ max-width:1440px; position:relative; justify-content:flex-end; }
.home-redesign .logo-white{ display:none !important; }
.home-redesign .nav-link{ color:var(--color-ink); }
.home-redesign .nav{ gap:48px; }
.home-redesign .nav-links{ gap:40px; }
.home-redesign .nav-phone{
  font-family:var(--font-display); font-size:13px; font-weight:800;
  border-bottom:1px solid currentColor;
}
.home-redesign .header-wrap.is-scrolled .site-header{ padding:10px 0; background:rgba(255,255,255,.94); }

/* Big logo, pinned absolute so it breaks out of the slim header bar
   and overlaps the hero below — same idea as a splash wordmark banner. */
.home-redesign .brand{
  position:absolute;
  left:32px; top:1px;
  z-index:5;
  transition: top .4s var(--ease);
}
.home-redesign .logo-img{
  height:clamp(120px,10vw,176px);
}
.home-redesign .header-wrap.is-scrolled .brand{ top:6px; }
.home-redesign .header-wrap.is-scrolled .logo-img{ height:64px; }

.hero-rb{
  min-height:100svh;
  padding:132px max(32px,calc((100vw - 1440px)/2)) 28px;
  display:grid;
  grid-template-columns:minmax(420px,.88fr) minmax(500px,1.12fr);
  align-items:stretch;
  gap:18px;
  background:var(--warm-white);
  overflow:hidden;
}
.hero-rb-copy{
  padding:clamp(68px,8vw,128px) 4vw 64px 0;
  display:flex; flex-direction:column; justify-content:center;
  position:relative; z-index:2;
}
.hero-pill{
  display:inline-flex; align-items:center; gap:9px; align-self:flex-start;
  padding:9px 14px; border:1px solid rgba(3,3,3,.16); border-radius:999px;
  font-family:var(--font-display); font-weight:800; font-size:11px;
  letter-spacing:.08em; text-transform:uppercase; margin-bottom:32px;
}
.hero-pill span{ width:8px; height:8px; border-radius:50%; background:var(--red); box-shadow:0 0 0 4px rgba(215,25,32,.12); }
.hero-rb h1{
  font-size:clamp(54px,7.4vw,86px); line-height:.88; letter-spacing:-.065em;
  margin:0 0 34px; max-width:8.4ch;
}
.hero-rb h1 em{ color:var(--red); font-style:normal; }
.hero-rb-copy > p{ font-size:clamp(17px,1.4vw,21px); max-width:45ch; line-height:1.55; }
.hero-rb .hero-actions{ margin-top:22px; }
.hero-rb .text-link{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-display); font-weight:800; font-size:14px; padding:15px 4px; }
.hero-rb .text-link span{ color:var(--red); font-size:20px; }
.hero-trust{ margin-top:52px; padding-top:18px; border-top:1px solid rgba(3,3,3,.14); font-size:13px; color:var(--color-ink-soft); max-width:500px; }
.hero-trust strong{ color:var(--color-ink); }
.hero-rb-art{
  min-height:660px; position:relative; border-radius:32px; overflow:hidden;
  background:#eadbc8;
}
.hero-rb-art::after{ content:""; position:absolute; inset:0; box-shadow:inset 0 0 90px rgba(92,45,24,.08); pointer-events:none; }
.hero-rb-art img{ width:100%; height:100%; object-fit:cover; object-position:60% center; }
.float-tag{
  position:absolute; z-index:2; padding:11px 17px; border-radius:999px;
  background:rgba(255,255,255,.9); box-shadow:0 12px 30px rgba(30,15,10,.12);
  font-family:var(--font-display); font-weight:800; font-size:12px;
  animation:floatTag 5s ease-in-out infinite;
}
.float-tag-one{ top:22%; right:8%; }
.float-tag-two{ left:10%; bottom:16%; animation-delay:-2.5s; }
@keyframes floatTag{ 50%{ transform:translateY(-9px) rotate(1deg); } }

.coverage-ticker{ overflow:hidden; background:var(--red); color:white; padding:18px 0; }
.coverage-ticker > div{ width:max-content; display:flex; align-items:center; gap:28px; font-family:var(--font-display); font-size:14px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding-left:3vw; }
.coverage-ticker i{ font-style:normal; color:#111; }

.big-intro{ padding:clamp(110px,12vw,190px) 0; background:#fff; }
.section-number{ display:block; font-family:var(--font-display); font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; margin-bottom:62px; }
.section-number.light{ color:rgba(255,255,255,.64); }
.big-intro-grid{ display:grid; grid-template-columns:1.4fr .6fr; gap:80px; align-items:end; margin-bottom:84px; }
.big-intro h2,.process-head h2{ font-size:clamp(44px,6vw,84px); line-height:.96; letter-spacing:-.055em; }
.big-intro h2 span{ color:var(--red); }
.big-intro-grid p{ font-size:19px; max-width:38ch; margin:0 0 8px; }
.section-illustration-copy{ min-width:0; }
.business-coverage-copy>p{ font-size:18px; max-width:40ch; }
.values-illustration-copy{ flex:0 1 400px; }
.values-heading-copy .section-number{ margin-bottom:24px; }
.values-heading-copy h2{ margin-top:0; }
.contact-hero-side{ min-width:0; }
.contact-hero-side .contact-illustration{ margin-bottom:36px; }
.section-illustration{ display:block; width:100%; max-width:400px; height:auto; margin:0 auto 28px; }
.process-illustration-copy{ flex:0 1 400px; }
.process-illustration-copy p{ text-align:center; margin:0; }
.coverage-panels{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.coverage-panel{
  min-height:590px; border-radius:30px; padding:38px; display:flex; flex-direction:column; justify-content:space-between;
  overflow:hidden; transition:transform .45s var(--ease),box-shadow .45s var(--ease);
}
.coverage-panel:hover{ transform:translateY(-7px); box-shadow:0 30px 60px -34px rgba(0,0,0,.42); }
.personal-panel{ background:var(--blush); }
.business-panel{ background:#171717; color:white; }
.panel-top{ display:flex; justify-content:space-between; align-items:center; font-family:var(--font-display); font-weight:800; font-size:13px; text-transform:uppercase; letter-spacing:.1em; }
.round-arrow{ width:48px; height:48px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-size:20px; transition:transform .35s var(--ease),background .35s var(--ease); }
.coverage-panel:hover .round-arrow{ transform:rotate(45deg); background:var(--red); color:white; border-color:var(--red); }
.line-icon{ width:48%; max-width:245px; align-self:center; }
.line-icon svg{ width:100%; overflow:visible; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
.coverage-panel h3{ font-size:clamp(34px,4vw,56px); letter-spacing:-.045em; margin-bottom:18px; }
.business-panel h3{ color:white; }
.coverage-panel p{ max-width:42ch; margin:0; color:rgba(3,3,3,.64); }
.business-panel p{ color:rgba(255,255,255,.62); }

.difference-section{ background:var(--red); color:#fff; padding:clamp(120px,14vw,210px) 0 100px; position:relative; overflow:hidden; }
.difference-section .container{ position:relative; z-index:2; }
.difference-copy{ max-width:970px; }
.difference-copy h2{ color:#fff; font-size:clamp(52px,8vw,112px); line-height:.88; letter-spacing:-.065em; }
.difference-copy h2 em{ font-style:normal; color:#151515; }
.difference-copy p{ color:rgba(255,255,255,.78); font-size:20px; max-width:48ch; margin:35px 0 40px; }
.difference-orbit{ position:absolute; right:-10vw; top:5%; width:50vw; height:50vw; min-width:620px; min-height:620px; border:1px solid rgba(255,255,255,.18); border-radius:50%; }
.difference-orbit::before,.difference-orbit::after{ content:""; position:absolute; border:1px solid rgba(255,255,255,.15); border-radius:50%; inset:12%; }
.difference-orbit::after{ inset:27%; }
.difference-orbit span{ position:absolute; width:34px; height:34px; border-radius:50%; background:#111; }
.difference-orbit span:nth-child(1){ top:4%; left:32%; }.difference-orbit span:nth-child(2){ top:48%; left:-2%; background:#fff; }.difference-orbit span:nth-child(3){ right:16%; bottom:11%; background:var(--blush); }
.difference-points{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:130px; border-top:1px solid rgba(255,255,255,.28); }
.difference-points article{ padding:34px 42px 0 0; border-right:1px solid rgba(255,255,255,.25); }
.difference-points article+article{ padding-left:42px; }
.difference-points article:last-child{ border-right:0; }
.difference-points article>span{ font-family:var(--font-display); font-weight:800; font-size:12px; opacity:.62; }
.difference-points h3{ color:#fff; font-size:24px; margin:58px 0 12px; }
.difference-points p{ color:rgba(255,255,255,.7); max-width:30ch; }

.process-section{ padding:clamp(110px,12vw,180px) 0; background:var(--warm-white); }
.process-head{ display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:90px; }
.process-head p{ font-family:var(--font-display); font-weight:800; color:var(--red); }
.process-steps{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(3,3,3,.18); }
.process-steps article{ padding:40px 44px 10px 0; min-height:285px; border-right:1px solid rgba(3,3,3,.15); }
.process-steps article+article{ padding-left:44px; }
.process-steps article:last-child{ border-right:0; }
.process-steps b{ width:52px; height:52px; display:grid; place-items:center; border-radius:50%; background:var(--red); color:white; font-family:var(--font-display); }
.process-steps h3{ font-size:24px; margin:50px 0 12px; }
.process-steps p{ max-width:30ch; }

.quote-section{ min-height:720px; background:#171717; color:white; padding:130px 32px; display:grid; place-items:center; position:relative; overflow:hidden; text-align:center; }
.quote-mark{ position:absolute; left:2%; top:-24%; font-family:Georgia,serif; font-size:700px; line-height:1; color:rgba(215,25,32,.22); }
.quote-inner{ max-width:980px; position:relative; }
.quote-inner>span{ font-family:var(--font-display); font-size:11px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; color:var(--blush); }
.quote-inner blockquote{ font-family:var(--font-display); font-size:clamp(42px,6vw,78px); font-weight:800; line-height:1; letter-spacing:-.05em; margin:35px 0; }
.quote-inner p{ color:rgba(255,255,255,.62); font-size:18px; max-width:55ch; margin:0 auto 38px; }

@media(max-width:1050px){
  .hero-rb{ grid-template-columns:1fr; padding-top:126px; }
  .hero-rb-copy{ padding:70px 0 20px; }
  .hero-rb h1{ max-width:10ch; }
  .hero-rb-art{ min-height:540px; }
  .big-intro-grid{ grid-template-columns:1fr; gap:28px; }
  .big-intro-grid .section-illustration{ margin-left:0; }
  .coverage-panel{ min-height:520px; }
}
@media(max-width:900px){
  .home-redesign .nav-phone{ display:none; }
  .home-redesign .brand{ left:24px; }
  .home-redesign .logo-img{ height:84px; }
  .home-redesign .nav-links{ background:#171717; }
  .home-redesign .nav-links a{ color:#fff; }
  .difference-points,.process-steps{ grid-template-columns:1fr; }
  .difference-points article,.difference-points article+article,.process-steps article,.process-steps article+article{ border-right:0; border-bottom:1px solid rgba(255,255,255,.24); padding:30px 0; min-height:0; }
  .process-steps article,.process-steps article+article{ border-color:rgba(3,3,3,.15); }
  .difference-points h3,.process-steps h3{ margin-top:28px; }
}
@media(max-width:700px){
  .home-redesign .container{ padding:0 20px; }
  .home-redesign .site-header{ padding:10px 0; }
  .home-redesign .brand{ left:20px; top:8px; }
  .home-redesign .logo-img{ height:60px; }
  .home-redesign .nav-actions .btn{ display:none; }
  .home-redesign .nav{ gap:0; }
  .hero-rb{ padding:100px 14px 14px; gap:12px; }
  .hero-rb-copy{ padding:54px 8px 25px; }
  .hero-rb h1{ font-size:clamp(48px,15vw,64px); max-width:100%; }
  .hero-rb .hero-actions{ flex-direction:column; align-items:flex-start; gap:4px; }
  .hero-rb-copy > p{ max-width:100%; }
  .hero-rb-art{ min-height:430px; border-radius:22px; }
  .hero-rb-art img{ object-position:65% center; }
  .hero-trust{ margin-top:36px; }
  .coverage-ticker{ padding:14px 0; }
  .big-intro,.process-section{ padding:96px 0; }
  .section-number{ margin-bottom:40px; }
  .big-intro-grid{ margin-bottom:50px; }
  .coverage-panels{ grid-template-columns:1fr; }
  .coverage-panel{ min-height:480px; padding:26px; border-radius:22px; }
  .difference-section{ padding:100px 0 60px; }
  .difference-copy h2{ font-size:clamp(48px,15vw,72px); }
  .difference-points{ margin-top:85px; }
  .process-head{ display:block; margin-bottom:55px; }
  .process-illustration-copy{ margin-top:32px; }
  .quote-section{ min-height:630px; padding:95px 20px; }
  .quote-mark{ font-size:450px; top:-12%; }
}
@media(prefers-reduced-motion:reduce){ .float-tag{ animation:none; } }

/* ---------- Homepage video hero + expanded solutions ---------- */
.video-hero{
  min-height:100svh;
  display:flex;
  align-items:flex-end;
  padding:150px max(32px,calc((100vw - 1440px)/2)) 64px;
  background:#16110f;
  color:#fff;
}
.video-hero-media,.video-hero-overlay{ position:absolute; inset:0; }
.video-hero-media video{ width:100%; height:100%; object-fit:cover; display:block; }
.video-hero-overlay{
  background:
    linear-gradient(90deg,rgba(3,3,3,.84) 0%,rgba(3,3,3,.64) 42%,rgba(3,3,3,.12) 74%),
    linear-gradient(0deg,rgba(3,3,3,.67) 0%,transparent 48%);
}
.video-hero .hero-rb-copy{ max-width:760px; padding:60px 0 20px; color:#fff; }
.video-hero .hero-pill{ border-color:rgba(255,255,255,.35); background:rgba(3,3,3,.18); backdrop-filter:blur(8px); }
.video-hero h1{ color:#fff; max-width:12ch; text-shadow:0 4px 35px rgba(0,0,0,.18); }
.video-hero .hero-rb-copy>p{ color:rgba(255,255,255,.8); }
.video-hero .text-link{ color:#fff; }
.video-hero .hero-trust{ color:rgba(255,255,255,.65); border-color:rgba(255,255,255,.25); }
.video-hero .hero-trust strong{ color:#fff; }
.hero-video-link{ position:absolute; right:max(32px,calc((100vw - 1440px)/2)); bottom:72px; z-index:2; display:flex; align-items:center; gap:12px; color:#fff; font-family:var(--font-display); font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.hero-video-link span{ width:48px; height:48px; border:1px solid rgba(255,255,255,.5); border-radius:50%; display:grid; place-items:center; font-size:17px; }
.solutions-three{ grid-template-columns:repeat(3,1fr); }
.solutions-three .coverage-panel{ min-height:620px; padding:30px; }
.solutions-three .coverage-panel h3{ font-size:clamp(30px,3.2vw,48px); }
.benefits-panel{ background:#f1e3cc; }

/* ---------- Auto-sliding Personal Solutions rail ---------- */
.personal-slider-section{
  padding:50px 0 80px;
  background:#edc6c3;
  overflow:hidden;
}
.personal-slider-head{
  max-width:1440px;
  display:grid;
  grid-template-columns:1.28fr .72fr;
  align-items:center;
  gap:80px;
  margin-bottom:78px;
}
.personal-slider-head .section-number{ margin-bottom:32px; }
.personal-slider-head h2{
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(46px,5.8vw,72px);
  font-weight:400;
  line-height:.98;
  letter-spacing:-.045em;
  margin:0;
}
.personal-slider-head h2 em{ font-weight:400; }
.personal-slider-copy>p{ font-size:clamp(17px,1.5vw,21px); line-height:1.5; max-width:48ch; margin:28px 0 0; color:#202020; }
.personal-slider-viewport{
  width:100%;
  overflow-x:auto;
  scroll-behavior:smooth;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  padding-left:max(24px,calc((100vw - 1440px)/2));
  padding-right:max(24px,calc((100vw - 1440px)/2));
}
.personal-slider-viewport::-webkit-scrollbar{ display:none; }
.personal-slider-track{ display:flex; width:max-content; }
.solution-slide{
  flex:0 0 clamp(345px,31vw,500px);
  min-height:640px;
  padding:42px 48px 34px;
  display:flex;
  flex-direction:column;
  scroll-snap-align:start;
  color:#101010;
  border-right:1px solid rgba(3,3,3,.11);
}
.solution-home{ background:#efbdba; }
.solution-auto{ background:#e9d9c1; }
.solution-flood{ background:#e95559; }
.solution-health{ background:#eadbe9; }
.solution-renters{ background:#f4eae0; }
.solution-umbrella{ background:#c8262f; color:#fff; }
.solution-art{ flex:1; display:grid; place-items:center; min-height:310px; }
.solution-art svg{ width:88%; max-width:330px; stroke:currentColor; stroke-width:2.15; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(9px 11px 0 rgba(0,0,0,.08)); transition:transform .55s var(--ease); }
.solution-slide:hover .solution-art svg{ transform:translateY(-10px) rotate(-1deg); }
.solution-card-copy h3{ font-family:Georgia,'Times New Roman',serif; font-size:clamp(34px,3vw,45px); font-weight:400; letter-spacing:-.04em; margin:10px 0 13px; color:inherit; }
.solution-card-copy p{ color:inherit; font-size:16px; margin-bottom:22px; min-height:50px; }
.solution-card-copy a{ display:flex; justify-content:space-between; align-items:center; padding-top:18px; border-top:1px solid currentColor; font-family:var(--font-display); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.solution-card-copy a span{ font-size:20px; transition:transform .3s var(--ease); }.solution-card-copy a:hover span{ transform:translateX(5px); }
.slider-controls{ max-width:1440px; display:flex; align-items:center; gap:14px; padding-top:54px; }
.slider-arrow{ width:56px; height:56px; border:0; border-radius:50%; background:#171717; color:#fff; font-size:22px; cursor:pointer; transition:transform .3s var(--ease),background .3s var(--ease); }
.slider-next{ background:var(--red); }.slider-arrow:hover{ transform:scale(1.08); }.slider-arrow:focus-visible{ outline:3px solid rgba(215,25,32,.3); outline-offset:3px; }
.slider-progress{ height:2px; flex:1; margin-left:20px; background:rgba(3,3,3,.13); overflow:hidden; }
.slider-progress span{ display:block; width:16.666%; height:100%; background:var(--red); transition:transform .5s var(--ease),width .5s var(--ease); }

@media(max-width:1050px){
  .video-hero{ display:flex; padding-top:135px; }
  .video-hero .hero-rb-copy{ padding:70px 0 15px; }
  .solutions-three{ grid-template-columns:1fr 1fr; }
  .solutions-three .coverage-panel:last-child{ grid-column:1/-1; min-height:500px; }
  .personal-slider-head{ grid-template-columns:1fr; gap:28px; }
  .personal-slider-head h2 br{ display:none; }
  .solution-slide{ flex-basis:420px; }
}
@media(max-width:700px){
  .video-hero{ min-height:820px; padding:120px 22px 44px; }
  .video-hero-overlay{ background:linear-gradient(90deg,rgba(3,3,3,.82),rgba(3,3,3,.35)),linear-gradient(0deg,rgba(3,3,3,.75),transparent 55%); }
  .video-hero .hero-rb-copy{ padding:45px 0 30px; }
  .video-hero h1{ font-size:clamp(50px,16vw,66px); }
  .hero-video-link{ display:none; }
  .solutions-three{ grid-template-columns:1fr; }
  .solutions-three .coverage-panel:last-child{ grid-column:auto; min-height:480px; }
  .personal-slider-section{ padding:40px 0 55px; }
  .personal-slider-head{ margin-bottom:48px; }
  .personal-slider-head h2{ font-size:clamp(43px,13vw,60px); }
  .personal-slider-viewport{ padding-left:20px; padding-right:20px; }
  .solution-slide{ flex-basis:calc(100vw - 50px); min-height:570px; padding:30px 26px; }
  .solution-art{ min-height:280px; }
  .slider-controls{ padding-top:34px; }
  .slider-progress{ margin-left:8px; }
}

/* ---------- Rich solution pages ---------- */
.service-redesign{ --warm-white:#f7f1e8; --red:#d71920; background:var(--warm-white); }
.service-redesign .site-header{ padding:14px 0; background:#fff; border-bottom:1px solid rgba(3,3,3,.1); backdrop-filter:blur(14px); }
.service-redesign .site-header .container{ max-width:1440px; }
.service-redesign .logo-img{ height:68px; }
.service-redesign .nav{ gap:34px; }.service-redesign .nav-links{ gap:26px; }
.service-redesign .nav-phone{ font-family:var(--font-display); font-size:12px; font-weight:800; border-bottom:1px solid currentColor; }
.service-redesign .nav-link.active{ color:var(--red); }.service-redesign .nav-link.active::after{ right:0; }
.service-redesign .header-wrap.is-scrolled .site-header{ padding:9px 0; background:rgba(255,255,255,.95); }
.service-redesign .header-wrap.is-scrolled .logo-img{ height:54px; }
.service-hero{ min-height:880px; padding:130px max(24px,calc((100vw - 1440px)/2)) 28px; display:grid; grid-template-columns:.92fr 1.08fr; gap:20px; }
.service-hero-copy{ display:flex; flex-direction:column; justify-content:center; padding:65px 5vw 45px 0; }
.back-link{ align-self:flex-start; font-family:var(--font-display); font-weight:800; font-size:12px; margin-bottom:55px; }
.service-label{ align-self:flex-start; padding:9px 14px; border-radius:999px; background:rgba(215,25,32,.1); color:var(--red); font-family:var(--font-display); font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; margin-bottom:25px; }
.service-hero h1{ font-size:clamp(56px,6.4vw,100px); line-height:.9; letter-spacing:-.065em; margin-bottom:32px; }.service-hero h1 em{ color:var(--red); font-style:normal; }
.service-hero-copy>p{ font-size:19px; max-width:44ch; }.service-hero .text-link{ font-family:var(--font-display); font-size:14px; font-weight:800; padding:15px 2px; }
.service-hero-image{ position:relative; border-radius:30px; overflow:hidden; min-height:700px; background:#ddd; }
.service-hero-image::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(3,3,3,.45),transparent 45%); }
.service-hero-image img{ width:100%; height:100%; object-fit:cover; }
.image-note{ position:absolute; z-index:2; left:30px; bottom:30px; right:30px; color:#fff; display:flex; align-items:end; justify-content:space-between; gap:20px; border-top:1px solid rgba(255,255,255,.45); padding-top:18px; }
.image-note b{ font-family:var(--font-display); font-size:20px; }.image-note span{ font-size:13px; color:rgba(255,255,255,.75); }
.service-marquee{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:26px; padding:22px 30px; background:var(--red); color:#fff; font-family:var(--font-display); font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.09em; }
.service-marquee i{ font-style:normal; color:#191919; }
.service-products{ padding:150px 0; background:#fff; }
.service-title-row{ display:grid; grid-template-columns:1.35fr .65fr; gap:70px; align-items:end; margin-bottom:85px; }
.service-title-row .section-number{ margin-bottom:35px; }.service-title-row h2{ font-size:clamp(44px,5.6vw,78px); line-height:.95; letter-spacing:-.055em; }.service-title-row h2 em{ color:var(--red); font-style:normal; }.service-title-row>p{ font-size:18px; max-width:40ch; }
.product-grid{ display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid rgba(3,3,3,.18); border-left:1px solid rgba(3,3,3,.18); }
.product-grid article{ min-height:350px; padding:38px; border-right:1px solid rgba(3,3,3,.18); border-bottom:1px solid rgba(3,3,3,.18); display:flex; flex-direction:column; transition:background .35s,color .35s; }
.product-grid article:hover,.product-grid article:focus-within{ background:#f9eeee; color:#171717; }.product-grid article>span{ font-family:var(--font-display); font-size:12px; font-weight:800; color:var(--red); }.product-grid h3{ font-size:34px; margin:55px 0 16px; }.product-grid article:hover h3,.product-grid article:focus-within h3{ color:#171717; }.product-grid p{ max-width:42ch; }.product-grid article:hover p,.product-grid article:focus-within p{ color:#454545; }.product-grid a{ margin-top:auto; font-family:var(--font-display); font-size:13px; font-weight:800; color:var(--red); }
.service-feature{ padding:150px 0; background:var(--warm-white); }.service-feature .container{ display:grid; grid-template-columns:1fr 1fr; gap:9vw; align-items:center; }
.feature-visual{ position:relative; min-height:650px; border-radius:48% 48% 26px 26px; overflow:hidden; }.feature-visual img{ width:100%; height:100%; position:absolute; object-fit:cover; }.feature-orbit{ position:absolute; width:160px; height:160px; right:-35px; top:15%; background:var(--red); border:24px solid rgba(255,255,255,.75); border-radius:50%; mix-blend-mode:multiply; }
.feature-copy .section-number{ margin-bottom:40px; }.feature-copy h2{ font-size:clamp(40px,5vw,68px); letter-spacing:-.055em; }.feature-copy>p{ font-size:18px; max-width:48ch; }
.feature-copy ul{ margin-top:45px; border-top:1px solid rgba(3,3,3,.16); }.feature-copy li{ display:flex; justify-content:space-between; gap:25px; padding:22px 0; border-bottom:1px solid rgba(3,3,3,.16); }.feature-copy li b{ font-family:var(--font-display); }.feature-copy li span{ font-size:13px; max-width:26ch; color:var(--color-ink-soft); }
.business-band,.people-statement{ padding:140px 0; background:#171717; color:#fff; }.business-band> .container>span,.people-statement span{ color:#efbcb8; font-family:var(--font-display); font-size:11px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }.business-band h2{ color:#fff; font-size:clamp(50px,7vw,92px); margin:35px 0 80px; }.business-metrics{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.25); }.business-metrics div{ padding:28px 25px 0 0; }.business-metrics b{ color:var(--red); }.business-metrics p{ color:rgba(255,255,255,.75); font-family:var(--font-display); font-weight:800; margin-top:35px; }
.people-statement{ background:#e9c7c3; color:#171717; }.people-statement span{ color:var(--red); }.people-statement h2{ font-size:clamp(42px,6vw,82px); line-height:1; letter-spacing:-.055em; max-width:20ch; margin:38px 0 0; }
.service-cta{ padding:140px 30px; min-height:650px; background:var(--red); color:#fff; text-align:center; display:grid; place-items:center; position:relative; overflow:hidden; }.service-cta::before,.service-cta::after{ content:""; position:absolute; width:360px; height:360px; border:1px solid rgba(255,255,255,.25); border-radius:50%; }.service-cta::before{ left:-160px; top:-110px; }.service-cta::after{ right:-140px; bottom:-110px; }.service-cta>div{ position:relative; z-index:1; }.service-cta span{ font-family:var(--font-display); font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }.service-cta h2{ color:#fff; font-size:clamp(58px,8vw,108px); line-height:.86; letter-spacing:-.065em; margin:38px 0 50px; }
.mini-footer{ background:#090909; color:rgba(255,255,255,.6); padding:65px 0 30px; }.mini-footer .container{ display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:38px; }.mini-footer img{ height:62px; }.mini-footer div>div{ display:flex; justify-content:flex-end; gap:28px; }.mini-footer a{ color:#fff; font-family:var(--font-display); font-size:13px; font-weight:700; }.mini-footer p{ grid-column:1/-1; padding-top:24px; border-top:1px solid rgba(255,255,255,.12); font-size:12px; margin:0; }

@media(max-width:1050px){
  .service-redesign .nav-phone{ display:none; }.service-redesign .nav-links{ gap:18px; }.service-hero{ grid-template-columns:1fr; padding-top:115px; }.service-hero-copy{ padding:80px 0 30px; }.service-hero-image{ min-height:580px; }.service-feature .container{ gap:55px; }
}
@media(max-width:900px){
  .service-redesign .nav-links{ background:#171717; }.service-redesign .nav-links a{ color:#fff; }.service-title-row,.service-feature .container{ grid-template-columns:1fr; }.service-title-row{ gap:20px; }.feature-visual{ min-height:560px; order:2; }.business-metrics{ grid-template-columns:1fr 1fr; gap:30px; }.mini-footer .container{ grid-template-columns:1fr; }.mini-footer div>div{ justify-content:flex-start; }.mini-footer p{ grid-column:auto; }
}
@media(max-width:700px){
  .service-redesign .site-header{ padding:9px 0; }.service-redesign .logo-img{ height:54px; }.service-redesign .nav-actions .btn{ display:none; }.service-redesign .nav{ gap:0; }.service-hero{ min-height:auto; padding:105px 14px 14px; gap:12px; }.service-hero-copy{ padding:45px 9px 35px; }.back-link{ margin-bottom:35px; }.service-hero h1{ font-size:clamp(48px,15vw,64px); }.service-hero-image{ min-height:480px; border-radius:22px; }.image-note{ left:20px; right:20px; bottom:20px; display:block; }.image-note span{ display:block; margin-top:5px; }.service-marquee{ justify-content:flex-start; gap:16px; }.service-products,.service-feature{ padding:95px 0; }.service-title-row{ margin-bottom:50px; }.product-grid{ grid-template-columns:1fr; }.product-grid article{ min-height:310px; padding:28px; }.feature-visual{ min-height:480px; border-radius:180px 180px 22px 22px; }.feature-copy li{ display:block; }.feature-copy li span{ display:block; margin-top:6px; }.business-band,.people-statement{ padding:95px 0; }.business-metrics{ grid-template-columns:1fr; }.service-cta{ min-height:540px; padding:95px 22px; }.mini-footer div>div{ flex-wrap:wrap; gap:18px 24px; }
}

/* ---------- About page ---------- */
.about-hero{ min-height:900px; padding:130px max(24px,calc((100vw - 1440px)/2)) 28px; display:grid; grid-template-columns:.94fr 1.06fr; gap:20px; }
.about-hero-copy{ display:flex; flex-direction:column; justify-content:center; padding:70px 4vw 50px 0; }
.about-hero-copy h1{ font-size:clamp(56px,6.5vw,102px); line-height:.89; letter-spacing:-.067em; }.about-hero-copy h1 em{ color:var(--red); font-style:normal; }.about-hero-copy>p{ font-size:20px; max-width:43ch; }
.about-hero-visual{ position:relative; border-radius:30px; overflow:hidden; min-height:720px; background:#e6d4c7; }.about-hero-visual::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(3,3,3,.32),transparent 45%); }.about-hero-visual img{ width:100%; height:100%; object-fit:cover; }
.about-stamp{ position:absolute; z-index:2; right:32px; bottom:32px; width:172px; height:172px; border-radius:50%; background:var(--red); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; transform:rotate(-7deg); box-shadow:0 18px 45px rgba(0,0,0,.2); }.about-stamp span{ font-family:var(--font-display); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.about-stamp b{ font-family:Georgia,serif; font-size:38px; font-weight:400; line-height:1.15; }
.about-manifesto{ padding:clamp(120px,14vw,205px) 0; background:var(--red); color:#fff; }.manifesto-grid{ display:grid; grid-template-columns:1.35fr .65fr; gap:8vw; align-items:end; }.manifesto-grid h2{ color:#fff; font-size:clamp(56px,7.5vw,106px); line-height:.88; letter-spacing:-.065em; }.manifesto-grid h2 em{ color:#171717; font-style:normal; }.manifesto-grid p{ color:rgba(255,255,255,.78); font-size:18px; }.manifesto-grid .btn{ margin-top:25px; }
.about-story{ padding:160px 0; background:#fff; }.about-story .container{ display:grid; grid-template-columns:.7fr 1.3fr; gap:9vw; align-items:center; }.story-copy .section-number{ margin-bottom:42px; }.story-copy h2{ font-size:clamp(46px,5.2vw,64px); letter-spacing:-.055em; }.story-copy p{ font-size:18px; }
.story-collage{ position:relative; min-height:750px; }.story-photo{ position:absolute; overflow:hidden; box-shadow:0 28px 65px -35px rgba(0,0,0,.5); }.story-photo img{ width:100%; height:100%; object-fit:cover; }.story-photo-main{ inset:0 0 80px 15%; border-radius:260px 260px 28px 28px; }.story-photo-small{ width:34%; height:42%; left:0; bottom:0; border:12px solid #fff; border-radius:24px; }.story-note{ position:absolute; right:-10px; bottom:35px; width:155px; height:155px; border-radius:50%; background:#171717; color:#fff; display:grid; place-content:center; text-align:center; font-family:var(--font-display); font-size:11px; text-transform:uppercase; letter-spacing:.1em; }.story-note b{ color:#efbcb8; font-size:27px; text-transform:none; letter-spacing:-.02em; }
.about-values{ padding:50px 0; background:#f1f3ea; }.values-heading{ display:flex; justify-content:space-between; align-items:end; gap:50px; margin-bottom:80px; }.values-heading h2{ font-family:Georgia,serif; font-weight:400; font-size:clamp(52px,6vw,84px); line-height:.95; letter-spacing:-.045em; }.values-heading h2 em{ color:var(--red); }.values-heading p{ font-size:18px; max-width:34ch; }
.values-rail{ display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid rgba(3,3,3,.2); }.values-rail article{ min-height:340px; padding:30px 25px; border-right:1px solid rgba(3,3,3,.18); }.values-rail article:last-child{ border:0; }.values-rail article>span{ color:var(--red); font-family:var(--font-display); font-size:11px; font-weight:800; }.values-rail h3{ margin:120px 0 14px; font-size:22px; }.values-rail p{ font-size:14px; }
.about-process{ padding:150px 0; background:#171717; color:#fff; }.about-process .container{ display:grid; grid-template-columns:.7fr 1.3fr; gap:9vw; }.process-intro>span{ color:#efbcb8; font-family:var(--font-display); font-size:11px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }.process-intro h2{ color:#fff; font-size:clamp(46px,5vw,70px); margin-top:35px; }.process-list{ border-top:1px solid rgba(255,255,255,.24); }.process-list>div{ display:grid; grid-template-columns:60px .7fr 1fr; gap:25px; padding:34px 0; border-bottom:1px solid rgba(255,255,255,.2); align-items:start; }.process-list b{ color:var(--red); }.process-list h3{ color:#fff; font-size:20px; }.process-list p{ color:rgba(255,255,255,.62); margin:0; }

/* ---------- Contact page ---------- */
.contact-hero{ min-height:760px; padding:150px max(24px,calc((100vw - 1440px)/2)) 80px; display:grid; grid-template-columns:1.3fr .7fr; gap:9vw; align-items:end; }.contact-hero-copy h1{ font-size:clamp(60px,8vw,118px); line-height:.87; letter-spacing:-.07em; }.contact-hero-copy h1 em{ color:var(--red); font-style:normal; }.contact-hero-copy>p{ font-size:20px; max-width:48ch; }.contact-hero-aside{ border-top:1px solid rgba(3,3,3,.2); }.contact-hero-aside>span{ display:block; margin-top:25px; font-size:12px; color:var(--color-ink-soft); }.contact-hero-aside>a{ display:flex; justify-content:space-between; gap:15px; padding:8px 0 23px; border-bottom:1px solid rgba(3,3,3,.2); font-family:var(--font-display); font-weight:800; }.contact-hero-aside b{ color:var(--red); }
.contact-hero-copy .back-link{ display:block; margin-bottom:42px; }
.contact-workspace{ padding:140px 0; background:#171717; color:#fff; }.contact-workspace>.container{ display:grid; grid-template-columns:.72fr 1.28fr; gap:9vw; align-items:start; }.contact-form-intro{ position:sticky; top:130px; }.contact-form-intro h2{ color:#fff; font-size:clamp(50px,6vw,82px); line-height:.92; }.contact-form-intro h2 em{ color:var(--red); font-style:normal; }.contact-form-intro>p{ color:rgba(255,255,255,.63); font-size:17px; }.contact-promise{ margin-top:55px; padding-top:22px; border-top:1px solid rgba(255,255,255,.2); display:flex; flex-direction:column; gap:14px; }.contact-promise b{ margin-bottom:8px; }.contact-promise span{ color:rgba(255,255,255,.62); font-size:13px; }.contact-promise span::before{ content:"✓"; color:var(--red); margin-right:10px; }
.modern-contact-form{ background:#f7f1e8; color:#171717; border-radius:28px; padding:50px; }.form-heading{ display:flex; justify-content:space-between; align-items:center; margin-bottom:45px; padding-bottom:20px; border-bottom:1px solid rgba(3,3,3,.15); }.form-heading span{ font-family:var(--font-display); font-size:22px; font-weight:800; }.form-heading b{ font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--red); }.modern-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }.modern-contact-form label{ display:block; margin-bottom:24px; font-family:var(--font-display); font-size:12px; font-weight:800; }.modern-contact-form input,.modern-contact-form select,.modern-contact-form textarea{ display:block; width:100%; margin-top:9px; border:0; border-bottom:1px solid rgba(3,3,3,.28); border-radius:0; background:transparent; padding:13px 2px; font-family:var(--font-body); font-size:16px; color:#171717; }.modern-contact-form select{ appearance:auto; }.modern-contact-form textarea{ min-height:120px; resize:vertical; }.modern-contact-form input:focus,.modern-contact-form select:focus,.modern-contact-form textarea:focus{ outline:0; border-color:var(--red); box-shadow:0 2px 0 var(--red); }.modern-contact-form .btn{ margin-top:10px; }.form-consent{ font-size:11px; max-width:55ch; margin:20px 0 0; }.modern-form-status{ padding:15px; margin-top:20px; border-radius:10px; background:rgba(215,25,32,.1); color:var(--red); font-weight:700; }
.contact-details{ padding:150px 0; background:#fff; }.contact-details-head{ display:grid; grid-template-columns:1.2fr .8fr; gap:70px; align-items:end; margin-bottom:80px; }.contact-details-head h2{ font-size:clamp(52px,6vw,84px); line-height:.94; }.contact-details-head p{ font-size:18px; max-width:38ch; }.contact-detail-grid{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(3,3,3,.18); }.contact-detail-grid a{ min-height:260px; padding:30px; border-right:1px solid rgba(3,3,3,.16); position:relative; }.contact-detail-grid a:last-child{ border:0; }.contact-detail-grid span{ color:var(--red); font-family:var(--font-display); font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.contact-detail-grid h3{ font-size:clamp(18px,1.7vw,25px); margin-top:80px; overflow-wrap:anywhere; }.contact-detail-grid b{ position:absolute; right:28px; top:27px; font-size:20px; transition:transform .3s; }.contact-detail-grid a:hover b{ transform:translate(4px,-4px); color:var(--red); }
.contact-map-band{ min-height:680px; padding:110px 30px; background:var(--red); color:#fff; display:grid; place-items:center; text-align:center; position:relative; overflow:hidden; }.contact-map-band>div:last-child{ position:relative; z-index:1; }.contact-map-band span{ font-family:var(--font-display); font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }.contact-map-band h2{ color:#fff; font-size:clamp(60px,8vw,110px); line-height:.87; letter-spacing:-.065em; margin:36px 0 50px; }.map-line-art{ position:absolute; inset:0; opacity:.22; }.map-line-art svg{ width:100%; height:100%; stroke:#fff; stroke-width:1.5; vector-effect:non-scaling-stroke; }

@media(max-width:1050px){
  .about-hero{ grid-template-columns:1fr; padding-top:120px; }.about-hero-copy{ padding:70px 0 30px; }.about-hero-visual{ min-height:600px; }.about-story .container{ gap:60px; }.values-rail{ grid-template-columns:repeat(3,1fr); }.values-rail article{ border-bottom:1px solid rgba(3,3,3,.18); }.contact-hero{ grid-template-columns:1fr; min-height:820px; gap:45px; }.contact-workspace>.container{ gap:55px; }
}
@media(max-width:900px){
  .manifesto-grid,.about-story .container,.about-process .container,.contact-workspace>.container,.contact-details-head{ grid-template-columns:1fr; }.story-copy{ max-width:650px; }.contact-form-intro{ position:static; }.contact-detail-grid{ grid-template-columns:1fr; }.contact-detail-grid a{ border-right:0; border-bottom:1px solid rgba(3,3,3,.16); }.contact-detail-grid a:last-child{ border-bottom:0; }
}
@media(max-width:700px){
  .about-hero{ min-height:auto; padding:105px 14px 14px; }.about-hero-copy{ padding:45px 9px 30px; }.about-hero-copy h1{ font-size:clamp(49px,15vw,64px); }.about-hero-visual{ min-height:480px; border-radius:22px; }.about-stamp{ width:125px; height:125px; right:18px; bottom:18px; }.about-stamp b{ font-size:29px; }.about-manifesto,.about-story,.about-values,.about-process{ padding:95px 0; }.manifesto-grid h2{ font-size:clamp(49px,14vw,68px); }.story-collage{ min-height:560px; }.story-photo-main{ left:0; }.story-photo-small{ width:44%; }.story-note{ width:115px; height:115px; }.values-heading{ display:block; margin-bottom:50px; }.values-rail{ grid-template-columns:1fr; }.values-rail article{ min-height:230px; border-right:0; }.values-rail h3{ margin-top:65px; }.process-list>div{ grid-template-columns:45px 1fr; }.process-list p{ grid-column:2; }
  .contact-hero{ min-height:auto; padding:120px 22px 75px; }.contact-hero-copy h1{ font-size:clamp(52px,16vw,70px); }.contact-workspace,.contact-details{ padding:95px 0; }.modern-contact-form{ padding:30px 22px; border-radius:20px; }.modern-form-row{ grid-template-columns:1fr; gap:0; }.form-heading{ align-items:flex-start; gap:15px; }.contact-detail-grid a{ min-height:220px; padding:25px 0; }.contact-detail-grid h3{ margin-top:65px; }.contact-map-band{ min-height:540px; padding:90px 20px; }
}

/* ---------- Unified large editorial footer ---------- */
.site-footer,.mini-footer{ background:#f7f1e8; color:#171717; border-top:12px solid var(--color-primary); position:relative; overflow:hidden; }
.site-footer{ padding:125px 0 42px; }
.site-footer>.container,.mini-footer>.container{ max-width:1400px; }
/* .footer-bg-skyline{ filter:none; opacity:.045; } */
.footer-logo-img{ height:118px; width:auto; margin-bottom:30px; }
.footer-top{ grid-template-columns:1.65fr 1fr 1fr 1fr; gap:65px; padding-bottom:82px; border-bottom:1px solid rgba(3,3,3,.16); }
.footer-brand p,.footer-brand .contact-line{ color:rgba(3,3,3,.65) !important; max-width:38ch; font-size:15px !important; }
.footer-brand a{ color:#171717; }
.footer-col h5{ color:var(--color-primary); font-size:12px; margin-bottom:30px; }
.footer-col ul li{ margin-bottom:18px; }
.footer-col a{ color:#171717; font-family:var(--font-display); font-size:16px; font-weight:700; }
.footer-col a:hover{ color:var(--color-primary); }
.footer-social{ margin-top:30px; }
.footer-social a{ width:48px; height:48px; border-color:rgba(3,3,3,.22); color:#171717; }
.footer-social a:hover{ color:#fff; }
.footer-bottom{ padding-top:34px; color:rgba(3,3,3,.56); font-size:13px; }
.footer-bottom a{ color:#171717; }
.mini-footer{ padding:115px 0 42px; }
.mini-footer::after{ content:""; position:absolute; right:-150px; top:-190px; width:420px; height:420px; border:1px solid rgba(215,25,32,.18); border-radius:50%; box-shadow:0 0 0 65px rgba(215,25,32,.035),0 0 0 130px rgba(215,25,32,.025); }
.mini-footer .container{ position:relative; z-index:1; grid-template-columns:1.1fr .9fr; gap:65px; }
.mini-footer img{ height:118px; width:auto; }
.mini-footer div>div{ gap:38px; align-items:center; }
.mini-footer a{ color:#171717; font-size:17px; position:relative; }
.mini-footer a::after{ content:""; position:absolute; left:0; right:100%; bottom:-8px; height:2px; background:var(--color-primary); transition:right .3s var(--ease); }
.mini-footer a:hover::after{ right:0; }
.mini-footer p{ padding-top:36px; border-color:rgba(3,3,3,.16); color:rgba(3,3,3,.56); font-size:13px; }
@media(max-width:900px){
  .site-footer{ padding-top:90px; }
  .footer-top{ grid-template-columns:1fr 1fr; gap:55px 40px; }
  .mini-footer{ padding-top:85px; }
  .mini-footer .container{ grid-template-columns:1fr; }
  .mini-footer div>div{ justify-content:flex-start; }
}
@media(max-width:560px){
  .site-footer,.mini-footer{ border-top-width:8px; }
  .site-footer{ padding:72px 0 30px; }
  .footer-logo-img,.mini-footer img{ height:94px; }
  .footer-top{ grid-template-columns:1fr; gap:42px; padding-bottom:58px; }
  .footer-col h5{ margin-bottom:20px; }
  .footer-col ul{ display:grid; grid-template-columns:1fr 1fr; gap:12px 18px; }
  .footer-col ul li{ margin:0; }
  .footer-col a{ font-size:14px; }
  .mini-footer{ padding:72px 0 30px; }
  .mini-footer div>div{ gap:20px 28px; }
  .mini-footer a{ font-size:15px; }
}

.pt-none{padding-top: 0 !important;}
.top-5{top: 50px !important}

/* Shared motion and pointer feedback. */
.section-illustration{ transition:transform .65s ease-out; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .service-hero-image img,.about-hero-visual img,.feature-visual img{ transition:transform 1.4s var(--ease); }
  .service-hero-image:hover img,.about-hero-visual:hover img,.feature-visual:hover img{ transform:scale(1.075); }
  .product-grid article,.values-rail article,.contact-detail-grid a{ transition:background-color .3s ease,box-shadow .3s ease; }
  .product-grid article:hover,.values-rail article:hover,.contact-detail-grid a:hover{ background-color:rgba(218,18,31,.045); box-shadow:0 12px 28px rgba(0,0,0,.045); }
  .btn:hover .btn-arrow{ transform:translateX(4px); }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto !important; }
  *,*::before,*::after{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .section-illustration{ transform:none !important; }
}

@media (prefers-reduced-motion:no-preference){
  .section-illustration{ animation:illustration-drift 6s ease-in-out infinite; }
  @keyframes illustration-drift{ 0%,100%{ translate:0 0; } 50%{ translate:0 -10px; } }
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .product-grid article,.values-rail article,.contact-detail-grid a,.btn{ transition:translate .65s ease,box-shadow .65s ease,background-color .65s ease; }
  .product-grid article:hover,.values-rail article:hover,.contact-detail-grid a:hover{ translate:0 -8px; box-shadow:0 18px 36px rgba(0,0,0,.09); }
  .btn:hover{ translate:0 -4px; }
}

/* Industries directory */
.industry-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.industry-card{ display:flex; flex-direction:column; padding:28px; border:1px solid #e6dbd8; border-radius:22px; background:#fff; }
.industry-card-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:32px; }
.industry-card-top svg{ width:64px; height:64px; padding:8px; background:#f9eeee; border-radius:16px; stroke:var(--red); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.industry-card-top>span{ font-size:11px; color:#76706d; letter-spacing:.1em; }
.industry-card h3{ font-size:24px; letter-spacing:-.03em; line-height:1.15; }
.industry-card p{ font-size:15px; line-height:1.65; margin:16px 0 28px; }
.industry-card>a{ margin-top:auto; padding-top:18px; border-top:1px solid #e6dbd8; color:#b30f1b; font-size:13px; font-weight:800; }
.industry-card>a>span[aria-hidden]{ float:right; }
.industry-card:hover,.industry-card:focus-within{ background:#fcf4f2; border-color:#d99a9a; }
.industry-card a:focus-visible{ outline:2px solid var(--red); outline-offset:5px; }
.industry-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.industry-stages{ background:var(--warm-white); padding:110px 0; }
.industry-stages h2{ font-size:clamp(42px,5.6vw,78px); line-height:1; letter-spacing:-.05em; }
.industry-stages h2 em{ color:var(--red); font-style:normal; }
.industry-stage-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin:60px 0 45px; }
.industry-stage-grid article{ border-top:1px solid #d4c8c2; padding-top:26px; }
.industry-stage-grid article>span{ color:#b30f1b; font-size:12px; font-weight:700; }
.industry-stage-grid h3{ margin:28px 0 16px; font-size:26px; }
@media(min-width:901px){ .home-redesign .nav-links{ gap:clamp(12px,1.6vw,28px); } }
@media(max-width:1200px){ .industry-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:900px){ .industry-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }.industry-stage-grid{ grid-template-columns:1fr; gap:24px; } }
@media(max-width:560px){ .industry-grid{ grid-template-columns:1fr; }.industry-card{ padding:26px; }.industry-stages{ padding:75px 0; } }

/* Claims follows the shared service-page layout. */
.claims-page .section-illustration-copy>p{ font-size:18px; max-width:40ch; }
.claims-support,.claims-questions{ padding:120px 0; }
.claims-support{ background:#f9eeee; }
.claims-questions{ background:var(--warm-white); }
.claims-support-grid{ display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.claims-support h2,.claims-questions h2{ font-size:clamp(42px,5vw,70px); letter-spacing:-.05em; line-height:1; }
.claims-support h2 em,.claims-questions h2 em{ color:var(--red); font-style:normal; }
.claims-support p{ font-size:18px; max-width:42ch; }
.claims-support .section-number,.claims-questions .section-number{ margin-bottom:28px; }
.claims-contact-links a{ display:block; position:relative; padding:26px 28px 26px 0; border-top:1px solid #d9bdb9; }
.claims-contact-links a:last-child{ border-bottom:1px solid #d9bdb9; }
.claims-contact-links span{ display:block; color:#59514f; font-size:13px; margin-bottom:10px; }
.claims-contact-links strong{ font-size:clamp(16px,1.7vw,23px); overflow-wrap:anywhere; }
.claims-contact-links b{ position:absolute; right:0; top:38px; color:var(--red); }
.claims-contact-links a:hover strong{ color:var(--red); }
.claims-faq{ border-top:1px solid #d6cec5; padding:24px 0; }
.claims-faq:last-child{ border-bottom:1px solid #d6cec5; }
.claims-faq summary{ display:flex; justify-content:space-between; align-items:center; gap:24px; list-style:none; cursor:pointer; font-family:var(--font-display); font-weight:800; font-size:18px; }
.claims-faq summary::-webkit-details-marker{ display:none; }
.claims-faq summary span{ font-size:26px; color:var(--red); transition:transform .4s; }
.claims-faq[open] summary span{ transform:rotate(45deg); }
.claims-faq p{ margin:20px 0 0; line-height:1.7; }
.claims-faq summary:focus-visible,.claims-contact-links a:focus-visible{ outline:2px solid var(--red); outline-offset:6px; }
.claims-cta-link{ display:block; color:#fff; margin-top:24px; font-weight:700; }
@media(max-width:900px){ .claims-support-grid{ grid-template-columns:1fr; gap:40px; }.claims-support,.claims-questions{ padding:80px 0; } }

/* Legal pages */
.legal-hero { padding:220px 0 80px; border-bottom:1px solid rgba(3,3,3,.16); }
.legal-hero h1 { font-size:clamp(64px,7.8vw,112px); line-height:.98; letter-spacing:-.06em; margin:28px 0; }
.legal-hero h1 em { color:var(--red); font-style:normal; }
.legal-intro { max-width:52ch; font-size:18px; line-height:1.75; }
.legal-updated { margin:24px 0 0; font-size:14px; }
.legal-layout { display:grid; grid-template-columns:260px minmax(0,1fr); gap:72px; padding-top:72px; padding-bottom:100px; align-items:start; }
.legal-toc { position:sticky; top:120px; padding:24px; border:1px solid #e6dbd8; border-top:4px solid var(--red); border-radius:22px; background:#fff; }
.legal-toc h2 { font-size:17px; margin-bottom:20px; }
.legal-toc ol { list-style:none; margin:0; padding:0; }
.legal-toc li + li { margin-top:12px; }
.legal-toc a { font-size:14px; line-height:1.5; }
.legal-toc a:hover,.legal-content a:hover { color:var(--color-primary); }
.legal-other { display:block; border-top:1px solid var(--color-line); margin-top:24px; padding-top:20px; font-weight:600; }
.legal-content { max-width:780px; }
.legal-content section { scroll-margin-top:120px; margin-bottom:36px; padding-bottom:24px; border-bottom:1px solid var(--color-line); }
.legal-content h2 { font-size:clamp(22px,3vw,28px); line-height:1.3; margin-bottom:16px; }
.legal-content p { line-height:1.85; }
.legal-content a { text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.legal-skip { position:fixed; top:12px; left:12px; transform:translateY(-200%); background:white; padding:12px 20px; z-index:1000; border:2px solid var(--color-primary); }
.legal-skip:focus { transform:none; }
.legal-page a:focus-visible { outline:2px solid var(--color-primary); outline-offset:4px; }
@media(max-width:900px) { .legal-layout { grid-template-columns:1fr; gap:36px; } .legal-toc { position:static; } }
@media(max-width:600px) { .legal-page .legal-hero { padding:140px 0 55px; } .legal-layout { padding-top:40px; padding-bottom:60px; } .legal-page .breadcrumb { flex-wrap:wrap; } }

/* Every page uses the homepage header and its overlapping wordmark. */
body .header-wrap { top:0; }
body .header-wrap .site-header { padding:18px 0; background:#fff; border-bottom:1px solid rgba(3,3,3,.08); backdrop-filter:blur(14px) saturate(130%); }
body .header-wrap .site-header .container { max-width:1440px; position:relative; justify-content:flex-end; }
body .header-wrap .brand { position:absolute; left:32px; top:1px; z-index:5; transition:top .4s var(--ease); }
body .header-wrap .logo-img { height:clamp(120px,10vw,176px); }
body .header-wrap .nav { gap:28px; }
body .header-wrap .nav-links { gap:clamp(10px,1.25vw,20px); }
body .header-wrap .nav-link { color:var(--color-ink); white-space:nowrap; font-size:13px; }
body .header-wrap.is-scrolled .site-header { padding:10px 0; background:rgba(255,255,255,.94); }
body .header-wrap.is-scrolled .brand { top:6px; }
body .header-wrap.is-scrolled .logo-img { height:64px; }
.nav-legal { position:relative; }
.nav-dropdown summary { cursor:pointer; list-style:none; }
.nav-dropdown summary::-webkit-details-marker { display:none; }
.nav-dropdown-links { position:absolute; right:0; top:calc(100% + 18px); min-width:230px; padding:12px; background:#fff; border:1px solid var(--color-line); border-top:3px solid var(--color-primary); border-radius:0 0 12px 12px; box-shadow:var(--shadow-soft); }
.nav-dropdown-links a { display:block; padding:12px; font-family:var(--font-display); font-size:14px; font-weight:600; }
.nav-dropdown-links a:hover { background:#f7f1e8; color:var(--color-primary); }
.nav-dropdown summary:focus-visible,.nav-dropdown-links a:focus-visible { outline:2px solid var(--color-primary); outline-offset:4px; }
@media(min-width:1201px) and (max-width:1400px) {
  body .header-wrap .nav { gap:18px; }
  body .header-wrap .nav-link { font-size:12px; }
  body .header-wrap .nav-actions .btn { padding:12px 16px; font-size:12px; }
}
@media(max-width:1200px) {
  body .header-wrap .brand { left:24px; }
  body .header-wrap .logo-img { height:84px; }
  body .header-wrap .nav-links { position:fixed; inset:0; height:100dvh; background:#171717; flex-direction:column; justify-content:flex-start; align-items:stretch; gap:12px; padding:100px 32px 32px; overflow-y:auto; transform:translateX(100%); transition:transform .5s var(--ease); z-index:90; }
  body.nav-open .header-wrap .nav-links { transform:translateX(0); }
  body .header-wrap .nav-links .nav-link { display:block; color:#fff; font-size:22px; padding:6px 0; }
  body .header-wrap .nav-toggle { display:flex; z-index:95; position:relative; }
  body.nav-open .header-wrap .nav-toggle { color:#fff; border-color:rgba(255,255,255,.5); }
  body.nav-open { overflow:hidden; }
  .nav-dropdown-links { position:static; background:transparent; border:0; border-left:2px solid var(--color-primary); border-radius:0; box-shadow:none; padding:0 0 0 16px; margin-top:16px; }
  body .header-wrap .nav-dropdown-links a { color:#fff; font-size:18px; padding:8px 0; }
  .nav-dropdown-links a:hover { background:transparent; }
}
@media(max-width:700px) {
  body .header-wrap .site-header { padding:10px 0; }
  body .header-wrap .brand { left:20px; top:8px; }
  body .header-wrap .logo-img { height:60px; }
  body .header-wrap .nav-actions .btn { display:none; }
  body .header-wrap .nav { gap:0; }
  body .header-wrap .nav-links { padding:84px 24px 28px; gap:8px; }
  body .header-wrap .nav-links .nav-link { font-size:20px; }
}

/* Legal illustrations follow the site's red, blush, and charcoal icon style. */
.legal-hero-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr); align-items:center; gap:60px; }
.legal-hero-copy,.legal-hero-art { min-width:0; }
.legal-hero-art .legal-illustration { width:100%; max-width:460px; margin:0 auto; }
@media(max-width:900px) {
  .legal-hero-grid { grid-template-columns:1fr; gap:40px; }
  .legal-hero-art .legal-illustration { max-width:380px; }
}
@media(max-width:600px) {
  .legal-hero-grid { gap:28px; }
  .legal-hero-art .legal-illustration { max-width:300px; }
}
