/* ============ Typography Floor — minimum readable sizes ============
   Bumps tiny labels/captions previously sized 0.35-0.55rem to a
   readable floor (0.7-0.78rem). Loaded after page styles to override.
   ================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300..700&family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&family=Shippori+Mincho:wght@400;500;700&family=Hina+Mincho&family=Manrope:wght@400;500;600;700&display=swap');

/* === Font role assignments ===
   Headings (h1, em) → Fraunces (variable serif)
   Body / UI → Inter (300/400/500/600)
   Numbers / Labels / Meta → JetBrains Mono (400/500)
   日本語 → no JP font; fallback sans-serif → system (Hiragino Kaku Gothic / Yu Gothic / Meiryo) */
body,
p,li,dd,dt,td,th,blockquote,figcaption,small,cite,
.hero-sub,.intro .hero-sub,
.fi p,.flow-item p,.inc-item p,.princ-d,.faq-a,
.about-text p,.cmp-cell,.inc-name,.inc-comp,
.terms-note,.ftr-d,.ftr-l a,.ftr-b,
.fl-label,.fi-input,.fta,.fsl,.privacy-note,
.ed-body,.ed-quote,.ed-l3{
  font-family:'Inter','Shippori Mincho',sans-serif !important;
}
/* Headings & display elements → Cormorant Garamond */
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,
.hero-mark,.hero-mark .ltr,.hero-eyebrow,.hero-tagline,.hero-scroll,
.intro h2,.intro h2 em,.hero-sub .accent,
.label,.eyebrow,.hero-ey,.hero-tag,
.princ-h,.princ-num,
.cp-tag,.cp-total,.cp-amt,.cp-msg,
.unl-tag,.fi-num,.flow-step .day,.big-num-l,.prob .pn,
.sb-label,.price-label,.price-sub-label,.cmp-foot,
.num-v,.num-l,.hero-stat strong,
.fi h4,.flow-item h4,.inc-item h4,
.dc .dt,.dc .dn,.dc .dl,
.wc-tag,.wc-name,
.ftr-h,.ftr-logo span,.hdr-logo span,.terasu-logo span,
.fab-panel-h,
.hdr .nv a,.hdr .nv a.nv-c,
.ed-idx,.ed-meta,.ed-l1,.ed-l2,.ed-foot,.ed-scroll{
  font-family:'Fraunces','Shippori Mincho',sans-serif !important;
}

/* Nav bar weight + spacing */
.hdr .nv a:not(.nv-c){
  font-weight:500 !important;
  letter-spacing:.04em !important;
}
.hdr .nv a.nv-c{
  font-weight:600 !important;
  letter-spacing:.04em !important;
}

/* === Numerics — Hina Mincho across the site === */
.princ-num,
.num-v,.num-v small,
.cp-amt,.cp-line.cp-total,.cp-line .cp-amt,
.intro .hero-stat strong,
.hero-stat strong,
.big-num,.big-num small,.big-num-l,
.sla-val,
.fi-num,
.flow-step .day,.flow-step .step,
.price-amount,.price-amount small,.price-sub-val,.price-sub-val small,
.terms-note,
.nums .num,
.dc .dt,.wc-tag,.wc-name small,
.yen,.yen small,
.val-num,
.hero-spec strong,
.pc .yen,.pc .yen small,
.total strong,
.princ-step-num,
.princ-num{
  font-family:'Hina Mincho','Fraunces','Shippori Mincho',sans-serif !important;
}

/* Decorative small-caps labels & eyebrows */
.label,.eyebrow,.hero-ey,.fil-label,.princ-num,.cp-tag,.unl-tag,
.fi-num,.flow-step .day,.big-num-l,.prob .pn,.sb-label,
.cmp-foot,.price-label,.price-sub-label{
  font-size:clamp(.7rem,1vw,.78rem) !important;
  letter-spacing:.18em;
}

/* Decorative footnotes/captions */
.inc-comp,.dc .dd,.wc-tag,.wc-name small{
  font-size:.78rem !important;
}

/* Hero meta strip on index */
.hero-meta{ font-size:.78rem !important; }

/* Pill-style tags inside cards */
.dc .dp span,.wc-pills span,.unl-x{
  font-size:.62rem !important;
  padding:.18rem .45rem;
}

/* "View →" link inside demo cards */
.dc .dl{ font-size:.7rem !important; letter-spacing:.12em }

/* Card descriptive subtext */
.fi p,.flow-item p,.inc-item p{ font-size:.78rem !important; line-height:1.7 }
.fi h4,.flow-item h4,.inc-item h4{ font-size:.85rem !important }

/* Alternating section backgrounds — #ffffff / #f4f4f4 */
body > section{ background: var(--bg) }
body > section:nth-of-type(2n){ background: var(--bg-alt) }
body > section.hero{ background: var(--bg) !important }
body > section.intro,
body > section.why-terasu{ background: transparent }

