/*
 * NAYUTA SITE v3.0 — six art-directed type + spacing systems.
 *
 * Every token is a product default: the customer selects a finished design,
 * never has to tune CSS or create font combinations.
 *
 * No @font-face downloads or cross-tenant font files. Japanese serif uses the
 * existing self-hosted licensed Noto Serif JP subset (300–600); Japanese sans
 * uses OS fonts and existing font stack. No claim that system fallback fonts
 * look identical across macOS / Android / Windows; CI records computed styles.
 * Scope entirely to selected NAYUTA builder themes, never O-LAND Original.
 */
html[data-site-design] {
  --ny-type-display:var(--font-sans,system-ui);
  --ny-type-japanese:var(--font-sans,system-ui);
  --ny-type-english:Arial,Helvetica,sans-serif;
  --ny-type-hero-weight:600;
  --ny-type-hero-tracking:-.03em;
  --ny-type-hero-leading:1.35;
  --ny-type-section-en:clamp(38px,4.2vw,60px);
  --ny-type-section-en-weight:600;
  --ny-type-section-en-tracking:-.045em;
  --ny-type-section-en-leading:1.06;
  --ny-type-section-jp:clamp(19px,1.65vw,24px);
  --ny-type-section-jp-weight:500;
  --ny-type-section-jp-leading:1.6;
  --ny-type-body:15px;
  --ny-type-body-leading:1.9;
  --ny-type-card-heading:clamp(17px,1.45vw,21px);
  --ny-type-card-leading:1.55;
  --ny-type-title-gap:clamp(12px,1.6vw,26px);
  --ny-type-description-gap:clamp(18px,2.3vw,34px);
  --ny-type-card-gap:clamp(16px,1.9vw,30px);
  --ny-type-copy-width:69ch;
}
html[data-site-design] body {
  font-family:var(--ny-type-japanese);
  font-weight:400;
  font-optical-sizing:auto;
}
/* The reference O-LAND shell pads both the section AND its inner shell.
 * For builder designs use one finished spacing token on .section-shell:
 * avoid double top/bottom margins that push content too far apart. */
