/* ===================================================
   囲炉端会議 — Professional LP v3
   Typography hierarchy · Grid rhythm · Premium depth
   =================================================== */

:root {
  --charcoal: #161009;
  --dark-wood: #2a1f14;
  --warm-brown: #4a3c2c;
  --ember: #b8653a;
  --ember-light: #c87a4e;
  --ember-glow: rgba(184,101,58,0.10);
  --gold: #d9b96c;
  --gold-pale: rgba(217,185,108,0.08);
  --sand: #c8b498;
  --parchment: #f8f4ee;
  --cream: #eee8de;
  --muted: #8a7a68;
  --text-light: #b0a08a;
  --white-card: #fffcf8;

  --ease-out: cubic-bezier(.23,1,.32,1);
  --ease-smooth: cubic-bezier(.4,0,.2,1);
  --ease-bounce: cubic-bezier(.16,1,.3,1);
}

/* === RESET === */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{font-family:'Yuji Syuku',serif;color:var(--dark-wood);background:var(--parchment);line-height:1.9;overflow-x:hidden;letter-spacing:0.03em}
img{display:block;max-width:100%;height:auto}
a{color:inherit;transition:color .3s var(--ease-smooth)}
::selection{background:var(--ember-glow);color:var(--dark-wood)}

/* --- Typography Scale (major-third 1.25) --- */
h1{font-size:clamp(2.2rem,5.5vw,3.6rem);font-weight:400;letter-spacing:.18em;line-height:1.8}
h2{font-size:clamp(1.6rem,3.5vw,2.4rem);font-weight:400;letter-spacing:.12em;line-height:1.7}
h3{font-size:1.15rem;font-weight:400;letter-spacing:.06em;line-height:1.7}
h4{font-weight:400;letter-spacing:.06em}

.container{max-width:1080px;margin:0 auto;padding:0 32px}
.container-wide{max-width:1280px;margin:0 auto;padding:0 32px}

/* === SCROLL ANIMATION === */
.fade-up{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out)}
.fade-up.visible{opacity:1;transform:none}
.fade-up.d1{transition-delay:.14s}
.fade-up.d2{transition-delay:.28s}
.fade-up.d3{transition-delay:.42s}

/* Slide from sides */
.slide-left{opacity:0;transform:translateX(-40px);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out)}
.slide-right{opacity:0;transform:translateX(40px);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out)}
.slide-left.visible,.slide-right.visible{opacity:1;transform:none}

/* Number count-up glow */
.stat-num.counted,.case-metric .num.counted{
  animation:glowPulse .8s var(--ease-smooth);
}
@keyframes glowPulse{
  0%{text-shadow:0 0 0 transparent}
  50%{text-shadow:0 0 24px rgba(217,185,108,0.3)}
  100%{text-shadow:0 0 0 transparent}
}

/* === NAV === */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(22,16,9,.72);
  backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);
  border-bottom:1px solid rgba(255,255,255,.03);
  transition:all .5s var(--ease-smooth);
}
nav.scrolled{background:rgba(22,16,9,.96);box-shadow:0 1px 40px rgba(0,0,0,.25)}
.nav-inner{max-width:1080px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:72px;padding:0 32px}
.nav-logo{display:flex;align-items:center;gap:10px;color:var(--gold);text-decoration:none}
.nav-logo-text{font-size:1.08rem;letter-spacing:.22em}
.nav-links{display:flex;gap:30px;list-style:none;align-items:center}
.nav-links a{color:var(--sand);text-decoration:none;font-size:.72rem;letter-spacing:.08em;position:relative;transition:color .3s}
.nav-links a::after{content:'';position:absolute;bottom:-6px;left:50%;width:0;height:1px;background:var(--gold);transition:all .4s var(--ease-out);transform:translateX(-50%)}
.nav-links a:hover{color:var(--gold)}
.nav-links a:hover::after{width:100%}
.nav-cta{background:var(--ember)!important;color:#fff!important;padding:10px 24px!important;border-radius:4px;transition:all .4s var(--ease-bounce)!important;letter-spacing:.06em!important}
.nav-cta::after{display:none!important}
.nav-cta:hover{background:var(--ember-light)!important;transform:translateY(-1px);box-shadow:0 6px 20px rgba(184,101,58,.35)}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:6px}
.hamburger span{width:22px;height:1.5px;background:var(--sand);transition:all .3s;display:block}
.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(4.5px,4.5px)}
.hamburger.active span:nth-child(2){opacity:0}
.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(4.5px,-4.5px)}

