@charset "UTF-8";
@font-face{font-family:'Bebas Neue';src:url('/assets/fonts/bebas-neue-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--paper:#f6f3ec;--ink:#303e31;--green:#394437;--muted:#73796b;--line:#d9dcd0;--sage:#e7ebdf;--light:#eef0e8;--rust:#986646;--error:#9b4130;--serif:Georgia,'Times New Roman',serif;--display:'Bebas Neue','Arial Narrow',Arial,sans-serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:28px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}
body.has-dialog{overflow:hidden}
button,input,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:disabled{cursor:not-allowed}
a{color:inherit;text-decoration:none}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--rust);outline-offset:4px}
button{color:inherit}
img{display:block;width:100%;max-width:100%}
::selection{background:#cfd8bd;color:#243123}
.page-width{max-width:1440px;width:calc(100% - 112px);margin-inline:auto}
.skip-link{position:fixed;z-index:100;top:-100px;left:20px;background:var(--ink);color:white;padding:12px 20px}.skip-link:focus{top:12px}
.demo-banner{min-height:30px;display:flex;align-items:center;justify-content:center;gap:7px;background:var(--sage);color:#515b4a;font-size:10px;letter-spacing:.02em;padding:6px 16px;line-height:1.4;text-align:center}
.demo-banner[hidden]{display:none}
.demo-dot{display:inline-block;width:5px;height:5px;border-radius:100%;background:var(--rust);flex:none}.demo-separator{padding:0 3px;opacity:.5}
.site-header{position:absolute;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:2;color:var(--paper);height:98px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff40}
.site-header .wordmark span{color:#f0f1e9;border-color:#ffffff66}.site-header nav a:hover{color:#fff}.site-header .header-book{border-color:#ffffff80}.site-header .header-book:hover{background:#ffffff20}
.wordmark{display:inline-flex;align-items:center;gap:13px;font-size:20px;font-weight:600;letter-spacing:.16em;line-height:1.2}
.wordmark span{border-left:1px solid #a8afa0;padding-left:13px;color:var(--muted);font-size:11px;letter-spacing:.03em;font-weight:400}
.site-header nav{display:flex;align-items:center;gap:34px;font-size:12px}
.site-header nav a{padding:12px 0;transition:color .2s}
.header-book{min-height:42px;border:1px solid #bfc6b7;padding:0 18px;background:transparent;border-radius:4px;font-size:12px;display:inline-flex;align-items:center;gap:30px}.header-book:hover{background:var(--sage)}
.hero{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;justify-content:center;width:100%;min-height:100vh;min-height:100svh;margin:0;padding:128px max(56px,calc((100% - 1440px)/2)) 24px;background:#303e31;border-radius:0;color:var(--paper)}
.hero-media{position:absolute;inset:0;z-index:-1;pointer-events:none}.hero-media:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,27,21,.55),rgba(17,27,21,.2) 30%,rgba(17,27,21,.28) 65%,rgba(17,27,21,.58))}.hero-media video,.hero-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.hero-media video[hidden]{display:none}
.hero-copy{padding:0;display:flex;align-items:center;flex-direction:column;text-align:center;margin:auto;max-width:960px;width:100%;min-width:0;text-shadow:0 2px 20px #101b1590}
.eyebrow{font-size:10px;letter-spacing:.16em;line-height:1.5;font-weight:500;margin:0 0 25px;display:flex;align-items:center;gap:9px}
.location-dot{width:6px;height:6px;border:1px solid #8d9981;border-radius:100%;flex:none}
.hero-location{max-width:100%;align-items:baseline}.hero-location .location-dot{align-self:center}
.hero .location-dot{border-color:#d7dfce}.hero .eyebrow{color:#e6ebdf;justify-content:center}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--display);font-weight:400}
h1{font-size:clamp(58px,6.8vw,100px);line-height:1.06;letter-spacing:0;margin:9px 0 25px;text-transform:uppercase}
h1 em,h2 em{font-weight:400;font-style:normal;color:#7a816d}
.hero h1 em{color:#e0e6d4}
.hero-intro{font-size:16px;line-height:1.7;margin-bottom:28px;color:#f0f1e9;max-width:520px}
.hero-actions{display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap}
.hero .button-dark{background:var(--paper);color:var(--ink)}.hero .button-dark:hover{background:#fff}.hero .text-link{color:var(--paper);text-decoration-color:#c3cbb8}
.button{min-height:51px;display:inline-flex;align-items:center;justify-content:space-between;gap:32px;padding:14px 22px;border-radius:4px;border:1px solid transparent;font-size:12px;font-weight:500;line-height:1.3;text-align:left;transition:background .2s,transform .2s;white-space:normal}
.button:hover{transform:translateY(-1px)}.button:active{transform:translateY(0)}.button span{font-size:17px;font-weight:400}
.button-dark{background:var(--green);color:#fff}.button-dark:hover{background:#253326}.button-dark:disabled{background:#b9c1b2;color:#f8f9f5;transform:none}
.button-outline{background:transparent;border-color:#bfc7b6}.button-outline:hover{background:var(--sage)}
.button-soft{background:var(--sage);border-color:var(--sage)}.button-soft:hover{background:#d6dfca}
.text-link{display:inline-flex;align-items:center;gap:16px;min-height:44px;font-size:11px;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#b8c0ae}.text-link:hover{color:var(--rust)}.text-link span{font-size:15px}
.hero-details{display:flex;align-items:center;gap:20px;margin:30px 0 28px;font-size:10px;color:#e1e6d8}
.hero-details span+span{border-left:1px solid #bdc6b1;padding-left:20px}
.hero-image{position:relative;aspect-ratio:4/4.6;overflow:hidden;background:#e3ddcd;margin:0;border-radius:100px 4px 4px 4px;align-self:start}
.hero-image img{height:100%;object-fit:cover;object-position:center}
.image-corner{position:absolute;top:23px;right:25px;font:italic 38px var(--serif);color:#fbfaf6;opacity:.7}
.hero-image figcaption{position:absolute;bottom:0;left:0;right:0;padding:30px 25px 20px;background:linear-gradient(transparent,rgba(29,34,24,.34));color:#fff;font-size:8px;letter-spacing:.12em}
.hero-image figcaption small{display:block;font-size:8px;letter-spacing:0;margin-top:4px;opacity:.7}
.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #ffffff40;margin-top:2px;padding:12px 0 0;font-size:8px;letter-spacing:.13em;color:#e1e6d8}
.hero-video-toggle{min-height:44px;padding:8px 12px;border:1px solid #ffffff50;border-radius:4px;background:#14211760;color:var(--paper);font-size:10px;letter-spacing:0;flex:none}.hero-video-toggle:hover{background:#142117b0}.hero-video-toggle[hidden]{display:none}
.sessions-section{padding-top:105px;padding-bottom:88px}
.section-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:48px}.section-top .eyebrow{margin:0}.section-note{font-size:11px;color:var(--muted);line-height:1.5;text-align:right}
h2{font-size:clamp(36px,3.8vw,55px);line-height:1.15;letter-spacing:.01em;margin:0 0 22px}
.sessions-layout{display:grid;grid-template-columns:1.13fr 1fr;column-gap:70px;row-gap:0;align-items:start}
.session-description{grid-column:1;grid-row:1}
.session-photo{grid-column:2;grid-row:1/3;width:100%;max-width:420px;margin:0;justify-self:end}
.session-photo img{aspect-ratio:2/3;height:auto;border-radius:6px}
.session-photo figcaption{margin-top:14px;font-size:10px;line-height:1.6;color:var(--muted)}
.sessions-layout>.session-list{grid-column:1;grid-row:2;align-self:start}
.session-description>p{font-size:13px;line-height:1.8;color:var(--muted);margin-bottom:32px}
.example-label{display:inline-block;font-size:9px;color:var(--rust);border:1px solid #dcd1bf;padding:4px 10px;border-radius:30px}
.session-list{border-top:1px solid #bac3b0}
.session-row{width:100%;display:grid;grid-template-columns:48px 1fr auto;gap:12px;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:26px 0;align-items:center;transition:padding .2s}
.session-row:hover{padding-left:10px;padding-right:10px;background:#eceee4}
.session-num{font-family:var(--serif);font-size:17px;color:#949b89;font-style:italic;align-self:start;padding-top:5px}
.session-row h3{font-size:27px;margin:0 0 7px;line-height:1.3;letter-spacing:-.02em}
.session-row p{font-size:11px;color:var(--muted);margin:0 0 19px;max-width:260px}
.session-row .session-price{font-size:14px;display:block}.session-price small{font-weight:400;color:var(--muted);font-size:9px;margin-left:10px}
.session-arrow{width:36px;height:36px;border:1px solid #c4ccb9;border-radius:50%;display:grid;place-items:center;font-size:17px}
.booking-teaser{background:var(--sage);border-radius:6px;display:grid;grid-template-columns:1.3fr 1fr;gap:90px;padding:58px 54px;margin-bottom:108px;align-items:center}
.booking-teaser h2{font-size:44px}.booking-teaser p:not(.eyebrow){font-size:12px;line-height:1.8;color:#717b64;margin-bottom:0}
.teaser-card{background:var(--paper);padding:25px;border:1px solid #dde1d2;border-radius:5px;box-shadow:0 10px 25px #35452c05}
.teaser-card-top{display:flex;align-items:center;gap:12px;font-size:11px;border-bottom:1px solid var(--line);padding-bottom:18px}.calendar-icon{font-size:25px;color:#7f8a70}.teaser-card-top .caption{display:block;font-size:9px;color:var(--muted);margin-top:2px}.small-arrow{margin-left:auto;font-size:19px}
.teaser-date{font-size:11px;margin:19px 0 11px;text-transform:capitalize}.teaser-slots{display:flex;gap:7px;margin-bottom:23px}.teaser-slots button{background:none;border:1px solid #cfd6c5;padding:10px 13px;border-radius:3px;font-size:11px;min-height:44px}.teaser-slots button:hover{background:var(--sage)}
.teaser-card .button{width:100%;min-height:45px;font-size:11px}.teaser-card>small{display:block;margin-top:12px;font-size:8px;text-align:center;color:var(--muted)}
.how-section{background:var(--green);color:var(--paper);padding:72px 0 58px}.how-section .section-top{margin-bottom:28px}.how-section .eyebrow{color:#acb59c}.tiny-star{font-size:33px;color:#9aa887;line-height:1}.how-section h2 em{color:#b4bea3}
.steps-list{list-style:none;padding:0;margin:46px 0 25px;display:grid;grid-template-columns:repeat(4,1fr);gap:32px}.steps-list li{border-top:1px solid #627156;padding-top:19px}.step-index{font-family:var(--serif);font-size:13px;font-style:italic;color:#b4c0a3}.steps-list h3{font-family:var(--sans);font-size:12px;font-weight:500;margin:24px 0 12px}.steps-list p{font-size:11px;line-height:1.8;color:#b8c2ac;max-width:220px}.how-footnote{border-top:1px solid #57654f;padding-top:22px;margin:26px 0 0;color:#a4b198;font-size:9px;max-width:1000px}
.place-section{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-block:110px;align-items:center}.place-copy h2{margin-bottom:29px}.place-copy p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:1.9}.place-copy .place-name{font-size:17px!important;color:var(--ink)!important;margin-bottom:5px}.place-copy .place-detail{font-size:10px!important;margin:36px 0 0}
.address-art{position:relative;aspect-ratio:1.18;background:#e8e5d9;border:1px solid #dedfd2;overflow:hidden;color:#5a634d;padding:28px;display:flex;flex-direction:column;justify-content:space-between}
.address-lines{position:absolute;inset:-30px;background:repeating-linear-gradient(25deg,transparent 0 66px,#fff9 67px 69px,transparent 70px 130px);transform:rotate(-7deg);opacity:.75;pointer-events:none}.address-lines:after{content:'';position:absolute;inset:-80px;background:repeating-linear-gradient(107deg,transparent 0 101px,#fff9 102px 104px,transparent 105px 170px)}
.address-city,.address-caption{z-index:1;font-size:8px;letter-spacing:.2em}.address-street{z-index:1;font-family:var(--serif);font-size:48px;line-height:1.14;letter-spacing:-.03em}.address-number{position:absolute;bottom:40px;right:27px;font-family:var(--serif);font-size:65px;letter-spacing:-.06em;color:#9ca18e}.address-pin{position:absolute;top:54%;left:65%;display:flex;flex-direction:column;align-items:center;gap:5px}.address-pin svg{width:35px;height:35px;fill:var(--green);stroke:var(--paper);stroke-width:1.6}.address-pin span{font-size:8px;letter-spacing:.12em;color:var(--green)}
.faq-section{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.1fr;gap:70px;padding-block:75px}.faq-list{border-top:1px solid #bcc5b1}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{cursor:pointer;list-style:none;min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;padding:18px 0}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:21px;font-weight:300;flex:none}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list p{font-size:12px;line-height:1.8;color:var(--muted);margin:0 25px 23px 0}
.final-cta{padding-block:60px 96px;text-align:center}.final-cta .eyebrow{justify-content:center;font-size:8px}.final-cta h2{font-size:90px;margin-bottom:30px}.final-cta .button{min-width:216px}
.site-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:30px 38px;font-size:9px;color:var(--muted)}.site-footer .wordmark{font-size:17px;color:var(--ink)}.footer-demo{font-size:8px}
.mobile-bar{display:none}

/* Booking: a native accessible dialog, with every step kept in the same flow. */
dialog{position:fixed;width:min(940px,calc(100% - 48px));max-width:none;max-height:calc(100dvh - 48px);padding:0;border:1px solid #ced4c3;border-radius:12px;background:var(--paper);color:var(--ink);box-shadow:0 24px 90px #18251844;overscroll-behavior:contain}
dialog::backdrop{background:#18251866;backdrop-filter:blur(6px)}.dialog-frame{min-width:0}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:20px 28px;border-bottom:1px solid var(--line)}.dialog-header .wordmark{font-size:15px}.dialog-header .wordmark span{font-size:10px}.icon-button{width:44px;height:44px;border:1px solid #d4d9ca;border-radius:50%;background:transparent;font-size:27px;font-weight:200;line-height:1}.icon-button:hover{background:var(--sage)}
.dialog-demo{display:flex;align-items:center;justify-content:center;gap:8px;background:#e9ecdf;color:#68705b;font-size:9px;line-height:1.5;padding:8px 20px;text-align:center}
.dialog-body{display:grid;grid-template-columns:280px 1fr;min-height:460px}.booking-aside{background:#ecefe3;padding:36px 28px;border-right:1px solid var(--line);font-size:11px}.booking-aside .aside-flower{font-family:var(--serif);font-size:58px;color:#8b987e;line-height:1;margin:0 0 26px}.booking-aside h3{font-size:31px;line-height:1.2;letter-spacing:-.03em;margin:0 0 18px}.booking-aside .aside-description{font-size:11px;color:var(--muted);line-height:1.8}.aside-recap{margin-top:26px;border-top:1px solid #d0d8c3}.aside-recap>div{border-bottom:1px solid #d0d8c3;padding:11px 0}.aside-recap small{display:block;color:var(--muted);font-size:9px}.aside-recap strong{display:block;font-weight:500;font-size:12px;margin-top:3px}.aside-place{margin-top:28px;font-size:10px;color:var(--muted);line-height:1.8}
.booking-main{padding:29px 32px 32px;min-width:0}.flow-progress{display:flex;align-items:center;gap:5px;margin-bottom:26px;min-height:16px}.flow-progress span{height:3px;background:#dbe1d1;flex:1;border-radius:2px}.flow-progress span.done{background:#758464}.flow-progress small{font-size:9px;color:var(--muted);margin-left:10px;white-space:nowrap;letter-spacing:.02em}
.flow-title{font-size:31px;line-height:1.2;margin:0 0 12px;letter-spacing:-.028em;outline:none}.flow-subtitle{font-size:12px;line-height:1.8;color:var(--muted);margin:0 0 23px}.flow-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:22px 0 11px}.flow-back{border:0;background:none;padding:0;min-height:40px;font-size:11px;color:var(--muted);display:inline-flex;gap:8px;align-items:center;margin-top:9px}.flow-back:hover{color:var(--ink)}
.flow-services{display:grid;gap:12px;margin-top:24px}.flow-service{background:transparent;border:1px solid #cbd3be;border-radius:6px;text-align:left;padding:21px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;width:100%;min-height:126px}.flow-service:hover{background:var(--sage);border-color:#869676}.flow-service h3{font-size:23px;margin:0 0 5px}.flow-service p{font-size:11px;color:var(--muted);margin:0;max-width:250px}.flow-service-end{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:10px;align-self:stretch}.flow-service strong{font:600 17px/1.2 var(--sans);letter-spacing:-.01em;white-space:nowrap;color:var(--ink)}.flow-service small{font-size:8px;display:block;color:var(--rust);margin-top:5px;font-weight:400}
.date-strip{display:flex;gap:7px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding:3px 3px 11px;margin:-3px -3px 0}.date-button{min-width:65px;min-height:83px;border:1px solid #d1d8c4;border-radius:5px;padding:9px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:transparent}.date-button span{font-size:9px;color:var(--muted)}.date-button strong{font-size:23px;font-family:var(--serif);font-weight:400;line-height:1.35}.date-button small{font-size:8px;color:var(--muted)}.date-button.selected{background:var(--green);color:var(--paper);border-color:var(--green)}.date-button.selected span,.date-button.selected small{color:#d8e0cf}.date-button.is-closed{border-style:dashed}.date-button:hover:not(.selected){background:var(--sage)}
.slot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;max-height:205px;overflow-y:auto;padding:3px;scrollbar-width:thin;margin:-3px}.slot-button{border:1px solid #cbd4bd;background:none;border-radius:4px;min-height:44px;font-size:11px;line-height:1.2;padding:8px 4px}.slot-button:disabled{color:#aeb5a4;background:#eef0e8;border-color:#e4e8dc;text-decoration:line-through}.slot-button.selected{color:white;background:var(--green);border-color:var(--green)}.slot-button:hover:not(:disabled):not(.selected){background:var(--sage)}
.selection-note{display:flex;align-items:flex-start;gap:9px;font-size:10px;color:var(--muted);padding:12px 0;line-height:1.7}.selection-note span{font-size:13px;line-height:1.5;color:#8c9b7d}.flow-action{width:100%;margin-top:20px}.empty-state{padding:24px;border:1px dashed #c4ceb8;border-radius:6px;background:#eef0e7;font-size:12px;color:var(--muted);line-height:1.8}.empty-state strong{display:block;color:var(--ink);font-weight:500;margin-bottom:4px}
.contact-form{margin-top:22px}.field{margin-bottom:17px}.field label{display:block;font-size:11px;font-weight:500;margin-bottom:6px}.field label small{font-size:9px;font-weight:400;color:var(--muted);margin-left:5px}.field input,.field textarea{display:block;width:100%;min-height:48px;border:1px solid #cbd3be;border-radius:4px;background:#faf9f5;color:var(--ink);padding:12px 14px;font-size:16px;line-height:1.4}.field textarea{resize:vertical;max-height:160px;min-height:82px;font-size:14px}.field input::placeholder,.field textarea::placeholder{color:#a0a793}.field [aria-invalid=true]{border-color:#a66553}.field-error{display:block;font-size:10px;color:var(--error);margin-top:5px;line-height:1.5}.privacy-note{font-size:10px;line-height:1.7;color:var(--muted);background:var(--light);padding:13px 15px;border-radius:4px;margin:6px 0 0}
.review-list{margin:24px 0 20px;border-top:1px solid var(--line)}.review-list>div{display:grid;grid-template-columns:1fr 1.25fr;gap:14px;border-bottom:1px solid var(--line);padding:12px 0;font-size:11px}.review-list dt{color:var(--muted)}.review-list dd{margin:0;text-align:right;font-weight:500;overflow-wrap:anywhere}.review-list dd small{display:block;font-size:9px;color:var(--muted);font-weight:400}.review-list .total-row{font-size:13px}.review-list .deposit-row{background:var(--sage);margin-inline:-10px;padding-inline:10px;border-bottom:0}.notice{padding:13px 15px;border-left:2px solid #9fab8d;font-size:11px;color:#6b775d;line-height:1.8;margin:19px 0}.notice.error{background:#f3e9e1;border-color:#b78666;color:#85543f}.status-symbol{width:52px;height:52px;border:1px solid #bfccb0;border-radius:50%;display:grid;place-items:center;font-size:23px;margin:3px 0 21px;color:#738862;background:#edf0e4}.status-symbol.success{background:var(--green);color:var(--paper);border-color:var(--green)}.status-symbol.failure{background:#f2e9df;color:#9b6a4e;border-color:#d8bca6}
.demo-panel{border:1px dashed #bdc8af;border-radius:5px;background:#f0f2e9;margin-top:23px}.demo-panel summary{min-height:49px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 15px;cursor:pointer;font-size:11px;list-style:none}.demo-panel summary::-webkit-details-marker{display:none}.demo-panel summary span{color:#879675}.demo-panel-content{padding:0 15px 16px;display:grid;gap:9px}.demo-panel-content>p{font-size:9px;color:var(--muted);line-height:1.6;margin:0 0 4px}.demo-panel .button{min-height:46px;font-size:10px;padding:11px 14px}
.payment-amount{padding:25px;background:var(--sage);margin:22px 0;border-radius:5px}.payment-amount span{font-size:10px;color:var(--muted)}.payment-amount strong{display:block;font-family:var(--serif);font-size:42px;font-weight:400;line-height:1.35;letter-spacing:-.04em;margin:5px 0}.payment-amount small{font-size:10px;color:var(--muted);display:block;line-height:1.6}.payment-methods{display:flex;align-items:center;gap:8px;margin-top:12px;color:var(--muted);font-size:9px}.payment-methods span{border:1px solid var(--line);padding:2px 6px;border-radius:3px}
.confirmed-details{border:1px solid #d3dac7;border-radius:6px;padding:20px;margin:22px 0}.confirmed-details .big-date{font-family:var(--serif);font-size:24px;line-height:1.3;margin-bottom:6px}.confirmed-details .big-time{font-size:14px;margin-bottom:16px}.confirmed-details .address-small{font-size:11px;color:var(--muted);line-height:1.7;padding-top:15px;border-top:1px solid var(--line)}.confirmed-details .paid-summary{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);margin-top:15px;padding-top:13px;font-size:11px}.confirmed-details .paid-summary small{display:block;color:var(--muted);font-size:9px}.confirmed-details .paid-summary strong{display:block;font-weight:500;margin-top:4px}.confirm-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px}.confirm-buttons .button{padding-inline:13px;font-size:10px;gap:10px}.secondary-actions{display:flex;justify-content:space-between;gap:10px;margin-top:15px}.secondary-actions button{font-size:10px;min-height:44px;background:none;border:0;color:var(--muted);text-decoration:underline;text-underline-offset:3px;padding:7px 0}
.dialog-footer{display:flex;justify-content:space-between;gap:20px;padding:13px 28px;border-top:1px solid var(--line);font-size:8px;color:var(--muted)}
.toast{position:fixed;z-index:200;left:50%;bottom:28px;max-width:calc(100% - 32px);transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--green);color:white;font-size:12px;padding:13px 22px;border-radius:5px;box-shadow:0 5px 30px #18251833;transition:opacity .2s,transform .2s;text-align:center}.toast.visible{transform:translate(-50%,0);opacity:1}
.noscript-message{background:var(--sage);padding:20px;text-align:center}
@media(max-width:1100px){.page-width{width:calc(100% - 64px)}.hero{padding-inline:32px}.hero-copy{padding-top:0}.hero-details{margin-top:34px}.hero-actions{gap:14px}.hero-image{aspect-ratio:3/4}.booking-teaser{gap:40px;padding:44px 35px}.booking-teaser h2{font-size:36px}.sessions-layout{gap:40px}.place-section{gap:45px}.address-street{font-size:40px}}
@media(max-width:767px){
  .session-description,.session-photo,.sessions-layout>.session-list{grid-column:auto;grid-row:auto}.session-photo{max-width:420px;justify-self:center}.session-photo figcaption{font-size:9px;margin-top:10px}
  html{scroll-padding-top:20px}.page-width{width:calc(100% - 40px)}
  .demo-banner{font-size:8px;gap:5px;padding:6px 14px;min-height:30px;flex-wrap:wrap}.demo-separator{padding:0}.site-header{height:75px}.wordmark{font-size:18px;gap:10px}.wordmark span{padding-left:10px;font-size:10px}.site-header nav>a{display:none}.site-header nav{gap:0}.header-book{min-height:40px;padding:0 13px;font-size:10px;gap:18px}
  .hero{padding:112px max(20px,env(safe-area-inset-left)) max(18px,env(safe-area-inset-bottom));width:100%}.hero-copy{padding:0}.eyebrow{font-size:8px;letter-spacing:.13em;margin-bottom:22px}.hero h1{font-size:clamp(38px,10.8vw,76px);line-height:1.08;margin:2px 0 25px;letter-spacing:0}.hero-intro{font-size:14px;line-height:1.7;margin-bottom:25px}.hero-actions{width:100%;gap:12px;justify-content:center}.hero-actions>.button{font-size:11px;min-height:48px;gap:32px;padding-inline:19px}.hero-actions>.text-link{font-size:9px;gap:8px}.hero-details{margin:29px 0 25px;font-size:8px;gap:16px}.hero-details span+span{padding-left:16px}.hero-image{aspect-ratio:1.18;border-radius:56px 4px 4px 4px}.hero-image img{object-position:center 56%}.hero-image figcaption{padding:22px 18px 14px;font-size:7px}.hero-image figcaption small{font-size:7px}.image-corner{font-size:29px;top:15px;right:18px}.hero-bottom{margin-top:16px;padding:12px 0 0;font-size:7px}
  .sessions-section{padding-block:65px 48px}.section-top{margin-bottom:30px}.section-note{font-size:9px}.sessions-layout{grid-template-columns:1fr;gap:29px}h2{font-size:37px;line-height:1.14}.session-description>p{font-size:12px;line-height:1.7;margin-bottom:17px}.session-description>p br{display:none}.example-label{font-size:8px}.session-row{padding:21px 0;grid-template-columns:28px 1fr 33px;gap:11px}.session-num{font-size:13px}.session-row h3{font-size:24px}.session-row p{font-size:10px;margin-bottom:13px}.session-price small{font-size:8px;margin-left:8px}.session-row .session-price{font-size:13px}.session-arrow{width:30px;height:30px;font-size:14px}
  .booking-teaser{grid-template-columns:1fr;gap:26px;padding:29px 23px;margin-bottom:65px}.booking-teaser h2{font-size:32px}.booking-teaser p:not(.eyebrow){font-size:11px}.booking-teaser p br{display:none}.booking-teaser .eyebrow{font-size:8px;margin-bottom:19px}.teaser-card{padding:20px}.teaser-slots{gap:7px}.teaser-slots button{flex:1;padding:10px 5px;font-size:10px}.teaser-card>small{font-size:8px}
  .how-section{padding-block:45px}.how-section .section-top{margin-bottom:22px}.how-section h2{font-size:37px}.steps-list{grid-template-columns:1fr;gap:0;margin-top:34px}.steps-list li{display:grid;grid-template-columns:30px 1fr;column-gap:16px;padding:20px 0 13px}.step-index{grid-row:1/3;margin-top:1px}.steps-list h3{margin:0 0 9px;font-size:12px}.steps-list p{font-size:11px;max-width:none;margin:0 0 9px}.how-footnote{font-size:8px;padding-top:17px;margin-top:17px}.tiny-star{font-size:27px}
  .place-section{grid-template-columns:1fr;gap:33px;padding-block:65px}.place-copy h2{font-size:38px}.place-copy p:not(.eyebrow){font-size:12px}.place-copy .place-detail{font-size:10px!important;margin-top:22px}.address-art{aspect-ratio:1.17;padding:24px}.address-street{font-size:43px}.address-number{font-size:58px;bottom:39px}.address-caption{font-size:7px}
  .faq-section{grid-template-columns:1fr;gap:24px;padding-block:42px}.faq-section h2{margin-bottom:0}.faq-list summary{font-size:11px;min-height:65px;gap:15px}.faq-list p{font-size:11px}.final-cta{padding-block:44px 66px}.final-cta h2{font-size:67px}.final-cta .eyebrow{font-size:7px}.final-cta .button{min-width:205px;font-size:11px}.site-footer{flex-wrap:wrap;row-gap:19px;padding-block:27px calc(113px + env(safe-area-inset-bottom));font-size:8px}.site-footer .wordmark{font-size:16px}.footer-demo{width:100%;font-size:7px}
  .mobile-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;position:fixed;z-index:10;bottom:0;left:0;right:0;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:#f6f3ecf5;backdrop-filter:blur(10px);border-top:1px solid #d9dfcf}.mobile-bar:not(.is-visible){display:none}.mobile-bar>div{line-height:1.5}.mobile-bar strong{display:block;font-size:11px;font-weight:500}.mobile-bar small{display:block;font-size:8px;color:var(--muted)}.mobile-bar .button{min-height:46px;font-size:10px;padding-inline:17px;gap:28px}.has-dialog .mobile-bar{display:none}
  dialog{width:100%;max-height:100dvh;height:100dvh;margin:0;top:0;left:0;border:0;border-radius:0;overscroll-behavior:contain}.dialog-header{padding:12px 20px;padding-top:max(12px,env(safe-area-inset-top));min-height:70px}.dialog-header .wordmark{font-size:16px}.dialog-demo{font-size:8px;padding:8px 18px}.dialog-body{grid-template-columns:1fr;min-height:0}.booking-aside{display:none}.booking-main{padding:23px 20px 28px;min-width:0}.flow-progress{margin-bottom:23px}.flow-progress small{font-size:8px}.flow-title{font-size:31px}.flow-subtitle{font-size:11px;line-height:1.7;margin-bottom:22px}.flow-service{padding:20px 17px;min-height:121px;gap:14px}.flow-service h3{font-size:23px}.flow-service p{font-size:10px;max-width:190px}.flow-service strong{font-size:14px}.flow-service small{font-size:8px}.flow-services{gap:11px}.date-strip{margin-right:-20px;padding-right:20px}.date-button{min-width:64px;min-height:83px}.slot-grid{grid-template-columns:repeat(4,1fr);max-height:245px;gap:8px}.slot-button{font-size:11px;min-height:47px}.flow-action{min-height:50px;margin-top:21px}.selection-note{font-size:9px;padding-top:16px}.dialog-footer{flex-direction:column;gap:5px;padding:15px 20px calc(20px + env(safe-area-inset-bottom));font-size:8px}.field label{font-size:11px}.privacy-note{font-size:10px}.notice{font-size:10px}.review-list>div{font-size:11px}.status-symbol{margin-top:3px}.confirmed-details .big-date{font-size:25px}.confirmed-details{padding:20px 17px}.toast{bottom:calc(88px + env(safe-area-inset-bottom));font-size:11px;width:max-content}.has-dialog .toast{bottom:25px}
}
@media(max-width:359px){.page-width{width:calc(100% - 32px)}.hero-actions{gap:10px;justify-content:center}.hero-actions>.button{gap:20px;padding-inline:15px;font-size:10px}.hero-actions>.text-link{font-size:8px;gap:7px}.booking-teaser{padding-inline:17px}.teaser-card{padding:16px}.booking-teaser h2{font-size:29px}.booking-main{padding-inline:16px}.flow-service{grid-template-columns:1fr auto;gap:9px;padding:15px}.flow-service h3{font-size:20px}.flow-service p{font-size:9px}.flow-service strong{font-size:13px}.flow-service small{font-size:7px}.slot-grid{grid-template-columns:repeat(3,1fr)}.flow-title{font-size:28px}.confirm-buttons{grid-template-columns:1fr}.dialog-header{padding-inline:16px}.mobile-bar{padding-inline:16px}.header-book{gap:12px;padding-inline:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@media(max-width:767px) and (max-height:650px){.hero{padding-top:92px}.hero-details{margin-block:22px 18px}}

/* Client confirmation follows the appointment-card layout, without rental details. */
.service-choice-arrow{font-size:25px;color:#78876c}.session-row p{margin-bottom:0}
.is-confirmation .booking-main{background:#f0f1ec}.is-confirmation .flow-progress{display:none}
.is-confirmation .flow-title{font-family:var(--sans);font-size:28px;font-weight:600;letter-spacing:-.035em}
.confirmation-status{display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:.09em;color:#69805d;margin-bottom:15px}.confirmation-status>span{display:grid;place-items:center;width:22px;height:22px;background:#dfe8d7;border-radius:50%;font-size:13px}
.confirmation-card{background:#fff;border:1px solid #e5e7e0;border-radius:15px;margin-bottom:14px;overflow:hidden}
.confirmation-person{display:flex;align-items:center;gap:15px;padding:20px}.therapist-monogram{flex:none;display:grid;place-items:center;width:55px;height:55px;background:var(--sage);border-radius:13px;font:italic 34px var(--serif);color:var(--green)}
.confirmation-person h3,.confirmation-service h3{font:600 17px/1.35 var(--sans);margin:0 0 4px}.confirmation-person p{font-size:12px;line-height:1.65;color:var(--muted);margin:0}
.confirmation-when{padding:17px 20px;border-top:1px solid #eceee7}.confirmation-when>strong{display:block;font-size:16px;font-weight:600}.confirmation-when p{font-size:19px;margin:3px 0 0;line-height:1.5}.confirmation-when p span{font-size:14px;color:var(--muted)}.confirmation-when small{display:block;font-size:10px;color:var(--muted);margin-top:3px}
.confirmation-service{display:flex;align-items:center;gap:14px;padding:18px 20px}.confirmation-service-icon{color:#788b69;font-size:29px}.confirmation-service h3{font-size:15px}.confirmation-service p{font-size:11px;line-height:1.5;color:var(--muted);margin:0}
.confirmation-contact{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:17px 20px;font-size:13px;overflow-wrap:anywhere}.confirmation-contact strong{font-weight:600;min-width:0}.confirmation-contact>span{color:var(--muted)}
.confirmation-actions{display:grid;background:#fff;border:1px solid #e5e7e0;border-radius:15px;padding:4px 18px;margin:19px 0 16px}.confirmation-actions button{background:none;border:0;text-align:left;min-height:58px;font-size:14px;font-weight:500;display:flex;align-items:center;gap:16px;color:#276dbe}.confirmation-actions button+button{border-top:1px solid #f0f1ed}.confirmation-actions button>span{font-size:25px;width:24px;flex:none;text-align:center;font-weight:400}.confirmation-actions .cancel-action{color:#b85442}.confirmation-actions button:hover{color:var(--ink)}
.cancel-buttons{display:grid;gap:12px}.cancel-buttons .button{width:100%}
.notice-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}
@media(min-width:768px){.steps-list{grid-template-columns:repeat(3,1fr)}}
@media(max-width:767px){.is-confirmation .booking-main{padding-top:22px}.confirmation-person{padding:17px 16px;gap:12px}.therapist-monogram{width:49px;height:49px;font-size:31px}.confirmation-person h3{font-size:18px}.confirmation-when,.confirmation-service,.confirmation-contact{padding:16px}.confirmation-when>strong{font-size:16px}.confirmation-contact{font-size:12px}.confirmation-actions{padding-inline:15px}.confirmation-actions button{min-height:60px}.is-confirmation .flow-subtitle{font-size:12px}.is-confirmation .confirm-buttons .button{font-size:11px}}

.management-note{font-size:11px;color:var(--muted);line-height:1.7;margin:18px 0 0}.booking-main [aria-busy=true]{opacity:.7}
.booking-processing{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:340px;text-align:center;padding:24px 0}.booking-processing .flow-title{font-size:27px}.booking-processing .flow-subtitle{max-width:330px;margin-bottom:0}.booking-spinner{display:block;width:48px;height:48px;margin-bottom:26px;border:3px solid #dbe1d3;border-top-color:var(--green);border-radius:50%;animation:booking-spin .9s linear infinite}.is-processing #close-booking:disabled{opacity:.35;cursor:wait}@keyframes booking-spin{to{transform:rotate(360deg)}}

/* Optional confirmation delivery never replaces the saved booking details. */
.telegram-confirmation{background:#fff;border:1px solid #d8dfd0;border-radius:15px;padding:20px;margin:16px 0 20px;min-width:0}
.telegram-confirmation h3{font:600 17px/1.4 var(--sans);margin:0 0 8px}
.telegram-confirmation p{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 16px}
.telegram-confirmation p:last-child{margin-bottom:0}
.telegram-confirmation .button{width:100%;min-height:50px;white-space:normal;text-align:center;margin-top:0}
.telegram-confirmation .telegram-error{margin-top:12px;font-size:11px}
@media(max-width:767px){.telegram-confirmation{padding:18px 16px}}
/* SBP prepayment: the amount up top, then what to copy, how to transfer and the report button. */
.prepayment{background:#fff;border:1px solid #d6ddcc;border-radius:18px;margin:16px 0 20px;min-width:0;overflow:hidden;box-shadow:0 18px 40px -28px #2f3e3066}
.prepayment svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.prepayment-hero{padding:20px 20px 22px;background:linear-gradient(155deg,#edf1e6 0%,#dfe7d5 100%);border-bottom:1px solid #d6ddcc}
.prepayment-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;margin-bottom:16px}
.prepayment-label{font:600 10px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#5d6f4f;margin:0}
.prepayment-badge{display:inline-flex;align-items:center;gap:6px;margin:0;padding:6px 11px 6px 9px;border-radius:999px;background:#fffffff2;color:var(--rust);font:600 11px/1.3 var(--sans);box-shadow:0 1px 2px #2f3e301a}
.prepayment-hero h3{margin:0;font:400 14px/1.4 var(--sans);color:#56634c;overflow-wrap:anywhere}
.prepayment-verb{display:block;margin-bottom:4px}
.prepayment-sum{font:600 42px/1.05 var(--sans);letter-spacing:-.035em;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.prepayment-until{white-space:nowrap;margin-left:4px}
.prepayment-body{padding:4px 20px 20px}
.prepayment-details{display:grid;grid-template-columns:1fr 1fr;margin:0}
.prepayment-details>div{grid-column:1/-1;min-width:0;padding:14px 0;border-bottom:1px solid #eceee6}
.prepayment-details>.is-half{grid-column:auto}
.prepayment-details>.is-half+.is-half{padding-left:16px;border-left:1px solid #eceee6}
.prepayment-details dt{font-size:11px;line-height:1.4;color:var(--muted);margin:0 0 5px}
.prepayment-details dd{margin:0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 12px;min-width:0}
.prepayment-details>div:last-child{border-bottom:0}
.prepayment-details strong{font-size:17px;line-height:1.3;font-weight:600;letter-spacing:-.01em;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.prepayment-details .prepayment-phone strong{font-size:20px;letter-spacing:-.02em;white-space:nowrap}
.prepayment-bank{white-space:nowrap}
.prepayment-copy{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 13px 8px 11px;border:1px solid #cfd8c4;border-radius:999px;background:#f3f5ee;color:var(--green);font:600 11px/1 var(--sans);cursor:pointer;transition:background .15s,border-color .15s,transform .1s}
.prepayment-copy:hover{background:var(--sage);border-color:#b9c5ab}
.prepayment-copy:active{transform:scale(.97)}
.prepayment-copy:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.prepayment-how{margin-top:18px;padding:16px 16px 17px;background:#f5f6f1;border-radius:13px}
.prepayment-subhead{font:600 12px/1.4 var(--sans);color:var(--ink);margin:0 0 12px}
.prepayment-steps{list-style:none;counter-reset:prepayment-step;display:grid;gap:11px;margin:0;padding:0}
.prepayment-steps li{counter-increment:prepayment-step;position:relative;min-height:22px;padding-left:33px;font-size:12px;line-height:1.6;color:var(--ink)}
.prepayment-steps li::before{content:counter(prepayment-step);position:absolute;left:0;top:-1px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--green);color:#fff;font:600 11px/1 var(--sans)}
.prepayment .prepayment-terms{display:grid;grid-template-columns:18px 1fr;gap:9px;margin:14px 2px 0;font-size:11px;line-height:1.65;color:var(--muted)}
.prepayment-terms::before{content:'i';display:grid;place-items:center;width:17px;height:17px;margin-top:1px;border:1px solid #b9c4ad;border-radius:50%;font:italic 600 10px/1 var(--serif);color:#76866a}
.prepayment .button{width:100%;min-height:54px;margin-top:18px;border-radius:12px;font-size:14px;white-space:normal}
.prepayment-footnote{margin:11px 4px 0;font-size:11px;line-height:1.6;color:var(--muted);text-align:center}
.prepayment.is-missing{border-color:#e6cfbf}
.prepayment.is-missing .prepayment-hero{background:linear-gradient(155deg,#f8efe8 0%,#f0e0d3 100%);border-color:#e6cfbf}
.prepayment.is-missing .prepayment-label{color:var(--rust)}
.prepayment.is-missing .prepayment-badge{color:#9b4f32}
/* Received, reported and expired: one calm line with a mark. */
.prepayment-outcome{display:grid;grid-template-columns:42px 1fr;gap:14px;align-items:start;padding:18px}
.prepayment-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--green);color:#fff}
.prepayment-mark svg{width:20px;height:20px;stroke-width:2.2}
.prepayment-outcome h3{font:600 17px/1.35 var(--sans);margin:2px 0 4px;overflow-wrap:anywhere}
.prepayment-outcome p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}
.prepayment.is-paid{background:#eef3e8;border-color:#cddabf}
.prepayment.is-reported{background:#f6f7f2;border-color:#dde3d4}
.prepayment.is-reported .prepayment-mark{background:#dfe8d6;color:var(--green)}
.prepayment.is-expired{background:#f8efe8;border-color:#e6cfbf}
.prepayment.is-expired .prepayment-mark{background:#ecd5c4;color:#8b4c31}
.confirmation-status.is-waiting{color:#8a6a3f}.confirmation-status.is-waiting>span{background:#f1e6d6}
.prepayment-outcome>details{grid-column:1/-1;margin-top:-2px;border-top:1px solid #e3e7dc}
.prepayment summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--green);min-height:44px;display:flex;align-items:center;justify-content:space-between;list-style:none}
.prepayment summary::-webkit-details-marker{display:none}
.prepayment summary::after{content:'+';font-size:18px;font-weight:400;line-height:1}
.prepayment details[open] summary::after{content:'−'}
.copy-buffer{position:fixed;inset:0 auto auto 0;width:1px;height:1px;opacity:0;pointer-events:none}
@media(max-width:767px){.prepayment-hero{padding:18px 16px 20px}.prepayment-body{padding:2px 16px 18px}.prepayment-sum{font-size:38px}.prepayment-outcome{padding:16px;gap:12px;grid-template-columns:40px 1fr}.prepayment-mark{width:40px;height:40px}}
@media(max-width:359px){.prepayment-details .prepayment-phone strong{font-size:18px}.prepayment-copy span{display:none}.prepayment-copy{padding-inline:11px}}
