:root{--taupe:#6A5547;--deep:#6B4E3D;--hover:#523A2D;--surface:#E4D6C5;--cream:#F3EDE4;--beige:#EAE0D3;--gold:#A47E5E;--ink:#3B2B22;--muted:#6A5547;--line:#A47E5E55;--serif:'Cormorant Garamond',Georgia,serif;--body:'Jost',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.75 var(--body);font-weight:400}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%;display:block}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:5px}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--deep);font-family:var(--serif);font-weight:400;line-height:1.06}h1{font-size:clamp(43px,4.6vw,70px);letter-spacing:-1.9px;margin-bottom:12px}h2{font-size:clamp(37px,3.6vw,53px);letter-spacing:-1px;margin-bottom:24px}h3{font-size:30px}em{color:var(--deep);font-weight:400}p{color:var(--muted)}.section-wrap{max-width:1190px;width:calc(100% - 104px);margin:auto}.section-space{padding-top:100px;padding-bottom:100px}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:500;color:var(--deep);margin-bottom:24px}.script{font:49px/1.15 'Allura',cursive;color:var(--taupe)}.button{display:inline-flex;justify-content:center;align-items:center;gap:28px;padding:14px 24px;background:var(--deep);color:white;border:1px solid var(--deep);font-size:12px;letter-spacing:.5px;transition:background .2s,transform .2s;min-height:48px}.button:hover{background:var(--hover);transform:translateY(-2px)}.button span{font-size:18px}.text-link{font-size:12px;border-bottom:1px solid var(--taupe);padding-bottom:5px;display:inline-block}.announcement{text-align:center;background:var(--beige);padding:7px 15px;font-size:10px;letter-spacing:.7px}.announcement span{font-size:8px;margin-left:20px;letter-spacing:1.6px}.header{position:sticky;top:0;z-index:20;background:#F3EDE4f5;backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:20px 5%;gap:25px}.wordmark{font:31px/.9 var(--serif);letter-spacing:5px;display:inline-block}.wordmark span{display:block;font:7px var(--body);letter-spacing:2.5px;margin-top:10px;text-align:center}.header nav{display:flex;gap:29px;align-items:center;font-size:11px}.header .small{padding:10px 17px;min-height:41px;margin-left:10px}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;padding-top:65px;padding-bottom:63px;align-items:center}.hero-copy{padding-top:20px}.tiny-star{font-size:22px;margin-right:8px}.hero-script{margin-bottom:20px}.intro{max-width:400px;font-size:14px}.hero-actions{display:flex;gap:24px;align-items:center;margin-top:30px;flex-wrap:wrap}.hero-footnote{font-size:8px;letter-spacing:1.6px;margin-top:49px;display:flex;align-items:center;gap:13px;color:var(--deep)}.line{width:34px;height:1px;background:var(--gold)}.hero-art{position:relative;max-width:420px;width:100%;padding:10px 20px 0 17px;justify-self:end}.arched-photo{height:425px;border-radius:220px 220px 3px 3px;overflow:hidden;position:relative;background:var(--beige);outline:1px solid var(--gold);outline-offset:9px}.arched-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.55)}.image-veil{position:absolute;inset:0;background:linear-gradient(0deg,#3B2B226e,transparent 65%),#6A554715}.photo-script{position:absolute;bottom:46px;left:30px;color:var(--cream);font-size:76px}.photo-caption{position:absolute;bottom:24px;left:32px;color:white;font-size:7px;letter-spacing:1.7px}.round-seal{position:absolute;right:-15px;top:35px;border:1px solid var(--gold);border-radius:50%;width:108px;height:108px;background:var(--cream);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:7px;letter-spacing:1.6px;line-height:1.5;transform:rotate(12deg)}.round-seal span{font:25px var(--serif);letter-spacing:0}.art-star{position:absolute;left:-22px;top:35px;color:var(--gold);font-size:60px}.hero-logo{position:absolute;width:180px;height:180px;left:-28px;top:0;border:5px solid var(--cream);border-radius:50%;overflow:hidden;background:var(--taupe)}.hero-logo img{width:100%;height:100%;object-fit:cover;transform:none}.image-location{font-size:8px;letter-spacing:1px;margin:25px 0 0;display:flex;justify-content:space-between}.image-location span{font:italic 15px var(--serif);letter-spacing:0}.values-strip{border-block:1px solid var(--line);display:flex;justify-content:center;align-items:center;gap:48px;padding:21px;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--deep)}.values-strip i{font-size:21px;color:var(--gold);font-style:normal}.about{display:grid;grid-template-columns:1fr 1.1fr;gap:100px;align-items:center}.about-visual{position:relative;padding:0 25px 20px 12px;max-width:380px}.garden-frame{height:350px;position:relative;border:1px solid var(--line);padding:12px}.garden-frame:before{content:'';position:absolute;inset:24px -16px -24px 20px;border:1px solid var(--gold);z-index:-1}.garden-frame img{width:100%;height:100%;object-fit:cover;filter:saturate(.65)}.garden-note{position:absolute;bottom:-19px;right:-13px;font-size:42px;background:var(--cream);padding:0 10px}.about-copy p{font-size:14px}.about-details{display:flex;gap:20px;padding-block:20px;margin-block:20px;border-block:1px solid var(--line)}.about-details span{font:italic 20px var(--serif);color:var(--taupe)}.about-details b{font:10px var(--body);display:block;color:var(--ink);margin-top:6px}.classes-section{background:#EAE0D3}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:35px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:330px;font-size:13px;margin-bottom:4px}.class-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.class-card{padding:32px 28px;border:1px solid #6B4E3D40;background:var(--surface);position:relative;transition:transform .25s}.class-card:hover{transform:translateY(-5px)}.class-number{font:italic 32px var(--serif);color:var(--taupe);display:flex;justify-content:space-between;margin-bottom:30px}.class-number span{font-size:38px;color:var(--gold)}.class-card .eyebrow{font-size:8px;letter-spacing:1.2px;margin-bottom:9px}.class-card h3{margin-bottom:15px}.class-card p:not(.eyebrow){font-size:13px;min-height:72px}.class-card a{margin-top:12px}.section-note{font-size:10px;text-align:center;margin-top:25px;margin-bottom:0}.spa{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:75px}.spa-symbol{border:1px solid var(--gold);border-radius:50% 50% 0 0;max-width:280px;height:270px;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:90px;color:var(--gold);position:relative;margin:auto;width:100%;background:radial-gradient(ellipse at bottom,#EAE0D3,transparent)}.spa-symbol .script{font-size:38px}.spa p{max-width:490px;font-size:14px}.experiences{background:var(--beige)}.center-heading{text-align:center;margin-bottom:40px}.center-heading p{font-size:13px}.center-heading .eyebrow{font-size:10px}.event-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.event-card{display:grid;grid-template-columns:.8fr 1fr;gap:25px;align-items:center;border-top:1px solid #6B4E3D50;padding-top:25px}.event-image{position:relative;height:235px;overflow:hidden}.event-image img{width:100%;height:100%;object-fit:cover;filter:saturate(.6)}.event-image:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#3B2B2280,transparent)}.event-image .script{position:absolute;bottom:12px;left:10px;color:white;font-size:43px;z-index:1}.event-card h3{font-size:29px}.event-card p{font-size:12px}.example-label{font-size:9px;letter-spacing:1px;color:var(--muted);border:1px solid #6B4E3D55;padding:6px 10px;display:inline-block}.promo-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.promo-card{padding:30px;background:var(--surface);border:1px solid var(--line)}.promo-card:nth-child(2){background:transparent}.promo-card .eyebrow{margin-bottom:13px;font-size:8px}.promo-card h3{font-size:36px;margin-bottom:15px}.promo-card p{font-size:13px}.promo-card small{font-size:10px;color:var(--muted);display:block;line-height:1.6}.price-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:35px;border-block:1px solid var(--line)}.price-card{padding:25px 20px;border-right:1px solid var(--line);text-align:center}.price-card:last-child{border:0}.price-card h3{font-size:24px;margin-bottom:7px}.price-card p{font-size:11px;margin-bottom:9px}.price-card strong{font:32px var(--serif);font-weight:400}.price-card small{font-size:9px;margin-left:7px;color:var(--muted)}.booking-section{background:#EAE0D3}.booking-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:90px;align-items:center}.booking-intro>p:not(.eyebrow){max-width:320px;font-size:14px}.booking-intro>.script{display:block;font-size:40px;margin-top:30px}.booking-note{display:flex;gap:18px;border-top:1px solid var(--line);margin-top:35px;padding-top:25px;max-width:330px}.booking-note>span{font-size:30px;color:var(--gold)}.booking-note p{font-size:11px}.booking-card{padding:30px;background:var(--surface);border:1px solid #A47E5E66;box-shadow:0 10px 40px #3B2B2207}.booking-top{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.6px}.steps{list-style:none;display:flex;padding:0;margin:25px 0 30px;gap:8px}.steps li{flex:1;border-top:2px solid var(--beige);font-size:10px;padding-top:9px;color:var(--muted)}.steps li.active{border-color:var(--deep);color:var(--ink);font-weight:500}.steps li.done{border-color:var(--taupe)}#step-content{min-height:245px}#step-content h3{font-size:29px;margin-bottom:7px}#step-content>p{font-size:12px;margin-bottom:20px}.choice-list{display:grid;gap:9px}.choice{display:block;position:relative}.choice input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;opacity:0;pointer-events:none}.choice>span{display:flex;border:1px solid #6B4E3D44;padding:12px 15px;font-size:13px;justify-content:space-between;align-items:center;transition:.2s}.choice>span:after{content:'○';color:var(--taupe)}.choice input:checked+span{border-color:var(--deep);background:var(--beige)}.choice input:checked+span:after{content:'●'}.choice small{font-size:11px;color:var(--muted);margin-left:auto;padding:0 10px 0 8px}.choice input:focus-visible+span{outline:2px solid var(--ink);outline-offset:3px}.days-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.days-grid .choice>span{display:flex;flex-direction:column;gap:0;padding:9px 5px;font-size:10px}.days-grid .choice>span:after,.times-grid .choice>span:after{display:none}.days-grid b{font:25px var(--serif)}.times-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.times-grid .choice>span{justify-content:center}.field{display:block;font-size:11px;margin-top:12px}.field input,.field select,.field textarea{display:block;width:100%;padding:10px 12px;border:1px solid #6B4E3D60;background:transparent;border-radius:0;color:var(--ink);margin-top:5px;min-height:44px}.field textarea{min-height:88px;resize:vertical;font:inherit}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form-success{text-align:center;padding:28px 10px 10px}.form-success h3{margin-bottom:12px}.form-success p{font-size:15px;color:var(--ink)}.field-hint{font-size:10px;margin:9px 0 0}.booking-summary{font-size:11px;padding:10px;background:var(--beige);line-height:1.6;margin-top:15px}.booking-controls{display:flex;justify-content:space-between;align-items:center;margin-top:20px;gap:12px}.booking-controls .button{margin-left:auto}.back-button{border:0;background:none;color:var(--muted);font-size:12px;padding:10px 0}.schedule-note{font-size:9px;text-align:center;margin:20px 0 0}.form-error{font-size:12px;color:#6B4E3D;margin:10px 0 0}.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.testimonial{border-top:1px solid var(--line);padding-top:18px}.quote-mark{font:55px/.9 var(--serif);color:var(--taupe)}.testimonial blockquote{margin:10px 0 20px;font:italic 25px/1.35 var(--serif)}.testimonial small{font-size:9px;color:var(--muted)}.location-section{background:var(--beige)}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.location-grid p{font-size:13px;max-width:300px}.valet{margin:22px 0}.location-art{height:300px;border:1px solid #6B4E3D40;position:relative;overflow:hidden;display:grid;place-items:center;background:linear-gradient(28deg,transparent 45%,#F3EDE4 45%,#F3EDE4 50%,transparent 50%),linear-gradient(110deg,transparent 30%,#F3EDE4 30%,#F3EDE4 35%,transparent 35%),linear-gradient(110deg,transparent 73%,#F3EDE4 73%,#F3EDE4 77%,transparent 77%),#E4D6C5}.map-pin{background:var(--cream);border:1px solid var(--gold);padding:15px 24px;text-align:center;box-shadow:0 6px 25px #3B2B2210;z-index:1}.map-pin span{font-size:30px;color:var(--taupe);display:block;line-height:1}.map-pin b{font:25px var(--serif);display:block}.map-pin small{font-size:7px;letter-spacing:1px}.map-street{position:absolute;font-size:8px;letter-spacing:3px;color:var(--deep)}.street-one{top:49px;left:38px;transform:rotate(28deg)}.street-two{right:4px;top:170px;transform:rotate(-70deg)}.map-bottom{position:absolute;bottom:17px;font-size:8px;letter-spacing:3px}.faq{display:grid;grid-template-columns:1fr 1.2fr;gap:80px}.faq>div>p{font-size:13px}.faq details{border-bottom:1px solid var(--line)}.faq summary{padding:18px 28px 18px 0;font-size:13px;cursor:pointer;list-style:none;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';position:absolute;right:4px;font-size:21px;color:var(--taupe);top:12px}.faq details[open] summary:after{content:'−'}.faq details p{font-size:12px;padding-right:20px}.closing{text-align:center;border-top:1px solid var(--line);padding:55px 0 70px}.closing .script{font-size:62px}.closing p{font-size:13px;margin-top:8px}.closing .button{margin-top:10px}footer{background:var(--deep);color:var(--cream)}.footer-main{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-block:42px}.footer-main p{font-size:11px;color:var(--cream);margin:0}.footer-main>div{display:flex;flex-direction:column;gap:8px;font-size:12px}.footer-bottom{border-top:1px solid #F3EDE433;display:flex;justify-content:space-between;padding-block:17px;font-size:9px;color:var(--cream)}.floating-wa{position:fixed;bottom:24px;right:24px;width:53px;height:53px;display:grid;place-items:center;background:var(--ink);border:1px solid var(--gold);border-radius:50%;color:var(--cream);z-index:30;box-shadow:0 4px 18px #3B2B2220}.skip-link{position:fixed;top:-100px;left:15px;background:var(--ink);color:white;padding:10px;z-index:100}.skip-link:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.noscript{padding:20px}.reveal{opacity:1}.js .reveal{opacity:0;transform:translateY(20px);transition:opacity .7s,transform .7s}.js .reveal.visible{opacity:1;transform:none}[hidden]{display:none!important}
@media(min-width:1450px){.hero{padding-block:85px}.arched-photo{height:470px}}@media(max-width:1050px){.section-wrap{width:calc(100% - 64px)}.header nav{gap:18px}.hero{gap:32px}.hero-art{padding-right:15px}.round-seal{right:-8px}.hero-actions{gap:16px}.hero-footnote{font-size:7px}.values-strip{gap:25px}.about{gap:50px}.event-card{grid-template-columns:1fr}.event-image{height:210px}.event-image img{object-position:center 40%}.booking-layout{gap:45px}.section-heading{align-items:start}.section-heading>p{max-width:260px}.class-card{padding:25px 20px}}@media(max-width:760px){.announcement{font-size:9px}.announcement span{display:none}.header{padding:17px 24px}.wordmark{font-size:27px}.menu-toggle{display:block;background:transparent;border:1px solid var(--line);color:var(--ink);font-size:21px;width:42px;height:40px}.header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--cream);padding:20px 24px;border-bottom:1px solid var(--line);align-items:stretch;font-size:14px}.header nav.open{display:flex;flex-direction:column;gap:18px}.header .small{margin:0}.section-wrap{width:calc(100% - 44px)}.section-space{padding-block:64px}.hero{grid-template-columns:1fr;padding-top:40px;padding-bottom:38px;gap:40px}.hero-copy{padding:0}.eyebrow{font-size:9px;letter-spacing:1.8px;margin-bottom:18px}h1{font-size:46px;letter-spacing:-1.3px}.hero-script{font-size:40px}.intro{font-size:13px;max-width:380px}.hero-actions{gap:20px;margin-top:25px}.hero-actions .button{padding:12px 17px;gap:18px}.text-link{font-size:11px}.hero-footnote{margin-top:28px;font-size:7px}.hero-art{max-width:340px;justify-self:center;padding-inline:20px}.arched-photo{height:335px}.round-seal{width:89px;height:89px;right:-2px;top:24px;font-size:6px}.round-seal span{font-size:23px}.hero-logo{left:-2px;width:140px;height:140px;top:0}.art-star{left:-3px;font-size:45px;top:24px}.photo-script{font-size:61px;left:23px}.photo-caption{font-size:6px;left:23px}.image-location{font-size:6px}.image-location span{font-size:13px}.values-strip{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding:20px 22px;text-align:center;font-size:8px}.values-strip i{display:none}.about{grid-template-columns:1fr;gap:53px}.about-visual{width:80%;margin:auto}.garden-frame{height:285px}.garden-note{font-size:37px}.about-details{justify-content:space-between}.section-heading{flex-direction:column;gap:20px;margin-bottom:25px}.section-heading>p{max-width:none}.class-grid{grid-template-columns:1fr;gap:15px}.class-card{padding:25px}.class-number{margin-bottom:15px}.class-card p:not(.eyebrow){min-height:0}.class-card h3{font-size:32px}.class-card a{margin-top:0}.spa{grid-template-columns:1fr;gap:35px}.spa-symbol{width:200px;height:190px;font-size:65px}.spa-symbol .script{font-size:32px}.event-grid{grid-template-columns:1fr;gap:30px}.event-card{grid-template-columns:.85fr 1fr;gap:20px}.event-image{height:220px}.event-card h3{font-size:27px}.event-image .script{font-size:35px}.promo-grid{grid-template-columns:1fr;gap:15px}.promo-card{padding:25px}.price-grid{grid-template-columns:1fr}.price-card{border:0;border-bottom:1px solid var(--line);padding:20px}.booking-layout{grid-template-columns:1fr;gap:30px}.booking-intro>.script{font-size:35px;margin-top:20px}.booking-note{margin-top:22px;padding-top:16px;max-width:none}.booking-note p{margin-bottom:0}.booking-card{padding:23px 20px}.testimonial-grid{grid-template-columns:1fr;gap:25px}.testimonial blockquote{font-size:26px}.location-grid{grid-template-columns:1fr;gap:30px}.location-art{height:255px}.faq{grid-template-columns:1fr;gap:20px}.closing .script{font-size:49px}.closing{padding-block:45px 55px}.footer-main{display:grid;grid-template-columns:1fr 1fr;padding-block:32px;gap:25px}.footer-main .wordmark{justify-self:start}.footer-main>p{grid-column:1;grid-row:2}.footer-main>div{grid-row:1 / 3;grid-column:2;justify-self:end;font-size:10px}.footer-bottom{font-size:8px;gap:12px}.floating-wa{width:48px;height:48px;right:16px;bottom:16px}.center-heading h2{font-size:36px}}@media(max-width:360px){h1{font-size:39px}.hero-actions{align-items:start;flex-direction:column}.event-card{grid-template-columns:1fr}.event-image{height:200px}.days-grid{grid-template-columns:repeat(3,1fr)}.booking-card{padding:20px 15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.js .reveal{opacity:1;transform:none}}

/* Accessible shortcut and high-contrast hero wordmark. */
.floating-wa{min-width:48px;min-height:48px;bottom:calc(24px + env(safe-area-inset-bottom, 0px));transition:opacity .2s,visibility .2s}
.floating-wa.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.hero-logo{display:grid;place-items:center;background:#6B4E3D;border:3px solid var(--gold);box-shadow:0 0 0 5px var(--cream);color:var(--cream);text-align:center}
.hero-logo>span{font:28px/1.2 var(--serif);letter-spacing:2px}
.hero-logo small{display:block;font:10px/1.5 var(--body);letter-spacing:1px;margin-top:8px}
@media(max-width:760px){
  body{padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px));--deep:#6B4E3D;--taupe:#6A5547;--muted:#6A5547}
  .floating-wa{bottom:calc(16px + env(safe-area-inset-bottom, 0px))}
  .hero-art{display:flex;flex-direction:column;gap:24px;padding-top:0}
  .hero-logo{position:static;order:-1;align-self:center;width:160px;height:160px;flex-shrink:0}
  .hero-logo small{font-size:13px;letter-spacing:0}
  .arched-photo{width:100%;flex-shrink:0;height:auto;overflow:hidden}
  .arched-photo img{height:335px}
  .round-seal{position:static;width:auto;height:auto;border:0;border-radius:0;background:none;transform:none;display:block;text-align:center;font-size:13px;letter-spacing:1px;line-height:1.8}
  .round-seal br{display:none}
  .round-seal span{font:inherit;letter-spacing:inherit}
  .round-seal span:before,.round-seal span:after{content:' · '}
  .art-star{display:none}
  .image-location{margin:0;flex-wrap:wrap;gap:8px;letter-spacing:.3px}
  .photo-caption{position:static;display:block;padding:12px;background:var(--ink);color:white;letter-spacing:.5px;line-height:1.5}
  .image-veil{bottom:63px}
  .photo-script{bottom:86px}
  .announcement,.wordmark span,.text-link,.hero-footnote,.photo-caption,.image-location,
  .values-strip,.about-details b,.eyebrow,.class-card .eyebrow,.center-heading .eyebrow,
  .promo-card .eyebrow,.section-note,.event-card p,.example-label,.promo-card small,
  .price-card p,.price-card small,.booking-note p,.booking-top,.steps li,
  .days-grid .choice>span,.field,.field-hint,.booking-summary,.back-button,
  .schedule-note,.form-error,.testimonial small,.map-pin small,.map-street,.map-bottom,
  .faq details p,.footer-main p,.footer-main>div,.footer-bottom,.button{font-size:13px}
  .eyebrow,.class-card .eyebrow,.promo-card .eyebrow,.center-heading .eyebrow{letter-spacing:1px;color:var(--deep)}
  .hero-footnote{letter-spacing:.5px;line-height:1.6}
  .hero-footnote .line{flex-shrink:0}
  .wordmark span{letter-spacing:.3px}
  .booking-top{letter-spacing:.6px;gap:10px}
  .field input,.field select,.field textarea{font-size:16px}
  .footer-bottom{flex-wrap:wrap;color:var(--cream)}
  .map-street,.map-bottom{color:var(--ink);letter-spacing:.5px}
  .about-details{gap:12px;flex-wrap:wrap}
}

/* Boutique mobile experience; desktop grids retain their original layout. */
.swipe-hint,.booking-progress{display:none}
.floating-wa{bottom:calc(24px + env(safe-area-inset-bottom, 0px));right:calc(16px + env(safe-area-inset-right, 0px))}
@media(max-width:480px){
  html{scroll-padding-top:24px}
  body{font-size:15px;--muted:#6A5547}
  .section-wrap{width:calc(100% - 48px)}
  .section-space{padding-block:80px}
  h2,.center-heading h2{font-size:clamp(2.2rem,10.5vw,2.6rem);line-height:1.08}
  em{color:var(--ink)}
  .announcement{display:none}
  .header{position:absolute;inset:0 0 auto;padding:calc(18px + env(safe-area-inset-top, 0px)) 24px 18px;background:transparent;backdrop-filter:none;border:0;align-items:start}
  .header>.wordmark{padding:15px 14px;background:var(--cream);border:1px solid var(--gold);font-size:28px;letter-spacing:4px;box-shadow:0 4px 24px #3B2B2220}
  .header .wordmark span{font-size:10px;letter-spacing:1px;margin-top:8px}
  .menu-toggle{width:48px;height:48px;background:var(--cream);border-color:var(--gold)}
  .header nav{font-size:16px;padding:24px;box-shadow:0 16px 30px #3B2B2220}
  .header nav a{min-height:48px;display:flex;align-items:center}
  .hero{position:relative;isolation:isolate;width:100%;max-width:none;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;padding:160px 24px 88px;gap:0;background:var(--ink)}
  .hero-art{position:absolute;inset:0;max-width:none;width:100%;height:100%;padding:0;z-index:-1}
  .arched-photo{height:100%;border-radius:0;outline:0}
  .arched-photo img{object-fit:cover;object-position:center;filter:saturate(.65)}
  .image-veil{background:linear-gradient(to bottom,transparent 20%,rgba(59,43,34,.3) 55%,rgba(59,43,34,.55) 100%)}
  .hero-copy{width:100%;max-width:420px;text-shadow:0 1px 4px rgba(59,43,34,.6)}
  .hero-copy,.hero-copy p,.hero-copy em{color:var(--cream)}
  .hero h1{font-size:clamp(2.1rem,9.6vw,2.6rem);letter-spacing:-1.1px;line-height:1.05;text-wrap:balance;margin-bottom:20px}
  .hero h1 em{font-family:Allura,cursive;font-size:1.16em;white-space:nowrap}
  .hero .eyebrow{font-size:14px;letter-spacing:1px;margin-bottom:24px}
  .hero-script{font-size:40px;margin-bottom:20px}
  .hero .intro{font-size:15px;line-height:1.65;max-width:34ch}
  .hero-actions{display:block;margin-top:28px}
  .hero-actions .button{width:100%;min-height:56px;background:var(--cream);border-color:var(--cream);color:var(--ink);font-size:16px}
  .hero-actions .text-link,.hero-footnote,.round-seal,.art-star,.hero-logo,.photo-script,.photo-caption,.image-location,.tiny-star{display:none}
  .hero :focus-visible{outline-color:var(--cream)}
  .values-strip{display:none}
  .eyebrow,.center-heading .eyebrow,.class-card .eyebrow,.promo-card .eyebrow{font-size:14px;letter-spacing:1.2px;color:var(--ink);line-height:1.6}
  .section-heading>p,.center-heading p,.about-copy p,.class-card p:not(.eyebrow),.event-card p,.promo-card p,.spa p,.location-grid p,.faq>div>p,.faq details p,.closing p{font-size:15px}
  .section-note,.example-label,.promo-card small,.price-card p,.price-card small,.booking-note p,.booking-top,.steps li,#step-content>p,.field,.field-hint,.booking-summary,.schedule-note,.form-error,.testimonial small,.footer-main p,.footer-main>div,.footer-bottom,.map-pin small,.map-street,.map-bottom,.about-details b{font-size:14px}
  .button{font-size:15px;background:var(--ink);border-color:var(--ink);color:var(--cream);min-height:52px}
  .text-link{font-size:14px;min-height:48px;display:inline-flex;align-items:center}
  .script{color:var(--ink)}
  .about-details{gap:14px;flex-wrap:wrap}
  .about-details span{flex:1 1 80px;color:var(--ink)}
  .section-heading,.center-heading{margin-bottom:28px}
  .swipe-hint{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:14px;margin:0 0 16px;border-top:1px solid var(--gold);padding-top:12px}
  .class-grid,.event-grid,.promo-grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:24px;margin-inline:-24px;padding:4px 24px 20px;scrollbar-width:none}
  .class-grid::-webkit-scrollbar,.event-grid::-webkit-scrollbar,.promo-grid::-webkit-scrollbar{display:none}
  .class-grid>*,.event-grid>*,.promo-grid>*{flex:0 0 82%;min-width:0;scroll-snap-align:start;scroll-margin:0;transform:none}
  .class-card,.promo-card{padding:28px 24px;border:1px solid var(--line);border-top-color:var(--gold)}
  .class-card{display:flex;flex-direction:column}
  .class-card .text-link{margin-top:auto;align-self:start}
  .class-number{margin-bottom:24px;color:var(--ink)}
  .event-card{display:flex;flex-direction:column;gap:0;align-items:stretch;padding:0;background:var(--cream);border:1px solid var(--line)}
  .event-image{height:240px;flex-shrink:0}
  .event-card>div:last-child{padding:24px}
  .event-card h3{font-size:32px;margin-bottom:16px}
  .promo-card h3{font-size:36px}
  .price-grid{margin-top:24px}
  .booking-layout{gap:32px;min-width:0}
  .booking-intro>.script{margin-top:24px}
  .booking-card{padding:24px 18px;border-radius:16px;min-width:0}
  .booking-top{letter-spacing:.5px;gap:8px}
  .booking-progress{display:block;height:3px;background:var(--beige);margin-top:22px;overflow:hidden;border-radius:3px}
  .booking-progress span{display:block;width:25%;height:100%;background:var(--ink)}
  .steps{margin:12px 0 28px;gap:6px}
  .steps li{border:0;padding-top:0}
  #step-content h3{font-size:32px;line-height:1.12;margin-bottom:16px}
  .choice>span{min-height:56px;font-size:16px;border-radius:8px;color:var(--ink)}
  .choice input:checked+span{border-color:var(--ink);background:var(--beige);box-shadow:inset 0 0 0 1px var(--ink)}
  .choice>span:after{color:var(--ink)}
  .days-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.field-row{grid-template-columns:1fr}
  .days-grid .choice>span{font-size:14px;min-height:88px}
  .times-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  #step-content[data-step="2"]{min-height:0}
  .times-grid .choice>span{padding:10px 4px;min-height:48px;font-size:14px}
  .field input,.field select,.field textarea{font-size:16px;min-height:52px;border-radius:8px;background:var(--cream)}
  .booking-section{--booking-bar-height:calc(85px + env(safe-area-inset-bottom, 0px));padding-bottom:calc(80px + var(--booking-bar-height))}
  #booking-form{padding-bottom:var(--booking-bar-height);scroll-margin-bottom:calc(var(--booking-bar-height) + 24px)}
  #step-content :focus{scroll-margin-block:24px 140px}
  .booking-controls{min-height:56px}
  .booking-controls-visible .booking-controls{position:fixed;inset:auto 0 0;z-index:40;margin:0;padding:14px 24px calc(14px + env(safe-area-inset-bottom, 0px));background:var(--cream);border-top:1px solid var(--gold);box-shadow:0 -8px 30px #3B2B2210}
  .booking-controls .button{flex:1;gap:12px;font-size:15px}
  .back-button{min-height:52px;min-width:60px;font-size:14px;color:var(--ink)}
  .floating-wa{width:48px;height:48px;bottom:calc(18px + env(safe-area-inset-bottom, 0px))}
  .closing{padding-bottom:100px}
  footer{background:var(--ink)}
  .footer-main{grid-template-columns:1fr;gap:24px}
  .footer-main>div,.footer-main>p{grid-column:auto;grid-row:auto;justify-self:start}
  .footer-main a{min-height:48px;display:inline-flex;align-items:center}
  .footer-bottom{flex-direction:column;padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px))}
  .map-street{letter-spacing:1px;color:var(--ink)}
  .map-bottom{letter-spacing:1px}
  .testimonial blockquote{font-size:28px}
}

/* Hero móvil: foto arriba limpia + texto sobre crema sólido */
@media (max-width:480px){
  .hero{display:flex;flex-direction:column;align-items:stretch;min-height:0;padding:0 0 48px;background:var(--cream)}
  .hero-art{position:relative;inset:auto;order:-1;height:55svh;min-height:300px;z-index:0}
  .hero-art .arched-photo{height:100%;border-radius:0 0 50% 50% / 0 0 34px 34px}
  .hero-art .arched-photo img{filter:none;height:100%;width:100%;object-fit:cover}
  .hero-art .arched-photo{outline:0;background:transparent}
  .hero .image-veil{display:none}
  .hero-copy{padding:32px 24px 0;text-shadow:none!important;max-width:none}
  .hero-copy *{text-shadow:none!important}
  .hero-copy,.hero-copy p,.hero h1{color:var(--ink)}
  .hero-copy .intro{color:var(--muted)}
  .hero .eyebrow{color:var(--deep)}
  .hero h1 em,.hero-script{color:var(--taupe)}
  .hero-actions .button{background:var(--ink);border-color:var(--ink);color:var(--cream);box-shadow:none}
  .hero-actions .button:hover,.hero-actions .button:focus-visible{background:#523A2D;color:var(--cream)}
  .hero :focus-visible{outline-color:var(--ink)}
  #step-content{min-height:0!important}
  #booking-form{padding-bottom:0!important}
  .booking-section{padding-bottom:calc(112px + env(safe-area-inset-bottom))!important}
  .event-image .script:empty{display:none}
}
body.wa-suppress .floating-wa{opacity:0!important;pointer-events:none!important;visibility:hidden}


/* PWA: superficies discretas y espacio para los bordes del dispositivo. */
.header{padding-top:calc(20px + env(safe-area-inset-top, 0px));padding-left:max(5%, env(safe-area-inset-left, 0px));padding-right:max(5%, env(safe-area-inset-right, 0px))}
.pwa-install{position:fixed;z-index:45;left:calc(20px + env(safe-area-inset-left, 0px));bottom:calc(20px + env(safe-area-inset-bottom, 0px));width:min(340px, calc(100% - 40px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)));padding:24px;border:1px solid var(--gold);border-radius:14px;background:var(--cream);box-shadow:0 8px 35px #3B2B2220}
.pwa-title{font:27px/1.15 var(--serif);color:var(--ink);padding-right:24px;margin:0 0 12px}
.pwa-hint,.pwa-ios,.pwa-demo-note{font-size:14px;margin:0 0 16px}
.pwa-ios,.pwa-demo-note{margin-bottom:0}
.pwa-close{position:absolute;top:4px;right:4px;width:44px;height:44px;border:0;background:transparent;color:var(--ink);font-size:26px}
.pwa-install .button{background:var(--ink);border-color:var(--ink);font-size:14px}
.pwa-update{position:fixed;z-index:50;top:calc(16px + env(safe-area-inset-top, 0px));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px));padding:8px 16px;background:var(--cream);color:var(--ink);border:1px solid var(--gold);border-radius:12px;box-shadow:0 5px 25px #3B2B2220;font-size:14px}
.pwa-update button{min-height:44px;border:0;background:none;color:var(--ink);text-decoration:underline;text-underline-offset:4px}
@media(max-width:760px){.header{padding-top:calc(17px + env(safe-area-inset-top, 0px));padding-inline:max(24px, env(safe-area-inset-left, 0px)) max(24px, env(safe-area-inset-right, 0px))}}
@media(max-width:480px){
  .header{padding-top:calc(18px + env(safe-area-inset-top, 0px))}
  body:not(.booking-controls-visible) .booking-controls{position:static;inset:auto}
  .booking-controls-visible .booking-controls{padding-left:calc(24px + env(safe-area-inset-left, 0px));padding-right:calc(24px + env(safe-area-inset-right, 0px))}
  #booking-form{padding-bottom:0!important}
  .pwa-install{bottom:calc(80px + env(safe-area-inset-bottom, 0px))}
}
@media(display-mode:standalone){
  html{scroll-padding-top:calc(95px + env(safe-area-inset-top, 0px))}
  body{overscroll-behavior-y:contain}
  .pwa-install{display:none}
  .floating-wa{right:calc(18px + env(safe-area-inset-right, 0px))}
}

/* Fotografías del estudio: marcos cálidos y tira deslizable en móvil. */
.arched-photo img{object-position:center 20%}
.studio-gallery{border-top:1px solid var(--line)}
.studio-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.studio-photo-grid img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border:1px solid var(--line);padding:8px;background:var(--beige)}
@media(max-width:760px){
  .hero-art .arched-photo img{object-position:center 20%}
  .studio-gallery .swipe-hint{display:flex;justify-content:space-between;color:var(--muted)}
  .studio-photo-grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:16px}
  .studio-photo-grid img{flex:0 0 82%;min-width:0;scroll-snap-align:start}
}