/* === HERO === */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero-img{position:absolute;inset:0}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,16,9,.30) 0%,rgba(22,16,9,.50) 30%,rgba(22,16,9,.88) 100%)}
.hero-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.particle{position:absolute;background:rgba(255,160,60,.3);border-radius:50%;animation:rise linear infinite;will-change:transform;backface-visibility:hidden}
@keyframes rise{0%{opacity:0;transform:translateY(0) scale(1)}15%{opacity:.45}100%{opacity:0;transform:translateY(-500px) translateX(var(--drift)) scale(0)}}

.hero-content{position:relative;z-index:2;text-align:center;padding:0 32px;max-width:860px}
.hero-content h1{color:#f5e6c8;margin-bottom:16px}
.hero-tagline{font-size:clamp(.72rem,1.5vw,.9rem);color:var(--sand);letter-spacing:.55em;margin-bottom:20px;opacity:.6}
.hero-evidence{
  display:inline-flex;gap:32px;justify-content:center;flex-wrap:wrap;
  margin-bottom:48px;padding:14px 28px;
  border:1px solid rgba(200,180,152,.15);border-radius:4px;
  background:rgba(22,16,9,.25);
}
.hero-evidence .he-item{text-align:center}
.hero-evidence .he-num{font-size:1.2rem;color:var(--gold);letter-spacing:-.01em;display:block}
.hero-evidence .he-label{font-size:.62rem;color:rgba(200,180,152,.6);letter-spacing:.06em}
.hero-sub{font-size:.88rem;color:rgba(200,180,152,.8);max-width:520px;margin:0 auto 52px;line-height:2.4;letter-spacing:.04em}
.hero-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* Buttons */
.btn-primary{
  display:inline-block;background:var(--ember);color:#fff;
  padding:16px 44px;border-radius:4px;text-decoration:none;
  font-size:.86rem;letter-spacing:.1em;
  border:none;cursor:pointer;position:relative;overflow:hidden;
  box-shadow:0 2px 12px rgba(184,101,58,.15);
  transition:all .5s var(--ease-bounce);
}
.btn-primary::after{
  content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);
  transition:left .7s var(--ease-out);
}
.btn-primary:hover{background:var(--ember-light);transform:translateY(-2px);box-shadow:0 10px 36px rgba(184,101,58,.3)}
.btn-primary:hover::after{left:100%}
.btn-ghost{
  display:inline-block;border:1px solid rgba(200,180,152,.2);color:var(--sand);
  padding:15px 36px;border-radius:4px;text-decoration:none;
  font-size:.86rem;letter-spacing:.1em;
  background:transparent;cursor:pointer;
  transition:all .4s var(--ease-smooth);
}
.btn-ghost:hover{border-color:rgba(200,180,152,.45);background:rgba(255,255,255,.05);transform:translateY(-1px)}
.scroll-hint{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);color:rgba(200,180,152,.4);font-size:.54rem;letter-spacing:.35em}
.scroll-hint::after{content:'';display:block;width:1px;height:40px;background:linear-gradient(to bottom,rgba(200,180,152,.35),transparent);margin:10px auto 0;animation:scrollPulse 3s ease-in-out infinite}
@keyframes scrollPulse{0%,100%{opacity:.15}50%{opacity:.7}}

