/* juki transform · style.css · v1.0 · 2026-05-18 */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --ff:'DM Sans',system-ui,sans-serif;
  --fs:'Newsreader',Georgia,serif;
  --smaragd:#0C3830;
  --smaragd-800:#12504A;
  --champ:#B5A88C;
  --champ-ghost:#D4C9B0;
  --champ-600:#A09474;
  --sf:#F5F0E8;
  --sf-card:#FBF7F0;
  --ink:#1A1D1A;
  --ink2:#5E615A;
  --ink3:#5C5F57;          /* darkened from #6B6E66 — WCAG AA on #F5F0E8 */
  --border:#E4E1D8;
  --dk:#0C3830;
  --dk-ink:#E4E5E1;
  --dk-display:#B5A88C;
  --dk-ink2:#9AAFA8;
  --dk-ink3:#88AFA6;       /* lightened from #4E7A6E — WCAG AA on #0C3830 */
  --dk-border:#7BA99F;     /* lightened from #1C5549 — WCAG AA on #0C3830 */
  --ease:cubic-bezier(.25,.06,.15,1);
  --mx:1080px;
  --px:clamp(24px,5vw,64px)
}
html{scroll-behavior:smooth;color-scheme:light;background:#F5F0E8}
body{background:var(--sf);font-family:var(--ff);color:var(--ink2);-webkit-font-smoothing:antialiased}

/* skip link */
.skip{position:absolute;top:-100%;left:16px;background:var(--smaragd);color:var(--sf);padding:8px 16px;border-radius:3px;z-index:1000;font-size:14px;text-decoration:none}
.skip:focus{top:8px}

/* focus */
:focus-visible{outline:2px solid var(--smaragd);outline-offset:2px;border-radius:2px}
button:focus-visible,a:focus-visible{outline:2px solid var(--smaragd);outline-offset:2px}

/* layout */
.w{max-width:var(--mx);margin:0 auto;padding-left:var(--px);padding-right:var(--px)}

/* scroll reveal */
.rv{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rvl{opacity:0;transform:translateX(-16px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rvs{opacity:0;transition:opacity .9s var(--ease)}
.rvk{opacity:0;transform:scale(.97);transition:opacity 1.4s var(--ease),transform 1.4s var(--ease)}
.rv.vis,.rvl.vis,.rvs.vis,.rvk.vis{opacity:1;transform:translate(0) scale(1)}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}.d5{transition-delay:.5s}
.ld{width:0;height:2px;background:var(--champ);transition:width .8s var(--ease) .3s}.ld.vis{width:48px}
/* card lift */
.card{transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease)}
.card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(12,56,48,.1);border-color:var(--champ)}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(245,240,232,.9);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);height:56px}
.nav .w{display:flex;align-items:center;justify-content:space-between;height:56px}
.nav-brand{font-family:var(--fs);font-size:19px;font-weight:300;color:var(--smaragd);letter-spacing:-.01em;text-decoration:none}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-link{font-family:var(--ff);font-size:14px;font-weight:400;color:var(--ink3);letter-spacing:.02em;text-decoration:none;transition:color .2s;position:relative}
.nav-link::after{content:'';position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--champ);transition:width .4s var(--ease)}
.nav-link:hover::after,.nav-link.active::after{width:100%}
.nav-link.active{color:var(--smaragd);font-weight:500}
.nav-cta{font-family:var(--ff);font-size:12px;font-weight:500;color:var(--sf);background:var(--smaragd);padding:7px 18px;border-radius:3px;text-decoration:none;display:inline-block}
.nav-ham{display:none;background:none;border:none;cursor:pointer;padding:12px;min-width:44px;min-height:44px;align-items:center;justify-content:center}

