/* Supporting pages: quiet editorial rhythm, readable service information. */
.story-page .story-hero {
  background:var(--pink); color:var(--paper); padding:88px 6% 82px;
  min-height:470px;
}
.story-page .story-hero-content {max-width:850px}
.story-page .story-hero h1 {
  font-size:clamp(52px,6.5vw,88px); line-height:1.02;
  letter-spacing:-.035em; color:var(--paper);
}
.story-page .story-hero h1 em {color:#e7c7aa; letter-spacing:-.025em}
.story-page .story-hero-lede {max-width:450px; font-size:15px; line-height:1.85; color:#efe1d5; margin:26px 0 32px}
.story-page .story-hero .eyebrow {color:#e7c7aa; margin-bottom:24px}
.story-page .story-down {display:inline-flex; align-items:center; min-height:44px; font-size:10px; letter-spacing:.12em}
.story-page .hero-mark {right:6%; bottom:48px; width:108px; height:108px; color:#e7c7aa; border-color:#b87877}
.story-page .story-editorial {max-width:1400px; padding-block:92px 96px}
.story-page .story-editorial-row {gap:10%; margin-bottom:88px; grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.story-page .story-editorial-row:last-child {margin-bottom:0}
.story-page .story-editorial-image {height:420px; padding-bottom:43px; background:#e8e0d2; overflow:hidden}
.story-page .story-editorial-image img {display:block; min-height:0}
.story-page .story-editorial-image figcaption,
.story-page .story-editorial-row:nth-child(3) .story-editorial-image figcaption {
  left:0; right:0; bottom:0; min-height:43px; align-items:center; gap:18px;
  padding:10px 0; background:var(--paper); color:var(--muted);
  text-shadow:none; font-size:9px; letter-spacing:.08em;
  border-bottom:1px solid var(--line);
}
.story-page .story-editorial-copy {min-width:0}
.story-page .story-editorial-copy .eyebrow {margin:0 0 20px; color:var(--pink)}
.story-page .story-editorial-copy h2 {font-size:clamp(36px,3.8vw,54px); line-height:1.08; letter-spacing:-.025em; margin-bottom:24px}
.story-page .story-editorial-copy>p:not(.eyebrow) {font-size:14px; line-height:1.95; max-width:440px; margin:0}
.story-page .story-editorial-image .meaning-mark {font-size:170px; text-shadow:none}
.story-page .story-editorial-image .meaning-caption {bottom:100px; color:var(--pink); letter-spacing:.18em; font-size:10px}
.story-page .trait-list {gap:0 20px; margin-top:24px; display:flex; flex-wrap:wrap}
.story-page .trait-list span {padding:8px 0; background:none; border:0; border-radius:0; font-size:11px; color:var(--pink)}
.story-page .story-audience {background:#e8dfd0; padding:80px 6% 88px}
.story-page .story-audience h2 {font-size:clamp(44px,5vw,66px); line-height:1.05; letter-spacing:-.025em}
.story-page .story-audience>p:not(.eyebrow) {font-size:14px; line-height:1.9; max-width:430px; margin:24px auto 28px}
.story-page .audience-flower {opacity:.12; mix-blend-mode:multiply}

.help-page .help-main {max-width:1320px; padding:90px 6% 100px}
.help-page .faq-main {display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); column-gap:10%; align-items:start}
.faq-main .help-intro {text-align:left; margin:0}
.faq-main .help-intro h1 {font-size:clamp(46px,4.5vw,64px); line-height:1.06; letter-spacing:-.025em}
.faq-main .help-intro>p:last-child {margin:24px 0 0; font-size:14px; line-height:1.9; max-width:320px; color:var(--muted)}
.faq-main .faq-list {gap:0; min-width:0}
.faq-main .faq-item summary {padding:24px 52px 24px 0; min-height:76px; font-size:15px; line-height:1.65; color:var(--ink)}
.faq-main .faq-item summary:after {right:0; width:32px; height:32px; border-radius:0; background:none; color:var(--pink); font-size:22px}
.faq-main .faq-item[open] summary:after {background:none; color:var(--pink)}
.faq-main .faq-answer {padding:0 40px 26px 0; color:var(--muted)}
.faq-main .faq-answer p {font-size:13px; line-height:1.95}
.faq-main .help-endnote {grid-column:2; text-align:left; margin-top:30px; font-size:12px; line-height:1.8}
.help-page .contact-main {display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); column-gap:10%; align-items:start}
.contact-main .contact-intro {margin:0}
.contact-main .contact-intro h1 {font-size:clamp(54px,5vw,72px); color:var(--pink); letter-spacing:-.025em; line-height:1.05}
.contact-main .contact-lede {font-size:14px; line-height:1.95; max-width:320px; margin-top:26px; color:var(--muted)}
.contact-main .contact-lede strong {font-weight:400; color:var(--ink)}
.contact-main .contact-lede a,.contact-main .contact-direct a {color:var(--pink)}
.contact-main .contact-form {gap:23px 18px; min-width:0}
.contact-main .contact-form label {font-size:11px; color:var(--ink); gap:10px}
.contact-main .contact-form input,.contact-main .contact-form textarea {
  border:1px solid #b6a99a; background:#faf7f0; color:var(--ink);
  padding:14px 16px; min-height:54px; font-size:16px; border-radius:0;
}
.contact-main .contact-form input::placeholder,.contact-main .contact-form textarea::placeholder {color:#786d61}
.contact-main .contact-form textarea {min-height:160px}
.contact-main .contact-form input:focus,.contact-main .contact-form textarea:focus {border-color:var(--pink); box-shadow:none}
.contact-main .contact-submit {background:var(--pink); border-radius:0; font-size:12px; padding:0 22px; min-height:54px; min-width:220px}
.contact-main .contact-submit:hover {background:#59202a; transform:none}
.contact-main .contact-submit:disabled {opacity:.5; cursor:not-allowed}
.contact-main .contact-form-note {font-size:11px; line-height:1.85; color:var(--muted); max-width:440px}
.contact-main .contact-direct {grid-column:2; margin-top:32px; padding-top:22px; gap:12px 18px; line-height:1.8}
.contact-main .contact-direct span {color:var(--muted); font-size:9px}
.contact-main .contact-direct span:nth-of-type(2) {margin-left:0}
.contact-main .contact-draft {padding:26px 0 0; margin-top:8px; background:none; border:0; border-top:1px solid var(--line)}
.contact-main .contact-draft h2 {font-size:30px; line-height:1.15; color:var(--pink); letter-spacing:-.02em}
.contact-main .contact-draft p {font-size:12px; line-height:1.85}
.contact-main .contact-draft p a {text-decoration:underline; text-underline-offset:3px; color:var(--pink)}
.contact-main .contact-draft textarea {min-height:230px; line-height:1.8; font-size:13px}
.contact-main .contact-draft-actions {gap:10px; flex-wrap:wrap}
.contact-main .contact-draft-actions .button {font-size:11px; padding-inline:16px; min-width:160px}

.tour-page .events-hero {padding-block:72px 80px; gap:9%; grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.tour-page .events-hero h1 {font-size:clamp(50px,5.8vw,80px); line-height:1.04; letter-spacing:-.03em; color:var(--pink)}
.tour-page .events-hero>img {height:450px; object-position:center}
.tour-page .events-hero p:not(.eyebrow) {font-size:14px; line-height:1.9; margin:26px 0 30px}
.tour-page .events-schedule {padding-block:80px 88px; gap:9%; background:#eae3d6}
.tour-page .schedule-copy h2 {font-size:clamp(44px,4.5vw,62px); line-height:1.05; letter-spacing:-.025em}
.tour-page .schedule-copy>p:not(.eyebrow) {max-width:360px; line-height:1.9; font-size:14px}
.tour-page .calendar-head {padding:25px 26px}
.tour-page .calendar-head>div:first-child {min-width:0}
.tour-page .calendar-controls {flex-shrink:0}
.tour-page .calendar-controls button {min-width:44px; min-height:44px}
.tour-page .calendar-head h3 {line-height:1.3; font-size:22px}
.tour-page .tour-calendar {box-shadow:none; border-color:#bcae9b}
.tour-page .calendar-days {grid-auto-rows:48px}
.tour-page .calendar-empty {font-size:12px; line-height:1.9}
.tour-page .event-details {background:#e7dccb; padding-block:26px}
.tour-page .tour-event-close {min-width:44px; min-height:44px}
.tour-page .event-details h3 {line-height:1.5; font-size:18px}
.tour-page .event-details a {min-height:44px; display:inline-flex; align-items:center; margin-top:5px}
.tour-page .past-events {padding-block:80px 90px}
.tour-page .past-events h2 {font-size:clamp(36px,3.6vw,50px); letter-spacing:-.025em}
.tour-page .event-photo-rail {gap:28px; scroll-snap-type:x proximity}
.tour-page .event-photo-rail img {height:auto; aspect-ratio:1.06; object-fit:cover}
.tour-page .event-photo-rail figcaption {padding:16px 0 10px; border-bottom:1px solid var(--line); font-size:11px}
.tour-page .event-photo-rail:focus-visible {outline:2px solid var(--pink); outline-offset:6px}

@media(max-width:1050px) {
  .story-page .hero-mark {display:none}
  .help-page .faq-main,.help-page .contact-main {column-gap:6%; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
  .contact-main .contact-form {grid-template-columns:1fr}
  .contact-main .contact-direct {display:grid; grid-template-columns:auto minmax(0,1fr); font-size:11px}
  .contact-main .contact-direct a {overflow-wrap:anywhere}
}
/* Give service content and the seven-column calendar room on tablets. */
@media(min-width:751px) and (max-width:950px) {
  .help-page .help-main {padding-block:64px 72px; display:block}
  .faq-main .help-intro,.contact-main .contact-intro {margin-bottom:40px; max-width:620px}
  .faq-main .help-intro>p:last-child,.contact-main .contact-lede {max-width:520px}
  .contact-main .contact-form {grid-template-columns:1fr 1fr; max-width:700px}
  .contact-main .contact-direct {max-width:700px; grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr)}
  .contact-main .contact-draft-actions {flex-direction:row}
  .contact-main .contact-draft-actions .button {min-width:0}
  .story-page .story-hero {min-height:0; padding-block:64px 70px}
  .story-page .story-editorial {padding-block:64px 70px}
  .story-page .story-editorial-row {gap:6%; margin-bottom:62px}
  .story-page .story-editorial-row:last-child {margin-bottom:0}
  .story-page .story-editorial-image {height:370px}
  .story-page .story-editorial-copy h2 {font-size:34px; line-height:1.12}
  .story-page .story-editorial-copy>p:not(.eyebrow) {font-size:13px; line-height:1.85}
  .tour-page .events-hero {padding-block:56px 64px; gap:6%}
  .tour-page .events-hero h1 {font-size:46px}
  .tour-page .events-hero>img {height:360px}
  .tour-page .events-schedule {grid-template-columns:1fr; padding-block:56px 64px; gap:32px}
  .tour-page .schedule-copy h2 br {display:none}
  .tour-page .schedule-copy>p:not(.eyebrow) {max-width:560px}
  .tour-page .tour-calendar {justify-self:start; max-width:640px}
  .tour-page .past-events {padding-block:56px 64px}
  .tour-page .event-photo-rail figure {flex-basis:46%; min-width:0}
}
@media(max-width:750px) {
  .story-page .story-hero {padding:56px 6% 64px; min-height:0}
  .story-page .story-hero h1 {font-size:clamp(42px,10.8vw,64px)}
  .story-page .story-hero-lede {font-size:13px; max-width:350px}
  .story-page .story-editorial {padding-block:48px 58px}
  .story-page .story-editorial-row {grid-template-columns:1fr; gap:26px; margin-bottom:52px}
  .story-page .story-editorial-image {height:350px}
  .story-page .story-editorial-copy h2 {font-size:38px; margin-bottom:18px}
  .story-page .story-editorial-copy .eyebrow {margin-bottom:16px}
  .story-page .story-editorial-copy>p:not(.eyebrow) {font-size:13px}
  .story-page .story-editorial-image figcaption {font-size:8px; gap:12px; line-height:1.5}
  .story-page .story-editorial-image figcaption span {min-width:0; max-width:52%}
  .story-page .story-editorial-image figcaption span:last-child {text-align:right; max-width:48%}
  .story-page .story-audience {padding-block:56px 64px}
  .story-page .story-audience>p:not(.eyebrow) {font-size:13px}
  .help-page .help-main {padding:52px 6% 65px; display:block}
  .faq-main .help-intro,.contact-main .contact-intro {margin-bottom:38px}
  .faq-main .help-intro h1 {font-size:44px}
  .faq-main .faq-item summary {font-size:14px; padding-block:22px; padding-right:45px}
  .faq-main .faq-answer {padding-right:10px}
  .contact-main .contact-intro h1 {font-size:54px}
  .contact-main .contact-lede {max-width:410px; font-size:13px; margin-top:20px}
  .contact-main .contact-submit {width:100%; justify-self:stretch}
  .contact-main .contact-draft-actions .button {width:100%; min-width:0; font-size:13px}
  .contact-main .contact-form label {font-size:12px}
  .contact-main .contact-form-note {font-size:12px}
  .contact-main .contact-draft textarea {font-size:16px; min-height:220px}
  .contact-main .contact-draft h2 {font-size:28px}
  .contact-main .contact-direct a {min-height:44px; display:flex; align-items:center}
  .tour-page .events-hero {grid-template-columns:1fr; gap:30px; padding-block:48px 52px}
  .tour-page .events-hero h1 {font-size:clamp(45px,11vw,62px)}
  .tour-page .events-hero>img {height:auto; aspect-ratio:1.2}
  .tour-page .events-schedule {padding-block:48px 56px; gap:28px}
  .tour-page .schedule-copy h2 {font-size:44px}
  .tour-page .calendar-head {padding:20px 16px; gap:12px}
  .tour-page .calendar-head h3 {font-size:19px}
  .tour-page .calendar-days {grid-auto-rows:44px}
  .tour-page .tour-day {width:100%; max-width:40px; height:40px; font-size:13px}
  .tour-page .past-events {padding-block:48px 56px}
  .tour-page .event-photo-rail {gap:20px}
}
@media(max-width:380px) {
  .story-page .story-editorial-image {height:310px}
  .story-page .story-editorial-copy h2 {font-size:34px}
  .story-page .story-editorial-row {margin-bottom:44px}
  .story-page .story-editorial-row:last-child {margin-bottom:0}
  .story-page .story-editorial-image figcaption {font-size:8px; letter-spacing:.04em}
  .faq-main .help-intro h1 {font-size:40px}
  .contact-main .contact-intro h1 {font-size:48px}
  .contact-main .contact-submit {min-width:0; font-size:13px}
  .tour-page .events-hero h1 {font-size:42px}
  .tour-page .calendar-head {padding-inline:12px; gap:10px}
  .tour-page .calendar-head h3 {font-size:18px; line-height:1.4}
  .tour-page .calendar-kicker {font-size:8px; letter-spacing:.06em}
  .tour-page .calendar-controls {gap:4px}
  .tour-page .calendar-weekdays,.tour-page .calendar-days {padding-inline:8px; gap:3px}
  .tour-page .calendar-legend,.tour-page .calendar-empty,.tour-page .event-details {padding-inline:14px}
  .tour-page .event-details {gap:12px}
  .tour-page .event-details h3 {font-size:16px; overflow-wrap:anywhere}
  .tour-page .event-photo-rail figure {flex-basis:90%}
}
@media(prefers-reduced-motion:reduce) {
  .tour-page .event-photo-rail {scroll-snap-type:none; scroll-behavior:auto}
}

/* Form labels match the order form's reading size. */
.contact-main .contact-form label{font-size:13px;line-height:1.5;gap:9px}
.contact-main .contact-form-note{font-size:12px;line-height:1.8;max-width:480px}
.contact-main .contact-submit{font-size:14px;min-height:54px}
.contact-main .contact-direct{font-size:12px;gap:15px}
.story-page .story-hero h1{letter-spacing:-.015em}
.story-page .story-editorial-copy h2{letter-spacing:-.015em}
.contact-main h1,.help-page .help-intro h1{letter-spacing:-.015em}
.contact-main .contact-channel{border:0;padding:0;margin:0 0 3px;display:flex;flex-wrap:wrap;gap:12px 24px;min-width:0}
.contact-main .contact-channel[hidden]{display:none}
.contact-main .contact-channel>div{display:flex;flex-wrap:wrap;gap:12px}
.contact-main .contact-channel legend{font-size:13px;margin-bottom:12px;color:var(--ink)}
.contact-main .contact-channel label{display:flex;flex-direction:row;align-items:center;gap:10px;min-height:44px;cursor:pointer;padding:8px 14px;border:1px solid var(--line);font-size:13px}
.contact-main .contact-channel label:has(input:checked){border-color:var(--pink);color:var(--pink);background:#7d1f2308}
.contact-main .contact-channel input{width:16px;height:16px;min-height:0;margin:0;padding:0;accent-color:var(--pink);box-shadow:none;flex:0 0 16px}
.contact-main .contact-channel label:focus-within{outline:2px solid var(--pink);outline-offset:3px}

/* Help pages use the same readable scale as ordering, with direct routes to answers. */
.help-page .faq-main,.help-page .contact-main{padding-top:70px;padding-bottom:76px}
.faq-main .help-intro h1,.contact-main .contact-intro h1{font-size:clamp(44px,4.5vw,64px);line-height:1.12;color:var(--pink)}
.faq-main .help-intro>p:last-of-type,.contact-main .contact-lede{font-size:14px;line-height:1.9;margin-top:23px;max-width:350px}
.faq-jump-links{display:flex;align-items:start;flex-direction:column;margin-top:25px;gap:4px}
.faq-jump-links a,.contact-order-link{display:inline-flex;align-items:center;min-height:44px;font-size:12px;line-height:1.7;color:var(--pink);text-decoration:underline;text-underline-offset:5px}
.faq-jump-links a{padding:8px 0}
.contact-order-link{margin-top:16px}
.faq-main .faq-item{scroll-margin-top:0}
.faq-main .faq-item summary::before,.faq-main .faq-item summary::after{content:none}
.faq-main .faq-indicator{position:absolute;right:0;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:32px;height:32px;color:var(--pink);font-size:22px;line-height:1}
.faq-main .faq-indicator::before{content:'+'}
.faq-main .faq-item[open] .faq-indicator::before{content:'−'}
.faq-main .faq-item summary{font-size:15px;padding-block:23px;line-height:1.75}
.faq-main .faq-answer p{font-size:14px;line-height:1.9}
.faq-main .faq-answer a,.faq-main .help-endnote a{display:inline-block;padding-block:9px;min-height:44px}
.contact-main .contact-channel{margin-bottom:0}
.contact-main .contact-channel>div{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.contact-main .contact-channel label{min-height:52px;justify-content:flex-start;padding:12px 15px}
.contact-main .contact-required{font-size:11px;line-height:1.7;color:var(--muted);margin:-5px 0 0}
.contact-main .contact-required span{color:var(--pink)}
.contact-main .contact-form label>span small{font-size:11px;color:var(--muted)}
.contact-main .contact-form label{font-size:12px}
.contact-main .contact-form-note{font-size:12px;line-height:1.85;margin:0;align-self:center}
.contact-main .contact-submit{font-size:13px;min-width:205px}
.contact-main .contact-direct{padding-top:18px;row-gap:4px}
.contact-main .contact-direct a{min-height:44px;display:inline-flex;align-items:center;font-size:12px}
.contact-main .contact-draft-actions .button{font-size:13px;min-height:54px}
.contact-main .contact-draft p{font-size:13px;line-height:1.85}
.contact-main .contact-draft p a{display:inline-flex;align-items:center;min-height:44px}
.contact-main .contact-draft textarea{font-size:14px;line-height:1.85}
@media(max-width:950px){.faq-jump-links{flex-direction:row;flex-wrap:wrap;gap:2px 22px;margin-top:19px}}
@media(max-width:750px){
  .help-page .faq-main,.help-page .contact-main{padding-top:42px;padding-bottom:50px}
  .faq-main .help-intro h1,.contact-main .contact-intro h1{font-size:46px}
  .faq-main .help-intro>p:last-of-type,.contact-main .contact-lede{margin-top:20px;max-width:480px}
  .contact-main .contact-intro{margin-bottom:27px}
  .contact-main .contact-order-link{margin-top:12px}
  .contact-main .contact-form{gap:20px 16px}
  .contact-main .contact-form-note{max-width:none}
  .contact-main .contact-submit{min-width:0;width:100%}
  .faq-main .faq-item summary{font-size:14px;line-height:1.75;padding-right:42px}
  .faq-main .faq-answer{padding-right:15px}
}