/* === SECTION COMMON === */
.section{padding:96px 0}
.section-compact{padding:72px 0}
.section-header{text-align:center;margin-bottom:56px}
.section-label{font-size:.6rem;letter-spacing:.5em;color:var(--ember);text-transform:uppercase;display:block;margin-bottom:0}
.section-label::after{content:'';display:block;width:28px;height:1px;background:var(--ember);margin:16px auto;opacity:.35}
.section-label-light{color:var(--gold)}
.section-label-light::after{background:var(--gold)}
.section-title{margin-top:0}
.section-title-light{color:#f5e6c8}
.section-desc{font-size:.88rem;color:var(--muted);max-width:500px;margin:20px auto 0;line-height:2.3}

/* === CHALLENGE === */
.challenge{background:var(--charcoal);color:#f5e6c8;position:relative;padding:104px 0}
.challenge-bg{position:absolute;inset:0;opacity:.03;background:url('images/optimized/fire-closeup.jpg') center/cover}
.challenge-content{position:relative;z-index:1}
.challenge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:48px}
.challenge-card{
  background:rgba(255,255,255,.02);
  border:1px solid rgba(255,255,255,.05);border-radius:6px;
  padding:44px 32px;text-align:left;
  transition:all .5s var(--ease-smooth);
  position:relative;
}
.challenge-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(217,185,108,.15),transparent);
}
.challenge-card:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08);transform:translateY(-3px)}
.challenge-card h3{font-size:1rem;margin-bottom:12px;color:var(--gold);letter-spacing:.06em}
.challenge-card p{font-size:.84rem;color:var(--text-light);line-height:2.1}
.challenge-source{text-align:center;font-size:.7rem;color:rgba(176,160,138,.35);margin-top:32px;max-width:600px;margin-left:auto;margin-right:auto;line-height:1.9}
.stats-row{display:flex;justify-content:center;gap:80px;flex-wrap:wrap}
.stat{text-align:center}
.stat-num{font-size:clamp(2.2rem,4vw,3rem);color:var(--gold);line-height:1.1;letter-spacing:-.02em}
.stat-unit{font-size:.85rem;letter-spacing:0}
.stat-label{font-size:.72rem;color:var(--text-light);margin-top:8px;letter-spacing:.02em}

/* === ABOUT === */
.about{background:var(--parchment);padding:104px 0}
.about-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:88px;align-items:center}
.about-img{position:relative;border-radius:4px;overflow:visible}
.about-img img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
.about-accent{position:absolute;top:-14px;left:-14px;width:52px;height:52px;border-top:1.5px solid var(--ember);border-left:1.5px solid var(--ember);pointer-events:none;opacity:.5}
.about-accent-br{position:absolute;bottom:-14px;right:-14px;width:52px;height:52px;border-bottom:1.5px solid var(--ember);border-right:1.5px solid var(--ember);pointer-events:none;opacity:.5}
.about-text .section-label::after{margin:16px 0}
.about-text p{margin-bottom:20px;font-size:.88rem;color:var(--warm-brown);line-height:2.3}
.about-text .lead{font-size:1.08rem;color:var(--dark-wood);line-height:2.3;margin-bottom:24px}

