/* GBS reference spacing and type scale, adapted to Jupiter's existing pages.
   No new typeface: content remains Gothic; designated large numerals retain
   the site's required numeric Mincho settings. */
body.gbs-layout {
  --gbs-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  --gbs-unit: clamp(.875px, .0694444444vw, 1.3333333333px);
  --gbs-x: calc(80 * var(--gbs-unit));
  --gbs-section: calc(200 * var(--gbs-unit));
  --gbs-section-small: calc(var(--gbs-section) / 1.6);
  --gbs-heading-gap: calc(80 * var(--gbs-unit));
  --gbs-copy: max(14px, calc(16 * var(--gbs-unit)));
  --gbs-detail: max(14px, calc(14 * var(--gbs-unit)));
  --gbs-title: calc(32 * var(--gbs-unit));
  --pad: var(--gbs-x);
  --brand-gutter: var(--gbs-x);
  --subpage-hero-pad: var(--gbs-x);
  --content: calc(100vw - var(--gbs-x) * 2);
  --brand-content: var(--content);
  --about-content: var(--content);
  --subpage-hero-content: var(--content);
  font-family: var(--gbs-sans);
  font-size: var(--gbs-copy);
  /* Clip horizontal overflow without creating a scroll container for sticky. */
  overflow-x: clip;
}
body.gbs-layout :is(h1, h2, h3, h4, h5, h6, label, button, input, select, textarea),
body.gbs-layout main :is(p, li, dt, dd),
body.gbs-layout .guide__header p { font-family: var(--gbs-sans) !important; }
body.gbs-layout :is(p, li, dl, address) { line-height: 1.8; letter-spacing: .04em; }
body.gbs-layout [id] { scroll-margin-top: var(--gbs-section-small); }
body.gbs-layout .container { width: calc(100% - var(--gbs-x) * 2); max-width: none; }

/* Keep the entire shared header visible and retain its space in page flow. */
body.gbs-layout #site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
}

