:root {
  --forest: #173b33;
  --forest-deep: #0d2b25;
  --forest-mid: #2b594d;
  --gold: #e5b84a;
  --gold-soft: #f2d98c;
  --cream: #f6f2e8;
  --paper: #fffdf7;
  --ink: #20352f;
  --muted: #6f7b76;
  --line: #d8ddd7;
  --white: #fff;
  --sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  --serif: "Shippori Mincho", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --container: min(1180px, calc(100vw - 64px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); line-height: 1.9; -webkit-font-smoothing: antialiased; }
body.menu-open, body.modal-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
img { display: block; max-width: 100%; }
::selection { color: var(--forest-deep); background: var(--gold-soft); }
.container { width: var(--container); margin-inline: auto; }
.section { padding: 140px 0; position: relative; }
.skip-link { position: fixed; z-index: 999; top: 12px; left: 12px; padding: 10px 18px; background: var(--white); color: var(--forest); transform: translateY(-160%); transition: transform .2s; }
.skip-link:focus { transform: translateY(0); }

.site-header { height: 88px; padding: 0 48px; display: flex; align-items: center; justify-content: space-between; position: absolute; z-index: 30; top: 0; left: 0; right: 0; color: var(--white); border-bottom: 1px solid rgba(255,255,255,.22); }
.brand { display: inline-flex; align-items: center; gap: 9px; line-height: 1; }
.brand-spark { width: 39px; height: 39px; display: grid; place-items: center; position: relative; flex: none; color: var(--gold-soft); }
.brand-spark .material-symbols-rounded { font-family: "Material Symbols Rounded"; font-size: 35px; line-height: 1; font-weight: normal; font-style: normal; letter-spacing: normal; text-transform: none; white-space: nowrap; direction: ltr; font-feature-settings: "liga"; font-variation-settings: "FILL" 0, "wght" 300, "GRAD" 0, "opsz" 40; }
.brand-lockup { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.brand-name { display: flex; align-items: baseline; gap: 5px; font-family: "Zen Maru Gothic", var(--sans); white-space: nowrap; }
.brand-name b { font-size: 21px; font-weight: 700; letter-spacing: .075em; }
.brand-name em { color: var(--gold-soft); font-size: 14px; font-weight: 500; font-style: normal; letter-spacing: .13em; }
.brand-roman { padding-left: 1px; color: rgba(255,255,255,.56); font-size: 6.5px; font-weight: 600; letter-spacing: .24em; white-space: nowrap; }
.global-nav { display: flex; align-items: center; gap: 30px; font-size: 13px; font-weight: 600; letter-spacing: .06em; }
.global-nav > a { position: relative; padding-block: 10px; }
.global-nav > a:not(.nav-contact)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 3px; height: 1px; background: var(--gold); transition: right .3s ease; }
.global-nav > a:hover::after, .global-nav > a:focus-visible::after { right: 0; }
.nav-contact { border: 1px solid rgba(255,255,255,.6); padding: 11px 18px !important; border-radius: 100px; transition: .25s; }
.nav-contact:hover { background: var(--white); color: var(--forest); }
.menu-toggle { display: none; }

.hero { min-height: 820px; height: 100svh; position: relative; color: var(--white); overflow: hidden; background: var(--forest); }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; animation: hero-in 1.5s ease both; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,30,25,.88) 0%, rgba(9,36,30,.66) 38%, rgba(11,34,29,.08) 69%), linear-gradient(0deg, rgba(8,28,24,.46), transparent 44%); }
.hero-grain { position: absolute; inset: 0; opacity: .15; pointer-events: none; background-image: radial-gradient(rgba(255,255,255,.22) .55px, transparent .7px), radial-gradient(rgba(0,0,0,.18) .55px, transparent .75px); background-position: 0 0, 7px 9px; background-size: 11px 13px, 13px 11px; mix-blend-mode: soft-light; }
.hero-content { height: 100%; display: flex; justify-content: center; flex-direction: column; position: relative; z-index: 2; padding-top: 60px; }
.eyebrow { margin: 0 0 24px; display: flex; align-items: center; gap: 12px; color: var(--forest-mid); font-size: 11px; font-weight: 700; letter-spacing: .22em; }
.eyebrow span { width: 28px; height: 1px; background: currentColor; }
.eyebrow.light { color: var(--gold-soft); }
.hero h1 { font-family: var(--serif); font-size: clamp(48px, 5vw, 80px); line-height: 1.35; letter-spacing: .05em; font-weight: 500; margin: 0 0 28px; text-shadow: 0 3px 24px rgba(0,0,0,.16); }
.hero h1 strong { color: var(--gold-soft); font-weight: 600; position: relative; }
.hero h1 strong::after { content: "✦"; font-size: 18px; position: absolute; top: -8px; right: -24px; color: var(--gold); }
.hero-copy { margin: 0; color: rgba(255,255,255,.88); font-size: 16px; line-height: 2; letter-spacing: .035em; }
.hero-actions { display: flex; align-items: center; gap: 34px; margin-top: 42px; }
.button { min-height: 58px; padding: 0 26px; display: inline-flex; align-items: center; justify-content: center; gap: 34px; border: 0; border-radius: 2px; cursor: pointer; font-weight: 600; font-size: 14px; letter-spacing: .06em; transition: transform .25s, box-shadow .25s, background .25s; }
.button:hover { transform: translateY(-2px); }
.button-gold { color: var(--forest-deep); background: var(--gold-soft); box-shadow: 0 12px 34px rgba(0,0,0,.16); }
.button-gold:hover { background: var(--white); box-shadow: 0 16px 40px rgba(0,0,0,.22); }
.text-link { display: inline-flex; align-items: center; gap: 12px; width: fit-content; padding-bottom: 4px; border-bottom: 1px solid currentColor; font-weight: 600; font-size: 13px; letter-spacing: .06em; }
.text-link span { transition: transform .2s; }
.text-link:hover span { transform: translateX(4px); }
.light-link { color: var(--white); border-color: rgba(255,255,255,.55); }
.hero-foot { position: absolute; z-index: 3; bottom: 0; left: 0; right: 0; height: 76px; padding: 0 6vw; display: flex; align-items: center; gap: 6vw; background: rgba(10,40,34,.78); border-top: 1px solid rgba(255,255,255,.15); backdrop-filter: blur(8px); }
.hero-foot p { margin: 0; display: flex; gap: 13px; color: rgba(255,255,255,.83); font-size: 12px; letter-spacing: .05em; }
.hero-foot span { color: var(--gold-soft); font-size: 9px; letter-spacing: .16em; padding-top: 2px; }
.image-note { position: absolute; z-index: 3; bottom: 90px; right: 25px; margin: 0; font-size: 10px; color: rgba(255,255,255,.72); text-shadow: 0 1px 4px #000; }
.scroll-cue { position: absolute; right: 35px; top: 44%; z-index: 4; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.scroll-cue span { font-size: 9px; letter-spacing: .28em; writing-mode: vertical-rl; }
.scroll-cue i { height: 55px; width: 1px; background: linear-gradient(var(--gold), transparent); position: relative; overflow: hidden; }
.scroll-cue i::after { content: ""; position: absolute; top: -20px; left: 0; width: 1px; height: 18px; background: var(--white); animation: scroll 2s ease-in-out infinite; }

.intro { background: var(--paper); overflow: hidden; }
.intro-grid { display: grid; grid-template-columns: .86fr 1.1fr; gap: 13%; align-items: start; position: relative; z-index: 2; }
.section-heading h2, .support-title h2, .day-heading h2, .contact-intro h2 { font-family: var(--serif); font-weight: 500; line-height: 1.55; letter-spacing: .04em; font-size: clamp(36px, 4vw, 58px); margin: 0; }
h2 strong { color: var(--forest-mid); font-weight: 600; }
.intro-copy { padding-top: 48px; max-width: 560px; }
.intro-copy .lead { font-family: var(--serif); font-size: 24px; color: var(--forest); line-height: 1.8; margin-top: 0; }
.intro-copy p:not(.lead) { color: var(--muted); font-size: 15px; }
.intro-copy .text-link { margin-top: 24px; }
.star-orbit { position: absolute; right: -100px; bottom: -120px; width: 390px; aspect-ratio: 1; border: 1px solid rgba(23,59,51,.08); border-radius: 50%; display: grid; place-items: center; color: rgba(229,184,74,.12); font-size: 150px; }
.star-orbit::before, .star-orbit::after { content: ""; position: absolute; border: 1px solid rgba(23,59,51,.07); border-radius: 50%; }
.star-orbit::before { inset: 45px; }.star-orbit::after { inset: 95px; }

.support { background: var(--cream); border-top: 1px solid rgba(23,59,51,.08); }
.support-title { display: grid; grid-template-columns: 1fr .8fr; gap: 12%; align-items: end; margin-bottom: 74px; }
.support-title > p { color: var(--muted); margin: 0 0 7px; font-size: 14px; }
.support-list { border-top: 1px solid #cfd5ce; }
.support-card { min-height: 330px; display: grid; grid-template-columns: 90px 210px 1fr; gap: 36px; align-items: center; border-bottom: 1px solid #cfd5ce; position: relative; transition: background .35s, padding .35s; }
.support-card:hover { background: rgba(255,255,255,.55); padding-inline: 22px; }
.support-number { align-self: start; padding-top: 44px; color: var(--forest-mid); font-family: var(--serif); font-size: 14px; letter-spacing: .12em; }
.support-icon { width: 164px; aspect-ratio: 1; border-radius: 50%; background: linear-gradient(145deg, #fffef9 5%, #eee8da 100%); display: grid; place-items: center; position: relative; box-shadow: inset 0 0 0 1px rgba(43,89,77,.08), 0 16px 38px rgba(42,66,58,.08); isolation: isolate; }
.support-icon::before { content: ""; position: absolute; width: 84px; height: 84px; border-radius: 30px; background: rgba(43,89,77,.08); transform: rotate(-8deg); z-index: -1; transition: transform .35s ease, border-radius .35s ease; }
.support-icon::after { content: ""; position: absolute; width: 10px; height: 10px; right: 28px; top: 27px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 6px rgba(229,184,74,.13); }
.support-card:hover .support-icon::before { transform: rotate(0) scale(1.05); border-radius: 50%; }
.support-icon .material-symbols-rounded { font-family: "Material Symbols Rounded"; font-size: 58px; line-height: 1; color: var(--forest-mid); font-weight: normal; font-style: normal; letter-spacing: normal; text-transform: none; white-space: nowrap; word-wrap: normal; direction: ltr; font-feature-settings: "liga"; font-variation-settings: "FILL" 0, "wght" 300, "GRAD" 0, "opsz" 48; }
.support-icon-community::before { background: rgba(229,184,74,.15); transform: rotate(8deg); }
.support-icon-community .material-symbols-rounded { color: #ad7e17; }
.support-icon-family::before { background: rgba(157,93,69,.10); transform: rotate(-5deg); }
.support-icon-family .material-symbols-rounded { color: #8f5a48; }
.support-body { display: grid; grid-template-columns: 210px 1fr; column-gap: 42px; align-items: center; }
.card-en { grid-column: 1 / -1; margin: 0 0 12px; color: #9a8770; font-size: 9px; font-weight: 700; letter-spacing: .18em; }
.support-body h3 { margin: 0; font-family: var(--serif); font-size: 25px; line-height: 1.65; font-weight: 600; letter-spacing: .04em; }
.support-body > p:not(.card-en) { margin: 0; color: var(--muted); font-size: 14px; }
.tag-row { grid-column: 2; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.tag-row span { padding: 5px 11px; border: 1px solid #cbd3cc; border-radius: 100px; color: var(--forest-mid); font-size: 10px; }

.philosophy { color: var(--white); background: var(--forest); overflow: hidden; }
.philosophy::after { content: "★"; position: absolute; right: -60px; top: -180px; color: rgba(255,255,255,.025); font-size: 520px; line-height: 1; }
.philosophy-grid { display: grid; grid-template-columns: .95fr 1fr; gap: 12%; position: relative; z-index: 1; }
.philosophy-panel h2 { font-family: var(--serif); font-size: clamp(36px,4vw,58px); font-weight: 500; line-height: 1.55; margin: 0 0 32px; }
.philosophy-panel h2 strong { color: var(--gold-soft); }
.philosophy-panel > p:last-child { max-width: 480px; color: rgba(255,255,255,.72); font-size: 14px; }
.values-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid rgba(255,255,255,.18); }
.values-list li { display: grid; grid-template-columns: 66px 1fr; gap: 16px; padding: 32px 0; border-bottom: 1px solid rgba(255,255,255,.18); }
.values-list > li > span { color: var(--gold-soft); font-family: var(--serif); font-size: 13px; }
.values-list h3 { margin: -4px 0 8px; font-family: var(--serif); font-size: 22px; letter-spacing: .06em; }
.values-list p { margin: 0; color: rgba(255,255,255,.64); font-size: 13px; }

.day { overflow: hidden; }
.day-heading { max-width: 660px; margin-bottom: 86px; }
.day-heading > p:last-child { color: var(--muted); font-size: 14px; max-width: 560px; margin-top: 24px; }
.day-flow { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.day-flow::before { content: ""; position: absolute; top: 72px; left: 12%; right: 12%; height: 1px; background: #d6dcd6; }
.day-item { text-align: center; padding: 0 35px; position: relative; }
.day-time { height: 44px; color: var(--forest-mid); font-size: 10px; font-weight: 700; letter-spacing: .2em; }
.day-dot { height: 58px; display: grid; place-items: center; position: relative; z-index: 1; }
.day-dot span { width: 14px; aspect-ratio: 1; border: 3px solid var(--paper); outline: 1px solid var(--gold); background: var(--gold); border-radius: 50%; }
.day-text { padding-top: 24px; }
.day-text small { color: #9b856c; font-size: 11px; letter-spacing: .08em; }
.day-text h3 { margin: 13px 0 18px; font-family: var(--serif); font-size: 21px; line-height: 1.65; }
.day-text p { margin: 0; color: var(--muted); font-size: 13px; }

.family { position: relative; padding: 138px 0; color: var(--white); background: var(--forest-deep); overflow: hidden; }
.family-glow { position: absolute; width: 580px; height: 580px; right: 2%; top: -300px; border-radius: 50%; background: radial-gradient(circle, rgba(229,184,74,.16), transparent 66%); }
.family::before { content: ""; position: absolute; inset: 0; opacity: .05; background-image: repeating-linear-gradient(120deg, transparent 0 20px, #fff 20px 21px); }
.family-grid { display: grid; grid-template-columns: .95fr 1fr; gap: 14%; align-items: center; position: relative; }
.family-copy h2 { font-family: var(--serif); font-size: clamp(38px,4vw,58px); line-height: 1.55; font-weight: 500; margin: 0 0 30px; }
.family-copy h2 strong { color: var(--gold-soft); }
.family-copy > p:not(.eyebrow) { color: rgba(255,255,255,.7); font-size: 14px; }
.button-outline { margin-top: 24px; border: 1px solid rgba(255,255,255,.56); color: var(--white); background: transparent; }
.button-outline:hover { background: var(--white); color: var(--forest); }
.family-quote { margin: 0; padding: 70px 50px; border: 1px solid rgba(255,255,255,.2); position: relative; background: rgba(255,255,255,.035); backdrop-filter: blur(4px); }
.quote-star { display: block; color: var(--gold); font-size: 25px; margin-bottom: 28px; }
.family-quote p { margin: 0; font-family: var(--serif); font-size: clamp(22px,2.2vw,32px); line-height: 1.9; letter-spacing: .05em; }

.faq { background: var(--cream); }
.faq-grid { display: grid; grid-template-columns: .6fr 1.2fr; gap: 12%; }
.faq-list { border-top: 1px solid #c9d0c9; }
.faq-list details { border-bottom: 1px solid #c9d0c9; }
.faq-list summary { list-style: none; cursor: pointer; min-height: 86px; display: grid; grid-template-columns: 42px 1fr 24px; align-items: center; font-family: var(--serif); font-size: 16px; font-weight: 600; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary > span { color: var(--gold); font-size: 17px; }
.faq-list summary i { width: 18px; height: 18px; position: relative; }
.faq-list summary i::before, .faq-list summary i::after { content: ""; position: absolute; background: var(--forest-mid); transition: transform .25s; }
.faq-list summary i::before { width: 16px; height: 1px; top: 8px; left: 1px; }
.faq-list summary i::after { width: 1px; height: 16px; left: 8px; top: 1px; }
.faq-list details[open] summary i::after { transform: rotate(90deg); }
.answer { display: grid; grid-template-columns: 42px 1fr; padding: 0 52px 28px 0; color: var(--muted); }
.answer > span { color: var(--forest-mid); font-family: var(--serif); font-weight: 700; }
.answer p { margin: 0; font-size: 13px; }

.contact { background: var(--paper); }
.contact-grid { display: grid; grid-template-columns: .75fr 1.2fr; gap: 10%; align-items: start; }
.contact-intro > p:not(.eyebrow):not(.area-note) { color: var(--muted); font-size: 14px; max-width: 420px; }
.mail-card { margin-top: 42px; padding: 25px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.mail-card small { display: block; color: var(--muted); font-size: 10px; letter-spacing: .12em; margin-bottom: 7px; }
.mail-card > a { display: block; color: var(--forest); font-family: var(--serif); font-size: 16px; word-break: break-all; }
.copy-mail { margin-top: 13px; padding: 0 0 3px; border: 0; border-bottom: 1px solid var(--forest-mid); background: none; color: var(--forest-mid); font-size: 11px; cursor: pointer; }
.area-note { margin-top: 24px; color: var(--muted); font-size: 12px; }.area-note span { color: var(--gold); margin-right: 8px; font-size: 8px; }
.contact-form { padding: 50px; background: var(--cream); border-top: 3px solid var(--forest-mid); box-shadow: 0 18px 50px rgba(27,54,46,.08); }
.demo-notice { padding: 12px 15px; margin-bottom: 30px; background: rgba(229,184,74,.14); color: #705d31; font-size: 11px; line-height: 1.6; }
.demo-notice span { display: inline-block; margin-right: 8px; padding: 2px 6px; background: var(--gold); color: var(--forest-deep); font-size: 8px; font-weight: 700; letter-spacing: .12em; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.contact-form label { display: block; margin-bottom: 23px; color: var(--ink); font-size: 12px; font-weight: 600; letter-spacing: .04em; }
.contact-form label em { margin-left: 6px; color: #9d5d45; font-style: normal; font-size: 9px; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; margin-top: 8px; border: 1px solid #cfd5cf; border-radius: 0; background: var(--white); color: var(--ink); padding: 14px 15px; outline: none; transition: border-color .2s, box-shadow .2s; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--forest-mid); box-shadow: 0 0 0 3px rgba(43,89,77,.1); }
.contact-form textarea { resize: vertical; }
.check { display: flex !important; align-items: flex-start; gap: 10px; font-weight: 400 !important; color: var(--muted) !important; }
.check input { width: 17px; height: 17px; margin: 5px 0 0; accent-color: var(--forest-mid); }
.submit-button { width: 100%; min-height: 64px; border: 0; background: var(--forest); color: var(--white); display: flex; justify-content: space-between; align-items: center; padding: 0 25px; cursor: pointer; transition: background .25s; }
.submit-button:hover { background: var(--forest-mid); }
.submit-button i { font-style: normal; color: var(--gold-soft); font-size: 20px; transition: transform .2s; }
.submit-button:hover i { transform: translateX(5px); }
.recipient { margin: 12px 0 0; text-align: center; color: #89928e; font-size: 9px; }

.site-footer { background: #0a241f; color: var(--white); padding: 78px 0 24px; }
.footer-main { display: grid; grid-template-columns: 1.2fr .8fr 1fr; gap: 9%; padding-bottom: 55px; }
.footer-brand { margin-bottom: 20px; }.footer-main > div:first-child > p { color: rgba(255,255,255,.56); font-size: 12px; }
.footer-nav { display: grid; align-content: start; gap: 10px; font-size: 12px; color: rgba(255,255,255,.72); }
.footer-nav a:hover { color: var(--gold-soft); }
.footer-info small { display: block; color: var(--gold-soft); font-size: 8px; letter-spacing: .18em; margin-bottom: 4px; }
.footer-info p, .footer-info a { display: block; margin: 0 0 18px; color: rgba(255,255,255,.72); font-size: 12px; word-break: break-all; }
.footer-bottom { padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12); display: flex; justify-content: space-between; color: rgba(255,255,255,.4); font-size: 9px; letter-spacing: .06em; }

.toast { position: fixed; left: 50%; bottom: 28px; z-index: 100; transform: translate(-50%, 140%); padding: 13px 20px; background: var(--forest-deep); color: var(--white); box-shadow: 0 10px 35px rgba(0,0,0,.18); font-size: 12px; transition: transform .3s; }
.toast.show { transform: translate(-50%, 0); }
.modal { position: fixed; z-index: 200; inset: 0; display: grid; place-items: center; visibility: hidden; opacity: 0; transition: .25s; }
.modal.open { visibility: visible; opacity: 1; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(7,25,21,.72); backdrop-filter: blur(5px); }
.modal-card { position: relative; width: min(520px, calc(100vw - 36px)); padding: 55px; background: var(--paper); text-align: center; box-shadow: 0 25px 80px rgba(0,0,0,.26); transform: translateY(18px); transition: transform .25s; }
.modal.open .modal-card { transform: none; }
.modal-close { position: absolute; right: 14px; top: 10px; border: 0; background: transparent; color: var(--muted); font-size: 29px; cursor: pointer; }
.modal-star { width: 56px; height: 56px; display: grid; place-items: center; margin: 0 auto 20px; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold); }
.modal-card .eyebrow { justify-content: center; }.modal-card h2 { margin: 0 0 20px; font-family: var(--serif); font-size: 27px; }.modal-card > p { color: var(--muted); font-size: 13px; }
.modal-mail { padding: 14px; background: var(--cream); }.modal-mail a { color: var(--forest); font-weight: 600; }
.button-green { margin-top: 10px; background: var(--forest); color: var(--white); }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.visible { opacity: 1; transform: none; }
.delay-1 { transition-delay: .12s; }.delay-2 { transition-delay: .24s; }

@keyframes hero-in { from { opacity: 0; transform: scale(1.035); } to { opacity: 1; transform: scale(1); } }
@keyframes scroll { 0% { transform: translateY(0); } 100% { transform: translateY(80px); } }

@media (max-width: 980px) {
  :root { --container: min(100% - 40px, 760px); }
  .section { padding: 100px 0; }
  .site-header { height: 74px; padding: 0 22px; }
  .menu-toggle { display: grid; width: 42px; height: 42px; place-content: center; gap: 5px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: rgba(10,36,31,.15); color: var(--white); cursor: pointer; position: relative; z-index: 2; }
  .menu-toggle span { width: 18px; height: 1px; background: currentColor; transition: transform .25s, opacity .25s; }
  .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .global-nav { position: fixed; inset: 0; padding: 110px 35px 50px; background: var(--forest-deep); flex-direction: column; align-items: flex-start; justify-content: center; gap: 18px; font-family: var(--serif); font-size: 22px; transform: translateX(100%); transition: transform .35s cubic-bezier(.2,.7,.2,1); }
  .global-nav.open { transform: none; }.global-nav > a { width: 100%; border-bottom: 1px solid rgba(255,255,255,.16); padding: 12px 0; }.nav-contact { border: 0; border-bottom: 1px solid rgba(255,255,255,.16); border-radius: 0; }
  .hero { min-height: 760px; }.hero-image { object-position: 62% center; }.hero-shade { background: linear-gradient(90deg, rgba(8,31,26,.87), rgba(8,31,26,.33)), linear-gradient(0deg, rgba(8,31,26,.65), transparent 60%); }
  .hero-foot { gap: 22px; padding-inline: 20px; overflow: hidden; }.hero-foot p { min-width: max-content; }.hero-foot p:nth-child(3) { display: none; }
  .scroll-cue { display: none; }
  .intro-grid, .support-title, .philosophy-grid, .family-grid, .faq-grid, .contact-grid { grid-template-columns: 1fr; gap: 50px; }
  .intro-copy { padding-top: 0; }
  .support-card { grid-template-columns: 70px 170px 1fr; gap: 18px; }.support-icon { width: 145px; }.support-body { grid-template-columns: 1fr; }.tag-row { grid-column: 1; }
  .philosophy-grid { gap: 70px; }
  .day-item { padding-inline: 16px; }
  .faq-grid { gap: 40px; }
  .contact-intro { max-width: 600px; }
}

@media (max-width: 680px) {
  :root { --container: calc(100% - 34px); }
  .section { padding: 82px 0; }
  .brand-spark { width: 32px; height: 32px; }.brand-spark .material-symbols-rounded { font-size: 29px; }.brand-name b { font-size: 18px; }.brand-name em { font-size: 12px; }.brand-roman { font-size: 5.5px; letter-spacing: .2em; }
  .hero { min-height: 720px; height: 100svh; }.hero-image { object-position: 68% center; }.hero-shade { background: linear-gradient(90deg, rgba(6,29,24,.88) 0%, rgba(7,30,25,.54) 70%), linear-gradient(0deg, rgba(8,31,26,.68), transparent 60%); }
  .hero-content { justify-content: flex-end; padding: 0 0 145px; }.hero h1 { font-size: clamp(39px, 11vw, 50px); line-height: 1.45; }.hero-copy { font-size: 13px; }.hero-copy br { display: none; }.hero-actions { align-items: flex-start; flex-direction: column; gap: 20px; margin-top: 32px; }.button { min-height: 54px; }
  .hero-foot { height: 60px; gap: 18px; }.hero-foot p { font-size: 10px; }.hero-foot p:nth-child(2) { display: none; }.image-note { bottom: 69px; right: 12px; }
  .eyebrow { margin-bottom: 18px; }.section-heading h2, .support-title h2, .day-heading h2, .contact-intro h2 { font-size: 35px; }
  .intro-grid { gap: 40px; }.intro-copy .lead { font-size: 20px; }.star-orbit { width: 260px; right: -100px; bottom: -50px; }
  .support-title { margin-bottom: 50px; }.support-card { display: grid; grid-template-columns: 45px 1fr; padding: 38px 0; }.support-card:hover { padding-inline: 0; }.support-number { padding-top: 0; }.support-icon { grid-column: 2; width: 120px; margin-bottom: 14px; }.support-body { grid-column: 2; }.support-body h3 { font-size: 22px; }.card-en { margin-bottom: 5px; }
  .philosophy-panel h2, .family-copy h2 { font-size: 35px; }.values-list li { grid-template-columns: 45px 1fr; }
  .day-heading { margin-bottom: 58px; }.day-flow { grid-template-columns: 1fr; }.day-flow::before { top: 10px; bottom: 10px; left: 7px; right: auto; height: auto; width: 1px; }.day-item { display: grid; grid-template-columns: 50px 20px 1fr; padding: 0 0 52px; text-align: left; }.day-time { writing-mode: vertical-rl; height: auto; padding-left: 2px; }.day-dot { height: 30px; }.day-text { padding: 0 0 0 17px; }.day-text h3 { font-size: 19px; }
  .family { padding: 90px 0; }.family-grid { gap: 55px; }.family-quote { padding: 40px 28px; }.family-quote p { font-size: 21px; }
  .faq-list summary { grid-template-columns: 34px 1fr 20px; padding: 15px 0; min-height: 74px; font-size: 14px; line-height: 1.6; }.answer { grid-template-columns: 34px 1fr; padding-right: 15px; }
  .contact-form { padding: 27px 20px; }.field-row { grid-template-columns: 1fr; gap: 0; }
  .footer-main { grid-template-columns: 1fr; gap: 36px; }.footer-bottom { gap: 20px; }.footer-bottom p { margin: 0; }
  .modal-card { padding: 48px 24px 32px; }.modal-card h2 { font-size: 23px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
