/* ============================================================
   STRAUM PARTNERS — Landing
   Palette: deep navy + warm cream + copper accent
   Type: Nanum Gothic (나눔고딕) — Light 300 / Regular 400 / Bold 700 / ExtraBold 800
   ============================================================ */

@font-face{
  font-family:"Nanum Gothic";
  src:url("fonts/NanumGothicLight.otf") format("opentype");
  font-weight:300;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Nanum Gothic";
  src:url("fonts/NanumGothic.otf") format("opentype");
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Nanum Gothic";
  src:url("fonts/NanumGothicBold.otf") format("opentype");
  font-weight:700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Nanum Gothic";
  src:url("fonts/NanumGothicExtraBold.otf") format("opentype");
  font-weight:800;font-style:normal;font-display:swap;
}

:root{
  --navy:#22314D;
  --navy-2:#2A3C5C;
  --navy-soft:#354D74;
  --ink:#22314D;          /* headings on light */
  --body:#667085;         /* body text on light */
  --body-soft:#8A93A3;
  --accent:#B48A5A;       /* warm gold */
  --accent-2:#C7A47B;     /* light gold */
  --accent-deep:#946A3A;
  --line:#E4DCCF;         /* hairline on light */
  --line-navy:rgba(255,255,255,.14);
  --light:#FAF7F1;        /* lightest warm white */
  --paper:#FBF9F5;        /* card surface */
  --on-navy:#EDEAE2;      /* body text on navy */
  --on-navy-dim:#A9B2C4;

  --container:1180px;
  --pad:clamp(20px,5vw,56px);
  --radius:14px;
  --radius-lg:22px;

  --ff:"Nanum Gothic",-apple-system,BlinkMacSystemFont,system-ui,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  /* one family, no serif: decorative marks use Nanum Gothic itself */
  --serif:"Nanum Gothic",-apple-system,system-ui,"Apple SD Gothic Neo",sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

body{
  margin:0;
  font-family:var(--ff);
  color:var(--ink);
  background:var(--light);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

/* fixed scroll-morphing background layer */
#bg-morph{
  position:fixed;
  inset:0;
  z-index:-2;
  background:#F7F4EE;
  transition:background-color .14s ease-out;
  will-change:background-color;
}
/* subtle top sheen only — keep section colours at full strength */
#bg-morph::after{
  content:"";
  position:absolute;inset:0;
  background:radial-gradient(120% 70% at 50% 0%, rgba(255,255,255,.16), transparent 55%);
  pointer-events:none;
}

img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}

.wrap{
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--pad);
}

/* ---------- shared type ---------- */
.eyebrow{
  font-size:13px;
  letter-spacing:.28em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--accent);
  margin:0 0 22px;
  display:flex;align-items:center;gap:12px;
}
.eyebrow::before{
  content:"";width:30px;height:1.5px;background:var(--accent);display:inline-block;
}
.eyebrow.center{justify-content:center;}

h1,h2,h3,h4{margin:0;color:var(--ink);line-height:1.2;letter-spacing:-.005em;font-weight:800;word-break:keep-all;}
.lead{font-size:clamp(17px,1.7vw,19px);line-height:1.85;color:var(--body);margin:0;}
.muted{color:var(--body-soft);}
/* Korean: never break mid-word + comfortable leading for running text */
p,li,.worry p,.c-desc,.approach-copy,.mf-neg,.mf-aff,.cta-copy,.p-bio{word-break:keep-all;text-wrap:pretty;}

.section{position:relative;padding-block:clamp(94px,11vw,164px);}
.section-head{text-align:center;margin-bottom:clamp(40px,5vw,64px);}
.section-head h2{font-size:clamp(28px,3.6vw,46px);}

