@font-face{font-family:'Noto Sans Georgian';font-style:normal;font-weight:400;font-display:block;src:url('/assets/fonts/noto-georgian-400.ttf') format('truetype')}
@font-face{font-family:'Noto Sans Georgian';font-style:normal;font-weight:500;font-display:block;src:url('/assets/fonts/noto-georgian-500.ttf') format('truetype')}
:root{--brand-ink:#48372f;--brand-olive:#6d6943;--brand-powder:#dab4ae;--surface-powder-soft:linear-gradient(135deg,#eedbd5,#f7eae5);--brand-milk:#f4f3ee;--brand-paper:#fffdf8;--brand-chocolate-surface:radial-gradient(ellipse at 12% 0,#9d776344,transparent 65%),linear-gradient(115deg,#574238,var(--brand-ink));--surface-hover:#efdfd855;--control-hover-bg:#e7dfd7;--control-hover-border:#aa9483;--control-hover-tint:#48372f12;--muted-on-tint:#67594f;--surface-olive-soft:#ecebdf;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:block;src:url('/assets/fonts/manrope-400.ttf') format('truetype')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:block;src:url('/assets/fonts/manrope-500.ttf') format('truetype')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:block;src:url('/assets/fonts/manrope-600.ttf') format('truetype')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:block;src:url('/assets/fonts/manrope-700.ttf') format('truetype')}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Manrope','Noto Sans Georgian',sans-serif;font-size:14px}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}header{height:112px;margin:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.logo{font-size:43px;line-height:.9;letter-spacing:-3px;font-weight:500}.logo span{display:block;letter-spacing:1.1px;font-size:8px;margin-top:10px;text-transform:uppercase}nav{display:flex;gap:36px;font-size:12px}.header-right{display:flex;align-items:center;gap:30px}.languages{display:flex;gap:9px}.languages button{border:0;background:none;color:#918c88;padding:4px 0;font-size:11px}.languages button.active{color:var(--rose);border-bottom:1px solid}.small-button{border:1px solid var(--line);padding:13px 22px;border-radius:25px;font-size:11px}.hero{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:6%;padding:48px 7% 52px 8%;min-height:660px}.hero-copy{padding-top:38px}.eyebrow{font-size:10px;letter-spacing:1.8px;text-transform:uppercase;display:flex;align-items:center;gap:9px}.dot{width:6px;height:6px;border-radius:100%;background:#8b9a7e}h1{font-size:clamp(42px,5.2vw,78px);font-weight:400;letter-spacing:-3.5px;line-height:1.09;margin:29px 0 25px}h1 em{font-family:Georgia,serif;font-weight:400;color:var(--rose)}.intro{max-width:340px;line-height:1.9;font-size:13px;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:46px;background:var(--rose);color:white;border-radius:32px;padding:18px 25px;font-size:12px;margin-top:22px;border:0}.button:hover{background:#a16f72}.button>span:last-child{font-size:20px}.hero-bottom{display:flex;align-items:center;gap:14px;margin-top:44px;font-size:10px;color:var(--muted);max-width:240px;line-height:1.7}.round-mark{font-size:38px;color:#8c927e}.hero-photo{position:relative;border-radius:180px 180px 5px 5px;overflow:hidden;min-height:550px;background:#bac2b2}.hero-photo img{width:100%;height:100%;object-fit:cover;position:absolute;filter:brightness(.83) saturate(.6)}.photo-label{position:absolute;left:28px;bottom:42px;color:#fff;font-size:12px;line-height:1.8;letter-spacing:2px}.photo-label span{display:block}.image-caption{position:absolute;right:20px;top:56%;writing-mode:vertical-rl;color:#fff9;font-size:8px;letter-spacing:1px}.vertical-note{position:absolute;right:2.5%;top:40%;writing-mode:vertical-rl;font-size:8px;letter-spacing:2px;color:#89837a}.ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:23px 8%;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:10px;letter-spacing:1.8px;text-transform:uppercase}.ticker b{font-size:23px;font-weight:400;color:#8c927e}.section{padding:90px 8%}h2{font-size:clamp(32px,3.5vw,49px);font-weight:400;line-height:1.2;letter-spacing:-1.7px;margin:22px 0}h3{font-weight:500}.approach{display:grid;grid-template-columns:1fr 1fr;column-gap:12%}.about-copy{padding-top:37px;color:var(--muted);line-height:1.9}.text-link{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);color:var(--ink);max-width:220px}.principles{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:40px}.principles article{border-top:1px solid var(--line);padding-top:22px}.principles article>span{color:#999186;font-size:10px}.principles h3{font-size:18px;margin-top:25px}.principles p{font-size:12px;line-height:1.9;color:var(--muted);max-width:270px}.schedule{background:#efede7}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:32px;gap:35px}.section-head p{max-width:310px;line-height:1.9;color:var(--muted);font-size:12px;margin-bottom:26px}.booking-grid{display:grid;grid-template-columns:1fr 1.15fr;background:var(--bg);border:1px solid var(--line);border-radius:4px}.calendar{padding:28px 36px;border-right:1px solid var(--line)}.calendar-top{display:flex;justify-content:space-between;align-items:center}.calendar-top h3{font-size:17px;text-transform:capitalize}.calendar button{border:0;background:none;padding:8px 12px}.weekdays,.days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.weekdays{margin:20px 0 10px;color:#999;font-size:10px}.days button{height:42px;width:42px;margin:auto;border-radius:var(--radius-round);font-size:12px}.days button:hover{background:#e5dfdf}.days button.selected{background:var(--rose);color:white}.days button:disabled{opacity:.25;cursor:default}.timezone{font-size:9px;color:var(--muted);margin:24px 0 0}.slots{padding:29px 34px}.slots-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.slots-heading h3{font-size:16px}.pill{font-size:8px;border:1px solid #c9cfbd;border-radius:20px;color:#6c795f;padding:6px 11px;white-space:nowrap}.class-row{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding:21px 0}.class-row h4{margin:4px 0 8px;font-size:13px;font-weight:500}.class-row p{font-size:10px;color:var(--muted);margin:0}.class-row button{background:none;border:1px solid #d9bdb8;border-radius:var(--radius-round);width:35px;height:35px;color:var(--rose);font-size:20px}.demo-note{font-size:10px;line-height:1.7;color:#8c837b}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.guide-art{position:relative;overflow:hidden;height:360px;padding:28px 32px}.art-one{background:#e3e3d7;color:#4e5949}.art-two{background:#e8dcd9;color:#715352}.guide-art>span,.guide-art>small{font-size:8px;letter-spacing:1.5px;position:relative;z-index:1}.guide-art>small{position:absolute;bottom:25px;left:32px}.guide-art h3{position:relative;z-index:1;font-size:44px;line-height:1.05;letter-spacing:-2px;font-weight:400;margin:40px 0}.abstract{position:absolute;width:190px;height:270px;border:35px solid #a5ae9580;border-radius:100px;right:25px;top:75px;transform:rotate(30deg)}.a2{border-color:#bb918b80;transform:rotate(-38deg);border-radius:100px 100px 0 0;right:30px;top:85px}.guide-info{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.guide-info h3{font-size:16px;margin-bottom:8px}.guide-info p{font-size:11px;color:var(--muted)}.buy{border:1px solid var(--line);border-radius:var(--radius-round);background:none;width:40px;height:40px;font-size:21px}.closing{text-align:center;background:var(--rose);color:#f8f5ed;padding:65px 20px 75px}.closing>span{font-size:40px;color:#cabfb2}.closing h2{max-width:600px;margin:20px auto}.light{background:var(--bg);color:var(--ink)}.light:hover{background:#e0d9ce}footer{padding:45px 5%;display:flex;align-items:center;justify-content:space-between;gap:25px}footer p,footer>.footer-socials,footer>span{font-size:10px;color:var(--muted)}dialog{border:0;background:var(--bg);border-radius:12px;padding:38px;max-width:460px;width:calc(100% - 32px);color:var(--ink)}dialog::backdrop{background:#30232c80;backdrop-filter:blur(5px)}.modal-close{position:absolute;right:12px;top:10px;background:none;border:0;font-size:25px}dialog h2{font-size:29px}dialog p{color:var(--muted);font-size:12px;line-height:1.8}form label{display:block;font-size:11px;margin-top:16px}form input{width:100%;padding:12px;border:1px solid var(--line);border-radius:var(--radius-micro);background:white;margin-top:6px}form .button{width:100%}.success-icon{font-size:40px;color:var(--rose)}:focus-visible{outline:2px solid var(--rose);outline-offset:4px}@media(min-width:1500px){main,header,footer{max-width:1450px;margin-left:auto;margin-right:auto}}@media(max-width:1024px){header{height:90px}nav{display:none}.header-right{gap:15px}.small-button{display:none}.hero{padding:30px 6%;gap:30px;min-height:0}.hero-copy{padding-top:15px}h1{font-size:45px;letter-spacing:-2px}.hero-photo{min-height:450px;border-radius:120px 120px 4px 4px}.hero-bottom{margin-top:25px}.vertical-note{display:none}.ticker{padding:18px 5%;font-size:8px;gap:10px}.ticker b{font-size:17px}.section{padding:60px 6%}.booking-grid{grid-template-columns:1fr}.calendar{border-right:0;border-bottom:1px solid var(--line)}.section-head{align-items:start;gap:20px}.section-head p{max-width:230px}.guide-art{height:300px;padding:25px}.guide-art h3{font-size:35px}.abstract{right:-50px}.principles{gap:20px}footer{flex-wrap:wrap}footer p{display:none}}@media(max-width:540px){.hero{grid-template-columns:1fr}.hero-copy{padding-top:12px}h1{font-size:54px;max-width:350px}.intro{max-width:320px}.hero-bottom{display:none}.hero-photo{min-height:430px;margin-top:15px}.ticker span:last-child,.ticker b:last-of-type{display:none}.approach{grid-template-columns:1fr;gap:0}.about-copy{padding-top:0}.principles{grid-template-columns:1fr;gap:10px;margin-top:30px}.principles article{display:grid;grid-template-columns:35px 1fr;column-gap:10px}.principles h3{margin-top:0}.principles p{grid-column:2;margin-top:0;max-width:none}.section-head{display:block;margin-bottom:25px}.section-head p{max-width:none;margin-bottom:0}.calendar,.slots{padding:22px}.guide-grid{grid-template-columns:1fr;gap:25px}.guide-art{height:340px}.abstract{right:20px}.closing h2{font-size:35px}footer .logo{font-size:35px}footer>span{width:100%}.eyebrow{font-size:9px}}

/* Consistent drawn arrows, independent of the active language's font. */
.arrow-icon{display:inline-block;width:19px;height:19px;flex:0 0 19px;vertical-align:middle;overflow:visible;pointer-events:none}
.arrow-icon path{stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.button>span:last-child{display:inline-flex;align-items:center;justify-content:center;line-height:1}
.small-button{display:inline-flex;align-items:center;gap:14px}
.small-button .arrow-icon,.text-link .arrow-icon,footer .arrow-icon{width:15px;height:15px;flex-basis:15px}
.buy,.class-row button{display:inline-flex;align-items:center;justify-content:center;padding:0;transition:background .2s,color .2s,transform .2s}
.buy:hover,.class-row button:hover{background:#f0dedb;color:#956366;transform:translateY(-2px)}
.button{background:linear-gradient(115deg,#dfb9b3 0%,#956366 60%,#c79794 100%);box-shadow:0 5px 18px #95636612;transition:box-shadow .2s,transform .2s}
.button:hover{background:linear-gradient(115deg,#e6c4be,#cba09b);box-shadow:0 8px 22px #95636625;transform:translateY(-2px)}
.hero{background:radial-gradient(ellipse at 20% 45%,#eddbd675 0%,transparent 57%)}
.schedule{background:radial-gradient(ellipse at 95% 5%,#dce2d66b,transparent 60%),linear-gradient(125deg,#eeeae7,#f1ece6 55%,#e9e9df)}
.art-one{background:radial-gradient(ellipse at 85% 20%,#f3efdd 0%,transparent 60%),linear-gradient(135deg,#e5e7dc,#c5cfba)}
.art-two{background:radial-gradient(ellipse at 90% 10%,#f5e6da 0%,transparent 60%),linear-gradient(135deg,#eadedc,#d6aaa5)}
.closing{background:radial-gradient(ellipse at 15% 5%,#f5ded285,transparent 60%),radial-gradient(ellipse at 95% 100%,#c5918855,transparent 55%),linear-gradient(115deg,#dcb5ae,#c89b97)}
.light{background:linear-gradient(110deg,#fffdf7,#eae3dc);box-shadow:none}.light:hover{background:linear-gradient(110deg,#fffdf7,#dfd3cb)}
@media(max-width:1024px){.small-button{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.buy,.class-row button{transition:none}}

/* Portrait supplied by Adisa: preserve the light and natural colours. */
.hero-photo img{filter:none;object-position:50% 35%}
.photo-label{color:#50404a;text-shadow:0 1px 8px #ffffff90}
.image-caption{color:#956366b3}

/* Keep the entire split pose visible on every screen size. */
.hero-photo{min-height:0;align-self:center;border-radius:28px;background:#dbe0d0}
.hero-photo img{position:relative;display:block;width:100%;height:auto;object-fit:contain;object-position:center}
.photo-label{bottom:20px;left:22px;color:#fff;text-shadow:0 1px 8px #0009;font-size:9px;letter-spacing:1.3px}
.image-caption{display:none}
@media(max-width:540px){.hero-photo{border-radius:20px}.photo-label{font-size:7px;bottom:12px;left:15px}}

/* Restore the original tall arch, with a wider-camera portrait inside. */
.hero-photo{align-self:stretch;min-height:550px;border-radius:180px 180px 5px 5px;aspect-ratio:4/5}
.hero-photo img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 65%}
.photo-label{bottom:28px;left:25px}
@media(max-width:1024px){.hero-photo{min-height:450px;border-radius:120px 120px 4px 4px}}
@media(max-width:540px){.hero-photo{min-height:0;aspect-ratio:4/5;border-radius:150px 150px 4px 4px}.photo-label{bottom:22px;left:22px;font-size:8px}}

/* Dusty rose palette with warm charcoal text on light rose surfaces. */
.button{color:#3e2d2c;background:linear-gradient(115deg,#dfb9b3 0%,#d3a6a1 60%,#c79794 100%)}
.days button.selected{background:#d3a6a1;color:#3e2d2c}
.closing{color:#3e2d2c}.closing>span{color:#76504d}
.light{color:var(--ink)}

/* Personal sessions, online and in Batumi. */
.pricing{background:var(--brand-milk)}
.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.price-card{padding:32px 36px;border:1px solid #ddc9c2;border-radius:10px;background:linear-gradient(140deg,#f4e7e1,#f9f5ef)}
.offline-card{background:linear-gradient(140deg,#e9ecdf,#f6f3eb);border-color:#d4d9c9}
.price-card-top{display:flex;justify-content:space-between;align-items:center;color:#886460}
.price-symbol{font-size:28px;font-weight:400}.price-card h3{font-size:27px;letter-spacing:-.7px;margin:22px 0 12px}
.price-card>p{font-size:12px;line-height:1.9;color:var(--muted);max-width:none;min-height:48px}
.price-row{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid #d9cdc4;font-size:13px}
.price-row strong,#selected-price{font-size:28px;font-weight:500;letter-spacing:-1px}.price-row small{font-size:18px;font-weight:400}
.price-card .button{margin-top:28px;display:flex;width:fit-content;gap:24px;line-height:1.5}
.offline-note{display:flex;align-items:center;gap:20px;margin-top:25px;padding-top:15px;font-size:12px;line-height:1.8}.offline-note>span{font-size:30px;color:#9d7770}.offline-note p{color:var(--muted);max-width:630px}.offline-note a{white-space:nowrap;margin-left:auto;border-bottom:1px solid #cdb3ab;padding-bottom:4px}
.duration-control{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px;font-size:12px}.duration-options{display:flex;gap:5px;padding:4px;border:1px solid #d8cbc2;border-radius:30px}.duration-options button{border:0;background:none;border-radius:22px;padding:11px 19px;color:var(--muted);font-size:11px}.duration-options button.active{background:#d3a6a1;color:#3e2d2c}
.hero-photo img{object-position:50% 50%}.photo-label{text-shadow:0 1px 10px #fff;color:#51413b}
@media(max-width:650px){.price-grid{grid-template-columns:1fr}.price-card{padding:26px}.offline-note{flex-wrap:wrap;gap:10px}.offline-note p{flex:1;min-width:220px}.offline-note a{margin-left:40px}.duration-control{align-items:start}.duration-options button{padding:10px 12px}}

/* Give the closing call-to-action a distinct surface on the rose section. */
.closing .button.light{background:#fffaf3;color:#493330;border:1px solid #956c62;box-shadow:0 5px 16px #75483e16}
.closing .button.light:hover{background:#ffffff;color:#352420;border-color:#76504d;box-shadow:0 7px 20px #75483e26}

.reviews{background:radial-gradient(ellipse at 0 20%,#f1dfd657,transparent 60%)}
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.review-card{display:flex;flex-direction:column;padding:28px 25px;background:var(--brand-paper);border:1px solid #e4d9d0;border-radius:12px}
.review-card:nth-child(3n+2){background:#f3e8e3}.review-card:nth-child(3n){background:#edefe5}
.review-stars{color:#956366;font-size:15px;letter-spacing:3px}
.review-card blockquote{font-size:13px;line-height:1.95;margin:24px 0 30px;flex:1;color:#514740}
.review-author{display:flex;align-items:center;gap:12px;border-top:1px solid #ded3ca;padding-top:18px}
.review-avatar{display:grid;place-items:center;width:35px;height:35px;border-radius:var(--radius-round);background:#e5cec4;color:#79554e;font-family:Georgia,serif;font-size:17px;flex-shrink:0}
.review-author h3{font-size:11px;line-height:1.5;margin:0 0 4px}.review-author time{font-size:9px;color:#84776e}
.review-invite{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:42px 0 35px;margin-top:20px;border-bottom:1px solid var(--line)}
.review-invite h3{font-size:28px;font-weight:400;letter-spacing:-.8px;margin:14px 0}.review-invite p{font-size:12px;line-height:1.9;color:var(--muted);max-width:470px}.review-invite .button{margin:0;white-space:nowrap;gap:20px}
.review-form{padding-top:35px;max-width:760px;margin:0 auto;scroll-margin-top:30px}.review-form-head h3{font-size:24px;font-weight:400;margin-bottom:10px}.review-form p{font-size:11px;line-height:1.9;color:var(--muted)}
.review-fields{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}.review-form input,.review-form textarea{background:var(--brand-paper);border:1px solid #d8c9be;border-radius:var(--radius-control);padding:13px;width:100%;color:var(--ink);font:inherit;font-size:13px;margin-top:8px}.review-form textarea{resize:vertical;min-height:110px}
.rating-field{border:0;margin:16px 0 0;padding:0;min-width:0}.rating-field legend{font-size:11px}.rating-options{display:flex;gap:6px;margin-top:8px}.rating-options label{position:relative;margin:0;flex:1}.rating-options input{position:absolute;opacity:0;width:1px;height:1px;margin:0}.rating-options span{display:block;text-align:center;border:1px solid #d8c9be;border-radius:6px;padding:13px 5px;color:#7a625a;background:var(--brand-paper);font-size:12px}.rating-options input:checked+span{background:#dfb9b3;color:#3e2d2c;border-color:#956366}.rating-options input:focus-visible+span{outline:2px solid var(--rose);outline-offset:3px}
.review-form .button{width:auto;gap:20px}.review-privacy{max-width:620px}.review-form #review-status{color:#6c5048}.review-form #review-send{border-top:1px solid var(--line);padding-top:16px;margin-top:20px}.review-form #review-send[hidden]{display:none}
@media(max-width:1000px){.reviews-grid{grid-template-columns:repeat(2,minmax(0,1fr))}nav{gap:20px}}
@media(max-width:650px){.reviews-grid{grid-template-columns:1fr}.review-card{padding:26px}.review-invite{display:block}.review-invite .button{margin-top:10px}.review-fields{grid-template-columns:1fr;gap:0}.rating-options{max-width:330px}.review-invite h3{font-size:26px}}

/* Sage accents stay within the in-person pricing card. */
.offline-card .price-card-top{color:#647351}
.offline-card .price-row{border-bottom-color:#ccd3bf}
.offline-card .button{background:linear-gradient(115deg,#c3d0ad 0%,#aebb96 60%,#a2b18a 100%);color:#293222;box-shadow:0 5px 18px #63734d16}
.offline-card .button:hover{background:linear-gradient(115deg,#cfdbbb,#acbd94);color:#25301e;box-shadow:0 8px 22px #63734d26}
.offline-card .button:focus-visible{outline-color:#647351}

.currency-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;margin-bottom:12px}
.currency-toggle{display:flex;gap:4px;border:1px solid #d8cbc2;padding:4px;border-radius:30px;background:#fffaf580}
.currency-toggle button{border:0;background:none;padding:11px 18px;border-radius:22px;color:#756963;font-size:11px;white-space:nowrap}
.currency-toggle button.active{background:#d3a6a1;color:#3e2d2c}.currency-toggle button:hover:not(.active){background:#efe4dc}
.currency-note{font-size:10px;line-height:1.8;color:var(--muted);min-height:18px;margin:0 0 25px}.currency-note a{border-bottom:1px solid #cdbdb0}
.price-row strong,#selected-price{font-size:26px;text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:540px){.currency-bar{align-items:start;flex-direction:column;gap:12px}.currency-toggle{width:100%}.currency-toggle button{flex:1}.price-row strong,#selected-price{font-size:25px}}

#booking-form select{display:block;width:100%;padding:12px;margin-top:6px;border:1px solid var(--line);border-radius:var(--radius-micro);background:#fff;color:var(--ink);font:inherit}

/* Match review accents to the sage card surface. */
.review-card:nth-child(3n){border-color:#cdd5c3}
.review-card:nth-child(3n) .review-stars{color:#647351}
.review-card:nth-child(3n) .review-avatar{background:#d4ddc6;color:#506340}
.review-card:nth-child(3n) .review-author{border-top-color:#ccd3bf}
.review-card:nth-child(3n) time{color:#6d7862}

/* A softer editorial rhythm, with a leading quote and compact supporting voices. */
.editorial-reviews{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
.editorial-reviews .review-card{padding:25px 27px;border-radius:18px;box-shadow:0 4px 20px #76615305}
.editorial-reviews .review-card blockquote{font-size:12px;line-height:1.9;margin:19px 0 24px}
.editorial-reviews .review-card:first-child{grid-row:span 3;background:linear-gradient(155deg,#f3e4dd,#fffaf2);padding:36px 30px;position:relative;overflow:hidden}
.editorial-reviews .review-card:first-child::before{content:'“';font-family:Georgia,serif;font-size:150px;line-height:1;color:#d4aaa159;position:absolute;right:16px;top:30px;pointer-events:none}
.editorial-reviews .review-card:first-child .review-stars{position:relative;margin-top:8px}
.editorial-reviews .review-card:first-child blockquote{font-size:23px;letter-spacing:-.45px;line-height:1.65;position:relative;margin:52px 0 38px}
.editorial-reviews .review-author{border-top:0;padding-top:0;gap:10px}
.editorial-reviews .review-avatar{width:34px;height:34px;font-size:17px}
.editorial-reviews .review-card:last-child{grid-column:2 / 4;display:grid;grid-template-columns:1fr auto;column-gap:28px;align-items:center}
.editorial-reviews .review-card:last-child .review-stars{grid-column:1 / -1}
.editorial-reviews .review-card:last-child blockquote{margin-bottom:0;max-width:420px}
.editorial-reviews .review-card:last-child .review-author{border-left:1px solid #ccd3bf;padding-left:24px;margin-top:18px}
.trial-banner{display:flex;align-items:center;gap:20px;padding:24px 28px;margin:0 0 25px;border-radius:12px;border:1px solid #d8c6b7;background:linear-gradient(110deg,#f0e6d6,#f8efe8 65%,#eee6d6)}
.trial-icon{font-size:36px;color:#8c795c}.trial-banner h3{font-size:18px;font-weight:500;margin:0 0 7px;letter-spacing:-.3px}.trial-banner p{font-size:11px;line-height:1.8;color:#75695e;margin:0;max-width:550px}.trial-banner>a{font-size:11px;display:inline-flex;align-items:center;gap:13px;white-space:nowrap;margin-left:auto;border-bottom:1px solid #ad9787;padding:10px 0;color:#615041}
@media(max-width:1000px){.editorial-reviews{grid-template-columns:repeat(2,minmax(0,1fr))}.editorial-reviews .review-card:first-child{grid-row:span 2}.editorial-reviews .review-card:last-child{grid-column:1 / -1;display:flex;align-items:stretch}.editorial-reviews .review-card:last-child blockquote{margin-bottom:24px}.editorial-reviews .review-card:last-child .review-author{border-left:0;padding-left:0;margin-top:0}.trial-banner{flex-wrap:wrap}.trial-banner>a{margin-left:56px}}
@media(max-width:650px){.editorial-reviews{grid-template-columns:1fr;gap:14px}.editorial-reviews .review-card{padding:25px}.editorial-reviews .review-card:first-child{grid-row:auto;padding:30px}.editorial-reviews .review-card:first-child blockquote{font-size:21px;margin:28px 0 30px}.editorial-reviews .review-card:not(:first-child){display:grid;grid-template-columns:1fr auto;column-gap:12px}.editorial-reviews .review-card:not(:first-child) .review-stars{grid-column:2;grid-row:1;font-size:11px;letter-spacing:1px;align-self:center}.editorial-reviews .review-card:not(:first-child) .review-author{grid-column:1;grid-row:1;align-self:center}.editorial-reviews .review-card:not(:first-child) blockquote{grid-column:1 / -1;grid-row:2;margin:20px 0 0}.editorial-reviews .review-author h3{font-size:10px}.editorial-reviews .review-author time{font-size:9px}.trial-banner{padding:22px;gap:14px;align-items:start}.trial-banner>div{flex:1;min-width:190px}.trial-banner h3{font-size:17px}.trial-banner>a{margin-left:48px}}

@media(max-width:650px){.editorial-reviews .review-card:last-child{grid-column:auto}}

@media(min-width:1001px){.editorial-reviews .review-card:first-child{grid-column:span 2;grid-row:auto}.editorial-reviews .review-card:first-child blockquote{margin:28px 0 30px;font-size:25px;max-width:680px}.editorial-reviews .review-card:last-child{grid-column:1 / -1}.editorial-reviews .review-card:last-child blockquote{max-width:720px}}
@media(min-width:651px) and (max-width:1000px){.editorial-reviews .review-card:first-child{grid-column:1 / -1;grid-row:auto}.editorial-reviews .review-card:first-child blockquote{margin:28px 0 30px}}

/* A small Instagram outline on profile and Direct links. */
a[href*="instagram.com"],a[href*="ig.me/"]{display:inline-flex;align-items:center;gap:10px}
a[href*="instagram.com"]::before,a[href*="ig.me/"]::before{content:"";display:inline-block;flex:0 0 17px;width:17px;height:17px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223.5%22%20y%3D%223.5%22%20width%3D%2217%22%20height%3D%2217%22%20rx%3D%225%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%224%22%2F%3E%3Ccircle%20cx%3D%2217.3%22%20cy%3D%226.8%22%20r%3D%22.85%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223.5%22%20y%3D%223.5%22%20width%3D%2217%22%20height%3D%2217%22%20rx%3D%225%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%224%22%2F%3E%3Ccircle%20cx%3D%2217.3%22%20cy%3D%226.8%22%20r%3D%22.85%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3C%2Fsvg%3E") center / contain no-repeat}
a.text-link[href*="instagram.com"]{display:flex;justify-content:flex-start}a.text-link[href*="instagram.com"]>span{margin-left:auto}

/* Pink / deep rose / yellow olive: one coordinated colour system. */

body{background:var(--bg)}
.hero{background:radial-gradient(ellipse at 18% 42%,#e9b7c345,transparent 62%)}
h1 em,.languages button.active,.success-icon{color:var(--rose)}
.dot{background:var(--olive)}.round-mark,.ticker b{color:#777c40}
.button{background:linear-gradient(115deg,#994762,#8b3d58);color:#fffaf6;box-shadow:0 5px 18px #8b3d5816}
.button:hover{background:linear-gradient(115deg,#873850,#752e47);color:#fffaf6;box-shadow:0 8px 22px #8b3d5826}
.small-button{border-color:#bc8492;color:#79354d}
.schedule{background:radial-gradient(ellipse at 100% 0,#e5e5ca77,transparent 65%),linear-gradient(130deg,#f2e5e6,#f5ede3)}
.booking-grid{background:#fffbf5;border-color:#d9c9bd}
.days button:hover{background:var(--pink-soft)}
.days button.selected,.duration-options button.active,.currency-toggle button.active{background:var(--rose);color:#fffaf6}
.currency-toggle{background:#fffaf6;border-color:#d6bdc3}.currency-toggle button:hover:not(.active){background:var(--pink-soft)}
.buy:hover,.class-row button:hover{background:var(--pink-soft);color:var(--rose)}
.price-card{background:linear-gradient(135deg,#f3d6de,#f9e9e9);border-color:#d4a8b4}
.price-card-top{color:var(--rose)}.price-card>p{color:#6e5057}.price-row{border-color:#d7b6bf}
.offline-card{background:linear-gradient(135deg,#e0e1b9,#efeedc);border-color:#bdc08c}
.offline-card>p{color:#5e6041}.offline-card .price-card-top{color:#5d632c}.offline-card .price-row{border-color:#bdc08c}
.offline-card .button{background:linear-gradient(115deg,#74783e,#61662e);color:#fffdf0;box-shadow:0 5px 18px #666b321a}
.offline-card .button:hover{background:linear-gradient(115deg,#62672d,#525823);color:#fffdf0;box-shadow:0 8px 22px #666b3228}
.offline-card .button:focus-visible{outline-color:var(--olive)}
.offline-note>span{color:var(--olive)}.offline-note a{border-color:#b0b57c}
.art-one{color:#4d5428;background:radial-gradient(ellipse at 85% 15%,#f3edca,transparent 65%),linear-gradient(135deg,#e0e1bb,#b6bd7e)}
.art-two{color:#76344e;background:radial-gradient(ellipse at 90% 10%,#f9e5db,transparent 65%),linear-gradient(135deg,#f1cbd4,#d397aa)}
.abstract{border-color:#8c965680}.a2{border-color:#b95b7d66}
.trial-banner{background:linear-gradient(110deg,#e7e6bb,#f5edcf);border-color:#c2c389}.trial-icon{color:#686d31}.trial-banner p{color:#646047}.trial-banner>a{color:#505528;border-color:#989f60}
.reviews{background:radial-gradient(ellipse at 0 20%,#f0d1db50,transparent 65%)}
.review-card{background:#fffaf4;border-color:#ddcec6}.review-card:nth-child(3n+2){background:#f4dfe5;border-color:#d7b3bf}.review-stars{color:var(--rose)}
.review-avatar{background:#e9b7c3;color:#713248}.review-author time{color:#75645f}.review-card blockquote{color:#453c36}
.editorial-reviews .review-card:first-child{background:linear-gradient(145deg,#edc1cd,#fbede9);border-color:#d4a0b0}
.editorial-reviews .review-card:first-child::before{color:#ae577744}
.review-card:nth-child(3n){background:#e5e5ca;border-color:#bec28f}
.review-card:nth-child(3n) .review-stars{color:var(--olive)}.review-card:nth-child(3n) .review-avatar{background:#cbd09b;color:#4f5626}.review-card:nth-child(3n) time{color:#626745}
.review-card:nth-child(3n) .review-author,.editorial-reviews .review-card:last-child .review-author{border-color:#bdc08c}
.rating-options input:checked+span{background:var(--rose);color:#fffaf6;border-color:var(--rose)}
.closing{background:radial-gradient(ellipse at 12% 0,#e9b7c333,transparent 65%),linear-gradient(115deg,#a04b69,#82374f);color:#fff8f3}.closing>span{color:#e1cfa0}
.light,.closing .button.light{background:#fbf2df;color:#713248;border:1px solid #f5dfb6;box-shadow:0 5px 16px #4e193718}
.light:hover,.closing .button.light:hover{background:#fffaf0;color:#63243e;border-color:#fffaf0;box-shadow:0 7px 20px #4e19372b}
.pill{color:#58612d;border-color:#aab57a}

/* Keep navigation available and anchor targets clear of the header. */
header{position:sticky;top:0;z-index:50;background:var(--bg);box-shadow:0 5px 18px #352f2a08}
html{scroll-padding-top:132px}
.review-form{scroll-margin-top:0}
@media(max-width:1024px){html{scroll-padding-top:110px}}
header{margin:0;max-width:none;padding:0 5%}

/* Reference palette: reseda, warm chocolate, ivory and powder rose. */
:root{--bg:var(--brand-milk);--ink:var(--brand-ink);--muted:#74685f;--rose:#8b574d;--line:#d8cfc3;--pink:var(--brand-powder);--pink-soft:#efdfd5;--olive:var(--brand-olive);--olive-soft:#e4e2cf}
.hero{background:radial-gradient(ellipse at 18% 42%,#dab4ae38,transparent 62%)}
.dot,.round-mark,.ticker b{color:var(--brand-olive)}.dot{background:var(--brand-olive)}
h1 em,.languages button.active,.success-icon{color:#8b574d}
.button{background:linear-gradient(115deg,var(--brand-powder),#caa097);color:var(--brand-ink);box-shadow:0 5px 18px #48372f12}
.button:hover{background:linear-gradient(115deg,#e1c3b5,#d4af9d);color:var(--brand-ink);box-shadow:0 8px 22px #48372f1d}
.small-button{border-color:#bba694;color:#6f5143}
.schedule{background:radial-gradient(ellipse at 100% 0,#e4e2cf88,transparent 65%),linear-gradient(130deg,#eee3d9,#efeee4)}
.booking-grid{background:#faf8f1;border-color:#d4c9b9}
.days button:hover{background:#efdfd5}
.days button.selected,.duration-options button.active,.currency-toggle button.active{background:var(--brand-powder);color:var(--brand-ink)}
.currency-toggle{background:#faf8f1;border-color:#cfc3b4}.currency-toggle button:is(:hover,:focus-visible):not(.active){background:var(--surface-powder-soft);color:var(--brand-ink)}
.buy:hover,.class-row button:hover{background:#efdfd5;color:#805449}
.price-card{background:var(--surface-powder-soft);border-color:#d1b8a6}
.price-card-top{color:#805449}.price-card>p{color:#746155}.price-row{border-color:#d3c1b1}
.offline-card{background:linear-gradient(135deg,#dcdcc3,#eeecdd);border-color:#b9b699}
.offline-card>p{color:#666344}.offline-card .price-card-top{color:#65613c}.offline-card .price-row{border-color:#beba9e}
.offline-card .button{background:linear-gradient(115deg,#746f49,#66623c);color:#fffdf4;box-shadow:0 5px 18px #6d69431a}
.offline-card .button:hover{background:linear-gradient(115deg,#66623c,#575432);color:#fffdf4}
.offline-card .button:focus-visible{outline-color:var(--brand-olive)}
.offline-note>span{color:var(--brand-olive)}.offline-note a{border-color:#aba681}
.art-one{color:#514e32;background:radial-gradient(ellipse at 85% 15%,#f3eed8,transparent 65%),linear-gradient(135deg,#dedcc4,#aaa77d)}
.art-two{color:#765045;background:radial-gradient(ellipse at 90% 10%,#f7e9db,transparent 65%),linear-gradient(135deg,#eacfc7,#caa39b)}
.abstract{border-color:#918c6380}.a2{border-color:#a9785c66}
.trial-banner{background:linear-gradient(110deg,#e5e1c7,#f1ead9);border-color:#bfb99b}.trial-icon{color:var(--brand-olive)}.trial-banner p{color:#686145}.trial-banner>a{color:#575235;border-color:#a69d76}
.reviews{background:radial-gradient(ellipse at 0 20%,#dcc0ae40,transparent 65%)}
.review-card{background:#faf8f2;border-color:#d9cdbd}.review-card:nth-child(3n+2){background:#efddd7;border-color:#d1b9a8}.review-stars{color:#8b574d}
.review-avatar{background:var(--brand-powder);color:#694b3f}.review-author time{color:#77685b}.review-card blockquote{color:var(--brand-ink)}
.editorial-reviews .review-card:first-child{background:linear-gradient(145deg,#e9cbc3,#f7ece7);border-color:#ccab94}
.editorial-reviews .review-card:first-child::before{color:#aa7e6244}
.review-card:nth-child(3n){background:#e4e2cf;border-color:#bcb89a}
.review-card:nth-child(3n) .review-stars{color:var(--brand-olive)}.review-card:nth-child(3n) .review-avatar{background:#c9c6a4;color:#565333}.review-card:nth-child(3n) time{color:#6b6647}
.review-card:nth-child(3n) .review-author,.editorial-reviews .review-card:last-child .review-author{border-color:#beba9e}
.rating-options input:checked+span{background:var(--brand-powder);color:var(--brand-ink);border-color:#a47967}
.closing{background:var(--brand-chocolate-surface);color:#f8f2e8}.closing>span{color:#c3bd8b}
.light,.closing .button.light{background:var(--brand-milk);color:var(--brand-ink);border:1px solid var(--brand-powder);box-shadow:0 5px 16px #241b1818}
.light:hover,.closing .button.light:hover{background:#fffaf2;color:var(--brand-ink);border-color:#fffaf2}
.pill{color:#615f39;border-color:#aaa77c}
.review-stars{color:#784a3f}

.intro-price-row{border-bottom-style:dashed}.intro-price-row>span{color:var(--rose);font-weight:600}.intro-price-row>span>small{display:block;font-weight:400;font-size:10px;margin-top:6px;color:var(--muted)}.offline-card .intro-price-row>span{color:var(--olive)}
.session-kind-control{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;margin-bottom:15px}.duration-options button:disabled{opacity:.35;cursor:not-allowed}
@media(max-width:650px){.session-kind-control{align-items:start;flex-direction:column;gap:10px}.session-kind-control .duration-options{width:100%}.session-kind-control button{flex:1}.intro-price-row>span{font-size:12px}}

/* Equal review cards and simple author signatures. */
.balanced-reviews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.balanced-reviews .review-card{padding:28px;border-radius:12px;box-shadow:none}
.balanced-reviews .review-card blockquote{font-size:13px;line-height:1.95;margin:22px 0 28px;flex:1}
.balanced-reviews .review-author{padding-top:18px;border-top:1px solid #d3c1b1;display:block}
.balanced-reviews .review-author h3{font-size:13px;font-weight:500;letter-spacing:0;margin:0 0 7px}
.balanced-reviews .review-author time{font-size:10px}
.balanced-reviews .review-card:nth-child(3n) .review-author{border-color:#beba9e}
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:9%;background:var(--surface-olive-soft)}
.faq-intro h2{max-width:350px}.faq-intro>p{font-size:12px;line-height:1.9;color:var(--muted);max-width:310px}.faq-intro .text-link{max-width:250px;font-size:11px;margin-top:22px}
.faq-item{border-bottom:1px solid #c9c6b0}.faq-item:first-child{border-top:1px solid #c9c6b0}
.faq-item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:25px 0;font-size:15px;font-weight:500;cursor:pointer;line-height:1.7}
.faq-item summary::-webkit-details-marker{display:none}.faq-plus{position:relative;width:22px;height:22px;flex:0 0 22px;border:1px solid #b7b393;border-radius:var(--radius-round);color:var(--brand-olive)}
.faq-plus::before,.faq-plus::after{content:'';position:absolute;background:currentColor;top:9px;left:5px;width:10px;height:1px}.faq-plus::after{transform:rotate(90deg)}.faq-item[open] .faq-plus::after{transform:rotate(0)}
.faq-answer{font-size:12px;line-height:2;color:#655c4e;padding:0 34px 25px 0;max-width:650px}
.faq-item summary:hover{color:var(--olive)}.faq-item summary:focus-visible{outline:2px solid var(--olive);outline-offset:3px}
@media(max-width:1000px){.balanced-reviews{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.balanced-reviews{grid-template-columns:1fr}.balanced-reviews .review-card{padding:25px}.faq{grid-template-columns:1fr;gap:25px}.faq-intro h2,.faq-intro>p{max-width:none}.faq-item summary{font-size:14px;padding:22px 0}}

/* Chocolate selected states for currency and booking options. */
.currency-toggle button.active{background:var(--brand-powder);color:var(--brand-ink)}.duration-options button.active{background:var(--brand-ink);color:var(--brand-milk)}
.currency-toggle button.active:hover{background:var(--brand-powder);color:var(--brand-ink)}.duration-options button.active:hover{background:#5b453a;color:#fffaf2}

/* One calm, consistent finish for all six testimonials. */
.balanced-reviews .review-card{background:#faf8f2;border-color:#d9cdbd}
.balanced-reviews .review-card .review-stars{color:#784a3f}
.balanced-reviews .review-card .review-author{border-color:#d3c1b1}
.balanced-reviews .review-card .review-author time{color:#77685b}

/* Longer service-led heading, sized to stay within its column. */
.hero h1{font-size:clamp(36px,4vw,60px);letter-spacing:-2px;overflow-wrap:normal}
@media(max-width:1024px){.hero h1{font-size:clamp(27px,4vw,38px);letter-spacing:-1.2px}}
@media(max-width:540px){.hero h1{font-size:clamp(30px,7.3vw,39px);max-width:none;letter-spacing:-1px}}

/* Fit the desktop introduction and the values strip into a laptop viewport. */
@media(min-width:1025px){
 header{height:88px}
 .hero{height:calc(100svh - 152px);min-height:470px;max-height:640px;padding-top:25px;padding-bottom:25px;align-items:center}
 .hero-copy{padding-top:0}
 .hero-photo{width:min(36vw,472px);width:clamp(296px,calc((100svh - 202px)*.8),472px);height:auto;min-height:0;max-height:590px;max-width:100%;aspect-ratio:4/5;justify-self:center;align-self:center;border-radius:160px 160px 5px 5px}
 .hero h1{font-size:clamp(34px,3.4vw,52px);margin-top:22px;margin-bottom:20px}
 .hero .intro{line-height:1.8;margin-bottom:12px}
 .hero .button{margin-top:16px}
 .hero-bottom{margin-top:25px}
 .ticker{height:64px;padding-top:16px;padding-bottom:16px}
 html{scroll-padding-top:108px}
}
@media(min-width:1025px) and (max-height:740px){
 .hero{min-height:410px;padding-top:20px;padding-bottom:20px}
 .hero-photo{width:clamp(296px,calc((100svh - 192px)*.8),472px)}
 .hero h1{font-size:clamp(32px,3.1vw,46px);margin-top:18px;margin-bottom:15px}
 .hero .intro{font-size:12px;line-height:1.7}
 .hero-bottom{margin-top:18px}
}

.directions{padding-top:35px}.direction-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.direction-card{position:relative;display:block;padding:28px;min-height:220px;border:1px solid #d9cdbd;border-radius:12px;background:#faf8f2;transition:background .2s,border-color .2s}.direction-card:nth-child(2n){background:#ecebdd}.direction-card:nth-child(3n){background:#efddd7}.direction-number{font-size:10px;letter-spacing:1px;color:#8b7866}.direction-card h3{font-size:21px;letter-spacing:-.5px;margin:25px 0 12px;font-weight:500}.direction-card p{font-size:12px;line-height:1.9;color:#74685f;margin:0 15px 15px 0}.direction-arrow{position:absolute;right:22px;bottom:18px;font-size:22px;color:#8b574d}.direction-card:hover,.direction-card.selected{border-color:#8b7866;background:#e9dfcf}.direction-select{display:block;margin:0 0 23px;font-size:12px}.direction-select>span{display:block;margin-bottom:10px}.direction-select select{width:100%;max-width:430px;padding:14px 16px;border:1px solid #cfc3b4;border-radius:var(--radius-control);background:#faf8f2;color:var(--ink);font:inherit}
@media(max-width:1000px){.direction-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.direction-grid{grid-template-columns:1fr}.direction-card{min-height:0;padding:25px}.direction-card h3{margin-top:18px}}

.direction-grid .aerial-card{background:linear-gradient(135deg,#e4e2cf,#f0ecdd);border-color:#b9b699}
.aerial-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.aerial-badge{font-size:8px;line-height:1.6;color:#575436;padding:5px 9px;border:1px solid #b9b699;border-radius:20px;text-align:center}
.aerial-card .aerial-link{font-size:11px;color:#575436;border-bottom:1px solid #b9b699;padding-bottom:5px;margin-top:4px}.aerial-card h3{margin-top:20px}

/* A single invitation and form, with one primary action. */
.review-form{margin-top:40px;padding:34px;max-width:850px;border:1px solid #d9cdbd;border-radius:14px;background:#faf8f2}
.review-form-head h3{font-size:28px;margin:16px 0 12px;letter-spacing:-.6px}.review-form-head>p{max-width:650px;margin:8px 0}.review-form-head{margin-bottom:24px}
@media(max-width:650px){.review-form{padding:25px;margin-top:28px}.review-form-head h3{font-size:25px}}

/* Two clear lines, with the service word in italic. */
.hero h1{font-size:clamp(38px,3.8vw,60px);line-height:1.12;letter-spacing:-2px}
@media(min-width:1025px) and (max-width:1100px){.hero h1{font-size:clamp(32px,3.5vw,39px);letter-spacing:-1.6px}}
@media(max-width:1024px){.hero h1{font-size:clamp(26px,3.6vw,36px);letter-spacing:-1.3px}}
@media(max-width:540px){.hero h1{font-size:clamp(26px,7.3vw,40px);letter-spacing:-1.4px}}

.balanced-reviews .review-card .review-stars{color:#caa097}

/* Quiet two-column practice index, without coloured tiles or arrows. */
.direction-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:56px;row-gap:0;border-top:1px solid #cfc6b8}
.direction-grid .direction-card,.direction-grid .direction-card:nth-child(n),.direction-grid .aerial-card{display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:18px;align-content:start;position:relative;padding:30px 8px 30px 0;min-height:0;background:transparent;border:0;border-bottom:1px solid #cfc6b8;border-radius:0;box-shadow:none;transition:background .2s}
.direction-card .direction-number{grid-column:1;grid-row:1 / 3;align-self:start;padding-top:6px;color:#9b8a78;font-size:10px}
.direction-card h3{grid-column:2;margin:0 0 12px;font-size:23px;line-height:1.4;letter-spacing:-.6px;font-weight:500}
.direction-card p{grid-column:2;margin:0;max-width:430px;font-size:12px;line-height:1.9;color:#74685f}
.direction-grid a.direction-card:hover,.direction-grid a.direction-card.selected{background:transparent}
.direction-grid a.direction-card:hover h3{color:#8b574d;text-decoration:underline;text-decoration-color:#d8b5a6;text-underline-offset:6px;text-decoration-thickness:1px}
.direction-grid a.direction-card.selected h3{color:var(--ink)}
.aerial-card .aerial-top{grid-column:1 / -1;grid-row:1;display:grid;grid-template-columns:34px 1fr;gap:18px;margin-bottom:13px}
.aerial-top .direction-number{grid-column:1;grid-row:auto}.aerial-badge{justify-self:start;grid-column:2;font-size:8px;border-color:#c5c0a7;background:#e9e7d8;color:#66623c;padding:3px 9px}
.direction-grid .aerial-card h3{grid-row:2}.direction-grid .aerial-card p{grid-row:3}
.aerial-card .aerial-link{grid-column:2;justify-self:start;font-size:11px;margin-top:17px;border-color:#b3ac8b}
@media(max-width:650px){.direction-grid{grid-template-columns:1fr}.direction-grid .direction-card,.direction-grid .direction-card:nth-child(n){padding:25px 0;column-gap:12px;grid-template-columns:25px minmax(0,1fr)}.direction-card h3{font-size:21px}.aerial-card .aerial-top{grid-template-columns:25px 1fr;gap:12px}}

/* Put all booking choices on one aligned desktop row. */
.booking-filters{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1.1fr) minmax(0,.8fr);gap:24px;align-items:start;margin:0 0 27px}
.booking-filters .direction-select,.booking-filters .session-kind-control,.booking-filters .duration-control{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:11px;margin:0;font-size:11px}
.booking-filters .direction-select>span{margin:0}
.booking-filters .direction-select select{width:100%;max-width:none;min-height:48px;margin:0;font-size:11px}
.booking-filters .duration-options{min-height:48px;align-items:center;width:100%}
.booking-filters .duration-options button{flex:1;padding:10px 8px;font-size:10px;white-space:nowrap}
@media(max-width:1000px){.booking-filters{gap:12px;grid-template-columns:1.2fr 1.1fr .8fr}.booking-filters .duration-options button{font-size:9px;padding:10px 5px}}
@media(max-width:760px){.booking-filters{grid-template-columns:1fr 1fr;gap:20px}.booking-filters .direction-select{grid-column:1 / -1}.booking-filters .duration-options button{font-size:10px}.booking-filters .session-kind-control .duration-options{width:100%}}
@media(max-width:400px){.booking-filters{grid-template-columns:1fr}.booking-filters .direction-select{grid-column:auto}}

.direction-select select[hidden]{display:none}
.direction-dropdown{position:relative}
#direction-trigger{width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 18px;border:1px solid #cfc3b4;border-radius:12px;background:#faf8f2;color:var(--brand-ink);text-align:left;font:inherit;font-size:12px;cursor:pointer}
#direction-trigger svg{width:18px;height:18px;flex:0 0 18px;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s}
#direction-trigger[aria-expanded="true"]{border-color:#8b7866;box-shadow:0 0 0 3px #d8b5a62b}
#direction-trigger[aria-expanded="true"] svg{transform:rotate(180deg)}
#direction-menu{position:absolute;left:0;top:calc(100% + 8px);min-width:100%;width:max-content;max-width:min(420px,85vw);z-index:20;padding:6px;background:#faf8f2;border:1px solid #d1c5b5;border-radius:12px;box-shadow:0 12px 30px #48372f1c}
#direction-menu[hidden]{display:none}
#direction-menu button{display:block;width:100%;padding:12px 14px;border:0;border-radius:var(--radius-control);background:none;color:var(--brand-ink);text-align:left;font:inherit;font-size:12px;line-height:1.6;cursor:pointer}
#direction-menu button[aria-selected="true"]{background:var(--brand-ink);color:var(--brand-milk)}
#direction-menu button:hover:not([aria-selected="true"]),#direction-menu button:focus-visible:not([aria-selected="true"]){background:#efdfd5;outline:none}

.reviews-page .reviews{min-height:65vh;padding-top:60px}
.reviews-page .reviews>.section-head{border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:32px}
.reviews-page .reviews>.section-head :is(h1,h2){margin-top:16px}
@media(max-width:650px){.reviews-page .reviews{padding-top:35px}}

.principles h3{margin-top:0}
@media(max-width:540px){.principles article{display:block}.principles p{margin-top:10px}}

/* A wider text column, with the portrait anchored to the right gutter. */
@media(min-width:1025px){
 .hero{grid-template-columns:minmax(0,1fr) auto;gap:clamp(28px,3vw,48px);padding-left:5%;padding-right:5%}
 .hero-photo{justify-self:end}
 .hero-copy{min-width:0}
 .hero h1{font-size:clamp(40px,4.5vw,70px);letter-spacing:-2.4px}
 .hero .intro{max-width:490px;font-size:14px;line-height:1.8}
}
@media(min-width:1025px) and (max-width:1100px){.hero h1{font-size:clamp(32px,4vw,44px);letter-spacing:-1.8px}.hero .intro{font-size:12px;max-width:400px}}
@media(min-width:1025px) and (max-height:740px){.hero h1{font-size:clamp(36px,4vw,58px)}.hero .intro{font-size:13px;line-height:1.7}}

@media(min-width:1025px) and (max-width:1250px){header nav{gap:16px;font-size:10px}.header-right{gap:16px}.small-button{padding:12px 16px}}

/* Align the hero with the content sections rather than the wider header. */
@media(min-width:1025px){.hero{padding-left:8%;padding-right:8%;gap:clamp(24px,2.5vw,40px)}}

.faq-plus::before,.faq-plus::after{top:50%;left:50%;transform:translate(-50%,-50%)}
.faq-plus::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-item[open] .faq-plus::after{transform:translate(-50%,-50%) rotate(0deg)}

/* Align section backgrounds directly below the sticky navigation. */
html{scroll-padding-top:90px}
@media(min-width:1025px){html{scroll-padding-top:88px}}
main>section[id]{scroll-margin-top:0}

/* Prevent elastic scrolling beyond the page edges. */
html,body{overscroll-behavior-y:none}

.corporate-offer{display:flex;align-items:center;justify-content:space-between;gap:36px;margin-top:32px;padding:28px 0;border-top:1px solid var(--line)}.corporate-offer h3{font-size:24px;margin:0 0 12px}.corporate-offer p{max-width:650px;margin:0;color:var(--muted);line-height:1.8}.corporate-offer .text-link{max-width:none;flex-shrink:0;gap:12px}@media(max-width:1024px){.corporate-offer{align-items:flex-start;flex-direction:column;gap:20px}}

/* Compact footer on both pages. */
footer{padding-top:22px;padding-bottom:22px;gap:18px}
footer .logo{font-size:34px}
footer .logo span{font-size:7px;margin-top:7px}
@media(max-width:540px){footer{padding-top:20px;padding-bottom:20px;gap:16px}footer .logo{font-size:30px}footer>span{width:auto}}

.calendar-top h3{text-transform:none}.calendar-top h3::first-letter{text-transform:uppercase}

/* Separate the session time, details and price for easy scanning. */
.class-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:18px;align-items:center;padding:24px 0}
.slot-time{font-size:20px;font-weight:500;font-variant-numeric:tabular-nums;align-self:start;padding-top:3px}
.class-row .slot-details h4{margin:0 0 8px;font-size:17px;line-height:1.4}
.class-row .slot-details p{font-size:11px;line-height:1.6}
.slot-price{font-size:24px;font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink)}
@media(max-width:1100px){.class-row{grid-template-columns:minmax(0,1fr) auto auto;gap:12px}.slot-time{grid-column:1/-1;font-size:18px;padding:0}.class-row .slot-details h4{font-size:16px}.slot-price{font-size:23px}}

.corporate-offer .button{flex-shrink:0;margin-top:0;gap:12px}

.menu-toggle{display:none}
@media(max-width:1024px){
 .header-right{gap:16px}.menu-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;padding:8px;border:1px solid var(--line);border-radius:var(--radius-round);background:transparent;color:var(--ink);order:2}
 .menu-toggle span{display:block;width:18px;height:1.5px;background:currentColor;transition:transform .2s,opacity .2s}
 .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(6.5px) rotate(45deg)}
 .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
 .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-6.5px) rotate(-45deg)}
 header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg);padding:12px 6% 22px;max-height:calc(100dvh - 90px);overflow-y:auto;border-bottom:1px solid var(--line);box-shadow:0 12px 18px #48372f0d}
 header.menu-open nav{display:flex;flex-direction:column;gap:0}header nav a{padding:14px 0;border-bottom:1px solid var(--line);font-size:15px}header nav a:last-child{border-bottom:0}
}

/* A clean primary action on the chocolate closing section. */
.closing .button.light{background:var(--brand-powder);color:var(--brand-ink);border:0;box-shadow:none}
.closing .button.light:hover{background:#cfa59f;color:var(--brand-ink);border:0;box-shadow:none}

.corporate-link{display:inline-flex;align-items:center;gap:12px;flex-shrink:0;color:#575436;font-size:12px;border-bottom:1px solid #b3ac8b;padding:0 0 5px;background:none;box-shadow:none}.corporate-link:hover{color:var(--brand-ink);border-color:var(--brand-olive)}

/* Shared understated style for Instagram text actions. */
a.text-link[href*="ig.me/"],.aerial-card .aerial-link,.corporate-link{display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;width:fit-content;max-width:100%;padding:8px 0;border-bottom:1px solid #b3ac8b;color:#575436;font-size:12px;line-height:1.5;background:transparent;box-shadow:none}
a.text-link[href*="ig.me/"]::before,.aerial-card .aerial-link::before,.corporate-link::before{width:16px;height:16px;flex-basis:16px}
a.text-link[href*="ig.me/"] .arrow-icon,.aerial-card .aerial-link .arrow-icon,.corporate-link .arrow-icon{width:13px;height:13px;flex-basis:13px;margin-left:2px}
a.text-link[href*="ig.me/"]:hover,.aerial-card .aerial-link:hover,.corporate-link:hover{color:var(--brand-ink);border-color:var(--brand-olive)}

/* Shared entrance motion: 520ms, 12px travel, 80ms rhythm (240ms maximum). */
:root{--reveal-duration:520ms;--reveal-ease:cubic-bezier(.22,1,.36,1)}
@media(prefers-reduced-motion:no-preference){
 .reveal-pending{opacity:0;transform:translateY(12px)}
 .reveal-visible{animation:content-reveal var(--reveal-duration) var(--reveal-ease) var(--reveal-delay,0ms) both}
 @keyframes content-reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
}
@media(prefers-reduced-motion:reduce){.reveal-pending,.reveal-visible{opacity:1;transform:none;animation:none}}
@media print{.reveal-pending,.reveal-visible{opacity:1!important;transform:none!important;animation:none!important}}

.messenger-dropdown{position:relative;margin-top:6px;font-size:14px}
.messenger-dropdown summary{display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;padding:14px 18px;background:#faf8f2;border:1px solid var(--line);border-radius:var(--radius-control);cursor:pointer}
.messenger-dropdown summary::-webkit-details-marker{display:none}
.messenger-dropdown summary svg{width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.4;transition:transform .18s}
.messenger-dropdown[open] summary svg{transform:rotate(180deg)}
.messenger-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:10;padding:6px;background:#faf8f2;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #48372f18}
.messenger-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--ink);border-radius:6px;padding:12px;font:inherit}
.messenger-menu button[aria-pressed="true"]{background:var(--brand-ink);color:var(--brand-milk)}
.messenger-menu button:hover:not([aria-pressed="true"]){background:#e4e2cf}

/* A compact booking dialog with a clear session summary. */
dialog.booking-modal{max-width:860px;padding:38px;max-height:calc(100dvh - 40px);overflow-y:auto}
.booking-modal #modal-content{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:34px;align-items:start}
.booking-summary{padding-right:26px;border-right:1px solid var(--line);height:100%}
.booking-modal h2{font-size:30px;line-height:1.2;margin:20px 0}
.booking-summary p{font-size:13px;line-height:1.9}
#booking-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 14px;min-width:0}
#booking-form label{margin:0;font-size:12px;min-width:0}
#booking-form input:not([type="hidden"]){height:44px;margin-top:7px;padding:10px 12px;background:#faf8f2;border-radius:8px}
#booking-form .messenger-dropdown{margin-top:7px}
#booking-form .messenger-dropdown summary{min-height:44px;padding:10px 14px;font-size:12px}
#booking-form>p{grid-column:1/-1;margin:0;font-size:11px;line-height:1.65}
#booking-form>.button{grid-column:1/-1;margin-top:4px;padding:15px 20px}
@media(max-width:650px){dialog.booking-modal{padding:28px 24px;max-width:540px}.booking-modal #modal-content{grid-template-columns:1fr;gap:22px}.booking-summary{border-right:0;border-bottom:1px solid var(--line);padding:0 0 14px}.booking-modal h2{font-size:27px;margin:14px 0}.booking-summary p{margin-bottom:0}}
@media(max-width:420px){#booking-form{grid-template-columns:1fr;gap:14px}dialog.booking-modal{padding:28px 20px}}

.aerial-card .aerial-badge{font-size:13px;line-height:1.4;padding:7px 12px}

/* Shared format badges. */
.pill,.aerial-card .aerial-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:30px;padding:6px 12px;border:1px solid #b3ac8b;border-radius:var(--radius-pill);background:#e4e2cf66;color:#575436;font-size:12px;font-weight:500;line-height:1.4;letter-spacing:0;text-transform:none;white-space:nowrap}

.calendar-top>div{display:flex;gap:8px}
.calendar #prev,.calendar #next{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:var(--radius-round);background:transparent;color:var(--ink);transition:background .18s,border-color .18s}
.calendar #prev:hover:not(:disabled),.calendar #next:hover:not(:disabled){background:var(--surface-hover);border-color:var(--line)}
.calendar-top button svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

.guide-card .buy{color:var(--brand-ink);transition:background .2s,border-color .2s,color .2s}
.guide-card:first-child .buy:hover,.guide-card:first-child .buy:focus-visible{background:var(--brand-olive);border-color:var(--brand-olive);color:var(--brand-milk)}
.guide-card:nth-child(2) .buy:hover,.guide-card:nth-child(2) .buy:focus-visible{background:var(--brand-powder);border-color:var(--brand-powder);color:var(--brand-ink)}

/* Editorial rhythm: masked headlines, quiet supporting elements. */
@media(prefers-reduced-motion:no-preference){
 .reveal-pending{transform:none}
 .reveal-heading.reveal-pending{opacity:1;clip-path:inset(0 0 100% 0);transform:translateY(16px)}
 .reveal-heading.reveal-visible{animation:headline-unveil 950ms cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms) both}
 .reveal-label.reveal-visible{animation:label-unveil 650ms ease-out var(--reveal-delay,0ms) both}
 .reveal-support.reveal-visible{animation:support-unveil 780ms cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms) both}
 @keyframes headline-unveil{from{opacity:1;clip-path:inset(0 0 100% 0);transform:translateY(16px)}to{opacity:1;clip-path:inset(-8% -2% -12% -2%);transform:translateY(0)}}
 @keyframes label-unveil{from{opacity:0}to{opacity:1}}
 @keyframes support-unveil{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
}

.booking-step-heading{margin-bottom:22px}.booking-step-heading h3{font-size:21px;margin:0 0 8px}.booking-step-heading p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}
.booking-confirm{display:flex;justify-content:flex-end;margin:8px 0 0}.booking-confirm .button{margin:0}
#booking-times[hidden],.booking-confirm[hidden]{display:none}
#booking-times{scroll-margin-top:24px}
@media(max-width:540px){.booking-confirm .button{width:100%;justify-content:center}}

/* Typography-led motion: word masks, with the rest of the layout staying still. */
.motion-word-mask{display:inline-block;overflow:clip;vertical-align:bottom;padding-bottom:.13em;margin-bottom:-.13em}
.motion-word{display:inline-block;transform-origin:0 100%}
@media(prefers-reduced-motion:no-preference){
 .reveal-heading.reveal-pending,.reveal-heading.reveal-visible{opacity:1;transform:none;clip-path:none;animation:none}
 .reveal-heading.reveal-pending .motion-word{transform:translateY(115%) rotate(3deg)}
 .reveal-heading.reveal-visible .motion-word{animation:word-arrive 850ms cubic-bezier(.16,1,.3,1) calc(var(--reveal-delay,0ms) + var(--word-delay,0ms)) both}
 .reveal-label.reveal-pending,.reveal-support.reveal-pending{opacity:1;transform:none}
 .reveal-label.reveal-visible,.reveal-support.reveal-visible{animation:none}
 @keyframes word-arrive{from{transform:translateY(115%) rotate(3deg)}to{transform:translateY(0) rotate(0)}}
}
@media(prefers-reduced-motion:reduce){.motion-word{animation:none!important;transform:none!important}}
@media print{.motion-word{animation:none!important;transform:none!important}}

/* A contained configuration card, with a single reading path. */
.booking-setup-panel{max-width:900px;margin:0 auto;padding:30px;background:#faf8f2;border:1px solid var(--line);border-radius:16px}
.booking-setup-panel .booking-step-heading{margin-bottom:24px}
.booking-setup-panel .booking-step-heading h3{font-size:23px;font-weight:500;margin:0}
.booking-setup-panel .booking-filters{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;margin:0;align-items:start}
.booking-setup-panel .direction-select{grid-column:1/-1;margin:0;max-width:none;width:100%}
.booking-setup-panel .direction-select>span,.booking-setup-panel .session-kind-control>span,.booking-setup-panel .duration-control>span{display:block;font-size:12px;margin:0 0 10px}
.booking-setup-panel .session-kind-control,.booking-setup-panel .duration-control{display:block;margin:0;min-width:0}
.booking-setup-panel .duration-options{display:flex;width:100%;margin:0}
.booking-setup-panel .duration-options button{flex:1;padding:12px 10px;white-space:normal;font-size:12px}
.booking-setup-panel #direction-trigger{min-height:48px;padding:13px 18px}
.booking-setup-panel .booking-confirm{margin:26px 0 0;padding-top:22px;border-top:1px solid var(--line);justify-content:flex-start}
.booking-setup-panel .booking-confirm .button{margin:0;justify-content:center;width:100%;padding:16px 22px}
#booking-times:not([hidden]){margin-top:30px}
@media(max-width:540px){.booking-setup-panel{padding:22px 18px}.booking-setup-panel .booking-filters{grid-template-columns:1fr;gap:20px}.booking-setup-panel .direction-select{grid-column:auto}}

.price-card-top{justify-content:flex-end}

.booking-setup-panel{max-width:none;width:100%}.booking-setup-panel .booking-filters{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:540px){.booking-setup-panel .booking-filters{grid-template-columns:1fr}}

/* Reference motion: a clean 110% vertical reveal, synchronized by visual line. */
@media(prefers-reduced-motion:no-preference){
 .reveal-heading.reveal-pending .motion-word{transform:translateY(110%)}
 .reveal-heading.reveal-visible .motion-word{animation:line-arrive 900ms cubic-bezier(.22,1,.36,1) calc(var(--reveal-delay,0ms) + var(--word-delay,0ms)) both}
 @keyframes line-arrive{from{transform:translateY(110%)}to{transform:translateY(0)}}
}
.nav-motion-mask{display:contents}
@media(max-width:1024px){
 header nav .nav-motion-mask{display:block;overflow:clip;border-bottom:1px solid var(--line)}
 header nav .nav-motion-mask:last-child{border-bottom:0}
 header nav .nav-motion-mask a{display:block;border:0}
}
@media(max-width:1024px) and (prefers-reduced-motion:no-preference){
 header.menu-open nav .nav-motion-mask a{animation:line-arrive 700ms cubic-bezier(.22,1,.36,1) var(--nav-delay,0ms) both}
}

/* Mobile navigation: a calm editorial panel. */
@media(max-width:1024px){
 header .menu-toggle{position:relative;width:44px;height:44px;border:0;border-radius:0;padding:0;gap:0;background:transparent}
 .menu-toggle span{position:absolute;left:9px;width:26px;height:1.5px;background:var(--ink);transition:transform .35s cubic-bezier(.22,1,.36,1),width .35s,opacity .2s}
 .menu-toggle span:first-child{transform:translateY(-4px)}
 .menu-toggle span:nth-child(2){opacity:0}
 .menu-toggle span:last-child{width:18px;transform:translateY(4px)}
 .menu-toggle[aria-expanded="true"] span:first-child{transform:rotate(45deg)}
 .menu-toggle[aria-expanded="true"] span:last-child{width:26px;transform:rotate(-45deg)}
 header.menu-open{box-shadow:none}
 header nav{padding:22px 6% 30px;background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-height:calc(100dvh - 90px);box-shadow:0 24px 30px #48372f18}
 header nav .nav-motion-mask{border-bottom:1px solid #d8cfc380}
 header nav .nav-motion-mask a{font-size:clamp(23px,5.2vw,34px);font-weight:400;letter-spacing:-.8px;line-height:1.2;padding:15px 2px;color:var(--ink)}
 header nav .nav-motion-mask a:hover,header nav .nav-motion-mask a:focus-visible{color:var(--rose)}
 header nav .nav-motion-mask:last-child{border-bottom:0}
 header.menu-open::after{content:"";position:fixed;inset:90px 0 0;background:#48372f38;backdrop-filter:blur(3px);z-index:-1;pointer-events:none}
 header nav{z-index:2}
 header.menu-open .languages{border-bottom:1px solid var(--line);padding-bottom:3px}
}
.mobile-nav-cta{display:none}
@media(max-width:1024px){header nav .mobile-nav-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:14px;letter-spacing:0;background:var(--pink);border:0;border-radius:var(--radius-pill);padding:16px 22px;margin-top:24px}header nav .mobile-nav-cta .arrow-icon{width:15px;height:15px}}

header nav a{transition:color .2s}
header nav a.is-current{color:var(--rose);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px}
@media(max-width:1024px){header nav .nav-motion-mask a.is-current{color:var(--rose);text-decoration:none;background:linear-gradient(90deg,#dab4ae30,transparent);padding-left:12px}}

.guide-card:first-child .buy:hover,.guide-card:first-child .buy:focus-visible{background:#6d69431a;border-color:#b3ac8b;color:#575436}
.guide-card:nth-child(2) .buy:hover,.guide-card:nth-child(2) .buy:focus-visible{background:#dab4ae33;border-color:#caaea4;color:var(--brand-ink)}
.languages button{position:relative}
.languages button::after{content:attr(data-tooltip);position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%,-3px);padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:#faf8f2;color:var(--ink);font-size:11px;line-height:1.4;white-space:nowrap;box-shadow:0 4px 14px #48372f10;opacity:0;visibility:hidden;pointer-events:none;z-index:60;transition:opacity .15s,transform .15s,visibility 0s .15s}
.languages button:hover::after,.languages button:focus-visible::after{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:.65s}
@media(hover:none){.languages button:hover:not(:focus-visible)::after{opacity:0;visibility:hidden}}

/* Quiet selected settings, leaving the primary action prominent. */
.booking-setup-panel .duration-options button.active{background:#e4e2cf;color:var(--brand-ink);box-shadow:inset 0 0 0 1px #b3ac8b70}
.booking-setup-panel .duration-options button:hover:not(.active):not(:disabled){background:#e4e2cf55;color:var(--brand-ink)}

.price-card{position:relative;padding-top:30px}
.price-card .price-card-top{position:absolute;top:30px;right:36px;margin:0;height:auto}
.price-card>h3{margin-top:0;padding-right:42px}
.price-card .price-symbol{font-size:27px;line-height:1.2}
@media(max-width:650px){.price-card{padding-top:26px}.price-card .price-card-top{top:26px;right:26px}}

/* Same-origin page transitions preserve navigation while content changes. */
@view-transition{navigation:auto}
header{view-transition-name:site-header}
main{view-transition-name:page-content}
::view-transition-group(site-header){z-index:2;animation-duration:.4s}
::view-transition-old(site-header),::view-transition-new(site-header){animation:none;mix-blend-mode:normal}
::view-transition-old(page-content){animation:page-depart .24s cubic-bezier(.4,0,1,1) both}
::view-transition-new(page-content){animation:page-enter .5s cubic-bezier(.22,1,.36,1) both}
::view-transition-group(page-content){animation-duration:.5s}
@keyframes page-depart{to{opacity:0;transform:translateY(-8px)}}
@keyframes page-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){
 @view-transition{navigation:none}
 ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}

.schedule{background:#efede7}
.booking-setup-panel{background:#faf8f2;border-color:#d8cfc3}
.booking-setup-panel .duration-options button.active{background:#efdfd8;color:var(--brand-ink);box-shadow:none}
.booking-setup-panel .duration-options button:hover:not(.active):not(:disabled){background:#efdfd855}
.booking-setup-panel .duration-options button:focus{outline:none}
.booking-setup-panel .duration-options button:focus-visible{outline:2px solid #8b574d;outline-offset:3px}
.booking-setup-panel .booking-confirm{justify-content:flex-end}
.booking-setup-panel .booking-confirm .button{width:auto;min-width:170px;padding:14px 26px;background:var(--brand-powder);box-shadow:none}
.booking-setup-panel .booking-confirm .button:hover{background:#cfa59f}
@media(max-width:540px){.booking-setup-panel .booking-confirm .button{width:auto;min-width:160px}}

@media(max-width:1024px){header.menu-open .languages{border-bottom:0;padding-bottom:0}}

/* Navigation hover uses a growing rule, with a persistent active state. */
@media(min-width:1025px){
 header nav .nav-motion-mask>a{position:relative;text-decoration:none;padding:8px 0}
 header nav .nav-motion-mask>a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.22,1,.36,1)}
 header nav .nav-motion-mask>a:hover,header nav .nav-motion-mask>a:focus-visible{color:var(--rose)}
 header nav .nav-motion-mask>a:hover::after,header nav .nav-motion-mask>a:focus-visible::after,header nav .nav-motion-mask>a.is-current::after{transform:scaleX(1)}
}
@media(max-width:1024px){header nav .nav-motion-mask>a{transition:color .25s,padding-left .3s cubic-bezier(.22,1,.36,1)}header nav .nav-motion-mask>a:hover{padding-left:12px}}
@media(prefers-reduced-motion:reduce){header nav .nav-motion-mask>a,header nav .nav-motion-mask>a::after{transition:none}}

.icon-hint{position:relative}
.icon-hint::after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 10px);right:0;padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:#faf8f2;color:var(--brand-ink);font-family:Manrope,'Noto Sans Georgian',sans-serif;font-size:11px;font-weight:400;line-height:1.4;white-space:nowrap;box-shadow:0 4px 14px #48372f10;opacity:0;visibility:hidden;pointer-events:none;z-index:10;transform:translateY(3px);transition:opacity .15s,transform .15s,visibility 0s .15s}
.icon-hint:hover::after,.icon-hint:focus-visible::after{opacity:1;visibility:visible;transform:translateY(0);transition-delay:.65s}
@media(hover:none){.icon-hint:hover:not(:focus-visible)::after{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){.icon-hint::after{transition:none;transform:none}}

.calendar-top{align-items:center;gap:16px}
.calendar-top h3{margin:0;line-height:1.4}
.calendar-top>div{align-items:center;flex-shrink:0}
.calendar #prev,.calendar #next{margin:0;line-height:1}
.calendar #prev::after,.calendar #next::after{left:50%;right:auto;transform:translate(-50%,3px)}
.calendar #prev:hover::after,.calendar #prev:focus-visible::after,.calendar #next:hover::after,.calendar #next:focus-visible::after{transform:translate(-50%,0)}

.calendar #prev:disabled{opacity:.3;cursor:default;background:transparent;border-color:var(--line)}
.calendar #prev:disabled::after{display:none}

.ticker{display:block;overflow:hidden;padding:0;height:64px}
.ticker-track{display:flex;width:max-content;height:100%;animation:ticker-travel 38s linear infinite}
.ticker-group{display:flex;align-items:center;justify-content:space-around;gap:64px;min-width:100vw;flex-shrink:0;padding:0 32px}
.ticker-group span{white-space:nowrap}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes ticker-travel{to{transform:translateX(-50%)}}
@media(max-width:1024px){.ticker{height:54px}.ticker-group{gap:32px;padding:0 16px}.ticker .ticker-group span:last-child,.ticker .ticker-group b:last-of-type{display:block}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}.ticker-group{min-width:0;gap:24px}.ticker-copy{display:none}.ticker{overflow-x:auto}}

.hero .button{background:var(--brand-powder);color:var(--brand-ink);border:0;box-shadow:none;transition:background .2s,color .2s}
.hero .button:hover{background:#cfa59f;color:var(--brand-ink);border:0;box-shadow:none}

.faq-plus::before,.faq-plus::after{transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .25s}
.faq-item[data-motion-target="closed"] .faq-plus::after{transform:translate(-50%,-50%) rotate(90deg)}
@media(prefers-reduced-motion:no-preference){
 .faq-item[open] .faq-answer{animation:faq-answer-enter .4s cubic-bezier(.22,1,.36,1) .08s both}
 .faq-item[data-motion-target="closed"] .faq-answer{animation:faq-answer-exit .2s ease both}
 @keyframes faq-answer-enter{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
 @keyframes faq-answer-exit{to{opacity:0;transform:translateY(-4px)}}
}

/* Shared underline motion for text links to Direct. */
a.text-link[href*="ig.me/"],.aerial-card .aerial-link,.corporate-link{border-bottom-color:transparent;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:left bottom;background-size:0% 1px;transition:background-size .3s cubic-bezier(.22,1,.36,1),color .2s}
a.text-link[href*="ig.me/"]:hover,a.text-link[href*="ig.me/"]:focus-visible,.aerial-card .aerial-link:hover,.aerial-card .aerial-link:focus-visible,.corporate-link:hover,.corporate-link:focus-visible{border-bottom-color:transparent;background-size:100% 1px}
@media(prefers-reduced-motion:reduce){a.text-link[href*="ig.me/"],.aerial-card .aerial-link,.corporate-link{transition:none}}

/* FAQ icon: the vertical stroke retracts, the horizontal stroke stays still. */
.faq-item .faq-plus::before{transform:translate(-50%,-50%);transition:none}
.faq-item .faq-plus::after{transform:translate(-50%,-50%) rotate(90deg) scaleX(1);opacity:1;transition:transform .24s ease,opacity .2s ease}
.faq-item[open] .faq-plus::after,.faq-item[data-motion-target="open"] .faq-plus::after{transform:translate(-50%,-50%) rotate(90deg) scaleX(0);opacity:0}
.faq-item[data-motion-target="closed"] .faq-plus::after{transform:translate(-50%,-50%) rotate(90deg) scaleX(1);opacity:1}
@media(prefers-reduced-motion:reduce){.faq-item .faq-plus::after{transition:none}}

header .small-button{transition:background .25s,border-color .25s,color .25s}
header .small-button .arrow-icon{transition:transform .25s cubic-bezier(.22,1,.36,1)}
header .small-button:hover,header .small-button:focus-visible{background:var(--control-hover-bg);border-color:var(--control-hover-border);color:var(--brand-ink)}
header .small-button:hover .arrow-icon,header .small-button:focus-visible .arrow-icon{transform:translate(2px,-2px)}
@media(prefers-reduced-motion:reduce){header .small-button,header .small-button .arrow-icon{transition:none}header .small-button:hover .arrow-icon,header .small-button:focus-visible .arrow-icon{transform:none}}

footer a .arrow-icon{width:12px;height:12px;flex-basis:12px}

/* Uniform direction cards make the selectable areas explicit. */
.direction-grid{gap:18px;border:0}
.direction-grid .direction-card,.direction-grid .direction-card:nth-child(n),.direction-grid .aerial-card{padding:26px;border:1px solid var(--line);border-radius:14px;background:#faf8f2;column-gap:14px;transition:background .25s,border-color .25s,box-shadow .25s}
.direction-grid a.direction-card:hover,.direction-grid a.direction-card:focus-visible{background:#f1ece4;border-color:#b3a594;box-shadow:0 4px 14px #48372f08}
.direction-grid a.direction-card.selected{background:#faf8f2;border-color:var(--line)}
.direction-grid a.direction-card.selected:hover{background:#f1ece4;border-color:#b3a594}
.direction-action{grid-column:2;font-size:11px;color:var(--brand-olive);margin-top:18px;text-decoration:underline;text-underline-offset:4px}
@media(max-width:540px){.direction-grid .direction-card,.direction-grid .direction-card:nth-child(n){padding:22px 18px;grid-template-columns:28px minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.direction-grid .direction-card{transition:none}}

.footer-legal{display:flex;justify-content:center;gap:20px;flex-basis:100%;font-size:10px;color:var(--muted)}footer{flex-wrap:wrap}.footer-legal a:hover{text-decoration:underline;text-underline-offset:4px}.legal-page .section{max-width:1000px;margin:auto}.legal-page h1{font-size:42px;letter-spacing:-1.5px}.legal-draft{padding:16px;border:1px solid var(--line);border-radius:var(--radius-control);background:#efdfd855;font-size:13px;line-height:1.7}.legal-content h2{font-size:23px;letter-spacing:-.5px;margin:32px 0 12px}.legal-content p{font-size:14px;line-height:1.9;color:var(--muted)}.legal-page .corporate-link{margin-top:24px}@media(max-width:540px){.footer-legal{flex-wrap:wrap;gap:12px}.legal-page h1{font-size:32px}}

/* Radius scale: controls 8, cards 16, dialogs 24, pills fully rounded. */
:root{--radius-micro:4px;--radius-control:8px;--radius-card:16px;--radius-dialog:24px;--radius-pill:999px;--radius-round:50%}
input:not([type="radio"]):not([type="checkbox"]),textarea,select,#direction-trigger,.messenger-dropdown summary,#booking-form input:not([type="hidden"]),#booking-form .messenger-dropdown summary{border-radius:var(--radius-control)}
#direction-menu,.messenger-menu{border-radius:var(--radius-control)}
#direction-menu button,.messenger-menu button,.rating-options input+span{border-radius:var(--radius-control)}
.price-card,.review-card,.review-form,.booking-grid,.booking-setup-panel,.direction-grid .direction-card,.direction-grid .direction-card:nth-child(n),.direction-grid .aerial-card{border-radius:var(--radius-card)}
dialog,dialog.booking-modal{border-radius:var(--radius-dialog)}
.button,.small-button,.currency-toggle,.duration-options,.currency-toggle button,.duration-options button,.pill,.aerial-card .aerial-badge,header nav .mobile-nav-cta{border-radius:var(--radius-pill)}
.languages button::after,.icon-hint::after,.legal-draft{border-radius:var(--radius-control)}

/* The review composer shares the grid width but reads as a separate section. */
.reviews .review-form{max-width:none;width:100%;margin:48px 0 0;padding:38px 0 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);column-gap:48px;align-items:start}
.review-form .review-form-head{grid-column:1;grid-row:1/6;padding:0;max-width:360px}
.review-form .review-form-head h3{font-size:30px;line-height:1.2;letter-spacing:-1px;margin:20px 0}
.review-form>.review-fields,.review-form>label,.review-form>.review-privacy,.review-form>.button,.review-form>#review-send{grid-column:2}
.review-form .review-fields{margin-top:0;gap:20px;grid-template-columns:1fr}
.review-form .review-fields>label{margin-top:0}
.review-form>.button{width:auto;justify-self:start;margin-top:18px}
.review-form>label{margin-top:20px}
@media(max-width:1024px){.reviews .review-form{grid-template-columns:1fr;gap:0;padding-top:28px}.review-form .review-form-head{grid-column:1;grid-row:auto;max-width:560px;margin-bottom:20px}.review-form>.review-fields,.review-form>label,.review-form>.review-privacy,.review-form>.button,.review-form>#review-send{grid-column:1}.review-form .review-form-head h3{font-size:27px}}

/* Footer hierarchy: brand/contact row, then legal information. */
footer{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px 36px;padding:26px 8% 20px;max-width:none}
footer>.logo{grid-column:1;grid-row:1;font-size:30px;letter-spacing:-2px}
footer>.logo span{display:none}
footer>p{grid-column:2;grid-row:1;justify-self:start;margin:0;font-size:11px}
footer>.footer-socials{grid-column:3;grid-row:1;justify-self:end;display:inline-flex;align-items:center;gap:9px;font-size:11px}
footer>.footer-legal{grid-column:1/3;grid-row:2;display:flex;justify-content:flex-start;gap:22px;padding-top:16px;border-top:1px solid var(--line);font-size:10px}
footer>span{grid-column:3;grid-row:2;align-self:stretch;display:flex;align-items:center;justify-content:flex-end;padding-top:16px;border-top:1px solid var(--line);font-size:10px;width:auto;white-space:pre}
@media(max-width:650px){footer{grid-template-columns:1fr auto;padding:24px 6% 20px;gap:18px 20px}footer>.logo{grid-column:1;grid-row:1}footer>.footer-socials{grid-column:2;grid-row:1}footer>p{display:block;grid-column:1/-1;grid-row:2;font-size:10px}footer>.footer-legal{grid-column:1/-1;grid-row:3;flex-wrap:wrap;gap:12px 20px}footer>span{grid-column:1/-1;grid-row:4;justify-content:flex-start;border:0;padding-top:0}}

@media(max-width:1024px){header nav .mobile-nav-cta,header nav .mobile-nav-cta:hover,header nav .mobile-nav-cta:focus-visible{width:fit-content;min-width:180px;margin-top:24px;padding:14px 22px;gap:28px;background:var(--brand-powder);color:var(--brand-ink);text-decoration:none;font-size:14px;line-height:1.4}header nav .mobile-nav-cta:hover{background:#cfa59f}}

footer{padding-top:36px;padding-bottom:28px;row-gap:28px}
footer>.footer-legal,footer>span{padding-top:20px}
@media(max-width:650px){footer{padding-top:30px;padding-bottom:26px;row-gap:20px}footer>span{padding-top:0}}

footer{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
footer>.logo{justify-self:start;line-height:1;display:block}
footer>p{justify-self:center;text-align:center;line-height:1.5}
footer>.footer-socials{line-height:1.5}
@media(max-width:650px){footer{grid-template-columns:1fr auto}footer>p{justify-self:start;text-align:left}}

.footer-socials>a{position:relative;padding-bottom:5px;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:left bottom;background-size:0% 1px;transition:background-size .3s cubic-bezier(.22,1,.36,1),color .2s}
.footer-socials>a:hover,.footer-socials>a:focus-visible{background-size:100% 1px;color:var(--rose)}
@media(prefers-reduced-motion:reduce){.footer-socials>a{transition:none}}

.direction-grid a.direction-card h3,.direction-grid a.direction-card:hover h3,.direction-grid a.direction-card:focus-visible h3{text-decoration:none;border-bottom:0;background-image:none;transition:color .2s}
.direction-grid a.direction-card:hover h3,.direction-grid a.direction-card:focus-visible h3{color:var(--rose)}
.direction-grid .direction-action{justify-self:start;display:inline-flex;align-items:center;text-decoration:none;border:1px solid #c9c5ae;border-radius:var(--radius-pill);padding:7px 12px;line-height:1.4;background:transparent;color:#575436;transition:background .2s,border-color .2s}
.direction-grid a.direction-card:hover .direction-action,.direction-grid a.direction-card:focus-visible .direction-action{background:#e4e2cf88;border-color:#b3ac8b;text-decoration:none}

/* Ordered entrances for repeated content, separate from headline motion. */
@media(prefers-reduced-motion:no-preference){
 .reveal-item.reveal-pending{opacity:0;transform:translateY(10px)}
 .reveal-item.reveal-visible{animation:list-item-enter 650ms cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms) both}
 @keyframes list-item-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
}

footer>.footer-legal,footer>span{border-top:0}
footer::before{content:"";grid-column:1/-1;grid-row:2;height:1px;background:var(--line);width:100%}
footer>.footer-legal,footer>span{grid-row:3;padding-top:0}
footer{row-gap:20px}
@media(max-width:650px){footer::before{grid-row:3}footer>.footer-legal{grid-row:4}footer>span{grid-row:5}}

/* Reviews: quiet surfaces and a clear editorial hierarchy. */
.reviews-grid.balanced-reviews{gap:20px;align-items:stretch}
.reviews-grid .review-card,.reviews-grid .review-card:nth-child(n){display:flex;flex-direction:column;min-height:0;padding:26px;background:#faf8f2;border:0;border-radius:var(--radius-card);box-shadow:0 2px 14px #48372f05}
.reviews-grid .review-card .review-author{order:-2;display:block;margin:0 0 18px;padding:0;border:0}
.reviews-grid .review-author>div{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 14px}
.reviews-grid .review-author h3{font-size:13px;font-weight:600;line-height:1.5;margin:0}
.reviews-grid .review-author time{display:block;font-size:10px;line-height:1.5;margin:0;color:var(--muted)}
.reviews-grid .review-card .review-stars{order:-1;font-size:14px;letter-spacing:2px;line-height:1;margin:0 0 18px;color:#caa097}
.reviews-grid .review-card blockquote{font-size:15px;line-height:1.8;margin:0;flex:1;color:var(--brand-ink);font-weight:400;min-height:0}
@media(max-width:540px){.reviews-grid .review-card,.reviews-grid .review-card:nth-child(n){padding:22px}.reviews-grid .review-card blockquote{font-size:14px}}

.direction-grid .direction-action{color:#74685f;border-color:#d8cfc3;background:transparent}
.direction-grid a.direction-card:hover .direction-action,.direction-grid a.direction-card:focus-visible .direction-action{color:#8b574d;background:#efdfd855;border-color:#caaea4}

main.reviews-page+footer{border-top:1px solid #d8cfc3;background:#eeebe4}

.direction-hover-arrow{grid-column:2;justify-self:end;display:inline-flex;margin-top:14px;color:var(--rose);opacity:0;transform:translate(-4px,4px);transition:opacity .22s,transform .3s cubic-bezier(.22,1,.36,1)}
.direction-hover-arrow .arrow-icon{width:18px;height:18px;flex-basis:18px}
.direction-grid a.direction-card:hover .direction-hover-arrow,.direction-grid a.direction-card:focus-visible .direction-hover-arrow{opacity:1;transform:translate(0,0)}
@media(hover:none){.direction-hover-arrow{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.direction-hover-arrow{transition:none;transform:none}}

/* Backgrounds join the page edge; the content itself never scales. */
.joining-surface{position:relative;isolation:isolate;background:transparent!important}
.joining-surface::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:var(--section-surface);clip-path:inset(0 2% round 24px);transition:clip-path 1.1s cubic-bezier(.22,1,.36,1)}
.joining-surface.surface-joined::before{clip-path:inset(0 0 round 0px)}
@media(max-width:540px){.joining-surface::before{clip-path:inset(0 3% round 16px)}.joining-surface.surface-joined::before{clip-path:inset(0 0 round 0px)}}
@media(prefers-reduced-motion:reduce){.joining-surface::before{clip-path:none;transition:none}}
@media print{.joining-surface::before{clip-path:none;transition:none}}

/* Hero portrait: an arch-shaped curtain reveal with a restrained camera settle. */
@media(prefers-reduced-motion:no-preference){
 .hero-photo{animation:portrait-unveil 1.35s cubic-bezier(.16,1,.3,1) .12s both}
 .hero-photo img{animation:portrait-settle 1.7s cubic-bezier(.16,1,.3,1) .12s both;transform-origin:50% 44%}
 @keyframes portrait-unveil{from{clip-path:inset(100% 0 0 0 round 160px 160px 5px 5px)}to{clip-path:inset(0 0 0 0 round 160px 160px 5px 5px)}}
 @keyframes portrait-settle{from{transform:scale(1.065) translateY(9px)}to{transform:scale(1) translateY(0)}}
}
@media(prefers-reduced-motion:reduce){.hero-photo,.hero-photo img{animation:none;clip-path:none;transform:none}}

.review-form .rating-options{display:flex;justify-content:flex-start;gap:6px;width:fit-content}
.review-form .rating-options label{margin:0;cursor:pointer;flex:0 0 auto}
.review-form .rating-options label>span,.review-form .rating-options input:checked+span{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:var(--radius-control);background:transparent;box-shadow:none;color:#d8cfc3;font-size:32px;line-height:1;transition:color .18s,transform .18s}
.review-form .rating-options label.star-filled>span{color:#b98279}
.review-form .rating-options label:hover>span{transform:translateY(-2px)}
.review-form .rating-options input:focus-visible+span{outline:2px solid #8b574d;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.review-form .rating-options label>span{transition:none}.review-form .rating-options label:hover>span{transform:none}}

.review-form>.review-consent{grid-column:2;display:flex;align-items:flex-start;gap:10px;margin-top:18px;color:var(--muted);font-size:11px;line-height:1.7;cursor:pointer}
.review-consent input[type="checkbox"]{flex:0 0 18px;width:18px;height:18px;padding:0;margin:1px 0 0;accent-color:#8b574d}
@media(max-width:1024px){.review-form>.review-consent{grid-column:1}}

.direction-grid a.direction-card .direction-hover-arrow{position:absolute;top:28px;right:26px;margin:0}
.direction-grid a.direction-card h3{padding-right:30px}
@media(max-width:540px){.direction-grid a.direction-card .direction-hover-arrow{top:24px;right:18px}}

.booking-setup-panel .booking-confirm .button{background:var(--brand-ink);color:var(--brand-milk)}
.booking-setup-panel .booking-confirm .button:hover,.booking-setup-panel .booking-confirm .button:focus-visible{background:#624c40;color:var(--brand-milk)}
.booking-setup-panel .duration-options button.active,#direction-menu button[aria-selected="true"]{background:#efdfd8;color:var(--brand-ink);box-shadow:none}
#direction-menu button:hover:not([aria-selected="true"]){background:var(--surface-hover)}
.aerial-card .aerial-badge{background:var(--surface-hover)}

.aerial-card>.direction-number{grid-column:1;grid-row:1;padding-top:6px}
.aerial-card .aerial-heading{grid-column:2;display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-bottom:14px}
.aerial-card .aerial-heading h3{margin:0;padding:0;line-height:1.3}
.aerial-card .aerial-heading .aerial-badge{flex-shrink:0;font-size:11px;min-height:26px;padding:4px 10px}
.direction-grid .aerial-card>p{grid-column:2;margin-top:0}
.direction-grid .aerial-card .aerial-link{margin-top:14px}

#booking-form>.booking-contact{grid-column:1/-1}#booking-form>.booking-contact[hidden]{display:none}.booking-contact small{display:block;margin-top:7px;font-size:10px;color:var(--muted);line-height:1.6}.booking-message{width:100%;padding:14px;border:1px solid var(--line);background:#faf8f2;color:var(--ink);font:inherit;line-height:1.7}dialog:focus{outline:none}

.direction-grid .aerial-card>.direction-number{grid-row:1}
.direction-grid .aerial-card>.aerial-heading{grid-row:1}
.direction-grid .aerial-card>p{grid-column:2;grid-row:2}
.direction-grid .aerial-card>.aerial-link{grid-column:2;grid-row:3}

.pointer-star{position:fixed;top:0;left:0;width:16px;height:16px;color:var(--brand-olive);z-index:100;pointer-events:none;opacity:0;transition:opacity .2s;will-change:transform}
.pointer-star svg{display:block;width:100%;height:100%;stroke:currentColor;stroke-width:1.1;transition:transform .5s cubic-bezier(.22,1,.36,1),color .25s}
.pointer-star.is-visible{opacity:.6}
.pointer-star.is-interactive svg{transform:rotate(45deg);color:#8b574d}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.pointer-star{display:none}}
@media print{.pointer-star{display:none}}

.price-symbol svg{display:block;width:24px;height:24px;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

#modal-content>a.button[href*="ig.me/"]{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:16px 24px;font-size:13px;line-height:1.4;background:var(--brand-powder);color:var(--brand-ink);box-shadow:none}
#modal-content>a.button[href*="ig.me/"]::before{width:17px;height:17px;flex-basis:17px}
#modal-content>a.button[href*="ig.me/"] .arrow-icon{width:14px;height:14px;flex:0 0 14px;margin-left:4px}
#modal-content>a.button[href*="ig.me/"]:hover{background:#cfa59f}

dialog.booking-ready-modal{max-width:560px;padding:36px;max-height:calc(100dvh - 40px);overflow-y:auto}
.ready-mark{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-round);background:#e4e2cf;color:var(--brand-olive)}
.ready-mark svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.booking-ready h2{font-size:28px;margin:18px 0 12px;line-height:1.2;letter-spacing:-.8px}
.booking-ready>p{font-size:12px;line-height:1.8}
.booking-message-preview{margin:22px 0;padding:18px 20px;background:#faf8f2;border-radius:var(--radius-card);white-space:pre-line;font-size:13px;line-height:1.85;color:var(--ink)}
.booking-ready-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px}
.booking-ready-actions .button{margin:0;background:var(--brand-ink);color:var(--brand-milk);padding:14px 20px;box-shadow:none}
.booking-ready-actions .button:hover{background:#624c40}
.booking-ready-actions .corporate-link{font-size:12px;gap:8px}
.booking-ready-actions .arrow-icon{width:13px;height:13px;flex-basis:13px}
#booking-copy-status:empty{display:none}
@media(max-width:540px){dialog.booking-ready-modal{padding:30px 22px}.booking-ready h2{font-size:26px}}

/* Rounded stars share one icon in reviews and the rating control. */
:root{--review-star:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 3 2.78 5.63L21 9.54l-4.5 4.39 1.06 6.2L12 17.2l-5.56 2.93 1.06-6.2L3 9.54l6.22-.91Z' fill='black' stroke='black' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E")}
.reviews-grid .review-card .review-stars{font-size:0;letter-spacing:0;width:100px;height:18px;background:currentColor;mask-image:var(--review-star);mask-size:20px 18px;mask-repeat:repeat-x;-webkit-mask-image:var(--review-star);-webkit-mask-size:20px 18px;-webkit-mask-repeat:repeat-x}
.review-form .rating-options label>span,.review-form .rating-options input:checked+span{font-size:0}
.review-form .rating-options label>span::before{content:"";width:30px;height:30px;display:block;background:currentColor;mask:var(--review-star) center/contain no-repeat;-webkit-mask:var(--review-star) center/contain no-repeat}

main.reviews-page+footer{background:var(--bg)}

.price-card .button,.offline-card .button{background:#faf8f255;color:var(--brand-ink);border:1px solid #b99e9366;box-shadow:none;transition:background .2s,border-color .2s}
.price-card .button:hover,.price-card .button:focus-visible{background:#faf8f299;color:var(--brand-ink);border-color:#b99e93;box-shadow:none}
.offline-card .button{color:#575436;border-color:#a5a18188}
.offline-card .button:hover,.offline-card .button:focus-visible{background:#faf8f299;color:#575436;border-color:#a5a181;box-shadow:none}

footer>p{text-transform:uppercase;letter-spacing:1.3px;font-size:10px}
@media(max-width:650px){footer>p{font-size:9px;letter-spacing:1.1px}}

/* Rounded, consistent keyboard focus without changing control shapes. */
a:where(:not(.button):not(.small-button):not(.direction-card):not(.mobile-nav-cta)),.languages button{border-radius:var(--radius-control)}
:focus-visible{outline:2px solid #8b574d;outline-offset:4px}
.faq-item>summary{border-radius:var(--radius-control)}
.booking-setup-panel .duration-options button:focus-visible{outline:2px solid #8b574d;outline-offset:3px}

.review-consent input[type="checkbox"]{appearance:none;-webkit-appearance:none;display:grid;place-content:center;background:#faf8f2;border:1px solid #b9aaa0;border-radius:var(--radius-micro);color:var(--brand-ink);cursor:pointer}
.review-consent input[type="checkbox"]::before{content:"";width:10px;height:6px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-1px) rotate(-45deg) scale(0)}
.review-consent input[type="checkbox"]:checked{background:#f0e7df;border-color:#a68c7f}
.review-consent input[type="checkbox"]:checked::before{transform:translateY(-1px) rotate(-45deg) scale(1)}
@media(forced-colors:active){.review-consent input[type="checkbox"]{appearance:auto}.review-consent input[type="checkbox"]::before{display:none}}

.guide-purchase{display:flex;align-items:center;gap:18px;flex-shrink:0}.guide-price{font-size:23px;line-height:1.3;font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums}.guide-price small{font-size:16px}.guide-info{gap:20px}.guide-info>div:first-child{min-width:0}.guide-info .guide-price small{display:inline}.guide-info .guide-price>small+small{display:block;font-size:10px}@media(max-width:540px){.guide-purchase{gap:12px}.guide-price{font-size:21px}}

/* Scroll pulls the top edge upward to meet the preceding section. */
.joining-surface::before,.joining-surface.surface-joined::before{inset:var(--surface-pull,0px) 0 0;clip-path:none;border-radius:var(--surface-curve,0px) var(--surface-curve,0px) 0 0;transition:none}
@media(prefers-reduced-motion:reduce){.joining-surface::before{inset:0;border-radius:0}}

.reviews :is(h1,h2) em{font-family:Georgia,serif;font-style:italic;font-weight:400;color:#8b574d}

.languages button{border-radius:0}

.faq-item>summary:focus-visible{outline:2px solid #8b574d;outline-offset:-3px;border-radius:var(--radius-control)}
.faq-item[open]>.faq-answer{padding-top:12px}

.review-consent input[type="checkbox"]::before{width:12px;height:12px;border:0;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8 3 3 6-6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3.5 8 3 3 6-6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;transform:scale(0)}
.review-consent input[type="checkbox"]:checked::before{transform:scale(1)}

.footer-socials>a{background-image:none;border-radius:0}
.footer-socials>a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.22,1,.36,1)}
.footer-socials>a:hover::after,.footer-socials>a:focus-visible::after{transform:scaleX(1)}
.footer-socials>a:focus-visible{border-radius:8px}
@media(prefers-reduced-motion:reduce){.footer-socials>a::after{transition:none}}

.faq-item>summary{padding-left:12px;padding-right:12px;margin-left:-12px;margin-right:-12px}
.faq-item>summary:focus-visible{outline-offset:-2px}

.closing.joining-surface{background:var(--surface-underlay,#ecebdd)!important;border-radius:0}
.closing.joining-surface::before,.closing.joining-surface.surface-joined::before{border-radius:0}

.reviews-grid .review-card .review-stars{color:#a66f66;width:110px;height:21px;mask-size:22px 21px;-webkit-mask-size:22px 21px}

.review-sort{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin:0 0 24px;font-size:12px;color:var(--muted)}
.review-sort-options{display:inline-flex;border:1px solid var(--line);padding:4px;border-radius:var(--radius-pill);gap:4px}
.review-sort-options button{border:0;background:transparent;color:var(--muted);padding:10px 14px;border-radius:var(--radius-pill);font-size:11px;scale:1;transition:background .2s,color .2s,scale 220ms var(--reveal-ease)}
.review-sort-options button[aria-pressed="true"]{background:#efdfd8;color:var(--brand-ink)}
.review-sort-options button:is(:hover,:focus-visible){color:var(--brand-ink)}
.review-sort-options button:is(:hover,:focus-visible):not([aria-pressed="true"]){background:var(--surface-powder-soft)}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.review-sort-options button:hover{scale:1.025}}
@media(prefers-reduced-motion:reduce){.review-sort-options button{scale:1;transition:none}}
@media(max-width:540px){.review-sort{justify-content:flex-start;flex-wrap:wrap;gap:10px}}

.calendar .days button{appearance:none;-webkit-appearance:none;color:var(--brand-ink);-webkit-text-fill-color:var(--brand-ink)}
.calendar .days button.selected{color:var(--brand-ink);-webkit-text-fill-color:var(--brand-ink)}
.calendar .days button:disabled{color:#74685f;-webkit-text-fill-color:#74685f;opacity:.28}

.brand-star{display:block;width:24px;height:24px;stroke:currentColor;stroke-width:1.4;stroke-linecap:round}.closing>span>.brand-star{width:36px;height:36px;margin:0 auto}.ticker b{display:flex;align-items:center;justify-content:center;flex-shrink:0}

/* Explicit mobile portrait dimensions prevent an empty absolute-image container. */
@media(max-width:1024px){
 .hero-photo{display:block;width:100%;min-width:0;height:auto;min-height:0;max-height:none;aspect-ratio:4/5;justify-self:stretch;align-self:start;animation:none;clip-path:none}
 .hero-photo img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:none;transform:none}
}

@media(max-width:650px){
 footer{grid-template-columns:1fr;text-align:center;justify-items:center;gap:18px}
 footer>.logo{grid-column:1;grid-row:1;justify-self:center}
 footer>p{grid-column:1;grid-row:2;justify-self:center;text-align:center}
 footer>.footer-socials{grid-column:1;grid-row:3;justify-self:center}
 footer::before{grid-column:1;grid-row:4}
 footer>.footer-legal{grid-column:1;grid-row:5;justify-content:center;justify-self:center}
 footer>span{grid-column:1;grid-row:6;justify-content:center;justify-self:center;white-space:normal;flex-wrap:wrap}
}

@media(max-width:650px){.booking-setup-panel .booking-confirm{justify-content:flex-start}.booking-setup-panel .booking-confirm .button{margin-left:0;margin-right:auto}}

/* Mobile menu: full-height typography panel, without a stack of divider rows. */
@media(max-width:1024px){
 header.menu-open::after{display:none}
 header nav{position:fixed;top:90px;bottom:0;left:0;right:0;height:calc(100dvh - 90px);max-height:none;padding:28px 7% max(28px,env(safe-area-inset-bottom));border:0;background:var(--brand-milk);box-shadow:none;overflow-y:auto;overscroll-behavior:contain}
 header.menu-open nav{display:flex;flex-direction:column;align-items:stretch;gap:2px}
 header nav .nav-motion-mask,header nav .nav-motion-mask:last-child{border:0;flex-shrink:0}
 header nav .nav-motion-mask>a{position:relative;font-size:clamp(27px,6vw,38px);line-height:1.18;letter-spacing:-1px;font-weight:400;padding:11px 0;color:var(--brand-ink);border:0;background:none;text-decoration:none;transition:color .25s}
 header nav .nav-motion-mask>a:hover,header nav .nav-motion-mask>a:focus-visible,header nav .nav-motion-mask>a.is-current{padding-left:0;background:none;text-decoration:none;color:#8b574d}
 header nav .nav-motion-mask>a.is-current::after{content:"";display:inline-block;width:6px;height:6px;margin-left:12px;border-radius:var(--radius-round);background:currentColor;vertical-align:middle}
 header nav .mobile-nav-cta,header nav .mobile-nav-cta:hover,header nav .mobile-nav-cta:focus-visible{align-self:flex-start;flex-shrink:0;margin-top:auto;margin-bottom:0;width:auto;min-width:0;padding:14px 22px;gap:28px;border:1px solid #c9b6aa;background:transparent;color:var(--brand-ink);text-decoration:none;font-size:13px}

 header nav .nav-motion-mask:last-of-type{margin-bottom:32px}
}
@media(max-width:1024px) and (max-height:600px){header nav{padding-top:16px;padding-bottom:18px}header nav .nav-motion-mask>a{font-size:24px;padding:8px 0}header nav .nav-motion-mask:last-of-type{margin-bottom:18px}}
@media(max-width:1024px){body:has(header.menu-open){overflow:hidden}}

/* Avoid cross-document snapshots fighting scroll and section entrances. */
@view-transition{navigation:none}
header,main{view-transition-name:none}
.anchor-arrival .reveal-visible,.anchor-arrival .motion-word{animation:none!important;opacity:1;transform:none;clip-path:none}

/* Mobile image participates in normal flow, including older iOS Safari. */
@media(max-width:1024px){
 .hero-photo{width:100%;height:auto;min-height:0;aspect-ratio:auto;overflow:hidden;animation:none!important;clip-path:none!important}
 .hero-photo img{position:static;display:block;width:100%;height:auto;object-fit:contain;animation:none!important;transform:none!important}
}

/* Compact mobile menu; the CTA stays with the links, not at the viewport edge. */
@media(max-width:1024px){
 header nav{position:absolute;top:100%;bottom:auto;left:0;right:0;height:auto;max-height:calc(100svh - 90px);max-height:calc(var(--menu-available-height,100svh) - 90px);padding:18px 7% 28px;overflow-y:auto;border-bottom:1px solid var(--line);box-shadow:0 16px 26px #48372f0d}
 header.menu-open nav{gap:0}
 header nav .nav-motion-mask>a{font-size:clamp(25px,5.7vw,32px);padding:10px 0;line-height:1.2}
 header nav .nav-motion-mask:last-of-type{margin-bottom:0}
 header nav .mobile-nav-cta,header nav .mobile-nav-cta:hover,header nav .mobile-nav-cta:focus-visible{margin-top:20px;margin-bottom:0;min-height:44px;padding:12px 20px}
}
@media(max-width:1024px) and (max-height:600px){header nav{padding-top:12px;padding-bottom:22px}header nav .nav-motion-mask>a{font-size:23px;padding:7px 0}header nav .mobile-nav-cta{margin-top:14px}}

#direction-menu button{touch-action:manipulation;min-height:44px}#direction-menu{max-height:55svh;overflow-y:auto;overscroll-behavior:contain}

/* iOS booking form: no browser-blue controls, no auto-zoom, no clipped options. */
.modal-close{appearance:none;-webkit-appearance:none;color:var(--brand-ink);-webkit-text-fill-color:var(--brand-ink);width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center;line-height:1;border-radius:var(--radius-round);touch-action:manipulation}
.modal-close:focus:not(:focus-visible){outline:none;box-shadow:none}
dialog:focus{outline:none;box-shadow:none}
@media(max-width:1024px){
 dialog.booking-modal{max-height:calc(100svh - 28px);max-height:calc(var(--menu-available-height,100svh) - 28px);overflow-y:auto;overscroll-behavior:contain;margin:auto}
 #booking-form{grid-template-columns:1fr;gap:16px}
 #booking-form input:not([type="hidden"]),#booking-form select,#booking-form textarea{font-size:16px}
 #booking-form .messenger-dropdown summary{font-size:16px;min-height:46px}
 #booking-form .messenger-menu{position:static;margin-top:6px;box-shadow:none;max-height:210px;overflow-y:auto}
 #booking-form .messenger-menu button{font-size:16px;min-height:44px;color:var(--brand-ink);-webkit-text-fill-color:currentColor;touch-action:manipulation}
 #booking-form .messenger-menu button[aria-pressed="true"]{background:#efdfd8;color:var(--brand-ink)}
 #booking-form>label{grid-column:1/-1}
}

@media(max-width:1024px){
 .review-form input:not([type="radio"]):not([type="checkbox"]),.review-form textarea,#review-prepared{font-size:16px;line-height:1.5}
}

/* Keep the first viewport stable when navigating between pages. */
html{scrollbar-gutter:stable}
.internal-page-entry .hero-photo,.internal-page-entry .hero-photo img{animation:none!important;clip-path:none!important;transform:none!important}

/* Guide covers keep one desktop-to-mobile aspect ratio and scale their artwork. */
.guide-card{container-type:inline-size}
.guide-art{height:auto;aspect-ratio:8/5;padding:5cqw 5.5cqw}
.guide-art h3{font-size:8cqw;margin:6cqw 0;letter-spacing:-.04em}
.guide-art>span,.guide-art>small{font-size:1.5cqw;letter-spacing:.15em}
.guide-art>small{left:5.5cqw;bottom:4.5cqw}
.guide-art .abstract{width:34%;height:75%;border-width:6cqw;right:4%;top:20%;border-radius:100px}
.guide-art .a2{right:5%;top:22%;border-radius:100px 100px 0 0}

dialog.guide-modal{max-width:780px;padding:28px;max-height:calc(100svh - 32px);overflow-y:auto}
.guide-dialog-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:center}
.guide-dialog-cover{container-type:inline-size;border-radius:var(--radius-card);overflow:hidden}
.guide-dialog-copy{padding:18px 4px}
.guide-dialog-copy h2{font-size:29px;line-height:1.2;letter-spacing:-.8px;margin:18px 0}
.guide-dialog-meta{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}
.guide-dialog-meta strong{font-size:24px;font-weight:500;color:var(--ink);white-space:nowrap}
.guide-dialog-copy p{margin:18px 0;line-height:1.8}
.guide-dialog-copy .button{margin-top:0;padding:14px 20px;box-shadow:none;background:var(--brand-powder);color:var(--brand-ink);justify-content:center}
@media(max-width:650px){dialog.guide-modal{padding:24px;max-width:460px}.guide-dialog-layout{grid-template-columns:1fr;gap:18px}.guide-dialog-cover{margin-top:20px}.guide-dialog-copy{padding:0}.guide-dialog-copy h2{font-size:26px;margin:12px 0 18px}.guide-dialog-copy .button{font-size:12px}}

/* Contact methods remain visible without popup positioning or native menu chrome. */
#booking-form .booking-channel{grid-column:1/-1;border:0;padding:0;margin:0;min-width:0;display:block}
.booking-channel legend{padding:0;margin:0 0 10px;font:inherit}
.messenger-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#booking-form .messenger-option{display:block;position:relative;margin:0;cursor:pointer;min-width:0}
.messenger-option input{position:absolute;width:1px;height:1px;opacity:0;margin:0}
.messenger-option span{display:flex;justify-content:center;align-items:center;min-height:46px;padding:12px 8px;border:1px solid #d7cbbf;border-radius:var(--radius-control);background:transparent;color:var(--brand-ink);font-size:15px;line-height:1.3;transition:background .15s,border-color .15s}
.messenger-option input:checked+span{background:#efdfd9;border-color:#ba9288}
.messenger-option input:focus-visible+span{outline:2px solid #92584c;outline-offset:3px}
.messenger-option:hover span{border-color:#ba9288}
@media(max-width:360px){.messenger-options{grid-template-columns:1fr}.messenger-option span{justify-content:flex-start;padding-inline:16px}}

/* Give the name field a clear, quiet surface against the dialog. */
#booking-form input[name="name"]{background:var(--brand-paper)}

/* One typographic scale for booking labels, choices and actions. */
#booking-form{font-family:'Manrope','Noto Sans Georgian',sans-serif;font-weight:400}
#booking-form>label,#booking-form .booking-channel legend{font-family:inherit;font-size:14px;font-weight:400;line-height:1.5;letter-spacing:0}
#booking-form .messenger-option span{font-family:inherit;font-size:14px;font-weight:400;line-height:1.5;letter-spacing:0}
#booking-form input:not([type="radio"]),#booking-form>.button{font-family:inherit;font-size:16px;font-weight:400;line-height:1.5;letter-spacing:0}
#booking-form .booking-contact small{font-family:inherit;font-size:12px;font-weight:400;line-height:1.5}

/* Scan the booking summary in date, practice, duration and price order. */
.booking-summary .eyebrow{color:var(--brand-olive);font-size:11px;letter-spacing:1.3px}
.booking-summary h2{margin:14px 0 28px;font-size:clamp(28px,3vw,40px);line-height:1.15}
.booking-when{padding:0 0 22px;border-bottom:1px solid #d7cbbf}
.booking-when>strong{display:block;font-size:22px;line-height:1.4;font-weight:500}
.booking-when>div{display:flex;align-items:baseline;gap:14px;margin-top:6px;flex-wrap:wrap}
.booking-hour{font-size:26px;line-height:1.3;font-weight:500;color:var(--brand-ink)}
.booking-zone{font-size:12px;color:#7c7067}
.booking-practice{padding-top:22px}
.booking-practice h3{font-size:18px;line-height:1.4;margin:0 0 5px;font-weight:500}
.booking-practice>span{font-size:13px;color:#7c7067}
.booking-facts{display:flex;align-items:baseline;gap:18px;margin-top:20px;font-size:15px}
.booking-facts strong{font-size:22px;font-weight:500}
@media(max-width:1024px){.booking-summary h2{margin-bottom:22px}.booking-when{padding-bottom:16px}.booking-practice{padding-top:16px}.booking-facts{margin-top:14px}}

/* Shared thin-line close mark, independent of the text font. */
.modal-close{width:44px;height:44px;font-size:0;background:transparent;border:0;color:var(--brand-ink)}
.modal-close::before,.modal-close::after{content:'';position:absolute;width:26px;height:1.5px;border-radius:1px;background:currentColor;pointer-events:none}
.modal-close::before{transform:rotate(45deg)}
.modal-close::after{transform:rotate(-45deg)}
@media(max-width:1024px){header .menu-toggle{color:var(--brand-ink)}.menu-toggle span{background:currentColor}}

/* Show session details once and keep available times compact. */
.slot-session-summary{margin:22px 0 28px;color:#7c7067;font-size:14px;line-height:1.6}
.slot-choice-label{margin:0 0 14px;font-size:14px;font-weight:400;line-height:1.5}
.slot-time-options{display:flex;flex-wrap:wrap;gap:10px}
.slot-time-options button{appearance:none;-webkit-appearance:none;min-width:84px;min-height:44px;padding:12px 18px;border:1px solid #d7cbbf;border-radius:var(--radius-control);background:transparent;color:var(--brand-ink);-webkit-text-fill-color:var(--brand-ink);font:inherit;font-size:16px;line-height:1.3;transition:background .15s,border-color .15s}
.slot-time-options button:hover{background:#efdfd9;border-color:#ba9288}
.slot-time-options button:focus-visible{outline:2px solid #92584c;outline-offset:3px}

.booking-setup-hint{margin:10px 0 0;font-size:14px;line-height:1.6;color:#7c7067;max-width:560px}

/* The final navigation link is a button: keep its complete border and height. */
@media(max-width:1024px){
 header nav a.mobile-nav-cta:last-child{display:inline-flex;flex:0 0 auto;overflow:visible;min-height:46px;height:auto;border:1px solid #c9b6aa;margin-bottom:4px;line-height:1.4}
 header.menu-open nav{padding-bottom:max(28px,env(safe-area-inset-bottom));scroll-padding-bottom:28px}
}

/* FAQ controls use a larger, unframed line mark. */
.faq-item .faq-plus{width:28px;height:28px;flex:0 0 28px;border:0;border-radius:0;background:transparent}
.faq-item .faq-plus::before,.faq-item .faq-plus::after{width:16px;height:1.5px}

#booking-form .telegram-contact-kind{grid-column:1/-1;min-width:0;border:0;padding:0;margin:0}
#booking-form .telegram-contact-kind[hidden]{display:none}
.telegram-contact-kind legend{padding:0;margin:0 0 10px;font-size:14px;line-height:1.5;font-weight:400}
.telegram-contact-kind .messenger-options{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Restrained review accents, with the light page surface kept continuous. */
.reviews-page .review-sort-options button[aria-pressed="true"]{background:#efdfd8;color:var(--brand-ink)}
.reviews-page .review-form>.button{background:var(--brand-ink);color:#fffaf3;box-shadow:none}
.reviews-page .review-form>.button:hover{background:#5c473d}

/* Group the chosen date and time, and give the price a quiet outline. */
.booking-summary .booking-when{padding:18px 20px;border:0;border-radius:var(--radius-card);background:#e8e8d9}
.booking-summary .booking-facts{gap:14px;flex-wrap:wrap}
.booking-summary .booking-facts strong{display:inline-flex;align-items:center;justify-content:center;border:1px solid #c9b6aa;border-radius:var(--radius-pill);padding:6px 14px;font-size:20px;line-height:1.3;white-space:nowrap}
@media(max-width:1024px){.booking-summary .booking-when{padding:16px 18px}}

/* Letter spacing and italic overhang need room inside animated word masks. */
.motion-word-mask{padding-left:.1em;padding-right:.1em;margin-left:-.1em;margin-right:-.1em}

.reviews-page .reviews>.section-head h1{font-size:clamp(32px,3.5vw,49px);font-weight:400;line-height:1.2;letter-spacing:-1.7px;margin:16px 0 22px;max-width:none}
.review-form>.button:disabled{opacity:.55;cursor:default}

.motion-settled{opacity:1!important;transform:none!important;animation:none!important;clip-path:none!important}

header>.logo{flex-shrink:0;white-space:nowrap}
@media(min-width:651px) and (max-width:1024px){.hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}.hero-copy{min-width:0}.hero-photo{width:100%;height:auto}.hero .eyebrow{line-height:1.6;letter-spacing:1px}}

.page-restoring .hero-photo,.page-restoring .hero-photo img{animation:none!important;clip-path:none!important;transform:none!important}

/* Preserve readable spacing across the copyright flex items and italic accent. */
footer>span{column-gap:.3em}
.hero h1 em{margin-left:.06em}

/* Once a date is being chosen, keep settings beside the calendar and time choices. */
.booking-grid.with-session-settings{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;margin-top:0}
.with-session-settings .slots{min-width:0;padding:28px 30px}
.with-session-settings .booking-setup-panel{margin:0 0 22px;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}
.with-session-settings .booking-step-heading{display:none}
.with-session-settings .booking-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.with-session-settings .direction-select{grid-column:1/-1}
.with-session-settings .booking-filters>div>span{font-size:12px;line-height:1.5;margin-bottom:8px}
.with-session-settings #direction-trigger{min-height:46px;padding:12px 14px;font-size:14px}
.with-session-settings .duration-options button{min-height:44px;white-space:normal;padding:10px 8px;font-size:12px;line-height:1.35}
.with-session-settings .slots-heading{border-bottom:0;border-top:1px solid var(--line);padding-top:22px;padding-bottom:0;margin-bottom:20px;gap:16px}
.with-session-settings .slot-session-summary{display:none}
.with-session-settings .slot-choice-label{margin-top:0}
.with-session-settings #selected-price{white-space:nowrap;flex-shrink:0}
@media(max-width:1024px){.booking-grid.with-session-settings{grid-template-columns:1fr}.with-session-settings .slots{padding:24px}}
@media(max-width:540px){.with-session-settings .booking-filters{grid-template-columns:1fr}.with-session-settings .slots{padding:22px}.with-session-settings .duration-options button{font-size:13px}}

/* Pricing uses the common section heading; currency controls live inside online sessions. */
.pricing>.section-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:24px;margin-bottom:32px}
.pricing>.section-head h2{margin-bottom:0}

/* Chocolate marquee between the portrait and the light direction cards. */
.ticker{background:var(--brand-chocolate-surface);color:var(--brand-milk);border-color:var(--brand-ink)}
.ticker b{color:var(--brand-powder)}

/* Match the header outline action in the compact menu. */
header nav a.mobile-nav-cta:hover,header nav a.mobile-nav-cta:focus-visible{background:var(--control-hover-bg);border-color:var(--control-hover-border);color:var(--brand-ink)}

/* Light action buttons use the same warm brown interaction surface. */
.small-button:is(:hover,:focus-visible),
.guide-card:nth-child(n) .buy:is(:hover,:focus-visible),
.slot-time-options button:is(:hover,:focus-visible),
.calendar #prev:is(:hover,:focus-visible):not(:disabled),
.calendar #next:is(:hover,:focus-visible):not(:disabled){background:var(--control-hover-bg);border-color:var(--control-hover-border);color:var(--brand-ink);box-shadow:none}

/* Tinted cards keep their own colour visible beneath a subtle chocolate hover. */
.price-card .button:is(:hover,:focus-visible),.offline-card .button:is(:hover,:focus-visible){background:var(--control-hover-tint);border-color:var(--control-hover-border);color:var(--brand-ink);box-shadow:none}

/* Guide hints sit below their arrow, centered without spilling off narrow screens. */
.guide-card .buy.icon-hint::after{box-sizing:border-box;top:calc(100% + 10px);bottom:auto;left:50%;right:auto;width:max-content;max-width:min(240px,calc(12vw + 36px));white-space:normal;overflow-wrap:anywhere;text-align:center;transform:translate(-50%,-3px)}
.guide-card .buy.icon-hint:is(:hover,:focus-visible)::after{transform:translate(-50%,0)}
@media(prefers-reduced-motion:reduce){.guide-card .buy.icon-hint::after{transform:translate(-50%,0)}}


/* Trial sessions are an optional checkbox alongside the session length. */
.booking-setup-panel .session-kind-control{align-self:end;display:flex;align-items:flex-start;justify-content:center;min-height:50px}
.trial-session-option{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin:0;cursor:pointer;font-size:14px;line-height:1.5;color:var(--brand-ink)}
.trial-session-option input{appearance:none;-webkit-appearance:none;display:grid;place-content:center;flex:0 0 20px;width:20px;height:20px;margin:0;padding:0;border:1px solid #b9aaa0;border-radius:var(--radius-micro);background:var(--brand-paper);color:var(--brand-milk);cursor:pointer}
.trial-session-option input::before{content:"";width:10px;height:6px;border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-1px) rotate(-45deg) scale(0)}
.trial-session-option input:checked{background:var(--pink-soft);border-color:var(--control-hover-border);color:var(--brand-ink)}
.trial-session-option input:checked::before{transform:translateY(-1px) rotate(-45deg) scale(1)}
.trial-session-option input:focus-visible{outline:2px solid var(--brand-ink);outline-offset:4px}
@media(forced-colors:active){.trial-session-option input{appearance:auto}.trial-session-option input::before{display:none}}

/* Give the selected practice and session length the same readable type scale. */
.booking-setup-panel #direction-trigger,#direction-menu button{font-size:16px;line-height:1.5}
.booking-setup-panel .duration-options button{font-size:16px;line-height:1.5;min-height:44px}
.booking-setup-panel .trial-session-option{font-size:16px}
.booking-setup-panel .direction-select,.direction-dropdown,#direction-value{min-width:0}
#direction-value{overflow-wrap:break-word}
@media(max-width:540px){.booking-grid.with-session-settings{grid-template-columns:minmax(0,1fr)}.booking-grid .calendar{min-width:0}.calendar .days button{width:min(40px,100%);height:44px}}

/* External booking links keep the card layout and the compact-menu visibility. */
.direction-grid a.direction-card[href*="ig.me/"]::before{content:none;display:none}
@media(min-width:1025px){header nav a.mobile-nav-cta{display:none}}
@media(max-width:1024px){header .header-right .small-button{display:none}}

/* A compact contact choice with neutral outlines and familiar controls. */
a[data-contact-choice]::before{content:none;display:none}
dialog.contact-modal{box-sizing:border-box;width:calc(100% - 32px);max-width:480px;max-height:calc(100svh - 32px);padding:44px 28px 28px;overflow:auto}
.contact-modal h2{margin:0 20px 14px 0;font-size:28px;font-weight:500;line-height:1.25;letter-spacing:-.025em}
.contact-choice-hint{margin:0 0 24px;color:var(--muted);font-size:15px;line-height:1.6}
.contact-options{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.contact-options .contact-option{--contact-surface:transparent;box-sizing:border-box;display:grid;grid-template-columns:26px minmax(0,1fr) 20px;align-items:center;gap:14px;width:100%;min-height:80px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--contact-surface);color:var(--ink);text-decoration:none;transition:background .2s,border-color .2s}
.contact-options .contact-option::before{content:none;display:none}
.contact-option>svg{width:26px;height:26px;stroke:currentColor;stroke-width:1.5}
.contact-option>span{display:grid;gap:4px;min-width:0}
.contact-option strong{font-size:16px;font-weight:500;line-height:1.4}
.contact-option>span>span{font-size:14px;color:var(--muted-on-tint);line-height:1.5}
.contact-option>svg.arrow-icon{width:20px;height:20px;transition:transform .2s}
.contact-options .contact-option:is(:hover,:focus-visible){background:var(--control-hover-tint);border-color:var(--control-hover-border);color:var(--ink)}
.contact-option:is(:hover,:focus-visible)>svg.arrow-icon{transform:translate(2px,-2px)}
@media(max-width:540px){dialog.contact-modal{padding:48px 22px 24px}.contact-modal h2{font-size:26px}.contact-options .contact-option{padding:15px 14px;gap:12px}}
@media(prefers-reduced-motion:reduce){.contact-options .contact-option,.contact-option>svg.arrow-icon{transition:none}.contact-option:is(:hover,:focus-visible)>svg.arrow-icon{transform:none}}

/* The aerial card opens the contact choice just like every focus-area card. */
.direction-grid a.aerial-card .aerial-heading{padding-right:30px}
.direction-grid a.aerial-card h3{padding-right:0}

/* The review composer has a bounded reading width and one shared field rhythm. */
.reviews .review-form{max-width:960px;margin:56px auto 0;padding:36px 0 0;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);gap:22px 48px}
.reviews .review-form .review-form-head{grid-column:1;grid-row:1/5;max-width:280px;margin:0}
.reviews .review-form .review-form-head h3{font-size:30px;line-height:1.25;letter-spacing:-.8px;margin:14px 0 12px}
.reviews .review-form .review-form-head p{font-size:14px;line-height:1.7;margin:0;max-width:280px}
.reviews .review-form>.review-fields,.reviews .review-form>label,.reviews .review-form>.button{grid-column:2;min-width:0;margin:0}
.reviews .review-form .review-fields{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:24px;align-items:end;margin:0}
.reviews .review-form label,.reviews .review-form .rating-field legend{font-size:14px;line-height:1.5;font-weight:400}
.reviews .review-form .review-fields>label,.reviews .review-form .rating-field{min-width:0;margin:0;padding:0}
.reviews .review-form .rating-field legend{padding:0}
.reviews .review-form input:not([type="radio"]):not([type="checkbox"]),.reviews .review-form textarea{display:block;min-width:0;width:100%;margin:8px 0 0;padding:12px 14px;font-family:inherit;font-size:16px;line-height:1.5;border-radius:var(--radius-control)}
.reviews .review-form input:not([type="radio"]):not([type="checkbox"]){height:48px}
.reviews .review-form textarea{height:128px;min-height:128px;resize:vertical}
.reviews .review-form .rating-options{gap:0;margin:8px 0 0;width:220px;max-width:100%}
.reviews .review-form .rating-options label{margin:0;flex:0 0 44px}
.reviews .review-form .rating-options label>span{width:44px;height:48px;padding:0;font-size:0}
.reviews .review-form .rating-options label>span::before{width:24px;height:24px}
.reviews .review-form>.review-consent{display:flex;align-items:flex-start;gap:10px;min-height:44px;margin:0;font-size:12px;line-height:1.6}
.reviews .review-form>.review-consent input{flex:0 0 18px;width:18px;height:18px;margin:1px 0 0;padding:0}
.reviews .review-form>.button{justify-self:start;min-height:48px;padding:14px 22px;font-size:14px;line-height:1.5}
@media(max-width:900px){.reviews .review-form{max-width:640px;grid-template-columns:minmax(0,1fr);gap:22px;padding-top:30px;margin-top:40px}.reviews .review-form .review-form-head{grid-column:1;grid-row:auto;max-width:100%;margin-bottom:6px}.reviews .review-form .review-form-head h3{font-size:28px}.reviews .review-form .review-form-head p{max-width:480px}.reviews .review-form>.review-fields,.reviews .review-form>label,.reviews .review-form>.button{grid-column:1}}
@media(max-width:600px){.reviews .review-form .review-fields{grid-template-columns:minmax(0,1fr);gap:20px}.reviews .review-form .review-form-head h3{font-size:26px}.reviews .review-form{row-gap:20px}.reviews .review-form textarea{height:136px;min-height:136px}}

/* Keep the short hero introduction readable beside the main heading. */
.hero .intro{font-size:18px;line-height:1.65;max-width:34em}
@media(max-width:540px){.hero .intro{font-size:16px}}

/* Currency controls sit beside the booking action in the card footer. */
.price-card-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:28px}
.price-card-actions .button{margin-top:0;flex-shrink:0}
.online-card .currency-bar,.offline-currency-note{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:12px;min-height:54px;margin:0;font-size:12px;line-height:1.5;color:var(--muted)}
.online-card .currency-bar{margin-left:auto}
.online-card .currency-bar>span{white-space:nowrap}
.online-card .currency-toggle{display:flex;flex:0 1 218px;width:auto;max-width:100%;background:#fffdf866;border-color:#b99e9366}
.online-card .currency-toggle button{flex:1;min-width:0;min-height:44px;padding:10px 12px;font-size:12px}
.offline-currency-note{margin-left:auto}
@media(max-width:1400px){.online-card .currency-bar>span{display:none}}
@media(max-width:650px){.online-card .currency-toggle{flex-basis:218px}.offline-currency-note{min-height:32px}}

/* Single sessions and packages share one comparison view. */
.pricing-view-bar{display:flex;align-items:center;max-width:100%;margin:0 0 4px}
.price-plan-toggle{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;max-width:100%;padding:4px;border:1px solid var(--line);border-radius:var(--radius-pill)}
.price-plan-toggle button{appearance:none;-webkit-appearance:none;min-height:44px;padding:10px 16px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--muted);font:inherit;font-size:13px;line-height:1.4;cursor:pointer;transition:background .2s,color .2s;white-space:nowrap}
.price-plan-toggle button[aria-pressed="true"]{background:var(--brand-ink);color:var(--brand-paper)}
.price-plan-toggle button:is(:hover,:focus-visible):not([aria-pressed="true"]){background:var(--control-hover-bg);color:var(--brand-ink)}
.price-single-prices[hidden],.package-prices[hidden]{display:none}
.price-single-prices,.package-prices{min-height:242px}
.package-prices .package-summary{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:6px 16px;margin:0;padding:12px 0 8px;line-height:1.5;color:var(--brand-ink)}
.package-session-count{font-size:18px;font-weight:500;letter-spacing:-.3px}
.package-discount{font-size:14px;font-weight:500;color:var(--rose)}
.package-price-row{min-height:94px;gap:16px}
.package-amount{text-align:right;min-width:0}
.package-amount strong{display:block}
.package-amount small{display:block;margin-top:4px;font-size:12px;line-height:1.5;letter-spacing:0;font-weight:400;color:var(--muted)}
@media(max-width:650px){.pricing>.section-head{align-items:flex-start;flex-direction:column;gap:20px}.pricing-view-bar{width:100%;margin:0}.price-plan-toggle{display:grid;grid-template-columns:1fr 1fr;width:100%;border-radius:var(--radius-card)}.price-plan-toggle button{padding:10px 8px;font-size:12px}.price-single-prices,.package-prices{min-height:0}.package-price-row{min-height:90px}}
@media(prefers-reduced-motion:reduce){.price-plan-toggle button{transition:none}}

/* Keep both contact channels together in the footer. */
footer>.footer-socials{display:grid;gap:4px;min-width:0;width:max-content;max-width:100%;justify-items:stretch}
.footer-socials>a{display:grid;grid-template-columns:17px minmax(0,1fr) 14px;align-items:center;gap:9px;width:100%;min-height:28px;color:var(--muted);font-size:11px;line-height:1.5;white-space:nowrap}
.footer-socials .social-icon{flex:0 0 17px;width:17px;height:17px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.footer-socials .arrow-icon{width:14px;height:14px}
@media(max-width:650px){.footer-socials>a{min-height:36px}}

/* Review hover scale stays independent of the entrance translation and sorting. */
.reviews-grid .review-card{scale:1;transition:scale 240ms var(--reveal-ease);transform-origin:center}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .reviews-grid .review-card:hover{scale:1.015;position:relative;z-index:1}
}
@media(prefers-reduced-motion:reduce){.reviews-grid .review-card{scale:1;transition:none}}