html[data-site-design] main#main > :is(#property,#journal,#service,#about,#voice,#staff,#faq,#news) {
  padding-block:0;
}
html[data-site-design] .hero h1 {
  font-family:var(--ny-type-display);
  font-weight:var(--ny-type-hero-weight);
  line-height:var(--ny-type-hero-leading);
  letter-spacing:var(--ny-type-hero-tracking);
  text-wrap:balance;
}
html[data-site-design] .hero .nayuta-template-kicker {
  font-family:var(--ny-type-english);
  font-weight:600;
  letter-spacing:.18em;
}
html[data-site-design] main#main :is(#property,#journal,#service,#about,#voice,#staff,#faq,#news) .section-heading {
  gap:var(--ny-type-title-gap);
}
html[data-site-design] main#main :is(#property,#journal,#service,#about,#voice,#staff,#faq,#news) .section-heading h2 {
  font-family:var(--ny-type-english);
  font-size:var(--ny-type-section-en);
  font-weight:var(--ny-type-section-en-weight);
  line-height:var(--ny-type-section-en-leading);
  letter-spacing:var(--ny-type-section-en-tracking);
  text-wrap:balance;
  overflow-wrap:anywhere;
}
html[data-site-design] main#main :is(#property,#journal,#service,#about,#voice,#staff,#faq,#news) .section-heading > p {
  max-width:var(--ny-type-copy-width);
  margin-top:0;
  font-family:var(--ny-type-japanese);
  font-size:var(--ny-type-section-jp);
  font-weight:var(--ny-type-section-jp-weight);
  line-height:var(--ny-type-section-jp-leading);
  letter-spacing:.025em;
  color:inherit;
  text-wrap:pretty;
}
html[data-site-design] main#main :is(#property,#journal,#service,#voice,#faq,#news) .section-intro {
  margin-bottom:var(--ny-type-description-gap);
}
html[data-site-design] main#main :is(#property,#journal,#service,#about,#voice,#staff,#faq,#news) .section-intro > p,
html[data-site-design] main#main :is(#about,#journal,#service,#voice) :is(.about-copy > p,.journal-copy p,.service-copy,.voice-copy) {
  max-width:var(--ny-type-copy-width);
  font-family:var(--ny-type-japanese);
  font-size:var(--ny-type-body);
  line-height:var(--ny-type-body-leading);
  font-weight:400;
  letter-spacing:.016em;
}
html[data-site-design] main#main :is(#property,#journal) :is(.property-copy h3,.journal-copy h3) {
  font-family:var(--ny-type-japanese);
  font-size:var(--ny-type-card-heading);
  line-height:var(--ny-type-card-leading);
  font-weight:var(--ny-type-section-jp-weight);
  text-wrap:pretty;
}
html[data-site-design] .subpage :is(.page-hero,.listing-hero) h1,
html[data-site-design] .subpage .listing-detail-header h1 {
  font-family:var(--ny-type-display);
  font-weight:var(--ny-type-hero-weight);
  line-height:var(--ny-type-hero-leading);
  letter-spacing:var(--ny-type-hero-tracking);
}
html[data-site-design] .subpage :is(.page-lead,.page-prose p,.listing-comment p) {
  font-family:var(--ny-type-japanese);
  font-size:var(--ny-type-body);
  line-height:var(--ny-type-body-leading);
  max-width:var(--ny-type-copy-width);
}
html[data-site-design] .subpage :is(.page-kicker,.listing-card-eyebrow) {
  font-family:var(--ny-type-english);
  letter-spacing:.12em;
}
html[data-site-design] .subpage .listing-card h3 {
  font-family:var(--ny-type-japanese);
  line-height:var(--ny-type-card-leading);
}
html[data-site-design] :is(.hero-actions .button,.hero-quick-submit,.page-button,
  #contact .contact-option,.form-actions .page-button) {
  font-family:var(--ny-type-japanese);
  font-weight:var(--ny-button-weight,600);
  letter-spacing:.02em;
}

/* 01 Modern Portal — decisive large sans, precise small metadata. */
html[data-site-design="modern-portal"] {
  --ny-type-display:var(--font-sans,system-ui);
  --ny-type-english:"Arial Black",Arial,sans-serif;
  --ny-type-hero-weight:750;
  --ny-type-hero-tracking:-.05em;
  --ny-type-hero-leading:1.28;
  --ny-type-section-en:clamp(42px,4.2vw,62px);
  --ny-type-section-en-weight:800;
  --ny-type-section-en-tracking:-.065em;
  --ny-type-section-jp:clamp(20px,1.9vw,27px);
  --ny-type-section-jp-weight:700;
  --ny-type-section-jp-leading:1.5;
  --ny-type-body:15px;
  --ny-type-body-leading:1.78;
  --ny-type-card-heading:clamp(17px,1.45vw,21px);
  --ny-type-title-gap:12px;
  --ny-type-description-gap:26px;
  --ny-type-card-gap:16px;
  --ny-section-space:clamp(56px,6.3vw,100px);
}
html[data-site-design="modern-portal"] main#main :is(#property,#journal,#service) .section-heading::after {
  margin-top:8px;
}