/* reveal-on-scroll */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.08s;}
.reveal.d2{transition-delay:.16s;}
.reveal.d3{transition-delay:.24s;}
.reveal.d4{transition-delay:.32s;}
.reveal.d5{transition-delay:.40s;}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  transition:background-color .4s ease,box-shadow .4s ease,padding .4s ease;
  padding-block:20px;
}
.site-header.scrolled{
  background:rgba(250,247,241,.82);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  box-shadow:0 1px 0 var(--line),0 14px 34px -28px rgba(21,37,62,.5);
  padding-block:13px;
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.brand{display:flex;flex-direction:column;line-height:1;user-select:none;}
.brand .b-logo{height:46px;width:auto;display:block;}
.brand .b-name{font-weight:800;font-size:22px;letter-spacing:.14em;color:var(--ink);}
.brand .b-sub{font-size:10px;letter-spacing:.42em;color:var(--accent);font-weight:600;margin-top:7px;padding-left:2px;}
.nav-links{display:flex;align-items:center;gap:30px;}
.nav-links a{font-size:15px;font-weight:400;color:var(--ink);opacity:.82;transition:opacity .2s,color .2s;position:relative;white-space:nowrap;}
.nav-links a:hover{opacity:1;color:var(--accent);}
.nav-links a.nav-cta{
  display:inline-flex;align-items:center;gap:8px;white-space:nowrap;opacity:1;
  background:var(--navy);color:var(--on-navy);
  padding:12px 22px;border-radius:10px;font-weight:700;font-size:14px;
  border:none;transition:transform .2s,background-color .2s,box-shadow .2s;
  box-shadow:0 10px 24px -14px rgba(21,37,62,.7);
}
.nav-cta:hover{background:var(--navy-2);transform:translateY(-2px);}
.nav-toggle{display:none;background:none;border:none;padding:8px;color:var(--ink);}
.nav-toggle svg{width:26px;height:26px;}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;padding-top:clamp(140px,17vw,196px);padding-bottom:clamp(72px,8vw,108px);}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(40px,6vw,88px);align-items:center;}
.hero h1{font-size:clamp(38px,5.2vw,66px);letter-spacing:-.022em;line-height:1.22;font-weight:800;color:var(--ink);}
.hero h1 .accent{color:var(--accent);}
.hero .hero-tagline{margin:30px 0 0;font-size:clamp(17px,1.9vw,22px);font-weight:400;color:var(--body);letter-spacing:.004em;line-height:1.6;}
.hero .hero-sub{margin:30px 0 0;padding-top:26px;border-top:1px solid var(--line);font-size:clamp(13.5px,1.4vw,15px);font-weight:500;color:var(--body-soft);letter-spacing:.045em;line-height:1.75;max-width:460px;}
.hero .hero-sub b{color:var(--ink);font-weight:700;}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:26px;margin-top:48px;}
.btn-primary{
  display:inline-flex;align-items:center;gap:14px;white-space:nowrap;
  background:var(--navy);color:var(--on-navy);
  padding:18px 30px;border-radius:12px;font-weight:700;font-size:16px;border:none;
  transition:transform .22s,background-color .22s,box-shadow .22s;
  box-shadow:0 18px 38px -18px rgba(21,37,62,.8);
}
.btn-primary .arrow{transition:transform .25s;}
.btn-primary:hover{background:var(--navy-2);transform:translateY(-2px);}
.btn-primary:hover .arrow{transform:translateX(6px);}
.hero-phone{display:flex;align-items:center;gap:11px;font-weight:400;color:var(--body);font-size:15px;}
.hero-phone .ph-ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(177,123,69,.14);color:var(--accent);}
.hero-phone .ph-ic svg{width:16px;height:16px;}
.hero-phone .ph-label{color:var(--body-soft);}
.hero-phone b{color:var(--ink);font-size:16px;letter-spacing:.02em;}

.hero-media{position:relative;}
.hero-media image-slot{width:100%;height:clamp(360px,46vw,540px);box-shadow:0 30px 70px -44px rgba(34,49,77,.42);}

/* ============================================================
   PROBLEM — reframe (문제 제기 → 공감 → 반전)
   ============================================================ */
.problem .eyebrow{margin-bottom:clamp(36px,4.5vw,58px);}
.problem-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,92px);align-items:start;}

/* left — big questions */
.problem-ask .ask{font-size:clamp(28px,3.5vw,46px);line-height:1.22;letter-spacing:-.02em;color:var(--ink);}
.problem-ask .ask .q{color:var(--accent);}
.problem-ask .ask2{margin-top:clamp(20px,2.4vw,32px);}

