/* Inner pages: rituals menu, ritual detail, our house, visit & book, 404 */
body:not(.pg-home) { background: var(--sand); }

/* ---------- rituals menu ---------- */
.treatment-section { position: relative; z-index: 3; margin-top: -32vw; }
.select-wrap { position: absolute; top: 0; left: 0; width: 100%; z-index: 30; display: flex; flex-direction: column; align-items: center; pointer-events: none; }
.select-wrap > * { pointer-events: auto; }
.select-box { display: flex; align-items: center; gap: 1vw; padding: 1.042vw 2.24vw; margin: 0 auto .5vw; background: var(--sand); color: var(--umber); border: 1px solid rgba(94, 68, 51, .45); border-radius: 3.125vw; box-shadow: 0 .6vw 2vw rgba(40, 24, 14, .12); transition: background-color .2s, border-color .2s; }
.select-box:hover, .select-box[aria-expanded="true"] { background: var(--sand-2); border-color: var(--umber); }
.sel-leaf { color: var(--clay); width: 9.74vw; }
.sel-leaf svg { width: 100%; height: auto; }
.sel-leaf.l { transform: scaleX(-1); }
.sel-txt { display: flex; flex-direction: column; align-items: center; min-width: 12vw; }
.sel-k { font-size: .833vw; font-weight: 600; color: #6a4e3b; text-transform: uppercase; letter-spacing: .03em; }
.selected { color: var(--clay-deep); font-family: var(--serif); font-size: 1.563vw; font-weight: 300; font-style: italic; letter-spacing: -.02em; }
.select-desc { font-size: .833vw; color: #9c8a73; text-transform: uppercase; margin: 0; }
.cat-list { position: absolute; bottom: 8vw; left: 50%; transform: translateX(-50%) translateY(.6vw); width: 30vw; padding: 1vw; background: var(--sand); border-radius: 1vw; box-shadow: 0 0 10px 10px rgba(0, 0, 0, .08); text-align: center; opacity: 0; visibility: hidden; transition: opacity .2s, transform .2s, visibility .2s; }
.cat-list.active { opacity: 1; visibility: visible; transform: translateX(-50%); }
.cat-list li { margin: .7vw 0; cursor: pointer; color: var(--tile); font-family: var(--serif); font-size: 1.563vw; font-weight: 300; font-style: italic; letter-spacing: -.02em; }
.cat-list li:hover, .cat-list li:focus-visible { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; outline: none; color: var(--clay); }
.cat-list li[aria-selected="true"] { display: none; }
.treatment-section .curve { padding: 15vw 13.698vw; margin-top: 10vw; }
.tgrid { transition: opacity .25s; }
.tgrid.fading { opacity: 0; }
.tcard[hidden] { display: none; }

/* ---------- ritual detail ---------- */
.top-detail { background: var(--clay); }
.top-detail .k2 { margin-top: 2vw; }
.inner-intro { position: relative; z-index: 3; margin-top: -40vw; padding: 19vw var(--left) 0; overflow: hidden; }
.inner-intro .curve { padding: 8vw 15vw 10vw; overflow: visible; text-align: center; color: var(--umber); }
.inner-box { position: absolute; top: -10vw; left: var(--left); right: var(--left); z-index: 30; display: flex; align-items: center; gap: 2vw; height: 4.4vw; padding: 0 .7vw 0 2vw; color: var(--umber); background: rgba(239, 229, 212, .92); border: 1px solid rgba(94, 68, 51, .35); border-radius: 3vw; backdrop-filter: blur(6px); }
.ib-leaf { width: 7vw; color: var(--clay); }
.ib-leaf svg { width: 100%; height: auto; }
.ib-cat { margin: 0; font-family: var(--serif); font-style: italic; font-weight: 300; font-size: 1.563vw; }
.ib-name { margin: 0 auto; font-size: .833vw; font-weight: 600; text-transform: uppercase; }
.ii-imgs { display: flex; justify-content: center; align-items: flex-start; margin-bottom: 4vw; }
.ii-imgs img { border-radius: 3.125vw; object-fit: cover; box-shadow: 0 1.4vw 3vw rgba(40, 24, 14, .18); }
.ii-1 { width: 24vw; height: 32vw; transform: rotate(-7deg); position: relative; z-index: 2; }
.ii-2 { width: 21vw; height: 28vw; transform: rotate(7deg); margin: 6vw 0 0 -8vw; z-index: 1; }
.ii-quote { max-width: 70vw; margin: 0 auto; color: var(--umber); }
.product-section { position: relative; background: var(--sand); color: var(--umber); padding: 0 var(--left2) var(--top); }
.product { display: grid; grid-template-columns: 1fr 1fr; padding: 2.083vw 0; border-top: 1px solid var(--umber); }
.p-img { position: relative; height: 40vw; border-radius: 3.125vw; overflow: hidden; margin-right: 5.729vw; }
.p-img img { width: 100%; height: 120%; object-fit: cover; }
.p-txt { display: flex; flex-direction: column; align-items: flex-start; }
.p-txt .h2 { width: 80%; margin-bottom: .5vw; }
.p-sub { margin-bottom: 1.2vw; }
.p-txt .tcard-info { justify-content: flex-start; margin: .5vw 0 auto; }
.p-long { width: 25vw; margin: 3vw 0 2vw; }
.faq-section { position: relative; background: var(--sand); }
.curve-umber { padding: 12vw 0 10vw; text-align: center; color: var(--sand); }
.curve-umber .curve-bg { background: var(--umber); }
.curve-umber .h1 { margin-bottom: 3vw; }
.faq { width: 42vw; margin: 0 auto; text-align: left; }
.q { border-radius: 1.563vw; margin-bottom: .903vw; background: var(--umber-2); transition: background-color .3s; }
.q h3 { margin: 0; font: inherit; text-transform: none; }
.q button { position: relative; display: block; width: 100%; text-align: left; color: var(--sand); font-family: var(--sans); font-size: 1.25vw; font-weight: 600; line-height: 1.563vw; letter-spacing: -.037vw; padding: 1.943vw 4.5vw 1.943vw 1.843vw; transition: color .3s; }
.q button svg { position: absolute; right: 1.668vw; top: 50%; width: 2.116vw; transform: translateY(-50%); transition: transform .4s var(--ease-out); }
.q.active { background: var(--sand); }
.q.active button { color: var(--umber); }
.q.active button svg { transform: translateY(-50%) rotate(45deg); }
.q .a { padding: 0 4.813vw 1.563vw 1.843vw; font-size: .938vw; font-weight: 300; line-height: 1.4; color: var(--umber); }
.q .a p { margin: 0; }

/* ---------- our house ---------- */
.about-hero { position: relative; height: 62vw; padding-top: 15vw; text-align: center; color: var(--sand); background: #24170f; overflow: hidden; }
.ab-bg { position: absolute; inset: 0; }
.ab-bg img { width: 100%; height: 100%; object-fit: cover; opacity: .34; }
.about-hero > :not(.ab-bg) { position: relative; z-index: 1; }
.ab-sub { width: 22vw; margin: 1.6vw auto 0; font-weight: 600; text-transform: uppercase; }
.gallery { position: absolute !important; left: 0; bottom: -4vw; width: 100%; }
.gallery-track { display: flex; gap: 1.5vw; padding-left: 4vw; width: max-content; }
.gallery img { width: 21vw; height: 21vw; object-fit: cover; border-radius: 3.125vw; }
.inner-about { margin-top: 0; padding-top: 6vw; background: #24170f; overflow: visible; }
.inner-about .curve { padding: 14vw 16vw 16vw; overflow: hidden; }
.ab-note { margin-top: 2vw; color: var(--umber); }
.leaf { position: absolute; z-index: 4; pointer-events: none; }
.leaf-1 { top: -9vw; left: -3vw; width: 30.156vw; }
.leaf-2 { top: -6vw; right: -4vw; width: 36.979vw; }
.leaf-3 { bottom: -9vw; left: -4vw; width: 34.375vw; }
.leaf-4 { bottom: -14vw; right: -3vw; width: 34.896vw; }
.who { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; gap: 4vw; align-items: center; padding: 16vw 8vw 14vw; background: var(--ink); color: var(--sand); }
.who-txt .h1 { margin-bottom: 3vw; }
.who-txt .h3 { font-size: 2.6vw; line-height: 1.15; }
.who-txt p:last-child { width: 30vw; }
.who-imgs { position: relative; height: 36vw; }
.who-imgs img { position: absolute; border-radius: 3.125vw; object-fit: cover; }
.w-1 { width: 20vw; height: 28vw; right: 6vw; top: 0; transform: rotate(6deg); }
.w-2 { width: 15vw; height: 15vw; left: 2vw; bottom: 0; transform: rotate(-8deg); }
.package-section { margin-top: 0; background: var(--ink); }
.package-section .curve { padding: 12vw 13.698vw 15vw; margin-top: 0; text-align: center; color: var(--umber); }
.package-section .h3 { margin-bottom: 4vw; }

/* ---------- visit & book ---------- */
.contact-section { position: relative; z-index: 3; margin-top: -21vw; }
.contact-section .curve { padding: 15vw 8vw 10vw; color: var(--umber); }
.houses { display: grid; grid-template-columns: 1fr 1fr; gap: 2vw; }
.house { background: var(--sand-2); border-radius: 3.125vw; padding: 3vw 3vw 1.2vw; display: flex; flex-direction: column; scroll-margin-top: 6vw; }
.house .h5 { margin-bottom: 1.2vw; }
.house .h6 { line-height: 1.3; }
.house-note { margin: 1.2vw 0 1.6vw; }
.house-btns { display: flex; gap: 1vw; margin-bottom: 2vw; }
.hours { display: flex; border-top: 1px solid var(--umber); border-bottom: 1px solid var(--umber); text-transform: uppercase; font-weight: 600; margin-bottom: 1.6vw; }
.hours div { flex: 1; padding: .8vw 0; }
.hours div + div { border-left: 1px solid var(--umber); padding-left: 1.2vw; }
.house .map { height: 15vw; border-radius: 2.083vw; overflow: hidden; }
.house .map svg { width: 100%; height: 100%; }
.book { display: grid; grid-template-columns: .8fr 1.2fr; gap: 5vw; margin-top: 10vw; scroll-margin-top: 4vw; }
.book-head p { width: 24vw; }
.book-img { width: 100%; height: 24vw; object-fit: cover; border-radius: 12vw 12vw 2vw 2vw; margin-top: 2.4vw; }
.book-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4vw 1.6vw; align-content: start; }
.f { display: flex; flex-direction: column; gap: .5vw; border: 0; margin: 0; padding: 0; min-width: 0; }
.f-wide { grid-column: 1 / -1; }
.f label, .f legend { font-size: .78vw; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; padding: 0; }
.f legend { margin-bottom: .5vw; }
.f input:not([type=radio]):not([type=checkbox]), .f select, .f textarea { width: 100%; border: 1px solid var(--umber); border-radius: 2.604vw; color: var(--umber); background: transparent; font: 300 .938vw/1.2 var(--sans); padding: .9vw 1.5vw; transition: border-color .2s, background-color .2s; }
.f textarea { border-radius: 1.6vw; resize: vertical; }
.f select { appearance: none; padding-right: 3vw; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%235e4433' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat right 1.4vw center / .8vw auto; }
.f input:focus, .f select:focus, .f textarea:focus { outline: none; border-color: var(--clay); background-color: rgba(255, 250, 242, .5); }
.f [aria-invalid="true"] { border-color: var(--clay) !important; }
.err { margin: 0; min-height: 1em; font-size: .78vw; color: var(--clay-deep); font-weight: 600; }
.chips { display: flex; flex-wrap: wrap; gap: .7vw; }
.chip { position: relative; cursor: pointer; }
.chip input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.chip span { display: inline-flex; align-items: center; height: 2.6vw; padding: 0 1.4vw; border: 1px solid var(--umber); border-radius: 2vw; font-weight: 600; text-transform: uppercase; font-size: .86vw; transition: background-color .2s, color .2s; }
.chip:hover span { background: var(--sand-2); }
.chip input:checked + span { background: var(--umber); color: var(--sand); }
.chip input:focus-visible + span { outline: 2px solid var(--umber); outline-offset: 3px; }
.f-submit { flex-direction: row; align-items: center; gap: 2vw; margin-top: .6vw; }
.form-note { margin: 0; font-size: .78vw; color: var(--umber); }
.btn-submit:hover { background: var(--umber); color: var(--sand); }
.book-done { align-self: center; }
.book-done .h3 { margin: 1vw 0 1.6vw; }
.nf { min-height: 100vh; }
.nf-btns { display: flex; justify-content: center; gap: 1.4vw; margin-top: 3vw; }

@media (max-width: 767px) {
  .treatment-section { margin-top: -20vw; }
  .select-box { padding: 3vw 5vw; border-radius: 10vw; gap: 3vw; }
  .sel-leaf { width: 14vw; }
  .sel-k { font-size: 2.6vw; }
  .selected { font-size: 5vw; line-height: 1.2; }
  .select-desc { font-size: 2.6vw; }
  .cat-list { width: 80vw; bottom: 22vw; border-radius: 5vw; padding: 3vw; }
  .cat-list li { font-size: 5.4vw; margin: 2.4vw 0; }
  .treatment-section .curve { padding: 30vw var(--left); }
  .inner-intro { margin-top: -20vw; padding: 36vw 0 0; }
  .inner-intro .curve { padding: 30vw var(--left) 16vw; }
  .inner-box { top: -14vw; height: 14vw; border-radius: 8vw; gap: 3vw; padding: 0 1.5vw 0 4vw; left: var(--left); right: var(--left); }
  .ib-leaf, .ib-name { display: none; }
  .ib-cat { font-size: 4.6vw; }
  .inner-box .btn { margin-left: auto; font-size: 3vw; }
  .ii-1 { width: 52vw; height: 70vw; }
  .ii-2 { width: 40vw; height: 54vw; margin: 14vw 0 0 -18vw; }
  .ii-imgs { margin-bottom: 10vw; }
  .ii-quote { max-width: none; }
  .product { grid-template-columns: 1fr; padding: 6vw 0 10vw; }
  .p-img { height: 100vw; margin: 0 0 6vw; border-radius: 9vw; }
  .p-img img { height: 120vw; }
  .p-txt .h2 { width: auto; }
  .p-long { width: auto; }
  .faq { width: auto; padding: 0 var(--left); }
  .q { border-radius: 5vw; margin-bottom: 3vw; }
  .q button { font-size: 4.25vw; line-height: 5.563vw; padding: 5.943vw 13.542vw 5vw 4vw; }
  .q button svg { width: 8vw; right: 4vw; }
  .q .a { font-size: 3.6vw; padding: 0 13.813vw 4vw 4vw; }
  .about-hero { height: 175vw; padding-top: 52vw; }
  .ab-sub { width: 70vw; margin-top: 4vw; }
  .gallery { bottom: 6vw; }
  .gallery img { width: 46vw; height: 46vw; border-radius: 7vw; }
  .gallery-track { gap: 3vw; }
  .inner-about .curve { padding: 30vw var(--left) 32vw; }
  .leaf-1 { width: 50vw; top: -8vw; }
  .leaf-2 { width: 56vw; top: -4vw; }
  .leaf-3 { width: 52vw; bottom: -6vw; }
  .leaf-4 { width: 52vw; bottom: -10vw; }
  .who { grid-template-columns: 1fr; padding: 30vw var(--left) 24vw; gap: 10vw; }
  .who-txt .h3 { font-size: 6.6vw; }
  .who-txt p:last-child { width: auto; }
  .who-imgs { height: 90vw; }
  .w-1 { width: 52vw; height: 72vw; right: 4vw; }
  .w-2 { width: 40vw; height: 40vw; left: 4vw; }
  .package-section .curve { padding: 30vw var(--left) 20vw; }
  .contact-section { margin-top: -20vw; }
  .contact-section .curve { padding: 32vw var(--left) 20vw; }
  .houses { grid-template-columns: 1fr; gap: 6vw; }
  .house { border-radius: 8vw; padding: 8vw 6vw 4vw; }
  .house .h5 { margin-bottom: 3vw; }
  .house-note { margin: 3vw 0 5vw; }
  .house-btns { gap: 3vw; margin-bottom: 6vw; flex-wrap: wrap; }
  .hours div { padding: 3vw 0; }
  .hours div + div { padding-left: 3vw; }
  .hours { margin-bottom: 5vw; }
  .house .map { height: 45vw; border-radius: 7vw; }
  .book { grid-template-columns: 1fr; gap: 8vw; margin-top: 20vw; }
  .book-head p { width: auto; }
  .book-img { height: 60vw; border-radius: 40vw 40vw 7vw 7vw; margin-top: 6vw; }
  .book-form { grid-template-columns: 1fr; gap: 5vw; }
  .f { gap: 2vw; }
  .f label, .f legend { font-size: 3vw; }
  .f input:not([type=radio]):not([type=checkbox]), .f select, .f textarea { border-radius: 8.4vw; font-size: 16px; padding: 3.8vw 5.5vw; }
  .f textarea { border-radius: 6vw; }
  .f select { background-size: 3vw auto; background-position: right 5vw center; padding-right: 10vw; }
  .err { font-size: 3vw; }
  .chips { gap: 2.4vw; }
  .chip span { height: 10vw; padding: 0 5vw; border-radius: 6vw; font-size: 3.2vw; }
  .f-submit { flex-direction: column; align-items: flex-start; gap: 4vw; }
  .form-note { font-size: 3vw; }
  .nf-btns { flex-direction: column; align-items: center; gap: 4vw; margin-top: 10vw; }
}