/* 02 Minimal Corporate — quiet geometry, airy tracking, generous paper. */
html[data-site-design="minimal-corporate"] {
  --ny-type-display:var(--font-sans,system-ui);
  --ny-type-english:"Helvetica Neue",Arial,sans-serif;
  --ny-type-hero-weight:400;
  --ny-type-hero-tracking:.015em;
  --ny-type-hero-leading:1.56;
  --ny-type-section-en:clamp(34px,3.15vw,48px);
  --ny-type-section-en-weight:400;
  --ny-type-section-en-tracking:.085em;
  --ny-type-section-en-leading:1.22;
  --ny-type-section-jp:clamp(20px,1.8vw,26px);
  --ny-type-section-jp-weight:400;
  --ny-type-section-jp-leading:1.75;
  --ny-type-body:15px;
  --ny-type-body-leading:2.05;
  --ny-type-card-heading:clamp(17px,1.5vw,21px);
  --ny-type-title-gap:20px;
  --ny-type-description-gap:clamp(28px,3vw,44px);
  --ny-type-card-gap:clamp(24px,3vw,42px);
  --ny-section-space:clamp(74px,9vw,145px);
}
html[data-site-design="minimal-corporate"] main#main :is(#property,#journal,#service,#about) .section-heading::after {
  margin-top:clamp(20px,2.2vw,34px);
}

/* 03 Editorial Warm — classic Japanese print, accessible reading measure. */
html[data-site-design="editorial-warm"] {
  --ny-type-display:var(--font-serif,Georgia,serif);
  --ny-type-japanese:var(--font-serif,Georgia,serif);
  --ny-type-english:Georgia,"Times New Roman",serif;
  --ny-type-hero-weight:400;
  --ny-type-hero-tracking:.005em;
  --ny-type-hero-leading:1.56;
  --ny-type-section-en:clamp(51px,5.25vw,76px);
  --ny-type-section-en-weight:400;
  --ny-type-section-en-tracking:-.055em;
  --ny-type-section-en-leading:1.15;
  --ny-type-section-jp:clamp(21px,2.05vw,30px);
  --ny-type-section-jp-weight:400;
  --ny-type-section-jp-leading:1.7;
  --ny-type-body:16px;
  --ny-type-body-leading:2.02;
  --ny-type-card-heading:clamp(18px,1.7vw,24px);
  --ny-type-card-leading:1.7;
  --ny-type-title-gap:clamp(18px,2vw,32px);
  --ny-type-description-gap:clamp(28px,3.5vw,50px);
  --ny-type-copy-width:42em;
  --ny-section-space:clamp(68px,8.6vw,138px);
}
html[data-site-design="editorial-warm"] main#main #journal .section-heading::after {
  margin-top:12px;
}

/* 04 Lifestyle Gallery — editorial image-first headings and quieter captions. */
html[data-site-design="lifestyle-gallery"] {
  --ny-type-display:var(--font-serif,Georgia,serif);
  --ny-type-japanese:var(--font-sans,system-ui);
  --ny-type-english:Georgia,"Times New Roman",serif;
  --ny-type-hero-weight:400;
  --ny-type-hero-tracking:.02em;
  --ny-type-hero-leading:1.52;
  --ny-type-section-en:clamp(49px,5.45vw,80px);
  --ny-type-section-en-weight:400;
  --ny-type-section-en-tracking:-.045em;
  --ny-type-section-en-leading:1.18;
  --ny-type-section-jp:clamp(19px,1.95vw,27px);
  --ny-type-section-jp-weight:400;
  --ny-type-section-jp-leading:1.65;
  --ny-type-body:15px;
  --ny-type-body-leading:1.93;
  --ny-type-card-heading:clamp(18px,1.8vw,26px);
  --ny-type-title-gap:clamp(18px,2.5vw,34px);
  --ny-type-description-gap:clamp(38px,4vw,64px);
  --ny-type-card-gap:clamp(24px,3vw,44px);
  --ny-section-space:clamp(72px,9.2vw,150px);
}

