/*
Theme Name: Uchiyama Komuten
Description: 内山工務店の新HP専用テーマ。
Author: Uchiyama Komuten
Version: 1.1.0
Requires at least: 7.1
Requires PHP: 8.5
Text Domain: uchiyama
*/

:root {
  --color-ink: #193128;
  --color-ink-soft: #475a51;
  --color-paper: #fffefa;
  --color-mist: #f2f5ef;
  --color-sand: #eee9de;
  --color-sky: #dfecef;
  --color-leaf: #35634e;
  --color-deep: #173b30;
  --color-line: #ccd5ce;
  --font-sans: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif;
  --font-serif: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  --content-width: 1180px;
  --page-gutter: clamp(1.25rem, 4vw, 4rem);
  color-scheme: light;
  font-family: var(--font-sans);
  color: var(--color-ink);
  background: var(--color-paper);
  font-synthesis: none;
}

html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
*, *::before, *::after { box-sizing: border-box; }
body { min-width: 0; min-height: 100vh; margin: 0; overflow-x: hidden; background: var(--color-paper); color: var(--color-ink); font-size: 1rem; line-height: 1.9; -webkit-font-smoothing: antialiased; }
body, button, input, textarea, select { font-family: var(--font-sans); }
a { color: inherit; text-decoration-thickness: 0.08em; text-underline-offset: 0.22em; }
a:hover { text-decoration: none; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #19714b; outline-offset: 4px; }
img, svg { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, figure, blockquote, dl, dd { margin-top: 0; }
h1, h2, h3 { text-wrap: balance; }
.heading-line { display: block; }
.heading-phrase { display: inline-block; white-space: nowrap; }

.content-width { width: min(calc(100% - (var(--page-gutter) * 2)), var(--content-width)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 999; top: 0.75rem; left: 0.75rem; padding: 0.65rem 1rem; translate: 0 -160%; background: var(--color-paper); border: 2px solid var(--color-ink); }
.skip-link:focus { translate: 0; }

.site-header { position: relative; z-index: 50; border-bottom: 1px solid rgb(25 49 40 / 12%); background: rgb(255 254 250 / 94%); }
.site-header__inner { display: flex; min-height: 4.75rem; align-items: center; justify-content: space-between; gap: 1.5rem; }
.site-brand { display: inline-flex; flex: 0 0 auto; text-decoration: none; }
.site-brand__logo { width: clamp(8.2rem, 13vw, 9.75rem); height: auto; }
.desktop-nav { display: none; align-items: center; gap: clamp(0.75rem, 1.15vw, 1.15rem); font-size: 0.88rem; font-weight: 600; letter-spacing: 0.02em; white-space: nowrap; }
.desktop-nav > a { text-decoration: none; }
.mobile-nav { position: relative; }
.mobile-nav summary { display: grid; width: 2.75rem; height: 2.75rem; cursor: pointer; list-style: none; place-content: center; gap: 0.3rem; }
.mobile-nav summary::-webkit-details-marker { display: none; }
.mobile-nav summary span { display: block; width: 1.5rem; height: 1px; background: var(--color-ink); }
.mobile-nav__panel { position: absolute; top: 3.25rem; right: 0; display: grid; width: min(82vw, 19rem); padding: 1.25rem 1.5rem; border: 1px solid var(--color-line); background: var(--color-paper); }
.mobile-nav__panel a { padding: 0.65rem 0; border-bottom: 1px solid var(--color-line); text-decoration: none; }
.mobile-nav__panel a:last-child { border-bottom: 0; }

.line-cta { display: inline-flex; align-items: center; justify-content: center; gap: 0.65rem; min-height: 3rem; padding: 0.7rem 1.25rem; border: 1px solid var(--color-leaf); border-radius: 999px; background: var(--color-leaf); color: white; font-weight: 700; line-height: 1.25; text-decoration: none; }
.line-cta.is-disabled { cursor: not-allowed; border-color: #829489; background: #829489; }
.line-cta__status { padding-left: 0.65rem; border-left: 1px solid rgb(255 255 255 / 55%); font-size: 0.65rem; font-weight: 500; letter-spacing: 0.08em; }
.line-cta--header { min-height: 2.5rem; padding-inline: 1rem; font-size: 0.72rem; }
.line-cta--mobile-menu { margin-top: 0.8rem; color: white; }

.hero { position: relative; padding: clamp(3rem, 7vw, 7rem) 0 clamp(5rem, 10vw, 9rem); background: var(--color-mist); }
.hero__inner { display: grid; gap: 2.5rem; }
.hero__copy, .photo-placeholder { min-width: 0; }
.eyebrow, .section-number, .product-intro__label, .scene-time { margin-bottom: 1rem; color: var(--color-leaf); font-size: 0.68rem; font-weight: 700; letter-spacing: 0.18em; line-height: 1.5; }
.hero h1 { margin-bottom: 2rem; font-family: var(--font-serif); font-size: clamp(3.4rem, 14vw, 8.5rem); font-weight: 600; letter-spacing: 0.03em; line-height: 1.12; }
.hero__question { margin-bottom: 1.5rem; font-family: var(--font-serif); font-size: clamp(1.25rem, 3vw, 2rem); font-weight: 600; line-height: 1.7; }
.hero__body { margin-bottom: 0; color: var(--color-ink-soft); font-size: clamp(0.98rem, 1.6vw, 1.1rem); }
.hero__scroll { position: absolute; right: 0.75rem; bottom: 1.25rem; margin: 0; color: var(--color-ink-soft); font-size: 0.55rem; letter-spacing: 0.18em; writing-mode: vertical-rl; }

.photo-placeholder { position: relative; display: grid; min-height: 17rem; margin-bottom: 0; overflow: hidden; place-items: center; background: var(--color-sky); border: 1px solid rgb(25 49 40 / 16%); color: var(--color-ink); text-align: center; }
.photo-placeholder::before, .photo-placeholder::after { position: absolute; content: ""; background: rgb(25 49 40 / 13%); }
.photo-placeholder::before { width: 1px; height: 140%; rotate: 48deg; }
.photo-placeholder::after { width: 140%; height: 1px; rotate: -36deg; }
.photo-placeholder.has-image { display: block; }
.photo-placeholder.has-image::before, .photo-placeholder.has-image::after { content: none; }
.photo-placeholder.has-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.photo-placeholder figcaption { z-index: 2; max-width: 15rem; padding: 0.65rem 1rem; background: rgb(255 254 250 / 88%); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.06em; line-height: 1.6; }
.photo-placeholder.has-image figcaption { position: absolute; right: 0.75rem; bottom: 0.75rem; max-width: min(16rem, calc(100% - 1.5rem)); }
.photo-placeholder__index, .photo-placeholder__badge { position: absolute; z-index: 2; top: 0.75rem; padding: 0.35rem 0.55rem; background: rgb(255 254 250 / 90%); font-size: 0.55rem; font-weight: 700; letter-spacing: 0.12em; line-height: 1.35; }
.photo-placeholder__index { left: 0.75rem; }
.photo-placeholder__badge { right: 0.75rem; }
.photo-placeholder--hero { min-height: clamp(23rem, 62vh, 45rem); background: #dce9e1; }
.photo-placeholder--portrait, .photo-placeholder--profile { min-height: 30rem; }
.photo-placeholder--wide { min-height: clamp(20rem, 55vw, 40rem); margin-top: clamp(2.5rem, 6vw, 5rem); }

.section { padding: clamp(5.5rem, 12vw, 10rem) 0; }
.section h2 { margin-bottom: clamp(2rem, 5vw, 4rem); font-family: var(--font-serif); font-size: clamp(2.35rem, 7vw, 5.8rem); font-weight: 600; letter-spacing: 0.025em; line-height: 1.3; }
.prose { max-width: 43rem; color: var(--color-ink-soft); line-height: 2; }
.prose p { margin-bottom: 1.45rem; }
.prose strong { color: var(--color-ink); }
.prose--large { font-size: clamp(1.05rem, 2vw, 1.3rem); }
.prose--lead { font-size: clamp(1rem, 1.8vw, 1.22rem); }
.split-layout { display: grid; gap: 3rem; }
.statement { margin: clamp(3rem, 7vw, 5rem) 0 0; padding-left: 1.25rem; border-left: 3px solid var(--color-leaf); font-family: var(--font-serif); font-size: clamp(1.55rem, 4vw, 2.6rem); font-weight: 600; line-height: 1.65; }

.section--hiraya { background: var(--color-mist); }
.product-philosophy { margin-bottom: clamp(2rem, 5vw, 4rem); color: var(--color-ink-soft); font-family: var(--font-serif); font-size: clamp(1.5rem, 4vw, 2.8rem); font-weight: 600; line-height: 1.55; }
.product-heading { display: grid; gap: 2rem; }
.product-heading h2 { margin-bottom: 0; }
.product-lead { align-self: end; }
.product-lead strong { font-family: var(--font-serif); font-size: clamp(1.35rem, 3vw, 2rem); font-weight: 600; }
.concept-plan { position: relative; margin: clamp(3rem, 8vw, 6rem) 0 0; overflow: hidden; border: 1px solid var(--color-line); background: var(--color-paper); }
.concept-plan__image { width: 100%; height: clamp(31rem, 138vw, 40rem); object-fit: cover; object-position: 50% 50%; }
.concept-plan__label { position: absolute; z-index: 2; top: 0.75rem; left: 0.75rem; padding: 0.5rem 0.7rem; background: rgb(23 59 48 / 92%); color: #fffef8; font-size: 0.58rem; font-weight: 700; letter-spacing: 0.12em; }
.concept-plan figcaption { position: absolute; z-index: 2; right: 0.75rem; bottom: 0.75rem; max-width: calc(100% - 1.5rem); padding: 0.55rem 0.75rem; background: rgb(255 254 250 / 92%); font-size: 0.72rem; font-weight: 700; }
.concept-plan__notice { margin: 1rem 0 0; color: var(--color-ink-soft); font-size: 0.72rem; line-height: 1.75; }
.concept-plan-full { margin-top: 1rem; border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); }
.concept-plan-full summary { cursor: pointer; padding: 0.85rem 0; color: var(--color-leaf); font-size: 0.78rem; font-weight: 700; }
.concept-plan-full__scroll { overflow-x: auto; padding: 0 0 1rem; overscroll-behavior-inline: contain; }
.concept-plan-full__scroll img { width: 64rem; max-width: none; }
.product-points { margin-top: clamp(4rem, 9vw, 7rem); }
.product-points__title { margin-bottom: 2rem; font-family: var(--font-serif); font-size: clamp(1.55rem, 4vw, 2.5rem); font-weight: 600; }
.product-points__grid { display: grid; border-top: 1px solid var(--color-line); }
.product-point { min-width: 0; padding: 2rem 0; border-bottom: 1px solid var(--color-line); }
.product-point__number { margin-bottom: 1rem; color: var(--color-leaf); font-size: 0.65rem; font-weight: 700; letter-spacing: 0.16em; }
.product-point h3 { margin-bottom: 1.25rem; font-family: var(--font-serif); font-size: clamp(1.45rem, 3vw, 2.1rem); line-height: 1.5; }
.product-point p:not(.product-point__number) { margin-bottom: 1rem; color: var(--color-ink-soft); }
.product-point p:last-child { margin-bottom: 0; }
.product-basics { margin-top: clamp(3.5rem, 8vw, 6rem); padding: clamp(1.5rem, 4vw, 3rem); background: var(--color-paper); }
.product-basics ul { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--color-line); }
.product-basics li { padding: 0.85rem 0; border-bottom: 1px solid var(--color-line); font-size: 0.9rem; }
.product-summary { width: min(100%, 50rem); margin: clamp(3.5rem, 8vw, 6rem) 0 0 auto; padding-left: 1.25rem; border-left: 3px solid var(--color-leaf); color: var(--color-ink-soft); }
.product-summary__lead { color: var(--color-ink); font-family: var(--font-serif); font-size: clamp(1.55rem, 4vw, 2.6rem); font-weight: 600; line-height: 1.6; }
.product-summary__note { margin-bottom: 0; font-size: 0.85rem; }

.living-intro { max-width: 42rem; margin: calc(-1 * clamp(1rem, 2vw, 2rem)) 0 clamp(3rem, 7vw, 5rem); color: var(--color-ink-soft); }
.living-grid { display: grid; gap: clamp(3.5rem, 8vw, 6rem); }
.living-scene { min-width: 0; }
.living-scene .photo-placeholder { aspect-ratio: 4 / 3; min-height: 0; }
.living-scene__copy { padding-top: 1.5rem; }
.living-scene__copy h3 { margin-bottom: 0.75rem; font-family: var(--font-serif); font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.5; }
.living-scene__copy p:last-child { margin-bottom: 0; color: var(--color-ink-soft); }
.scene-time { margin-bottom: 0.5rem; }

.section--question { overflow: hidden; background: var(--color-deep); color: #fffef8; }
.section-number--light { color: #a9c8b7; }
.question-layout { display: grid; gap: 2rem; }
.question-list, .choice-list, .cost-list { margin: 0; padding: 0; list-style: none; }
.question-list { display: flex; flex-wrap: wrap; align-content: center; gap: 0.7rem; }
.question-list li { padding: 0.45rem 0.9rem; border: 1px solid rgb(255 255 255 / 38%); border-radius: 999px; font-size: clamp(0.85rem, 1.5vw, 1rem); }
.question-statement { margin-top: clamp(4rem, 9vw, 8rem); margin-bottom: 0; font-family: var(--font-serif); font-size: clamp(1.55rem, 4.5vw, 3.3rem); text-align: right; line-height: 1.6; }

.choice-list { display: grid; margin-top: 3rem; border-top: 1px solid var(--color-line); }
.choice-list li { display: flex; align-items: baseline; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--color-line); font-family: var(--font-serif); font-size: clamp(1.05rem, 2.5vw, 1.55rem); font-weight: 600; }
.choice-list span { color: var(--color-leaf); font-family: var(--font-sans); font-size: 0.65rem; letter-spacing: 0.15em; }
.choice-statement { margin: clamp(3.5rem, 8vw, 6rem) 0 0; color: var(--color-ink-soft); font-size: clamp(1.05rem, 2.2vw, 1.35rem); line-height: 2; }
.choice-statement strong { display: inline-block; margin-top: 0.75rem; color: var(--color-ink); font-family: var(--font-serif); font-size: clamp(1.7rem, 4vw, 3rem); line-height: 1.65; }

.section--performance { background: var(--color-sky); }
.performance-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: clamp(3rem, 7vw, 5rem) 0; border-top: 1px solid rgb(25 49 40 / 25%); border-left: 1px solid rgb(25 49 40 / 25%); }
.performance-list > div { min-width: 0; padding: 1.2rem; border-right: 1px solid rgb(25 49 40 / 25%); border-bottom: 1px solid rgb(25 49 40 / 25%); }
.performance-list dt { color: var(--color-ink-soft); font-size: 0.72rem; }
.performance-list dd { margin-bottom: 0; font-size: 0.85rem; }
.performance-list strong { margin-inline: 0.15rem; font-family: var(--font-serif); font-size: clamp(1.6rem, 5vw, 3rem); font-weight: 600; }
.performance-note { max-width: 47rem; color: var(--color-ink-soft); }
.performance-note p { margin-bottom: 0.35rem; }
.future-page-link { display: inline-flex; gap: 0.75rem; margin: 2.5rem 0 0; padding-bottom: 0.35rem; border-bottom: 1px solid currentcolor; font-weight: 700; text-decoration: none; }
.future-page-link span { color: var(--color-ink-soft); font-size: 0.65rem; font-weight: 500; }

.section--price { background: var(--color-sand); }
.price-layout { display: grid; gap: 3rem; }
.price-lead { max-width: 24rem; font-family: var(--font-serif); font-size: clamp(1.2rem, 2.5vw, 1.65rem); line-height: 1.8; }
.cost-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 2.5rem 0; border-top: 1px solid var(--color-ink); border-bottom: 1px solid var(--color-ink); }
.cost-list li { padding: 0.85rem 0.1rem; font-size: clamp(0.68rem, 2.5vw, 0.9rem); text-align: center; }
.price-body blockquote { margin: 3rem 0 0; font-family: var(--font-serif); font-size: clamp(1.65rem, 4.5vw, 3rem); line-height: 1.6; }
.price-body blockquote small { display: block; margin-top: 1.25rem; font-family: var(--font-sans); font-size: 0.9rem; line-height: 1.8; }

.about-layout { display: grid; gap: 3rem; }
.photo-placeholder--profile { background: #e8e1d3; }
.about-copy h2 { margin-bottom: 2.5rem; }
.profile { display: grid; margin-bottom: 2.5rem; padding: 1.25rem 0; border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); }
.profile span { color: var(--color-ink-soft); font-size: 0.8rem; }
.profile strong { padding-block: 0.25rem; font-family: var(--font-serif); font-size: 1.6rem; }

.final-cta { background: var(--color-mist); text-align: center; }
.final-cta__inner { display: flex; flex-direction: column; align-items: center; }
.final-cta h2 { margin-bottom: 2rem; font-size: clamp(2.2rem, 7vw, 5rem); }
.final-cta__body { margin-inline: auto; }
.line-cta--large { min-width: min(100%, 20rem); min-height: 4rem; margin-top: 1.5rem; padding-inline: 2rem; }
.final-cta__note { margin: 1rem 0 0; color: var(--color-ink-soft); font-size: 0.8rem; }

.site-footer { padding: 4rem 0 6.5rem; background: var(--color-deep); color: #fffef8; }
.site-footer__inner { display: grid; gap: 3rem; }
.site-footer__name { margin-bottom: 0.25rem; font-family: var(--font-serif); font-size: 1.5rem; font-weight: 600; letter-spacing: 0.08em; }
.site-footer__brand address, .site-footer__contact p, .future-link { color: #c4d1ca; }
.site-footer__brand address { font-style: normal; font-size: 0.78rem; line-height: 1.8; }
.site-footer__brand address p { margin: 0.75rem 0 0; }
.site-footer__brand address a { color: inherit; text-decoration: none; }
.site-footer__nav { display: grid; }
.site-footer__nav a, .site-footer__nav span { padding: 0.35rem 0; font-size: 0.85rem; text-decoration: none; }
.line-cta--footer { border-color: #fffef8; background: transparent; }
.line-cta--footer.is-disabled { border-color: #889c91; background: transparent; color: #c4d1ca; }
.site-footer__copyright { width: min(calc(100% - (var(--page-gutter) * 2)), var(--content-width)); margin: 3rem auto 0; padding-top: 1.5rem; border-top: 1px solid rgb(255 255 255 / 20%); color: #9eb0a6; font-size: 0.65rem; letter-spacing: 0.1em; }
.mobile-fixed-cta { position: fixed; z-index: 40; right: 0.75rem; bottom: 0.75rem; left: 0.75rem; }
.line-cta--mobile { width: 100%; border: 1px solid rgb(255 255 255 / 65%); }
.site-main--fallback { min-height: 65vh; padding: 6rem 0; }
.breadcrumb { border-bottom: 1px solid var(--color-line); background: #fffef8; }
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-block: 0; padding-block: 0.7rem; list-style: none; color: var(--color-ink-soft); font-size: 0.7rem; }
.breadcrumb li + li::before { margin-right: 0.55rem; content: ">"; }
.breadcrumb a { color: inherit; text-decoration: none; }

/* Lower pages */
.page-main { overflow: clip; }
.page-hero { padding: clamp(5rem, 11vw, 9rem) 0; background: var(--color-mist); }
.page-hero--sky { background: var(--color-sky); }
.page-hero--sand { background: var(--color-sand); }
.page-hero--compact { padding-block: clamp(4rem, 8vw, 6.5rem); }
.page-hero__inner { max-width: 70rem; }
.page-kicker { margin: 0 0 1.4rem; color: var(--color-leaf); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.18em; }
.page-hero h1 { max-width: 13em; margin: 0; font-family: var(--font-serif); font-size: clamp(2.6rem, 8vw, 6rem); font-weight: 600; line-height: 1.25; letter-spacing: 0.03em; }
.page-hero__lead { max-width: 42rem; margin: clamp(2rem, 5vw, 3.5rem) 0 0; font-family: var(--font-serif); font-size: clamp(1.05rem, 2.3vw, 1.45rem); line-height: 2; }
.page-section { padding: clamp(5rem, 11vw, 9rem) 0; }
.page-section--tint { background: var(--color-mist); }
.page-section--sky { background: var(--color-sky); }
.page-section--sand { background: var(--color-sand); }
.editorial-grid { display: grid; gap: clamp(2rem, 6vw, 5rem); }
.editorial-grid h2, .value-panel h2, .empty-state h2 { font-size: clamp(2rem, 5.5vw, 4.25rem); }
.prose--large { max-width: 46rem; font-size: clamp(1rem, 2vw, 1.15rem); line-height: 2.15; }
.value-panel { padding-block: clamp(4rem, 9vw, 7rem); }
.value-panel h2 { max-width: 14em; margin-bottom: 2rem; }
.value-panel p { max-width: 46rem; }

.shared-cta { background: var(--color-deep); color: #fffef8; text-align: center; }
.shared-cta__inner { display: flex; flex-direction: column; align-items: center; }
.shared-cta h2 { max-width: 12em; margin: 0 auto 1.6rem; font-size: clamp(2.25rem, 6.5vw, 5rem); }
.shared-cta p { color: #dce5df; }
.shared-cta .line-cta { margin-top: 1.5rem; border-color: #fffef8; }
.shared-cta__note { margin-bottom: 0; font-size: 0.75rem; }

.performance-page-lead { margin-bottom: clamp(4rem, 8vw, 7rem); }
.performance-list--page { max-width: 70rem; margin-inline: auto; }
.spec-note { max-width: 50rem; margin: 2rem auto 0; color: var(--color-ink-soft); font-size: 0.82rem; }
.price-components { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; padding: 1px; background: var(--color-line); }
.price-components > div { padding: clamp(1.5rem, 4vw, 2.5rem); background: #fffef8; }
.price-components h3 { margin: 0 0 0.5rem; font-size: clamp(1.2rem, 3vw, 1.65rem); }
.price-components p { margin: 0; color: var(--color-ink-soft); }
.price-slot { padding: clamp(2.5rem, 6vw, 4rem); border: 1px solid var(--color-line); }
.price-slot p { margin: 0; }

.concept-plan--page { margin: 0 auto; }
.concept-plan--page .concept-plan__notice { max-width: 52rem; margin: 1.5rem auto 0; color: var(--color-ink-soft); font-size: 0.82rem; text-align: center; }
.reason-grid { display: grid; gap: 1px; padding: 1px; background: var(--color-line); }
.reason-card { padding: clamp(2rem, 5vw, 4rem); background: #fffef8; }
.reason-card h2 { margin: 1rem 0 1.5rem; font-size: clamp(1.65rem, 4vw, 2.6rem); }
.reason-card p:last-child { margin-bottom: 0; }
.detail-columns { display: grid; gap: 3rem; }
.detail-columns h2 { margin-bottom: 1.5rem; font-size: clamp(1.6rem, 4vw, 2.4rem); }
.detail-columns ul { margin: 0; padding: 0; list-style: none; }
.detail-columns li { padding: 0.7rem 0; border-bottom: 1px solid var(--color-line); }

.about-page-grid { display: grid; gap: clamp(3rem, 8vw, 7rem); }
.about-page-grid .photo-placeholder { min-height: 30rem; }
.about-page-grid .profile { margin-top: 3rem; }
.company-profile { display: grid; gap: clamp(2.5rem, 7vw, 6rem); }
.company-profile h2 { font-size: clamp(2rem, 5.5vw, 4.25rem); }
.company-data { margin: 0; border-top: 1px solid var(--color-line); }
.company-data > div { display: grid; grid-template-columns: minmax(5.5rem, 0.3fr) minmax(0, 1fr); gap: 1.25rem; padding: 1rem 0; border-bottom: 1px solid var(--color-line); }
.company-data dt { color: var(--color-ink-soft); font-size: 0.75rem; }
.company-data dd { margin: 0; }
.company-data a { text-underline-offset: 0.2em; }
.empty-state { max-width: 52rem; padding-block: clamp(2rem, 6vw, 5rem); text-align: center; }
.empty-state h2 { margin-inline: auto; }
.empty-state p:last-child { margin-bottom: 0; }
.legal-copy { max-width: 50rem; }
.legal-copy section + section { margin-top: 3rem; }
.legal-copy h2 { font-size: clamp(1.4rem, 3vw, 2rem); }

.journal-list { border-top: 1px solid var(--color-line); }
.journal-card { padding: clamp(2rem, 5vw, 3.5rem) 0; border-bottom: 1px solid var(--color-line); }
.journal-card__meta { margin: 0 0 0.75rem; color: var(--color-ink-soft); font-size: 0.72rem; letter-spacing: 0.08em; }
.journal-card h2 { margin: 0; font-size: clamp(1.5rem, 4vw, 2.6rem); }
.journal-card h2 a { text-decoration: none; }
.journal-card__excerpt { max-width: 46rem; margin-top: 1.2rem; color: var(--color-ink-soft); }
.journal-card__excerpt p { margin-bottom: 0; }
.nav-links { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 3rem; }
.page-numbers { padding: 0.55rem 0.8rem; border: 1px solid var(--color-line); text-decoration: none; }
.page-numbers.current { background: var(--color-deep); color: #fff; }
.article-body { max-width: 48rem; margin-inline: auto; }
.article-body > * + * { margin-top: 1.5em; }
.article-body h2, .article-body h3 { margin-top: 2.5em; }

@media (min-width: 42rem) {
	.photo-placeholder__index, .photo-placeholder__badge { top: 1rem; }
	.photo-placeholder__index { left: 1rem; }
	.photo-placeholder__badge { right: 1rem; }
	.product-points__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.product-point:nth-child(odd) { padding-right: clamp(1.5rem, 4vw, 3rem); border-right: 1px solid var(--color-line); }
	.product-point:nth-child(even) { padding-left: clamp(1.5rem, 4vw, 3rem); }
	.product-basics ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.product-basics li:nth-child(odd) { padding-right: 1.5rem; }
	.product-basics li:nth-child(even) { padding-left: 1.5rem; border-left: 1px solid var(--color-line); }
	.reason-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.detail-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.price-components { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .living-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .living-scene--large, .living-scene--wide { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(15rem, 0.7fr); align-items: end; gap: 2rem; }
  .living-scene--wide .photo-placeholder { order: 2; }
  .performance-list { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .site-footer__inner { grid-template-columns: 1fr 1fr; }
  .site-footer__contact { grid-column: 1 / -1; }
}

@media (min-width: 64rem) {
  .site-header { position: sticky; top: 0; }
  .hero__inner { grid-template-columns: minmax(23rem, 0.8fr) minmax(0, 1.2fr); align-items: center; }
  .hero__copy { position: relative; z-index: 2; }
  .hero h1 { width: 130%; }
  .split-layout { grid-template-columns: minmax(0, 1fr) minmax(26rem, 0.75fr); align-items: center; gap: clamp(4rem, 8vw, 8rem); }
  .product-heading, .section-heading-row { grid-template-columns: minmax(0, 1.1fr) minmax(22rem, 0.7fr); align-items: end; gap: 5rem; }
  .concept-plan__image { height: auto; object-fit: contain; }
  .concept-plan__label { top: 1rem; left: 1rem; }
  .concept-plan figcaption { right: 1rem; bottom: 1rem; }
  .concept-plan-full { display: none; }
  .question-layout { grid-template-columns: minmax(0, 0.8fr) minmax(25rem, 1fr); align-items: center; gap: 6rem; }
  .choice-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .choice-list li:nth-child(odd) { padding-right: 2rem; border-right: 1px solid var(--color-line); }
  .choice-list li:nth-child(even) { padding-left: 2rem; }
  .price-layout { grid-template-columns: minmax(19rem, 0.7fr) minmax(0, 1.3fr); gap: clamp(4rem, 9vw, 8rem); }
  .about-layout { grid-template-columns: minmax(24rem, 0.85fr) minmax(0, 1fr); align-items: center; gap: clamp(4rem, 9vw, 8rem); }
  .editorial-grid { grid-template-columns: minmax(18rem, 0.65fr) minmax(0, 1.35fr); align-items: start; }
  .about-page-grid { grid-template-columns: minmax(22rem, 0.8fr) minmax(0, 1.2fr); align-items: center; }
  .company-profile { grid-template-columns: minmax(18rem, 0.6fr) minmax(0, 1.4fr); align-items: start; }
  .site-footer { padding-bottom: 4rem; }
  .site-footer__inner { grid-template-columns: 0.8fr 1fr 1fr; }
  .site-footer__contact { grid-column: auto; }
}

@media (min-width: 74rem) {
  .desktop-nav { display: flex; }
  .mobile-nav, .mobile-fixed-cta { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}
