:root{--cream-bg:#fceade;--cream-fade:#fdf0e9;--cream-border:#f9d4bd;--navy:#1e222f;--navy-2:#464f6d;--rust:#9b440d;--orange:#ec6f23;--dark:#1C1E22;--white:#fff;--body-text:#50555C;--title-text:#1D2023;--font-title:'Playfair Display',serif;--font-body:'DM Sans',sans-serif;--nav-h:70px;--mob-bar-h:60px}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--cream-bg)}
body{font-family:var(--font-body);font-size:17px;line-height:1.5;color:var(--body-text);background:var(--cream-bg);padding-top:var(--nav-h)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,h5,h6{font-family:var(--font-title);color:var(--title-text);font-weight:700;line-height:1.4}
h1{font-size:48px}h2{font-size:36px}h3{font-size:22px}h4{font-size:18px;font-style:italic;font-weight:400}
.container{width:94%;max-width:1200px;margin:0 auto}
.nav{position:fixed;top:0;left:0;width:100%;z-index:1000;background:var(--cream-bg);padding:14px 0;transition:box-shadow .3s,padding .3s}
.nav.scrolled{box-shadow:0 2px 8px rgba(0,0,0,.08);padding:8px 0}
.nav-inner{display:flex;align-items:center;justify-content:space-between}
.nav-logo{font-family:var(--font-title);font-size:22px;color:var(--navy);font-weight:700}
.nav-links{display:flex;gap:4px;list-style:none}
.nav-links a{display:block;padding:10px 16px;color:var(--navy-2);font-weight:700;font-size:17px;position:relative;transition:color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--rust)}
.nav-links a.active::after{content:'';position:absolute;bottom:4px;left:16px;right:16px;height:3px;background:var(--rust)}
.nav-burger{display:none;background:none;border:none;cursor:pointer;padding:12px}
.nav-burger span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0}
.drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1100;opacity:0;pointer-events:none;transition:opacity .3s}
.drawer-backdrop.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100vh;width:280px;background:var(--cream-bg);z-index:1200;transform:translateX(100%);transition:transform .3s;padding:80px 24px 24px}
.drawer.open{transform:translateX(0)}
.drawer-close{position:absolute;top:20px;right:20px;background:none;border:none;font-size:28px;cursor:pointer;color:var(--navy)}
.drawer ul{list-style:none}
.drawer ul li{border-bottom:1px solid var(--cream-border)}
.drawer ul li a{display:block;padding:16px 0;color:var(--navy);font-weight:700}
section{padding:75px 0}
section.dark{background:var(--dark);color:var(--white)}
section.dark h1,section.dark h2,section.dark h3,section.dark h4{color:var(--white)}
section.cream{background:var(--cream-bg)}
.section-head{text-align:center;margin-bottom:60px}
.section-head h2{margin-bottom:12px}
.section-head h4{font-style:italic;opacity:.9}
.hero{min-height:calc(100vh - var(--nav-h));display:flex;align-items:center;justify-content:center;text-align:center;color:var(--white);background-size:cover;background-position:center;position:relative;margin-top:calc(-1 * var(--nav-h));padding-top:var(--nav-h)}
.hero::before{content:'';position:absolute;inset:0;background:rgba(118,55,17,.35)}
.hero-inner{position:relative;z-index:2;max-width:800px;padding:60px 20px}
.hero h1{color:var(--white);margin-bottom:24px}
.hero h4{color:var(--white);margin-bottom:32px;font-style:italic;font-weight:400}
.hero-mini{min-height:50vh}
.btn{display:inline-block;padding:14px 28px;background:var(--navy);color:var(--white);font-family:var(--font-body);font-weight:700;font-size:16px;border:none;cursor:pointer;transition:background .2s,transform .2s}
.btn:hover{background:#2a2e3d;transform:translateY(-2px)}
.btn-rust{background:var(--rust)}
.btn-rust:hover{background:#b8550f}
.video-wrap{max-width:900px;margin:0 auto;aspect-ratio:16/9;position:relative;background-size:cover;background-position:center;cursor:pointer;overflow:hidden}
.video-wrap::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,.3);transition:background .3s}
.video-wrap:hover::after{background:rgba(0,0,0,.45)}
.video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.95);display:flex;align-items:center;justify-content:center;z-index:2;transition:transform .3s}
.video-wrap:hover .video-play{transform:translate(-50%,-50%) scale(1.1)}
.video-play::before{content:'';border-style:solid;border-width:14px 0 14px 22px;border-color:transparent transparent transparent var(--navy);margin-left:6px}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:2000;display:none;align-items:center;justify-content:center}
.lightbox.open{display:flex}
.lightbox-inner{width:90%;max-width:1000px;aspect-ratio:16/9;position:relative}
.lightbox iframe{width:100%;height:100%;border:none}
.lightbox-close{position:absolute;top:-40px;right:0;background:none;border:none;color:var(--white);font-size:32px;cursor:pointer}
.feature-list{display:flex;flex-direction:column;gap:60px}
.feature-item{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.feature-item img{aspect-ratio:4/3;object-fit:cover;width:100%}
.feature-item h3{margin-bottom:16px;color:var(--white)}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card-grid-4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--white);overflow:hidden;transition:transform .3s,box-shadow .3s;color:var(--body-text);display:block}
.card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.12)}
.card-img{aspect-ratio:3/4;overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.card:hover .card-img img{transform:scale(1.05)}
.card-body{padding:24px}
.card h3{margin-bottom:12px;color:var(--title-text)}
.card .read-more{color:var(--rust);font-weight:700;margin-top:12px;display:inline-block}
.price-card{background:var(--white);padding:32px 24px;text-align:center;color:var(--body-text);position:relative;transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column}
.price-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgba(0,0,0,.12)}
.price-card h3{color:var(--title-text);margin-bottom:8px}
.price-card .duration{font-size:14px;opacity:.7;margin-bottom:16px}
.price-card .price{font-family:var(--font-title);font-size:36px;color:var(--navy);margin-bottom:8px}
.price-card .price-was{font-size:16px;color:#999;text-decoration:line-through;margin-bottom:12px}
.price-card .desc{margin-bottom:24px;flex:1}
.price-card.featured{border:2px solid var(--rust)}
.price-card .ribbon{position:absolute;top:18px;right:-38px;transform:rotate(45deg);background:var(--rust);color:var(--white);padding:4px 44px;font-size:11px;font-weight:700;letter-spacing:1px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px}
.form-row{margin-bottom:16px}
.form-row label{display:block;margin-bottom:6px;font-weight:700;color:var(--title-text)}
.form-row input,.form-row textarea{width:100%;padding:12px;border:1px solid var(--cream-border);font-family:var(--font-body);font-size:16px;background:#fff}
.form-row textarea{min-height:140px;resize:vertical}
.form-success{padding:20px;background:#e6f4e6;color:#2d6a2d}
.form-error{padding:20px;background:#fce8e8;color:#a02020}
.location-info{line-height:1.8}
.location-info h3{margin-bottom:16px;color:var(--title-text)}
.location-info iframe{width:100%;height:300px;border:0;margin-top:24px}
footer{background:var(--dark);color:var(--white);padding:60px 0 30px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:40px}
footer h3{color:var(--white);font-size:20px;margin-bottom:16px}
footer a{color:var(--white)}
footer a:hover{color:var(--orange)}
.social-row{display:flex;gap:12px;margin-top:8px}
.social-row a{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;background:rgba(255,255,255,.1);transition:background .2s}
.social-row a:hover{background:var(--orange)}
.social-row svg{width:20px;height:20px;fill:var(--white)}
.footer-bottom{text-align:center;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);font-size:14px;opacity:.7}
.mob-bar{display:none}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .6s,transform .6s}
.reveal.in-view{opacity:1;transform:translateY(0)}
.blog-article{max-width:720px;margin:0 auto;padding:60px 24px}
.blog-article .category{font-family:var(--font-title);font-style:italic;color:var(--rust);margin-bottom:16px;font-size:18px}
.blog-article p{font-size:18px;line-height:1.7;margin-bottom:20px}
.blog-back{margin-top:40px;display:inline-block;color:var(--rust);font-weight:700}
.calendly-placeholder{border:2px dashed var(--rust);padding:60px 24px;text-align:center;background:var(--cream-fade);margin:0 auto;max-width:800px}
.calendly-placeholder h3{margin-bottom:12px}
@media (max-width:727px){
h1{font-size:32px}h2{font-size:28px}
body{padding-bottom:var(--mob-bar-h)}
.nav-links{display:none}.nav-burger{display:block}
section{padding:50px 0}
.feature-item,.card-grid,.card-grid-4,.contact-grid{grid-template-columns:1fr;gap:24px}
.feature-item{display:flex;flex-direction:column}
.footer-grid{grid-template-columns:1fr;gap:30px;text-align:center}
.social-row{justify-content:center}
.mob-bar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;background:var(--cream-bg);border-top:1px solid var(--cream-border);z-index:999}
.mob-bar a{text-align:center;padding:8px 4px;color:var(--navy);font-size:11px;font-weight:700}
.mob-bar a svg{width:20px;height:20px;display:block;margin:0 auto 4px;fill:var(--navy)}
}

/* Page transitions */
@keyframes pageFadeIn { from { opacity: 0; } to { opacity: 1; } }
body { animation: pageFadeIn 0.25s ease-out; }
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: 200ms ease-out both fadeOut; }
::view-transition-new(root) { animation: 300ms ease-in both fadeIn; }
@keyframes fadeOut { to { opacity: 0; } }
@keyframes fadeIn { from { opacity: 0; } }
