/* The Sanctuary — theme layer on top of theme.json. Calm, airy, sand-and-sage. */
:root {
  --sx-radius: 6px;
  --sx-shadow: 0 10px 30px rgba(52, 73, 58, 0.08);
  --sx-ease: cubic-bezier(.2,.7,.2,1);
}
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
img { height: auto; }
::selection { background: var(--wp--preset--color--sage); color: var(--wp--preset--color--forest); }
:focus-visible { outline: 2px solid var(--wp--preset--color--sage-deep); outline-offset: 3px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Header */
/* No backdrop-filter here: it would become the containing block for the mobile menu's fixed overlay and clip it to the header. */
.sx-header { position: sticky; top: 0; z-index: 50; background: rgba(247, 243, 236, 0.97); border-bottom: 1px solid rgba(52, 73, 58, 0.08); }
.sx-header__inner { padding-block: 0.9rem; gap: 1.5rem; }
.sx-brand { gap: 0 !important; }
.sx-brand__name, .sx-brand__name a { font-family: var(--wp--preset--font-family--script); font-size: 2.5rem; line-height: 1; color: var(--wp--preset--color--forest); text-decoration: none; }
.sx-brand__tag { margin: 0.1rem 0 0 0.15rem; font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--wp--preset--color--taupe); }
.sx-nav a { color: var(--wp--preset--color--ink); text-decoration: none; padding-bottom: 0.2rem; border-bottom: 1px solid transparent; transition: border-color .2s var(--sx-ease), color .2s; }
.sx-nav a:hover, .sx-nav a[aria-current="page"], .sx-nav .has-current > .wp-block-navigation-item__content { border-bottom-color: var(--wp--preset--color--sage-deep); color: var(--wp--preset--color--forest); }
.sx-nav .wp-block-navigation__submenu-container { background: var(--wp--preset--color--cream) !important; border: 1px solid rgba(52,73,58,.12) !important; box-shadow: var(--sx-shadow); border-radius: var(--sx-radius); padding: 0.5rem 0.25rem !important; }
.sx-nav .wp-block-navigation__submenu-container a { border-bottom: 0; padding: 0.5rem 1rem; }
.sx-header__cta .wp-block-button__link { padding: 0.7rem 1.3rem; font-size: 0.95rem; }
/* Mobile overlay menu */
.sx-nav .wp-block-navigation__responsive-container.is-menu-open { background-color: var(--wp--preset--color--cream) !important; padding: 5rem 1.75rem 2.5rem; overflow-y: auto; --navigation-layout-justification-setting: flex-start; --navigation-layout-justify: flex-start; --navigation-layout-align: flex-start; }
.sx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content, .sx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container, .sx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; justify-content: flex-start !important; text-align: left; }
.sx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { justify-content: flex-start !important; align-items: flex-start !important; align-self: stretch; }
.sx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; }
.sx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0.25rem; width: 100%; justify-content: flex-start; align-items: flex-start; text-align: left; }
.sx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { justify-content: flex-start; }
.sx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding-left: 0; }
.sx-nav .sx-nav__cta { display: none; }
.sx-nav .wp-block-navigation__responsive-container.is-menu-open .sx-nav__cta { display: flex; margin-top: 1.25rem; border-bottom: 0; }
.sx-nav .wp-block-navigation__responsive-container.is-menu-open .sx-nav__cta .wp-block-navigation-item__content { display: inline-block; background: var(--wp--preset--color--forest); color: var(--wp--preset--color--cream); font-family: var(--wp--preset--font-family--sans); font-size: 1.05rem; font-weight: 500; padding: 0.9rem 1.5rem; border-radius: 4px; }
.sx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid rgba(52,73,58,.12); }
.sx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--serif); font-size: 1.5rem; font-weight: 500; color: var(--wp--preset--color--forest); padding: 0.8rem 0; border-bottom: 0; }
.sx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { background: transparent !important; border: 0 !important; box-shadow: none; padding: 0 0 0.5rem 1rem !important; width: 100%; }
.sx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border-bottom: 0; }
.sx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--sans); font-size: 1.05rem; font-weight: 400; color: var(--wp--preset--color--ink); padding: 0.45rem 0; }
.sx-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none; }
.sx-nav .wp-block-navigation__responsive-container-close { top: 1.1rem; right: 1.25rem; }
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { color: var(--wp--preset--color--forest); }
@media (max-width: 900px) { .sx-header__cta { display: none; } .sx-brand__tag { display: none; } .sx-brand__name, .sx-brand__name a { font-size: 2.1rem; } }

