@import url("https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,500;1,600;1,700&family=Playfair+Display:wght@400&display=swap");

/* First website: Noto Sans JP. Only font-family is changed. */
body.first-top {
    --first-text-font: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    font-family: var(--first-text-font) !important;
}
body.first-top :is(header, main, footer, nav, dialog, section, article, aside,
    div, h1, h2, h3, h4, h5, h6, p, a, ul, ol, li, dl, dt, dd,
    table, caption, th, td, label, legend, button, input, select, textarea,
    span, strong, b, small, em):not(.dashicons):not([class*="icon"]):not(.fa):not(.fas):not(.far):not(.fab):not([class*="fa-"]):not(#wpadminbar):not(#wpadminbar *) {
    font-family: var(--first-text-font) !important;
}

/* AI design audit: per-role typography. Sizes and responsive layouts stay in page CSS. */
@font-face {
  font-family: "First Futura 100 Local";
  src: local("Futura100-Medium");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "First Futura 100 Local";
  src: local("Futura100-DemiboldOblique");
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "First Futura 100 Local";
  src: local("Futura100-BoldOblique");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
body.first-top {
  --first-japanese-font: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  --first-display-font: Helvetica, "Helvetica Neue", Arial, var(--first-japanese-font);
  --first-futura-font: "First Futura 100 Local", "Jost", "Century Gothic", sans-serif;
  font-weight: 400;
}
/* PDF embedded name says Thin, but outline comparison identifies 400/500/600/700. */
body.first-top :is(.about-body, .values dd, .recruit-copy > p:not(.lead),
  .contact-copy > p:not(.lead), .company-message-text, .company-table dd,
  .company-business-list, .company-clients, .history-events,
  .recruit-jobs p, .recruit-conditions dd, .business-service-grid p,
  .service1-points p, .rental-points p, .service1-card-body > p) {
  font-weight: 400;
}
body.first-top :is(.about .lead, .recruit-copy .lead, .contact-copy .lead,
  .company-message-copy h2, .company-section-title, .company-flow h2,
  .company-steps h3, .recruit-panel h2, .recruit-conditions dt) {
  font-weight: 500;
}
body.first-top :is(.contact-circle h3, .service1-intro > h2, .rental-intro h2,
  .recruit-message h2, .first-forms-intro h2, .footer-heading,
  .rental-category-heading) {
  font-weight: 600;
}
body.first-top.home .hero-copy h1 { font-weight: 700; }
body.first-top.home .hero-copy .cyan { font-weight: 500; }
/* All inner-page English hero titles. Child Japanese subtitles reset below. */
body.first-top :is(.company-hero-copy, .business-hero-copy, .history-hero-copy,
  .access-hero-copy, .recruit-hero-copy, .rental-hero-copy,
  .first-forms-hero-copy, .works-hero-copy, .service1-hero-copy) h1,
body.first-top .works-hero-copy > .works-hero-title {
  --first-text-font: var(--first-display-font);
  font-weight: 700;
  font-style: italic;
}
body.first-top :is(.company-hero-copy, .business-hero-copy, .history-hero-copy,
  .access-hero-copy, .recruit-hero-copy, .rental-hero-copy,
  .first-forms-hero-copy, .works-hero-copy, .service1-hero-copy) h1 span,
body.first-top .works-hero-title span {
  --first-text-font: var(--first-japanese-font);
  font-weight: 500;
  font-style: normal;
}
body.first-top :is(.company-hero-copy, .business-hero-copy, .history-hero-copy,
  .access-hero-copy, .recruit-hero-copy, .rental-hero-copy,
  .first-forms-hero-copy, .works-hero-copy, .service1-hero-copy) > p:not(.works-hero-title) {
  font-weight: 500;
}
/* Upright Helvetica headings and English labels. */
body.first-top.home :is(.about, .works, .service, .recruit) h2,
body.first-top .contact-copy h2,
body.first-top .rental-categories > h2,
body.first-top .values dt > strong,
body.first-top .service1-card-photo h2 > span {
  --first-text-font: var(--first-display-font);
  font-weight: 700;
  font-style: normal;
}
body.first-top :is(.service1-points, .rental-points) strong {
  --first-text-font: var(--first-display-font);
  font-weight: 700;
  font-style: italic;
}
/* Buttons: Japanese glyphs fall through to Noto Sans JP. */
body.first-top :is(a.button, .works-card-more, .works-back, .company-map-link) {
  --first-text-font: var(--first-futura-font), var(--first-japanese-font);
  font-weight: 500;
  font-style: normal;
}
body.first-top .contact-circle .phone,
body.first-top .access-numbers,
body.first-top .access-numbers a {
  --first-text-font: var(--first-futura-font);
  font-family: var(--first-futura-font) !important;
  font-weight: 600;
  font-style: italic;
}
body.first-top .contact-circle .phone + p {
  --first-text-font: var(--first-futura-font);
  font-weight: 500;
  font-style: normal;
}
body.first-top .history-year {
  --first-text-font: var(--first-futura-font);
  font-family: var(--first-futura-font) !important;
  font-weight: 700;
  font-style: italic;
}
body.first-top .company-watermark {
  --first-text-font: "Playfair Display", Georgia, serif;
  font-weight: 400;
  font-style: normal;
}