/* right — symptom checklist inside a soft paper panel */
.problem-cards{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:clamp(26px,3vw,40px) clamp(24px,3vw,38px);
  box-shadow:0 30px 64px -44px rgba(34,49,77,.30);
}
.problem-cards .pc-label{font-size:14px;font-weight:700;color:var(--accent-deep);margin:0 0 8px;letter-spacing:.01em;}
.symptom-list{list-style:none;margin:0;padding:0;}
.symptom-list li{display:flex;align-items:center;gap:16px;padding:22px 0;border-top:1px solid var(--line);}
.symptom-list li:first-child{border-top:none;}
.symptom-list li:last-child{padding-bottom:0;}
.symptom-list .sx-box{width:9px;height:9px;flex:none;border-radius:50%;
  border:1.5px solid var(--accent);background:transparent;}
.symptom-list p{margin:0;font-size:clamp(16px,1.7vw,19px);line-height:1.5;color:var(--body);font-weight:400;}
.symptom-list p b{color:var(--ink);font-weight:700;}

/* bottom — the turn (반전) */
.problem-turn{margin-top:clamp(50px,6vw,88px);text-align:center;}
.problem-turn .turn-rule{display:inline-block;width:46px;height:2px;background:var(--accent);margin-bottom:clamp(22px,2.6vw,30px);}
.problem-turn .turn-msg{margin:0;font-size:clamp(24px,3vw,40px);font-weight:800;line-height:1.34;color:var(--ink);letter-spacing:-.01em;}
.problem-turn .turn-msg em{font-style:normal;color:var(--accent);}

/* ============================================================
   WORRIES checklist
   ============================================================ */
.worries-sub{text-align:center;margin:-8px 0 clamp(46px,5.5vw,70px);font-size:clamp(15px,1.6vw,17px);color:var(--body);font-weight:400;line-height:1.65;}
.worries-list{display:flex;flex-direction:column;gap:clamp(14px,1.7vw,20px);max-width:760px;margin-inline:auto;}
.worry{
  display:flex;align-items:center;gap:26px;width:100%;
  background:#F4EEE2;border:1px solid var(--line);border-radius:16px;
  padding:24px 32px;text-align:left;color:var(--ink);position:relative;overflow:hidden;
  box-shadow:0 14px 34px -26px rgba(34,49,77,.26);
  transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s,border-color .3s;
}
.worry::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);
  transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.2,.7,.2,1);}
.worry:hover{transform:translateY(-3px);box-shadow:0 26px 48px -30px rgba(34,49,77,.30);border-color:rgba(180,138,90,.42);}
.worry:hover::before{transform:scaleX(1);}
.worry .w-ic{
  width:62px;height:62px;flex:none;border-radius:15px;display:grid;place-items:center;
  background:rgba(180,138,90,.12);color:var(--accent);
}
.worry .w-ic svg{width:33px;height:33px;}
.worry p{margin:0;flex:1;font-size:clamp(16px,1.7vw,19px);line-height:1.45;font-weight:700;color:var(--ink);}

/* ============================================================
   APPROACH (navy panel)
   ============================================================ */
