/*
 * ZOOTRIPPER 3.5 — Unified Type System
 * This file is intentionally loaded last. It owns typography site-wide and
 * prevents historical component CSS from selecting unrelated typefaces.
 */
:root{
  --zt-font-display:"Zen Old Mincho","Yu Mincho","Hiragino Mincho ProN",serif;
  --zt-font-jp:"Zen Kaku Gothic New","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  --zt-font-latin:"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --zt-weight-regular:400;
  --zt-weight-display:600;
  --zt-weight-heading:600;
  --zt-track-display:-.045em;
  --zt-track-heading:-.025em;
  --zt-track-body:.018em;
  --zt-leading-display:1.28;
  --zt-leading-heading:1.48;
  --zt-leading-body:2;
}

html,body,button,input,textarea,select{
  font-family:var(--zt-font-jp)!important;
  font-weight:var(--zt-weight-regular);
  font-synthesis:none;
  font-feature-settings:"palt" 1;
}
body{
  letter-spacing:var(--zt-track-body);
  line-height:var(--zt-leading-body);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* One display voice for the site. */
.hhf-copy h1,
.seo-intro h2,
.intro .two-col h2,
.service-home>h2,
.works-home>h2,
.home-activities header h2,
.journal-home h2,
.answer-block>h2,
.cta h2,
.page-hero h1,
.single-head h1,
.category-hero h1,
.labo-manifesto h2,
.labo-findings h2,
.labo-research>header h2,
.labo-application>div>h2{
  margin-block-start:0;
  font-family:var(--zt-font-display)!important;
  font-weight:var(--zt-weight-display)!important;
  font-style:normal!important;
  font-feature-settings:"palt" 1;
  letter-spacing:var(--zt-track-display)!important;
  line-height:var(--zt-leading-display)!important;
  text-wrap:balance;
}

/* Home display scale: large enough to lead, never billboard-heavy. */
.hhf-copy h1{font-size:clamp(1.8rem,2.75vw,2.85rem)!important;line-height:1.3!important}
.seo-intro h2{max-width:12em;font-size:clamp(2.75rem,4.35vw,5rem)!important}
.intro .two-col h2{max-width:9em;font-size:clamp(2.7rem,4.15vw,4.65rem)!important}
.service-home>h2{max-width:10.5em!important;font-size:clamp(2.8rem,4.35vw,4.9rem)!important}
.works-home>h2{font-size:clamp(2.65rem,4vw,4.5rem)!important}
.home-activities header h2{max-width:8.5em;font-size:clamp(2.7rem,4.15vw,4.65rem)!important}
.journal-home h2{max-width:9.5em;font-size:clamp(2.6rem,3.85vw,4.3rem)!important}
.answer-block>h2{max-width:12em!important;font-size:clamp(2.45rem,3.55vw,3.95rem)!important}
.cta h2{max-width:10.5em;font-size:clamp(2.55rem,3.9vw,4.35rem)!important}

/* Inner-page display scale follows the same proportions. */
.page-hero h1,.single-head h1{
  font-size:clamp(2.65rem,4.5vw,5.15rem)!important;
  line-height:1.24!important;
}
.category-hero h1{font-size:clamp(2.75rem,4.75vw,5.35rem)!important}
.labo-manifesto h2,.labo-findings h2,.labo-research>header h2,.labo-application>div>h2{
  font-size:clamp(2.55rem,4vw,4.55rem)!important;
}

/* Level-two headings use the same face and one controlled weight. */
.content-section h2,
.service-detail h2,
.single-body h2,
.article-body h2,
.zt-case-study h2,
.category-feature-copy h2,
.category-stories>header h2,
.contact-guide h2,
.contact-detail h2,
.price-grid h2,
.values h3,
.flow b,
.post-list h2{
  font-family:var(--zt-font-display)!important;
  font-weight:var(--zt-weight-display)!important;
  font-style:normal!important;
  font-feature-settings:"palt" 1;
  letter-spacing:var(--zt-track-heading)!important;
  line-height:var(--zt-leading-heading)!important;
  text-wrap:pretty;
}
.content-section h2,.single-body h2{font-size:clamp(2rem,3.25vw,3.55rem)!important}
.service-detail h2{font-size:clamp(1.5rem,2.1vw,2.15rem)!important}
.article-body h2{font-size:clamp(1.65rem,2.25vw,2.25rem)!important;line-height:1.55!important}
.category-feature-copy h2{font-size:clamp(1.8rem,2.65vw,2.8rem)!important}
.contact-guide h2,.contact-detail h2{font-size:clamp(1.9rem,2.75vw,3rem)!important}

/* Component headings no longer pick arbitrary Mincho/serif declarations. */
.service-home article h3,
.works-home .work-grid h3,
.home-activities-grid h3,
.journal-home .post-row h3,
.answer-block article h3,
.archive-grid h2,
.category-card-grid h3,
.category-ranking h2,
.category-ranking a>span,
.post-row h3,
.zt-menu-primary strong{
  font-family:var(--zt-font-display)!important;
  font-weight:var(--zt-weight-display)!important;
  font-style:normal!important;
  font-feature-settings:"palt" 1;
  letter-spacing:var(--zt-track-heading)!important;
  line-height:var(--zt-leading-heading)!important;
}
.service-home article h3{font-size:clamp(1.12rem,1.45vw,1.38rem)!important}
.works-home .work-grid h3{font-size:clamp(1.08rem,1.45vw,1.35rem)!important}
.home-activities-grid h3{font-size:clamp(1.75rem,2.65vw,2.8rem)!important;line-height:1.25!important}
.journal-home .post-row h3{font-size:clamp(.92rem,1.08vw,1.05rem)!important}
.answer-block article h3{font-size:clamp(1rem,1.18vw,1.15rem)!important}

/* Body copy shares one texture across sections. */
.seo-intro p,
.intro p,
.service-home p,
.works-home p,
.home-activities p,
.journal-home p,
.answer-block p,
.page-hero>div,
.content-section p,
.single-body p,
.article-body p,
.category-hero-summary,
.category-feature-copy>p,
.category-card-grid p,
.contact-guide p,
.contact-detail p{
  font-family:var(--zt-font-jp)!important;
  font-weight:var(--zt-weight-regular)!important;
  font-style:normal!important;
  letter-spacing:var(--zt-track-body)!important;
  line-height:var(--zt-leading-body)!important;
}
.seo-intro p,.intro p,.page-hero>div,.content-section p,.single-body p{font-size:.9rem!important}
.service-home p,.home-activities p,.journal-home p,.answer-block p{font-size:.78rem!important}
.article-body p{font-size:clamp(.94rem,1.05vw,1rem)!important;line-height:2.15!important}

/* Microcopy uses one Latin family, weight and tracking. */
.section-label,
.hhf-copy small,
.hhf-track span i,
.hhf-footer>p,
.seo-intro-title>span,
.works-home .work-grid small,
.home-activities-grid small,
.journal-home time,
.answer-block>small,
.page-hero>p,
.single-head small,
.category-hero-copy>p,
.category-section-label span,
.text-link{
  font-family:var(--zt-font-latin)!important;
  font-weight:600!important;
  font-style:normal!important;
  letter-spacing:.13em!important;
}
.section-label{font-size:.58rem!important;line-height:1.3!important}
.hhf-copy small{font-size:.5rem!important;line-height:1.2!important}
.works-home .work-grid small,.journal-home time{font-size:.56rem!important}

/* Preserve Yokomichi Shoten's deliberately separate bookshop identity. */
.ym-shop,.ym-single,.home-yokomichi{
  font-synthesis:none;
}
.ym-shop h1,.ym-shop h2,.ym-shop h3,.ym-single h1,.ym-single h2,.ym-single h3,
.home-yokomichi-name,.home-yokomichi h2{
  font-family:"Shippori Mincho","Yu Mincho","Hiragino Mincho ProN",serif!important;
}

@media(max-width:700px){
  :root{--zt-track-display:-.04em;--zt-track-heading:-.02em}
  .hhf-copy h1{font-size:clamp(1.45rem,6.6vw,2.05rem)!important}
  .seo-intro h2{font-size:clamp(2.15rem,10.2vw,3.15rem)!important;line-height:1.32!important}
  .intro .two-col h2{font-size:clamp(2.25rem,10.4vw,3.25rem)!important;line-height:1.34!important}
  .service-home>h2,.works-home>h2,.home-activities header h2{
    font-size:clamp(2.2rem,10.2vw,3.2rem)!important;
    line-height:1.3!important;
  }
  .journal-home h2{font-size:clamp(2.15rem,9.9vw,3.05rem)!important;line-height:1.34!important}
  .answer-block>h2,.cta h2{font-size:clamp(2.05rem,9.3vw,2.9rem)!important;line-height:1.34!important}
  .page-hero h1,.single-head h1,.category-hero h1{font-size:clamp(2.35rem,10.8vw,3.5rem)!important;line-height:1.28!important}
  .labo-manifesto h2,.labo-findings h2,.labo-research>header h2,.labo-application>div>h2{
    font-size:clamp(2.15rem,9.8vw,3rem)!important;
  }
  .seo-intro p,.intro p,.page-hero>div,.content-section p,.single-body p{font-size:.85rem!important}
  .article-body p{font-size:.94rem!important}
}
