/* Section layouts own their spacing; no absolute positioning or empty image slots. */
.cms-block { min-width: 0; overflow-wrap: anywhere; }
.cms-home-layout { padding-top: 80px; }
.cms-home-layout > .hero { padding-top: 36px; }
.cms-block .kicker { margin: 0 0 14px; color: var(--heading-color); }
.cms-block h2 { font: 400 clamp(30px,3.3vw,48px)/1.1 var(--serif); margin: 0 0 20px; text-wrap: balance; }
.help-body .cms-block h2 { font-size: clamp(28px,2.4vw,34px); }
.cms-block h3 { font: 400 27px/1.2 var(--serif); margin: 16px 0 12px; }
.cms-block figure { margin: 0; min-width: 0; }
.cms-block img { display: block; max-width: 100%; width: 100%; height: auto; border-radius: 2px; }
.cms-block figcaption { color: var(--muted); font-size: 12px; line-height: 1.7; margin-top: 12px; }
.cms-block .help-prose { font-size: 15px; line-height: 1.85; color: var(--text2); }
.cms-block .help-prose p { margin: 0; }
.cms-block .help-prose p + p { margin-top: 16px; }
.cms-block.cms-tone-soft { background: var(--surface); padding: 32px; margin-top: 36px; }
.cms-block.cms-tone-green { --heading-color: #ffffff; background: var(--brand-green); color: #f2eadb; padding: 36px; margin-top: 36px; }
.cms-tone-green :is(.help-prose, figcaption) { color: #d2dccf; }
.cms-tone-green .kicker { color: #efca87; }
.cms-tone-green :is(a, summary) { color: #f2eadb; }
.cms-align-center { text-align: center; }
.cms-align-center .help-prose { max-width: 750px; margin-inline: auto; }
.cms-split { display: grid; grid-template-columns: minmax(0,1fr); align-items: center; gap: 36px; }
.cms-split:has(figure) { grid-template-columns: repeat(2,minmax(0,1fr)); }
.cms-image-left .cms-split:has(figure) .cms-copy { order: 2; }
.cms-split img { max-height: 620px; object-fit: cover; aspect-ratio: 4/5; }
.cms-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,220px),1fr)); gap: 24px; margin-top: 24px; }
.cms-grid article { min-width: 0; }
.cms-grid img { aspect-ratio: 4/3; object-fit: cover; }
.cms-cards .cms-grid article { border: 1px solid var(--hairline); padding: 20px; }
.cms-button { display: inline-flex; gap: 16px; justify-content: center; align-items: center; padding: 14px 22px; background: var(--green); color: var(--on-accent); margin-top: 24px; font-size: 13px; text-decoration: none; max-width: 100%; }
.cms-button:hover { background: var(--green-hover); color: var(--on-accent); }
.cms-tone-green .cms-button { background: #f2eadb; color: var(--brand-green); }
.cms-divider hr { border: 0; border-top: 1px solid var(--hairline); margin: 0; }
.page > .cms-block, .home-main > .cms-block, .shop-page > .cms-block { padding: 56px var(--desktop-gutter,32px); margin: 0; }
.cms-custom-page .help-layout { display: block; }
.cms-custom-page .help-body { max-width: none; }
.cms-menu { position: relative; font-size: 11px; }
.cms-menu summary { cursor: pointer; padding: 12px 0; }
.cms-menu > div { position: absolute; top: 100%; left: 0; width: min(260px,calc(100vw - 40px)); max-height: 60vh; overflow-y: auto; padding: 12px; background: var(--bg); border: 1px solid var(--hairline); box-shadow: 0 12px 30px #0002; z-index: 100; }
.cms-menu > div a { display: block; padding: 12px; overflow-wrap: anywhere; white-space: normal; }
.cms-empty-preview { padding: 40px; text-align: center; border: 1px dashed var(--hairline); }
.story.cms-no-photos { grid-template-columns: minmax(0,1fr); }
.story.cms-no-photos .story__photos { display: none; }
.story__photos:has(.story__main[hidden]) .story__inset { position: relative; inset: auto; width: 100%; height: 100%; }
@media (min-width:901px) { .nav__links:has(.cms-menu) { gap: 12px; } }
@media (max-width:900px) { .page > .cms-block, .home-main > .cms-block, .shop-page > .cms-block { padding: 36px var(--mobile-gutter,20px); } .cms-split:has(figure) { gap: 24px; } .mobile-nav:has(.cms-menu) { overflow: visible; gap: 8px; } .mobile-nav:has(.cms-menu) > a, .mobile-nav .cms-menu { font-size: 10px; letter-spacing: 0; } .mobile-nav .cms-menu > div { left: auto; right: 0; } }
@media (max-width:600px) { .cms-split:has(figure) { grid-template-columns: minmax(0,1fr); } .cms-image-left .cms-split .cms-copy { order: 0; } .cms-block.cms-tone-soft, .cms-block.cms-tone-green { padding: 24px; } }
@media (max-width:900px) { .cms-home-layout { padding-top: var(--mobile-header,104px); } .cms-home-layout > .hero { padding-top: 28px; } }
@media print { .cms-block { break-inside: auto; } .cms-block img { max-height: 300px; object-fit: contain; } }
