:root{
  color-scheme:light;
  --paper:#f6f1e8;--ink:#242820;--quiet:#51534a;--rule:#d7d0c0;--bronze:#795b34;--sage:#232e25;
  --serif:Georgia,'Times New Roman',serif;
  --sans:system-ui,-apple-system,'Segoe UI',sans-serif;
  --gutter:clamp(1rem,5vw,5.5rem);
  --section-space:clamp(2.15rem,4.75vw,4.25rem);
  --header-height:4.875rem;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.65 var(--sans);text-rendering:optimizeLegibility}
a{color:inherit;text-underline-offset:.24em}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid #9f733e;outline-offset:4px}
img{display:block;max-width:100%;height:auto}
figure,h1,h2,h3,p{margin:0}
section[id],#certificates,#massage,.practice-card[id]{scroll-margin-top:calc(var(--header-height) + 1rem)}
.wrap{max-width:1360px;padding-inline:var(--gutter);margin-inline:auto}
.section{padding-block:var(--section-space)}
.skip{position:fixed;z-index:6;left:1rem;top:.7rem;transform:translateY(-180%);padding:.5rem 1rem;background:var(--paper)}
.skip:focus{transform:none}
.site-header{position:sticky;top:0;background:var(--paper);z-index:4;border-bottom:1px solid #d7d0c0}
.header-inner,.footer-inner{min-height:77px;display:flex;gap:1rem;align-items:center;justify-content:space-between}
.brand{display:inline-flex;align-items:center;gap:.66rem;text-decoration:none;white-space:nowrap;font:1.35rem var(--serif);letter-spacing:-.045em}
.brand i{color:var(--bronze)}
nav{display:flex;align-items:center;gap:clamp(.8rem,2.2vw,2.4rem);font-size:.875rem}
nav a{text-decoration:none;white-space:nowrap}
nav a:hover,.hero-link:hover{text-decoration:underline}
.button{min-height:49px;display:inline-flex;align-items:center;justify-content:center;gap:1.15rem;padding:.68rem 1.15rem;border:1px solid transparent;border-radius:2px;text-decoration:none;font:600 .86rem/1.25 var(--sans);cursor:pointer;transition:background-color .18s,color .18s,border-color .18s}
.button span,.text-link span{font-size:1.15em}
.button.outline{border-color:#a69b84;background:transparent}
.button.outline:hover{background:#eae2d3}
.button.light{background:#f4ead9;color:#292419}
.button.light:hover{background:#fff8ea}
.button.dark{background:#293629;color:#fff9eb}
.button.dark:hover{background:#3c4d3a}
.button:disabled{opacity:.65;cursor:wait}
.hero{min-height:clamp(27rem,68svh,37rem);display:flex;flex-direction:column;justify-content:center;position:relative;color:#fff5e5;background:#1e1a12;isolation:isolate}
.hero::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(19,18,12,.59),rgba(19,18,12,.17) 63%,rgba(19,18,12,.04)),linear-gradient(0deg,#15120987,transparent 32%),url('./assets/banya.jpg') 58% 52% / cover no-repeat}
.hero-inner,.hero-bottom{width:100%}
.hero-inner{padding-block:3.1rem 4.8rem}
.eyebrow{display:flex;align-items:center;gap:.65rem;text-transform:uppercase;letter-spacing:.17em;color:var(--bronze);font:680 .69rem/1.6 var(--sans);margin-bottom:1.15rem}
.short-line{width:24px;height:1px;background:currentColor;flex:none}
.hero .eyebrow{color:#f0cd98;margin-bottom:1.55rem}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.03;letter-spacing:-.048em}
h1,h2{font-size:clamp(2.3rem,4.5vw,4.35rem);overflow-wrap:break-word}
h1 em,h2 em{color:var(--bronze);font-weight:400}
.hero h1{font-size:clamp(4.4rem,9vw,7.5rem);line-height:.9}
.hero h1 em{display:block;margin-top:.1em;color:#ead6aa}
h3{font-size:clamp(1.5rem,2.4vw,2.05rem)}
.hero-description{max-width:29rem;margin-top:1.4rem;color:#fff1de}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.45rem;margin-top:1.9rem}
.hero-actions .button.outline{border-color:#f4ead9;color:#fff5e5}
.hero-actions .button.outline:hover{background:#fff8ea;color:#292419}
.hero-link{font-size:.9rem;text-decoration:none}
.hero-link span{margin-left:.28em}
.hero-bottom{position:absolute;bottom:0;left:50%;transform:translateX(-50%);display:flex;justify-content:space-between;gap:1rem;padding-block:1.18rem;color:#f6e5ca;font-size:.69rem;letter-spacing:.14em;text-transform:uppercase}
.hero-bottom::before{content:'';height:1px;background:#eee2ca57;position:absolute;top:0;left:var(--gutter);right:var(--gutter)}
.hero-bottom b{margin-inline:.3em}
.section-heading{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:end;gap:2rem;margin-bottom:clamp(1.65rem,3vw,2.9rem)}
.lead{color:var(--quiet);max-width:37rem}
.ritual-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.1rem,3vw,3rem);list-style:none;padding:0;margin:0 0 2rem}
.ritual-flow li{border-top:1px solid var(--rule);padding-block:1.1rem .35rem}
.stage-number{color:var(--bronze);font-size:.78rem;font-variant-numeric:tabular-nums;letter-spacing:.12em}
.ritual-flow h2,.detail-subtitle{font-size:clamp(1.5rem,2.4vw,2.05rem)}
.ritual-flow h2{margin:.85rem 0 .63rem}
.ritual-flow p,.split-copy > p:not(.eyebrow,.stock),.certificate p{color:var(--quiet)}
.text-link{display:inline-flex;gap:.65rem;align-items:center;font-weight:650;font-size:.9rem;text-decoration-color:#9d865d}
.text-link:hover{color:var(--bronze)}
.energy{background:var(--sage);color:#f7eddb}
.energy-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center;gap:clamp(1.8rem,5vw,5rem);padding-block:var(--section-space)}
.energy .eyebrow,.energy h2 em,.energy-art{color:#ddc394}
.energy p:not(.eyebrow){margin-top:1.25rem;max-width:39rem;color:#e7e4d6}
.energy-art{width:100%;max-width:410px;justify-self:center}
.split,.shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(1.75rem,5vw,5rem)}
.split-copy>*+*{margin-top:1.03rem}
.split-copy .eyebrow{margin-bottom:.65rem}
.split-copy .button,.split-copy .text-link{margin-top:1.45rem}
.feature-image{min-width:0;position:relative;background:#dfc5a1}
.feature-image img{width:100%;aspect-ratio:1.17;object-fit:cover}
.ritual-photo{margin-bottom:clamp(1.5rem,3vw,2.5rem)}
.ritual-photo img{aspect-ratio:2.65;object-position:center 58%}
.tandem{background:#f0eadf;border-bottom:1px solid var(--rule)}
.feature-image.tandem-photo img{aspect-ratio:4/3}
.tandem-links{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;margin-top:1.25rem}
.split-copy .tandem-links .text-link{margin-top:0}
.action-row{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem 1.25rem}
.split-copy .action-row .button,.split-copy .action-row .text-link{margin-top:0}
.practice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.25rem}
.practice-card{display:grid;grid-template-columns:4.5rem minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.75rem;background:#faf5eb;border:1px solid var(--rule);text-decoration:none}
.practice-card:hover{border-color:var(--bronze);background:#f0eadf}
.practice-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px;background:#dfc5a1}
.practice-card h3{font-size:clamp(1.25rem,2vw,1.55rem);line-height:1.15}
.practice-card p{margin-top:.4rem;font-size:.89rem;line-height:1.45;color:var(--quiet)}
.practice-card>span{color:var(--bronze)}
.back-nav{padding-top:clamp(.85rem,2vw,1.4rem)}
.back-nav + .section,.back-nav + section > :is(.shop-grid,.nails-grid,.booking-grid){padding-top:clamp(1.5rem,3vw,2.65rem)}
.page-next{padding-block:1rem 1.45rem;text-align:end}
.feature-image figcaption{position:absolute;right:.55rem;bottom:.55rem;padding:.1rem .5rem;color:#fff4df;background:#252a22de;font-size:.66rem}
.technique{margin-top:1.45rem!important;border-top:1px solid var(--rule)}
summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:.85rem;font-weight:600;padding:.88rem 0}
summary::-webkit-details-marker{display:none}
summary span{font:400 1.35rem/1 var(--sans);color:var(--bronze)}
details[open] summary span{transform:rotate(45deg)}
details p{color:var(--quiet);padding-bottom:1.05rem}
.shop{background:#eae7da}
.nails{border-top:1px solid var(--rule)}
.nails-grid{padding-block:var(--section-space);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:1.65rem clamp(1.5rem,5vw,5rem)}
.nails-grid p:not(.eyebrow){color:var(--quiet);margin-bottom:1rem}
.nails-photos{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,3vw,2rem)}
.nails-photos img,.detail-practice .feature-image img,.feature-image.rebozo-photo img{aspect-ratio:3/2}
.shop-grid{padding-block:var(--section-space) clamp(2rem,4vw,3.4rem)}
.shop-image img{aspect-ratio:1.47}
.hydrolat-info{padding-bottom:var(--section-space)}
.hydrolat-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,3vw,2.75rem);margin-top:1.35rem}
.hydrolat-info-grid article{border-top:1px solid var(--rule);padding-top:.95rem}
.hydrolat-info-grid h3{margin:0;font:400 1.35rem/1.2 var(--serif)}
.hydrolat-info-grid p{margin-top:.65rem;color:var(--quiet)}
.stock{display:inline-flex;align-items:center;gap:.48rem;background:#e0e5d7;color:#364e37;font-size:.78rem;font-weight:700;padding:.2rem .62rem;border:1px solid #c8d0bb;border-radius:2px}
.stock span{width:.44rem;height:.44rem;border-radius:50%;background:#496f46}
.about{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(1.75rem,5vw,5rem);align-items:center}
.about .lead{margin-block:1.25rem}
.certificate{padding:clamp(1.5rem,4vw,3rem);border:1px solid var(--rule);background:#faf5eb}
.certificate svg{color:var(--bronze);margin-bottom:.85rem}
.certificate p{margin:.76rem 0 1rem}
.cert-list{list-style:none;padding:0;margin:0 0 .85rem;border-top:1px solid var(--rule)}
.cert-list a{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.66rem 0;border-bottom:1px solid var(--rule);font-weight:600;text-decoration:none}
.cert-list a:hover span:first-child{text-decoration:underline}
.cert-list small{color:var(--bronze);white-space:nowrap}
.booking{background:#e5e8df}
.booking-grid{padding-block:var(--section-space);display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(1.75rem,5vw,5rem);align-items:start}
.booking-intro p:not(.eyebrow){margin-top:1.18rem;max-width:29rem;color:var(--quiet)}
.booking-form{background:#f9f7f0;border:1px solid #cdd1c3;padding:clamp(1.05rem,3.4vw,2.65rem)}
.booking-form fieldset{margin:0;padding:0;border:0;min-inline-size:0}
.booking-form legend,.fields label{font-weight:700}
.booking-form legend{padding:0;margin:0 0 .62rem}
.choice{display:flex;align-items:flex-start;gap:.63rem;margin-bottom:.5rem;padding:.68rem .72rem;border:1px solid #d3d1c7;cursor:pointer}
.choice:has(input:checked){background:#e9eee4;border-color:#687d63}
.choice input{margin:.27rem .05rem 0;flex:none}
.choice strong{display:block;line-height:1.35}
.choice small{display:block;color:var(--quiet);font-size:.875rem;line-height:1.45;margin-top:.25rem}
input[type=radio],input[type=checkbox]{accent-color:#3b583b;width:1rem;height:1rem}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.72rem;margin-top:1rem}
.fields label{min-width:0}
.fields input{width:100%;display:block;margin-top:.35rem;padding:.68rem .6rem;min-height:45px;color:var(--ink);border:1px solid #bbb9ac;border-radius:0;background:#fffdf7;font:400 1rem var(--sans)}
.consent{display:flex;gap:.62rem;align-items:flex-start;margin:1rem 0;color:var(--quiet)}
.consent input{margin:.2rem 0 0;flex:none}
.form-status:not(:empty){margin-top:.8rem;padding:.75rem;background:#e8eee2;font-size:.88rem}
.form-status.error:not(:empty){background:#f9e9dc;color:#782b1f}
.trap{display:none}
.faq{display:grid;grid-template-columns:minmax(0,.87fr) minmax(0,1.13fr);gap:2rem}
.faq-list{border-top:1px solid var(--rule)}
.faq-list details{border-bottom:1px solid var(--rule)}
.footer{border-top:1px solid var(--rule)}
.footer-inner{padding-block:1rem;color:var(--quiet);font-size:.84rem;flex-wrap:wrap}
.footer-inner .brand{color:var(--ink)}
.notice-page{min-height:100vh;display:grid;place-items:center;padding:1.25rem}
.notice-page article{max-width:38rem;background:#faf6ed;border:1px solid var(--rule);padding:clamp(1.4rem,6vw,4rem)}
.notice-page article p{margin:1rem 0 1.4rem}
@media(max-width:960px){
  .practice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  :root{--header-height:5.55rem}
  .header-inner{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:0 .65rem;
    min-height:0;
    padding-block:.45rem .25rem;
  }
  .header-book{grid-column:2;grid-row:1;min-height:44px;padding:.55rem .72rem;gap:.5rem}
  .header-inner nav{
    grid-column:1/-1;
    grid-row:2;
    gap:clamp(.7rem,2.5vw,1.55rem);
    min-width:0;
    flex-wrap:wrap;
  }
  .header-inner nav a{display:flex;align-items:center;min-height:2.25rem}
  .header-inner nav a:focus-visible{outline-offset:-2px}
}
@media(max-width:470px){
  :root{--header-height:7.8rem}
}
@media(max-width:840px){
  .booking-grid,.faq{grid-template-columns:minmax(0,1fr);gap:1.5rem}
}
@media(max-width:720px){
  .section-heading,.energy-grid,.split,.shop-grid,.about,.nails-grid,.nails-photos{
    grid-template-columns:minmax(0,1fr);
    gap:1.5rem;
  }
  .ritual-flow{grid-template-columns:minmax(0,1fr);gap:.75rem}
  .hydrolat-info-grid{grid-template-columns:minmax(0,1fr)}
  .hero::before{background:linear-gradient(90deg,#17170fbc,#17170f45),linear-gradient(0deg,#1512099c,transparent 35%),url('./assets/banya.jpg') 63% center / cover no-repeat}
  .hero-inner{padding-block:2.65rem 4.25rem}
  .hero h1{font-size:clamp(3.35rem,11.5vw,6rem)}
  .hero-bottom{font-size:.68rem;letter-spacing:.07em}
  .hero-bottom>span:last-child{display:none}
  .energy-art{width:min(78%,280px)}
  .feature-image img{aspect-ratio:1.42}
  .ritual-photo img{aspect-ratio:3/2}
  .split .feature-image{order:2}
}
@media(max-width:520px){
  .brand{font-size:1.2rem;gap:.46rem}
  .brand img{width:25px;height:25px}
  .header-book{font-size:.78rem}
  .practice-grid{grid-template-columns:minmax(0,1fr);gap:.5rem}
  .practice-card{grid-template-columns:3.5rem minmax(0,1fr) auto;gap:.65rem;padding:.625rem}
  .fields{grid-template-columns:minmax(0,1fr)}
  .booking-form{padding:1.05rem}
  .booking-form button{width:100%}
  .footer-inner{gap:.8rem 1.35rem;overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