/* Consistent earth-tone actions across responsive and PWA variants. */
.button,.hero-actions .button,.pwa-install .button{background:var(--deep);border-color:var(--deep);color:#FFFFFF}
.button:hover,.hero-actions .button:hover,.pwa-install .button:hover{background:var(--hover);border-color:var(--hover);color:#FFFFFF}

/* Reserva dinámica: tipos, calendario, ticket y éxito. */
.booking-card .booking-progress{display:block;height:3px;background:var(--beige);margin-top:18px;overflow:hidden;border-radius:3px}
.booking-card .booking-progress span{display:block;width:33%;height:100%;background:var(--deep);transition:width .45s ease}
#step-content.step-enter{animation:verozh-step-in .45s ease}
@keyframes verozh-step-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.tipo-grid{display:grid;gap:12px}
.tipo-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:22px 20px;border:1px solid #6B4E3D44;background:var(--cream);color:var(--ink);text-align:left;min-height:148px;transition:border-color .2s,background .2s,transform .2s}
.tipo-card:hover{transform:translateY(-2px);border-color:var(--deep)}
.tipo-card:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.tipo-card.is-selected{border-color:var(--deep);background:var(--beige);box-shadow:inset 0 0 0 1px var(--deep)}
.tipo-kicker{font-size:9px;letter-spacing:1.8px;text-transform:uppercase;color:var(--gold)}
.tipo-card strong{font:28px/1.1 var(--serif);font-weight:400;color:var(--deep)}
.tipo-price{font:15px var(--serif);color:var(--taupe)}
.tipo-note{font-size:12px;color:var(--muted);margin-top:4px}
.day-strip-hint{display:none;font-size:11px;letter-spacing:.4px;color:var(--muted);margin:0 0 10px}
.day-strip{display:none}
.day-month-heading{font:22px/1.2 var(--serif);color:var(--deep);margin:0 0 12px}
.day-dows{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);text-align:center;margin-bottom:8px}
.day-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.day-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;padding:8px 4px;border:1px solid #6B4E3D33;background:var(--cream);color:var(--ink);width:100%}
.day-chip:hover{border-color:var(--deep)}
.day-chip:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.day-chip.is-selected{background:var(--deep);border-color:var(--deep);color:var(--cream)}
.day-chip.is-today:not(.is-selected){border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.day-chip.is-empty{opacity:.45}
.day-cell.is-spacer{visibility:hidden}
.day-dow{font-size:9px;letter-spacing:.8px;text-transform:capitalize}
.day-num{font:22px/1 var(--serif)}
.day-mark{font-size:8px;letter-spacing:1px;text-transform:uppercase}
.slot-heading{font-size:12px;margin:22px 0 12px}
.slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.slot-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:64px;padding:10px 6px;border:1px solid #6B4E3D44;background:var(--cream);color:var(--ink)}
.slot-card:hover:not([disabled]){border-color:var(--deep);transform:translateY(-1px)}
.slot-card:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.slot-card.is-selected{background:var(--deep);border-color:var(--deep);color:var(--cream)}
.slot-card[disabled]{opacity:.45;cursor:not-allowed;transform:none}
.slot-time{font:20px/1 var(--serif)}
.slot-meta{font-size:9px;letter-spacing:.6px;text-transform:uppercase}
.slot-empty{font-size:12px;margin-top:12px}
.booking-ticket{position:relative;margin:4px 0 22px;padding:18px 18px 16px;background:var(--cream);border:1px dashed var(--gold);box-shadow:0 8px 24px #3B2B2208}
.booking-ticket:before,.booking-ticket:after{content:'';position:absolute;top:50%;width:12px;height:12px;background:var(--surface);border-radius:50%;transform:translateY(-50%)}
.booking-ticket:before{left:-7px;border-right:1px dashed var(--gold)}
.booking-ticket:after{right:-7px;border-left:1px dashed var(--gold)}
.ticket-brand{font:13px var(--serif);letter-spacing:3px;color:var(--deep);margin-bottom:12px}
.ticket-brand span{display:block;font:8px var(--body);letter-spacing:2px;margin-top:3px;color:var(--muted)}
.ticket-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;border-top:1px solid #A47E5E33;font-size:11px;color:var(--muted)}
.ticket-row b{font:16px/1.3 var(--serif);font-weight:400;color:var(--ink);text-align:right}
.ticket-stub{margin:12px 0 0;font-size:9px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gold)}
.booking-extras{margin-top:16px;border-top:1px solid var(--line);padding-top:8px}
.booking-extras summary{cursor:pointer;font-size:12px;padding:8px 0;color:var(--ink);list-style:none}
.booking-extras summary::-webkit-details-marker{display:none}
.booking-extras summary:after{content:'+';float:right;color:var(--taupe)}
.booking-extras[open] summary:after{content:'−'}
.booking-extras summary span{color:var(--muted)}
.form-success{text-align:center;padding:18px 8px 8px}
.success-check{width:72px;height:72px;margin:0 auto 18px}
.success-check svg{width:100%;height:100%}
.success-ring,.success-tick{stroke:var(--deep);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.success-ring{stroke-dasharray:160;stroke-dashoffset:160;animation:verozh-ring .7s ease forwards}
.success-tick{stroke-dasharray:40;stroke-dashoffset:40;animation:verozh-tick .45s ease .45s forwards}
@keyframes verozh-ring{to{stroke-dashoffset:0}}
@keyframes verozh-tick{to{stroke-dashoffset:0}}
.success-note{font-size:12px;max-width:32ch;margin:8px auto 0}
.success-actions{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:24px}
.success-actions .button{width:100%}
.booking-controls:not(:has(button:not([hidden]))){display:none;margin:0;min-height:0}
@media(min-width:761px){
  .tipo-grid{grid-template-columns:1fr 1fr}
  .booking-card{padding:34px 32px}
  .day-month-grid .day-dow{display:none}
  .day-month-grid .day-chip{min-height:54px;padding:6px 4px}
  .day-month-grid .day-num{font-size:20px}
}
@media(max-width:760px){
  .day-month{display:none}
  .day-strip-wrap{display:block}
  .day-strip-hint{display:flex;justify-content:space-between}
  .day-strip{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:-18px;padding:4px 18px 12px}
  .day-strip::-webkit-scrollbar{display:none}
  .day-chip{flex:0 0 64px;width:64px;min-height:78px;scroll-snap-align:center;border-radius:8px}
  .tipo-card{min-height:136px;border-radius:12px}
  .slot-card{border-radius:8px}
  .booking-ticket{border-radius:4px}
}
@media(max-width:480px){
  .tipo-card strong{font-size:26px}
  .slot-time{font-size:18px}
  .day-chip{flex-basis:62px}
  .booking-progress span{transition:width .45s ease}
}
@media(prefers-reduced-motion:reduce){
  #step-content.step-enter,.tipo-card,.slot-card{animation:none;transition:none}
  .success-ring,.success-tick{animation:none;stroke-dashoffset:0}
  .booking-card .booking-progress span{transition:none}
}

/* Logo vectorial (SVG como máscara: toma el color del texto). */
.logo-mark{display:block;aspect-ratio:959/110.25;background:currentColor;-webkit-mask:url(/public/img/verozh-logo.svg) center/contain no-repeat;mask:url(/public/img/verozh-logo.svg) center/contain no-repeat}
.wordmark .logo-mark{width:230px}
footer .wordmark .logo-mark{width:260px}
.hero-logo .logo-mark{width:78%}
.hero-logo{grid-auto-flow:row;align-content:center;gap:10px}
.hero-logo small{margin-top:0;letter-spacing:3px}
@media(max-width:1050px){.wordmark .logo-mark{width:200px}}
@media(max-width:480px){.header>.wordmark{padding:13px 14px}.header .wordmark .logo-mark{width:170px}footer .wordmark .logo-mark{width:220px}}
.booking-logo{width:190px;margin:0 auto 22px;color:var(--ink)}
@media(max-width:480px){.booking-logo{width:160px;margin-bottom:18px}}
