*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#0d0d0d;color:#f7f6f5;font-family:Inter,system-ui,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}.skip-link{position:fixed;top:-5rem;left:1rem;z-index:999;background:#c17f4a;color:#0d0d0d;padding:.75rem 1rem;border-radius:.5rem;font-weight:700}.skip-link:focus{top:1rem}.glass,.card{background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07);backdrop-filter:blur(14px)}.glass-nav{background:rgba(13,13,13,.92);border-bottom:1px solid rgba(255,255,255,.05);backdrop-filter:blur(16px)}.nav-link{color:#b5b0aa;font-size:.82rem}.nav-link:hover,.nav-link:focus-visible{color:#fff}.section{padding:6.5rem 0}.eyebrow{display:inline-flex;align-items:center;gap:.75rem;margin:0 0 1.25rem;color:#d4935e;font-size:.7rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}.eyebrow:before{content:'';width:2.5rem;height:1px;background:#c17f4a}.section-title{margin:0;font-family:'Cormorant Garamond',serif;font-size:clamp(2.7rem,6vw,4.5rem);line-height:1;letter-spacing:-.025em}.reveal{opacity:0;transition:opacity .8s,transform .8s cubic-bezier(.22,1,.36,1)}.reveal.up{transform:translateY(40px)}.reveal.left{transform:translateX(-50px)}.reveal.visible{opacity:1;transform:none}.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}.d5{transition-delay:.4s}.d6{transition-delay:.48s}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.25rem;padding:.9rem 1.6rem;border-radius:999px;font-weight:700}.primary-button{background:#c17f4a;color:#0d0d0d;border:0}.primary-button:hover{background:#d4935e}.secondary-button{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09)}.service-card,.process-card,.faq-item,.contact-card{border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.025);border-radius:1.2rem}.service-card{overflow:hidden;transition:.35s}.service-card:hover{transform:translateY(-6px);border-color:rgba(193,127,74,.25)}.service-img{width:100%;aspect-ratio:4/2.8;object-fit:cover}.service-card h3,.process-card h3{font-family:'Cormorant Garamond',serif;font-size:1.55rem;margin:0 0 .6rem}.service-card p,.process-card p{margin:0;color:#8e8880;line-height:1.7;font-size:.9rem}.development-label{display:inline-block;margin-bottom:.7rem;padding:.35rem .65rem;border-radius:999px;background:rgba(193,127,74,.13);color:#d4935e;font-size:.66rem;font-weight:700;text-transform:uppercase}.process-card{padding:1.5rem}.process-card>span{display:flex;width:3rem;height:3rem;align-items:center;justify-content:center;border-radius:999px;background:rgba(193,127,74,.12);color:#d4935e;font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:700;margin-bottom:1rem}.gallery-filter{border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.035);color:#8e8880;padding:.65rem 1rem;border-radius:999px;font-size:.72rem;font-weight:700;text-transform:uppercase}.gallery-filter.active{background:#c17f4a;color:#0d0d0d;border-color:#c17f4a}.gallery-item{border:0;padding:0;border-radius:1rem;overflow:hidden;background:transparent}.gallery-item img{width:100%;aspect-ratio:1;object-fit:cover;transition:.4s}.gallery-item:hover img{transform:scale(1.04)}.gallery-item.is-hidden{display:none}.faq-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;background:transparent;color:#fff;border:0;padding:1.3rem;text-align:left;font-weight:600}.faq-icon{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:999px;background:rgba(193,127,74,.1);color:#d4935e;transition:.25s}.faq-answer{max-height:0;overflow:hidden;transition:max-height .35s}.faq-answer p{margin:0;padding:0 1.3rem 1.3rem;color:#8e8880;line-height:1.75}.faq-item.active .faq-answer{max-height:18rem}.faq-item.active .faq-icon{transform:rotate(45deg)}.contact-card{display:flex;gap:1rem;align-items:center;padding:1.2rem}.contact-card i{color:#d4935e}.contact-card span{display:block;color:#6e685f;font-size:.72rem;text-transform:uppercase}.contact-card strong{display:block;margin-top:.2rem}.back-to-top{position:fixed;right:1.25rem;bottom:1.25rem;z-index:40;width:3rem;height:3rem;border:0;border-radius:999px;background:#c17f4a;color:#0d0d0d;opacity:0;pointer-events:none;transform:translateY(12px);transition:.25s}.back-to-top.visible{opacity:1;pointer-events:auto;transform:none}.lightbox{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;background:rgba(6,6,6,.95);visibility:hidden;opacity:0;padding:1.25rem;transition:.25s}.lightbox.active{visibility:visible;opacity:1}.lightbox img{max-height:82vh;border-radius:1rem}.lightbox-close{position:absolute;top:1.25rem;right:1.25rem;width:2.8rem;height:2.8rem;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:#fff}.lightbox p{position:absolute;bottom:1.5rem}:focus-visible{outline:2px solid #d4935e;outline-offset:3px}@media(max-width:767px){.section{padding:5rem 0}.glass,.glass-nav{backdrop-filter:blur(8px)}.reveal{opacity:1;transform:none;transition:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1!important;transform:none!important}}