/* === WHY IT WORKS — asymmetric grid === */
.why{background:var(--cream);padding:104px 0}
.why-grid{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:28px;align-items:start}
.why-card{
  background:var(--white-card);border-radius:8px;
  text-align:center;
  box-shadow:0 0 0 1px rgba(0,0,0,.03),0 12px 40px rgba(0,0,0,.03);
  position:relative;overflow:hidden;
  transition:all .6s var(--ease-bounce);
}
.why-card:nth-child(2){transform:translateY(24px)}
.why-card:hover{transform:translateY(-6px);box-shadow:0 0 40px var(--gold-pale),0 20px 56px rgba(0,0,0,.06)}
.why-card:nth-child(2):hover{transform:translateY(18px)}
.why-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--ember),var(--gold));opacity:.6;z-index:2}
.why-img{width:100%;aspect-ratio:16/10;overflow:hidden}
.why-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-smooth)}
.why-card:hover .why-img img{transform:scale(1.05)}
.why-body{padding:36px 28px 40px}
.why-icon{margin-bottom:20px;display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin-left:auto;margin-right:auto;border-radius:50%;background:linear-gradient(135deg,rgba(184,101,58,.06),rgba(217,185,108,.1))}
.why-icon svg{width:24px;height:24px;fill:none;stroke:var(--ember);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.why-card h3{font-size:1.02rem;color:var(--dark-wood);margin-bottom:12px;letter-spacing:.06em}
.why-card p{font-size:.84rem;color:var(--muted);line-height:2.1}

/* === PHOTO STRIP === */
.photo-strip{background:var(--charcoal);padding:0;overflow:hidden}
.photo-strip-inner{display:flex;gap:3px}
.photo-strip-inner img{flex:1;min-width:0;height:280px;object-fit:cover;filter:brightness(.7) saturate(.85);transition:filter .7s var(--ease-smooth)}
.photo-strip-inner img:hover{filter:brightness(1) saturate(1.05)}

/* === PROGRAM — alternating layout === */
.program{background:var(--parchment)}
.program-steps{display:flex;flex-direction:column;gap:28px}
.program-step{
  display:grid;grid-template-columns:220px 1fr;gap:0;
  background:var(--white-card);border-radius:8px;overflow:hidden;
  box-shadow:0 0 0 1px rgba(0,0,0,.03),0 8px 32px rgba(0,0,0,.02);
  transition:all .5s var(--ease-smooth);
  border:1px solid rgba(0,0,0,.02);
}
.program-step:nth-child(even){direction:rtl}
.program-step:nth-child(even)>*{direction:ltr}
.program-step:hover{transform:translateY(-3px);box-shadow:0 0 40px var(--gold-pale),0 16px 48px rgba(0,0,0,.05)}
.step-img{overflow:hidden}
.step-img img{width:100%;height:100%;min-height:200px;object-fit:cover;transition:transform .8s var(--ease-out)}
.program-step:hover .step-img img{transform:scale(1.04)}
.step-body{padding:36px 32px;display:flex;flex-direction:column;justify-content:center}
.step-num{font-size:1.8rem;color:var(--ember);line-height:1;margin-bottom:6px;opacity:.7}
.step-body h3{font-size:1.1rem;color:var(--dark-wood);margin-bottom:4px;letter-spacing:.06em}
.step-time{font-size:.68rem;color:var(--muted);margin-bottom:12px;letter-spacing:.1em}
.step-body p{font-size:.84rem;color:var(--warm-brown);line-height:2.1}
.program-note{text-align:center;margin-top:64px;font-size:.86rem;color:var(--muted);line-height:2.3}
.program-note strong{color:var(--dark-wood)}

/* === CASE STUDY === */
.casestudy{background:var(--cream);padding:104px 0}
.case-hero{
  display:grid;grid-template-columns:1.1fr 1fr;gap:0;
  border-radius:8px;overflow:hidden;
  background:var(--white-card);
  box-shadow:0 0 0 1px rgba(0,0,0,.03),0 16px 56px rgba(0,0,0,.04);
}
.case-hero-img img{width:100%;height:100%;object-fit:cover;min-height:440px}
.case-hero-body{padding:64px 52px;display:flex;flex-direction:column;justify-content:center}
.case-tag{font-size:.6rem;color:var(--ember);letter-spacing:.22em;margin-bottom:16px;text-transform:uppercase}
.case-hero-body h3{font-size:1.3rem;color:var(--dark-wood);margin-bottom:24px;line-height:1.8}
.case-hero-body p{font-size:.86rem;color:var(--warm-brown);line-height:2.2;margin-bottom:10px}
.case-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px;padding-top:28px;border-top:1px solid var(--cream)}
.case-metric{text-align:center}
.case-metric .num{font-size:1.6rem;color:var(--ember);letter-spacing:-.01em}
.case-metric .label{font-size:.68rem;color:var(--muted);margin-top:4px}
.case-note{text-align:center;margin-top:24px;font-size:.7rem;color:var(--muted);opacity:.6}
.case-others{margin-top:64px}
.case-others-title{text-align:center;font-size:.78rem;letter-spacing:.4em;color:var(--ember);margin-bottom:32px;text-transform:uppercase}
.case-others-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.case-other-card{background:var(--white-card);border-radius:6px;overflow:hidden;box-shadow:0 0 0 1px rgba(0,0,0,.03),0 6px 20px rgba(0,0,0,.025);transition:all .4s var(--ease-smooth);display:flex;flex-direction:column;text-decoration:none;color:inherit}
.case-other-card:hover{transform:translateY(-3px);box-shadow:0 0 28px var(--gold-pale),0 10px 28px rgba(0,0,0,.04)}
.co-img{width:100%;height:140px;overflow:hidden;position:relative}
.co-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(42,31,20,0) 55%,rgba(42,31,20,.25) 100%)}
.co-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-smooth)}
.case-other-card:hover .co-img img{transform:scale(1.06)}
.co-body{padding:20px 20px 22px;border-top:2px solid var(--gold-pale);transition:border-color .4s var(--ease-smooth)}
.case-other-card:hover .co-body{border-top-color:var(--ember)}
.co-date{font-size:.66rem;letter-spacing:.18em;color:var(--ember);margin-bottom:8px}
.co-name{font-size:.92rem;color:var(--dark-wood);margin-bottom:8px;letter-spacing:.04em;line-height:1.6}
.co-desc{font-size:.74rem;color:var(--muted);line-height:1.8}
@media(max-width:960px){.case-others-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.case-others-grid{grid-template-columns:1fr}}