/* overlay */
.overlay{display:none;position:fixed;inset:0;z-index:200;background:var(--dk);flex-direction:column;padding:0 var(--px)}
.overlay.open{display:flex}
.overlay-top{display:flex;align-items:center;justify-content:space-between;height:56px}
.overlay-links{flex:1;display:flex;flex-direction:column;justify-content:center;gap:32px}
.overlay-link{font-family:var(--fs);font-size:28px;font-weight:300;color:var(--dk-ink2);text-decoration:none;text-align:left}
.overlay-link.active{color:var(--dk-ink)}

/* typography */
.t-hero{font-family:var(--fs);font-size:clamp(38px,5.5vw,56px);font-weight:300;color:var(--smaragd);letter-spacing:-.025em;line-height:1.08}
.t-h1{font-family:var(--fs);font-size:clamp(32px,4.5vw,44px);font-weight:300;color:var(--smaragd);letter-spacing:-.025em;line-height:1.12}
.t-h2{font-family:var(--fs);font-size:clamp(26px,3vw,32px);font-weight:300;color:var(--smaragd);letter-spacing:-.015em;line-height:1.25}
.t-lead{font-family:var(--ff);font-size:clamp(16px,1.6vw,18px);color:var(--ink2);line-height:1.7}
.t-body{font-family:var(--ff);font-size:16px;color:var(--ink2);line-height:1.7}
.t-label{font-family:var(--ff);font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);margin-bottom:20px}

/* components */
.bq{padding-left:24px;border-left:3px solid var(--champ)}
.btn-p{display:inline-flex;align-items:center;gap:8px;font-family:var(--ff);font-size:15px;font-weight:500;color:var(--sf);background:var(--smaragd);padding:14px 32px;border-radius:3px;border:none;cursor:pointer;text-decoration:none}
.btn-s{display:inline-flex;align-items:center;gap:8px;font-family:var(--ff);font-size:14px;font-weight:500;color:var(--smaragd);background:none;border:1.5px solid var(--smaragd);padding:12px 28px;border-radius:3px;cursor:pointer;text-decoration:none}

/* sections */
.sec{padding:clamp(64px,10vw,88px) 0}
.sec-alt{padding:clamp(64px,10vw,88px) 0;background:var(--sf-card)}
.sec-dk{padding:clamp(64px,10vw,100px) 0;background:var(--dk)}

/* button micro-interaction */
.btn-p{transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.btn-p:hover{transform:scale(1.02);box-shadow:0 4px 16px rgba(12,56,48,.2)}
.btn-s{transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.btn-s:hover{transform:scale(1.02);box-shadow:0 4px 12px rgba(12,56,48,.1)}

/* quote decoration */
.quote-deco{position:relative}
.quote-deco::before{content:'\201E';position:absolute;top:-16px;left:-8px;font-family:var(--fs);font-size:120px;font-weight:300;color:var(--champ);opacity:0;line-height:1;pointer-events:none;transition:opacity 1.2s var(--ease)}
.quote-deco.vis::before{opacity:.12}

/* counter */
.cnt{font-family:var(--fs);font-size:28px;font-weight:300;color:var(--champ)}

/* reduced motion */
@media(prefers-reduced-motion:reduce){.rv,.rvl,.rvs,.rvk,.quote-deco{transition:none;opacity:1;transform:none}.ld{transition:none;width:48px}.quote-deco::before{opacity:.12}.btn-p,.btn-s,.card,.nav-link::after{transition:none}}

/* print */
@media print{.rv,.rvl,.rvs,.rvk,.quote-deco{opacity:1!important;transform:none!important}.ld{width:48px!important}.quote-deco::before{opacity:.12!important}.nav,.skip{display:none}}

/* mobile */
@media(max-width:600px){
  .nav-links{display:none!important}
  .nav-ham{display:flex!important}
  .dim-grid{grid-template-columns:1fr!important}
  .split{grid-template-columns:1fr!important}
  .vh-grid{grid-template-columns:1fr!important}
  .footer-grid{grid-template-columns:1fr!important}
  .footer-grid>div:first-child{margin-bottom:8px}
}