/* ===== Editorial inspiration pass (layout only; existing palette preserved) ===== */
.editorial-band{position:relative;padding:1.5rem 0 7rem;background:#0d0d0d;overflow:hidden}.editorial-photo{position:relative;min-height:520px;overflow:hidden;border-radius:28px 0 0 28px}.editorial-photo img{width:100%;height:100%;min-height:520px;object-fit:cover;display:block}.editorial-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 35%,rgba(13,13,13,.15))}.editorial-photo-shape{position:absolute;right:-1px;bottom:-1px;width:44%;height:44%;background:#0d0d0d;clip-path:ellipse(88% 70% at 100% 100%);z-index:2}.editorial-copy{display:flex;flex-direction:column;justify-content:center;padding:4.75rem 4rem;background:#151310;border:1px solid rgba(255,255,255,.055);border-left:0;border-radius:0 28px 28px 0}.editorial-copy .section-title{margin-top:1rem}.editorial-copy>p:not(.eyebrow){margin-top:1.6rem;max-width:34rem;color:#8e8880;line-height:1.85}.editorial-link{display:inline-flex;align-items:center;gap:.75rem;width:max-content;margin-top:2.2rem;padding-bottom:.55rem;border-bottom:1px solid #c17f4a;color:#f7f6f5;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em;transition:.25s}.editorial-link:hover{gap:1rem;color:#d4935e}

/* ===== Booking experience ===== */
.booking-section{background:#0d0d0d}.booking-shell{display:grid;overflow:hidden;border:1px solid rgba(255,255,255,.065);border-radius:30px;background:#151310;box-shadow:0 35px 90px rgba(0,0,0,.28)}.booking-visual{position:relative;min-height:560px}.booking-visual img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.88) contrast(1.02)}.booking-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(13,13,13,.94) 0%,rgba(13,13,13,.18) 62%,rgba(13,13,13,.08) 100%)}.booking-visual-overlay{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:2.2rem}.booking-visual-overlay h2{max-width:30rem;font-size:clamp(2.1rem,4vw,3.55rem);line-height:1.03;color:#f7f6f5}.booking-visual-overlay>p:last-child{margin-top:1rem;max-width:31rem;color:#b5b0aa;line-height:1.7}.booking-panel{padding:2.25rem}.booking-intro{margin-top:1rem;color:#8e8880;line-height:1.75}.booking-form{margin-top:2rem;display:grid;gap:1rem}.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.booking-form label{display:block;margin-bottom:.55rem;color:#eceae8;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.booking-form input,.booking-form select,.booking-form textarea{width:100%;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.035);padding:.92rem 1rem;color:#f7f6f5;transition:border-color .2s,box-shadow .2s,background .2s}.booking-form input::placeholder,.booking-form textarea::placeholder{color:#6e685f}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:rgba(193,127,74,.65);background:rgba(255,255,255,.05);box-shadow:0 0 0 3px rgba(193,127,74,.09);outline:0}.booking-submit{justify-content:center;width:100%;margin-top:.25rem}.booking-status{display:none;border:1px solid rgba(193,127,74,.25);border-radius:16px;background:rgba(193,127,74,.07);padding:1rem 1.1rem;color:#b5b0aa;font-size:.9rem;line-height:1.65}.booking-status.visible{display:block}.booking-status strong{color:#f7f6f5}.booking-status .booking-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1rem}.booking-status a,.booking-status button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:999px;padding:.7rem 1rem;font-size:.78rem;font-weight:700}.booking-status a{background:#c17f4a;color:#0d0d0d}.booking-status button{border:1px solid rgba(255,255,255,.12);background:transparent;color:#f7f6f5}.booking-status.is-error{border-color:rgba(196,106,84,.4);background:rgba(196,106,84,.08)}.booking-status.is-error strong{color:#e2a393}.mobile-book-bar{display:none}
.hp-field{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.turnstile-wrap{min-height:65px;max-width:100%;overflow-x:hidden}
.booking-submit[disabled]{opacity:.55;cursor:not-allowed}
.turnstile-block{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02);border-radius:14px;padding:1.1rem 1.1rem 1.25rem;margin-top:.25rem}
.turnstile-heading{margin:0 0 .3rem;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#eceae8}
.turnstile-copy{margin:0 0 .85rem;color:#8e8880;font-size:.85rem;line-height:1.6}
.turnstile-config-notice{margin:.75rem 0 0;padding:.75rem .9rem;border-radius:10px;background:rgba(196,106,84,.08);border:1px solid rgba(196,106,84,.3);color:#e2a393;font-size:.8rem;line-height:1.55}

/* ===== Secure contact reveal ===== */
.contact-reveal-card{display:flex;gap:1rem;align-items:center;padding:1.2rem;width:100%;text-align:left;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.025);border-radius:1.2rem;color:#f7f6f5;cursor:pointer;transition:border-color .2s,background .2s;min-height:44px}
.contact-reveal-card:hover,.contact-reveal-card:focus-visible{border-color:rgba(193,127,74,.35);background:rgba(255,255,255,.045)}
.contact-reveal-card i{color:#d4935e;font-size:1.1rem}
.contact-reveal-label{display:block;color:#6e685f;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.contact-reveal-value{display:block;margin-top:.2rem;font-weight:600;word-break:break-word}
.contact-reveal-hint{display:block;margin-top:.15rem;color:#6e685f;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.contact-reveal-card[data-state="verifying"] .contact-reveal-value{color:#8e8880}
.contact-reveal-card[data-state="revealed"]{cursor:pointer}
.contact-verify-panel{margin-top:1.5rem;max-width:32rem;margin-left:auto;margin-right:auto;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.02);border-radius:16px;padding:1.25rem}
.contact-reveal-status{min-height:1.4rem;margin-top:1rem;text-align:center;color:#8e8880;font-size:.85rem}
.contact-reveal-status.is-error{color:#e2a393}

/* Slightly more editorial spacing, while preserving current design tokens */
.section-title{max-width:18ch}.text-center .section-title{margin-left:auto;margin-right:auto}.service-card{position:relative}.service-card h3{line-height:1.15}.process-card{min-height:230px;display:flex;flex-direction:column}.process-card p{margin-top:auto}.gallery-item{border-radius:18px}

/* ===== Broken image fallback ===== */
.image-load-failed{background:#151310;min-height:120px;object-fit:contain;padding:1rem;opacity:.6}

/* ===== Toast notification ===== */
.toast{position:fixed;left:50%;bottom:1.5rem;z-index:120;max-width:min(92vw,22rem);padding:.9rem 1.15rem;border-radius:14px;background:#1a1816;border:1px solid rgba(193,127,74,.35);box-shadow:0 18px 40px rgba(0,0,0,.35);transform:translate(-50%,12px);opacity:0;visibility:hidden;transition:opacity .25s,transform .25s;pointer-events:none}.toast p{margin:0;color:#f7f6f5;font-size:.86rem;line-height:1.5}.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}.toast.hide{opacity:0;visibility:hidden}.toast[data-type="success"]{border-color:rgba(193,127,74,.55)}
@media(max-width:767px){.toast{bottom:5.6rem}}

@media(min-width:1024px){.booking-shell{grid-template-columns:.9fr 1.1fr}.booking-panel{padding:4rem}.booking-visual-overlay{padding:3.2rem}}
@media(max-width:1023px){.editorial-band{padding-bottom:5.5rem}.editorial-photo{border-radius:24px 24px 0 0;min-height:420px}.editorial-photo img{min-height:420px}.editorial-copy{border-left:1px solid rgba(255,255,255,.055);border-top:0;border-radius:0 0 24px 24px;padding:3rem 2rem}.booking-visual{min-height:430px}.booking-panel{padding:2rem}}
@media(max-width:767px){body{padding-bottom:72px}.editorial-band{padding-top:.5rem}.editorial-photo{min-height:340px}.editorial-photo img{min-height:340px}.editorial-copy{padding:2.25rem 1.4rem}.editorial-copy .section-title{font-size:2.45rem}.booking-shell{border-radius:22px}.booking-visual{min-height:360px}.booking-visual-overlay{padding:1.5rem}.booking-visual-overlay h2{font-size:2.35rem}.booking-panel{padding:1.5rem}.booking-grid{grid-template-columns:1fr}.mobile-book-bar{position:fixed;left:1rem;right:1rem;bottom:max(1rem,env(safe-area-inset-bottom));z-index:55;display:flex;align-items:center;justify-content:center;gap:.65rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#c17f4a;padding:.92rem 1rem;color:#0d0d0d;font-size:.9rem;font-weight:800;box-shadow:0 14px 36px rgba(0,0,0,.34);transition:opacity .2s,transform .2s}.back-to-top{bottom:5.4rem!important}body.suppress-sticky-cta .mobile-book-bar{opacity:0;pointer-events:none;transform:translateY(.5rem)}}

/* ===== Mobile navigation overlay =====
   Rebuilt so the panel scrolls internally instead of overflowing into
   its own header/CTA rows on short viewports (landscape phones). */
.mobile-menu{position:fixed;inset:0;z-index:60;background:rgba(13,13,13,.98);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
.mobile-menu.open{opacity:1;visibility:visible}
.mobile-menu-inner{display:flex;flex-direction:column;height:100vh;height:100dvh;padding:1.35rem 1.5rem calc(1.1rem + env(safe-area-inset-bottom));overflow-y:auto}
.mobile-menu-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:1rem}
.mobile-menu-brand{display:flex;align-items:center;gap:.65rem}
.mobile-menu-mark{display:flex;height:2.35rem;width:2.35rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:.65rem;background:#c17f4a;color:#0d0d0d;font-family:'Cormorant Garamond',serif;font-size:1.05rem;font-weight:700}
.mobile-menu-brand-text{display:flex;flex-direction:column;line-height:1.2}
.mobile-menu-brand-name{font-family:'Cormorant Garamond',serif;font-size:1.05rem;font-weight:600}
.mobile-menu-brand-sub{font-size:.58rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#d4935e}
.mobile-menu-close{display:flex;flex-shrink:0;align-items:center;justify-content:center;height:2.75rem;width:2.75rem;border-radius:.75rem;font-size:1.05rem;color:#f7f6f5}
.mobile-menu-links{display:flex;flex:1;flex-direction:column;justify-content:center;gap:clamp(.2rem,2.2vh,1rem);min-height:0;padding:1rem 0}
.mobile-menu-links .mobile-link{font-family:'Cormorant Garamond',serif;font-size:clamp(1.3rem,6.5vh,2rem);font-weight:600;line-height:1.25;padding:.3rem 0;color:#f7f6f5}
.mobile-menu-links .mobile-link:hover,.mobile-menu-links .mobile-link:focus-visible{color:#d4935e}
.mobile-menu-cta{display:grid;flex-shrink:0;gap:.65rem;padding-top:.75rem}
.mobile-menu-cta .mobile-link{font-family:Inter,system-ui,sans-serif;font-size:.92rem}
@media(max-height:480px){.mobile-menu-inner{padding-top:1rem;padding-bottom:1rem}.mobile-menu-links{padding:.5rem 0;gap:.2rem}.mobile-menu-links .mobile-link{font-size:clamp(1.05rem,5vh,1.4rem);padding:.2rem 0}.mobile-menu-cta .mobile-link{min-height:2.6rem}.mobile-menu-mark{height:2.1rem;width:2.1rem;font-size:.95rem}}
@media(min-width:1280px){.mobile-menu{display:none}}