/* === VOICES — 2+1 layout === */
.voices{background:var(--parchment)}
.voices-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.voice-card{
  background:var(--white-card);border-radius:8px;
  padding:44px 36px 36px;position:relative;
  border:1px solid rgba(0,0,0,.03);margin:0;
  box-shadow:0 0 0 1px rgba(0,0,0,.02),0 8px 28px rgba(0,0,0,.02);
  transition:all .5s var(--ease-smooth);
}
.voice-card:last-child{grid-column:1/-1;max-width:560px;margin:0 auto}
.voice-card:hover{transform:translateY(-3px);box-shadow:0 0 32px var(--gold-pale),0 14px 40px rgba(0,0,0,.04)}
.voice-card::before{content:'\201C';position:absolute;top:20px;left:30px;font-size:3.2rem;color:var(--ember);opacity:.12;line-height:1}
.voice-card p{font-size:.86rem;color:var(--warm-brown);line-height:2.3;margin-bottom:20px;font-style:normal;padding-top:12px}
.voice-card cite{font-style:normal;font-size:.72rem;color:var(--muted);letter-spacing:.06em}

/* === GALLERY === */
.gallery{background:var(--dark-wood);padding:72px 0}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:4px}
.gallery-item{overflow:hidden;border-radius:3px;position:relative}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out),filter .5s;filter:brightness(.72) saturate(.85)}
.gallery-item:hover img{transform:scale(1.05);filter:brightness(1) saturate(1)}
.gallery-item.span2{grid-column:span 2}

/* === MEMBERS === */
.members{background:var(--charcoal);color:#f5e6c8}
.member-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}
.member-card{
  display:grid;grid-template-columns:150px 1fr;gap:28px;align-items:center;
  background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.04);
  border-radius:8px;padding:36px;
  transition:all .5s var(--ease-smooth);
}
.member-card:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08)}
.member-photo{width:150px;height:190px;border-radius:6px;overflow:hidden}
.member-photo img{width:100%;height:100%;object-fit:cover;object-position:top}
.member-info h3{font-size:1.08rem;color:#f5e6c8;margin-bottom:6px}
.member-role{font-size:.72rem;color:var(--gold);margin-bottom:16px;letter-spacing:.04em;line-height:1.7}
.member-info p{font-size:.82rem;color:var(--text-light);line-height:2.1}

/* === TRIAL === */
.trial{background:var(--parchment);position:relative}
.trial-inner{max-width:860px;margin:0 auto;text-align:center}
.trial-card{
  background:var(--white-card);border-radius:10px;padding:72px 60px;
  box-shadow:0 0 0 1px rgba(0,0,0,.03),0 16px 56px rgba(0,0,0,.04);
  position:relative;overflow:hidden;
}
.trial-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--ember),var(--gold));opacity:.6}
.trial-card h3{font-size:1.6rem;margin-bottom:10px;letter-spacing:.12em}
.trial-card .trial-sub{font-size:.95rem;color:var(--ember);margin-bottom:32px;letter-spacing:.1em}
.trial-card>p{font-size:.88rem;color:var(--warm-brown);line-height:2.3;max-width:560px;margin:0 auto 12px}
.trial-details{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:40px 0;text-align:center}
.trial-detail{padding:24px 16px;background:var(--parchment);border-radius:6px}
.trial-detail .td-label{font-size:.68rem;color:var(--muted);letter-spacing:.08em;margin-bottom:6px}
.trial-detail .td-value{font-size:1.1rem;color:var(--dark-wood)}
.trial-card .btn-primary{margin-top:8px}
.trial-urgency{margin-top:12px;font-size:.72rem;color:var(--muted);letter-spacing:.04em}