.panel-navy{
  background:linear-gradient(155deg,var(--navy) 0%,var(--navy-2) 100%);
  color:var(--on-navy);border-radius:var(--radius-lg);
  padding:clamp(36px,5vw,64px);position:relative;overflow:hidden;
  box-shadow:0 50px 90px -50px rgba(21,37,62,.8);
}
/* APPROACH — now a full-bleed dark chapter; strip the floating-panel chrome */
.approach .panel-navy{
  background:none;box-shadow:none;border-radius:0;padding:0;overflow:visible;
}
.panel-navy .eyebrow{color:var(--accent-2);}
.panel-navy .eyebrow::before{background:var(--accent-2);}
.panel-navy h2{color:#fff;}
.approach-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,5vw,64px);align-items:center;}
.approach h2{font-size:clamp(28px,3.4vw,44px);}
.approach-copy{margin:26px 0 0;font-size:clamp(16px,1.7vw,18px);line-height:1.95;color:var(--on-navy-dim);}
.approach-copy b{color:#fff;font-weight:700;}
.approach-media{position:relative;}
.approach-media image-slot{width:100%;height:clamp(260px,30vw,360px);}
.approach-steps{margin-top:clamp(34px,4vw,46px);display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
  border-top:1px solid var(--line-navy);padding-top:clamp(30px,4vw,42px);}
.step{display:flex;gap:14px;align-items:flex-start;}
.step .s-ic{width:42px;height:42px;flex:none;border-radius:11px;display:grid;place-items:center;
  background:rgba(201,154,102,.16);color:var(--accent-2);}
.step .s-ic svg{width:21px;height:21px;}
.step .s-k{font-weight:800;font-size:17px;color:#fff;margin:0 0 6px;}
.step .s-v{font-size:13.5px;line-height:1.55;color:var(--on-navy-dim);margin:0;}

/* ============================================================
   SERVICES cards
   ============================================================ */
.svc-grid{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(16px,1.8vw,26px);}
/* connecting rail behind the icons — shows only in the gaps, linking the cards into one structure */
.svc-grid::before{content:"";position:absolute;left:9%;right:9%;top:clamp(60px,5vw,69px);height:1px;z-index:0;
  background:linear-gradient(90deg,transparent,rgba(180,138,90,.42) 14%,rgba(180,138,90,.42) 86%,transparent);}
.svc{
  background:var(--paper);border:1px solid var(--line);border-radius:18px;
  padding:clamp(30px,2.6vw,40px) clamp(22px,1.8vw,28px) clamp(28px,2.4vw,36px);
  position:relative;z-index:1;overflow:hidden;
  box-shadow:0 14px 34px -28px rgba(34,49,77,.20);
  transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s,border-color .3s;
}
/* hover: thin gold point line across the top */
.svc::before{content:"";position:absolute;left:0;right:0;top:0;height:2.5px;background:var(--accent);
  transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1);}
.svc:hover{transform:translateY(-4px);box-shadow:0 30px 56px -32px rgba(34,49,77,.30);border-color:rgba(180,138,90,.32);}
.svc:hover::before{transform:scaleX(1);}
.svc .v-ic{width:64px;height:64px;margin-bottom:24px;border-radius:16px;display:grid;place-items:center;
  background:linear-gradient(150deg,rgba(34,49,77,.07),rgba(180,138,90,.13));color:var(--navy);transition:color .3s;}
.svc:hover .v-ic{color:var(--accent);}
.svc .v-ic svg{width:32px;height:32px;}
.svc h3{font-size:clamp(18px,1.3vw,20px);margin-bottom:11px;}
.svc p{font-size:clamp(14px,1.05vw,15px);line-height:1.65;color:var(--body);margin:0;}

/* connecting statement below the grid */
.svc-connect{max-width:720px;margin:clamp(44px,5.5vw,72px) auto 0;text-align:center;}
.svc-connect .sc-rule{display:inline-block;width:46px;height:2px;background:var(--accent);margin-bottom:clamp(20px,2.4vw,28px);}
.svc-connect p{margin:0;font-size:clamp(16px,1.6vw,19px);line-height:1.8;color:var(--body);}
.svc-connect p b{color:var(--ink);font-weight:700;}

/* ============================================================
   CASES (navy panel)
   ============================================================ */
.cases-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px);margin-top:clamp(34px,4vw,52px);align-items:start;}
.case{position:relative;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;
  background:rgba(255,255,255,.045);border:1px solid var(--line-navy);
  transition:transform .4s cubic-bezier(.2,.7,.2,1),border-color .4s,background .4s;}
