:root{--color-earth: #2b2118;--color-cream: #f7f1e8;--color-sand: #e8ddcc;--color-olive: #68745a;--color-umber: #1f1b16;--color-clay: #9a5e3f;--color-gold: #b7925a;--color-white-soft: #fffaf2;--font-heading: "Cormorant Garamond", "Georgia", serif;--font-body: "Inter", "Segoe UI", sans-serif;--shadow-soft: 0 18px 48px rgba(43, 33, 24, .12);--border-soft: 1px solid rgba(43, 33, 24, .14);--radius: 8px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--color-umber);background:var(--color-cream);font-family:var(--font-body);font-size:16px;line-height:1.7;padding-bottom:calc(62px + env(safe-area-inset-bottom))}body.lightbox-open{overflow:hidden}img{display:block;max-width:100%}a{color:inherit}button,input,textarea{font:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--color-gold);outline-offset:3px}.skip-link{position:absolute;left:1rem;top:-4rem;z-index:100;background:var(--color-earth);color:var(--color-cream);padding:.75rem 1rem}.skip-link:focus{top:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.container{width:min(1120px,calc(100% - 32px));margin:0 auto}.narrow{width:min(760px,calc(100% - 32px))}.site-header{position:sticky;top:0;z-index:50;background:#f7f1e8f0;border-bottom:var(--border-soft);backdrop-filter:blur(12px)}.header-inner{width:min(1180px,calc(100% - 28px));margin:0 auto;min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.wordmark{text-decoration:none;color:var(--color-earth);display:flex;align-items:center;gap:.65rem;min-width:0}.wordmark-logo{width:48px;height:48px;object-fit:contain;flex:0 0 auto}.wordmark-text{display:grid;gap:.05rem;min-width:0}.wordmark-text span,.footer-brand{font-family:var(--font-heading);font-size:clamp(1.35rem,5vw,1.65rem);line-height:1;font-weight:600;white-space:nowrap}.wordmark-text small,.footer-subbrand{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-olive);font-weight:700}.desktop-nav{display:none;align-items:center;gap:1.05rem;font-size:.92rem}.desktop-nav a,.mobile-nav a,.site-footer a{text-decoration:none}.desktop-nav a:hover,.mobile-nav a:hover,.site-footer a:hover{color:var(--color-clay)}.menu-toggle{width:46px;height:46px;display:inline-grid;place-items:center;gap:4px;border:var(--border-soft);background:var(--color-white-soft);border-radius:var(--radius)}.menu-toggle span:not(.sr-only){display:block;width:20px;height:2px;background:var(--color-earth)}.mobile-nav{display:grid;gap:.35rem;padding:0 16px 18px}.mobile-nav[hidden]{display:none}.mobile-nav a{padding:.85rem;border-radius:var(--radius);background:#e8ddcca8}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.82rem 1.15rem;border-radius:var(--radius);border:1px solid transparent;text-decoration:none;font-weight:700;line-height:1.2;text-align:center;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .16s ease}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--color-clay);color:var(--color-white-soft)}.button-primary:hover{background:var(--color-earth);color:var(--color-white-soft)}.button-secondary{color:var(--color-earth);border-color:#2b211859;background:#fffaf2b8}.button-secondary:hover{background:var(--color-sand)}.button-small{min-height:42px;padding:.65rem .9rem}.button-row{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}.button-row.center{justify-content:center}.hero{position:relative;min-height:78svh;display:grid;align-items:end;overflow:hidden;background:var(--color-earth)}.hero-image,.hero-overlay{position:absolute;inset:0;width:100%;height:100%}.hero-image{object-fit:cover}.hero-overlay{background:linear-gradient(90deg,#1f1b16d1,#1f1b1657),linear-gradient(0deg,#1f1b1673,#1f1b1614)}.hero-content{position:relative;z-index:1;color:var(--color-white-soft);padding:5.5rem 0 4.25rem}.hero-content h1,.page-intro h1{max-width:780px;margin:0;font-family:var(--font-heading);font-size:clamp(3rem,12vw,6.9rem);line-height:.98;font-weight:600;color:inherit}.hero-content p:not(.eyebrow):not(.hero-trust){max-width:650px;font-size:clamp(1rem,2vw,1.2rem);margin:1.25rem 0 1.5rem}.hero-secondary{color:var(--color-white-soft);border-color:#fffaf29e;background:#2b211857}.hero-trust{margin-top:1.2rem;font-weight:700}.eyebrow{margin:0 0 .65rem;color:var(--color-olive);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.hero .eyebrow{color:var(--color-sand)}.section,.page-intro{padding:clamp(4rem,8vw,7rem) 0}.page-intro{text-align:center;background:linear-gradient(#f7f1e8e6,#f7f1e8fa),url(/images/optimized/hero/patio-front.webp) center / cover}.page-intro h1{color:var(--color-earth);margin-inline:auto}.page-intro p{max-width:690px;margin:1rem auto 1.35rem}.section-sand{background:var(--color-sand)}.section-heading{max-width:760px;margin:0 auto 2rem;text-align:center}h2,h3{color:var(--color-earth);font-family:var(--font-heading);font-weight:600;line-height:1.08}h2{margin:0 0 1rem;font-size:clamp(2.25rem,7vw,4rem)}h3{margin:0 0 .6rem;font-size:clamp(1.45rem,4vw,2rem)}p{margin:0 0 1rem}.quick-facts{display:grid;gap:.85rem;margin-top:-2.3rem;position:relative;z-index:2}.quick-facts article,.info-card,.rate-card,.status-card,.step-card,.contact-card,.booking-form{background:var(--color-white-soft);border:var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.quick-facts article{padding:1rem}.quick-facts span,.status-label,.small-note,.form-note,.faq-category{color:var(--color-olive);font-size:.88rem;font-weight:700}.quick-facts strong{display:block;color:var(--color-earth);line-height:1.3}.split{display:grid;gap:2rem;align-items:center}.split.align-start{align-items:start}.feature-image{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow-soft)}.card-grid{display:grid;gap:1rem}.info-card,.rate-card,.status-card,.step-card,.contact-card{padding:clamp(1.1rem,3vw,1.55rem)}.future-card{background:#fffaf2a3}.status-label{display:inline-flex;margin:0 0 .85rem;padding:.35rem .55rem;border-radius:999px;background:#68745a24;color:var(--color-olive)}.status-label.muted,.status-card.future .status-label{color:var(--color-clay);background:#9a5e3f21}.check-list{list-style:none;padding:0;margin:1rem 0 1.25rem;display:grid;gap:.5rem}.check-list li{position:relative;padding-left:1.45rem}.check-list li:before{content:"";position:absolute;left:0;top:.7em;width:8px;height:8px;border-radius:50%;background:var(--color-gold)}.rate-price{color:var(--color-clay);font-family:var(--font-heading);font-size:clamp(2rem,6vw,3rem);line-height:1;font-weight:600}.status-grid,.step-grid{display:grid;gap:1rem}.status-card.available{border-color:#68745a59}.status-card.future{background:#fffaf2b3}.center-space{margin-top:1.6rem;text-align:center}.centered{text-align:center}.map-placeholder{min-height:320px;display:grid;place-items:center;padding:2rem;text-align:center;color:var(--color-earth);background:linear-gradient(45deg,rgba(104,116,90,.18) 25%,transparent 25%),linear-gradient(-45deg,rgba(104,116,90,.18) 25%,transparent 25%),var(--color-white-soft);background-size:34px 34px;border:var(--border-soft);border-radius:var(--radius)}.map-embed{min-height:320px;overflow:hidden;border:var(--border-soft);border-radius:var(--radius);background:var(--color-white-soft);box-shadow:var(--shadow-soft)}.map-embed iframe{display:block;width:100%;height:100%;min-height:360px;border:0}.location-line{font-weight:800;color:var(--color-earth)}.gallery-tools{display:flex;gap:.55rem;overflow-x:auto;padding:.2rem 0 1rem;margin-bottom:.8rem}.filter-button{flex:0 0 auto;min-height:42px;border:var(--border-soft);border-radius:999px;background:var(--color-white-soft);color:var(--color-earth);padding:.55rem .85rem;font-weight:700}.filter-button[aria-pressed=true]{background:var(--color-earth);color:var(--color-white-soft)}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.gallery-item{position:relative;min-height:160px;padding:0;border:0;overflow:hidden;border-radius:var(--radius);background:var(--color-sand)}.gallery-item img{width:100%;height:100%;aspect-ratio:1 / 1;object-fit:cover;transition:transform .18s ease}.gallery-item:hover img{transform:scale(1.025)}.gallery-item span{position:absolute;left:.55rem;bottom:.55rem;max-width:calc(100% - 1.1rem);padding:.3rem .5rem;color:var(--color-white-soft);background:#1f1b16c2;border-radius:999px;font-size:.72rem;font-weight:800}.gallery-preview .gallery-tools,.lightbox[hidden]{display:none}.lightbox{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:1rem}.lightbox-backdrop{position:absolute;inset:0;border:0;background:#1f1b16e0}.lightbox figure{position:relative;z-index:1;max-width:min(980px,94vw);max-height:86svh;margin:0}.lightbox img{max-height:78svh;width:auto;object-fit:contain;border-radius:var(--radius)}.lightbox figcaption{color:var(--color-white-soft);margin-top:.8rem;text-align:center}.lightbox-close{position:absolute;right:1rem;top:1rem;z-index:2;width:46px;height:46px;border:var(--border-soft);border-radius:50%;background:var(--color-white-soft);color:var(--color-earth);font-size:1.7rem;line-height:1}.mini-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}.mini-gallery img{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:var(--radius)}.booking-form{display:grid;gap:1rem;padding:clamp(1rem,3vw,1.5rem)}.form-field{display:grid;gap:.35rem}.form-field label{color:var(--color-earth);font-weight:800}.form-field input,.form-field textarea{width:100%;border:1px solid rgba(43,33,24,.24);border-radius:var(--radius);background:var(--color-cream);color:var(--color-earth);min-height:48px;padding:.8rem}.form-field textarea{resize:vertical}.field-error{min-height:1.1rem;margin:0;color:#8c2f24;font-size:.86rem;font-weight:700}.generated-message{display:grid;gap:.7rem;border-top:var(--border-soft);padding-top:1rem}.generated-message textarea{width:100%;border:var(--border-soft);border-radius:var(--radius);background:var(--color-cream);padding:.8rem}.faq-layout{display:grid;gap:1.5rem}.faq-categories{display:none}.faq-groups{display:grid;gap:2.5rem}.faq-list{display:grid;gap:.65rem}.faq-item{border:var(--border-soft);border-radius:var(--radius);background:var(--color-white-soft);overflow:hidden}.faq-question{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:0;background:transparent;color:var(--color-earth);text-align:left;font-weight:800}.faq-question span:last-child{flex:0 0 auto;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--color-sand)}.faq-question[aria-expanded=true] span:last-child{background:var(--color-earth);color:var(--color-white-soft)}.faq-answer{padding:0 1rem 1rem}.faq-answer[hidden]{display:none}.faq-category{margin-bottom:0}.section-cta{background:var(--color-olive)}.cta-card{max-width:920px;text-align:center;background:var(--color-earth);color:var(--color-white-soft);border-radius:var(--radius);padding:clamp(2rem,6vw,4rem)}.cta-card h2,.site-footer h2{color:var(--color-white-soft)}.cta-card .eyebrow{color:var(--color-gold)}.contact-line{margin:1rem 0 0;color:var(--color-sand);font-weight:700}.contact-card.wide{max-width:880px;margin:0 auto}.site-footer{background:var(--color-earth);color:var(--color-sand);padding:4rem 0 6rem}.site-footer h2{margin-top:0;font-size:1.55rem}.site-footer nav{display:grid;align-content:start;gap:.5rem}.footer-grid{display:grid;gap:2rem}.footer-brand{color:var(--color-white-soft);margin-bottom:.2rem}.footer-subbrand{color:var(--color-gold);margin:0 0 1rem}.trust-line{font-weight:800;color:var(--color-white-soft)}.partner-line{color:var(--color-sand);font-weight:700}.mobile-booking-cta{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;place-items:center;min-height:58px;padding:.85rem 1rem calc(.85rem + env(safe-area-inset-bottom));color:var(--color-white-soft);background:var(--color-clay);border-radius:0;box-shadow:0 -10px 28px #1f1b1638;text-decoration:none;font-weight:800;transform:translateY(var(--mobile-cta-viewport-gap, 0px))}@media(min-width:640px){body{padding-bottom:0}.mobile-booking-cta{display:none}.quick-facts,.status-grid,.step-grid,.card-grid.two,.card-grid.four,.booking-form{grid-template-columns:repeat(2,minmax(0,1fr))}.form-field.full,.booking-form .button,.form-note,.generated-message{grid-column:1 / -1}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:900px){.desktop-nav{display:flex}.wordmark-logo{width:56px;height:56px}.menu-toggle,.mobile-nav{display:none}.hero{min-height:82svh}.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2.5rem,6vw,5rem)}.split.reverse>:first-child{order:2}.quick-facts{grid-template-columns:repeat(4,minmax(0,1fr))}.card-grid.three,.status-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card-grid.four,.gallery-grid,.gallery-preview{grid-template-columns:repeat(4,minmax(0,1fr))}.columns{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-grid{grid-template-columns:1.4fr 1fr 1fr .8fr}.faq-layout{grid-template-columns:260px minmax(0,1fr);align-items:start}.faq-categories{position:sticky;top:96px;display:grid;gap:.45rem;padding:1rem;border:var(--border-soft);border-radius:var(--radius);background:var(--color-white-soft)}.faq-categories h2{font-size:1.6rem}.faq-categories a{text-decoration:none;font-weight:700}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