/* === CONTACT === */
.contact{background:var(--cream)}
.contact-inner{
  max-width:560px;margin:0 auto;
  background:var(--white-card);border-radius:10px;padding:56px 48px;
  box-shadow:0 0 0 1px rgba(0,0,0,.03),0 8px 36px rgba(0,0,0,.03);
}
.form-group{margin-bottom:24px}
.form-group label{display:block;font-size:.84rem;color:var(--warm-brown);margin-bottom:8px}
.form-group input,.form-group textarea,.form-group select{
  width:100%;padding:14px 18px;border:1px solid #d4c4a8;border-radius:4px;
  font-size:.86rem;color:var(--dark-wood);background:var(--parchment);
  font-family:inherit;
  transition:border-color .3s,box-shadow .3s;
}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 3px rgba(184,101,58,.06)}
.form-group input:focus-visible,.form-group textarea:focus-visible,.form-group select:focus-visible{outline:2px solid var(--ember);outline-offset:2px}
.form-group textarea{resize:vertical;min-height:120px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.required{color:var(--ember);font-size:.6rem;margin-left:6px}
.form-submit{text-align:center;margin-top:28px}
.form-status{margin-top:16px;padding:0;font-size:.84rem;line-height:1.9;text-align:center;min-height:0;transition:all .3s var(--ease-smooth)}
.form-status.success{padding:14px 18px;border-radius:4px;background:rgba(184,101,58,.06);border:1px solid rgba(184,101,58,.2);color:var(--ember)}
.form-status.error{padding:14px 18px;border-radius:4px;background:rgba(178,34,34,.05);border:1px solid rgba(178,34,34,.2);color:#b22222}
#formSubmitBtn:disabled{opacity:.6;cursor:not-allowed;transform:none}

/* === FOOTER === */
footer{background:var(--charcoal);color:var(--muted);padding:64px 32px 28px}
.footer-inner{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:64px}
.footer-brand-top{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.footer-logo-text{color:var(--gold);font-size:1.08rem;letter-spacing:.2em}
.footer-brand p{font-size:.82rem;line-height:2;opacity:.7}
.footer-links h4{color:var(--sand);font-size:.84rem;margin-bottom:16px;letter-spacing:.1em}
.footer-section-sub{margin-top:24px}
.footer-links ul{list-style:none}
.footer-links a{color:var(--muted);text-decoration:none;font-size:.8rem;line-height:2.4;transition:color .3s}
.footer-links a:hover{color:var(--gold)}
.footer-bottom{max-width:1080px;margin:56px auto 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.04);text-align:center;font-size:.7rem;letter-spacing:.06em}
.footer-social{display:flex;gap:16px;margin-top:16px}
.footer-social a{color:var(--muted);text-decoration:none;font-size:.82rem;transition:color .3s}
.footer-social a:hover{color:var(--gold)}

/* === RESPONSIVE === */
@media(max-width:960px){
  .section{padding:72px 0}
  .section-compact{padding:56px 0}
  .challenge,.about,.why,.casestudy{padding:72px 0}
  .nav-links{display:none}
  .nav-links.open{display:flex;flex-direction:column;position:absolute;top:72px;left:0;right:0;background:rgba(22,16,9,.98);padding:24px;gap:14px}
  .hamburger{display:flex}
  .about-grid{grid-template-columns:1fr;gap:40px}
  .challenge-grid{grid-template-columns:1fr}
  .why-grid{grid-template-columns:1fr}
  .why-card:nth-child(2){transform:none}
  .why-card:nth-child(2):hover{transform:translateY(-6px)}
  .program-step{grid-template-columns:180px 1fr}
  .program-step:nth-child(even){direction:ltr}
  .case-hero{grid-template-columns:1fr}
  .case-hero-img img{min-height:260px}
  .member-grid{grid-template-columns:1fr;max-width:540px;margin:0 auto}
  .voices-grid{grid-template-columns:1fr}
  .voice-card:last-child{max-width:none}
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px}
  .footer-inner{grid-template-columns:1fr;gap:28px}
  .stats-row{gap:48px}
  .form-row{grid-template-columns:1fr}
  .photo-strip-inner img{height:180px}
  .trial-details{grid-template-columns:1fr}
  .hero-evidence{gap:24px;padding:12px 20px}
}
@media(max-width:600px){
  .section{padding:56px 0}
  .challenge,.about,.why,.casestudy{padding:56px 0}
  .nav-inner{height:64px}
  .nav-links.open{top:64px}
  .section-header{margin-bottom:56px}
  .hero-content h1{letter-spacing:.1em}
  .program-step{grid-template-columns:1fr}
  .program-step:nth-child(even){direction:ltr}
  .step-img img{height:200px}
  .member-card{grid-template-columns:1fr;text-align:center}
  .member-photo{margin:0 auto}
  .case-hero-body{padding:28px 24px}
  .case-metrics{grid-template-columns:1fr;gap:12px}
  .contact-inner{padding:32px 24px}
  .photo-strip-inner{flex-wrap:wrap}
  .photo-strip-inner img{flex:1 1 45%;height:140px}
  .gallery-grid{grid-template-columns:1fr;grid-auto-rows:200px}
  .gallery-item.span2{grid-column:span 1}
  .trial-card{padding:44px 28px}
  .challenge-card{padding:32px 24px}
  .hero-evidence{flex-direction:column;gap:12px}
}
