/* Pretendard v1.3.9, SIL OFL 1.1. License bundled in assets/fonts/. */
@font-face {
  font-family:"Pretendard Variable";
  src:url("assets/fonts/PretendardVariable.woff2") format("woff2");
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}
/* A quiet, welcoming home. Shared by every developed route; no theme overrides. */
:root {
  --paper:#faf8f4; --white:#fffdfa; --ink:#303b33; --muted:#68645c;
  --sage:#46554b; --sage-deep:#34443b; --wood:#eee7dc; --line:#d9d2ca;
  --brass:#a39579; --rose:#eae3e1; --focus:#79552b;
  --sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --display:var(--sans);
  --page:1240px; --gutter:clamp(20px,4.5vw,72px); --section:clamp(64px,7vw,96px);
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:112px; }
body { margin:0; background:var(--paper); color:var(--ink); font:400 16px/1.8 var(--sans); word-break:keep-all; overflow-wrap:anywhere; }
body.dialog-open { overflow:hidden; }
[hidden] { display:none!important; }
a { color:inherit; text-decoration:none; text-underline-offset:6px; }
button,input,select,textarea { font:inherit; color:inherit; }
button { cursor:pointer; }
button,a,input,select,summary { -webkit-tap-highlight-color:transparent; }
button { border-radius:0; }
:focus-visible { outline:3px solid var(--focus); outline-offset:5px; }
[tabindex="-1"]:focus:not(:focus-visible) { outline:none; }
img { display:block; max-width:100%; height:auto; }
figure,blockquote,dl,dd { margin:0; }
h1,h2,h3,h4,p { margin:0; }
h1,h2,h3,h4 { line-height:1.5; text-wrap:balance; }
h1,h2 { font-family:var(--display); font-weight:600; letter-spacing:-.03em; }
h1 { font-weight:650; font-size:clamp(36px,4.2vw,58px); }
h2 { font-size:clamp(28px,3vw,40px); }
h3 { font-size:23px; font-weight:600; letter-spacing:-.035em; }
h4 { font-size:17px; font-weight:600; }
p { max-width:44em; }
p+p { margin-top:16px; }
small,.fine { font-size:13px; line-height:1.7; color:var(--muted); }
b,strong { font-weight:600; }
main { width:min(var(--page),calc(100% - var(--gutter)*2)); margin-inline:auto; }
main>* { min-width:0; }
section[id],div[id] { scroll-margin-top:112px; }
.skip { position:fixed; top:-80px; left:16px; z-index:100; background:var(--ink); color:white; padding:12px 24px; }
.skip:focus { top:12px; }
.button { display:inline-flex; justify-content:center; align-items:center; gap:12px; min-height:50px; padding:12px 25px; border:1px solid var(--sage); background:transparent; color:var(--sage); font-size:15px; font-weight:600; line-height:1.5; text-align:center; transition:background-color .18s,color .18s,border-color .18s; }
.button.dark { background:var(--sage); color:white; }
.inline { display:inline-flex; align-items:center; min-height:44px; width:fit-content; border-bottom:1px solid var(--brass); font-size:14px; font-weight:500; line-height:1.6; padding-block:8px; }
.tag { display:inline-block; font-size:13px; color:var(--sage); font-weight:600; line-height:1.6; }
.fine { margin-top:24px; }
.site-header { position:sticky; top:0; z-index:30; display:flex; align-items:center; gap:32px; min-height:90px; padding:18px var(--gutter); background:var(--paper); border-bottom:1px solid var(--line); }
.brand { flex:none; display:inline-flex; align-items:baseline; font-size:27px; font-weight:700; letter-spacing:-1.6px; line-height:1.3; }
.brand span { font:600 30px/1 var(--sans); letter-spacing:-1px; margin-left:3px; }
.site-header nav { display:flex; align-items:center; justify-content:center; gap:clamp(18px,2vw,30px); margin-inline:auto; }
.site-header nav>a { display:flex; align-items:center; min-height:44px; font-size:14px; position:relative; white-space:nowrap; }
.site-header nav>a::after { content:""; position:absolute; bottom:2px; left:0; right:0; height:1px; background:var(--sage); transform:scaleX(0); transition:transform .18s; }
.site-header nav>a[aria-current="page"]::after { transform:scaleX(1); }
.site-header nav small,.mobile-nav-utility,.menu-toggle { display:none; }
.header-estimates { display:flex; align-items:center; gap:20px; flex:none; }
.header-photo { display:inline-flex; align-items:center; min-height:44px; font-size:13px; }
.header-estimates .button { min-height:44px; padding:10px 20px; font-size:14px; }
.hero { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:clamp(32px,5vw,80px); padding-block:48px 40px; }
.hero-label { font-size:14px; color:var(--sage); margin-bottom:26px; }
.hero h1 { font-size:clamp(35px,4.1vw,56px); line-height:1.45; }
.hero-deck { color:var(--muted); font-size:17px; line-height:1.95; margin-top:28px; }
.hero-entry { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:34px; }
.hero-note { font-size:12px; color:var(--muted); margin-top:20px; }
.hero-photo { position:relative; min-width:0; }
.hero-photo>img { width:100%; aspect-ratio:1.05; object-fit:cover; }
.hero-photo figcaption { display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px 16px; font-size:12px; color:var(--muted); padding-top:13px; }
.hero-photo figcaption span { font-size:11px; }
.questions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-block:1px solid var(--line); margin-bottom:var(--section); }
.questions a { display:flex; flex-direction:column; align-items:flex-start; gap:7px; padding:25px 28px; font-size:15px; }
.questions a:first-child { padding-left:0; }
.questions a+a { border-left:1px solid var(--line); }
.questions span { font-size:12px; color:var(--muted); }
.chapter { margin-block:var(--section); }
.chapter-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px 48px; margin-bottom:32px; padding-top:24px; border-top:2px solid var(--sage); }
.chapter-heading h2 { max-width:22em; }
.chapter-heading>p { flex:0 1 365px; color:var(--muted); font-size:15px; }
.chapter-content { min-width:0; }
/* Distinguish a change of subject without framing every paragraph in a card. */
body[data-page="index"] #team,
body[data-page="cases"] #reviews,
body[data-page="services"] #price,
body[data-page="managers"] #manager-role { background:#eeeFE9; padding:44px clamp(24px,4vw,48px); border-block:1px solid var(--line); }
body[data-page="index"] #team .chapter-heading,
body[data-page="cases"] #reviews .chapter-heading,
body[data-page="services"] #price .chapter-heading,
body[data-page="managers"] #manager-role .chapter-heading,
#magazine .chapter-heading { border-top:0; padding-top:0; }
.home-aftercare { border-top:1px solid var(--brass); padding-top:40px; }
.home-columns { border-top:1px solid var(--line); padding-top:32px; }
.room-tabs,.service-filters,.journal-tabs,.map-tabs { display:flex; gap:8px; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:thin; padding:6px 3px 14px; margin:0 -3px 26px; }
.room-tabs { border-bottom:1px solid var(--line); gap:8px; }
.room-tabs button,.service-filters button,.journal-tabs button,.map-tabs button { min-height:44px; flex:none; border:1px solid transparent; background:transparent; padding:10px 19px; color:var(--muted); font-size:14px; line-height:1.5; }
.room-tabs button[aria-selected="true"],.service-filters button[aria-pressed="true"],.journal-tabs button[aria-selected="true"],.map-tabs button[aria-selected="true"] { background:var(--sage); color:white; }
.room-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); align-items:center; gap:clamp(28px,5vw,72px); }
.room-layout>* { min-width:0; }
.room-story { padding-block:16px; }
.case-top { display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin-bottom:20px; }
.case-top>span:last-child { font-size:12px; color:var(--muted); }
.room-story h3 { font-family:var(--display); font-weight:600; font-size:clamp(25px,2.5vw,34px); line-height:1.55; }
.room-story>p { color:var(--muted); margin-block:22px 28px; }
.room-story>.inline { display:flex; margin-top:12px; }
.room-standard { margin-bottom:28px; padding-top:20px; border-top:1px solid var(--line); }
.room-standard p { margin-top:10px; font-size:14px; color:var(--muted); }
.gallery-viewport { position:relative; overflow:hidden; background:var(--wood); touch-action:pan-y; }
.gallery-slide { position:relative; }
.gallery-slide img { width:100%; aspect-ratio:1.35; object-fit:cover; }
.gallery-detail { overflow:hidden; }
.gallery-detail img { transform:scale(1.35); }
.gallery-slide figcaption { position:absolute; left:16px; top:16px; padding:4px 10px; font-size:12px; background:var(--paper); color:var(--ink); }
.gallery-arrow { position:absolute; top:50%; transform:translateY(-50%); width:44px; height:48px; border:0; background:var(--paper); color:var(--sage); font:32px/1 var(--sans); }
.gallery-arrow.prev { left:12px; }
.gallery-arrow.next { right:12px; }
.gallery-count { position:absolute; bottom:16px; right:16px; background:var(--paper); padding:5px 12px; font-size:12px; font-variant-numeric:tabular-nums; }
.gallery-tools { display:flex; justify-content:space-between; align-items:center; gap:16px; padding-top:14px; }
.gallery-thumbs { display:flex; gap:10px; }
.gallery-thumbs button { display:flex; align-items:center; gap:8px; min-height:44px; padding:3px 10px 3px 3px; border:1px solid transparent; background:transparent; font-size:12px; }
.gallery-thumbs button[aria-pressed="true"] { border-color:var(--sage); }
.gallery-thumbs img { width:44px; height:38px; object-fit:cover; }
.gallery-tools>p { font-size:12px; color:var(--muted); text-align:right; line-height:1.6; }
.gallery-tools small { font-size:11px; }
.photo-needed { min-height:340px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:16px; padding:40px; background:var(--wood); text-align:center; }
.photo-needed span { font-size:14px; max-width:24em; color:var(--muted); }
.service-actions { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-top:30px; padding-top:22px; border-top:1px solid var(--line); }
.service-actions p { font-size:14px; color:var(--muted); }
.service-actions>div { display:flex; flex-wrap:wrap; gap:12px 28px; }
.manager-preview,.manager-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:clamp(32px,6vw,88px); }
.manager-preview figure img,.manager-intro figure img { width:100%; aspect-ratio:1.02; object-fit:cover; }
.manager-intro figcaption { font-size:12px; color:var(--muted); margin-top:10px; }
.manager-profile-note { font-size:14px; color:var(--muted); padding-top:22px; margin-top:28px; border-top:1px solid var(--line); }
.manager-preview figcaption { padding-top:12px; font-size:12px; color:var(--muted); }
.manager-preview h3,.manager-intro h3 { font-family:var(--display); font-size:28px; font-weight:600; }
.manager-preview p,.manager-intro p { margin-top:22px; color:var(--muted); }
.care-principles { list-style:none; padding:0; margin:28px 0; }
.care-principles li { padding-block:16px; border-top:1px solid var(--line); }
.care-principles b { display:block; font-size:15px; }
.care-principles span { display:block; color:var(--muted); font-size:14px; margin-top:6px; }
.manager-links { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; }
.review-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 64px; }
.quote-item { padding:24px 0 26px; border-top:1px solid var(--brass); position:relative; }
.quote-mark { font:52px/.9 var(--sans); color:var(--sage); display:block; height:35px; }
.quote-item blockquote { font-family:var(--display); font-size:clamp(21px,2vw,27px); line-height:1.7; margin:12px 0 24px; }
.quote-item figcaption { font-size:13px; color:var(--muted); }
.quote-item .inline { margin-top:12px; font-size:12px; }
.review-grid-photos { gap:32px; align-items:start; }
.review-grid-photos .quote-item { border:0; padding:0; background:var(--white); }
.review-photo { display:block; background:var(--wood); }
.review-photo img { width:100%; aspect-ratio:1.5; object-fit:contain; }
.review-copy { display:block; padding:24px 26px; }
.review-copy blockquote { font-size:22px; line-height:1.65; margin:0 0 16px; color:var(--ink); }
.review-by { font-size:13px; color:var(--muted); }
.review-copy .inline { font-size:13px; margin-top:14px; }
.section-next { display:flex; justify-content:flex-end; align-items:center; flex-wrap:wrap; gap:16px; margin-top:24px; }
.section-next p { font-size:14px; color:var(--muted); }
.home-consultation { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); align-items:center; gap:64px; margin-block:var(--section); padding:clamp(28px,5vw,64px); background:var(--sage); color:var(--white); }
.home-consultation h3 { font-family:var(--display); font-size:clamp(28px,3vw,38px); font-weight:600; }
.home-consultation p { margin-block:20px 28px; color:var(--white); }
.home-consultation>div+div { border-left:1px solid #9ca79d; padding-left:40px; }
.home-consultation>div+div h3 { font:500 19px/1.6 var(--sans); }
.home-consultation>div+div p { font-size:14px; }
.home-consultation .button { background:var(--paper); color:var(--sage-deep); border-color:var(--paper); }
.home-consultation .inline { display:flex; color:var(--white); border-color:#b6baa9; margin-top:10px; }
.cost-preview { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:56px; padding:40px 0; border-block:1px solid var(--line); }
.cost-preview h3 { font-size:24px; }
.cost-preview p { color:var(--muted); margin-top:18px; }
.cost-preview .inline { margin-top:18px; }
.cost-preview>div+div { border-left:1px solid var(--line); padding-left:48px; }
.cost-preview .cost-formula { display:flex; align-items:baseline; flex-wrap:wrap; gap:16px; margin-top:0; color:var(--ink); }
.cost-formula strong { font:500 clamp(38px,4vw,54px)/1.3 var(--sans); }
.cost-formula strong span { font:400 18px var(--sans); margin-left:6px; }
.cost-formula>span { font-size:14px; }
.cost-preview small { display:block; margin-top:8px; }
.price-small-link { display:flex; align-items:center; gap:10px; min-height:44px; width:fit-content; margin-top:24px; border-bottom:1px solid var(--line); font-size:13px; }
.home-aftercare { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:center; gap:clamp(32px,6vw,80px); margin-block:var(--section); }
.home-aftercare>img { width:100%; aspect-ratio:1.4; object-fit:cover; }
.home-aftercare h2 { margin-top:16px; font-size:clamp(27px,3vw,36px); }
.home-aftercare p { margin-block:20px; color:var(--muted); }
#magazine { background:var(--wood); padding:clamp(24px,5vw,64px); }
#magazine .chapter-heading { margin-bottom:40px; }
#magazine .chapter-heading h2 { font-size:clamp(28px,3vw,36px); }
.magazine-feature { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:center; gap:clamp(32px,7vw,104px); max-width:960px; margin:auto; }
.approved-magazine-cover { position:relative; width:100%; max-width:310px; aspect-ratio:2/3; justify-self:center; box-shadow:10px 14px 24px #303b3317; }
.approved-magazine-cover iframe { display:block; width:100%; height:100%; border:0; pointer-events:none; }
.cover-open { position:absolute; inset:0; }
.issue-number { display:block; font:14px/1.6 var(--sans); color:var(--muted); margin-bottom:18px; }
.issue-intro h3 { font-family:var(--display); font-weight:600; font-size:32px; }
.issue-intro p { margin-top:20px; color:var(--muted); }
.issue-intro ul { padding-left:20px; margin:20px 0 28px; color:var(--muted); font-size:14px; }
.issue-intro li { padding-block:4px; }
.home-columns { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.6fr); gap:72px; margin-block:calc(var(--section)*.7) var(--section); }
.home-columns>div:first-child .inline { margin-top:24px; }
.home-columns>div+div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.home-columns>div+div>a { border-top:1px solid var(--line); padding-top:24px; }
.home-columns h3 { font-size:21px; font-family:var(--display); font-weight:600; margin-top:14px; }
.home-columns p { font-size:14px; color:var(--muted); margin-top:16px; }
.page-intro { padding-block:52px 48px; border-bottom:1px solid var(--line); }
.page-intro>p { font-size:12px; color:var(--muted); margin-bottom:28px; }
.page-intro>p a { text-decoration:underline; }
.page-intro>div { margin-top:20px; color:var(--muted); max-width:42em; }
.page-subnav { display:flex; gap:12px 32px; overflow-x:auto; padding-block:18px; border-bottom:1px solid var(--line); }
.page-subnav a { display:flex; align-items:center; min-height:44px; flex:none; font-size:14px; }
.page-intro+.chapter,.page-subnav+.chapter { margin-top:64px; }
.philosophy-copy { max-width:800px; padding:40px 0 16px 8%; border-left:1px solid var(--brass); }
.large-copy { font:500 clamp(24px,3vw,36px)/1.7 var(--display); margin-bottom:28px; }
.philosophy-copy>p:not(.large-copy) { color:var(--muted); }
.three-places,.situation-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; }
.three-places article,.situation-grid article { border-top:1px solid var(--brass); padding-top:26px; }
.three-places h3 { font-family:var(--display); font-weight:600; font-size:27px; }
.three-places p,.situation-grid p { color:var(--muted); margin-top:18px; }
.situation-grid .inline { margin-top:20px; }
.oath-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 64px; }
.oath-list article { display:flex; gap:24px; padding:30px 0; border-top:1px solid var(--line); }
.oath-list article>span { font:500 30px/1.5 var(--sans); color:var(--sage); }
.oath-list h3 { font-family:var(--display); font-weight:600; font-size:24px; }
.oath-list p { margin-top:12px; color:var(--muted); }
.promise-preview,.private-line { display:grid; grid-template-columns:1fr 1.2fr; gap:64px; background:var(--wood); padding:48px; }
.promise-preview h3,.private-line h3 { font-family:var(--display); font-weight:600; font-size:30px; }
.promise-preview p,.private-line p { margin-bottom:20px; }
.name-story { padding:32px 0 32px 8%; border-left:1px solid var(--brass); }
.name-story p { font-family:var(--display); font-size:24px; }
.name-story .inline { margin-top:28px; }
.service-filters button { border-color:var(--line); }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px 28px; }
.service-item>img,.service-photo-pending { width:100%; aspect-ratio:1.45; object-fit:cover; }
.service-item>div:not(.service-photo-pending) { padding-top:22px; }
.service-item h3 { font-family:var(--display); font-weight:600; font-size:27px; }
.service-item p { margin-top:12px; font-size:15px; color:var(--muted); }
.service-item .inline { margin-top:18px; }
.service-photo-pending { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:10px; background:var(--wood); font-family:var(--display); font-size:25px; }
.service-photo-pending small { font-family:var(--sans); font-size:12px; }
.price-layout { display:grid; grid-template-columns:1fr 1.15fr; gap:64px; }
.price-feature { background:var(--wood); padding:44px; }
.price-feature h3 { font-family:var(--display); font-weight:600; font-size:31px; margin-top:18px; }
.price-feature>strong { display:block; font:500 54px/1.5 var(--sans); margin-block:22px; }
.price-feature>strong span { font:400 18px var(--sans); margin-left:8px; }
.price-feature>p { color:var(--muted); font-size:14px; }
.price-feature .inline { margin-top:24px; }
.price-explanation { padding-block:20px; }
.price-formula { font-size:32px; margin-block:24px; }
.price-formula span { display:block; font-size:17px; }
.price-example { margin-bottom:24px; padding:20px; background:var(--white); border-left:2px solid var(--sage); }
.price-example p { margin-block:8px; font-size:16px; }
.service-future { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; margin-bottom:20px; }
.service-future p { margin-top:14px; color:var(--muted); }
.service-future .inline { margin-top:16px; }
.scope-note { font-size:13px; color:var(--muted); }
.estimate-inputs fieldset label:has(input:disabled) { opacity:.55; cursor:not-allowed; }
.price-explanation>p:not(.price-formula) { color:var(--muted); }
.price-explanation dl { margin-top:30px; }
.price-explanation dl>div { border-top:1px solid var(--line); padding-block:16px; }
.price-explanation dt { font-weight:600; margin-bottom:4px; }
.price-explanation dd { font-size:14px; color:var(--muted); }
.journey { list-style:none; counter-reset:journey; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; padding:0; margin:0 0 28px; }
.journey li { counter-increment:journey; border-top:1px solid var(--line); padding-top:24px; }
.journey li::before { content:counter(journey,decimal-leading-zero); display:block; font:500 26px/1.3 var(--sans); margin-bottom:16px; color:var(--sage); }
.journey-visual { aspect-ratio:1.9; margin-bottom:20px; background:var(--wood); overflow:hidden; }
.journey-visual figure { position:relative; height:100%; }
.journey-visual img { width:100%; height:100%; object-fit:cover; }
.journey-visual figcaption { position:absolute; bottom:0; left:0; right:0; padding:3px 10px; background:var(--paper); color:var(--muted); font-size:11px; }
.journey-graphic { display:flex; height:100%; align-items:center; justify-content:center; flex-direction:column; gap:8px; padding:12px; color:var(--sage); }
.journey-graphic span { font-size:14px; }
.journey-graphic strong { font-size:25px; }
.journey-graphic svg { width:85%; max-height:80px; }
.journey b { font-size:18px; }
.journey p { font-size:15px; color:var(--muted); margin-top:12px; }
.page-cta { text-align:center; padding:48px 24px; margin-block:72px; background:var(--wood); }
.page-cta h2 { font-size:30px; }
.page-cta .button { margin-top:26px; }
.route-next { margin-block:72px; border-top:1px solid var(--line); padding-top:32px; }
.route-next h2 { font:500 18px/1.5 var(--sans); }
.route-next>div { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; margin-top:24px; }
.route-next a { display:flex; flex-direction:column; min-height:70px; gap:8px; }
.route-next span { font-size:13px; color:var(--muted); }
.manager-intro .inline { margin-top:22px; }
.manager-profile-pending { margin-top:48px; border-block:1px solid var(--line); padding:28px 0; }
.manager-profile-pending h3 { font-size:19px; }
.manager-profile-pending p { color:var(--muted); margin-block:12px; }
.place-map { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:56px; align-items:start; }
.map-visual img { aspect-ratio:1.25; width:100%; object-fit:cover; }
.map-visual figcaption { font-size:12px; color:var(--muted); padding-top:12px; }
.map-guide h3 { font-family:var(--display); font-weight:600; font-size:30px; margin-block:16px; }
.map-guide>p { color:var(--muted); margin-bottom:22px; }
.map-tabs { gap:4px; margin-bottom:18px; }
.map-tabs button { font-size:13px; padding-inline:12px; border-color:var(--line); }
.map-entry { padding:24px; background:var(--wood); }
.map-entry dl>div { padding-top:14px; }
.map-entry dt { font-size:12px; font-weight:600; margin-bottom:4px; }
.map-entry dd { font-size:14px; color:var(--muted); }
.map-guide>small { display:block; margin-top:18px; }
.journal-tabs { padding-top:24px; }
.journal-tabs+[role="tabpanel"] #magazine { margin-top:30px; }
.reader-note { margin:0 auto 80px; max-width:760px; text-align:center; }
.reader-note p { margin:14px auto; color:var(--muted); }
.case-search,.reading-search { max-width:680px; margin-bottom:32px; }
.case-search label,.reading-search label { display:block; margin-bottom:12px; font-size:14px; font-weight:600; }
.case-search form,.reading-search form { margin:0; }
.case-search>div:not(.case-search-results),.reading-search>div { display:flex; gap:10px; }
input[type="search"],select { min-width:0; min-height:50px; width:100%; padding:12px 14px; border:1px solid #a49e92; background:var(--white); font-size:16px; border-radius:0; }
input[type="search"] { flex:1; }
input::placeholder { color:var(--muted); opacity:1; }
.case-search .button,.reading-search .button { flex:none; }
.case-search-status,.reading-search [role="status"] { font-size:13px; color:var(--muted); margin-top:10px; }
.case-search-results { display:flex; gap:8px; flex-wrap:wrap; margin-top:16px; }
.case-search-results button { display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:12px; background:var(--wood); border:1px solid var(--line); min-height:44px; text-align:left; }
.case-search-results span { font-size:12px; color:var(--muted); }
.column-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.column-image { display:block; margin-bottom:24px; }
.column-image img { aspect-ratio:1.35; width:100%; object-fit:cover; }
.column-list h3 { font-family:var(--display); font-weight:600; font-size:25px; margin-top:14px; }
.column-list p { margin-top:16px; color:var(--muted); font-size:15px; }
.column-list .inline { margin-top:16px; }
.search-empty { padding:40px 24px; background:var(--wood); }
.search-empty p { margin-block:18px; }
.article-back { padding-top:36px; }
.reading-article { max-width:780px; margin:48px auto 100px; }
.reading-article h1 { font-size:clamp(30px,3.5vw,44px); margin-top:18px; line-height:1.55; }
.article-deck { margin-block:26px 36px; font-size:18px; color:var(--muted); }
.reading-article>img { width:100%; aspect-ratio:1.5; object-fit:cover; }
.reading-article>section { margin-top:48px; }
.reading-article h2 { font-size:27px; margin-bottom:18px; }
.reading-article>section p { line-height:2; }
.takeaway { margin-block:40px; padding:28px; background:var(--wood); }
.takeaway p { margin-top:12px; }
.consultation-welcome { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,6vw,80px); padding:48px; background:var(--wood); margin-block:56px var(--section); }
.consultation-welcome h2 { margin-top:18px; }
.consultation-welcome p { margin-top:18px; }
.consultation-welcome .button { margin-top:28px; }
.consultation-welcome small { display:block; margin-top:16px; }
.consultation-guide { border-left:1px solid #bcb3a3; padding-left:40px; }
.consultation-guide h3 { font-size:19px; }
.consultation-guide ol { padding-left:20px; margin:22px 0; }
.consultation-guide li { padding-left:6px; margin-bottom:18px; }
.consultation-guide li::marker { color:var(--sage); font-family:var(--sans); }
.consultation-guide p { margin-top:4px; font-size:14px; color:var(--muted); }
.photo-estimate-form { padding:40px; border:1px solid var(--line); background:var(--white); }
.estimate-form-head { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:20px; margin-bottom:32px; }
.estimate-form-head h3 { margin-top:12px; }
.estimate-form-head p { margin-top:12px; color:var(--muted); font-size:15px; }
.demo-notice { font-size:12px; color:var(--muted); border-bottom:1px solid var(--brass); padding-bottom:5px; }
.estimate-fields { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:40px; }
.demo-photo { position:relative; }
.demo-photo img { width:100%; aspect-ratio:1.2; object-fit:cover; }
.demo-photo span { position:absolute; bottom:16px; left:16px; font-size:12px; background:var(--paper); padding:6px 12px; }
.uploaded-demo>p { margin-top:16px; font-size:14px; }
.uploaded-demo small { font-size:12px; }
.estimate-inputs { display:grid; gap:24px; align-content:start; }
.estimate-inputs>label { display:grid; gap:10px; font-weight:600; font-size:14px; }
.estimate-inputs select { font-weight:400; }
.estimate-inputs fieldset { border:0; padding:0; margin:0; min-width:0; display:flex; flex-wrap:wrap; gap:8px; }
.estimate-inputs legend { margin-bottom:10px; padding:0; font-size:14px; font-weight:600; }
.estimate-inputs fieldset label { display:flex; align-items:center; min-height:44px; padding:10px 12px; gap:6px; border:1px solid var(--line); font-size:13px; }
.estimate-inputs fieldset label:has(input:checked) { background:var(--wood); border-color:var(--sage); }
input[type="radio"] { accent-color:var(--sage); width:16px; height:16px; margin:0; flex:none; }
.estimate-submit { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-top:28px; margin-top:32px; border-top:1px solid var(--line); }
.estimate-submit p { font-size:14px; }
.estimate-submit small { font-size:12px; }
.estimate-dialog { width:min(660px,calc(100% - 32px)); max-height:calc(100dvh - 48px); margin:auto; padding:0; border:0; background:var(--paper); color:var(--ink); overflow:hidden; box-shadow:0 24px 100px #18261d40; }
.estimate-dialog::backdrop { background:#18261d88; }
.result-shell { display:flex; flex-direction:column; max-height:calc(100dvh - 48px); position:relative; }
.dialog-close { position:absolute; right:14px; top:14px; width:44px; height:44px; border:1px solid var(--line); background:var(--paper); color:var(--ink); font:28px/1 var(--sans); z-index:1; }
.result-head { padding:36px 36px 26px; background:var(--wood); padding-right:70px; flex:none; }
.result-head h2 { font-size:28px; line-height:1.5; margin-top:14px; }
.result-context { font-size:13px; color:var(--muted); margin-top:14px; }
.result-price { font-size:clamp(25px,4vw,38px); font-weight:500; line-height:1.5; margin-top:12px; font-variant-numeric:tabular-nums; }
.result-head>p:last-child { font-size:12px; color:var(--muted); margin-top:8px; }
.result-body { padding:24px 36px; overflow-y:auto; min-height:0; overscroll-behavior:contain; }
.result-breakdown>div { padding-bottom:16px; margin-bottom:16px; border-bottom:1px solid var(--line); }
.result-breakdown dt { font-size:12px; color:var(--muted); margin-bottom:6px; }
.result-breakdown dd { font-size:15px; }
.result-body summary { min-height:44px; cursor:pointer; font-size:14px; }
.result-body details p,.cost-note p { font-size:13px; color:var(--muted); margin-top:12px; }
.cost-note { background:var(--white); padding:18px; margin-top:20px; border:1px solid var(--line); }
.cost-note b { font-size:14px; }
.result-goal { margin-top:18px; font-size:14px; }
.result-footer { padding:20px 36px 24px; border-top:1px solid var(--line); background:var(--paper); flex:none; }
.result-actions { display:flex; gap:10px; flex-wrap:wrap; }
.result-actions .button { flex:1 1 180px; font-size:14px; padding-inline:12px; }
.result-disclaimer { display:block; font-size:11px; margin-top:12px; }
.faq-list { max-width:900px; margin-bottom:32px; }
.faq-list details { border-top:1px solid var(--line); }
.faq-list details:last-child { border-bottom:1px solid var(--line); }
.faq-list summary { display:flex; align-items:center; gap:24px; cursor:pointer; padding-block:26px; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary>span { flex:0 0 90px; font-size:12px; color:var(--muted); }
.faq-list summary>b { flex:1; font-size:18px; }
.faq-list summary>i { font-style:normal; flex:none; }
.faq-list details[open] summary>i { transform:rotate(45deg); }
.faq-list details>p { padding:0 40px 28px 114px; color:var(--muted); }
.section-note { font-size:14px; padding:20px; background:var(--wood); }
.closing-invitation { display:flex; align-items:center; justify-content:space-between; gap:32px; margin-block:var(--section); padding-top:40px; border-top:1px solid var(--brass); }
.closing-invitation h2 { font-size:clamp(26px,3vw,36px); }
.closing-invitation p { color:var(--muted); margin-top:14px; }
.closing-invitation .button { flex:none; }
.home-consultation :focus-visible { outline-color:var(--white); }
.site-footer { background:var(--wood); padding:32px var(--gutter) 20px; margin-top:40px; display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.5fr); gap:20px 48px; }
.site-footer>div:first-child>p { font-family:var(--display); font-size:15px; margin-top:12px; max-width:22em; }
.footer-directory { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.footer-directory h2 { font:600 13px/1.6 var(--sans); margin-bottom:6px; letter-spacing:0; }
.footer-directory a { display:flex; align-items:center; min-height:44px; font-size:13px; color:var(--muted); }
.footer-legal { grid-column:1/-1; border-top:1px solid #c9c0b1; padding-top:12px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 24px; align-items:center; }
.footer-policy { display:flex; flex-wrap:wrap; gap:4px 24px; }
.footer-policy>a { display:flex; align-items:center; min-height:44px; font-size:12px; }
.footer-legal>small { grid-column:1/-1; font-size:11px; }
.back-top { width:fit-content; min-height:44px; display:flex; align-items:center; font-size:12px; }
.closing-invitation:last-child { margin-bottom:40px; }
@media(hover:hover) {
  .button:hover { background:var(--wood); }
  .button.dark:hover { background:var(--sage-deep); color:white; border-color:var(--sage-deep); }
  .home-consultation .button:hover { background:white; color:var(--ink); border-color:white; }
  .inline:hover { border-color:var(--sage); color:var(--sage-deep); }
  .home-consultation .inline:hover { color:white; border-color:white; }
  .site-header nav>a:hover::after { transform:scaleX(1); }
  .questions a:hover,.gallery-arrow:hover { background:var(--wood); }
  .room-tabs button:hover:not([aria-selected="true"]),.service-filters button:hover:not([aria-pressed="true"]),.journal-tabs button:hover:not([aria-selected="true"]),.map-tabs button:hover:not([aria-selected="true"]) { background:var(--wood); color:var(--ink); }
  .home-columns>div+div>a:hover h3,.column-list h3 a:hover,.footer-directory a:hover { text-decoration:underline; }
}
@media(max-width:1180px) {
  .site-header { gap:20px; }
  .site-header nav { gap:17px; }
  .header-photo { display:none; }
  .site-header nav>a { font-size:13px; }
}
@media(max-width:980px) {
  html { scroll-padding-top:90px; }
  section[id],div[id] { scroll-margin-top:90px; }
  .site-header { min-height:76px; padding-block:12px; gap:16px; }
  .site-header .brand { margin-right:auto; }
  .menu-toggle { order:3; display:inline-flex; align-items:center; gap:10px; min-height:44px; padding:8px 0 8px 12px; border:0; background:transparent; font-size:14px; }
  .menu-toggle span { font-size:21px; transition:transform .15s; }
  .menu-toggle[aria-expanded="true"] span { transform:rotate(45deg); }
  .site-header nav { display:none; position:absolute; top:100%; left:0; right:0; margin:0; max-height:calc(100dvh - 76px); overflow-y:auto; background:var(--paper); border-bottom:1px solid var(--line); padding:16px var(--gutter) 28px; box-shadow:0 20px 24px #303b330c; }
  .site-header.menu-open nav { display:block; }
  .site-header nav>a { display:block; padding:14px 0; font-size:17px; border-bottom:1px solid var(--line); white-space:normal; }
  .site-header nav>a::after { display:none; }
  .site-header nav>a[aria-current="page"]>span { text-decoration:underline; text-underline-offset:6px; }
  .site-header nav small { display:block; font-size:12px; margin-top:6px; }
  .mobile-nav-utility { display:flex; flex-wrap:wrap; gap:12px 28px; margin-top:20px; }
  .mobile-nav-utility a { display:flex; align-items:center; min-height:44px; font-size:13px; }
  .hero { gap:28px; }
  .hero h1 { font-size:37px; }
  .hero-entry { align-items:flex-start; flex-direction:column; gap:12px; }
  .hero-deck { font-size:16px; }
  .hero-photo>img { aspect-ratio:.82; }
  .chapter-heading { align-items:flex-start; }
  .chapter-heading>p { flex-basis:300px; }
  .room-layout { grid-template-columns:1.15fr 1fr; gap:28px; }
  .gallery-tools { align-items:flex-start; }
  .gallery-tools>p { display:none; }
  .manager-preview,.manager-intro { gap:32px; }
  .manager-preview h3 { font-size:24px; }
  .home-consultation { gap:28px; }
  .home-consultation>div+div { padding-left:26px; }
  .home-columns { grid-template-columns:1fr; gap:32px; }
  .home-columns>div:first-child { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
  .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .price-layout { gap:32px; }
  .three-places,.situation-grid { gap:26px; }
  .consultation-welcome { padding:32px; gap:32px; }
  .consultation-guide { padding-left:26px; }
  .estimate-fields { gap:28px; }
  .site-footer { grid-template-columns:1fr; }
  .footer-directory { max-width:760px; }
  .column-list { gap:24px; }
  .column-list h3 { font-size:22px; }
  .promise-preview,.private-line { gap:32px; padding:32px; }
}
@media(max-width:640px) {
  :root { --section:72px; --gutter:20px; }
  body { font-size:16px; }
  h1 { font-size:36px; }
  h2 { font-size:29px; }
  h3 { font-size:21px; }
  .site-header { gap:12px; }
  .brand { font-size:23px; }
  .brand span { font-size:26px; }
  .header-estimates .button { padding:10px 14px; font-size:13px; }
  .menu-toggle { gap:6px; padding-left:4px; font-size:12px; }
  .hero { grid-template-columns:1fr; padding-top:36px; gap:32px; padding-bottom:28px; }
  .hero-label { font-size:12px; margin-bottom:18px; }
  .hero h1 { font-size:clamp(32px,8vw,44px); line-height:1.45; }
  .hero-deck { margin-top:22px; }
  .hero-deck br:nth-child(2) { display:none; }
  .hero-entry { flex-direction:row; align-items:center; gap:12px 22px; margin-top:26px; }
  .hero-entry .button { padding-inline:20px; }
  .hero-note { margin-top:16px; font-size:11px; }
  .hero-photo>img { aspect-ratio:1.18; }
  .hero-photo figcaption { font-size:11px; gap:4px; }
  .questions { grid-template-columns:1fr; }
  .questions a,.questions a:first-child { flex-direction:row; justify-content:space-between; align-items:center; gap:12px; padding:16px 0; font-size:14px; }
  .questions a+a { border-left:0; border-top:1px solid var(--line); }
  .questions span { font-size:11px; flex:none; }
  .chapter-heading { display:block; margin-bottom:26px; }
  .chapter-heading>p { margin-top:16px; font-size:15px; }
  .room-tabs { gap:4px; margin-bottom:22px; }
  .room-tabs button { padding-inline:16px; }
  .room-layout,.manager-preview,.manager-intro,.home-aftercare,.place-map { grid-template-columns:1fr; gap:24px; }
  .room-story { padding-top:0; }
  .room-story h3 { font-size:27px; }
  .room-story>p { margin-block:16px 22px; }
  .case-top { margin-bottom:12px; }
  .gallery-slide img { aspect-ratio:1.25; }
  .gallery-arrow.prev { left:8px; }
  .gallery-arrow.next { right:8px; }
  .gallery-slide figcaption { left:12px; top:12px; font-size:11px; }
  .gallery-tools>p { display:block; font-size:11px; }
  .gallery-tools small { display:none; }
  .gallery-thumbs { gap:6px; }
  .gallery-thumbs button { gap:6px; padding-right:8px; }
  .gallery-thumbs img { width:34px; }
  .service-actions { margin-top:22px; }
  .service-actions>div { gap:8px 20px; }
  .photo-needed { min-height:240px; padding:24px; }
  .manager-preview figure img,.manager-intro figure img { aspect-ratio:1.25; }
  .manager-preview h3 { font-size:25px; }
  .manager-preview p { margin-top:16px; }
  .care-principles { margin-block:24px; }
  .review-grid { grid-template-columns:1fr; gap:12px; }
  .quote-item { padding-bottom:22px; }
  .quote-item blockquote { font-size:24px; }
  .section-next { margin-top:10px; }
  .home-consultation { grid-template-columns:1fr; padding:30px 24px; gap:28px; }
  .home-consultation h3 { font-size:30px; }
  .home-consultation>div+div { padding:26px 0 0; border-left:0; border-top:1px solid #9ca79d; }
  .home-consultation p { margin-block:18px 22px; }
  .home-consultation>div+div p { margin-block:12px; }
  .home-consultation .button { width:100%; }
  .cost-preview { grid-template-columns:1fr; gap:28px; padding-block:26px; }
  .cost-preview>div+div { border-left:0; border-top:1px solid var(--line); padding:26px 0 0; }
  .cost-preview h3 { font-size:22px; }
  .cost-preview p br { display:none; }
  .cost-formula strong { font-size:44px; }
  .home-aftercare h2 { font-size:28px; }
  .home-aftercare p br { display:none; }
  .home-aftercare>img { aspect-ratio:1.5; }
  #magazine { padding:28px 22px 32px; }
  #magazine .chapter-heading { margin-bottom:28px; }
  .magazine-feature { grid-template-columns:1fr; gap:32px; }
  .approved-magazine-cover { width:80%; max-width:260px; }
  .issue-intro h3 { font-size:29px; }
  .issue-intro ul { margin-block:18px 24px; }
  .home-columns>div:first-child { display:block; }
  .home-columns>div:first-child .inline { margin-top:16px; }
  .home-columns>div+div { grid-template-columns:1fr; gap:28px; }
  .home-columns h3 { font-size:24px; }
  .home-columns p { font-size:15px; }
  .page-intro { padding-block:30px 32px; }
  .page-intro>p { margin-bottom:20px; }
  .page-subnav { gap:24px; padding-block:10px; }
  .page-intro+.chapter,.page-subnav+.chapter { margin-top:48px; }
  .philosophy-copy { padding:18px 0 18px 22px; }
  .philosophy-copy br { display:none; }
  .large-copy { font-size:27px; }
  .three-places,.situation-grid,.oath-list { grid-template-columns:1fr; gap:24px; }
  .three-places article,.situation-grid article { padding-top:22px; }
  .oath-list { gap:0; }
  .oath-list article { gap:18px; padding-block:24px; }
  .oath-list h3 { font-size:23px; }
  .promise-preview,.private-line { grid-template-columns:1fr; padding:26px; gap:24px; }
  .name-story { padding:20px 0 20px 22px; }
  .name-story p { font-size:22px; }
  .service-grid,.price-layout { grid-template-columns:1fr; gap:36px; }
  .service-item>img,.service-photo-pending { aspect-ratio:1.5; }
  .price-feature { padding:28px; }
  .price-feature>strong { font-size:48px; }
  .price-explanation { padding:0; }
  .price-formula { font-size:30px; }
  .journey { grid-template-columns:1fr; gap:24px; }
  .journey li { position:relative; padding:22px 0 0 46px; }
  .journey li::before { position:absolute; left:0; top:23px; font-size:24px; }
  .journey p { margin-top:10px; }
  .journey-visual { aspect-ratio:1.7; }
  .service-future { grid-template-columns:1fr; gap:28px; }
  .service-future article+article { padding-top:26px; border-top:1px solid var(--line); }
  .page-cta { padding:32px 24px; }
  .page-cta h2 { font-size:26px; }
  .route-next>div { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
  .manager-profile-pending { margin-top:30px; }
  .map-guide h3 { font-size:28px; }
  .map-entry { padding:22px; }
  .reader-note { text-align:left; }
  .column-list { grid-template-columns:1fr; gap:40px; }
  .column-list h3 { font-size:26px; }
  .column-image { margin-bottom:20px; }
  .article-back { padding-top:24px; }
  .reading-article { margin-top:28px; }
  .reading-article h1 { font-size:32px; }
  .article-deck { font-size:16px; }
  .reading-article h2 { font-size:25px; }
  .consultation-welcome { grid-template-columns:1fr; padding:28px 24px; gap:32px; margin-top:32px; }
  .consultation-guide { border-left:0; border-top:1px solid #bcb3a3; padding:26px 0 0; }
  .consultation-welcome .button { width:100%; }
  .consultation-welcome h2 { font-size:30px; }
  .photo-estimate-form { padding:24px 18px; }
  .estimate-fields { grid-template-columns:1fr; gap:28px; }
  .estimate-form-head h3 { font-size:22px; }
  .demo-photo img { aspect-ratio:1.8; }
  .estimate-inputs fieldset label { font-size:12px; padding-inline:10px; }
  .estimate-submit { flex-direction:column; align-items:stretch; gap:20px; }
  .estimate-submit .button { width:100%; }
  .estimate-dialog { width:100%; max-height:94dvh; margin:auto 0 0; }
  .result-shell { max-height:94dvh; }
  .result-head { padding:24px 64px 20px 22px; }
  .result-head h2 { font-size:24px; }
  .result-price { font-size:28px; }
  .result-body { padding:20px 22px; }
  .result-footer { padding:16px 22px max(20px,env(safe-area-inset-bottom)); }
  .result-actions { flex-direction:column; gap:8px; }
  .result-actions .button { flex:auto; min-height:46px; }
  .result-disclaimer { font-size:11px; }
  .faq-list summary { gap:12px; padding-block:22px; flex-wrap:wrap; }
  .faq-list summary>span { flex-basis:100%; }
  .faq-list summary>b { font-size:17px; }
  .faq-list details>p { padding:0 0 24px; font-size:15px; }
  .site-footer { padding-top:28px; gap:20px; }
  .closing-invitation { display:block; padding-top:30px; }
  .closing-invitation .button { margin-top:26px; }
  .footer-directory { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .footer-directory>div:last-child { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:0 20px; }
  .footer-directory>div:last-child h2 { width:100%; }
  .footer-legal { gap:4px 12px; }
  .footer-policy { gap:0 16px; }
  .review-grid-photos { grid-template-columns:1fr; gap:24px; }
  .review-copy { padding:20px; }
  .review-copy blockquote { font-size:21px; }
  .chapter-heading { padding-top:20px; }
  body[data-page="index"] #team,
  body[data-page="cases"] #reviews,
  body[data-page="services"] #price,
  body[data-page="managers"] #manager-role { padding:28px 20px; }
  .home-aftercare,.home-columns { padding-top:28px; }
}
@media(max-height:600px) {
  .result-head { padding-block:16px; }
  .result-head h2 { font-size:22px; }
  .result-head h2 br { display:none; }
  .result-price { font-size:25px; margin-top:6px; }
  .result-head>p:last-child { margin-top:4px; }
  .result-footer { padding-block:12px; }
  .result-actions { flex-direction:row; }
  .result-actions .button { flex:1; min-height:44px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
}
/* Promise page: photographs explain the philosophy; the four oaths stay readable. */
.promise-breadcrumb { padding-top:32px; font-size:12px; color:var(--muted); }
.promise-breadcrumb a { text-decoration:underline; }
.promise-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.18fr); gap:clamp(32px,5vw,72px); align-items:center; margin-block:32px 88px; }
.promise-hero h1 { font-size:clamp(31px,3.3vw,46px); line-height:1.45; margin-top:22px; }
.promise-lead { margin-top:26px; font-size:16px; line-height:1.9; color:var(--muted); }
.promise-hero .inline { margin-top:26px; }
.promise-hero figure img { width:100%; aspect-ratio:1.08; object-fit:cover; }
.promise-hero figcaption,.promise-oath-intro figcaption { font-size:11px; color:var(--muted); padding-top:10px; }
.promise-section-heading { margin-bottom:32px; }
.promise-section-heading h2 { font-size:30px; }
.promise-section-heading>p { margin-top:12px; color:var(--muted); }
.promise-place-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.promise-place-grid img { width:100%; aspect-ratio:1.2; object-fit:cover; }
.promise-place-grid .tag { margin-top:22px; }
.promise-place-grid h3 { margin-top:10px; font-size:21px; line-height:1.55; font-weight:600; }
.promise-place-grid p { margin-top:12px; font-size:15px; line-height:1.8; color:var(--muted); }
.promise-oath { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(40px,7vw,100px); padding-block:56px; margin-block:88px; border-block:1px solid var(--line); }
.promise-oath-intro h2 { font-size:32px; }
.promise-oath-intro>p { margin-top:18px; color:var(--muted); }
.promise-oath-intro figure { margin-top:30px; max-width:380px; }
.promise-oath-intro img { width:100%; aspect-ratio:1.35; object-fit:cover; }
.promise-oath-intro .inline { margin-top:14px; }
.promise-oath .oath-list { display:block; }
.promise-oath .oath-list article { padding-block:24px; }
.promise-oath .oath-list article:first-child { padding-top:0; border-top:0; }
.promise-oath .oath-list article:last-child { padding-bottom:0; }
.promise-oath .oath-list h3 { font-size:21px; margin-top:10px; }
.promise-oath .oath-list p { font-size:15px; margin-top:12px; }
.promise-continuity { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:56px; align-items:center; padding:36px 40px; background:var(--wood); }
.promise-continuity h2 { font-size:26px; }
.promise-continuity p { font-size:15px; color:var(--muted); }
.promise-continuity h2+p { margin-top:18px; }
.promise-continuity .inline { margin-top:16px; }
@media(max-width:980px) {
  .promise-hero { grid-template-columns:1fr 1fr; gap:30px; }
  .promise-hero h1 { font-size:33px; }
  .promise-lead br { display:none; }
  .promise-place-grid { gap:20px; }
  .promise-place-grid h3 { font-size:19px; }
  .promise-oath { gap:36px; }
  .promise-oath-intro h2 { font-size:28px; }
  .promise-continuity { padding:30px; gap:32px; }
}
@media(max-width:640px) {
  .promise-breadcrumb { padding-top:26px; }
  .promise-hero { grid-template-columns:1fr; gap:28px; margin-block:24px 56px; }
  .promise-hero h1 { font-size:clamp(29px,7.5vw,38px); margin-top:14px; }
  .promise-lead { margin-top:20px; }
  .promise-hero .inline { margin-top:18px; }
  .promise-hero figure img { aspect-ratio:1.3; }
  .promise-section-heading h2 { font-size:26px; }
  .promise-place-grid { grid-template-columns:1fr; gap:36px; }
  .promise-place-grid img { aspect-ratio:1.5; }
  .promise-place-grid .tag { margin-top:18px; }
  .promise-place-grid h3 { font-size:22px; }
  .promise-place-grid p { font-size:16px; margin-top:10px; }
  .promise-oath { grid-template-columns:1fr; gap:32px; margin-block:56px; padding-block:36px; }
  .promise-oath-intro h2 { font-size:28px; }
  .promise-oath-intro figure { max-width:none; margin-top:24px; }
  .promise-oath-intro img { aspect-ratio:1.7; }
  .promise-oath .oath-list h3 { font-size:21px; }
  .promise-oath .oath-list p { font-size:16px; }
  .promise-continuity { grid-template-columns:1fr; padding:26px 24px; gap:22px; }
  .promise-continuity h2 { font-size:25px; }
}
@media print {
  .site-header,.site-footer,.hero-entry,.gallery-arrow,.gallery-tools,.menu-toggle,.header-estimates { display:none; }
  main { width:100%; }
  body { background:white; color:black; }
  .chapter { break-inside:avoid; margin-block:32px; }
}

/* Kitchen introduction: copy left, photography right. */
#home-panel-kitchen .room-story { order:-1; }
@media(min-width:641px) {
  #home-panel-kitchen .room-layout { grid-template-columns:minmax(0,1fr) minmax(0,1.45fr); }
}
/* Homepage editorial order: text first, photograph second. */
body[data-page="index"] .room-story,
body[data-page="index"] .manager-preview > div,
body[data-page="index"] .home-aftercare > div,
body[data-page="index"] .magazine-feature > .issue-intro,
body[data-page="index"] .review-copy { order:-1; }
body[data-page="index"] .review-grid-photos { grid-template-columns:1fr; gap:40px; }
body[data-page="index"] .review-grid-photos .quote-item { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.45fr); align-items:center; gap:clamp(24px,4vw,56px); }
@media(min-width:641px) {
  body[data-page="index"] .room-layout { grid-template-columns:minmax(0,1fr) minmax(0,1.45fr); }
  body[data-page="index"] .home-aftercare,
  body[data-page="index"] .magazine-feature { grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); }
}
@media(max-width:640px) {
  body[data-page="index"] .review-grid-photos .quote-item { grid-template-columns:1fr; gap:16px; }
  body[data-page="index"] .review-copy { padding:20px; }
}
/* Homepage columns: 34% text and 66% imagery, excluding the gutter. */
@media(min-width:641px) {
  body[data-page="index"] .hero,
  body[data-page="index"] #home-panel-kitchen .room-layout,
  body[data-page="index"] .room-layout,
  body[data-page="index"] .manager-preview,
  body[data-page="index"] .home-aftercare,
  body[data-page="index"] .magazine-feature,
  body[data-page="index"] .review-grid-photos .quote-item {
    grid-template-columns:minmax(0,34fr) minmax(0,66fr);
  }
}
@media(min-width:641px) { body[data-page="index"] .magazine-feature > .approved-magazine-cover { max-width:none; width:100%; } }

/* Clear section boundaries and top-aligned editorial content. */
body[data-page="index"] .room-layout,
body[data-page="index"] .manager-preview,
body[data-page="index"] .review-grid-photos .quote-item,
body[data-page="index"] .home-aftercare { align-items:start; }
body[data-page="index"] .room-story { padding-top:0; }
.example-divider { border-top:2px solid var(--brass); padding:20px 0 24px; font-size:13px; font-weight:600; letter-spacing:.08em; color:var(--muted); }
.case-explanation { margin:28px 0 22px; padding-top:22px; border-top:1px solid var(--line); }
.case-explanation h4 { font-size:21px; margin:0 0 8px; color:var(--ink); }
.case-explanation > span { font-size:14px; color:var(--muted); }
.case-explanation p { margin:14px 0 0; font-size:16px; line-height:1.8; }
body[data-page="index"] .integrated-reviews { margin-top:56px; padding-top:12px; }
.integrated-reviews .chapter-heading { border-top:1px solid var(--line); align-items:start; }
.integrated-reviews h3 { font-size:26px; margin-bottom:10px; }
.integrated-reviews p { color:var(--muted); }
body[data-page="index"] .review-copy { padding:0 12px 20px 0; }
body[data-page="index"] #team h2 { margin:0 0 28px; }
body[data-page="index"] #team .manager-preview h3 { font-size:21px; line-height:1.65; }
body[data-page="index"] .home-aftercare h2 { font-size:clamp(30px,3.2vw,44px); margin:14px 0 24px; }
body[data-page="index"] .home-aftercare { grid-template-columns:minmax(0,34fr) minmax(0,66fr); }
body[data-page="index"] #magazine { padding-top:28px; border-top:2px solid var(--sage); }
body[data-page="index"] .home-columns { margin-top:var(--section); border-top:2px solid var(--sage); padding-top:28px; }
.column-subtitle { margin:20px 0 24px; font-size:21px; line-height:1.6; }
.home-faq .chapter-heading p { color:var(--muted); margin-top:14px; }
.home-faq-content { margin-bottom:24px; }
.home-faq-content details { border-bottom:1px solid var(--line); padding:24px 0; }
.home-faq-content summary { cursor:pointer; display:flex; gap:24px; align-items:center; list-style:none; }
.home-faq-content summary > span { min-width:90px; color:var(--muted); font-size:14px; }
.home-faq-content summary > b { flex:1; font-weight:500; }
.home-faq-content summary > i { font-style:normal; }
.home-faq-content details > p { margin:20px 0 0 114px; max-width:760px; color:var(--muted); line-height:1.85; }
@media(max-width:640px) {
 body[data-page="index"] .home-aftercare { grid-template-columns:1fr; }
 body[data-page="index"] .home-aftercare h2 { font-size:29px; }
 .home-faq-content summary { gap:12px; }
 .home-faq-content summary > span { min-width:64px; }
 .home-faq-content details > p { margin-left:0; }
}
/* Warm rose and stone palette from the saved reference preview. */
body[data-page="index"] { --paper:#faf8f4; --white:#fcfaf6; --wood:#eee7df; --rose:#eae3e1; --line:#d9cfca; }
body[data-page="index"] #cases { --section-head:#eae3e1; --section-body:#faf7f4; --section-line:#d9cfca; }
body[data-page="index"] #price { --section-head:#eee7df; --section-body:#fbf8f4; --section-line:#ddd1c6; }
body[data-page="index"] #team { --section-head:#ded9d7; --section-body:#f8f5f3; --section-line:#cfc5c5; background:var(--section-body); border-color:var(--section-line); }
body[data-page="index"] #magazine { --section-head:#ebe1e0; --section-body:#fbf7f5; --section-line:#ddcdcb; }
body[data-page="index"] #faq { --section-head:#e6e3de; --section-body:#f9f7f3; --section-line:#d3cec5; }
body[data-page="index"] :is(#cases,#price,#magazine,#faq) { background:var(--section-body); border:1px solid var(--section-line); border-top:3px solid var(--section-line); padding-top:0; }
body[data-page="index"] :is(#cases,#price,#magazine,#faq) > .chapter-heading { background:var(--section-head); padding:28px 32px; border:0; margin:0; }
body[data-page="index"] :is(#cases,#price,#magazine,#faq) > .chapter-content { padding:32px; }
body[data-page="index"] .room-story .case-top .tag { font-size:24px; line-height:1.4; padding:0; background:none; color:var(--ink); }
body[data-page="index"] .room-more { display:inline-block; margin-top:40px; font-size:13px; border:0; background:none; padding:0; text-decoration:none; }
.story-subheading { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 14px; }
.story-subheading h4 { font-size:19px; margin:0; }
.story-subheading span { font-size:13px; color:var(--muted); }
.room-review-entry { margin-top:24px; }
.room-review-entry .inline { font-size:13px; }
body[data-page="index"] .service-actions { display:none; }
body[data-page="index"] #consult { background:#ede2de; color:var(--ink); }
body[data-page="index"] #consult :is(h3,p) { color:var(--ink); }
body[data-page="index"] #consult > div+div { border-color:#ddcdc7; }
body[data-page="index"] #magazine .button.dark { background:#80666a; border-color:#80666a; }
body[data-page="index"] .home-columns { background:#faf7f3; border-color:#dacdc4; padding:32px; }
body[data-page="index"] #price .three-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
body[data-page="index"] #price .three-cards article { display:flex; flex-direction:column; padding:26px; border:1px solid #ddd1c6; background:#fcfaf6; }
body[data-page="index"] #price .three-cards h3 { margin:12px 0; }
body[data-page="index"] #price .three-cards .inline { margin-top:auto; padding-top:24px; }
.price-pending { font-size:25px; margin:22px 0 12px; }
#price .fine { margin:18px 0; }
#price .subheading { margin:38px 0 18px; }
#price .table-wrap { overflow:auto; }
#price table { width:100%; border-collapse:collapse; }
#price :is(th,td) { text-align:left; padding:18px 24px; border-bottom:1px solid #ddd1c6; }
#price thead { background:#eee8e2; }
#price tbody th { white-space:nowrap; }
body[data-page="index"] #faq .chapter-heading { display:block; }
#faq .chapter-heading p { margin-top:14px; }
#faq .faq-list details { padding:22px 0; border-bottom:1px solid #d3cec5; }
#faq .faq-list summary { display:flex; align-items:baseline; gap:20px; cursor:pointer; list-style:none; }
#faq .faq-list summary span { min-width:86px; color:var(--muted); font-size:13px; }
#faq .faq-list summary b { flex:1; }
#faq .faq-list summary i { font-style:normal; }
#faq .faq-list details p { margin:18px 0 0 106px; line-height:1.9; }
#faq .inset { margin-top:30px; padding:26px; background:#eee8e2; }
#faq .inset p { margin:12px 0 20px; }
@media(max-width:640px) {
 body[data-page="index"] :is(#cases,#price,#magazine,#faq) > :is(.chapter-heading,.chapter-content) { padding:22px 18px; }
 body[data-page="index"] #price .three-cards { grid-template-columns:1fr; }
 #faq .faq-list summary { gap:10px; }
 #faq .faq-list summary span { min-width:64px; }
 #faq .faq-list details p { margin-left:0; }
}
/* Green room selectors and a compact, two-column FAQ. */
body[data-page="index"] .room-tabs button {
 background:#465f4c; color:#fff; border:1px solid #465f4c;
 border-radius:0; padding:10px 18px; font-weight:600;
}
body[data-page="index"] .room-tabs button:hover { background:#364c3c; }
body[data-page="index"] .room-tabs button[aria-selected="true"] {
 background:#293e30; border-color:#293e30; color:#fff;
 box-shadow:inset 0 -3px 0 #c8d9c9;
}
body[data-page="index"] #faq > .chapter-heading { padding:20px 28px; }
body[data-page="index"] #faq > .chapter-content { padding:20px 28px; }
body[data-page="index"] #faq .faq-list {
 display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
 gap:0 32px; align-items:start;
}
body[data-page="index"] #faq .faq-list details { padding:14px 0; }
body[data-page="index"] #faq .faq-list summary { gap:12px; align-items:start; line-height:1.6; }
body[data-page="index"] #faq .faq-list summary span { min-width:62px; font-size:12px; padding-top:2px; }
body[data-page="index"] #faq .faq-list summary b { font-size:15px; }
body[data-page="index"] #faq .faq-list details p { margin:12px 0 0 74px; font-size:14px; line-height:1.75; }
body[data-page="index"] #faq .inset { display:flex; align-items:center; justify-content:space-between; gap:12px 24px; flex-wrap:wrap; margin-top:22px; padding:18px 22px; }
body[data-page="index"] #faq .inset h3 { font-size:18px; }
body[data-page="index"] #faq .inset p { margin:0; font-size:14px; }
body[data-page="index"] #faq .inset .button { padding:10px 18px; font-size:13px; }
@media(max-width:760px) {
 body[data-page="index"] #faq .faq-list { grid-template-columns:1fr; }
 body[data-page="index"] #faq > :is(.chapter-heading,.chapter-content) { padding:20px 18px; }
 body[data-page="index"] #faq .faq-list details p { margin-left:0; }
}
/* Neutral navigation; green labels identify the displayed room example. */
body[data-page="index"] .room-tabs button,
body[data-page="index"] .room-tabs button:hover,
body[data-page="index"] .room-tabs button[aria-selected="true"] {
 background:transparent; color:var(--ink); border:1px solid transparent; box-shadow:none;
}
body[data-page="index"] .room-tabs button[aria-selected="true"] {
 border-bottom:2px solid #465f4c; font-weight:700;
}
body[data-page="index"] .room-story .case-top .tag {
 display:inline-block; background:#465f4c; color:#fff; border:1px solid #465f4c;
 padding:8px 18px; border-radius:0; font-size:24px; line-height:1.4;
}
/* Compact FAQ with an editorial heading and 30% less vertical spacing. */
body[data-page="index"] #faq { margin-block:calc(var(--section) * .7); }
body[data-page="index"] #faq > .chapter-heading { padding:14px 28px; }
body[data-page="index"] #faq > .chapter-heading h2 {
 display:flex; align-items:center; gap:16px; font-size:clamp(26px,2.7vw,36px);
}
body[data-page="index"] #faq > .chapter-heading h2::before {
 content:'Q&A'; flex:none; font:500 15px/1.2 Georgia,serif; letter-spacing:.03em;
 color:#465f4c; padding:10px 14px 10px 0; border-right:1px solid #a8aea1;
}
body[data-page="index"] #faq > .chapter-heading p { margin-top:10px; }
body[data-page="index"] #faq > .chapter-content { padding:14px 28px; }
body[data-page="index"] #faq .faq-list details { padding:9.8px 0; }
body[data-page="index"] #faq .inset { margin-top:15.4px; padding:12.6px 22px; }
@media(max-width:760px) {
 body[data-page="index"] #faq > :is(.chapter-heading,.chapter-content) { padding:14px 18px; }
 body[data-page="index"] #faq > .chapter-heading h2 { gap:12px; font-size:25px; }
 body[data-page="index"] #faq > .chapter-heading h2::before { font-size:13px; padding-right:10px; }
}
/* Semantic palette: blue / understanding, rose / people, clay / decisions,
   sage / everyday care, plum / editorial, stone / reference. */
body[data-page="index"] { --paper:#faf9f6; --white:#fffefa; --ink:#303c38; --muted:#626762; --line:#d9ddd6; }
body[data-page="index"] .hero { border-bottom:1px solid #dadfd7; }
body[data-page="index"] #cases { --section-head:#dfe9ee; --section-body:#f4f7f8; --section-line:#c4d4dd; --section-accent:#506e80; }
body[data-page="index"] #team { --section-head:#eddfdf; --section-body:#fff8f2; --section-line:#dec9c9; --section-accent:#8a6469; }
body[data-page="index"] #price { --section-head:#eee0d5; --section-body:#fbf7f2; --section-line:#dec8b7; --section-accent:#94664d; }
body[data-page="index"] #magazine { --section-head:#e9e0e9; --section-body:#faf6fa; --section-line:#d7c7d6; --section-accent:#79617b; }
body[data-page="index"] #faq { --section-head:#e4e8e5; --section-body:#f7f9f7; --section-line:#cbd4ce; --section-accent:#536b61; }
body[data-page="index"] :is(#cases,#price,#team,#magazine,#faq) {
 border:1px solid var(--section-line); border-top:4px solid var(--section-accent);
 background:var(--section-body); box-shadow:none;
}
body[data-page="index"] :is(#cases,#price,#magazine,#faq) > .chapter-heading {
 background:var(--section-head); border-bottom:1px solid var(--section-line);
}
body[data-page="index"] :is(#cases,#price,#magazine,#faq) > .chapter-content { background:var(--section-body); }
body[data-page="index"] :is(#cases,#price,#magazine,#faq) > .chapter-heading h2,
body[data-page="index"] #team h2 { color:var(--section-accent); }
body[data-page="index"] #team { background:linear-gradient(90deg,#eddfdf 0%,#fff8f2 45%,#fff8f2 100%); }
body[data-page="index"] #team .care-principles li { border-color:#dec9c9; }
body[data-page="index"] #team .button { color:#765259; border-color:#b18f94; background:transparent; }
body[data-page="index"] #cases .room-tabs { border-color:#c4d4dd; }
body[data-page="index"] #cases .case-explanation { border-color:#c4d4dd; }
body[data-page="index"] #cases .story-subheading h4 { color:#506e80; }
body[data-page="index"] #price .three-cards article { background:#fffdfa; border-color:#dec8b7; border-top:3px solid #b48c70; }
body[data-page="index"] #price .price-pending { color:#94664d; }
body[data-page="index"] #price thead { background:#eee0d5; }
body[data-page="index"] #price :is(th,td) { border-color:#dec8b7; }
body[data-page="index"] #consult { background:#efdfd7; color:#493f39; border:1px solid #d9bfb2; border-top:4px solid #996a56; }
body[data-page="index"] #consult > div+div { border-color:#d3b8aa; }
body[data-page="index"] #consult .button.dark { background:#8e624f; border-color:#8e624f; color:white; }
body[data-page="index"] #aftercare { padding:32px; background:#eef2eb; border:1px solid #cbd6c5; border-top:4px solid #657c60; }
body[data-page="index"] #aftercare h2 { color:#536b4e; }
body[data-page="index"] #magazine .issue-number { color:#79617b; }
body[data-page="index"] #magazine .button.dark { background:#79617b; border-color:#79617b; color:white; }
body[data-page="index"] #columns { background:#f1eeea; border:1px solid #d7d0c6; border-top:4px solid #817461; }
body[data-page="index"] #columns h2 { color:#756650; }
body[data-page="index"] #faq .faq-list details { border-color:#cbd4ce; }
body[data-page="index"] #faq .inset { background:#e9eeea; }
body[data-page="index"] #faq .chapter-heading h2::before { color:#536b61; border-color:#aebdb3; }
@media(max-width:640px) {
 body[data-page="index"] #aftercare { padding:22px 18px; }
 body[data-page="index"] #team { background:#fff8f2; }
}
/* Light oak, cream and warm sand from the supplied wardrobe reference. */
body[data-page="index"] { --paper:#fffdf8; --white:#fffefa; --ink:#343b2f; --muted:#6b6255; --wood:#ead4af; --line:#dbcbb4; --brass:#a88754; --sage:#405b3d; --sage-deep:#30462f; --rose:#e8d8c6; }
body[data-page="index"] .site-header { background:#fffaf0; border-color:#d7c5a6; }
body[data-page="index"] .hero { background:#fffaf0; border-bottom:2px solid #cfb58a; }
body[data-page="index"] .hero h1 { color:#3c4734; }
body[data-page="index"] #cases { --section-head:#ead3ad; --section-body:#fffaf1; --section-line:#d6bd96; --section-accent:#806035; }
body[data-page="index"] #team { --section-head:#e7d8c4; --section-body:#fcf7ef; --section-line:#d5c2a7; --section-accent:#71573c; background:#f1e4d1; }
body[data-page="index"] #price { --section-head:#ebcba4; --section-body:#fffbf4; --section-line:#d8b68b; --section-accent:#895c2d; }
body[data-page="index"] #magazine { --section-head:#e8c8aa; --section-body:#fff8ef; --section-line:#d6b497; --section-accent:#885536; }
body[data-page="index"] #faq { --section-head:#e7dfcd; --section-body:#fcfaf3; --section-line:#cfc4ad; --section-accent:#665d3e; }
body[data-page="index"] #cases :is(.room-tabs,.case-explanation) { border-color:#d6bd96; }
body[data-page="index"] #cases .story-subheading h4 { color:#806035; }
body[data-page="index"] #team .care-principles li { border-color:#cbb899; }
body[data-page="index"] #team .button { color:#634c32; border-color:#9c805a; }
body[data-page="index"] #price .three-cards article { background:#fffdf8; border-color:#d8b68b; border-top-color:#af7f42; }
body[data-page="index"] #price .price-pending { color:#895c2d; }
body[data-page="index"] #price thead { background:#efdec5; }
body[data-page="index"] #price :is(th,td) { border-color:#d8c2a3; }
body[data-page="index"] #consult { background:#e9ccb0; color:#453c2f; border-color:#caa27f; border-top-color:#93643f; }
body[data-page="index"] #consult > div+div { border-color:#c8a887; }
body[data-page="index"] #consult .button.dark { background:#805333; border-color:#805333; }
body[data-page="index"] #aftercare { background:#f2efdf; border-color:#c9c9aa; border-top-color:#68734b; }
body[data-page="index"] #aftercare h2 { color:#505d38; }
body[data-page="index"] #magazine .issue-number { color:#885536; }
body[data-page="index"] #magazine .button.dark { background:#855535; border-color:#855535; }
body[data-page="index"] #columns { background:#f4eadb; border-color:#d4bfa1; border-top-color:#927345; }
body[data-page="index"] #columns h2 { color:#78592f; }
body[data-page="index"] #faq .faq-list details { border-color:#d4c9b3; }
body[data-page="index"] #faq .inset { background:#eee5d2; }
body[data-page="index"] #faq .chapter-heading h2::before { color:#665d3e; border-color:#b9ab88; }
body[data-page="index"] .site-footer { background:#f0e6d4; border-color:#cfbb9a; }
/* Colour denotes heading hierarchy; all reading surfaces remain white. */
body[data-page="index"] { --paper:#fff; --white:#fff; --wood:#fff; }
body[data-page="index"] :is(.site-header,.hero,.site-footer,.questions,#team,#consult,#aftercare,#columns,#price .three-cards article,#faq .inset,.gallery-tools,.review-photo) { background:#fff; }
body[data-page="index"] :is(#cases,#price,#team,#magazine,#faq) { --section-body:#fff; background:#fff; }
body[data-page="index"] #cases { --section-head:#dfc295; }
body[data-page="index"] #price { --section-head:#dfbc90; }
body[data-page="index"] #magazine { --section-head:#dbb797; }
body[data-page="index"] #faq { --section-head:#d7ccb0; }
body[data-page="index"] :is(#cases,#price,#magazine,#faq) > .chapter-content { background:#fff; }
body[data-page="index"] :is(#team h2,#aftercare h2,#columns h2,#consult h3) { background:#dfc6a2; padding:16px 18px; }
body[data-page="index"] .hero h1 { background:#dfc295; padding:18px 20px; }
body[data-page="index"] #team h2 { background:#d9c4a8; }
body[data-page="index"] #aftercare h2 { background:#d9d5b9; }
body[data-page="index"] #columns h2 { background:#decaac; }
body[data-page="index"] #consult h3 { background:#dfbea0; }
body[data-page="index"] :is(.story-subheading,#price .three-cards h3,#price .subheading,#team .manager-preview h3) { background:#f2e8d9; padding:10px 12px; }
body[data-page="index"] #magazine .issue-intro h3 { background:#f3e6d9; padding:10px 12px; }
body[data-page="index"] #price thead { background:#f2e8d9; }
body[data-page="index"] #price tbody :is(th,td),
body[data-page="index"] #faq .faq-list,
body[data-page="index"] #faq .faq-list details { background:#fff; }
body[data-page="index"] #faq .faq-list summary > span { background:#eee9dd; padding:3px 6px; }
body[data-page="index"] #faq .inset h3 { background:#eee9dd; padding:8px 12px; }
body[data-page="index"] #consult > div+div h3 { background:#f3e7dc; }
body[data-page="index"] .room-story .case-top .tag { background:#e3eadd; color:#34492f; border-color:#c2d0b8; }
/* Five related pink atmospheres, applied to whole sections in reading order. */
body[data-page="index"] { --paper:#ffffff; --white:#ffffff; --ink:#40353b; --muted:#6c6056; --line:#e7d8ce; --brass:#a85b33; }
body[data-page="index"] .hero { --pink:#f1dce2; --pink-line:#d9b9c4; --pink-ink:#775362; }
body[data-page="index"] #cases { --pink:#eee2ed; --pink-line:#d5c0d3; --pink-ink:#725a73; }
body[data-page="index"] #team { --pink:#f3dedd; --pink-line:#ddbdbc; --pink-ink:#865b5e; }
body[data-page="index"] #consult { --pink:#eae2e5; --pink-line:#cec3c9; --pink-ink:#6e5d68; }
body[data-page="index"] #price { --pink:#f5e7e1; --pink-line:#ddc9c0; --pink-ink:#806367; }
body[data-page="index"] #aftercare { --pink:#f1dce2; --pink-line:#d9b9c4; --pink-ink:#775362; }
body[data-page="index"] #magazine { --pink:#eee2ed; --pink-line:#d5c0d3; --pink-ink:#725a73; }
body[data-page="index"] #columns { --pink:#f3dedd; --pink-line:#ddbdbc; --pink-ink:#865b5e; }
body[data-page="index"] #faq { --pink:#eae2e5; --pink-line:#cec3c9; --pink-ink:#6e5d68; }
body[data-page="index"] :is(.hero,#cases,#team,#consult,#price,#aftercare,#magazine,#columns,#faq) {
 --section-head:var(--pink); --section-body:var(--pink); --section-line:var(--pink-line); --section-accent:var(--pink-ink);
 background:var(--pink); border-color:var(--pink-line); color:var(--ink);
}
body[data-page="index"] .hero {
 padding-left:28px; padding-right:28px;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.065' filter='url(%23n)'/%3E%3C/svg%3E");
}
body[data-page="index"] :is(#cases,#price,#magazine,#faq) > :is(.chapter-heading,.chapter-content) { background:transparent; border-color:var(--pink-line); }
body[data-page="index"] :is(.hero h1,#team h2,#aftercare h2,#columns h2,#consult h3,.story-subheading,#price .three-cards h3,#price .subheading,#team .manager-preview h3,#magazine .issue-intro h3,#faq .inset h3,#consult > div+div h3) { background:transparent; color:var(--pink-ink); }
body[data-page="index"] :is(.hero h1,#team h2,#aftercare h2,#columns h2,#consult h3) { padding-left:0; padding-right:0; }
body[data-page="index"] #price .three-cards article,
body[data-page="index"] #price tbody :is(th,td),
body[data-page="index"] #faq .faq-list,
body[data-page="index"] #faq .faq-list details,
body[data-page="index"] .gallery-tools { background:transparent; border-color:var(--pink-line); }
body[data-page="index"] #price thead,
body[data-page="index"] #faq .inset { background:rgba(255,255,255,.28); }
body[data-page="index"] #cases :is(.room-tabs,.case-explanation),
body[data-page="index"] #team .care-principles li,
body[data-page="index"] #consult > div+div { border-color:var(--pink-line); }
body[data-page="index"] #cases .story-subheading h4,
body[data-page="index"] #price .price-pending,
body[data-page="index"] #magazine .issue-number { color:var(--pink-ink); }
body[data-page="index"] #magazine .button.dark,
body[data-page="index"] #consult .button.dark { background:#77503b; border-color:#77503b; color:white; }
body[data-page="index"] #team .button { color:#77503b; border-color:#a6818b; }
body[data-page="index"] #faq .faq-list summary > span { background:rgba(255,255,255,.3); }
body[data-page="index"] #faq .chapter-heading h2::before { color:#77503b; border-color:#baa6b0; }
body[data-page="index"] .site-header { background:#ffffff; border-color:#e2d2d8; }
body[data-page="index"] .site-footer { background:#f5e7e1; border-color:#ddc9c0; }
@media(max-width:640px) { body[data-page="index"] .hero { padding-left:18px; padding-right:18px; } }
/* First screen: pink brand header, lighter pink hero beneath it. */
body[data-page="index"] .site-header { background:#f0d8e1; border-bottom-color:#dec1cc; }
body[data-page="index"] .hero { --pink:#fff3e9; --pink-line:#ead5dd; background-color:#fff3e9; border-color:#ead5dd; }
/* White canvas with a single pink photo-estimate call to action. */
body[data-page="index"] { --paper:#fff; --white:#fff; --wood:#fff; --pink:#fff; --section-head:#fff; --section-body:#fff; }
body[data-page="index"] { background-color:#fff; }
/* 흰 박스 방지(2026-10-19): 하위 요소는 배경을 비워 부모 색을 그대로 쓴다(예전 분홍 배경은 계속 덮음) */
body[data-page="index"] :is(header,main,footer,section,article,aside,figure,figcaption,div,h1,h2,h3,h4,p,ul,ol,li,details,summary,table,thead,tbody,tr,th,td,button) { background-color:transparent; background-image:none;
}
body[data-page="index"] :is(.hero,#cases,#team,#consult,#price,#aftercare,#magazine,#columns,#faq) { --pink:#fff; --section-head:#fff; --section-body:#fff; }
body[data-page="index"] .site-header .header-photo {
 display:inline-flex; align-items:center; justify-content:center;
 padding:11px 18px; background:#f8e3ea!important; color:#a33f60;
 border:1px solid #efc8d5; font-weight:650; text-decoration:none;
}
body[data-page="index"] .site-header .header-photo:hover { background:#f3d4df!important; color:#922f50; }
/* Keep controls legible when their former dark fills are removed. */
body[data-page="index"] :is(.button.dark,.header-consult,#consult .button.dark,#magazine .button.dark,.room-story .case-top .tag) { background:#fff; color:#46554b; border-color:#a7b0a8; }
body[data-page="index"] :is(#team,#consult,#aftercare,#columns,.hero,.site-header,.site-footer),
body[data-page="index"] :is(#cases,#price,#magazine,#faq) > :is(.chapter-heading,.chapter-content),
body[data-page="index"] :is(#price .three-cards article,#price thead,#price tbody th,#price tbody td,#faq .inset,#faq .faq-list,#faq .faq-list details,#faq .faq-list summary > span) { background:#fff; background-image:none; }
/* Pink full navigation band; coloured headings and black reading text. */
body[data-page="index"] { --ink:#171717; --muted:#171717; }
body[data-page="index"] .site-header,
body[data-page="index"] .site-header :is(nav,div,a,span,small,button) {
 background:#fff1e8!important; background-image:none; color:#171717;
}
body[data-page="index"] .site-header { border-bottom-color:#ead0bc; }
body[data-page="index"] .site-header .header-photo { background:#f7e2e9!important; color:#a33f60; }
body[data-page="index"] main :is(p,small,span,li,a,button,summary,b,strong,th,td,blockquote,figcaption),
body[data-page="index"] footer :is(p,small,span,a,h2) { color:#171717; }
body[data-page="index"] main :is(h1,h2,h3,h4) { color:#cc4a0c!important; }
body[data-page="index"] main :is(h1,h2,h3,h4) :is(span,a,strong,b) { color:inherit; }
body[data-page="index"] main .room-story .case-top .tag { color:#cc4a0c; }
body[data-page="index"] #faq .chapter-heading h2::before { color:#cc4a0c; }
body[data-page="index"] #price .price-pending { color:#cc4a0c; }
body[data-page="index"] .site-header .brand { color:#cc4a0c; }
body[data-page="index"] .site-header .brand span { color:inherit; }body[data-page="index"] main :is(p,small,li,a,button,summary,th,td,blockquote,figcaption),
body[data-page="index"] main :is(.tag,.issue-number,.story-subheading > span,.faq-list summary > span) { color:#171717!important; }
body[data-page="index"] main :is(h1,h2,h3,h4) :is(a,span,strong,b),
body[data-page="index"] main .room-story .case-top .tag { color:#cc4a0c!important; }
body[data-page="index"] .site-header .header-consult { color:#171717; }
/* The cover link must not paint over the magazine artwork. */
body[data-page="index"] .approved-magazine-cover > .cover-open { background:transparent!important; background-image:none!important; }

/* Published column contents */
.column-list article.original-column-entry { display:block; }

/* Promise detail uses the same two-column proportion as the homepage. */
@media(min-width:641px) {
  body[data-page="promise"] :is(.promise-hero,.promise-oath,.promise-continuity) {
    grid-template-columns:minmax(0,34fr) minmax(0,66fr);
    column-gap:clamp(32px,5vw,80px);
  }
}
/* Promise detail shares the homepage's white and pink palette. */
body:is([data-page="promise"],[data-page="aftercare"],[data-page="journal"]) {
 --paper:#fff; --white:#fff; --wood:#fff; --ink:#171717; --muted:#171717;
 --line:#e7d8ce; --brass:#a85b33;
}
body:is([data-page="promise"],[data-page="aftercare"],[data-page="journal"]) :is(main,.promise-hero,.promise-oath,.promise-continuity,.site-footer) { background:#fff; }
body:is([data-page="promise"],[data-page="aftercare"],[data-page="journal"]) main :is(h1,h2,h3,h4) { color:#cc4a0c; }
body:is([data-page="promise"],[data-page="aftercare"],[data-page="journal"]) main :is(p,small,span,li,a,button,b,strong,figcaption) { color:#171717; }
body:is([data-page="promise"],[data-page="aftercare"],[data-page="journal"]) main :is(h1,h2,h3,h4) :is(span,a,strong,b) { color:inherit; }
body:is([data-page="promise"],[data-page="aftercare"],[data-page="journal"]) .site-header,
body:is([data-page="promise"],[data-page="aftercare"],[data-page="journal"]) .site-header :is(nav,div,a,span,small,button) {
 background:#fff1e8; background-image:none; color:#171717;
}
body:is([data-page="promise"],[data-page="aftercare"],[data-page="journal"]) .site-header { border-bottom-color:#ead0bc; }
body:is([data-page="promise"],[data-page="aftercare"],[data-page="journal"]) .site-header .brand,
body:is([data-page="promise"],[data-page="aftercare"],[data-page="journal"]) .site-header .brand span { color:#cc4a0c; }
body:is([data-page="promise"],[data-page="aftercare"],[data-page="journal"]) .site-header .header-photo {
 display:inline-flex; align-items:center; justify-content:center;
 padding:11px 18px; background:#f7e2e9; color:#a33f60;
 border:1px solid #efc8d5; font-weight:650; text-decoration:none;
}
body:is([data-page="promise"],[data-page="aftercare"],[data-page="journal"]) .site-header .header-photo:hover { background:#f3d4df; color:#922f50; }
body:is([data-page="promise"],[data-page="aftercare"],[data-page="journal"]) .button.dark { background:#fff; color:#171717; border-color:#a7b0a8; }
body:is([data-page="promise"],[data-page="aftercare"],[data-page="journal"]) .site-header .header-consult { background:#fff1e8; }
body:is([data-page="promise"],[data-page="aftercare"],[data-page="journal"]) footer :is(p,small,span,a,h2) { color:#171717; }
/* Space directory and living-room maintenance guide. */
.aftercare-spaces { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-block:24px; }
.aftercare-spaces > :is(a,span) { display:flex; flex-direction:column; justify-content:center; padding:12px 14px; border:1px solid #e7d8ce; font-size:16px; line-height:1.6; }
.aftercare-spaces > a { border-color:#a85b33; font-weight:600; }
.aftercare-spaces > a:hover { text-decoration:underline; text-underline-offset:4px; }
.aftercare-spaces :is(small,a span) { font-size:12px; font-weight:400; }
.living-map-layout { display:grid; grid-template-columns:minmax(0,34fr) minmax(0,66fr); gap:clamp(32px,5vw,80px); align-items:start; }
.living-map-intro > p,.living-map-intro figure { margin-top:24px; }
.living-map-intro img { width:100%; aspect-ratio:1.2; object-fit:cover; }
.living-map-intro figcaption { font-size:12px; margin-top:10px; }
.living-start,.living-routine,.living-adjust { margin-top:32px; padding-top:24px; border-top:1px solid #e7d8ce; }
.living-map-layout :is(ol,ul) { padding-left:22px; }
.living-map-layout li+li { margin-top:10px; }
.living-map-detail > p { margin-top:14px; }
.living-zones article { padding-block:26px; border-bottom:1px solid #e7d8ce; }
.living-zones h4 { font-size:22px; margin:6px 0 16px; }
.living-zones dl > div+div { margin-top:14px; }
.living-zones dt { font-weight:650; font-size:14px; }
.living-zones dd { margin-top:4px; }
.living-adjust p { margin-top:14px; }
.living-map-detail > .inline { margin-top:28px; }
@media(min-width:641px) { body[data-page="aftercare"] .place-map { grid-template-columns:minmax(0,34fr) minmax(0,66fr); column-gap:clamp(32px,5vw,80px); } }
@media(max-width:640px) { .living-map-layout { grid-template-columns:1fr; gap:32px; } .aftercare-spaces { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Space choices appear as plain text links, without boxes. */
.aftercare-spaces > :is(a,span) {
 border:0;
 padding:8px 0;
 background:transparent;
}
/* Compact room guides: show one room and one item at a time. */
body[data-page="aftercare"] main > .aftercare-spaces { scroll-margin-top:110px; margin-bottom:30px; }
body[data-page="aftercare"] .aftercare-spaces [aria-current="location"] { color:#cc4a0c; text-decoration:underline; text-underline-offset:5px; }
body[data-page="aftercare"] [data-room-panel] { margin-top:24px; }
.room-item-tabs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px; }
.room-item-tabs button { white-space:normal; text-align:left; }
body[data-page="aftercare"] .map-tabs button[aria-selected="true"] { background:#fff1e8; color:#cc4a0c; border-color:#a85b33; }
.living-map-detail > .map-entry { padding:24px; border-top:1px solid #e7d8ce; }
.living-map-detail > .map-entry h4 { font-size:22px; color:#cc4a0c; margin-bottom:18px; }
.room-habits > :first-child { margin-top:0; padding-top:0; border-top:0; }
@media(max-width:640px) { .living-map-detail > .map-entry { padding:20px 0; } }

/* A single room selector above a clearly bounded reading area. */
body[data-page="aftercare"] main > .aftercare-spaces {
 display:grid; grid-template-columns:repeat(9,minmax(0,1fr)); gap:0;
 margin:24px 0 26px; padding:0 4px; border-bottom:1px solid #ead0bc;
}
body[data-page="aftercare"] main > .aftercare-spaces > a {
 display:flex; align-items:center; justify-content:center;
 padding:15px 6px; min-height:54px; border:0; border-bottom:3px solid transparent;
 margin-bottom:-1px; text-align:center; font-size:16px; font-weight:500;
}
body[data-page="aftercare"] main > .aftercare-spaces > a span { display:none; }
body[data-page="aftercare"] main > .aftercare-spaces > a[aria-current="location"] {
 border-bottom-color:#f0642b; color:#cc4a0c; font-weight:700; text-decoration:none;
}
body[data-page="aftercare"] main > .aftercare-spaces > a:hover { color:#cc4a0c; text-decoration:none; }
body[data-page="aftercare"] main > [data-room-panel] {
 border:1px solid #ead0bc; border-radius:12px;
 padding:32px; margin:0 0 56px; background:#fff;
}
body[data-page="aftercare"] [data-room-panel] > .chapter-heading {
 padding-top:0; margin-top:0;
}
body[data-page="aftercare"] .page-intro { padding-bottom:0; border-bottom:0; }
@media(max-width:980px) {
 body[data-page="aftercare"] main > .aftercare-spaces { grid-template-columns:repeat(5,minmax(0,1fr)); gap:4px 0; }
 body[data-page="aftercare"] main > [data-room-panel] { padding:24px; }
}
@media(max-width:640px) {
 body[data-page="aftercare"] main > .aftercare-spaces { grid-template-columns:repeat(3,minmax(0,1fr)); }
 body[data-page="aftercare"] main > .aftercare-spaces > a { font-size:15px; padding:12px 4px; min-height:48px; }
 body[data-page="aftercare"] main > [data-room-panel] { padding:24px 18px; border-radius:10px; }
}
body[data-page="aftercare"] .page-intro { scroll-margin-top:110px; }

/* Balance the kitchen photograph with a compact information column. */
body[data-page="aftercare"] #map > .chapter-heading { display:block; border:0; padding:0; margin-bottom:28px; }
body[data-page="aftercare"] #map > .chapter-heading h2 { font-size:clamp(25px,2.5vw,34px); }
body[data-page="aftercare"] #map > .chapter-heading p { margin-top:10px; }
body[data-page="aftercare"] #map .place-map { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:36px; align-items:center; }
body[data-page="aftercare"] #map .map-visual img { width:100%; aspect-ratio:1.25; object-fit:cover; border-radius:8px; }
body[data-page="aftercare"] #map .map-visual figcaption { display:flex; flex-direction:column; gap:3px; padding-top:12px; }
body[data-page="aftercare"] #map .map-visual figcaption strong { font-size:14px; }
body[data-page="aftercare"] #map .map-tabs { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:18px; }
body[data-page="aftercare"] #map .map-tabs button { flex:1 1 auto; white-space:normal; }
body[data-page="aftercare"] #map .map-entry { padding:22px 0 0; border-top:1px solid #ead0bc; }
body[data-page="aftercare"] #map .map-entry h4 { font-size:22px; margin-bottom:12px; }
body[data-page="aftercare"] #map .map-entry dl > div { display:grid; grid-template-columns:86px minmax(0,1fr); gap:14px; padding:17px 0; border-bottom:1px solid #f0e5e9; }
body[data-page="aftercare"] #map .map-entry dt { font-size:13px; margin:0; }
body[data-page="aftercare"] #map .map-entry dd { font-size:15px; line-height:1.8; }
body[data-page="aftercare"] #map .kitchen-map-note { max-width:none; margin:24px 0 0; padding-top:16px; border-top:1px solid #f0e5e9; font-size:12px; }
@media(max-width:760px) { body[data-page="aftercare"] #map .place-map { grid-template-columns:1fr; gap:24px; } body[data-page="aftercare"] #map .map-visual img { aspect-ratio:1.5; } }
@media(max-width:400px) { body[data-page="aftercare"] #map .map-entry dl > div { grid-template-columns:1fr; gap:5px; } }

/* Practical kitchen guidance within the existing balanced columns. */
body[data-page="aftercare"] #map .place-map { align-items:start; }
body[data-page="aftercare"] #map .kitchen-entry-lead { font-size:15px; line-height:1.85; margin:0 0 12px; }
body[data-page="aftercare"] #map .map-entry h4 { line-height:1.5; }
body[data-page="aftercare"] #map .kitchen-action { margin-top:20px; padding:18px 20px; background:#fdf5f8; border-left:3px solid #a85b33; }
body[data-page="aftercare"] #map .kitchen-action h5 { margin:0 0 8px; font-size:15px; color:#cc4a0c; }
body[data-page="aftercare"] #map .kitchen-action p { font-size:14px; line-height:1.85; }
@media(min-width:981px) { body[data-page="aftercare"] #map .map-visual { position:sticky; top:120px; } }

/* Practical guidance follows the kitchen's readable rows and action prompt. */
body[data-page="aftercare"] .living-map-detail > .map-entry:not(.room-habits) dl > div {
 display:grid; grid-template-columns:100px minmax(0,1fr); gap:16px;
 padding:16px 0; border-bottom:1px solid #f0e5e9;
}
body[data-page="aftercare"] .living-map-detail > .map-entry:not(.room-habits) dt { margin:0; font-size:13px; }
body[data-page="aftercare"] .living-map-detail > .map-entry:not(.room-habits) dd { margin:0; font-size:15px; line-height:1.85; }
.room-practical-action { margin-top:22px; padding:18px 20px; background:#fdf5f8; border-left:3px solid #a85b33; }
.room-practical-action h5 { margin:0 0 8px; font-size:15px; color:#cc4a0c; }
.room-practical-action p { font-size:14px; line-height:1.85; }
@media(min-width:981px) { body[data-page="aftercare"] .living-map-intro { position:sticky; top:120px; } }
@media(max-width:640px) { body[data-page="aftercare"] .living-map-detail > .map-entry:not(.room-habits) dl > div { grid-template-columns:1fr; gap:6px; } }

.living-map-intro img.generated-room-photo { aspect-ratio:5/4; object-fit:contain; border-radius:8px; }

/* Journal uses the homepage magazine and column colours. */
body[data-page="journal"] #magazine { background:#fff; border:1px solid #e7d8ce; }
body[data-page="journal"] .chapter-heading { border-color:#e7d8ce; }
body[data-page="journal"] .journal-tabs { border-bottom:1px solid #ead0bc; }
body[data-page="journal"] .journal-tabs button { color:#171717; }
body[data-page="journal"] .journal-tabs button[aria-selected="true"] { background:#fff1e8; color:#cc4a0c; border:1px solid #ead0bc; }
body[data-page="journal"] .journal-tabs button:hover { background:#fdf5f8; }
body[data-page="journal"] .approved-magazine-cover > .cover-open { background:transparent; }