/* Header logo subtitle */
.hdr-logo span,.terasu-logo span{ font-size:1.05rem !important; letter-spacing:.18em; font-weight:400 !important }
.terasu-logo svg{ width:38px !important; height:38px !important }
.hdr{ padding-top:.6rem; padding-bottom:.6rem }

/* Nav links */
.nv a:not(.nv-c){ font-size:.85rem !important }
.nv a.nv-c{ font-size:.78rem !important }

/* Buttons inside content cards */
.btn-w,.btn-l{ font-size:.82rem }

/* Generic body sub-text */
body{ font-size:16px }

@media(max-width:640px){ body{ font-size:15px } }

/* ============ Unified "lift on hover" for all buttons & cta ============ */
.btn-w,.btn-l,.nv a.nv-c,.fsub,.btn,.btn-fill,.btn-ghost,.fil button,
.demos-cta a,.btn-w-l,.btn-l-l{
  transition:transform .4s cubic-bezier(.16,1,.3,1),
             box-shadow .4s cubic-bezier(.16,1,.3,1),
             background-color .25s ease,
             border-color .25s ease,
             color .25s ease,
             opacity .25s ease !important;
  will-change:transform;
}
.btn-w:hover,.btn-fill:hover,.fsub:hover,.nv a.nv-c:hover{
  transform:translateY(-4px) !important;
  box-shadow:0 16px 36px rgba(255,200,120,.25),0 6px 16px rgba(0,0,0,.32) !important;
}
.btn-l:hover,.btn-ghost:hover,.fil button:hover{
  transform:translateY(-4px) !important;
  box-shadow:0 14px 32px rgba(0,0,0,.32),0 4px 12px rgba(255,200,120,.12) !important;
}
.btn-w:active,.btn-l:active,.btn-fill:active,.btn-ghost:active,
.fsub:active,.nv a.nv-c:active,.fil button:active{
  transform:translateY(-1px) !important;
  transition-duration:.15s !important;
}
/* CTA / nav buttons — override Fraunces with Manrope sans for distinct UI feel */
.btn-s2-cta,.s7-r .btn-deck,.btn-deck,.btn-deck-l,.nv a,.nv a.nv-c,.nv-c,.hdr .nv a,.hdr .nv a.nv-c{
  font-family:'Manrope','Shippori Mincho',sans-serif !important;
  letter-spacing:.02em !important;
}
.btn-s2-cta,.s7-r .btn-deck,.btn-deck,.btn-deck-l{ font-weight:500 !important; font-size:.86rem !important }
.nv a.nv-c,.nv-c,.hdr .nv a.nv-c{ font-weight:500 !important; font-size:.82rem !important }
.nv a:not(.nv-c),.hdr .nv a:not(.nv-c){ font-weight:500 !important; font-size:.82rem !important }

/* Nav logo — mark icon + TERASU text horizontal */
.terasu-logo .terasu-mark,.hdr-logo .terasu-mark,.terasu-logo img.terasu-mark,.hdr-logo img.terasu-mark{
  width:32px !important;height:32px !important;object-fit:contain !important;display:block !important;
}
.terasu-logo,.hdr-logo{ gap:.7rem !important;align-items:center !important }
.terasu-logo span:not(.terasu-mark),.hdr-logo span:not(.terasu-mark){
  display:inline-block !important;
  font-family:'Manrope','Shippori Mincho',sans-serif !important;
  font-size:1.1rem !important;
  font-weight:400 !important;
  letter-spacing:.28em !important;
  color:#1a1a1a !important;
  text-transform:uppercase !important;
  line-height:1 !important;
  padding-right:.28em !important;
}
@media(max-width:768px){
  .terasu-logo .terasu-mark,.hdr-logo .terasu-mark{ width:26px !important;height:26px !important }
  .terasu-logo span:not(.terasu-mark),.hdr-logo span:not(.terasu-mark){ font-size:.95rem !important;letter-spacing:.22em !important }
}

/* FV tagline — first-slide meta-bot on non-index pages, framed pill */
.fv-tag{
  border-top:none !important;
  padding:.4rem .85rem !important;
  align-self:center !important;
  display:inline-block !important;
  border:1px solid #1a1a1a !important;
  margin-top:clamp(.8rem,2vw,1.4rem) !important;
  font-size:.6rem !important;
  font-weight:500 !important;
  letter-spacing:.06em !important;
}

@media(prefers-reduced-motion:reduce){
  .btn-w,.btn-l,.nv a.nv-c,.fsub,.btn,.btn-fill,.btn-ghost,.fil button{
    transition:none !important;
  }
  .btn-w:hover,.btn-l:hover,.btn-fill:hover,.btn-ghost:hover,
  .fsub:hover,.nv a.nv-c:hover,.fil button:hover{
    transform:none !important;
  }
}