.case:hover{transform:translateY(-6px);border-color:rgba(199,164,123,.4);background:rgba(255,255,255,.06);}
.case image-slot{display:block;width:100%;height:clamp(122px,11vw,150px);}
.case .c-body{padding:22px 22px 26px;display:flex;flex-direction:column;}
.case .c-num{font-size:12px;letter-spacing:.22em;font-weight:700;color:var(--accent-2);text-transform:uppercase;}
.case .c-title{font-size:clamp(17px,1.3vw,19px);font-weight:800;color:#fff;margin:10px 0 20px;line-height:1.4;}
/* 문제 → 접근 → 결과 flow with a connecting rail */
.c-flow{position:relative;display:flex;flex-direction:column;gap:16px;}
.c-flow::before{content:"";position:absolute;left:3.5px;top:8px;bottom:8px;width:1px;background:rgba(199,164,123,.32);}
.c-step{position:relative;padding-left:22px;}
.c-step::before{content:"";position:absolute;left:0;top:5px;width:8px;height:8px;border-radius:50%;
  background:var(--navy);border:1.6px solid var(--accent-2);}
.c-step.is-result::before{background:var(--accent);border-color:var(--accent);}
.cs-label{display:block;font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--accent-2);margin-bottom:5px;}
.c-step.is-result .cs-label{color:var(--accent);}
.c-step p{margin:0;font-size:clamp(13px,1vw,14px);line-height:1.6;color:var(--on-navy-dim);}
.c-step.is-result p{color:#fff;font-weight:600;}
.cases-note{margin-top:clamp(26px,3vw,38px);font-size:13px;color:var(--on-navy-dim);text-align:center;}

/* ============================================================
   PARTNERS (who we work with)
   ============================================================ */
.partners-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(44px,7vw,110px);align-items:start;}
.partners-head{position:sticky;top:120px;}
.partners h2{font-size:clamp(28px,3.4vw,44px);line-height:1.25;}
.partners h2 b{color:var(--accent);}
.partners-lead{margin-top:clamp(22px,2.6vw,32px);font-size:clamp(15px,1.5vw,17px);line-height:1.75;color:var(--body);font-weight:400;}
.partner-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.partner-item{
  position:relative;display:flex;gap:clamp(18px,1.8vw,26px);align-items:flex-start;
  padding:clamp(24px,2.6vw,32px) 6px clamp(24px,2.6vw,32px) 26px;
  border-bottom:1px solid var(--line);transition:padding-left .4s cubic-bezier(.2,.7,.2,1);
}
.partner-item:first-child{border-top:1px solid var(--line);}
.partner-item::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:2px;height:16px;background:var(--accent);opacity:.45;
  transition:height .4s cubic-bezier(.2,.7,.2,1),opacity .4s;}
.partner-item:hover{padding-left:36px;}
.partner-item:hover::before{height:calc(100% - 32px);opacity:1;}
.partner-item .pn{font-family:var(--serif);font-size:clamp(15px,1.3vw,17px);color:var(--accent);font-weight:700;
  width:30px;flex:none;padding-top:2px;}
.pi-body{display:flex;flex-direction:column;}
.pi-title{font-size:clamp(16px,1.7vw,19px);font-weight:700;color:var(--ink);line-height:1.45;letter-spacing:-.005em;}
.pi-desc{display:block;max-height:0;opacity:0;overflow:hidden;color:var(--body);
  font-size:clamp(13px,1.05vw,14.5px);line-height:1.6;font-weight:400;
  transition:max-height .45s cubic-bezier(.2,.7,.2,1),opacity .4s,margin-top .45s;}
.partner-item:hover .pi-desc{max-height:64px;opacity:1;margin-top:9px;}
.partners-foot{max-width:760px;margin:clamp(56px,7vw,96px) auto 0;text-align:center;
  font-size:clamp(15px,1.55vw,18px);line-height:1.7;color:var(--body);font-weight:400;
  padding-top:clamp(34px,4vw,48px);border-top:1px solid var(--line);}
.partners-foot b{color:var(--ink);font-weight:700;}

/* ============================================================
   MANIFESTO (why straum)
   ============================================================ */