/* 05 Performance Tech — compact modular typography, tabular numbers. */
html[data-site-design="performance-tech"] {
  --ny-type-display:var(--font-sans,system-ui);
  --ny-type-english:Arial,"Helvetica Neue",sans-serif;
  --ny-type-hero-weight:750;
  --ny-type-hero-tracking:-.045em;
  --ny-type-hero-leading:1.25;
  --ny-type-section-en:clamp(38px,3.65vw,54px);
  --ny-type-section-en-weight:800;
  --ny-type-section-en-tracking:-.045em;
  --ny-type-section-jp:clamp(19px,1.85vw,25px);
  --ny-type-section-jp-weight:700;
  --ny-type-section-jp-leading:1.48;
  --ny-type-body:14px;
  --ny-type-body-leading:1.78;
  --ny-type-card-heading:clamp(16px,1.35vw,20px);
  --ny-type-title-gap:12px;
  --ny-type-description-gap:22px;
  --ny-type-card-gap:15px;
  --ny-section-space:clamp(52px,6vw,92px);
}
html[data-site-design="performance-tech"] main#main #service .section-heading > p,
html[data-site-design="performance-tech"] main#main #service .section-intro > p {
  color:#edf8fb;
}
html[data-site-design="performance-tech"] :is(.listing-detail-price,.card-price,.property-counts) {
  font-variant-numeric:tabular-nums;
}

/* 06 Trust Premium — calm Japanese Mincho, gallery-scale white space. */
html[data-site-design="trust-premium"] {
  --ny-type-display:var(--font-serif,Georgia,serif);
  --ny-type-japanese:var(--font-serif,Georgia,serif);
  --ny-type-english:Georgia,"Times New Roman",serif;
  --ny-type-hero-weight:400;
  --ny-type-hero-tracking:.045em;
  --ny-type-hero-leading:1.55;
  --ny-type-section-en:clamp(48px,4.8vw,72px);
  --ny-type-section-en-weight:400;
  --ny-type-section-en-tracking:.075em;
  --ny-type-section-en-leading:1.22;
  --ny-type-section-jp:clamp(21px,2vw,29px);
  --ny-type-section-jp-weight:400;
  --ny-type-section-jp-leading:1.8;
  --ny-type-body:16px;
  --ny-type-body-leading:2.1;
  --ny-type-card-heading:clamp(19px,1.85vw,27px);
  --ny-type-card-leading:1.72;
  --ny-type-title-gap:clamp(20px,2.5vw,40px);
  --ny-type-description-gap:clamp(34px,4vw,65px);
  --ny-type-card-gap:clamp(30px,4vw,60px);
  --ny-section-space:clamp(80px,10vw,155px);
}
html[data-site-design="trust-premium"] main#main :is(#about,#journal,#service) .section-heading::after {
  margin-top:clamp(22px,3vw,40px);
}

/* Overlong Japanese heading and narrow phones are first-class constraints. */
@media (max-width:760px) {
  html[data-site-design] {
    --ny-type-section-en:clamp(34px,9vw,48px);
    --ny-type-section-jp:clamp(19px,5.4vw,23px);
    --ny-type-body:15px;
    --ny-type-title-gap:clamp(10px,3vw,18px);
    --ny-type-description-gap:clamp(18px,5vw,32px);
    --ny-section-space:clamp(46px,10vw,78px);
  }
  html[data-site-design="lifestyle-gallery"] {
    --ny-type-section-en:clamp(40px,10vw,52px);
  }
  html[data-site-design="editorial-warm"],
  html[data-site-design="trust-premium"] {
    --ny-type-body:15px;
  }
  html[data-site-design] main#main :is(#property,#journal,#service,#about,#voice,#staff,#faq,#news) .section-heading h2 {
    line-height:1.14;
    max-width:100%;
  }
  html[data-site-design] .subpage :is(.page-hero,.listing-hero) h1 {
    text-wrap:pretty;
  }
  html[data-site-design] :is(.hero-actions .button,.hero-quick-submit,.page-button,
    #contact .contact-option,.form-actions .page-button) {
    font-size:max(14px,1rem);
    line-height:1.45;
    min-height:48px;
  }
}
/* Preserve 320px viewport: never introduce a fixed leading or minimum width. */
@media (max-width:380px) {
  html[data-site-design] {
    --ny-type-section-en:clamp(29px,9vw,35px);
    --ny-type-section-jp:19px;
  }
  html[data-site-design] .hero .nayuta-template-kicker {
    letter-spacing:.08em;
  }
}
