/* KODAWARU — shared grid, type and spacing */
:root {
  --ink:#222722; --muted:#444b42; --accent:#b54432; --accent-dark:#943326;
  --accent-on-dark:#df8d77; --paper:#f4f2ed; --line:#d4d6cd; --white:#fff;
  --serif:"Yu Mincho",YuMincho,"Hiragino Mincho ProN","Noto Serif JP",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  --s1:8px; --s2:16px; --s3:24px; --s4:40px; --s5:64px; --s6:96px; --s7:128px;
  --max:1220px;--section-space:40px;--opening-gap:24px; --gutter:clamp(32px,5.55vw,100px); --gap:24px;
}
* {box-sizing:border-box}
html {scroll-behavior:smooth;scroll-padding-top:40px}
body {margin:0;color:var(--ink);background:#fff;font-family:var(--sans);font-size:16px;line-height:1.95;letter-spacing:.025em;-webkit-font-smoothing:antialiased}
body.menu-open {overflow:hidden}
h1,h2,h3,h4,p,figure {margin:0}
h1,h2,h3,h4 {font-weight:500}
a {color:inherit;text-decoration:none}
button,input,textarea,select {font:inherit}
button,a {-webkit-tap-highlight-color:transparent}
button {cursor:pointer}
img {display:block;width:100%;max-width:100%;height:auto}
button:focus-visible,a:focus-visible,summary:focus-visible {outline:3px solid var(--accent);outline-offset:5px}
input:focus-visible,textarea:focus-visible {outline:2px solid var(--accent);outline-offset:3px}
[hidden] {display:none!important}
strong {font-weight:700}
.accent-text {color:var(--accent)}
.mobile-only,.menu-toggle {display:none}
.skip-link {position:fixed;top:-100px;left:24px;z-index:100;padding:16px;background:var(--ink);color:#fff}
.skip-link:focus {top:16px}
.section,.site-header,.hero,.site-footer,.brand-inner {width:min(var(--max),calc(100% - var(--gutter)*2));margin-inline:auto}
.section {padding-block:var(--section-space)}
.hero,.site-header,.brand-inner {width:min(1360px,calc(100% - var(--gutter)*2))}
.section-heading,.about-intro,.diagnosis {display:block}
.section-label {text-align:left;padding-top:0;display:flex;flex-direction:column;align-items:flex-start;gap:8px;font-size:14px;line-height:1.6;font-weight:500;letter-spacing:.06em}
.section-label>span:first-child {font-family:var(--sans);font-size:14px;font-weight:650;color:var(--accent);letter-spacing:.08em}
.section-heading>div+div,.intro-heading,.diagnosis-heading {margin-top:var(--opening-gap)}
.section-heading {margin-bottom:24px}
.section-heading h2,.intro-heading h2,.diagnosis-heading h2 {max-width:850px}
.section-intro,.intro-heading>p,.diagnosis-heading>p:last-child {max-width:650px}
.about-intro h2 strong {font-weight:800}
h2 {font-family:var(--serif);font-size:clamp(38px,3.35vw,48px);font-weight:600;line-height:1.6;letter-spacing:.01em;overflow-wrap:break-word}
.section-intro {color:var(--muted);font-size:16px;line-height:1.9;margin-top:24px}
.selection h2,.circulation h2,.process h2 {font-size:clamp(36px,3.2vw,46px)}
.eyebrow {display:flex;align-items:center;gap:16px;font-size:13px;font-weight:500;letter-spacing:.08em}
.short-rule {display:inline-block;width:32px;height:1px;background:var(--accent)}
.button {display:inline-flex;justify-content:center;align-items:center;min-height:76px;padding:24px 32px;border:1px solid transparent;border-radius:2px;background:var(--accent);color:#fff;font-family:var(--sans);font-size:17px;font-weight:700;line-height:1.65;letter-spacing:.025em;text-align:center;transition:background .2s,box-shadow .2s}
.button:hover {background:var(--accent-dark);box-shadow:0 5px 15px #74271b18}
.button-small {min-height:52px;padding:16px 24px;font-size:13px}
.button-outline {background:transparent;border-color:var(--ink);color:var(--ink)}
.button-outline:hover {background:var(--paper);box-shadow:none}
.button:disabled {opacity:.6;cursor:wait}
.small-note {color:var(--muted);font-size:12px;line-height:1.9;margin-top:16px}
figcaption {font-size:12px;color:var(--muted);line-height:1.8;margin-top:16px}
/* Navigation and opening */
.site-header {height:112px;display:flex;align-items:center;justify-content:space-between;gap:32px;position:relative;z-index:20;background:#fff}
.wordmark {font-family:Arial,sans-serif;font-size:28px;font-weight:700;line-height:1.1;letter-spacing:.16em;white-space:nowrap}
.brand-dot {color:var(--accent);letter-spacing:0}
.wordmark small {display:block;margin-top:12px;font-family:var(--sans);font-size:10px;letter-spacing:.1em;font-weight:400}
.desktop-nav {display:flex;align-items:center;gap:24px;font-size:13px;font-weight:550;white-space:nowrap}
.desktop-nav>a:not(.button) {padding-block:8px}
.desktop-nav>a:not(.button):hover {color:var(--accent)}
.hero {padding-block:24px 0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);align-items:center}
.hero-copy {grid-column:1/7;padding-block:40px}
.hero h1 {font-family:var(--serif);font-size:clamp(56px,5.3vw,80px);font-weight:700;line-height:1.48;letter-spacing:0;margin:32px 0;white-space:nowrap}
.hero h1 strong {font-weight:800}
.hero-subtitle {font-size:18px;font-weight:600;letter-spacing:0;line-height:1.85;margin-bottom:24px}
.hero-description {font-size:15px;line-height:2;color:var(--muted);letter-spacing:0}
.hero-button {margin-top:40px;padding-inline:24px;font-size:16px}
.hero-note {font-size:12px;line-height:1.9;color:var(--muted);margin-top:16px}
.hero-visual {grid-column:7/-1;min-width:0;align-self:stretch;display:flex;flex-direction:column}
.hero-photos {display:grid;grid-template-columns:1.14fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;min-height:720px;flex:1;overflow:hidden}
.hero-photos img {width:100%;height:100%;min-height:0;object-fit:cover;filter:saturate(.87)}
.hero-chef {grid-row:1/3;object-position:50% 48%}
.hero-stylist {object-position:50% 37%}
.hero-florist {object-position:50% 45%}
.photo-caption {display:flex;justify-content:space-between;gap:16px;margin-top:16px;font-size:11px;color:var(--muted);line-height:1.8}
/* Belief: typography, then a full half-width work portrait */
.intro-heading p {font-size:17px;line-height:1.95;color:var(--muted);margin-top:24px}
.intro-heading p:last-child {color:var(--ink);font-weight:550}
.about-intro h2 {font-size:clamp(34px,3.2vw,46px)}
.belief {padding-top:0;display:grid;grid-template-columns:minmax(0,46fr) minmax(0,54fr);gap:48px;align-items:center}
.belief-photo {grid-column:auto}
.belief-photo img {aspect-ratio:4/5;object-fit:cover;object-position:50% 54%;filter:saturate(.83)}
.belief-copy {grid-column:auto;padding:0}
.belief-copy .eyebrow {color:var(--accent);font-size:13px;margin-bottom:16px}
.belief-copy h2 {font-size:clamp(32px,2.8vw,40px);font-weight:600;line-height:1.6;margin-bottom:24px}
.belief-copy h2 strong {font-weight:800}
.belief-copy p:not(.eyebrow) {font-size:16px;color:var(--muted);line-height:1.9;margin-top:16px}
.belief-copy .belief-conclusion {font-size:24px!important;font-family:var(--serif);font-weight:700;color:var(--ink)!important;margin-top:24px!important}
/* A pause with conviction */
.brand-statement {background:var(--ink);color:#f7f5ef;padding-block:88px}
.brand-inner {padding-left:calc((100% - 11*var(--gap))/12)}
.brand-statement .eyebrow {font-size:14px;color:#d4d8cd}
.brand-message {font-family:var(--serif);font-size:clamp(64px,6.7vw,104px);font-weight:600;line-height:1.65;letter-spacing:.025em;margin-block:32px}
.brand-message strong {font-weight:800}
.brand-human {color:var(--accent-on-dark)}
.brand-note {font-size:16px;color:#d4d8cd;letter-spacing:.08em}
/* The diagnosis, shown as a clear first step */
.diagnosis-wrap {background:var(--paper)}
.diagnosis-heading h2 {font-size:clamp(36px,3.35vw,48px)}
.diagnosis-heading>p:last-child {font-size:16px;color:var(--muted);line-height:1.9;margin-top:24px}
.diagnosis-body {display:grid;grid-template-columns:minmax(0,44fr) minmax(0,56fr);gap:48px;margin-top:24px;align-items:start}
.diagnosis-photo {grid-column:auto;max-width:440px}
.diagnosis-photo img {aspect-ratio:4/5;object-fit:cover;object-position:50% 46%;filter:saturate(.83)}
.diagnosis-content {grid-column:auto;padding:0}
.diagnosis-lead {font-family:var(--sans);font-size:18px;font-weight:400;line-height:1.85;margin-bottom:16px;letter-spacing:0}
.diagnosis-lead strong {font-weight:700;text-decoration:underline;text-decoration-color:#72796b;text-underline-offset:7px;text-decoration-thickness:1px}
.diagnosis-item {display:flex;gap:16px;border-top:1px solid var(--line);padding-block:16px}
.item-number {font-size:13px;font-weight:400;color:var(--muted);padding-top:4px}
.diagnosis-item h3 {font-size:21px;font-weight:600;line-height:1.6;letter-spacing:0}
.diagnosis-item p {font-size:16px;line-height:1.85;color:var(--muted);margin-top:12px}
.diagnosis-disclaimer {font-size:12px;line-height:1.9;color:var(--muted);margin-bottom:16px}
.diagnosis-actions>.button {width:100%;font-size:15px;padding-inline:16px}
.diagnosis-actions>.small-note {text-align:center}
/* Five messages, eleven forms of support */
/* Work first. Possible support beneath it. */
.selection-wrap {background:var(--paper)}
.example-plans {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:1040px;margin-inline:auto}
.example-photo {overflow:hidden}
.example-photo img {width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 30%;filter:saturate(.85)}
.example-photo img[src*="owner"] {object-position:50% 22%}
.example-copy {padding-top:16px}
.example-label {font-size:12px;color:var(--accent);font-weight:600}
.example-plans h3 {font-family:var(--serif);font-size:28px;font-weight:700;line-height:1.7;margin-top:8px}
.example-plans p {font-size:16px;color:var(--muted);line-height:1.8;margin-top:12px}
.example-plans ul {list-style:none;padding:16px 0 0;margin:16px 0 0;border-top:1px solid #c8cdc1;display:flex;flex-wrap:wrap;gap:6px 0}
.example-plans li {font-size:13px;font-weight:550;line-height:1.8}
.example-plans li+li::before {content:'/';color:#9ea393;margin-inline:8px;font-weight:400}
.examples-note {max-width:1040px;margin:20px auto 0;text-align:right}
/* A circular brand poster, never a grid of boxes */
/* Six equally spaced anchors at radius 38% around a square canvas. */
.circulation .section-heading {margin-bottom:0}
.cycle-poster {display:flow-root;max-width:700px;margin-inline:auto;color:var(--ink)}
.cycle-stage {position:relative;aspect-ratio:1;margin-block:-24px}
.cycle-lines {position:absolute;inset:0;width:100%;height:100%;color:#92998a;overflow:visible}
.cycle-lines path {vector-effect:non-scaling-stroke}
.cycle-center {position:absolute;left:50%;top:50%;width:52%;transform:translate(-50%,-50%);text-align:center}
.cycle-center>p {font-family:var(--serif);font-size:clamp(48px,6vw,80px);font-weight:800;line-height:1.5;letter-spacing:.06em;white-space:nowrap}
.cycle-center>span {display:block;position:absolute;top:100%;left:0;right:0;font-size:14px;color:var(--muted);margin-top:16px}
.cycle-diagram {list-style:none;margin:0;padding:0}
.cycle-step {position:absolute;transform:translate(-50%,-50%);width:31%;height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:white;padding:8px}
.cycle-step:nth-child(1) {left:50%;top:12%}
.cycle-step:nth-child(2) {left:82.908965%;top:31%}
.cycle-step:nth-child(3) {left:82.908965%;top:69%}
.cycle-step:nth-child(4) {left:50%;top:88%}
.cycle-step:nth-child(5) {left:17.091035%;top:69%}
.cycle-step:nth-child(6) {left:17.091035%;top:31%}
.cycle-num {display:block;font-family:Arial,sans-serif;font-size:14px;font-weight:400;color:var(--muted);line-height:20px;margin-bottom:12px}
.cycle-step h3 {display:flex;align-items:center;justify-content:center;min-height:64px;font-size:20px;font-weight:600;letter-spacing:0;line-height:1.6}
.cycle-final h3 {font-family:var(--serif);font-size:28px;font-weight:800;color:var(--accent);line-height:1.2}
.cycle-poster figcaption {text-align:center;color:var(--ink);font-size:16px;line-height:1.8;margin:4px 0 0}
.cycle-poster figcaption span {display:block;font-size:12px;color:var(--muted);margin-top:4px}
/* Human presence punctuates the page */
.for-you-wrap {background:var(--ink);color:#f5f4ee}
.for-you {display:grid;grid-template-columns:minmax(0,38fr) minmax(0,62fr);gap:48px;align-items:center}
.for-you figure {grid-column:auto}
.for-you figure img {aspect-ratio:4/5;object-fit:cover;filter:saturate(.8)}
.for-you>div {grid-column:auto;padding:0}
.for-you .section-label {padding:0;color:#ddd}
.for-you .section-label>span:first-child {color:var(--accent-on-dark)}
.for-you h2 {font-size:clamp(32px,3vw,48px);font-weight:650;margin:24px 0}
.concern-list {list-style:none;margin:0;padding:0}
.concern-list li {position:relative;padding:10px 0 10px 24px;border-bottom:1px solid #50574d;font-size:16px;line-height:1.85}
.concern-list li::before {content:'';width:8px;height:1px;background:var(--accent-on-dark);position:absolute;left:0;top:24px}
.for-you-note {font-family:var(--serif);font-size:22px;font-weight:600;line-height:1.85;margin-top:24px}
/* A quieter, consistent reading rhythm */
.process-steps {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;list-style:none;max-width:1040px;margin:0 auto}
.process-steps li {padding-inline:16px;border-left:1px solid var(--line)}
.process-steps li:first-child {padding-left:0;border:0}
.process-steps li:last-child {padding-right:0}
.process-steps li>span {font-family:Arial,sans-serif;font-size:13px;font-weight:600;letter-spacing:.07em;color:var(--accent)}
.process-steps h3 {font-family:var(--sans);font-size:21px;line-height:1.65;font-weight:650;margin-top:12px}
.process-steps p {font-size:16px;color:var(--muted);line-height:1.85;margin-top:12px}
.faq {border-top:1px solid var(--line)}
.faq .section-heading {margin-bottom:0}
.faq-list {max-width:1060px;margin-inline:auto;border-top:1px solid var(--line)}
.faq-list details {border-bottom:1px solid var(--line)}
.faq-list summary {list-style:none;display:flex;align-items:baseline;gap:24px;position:relative;padding:16px 40px 16px 0;font-size:17px;font-weight:600;line-height:1.8;cursor:pointer}
.faq-list summary::-webkit-details-marker {display:none}
.faq-list summary>span {font-family:var(--serif);font-size:24px;font-weight:600;color:var(--accent)}
.faq-list summary::after {content:'+';position:absolute;right:0;top:15px;font-size:24px;font-weight:400}
.faq-list details[open] summary::after {content:'−'}
.faq-list details>p {font-size:16px;line-height:2;color:var(--muted);padding:0 40px 24px 52px;max-width:850px}
/* Reservation: one clear action */
.reservation-wrap {background:var(--paper)}
.preview-notice {padding:16px 20px;border-left:2px solid var(--accent);background:var(--paper);font-size:12px;line-height:1.9;color:var(--muted);margin-bottom:16px}
.required-mark,.optional-mark {font-size:11px;margin-left:8px;font-weight:500}
.required-mark {color:var(--accent)}
.optional-mark {color:var(--muted)}
.form-field {margin-top:16px}
.form-field>label {display:block;font-size:15px;font-weight:550;margin-bottom:8px}
.form-field>input,.form-field>textarea {width:100%;max-width:100%;border:1px solid #bfc6b8;border-radius:2px;padding:12px 16px;font-family:var(--sans);font-size:16px;line-height:1.65;min-height:52px;appearance:none;background:#fff;color:var(--ink)}
.form-field>textarea {resize:vertical}
.form-field>input::placeholder,.form-field>textarea::placeholder {font-size:14px;color:#72796b}
.form-field>small {display:block;font-size:12px;color:var(--muted);margin-top:8px}
.form-two {display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field-error {display:block;font-size:12px;line-height:1.7;color:var(--accent);margin-top:8px}
.field-error:empty {display:none}
[aria-invalid=true] {border-color:var(--accent)!important}
.privacy-copy {font-size:12px;line-height:1.95;color:var(--muted);margin-top:24px}
.privacy-copy details {margin-top:8px}
.privacy-copy summary,.privacy-copy>a {cursor:pointer;text-decoration:underline;text-underline-offset:4px;color:var(--ink)}
.privacy-copy details p {margin-top:16px}
.consent-label {display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.9;cursor:pointer;margin-top:24px}
.consent-label input {width:20px;height:20px;margin:3px 0 0;flex-shrink:0;accent-color:var(--accent)}
.form-status {font-size:14px;line-height:1.9;color:var(--accent);margin-top:16px}
.form-status:empty {display:none}
.form-submit {width:100%;margin-top:24px;min-height:60px;padding-block:16px;font-size:16px}
.closing {text-align:center;padding:52px var(--gutter) 32px}
.closing h2 {font-family:var(--serif);font-size:clamp(44px,4.15vw,60px);font-weight:600;line-height:1.5;letter-spacing:.02em;margin:0}
.closing h2 strong {font-weight:800}
.closing .button {margin-top:24px;min-height:52px;min-width:280px;padding:12px 24px;font-size:15px}
.site-footer {border-top:1px solid var(--line);padding-block:40px;display:flex;align-items:center;gap:32px}
.site-footer .wordmark {font-size:24px}
.site-footer p,.site-footer small {font-size:12px}
.site-footer small {color:var(--muted);margin-left:auto}
/* Existing form behavior, with the new hierarchy */
dialog {padding:0;border:0;border-radius:2px;max-width:720px;width:calc(100% - 40px);max-height:85dvh;color:var(--ink);box-shadow:0 24px 96px #0003}
dialog::backdrop {background:#20251ee0}
.dialog-inner {padding:40px;position:relative}
.dialog-close {position:absolute;top:16px;right:16px;border:0;width:40px;height:40px;background:transparent;color:var(--muted);font-size:28px}
.dialog-inner .eyebrow {font-size:12px;color:var(--accent)}
.dialog-inner h2 {font-family:var(--serif);font-size:32px;font-weight:700;margin-top:24px}
.dialog-inner>p:not(.eyebrow) {font-size:14px;margin-top:24px}
#confirmation-values {margin:32px 0}
#confirmation-values dt {font-size:12px;color:var(--muted);margin-top:24px}
#confirmation-values dd {margin:8px 0 0;padding-bottom:16px;border-bottom:1px solid var(--line);font-size:16px;white-space:pre-wrap;overflow-wrap:anywhere}
.dialog-actions {display:flex;gap:16px;flex-wrap:wrap}
.dialog-actions .button {font-size:14px;flex:1;min-width:200px;min-height:64px}
.reveal {transition:opacity .55s,transform .55s}
.reveal.awaiting-reveal {opacity:0;transform:translateY(12px)}
.about-intro {padding-top:64px;padding-bottom:28px}
.process {padding-bottom:24px}
.faq {padding-top:24px;padding-bottom:40px}
.circulation {padding-block:32px 8px}
.circulation .section-heading h2 {max-width:1100px}
.circulation .section-intro {margin-top:12px}
.form-required-note {font-size:12px;color:var(--muted);text-align:right}
.form-required-note .required-mark {margin-left:0}
/* Each category is a horizontal story, with all three columns centered vertically. */
.services {text-align:center;padding-bottom:36px}
.services .section-heading h2,.services .section-intro {margin-inline:auto}
.services .section-heading h2 {max-width:1100px}
.service-list {width:100%;margin-inline:auto}
.service-row {display:grid;grid-template-columns:minmax(288px,.8fr) minmax(0,1.2fr) clamp(300px,23vw,320px);gap:32px;align-items:center;padding-block:80px;border-top:1px solid var(--line);text-align:left}
.service-row-sales {padding-block:64px}
.service-category,.service-details {width:100%;min-width:0}
.service-detail>p {max-width:640px}
.large-number {display:block;font-family:Arial,sans-serif;font-size:16px;line-height:1.5;color:var(--accent);margin-bottom:8px}
.service-category h3 {font-family:var(--serif);font-size:36px;font-weight:700;line-height:1.5;letter-spacing:0}
.service-category>p {font-size:16px;line-height:1.8;color:var(--muted);margin-top:8px}
.service-category>p br {display:block}
.service-details {margin-top:0}
.service-detail h4 {font-size:22px;line-height:1.5;font-weight:700;letter-spacing:0}
.service-detail .service-title-link {color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em}
.service-detail .service-title-link:hover {color:var(--accent)}
.service-detail p {font-size:16px;line-height:1.7;color:var(--muted);margin-top:4px;text-wrap:pretty}
.service-detail .service-tagline {font-weight:550;color:var(--ink);margin-top:4px}
.service-detail+.service-detail {margin-top:40px}
.service-row-sales .service-detail+.service-detail {margin-top:32px}
.service-photo {width:100%;aspect-ratio:4/3;margin:0;justify-self:center}
.service-photo img {width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 45%;filter:saturate(.85)}
.service-photo img[src*="cost-review"] {object-position:50% 30%}
.service-photo img[src*="assistant"] {object-position:50% 25%}
.reinvest-flow {display:flex;gap:20px;list-style:none;padding:0;margin:16px auto 0;max-width:460px}
.reinvest-flow li {flex:1;position:relative;font-size:12px;line-height:1.7;text-align:center;padding:8px 0}
.reinvest-flow li:not(:last-child)::after {content:'→';position:absolute;right:-17px;color:var(--accent)}
.reinvest-flow li:last-child {color:var(--accent);font-weight:600}
.task-list {font-size:13px!important;line-height:1.9!important;margin-top:16px!important}
.service-detail .small-note {font-size:12px;margin-top:12px}
/* Keep the new offerings readable within the existing three-column stories. */
.service-expanded .service-tagline {margin-top:8px}
.service-description {margin-top:16px}
.service-description p+p {margin-top:12px}
.service-detail .service-availability,.service-detail .service-budget {margin-top:16px}
.service-detail .service-availability {font-weight:600;color:var(--ink)}
.service-more {margin-top:20px;border-block:1px solid var(--line)}
.service-more summary {position:relative;list-style:none;cursor:pointer;padding:14px 28px 14px 0;font-size:15px;line-height:1.7;font-weight:600;color:var(--ink)}
.service-more summary::-webkit-details-marker {display:none}
.service-more summary::after {content:'+';position:absolute;right:0;top:12px;font-size:22px;font-weight:400;color:var(--accent)}
.service-more[open] summary::after {content:'−'}
.service-more-content {padding-bottom:20px}
.service-support-types {margin:0}
.service-support-types>div+div {margin-top:20px}
.service-support-types dt {font-size:16px;font-weight:700;line-height:1.7;color:var(--ink)}
.service-support-types dd {margin:8px 0 0;font-size:16px;line-height:1.7;color:var(--muted)}
.service-use-cases {padding-left:1.2em;margin:8px 0 0;font-size:15px;line-height:1.8;color:var(--muted)}
.service-use-cases li+li {margin-top:8px}
.service-expanded .small-note {font-size:13px;line-height:1.8}
/* A single, quiet destination for entering details. */
.reservation {display:block}
.reservation-copy {max-width:850px;margin-inline:auto;text-align:center}
.reservation-copy h2 {font-size:clamp(32px,3vw,44px);font-weight:700;line-height:1.5;margin:var(--opening-gap) 0;letter-spacing:0}
.reservation-copy>p {font-size:16px;line-height:1.85;color:var(--muted);max-width:650px;margin:24px auto 0;text-wrap:pretty}
.form-area {max-width:850px;margin:32px auto 0;background:white;padding:28px 40px}
.faq .section-label h2 {font:inherit;letter-spacing:inherit;margin:0}
.for-you {padding-block:100px}
/* On narrow tablets, keep the photo beside the services below the category heading. */
@media(min-width:761px) and (max-width:1099px) {
 .service-row {grid-template-columns:minmax(0,1fr) 280px;grid-template-areas:"category category" "details photo";gap:32px;padding-block:64px}
 .service-category {grid-area:category}
 .service-details {grid-area:details}
 .service-row>.service-photo {grid-area:photo}
}
/* Tablet: preserve columns until the content needs a single reading lane. */
@media(max-width:1199px) {
 :root {--gutter:40px;--gap:24px}
 :root {--section-space:40px}
 .site-header {height:96px}
 .wordmark {font-size:24px}
 .desktop-nav {gap:16px;font-size:11px}
 .button-small {font-size:11px;padding:16px}
 .hero h1 {font-size:clamp(40px,5.2vw,62px)}
 .hero-subtitle {font-size:15px}
 .hero-description {font-size:14px}
 .hero-description br:first-child {display:none}
 .hero-button {font-size:14px;padding:20px;min-height:68px}
 .hero-photos {min-height:640px}
 .hero .eyebrow {font-size:11px}
 .hero-note {font-size:11px}
 .about-intro h2 {font-size:36px}
 h2 {font-size:40px}
 .belief {padding-top:0}
 .belief,.diagnosis-body,.for-you {gap:32px}
 .belief-copy h2 {font-size:30px}
 .belief-copy p:not(.eyebrow) {font-size:14px}
 .belief-copy .belief-conclusion {font-size:21px!important}
 .diagnosis-heading h2 {font-size:36px}
 .diagnosis-lead {font-size:17px}
 .diagnosis-item h3 {font-size:18px}
 .diagnosis-item p {font-size:14px}
 .diagnosis-actions>.button {font-size:13px}
 .example-plans {gap:24px}
 .for-you h2 {font-size:32px}
 .concern-list li {font-size:13px;padding-block:12px}
 .concern-list li::before {top:24px}
 .for-you-note {font-size:19px}
 .process-steps li {padding-inline:16px}
 .process-steps h3 {font-size:19px}
 .process-steps p {font-size:14px}
 .reservation-copy h2 {font-size:32px}
 .reservation-copy>p {font-size:14px}
 .form-field>label {font-size:14px}
 }
@media(min-width:761px) and (max-width:959px) {
 :root {--gutter:32px;--gap:20px}
 .site-header {gap:24px}
 .wordmark {font-size:22px}
 .desktop-nav {gap:12px;font-size:10px}
 .button-small {font-size:10px;padding:12px}
 .hero h1 {font-size:4.9vw}
 .hero-subtitle {font-size:14px}
 .hero-description {font-size:13px}
 .hero-button {font-size:12px;padding-inline:16px}
 .hero .eyebrow {font-size:10px;gap:8px}
 .hero-photos {min-height:620px}
 .photo-caption {font-size:9px}
 h2,.about-intro h2,.diagnosis-heading h2 {font-size:32px}
 .section-intro,.intro-heading p {font-size:15px}
 .belief-copy h2 {font-size:26px}
 .belief-copy p:not(.eyebrow) {font-size:13px}
 .belief-copy .belief-conclusion {font-size:19px!important}
 .belief-copy .eyebrow {font-size:11px}
 .brand-message {font-size:60px}
 .brand-inner {padding-left:0}
 .diagnosis-lead {font-size:17px}
 .diagnosis-item h3 {font-size:16px}
 .diagnosis-item p {font-size:14px}
 .diagnosis-actions>.button {font-size:11px;padding-inline:8px}
 .example-plans {gap:20px}
 .example-plans h3 {font-size:27px}
 .example-plans p {font-size:13px}
 .example-plans li {font-size:12px}
 .for-you h2 {font-size:27px}
 .for-you-note {font-size:17px}
 .process-steps {grid-template-columns:repeat(2,1fr);gap:40px 24px}
 .process-steps li {padding-inline:24px}
 .process-steps li:nth-child(3) {padding-left:0;border-left:0}
 .process-steps li:nth-child(2) {padding-right:0}
 .process-steps h3 {font-size:22px}
 .process-steps p {font-size:15px}
 .reservation-copy h2 {font-size:28px}
 .form-field>label {font-size:13px}
}
/* Mobile: the same hierarchy, deliberate line breaks, no miniature desktop text. */
@media(max-width:760px) {
 :root {--gutter:24px;--gap:16px}
 html {scroll-padding-top:24px}
 body {font-size:15px;line-height:1.95}
 .desktop-only,.desktop-nav {display:none}
 .mobile-only {display:block}
 :root {--section-space:40px}
 .section-heading,.about-intro,.diagnosis {display:block}
 .section-heading {margin-bottom:24px}
 h2 {font-size:32px;line-height:1.65;letter-spacing:0}
 .section-intro {font-size:16px;line-height:1.85;margin-top:24px}
 .eyebrow {font-size:11px;gap:12px;letter-spacing:.04em}
 .short-rule {width:24px}
 .button {min-height:68px;padding:20px 16px;font-size:14px}
 .small-note {font-size:12px}
 figcaption {font-size:11px;line-height:1.85;margin-top:12px}
 .site-header {height:88px;width:calc(100% - 48px);gap:24px}
 .wordmark {font-size:23px}
 .wordmark small {font-size:9px;margin-top:8px}
 .menu-toggle {display:flex;flex-direction:column;justify-content:center;gap:8px;background:transparent;border:0;width:44px;height:44px;padding:10px}
 .menu-toggle span {height:1px;width:24px;background:var(--ink);transition:transform .2s}
 .menu-toggle[aria-expanded=true] span:first-child {transform:translateY(4.5px) rotate(45deg)}
 .menu-toggle[aria-expanded=true] span:last-child {transform:translateY(-4.5px) rotate(-45deg)}
 .mobile-nav {position:absolute;top:88px;left:-24px;right:-24px;background:#fff;padding:24px 24px 40px;box-shadow:0 20px 20px #22272212;display:flex;flex-direction:column;gap:24px}
 .mobile-nav>a:not(.button) {font-size:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}
 .hero {display:flex;flex-direction:column;align-items:stretch;padding:8px 0 0;gap:0}
 .hero-copy {padding:24px 0 40px}
 .hero .eyebrow {font-size:11px}
 .hero h1 {font-size:clamp(32px,9.5vw,64px);font-weight:700;line-height:1.6;letter-spacing:0;margin:24px 0}
 .hero-subtitle {font-size:15px;line-height:1.95;margin-bottom:24px}
 .hero-description {font-size:13px;line-height:2}
 .hero-description br:first-child {display:block}
 .hero-button {width:100%;font-size:13px;min-height:72px;padding:20px 12px;margin-top:32px}
 .hero-note {font-size:11px;line-height:1.9;margin-top:16px}
 .hero-visual {width:calc(100% + 24px);margin:0}
 .hero-photos {height:440px;min-height:0;flex:auto;grid-template-columns:1.12fr 1fr;gap:6px}
 .hero-chef {object-position:50% 46%}
 .hero-stylist {object-position:50% 39%}
 .hero-florist {object-position:50% 42%}
 .photo-caption {font-size:10px;margin-top:12px;padding-right:24px;gap:8px}
 .about-intro h2 {font-size:clamp(25px,6.1vw,36px);line-height:1.8}
 .intro-heading p {font-size:16px;line-height:1.9;margin-top:24px}
 .belief {display:flex;flex-direction:column;gap:32px;padding-top:0}
 .belief-photo {width:100%}
 .belief-photo img {aspect-ratio:4/3;object-position:50% 58%}
 .belief-copy {padding:0;width:100%}
 .belief-copy .eyebrow {font-size:12px;margin-bottom:16px}
 .belief-copy h2 {font-size:clamp(29px,7.4vw,46px);line-height:1.6;margin-bottom:24px}
 .belief-copy p:not(.eyebrow) {font-size:16px;line-height:1.85;margin-top:16px}
 .belief-copy .belief-conclusion {font-size:23px!important;line-height:1.9;margin-top:24px!important}
 .brand-statement {padding-block:64px}
 .brand-inner {padding:0}
 .brand-statement .eyebrow {font-size:12px}
 .brand-message {font-size:clamp(32px,8.4vw,60px);line-height:1.95;letter-spacing:.01em;margin-block:24px}
 .brand-note {font-size:12px;letter-spacing:.03em}
 .diagnosis-heading h2 {font-size:clamp(25px,6.6vw,40px);line-height:1.75;letter-spacing:0}
 .keep-together {white-space:nowrap}
 .diagnosis-heading>p:last-child {font-size:16px;line-height:1.85;margin-top:24px}
 .diagnosis-body {display:flex;flex-direction:column;gap:24px;margin-top:24px}
 .diagnosis-photo {width:100%}
 .diagnosis-photo img {aspect-ratio:4/3;object-position:50% 32%}
 .diagnosis-content {padding:0;width:100%}
 .diagnosis-lead {font-size:16px;line-height:1.85;margin-bottom:16px}
 .diagnosis-item {gap:16px;padding-block:16px}
 .item-number {font-size:14px}
 .diagnosis-item h3 {font-size:19px;line-height:1.7}
 .diagnosis-item p {font-size:16px;line-height:1.85;margin-top:12px}
 .diagnosis-disclaimer {font-size:11px;line-height:1.95;margin:8px 0 16px}
 .diagnosis-actions>.button {font-size:12px;padding-inline:8px;min-height:72px}
 .diagnosis-actions>.small-note {font-size:11px}
 .example-plans {display:flex;flex-direction:column;gap:32px;max-width:480px}
 .example-plans article {display:grid;grid-template-columns:40% minmax(0,1fr);grid-template-areas:"photo label" "photo title" "description description" "services services";gap:16px 24px}
 .example-plans .example-photo {grid-area:photo;align-self:center}
 .example-plans .example-copy {display:contents}
 .example-plans .example-label {grid-area:label;align-self:end}
 .example-plans .example-copy h3 {grid-area:title;align-self:start;font-size:clamp(20px,5.8vw,24px);line-height:1.4;margin:0}
 .example-plans .example-copy p {grid-area:description;margin:0}
 .example-plans .example-copy ul {grid-area:services;margin:0;padding-top:12px}
 .example-photo img {aspect-ratio:4/3;object-position:50% 30%}
 .example-copy {padding-top:16px}
 .example-label {font-size:12px}
 .example-plans h3 {font-size:26px;margin-top:4px}
 .example-plans p {font-size:16px;margin-top:8px}
 .example-plans ul {margin-top:16px;padding-top:12px}
 .example-plans li {font-size:13px}
 .examples-note {text-align:left;font-size:11px;margin-top:32px}
 .for-you {display:flex;flex-direction:column;gap:32px}
 .for-you figure {width:100%}
 .for-you figure img {aspect-ratio:4/3;object-position:50% 50%}
 .for-you>div {width:100%;padding:0}
 .for-you .for-you h2 {font-size:30px;line-height:1.75;margin:32px 0}
 .concern-list li {font-size:16px;line-height:1.8;padding:12px 0 12px 20px}
 .concern-list li::before {top:26px;width:6px}
 .for-you-note {font-size:21px;line-height:1.9;margin-top:32px}
 .process-steps {display:block}
 .process-steps li,.process-steps li:first-child,.process-steps li:last-child {display:grid;grid-template-columns:64px 1fr;gap:12px 16px;padding:20px 0;border-left:0;border-bottom:1px solid var(--line)}
 .process-steps li:first-child {border-top:1px solid var(--line)}
 .process-steps li>span {grid-area:1/1;font-size:11px;margin-top:7px}
 .process-steps h3 {grid-area:1/2;font-size:22px;line-height:1.7;margin:0}
 .process-steps p {grid-area:2/2;font-size:16px;line-height:1.85;margin:0}
 .faq-list summary {font-size:16px;gap:16px;padding:16px 32px 16px 0;line-height:1.8}
 .faq-list summary>span {font-size:22px}
 .faq-list summary::after {font-size:23px;top:16px}
 .faq-list details>p {font-size:16px;line-height:1.85;padding:0 16px 24px 40px}
 .reservation-copy h2 {font-size:30px;line-height:1.6;margin:var(--opening-gap) 0 24px}
 .reservation-copy>p {font-size:16px;line-height:1.85;margin-top:16px}
 .preview-notice {padding:16px;font-size:12px;line-height:1.9;margin-bottom:24px}
 .form-field {margin-top:16px}
 .form-field>label {font-size:14px;margin-bottom:8px}
 .form-field>input,.form-field>textarea {font-size:16px;line-height:1.75;padding:12px;min-height:54px}
 .form-field>input::placeholder,.form-field>textarea::placeholder {font-size:13px}
 .form-field>small {font-size:11px}
 .form-two {display:block}
 .privacy-copy {font-size:11px;margin-top:24px}
 .consent-label {font-size:12px;gap:8px;line-height:1.9;margin-top:24px}
 .consent-label input {width:18px;height:18px;margin-top:2px}
 .form-submit {font-size:15px;margin-top:24px}
 .closing {padding:40px 24px 26px}
 .closing h2 {font-size:clamp(28px,8vw,50px);line-height:1.6;letter-spacing:0;margin:0}
 .closing .button {width:auto;max-width:100%;min-width:240px;min-height:48px;padding:12px 20px;font-size:14px;margin-top:24px}
 .site-footer {padding-block:32px;flex-wrap:wrap;gap:24px}
 .site-footer .wordmark {font-size:23px}
 .site-footer p {font-size:10px}
 .site-footer small {margin:0;flex-basis:100%;font-size:11px}
 .dialog-inner {padding:32px 24px}
 .dialog-inner h2 {font-size:27px}
 .dialog-inner>p:not(.eyebrow) {font-size:13px}
 .dialog-close {top:8px;right:8px}
 #confirmation-values dd {font-size:15px}
 .dialog-actions {flex-direction:column}
 .dialog-actions .button {width:100%;flex:auto}
}
@media(max-width:359px) {
 :root {--gutter:20px}
 .hero h1 {font-size:9.5vw}
 .hero-description {font-size:12px}
 .brand-message {font-size:29px}
 .hero-button,.diagnosis-actions>.button,.closing .button {font-size:11px}
 .hero-note {font-size:10px}
 .hero-visual {width:calc(100% + 20px)}
 .hero-photos {height:380px}
 .hero .eyebrow {font-size:10px;gap:8px}
 .belief-copy h2 {font-size:27px}
 .belief-copy .belief-conclusion {font-size:21px!important}
 .diagnosis-heading h2 {font-size:23px}
 .diagnosis-lead {font-size:17px}
 .diagnosis-item h3 {font-size:18px}
 .reservation-copy h2 {font-size:28px}
 .for-you h2 {font-size:27px}
}
@media(max-width:1199px) {
 .cycle-step {height:120px}
 .cycle-step h3 {font-size:19px;min-height:64px}
 .cycle-final h3 {font-size:27px}
}
@media(max-width:760px) {
 .cycle-poster {margin-inline:-12px}
 .cycle-stage {margin-block:0}
 .cycle-lines {transform:scale(.82);transform-origin:center}
 .cycle-step {width:33%;height:88px;padding:2px;background:transparent}
 .cycle-step h3,.cycle-num {background:#fff}
 .cycle-num {font-size:11px;line-height:16px;margin-bottom:8px}
 .cycle-step h3 {font-size:clamp(11px,3.3vw,19px);min-height:48px;line-height:1.6}
 .cycle-final h3 {font-size:clamp(16px,4.5vw,27px);line-height:1.35}
 .cycle-center>p {font-size:clamp(30px,8.5vw,52px);letter-spacing:.025em}
 .cycle-center>span {font-size:10px;line-height:1.8;margin-top:8px}
 .cycle-poster figcaption {font-size:13px;margin-top:8px;padding-inline:12px}
 .cycle-poster figcaption span {font-size:11px;line-height:1.9;margin-top:8px}
}
@media(min-width:761px) and (max-width:1199px) {
 .diagnosis-body {gap:0 32px}
 .diagnosis-content {display:contents}
 .diagnosis-photo {grid-column:1;grid-row:1/4;align-self:center}
 .diagnosis-lead,.diagnosis-item {grid-column:2}
 .diagnosis-actions {grid-column:1/-1;margin-top:24px}
 .diagnosis-actions>.button {font-size:16px;min-height:68px}
 .diagnosis-disclaimer {margin-bottom:16px}
 .selection h2,.circulation h2,.process h2 {font-size:36px}
}
@media(max-width:760px) {
 .selection h2,.circulation h2,.process h2 {font-size:28px;line-height:1.6}
 .circulation .section-heading {margin-bottom:0}
}
@media(max-width:760px) {
 .about-intro {padding-top:56px}
 .faq {padding-block:24px 40px}
 .service-list {max-width:600px}
 .service-row {grid-template-columns:minmax(0,1fr);gap:16px;padding-block:24px}
 .service-category h3 {font-size:30px}
 .service-category>p br {display:block}
 .service-details {margin-top:0}
 .service-detail h4 {font-size:22px}
 .service-detail+.service-detail {margin-top:32px}
 .service-detail p {text-align:left}
 .service-detail .service-tagline {text-align:left}
 .service-photo {width:min(260px,100%);margin-top:8px}
 .service-detail .small-note {text-align:left}
 .reinvest-flow {gap:16px}
 .reinvest-flow li {font-size:11px}
 .reinvest-flow li:not(:last-child)::after {right:-14px}
 .reservation-copy h2 {font-size:30px}
 .reservation-copy>p {text-align:left}
 .form-area {margin-top:32px;padding:24px 20px}
 .for-you {padding-block:48px}
 .process-steps li,.process-steps li:first-child,.process-steps li:last-child {padding-block:16px;row-gap:8px}
}
@media(max-width:359px) {
 .service-category h3 {font-size:28px}
 .reservation-copy h2 {font-size:27px}
 .form-area {padding:24px 16px}
}
@media(prefers-reduced-motion:reduce) {
 html {scroll-behavior:auto}
 *,*::before,*::after {transition:none!important;animation:none!important}
 .reveal.awaiting-reveal {opacity:1;transform:none}
}
@media print {
 .desktop-nav,.mobile-nav,.menu-toggle,.skip-link,dialog {display:none!important}
 .section {padding-block:40px}
 .hero-photos {min-height:580px}
 .brand-statement,.for-you-wrap {background:white;color:var(--ink)}
 .brand-statement .eyebrow,.brand-note,.for-you .section-label {color:var(--muted)}
 .brand-human,.for-you .section-label>span:first-child {color:var(--accent)}
 .button {background:white;color:var(--ink);border-color:var(--ink)}
 .reveal {opacity:1!important;transform:none!important}
 .service-row,.cycle-poster,.example-plans article,.process-steps li {break-inside:avoid}
 .site-footer {padding-bottom:24px}
 body {-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