.manifesto{padding-block:clamp(110px,13vw,180px);}
.manifesto-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(44px,6vw,92px);align-items:center;}
.mf-head{font-size:clamp(30px,3.9vw,52px);line-height:1.22;letter-spacing:-.02em;font-weight:800;color:var(--ink);margin-top:clamp(20px,2.2vw,28px);}
.mf-head em{font-style:normal;color:var(--accent);}
.mf-body{margin-top:clamp(34px,4.2vw,54px);display:flex;flex-direction:column;gap:14px;}
.mf-neg{position:relative;padding-left:26px;font-size:clamp(16px,1.7vw,19px);line-height:1.6;color:var(--body-soft);font-weight:400;margin:0;}
.mf-neg::before{content:"";position:absolute;left:0;top:.72em;width:13px;height:1.5px;background:var(--body-soft);opacity:.6;}
.mf-neg b{color:var(--body);font-weight:600;}
.mf-aff{position:relative;padding-left:26px;margin:18px 0 0;font-size:clamp(19px,2.1vw,25px);line-height:1.5;font-weight:700;color:var(--ink);letter-spacing:-.01em;}
.mf-aff::before{content:"";position:absolute;left:0;top:.08em;bottom:.08em;width:3px;border-radius:2px;background:var(--accent);}
.mf-aff em{font-style:normal;color:var(--accent);}
.mf-media{position:relative;}
.mf-media image-slot{display:block;width:100%;height:clamp(340px,40vw,480px);box-shadow:0 36px 76px -46px rgba(34,49,77,.45);}
.mf-media-cap{display:block;margin-top:18px;font-size:13.5px;letter-spacing:.01em;color:var(--body-soft);text-align:right;}

/* ============================================================
   PROFILE (김준영)
   ============================================================ */