/* Buttons */
.wp-block-button__link { transition: background-color .2s, color .2s, transform .2s var(--sx-ease); }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-forest .wp-block-button__link { background: var(--wp--preset--color--forest); color: var(--wp--preset--color--cream); }
.wp-block-button.is-style-forest .wp-block-button__link:hover { background: var(--wp--preset--color--sage-deep); color: #fff; }
.wp-block-button.is-style-quiet .wp-block-button__link { background: transparent; color: var(--wp--preset--color--forest); padding-left: 0.2rem; padding-right: 0.2rem; border-bottom: 1px solid var(--wp--preset--color--sage-deep); border-radius: 0; }
.wp-block-button.is-style-quiet .wp-block-button__link:hover { background: transparent; color: var(--wp--preset--color--sage-deep); }
.wp-block-button__link::after { content: " →"; opacity: .8; }
.wp-block-button.no-arrow .wp-block-button__link::after { content: none; }

/* Text styles */
.is-style-eyebrow { font-size: 0.74rem !important; letter-spacing: 0.16em; text-transform: uppercase; color: var(--wp--preset--color--sage-deep); font-weight: 500; margin-bottom: 0.75rem; }
.is-style-lede { font-size: 1.25rem !important; line-height: 1.55; font-weight: 300; color: var(--wp--preset--color--ink); }
.is-style-script, h2.is-style-script, h3.is-style-script { font-family: var(--wp--preset--font-family--script) !important; font-weight: 400 !important; font-size: 2.6rem !important; line-height: 1.1; color: var(--wp--preset--color--forest); letter-spacing: 0; }
p.sx-fine { font-size: 0.85rem; color: var(--wp--preset--color--taupe); }
h1 em, h2 em { font-style: italic; font-weight: 400; }
.sx-main h2 + p, .sx-main h3 + p { margin-top: 0.75rem; }

/* Hero (cover block) */
.sx-hero { min-height: 72vh; display: flex; align-items: center; }
.sx-hero .wp-block-cover__inner-container { width: 100%; }
.sx-hero .wp-block-cover__background { opacity: 0.18 !important; }
.sx-hero.is-light .wp-block-cover__background { background: linear-gradient(90deg, rgba(247,243,236,.92) 0%, rgba(247,243,236,.75) 45%, rgba(247,243,236,.15) 75%, rgba(247,243,236,0) 100%) !important; opacity: 1 !important; }
.sx-hero h1 { max-width: 14ch; }
.sx-hero .is-style-lede { max-width: 34rem; }
.sx-hero .sx-hero__note { font-size: 0.85rem; color: var(--wp--preset--color--taupe); margin-top: 0.75rem; }
.sx-hero--page { min-height: 46vh; }
@media (max-width: 782px) {
  .sx-hero { min-height: 0; padding-top: 3rem; padding-bottom: 3rem; }
  .sx-hero.is-light .wp-block-cover__background { background: linear-gradient(180deg, rgba(247,243,236,.55) 0%, rgba(247,243,236,.88) 60%, rgba(247,243,236,.95) 100%) !important; }
  .sx-hero h1 { max-width: none; }
}

/* Sections */
.sx-section { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--60); }
.sx-section--tight { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--50); }
.sx-band-sage { background: var(--wp--preset--color--sage-light); }
.sx-band-sand { background: var(--wp--preset--color--sand); }
.sx-band-forest { background: var(--wp--preset--color--forest); color: var(--wp--preset--color--cream); }
.sx-band-forest h2, .sx-band-forest h3, .sx-band-forest p, .sx-band-forest a { color: var(--wp--preset--color--cream); }
.sx-band-forest .is-style-eyebrow { color: var(--wp--preset--color--sage); }
.sx-band-forest .wp-block-button__link { background: var(--wp--preset--color--sage); color: var(--wp--preset--color--forest); }
.sx-band-forest .wp-block-button.is-style-quiet .wp-block-button__link { background: transparent; color: var(--wp--preset--color--cream); border-bottom-color: var(--wp--preset--color--sage); }
.sx-divider { width: 3.5rem; height: 1px; background: var(--wp--preset--color--sage); margin: 1.25rem 0; }
.has-text-align-center .sx-divider, .sx-center .sx-divider { margin-left: auto; margin-right: auto; }

