:root{--wine:#670726;--wine-deep:#380316;--rose:#a55b70;--blush:#f8eeee;--cream:#fcf9f6;--ink:#241b1d;--muted:#6c6263;--line:#e6dcda;--white:#fff;--radius:24px;--container:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font-family:"DM Sans",sans-serif;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}a{color:inherit}.container{width:min(100%,var(--container));margin:auto;padding-inline:28px}.site-header{position:sticky;top:0;z-index:10;background:rgba(252,249,246,.94);border-bottom:1px solid rgba(103,7,38,.09);backdrop-filter:blur(12px)}.nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand img{width:150px;height:auto}.links{display:flex;align-items:center;gap:26px;margin:0;padding:0;list-style:none}.links a:not(.btn){font-size:.86rem;text-decoration:none}.links a:not(.btn):hover,.text-link:hover{color:var(--wine)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;border-radius:999px;font-size:.86rem;font-weight:700;text-decoration:none;transition:transform .2s,background .2s}.btn:hover{transform:translateY(-2px)}.nav-cta,.btn-primary{color:#fff;background:var(--wine)}.btn-primary:hover,.nav-cta:hover{background:var(--wine-deep)}.nav-toggle{display:none;border:0;background:none}.nav-toggle span{display:block;width:23px;height:2px;margin:5px;background:var(--wine)}.nav-backdrop{display:none}.hero{position:relative;overflow:hidden;min-height:680px;display:grid;align-items:center;color:white;background:var(--wine-deep)}.hero:before{position:absolute;inset:0;content:"";opacity:.3;background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(120deg,#000,transparent 80%)}.hero-orb{position:absolute;border-radius:50%;filter:blur(2px)}.hero-orb--one{width:620px;height:620px;right:-150px;top:-260px;background:#8d1f49}.hero-orb--two{width:360px;height:360px;left:44%;bottom:-230px;border:1px solid rgba(255,255,255,.24);filter:none}.hero-content{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:70px}.hero-copy{max-width:660px;padding-block:110px}.eyebrow,.section-label{margin:0 0 17px;color:var(--rose);font-size:.69rem;font-weight:700;letter-spacing:.16em}.hero h1,h2{margin:0;font-weight:500;letter-spacing:-.055em}.hero h1{font-size:clamp(3.3rem,7vw,6.35rem);line-height:.94}.hero h1 em,h2 em{font-family:"Playfair Display",serif;font-weight:500}.hero-text{max-width:540px;margin:30px 0 0;color:#f0dce2;font-size:1.05rem;line-height:1.7}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:25px;margin-top:34px}.text-link{font-size:.9rem;font-weight:700;text-decoration:none;text-underline-offset:6px;text-decoration-color:var(--rose)}.hero-note{margin:24px 0 0;color:#d7b4c0;font-size:.77rem}.hero-mark{width:min(100%,390px);justify-self:end;padding:20px;border:1px solid rgba(255,255,255,.24);border-radius:50%;background:rgba(255,255,255,.06);box-shadow:0 30px 100px rgba(0,0,0,.35)}.hero-mark img{border-radius:50%}.section{padding-block:112px}.intro-grid{display:grid;grid-template-columns:180px minmax(0,760px);gap:65px}.intro-grid h2,.section-heading h2,.location-grid h2,.booking-content h2{font-size:clamp(2.5rem,4vw,4rem);line-height:1.04}.intro-grid p:not(.section-label){max-width:660px;color:var(--muted);font-size:1rem;line-height:1.75}.intro-grid .lead{margin-top:30px;color:var(--ink);font-size:1.23rem;line-height:1.6}.experience-section{background:var(--blush)}.section-heading{max-width:700px}.experience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:48px}.experience-card{min-height:270px;padding:32px;border:1px solid #ead7db;border-radius:var(--radius);background:rgba(255,255,255,.65)}.experience-card--accent{color:#fff;border-color:var(--wine);background:var(--wine)}.experience-card span{font-size:.78rem;font-weight:700;color:var(--rose)}.experience-card--accent span{color:#e9adbd}.experience-card h3{margin:70px 0 12px;font-size:1.35rem;letter-spacing:-.04em}.experience-card p{margin:0;line-height:1.6;color:var(--muted)}.experience-card--accent p{color:#f3dce2}.plans-heading{max-width:none;display:flex;justify-content:space-between;align-items:end;gap:35px}.plans-heading>p{max-width:300px;margin:0;color:var(--muted);line-height:1.6}.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:48px}.price-card{display:flex;flex-direction:column;min-height:270px;padding:29px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.price-card h3{margin:0;font-size:1.27rem;letter-spacing:-.035em}.price{margin:25px 0 10px;color:var(--wine);font-size:2.8rem;font-weight:600;letter-spacing:-.06em}.price small{font-size:.72rem;color:var(--muted);letter-spacing:0}.price>p,.price-card>p:not(.price):not(.card-tag){margin:0;color:var(--muted);line-height:1.55}.price-card a{margin-top:auto;padding-top:24px;color:var(--wine);font-size:.86rem;font-weight:700;text-decoration:none}.price-card.featured{color:#fff;border-color:var(--wine);background:var(--wine)}.price-card.featured .price,.price-card.featured a{color:#fff}.price-card.featured .price small,.price-card.featured>p:not(.price):not(.card-tag){color:#e8c8d1}.card-tag{margin:0 0 13px;color:#f0bdcc;font-size:.65rem;font-weight:700;letter-spacing:.14em}.price-card.unlimited{border-color:#d4afb9;background:#fdf7f8}.single-visits{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:28px;align-items:center;margin-top:50px;padding:30px 34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.single-visits .section-label{margin-bottom:8px}.single-visits h3{margin:0;font-size:1.2rem}.visit-option{display:grid;gap:6px}.visit-option span{color:var(--muted);font-size:.84rem}.visit-option .btn{justify-self:start;margin-top:8px;padding:11px 18px}.booking-section{padding-block:86px;color:#fff;background:var(--wine)}.booking-content{display:flex;align-items:center;justify-content:space-between;gap:40px}.booking-content .section-label{color:#e7b0c0}.booking-content h2{max-width:620px}.booking-content p:not(.section-label){margin:16px 0 0;color:#efced7}.btn-light{white-space:nowrap;color:var(--wine);background:#fff}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.location-address{margin:27px 0;color:var(--muted);font-size:1.04rem;line-height:1.75}.location-visual{min-height:315px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:36px;border-radius:var(--radius);background:var(--wine)}.location-visual img{width:260px;filter:brightness(0) invert(1)}.location-visual p{margin:0;color:#efcbd5;text-align:center;font-family:"Playfair Display",serif;font-size:1.3rem;line-height:1.05}.site-footer{padding-block:30px;color:#cab8bd;background:#261417}.footer-content{display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:.8rem}.footer-content img{width:120px;filter:brightness(0) invert(1)}.footer-content p{margin:0}.footer-content a{color:#fff;text-decoration:none}
@media(max-width:800px){.nav-toggle{display:block}.links{position:fixed;top:76px;left:16px;right:16px;display:none;align-items:stretch;gap:0;padding:14px;border-radius:18px;background:#fff;box-shadow:0 20px 60px rgba(35,5,15,.2)}.links.is-open{display:grid}.links li a:not(.btn){display:block;padding:13px}.nav-cta{width:100%;margin-top:5px}.hero-content{grid-template-columns:1fr;gap:0}.hero-copy{padding-block:80px 35px}.hero-mark{width:230px;justify-self:start;margin-bottom:70px}.intro-grid{grid-template-columns:1fr;gap:15px}.experience-grid,.pricing{grid-template-columns:repeat(2,1fr)}.location-grid{gap:45px}.single-visits{grid-template-columns:1fr 1fr}.single-visits>div:first-child{grid-column:1/-1}.booking-content{align-items:flex-start;flex-direction:column}.footer-content{flex-wrap:wrap}}
@media(max-width:540px){.container{padding-inline:20px}.nav{height:65px}.brand img{width:128px}.links{top:65px}.hero{min-height:0}.hero-copy{padding-block:70px 20px}.hero-mark{width:185px;margin-bottom:50px}.hero h1{font-size:3.25rem}.section{padding-block:76px}.experience-grid,.pricing,.location-grid,.single-visits{grid-template-columns:1fr}.plans-heading{display:block}.plans-heading>p{margin-top:20px}.price-card{min-height:230px}.single-visits{padding:25px 0;gap:24px}.location-visual{min-height:230px}.booking-frame{height:700px}.footer-content{align-items:flex-start;flex-direction:column;gap:14px}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}}

/* The supplied wordmark includes a white canvas. This transparent variant is safe on wine backgrounds. */
.booking-frame-shell{overflow:hidden;margin-top:44px;border:1px solid rgba(255,255,255,.25);border-radius:20px;background:#fff;box-shadow:0 22px 58px rgba(45,0,14,.25)}
.booking-frame{display:block;width:100%;height:780px;border:0;background:#fff}
.booking-fallback{margin:16px 0 0;color:#edc9d3;font-size:.84rem;text-align:center}
.booking-fallback a{color:#fff;font-weight:700;text-underline-offset:4px}
.class-list{margin-top:38px;padding:25px 0;border-top:1px solid #e6cfd5;border-bottom:1px solid #e6cfd5}.class-list-label{margin:0 0 13px;color:var(--wine);font-size:.68rem;font-weight:700;letter-spacing:.14em}.class-list ul{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}.class-list li{padding:9px 14px;border:1px solid #d9b8c2;border-radius:999px;color:var(--wine);background:#fff;font-size:.86rem;font-weight:600}
.footer-meta{display:flex;align-items:center;gap:17px}.powered-by{display:flex;align-items:center;gap:6px;color:#a8979b;font-size:.68rem;white-space:nowrap}.powered-by img{width:58px;height:auto;filter:none}
.contact-section{padding-block:0 112px}.contact-card{display:flex;align-items:center;justify-content:space-between;gap:42px;padding:clamp(32px,5vw,60px);border:1px solid #e3c8cf;border-radius:var(--radius);background:#fff5f6}.contact-card h2{font-size:clamp(2.2rem,4vw,3.5rem);line-height:1.03}.contact-card p:not(.section-label){max-width:570px;margin:17px 0 0;color:var(--muted);line-height:1.65}.contact-card .btn{flex:0 0 auto}@media(max-width:640px){.contact-section{padding-bottom:76px}.contact-card{align-items:flex-start;flex-direction:column;gap:27px}.contact-card .btn{width:100%}}

/* First-screen mobile hero: keep every key action within the viewport. */
@media(max-width:540px){.hero{min-height:calc(100svh - 65px)}.hero-content{display:block;min-height:calc(100svh - 65px)}.hero-copy{min-height:calc(100svh - 65px);display:flex;flex-direction:column;justify-content:center;padding:clamp(2.25rem,6svh,3.75rem) 0}.eyebrow{margin-bottom:.8rem;font-size:.61rem;letter-spacing:.13em}.hero h1{max-width:9ch;font-size:clamp(2.5rem,12vw,3.1rem);line-height:.95}.hero-text{max-width:33ch;margin-top:1.1rem;font-size:.92rem;line-height:1.55}.hero-actions{margin-top:1.5rem;padding-top:0;align-items:flex-start;flex-direction:column;gap:.75rem}.hero-actions .btn{width:100%;min-height:48px;padding-block:12px}.hero-note{margin:.75rem 0 0;font-size:.7rem}.hero-mark{position:absolute;top:1.3rem;right:-.3rem;width:92px;margin:0;padding:5px;opacity:.6;box-shadow:none;pointer-events:none}.hero-mark img{border-radius:50%}}

/* Hero v2: logo-first composition for the strongest first impression. */
.hero{min-height:min(820px,calc(100svh - 76px))}.hero-content{grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:clamp(3rem,7vw,7rem)}.hero-mark{isolation:isolate;width:min(39vw,470px);padding:14px;border-color:rgba(255,255,255,.34);background:rgba(255,255,255,.08);box-shadow:0 34px 100px rgba(20,0,7,.46),inset 0 1px rgba(255,255,255,.18)}.hero-mark::before{position:absolute;inset:-22px;z-index:-1;content:"";border:1px solid rgba(255,255,255,.28);border-radius:50%}.hero-mark::after{position:absolute;inset:12%;z-index:-2;content:"";border-radius:50%;background:#a12652;filter:blur(60px);opacity:.42}.hero-mark img{position:relative;z-index:1;width:100%}
@media(max-width:800px){.hero{min-height:auto}.hero-content{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto;align-content:center;gap:0}.hero-mark{position:relative;top:auto;right:auto;grid-row:1;width:min(42vw,210px);justify-self:center;margin:44px auto 0;padding:8px;opacity:1;box-shadow:0 24px 65px rgba(20,0,7,.4);pointer-events:auto}.hero-mark::before{inset:-12px}.hero-copy{grid-row:2;max-width:650px;align-items:center;margin-inline:auto;padding:38px 0 58px;text-align:center}.hero h1{max-width:12ch;margin-inline:auto}.hero-text{max-width:42ch;margin-inline:auto}.hero-actions{justify-content:center}.hero-note{text-align:center}}
@media(max-width:540px){.hero{min-height:calc(100svh - 65px)}.hero-content{min-height:calc(100svh - 65px);grid-template-rows:auto auto;align-content:center}.hero-mark{width:clamp(136px,40vw,168px);margin:0 auto;padding:7px}.hero-mark::before{inset:-9px}.hero-copy{min-height:0;padding:clamp(1.35rem,3.6svh,2rem) 0 0;justify-content:flex-start;text-align:center}.eyebrow{margin-bottom:.7rem;font-size:.58rem;letter-spacing:.12em}.hero h1{max-width:10ch;font-size:clamp(2.3rem,10.8vw,2.85rem);line-height:.97}.hero-text{max-width:35ch;margin:1rem auto 0;font-size:.9rem;line-height:1.5}.hero-actions{width:100%;margin-top:1.25rem;padding:0;align-items:center;gap:.35rem}.hero-actions .btn{width:100%;min-height:50px}.hero-actions .text-link{min-height:42px;display:inline-flex;align-items:center;justify-content:center}.hero-note{margin:.35rem 0 0;font-size:.68rem}}
@media(max-width:540px) and (max-height:700px){.hero-mark{width:118px}.hero-copy{padding-top:1rem}.hero h1{font-size:2.2rem}.hero-text{margin-top:.75rem;font-size:.84rem;line-height:1.42}.hero-actions{margin-top:1rem}.hero-actions .btn{min-height:46px}.hero-actions .text-link{min-height:36px}.hero-note{margin-top:.15rem}}