/* Shared components are styled here, without changing their markup or code. */
body.gbs-layout .site-header__inner { min-height: 80px; }
body.gbs-layout .site-header__cta { font-size: 12px; }
body.gbs-layout .menu-button { min-width: 44px; min-height: 44px; }
/* Menu proposal A: rounded dark strokes with no enclosing shape. */
body.gbs-layout .site-header .menu-button {
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.gbs-layout .site-header .menu-button img {
  width: 24px;
  height: 24px;
}
body.gbs-layout .site-header .menu-button:focus-visible {
  outline: 2px solid #42898a;
  outline-offset: 3px;
}
body.gbs-layout .site-nav a { min-height: 44px; font-size: 14px; }
body.gbs-layout .guide { margin-top: var(--gbs-section-small); }
body.gbs-layout .guide__header { padding-block: var(--gbs-section-small) var(--gbs-heading-gap); }
body.gbs-layout .guide__header p { font-size: calc(24 * var(--gbs-unit)); line-height: 1.5; }
body.gbs-layout .guide__header span { font-size: var(--gbs-copy); line-height: 1.8; }
body.gbs-layout .guide-card span { font-size: calc(24 * var(--gbs-unit)); line-height: 1.5; }
body.gbs-layout .inquiry { padding-block: var(--gbs-section-small); }
body.gbs-layout .inquiry .section-heading { margin-bottom: var(--gbs-heading-gap); }
body.gbs-layout .inquiry .section-heading p { font-size: calc(24 * var(--gbs-unit)); line-height: 1.5; }
body.gbs-layout .contact-option p { font-size: var(--gbs-detail); line-height: 1.8; }
body.gbs-layout .site-footer { padding-block: calc(160 * var(--gbs-unit)); }
body.gbs-layout .site-footer p,
body.gbs-layout .site-footer address { font-size: var(--gbs-detail); line-height: 1.8; }
body.gbs-layout .site-footer__nav a { min-height: 36px; font-size: var(--gbs-detail); line-height: 1.8; }

body.gbs-layout:not(.home-page) :is(.about-section, .about-origin,
  .voice-intro, .voice-testimonials, .company-intro, .company-overview,
  .company-offices, .inquiry-intro, .inquiry-form-section, .consultation-section,
  .office-overview, .office-work, .work-intro, .work-support, .work-fit,
  .wages-content, .vt-wrap) {
  width: calc(100% - var(--gbs-x) * 2);
  max-width: none;
  margin-inline: auto;
  padding-block: var(--gbs-section-small);
}
body.gbs-layout:not(.home-page) :is(.about-philosophy, .voice-benefits) {
  padding-block: var(--gbs-section-small);
}
body.gbs-layout:not(.home-page) .about-policy {
  width: 100%;
  padding-inline: var(--gbs-x);
}
body.gbs-layout:not(.home-page) :is(.about-policy__inner, .voice-benefits__inner) {
  max-width: none;
}
body.gbs-layout:not(.home-page) .section-space { padding-block: var(--gbs-section-small); }
body.gbs-layout:not(.home-page) main :is(.about-copy p, .policy-item p,
  .about-philosophy__copy p, .about-origin p, .voice-intro p, .voice-card p,
  .company-intro p, .company-facts dd, .our-place-card p, .office-card p,
  .office-card address, .office-work p, .work-card p, .work-support p,
  .work-fit li, .intro__copy p, .story-row__copy p, .living-feature__copy p,
  .program p, .quote-card__body, .wages-benefit-card p, .wages-step-card p,
  .wages-info-card dd, .wages-salary-card p, .wages-salary-explanation p,
  .wages-target-card p, .wages-support-card p, .wages-salary-intro,
  .inquiry-intro p, .consultation-card p, .consultation-section__message,
  .vt-hero p, .vt-card p, .vt-faq details p) {
  font-size: var(--gbs-copy) !important;
  line-height: 1.8 !important;
  letter-spacing: .04em;
  overflow-wrap: anywhere;
}
body.gbs-layout:not(.home-page) main :is(.about-section__label,
  .about-origin__heading, .voice-office-heading, .voice-benefits__inner h2,
  .company-overview > h2, .company-offices > h2, .inquiry-form-section > h2,
  .consultation-section > h2, .office-overview h2, .office-work h2,
  .work-intro h2, .work-support h2, .work-fit h2, .vt-section-title,
  .vt-faq > h2) {
  font-size: var(--gbs-title) !important;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: -.025em;
  overflow-wrap: anywhere;
}
body.gbs-layout:not(.home-page) main :is(.story-row__copy h2,
  .living-feature__copy h2, .about-philosophy__lead) {
  font-size: calc(36 * var(--gbs-unit)) !important;
  line-height: 1.3;
  font-weight: 500;
}
body.gbs-layout:not(.home-page) main :is(.policy-item h3, .work-card h3,
  .work-support h3, .office-card h3, .office-work h3, .program h3,
  .wages-benefit-card h3, .wages-step-card h3, .wages-salary-section-title,
  .wages-salary-card h4, .wages-support-card h4, .vt-card h3, .vt-benefits h2) {
  font-size: calc(20 * var(--gbs-unit)) !important;
  font-weight: 500;
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: anywhere;
}
body.gbs-layout:not(.home-page) main :is(.voice-card h4, .inquiry-form label,
  .inquiry-form__note, .company-facts dt) { font-size: var(--gbs-detail); line-height: 1.8; }
body.gbs-layout:not(.home-page) .inquiry-form :is(input:not([type="checkbox"]), select, textarea) {
  font-size: max(16px, var(--gbs-copy));
  min-width: 0;
}
body.gbs-layout:not(.home-page) .inquiry-form-section { max-width: calc(1040 * var(--gbs-unit)); }
body.gbs-layout:not(.home-page) .company-facts {
  max-width: calc(920 * var(--gbs-unit));
  margin-left: auto;
  align-self: start;
}
body.gbs-layout:not(.home-page) :is(.about-section__eyebrow, .section-logo,
  .wages-guide-heading, .vt-section-title) { margin-bottom: var(--gbs-heading-gap); }
body.gbs-layout:not(.home-page) :is(.work-heading, .office-section-heading,
  .company-section-heading) { margin-bottom: var(--gbs-heading-gap); }
body.gbs-layout:not(.home-page) .work-heading p {
  font-size: var(--gbs-copy);
  line-height: 1.8;
}
body.gbs-layout:not(.home-page) .section-logo { max-width: 100%; max-height: calc(84 * var(--gbs-unit)); width: auto; }
body.gbs-layout:not(.home-page) :is(.story-list, .policy-list) { gap: var(--gbs-heading-gap); }
body.gbs-layout:not(.home-page) :is(.story-row, .living-feature, .about-message__body) { gap: calc(80 * var(--gbs-unit)); }
body.gbs-layout:not(.home-page) :is(.vt-flow, .vt-points, .vt-faq) { margin-top: var(--gbs-section-small); }
body.gbs-layout:not(.home-page) :is(.vt-benefits, .vt-flow__grid, .vt-points__grid,
  .office-card-grid, .work-card-grid) { gap: calc(24 * var(--gbs-unit)); }
body.gbs-layout:not(.home-page) :is(.vt-card, .work-card__body, .office-card__body) { height: auto; min-height: 0; }
body.gbs-layout:not(.home-page) .vt-card { padding: 24px 16px; }

/* Keep only the designated large numeric typography in Mincho. */
body.gbs-layout :is(.job-row__number, .wages-step-card__number,
  .vt-step__number, .wages-amount-card strong, .wages-target-card strong,
  .contact-option:first-child strong) {
  font-family: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Times New Roman", serif !important;
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: "lnum" 1, "tnum" 1;
  font-weight: 500;
}

@media (max-width: 1100px) and (min-width: 768px) {
  body.gbs-layout:not(.home-page) :is(.work-card-grid, .office-card-grid,
    .vt-benefits, .vt-flow__grid, .vt-points__grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.gbs-layout:not(.home-page) :is(.story-row, .living-feature, .about-message__body) { gap: 32px; }
  body.gbs-layout .contact-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.gbs-layout .vt-step::after { display: none; }
}
@media (max-width: 767px) {
  body.gbs-layout {
    --gbs-unit: clamp(.875px, .2564102564vw, 1.25px);
    --gbs-x: calc(20 * var(--gbs-unit));
    --gbs-section: calc(96 * var(--gbs-unit));
    --gbs-heading-gap: calc(56 * var(--gbs-unit));
    --gbs-copy: max(14px, calc(14 * var(--gbs-unit)));
    --gbs-title: calc(28 * var(--gbs-unit));
  }
  body.gbs-layout [id] { scroll-margin-top: var(--gbs-section); }
  body.gbs-layout .site-header__inner { min-height: 64px; }
  body.gbs-layout .site-header__actions { padding-right: 56px; }
  body.gbs-layout .site-header__cta { min-height: 44px; font-size: 12px; max-width: none; }
  body.gbs-layout .guide { margin-top: var(--gbs-section); }
  body.gbs-layout .guide__header { padding-block: var(--gbs-section) var(--gbs-heading-gap); }
  body.gbs-layout .guide__header p,
  body.gbs-layout .inquiry .section-heading p { font-size: max(16px, calc(16 * var(--gbs-unit))); }
  body.gbs-layout .guide__header span { font-size: 14px; }
  body.gbs-layout .guide-card span { font-size: max(14px, calc(16 * var(--gbs-unit))); }
  body.gbs-layout .inquiry { padding-block: var(--gbs-section); }
  body.gbs-layout .contact-options { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  body.gbs-layout .contact-option p { font-size: 12px; }
  body.gbs-layout .contact-option--mail strong { white-space: normal; overflow-wrap: anywhere; }
  body.gbs-layout .site-footer { padding-block: calc(96 * var(--gbs-unit)) calc(400 * var(--gbs-unit)); }
  body.gbs-layout .site-footer p,
  body.gbs-layout .site-footer address,
  body.gbs-layout .site-footer__nav a { font-size: 12px; }
  body.gbs-layout:not(.home-page) :is(.about-section, .about-origin,
    .voice-intro, .voice-testimonials, .company-intro, .company-overview,
    .company-offices, .inquiry-intro, .inquiry-form-section, .consultation-section,
    .office-overview, .office-work, .work-intro, .work-support, .work-fit,
    .wages-content, .vt-wrap, .about-philosophy, .voice-benefits, .section-space) { padding-block: var(--gbs-section); }
  body.gbs-layout:not(.home-page) main :is(.story-row__copy h2, .living-feature__copy h2,
    .about-philosophy__lead) { font-size: calc(28 * var(--gbs-unit)) !important; }
  body.gbs-layout:not(.home-page) :is(.story-row, .living-feature, .about-message__body) { gap: 32px; }
  body.gbs-layout:not(.home-page) .section-logo { max-height: calc(50.4 * var(--gbs-unit)); }
  body.gbs-layout:not(.home-page) :is(.work-card-grid, .office-card-grid,
    .vt-benefits, .vt-flow__grid, .vt-points__grid) { grid-template-columns: minmax(0, 1fr); }
  body.gbs-layout .vt-step::after { display: none; }
  body.gbs-layout .inquiry__actions { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 340px) {
  body.gbs-layout .contact-options { grid-template-columns: minmax(0, 1fr); }
  body.gbs-layout .site-header__cta { padding-inline: 8px; font-size: 11px; }
}

/* Shared Inquiry contact cards: readable mobile layout on every page. */
@media (max-width: 767px) {
  body.gbs-layout .inquiry.inquiry--static .contact-options {
    grid-template-columns: minmax(0, 1fr);
    grid-auto-rows: auto;
    gap: 12px;
  }

  body.gbs-layout .inquiry.inquiry--static .contact-option {
    grid-template-columns: 36px minmax(0, 1fr);
    align-content: center;
    justify-items: start;
    column-gap: 14px;
    row-gap: 4px;
    min-height: 120px;
    padding: 18px;
    text-align: left;
  }

  body.gbs-layout .inquiry.inquiry--static .contact-option > * {
    grid-column: 2;
    min-width: 0;
    max-width: 100%;
  }

  body.gbs-layout .inquiry.inquiry--static .contact-option > img {
    grid-column: 1;
    grid-row: 1 / span 5;
    align-self: center;
    width: 36px;
    height: 36px;
    margin: 0;
  }

  body.gbs-layout .inquiry.inquiry--static .contact-option h3 {
    margin: 0 0 4px;
    font-size: 15px;
  }

  body.gbs-layout .inquiry.inquiry--static .contact-option p {
    font-size: 12px;
    line-height: 1.6;
  }

  body.gbs-layout .inquiry.inquiry--static .contact-option strong {
    margin-top: 0;
    font-size: 18px;
  }

  body.gbs-layout .inquiry.inquiry--static .contact-option--mail strong {
    font-size: 16px;
    letter-spacing: 0;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  body.gbs-layout .inquiry.inquiry--static .contact-option__rule {
    margin: 2px 0;
  }
}
