:root{
  --ink:#201711;
  --ink-2:#2b2019;
  --wine:#7c1d2d;
  --wine-2:#9a2c3f;
  --sand:#eadcc9;
  --sand-2:#f3e9dc;
  --ivory:#fbf7f1;
  --paper:#fffdf9;
  --gold:#c99a56;
  --text:#2b241f;
  --muted:#71675f;
  --line:rgba(48,37,29,.14);
  --shadow:0 18px 50px rgba(42,31,24,.12);
  --radius:24px;
  --sticky-h:72px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--text);font-family:'DM Sans',sans-serif;line-height:1.55;padding-bottom:var(--sticky-h)}
body.no-scroll{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
.container{width:min(1180px,calc(100% - 36px));margin-inline:auto}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:14px;top:14px;z-index:9999;background:#fff;color:#000;padding:10px 14px;transform:translateY(-200%);transition:.2s}
.skip-link:focus{transform:none}

.topbar{height:36px;background:var(--ink);color:#fff;font-size:12px;position:relative;z-index:80}
.topbar__inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px}
.topbar__dot{margin:0 8px;color:var(--gold)}
.topbar__call{display:inline-flex;align-items:center;gap:8px;color:#fff;font-weight:700;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.08);transition:.25s ease}
.topbar__call:hover{background:var(--wine);transform:translateY(-1px)}
.phone-icon{display:inline-block;transform-origin:50% 50%}
.call-ring:hover .phone-icon,.call-ring:focus-visible .phone-icon{animation:ring .65s ease-in-out}
@keyframes ring{0%,100%{transform:rotate(0)}20%{transform:rotate(18deg)}40%{transform:rotate(-16deg)}60%{transform:rotate(12deg)}80%{transform:rotate(-8deg)}}

.site-header{height:74px;background:rgba(255,253,249,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:70;backdrop-filter:blur(14px)}
.header__inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:26px}
.brand img{height:50px;width:auto}
.site-nav{display:flex;align-items:center;gap:24px;font-size:13px;font-weight:700}
.site-nav>a:not(.button){position:relative;padding:8px 0}
.site-nav>a:not(.button)::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:2px;background:var(--wine);transition:.25s ease}
.site-nav>a:not(.button):hover::after{right:0}
.menu-toggle{display:none;border:0;background:none;width:42px;height:42px;padding:9px;cursor:pointer}
.menu-toggle span{display:block;height:2px;background:var(--ink);margin:5px 0}

.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 19px;border:1px solid var(--wine);background:var(--wine);color:#fff;font-weight:800;font-size:12px;letter-spacing:.045em;text-transform:uppercase;border-radius:3px;transition:transform .22s ease,box-shadow .22s ease,background .22s ease,border-color .22s ease;cursor:pointer}
.button:hover{transform:translateY(-2px);background:var(--wine-2);box-shadow:0 12px 28px rgba(124,29,45,.22)}
.button--nav{min-height:40px;padding:0 16px}
.button--call{background:var(--ink);border-color:var(--ink);color:#fff}
.button--call:hover{background:#000;border-color:#000;box-shadow:0 12px 28px rgba(0,0,0,.18)}
.button--ghost-dark{background:transparent;color:var(--ink);border-color:rgba(32,23,17,.38)}
.button--ghost-dark:hover{background:var(--ink);color:#fff}
.button--light{background:#fff;color:var(--ink);border-color:#fff}
.button--light:hover{background:var(--sand-2);border-color:var(--sand-2)}
.text-link{font-weight:800;font-size:13px;border-bottom:1px solid currentColor;padding-bottom:3px}
.eyebrow{margin:0 0 12px;font-size:11px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:var(--wine)}
.section{padding:90px 0}
.section--ivory{background:var(--ivory)}
.section--sand{background:var(--sand-2)}
.section--ink{background:var(--ink);color:#fff}
.section-heading{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.7fr);gap:56px;align-items:end;margin-bottom:40px}
.section-heading h2{margin:0;font-family:'Playfair Display',serif;font-size:clamp(2.1rem,4vw,4rem);line-height:1.02;max-width:760px}
.section-heading>p{margin:0;color:var(--muted);font-size:15px;max-width:520px}
.section-heading--light>p{color:rgba(255,255,255,.7)}
.section-heading--light .eyebrow{color:#d8b78a}

.hero{background:linear-gradient(135deg,#fbf5ec 0%,#f4e6d4 100%);height:clamp(540px,calc(100svh - 110px),720px);overflow:hidden;position:relative}
.hero::before{content:"";position:absolute;inset:auto auto -180px -150px;width:420px;height:420px;background:radial-gradient(circle,rgba(124,29,45,.08),transparent 68%);border-radius:50%}
.hero__grid{height:100%;display:grid;grid-template-columns:minmax(0,.93fr) minmax(520px,1.07fr);gap:46px;align-items:center}
.hero__copy{position:relative;z-index:2;padding:26px 0}
.hero__copy h1{font-family:'Playfair Display',serif;font-size:clamp(2.65rem,4.8vw,5rem);line-height:.98;letter-spacing:-.03em;margin:0 0 18px;max-width:700px}
.hero__copy h1 em{color:var(--wine);font-weight:600}
.hero__lead{font-size:17px;line-height:1.55;max-width:640px;margin:0;color:#534941}
.hero__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.google-rating-pill{margin-top:18px;display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(60,48,40,.14);background:rgba(255,255,255,.74);box-shadow:0 8px 28px rgba(59,42,31,.09);padding:9px 13px;border-radius:999px;font-size:13px;transition:.2s ease}
.google-rating-pill:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(59,42,31,.14)}
.google-rating-pill strong{font-size:16px}
.google-g{font-weight:900;font-family:Arial,sans-serif;color:#4285f4;font-size:20px;line-height:1}
.rating-stars,.mini-stars,.review-stars,.rating-card__stars{color:#f6aa00;letter-spacing:1px}
.pill-arrow{font-weight:800}
.hero__microtrust{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}
.hero__microtrust span{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;padding:6px 9px;border:1px solid rgba(65,50,40,.14);background:rgba(255,255,255,.5)}

.hero-collage{height:min(610px,calc(100% - 38px));display:grid;grid-template-columns:1.3fr .85fr;grid-template-rows:1fr 1fr 1fr;gap:10px;position:relative}
.hero-tile{position:relative;margin:0;overflow:hidden;border-radius:18px;background:#ddd;box-shadow:0 12px 30px rgba(48,32,22,.12)}
.hero-tile--large{grid-row:1 / span 3}
.hero-tile img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .4s ease}
.hero-tile:hover img{transform:scale(1.045);filter:saturate(1.06)}
.hero-tile figcaption{position:absolute;left:10px;bottom:10px;background:rgba(20,15,12,.74);color:#fff;padding:6px 9px;border-radius:999px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;backdrop-filter:blur(7px)}

.review-strip{overflow:hidden;background:var(--ink);color:#fff;border-top:1px solid rgba(255,255,255,.05)}
.review-strip__track{display:flex;width:max-content;animation:reviewsTicker 34s linear infinite}
.review-strip:hover .review-strip__track{animation-play-state:paused}
.mini-review{width:340px;min-height:78px;padding:16px 24px;border-right:1px solid rgba(255,255,255,.11);display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center}
.mini-review .mini-stars{grid-row:1/3;font-size:14px}
.mini-review p{margin:0;font-family:'Playfair Display',serif;font-size:15px;line-height:1.2}
.mini-review>span:last-child{font-size:10px;color:rgba(255,255,255,.58);margin-top:4px}
@keyframes reviewsTicker{to{transform:translateX(-50%)}}

.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.service-card{position:relative;min-height:390px;overflow:hidden;border-radius:18px;background:#222;box-shadow:0 12px 34px rgba(46,31,22,.11);isolation:isolate}
.service-card--feature{min-height:455px}
.service-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease,filter .4s ease}
.service-card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,12,10,.06) 28%,rgba(15,12,10,.88) 100%);z-index:1}
.service-card:hover img{transform:scale(1.06);filter:saturate(1.08)}
.service-card__content{position:absolute;left:0;right:0;bottom:0;padding:24px;z-index:2;color:#fff}
.service-card__content>p{margin:0 0 5px;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#f3c98f}
.service-card__content h3{font-family:'Playfair Display',serif;font-size:28px;line-height:1.02;margin:0 0 9px}
.service-card__content span{display:block;color:rgba(255,255,255,.77);font-size:13px;line-height:1.45;max-width:90%}
.service-card__content a{display:inline-flex;gap:6px;align-items:center;margin-top:15px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:3px}
.service-card__content a b{transition:.2s}
.service-card:hover a b{transform:translateX(4px)}

.extensions-feature__grid{display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:center}
.extensions-feature__image{height:540px;border-radius:28px;overflow:hidden;box-shadow:var(--shadow)}
.extensions-feature__image img{width:100%;height:100%;object-fit:cover}
.extensions-feature__copy h2{font-family:'Playfair Display',serif;font-size:clamp(2.3rem,4vw,4rem);line-height:1.02;margin:0 0 18px}
.extensions-feature__copy>p:not(.eyebrow){color:var(--muted);font-size:16px}
.feature-points{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}
.feature-points span{border:1px solid rgba(53,41,32,.16);background:rgba(255,255,255,.55);padding:8px 11px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}

.popular-price-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}
.popular-price-row a{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.055);padding:17px 18px;display:flex;justify-content:space-between;gap:16px;align-items:center;transition:.2s}
.popular-price-row a:hover{background:rgba(255,255,255,.1);transform:translateY(-2px)}
.popular-price-row span{font-size:12px;color:rgba(255,255,255,.72)}
.popular-price-row strong{color:#efc18a;font-size:17px;white-space:nowrap}
.price-menu{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.price-group{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.035)}
.price-group summary{list-style:none;cursor:pointer;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-family:'Playfair Display',serif;font-size:19px;font-weight:700;position:relative}
.price-group summary::-webkit-details-marker{display:none}
.price-group summary::after{content:"+";font-family:'DM Sans',sans-serif;font-size:20px;color:#ddb780;margin-left:auto}
.price-group[open] summary::after{content:"−"}
.price-group summary small{font-family:'DM Sans',sans-serif;color:rgba(255,255,255,.5);font-size:10px;text-transform:uppercase;letter-spacing:.09em;margin-left:auto}
.price-group[open] summary{border-bottom:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.045)}
.price-list{list-style:none;padding:8px 20px 17px;margin:0}
.price-list li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:1px solid rgba(255,255,255,.09);padding:9px 0;font-size:12px}
.price-list li:last-child{border-bottom:0}
.price-list strong{color:#efc18a;white-space:nowrap}
.price-note{padding:18px 20px 20px;color:rgba(255,255,255,.72);font-size:13px}
.price-note p{margin:0 0 10px}
.price-note a{color:#efc18a;font-weight:800}
.price-cta{margin-top:18px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:24px}
.price-cta div{display:flex;flex-direction:column;gap:3px}
.price-cta strong{font-family:'Playfair Display',serif;font-size:22px}
.price-cta span{color:rgba(255,255,255,.62);font-size:12px}

.gallery-section{background:#fff}
.gallery-filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:-14px;margin-bottom:26px}
.gallery-filter{border:1px solid var(--line);background:#fff;padding:9px 13px;border-radius:999px;cursor:pointer;font-size:11px;font-weight:800;transition:.2s}
.gallery-filter:hover,.gallery-filter.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}
.gallery-wall{width:min(1450px,calc(100% - 26px));margin:0 auto;display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:180px;gap:8px}
.gallery-photo{border:0;padding:0;margin:0;position:relative;overflow:hidden;cursor:zoom-in;background:#ddd;grid-column:span 2;border-radius:10px}
.gallery-photo--wide{grid-column:span 3}
.gallery-photo--tall{grid-row:span 2}
.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:.45s ease}
.gallery-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(0,0,0,.62));opacity:.72;transition:.3s}
.gallery-photo span{position:absolute;left:14px;bottom:12px;z-index:2;color:#fff;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;opacity:.88}
.gallery-photo:hover img{transform:scale(1.045)}
.gallery-photo:hover::after{opacity:1}
.gallery-photo.is-hidden{display:none}
.gallery-actions{display:flex;gap:20px;align-items:center;justify-content:center;margin-top:30px}

.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.video-tile{background:var(--paper);border:1px solid rgba(60,45,35,.11);box-shadow:0 12px 30px rgba(48,34,23,.08);overflow:hidden;border-radius:18px}
.video-tile video,.editorial-video{width:100%;aspect-ratio:4/5;background:#111;display:block;object-fit:cover}
.video-tile>div:last-child{padding:18px}
.video-tile>div:last-child p{margin:0 0 4px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--wine);font-weight:800}
.video-tile h3{font-family:'Playfair Display',serif;font-size:24px;margin:0 0 6px}
.video-tile span{font-size:12px;color:var(--muted)}
.editorial-video{position:relative;overflow:hidden}
.editorial-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none;background:#000}
.editorial-video::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#16110e,#4d3027);z-index:0}
.editorial-video__play{position:absolute;inset:0;z-index:2;border:0;background:rgba(20,14,11,.26);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;cursor:pointer;padding:30px;text-align:center;transition:.25s}
.editorial-video__play:hover{background:rgba(20,14,11,.42)}
.editorial-video__play span{display:grid;place-items:center;width:68px;height:68px;background:rgba(255,255,255,.93);color:var(--wine);border-radius:50%;font-size:23px;padding-left:4px;box-shadow:0 12px 30px rgba(0,0,0,.2)}
.editorial-video__play b{font-size:12px;text-transform:uppercase;letter-spacing:.08em;max-width:240px}
.editorial-video.is-playing .editorial-video__play{inset:auto 12px 12px auto;width:48px;height:48px;border-radius:50%;padding:0;background:rgba(0,0,0,.55)}
.editorial-video.is-playing .editorial-video__play span{width:32px;height:32px;font-size:12px}
.editorial-video.is-playing .editorial-video__play b{display:none}

.reviews{background:#f8f9fb;overflow:hidden}
.reviews__header{display:grid;grid-template-columns:1fr 270px;gap:60px;align-items:center;margin-bottom:30px}
.google-label{display:inline-flex;align-items:center;gap:8px;border:1px solid #dfe4ea;background:#fff;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:800;margin-bottom:12px}
.reviews__header h2{font-family:'Playfair Display',serif;font-size:clamp(2.4rem,4vw,4rem);line-height:1.02;margin:0 0 14px;max-width:760px}
.reviews__header p{margin:0;color:var(--muted);max-width:760px}
.rating-card{display:grid;grid-template-columns:auto auto 1fr;align-items:center;column-gap:10px;row-gap:2px;border:1px solid #dce1e7;background:#fff;border-radius:20px;padding:18px 20px;box-shadow:0 14px 34px rgba(46,52,63,.08);transition:.2s}
.rating-card:hover{transform:translateY(-3px)}
.rating-card .google-g{grid-row:1/3;font-size:34px}
.rating-card strong{font-size:36px;line-height:1}
.rating-card__stars{font-size:18px}
.rating-card small{grid-column:2/4;color:#697586}
.rating-card b{grid-column:2/4;font-size:11px;margin-top:7px;color:#3158a3}
.reviews-marquee{overflow:hidden;margin-inline:-8px}
.reviews-marquee__track{display:flex;width:max-content;gap:14px;padding:8px;animation:reviewCards 40s linear infinite}
.reviews-marquee:hover .reviews-marquee__track{animation-play-state:paused}
@keyframes reviewCards{to{transform:translateX(-50%)}}
.google-review-card{width:360px;min-height:220px;background:#fff;border:1px solid #e4e8ee;border-top:5px solid #ea4335;border-radius:12px;padding:20px;box-shadow:0 7px 20px rgba(47,57,69,.06)}
.google-review-card.accent-green{border-top-color:#20b15a}.google-review-card.accent-blue{border-top-color:#4285f4}.google-review-card.accent-gold{border-top-color:#fbbc04}
.google-review-card header{display:flex;align-items:center;gap:10px}
.google-review-card header .google-g{margin-left:auto;font-size:18px}
.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#ede7f8;color:#513da5;font-weight:800}
.google-review-card header div{display:flex;flex-direction:column;line-height:1.25}
.google-review-card header strong{font-size:13px}.google-review-card header small{font-size:10px;color:#8993a0;margin-top:4px}
.review-stars{font-size:17px;margin:18px 0 8px}
.google-review-card p{font-family:'Playfair Display',serif;font-size:21px;line-height:1.35;margin:0}
.reviews-actions{display:flex;justify-content:center;gap:10px;margin-top:26px}

.owner__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center}
.owner__photo{position:relative}
.owner__photo::before{content:"";position:absolute;left:-20px;top:-20px;width:80%;height:80%;border:1px solid #cbb69a;z-index:0}
.owner__photo img{position:relative;z-index:1;border-radius:2px;width:100%;aspect-ratio:4/5;object-fit:cover;box-shadow:var(--shadow)}
.owner__badge{position:absolute;z-index:2;left:18px;bottom:18px;background:var(--ink);color:#fff;padding:9px 12px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.owner__copy h2{font-family:'Playfair Display',serif;font-size:clamp(2.5rem,4vw,4.35rem);line-height:.98;margin:0 0 18px}
.owner__copy>p:not(.eyebrow){color:var(--muted)}
.owner-tags{display:flex;flex-wrap:wrap;gap:7px;margin:22px 0}
.owner-tags span{border:1px solid var(--line);background:#fff;padding:7px 9px;font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:800}
.owner-actions{display:flex;gap:10px;flex-wrap:wrap}

.booking{background:var(--ink);color:#fff}
.booking__grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:56px;align-items:start}
.booking__copy{position:sticky;top:112px}
.booking__copy .eyebrow{color:#e6bf8c}
.booking__copy h2{font-family:'Playfair Display',serif;font-size:clamp(2.8rem,4.5vw,4.9rem);line-height:.98;margin:0 0 16px;max-width:520px}
.booking__copy>p{color:rgba(255,255,255,.68);max-width:520px}
.booking-benefits{list-style:none;padding:0;margin:28px 0;display:grid;gap:14px}
.booking-benefits li{display:flex;gap:12px;align-items:flex-start}
.booking-benefits li>span{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.22);border-radius:50%;font-size:10px;color:#e6bf8c;flex:none}
.booking-benefits div{display:flex;flex-direction:column}.booking-benefits strong{font-size:13px}.booking-benefits small{color:rgba(255,255,255,.5);margin-top:2px}
.booking-call-card{display:inline-flex;align-items:center;gap:12px;background:#fff;color:var(--ink);padding:13px 16px;border-radius:4px;transition:.2s}
.booking-call-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.2)}
.booking-call-card .phone-icon{font-size:23px;color:var(--wine)}
.booking-call-card div{display:flex;flex-direction:column}.booking-call-card small{font-size:9px;text-transform:uppercase;letter-spacing:.09em;color:#777}.booking-call-card strong{font-family:'Playfair Display',serif;font-size:22px;line-height:1.1}
.appointment-form{background:#fff;color:var(--text);padding:30px;border-radius:18px;box-shadow:0 22px 50px rgba(0,0,0,.2)}
.form-kicker{font-size:10px;color:var(--wine);text-transform:uppercase;letter-spacing:.12em;font-weight:800}
.appointment-form h3{font-family:'Playfair Display',serif;font-size:34px;line-height:1.08;margin:6px 0 6px}
.form-intro{font-size:12px;color:var(--muted);margin:0 0 20px}
.appointment-form label,.appointment-form legend{font-size:11px;font-weight:800;color:#40362f}
.appointment-form label>span,.appointment-form legend>span{font-weight:500;color:#7e746d}
.appointment-form input:not([type=checkbox]),.appointment-form select,.appointment-form textarea{width:100%;border:1px solid #d8d4cf;background:#fff;min-height:46px;padding:10px 12px;outline:none;border-radius:4px;transition:.2s}
.appointment-form textarea{resize:vertical;min-height:105px}
.appointment-form input:focus,.appointment-form select:focus,.appointment-form textarea:focus{border-color:var(--wine);box-shadow:0 0 0 3px rgba(124,29,45,.08)}
.service-select{border:0;padding:0;margin:0 0 18px;display:flex;flex-wrap:wrap;gap:7px}
.service-select legend{width:100%;margin-bottom:4px}
.service-select label{cursor:pointer}
.service-select input{position:absolute;opacity:0;pointer-events:none}
.service-select span{display:block;border:1px solid #dcd8d2;background:#fff;padding:8px 10px;border-radius:999px;font-size:10px;font-weight:700!important;color:#5a5049!important;transition:.2s}
.service-select input:checked+span{background:var(--wine);border-color:var(--wine);color:#fff!important;box-shadow:0 6px 14px rgba(124,29,45,.16)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.appointment-form>label{display:block;margin-bottom:12px}
.form-row label{display:block}
.form-row--appointment{grid-template-columns:.9fr 1.1fr;align-items:end}
.date-control{display:grid;grid-template-columns:1fr 30px;align-items:center;border:1px solid #d8d4cf;border-radius:4px;margin-top:6px;cursor:pointer;background:#fff}
.date-control input{border:0!important;margin:0;cursor:pointer;min-height:44px!important}
.date-control>span{font-size:15px!important;color:#655a52!important;text-align:center;pointer-events:none}
.time-field{border:0;padding:0;margin:0}.time-field legend{margin-bottom:6px}
.time-selects{display:grid;grid-template-columns:1fr auto .9fr 1.1fr;gap:5px;align-items:center}
.time-selects select{padding:10px 8px;min-height:46px}
.earliest-check{display:flex!important;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid #d8d4cf;background:#faf8f5;border-radius:5px;cursor:pointer}
.earliest-check input{margin-top:4px}.earliest-check span{display:flex;flex-direction:column;color:#3b312b!important}.earliest-check small{font-weight:500;color:#80756d;margin-top:2px}
.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-submit{width:100%;margin-top:4px}
.form-note{font-size:10px;color:#867c74;margin:8px 0 0}

.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.faq-grid details{background:#fff;border:1px solid rgba(60,45,35,.12)}
.faq-grid summary{list-style:none;cursor:pointer;padding:15px 18px;font-weight:800;font-size:12px;position:relative;padding-right:48px}
.faq-grid summary::-webkit-details-marker{display:none}.faq-grid summary::after{content:"+";position:absolute;right:18px;font-size:18px;color:var(--wine)}.faq-grid details[open] summary::after{content:"−"}
.faq-grid p{margin:0;padding:0 18px 16px;color:var(--muted);font-size:13px}

.location{background:#fff}
.location__grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:42px;align-items:center}
.location__copy h2{font-family:'Playfair Display',serif;font-size:clamp(2.5rem,4vw,4.4rem);line-height:1;margin:0 0 20px}
.location__copy>p{color:var(--muted)}
.location__address{font-size:16px!important;color:var(--text)!important}
.location__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.map-wrap{height:500px;overflow:hidden;border-radius:24px;box-shadow:var(--shadow);border:1px solid var(--line)}
.map-wrap iframe{width:100%;height:100%;filter:saturate(.8) contrast(.96)}

.site-footer{background:#120d0a;color:#fff;padding:58px 0 calc(30px + var(--sticky-h))}
.footer__grid{display:grid;grid-template-columns:1.4fr .7fr .8fr .9fr;gap:42px}
.footer__brand img{height:58px;filter:brightness(0) invert(1);margin-bottom:14px}.footer__brand p{color:rgba(255,255,255,.56);max-width:360px;font-size:12px}
.site-footer h3{font-family:'Playfair Display',serif;margin:0 0 10px;font-size:18px}.site-footer a,.site-footer p{display:block;color:rgba(255,255,255,.58);font-size:12px;margin:6px 0}.site-footer a:hover{color:#fff}.site-footer strong{font-size:12px}
.footer__bottom{margin-top:40px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:20px;color:rgba(255,255,255,.45);font-size:10px}

.floating-review{position:fixed;right:18px;bottom:calc(var(--sticky-h) + 16px);z-index:89}
.floating-review__pill{border:1px solid #dbe0e6;background:#fff;box-shadow:0 14px 30px rgba(39,47,57,.16);border-radius:999px;padding:9px 13px;display:flex;align-items:center;gap:7px;cursor:pointer;color:#253042}
.floating-review__pill .rating-stars{font-size:12px}.floating-review__pill>span:nth-of-type(3){font-size:11px}.floating-review__pill b{margin-left:3px;border-left:1px solid #dfe4ea;padding-left:8px;font-size:11px}
.floating-review__card{position:absolute;right:0;bottom:54px;width:320px;background:#fff;border:1px solid #dfe4ea;border-radius:18px;box-shadow:0 18px 50px rgba(27,35,45,.22);padding:18px;color:#253042}
.floating-review__head{display:flex;align-items:center;gap:10px}.floating-review__head div{display:flex;flex-direction:column}.floating-review__head small{color:#8d98a5}.floating-review__head button{margin-left:auto;border:0;background:none;font-size:24px;cursor:pointer;color:#73808e}.floating-review__card .review-stars{margin:13px 0 8px}.floating-review__card p{font-family:'Playfair Display',serif;font-size:19px;line-height:1.35;margin:0 0 12px}.floating-review__card a{font-size:11px;color:#3158a3;font-weight:800}

.sticky-booking{position:fixed;left:0;right:0;bottom:0;height:var(--sticky-h);z-index:88;background:rgba(20,13,9,.96);backdrop-filter:blur(12px);border-top:1px solid rgba(255,255,255,.12);color:#fff}
.sticky-booking__inner{height:100%;width:min(1060px,calc(100% - 28px));margin:auto;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px}
.sticky-booking__label{font-family:'Playfair Display',serif;font-size:20px;color:rgba(255,255,255,.85)}
.sticky-call{height:48px;display:flex;align-items:center;gap:10px;padding:0 16px;border:1px solid rgba(255,255,255,.25);transition:.22s}.sticky-call:hover{background:#fff;color:var(--ink)}.sticky-call .phone-icon{font-size:19px;color:#e9bd7f}.sticky-call span:last-child{display:flex;flex-direction:column;line-height:1.05}.sticky-call small{font-size:8px;text-transform:uppercase;letter-spacing:.08em;opacity:.68}.sticky-call strong{font-size:13px;margin-top:3px}
.sticky-book{height:48px;min-width:210px;background:var(--wine);display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-size:11px;text-transform:uppercase;font-weight:900;letter-spacing:.07em;position:relative;overflow:hidden}.sticky-book::before{content:"";position:absolute;top:0;bottom:0;width:50px;left:-70px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);transform:skewX(-20deg);animation:shine 4.4s infinite}.sticky-book:hover{background:var(--wine-2)}
@keyframes shine{0%,72%{left:-70px}100%{left:120%}}

.early-modal{position:fixed;inset:0;z-index:120;display:none;place-items:center;padding:22px}.early-modal.is-open{display:grid}.early-modal__backdrop{position:absolute;inset:0;background:rgba(10,7,5,.7);backdrop-filter:blur(6px)}
.early-modal__dialog{position:relative;z-index:1;width:min(860px,100%);background:#fff;display:grid;grid-template-columns:.92fr 1.08fr;box-shadow:0 30px 90px rgba(0,0,0,.34);border-radius:20px;overflow:hidden;animation:modalIn .28s ease}
@keyframes modalIn{from{transform:translateY(18px) scale(.98);opacity:0}to{transform:none;opacity:1}}
.early-modal__image img{width:100%;height:100%;object-fit:cover;min-height:480px}.early-modal__content{padding:48px 42px;display:flex;flex-direction:column;justify-content:center}.early-modal__content h2{font-family:'Playfair Display',serif;font-size:40px;line-height:1.02;margin:0 0 14px}.early-modal__content>p:not(.eyebrow){color:var(--muted)}.early-modal__close{position:absolute;right:14px;top:10px;border:0;background:rgba(255,255,255,.8);width:40px;height:40px;border-radius:50%;font-size:28px;cursor:pointer;z-index:3}.text-button{border:0;background:none;margin-top:10px;font-size:11px;font-weight:800;color:#6f655e;cursor:pointer;text-decoration:underline}

.lightbox{position:fixed;inset:0;z-index:130;background:rgba(10,8,7,.94);display:none;place-items:center;padding:30px}.lightbox.is-open{display:grid}.lightbox figure{margin:0;max-width:min(900px,80vw);max-height:84vh;display:flex;flex-direction:column;align-items:center}.lightbox img{max-height:78vh;max-width:100%;object-fit:contain;box-shadow:0 22px 70px rgba(0,0,0,.45)}.lightbox figcaption{color:#fff;margin-top:10px;font-size:12px}.lightbox button{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;width:48px;height:48px;border-radius:50%;font-size:32px;cursor:pointer}.lightbox__close{right:20px;top:20px}.lightbox__prev{left:20px;top:50%;transform:translateY(-50%)}.lightbox__next{right:20px;top:50%;transform:translateY(-50%)}
.toast{position:fixed;left:50%;bottom:calc(var(--sticky-h) + 18px);transform:translate(-50%,20px);z-index:140;background:#fff;color:var(--ink);padding:12px 16px;border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.22);opacity:0;pointer-events:none;transition:.25s;max-width:min(520px,calc(100% - 30px));font-size:12px}.toast.is-visible{opacity:1;transform:translate(-50%,0)}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal--delay{transition-delay:.12s}.reveal.is-visible{opacity:1;transform:none}

@media(max-width:1050px){
  .site-nav{gap:15px;font-size:12px}.hero__grid{grid-template-columns:1fr 1fr;gap:28px}.hero__copy h1{font-size:clamp(2.6rem,5vw,4.5rem)}.hero-collage{height:min(540px,calc(100% - 28px))}.service-grid{grid-template-columns:repeat(2,1fr)}.popular-price-row{grid-template-columns:repeat(2,1fr)}.gallery-wall{grid-template-columns:repeat(4,1fr)}.gallery-photo{grid-column:span 2}.gallery-photo--wide{grid-column:span 2}.video-grid{grid-template-columns:1fr 1fr}.video-tile--editorial{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.video-tile--editorial .editorial-video{aspect-ratio:16/9}.video-tile--editorial>div:last-child{display:flex;flex-direction:column;justify-content:center;padding:34px}.footer__grid{grid-template-columns:1.3fr 1fr 1fr}.footer__grid>div:last-child{grid-column:2/4}.sticky-booking__label{display:none}.sticky-booking__inner{grid-template-columns:1fr 1fr;max-width:720px}.sticky-call,.sticky-book{width:100%}
}

@media(max-width:820px){
  :root{--sticky-h:68px}.container{width:min(100% - 28px,1180px)}.topbar{height:34px}.topbar__inner>span{font-size:10px}.topbar__dot{margin:0 5px}.topbar__call{font-size:10px;padding:4px 8px}.site-header{height:68px}.brand img{height:46px}.menu-toggle{display:block}.site-nav{position:fixed;inset:102px 0 auto 0;background:var(--paper);padding:18px 22px 24px;display:none;flex-direction:column;align-items:stretch;gap:4px;border-bottom:1px solid var(--line);box-shadow:0 20px 30px rgba(0,0,0,.08)}.site-nav.is-open{display:flex}.site-nav a{padding:11px 2px!important}.site-nav .button{margin-top:8px}.hero{height:auto;min-height:0}.hero__grid{grid-template-columns:1fr;gap:24px;padding:34px 0 24px}.hero__copy{padding:0}.hero__copy h1{font-size:clamp(2.55rem,10vw,4.4rem);max-width:680px}.hero__lead{font-size:15px}.hero-collage{height:420px;grid-template-columns:1.2fr .8fr;grid-template-rows:1fr 1fr 1fr}.hero__microtrust{margin-bottom:4px}.section{padding:70px 0}.section-heading{grid-template-columns:1fr;gap:14px;margin-bottom:30px}.section-heading h2{font-size:clamp(2.2rem,8vw,3.6rem)}.service-grid{grid-template-columns:1fr 1fr}.service-card,.service-card--feature{min-height:360px}.extensions-feature__grid{grid-template-columns:1fr;gap:28px}.extensions-feature__image{height:430px}.price-menu{grid-template-columns:1fr}.gallery-wall{grid-template-columns:repeat(2,1fr);grid-auto-rows:230px;width:calc(100% - 18px)}.gallery-photo,.gallery-photo--wide{grid-column:span 1}.gallery-photo--tall{grid-row:span 1}.video-grid{grid-template-columns:1fr}.video-tile--editorial{grid-column:auto;display:block}.video-tile--editorial .editorial-video{aspect-ratio:4/5}.reviews__header{grid-template-columns:1fr;gap:20px}.rating-card{max-width:350px}.owner__grid{grid-template-columns:1fr;gap:44px}.owner__photo{max-width:550px}.booking__grid{grid-template-columns:1fr}.booking__copy{position:static}.faq-grid{grid-template-columns:1fr}.location__grid{grid-template-columns:1fr}.map-wrap{height:420px}.footer__grid{grid-template-columns:1fr 1fr}.footer__grid>div:first-child,.footer__grid>div:last-child{grid-column:1/-1}.floating-review{right:10px}.early-modal__dialog{grid-template-columns:1fr;max-height:88vh;overflow:auto}.early-modal__image{display:none}.early-modal__content{padding:40px 28px}.early-modal__content h2{font-size:34px}
}

@media(max-width:600px){
  body{padding-bottom:68px}.topbar__inner>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar__call{background:var(--wine)}.hero__grid{padding-top:26px}.hero__copy h1{font-size:clamp(2.35rem,11vw,3.4rem);line-height:1}.hero__lead{font-size:14px}.hero__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hero__actions .button{padding:0 10px;font-size:10px}.google-rating-pill{width:100%;justify-content:center;font-size:11px}.google-rating-pill .rating-stars{font-size:11px}.hero__microtrust{gap:5px}.hero__microtrust span{font-size:8px}.hero-collage{height:360px;gap:6px}.hero-tile{border-radius:10px}.hero-tile figcaption{font-size:8px;padding:5px 7px}.review-strip{display:none}.service-grid{grid-template-columns:1fr;gap:12px}.service-card,.service-card--feature{min-height:390px}.popular-price-row{grid-template-columns:1fr 1fr}.popular-price-row a{padding:14px;flex-direction:column;align-items:flex-start;gap:4px}.price-cta{align-items:flex-start;flex-direction:column}.gallery-filters{overflow:auto;flex-wrap:nowrap;padding-bottom:4px}.gallery-filter{white-space:nowrap}.gallery-wall{grid-auto-rows:180px;gap:5px}.gallery-photo span{font-size:8px}.gallery-actions{flex-direction:column}.video-tile video,.editorial-video{aspect-ratio:4/5}.reviews__header h2{font-size:2.5rem}.google-review-card{width:300px;min-height:200px}.google-review-card p{font-size:18px}.owner__copy h2{font-size:2.7rem}.booking__copy h2{font-size:3.2rem}.appointment-form{padding:22px 16px}.appointment-form h3{font-size:28px}.service-select{gap:5px}.service-select span{padding:7px 9px;font-size:9px}.form-row,.form-row--appointment{grid-template-columns:1fr}.time-selects{grid-template-columns:1fr auto 1fr 1fr}.map-wrap{height:350px}.footer__grid{grid-template-columns:1fr}.footer__grid>div{grid-column:auto!important}.footer__bottom{flex-direction:column}.floating-review__pill{padding:8px 9px}.floating-review__pill>span:nth-of-type(3),.floating-review__pill b{display:none}.floating-review__card{width:min(310px,calc(100vw - 20px))}.sticky-booking{height:68px}.sticky-booking__inner{width:100%;max-width:none;gap:0;grid-template-columns:1fr 1fr}.sticky-call,.sticky-book{height:68px;border-radius:0;border-top:0;border-bottom:0;justify-content:center}.sticky-call{border-left:0}.sticky-book{min-width:0}.sticky-call small{font-size:7px}.sticky-call strong{font-size:12px}.sticky-book{font-size:10px;padding:0 12px}.lightbox{padding:14px}.lightbox figure{max-width:92vw}.lightbox button{width:40px;height:40px}.lightbox__prev{left:8px}.lightbox__next{right:8px}.lightbox__close{right:8px;top:8px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

/* --- v4 refinements for hero, reviews, popup and gallery --- */
.hero {
  padding: 0.8rem 0 0;
  min-height: auto;
}

.hero__grid {
  height: auto;
  align-items: start;
  gap: clamp(1rem, 2vw, 2rem);
}

.hero__copy {
  padding-top: 0;
}

.hero__title {
  margin-bottom: 0.85rem;
}

.hero__lead {
  margin-bottom: 1rem;
}

.hero__claims {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin: 0 0 1rem;
}

.hero__claims span {
  display: inline-flex;
  align-items: center;
  padding: 0.68rem 1rem;
  border-radius: 999px;
  background: rgba(146, 30, 59, 0.08);
  border: 1px solid rgba(146, 30, 59, 0.15);
  color: var(--ink);
  font-size: 0.88rem;
  line-height: 1.2;
  font-weight: 600;
}

.hero__actions {
  margin-bottom: 0.95rem;
}

.topbar__call,
.button--call,
.booking-call-card {
  box-shadow: 0 10px 26px rgba(146, 30, 59, 0.16);
}

.call-ring {
  animation: callPulse 2.6s ease-in-out infinite;
}

@keyframes callPulse {
  0%, 100% { transform: translateY(0); box-shadow: 0 10px 26px rgba(146, 30, 59, 0.16); }
  50% { transform: translateY(-1px); box-shadow: 0 14px 32px rgba(146, 30, 59, 0.24); }
}

.review-strip--hero {
  margin-top: 0.1rem;
  margin-bottom: 0.95rem;
  border-radius: 22px;
  background: #24150f;
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 18px 40px rgba(36, 21, 15, 0.18);
}

.review-strip--hero .review-strip__track {
  padding: 0.7rem 0;
}

.mini-review {
  min-width: 315px;
  max-width: 350px;
  padding: 0.2rem 1.1rem;
  border-right: 1px solid rgba(255,255,255,0.12);
}

.mini-stars {
  display: inline-block;
  color: #f4b740;
  letter-spacing: 0.12em;
  margin-bottom: 0.3rem;
}

.mini-review p {
  margin: 0;
  color: #fff;
  font-weight: 700;
  font-size: 1.05rem;
  line-height: 1.25;
}

.mini-review span:last-child {
  display: block;
  color: rgba(255,255,255,0.72);
  font-size: 0.82rem;
  margin-top: 0.45rem;
}

.google-rating-pill {
  margin-top: 0;
}

.hero__microtrust {
  margin-top: 0.95rem;
}

.reviews {
  background: linear-gradient(180deg, #fff 0%, #fbf8f2 100%);
}

.reviews__header {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) auto;
  gap: 1.4rem;
  align-items: end;
  margin-bottom: 1.5rem;
}

.google-label {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 0.9rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(15, 22, 31, 0.08);
  box-shadow: 0 12px 25px rgba(15, 22, 31, 0.05);
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.rating-card {
  display: grid;
  justify-items: center;
  gap: 0.45rem;
  min-width: 220px;
  padding: 1.2rem 1.25rem;
  border-radius: 24px;
  background: #fff;
  border: 1px solid rgba(15, 22, 31, 0.08);
  box-shadow: 0 20px 45px rgba(15, 22, 31, 0.08);
  color: var(--ink);
  text-decoration: none;
}

.rating-card strong {
  font-size: 2.4rem;
  line-height: 1;
}

.rating-card__stars,
.review-stars {
  color: #f4b740;
  letter-spacing: 0.12em;
}

.rating-card small,
.rating-card b {
  color: var(--muted);
}

.rating-card b {
  color: var(--ink);
}

.reviews-marquee {
  overflow: hidden;
}

.reviews-marquee__track {
  display: flex;
  gap: 1rem;
  width: max-content;
  animation: reviewsMarquee 34s linear infinite;
}

.google-review-card {
  width: 340px;
  background: #fff;
  border-radius: 24px;
  padding: 1.2rem;
  border: 1px solid rgba(15,22,31,0.08);
  box-shadow: 0 18px 38px rgba(15,22,31,0.06);
  position: relative;
}

.google-review-card::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 5px;
  border-radius: 24px 24px 0 0;
  background: #d9d9d9;
}

.google-review-card.accent-red::before { background: #ef6a61; }
.google-review-card.accent-green::before { background: #3abf75; }
.google-review-card.accent-blue::before { background: #5b7ce6; }
.google-review-card.accent-gold::before { background: #e0ac43; }

.google-review-card header {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 0.85rem;
}

.google-review-card header div {
  flex: 1;
}

.google-review-card strong,
.google-review-card small {
  display: block;
}

.google-review-card strong { font-size: 1rem; }
.google-review-card small { color: var(--muted); font-size: 0.83rem; }
.google-review-card p { margin: 0.75rem 0 0; color: var(--muted); }

.avatar {
  display: inline-grid;
  place-items: center;
  width: 48px;
  aspect-ratio: 1;
  border-radius: 50%;
  font-weight: 700;
  color: #fff;
  background: #5b7ce6;
}

.reviews-actions {
  display: flex;
  gap: 0.8rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}

.button--ghost-dark {
  background: transparent;
  color: var(--ink);
  border: 1px solid rgba(15,22,31,0.16);
}

.button--ghost-dark:hover,
.button--ghost-dark:focus-visible {
  background: rgba(15,22,31,0.04);
}

@keyframes reviewsMarquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.gallery-photo img {
  object-position: var(--focus, center center);
}

.gallery-photo--portrait {
  background: linear-gradient(180deg, #f8f4ec 0%, #ede7dd 100%);
}

.gallery-photo--portrait img {
  object-fit: contain;
  padding: 0.35rem;
}

.early-modal__dialog {
  max-width: 1120px;
  display: grid;
  grid-template-columns: minmax(290px, 0.92fr) minmax(0, 1.08fr);
  gap: 0;
  padding: 0;
  overflow: hidden;
}

.early-modal__image {
  min-height: 100%;
  background: #f3ece2;
}

.early-modal__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.early-modal__content {
  padding: clamp(1.4rem, 2.4vw, 2rem);
}

.modal-owner-badge {
  display: inline-flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.75rem 0.95rem;
  background: rgba(146, 30, 59, 0.06);
  border: 1px solid rgba(146, 30, 59, 0.14);
  border-radius: 18px;
  margin: 0.2rem 0 1rem;
}

.modal-owner-badge strong {
  font-size: 1rem;
}

.modal-owner-badge span {
  color: var(--muted);
  font-size: 0.86rem;
}

.modal-quick-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.modal-quick-form label,
.modal-quick-form__full {
  display: block;
}

.modal-quick-form label > span,
.modal-quick-form__full > span {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.92rem;
  font-weight: 700;
}

.modal-quick-form input,
.modal-quick-form select,
.modal-quick-form textarea {
  width: 100%;
  padding: 0.85rem 0.95rem;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: #fff;
  font: inherit;
}

.modal-time-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

.modal-quick-form__full {
  margin-top: 0.9rem;
}

.modal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 1rem;
}

.text-button {
  margin-top: 0.95rem;
  border: 0;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-weight: 700;
  padding: 0;
  cursor: pointer;
}

.floating-review {
  left: 1.2rem;
  right: auto;
  bottom: auto;
  top: 50%;
  transform: translateY(-50%);
}

.floating-review__card {
  left: 0;
  right: auto;
  top: calc(100% + 0.8rem);
}

.floating-review.is-open .floating-review__card {
  transform: none;
}

@media (max-width: 1080px) {
  .hero { padding-top: 0.65rem; }
  .hero__grid { grid-template-columns: 1fr; }
  .hero__collage { order: -1; }
  .reviews__header { grid-template-columns: 1fr; }
  .rating-card { justify-items: start; }
}

@media (max-width: 820px) {
  .modal-quick-form__grid,
  .early-modal__dialog { grid-template-columns: 1fr; }
  .early-modal__image { max-height: 280px; }
  .modal-time-grid { grid-template-columns: 1fr 1fr 1fr; }
  .floating-review {
    top: auto;
    bottom: 6.3rem;
    left: 0.85rem;
    transform: none;
  }
  .floating-review__card {
    top: auto;
    bottom: calc(100% + 0.75rem);
  }
}

@media (max-width: 680px) {
  .hero__claims span { width: 100%; justify-content: center; }
  .mini-review { min-width: 280px; }
  .google-review-card { width: 290px; }
  .gallery-photo--portrait img { object-fit: cover; padding: 0; }
  .modal-time-grid,
  .modal-actions { grid-template-columns: 1fr; }
}

/* =========================================================
   V5 FINAL POLISH
   Hero breathing space, balanced prices, square gallery,
   compact booking pop-up, social integrations.
   ========================================================= */

/* Hero: remove old fixed-height clipping and keep breathing space */
.hero{
  height:auto !important;
  min-height:0 !important;
  overflow:visible !important;
  padding:24px 0 34px !important;
}
.hero__grid{
  height:auto !important;
  min-height:0 !important;
  align-items:center !important;
}
.hero__copy{padding:10px 0 6px !important}
.hero__claims{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:16px 0 18px;
}
.hero__claims span{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid rgba(124,29,45,.16);
  background:rgba(124,29,45,.055);
  color:var(--ink);
  font-size:10px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.hero__actions{margin-top:0 !important}
.hero__microtrust{margin-top:14px !important;margin-bottom:2px}
.hero-collage{
  height:500px !important;
  align-self:center;
}

/* Standalone testimonial ticker between prices and gallery */
.testimonial-slider-section{
  background:var(--paper);
  padding:54px 0 0;
  overflow:hidden;
}
.testimonial-slider__heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:22px;
}
.testimonial-slider__heading .eyebrow{margin:0}
.testimonial-slider__heading h2{
  margin:0;
  max-width:780px;
  font-family:'Playfair Display',serif;
  font-size:clamp(2rem,3.8vw,3.7rem);
  line-height:1.03;
}
.review-strip--standalone{
  background:var(--ink);
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.review-strip--standalone .mini-review{
  min-width:360px;
  min-height:118px;
  padding:22px 28px;
}
.review-strip--standalone .mini-review p{font-size:17px}

/* Price menu: open by default, three balanced columns, matched row heights */
.price-menu{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:14px !important;
  align-items:stretch;
}
.price-group{
  height:100%;
  display:flex;
  flex-direction:column;
  border-radius:10px;
  overflow:hidden;
}
.price-group > summary{min-height:74px}
.price-group[open] .price-list,
.price-group[open] .price-note{flex:1}
.price-list{display:flex;flex-direction:column}
.price-group--extensions{min-height:100%}

/* Gallery: larger, even square cards; show the entire image rather than crop */
.gallery-wall{
  width:min(1480px,calc(100% - 34px)) !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  grid-auto-rows:auto !important;
  gap:14px !important;
}
.gallery-photo,
.gallery-photo--wide,
.gallery-photo--tall,
.gallery-photo--portrait{
  grid-column:span 1 !important;
  grid-row:span 1 !important;
  aspect-ratio:1/1;
  height:auto !important;
  min-height:0 !important;
  border-radius:16px !important;
  background:linear-gradient(145deg,#f5efe7,#ebe3d7) !important;
}
.gallery-photo img,
.gallery-photo--portrait img{
  width:100%;
  height:100%;
  object-fit:contain !important;
  object-position:var(--focus,center center) !important;
  padding:7px !important;
  background:transparent !important;
}
.gallery-photo:hover img{transform:scale(1.02) !important}
.gallery-photo::after{background:linear-gradient(180deg,transparent 68%,rgba(0,0,0,.58)) !important}
.gallery-photo span{
  left:12px;
  right:12px;
  bottom:11px;
  font-size:10px;
  text-shadow:0 2px 8px rgba(0,0,0,.5);
}

/* Floating Google reviews now sits bottom-left, above sticky booking */
.floating-review{
  left:18px !important;
  right:auto !important;
  top:auto !important;
  bottom:calc(var(--sticky-h) + 16px) !important;
  transform:none !important;
}
.floating-review__card{
  left:0 !important;
  right:auto !important;
  top:auto !important;
  bottom:54px !important;
}

/* Main booking form simplified */
.appointment-form{max-width:720px}
.appointment-form .form-intro{font-size:13px;line-height:1.55;margin-bottom:18px}
.appointment-form textarea{min-height:86px}

/* Compact appointment pop-up with Farzana only */
.early-modal{padding:18px !important}
.early-modal__dialog{
  width:min(980px,100%) !important;
  max-height:min(780px,92vh);
  grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr) !important;
  overflow:hidden !important;
}
.early-modal__image{
  min-height:0 !important;
  background:#ede3d5;
}
.early-modal__image img{
  min-height:0 !important;
  height:100% !important;
  width:100%;
  object-fit:cover !important;
  object-position:center 22%;
}
.early-modal__content{
  padding:28px 30px 24px !important;
  justify-content:flex-start !important;
  overflow:auto;
}
.early-modal__content .eyebrow{margin-bottom:7px}
.early-modal__content h2{
  font-size:clamp(2rem,3.6vw,3.1rem) !important;
  margin:0 0 8px !important;
}
.early-modal__content>p:not(.eyebrow){font-size:13px;line-height:1.45;margin:0 0 12px}
.modal-owner-badge{
  margin:0 0 14px !important;
  padding:8px 11px !important;
  border-radius:12px !important;
}
.modal-owner-badge strong{font-size:12px}
.modal-owner-badge span{font-size:10px}
.modal-quick-form__grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:9px 12px !important;
}
.modal-quick-form label>span,
.modal-quick-form__full>span{font-size:10px !important;margin-bottom:4px !important}
.modal-quick-form input,
.modal-quick-form select,
.modal-quick-form textarea{
  min-height:42px !important;
  padding:8px 10px !important;
  border-radius:7px !important;
  font-size:12px;
}
.modal-time-grid{gap:5px !important}
.modal-quick-form__full{margin-top:9px !important}
.modal-quick-form textarea{min-height:58px !important;resize:vertical}
.modal-quick-form .checkbox{
  display:flex !important;
  align-items:center;
  gap:8px;
  margin-top:9px;
}
.modal-quick-form .checkbox input{width:auto !important;min-height:0 !important}
.modal-quick-form .checkbox span{margin:0 !important;font-size:10px !important;color:var(--muted)}
.modal-actions{margin-top:11px !important}
.modal-actions .button{width:100%}
.early-modal__content .text-button{font-size:10px;margin-top:8px}
.hp-field{position:absolute !important;left:-9999px !important;width:1px !important;height:1px !important;opacity:0}

/* Social + Yelp integrations */
.social-connect{background:var(--sand-2)}
.social-connect__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.social-card{
  min-height:122px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:14px;
  align-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:20px;
  box-shadow:0 12px 32px rgba(48,34,23,.06);
  transition:transform .22s ease,box-shadow .22s ease;
}
.social-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(48,34,23,.11)}
.social-card__icon{
  width:48px;height:48px;border-radius:50%;display:grid;place-items:center;
  color:#fff;font-size:22px;font-weight:900;background:var(--ink)
}
.social-card--instagram .social-card__icon{background:linear-gradient(135deg,#833ab4,#fd1d1d,#fcb045)}
.social-card--facebook .social-card__icon{background:#1877f2}
.social-card--yelp .social-card__icon{background:#d32323}
.social-card div{display:flex;flex-direction:column}
.social-card strong{font-family:'Playfair Display',serif;font-size:20px}
.social-card small{color:var(--muted);font-size:11px;margin-top:2px}
.social-card b{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--wine)}
.footer-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.footer-social a{
  display:inline-flex !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.18);
  padding:6px 9px;
  border-radius:999px;
  font-size:10px !important;
  margin:0 !important;
}
.footer-social a:hover{background:#fff;color:var(--ink) !important}

@media(max-width:1100px){
  .price-menu{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .gallery-wall{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
  .hero-collage{height:460px !important}
}

@media(max-width:820px){
  .hero{padding:20px 0 28px !important}
  .hero__grid{padding:0 !important}
  .hero-collage{height:400px !important}
  .testimonial-slider__heading{display:block}
  .testimonial-slider__heading .eyebrow{display:block;margin-bottom:8px}
  .price-menu{grid-template-columns:1fr !important}
  .gallery-wall{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:9px !important;width:calc(100% - 18px) !important}
  .social-connect__grid{grid-template-columns:1fr}
  .early-modal__dialog{grid-template-columns:1fr !important;max-height:90vh}
  .early-modal__image{height:210px}
  .early-modal__image img{object-position:center 25%}
  .early-modal__content{padding:20px 18px 18px !important}
}

@media(max-width:600px){
  .hero{padding-bottom:24px !important}
  .hero__claims{gap:6px;margin:12px 0 14px}
  .hero__claims span{width:100%;justify-content:center;text-align:center;font-size:9px;min-height:32px}
  .hero-collage{height:340px !important}
  .gallery-wall{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .gallery-photo span{font-size:8px}
  .floating-review{left:8px !important;bottom:calc(var(--sticky-h) + 10px) !important}
  .floating-review__card{width:min(310px,calc(100vw - 16px))}
  .modal-quick-form__grid{grid-template-columns:1fr !important}
  .modal-time-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
  .early-modal__image{height:165px}
}

/* V5 price-column balancing */
.price-menu{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:14px !important;
  align-items:start !important;
}
.price-column{
  display:flex;
  flex-direction:column;
  gap:14px;
  min-width:0;
}
.price-column .price-group{
  height:auto !important;
}
@media(max-width:1100px){
  .price-menu{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .price-column:last-child{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:820px){
  .price-menu{grid-template-columns:1fr !important}
  .price-column:last-child{grid-column:auto;display:flex}
}

/* Mobile visibility corrections for V5 components */
.review-strip--standalone{display:block !important}
@media(max-width:820px){
  .early-modal__image{display:block !important}
}
@media(max-width:600px){
  .review-strip--standalone{display:block !important}
  .review-strip--standalone .review-strip__track{display:flex !important}
  .review-strip--standalone .mini-review{min-width:285px !important;display:grid !important}
}

/* =========================================================
   V6 UX + CONVERSION POLISH
   ========================================================= */

/* Hero: cleaner first impression after removing trust-chip clutter */
.hero{
  padding:20px 0 38px !important;
}
.hero__copy{padding-bottom:14px !important}
.hero__copy h1{margin-bottom:14px !important}
.hero__lead{margin-bottom:22px !important}
.hero__actions{margin-bottom:4px !important}
.hero-collage{height:480px !important}

/* Animated sheen for conversion buttons */
.button,
.button--nav,
.topbar__call,
.sticky-book,
.sticky-call,
.booking-call-card{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.button::after,
.button--nav::after,
.topbar__call::after,
.sticky-call::after,
.booking-call-card::after{
  content:"";
  position:absolute;
  inset:-20% auto -20% -70px;
  width:48px;
  transform:skewX(-22deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);
  animation:ctaSheen 5.4s ease-in-out infinite;
  pointer-events:none;
  z-index:0;
}
.button > *, .topbar__call > *, .sticky-call > *, .booking-call-card > *{position:relative;z-index:1}
@keyframes ctaSheen{
  0%,72%{left:-70px}
  100%{left:125%}
}
.button:hover,
.button:focus-visible,
.topbar__call:hover,
.sticky-call:hover,
.booking-call-card:hover{
  transform:translateY(-2px);
}

/* Real brand marks */
.brand-icon{display:inline-block;object-fit:contain;vertical-align:middle;flex:none}
.brand-icon--google{width:24px;height:24px}
.social-card__logo{width:50px;height:50px;object-fit:contain;flex:none}
.footer-social img{width:16px;height:16px;object-fit:contain;vertical-align:middle}

/* Reviews: logo alignment */
.google-label{gap:8px}
.rating-card .brand-icon--google{width:34px;height:34px}
.google-review-card .brand-icon--google{width:20px;height:20px}
.floating-review__pill .brand-icon--google{width:22px;height:22px}
.floating-review__head .brand-icon--google{width:24px;height:24px}

/* Floating review above bottom booking bar and able to slide away with the booking bar */
.floating-review{transition:bottom .28s ease,opacity .28s ease,transform .28s ease !important}
.sticky-booking{transition:transform .28s ease,opacity .28s ease !important}
.sticky-booking.is-hidden{
  transform:translateY(110%);
  opacity:0;
  pointer-events:none;
}
body.booking-section-visible .floating-review{
  bottom:18px !important;
}

/* Inspiration search chips */
.inspiration-keywords{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin:14px 0 28px;
}
.inspiration-keywords__label{
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--wine);
  margin-right:3px;
}
.inspiration-chip{
  border:1px solid var(--line);
  background:#fff;
  color:var(--ink);
  border-radius:999px;
  padding:8px 12px;
  font:inherit;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
  transition:.2s ease;
}
.inspiration-chip:hover,
.inspiration-chip:focus-visible{
  border-color:var(--wine);
  background:rgba(124,29,45,.06);
  transform:translateY(-1px);
}
.inspiration-chip--link{display:inline-flex;align-items:center}

/* Testimonial ticker is intentionally copy-free: just moving proof */
.testimonial-slider-section{
  padding:0 !important;
  background:var(--ink) !important;
}
.review-strip--standalone{border:0 !important}

/* Price menu: flat grid creates matched side-by-side cards by row */
.price-menu{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:14px !important;
  align-items:stretch !important;
}
.price-menu > .price-group{
  height:100% !important;
  display:flex;
  flex-direction:column;
}
.price-menu > .price-group .price-list,
.price-menu > .price-group .price-note{flex:1}
.price-group--wide{
  grid-column:1/-1;
}
.price-group--wide .price-list{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:26px;
}
.price-group--wide .price-list li{border-bottom:1px solid rgba(255,255,255,.08)}

/* Compact booking area so it fits in one practical viewport */
.booking{padding:72px 0 86px !important}
.booking__grid{grid-template-columns:.76fr 1.24fr !important;gap:38px !important}
.booking__copy h2{font-size:clamp(3rem,4.9vw,5.1rem) !important}
.booking-benefits{margin-top:24px !important}
.booking-benefits li{padding:9px 0 !important}
.appointment-form{
  padding:24px !important;
  max-width:760px !important;
}
.appointment-form h3{font-size:31px !important}
.appointment-form .form-intro{margin-bottom:14px !important}
.appointment-form>label{margin-bottom:10px !important}
.appointment-form textarea{min-height:70px !important}
.form-row{gap:12px !important;margin-bottom:10px !important}
.form-row--compact{grid-template-columns:1fr 1fr !important}
.appointment-form select{appearance:auto}
.earliest-check{padding:9px 11px !important;margin-bottom:10px !important}
.form-submit{min-height:48px !important}
.form-note{margin-top:7px !important}

/* Popup stays compact with one time box */
.modal-time-full{grid-column:1/-1}
.modal-quick-form__full{grid-column:1/-1;margin-top:0 !important}
.modal-quick-form textarea{min-height:54px !important}

/* Social cards use real logos */
.social-card__logo{border-radius:12px}
.social-card--yelp .social-card__logo{background:#fff;padding:3px}

/* Thank-you page */
.thankyou-page{
  min-height:100vh;
  background:linear-gradient(145deg,#fbf7f0,#efe3d4);
  color:var(--ink);
}
.thankyou-shell{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:32px 18px;
}
.thankyou-card{
  width:min(760px,100%);
  background:#fff;
  border-radius:28px;
  padding:clamp(30px,6vw,64px);
  box-shadow:0 28px 90px rgba(45,31,22,.16);
  text-align:center;
  border:1px solid rgba(60,48,40,.1);
}
.thankyou-mark{
  width:92px;height:92px;border-radius:50%;
  display:grid;place-items:center;margin:0 auto 22px;
  background:#e8f7ed;color:#237a42;font-size:46px;font-weight:900;
}
.thankyou-card h1{
  font-family:'Playfair Display',serif;
  font-size:clamp(2.5rem,6vw,4.6rem);
  line-height:1.02;margin:0 0 16px;
}
.thankyou-card .lead{font-size:18px;line-height:1.6;color:var(--muted);max-width:610px;margin:0 auto 18px}
.thankyou-next{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;
  margin:26px 0;
}
.thankyou-next div{background:var(--sand-2);padding:18px;border-radius:16px;text-align:left}
.thankyou-next strong{display:block;margin-bottom:5px}
.thankyou-next span{color:var(--muted);font-size:13px}
.thankyou-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}
.thankyou-note{margin-top:18px;font-size:12px;color:var(--muted)}

@media(max-width:1100px){
  .price-menu{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .price-group--wide{grid-column:1/-1}
  .price-group--wide .price-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .booking__grid{grid-template-columns:1fr !important}
  .booking__copy{max-width:760px}
}
@media(max-width:820px){
  .hero{padding:16px 0 30px !important}
  .hero-collage{height:390px !important}
  .price-menu{grid-template-columns:1fr !important}
  .price-group--wide{grid-column:auto}
  .price-group--wide .price-list{grid-template-columns:1fr}
  .form-row--compact{grid-template-columns:1fr 1fr !important}
  .inspiration-keywords{overflow:auto;flex-wrap:nowrap;padding-bottom:4px}
  .inspiration-keywords__label,.inspiration-chip{white-space:nowrap}
}
@media(max-width:600px){
  .hero{padding-bottom:28px !important}
  .hero-collage{height:330px !important}
  .form-row--compact{grid-template-columns:1fr !important}
  .appointment-form{padding:18px 14px !important}
  .booking{padding:58px 0 76px !important}
  .thankyou-next{grid-template-columns:1fr}
  .social-card__logo{width:44px;height:44px}
}
.social-card--yelp .social-card__logo{width:64px;height:42px;border-radius:0;background:transparent;padding:0}
.footer-social a[href*="yelp"] img{width:28px;height:16px}
.thankyou-page{padding-bottom:0 !important}
