/* v2.8 — typography refinement
   Brand direction: warm / polished / approachable, without the generic AI-LP feel. */

:root{
  --font-body:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-heading:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  --font-en:"DM Sans","Noto Sans JP",sans-serif;
}

html{
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-synthesis:none;
}

body,
button,
input,
textarea,
select{
  font-family:var(--font-body)!important;
  font-weight:400;
  letter-spacing:.012em;
}

/* Japanese display copy: large but not heavy. */
h1,h2,h3,h4,h5,h6,
.noto-serif{
  font-family:var(--font-heading)!important;
  font-style:normal;
}

h1,h2{
  font-weight:500;
  letter-spacing:.018em;
}

h3,h4,h5,h6{font-weight:600}

/* Hero */
.dm-hero-kicker{
  font-family:var(--font-body)!important;
  font-weight:500!important;
  letter-spacing:.035em!important;
}

#hero .dm-hero-copy h1{
  font-family:var(--font-heading)!important;
  font-weight:600!important;
  letter-spacing:.006em!important;
  line-height:1.34!important;
}

#hero .dm-hero-copy h1 em,
#hero .dm-hero-copy h1 span{
  font-family:inherit!important;
  font-style:normal!important;
}

#hero .dm-hero-lead{
  font-family:var(--font-body)!important;
  font-weight:400!important;
  letter-spacing:.018em!important;
  line-height:1.9!important;
}

#hero .dm-hero-actions-v26 .dm-btn-primary,
#hero .dm-hero-cta-secondary{
  font-family:var(--font-body)!important;
  font-weight:600!important;
  letter-spacing:.025em!important;
}

#hero .dm-hero-benefit p{
  font-family:var(--font-body)!important;
  letter-spacing:.012em!important;
}
#hero .dm-hero-benefit p strong{font-weight:600!important}
#hero .dm-hero-benefit p span{font-weight:500!important}

/* Main section headings */
.dm-concept-copy h2,
.dm-cases-title-row h2,
.dm-plan-intro h2,
#services h2,
#comparison h2,
#faq h2,
#final-cta h2{
  font-family:var(--font-heading)!important;
  font-weight:500!important;
  letter-spacing:.022em!important;
}

.dm-concept-copy h2{line-height:1.43!important}
.dm-cases-title-row h2{line-height:1.42!important}
.dm-plan-intro h2{line-height:1.48!important}

/* Small English labels / numerals get a cleaner editorial accent. */
.dm-eyebrow,
.dm-case-num,
.dm-plan-badge,
.dm-plan-card > h3,
.dm-plan-price strong,
.sec-eyebrow{
  font-family:var(--font-en)!important;
}

.dm-eyebrow{
  font-weight:600!important;
  letter-spacing:.14em!important;
}

.sec-eyebrow{
  font-weight:600!important;
  letter-spacing:.09em!important;
}

.dm-plan-card > h3{
  font-weight:600!important;
  letter-spacing:.055em!important;
}
.dm-plan-card > h3 small{
  font-family:var(--font-body)!important;
  font-weight:500!important;
  letter-spacing:.03em!important;
}
.dm-plan-price strong{
  font-weight:600!important;
  letter-spacing:-.025em!important;
}
.dm-plan-price span{
  font-family:var(--font-body)!important;
  font-weight:500!important;
}

/* Body copy: softer hierarchy and more intentional rhythm. */
.dm-concept-copy p,
.dm-concept-points p,
.dm-karte-title p,
.dm-plan-intro > p,
.dm-plan-summary,
.service-card p,
.faq-answer,
.faq-item p{
  font-family:var(--font-body)!important;
  font-weight:400!important;
}

.dm-concept-copy strong,
.dm-concept-points h3,
.dm-case-card strong{
  font-weight:600!important;
}

.dm-concept-points h3,
.dm-case-card strong{
  font-family:var(--font-heading)!important;
  letter-spacing:.008em!important;
}

/* Hand-note treatment: restrained instead of faux-handwritten. */
.dm-hand-note{
  font-family:var(--font-heading)!important;
  font-weight:400!important;
  letter-spacing:.04em!important;
  line-height:1.65!important;
}

/* Existing v10 sections below PLAN */
#services h2,
#comparison h2,
#faq h2,
#final-cta h2,
.sec-heading h2,
.section-heading h2{
  font-family:var(--font-heading)!important;
  font-weight:500!important;
}

#services h2 em,
#comparison h2 em,
#final-cta h2 em,
.sec-heading h2 em,
.section-heading h2 em{
  font-family:inherit!important;
  font-style:normal!important;
  font-weight:600!important;
}

#services h3,
.service-card h3,
.faq-question,
.faq-q{
  font-family:var(--font-heading)!important;
  font-weight:600!important;
  letter-spacing:.01em!important;
}

/* Navigation / controls */
.dm-brand-tagline,
.dm-nav-links,
.dm-nav-cta,
.dm-outline-link,
.dm-plan-foot a{
  font-family:var(--font-body)!important;
}
.dm-nav-links{font-weight:500!important}
.dm-nav-cta,
.dm-outline-link,
.dm-plan-foot a{font-weight:600!important}

/* Prevent legacy serif declarations from leaking back in. */
.plan-price,
.plan-price-unit,
.dm-plan-price,
#karteModalTitle,
#karteResultTitle{
  font-family:var(--font-heading)!important;
}
.dm-plan-price strong{font-family:var(--font-en)!important}

@media(max-width:560px){
  #hero .dm-hero-copy h1{
    line-height:1.3!important;
    letter-spacing:0!important;
  }
  .dm-eyebrow{letter-spacing:.11em!important}
}