/* Cards */
.wp-block-group.is-style-card { background: #fff; border: 1px solid rgba(52,73,58,.1); border-radius: var(--sx-radius); padding: 1.75rem; box-shadow: 0 1px 0 rgba(52,73,58,.04); transition: transform .25s var(--sx-ease), box-shadow .25s; height: 100%; }
.wp-block-group.is-style-card:hover { transform: translateY(-2px); box-shadow: var(--sx-shadow); }
.wp-block-group.is-style-card-sage { background: var(--wp--preset--color--sage-light); border-radius: var(--sx-radius); padding: 1.75rem; height: 100%; }
.wp-block-group.is-style-card h3, .wp-block-group.is-style-card-sage h3 { margin-top: 0; }
.wp-block-group.is-style-card .wp-block-image { margin-bottom: 1rem; }
.sx-card__meta { font-size: 0.85rem; color: var(--wp--preset--color--taupe); letter-spacing: 0.02em; }
.sx-price { font-family: var(--wp--preset--font-family--serif); font-size: 1.75rem; color: var(--wp--preset--color--forest); margin: 0.25rem 0; }
.sx-price small { font-family: var(--wp--preset--font-family--sans); font-size: 0.85rem; color: var(--wp--preset--color--taupe); margin-left: .4rem; }

/* B.R.E.A.T.H.E. letters */
.wp-block-group.is-style-letter { text-align: center; padding: 1.5rem 1rem; border-top: 1px solid rgba(52,73,58,.14); }
.wp-block-group.is-style-letter .sx-letter { font-family: var(--wp--preset--font-family--serif); font-size: 3rem; line-height: 1; color: var(--wp--preset--color--forest); margin: 0 0 0.5rem; }
.wp-block-group.is-style-letter p:not(.sx-letter) { margin: 0; font-size: 0.95rem; }
.sx-breathe .wp-block-column { min-width: 9rem; }

/* Lists */
ul.is-style-leaf, ul.is-style-check { list-style: none; padding-left: 0; }
ul.is-style-leaf li, ul.is-style-check li { position: relative; padding-left: 1.75rem; margin-bottom: 0.6rem; }
ul.is-style-leaf li::before { content: ""; position: absolute; left: 0; top: 0.45em; width: 0.95rem; height: 0.95rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236F8A6A' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20c0-8 6-14 16-16-1 10-6 16-14 16z'/%3E%3Cpath d='M4 20c4-5 8-9 12-12'/%3E%3C/svg%3E") no-repeat center / contain; }
ul.is-style-check li::before { content: ""; position: absolute; left: 0; top: 0.45em; width: 0.95rem; height: 0.95rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236F8A6A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") no-repeat center / contain; }

/* Images */
.wp-block-image.is-style-soft img { border-radius: 10px; }
.wp-block-image.is-style-arch img { border-radius: 999px 999px 10px 10px; }
.wp-block-image img { box-shadow: 0 1px 0 rgba(52,73,58,.05); }
.sx-portrait img { aspect-ratio: 4 / 5; object-fit: cover; }
.sx-tile img { aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--sx-radius); }

/* FAQ details */
.wp-block-details.is-style-faq { border-top: 1px solid rgba(52,73,58,.14); padding: 0; margin: 0; }
.wp-block-details.is-style-faq:last-of-type { border-bottom: 1px solid rgba(52,73,58,.14); }
.wp-block-details.is-style-faq summary { font-family: var(--wp--preset--font-family--serif); font-size: 1.35rem; font-weight: 500; padding: 1.1rem 2.5rem 1.1rem 0; cursor: pointer; list-style: none; position: relative; }
.wp-block-details.is-style-faq summary::-webkit-details-marker { display: none; }
.wp-block-details.is-style-faq summary::after { content: "+"; position: absolute; right: 0.25rem; top: 1rem; font-size: 1.6rem; line-height: 1; color: var(--wp--preset--color--sage-deep); font-weight: 300; transition: transform .25s var(--sx-ease); }
.wp-block-details.is-style-faq[open] summary::after { transform: rotate(45deg); }
.wp-block-details.is-style-faq > :not(summary) { padding-bottom: 1.25rem; }

/* Quote */
.wp-block-quote cite { display: block; margin-top: 0.75rem; font-family: var(--wp--preset--font-family--sans); font-size: 0.85rem; font-style: normal; letter-spacing: 0.08em; text-transform: uppercase; color: var(--wp--preset--color--taupe); }
.sx-pullquote { font-family: var(--wp--preset--font-family--script); font-size: 2.4rem; line-height: 1.15; color: var(--wp--preset--color--forest); }

/* Footer */
.sx-footer { border-top: 1px solid rgba(52,73,58,.1); background: var(--wp--preset--color--sand); }
.sx-footer__meta { font-size: 0.9rem; color: var(--wp--preset--color--ink); line-height: 1.7; }
.sx-footer__links { list-style: none; padding: 0; margin: 0; }
.sx-footer__links li { margin: 0 0 0.45rem; font-size: 0.95rem; }
.sx-footer__links a { color: var(--wp--preset--color--ink); text-decoration: none; }
.sx-footer__links a:hover { color: var(--wp--preset--color--sage-deep); text-decoration: underline; text-underline-offset: 3px; }
.sx-footer__bottom { margin-top: var(--wp--preset--spacing--50); padding-top: 1.25rem; border-top: 1px solid rgba(52,73,58,.12); gap: 1rem 3rem; }
.sx-footer__legal { font-size: 0.78rem; color: var(--wp--preset--color--taupe); max-width: 60ch; margin: 0; }

/* Reveal */
.sx-reveal { opacity: 0; transform: translateY(14px); transition: opacity .7s var(--sx-ease), transform .7s var(--sx-ease); }
.sx-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .sx-reveal { opacity: 1; transform: none; transition: none; } }

/* SplibitForms request form */
.sx-form { background: #fff; border: 1px solid rgba(52,73,58,.12); border-radius: var(--sx-radius); padding: 1.75rem; }
.sx-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.25rem; }
.sx-field { display: grid; gap: 0.35rem; }
.sx-field--wide { grid-column: 1 / -1; }
.sx-field label { font-size: 0.82rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--sage-deep); font-weight: 500; }
.sx-field label em { color: var(--wp--preset--color--taupe); font-style: normal; text-transform: none; letter-spacing: 0; font-weight: 300; }
.sx-field input, .sx-field select, .sx-field textarea { width: 100%; font: inherit; font-weight: 300; color: var(--wp--preset--color--ink); background: var(--wp--preset--color--cream); border: 1px solid rgba(52,73,58,.2); border-radius: 4px; padding: 0.8rem 0.9rem; min-height: 3rem; }
.sx-field textarea { min-height: 9rem; resize: vertical; }
.sx-field input:focus, .sx-field select:focus, .sx-field textarea:focus { outline: 2px solid var(--wp--preset--color--sage); outline-offset: 0; border-color: var(--wp--preset--color--sage-deep); }
.sx-field .sx-invalid { border-color: #b2543f; background: #fff7f4; }
.sx-form__meta { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sx-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.25rem; }
.sx-form__actions .wp-block-button__link { cursor: pointer; border: 0; font: inherit; font-weight: 500; }
.sx-form__note { font-size: 0.85rem; color: var(--wp--preset--color--taupe); }
.sx-form__status { min-height: 1.4rem; margin: 0.75rem 0 0; font-size: 0.95rem; }
.sx-form__status.is-error { color: #b2543f; }
.sx-form__thanks { padding: 1.5rem; background: var(--wp--preset--color--sage-light); border-radius: var(--sx-radius); font-size: 1.05rem; line-height: 1.6; }
.sx-form__thanks b { display: block; font-family: var(--wp--preset--font-family--serif); font-size: 1.6rem; font-weight: 500; color: var(--wp--preset--color--forest); margin-bottom: 0.25rem; }
@media (max-width: 640px) { .sx-form__grid { grid-template-columns: 1fr; } .sx-form { padding: 1.25rem; } }

/* Four C's row */
.sx-four-c .wp-block-group.is-style-letter .sx-letter { font-size: clamp(1.35rem, 2.2vw, 2.1rem); letter-spacing: 0.02em; word-break: keep-all; }
.sx-hero .wp-block-cover__image-background { object-fit: cover; }
.sx-hero--page { min-height: 52vh; }
.sx-hero .wp-block-cover__inner-container { padding-block: 2rem; }
@media (min-width: 783px) { .sx-hero .wp-block-cover__inner-container > * { max-width: 36rem; } }

/* Utilities */
.sx-max-50 { max-width: 50rem; }
.sx-center { text-align: center; }
.sx-gap-lg { gap: 2.5rem !important; }
@media (max-width: 600px) { .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; } }

/* Intake form sections, choices, scales, legal text */
.sx-form--intake { padding: 2rem; }
.sx-form__section { padding: 1.5rem 0 0.5rem; border-top: 1px solid rgba(52,73,58,.14); margin-bottom: 0.5rem; }
.sx-form__section:first-of-type { border-top: 0; padding-top: 0; }
.sx-form__section > h3 { margin: 0 0 0.75rem; font-size: 1.5rem; }
.sx-form__section > p { font-size: 0.95rem; color: var(--wp--preset--color--taupe); margin: 0 0 1rem; max-width: none; }
.sx-field--choices fieldset { border: 0; padding: 0; margin: 0; }
.sx-field--choices legend { font-size: 0.82rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--wp--preset--color--sage-deep); font-weight: 500; margin-bottom: 0.6rem; }
.sx-field--choices legend em { color: var(--wp--preset--color--taupe); font-style: normal; text-transform: none; letter-spacing: 0; font-weight: 300; }
.sx-choice { display: flex; align-items: flex-start; gap: 0.6rem; padding: 0.3rem 0; font-size: 0.98rem; line-height: 1.5; cursor: pointer; }
.sx-choice input { width: 1.15rem; height: 1.15rem; margin-top: 0.3rem; accent-color: var(--wp--preset--color--sage-deep); flex: 0 0 auto; }
.sx-field--choices.sx-invalid-group legend { color: #b2543f; }
.sx-field--choices.sx-invalid-group .sx-choice span { color: #b2543f; }
#sx-conditions ~ *, .sx-field--choices[data-many] fieldset { columns: 2; }
.sx-form__scales .sx-form__grid { grid-template-columns: 1fr 1fr 1fr; }
.sx-form__scales .sx-field select { min-height: 2.6rem; padding: 0.5rem 0.7rem; }
.sx-form__legal { font-size: 0.9rem; line-height: 1.6; color: var(--wp--preset--color--ink); background: var(--wp--preset--color--cream); border: 1px solid rgba(52,73,58,.12); border-radius: var(--sx-radius); padding: 1.25rem 1.4rem; margin: 0 0 1.25rem; max-height: 22rem; overflow-y: auto; }
.sx-form__legal p { max-width: none; margin: 0 0 0.75rem; }
.sx-form__legal p:last-child { margin-bottom: 0; }
@media (max-width: 640px) { .sx-form--intake { padding: 1.25rem; } .sx-form__scales .sx-form__grid { grid-template-columns: 1fr 1fr; } .sx-field--choices[data-many] fieldset { columns: 1; } }

/* Sticky aside (intake page) */
.wp-block-group.sx-sticky { height: auto; position: sticky; top: 6rem; }
@media (max-width: 781px) { .wp-block-group.sx-sticky { position: static; } }
