/*
Theme Name: TORUKU Reference 90
Author: TORUKU
Description: 株式会社トルクの公式サイト用クラシックテーマ。固定ページと投稿に対応。
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: toruku-reference90
*/
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { #wpadminbar { position: fixed; } }
.toruku-content { overflow-wrap: anywhere; }
.toruku-content img { max-width: 100%; height: auto; }
.toruku-content :is(p,ul,ol,figure,blockquote) { margin-block: 1.3em; }
.toruku-content :is(h2,h3,h4) { margin-block: 1.5em .6em; }
.toruku-content a { text-decoration: underline; text-underline-offset: .2em; }
.toruku-content iframe { max-width: 100%; }
.toruku-empty { padding: 28px 0; }
.r90-page-hero__copy .r90-single-label { font: 400 clamp(70px, 9vw, 140px)/1 var(--font-en); letter-spacing: -.06em; }
.r90-article > header h1 { margin: 28px 0 50px; color: var(--sp-navy); font-family: var(--font-display); font-size: clamp(38px, 4.3vw, 58px); font-weight: 500; line-height: 1.55; }
@media (max-width: 767px) { .r90-article > header h1 { font-size: 32px; } }
.screen-reader-text { border: 0; clip-path: inset(50%); height: 1px; width: 1px; margin: -1px; padding: 0; overflow: hidden; position: absolute; white-space: nowrap; }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; padding: 12px; }
.pagination .current { background: #071827; color: #fff; }
.wpcf7-form { margin-top: 28px; }
.wpcf7-form :is(input:not([type=checkbox]):not([type=submit]),select,textarea) { width: 100%; padding: 14px; border: 1px solid #b2aea6; background: #fff; color: #071827; font: inherit; }
.wpcf7-form .form-row { display: block; margin-bottom: 24px; }
.wpcf7-form label { display: block; }
.wpcf7-form .privacy-check label { display: inline; }
.wpcf7-form .wpcf7-list-item { margin-left: 0; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* TORUKU photo overlays — 2026-09-11 */
body[data-page="home"] .r90-story .r90-story__shade {
  display: none;
  background: none;
}
body[data-page="home"] .r90-story :is(h2, small, p) {
  text-shadow: none;
}
:is(.r90-reform-menu, .r90-management-support, [aria-labelledby="equipment-list-title"]) .r90-service-card::after {
  background: none;
}
:is(.r90-reform-menu, .r90-management-support, [aria-labelledby="equipment-list-title"]) .r90-service-card > a > span[aria-hidden="true"] {
  display: none;
}
:is(.r90-reform-menu, .r90-management-support, [aria-labelledby="equipment-list-title"]) .r90-service-card > a::after {
  content: none;
  background: none;
}
:is(.r90-reform-menu, .r90-management-support, [aria-labelledby="equipment-list-title"]) :is(.r90-service-card__body, .r90-service-card__label) {
  text-shadow: none;
}

/* TORUKU news color balance — 2026-09-11 */
body[data-page="news"] .r90-page-hero--paper { background: #f5f1e9; }
body[data-page="news"] .r90-page-hero__copy p,
body[data-page="news"] .r90-news-layout__rail p { color: #52616b; }
body[data-page="news"] .r90-page-hero__copy > span,
body[data-page="news"] .r90-news-layout__rail > span { color: #75684f; }
body[data-page="news"] .r90-page-section { background: #faf8f3; }
body[data-page="news"] :is(.r90-page-hero h1, .r90-news-layout__rail h2) { color: #203442; }
body[data-page="news"] .r90-editorial-rows { border-top-color: #d5d4cd; }
body[data-page="news"] .r90-editorial-row { color: #253946; border-bottom-color: #d5d4cd; }
body[data-page="news"] .r90-editorial-row :is(time, span) { color: #626e77; }
body[data-page="news"] .r90-editorial-row strong { color: #253946; font-weight: 600; }
body[data-page="news"] .r90-editorial-row i { color: #626e77; }
body[data-page="news"] .r90-editorial-row:is(:hover, :focus-visible) { background: #efede6; }
body[data-page="news"] .r90-editorial-row:is(:hover, :focus-visible) i { color: #253946; background: transparent; }

/* TORUKU consistent LINE buttons — 2026-09-11 */
body[data-page] :is(.site-header .header-entry, a[href^="https://line.me/"], a[href^="https://lin.ee/"], a[href$="#line-contact"]) {
  color: #fff;
  background: #06c755;
  border-color: #06c755;
}
body[data-page] :is(.site-header .header-entry, a[href^="https://line.me/"], a[href^="https://lin.ee/"], a[href$="#line-contact"]):is(:hover, :focus-visible) {
  color: #fff;
  background: #047d35;
  border-color: #047d35;
}
body[data-page] :is(.site-header .header-entry, a[href^="https://line.me/"], a[href^="https://lin.ee/"], a[href$="#line-contact"]) :is(span, b, i) { color: inherit; }
body[data-page] :is(.text-link--line, .footer-line-link) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  min-height: 44px;
  padding: 12px 20px;
  border: 1px solid #06c755;
  border-radius: 999px;
  text-align: center;
  line-height: 1.6;
}

/* TORUKU contact action buttons — 2026-09-11 */
body[data-page="contact"] #line-contact .text-link--line {
  display: flex;
  margin-inline: auto;
}
body[data-page="contact"] #contact-form .wpcf7-form p:has(.wpcf7-submit) {
  position: relative;
  margin: 36px 0 0;
  text-align: center;
}
body[data-page="contact"] #contact-form .wpcf7-submit {
  appearance: none;
  display: block;
  width: min(280px, 100%);
  min-height: 60px;
  margin-inline: auto;
  padding: 16px 32px;
  border: 1px solid #071827;
  border-radius: 999px;
  background: #071827;
  color: #fff;
  font: 600 15px/1.6 var(--font-body, sans-serif);
  letter-spacing: .08em;
  text-align: center;
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease;
}
body[data-page="contact"] #contact-form .wpcf7-submit:is(:hover, :focus-visible) {
  background: #304b5e;
  border-color: #304b5e;
}
body[data-page="contact"] #contact-form .wpcf7-submit:focus-visible {
  outline: 2px solid #75643c;
  outline-offset: 4px;
}
body[data-page="contact"] #contact-form .wpcf7-submit:disabled {
  background: #56636d;
  border-color: #56636d;
  cursor: not-allowed;
}
body[data-page="contact"] #contact-form .submitting .wpcf7-submit { cursor: wait; }
body[data-page="contact"] #contact-form .wpcf7-submit + .wpcf7-spinner {
  position: absolute;
  top: calc(100% + 12px);
  left: calc(50% - 12px);
  margin: 0;
}
@media (prefers-reduced-motion: reduce) {
  body[data-page="contact"] #contact-form .wpcf7-submit { transition: none; }
}

/* TORUKU mobile header and service consultation buttons — 2026-09-11 */
@media (max-width: 767px) {
  .site-header .site-header__inner { position: relative; }
  .site-header .brand--header {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    justify-content: center;
  }
}
body:is([data-page="reform"], [data-page="equipment"], [data-page="management"]) .r90-page-hero__copy > .button {
  color: #fff;
  border-color: #fff;
  background: transparent;
}
body:is([data-page="reform"], [data-page="equipment"], [data-page="management"]) .r90-page-hero__copy > .button:is(:hover, :focus-visible) {
  color: #fff;
  border-color: #fff;
  background: rgba(255,255,255,.14);
}
body:is([data-page="reform"], [data-page="equipment"], [data-page="management"]) .r90-page-hero__copy > .button:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}

/* TORUKU mobile footer and directional header — 2026-09-11 */
@media (max-width: 767px) {
  .site-footer { text-align: center; }
  .site-footer .brand.brand--image { margin-inline: auto; }
  .site-footer .footer-nav { text-align: center; }
  body[data-page] .site-footer .footer-line-link { margin-inline: auto; }
  .site-footer .site-footer__bottom { justify-content: center; text-align: center; }
  .site-header { transition: transform .24s ease; }
  .site-header.is-scroll-hidden:not(.is-menu-open) { transform: translateY(calc(-100% - 48px)); }
}
@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
  .site-header { transition: none; }
}

/* TORUKU light backgrounds behind photo text blocks — 2026-09-11 */
body[data-page="home"] .r90-story > a > div,
:is(.r90-reform-menu, .r90-management-support, [aria-labelledby="equipment-list-title"]) .r90-service-card__body {
  width: fit-content;
  max-width: calc(100% - 56px);
  right: auto;
  padding: 0;
  background: transparent;
  color: #071827;
}
:is(.r90-reform-menu, .r90-management-support, [aria-labelledby="equipment-list-title"]) .r90-service-card__body :is(h3, p) { color: #071827; }
:is(.r90-reform-menu, .r90-management-support, [aria-labelledby="equipment-list-title"]) .r90-service-card__label {
  padding: 6px 9px;
  background: rgba(255,253,249,.86);
  color: #071827;
}
:is(.r90-reform-menu, .r90-management-support, [aria-labelledby="equipment-list-title"]) .r90-service-card__arrow {
  color: #071827;
  border-color: #071827;
  background: rgba(255,253,249,.86);
}
@media (max-width: 767px) {
  body[data-page="home"] .r90-story > a > div { max-width: calc(100% - 28px); padding: 0; }
  body[data-page="home"] .r90-story:not(.r90-story--vision) { min-height: 210px; }
  :is(.r90-reform-menu, .r90-management-support, [aria-labelledby="equipment-list-title"]) .r90-service-card__body { max-width: calc(100% - 32px); padding: 0; }
}

/* Pale backgrounds follow the text on each wrapped line. */
.r90-photo-text {
  display: inline;
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: inherit;
  text-shadow: 0 0 2px #fff, 0 0 2px #fff, 0 0 6px #fff, 0 0 12px rgba(255,255,255,.9);
}

/* TORUKU white consultation buttons in service details — 2026-09-11 */
:is([aria-labelledby="featured-work-title"], [aria-labelledby="equipment-support-title"], [aria-labelledby="management-area-title"]) .button {
  color: #fff;
  border-color: #fff;
  background: transparent;
}
:is([aria-labelledby="featured-work-title"], [aria-labelledby="equipment-support-title"], [aria-labelledby="management-area-title"]) .button:is(:hover, :focus-visible) {
  color: #fff;
  border-color: #fff;
  background: rgba(255,255,255,.14);
}
:is([aria-labelledby="featured-work-title"], [aria-labelledby="equipment-support-title"], [aria-labelledby="management-area-title"]) .button:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}

/* Photo labels use text shadows without background panels. */
body[data-page="home"] .r90-story__eyebrow,
:is(.r90-reform-menu, .r90-management-support, [aria-labelledby="equipment-list-title"]) .r90-service-card__label {
  padding: 0;
  background: none;
  backdrop-filter: none;
  text-shadow: 0 0 2px #fff, 0 0 2px #fff, 0 0 6px #fff, 0 0 12px rgba(255,255,255,.9);
}

/* TORUKU mobile management consultation spacing — 2026-09-11 */
@media (max-width: 767px) {
  body[data-page="management"] [aria-labelledby="onestop-title"] > .r90-editorial-split + .r90-proof-grid {
    margin-top: 32px;
  }
}

/* TORUKU desktop access map spacing — 2026-09-11 */
@media (min-width: 1121px) {
  body[data-page="company"] [aria-labelledby="access-title"] .r90-editorial-split--reverse > figure {
    margin-right: 0;
  }
}

/* News index: heading followed by the list on desktop — 2026-09-11 */
@media (min-width: 768px) {
  body[data-page="news"] .r90-news-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 40px;
  }
  body[data-page="news"] .r90-news-layout__rail {
    position: static;
  }
}

/* TORUKU equipment warranty and illustrated lineup — 2026-10-01 */
body[data-page="equipment"] .r90-page-hero h1 {
  font-size: clamp(38px, 3.6vw, 58px);
  line-height: 1.4;
}
.r90-warranty-years { font-size: 1.22em; }
.r90-warranty-desk { display: block; margin-top: 10px; font-size: .58em; letter-spacing: 0; }

/* Hero brochure download — 2026-10-01 */
body[data-page="equipment"] .r90-equipment-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin-top: 32px; }
body[data-page="equipment"] .r90-equipment-hero-actions > .button { display: inline-flex; width: 250px; max-width: 100%; min-height: 66px; margin: 0; border: 1px solid #fffdf9; color: #fffdf9; background: transparent; }
body[data-page="equipment"] .r90-equipment-hero-actions > .button:not(.r90-equipment-hero-download):is(:hover, :focus-visible) { color: #fffdf9; background: rgba(255,253,249,.08); }
body[data-page="equipment"] .r90-equipment-hero-actions > .r90-equipment-hero-download { flex-direction: column; align-items: flex-start; justify-content: center; gap: 3px; padding: 12px 48px 12px 24px; color: var(--sp-navy); background: var(--sp-pale); border-color: var(--sp-pale); font-size: 12px; line-height: 1.6; }
body[data-page="equipment"] .r90-equipment-hero-download > span { color: inherit; font: 400 10px/1.4 var(--font-en); letter-spacing: .08em; }
body[data-page="equipment"] .r90-equipment-hero-download::after { content: "↓"; width: auto; height: auto; border: 0; color: inherit; font-size: 20px; transform: none; }
body[data-page="equipment"] .r90-equipment-hero-actions > .r90-equipment-hero-download:is(:hover, :focus-visible) { color: var(--sp-navy); background: #e5d5b1; border-color: #e5d5b1; }
body[data-page="equipment"] .r90-equipment-hero-actions > .button:focus-visible { outline: 2px solid #fffdf9; outline-offset: 5px; }
@media (max-width: 767px) {
  body[data-page="equipment"] .r90-equipment-hero-actions { margin-top: 26px; }
  body[data-page="equipment"] .r90-equipment-hero-actions > .button { width: 100%; }
}

/* Use the site's editorial palette, typography and ruled grid. */
.r90-equipment-lineup { background: var(--sp-paper); color: var(--sp-navy); }
.r90-equipment-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; margin: -22px 0 62px; }
.r90-equipment-intro > span,
.r90-equipment-category > header > span,
.r90-equipment-multi > header > span,
.r90-equipment-warranty > header > span,
.r90-equipment-brochure > div > span { color: var(--sp-gold); font: 500 10px/1.6 var(--font-en); letter-spacing: .14em; }
.r90-equipment-intro > p { margin: 0; color: #56636d; font-size: 13px; line-height: 2; }
.r90-equipment-category { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(0, 4fr); gap: 40px; padding: 42px 0; border-top: 1px solid var(--sp-line); }
.r90-equipment-category > header { padding-top: 16px; }
.r90-equipment-category > header h3 { margin: 17px 0 0; color: var(--sp-navy); font: 500 clamp(20px, 1.8vw, 28px)/1.65 var(--font-display); overflow-wrap: anywhere; }
.r90-equipment-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid var(--sp-line); border-left: 1px solid var(--sp-line); list-style: none; }
.r90-equipment-grid > li { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; min-width: 0; padding: 26px; border-right: 1px solid var(--sp-line); border-bottom: 1px solid var(--sp-line); list-style: none; }
.r90-equipment-icon { display: grid; width: 62px; height: 62px; place-items: center; flex: 0 0 auto; color: var(--sp-gold); }
.r90-equipment-icon svg { display: block; width: 100%; height: 100%; }
.r90-equipment-item__copy { min-width: 0; }
.r90-equipment-item h4 { margin: 0; color: var(--sp-navy); font: 500 17px/1.75 var(--font-display); word-break: normal; overflow-wrap: anywhere; }
.r90-equipment-item h4 > span { display: block; margin-top: 3px; font: 400 11px/1.7 var(--font-body); color: #56636d; }
.r90-equipment-item p { margin: 10px 0 0; color: #56636d; font-size: 11px; line-height: 1.9; }
.r90-equipment-multi { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); align-items: center; gap: 48px; margin-top: 18px; padding: 38px 0 48px; border-top: 1px solid var(--sp-navy); }
.r90-equipment-multi h3 { margin: 16px 0 12px; color: var(--sp-navy); font: 500 clamp(22px, 2vw, 30px)/1.6 var(--font-display); overflow-wrap: anywhere; }
.r90-equipment-multi p { margin: 0; color: #56636d; font-size: 12px; line-height: 1.9; }
.r90-equipment-multi__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.r90-equipment-multi__grid > li { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 18px 12px; border-left: 1px solid var(--sp-line); }
.r90-equipment-multi__grid > li > span { color: #56636d; font-size: 11px; }
.r90-equipment-multi__grid strong { color: var(--sp-navy); font: 400 48px/1 var(--font-en); }
.r90-equipment-multi__grid small { margin-left: 6px; font: 400 12px var(--font-body); }
.r90-equipment-warranty { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.8fr); align-items: start; gap: 54px; margin-top: 18px; padding: clamp(28px, 4vw, 56px); color: #fffdf9; background: var(--sp-navy); }
.r90-equipment-warranty > header > span { color: var(--sp-pale); }
.r90-equipment-warranty h3 { margin: 22px 0; color: #fffdf9; font: 500 clamp(26px, 2.5vw, 36px)/1.65 var(--font-display); overflow-wrap: anywhere; }
.r90-equipment-warranty > header p { margin: 0; color: #e1ddd4; font-size: 12px; line-height: 1.9; }
.r90-equipment-terms { margin: 0; }
.r90-equipment-terms > div { display: grid; grid-template-columns: 120px minmax(0, 1fr); align-items: baseline; gap: 20px; padding: 15px 0; border-bottom: 1px solid rgba(255,253,249,.2); }
.r90-equipment-terms > div:first-child { padding-top: 0; }
.r90-equipment-terms > div:last-child { border-bottom: 0; padding-bottom: 0; }
.r90-equipment-terms dt { color: var(--sp-pale); font-size: 12px; line-height: 1.8; }
.r90-equipment-terms dd { margin: 0; font-size: 15px; line-height: 1.8; }
.r90-equipment-terms strong { margin: 0 3px; font: 400 36px/1.2 var(--font-en); }
.r90-equipment-terms small { display: block; margin-top: 5px; color: #e1ddd4; font-size: 10px; line-height: 1.7; }
.r90-equipment-brochure { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-top: 48px; padding: 36px 0 0; border-top: 1px solid var(--sp-line); }
.r90-equipment-brochure > div { min-width: 0; }
.r90-equipment-brochure h3 { margin: 13px 0; color: var(--sp-navy); font: 500 clamp(20px, 2vw, 28px)/1.65 var(--font-display); overflow-wrap: anywhere; }
.r90-equipment-brochure p { margin: 0; color: #56636d; font-size: 12px; line-height: 1.9; }
.r90-equipment-download.button { display: inline-flex; flex-direction: column; align-items: flex-start; justify-content: center; flex-shrink: 0; gap: 5px; min-height: 74px; padding: 15px 56px 15px 26px; border: 1px solid var(--sp-navy); border-radius: 0; color: var(--sp-navy); background: transparent; font-size: 12px; line-height: 1.5; text-decoration: none; }
.r90-equipment-download.button::after { content: "↓"; width: auto; height: auto; border: 0; font-size: 20px; transform: none; }
.r90-equipment-download.button > span { font: 400 10px/1.5 var(--font-en); letter-spacing: .08em; }
.r90-equipment-download.button:is(:hover, :focus-visible) { color: #fffdf9; background: var(--sp-navy); }
.r90-equipment-download:focus-visible { outline: 2px solid var(--sp-gold); outline-offset: 5px; }
@media (min-width: 768px) and (max-width: 1120px) {
  .r90-equipment-category { grid-template-columns: 1fr; gap: 26px; }
  .r90-equipment-category > header { padding-top: 0; }
  .r90-equipment-category > header h3 { margin-top: 10px; }
  .r90-equipment-grid > li { padding: 24px; }
  .r90-equipment-warranty { grid-template-columns: 1fr 1.5fr; gap: 32px; }
  .r90-equipment-terms > div { grid-template-columns: 96px minmax(0,1fr); gap: 12px; }
}
@media (max-width: 767px) {
  body[data-page="equipment"] .r90-page-hero h1 { font-size: clamp(32px, 8.9vw, 42px); }
  body[data-page="equipment"] .r90-page-hero__copy { padding-top: 70px; padding-bottom: 44px; }
  body[data-page="equipment"] .r90-page-hero__copy > p { font-size: 13px; line-height: 1.9; }
  .r90-equipment-intro { flex-direction: column; gap: 16px; margin: -10px 0 34px; }
  .r90-equipment-intro > p { font-size: 12px; }
  .r90-equipment-category { grid-template-columns: 1fr; gap: 24px; padding: 30px 0; }
  .r90-equipment-category > header { padding-top: 0; }
  .r90-equipment-category > header h3 { margin-top: 10px; font-size: 23px; }
  .r90-equipment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .r90-equipment-grid > li { padding: 20px 16px; gap: 16px; }
  .r90-equipment-icon { width: 50px; height: 50px; }
  .r90-equipment-item h4 { font-size: 14px; line-height: 1.75; }
  .r90-equipment-item h4 > span { font-size: 10px; }
  .r90-equipment-item p { font-size: 10px; }
  .r90-equipment-multi { grid-template-columns: 1fr; gap: 26px; margin-top: 8px; padding: 30px 0; }
  .r90-equipment-multi h3 { margin-top: 12px; font-size: 23px; }
  .r90-equipment-multi__grid > li:first-child { border-left: 0; }
  .r90-equipment-multi__grid > li { padding: 10px 6px; gap: 12px; }
  .r90-equipment-multi__grid strong { font-size: 38px; }
  .r90-equipment-warranty { grid-template-columns: 1fr; gap: 30px; margin-top: 12px; padding: 30px 22px; }
  .r90-equipment-warranty h3 { margin: 15px 0; font-size: 26px; }
  .r90-equipment-warranty > header p { font-size: 11px; }
  .r90-equipment-terms > div { grid-template-columns: 90px minmax(0,1fr); gap: 10px; padding: 13px 0; }
  .r90-equipment-terms dt { font-size: 11px; }
  .r90-equipment-terms dd { font-size: 13px; }
  .r90-equipment-terms strong { font-size: 30px; }
  .r90-equipment-brochure { flex-direction: column; align-items: stretch; gap: 24px; margin-top: 34px; padding-top: 28px; }
  .r90-equipment-brochure h3 { font-size: 22px; }
  .r90-equipment-download.button { width: 100%; min-width: 0; }
}