.profile-card{
  background:linear-gradient(155deg,var(--navy) 0%,var(--navy-2) 100%);
  border-radius:var(--radius-lg);padding:0;overflow:hidden;color:var(--on-navy);
  display:grid;grid-template-columns:.72fr 1fr;
  box-shadow:0 50px 90px -50px rgba(21,37,62,.8);
}
.profile-photo{position:relative;min-height:380px;}
.profile-photo image-slot{position:absolute;inset:0;width:100%;height:100%;}
.profile-info{padding:clamp(36px,4.5vw,60px);display:flex;flex-direction:column;justify-content:center;}
.profile-info .eyebrow{color:var(--accent-2);}
.profile-info .eyebrow::before{background:var(--accent-2);}
.profile-info .p-name{font-size:clamp(30px,3.4vw,42px);font-weight:800;color:#fff;letter-spacing:.04em;}
.profile-info .p-role{font-size:15px;font-weight:700;color:var(--accent-2);margin-top:10px;letter-spacing:.04em;}
.profile-info .p-bio{margin-top:26px;font-size:clamp(16px,1.7vw,18px);line-height:1.95;color:var(--on-navy-dim);}
.profile-info .p-bio b{color:#fff;font-weight:700;}

/* ============================================================
   FINAL CTA
   ============================================================ */
.cta-final{text-align:center;}
.cta-final .eyebrow{justify-content:center;}
.cta-final h2{font-size:clamp(30px,3.8vw,50px);}
.cta-final .cta-copy{max-width:620px;margin:26px auto 0;font-size:clamp(17px,1.8vw,20px);line-height:1.85;color:var(--body);}
.cta-final .cta-copy b{color:var(--ink);font-weight:700;}
.cta-channels{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:46px;}
.channel{
  display:flex;align-items:center;gap:14px;background:var(--paper);border:1px solid var(--line);
  border-radius:14px;padding:18px 26px;text-align:left;min-width:240px;
  transition:transform .25s,box-shadow .25s,border-color .25s;
}
.channel:hover{transform:translateY(-4px);box-shadow:0 30px 50px -32px rgba(21,37,62,.45);border-color:var(--accent);}
.channel .ch-ic{width:46px;height:46px;flex:none;border-radius:12px;display:grid;place-items:center;
  background:rgba(177,123,69,.12);color:var(--accent);}
.channel .ch-ic svg{width:22px;height:22px;}
.channel .ch-k{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--body-soft);font-weight:700;}
.channel .ch-v{display:block;white-space:nowrap;font-size:16px;font-weight:700;color:var(--ink);margin-top:4px;letter-spacing:.01em;}
.cta-btn-row{margin-top:46px;display:flex;justify-content:center;}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--navy);color:var(--on-navy-dim);padding-block:clamp(48px,6vw,68px);position:relative;z-index:1;}
.footer-grid{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:32px;}
.footer-brand .b-logo{height:50px;width:auto;display:block;}
.footer-brand .b-name{font-weight:800;font-size:24px;letter-spacing:.14em;color:#fff;}
.footer-brand .b-sub{font-size:10px;letter-spacing:.42em;color:var(--accent-2);font-weight:600;margin-top:6px;}
.footer-info{font-size:13.5px;line-height:1.95;text-align:right;}
.footer-info .fi-row b{color:var(--on-navy);font-weight:600;}
.footer-copy{margin-top:34px;padding-top:24px;border-top:1px solid var(--line-navy);
  font-size:12.5px;color:var(--on-navy-dim);display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;}
.to-top{width:42px;height:42px;border-radius:50%;border:1px solid var(--line-navy);background:transparent;
  color:var(--on-navy);display:grid;place-items:center;transition:.25s;}
.to-top:hover{background:var(--accent);border-color:var(--accent);color:#fff;}
.to-top svg{width:18px;height:18px;}

/* ============================================================
   CHAPTER RHYTHM — dark sections + chapter openings
   ============================================================ */
/* Problem opens a new chapter: lower tone + extra breathing room above */
.problem{padding-top:clamp(118px,14vw,206px);}

/* Deep-navy chapter sections (Approach, Final CTA) */
[data-tone="dark"]{color:var(--on-navy);}
[data-tone="dark"] h1,[data-tone="dark"] h2,[data-tone="dark"] h3{color:#fff;}
[data-tone="dark"] .eyebrow{color:var(--accent-2);}
[data-tone="dark"] .eyebrow::before{background:var(--accent-2);}
[data-tone="dark"] .cta-copy{color:var(--on-navy-dim);}
[data-tone="dark"] .cta-copy b{color:#fff;}
[data-tone="dark"] .btn-primary{
  background:#F7F4EE;color:var(--navy);
  box-shadow:0 22px 44px -22px rgba(0,0,0,.55);
}
[data-tone="dark"] .btn-primary:hover{background:#fff;}
[data-tone="dark"] .channel{background:rgba(255,255,255,.045);border-color:var(--line-navy);}
[data-tone="dark"] .channel:hover{border-color:var(--accent-2);background:rgba(255,255,255,.08);box-shadow:none;}
[data-tone="dark"] .channel .ch-ic{background:rgba(199,164,123,.18);color:var(--accent-2);}
[data-tone="dark"] .channel .ch-k{color:var(--on-navy-dim);}
[data-tone="dark"] .channel .ch-v{color:#fff;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:980px){
  .hero-grid,.problem-grid,.approach-grid,.partners-grid,.manifesto-grid{grid-template-columns:1fr;}
  .profile-card{grid-template-columns:1fr;}
  .profile-photo{min-height:300px;}
  .svc-grid{grid-template-columns:repeat(3,1fr);}
  .svc-grid::before{display:none;}
  .approach-steps{grid-template-columns:repeat(2,1fr);gap:26px;}
  .cases-grid{grid-template-columns:1fr;}
}
@media (max-width:680px){
  .nav-links{
    position:fixed;top:0;right:0;bottom:0;width:min(78vw,320px);z-index:60;
    background:var(--paper);flex-direction:column;align-items:flex-start;justify-content:flex-start;
    padding:96px 32px 32px;gap:8px;transform:translateX(100%);transition:transform .35s cubic-bezier(.2,.7,.2,1);
    box-shadow:-30px 0 60px -30px rgba(21,37,62,.5);
  }
  .nav-links.open{transform:none;}
  .nav-links a{font-size:18px;padding:12px 0;width:100%;border-bottom:1px solid var(--line);opacity:1;}
  .nav-links .nav-cta{margin-top:14px;width:100%;justify-content:center;padding-block:15px;}
  .nav-toggle{display:block;z-index:61;}
  .nav-backdrop{position:fixed;inset:0;background:rgba(21,37,62,.4);z-index:55;opacity:0;pointer-events:none;transition:opacity .3s;}
  .nav-backdrop.show{opacity:1;pointer-events:auto;}
  .worry{gap:16px;padding:16px 18px;}
  .worry .w-ic{width:48px;height:48px;border-radius:13px;}
  .worry .w-ic svg{width:25px;height:25px;}
  .svc-grid{grid-template-columns:repeat(2,1fr);}
  .approach-steps{grid-template-columns:1fr;}
  .hero-actions{gap:18px;}
  .btn-primary{width:100%;justify-content:center;}
  .footer-info{text-align:left;}
  .channel{min-width:100%;}
}
