
:root{
  --ink:#11100e;--paper:#f3eee4;--cream:#e3d9c8;--red:#be382e;--muted:#716d66;--line:rgba(17,16,14,.18)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%}button,input,select{font:inherit}
.site-header{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;background:rgba(243,238,228,.95);backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:12px}.brand>span:last-child{display:grid;line-height:.88}.brand strong{font:700 18px "Oswald";letter-spacing:.06em}.brand small{font-size:9px;letter-spacing:.26em;margin-top:6px}.mark{width:41px;height:41px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font:700 22px "Oswald";box-shadow:0 0 0 2px var(--paper),0 0 0 3px var(--ink)}
.nav{display:flex;align-items:center;gap:29px;font-size:12px;font-weight:700}.nav-cta{background:var(--ink);color:#fff;padding:13px 17px}.menu-toggle{display:none;background:none;border:0}.menu-toggle span{display:block;width:24px;height:2px;background:var(--ink);margin:5px}
.hero{min-height:calc(100vh - 84px);padding:8vh 5vw 7vh;display:grid;grid-template-columns:1.05fr .95fr;gap:5vw;align-items:center;position:relative}.hero h1,.section h2,.work h2,.booking h2{font-family:"Oswald";font-weight:700;letter-spacing:-.05em;line-height:.88;margin:0}.hero h1{font-size:clamp(62px,8.6vw,132px)}.hero h1 span{color:var(--red)}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.23em;color:var(--red);margin:0 0 18px}.eyebrow.light{color:#e77870}.lede{font-size:18px;line-height:1.7;color:#514d46;max-width:610px;margin:30px 0 0}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:34px}.btn{display:inline-flex;min-height:52px;padding:0 24px;align-items:center;justify-content:center;text-transform:uppercase;font-size:11px;font-weight:800;letter-spacing:.1em}.primary{background:var(--red);color:#fff}.text-link{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.mini-stats{display:flex;gap:38px;margin-top:50px}.mini-stats div{display:grid}.mini-stats strong{font:700 25px "Oswald"}.mini-stats span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.hero-media{position:relative}.hero-media>img{height:min(68vh,720px);min-height:500px;object-fit:cover;box-shadow:24px 24px 0 var(--ink)}.hero-badge{position:absolute;left:-25px;bottom:34px;background:var(--paper);border:1px solid var(--ink);padding:15px 18px;display:flex;align-items:center;gap:12px}.hero-badge b{display:block;font:700 13px "Oswald";letter-spacing:.11em}.hero-badge small{color:var(--muted)}.dot{width:10px;height:10px;border-radius:50%;background:#2f8f50;box-shadow:0 0 0 6px rgba(47,143,80,.12)}
.ticker{background:var(--red);color:#fff;overflow:hidden;padding:16px 0}.ticker>div{display:flex;gap:28px;align-items:center;width:max-content;animation:scroll 26s linear infinite;font:600 16px "Oswald";letter-spacing:.12em}.ticker i{font-style:normal;opacity:.65}@keyframes scroll{to{transform:translateX(-50%)}}
.section{padding:110px 5vw}.section-heading{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:end;margin-bottom:48px}.section h2,.work h2{font-size:clamp(50px,6.4vw,94px)}.section-heading>p{font-size:17px;line-height:1.7;color:var(--muted);max-width:520px}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.service-card{min-height:335px;padding:26px;border-right:1px solid var(--line);display:flex;flex-direction:column;position:relative;transition:.25s}.service-card:last-child{border-right:0}.service-card:hover,.service-card.featured{background:var(--ink);color:var(--paper)}.service-card h3{font:600 29px "Oswald";margin:58px 0 14px}.service-card p{font-size:14px;line-height:1.65;opacity:.7}.service-card footer{margin-top:auto;display:flex;align-items:end;justify-content:space-between}.service-card footer span{font-size:10px;opacity:.6}.service-card footer strong{font:700 30px "Oswald";color:var(--red)}.num{font:600 11px "Oswald";opacity:.55}.tag{position:absolute;right:18px;top:18px;background:var(--red);color:#fff;padding:6px 8px;font-size:8px;font-weight:800;letter-spacing:.1em}.prototype-note{text-align:right;color:var(--muted);font-size:10px}
.photo-feature{padding:0 5vw 110px;display:grid;grid-template-columns:1.35fr .65fr;gap:18px}.big-photo{min-height:690px;position:relative;overflow:hidden}.big-photo img{position:absolute;inset:0;height:100%;object-fit:cover}.big-photo:after,.side-stack figure:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(0,0,0,.65))}.photo-caption{position:absolute;z-index:2;left:28px;bottom:25px;color:#fff;display:grid}.photo-caption span,.side-stack figcaption{font-size:9px;font-weight:800;letter-spacing:.18em}.photo-caption strong{font:600 29px "Oswald";margin-top:7px}.side-stack{display:grid;grid-template-rows:1fr 1fr;gap:18px}.side-stack figure{margin:0;min-height:335px;position:relative;overflow:hidden}.side-stack img{height:100%;object-fit:cover}.side-stack figcaption{position:absolute;z-index:2;left:20px;bottom:18px;color:#fff}
.work{background:var(--ink);color:var(--paper);padding:105px 5vw}.work-heading{margin-bottom:50px}.gallery{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:18px;min-height:610px}.gallery-card{background-image:linear-gradient(transparent 55%,rgba(0,0,0,.7)),var(--img);background-size:cover;background-position:center;position:relative;filter:grayscale(1);transition:.35s}.gallery-card:hover{filter:grayscale(0);transform:translateY(-4px)}.gallery-card span{position:absolute;left:22px;bottom:20px;font:600 14px "Oswald";letter-spacing:.12em}
.shop{display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw;align-items:center}.shop-image{position:relative}.shop-image img{height:660px;object-fit:cover}.est{position:absolute;right:-28px;bottom:36px;background:var(--red);color:#fff;padding:19px 22px;font-size:9px;letter-spacing:.12em}.est strong{font:700 34px "Oswald";letter-spacing:0}.shop-copy .lead-copy{font-size:23px;line-height:1.55;margin:34px 0 20px}.shop-copy>p:not(.eyebrow):not(.lead-copy){color:var(--muted);line-height:1.8}.signature{font-family:cursive;font-size:40px;margin-top:28px;transform:rotate(-4deg);display:inline-block}
.reviews{padding:80px 5vw;background:#ddd2bf;display:grid;grid-template-columns:1fr 1fr;gap:22px}.review-card{background:rgba(255,255,255,.35);padding:38px}.stars{color:var(--red);letter-spacing:.14em}.review-card blockquote{font:500 28px/1.35 "Oswald";margin:18px 0}.review-card cite{font-style:normal;font-size:10px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}
.visit{display:grid;grid-template-columns:1fr .85fr;gap:7vw;align-items:center}.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:45px}.visit-grid small{font-size:9px;font-weight:800;color:var(--red);letter-spacing:.16em}.visit-grid p{line-height:1.6;margin:8px 0 0}.map-card{min-height:500px;background:#d8d0c1;position:relative;overflow:hidden}.map-grid{position:absolute;inset:-20%;transform:rotate(-8deg);background-image:linear-gradient(rgba(17,16,14,.12) 2px,transparent 2px),linear-gradient(90deg,rgba(17,16,14,.12) 2px,transparent 2px);background-size:75px 75px}.map-road{position:absolute;background:rgba(243,238,228,.8);height:36px;width:140%;left:-20%;border-top:1px solid #aaa;border-bottom:1px solid #aaa}.r1{top:45%;transform:rotate(22deg)}.r2{top:69%;transform:rotate(-15deg)}.pin{width:58px;height:58px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--red);position:absolute;left:50%;top:44%;margin:-29px;display:grid;place-items:center;z-index:3}.pin span{transform:rotate(45deg);color:#fff;font:700 22px "Oswald"}.map-label{position:absolute;z-index:4;left:calc(50% + 38px);top:calc(44% - 18px);background:var(--paper);border:1px solid var(--ink);padding:9px 12px;font:700 12px "Oswald";letter-spacing:.08em}.map-label small{font:500 8px "DM Sans";color:var(--muted)}
.booking{background:var(--red);color:#fff;padding:95px 5vw;display:grid;grid-template-columns:1fr .8fr;gap:8vw;align-items:center}.booking h2{font-size:clamp(70px,9vw,140px)}.booking-copy>p:not(.eyebrow){font-size:18px}.booking-form{display:grid;gap:13px}.booking-form label{font-size:9px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.booking-form input,.booking-form select{display:block;width:100%;margin-top:7px;padding:14px;border:1px solid rgba(255,255,255,.45);background:rgba(0,0,0,.12);color:#fff}.booking-form select option{color:#111}.booking-form button{padding:15px;background:#fff;color:var(--ink);border:0;font-weight:800;cursor:pointer}.booking-form small{opacity:.7;line-height:1.5}
.site-footer{background:var(--ink);color:var(--paper);padding:35px 5vw;display:flex;align-items:center;justify-content:space-between;gap:30px}.site-footer p{font-size:9px;letter-spacing:.1em;text-transform:uppercase;opacity:.65}.footer-brand .mark{background:var(--paper);color:var(--ink);box-shadow:0 0 0 2px var(--ink),0 0 0 3px var(--paper)}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:980px){.nav{position:fixed;top:84px;left:0;right:0;background:var(--paper);padding:25px 5vw 30px;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--ink);transform:translateY(-150%);transition:.25s}.nav.open{transform:none}.nav-cta{text-align:center}.menu-toggle{display:block}.hero{grid-template-columns:1fr;padding-top:65px;padding-bottom:95px}.hero-media{width:83%;justify-self:end}.service-grid{grid-template-columns:1fr 1fr}.service-card:nth-child(2){border-right:0}.service-card:nth-child(-n+2){border-bottom:1px solid var(--line)}.photo-feature{grid-template-columns:1fr}.side-stack{grid-template-columns:1fr 1fr;grid-template-rows:auto}.gallery{grid-template-columns:1fr 1fr;min-height:auto}.gallery-card{min-height:420px}.gallery-card:first-child{grid-column:1/-1;min-height:520px}.shop,.visit,.booking{grid-template-columns:1fr}.shop-image{width:90%}.reviews{grid-template-columns:1fr}}
@media(max-width:640px){.site-header{height:72px;padding:0 20px}.nav{top:72px;padding-left:20px;padding-right:20px}.hero{padding:55px 20px 120px}.hero h1{font-size:60px}.hero-actions{flex-direction:column;align-items:flex-start;gap:18px}.hero-media{width:95%}.hero-media>img{min-height:430px;height:58vh;box-shadow:14px 14px 0 var(--ink)}.hero-badge{left:-13px}.mini-stats{gap:0;justify-content:space-between}.section,.work,.booking{padding-left:20px;padding-right:20px}.section-heading{grid-template-columns:1fr;gap:20px}.section h2,.work h2{font-size:55px}.service-grid{grid-template-columns:1fr}.service-card{border-right:0;border-bottom:1px solid var(--line)}.photo-feature{padding:0 20px 75px;gap:12px}.big-photo{min-height:470px}.side-stack{grid-template-columns:1fr;gap:12px}.side-stack figure{min-height:360px}.gallery{grid-template-columns:1fr}.gallery-card,.gallery-card:first-child{grid-column:auto;min-height:430px}.shop{gap:55px}.shop-image{width:calc(100% - 14px)}.shop-image img{height:500px}.est{right:-14px}.reviews{padding:60px 20px}.review-card blockquote{font-size:24px}.visit-grid{gap:28px 18px}.map-card{min-height:370px}.booking h2{font-size:75px}.site-footer{padding:35px 20px;flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

.flow-trigger{cursor:pointer}.demo-modal{position:fixed;inset:0;z-index:999;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.72);backdrop-filter:blur(8px)}.demo-modal.open{display:flex}.demo-panel{width:min(720px,100%);max-height:90vh;overflow:auto;background:#fff;color:#151515;border-radius:18px;box-shadow:0 30px 90px rgba(0,0,0,.35)}.demo-panel-head{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 24px;border-bottom:1px solid #ddd}.demo-panel-head h3{margin:0;font-size:25px}.modal-close{border:0;background:#eee;width:38px;height:38px;border-radius:50%;font-size:20px;cursor:pointer}.flow-steps{display:flex;gap:8px;padding:18px 24px 0}.flow-steps span{flex:1;height:5px;border-radius:99px;background:#ddd}.flow-steps span.active{background:currentColor}.flow-body{padding:24px}.flow-page{display:none}.flow-page.active{display:block}.flow-page h4{font-size:24px;margin:0 0 8px}.flow-page>p{color:#666;line-height:1.55}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px}.choice{border:1px solid #d5d5d5;background:#fff;padding:16px;text-align:left;border-radius:12px;cursor:pointer}.choice.selected{outline:2px solid #111}.choice strong{display:block;margin-bottom:4px}.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.slot{border:1px solid #ccc;background:#fff;padding:12px;border-radius:10px;cursor:pointer}.slot.selected{background:#111;color:#fff}.flow-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.flow-fields label{font-size:11px;font-weight:700}.flow-fields input,.flow-fields select{width:100%;margin-top:6px;padding:12px;border:1px solid #ccc;border-radius:9px;background:#fff;color:#111}.flow-summary{background:#f4f4f4;border-radius:12px;padding:16px;line-height:1.75}.flow-nav{display:flex;justify-content:space-between;gap:12px;padding:0 24px 24px}.flow-nav button{padding:13px 18px;border:0;border-radius:999px;font-weight:800;cursor:pointer}.flow-back{background:#eee}.flow-next{background:#111;color:#fff;margin-left:auto}.flow-success{text-align:center;padding:25px 0}.flow-success .check{width:64px;height:64px;border-radius:50%;background:#dff6e7;display:grid;place-items:center;margin:0 auto 18px;font-size:28px}@media(max-width:600px){.choice-grid,.flow-fields{grid-template-columns:1fr}.slot-grid{grid-template-columns:1fr 1fr}}

.booking-demo-button{background:#fff;color:#111;border:0;margin-top:20px}.booking-preview{align-self:center;border:1px solid rgba(255,255,255,.4);padding:28px;max-width:470px}.booking-preview span{display:block;font-size:9px;font-weight:800;letter-spacing:.15em}.booking-preview strong{display:block;font-size:22px;margin:12px 0}.booking-preview p{opacity:.78;line-height:1.6}.nav-cta.flow-trigger{border:0;font-weight:700}.demo-panel .flow-steps span.active{background:var(--red)}

.flow-preview{display:grid;grid-template-columns:auto 1fr;gap:12px 16px;padding:24px;border:1px solid rgba(255,255,255,.35)}.flow-preview b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#111}.flow-preview span{align-self:center}.flow-button{display:block;margin-top:14px;background:#fff;color:#111;padding:15px;text-align:center;font-weight:800}
