:root{--plum:#6b1d3a;--plum-d:#4a1228;--red:#d94a3d;--cream:#fbf5ec;--sand:#f3e8d8;--ink:#2a1e22;--muted:#6f5f63;--wa:#1f9d55;--r:16px;--sh:0 10px 30px rgba(74,18,40,.12);--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;font:17px/1.6 var(--sans);color:var(--ink);background:var(--cream);padding-bottom:72px}
img{max-width:100%;display:block}a{color:var(--plum)}
h1,h2,h3{font-family:var(--serif);line-height:1.15;margin:0 0 .5em;color:var(--plum-d)}
h1{font-size:clamp(2rem,6vw,3.6rem)}h2{font-size:clamp(1.6rem,4vw,2.4rem)}h3{font-size:1.2rem}
.wrap{width:min(1160px,100% - 2.5rem);margin-inline:auto}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;z-index:99;background:#fff;padding:.5rem 1rem}
.center{text-align:center}.small{font-size:.9rem;color:var(--muted)}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:700;color:var(--red);margin:0 0 .6rem}
.ph{background:#fff3c4;border:1px dashed #c9a227;border-radius:6px;padding:0 .35em;color:#6b5400;font-size:.92em}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;padding:.85em 1.3em;border-radius:999px;border:2px solid var(--plum);background:#fff;color:var(--plum);font-weight:700;text-decoration:none;font-size:1rem;cursor:pointer;transition:transform .15s,box-shadow .15s;font-family:inherit}
.btn:hover{transform:translateY(-2px);box-shadow:var(--sh)}
.btn--accent{background:var(--red);border-color:var(--red);color:#fff}
.btn--wa{background:var(--wa);border-color:var(--wa);color:#fff}
.btn--ghost{background:transparent}
.btn--sm{padding:.55em 1em;font-size:.9rem}.btn--block{width:100%}
/* header */
.topbar{position:sticky;top:0;z-index:20;background:rgba(251,245,236,.92);backdrop-filter:blur(10px);border-bottom:1px solid rgba(107,29,58,.1)}
.topbar__in{display:flex;align-items:center;gap:1rem;min-height:64px}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--plum-d)}
.brand__mark{width:40px;height:40px;border-radius:12px;background:var(--plum);color:var(--cream);display:grid;place-items:center;font:700 1.4rem var(--serif);box-shadow:inset 0 -6px 0 var(--red)}
.brand__text{display:flex;flex-direction:column;line-height:1.05}.brand__text strong{font:700 1.25rem var(--serif)}.brand__text small{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.nav{display:none;gap:1.3rem;margin-left:auto}.nav a{text-decoration:none;color:var(--ink);font-weight:600;font-size:.95rem}.nav a:hover{color:var(--red)}
.topbar .btn{margin-left:auto;display:none}
@media(min-width:960px){.nav{display:flex}.topbar .btn{display:inline-flex;margin-left:0}}
/* hero */
.hero{position:relative;color:#fff;overflow:hidden;background:var(--plum-d)}
.hero__media{position:absolute;inset:0}.hero__media img{width:100%;height:100%;object-fit:cover;object-position:60% 40%;opacity:.75}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(74,18,40,.95) 15%,rgba(74,18,40,.7) 50%,rgba(74,18,40,.2))}
.hero__in{position:relative;padding:4.5rem 0 4rem;max-width:760px;margin-left:max(1.25rem,calc((100% - 1160px)/2))}
.hero h1{color:#fff}.hero h1 em{color:#ffc9b8;font-style:italic}
.hero .lead{font-size:1.15rem;max-width:36em;opacity:.95}
.tagline{font-family:var(--serif);font-style:italic;opacity:.85}
.hero .eyebrow{color:#ffd9cc}
.status{display:inline-flex;align-items:center;gap:.5em;background:rgba(255,255,255,.12);padding:.35em .8em;border-radius:999px;letter-spacing:.08em}
.status::before{content:"";width:9px;height:9px;border-radius:50%;background:#bbb}.status.open::before{background:#3ddc84;box-shadow:0 0 0 4px rgba(61,220,132,.25)}.status.closed::before{background:#ff8a7a}
.cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem}
.hero .btn--ghost{color:#fff;border-color:rgba(255,255,255,.6)}
.hero .btn:not(.btn--accent):not(.btn--wa):not(.btn--ghost){background:#fff}
/* strip */
.strip{background:var(--plum);color:var(--cream)}
.strip__in{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.12)}
.strip__in div{background:var(--plum);padding:1rem;display:flex;flex-direction:column}.strip__in strong{font-family:var(--serif);font-size:1.1rem}.strip__in span{font-size:.85rem;opacity:.8}
@media(min-width:760px){.strip__in{grid-template-columns:repeat(4,1fr)}}
/* sections */
.section{padding:4.5rem 0}.section--tint{background:var(--sand)}
.split{display:grid;gap:2.5rem;align-items:center}
@media(min-width:900px){.split{grid-template-columns:1.05fr 1fr}.split--rev{grid-template-columns:.8fr 1.1fr}}
.ticks{list-style:none;padding:0;margin:1rem 0 1.6rem}.ticks li{padding-left:1.8em;position:relative;margin:.5em 0}
.ticks li::before{content:"✓";position:absolute;left:0;top:0;width:1.3em;height:1.3em;border-radius:50%;background:var(--plum);color:#fff;font-size:.8em;display:grid;place-items:center;margin-top:.25em}
.ticks.small li{font-size:.95rem}
.mosaic{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.mosaic figure{margin:0;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh)}
.mosaic figure:first-child{grid-row:span 2}.mosaic img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/4}
.mosaic figure:first-child img{aspect-ratio:auto}
.photo-card{border-radius:24px;overflow:hidden;box-shadow:var(--sh);max-width:420px;margin-inline:auto}.photo-card img{aspect-ratio:4/5;object-fit:cover;width:100%}
/* steps */
.steps{list-style:none;padding:0;margin:2rem 0;display:grid;gap:1rem}
@media(min-width:760px){.steps{grid-template-columns:repeat(4,1fr)}}
.steps li{background:#fff;border-radius:var(--r);padding:1.4rem;box-shadow:var(--sh);position:relative}
.steps li>span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--red);color:#fff;font-weight:800;margin-bottom:.8rem}
.steps p{margin:0;color:var(--muted);font-size:.95rem}
/* booking */
.section--book{background:linear-gradient(160deg,var(--plum-d),var(--plum));color:var(--cream)}
.section--book h2{color:#fff}.section--book .eyebrow{color:#ffc9b8}.section--book a{color:#fff}
.section--book .ticks li::before{background:var(--red)}
.book{display:grid;gap:2rem;align-items:start}@media(min-width:900px){.book{grid-template-columns:.8fr 1.2fr}}
.card{background:#fff;color:var(--ink);border-radius:20px;box-shadow:var(--sh);padding:1.5rem}
.section--book .card a{color:var(--plum)}
.section--book .btn--ghost{color:#fff;border-color:rgba(255,255,255,.6)}
.section--book .card .btn--ghost{color:var(--plum);border-color:var(--plum)}
.form fieldset{border:0;padding:0;margin:0 0 1.2rem}
.form legend{font:700 1.1rem var(--serif);color:var(--plum-d);margin-bottom:.6rem}
.field{display:block;margin-bottom:.8rem}.field span{display:block;font-size:.85rem;font-weight:600;margin-bottom:.25rem;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;font:inherit;padding:.75em .9em;border:1.5px solid #e0d2c6;border-radius:12px;background:#fffdf9;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--plum);box-shadow:0 0 0 3px rgba(107,29,58,.15)}
.field--short{max-width:200px}
.row{display:grid;gap:0 1rem}@media(min-width:560px){.row{grid-template-columns:1fr 1fr}}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:.8rem}
.chip input{position:absolute;opacity:0}.chip span{display:inline-block;padding:.65em 1.1em;border-radius:999px;border:1.5px solid #e0d2c6;cursor:pointer;font-weight:600;background:#fffdf9}
.chip input:checked+span{background:var(--plum);border-color:var(--plum);color:#fff}.chip input:focus-visible+span{outline:3px solid var(--red)}
.form__actions{display:grid;gap:.6rem}@media(min-width:560px){.form__actions{grid-template-columns:1fr 1fr}}
.quote .form__actions{grid-template-columns:auto;justify-content:start}
.form__err{background:#ffe8e4;color:#8a1d10;padding:.6em .9em;border-radius:10px;font-weight:600}
.fine{font-size:.8rem;color:var(--muted);margin:.8rem 0 0}
.confirm pre{white-space:pre-wrap;background:var(--sand);padding:1rem;border-radius:12px;font-size:.85rem}
.install-btn{margin-top:.5rem}.ios-hint{font-size:.9rem;opacity:.9}
/* reviews */
.reviews{display:grid;gap:1.2rem;margin:2rem 0}@media(min-width:900px){.reviews{grid-template-columns:repeat(3,1fr)}}
.review{margin:0;background:#fff;border-radius:var(--r);padding:1.6rem;box-shadow:var(--sh);display:flex;flex-direction:column}
.review p{flex:1;margin:.6rem 0 1rem;font-size:1rem}.stars{color:#e0a100;letter-spacing:.15em}
.review footer{font-weight:700;color:var(--plum)}.review footer::before{content:"— "}
/* gallery */
.gallery{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:160px;gap:.7rem;margin-top:2rem}
@media(min-width:760px){.gallery{grid-template-columns:repeat(4,1fr);grid-auto-rows:220px}}
.g{border-radius:14px;overflow:hidden;display:block;box-shadow:var(--sh)}.g img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.g:hover img{transform:scale(1.05)}
.g--wide{grid-column:span 2}.g--tall{grid-row:span 2}
.lightbox{border:0;padding:0;background:transparent;max-width:95vw;max-height:90vh}.lightbox::backdrop{background:rgba(20,8,12,.85)}
.lightbox img{max-height:88vh;border-radius:12px}.lightbox button{position:absolute;top:8px;right:8px;border:0;background:#fff;border-radius:50%;width:40px;height:40px;font-size:1.1rem;cursor:pointer}
/* visit */
.visit{display:grid;gap:1.5rem}@media(min-width:900px){.visit{grid-template-columns:1fr 1.4fr}}
.hours table{width:100%;border-collapse:collapse}.hours th{text-align:left;font-weight:600}.hours th,.hours td{padding:.45em 0;border-bottom:1px solid #efe4d8}
.hours td{text-align:right}.hours tr.today{color:var(--red);font-weight:800}
address{font-style:normal;margin-bottom:.8rem}
.map{padding:0;overflow:hidden;min-height:360px}.map iframe{border:0;width:100%;height:100%;min-height:360px;display:block}
.quote{margin-top:1.5rem}
/* footer + appbar */
.footer{background:var(--plum-d);color:var(--cream);padding:2.5rem 0}.footer a{color:#ffc9b8}
.footer__in{display:grid;gap:1rem}@media(min-width:760px){.footer__in{grid-template-columns:1.2fr 1fr auto;align-items:center}}.footer .small{color:#d9c3c9}
.appbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid #eadccf;padding:6px 6px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -6px 20px rgba(0,0,0,.08)}
.appbar a{display:flex;flex-direction:column;align-items:center;font-size:.75rem;font-weight:700;text-decoration:none;color:var(--plum-d);padding:4px;border-radius:12px}
.appbar span{font-size:1.25rem}.appbar__main{background:var(--red);color:#fff!important}
@media(min-width:960px){.appbar{display:none}body{padding-bottom:0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.photo-card--beds{max-width:none}.photo-card--beds img{aspect-ratio:4/3;object-position:75% 50%}
.gallery{grid-auto-flow:dense}
.section--book .ticks li{color:#fbeee6}
.map{position:relative;background:repeating-linear-gradient(45deg,#f6ede2 0 14px,#f1e5d6 14px 28px)}
.map__fallback{position:absolute;inset:0;display:grid;place-content:center;text-align:center;text-decoration:none;color:var(--plum-d);padding:1rem}
.map iframe{position:relative}

/* find us */
.findus{display:grid;padding:0;overflow:hidden;margin-bottom:1.5rem}
.findus img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;background:#111}
.findus__text{padding:1.6rem}
@media(min-width:900px){.findus{grid-template-columns:1.1fr 1fr;align-items:center}.findus__text{padding:2.5rem}}
/* video */
.section--video{background:var(--cream)}
.video{display:grid;gap:2rem;align-items:center}
@media(min-width:900px){.video{grid-template-columns:1fr auto;gap:4rem}}
.video__frame{position:relative;width:min(340px,100%);aspect-ratio:9/16;margin-inline:auto;border-radius:22px;overflow:hidden;box-shadow:var(--sh);background:linear-gradient(160deg,var(--plum-d),var(--plum))}
.video__frame iframe{position:relative;z-index:1;border:0;width:100%;height:100%;display:block}
.video__fallback{position:absolute;inset:0;display:grid;place-content:center;color:#fff;font-weight:700;text-decoration:none;text-align:center;padding:1rem}
.fb-link{font-weight:700}

/* screeding sequence */
.section--work{background:#fff}
.lead-sm{max-width:40em;margin:0 auto 2rem;color:var(--muted)}
.seq{display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}
.seq figure{margin:0;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);position:relative;background:var(--sand)}
.seq img{width:100%;aspect-ratio:3/5;object-fit:cover}
.seq figcaption{position:absolute;left:.5rem;right:.5rem;bottom:.5rem;background:rgba(255,255,255,.94);border-radius:10px;padding:.4em .6em;font-size:.82rem;font-weight:700;color:var(--plum-d);display:flex;gap:.45em;align-items:center}
.seq figcaption span{flex:none;width:1.6em;height:1.6em;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-size:.8em}
@media(min-width:760px){.seq img{aspect-ratio:3/4}.seq figcaption{font-size:.95rem}}
/* gallery captions */
.g{position:relative}
.g__cap{position:absolute;left:0;right:0;bottom:0;padding:1.6em .7em .55em;font-size:.8rem;font-weight:600;color:#fff;background:linear-gradient(transparent,rgba(30,10,18,.78))}
.booking-embed{margin-bottom:1rem}

/* google calendar booking */
.book__main{min-width:0}
.booking-embed{position:relative;padding:0;overflow:hidden;min-height:720px;background:#fff}
.booking-embed iframe{position:relative;z-index:1;border:0;width:100%;height:720px;display:block}
.booking-embed__fallback{position:absolute;inset:0;display:grid;place-content:center;font-weight:700;text-decoration:none;color:var(--plum)!important}
.book__newtab{font-size:.9rem;margin:.6rem 0 1rem;text-align:center}
.wa-alt{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);border-radius:16px;padding:0}
.wa-alt>summary{cursor:pointer;padding:1rem 1.2rem;font-weight:700;list-style:none}
.wa-alt>summary::-webkit-details-marker{display:none}
.wa-alt>summary::after{content:"▾";float:right;transition:transform .2s}
.wa-alt[open]>summary::after{transform:rotate(180deg)}
.wa-alt>.card{margin:0 .5rem .5rem}
@media(min-width:900px){.booking-embed,.booking-embed iframe{min-height:760px;height:760px}}

.brand__logo{display:inline-flex;align-items:center;background:#333;border-radius:10px;padding:.5rem .75rem}.brand__logo img{display:block;height:24px;width:auto}
@media(min-width:760px){.brand__logo img{height:28px}}
.footer__logo{display:block;height:auto;max-width:240px;width:100%;margin-bottom:.6rem;background:#333;border-radius:10px;padding:.6rem .8rem;box-sizing:content-box}
