:root{--bg:#f7f2ea;--alt:#faf6ef;--ink:#2a1f17;--muted:#6d5f4f;--olive:#7a8c5c;--olive-dark:#5e6f43;--gold:#c9a86a;--line:#ece4d5;--dark:#1f1812}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.container{width:min(100% - 40px,1180px);margin-inline:auto}.narrow{width:min(100% - 40px,760px)}.site-header{position:fixed;inset:0 0 auto;z-index:20;background:rgba(247,242,234,.88);backdrop-filter:blur(14px);border-bottom:1px solid #e8dfd0}.nav-shell{height:80px;width:min(100% - 32px,1280px);margin:auto;display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center}.brand img{height:64px;width:auto}.desktop-nav{display:flex;justify-content:center;gap:28px;font-size:14px;font-weight:600}.desktop-nav a:hover{color:var(--olive-dark)}.nav-actions{display:flex;align-items:center;gap:10px}.phone-pill{border:1px solid #d4c5a8;border-radius:999px;padding:10px 16px;font-size:14px}.book-pill,.primary-btn{background:var(--olive);color:white;border-radius:999px;padding:12px 24px;font-weight:700;box-shadow:0 12px 30px rgba(94,111,67,.22)}.book-pill:hover,.primary-btn:hover,.primary-submit:hover{background:var(--olive-dark)}.menu-btn{display:none;border:0;background:transparent;font-size:28px;color:var(--ink)}.mobile-nav{display:none;border-top:1px solid #e8dfd0;background:#faf6ef;padding:12px 24px}.mobile-nav a{display:block;padding:12px 0;border-bottom:1px solid #ece4d5}.hero{min-height:92vh;position:relative;display:grid;place-items:center;overflow:hidden;text-align:center;color:white}.hero-bg,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-shade{background:linear-gradient(to bottom,rgba(26,15,8,.58),rgba(26,15,8,.4),rgba(26,15,8,.72))}.hero-content{position:relative;z-index:1;width:min(100% - 32px,900px);padding-top:94px}.script{font-family:'Great Vibes',cursive;font-size:42px;color:#f0d9a8}.hero h1,.section-heading h2,.welcome h2,.rating-band h2{font-family:'Playfair Display',Georgia,serif;letter-spacing:0}.hero h1{font-size:clamp(42px,7vw,78px);line-height:1.08;margin:8px 0 0}.hero p{max-width:680px;margin:24px auto 0;color:rgba(255,255,255,.86);font-size:18px;line-height:1.75}.hero-buttons{margin-top:34px;display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.secondary-btn{border:1px solid rgba(255,255,255,.42);background:rgba(255,255,255,.12);border-radius:999px;padding:12px 24px;font-weight:700;backdrop-filter:blur(10px)}.hero-badges{margin:54px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:740px}.hero-badges div{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.11);border-radius:20px;padding:22px 10px;backdrop-filter:blur(10px)}.hero-badges span{display:block;color:var(--gold);font-size:26px}.hero-badges strong{font-size:14px}.section{padding:96px 0}.alt{background:var(--alt)}.split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}.eyebrow{margin:0 0 12px;text-transform:uppercase;letter-spacing:.32em;color:var(--olive);font-size:12px;font-weight:700}.welcome h2,.section-heading h2{font-size:clamp(32px,4vw,52px);line-height:1.1;margin:0;color:var(--ink)}.rule{width:80px;height:1px;background:var(--gold);margin:24px 0}.welcome p,.section-heading p,.about-copy p{color:var(--muted);line-height:1.75}.text-link{display:inline-block;margin-top:18px;color:var(--olive-dark);font-weight:700;border-bottom:1px solid var(--olive-dark)}.image-wrap{position:relative}.image-wrap img{border-radius:20px;box-shadow:0 26px 60px rgba(42,31,23,.22);aspect-ratio:4/3;object-fit:cover}.years{position:absolute;left:-24px;bottom:-24px;background:white;border:1px solid var(--line);border-radius:16px;padding:18px 22px;box-shadow:0 18px 44px rgba(42,31,23,.18)}.years b{display:block;font-family:'Playfair Display',serif;font-size:34px;color:var(--olive-dark)}.years span{font-size:12px;text-transform:uppercase;letter-spacing:.16em;color:#8a7a68}.section-heading{text-align:center;max-width:760px;margin:0 auto}.section-heading>p:last-child{font-size:16px;margin:14px 0 0}.service-grid,.promise-grid{margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.service-card{background:white;border-radius:20px;overflow:hidden;box-shadow:0 12px 40px rgba(42,31,23,.08);transition:.3s}.service-card:hover{transform:translateY(-4px);box-shadow:0 22px 60px rgba(42,31,23,.14)}.service-card img{aspect-ratio:4/3;object-fit:cover;width:100%}.service-card div{padding:24px}.service-card h3,.promise h3{font-family:'Playfair Display',serif;font-size:24px;line-height:1.15;margin:0 0 8px}.service-card p,.promise p{color:var(--muted);font-size:14px;line-height:1.65}.service-card span{display:inline-block;background:#f0e8d8;color:#8a7a68;border-radius:999px;padding:6px 12px;font-size:12px;margin:8px 0 18px}.service-card a{display:block;text-align:center;border:1px solid var(--olive);color:var(--olive-dark);border-radius:999px;padding:10px;font-weight:700}.service-card a:hover{background:var(--olive);color:white}.promise{background:white;border:1px solid var(--line);border-radius:20px;padding:28px}.promise b{display:grid;place-items:center;width:48px;height:48px;background:rgba(122,140,92,.12);color:var(--olive-dark);border-radius:14px;margin-bottom:18px}.rating-band{background:var(--dark);color:white;text-align:center;padding:76px 0}.stars{color:var(--gold);font-size:28px;letter-spacing:.08em}.rating-band h2{font-size:74px;line-height:1;margin:14px 0;color:white}.rating-band h2 span{color:var(--gold)}.rating-band p{color:#bdb0a0}.rating-copy{max-width:610px;margin:24px auto!important;line-height:1.7}.rating-band a{display:inline-block;background:var(--gold);color:var(--dark);padding:13px 26px;border-radius:999px;font-weight:800}.review-track{margin-top:48px;overflow:hidden;display:grid}.review-row{display:flex;transition:transform .7s ease}.review-card{background:white;border:1px solid var(--line);border-radius:20px;padding:26px;margin:0 12px;min-height:210px;flex:0 0 calc(33.333% - 24px);box-shadow:0 8px 34px rgba(42,31,23,.08)}.review-card header{display:flex;gap:12px;align-items:center}.avatar{width:44px;height:44px;border-radius:50%;background:rgba(201,168,106,.16);color:var(--gold);display:grid;place-items:center;font-family:'Playfair Display',serif;font-size:20px}.review-card h3{margin:0;font-family:'Playfair Display',serif}.review-card small{color:#8a7a68}.review-card .stars-mini{color:var(--gold);margin:14px 0 8px}.review-card p{color:#4a3f33;font-style:italic;line-height:1.65}.review-controls{display:flex;justify-content:center;gap:16px;margin-top:30px}.review-controls button{width:48px;height:48px;border-radius:50%;border:1px solid var(--gold);background:transparent;color:var(--gold);font-size:34px;line-height:1;cursor:pointer}.review-controls button:hover{background:var(--gold);color:white}.gallery-grid{margin-top:54px;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:16px}.gallery-grid button{border:0;padding:0;overflow:hidden;border-radius:20px;background:#ddd;cursor:pointer}.gallery-grid .tall{grid-row:span 2}.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.gallery-grid button:hover img{transform:scale(1.08)}.about-copy{text-align:center}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:44px;text-align:center}.stats b{display:block;font-family:'Playfair Display',serif;font-size:38px;color:var(--olive-dark)}.stats span{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:#8a7a68}.form-container{width:min(100% - 40px,760px)}.booking-form{margin-top:48px;background:white;border:1px solid var(--line);border-radius:28px;padding:36px;display:grid;grid-template-columns:1fr 1fr;gap:18px;box-shadow:0 18px 52px rgba(42,31,23,.12)}.booking-form label{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#8a7a68;font-weight:700}.booking-form .full{grid-column:1/-1}.booking-form input,.booking-form select,.booking-form textarea{width:100%;margin-top:8px;border:1px solid var(--line);background:white;border-radius:14px;padding:14px 15px;color:var(--ink);font:inherit;text-transform:none;letter-spacing:0}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{outline:2px solid rgba(122,140,92,.22);border-color:var(--olive)}.primary-submit{border:0;background:var(--olive);color:white;border-radius:999px;padding:16px;font-weight:800;font-size:16px;cursor:pointer}.form-note{text-align:center;margin:0;color:#8a7a68;font-size:12px;text-transform:none;letter-spacing:0}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:54px}.contact-cards{display:grid;gap:16px}.contact-cards>a,.contact-cards>div:not(.social-row){background:white;border:1px solid var(--line);border-radius:18px;padding:18px;display:grid;grid-template-columns:48px 1fr;column-gap:14px;align-items:center}.contact-cards b{grid-row:span 2;width:44px;height:44px;border-radius:14px;background:rgba(122,140,92,.12);display:grid;place-items:center;color:var(--olive-dark)}.contact-cards span{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:#8a7a68}.contact-cards strong{font-weight:700;word-break:break-word}.social-row{display:flex;gap:10px;flex-wrap:wrap}.social-row a{background:white;border:1px solid var(--line);border-radius:999px;padding:10px 14px;color:var(--olive-dark);font-weight:700}.contact-grid iframe{width:100%;min-height:450px;border:0;border-radius:20px;box-shadow:0 18px 52px rgba(42,31,23,.12)}.footer{background:var(--dark);color:#e8dfd0}.footer-grid{padding:64px 0;display:grid;grid-template-columns:2fr 1fr 1.4fr 1.2fr;gap:44px}.footer img{height:96px;width:auto;background:var(--bg);border-radius:50%;padding:4px}.footer p,.footer a{color:#bdb0a0;line-height:1.7}.footer h3{font-size:13px;text-transform:uppercase;letter-spacing:.2em;color:var(--gold)}.footer-grid>div:nth-child(2) a{display:block;margin:10px 0}.footer-rating{background:#2e251c;border-radius:16px;padding:18px;color:var(--gold);display:inline-grid;gap:5px}.footer-rating b{color:white}.footer-rating span{color:#a89378;font-size:12px}.copyright{border-top:1px solid #2e251c;text-align:center;color:#8a7866;font-size:12px;padding:20px}.lightbox{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.86);display:none;place-items:center;padding:20px}.lightbox.open{display:grid}.lightbox img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:16px}.lightbox button{position:absolute;top:22px;right:22px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:white;font-size:32px;cursor:pointer}.floating{position:fixed;right:20px;bottom:20px;z-index:18;display:grid;gap:10px}.floating a{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--olive);color:white;font-size:23px;box-shadow:0 12px 28px rgba(42,31,23,.22)}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:translateY(0)}@media (max-width:1020px){.desktop-nav{display:none}.menu-btn{display:block}.mobile-nav.open{display:block}.phone-pill{display:none}.split,.contact-grid{grid-template-columns:1fr}.service-grid,.promise-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:190px}.review-card{flex-basis:calc(50% - 24px)}.footer-grid{grid-template-columns:1fr 1fr}}@media (max-width:640px){.container,.narrow,.form-container{width:min(100% - 28px,1180px)}.nav-shell{height:74px}.brand img{height:58px}.book-pill{display:none}.hero{min-height:88vh}.hero-content{padding-top:86px}.script{font-size:30px}.hero p{font-size:15px}.hero-buttons{align-items:stretch}.hero-buttons a{width:100%;text-align:center}.hero-badges{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:38px}.hero-badges div{border-radius:16px;padding:14px 6px}.hero-badges strong{font-size:11px}.section{padding:64px 0}.split{gap:34px}.years{display:none}.service-grid,.promise-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:36px}.service-card{border-radius:16px}.service-card div{padding:14px}.service-card h3,.promise h3{font-size:17px}.service-card p,.promise p{font-size:12px}.promise{padding:16px;text-align:center}.promise b{margin:0 auto 12px}.rating-band h2{font-size:52px}.review-card{flex-basis:calc(100% - 24px)}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px;gap:12px}.booking-form{grid-template-columns:1fr;padding:22px;border-radius:22px}.booking-form label{grid-column:1/-1}.contact-grid iframe{min-height:330px}.stats{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr;padding:48px 0}.floating{right:14px;bottom:14px}.floating a{width:48px;height:48px}}
