/* 共通：PC基準幅1512px、PDF幅1512pt、換算率1。主要幅1160px／広幅1292px。 */
:root { --green: #3fa62a; --blue: #008ab8; --ink: #222; --pale-green: #e9f7e6; --pale-blue: #e7f7fb; --contact-bg: #eff5f8; --footer-bg: #344c53; --unit: min(1px, .066137566vw); color-scheme: light; }
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 70px; }
body { margin: 0; color: var(--ink); background: #fff; font-family: "Zen Kaku Gothic New", sans-serif; font-size: clamp(14px, 1.058201vw, 16px); font-weight: 500; line-height: 1.625; overflow-wrap: break-word; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button, select, input[type="checkbox"] { cursor: pointer; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
img, video { display: block; max-width: 100%; height: auto; }
figure, blockquote, dl, dd, p, h1, h2, h3 { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
button { border: 0; background: none; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 5px; }
h1, h2, h3 { font-weight: 700; }
h2 { font-size: clamp(28px, 2.777778vw, 42px); line-height: 1.5; }
h3 { font-size: clamp(22px, 1.851852vw, 28px); line-height: 1.5; }
.en { font-family: "Figtree", sans-serif; font-size: clamp(12px, .992063vw, 15px); font-weight: 500; line-height: 1.5; }
.wrap { width: 76.719577%; max-width: 1160px; margin-inline: auto; }
.wide { width: 85.449735%; max-width: 1292px; margin-inline: auto; }
.center { display: flex; justify-content: center; }
.pill { display: inline-flex; align-items: center; justify-content: center; gap: 8px; max-width: 100%; padding: calc(18 * var(--unit)) calc(48 * var(--unit)); border: 1px solid transparent; border-radius: 99px; font-size: clamp(13px, 1.058201vw, 16px); font-weight: 700; line-height: 1.5; text-align: center; }
.pill__arrow { flex-shrink: 0; font-family: "Figtree", sans-serif; font-weight: 600; }
.pill--green { color: #fff; background: var(--green); }
.pill--blue { color: #fff; background: var(--blue); }
.pill--white { color: var(--blue); background: #fff; }
.pill--outline-green { color: var(--green); background: #fff; border-color: var(--green); }
.pill--outline-blue { color: var(--blue); background: #fff; border-color: var(--blue); }
.section-heading { position: relative; text-align: center; }
.section-heading h2 { margin-top: calc(20 * var(--unit)); }
.section-heading__line { display: block; width: calc(80 * var(--unit)); height: calc(10 * var(--unit)); margin: calc(24 * var(--unit)) auto 0; background: linear-gradient(to right, var(--blue) 50%, var(--green) 50%); }
.bar-heading { border-left: calc(10 * var(--unit)) solid; border-image: linear-gradient(var(--green) 50%, var(--blue) 50%) 1; padding-left: calc(25 * var(--unit)); }
.bar-heading h2 { font-size: clamp(28px, 3.306878vw, 50px); line-height: 1.2; }
.bar-heading .en { margin-top: calc(6 * var(--unit)); }
.phone-icon { display: inline-block; width: .75em; height: .85em; vertical-align: -.08em; }
.site-header__phone .phone-icon { width: .9em; height: .9em; }
/* ヘッダー：事業案内の下層は通常非表示。 */
.site-header { position: fixed; inset: 0 0 auto; z-index: 20; display: flex; align-items: flex-start; justify-content: space-between; width: 100%; margin-inline: auto; }
.site-header__brand { display: block; width: calc(156 * var(--unit)); margin: calc(13 * var(--unit)) 0 0 calc(17 * var(--unit)); }
.site-header__brand img { width: 100%; }
.site-nav { display: flex; align-items: center; justify-content: space-between; gap: calc(20 * var(--unit)); padding: calc(8 * var(--unit)) calc(8 * var(--unit)) calc(8 * var(--unit)) calc(24 * var(--unit)); background: #fff; border-radius: 0 0 0 4px; font-size: clamp(12px, .992063vw, 15px); font-weight: 500; line-height: 1.5; }
.site-nav > a, .business-menu__trigger { display: block; white-space: nowrap; }
.site-nav > a:not(.site-header__contact), .business-menu__trigger { padding-block: calc(7 * var(--unit)); }
.site-header__phone { text-align: center; }
.site-header__phone > a { display: block; font-size: clamp(16px, 1.388889vw, 21px); font-weight: 700; line-height: 1.05; white-space: nowrap; }
.site-header__phone small { display: block; font-size: clamp(8px, .727513vw, 11px); font-weight: 500; white-space: nowrap; }
.site-header__contact { padding: calc(10 * var(--unit)) calc(22 * var(--unit)); border-radius: 99px; background: #59b248; color: #fff; font-size: clamp(12px, .925926vw, 14px); }
.business-menu { position: relative; }
.business-menu__panel { position: absolute; top: 100%; left: 50%; display: grid; grid-template-rows: 0fr; width: calc(200 * var(--unit)); opacity: 0; pointer-events: none; transform: translateX(-50%); transition: grid-template-rows .25s ease, opacity .25s ease; }
.business-menu__inner { overflow: hidden; border-radius: 4px; background: #fff; }
.business-menu__inner a { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: calc(17 * var(--unit)) calc(20 * var(--unit)); border-left: 3px solid var(--blue); white-space: nowrap; }
.business-menu__inner a + a { border-left-color: var(--green); border-top: 1px solid #eee; }
.business-menu__inner span { display: grid; flex-shrink: 0; place-items: center; width: calc(22 * var(--unit)); height: calc(22 * var(--unit)); border-radius: 50%; color: #fff; background: #2067c7; font-family: "Figtree", sans-serif; font-size: clamp(12px, .925926vw, 14px); font-weight: 600; line-height: 1; }
.business-menu__inner a + a span { background: #59b248; }
.business-menu.is-open .business-menu__panel { grid-template-rows: 1fr; opacity: 1; pointer-events: auto; }
.menu-toggle { display: none; }
/* 共通の下層ページ見出し。街並みはPDFのForm XObjectを分離して書き出し。 */
.page-hero { width: 100%; margin-inline: auto; }
.page-hero > img { width: 100%; aspect-ratio: 1512 / 420; object-fit: cover; }
.page-title { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: calc(25 * var(--unit)); margin-top: calc(-134 * var(--unit)); padding: calc(48 * var(--unit)) calc(48 * var(--unit)) calc(8 * var(--unit)); background: #fff; }
.page-title__heading { border-left: calc(10 * var(--unit)) solid; border-image: linear-gradient(var(--green) 50%, var(--blue) 50%) 1; padding-left: calc(28 * var(--unit)); }
.page-title h1 { font-size: clamp(28px, 3.306878vw, 50px); line-height: 1.25; }
.page-title .en { font-size: clamp(12px, .992063vw, 15px); line-height: 1.3; }
.breadcrumbs { font-size: clamp(10px, .793651vw, 12px); white-space: nowrap; }
.page-title__subtitle { flex-basis: 100%; padding-left: calc(38 * var(--unit)); font-size: clamp(18px, 1.851852vw, 28px); }
/* 共通のお問い合わせ・フッター。 */
.contact-block { padding: calc(70 * var(--unit)) 0; border-radius: calc(100 * var(--unit)) calc(100 * var(--unit)) 0 0; background: var(--contact-bg); }
.contact-block__heading { position: relative; padding: calc(36 * var(--unit)) 0 calc(25 * var(--unit)); }
.contact-block__art { position: absolute; top: 0; width: calc(270 * var(--unit)); }
.contact-block__art--left { top: calc(-40 * var(--unit)); left: calc(60 * var(--unit)); }
.contact-block__art--right { top: calc(-50 * var(--unit)); right: calc(60 * var(--unit)); }
.contact-block__cards { display: grid; grid-template-columns: 1fr 1fr; gap: calc(48 * var(--unit)); }
.contact-block__card { padding: calc(40 * var(--unit)); border-radius: calc(8 * var(--unit)); background: #fff; }
.contact-block__card h3 { padding-bottom: calc(24 * var(--unit)); border-bottom: 2px solid var(--green); font-size: clamp(20px, 2.116402vw, 32px); text-align: center; white-space: nowrap; }
.contact-block__card > p { margin-top: calc(24 * var(--unit)); text-align: center; }
.contact-block__details { display: flex; align-items: center; justify-content: space-between; gap: calc(18 * var(--unit)); margin-top: calc(18 * var(--unit)); color: var(--green); }
.contact-block__details > div { flex-shrink: 0; }
.contact-block__phone { font-size: clamp(22px, 2.116402vw, 32px); font-weight: 700; line-height: 1.2; white-space: nowrap; }
.contact-block__details small { display: block; color: var(--ink); font-size: clamp(10px, .793651vw, 12px); }
.contact-block__details .pill { padding-inline: calc(30 * var(--unit)); white-space: nowrap; }
.contact-block__card--blue h3 { border-color: var(--blue); }
.contact-block__card--blue .contact-block__details { color: var(--blue); }
.site-footer { padding: calc(80 * var(--unit)) 0 calc(28 * var(--unit)); color: #fff; background: var(--footer-bg); font-size: clamp(11px, .925926vw, 14px); line-height: 1.45; }
.site-footer__grid { display: grid; grid-template-columns: 481fr 640fr; gap: calc(40 * var(--unit)); }
.site-footer__brand { display: block; width: calc(183 * var(--unit)); margin-bottom: calc(20 * var(--unit)); }
.site-footer__phone { display: block; margin: calc(14 * var(--unit)) 0; font-size: clamp(24px, 2.116402vw, 32px); font-weight: 700; }
.site-footer__nav { display: grid; grid-template-columns: 40fr 151fr 148fr 211fr; gap: calc(30 * var(--unit)); font-size: clamp(12px, .992063vw, 15px); }
.site-footer__nav > div { display: flex; flex-direction: column; align-items: flex-start; gap: calc(18 * var(--unit)); }
.site-footer__nav > div a:not(:first-child) { padding-left: calc(12 * var(--unit)); font-size: clamp(11px, .925926vw, 14px); }
.site-footer__partners { display: flex; align-items: flex-start; gap: calc(30 * var(--unit)); margin-top: calc(48 * var(--unit)); }
.site-footer__partners ul { display: flex; justify-content: flex-start; flex-wrap: wrap; gap: calc(12 * var(--unit)) calc(14 * var(--unit)); }
.site-footer__partners li { padding: calc(3 * var(--unit)) calc(6 * var(--unit)); border: 1px solid #465e66; border-radius: 99px; background: transparent; font-size: clamp(11px, .992063vw, 15px); }
.site-footer__group { margin-top: calc(14 * var(--unit)); text-align: center; font-size: clamp(10px, .793651vw, 12px); }
.site-footer__copyright { margin-top: calc(70 * var(--unit)); padding-top: calc(24 * var(--unit)); border-top: 1px solid #46616b; color: #78929b; font-size: clamp(10px, .793651vw, 12px); text-align: center; }
/* TOP ファーストビュー。動画比率による高さ指定。 */
.page-top .top-hero { position: relative; width: 100%; max-height: 100vh; max-height: 100dvh; margin-inline: auto; }
.page-top .top-hero__movie { width: 100%; max-height: 100vh; max-height: 100dvh; aspect-ratio: 1512 / 984; object-fit: cover; }
.page-top .top-hero__content { position: absolute; inset: 0; width: 100%; max-width: 1512px; margin-inline: auto; }
.page-top .top-hero h1 { position: absolute; top: calc(151 * var(--unit)); left: calc(184 * var(--unit)); z-index: 1; display: flex; flex-direction: row-reverse; align-items: flex-start; gap: calc(12 * var(--unit)); font-size: clamp(28px, 3.611111vw, 54.6px); line-height: 1.05; letter-spacing: 0; }
.page-top .top-hero h1 > span { writing-mode: vertical-rl; padding: calc(14 * var(--unit)) calc(9 * var(--unit)); border-radius: 4px; background: #fff; }
.page-top .top-hero h1 > span + span { margin-top: calc(45 * var(--unit)); }
.page-top .top-hero__sky { color: #2067c7; }
.page-top .top-hero__earth { color: #59b248; }
.page-top .top-hero__ring { position: absolute; top: calc(60 * var(--unit)); left: calc(270 * var(--unit)); width: calc(280 * var(--unit)); animation: takumi-spin 30s linear infinite; }
.page-top .top-hero__scroll { position: absolute; bottom: 0; left: 50%; display: flex; align-items: center; gap: calc(8 * var(--unit)); padding: calc(14 * var(--unit)) calc(20 * var(--unit)); border-radius: 4px 4px 0 0; background: #fff; font-size: 12px; transform: translateX(-50%); }
.page-top .top-hero__scroll > img { width: 17.5px; height: 17.5px; }
@keyframes takumi-spin { to { transform: rotate(360deg); } }
/* TOP 紹介。 */
.page-top .top-intro { position: relative; width: 100%; margin-inline: auto; padding: calc(124 * var(--unit)) 0 calc(150 * var(--unit)); }
.page-top .top-intro__grid { position: relative; z-index: 1; display: grid; grid-template-columns: .9fr 1.1fr; gap: calc(80 * var(--unit)); }
.page-top .top-intro__copy > p { font-size: clamp(18px, 1.785714vw, 27px); font-weight: 700; }
.page-top .top-intro h2 { margin-top: calc(20 * var(--unit)); font-size: clamp(24px, 2.777778vw, 42px); line-height: 1.45; white-space: nowrap; }
.page-top .top-intro__decorations { position: relative; margin-top: calc(28 * var(--unit)); padding-bottom: calc(260 * var(--unit)); }
.page-top .top-intro__logo { width: calc(158 * var(--unit)); }
.page-top .top-intro__handshake { position: absolute; top: 0; left: calc(180 * var(--unit)); width: calc(106 * var(--unit)); }
.page-top .top-intro__children { position: absolute; top: calc(75 * var(--unit)); right: 0; width: calc(215 * var(--unit)); }
.page-top .top-intro__painters { position: absolute; top: calc(200 * var(--unit)); left: 0; width: calc(147 * var(--unit)); }
.page-top .top-intro__photos { position: relative; align-self: start; margin-top: calc(7 * var(--unit)); }
.page-top .top-intro__city { width: 100%; aspect-ratio: 669 / 446; border-radius: calc(10 * var(--unit)); object-fit: cover; }
.page-top .top-intro__photo { position: absolute; width: 23%; border-radius: calc(10 * var(--unit)); }
.page-top .top-intro__photo--left { top: 14%; left: -5%; }
.page-top .top-intro__photo--right { right: -3%; bottom: 18%; }
.page-top .top-intro__photos::before { position: absolute; top: -5%; right: 5%; width: calc(62 * var(--unit)); aspect-ratio: 1; border-radius: calc(10 * var(--unit)); background: #59b248; content: ""; }
.page-top .top-intro__photos::after { position: absolute; right: 10%; bottom: 3%; width: calc(40 * var(--unit)); aspect-ratio: 1; border-radius: calc(8 * var(--unit)); background: var(--blue); content: ""; }
.page-top .top-intro__marquee { position: absolute; right: 0; bottom: calc(100 * var(--unit)); left: 0; overflow: clip; font-family: "Figtree", sans-serif; font-size: clamp(100px, 17.195767vw, 260px); font-weight: 700; line-height: 1; color: var(--pale-green); }
.page-top .top-intro__marquee span { display: block; width: max-content; animation: takumi-marquee var(--intro-marquee-duration, 50s) linear infinite; }
@keyframes takumi-marquee { to { transform: translateX(-50%); } }
/* TOP・工事ページのイラストと説明。 */
.page-top .top-services { padding: calc(20 * var(--unit)) 0 0; }
.page-top .top-services__heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: calc(90 * var(--unit)); }
.service-feature { position: relative; width: 100%; margin-inline: auto; padding: calc(60 * var(--unit)) 0; }
.service-feature::before { position: absolute; z-index: -1; top: 25%; bottom: 0; width: 57.54%; border-radius: 0 calc(100 * var(--unit)) calc(100 * var(--unit)) 0; background: var(--pale-green); content: ""; }
.service-feature--blue::before { mix-blend-mode: multiply; top: 5%; right: 0; border-radius: calc(100 * var(--unit)) 0 0 calc(100 * var(--unit)); background: var(--pale-blue); }
.service-feature__inner { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: calc(90 * var(--unit)); }
.service-feature__art { width: 100%; }
.service-feature__copy { position: relative; }
.service-feature__copy h2, .service-feature__copy h3 { font-size: clamp(28px, 3.968254vw, 60px); line-height: 1.6; }
.service-feature__copy > p:not(.service-feature__eyebrow):not(.service-feature__en) { margin-top: calc(28 * var(--unit)); }
.service-feature__copy .pill { margin-top: calc(30 * var(--unit)); }
.service-feature__eyebrow { color: var(--green); font-size: clamp(18px, 1.587302vw, 24px); font-weight: 700; }
.service-feature--blue .service-feature__eyebrow { color: var(--blue); }
.service-feature__en { margin-top: calc(15 * var(--unit)); color: var(--green); font-size: clamp(10px, .793651vw, 12px); }
.service-feature--blue .service-feature__en { color: var(--blue); }
.service-feature__number { position: absolute; z-index: -1; top: calc(-140 * var(--unit)); right: calc(20 * var(--unit)); color: #d8ebd0; font-size: clamp(100px, 17.195767vw, 260px); font-weight: 700; line-height: 1; }
.service-feature--blue .service-feature__number { inset: auto 0 calc(-140 * var(--unit)) auto; color: #cce7ed; }
.page-top .service-feature + .service-feature { margin-top: calc(-80 * var(--unit)); padding-bottom: calc(80 * var(--unit)); }
/* フィロソフィー。背景の英字は装飾としてHTMLの本文から分離。 */
.philosophy-copy { position: relative; padding: 0 0 calc(50 * var(--unit)); text-align: center; }
.philosophy-copy__background { position: absolute; z-index: -1; top: calc(-20 * var(--unit)); left: 50%; width: var(--window-width, 100%); overflow: clip; transform: translateX(-50%); font-family: "Figtree", sans-serif; font-size: clamp(90px, 17.195767vw, 260px); font-weight: 700; line-height: .8; text-align: left; }
/* 背景英字：TOPのPHILOSOPHYと共通。3語1組×2組、1語あたり42秒で循環。 */
.background-marquee__row { display: block; width: 100%; overflow: clip; color: #f4fbf3; }
.background-marquee__row--blue { margin-top: calc(25 * var(--unit)); color: #f3fbfd; }
.background-marquee__track { display: flex; width: max-content; animation: background-marquee var(--background-marquee-duration, 126s) linear infinite; }
.background-marquee__row--blue .background-marquee__track { animation-direction: reverse; }
.background-marquee__group { display: block; flex: 0 0 auto; white-space: pre; }
@keyframes background-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.philosophy-copy h3 { position: relative; margin-top: calc(40 * var(--unit)); font-size: clamp(28px, 3.968254vw, 60px); line-height: 1.45; letter-spacing: .05em; }
.philosophy-copy > p { margin-top: calc(44 * var(--unit)); }
.philosophy-copy__art { position: absolute; right: 13%; bottom: calc(-5 * var(--unit)); width: calc(260 * var(--unit)); }
.page-top .top-philosophy { position: relative; display: grid; grid-template-columns: 16.3% minmax(0, 1fr) 16.3%; width: 100%; margin: calc(118 * var(--unit)) auto 0; }
.page-top .top-philosophy__center { position: relative; width: 100%; max-width: calc(1512px * .674); margin-inline: auto; padding: calc(160 * var(--unit)) 0 calc(35 * var(--unit)); }
.page-top .top-philosophy__lead { margin-bottom: calc(40 * var(--unit)); font-size: clamp(18px, 1.851852vw, 28px); font-weight: 700; text-align: center; }
.page-top .top-philosophy .philosophy-copy { padding-bottom: calc(250 * var(--unit)); }
.page-top .top-philosophy .philosophy-copy h3 { margin-inline: -10%; }
.page-top .top-philosophy .philosophy-copy__art { right: 50%; bottom: 0; width: calc(235 * var(--unit)); transform: translateX(50%); }
.page-top .top-philosophy__photos { overflow: clip; max-height: calc(895 * var(--unit)); }
.page-top .top-philosophy__photos img { width: 100%; aspect-ratio: 246 / 293; object-fit: cover; }
.page-top .top-philosophy__photos--left img { object-position: 65% center; }
.page-top .top-philosophy__photos--right img { object-position: 35% center; }
.page-top .top-philosophy__loop { animation: philosophy-up 32s linear infinite; }
.page-top .top-philosophy__loop > div { display: grid; gap: calc(8 * var(--unit)); padding-bottom: calc(8 * var(--unit)); }
.page-top .top-philosophy__photos--right .top-philosophy__loop { animation-direction: reverse; }
@keyframes philosophy-up { to { transform: translateY(-50%); } }
/* SUSTAINABILITY スライドはスクロール・ドラッグ・キーボード操作に対応。 */
.sustainability-slider { margin-top: calc(70 * var(--unit)); padding-top: calc(30 * var(--unit)); overflow-x: auto; overflow-anchor: none; scroll-snap-type: none; scrollbar-width: none; cursor: grab; }
.sustainability-slider::-webkit-scrollbar { display: none; }
.sustainability-slider.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.sustainability-track { display: flex; gap: calc(60 * var(--unit)); width: max-content; padding: 0 max(24px, calc((100vw - 1132px) / 2)) calc(18 * var(--unit)); }
.sustainability-card { position: relative; display: flex; flex: 0 0 calc(340 * var(--unit)); flex-direction: column; width: calc(340 * var(--unit)); padding: calc(38 * var(--unit)) calc(20 * var(--unit)) calc(30 * var(--unit)); border-radius: calc(12 * var(--unit)); background: var(--pale-blue); scroll-snap-align: center; }
.sustainability-card:nth-child(even) { background: var(--pale-green); }
.sustainability-card__number { position: absolute; top: calc(-25 * var(--unit)); left: 0; color: var(--blue); font-size: clamp(36px, 3.968254vw, 60px); font-weight: 500; line-height: 1; }
.sustainability-card:nth-child(even) .sustainability-card__number { color: var(--green); }
.sustainability-card__art { width: calc(195 * var(--unit)); height: calc(195 * var(--unit)); margin-inline: auto; object-fit: contain; }
.sustainability-card h3 { margin-top: calc(25 * var(--unit)); font-size: clamp(22px, 1.851852vw, 28px); line-height: 1.3; text-align: center; }
.sustainability-card__copy { flex: 1; margin-top: calc(25 * var(--unit)); }
.sustainability-card__goals { display: flex; justify-content: center; gap: calc(11 * var(--unit)); margin-top: calc(16 * var(--unit)); }
.sustainability-card__goal { width: calc(90 * var(--unit)); height: calc(90 * var(--unit)); object-fit: contain; }
.sustainability-note { margin-top: calc(62 * var(--unit)); font-size: clamp(11px, .925926vw, 14px); line-height: 1.6; }
.sustainability-note a { text-decoration: underline; }
.partner-logos { display: flex; align-items: center; justify-content: center; gap: calc(42 * var(--unit)); margin-top: calc(50 * var(--unit)); }
.partner-logos img:nth-child(1) { width: calc(127 * var(--unit)); }
.partner-logos img:nth-child(2) { width: calc(285 * var(--unit)); }
.partner-logos img:nth-child(3) { width: calc(389 * var(--unit)); }
.partner-declaration { display: flex; align-items: center; justify-content: center; gap: calc(20 * var(--unit)); margin-top: calc(36 * var(--unit)); text-align: center; }
.partner-declaration::before, .partner-declaration::after { flex: 0 1 calc(70 * var(--unit)); height: 2px; background: #7f7f7f; content: ""; }
.partner-declaration + .center { margin-top: calc(44 * var(--unit)); }
.page-top .partner-action { position: relative; }
.page-top .partner-action__people { position: absolute; right: calc(-40 * var(--unit)); bottom: calc(-60 * var(--unit)); width: calc(172.5 * var(--unit)); }
.page-top .top-sustainability { padding-top: calc(109 * var(--unit)); }
.page-top .top-activity { display: grid; grid-template-columns: 45% 55%; align-items: center; overflow: clip; margin-top: calc(80 * var(--unit)); border-radius: calc(10 * var(--unit)); color: #fff; background: var(--blue); }
.page-top .top-activity__copy { z-index: 1; padding: calc(45 * var(--unit)) calc(80 * var(--unit)); }
.page-top .top-activity h2 { font-size: clamp(22px, 1.851852vw, 28px); }
.page-top .top-activity p { margin-top: calc(20 * var(--unit)); white-space: nowrap; }
.page-top .top-activity .pill { margin-top: calc(25 * var(--unit)); padding: calc(12 * var(--unit)) calc(36 * var(--unit)); }
.page-top .top-activity__photo { width: 100%; height: 100%; aspect-ratio: 720 / 250; object-fit: cover; opacity: .35; mix-blend-mode: luminosity; }
.page-top .top-topics { position: relative; padding: calc(117 * var(--unit)) 0 calc(88 * var(--unit)); }
.page-top .top-topics__art { position: absolute; top: calc(150 * var(--unit)); left: calc(60 * var(--unit)); width: calc(200 * var(--unit)); }
.page-top .topics-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(32 * var(--unit)); margin-top: calc(76 * var(--unit)); }
.page-top .topics-card > img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.page-top .topics-card time { display: block; margin-top: calc(20 * var(--unit)); color: var(--green); font-size: 12px; }
.page-top .topics-card p { margin-top: calc(12 * var(--unit)); }
.page-top .topics-grid + .center { margin-top: calc(50 * var(--unit)); }
/* 会社案内。 */
.page-about .about-philosophy { padding: calc(153 * var(--unit)) 0 calc(100 * var(--unit)); }
.page-about .values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(40 * var(--unit)); margin-top: calc(10 * var(--unit)); }
.page-about .value-card { padding: calc(30 * var(--unit)); border-radius: calc(20 * var(--unit)); background: var(--pale-blue); }
.page-about .value-card:nth-child(2) { background: var(--pale-green); }
.page-about .value-card > img { width: 100%; height: calc(160 * var(--unit)); object-fit: contain; }
.page-about .value-card h3 { margin-top: calc(18 * var(--unit)); text-align: center; white-space: nowrap; }
.page-about .value-card p { margin-top: calc(22 * var(--unit)); }
.page-about .about-philosophy > .center { margin-top: calc(40 * var(--unit)); }
.page-about .about-company { padding: calc(90 * var(--unit)) 0; background: #eff6f8; }
.page-about .about-company__inner { display: grid; grid-template-columns: 275fr 885fr; gap: calc(40 * var(--unit)); }
.page-about .about-company__heading h2, .page-about .about-history h2, .page-about .about-access h2 { margin-top: calc(20 * var(--unit)); }
.page-about .about-section__line { margin-left: 0; }
.page-about .about-company__heading > img { width: 100%; margin-top: calc(386 * var(--unit)); }
.info-table > div { display: grid; grid-template-columns: 150fr 695fr; gap: calc(0 * var(--unit)); padding: calc(17 * var(--unit)) calc(6 * var(--unit)); border-top: 1px solid #b8bec0; }
.info-table > div:last-child { border-bottom: 1px solid #b8bec0; }
.info-table dt { padding-right: calc(20 * var(--unit)); }
.info-table dd { min-width: 0; }
.page-about .about-company__partners { display: flex; justify-content: center; flex-wrap: wrap; gap: calc(18 * var(--unit)); margin-top: calc(45 * var(--unit)); font-size: clamp(12px, .992063vw, 15px); }
.page-about .about-company__partners li { padding: calc(3 * var(--unit)) calc(16 * var(--unit)); border: 1px solid var(--blue); border-radius: 99px; color: var(--blue); background: #fff; }
.page-about .about-history { width: 100%; margin-inline: auto; padding-top: calc(100 * var(--unit)); overflow: clip; }
.page-about .about-history__inner { display: grid; grid-template-columns: 305fr 815fr; gap: calc(40 * var(--unit)); }
.page-about .about-history__heading { position: relative; }
.page-about .about-history__heading > img { position: absolute; top: calc(280 * var(--unit)); left: calc(-216 * var(--unit)); width: calc(444 * var(--unit)); max-width: none; }
.page-about .history-list { position: relative; display: grid; gap: calc(20 * var(--unit)); }
.page-about .history-list::before { position: absolute; top: 0; bottom: 0; left: calc(-30 * var(--unit)); width: 1px; background: var(--green); content: ""; }
.page-about .history-list > div { position: relative; display: grid; grid-template-columns: calc(160 * var(--unit)) minmax(0, 1fr); align-items: center; padding: calc(20 * var(--unit)) calc(30 * var(--unit)); border: 1px solid var(--green); border-radius: calc(20 * var(--unit)); background: #fff; }
.page-about .history-list > div::before { position: absolute; top: 50%; left: calc(-35 * var(--unit)); width: calc(10 * var(--unit)); height: calc(10 * var(--unit)); border-radius: 50%; background: var(--green); content: ""; transform: translateY(-50%); }
.page-about .history-list > div::after { position: absolute; top: 50%; left: calc(-30 * var(--unit)); width: calc(30 * var(--unit)); height: 1px; background: var(--green); content: ""; }
.page-about .history-list dt { display: flex; align-items: baseline; font-size: clamp(16px, 1.322751vw, 20px); font-weight: 700; line-height: 1.3; white-space: nowrap; }
.page-about .history-list__number { color: var(--green); font-size: clamp(24px, 1.984127vw, 30px); font-weight: 500; }
.page-about .history-list dd { font-size: clamp(15px, 1.322751vw, 20px); }
.page-about .about-access { padding-top: calc(100 * var(--unit)); padding-bottom: calc(100 * var(--unit)); }
.page-about .about-access__grid { display: grid; grid-template-columns: 650fr 460fr; gap: calc(50 * var(--unit)); }
.page-about .about-access__address { margin-top: calc(66 * var(--unit)); }
.page-about .about-access__address h3 { font-size: 18px; }
.page-about .about-access__address p { margin-top: calc(15 * var(--unit)); }
.page-about .about-access figure img { width: 100%; aspect-ratio: 460 / 345; object-fit: cover; }
.page-about .about-access figcaption { margin-top: calc(12 * var(--unit)); text-align: center; }
.page-about .about-access__map { display: block; width: 100%; aspect-ratio: 1160 / 480; margin-top: calc(26 * var(--unit)); border: 0; }
/* 全幅の英字背景は、JSで取得したスクロールバーを除くウィンドウ幅を使う。未実行時は親幅から算出する。 */
/* ごあいさつ。 */
.page-greeting .greeting-content { position: relative; width: 67.724868%; max-width: 1024px; margin: calc(220 * var(--unit)) auto calc(170 * var(--unit)); }
.page-greeting .greeting-content__background { position: absolute; z-index: -1; top: calc(-70 * var(--unit)); left: 50%; width: var(--window-width, calc(100% * 1512 / 1024)); overflow: clip; transform: translateX(-50%); color: #f4fbf3; font-family: "Figtree", sans-serif; font-size: clamp(90px, 17.195767vw, 260px); font-weight: 700; line-height: .8; text-align: center; }
.page-greeting .greeting-content h2 { text-align: center; }
.page-greeting .greeting-content__lead { margin-top: calc(14 * var(--unit)); font-size: clamp(20px, 1.851852vw, 28px); text-align: center; }
.page-greeting .greeting-content__opening { display: grid; grid-template-columns: 580fr 359fr; align-items: start; gap: calc(85 * var(--unit)); margin-top: calc(140 * var(--unit)); }
.page-greeting .greeting-content__opening > p, .page-greeting .greeting-content__body { font-size: clamp(16px, 1.322751vw, 20px); line-height: 2.5; }
.page-greeting .greeting-content__opening img { width: 100%; border-radius: calc(20 * var(--unit)); }
.page-greeting .greeting-content h3 { margin-top: calc(100 * var(--unit)); font-size: clamp(22px, 2.116402vw, 32px); text-align: center; }
.page-greeting .greeting-content__body { margin-top: calc(50 * var(--unit)); }
.page-greeting .greeting-content__signature { margin-top: calc(55 * var(--unit)); font-size: clamp(16px, 1.322751vw, 20px); text-align: right; }
/* SDGs。 */
.page-sdgs .sdgs-intro { position: relative; padding-top: calc(180 * var(--unit)); text-align: center; }
.page-sdgs .sdgs-intro h2 { font-size: clamp(28px, 3.968254vw, 60px); }
.page-sdgs .sdgs-intro > p { margin-top: calc(31 * var(--unit)); }
.page-sdgs .sdgs-intro__background { position: absolute; z-index: -1; top: calc(100 * var(--unit)); left: 50%; width: var(--window-width, calc(100% * 1512 / 1160)); overflow: clip; transform: translateX(-50%); color: #f4fbf3; font-family: "Figtree", sans-serif; font-size: clamp(90px, 13.227513vw, 200px); font-weight: 700; line-height: .95; text-align: center; }
.page-sdgs .sdgs-actions { padding-top: calc(172 * var(--unit)); }
.page-sdgs .sdgs-certificate { padding-top: calc(148 * var(--unit)); padding-bottom: calc(176 * var(--unit)); }
.page-sdgs .certificate-grid { display: grid; grid-template-columns: 1fr 1fr; gap: calc(70 * var(--unit)); width: 76.12%; margin: calc(75 * var(--unit)) auto 0; }
.page-sdgs .certificate-grid article { text-align: center; }
.page-sdgs .certificate-grid h3 { font-size: clamp(18px, 1.587302vw, 24px); }
.page-sdgs .certificate-grid p { margin-top: calc(7 * var(--unit)); font-size: clamp(12px, .925926vw, 14px); }
.page-sdgs .certificate-frame { margin-top: calc(2 * var(--unit)); padding: calc(20 * var(--unit)); background: #f6f5f5; }
.page-sdgs .certificate-frame > img { width: 100%; }
.page-sdgs .certificate-grid__logo { width: auto; max-width: 80%; height: calc(129 * var(--unit)); margin: calc(25 * var(--unit)) auto 0; object-fit: contain; }
/* TAKUMIの活動。 */
.page-activity .activity-intro { position: relative; padding-top: calc(170 * var(--unit)); text-align: center; }
.page-activity .activity-intro > p { font-size: clamp(18px, 1.587302vw, 24px); line-height: 1.8; }
.page-activity .activity-intro__photo { width: 100%; aspect-ratio: 1160 / 420; margin-top: calc(97 * var(--unit)); border-radius: calc(40 * var(--unit)); object-fit: cover; }
.page-activity .activity-global { padding-top: calc(90 * var(--unit)); text-align: center; }
.page-activity .activity-global > p { margin-top: calc(35 * var(--unit)); }
.page-activity .activity-global__company { display: inline-block; padding: calc(12 * var(--unit)) calc(24 * var(--unit)); border: 1px solid #d3e7ef; border-radius: 99px; font-size: clamp(12px, .992063vw, 15px); }
.page-activity .activity-gallery { margin: calc(58 * var(--unit)) auto 0; overflow: clip; scrollbar-width: none; padding-bottom: calc(10 * var(--unit)); }
.page-activity .activity-gallery::-webkit-scrollbar { display: none; }
.page-activity .activity-gallery__track { display: flex; width: max-content; animation: activity-gallery-flow var(--gallery-loop-duration, 80s) linear infinite paused; }
.page-activity .activity-gallery.is-looping .activity-gallery__track { animation-play-state: running; }
.page-activity .activity-gallery__group { display: flex; flex: 0 0 auto; align-items: flex-start; gap: calc(40 * var(--unit)); padding-right: calc(40 * var(--unit)); }
.page-activity .activity-gallery figure { flex: 0 0 calc(320 * var(--unit)); width: calc(320 * var(--unit)); scroll-snap-align: start; }
.page-activity .activity-gallery__item--lower { margin-top: calc(50 * var(--unit)); }
.page-activity .activity-gallery img { width: 100%; aspect-ratio: 1; border-radius: calc(20 * var(--unit)); object-fit: cover; }
.page-activity .activity-gallery figcaption { margin-top: calc(15 * var(--unit)); }
@keyframes activity-gallery-flow { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.page-activity .activity-support { margin-top: calc(70 * var(--unit)); padding: calc(55 * var(--unit)) calc(35 * var(--unit)); border: 1px solid #8ccf7b; border-radius: calc(15 * var(--unit)); box-shadow: 0 0 8px #c0e8b3; text-align: center; }
.page-activity .activity-support h2 { font-size: clamp(22px, 1.851852vw, 28px); }
.page-activity .activity-support > p { margin-top: calc(15 * var(--unit)); }
.page-activity .activity-support .pill { margin-top: calc(16 * var(--unit)); }
.page-activity .activity-thermal { padding-top: calc(73 * var(--unit)); text-align: center; }
.page-activity .activity-thermal > p { margin-top: calc(65 * var(--unit)); }
.page-activity .activity-message { position: relative; padding: calc(233 * var(--unit)) 0 calc(76 * var(--unit)); text-align: center; }
.page-activity .activity-message h2 { font-size: clamp(28px, 3.968254vw, 60px); line-height: 1.45; }
.page-activity .activity-message > div { position: absolute; z-index: -1; top: calc(140 * var(--unit)); left: 50%; width: var(--window-width, calc(100% * 1512 / 1160)); overflow: clip; transform: translateX(-50%); color: #f4fbf3; font-family: "Figtree", sans-serif; font-size: clamp(80px, 13.227513vw, 200px); font-weight: 700; }
.page-activity .activity-message > p { margin-top: calc(70 * var(--unit)); }
/* 活動ページの背景文字はPNG配置に対応。PDFの写真クリップとは版差あり。 */
.page-activity .activity-intro__background { position: absolute; z-index: -1; top: calc(65 * var(--unit)); left: 50%; width: var(--window-width, calc(100% * 1512 / 1160)); overflow: clip; transform: translateX(-50%); color: #f4fbf3; font-family: "Figtree", sans-serif; font-size: clamp(90px, 17.195767vw, 260px); font-weight: 700; line-height: .8; text-align: center; }
.page-activity .activity-message__background { line-height: .8; }
.page-about .about-access__map > img { width: 100%; height: auto; }
.greeting-content__background, .sdgs-intro__background, .service-intro__background, .activity-intro__background { white-space: nowrap; }
/* 塗装・遮熱 共通導入。 */
.page-painting .service-intro, .page-thermal .service-intro { position: relative; padding-top: calc(170 * var(--unit)); text-align: center; }
.service-intro__background { position: absolute; z-index: -1; top: calc(90 * var(--unit)); left: 50%; width: var(--window-width, calc(100% * 1512 / 1160)); overflow: clip; transform: translateX(-50%); color: #f4fbf3; font-family: "Figtree", sans-serif; font-size: clamp(90px, 13.227513vw, 200px); font-weight: 700; line-height: .85; }
.service-intro h2 { font-size: clamp(28px, 3.968254vw, 60px); line-height: 1.5; }
.service-intro > p { margin-top: calc(55 * var(--unit)); }
.service-intro__tags { display: flex; flex-wrap: wrap; justify-content: center; gap: calc(24 * var(--unit)); margin-top: calc(58 * var(--unit)); }
.service-intro__tags li { padding: calc(5 * var(--unit)) calc(16 * var(--unit)); border: 1px solid #cce3ec; border-radius: 99px; color: var(--blue); font-size: clamp(12px, .992063vw, 15px); }
.page-painting .service-intro__tags li { border-color: var(--green); color: var(--green); }
.service-intro__photo { width: 100%; aspect-ratio: 1160 / 420; margin-top: calc(70 * var(--unit)); border-radius: calc(40 * var(--unit)); object-fit: cover; object-position: center; }
.page-painting .painting-capabilities { position: relative; padding-top: calc(61 * var(--unit)); }
.page-painting .painting-capabilities > p { margin-top: calc(40 * var(--unit)); text-align: center; }
.page-painting .painting-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(40 * var(--unit)); margin-top: calc(38 * var(--unit)); }
.page-painting .painting-step { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: calc(24 * var(--unit)); padding: calc(30 * var(--unit)) calc(22 * var(--unit)); border-radius: calc(20 * var(--unit)); background: var(--pale-blue); }
.page-painting .painting-step:nth-child(2) { background: var(--pale-green); }
.page-painting .painting-step > span { display: grid; place-items: center; width: calc(60 * var(--unit)); aspect-ratio: 1; border-radius: 50%; color: #fff; background: var(--blue); font-size: clamp(18px, 1.587302vw, 24px); }
.page-painting .painting-step:nth-child(2) > span { background: var(--green); }
.page-painting .painting-step p { margin-top: calc(22 * var(--unit)); }
.page-painting .painting-capabilities__art { position: absolute; top: calc(198 * var(--unit)); right: calc(12 * var(--unit)); width: calc(129.5 * var(--unit)); }
.page-painting .painting-scope { padding-top: calc(105 * var(--unit)); }
.page-painting .scope-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(20 * var(--unit)) calc(40 * var(--unit)); margin-top: calc(20 * var(--unit)); }
.page-painting .scope-grid img { width: 100%; aspect-ratio: 360 / 240; border-radius: calc(16 * var(--unit)); object-fit: cover; }
.page-painting .scope-grid figcaption { display: flex; align-items: center; gap: calc(20 * var(--unit)); margin-top: calc(12 * var(--unit)); font-size: clamp(15px, 1.190476vw, 18px); font-weight: 700; }
.page-painting .scope-grid figcaption span { display: grid; place-items: center; width: calc(32 * var(--unit)); aspect-ratio: 1; border-radius: 50%; color: #fff; background: var(--blue); }
.page-painting .painting-scope + .service-feature { margin-top: calc(85 * var(--unit)); }
.page-painting .service-feature + .service-feature { margin-top: calc(-110 * var(--unit)); }
.split-table { display: grid; grid-template-columns: 500fr 595fr; gap: calc(65 * var(--unit)); }
.split-table h2 { margin-top: calc(20 * var(--unit)); }
.split-table .info-table > div { grid-template-columns: 243fr 352fr; }
.page-painting .split-table .info-table > div { grid-template-columns: max-content minmax(0, 1fr); column-gap: calc(22 * var(--unit)); }
.page-painting .info-table dt { padding-right: 0; white-space: nowrap; }
.page-painting .painting-qualifications { padding-top: calc(19 * var(--unit)); padding-bottom: calc(70 * var(--unit)); }
.page-painting .painting-qualifications > .center { margin-top: calc(70 * var(--unit)); }
/* 遮熱工事。 */
.page-thermal .thermal-protect { padding-top: calc(94 * var(--unit)); text-align: center; }
.page-thermal .thermal-protect > p { margin-top: calc(40 * var(--unit)); }
.page-thermal .thermal-protect blockquote { margin-top: calc(44 * var(--unit)); padding: calc(45 * var(--unit)); border: 1px solid #45a7c7; border-radius: calc(12 * var(--unit)); box-shadow: 0 0 6px #9dccd9; }
.page-thermal .thermal-protect blockquote p + p { margin-top: calc(30 * var(--unit)); }
.page-thermal .thermal-protect cite { display: block; margin-top: calc(30 * var(--unit)); font-style: normal; }
.page-thermal .thermal-protect + .service-feature { margin-top: 0; }
.page-thermal .thermal-facts { padding-top: calc(40 * var(--unit)); padding-bottom: calc(30 * var(--unit)); }
.page-thermal .thermal-facts .info-table > div { grid-template-columns: 183fr 412fr; }
.page-thermal .thermal-facts__contact { margin-top: calc(60 * var(--unit)); text-align: center; }
.page-thermal .thermal-facts__contact h3 { font-size: clamp(22px, 2.116402vw, 32px); }
.page-thermal .thermal-facts__contact > p { margin-top: calc(40 * var(--unit)); }
.page-thermal .thermal-facts__phone { display: block; margin-top: calc(20 * var(--unit)); color: var(--blue); font-size: clamp(30px, 3.306878vw, 50px); font-weight: 700; }
.page-thermal .thermal-facts__contact .pill { margin-top: calc(40 * var(--unit)); }
/* お問い合わせ。静的HTMLとContact Form 7の共通レイアウト。 */
.page-contact .contact-intro { padding-top: calc(75 * var(--unit)); text-align: center; }
.page-contact .contact-intro p { line-height: 2.7; }
.page-contact .contact-form { width: 50.925926%; max-width: 770px; margin: calc(55 * var(--unit)) auto calc(126 * var(--unit)); }
.page-contact .contact-form__row + .contact-form__row { margin-top: calc(34 * var(--unit)); }
.page-contact .contact-form__row > label { display: block; margin-bottom: calc(14 * var(--unit)); font-weight: 700; }
.page-contact .contact-form__required, .page-contact .contact-form__optional { display: inline-block; margin-left: calc(18 * var(--unit)); padding: 1px 6px; border-radius: 2px; font-size: 12px; font-weight: 500; }
.page-contact .contact-form__required { color: #fff; background: #ec6676; }
.page-contact .contact-form__optional { color: #7c7c7c; background: #f2f2f2; }
.page-contact .contact-form input:not([type="checkbox"]), .page-contact .contact-form select, .page-contact .contact-form textarea { display: block; width: 100%; padding: calc(16 * var(--unit)) calc(20 * var(--unit)); border: 1px solid #e4e4e4; border-radius: 3px; color: var(--ink); background: #fff; }
.page-contact .contact-form input::placeholder, .page-contact .contact-form textarea::placeholder { color: #aaa; opacity: 1; }
.page-contact .contact-form textarea { height: calc(180 * var(--unit)); resize: vertical; }
.page-contact .contact-form > p { margin-top: calc(22 * var(--unit)); }
.page-contact .contact-form__consent { display: flex; align-items: flex-start; gap: 12px; margin-top: calc(24 * var(--unit)); }
.page-contact .contact-form__consent input { flex: 0 0 auto; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--green); }
.page-contact .contact-form__consent a { text-decoration: underline; }
.page-contact .contact-form > .center { margin-top: calc(55 * var(--unit)); }
/* WordPress・Contact Form 7。プラグインの制御要素を既存フォームの幅に合わせる。 */
.page-contact .contact-form .wpcf7-form-control-wrap { display: block; }
.page-contact .contact-form .contact-form__consent-control { flex: 0 0 20px; }
.page-contact .contact-form .wpcf7-list-item { margin: 0; }
.page-contact .contact-form input[type="submit"].pill { display: inline-block; width: calc(400 * var(--unit)); max-width: 100%; padding: calc(18 * var(--unit)) calc(48 * var(--unit)); border: 1px solid transparent; border-radius: 99px; color: #fff; background: var(--green); font-size: clamp(13px, 1.058201vw, 16px); font-weight: 700; cursor: pointer; }
.page-contact .contact-form > .center { position: relative; }
.page-contact .contact-form .wpcf7-spinner { position: absolute; top: 50%; right: 10px; margin: 0; transform: translateY(-50%); }
.page-contact .contact-form .wpcf7-not-valid-tip { margin-top: 8px; font-size: 14px; }
.page-contact .contact-form .contact-form__consent-field > .wpcf7-not-valid-tip { font-size: clamp(13px, 4vw, 14px); white-space: nowrap; }
.page-contact .contact-form .wpcf7-response-output { margin: 24px 0 0; }
.page-top .topics-feed { margin-top: calc(76 * var(--unit)); }
.page-top .topics-feed + .center { margin-top: calc(50 * var(--unit)); }
.not-found { padding-block: 140px 100px; }
.not-found .pill { margin-top: 30px; }
body.admin-bar { --takumi-adminbar: 32px; }
body.admin-bar .site-header { top: var(--takumi-adminbar); }
body.admin-bar #wpadminbar { position: fixed; }
body.admin-bar #main [id] { scroll-margin-top: var(--takumi-adminbar); }
@media (max-width: 782px) {
  body.admin-bar { --takumi-adminbar: 46px; }
}
/* プライバシーポリシー：本文は指定の既存サイトから取得。 */
.page-privacy .privacy-content { width: 50.925926%; max-width: 770px; margin: calc(80 * var(--unit)) auto calc(170 * var(--unit)); }
.page-privacy .privacy-content > p { margin-bottom: calc(35 * var(--unit)); }
.page-privacy .privacy-content > ol { margin: 0; padding: 0; list-style: none; }
.page-privacy .privacy-content > ol > li { margin-top: calc(45 * var(--unit)); }
.page-privacy .privacy-content h2 { margin-bottom: calc(20 * var(--unit)); padding-left: calc(15 * var(--unit)); border-left: 3px solid var(--green); font-size: clamp(18px, 1.322751vw, 20px); line-height: 1.8; }
.page-privacy .privacy-content h3 { margin: calc(25 * var(--unit)) 0 calc(12 * var(--unit)); font-size: inherit; font-weight: 700; }
.page-privacy .privacy-content p + p { margin-top: calc(20 * var(--unit)); }
.page-privacy .privacy-content ul { margin: calc(18 * var(--unit)) 0; padding-left: 1.5em; list-style: disc; }
.page-privacy .privacy-content ul li + li { margin-top: calc(8 * var(--unit)); }
.page-privacy .privacy-content a { color: var(--blue); text-decoration: underline; }
/* PDF／PNGの実測による装飾の重なり。 */
.philosophy-copy .section-heading h2 { margin-top: calc(10 * var(--unit)); }
.page-painting .service-feature--blue { padding-block: calc(30 * var(--unit)); }
.page-painting .service-feature--blue::before { top: calc(-73 * var(--unit)); bottom: calc(100 * var(--unit)); }
.page-painting .service-feature--blue .service-feature__copy > p { margin-top: calc(16 * var(--unit)); }
.page-thermal .service-feature--green::before { top: 15%; bottom: calc(55 * var(--unit)); }
.page-thermal .service-feature--blue { margin-top: calc(-95 * var(--unit)); padding-block: calc(45 * var(--unit)); }
.page-contact .contact-form .pill { width: calc(400 * var(--unit)); }
/* 1100px：ヘッダーの各リンクと電話番号が収まる限界でメニュー切替。 */
@media (max-width: 1100px) {
  html { scroll-padding-top: 80px; }
  .site-header { align-items: center; padding: 14px 20px; }
  .site-header__brand { width: 145px; margin: 0; }
  .menu-toggle { z-index: 2; display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; padding: 10px; border-radius: 4px; background: #fff; }
  .menu-toggle span { display: block; width: 100%; height: 2px; background: var(--ink); }
  .site-nav { position: absolute; top: 72px; right: 20px; left: 20px; display: none; align-items: stretch; gap: 0; max-height: calc(100dvh - 96px); padding: 20px; overflow-y: auto; border-radius: 6px; font-size: 16px; box-shadow: 0 5px 15px #0002; }
  .site-nav.is-open { display: flex; flex-direction: column; }
  .site-nav > a:not(.site-header__contact), .business-menu__trigger { padding: 10px 0; }
  .business-menu__panel { position: static; display: block; width: auto; opacity: 1; pointer-events: auto; transform: none; }
  .business-menu__inner { padding-left: 16px; }
  .business-menu__inner a { padding: 10px 15px; }
  .site-header__phone { margin-top: 18px; }
  .site-header__phone > a { font-size: 22px; }
  .site-header__phone small { margin-top: 5px; font-size: 11px; }
  .site-header__contact { margin-top: 16px; padding: 12px 20px; text-align: center; font-size: 16px; }
  .contact-block__details { flex-direction: column; align-items: center; text-align: center; }
  .contact-block__card h3 { font-size: clamp(17px, 2.116402vw, 23px); }
  .page-painting .painting-step { grid-template-columns: 1fr; }
  .page-painting .painting-capabilities__art { top: calc(198 * var(--unit)); }
}
/* 860px：本文の最小文字サイズと3カラム・説明欄の必要幅から縦積みへ。 */
@media (max-width: 860px) {
  :root { --unit: 1px; }
  .philosophy-copy .section-heading h2 { margin-top: 12px; }
  .page-painting .service-feature--blue, .page-thermal .service-feature--blue { margin-top: 0; padding: 30px 0 50px; }
  .page-painting .service-feature--blue::before, .page-thermal .service-feature--green::before { top: 10%; bottom: 30%; }
  .page-painting .service-feature--blue .service-feature__copy > p { margin-top: 20px; }
  .page-activity .activity-intro__background { top: 25px; font-size: 90px; }
  .page-sdgs .certificate-frame { max-width: 406px; margin: 20px auto 0; padding: 20px; }
  .page-contact .contact-form textarea { height: 180px; }

  body { font-size: 16px; }
  html { scroll-padding-top: 80px; }
  .wrap, .wide { width: calc(100% - 40px); }
  /* SPの親幅は画面内幅から左右20pxを引いた値なので、英字背景ではその40pxを戻す。 */
  .page-greeting .greeting-content__background, .page-sdgs .sdgs-intro__background, .page-activity .activity-intro__background, .page-activity .activity-message > div, .service-intro__background { width: var(--window-width, calc(100% + 40px)); }
  h2 { font-size: clamp(26px, 5.5vw, 36px); }
  h3 { font-size: 24px; }
  .en { font-size: 13px; }
  .pill { padding: 15px 28px; font-size: 14px; }
  .section-heading h2 { margin-top: 12px; }
  .section-heading__line { width: 64px; height: 8px; margin-top: 18px; }
  .bar-heading { padding-left: 16px; border-left-width: 7px; }
  .bar-heading h2 { font-size: clamp(25px, 5.8vw, 36px); }
  .page-hero > img { aspect-ratio: 1512 / 600; object-fit: cover; object-position: center; }
  .page-title { align-items: flex-start; gap: 20px; margin-top: -30px; padding: 26px 18px 0; }
  .page-title__heading { padding-left: 16px; border-left-width: 7px; }
  .page-title h1 { font-size: clamp(24px, 6.6vw, 42px); }
  .page-title .en { font-size: 12px; }
  .breadcrumbs { flex-basis: 100%; order: 2; font-size: 10px; white-space: normal; }
  .page-title__subtitle { padding-left: 23px; font-size: 18px; }
  .contact-block { padding: 40px 0; border-radius: 40px 40px 0 0; }
  .contact-block__heading { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 10px; padding: 0 0 25px; }
  .contact-block__heading > .section-heading { grid-area: 1 / 1 / 2 / 3; margin-bottom: 5px; }
  .contact-block__art { position: static; width: min(100%, 180px); margin-inline: auto; }
  .contact-block__art--left { grid-area: 2 / 1; }
  .contact-block__art--right { grid-area: 2 / 2; }
  .contact-block__cards { grid-template-columns: 1fr; gap: 24px; }
  .contact-block__card { padding: 25px 20px; }
  .contact-block__card h3 { padding-bottom: 20px; font-size: clamp(18px, 5vw, 27px); white-space: normal; }
  .contact-block__card > p { margin-top: 20px; }
  .contact-block__details { gap: 20px; margin-top: 20px; }
  .contact-block__phone { font-size: 28px; }
  .contact-block__details small { font-size: 11px; }
  .contact-block__card br { display: none; }
  .site-footer { padding: 45px 0 24px; font-size: 13px; }
  .site-footer__grid { grid-template-columns: 1fr; gap: 40px; }
  .site-footer__brand { width: 180px; margin-bottom: 20px; }
  .site-footer__phone { margin: 14px 0; font-size: 28px; }
  .site-footer__nav { grid-template-columns: 1fr 1fr; gap: 25px 16px; font-size: 15px; }
  .site-footer__nav > div { gap: 13px; }
  .site-footer__nav > div a:not(:first-child) { padding-left: 8px; font-size: 13px; }
  .site-footer__partners { flex-direction: column; gap: 15px; margin-top: 35px; }
  .site-footer__partners ul { gap: 10px; }
  .site-footer__partners li { padding: 3px 10px; font-size: 12px; }
  .site-footer__group { margin-top: 18px; font-size: 11px; text-align: left; }
  .site-footer__copyright { margin: 35px 20px 0; padding-top: 20px; font-size: 10px; }
  .page-top .top-hero__movie { aspect-ratio: 390 / 580; object-position: 54% center; }
  .page-top .top-hero h1 { top: 125px; left: 8%; gap: 10px; font-size: clamp(28px, 7.5vw, 42px); }
  .page-top .top-hero h1 > span { padding: 9px 5px; }
  .page-top .top-hero h1 > span + span { margin-top: 30px; }
  .page-top .top-hero__ring { top: 90px; left: 20%; width: clamp(140px, 40vw, 220px); }
  .page-top .top-hero__scroll { gap: 8px; padding: 10px 15px; }
  .page-top .top-intro { padding: 65px 0 80px; }
  .page-top .top-intro__grid { grid-template-columns: 1fr; gap: 40px; }
  .page-top .top-intro__copy > p { font-size: 20px; }
  .page-top .top-intro h2 { margin-top: 18px; font-size: clamp(23px, 6vw, 36px); white-space: normal; }
  .page-top .top-intro__decorations { margin-top: 20px; padding-bottom: 240px; }
  .page-top .top-intro__logo { width: 140px; }
  .page-top .top-intro__handshake { left: 47%; width: 95px; }
  .page-top .top-intro__children { top: 85px; width: 175px; }
  .page-top .top-intro__painters { top: 140px; width: 120px; }
  .page-top .top-intro__photos { margin: 0 8px; }
  .page-top .top-intro__city { border-radius: 10px; }
  .page-top .top-intro__photos::before { width: 35px; border-radius: 6px; }
  .page-top .top-intro__photos::after { width: 25px; border-radius: 5px; }
  .page-top .top-intro__photo { border-radius: 6px; }
  .page-top .top-intro__photo--left { left: 0; }
  .page-top .top-intro__photo--right { right: 0; }
  .page-top .top-intro__marquee { bottom: 35px; font-size: 120px; }
  .page-top .top-services { padding: 20px 0 0; }
  .page-top .top-services__heading { flex-direction: column; align-items: flex-start; gap: 25px; margin-bottom: 40px; }
  .service-feature { padding: 30px 0 50px; }
  .service-feature::before { top: 10%; bottom: 30%; width: 90%; border-radius: 0 50px 50px 0; }
  .service-feature--blue::before { border-radius: 50px 0 0 50px; }
  .service-feature__inner { grid-template-columns: 1fr; gap: 30px; }
  .service-feature__art { width: min(100%, 550px); margin-inline: auto; }
  .service-feature__copy h2, .service-feature__copy h3 { font-size: clamp(30px, 7vw, 46px); line-height: 1.5; }
  .service-feature__copy > p:not(.service-feature__eyebrow):not(.service-feature__en) { margin-top: 20px; }
  .service-feature__copy .pill { margin-top: 25px; }
  .service-feature__eyebrow { font-size: 20px; }
  .service-feature__en { margin-top: 10px; font-size: 12px; }
  .service-feature__number { top: -25px; right: 0; font-size: 120px; }
  .service-feature--blue .service-feature__number { right: 0; bottom: -20px; }
  .page-top .service-feature + .service-feature { margin-top: 0; padding-bottom: 50px; }
  .philosophy-copy { padding-bottom: 170px; }
  .philosophy-copy__background { top: 0; font-size: 110px; }
  .background-marquee__row--blue { margin-top: 25px; }
  .philosophy-copy h3 { margin-top: 35px; padding-inline: 20px; font-size: clamp(27px, 6.8vw, 42px); letter-spacing: 0; }
  .philosophy-copy h3 br { display: none; }
  .philosophy-copy > p { width: calc(100% - 40px); margin: 30px auto 0; }
  .philosophy-copy > p br { display: none; }
  .philosophy-copy__art { right: 20px; bottom: 0; width: 190px; }
  .page-top .top-philosophy { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 60px; padding-inline: 20px; }
  .page-top .top-philosophy__center { grid-area: 1 / 1 / 2 / 3; padding: 0; }
  .page-top .top-philosophy__lead { margin-bottom: 25px; font-size: 20px; }
  .page-top .top-philosophy .philosophy-copy { padding-bottom: 190px; }
  .page-top .top-philosophy .philosophy-copy h3 { margin-inline: 0; padding-inline: 0; }
  .page-top .top-philosophy .philosophy-copy__art { width: 190px; }
  .page-top .top-philosophy__photos { grid-row: 2; max-height: none; }
  .page-top .top-philosophy__loop { animation: none; }
  .page-top .top-philosophy__loop > div { gap: 8px; padding-bottom: 0; }
  .page-top .top-philosophy__loop > div[aria-hidden="true"] { display: none; }
  .page-top .top-sustainability { padding-top: 80px; }
  .sustainability-slider { margin-top: 70px; padding-top: 30px; }
  .sustainability-track { gap: 30px; padding: 0 20px 20px; }
  .sustainability-card { flex-basis: min(82vw, 340px); width: min(82vw, 340px); padding: 35px 20px 25px; border-radius: 12px; }
  .sustainability-card__number { top: -26px; font-size: 50px; }
  .sustainability-card__art { width: 180px; height: 180px; }
  .sustainability-card h3 { margin-top: 20px; font-size: 25px; }
  .sustainability-card__copy { margin-top: 20px; }
  .sustainability-card__goals { gap: 10px; margin-top: 20px; }
  .sustainability-card__goal { width: 75px; height: 75px; }
  .sustainability-note { margin-top: 30px; font-size: 12px; }
  .partner-logos { flex-wrap: wrap; gap: 25px; margin-top: 45px; }
  .partner-logos img:nth-child(1) { width: 80px; }
  .partner-logos img:nth-child(2) { width: 180px; }
  .partner-logos img:nth-child(3) { width: 250px; }
  .partner-declaration { margin-top: 25px; }
  .partner-declaration + .center { margin-top: 30px; }
  .partner-declaration { gap: 12px; }
  .partner-declaration::before, .partner-declaration::after { flex-basis: 40px; }
  .page-top .partner-action { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; }
  .page-top .partner-action > .pill { padding-inline: 16px; }
  .page-top .partner-action__people { position: static; width: min(28vw, 100px); }
  .page-top .top-activity { grid-template-columns: 1fr; margin-top: 65px; border-radius: 10px; }
  .page-top .top-activity__copy { padding: 30px 20px; }
  .page-top .top-activity h2 { font-size: 26px; }
  .page-top .top-activity p { margin-top: 15px; white-space: normal; }
  .page-top .top-activity .pill { margin-top: 25px; padding: 12px 25px; }
  .page-top .top-activity__photo { height: auto; aspect-ratio: 2; }
  .page-top .top-topics { padding: 80px 0; }
  .page-top .top-topics__art { position: static; width: 140px; margin: 0 auto 25px; }
  .page-top .topics-grid { grid-template-columns: 1fr; gap: 35px; margin-top: 40px; }
  .page-top .topics-card { max-width: 500px; margin-inline: auto; }
  .page-top .topics-card time { margin-top: 15px; }
  .page-top .topics-card p { margin-top: 10px; }
  .page-top .topics-grid + .center { margin-top: 35px; }
  .page-about .about-philosophy { padding: 70px 0; }
  .page-about .values-grid { grid-template-columns: 1fr; gap: 25px; margin-top: 30px; }
  .page-about .value-card { padding: 25px; border-radius: 20px; }
  .page-about .value-card > img { height: 190px; }
  .page-about .value-card h3 { margin-top: 20px; white-space: normal; }
  .page-about .value-card p { margin-top: 20px; }
  .page-about .about-philosophy > .center { margin-top: 30px; }
  .page-about .about-company { padding: 55px 0; }
  .page-about .about-company__inner { grid-template-columns: 1fr; gap: 30px; }
  .page-about .about-company__heading > img { width: 180px; margin: 20px auto 0; }
  .page-about .about-company__heading h2, .page-about .about-history h2, .page-about .about-access h2 { margin-top: 10px; }
  .info-table > div, .split-table .info-table > div, .page-thermal .thermal-facts .info-table > div { grid-template-columns: 1fr; gap: 8px; padding: 16px 0; }
  .info-table dt { padding: 0; font-weight: 700; }
  .page-about .about-company__partners { gap: 12px; margin-top: 30px; font-size: 12px; }
  .page-about .about-company__partners li { padding: 3px 10px; }
  .page-about .about-section__line { margin-top: 18px; }
  .page-about .about-history { padding-top: 60px; }
  .page-about .about-history__inner { grid-template-columns: 1fr; gap: 30px; }
  .page-about .about-history__heading > img { position: static; width: 220px; max-width: 100%; margin: 25px auto 0; }
  .page-about .history-list { gap: 16px; padding-left: 20px; }
  .page-about .history-list::before { left: 5px; }
  .page-about .history-list > div::before { left: -21px; width: 10px; height: 10px; }
  .page-about .history-list > div::after { left: -15px; width: 15px; }
  .page-about .history-list > div { grid-template-columns: 1fr; gap: 10px; padding: 20px; border-radius: 12px; }
  .page-about .history-list dt { font-size: 18px; }
  .page-about .history-list__number { font-size: 28px; }
  .page-about .history-list dd { font-size: 16px; }
  .page-about .about-access { padding-block: 60px; }
  .page-about .about-access__grid { grid-template-columns: 1fr; gap: 25px; }
  .page-about .about-access__address { margin-top: 30px; }
  .page-about .about-access__address p { margin-top: 15px; }
  .page-about .about-access figcaption { margin-top: 12px; }
  .page-about .about-access__map { aspect-ratio: 1; margin-top: 25px; }
  .page-greeting .greeting-content { width: calc(100% - 40px); margin: 70px auto; }
  .page-greeting .greeting-content__background { top: -20px; font-size: 90px; }
  .page-greeting .greeting-content__lead { margin-top: 20px; font-size: 20px; }
  .page-greeting .greeting-content__opening { grid-template-columns: 1fr; gap: 25px; margin-top: 40px; }
  .page-greeting .greeting-content__opening > p, .page-greeting .greeting-content__body { font-size: 16px; line-height: 2; }
  .page-greeting .greeting-content__opening img { max-width: 300px; margin-inline: auto; border-radius: 20px; }
  .page-greeting .greeting-content h3 { margin-top: 40px; font-size: 24px; }
  .page-greeting .greeting-content__body { margin-top: 25px; }
  .page-greeting .greeting-content__body p + p { margin-top: 20px; }
  .page-greeting .greeting-content__signature { margin-top: 35px; font-size: 18px; }
  .page-sdgs .sdgs-intro { padding-top: 70px; }
  .page-sdgs .sdgs-intro h2 { font-size: 30px; }
  .page-sdgs .sdgs-intro > p { margin-top: 30px; }
  .page-sdgs .sdgs-intro > p br { display: none; }
  .page-sdgs .sdgs-intro__background { top: 30px; font-size: 70px; }
  .page-sdgs .sdgs-actions { padding-top: 70px; }
  .page-sdgs .sdgs-certificate { padding-block: 75px; }
  .page-sdgs .certificate-grid { grid-template-columns: 1fr; gap: 50px; width: 100%; margin-top: 45px; }
  .page-sdgs .certificate-grid h3 { font-size: 22px; }
  .page-sdgs .certificate-grid p { margin-top: 15px; font-size: 14px; }
  .page-sdgs .certificate-grid article > img:not(.certificate-grid__logo) { max-width: 406px; margin: 20px auto 0; }
  .page-sdgs .certificate-grid__logo { height: 90px; margin-top: 20px; }
  .page-activity .activity-intro { padding-top: 65px; }
  .page-activity .activity-intro > p { font-size: 18px; }
  .page-activity .activity-intro > p br { display: none; }
  .page-activity .activity-intro__photo { aspect-ratio: 1.5; margin-top: 30px; border-radius: 20px; }
  .page-activity .activity-global { padding-top: 60px; }
  .page-activity .activity-global > p { margin-top: 35px; }
  .page-activity .activity-global > p br { display: none; }
  .page-activity .activity-global__company { padding: 10px 20px; font-size: 13px; }
  .page-activity .activity-gallery { margin: 40px 20px 0; padding: 0; overflow: clip; }
  .page-activity .activity-gallery__group { gap: 20px; padding-right: 20px; }
  .page-activity .activity-gallery figure { flex: 0 0 min(82vw, 320px); width: min(82vw, 320px); max-width: none; margin-inline: 0; }
  .page-activity .activity-gallery__item--lower { margin-top: 25px; }
  .page-activity .activity-gallery img { border-radius: 20px; }
  .page-activity .activity-gallery figcaption { margin-top: 12px; }
  .page-activity .activity-support { margin-top: 55px; padding: 30px 20px; border-radius: 15px; }
  .page-activity .activity-support h2 { font-size: 24px; }
  .page-activity .activity-support > p { margin-top: 20px; }
  .page-activity .activity-support .pill { margin-top: 25px; }
  .page-activity .activity-thermal { padding-top: 65px; }
  .page-activity .activity-thermal > p { margin-top: 30px; }
  .page-activity .activity-thermal > p br { display: none; }
  .page-activity .activity-message { padding: 100px 0 65px; }
  .page-activity .activity-message h2 { font-size: clamp(27px, 6.5vw, 40px); }
  .page-activity .activity-message > div { top: 50px; font-size: 75px; }
  .page-activity .activity-message > p { margin-top: 35px; }
  .page-painting .service-intro, .page-thermal .service-intro { padding-top: 70px; }
  .service-intro__background { top: 30px; font-size: 75px; }
  .service-intro h2 { font-size: clamp(28px, 6.5vw, 40px); }
  .service-intro > p { margin-top: 30px; }
  .service-intro > p br { display: none; }
  .service-intro__tags { gap: 12px; margin-top: 30px; }
  .service-intro__tags li { padding: 5px 12px; font-size: 13px; }
  .service-intro__photo { aspect-ratio: 1.5; margin-top: 35px; border-radius: 20px; }
  .page-painting .painting-capabilities { padding-top: 65px; }
  .page-painting .painting-capabilities > p { margin-top: 35px; }
  .page-painting .painting-steps { grid-template-columns: 1fr; gap: 20px; margin-top: 30px; }
  .page-painting .painting-step { grid-template-columns: auto 1fr; gap: 20px; padding: 25px 20px; border-radius: 20px; }
  .page-painting .painting-step > span { width: 44px; font-size: 20px; }
  .page-painting .painting-step p { margin-top: 15px; }
  .page-painting .painting-capabilities__art { position: static; width: 129.5px; margin: 25px 0 0 auto; }
  .page-painting .painting-scope { padding-top: 60px; }
  .page-painting .scope-grid { grid-template-columns: 1fr; gap: 25px; margin-top: 35px; }
  .page-painting .scope-grid img { border-radius: 16px; }
  .page-painting .scope-grid figcaption { gap: 15px; margin-top: 12px; font-size: 18px; }
  .page-painting .scope-grid figcaption span { width: 36px; }
  .page-painting .painting-scope + .service-feature { margin-top: 65px; }
  .page-painting .service-feature + .service-feature { margin-top: 0; }
  .split-table { grid-template-columns: 1fr; gap: 30px; }
  .split-table h2 { margin-top: 15px; }
  .page-painting .split-table .info-table > div { grid-template-columns: 1fr; gap: 8px; }
  .page-painting .painting-qualifications { padding: 60px 0 70px; }
  .page-painting .painting-qualifications > .center { margin-top: 35px; }
  .page-thermal .thermal-protect { padding-top: 65px; }
  .page-thermal .thermal-protect > p { margin-top: 30px; }
  .page-thermal .thermal-protect > p br, .page-thermal .thermal-protect blockquote p br { display: none; }
  .page-thermal .thermal-protect blockquote { margin-top: 35px; padding: 25px 20px; border-radius: 12px; }
  .page-thermal .thermal-protect blockquote p + p { margin-top: 25px; }
  .page-thermal .thermal-protect cite { margin-top: 25px; }
  .page-thermal .thermal-protect + .service-feature { margin-top: 60px; }
  .page-thermal .thermal-facts { padding: 60px 0 70px; }
  .page-thermal .thermal-facts__contact { margin-top: 55px; }
  .page-thermal .thermal-facts__contact h3 { font-size: 25px; }
  .page-thermal .thermal-facts__contact > p { margin-top: 25px; }
  .page-thermal .thermal-facts__phone { margin-top: 20px; font-size: 32px; }
  .page-thermal .thermal-facts__contact .pill { margin-top: 25px; }
  .page-contact .contact-intro { padding-top: 55px; }
  .page-contact .contact-intro p { line-height: 1.8; }
  .page-contact .contact-intro p br { display: none; }
  .page-contact .contact-form { width: calc(100% - 40px); margin: 40px auto 70px; }
  .page-contact .contact-form__row + .contact-form__row { margin-top: 25px; }
  .page-contact .contact-form__row > label { margin-bottom: 12px; }
  .page-contact .contact-form__required, .page-contact .contact-form__optional { margin-left: 15px; }
  .page-contact .contact-form input:not([type="checkbox"]), .page-contact .contact-form select, .page-contact .contact-form textarea { padding: 14px; }
  .page-contact .contact-form input[type="submit"].pill { padding: 15px 28px; font-size: 14px; }
  .page-contact .contact-form > p { margin-top: 20px; }
  .page-contact .contact-form__consent { margin-top: 20px; }
  .page-contact .contact-form > .center { margin-top: 30px; }
  .page-privacy .privacy-content { width: calc(100% - 40px); margin: 55px auto 70px; }
  .page-privacy .privacy-content > p { margin-bottom: 25px; }
  .page-privacy .privacy-content > ol > li { margin-top: 30px; }
  .page-privacy .privacy-content h2 { margin-bottom: 15px; padding-left: 12px; font-size: 20px; }
  .page-privacy .privacy-content h3 { margin: 20px 0 12px; }
  .page-privacy .privacy-content p + p { margin-top: 15px; }
  .page-privacy .privacy-content ul { margin-block: 15px; }
  .page-privacy .privacy-content ul li + li { margin-top: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .page-top .top-hero__ring, .page-top .top-intro__marquee span, .page-top .top-philosophy__loop, .background-marquee__track, .page-activity .activity-gallery__track { animation: none; }
  .page-activity .activity-gallery { overflow-x: auto; }
  .page-activity .activity-gallery__group[aria-hidden="true"] { display: none; }
  .business-menu__panel { transition: none; }
}
