:root{--black:#000;--wine:#7a0019;--wine-light:#9d1733;--white:#f8f6f3;--muted:rgba(248,246,243,.68);--line:rgba(255,255,255,.14);--glass:rgba(255,255,255,.07);--gold:#e4c177;--radius:24px;font-family:Inter,system-ui,sans-serif;color:var(--white);background:var(--black)}*{box-sizing:border-box}html{scroll-behavior:smooth;background:#000}body{margin:0;background:radial-gradient(circle at 80% 0,rgba(122,0,25,.22),transparent 25rem),#000;color:var(--white);overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.skip-link{position:fixed;top:-4rem;left:1rem;z-index:20;background:#fff;color:#000;padding:.8rem 1rem;border-radius:99px}.skip-link:focus{top:1rem}.booking-header{position:fixed;z-index:10;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:calc(16px + env(safe-area-inset-top)) max(20px,4vw) 16px;background:linear-gradient(#000b,transparent);backdrop-filter:blur(12px)}.brand{font:600 clamp(1rem,3vw,1.3rem)/1 'Cormorant Garamond',serif;letter-spacing:.08em}.brand span{color:#d8adb6;font:600 .52em/1 Inter,sans-serif;letter-spacing:.2em}.booking-header nav{display:flex;align-items:center;gap:clamp(10px,2vw,26px);font-size:.78rem}.booking-header nav>a:not(.header-book){display:none;color:var(--muted)}.header-book,.button{min-height:48px;border:1px solid transparent;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.75rem 1.15rem;font-weight:600;cursor:pointer;transition:transform .2s ease,background .2s ease,border .2s ease}.header-book,.button-primary{background:var(--wine);color:white}.button:hover,.header-book:hover{transform:translateY(-2px)}.button-secondary{background:#ffffff08;border-color:var(--line);color:white}.booking-hero{min-height:72dvh;position:relative;display:grid;align-items:end;overflow:hidden}.hero-image,.hero-scrim{position:absolute;inset:0}.hero-image{background:url('/images/beach-pre-wedding-desktop.webp') center center/cover;transform:scale(1.04);animation:zoom 12s ease-out both}.hero-scrim{background:linear-gradient(90deg,rgba(0,0,0,.75),rgba(0,0,0,.2)),linear-gradient(0deg,#000,transparent 60%)}.hero-content{position:relative;z-index:1;max-width:720px;padding:9rem max(20px,7vw) 5rem}.eyebrow{margin:0 0 .7rem;color:var(--gold);font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.booking-hero h1,.flow-intro h2,.confirmation h2{font:500 clamp(2.65rem,9vw,5.3rem)/.95 'Cormorant Garamond',serif;letter-spacing:-.04em;margin:0}.booking-hero h1 em{color:#edc7cf;font-style:italic}.hero-content>p:not(.eyebrow),.flow-intro>p:not(.eyebrow){max-width:560px;color:var(--muted);line-height:1.65;margin:1.3rem 0 1.8rem}.booking-shell{width:min(100% - 32px,1120px);margin:auto;padding:clamp(64px,10vw,130px) 0 calc(90px + env(safe-area-inset-bottom))}.flow-intro{max-width:720px}.flow-intro h2{font-size:clamp(2.4rem,6vw,4.2rem)}.progress-wrap{margin:2.5rem 0}.progress-bar{height:3px;background:#ffffff1a;overflow:hidden}.progress-bar span{display:block;width:14.28%;height:100%;background:linear-gradient(90deg,var(--wine),#e3a8b5);transition:width .35s ease}.progress-wrap p{color:var(--muted);font-size:.8rem;margin-top:.75rem}.booking-step{display:none;padding:clamp(22px,5vw,40px);border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,#ffffff0c,#ffffff04);box-shadow:0 25px 70px #0006}.booking-step.is-active{display:block;animation:step-in .4s ease both}.step-heading{display:flex;gap:16px;align-items:flex-start;margin-bottom:28px}.step-heading>span{display:grid;place-items:center;flex:0 0 42px;height:42px;border:1px solid #dcb0ba73;border-radius:50%;color:#efbdc7;font:500 1.2rem 'Cormorant Garamond',serif}.step-heading h3{font:500 clamp(2rem,5vw,3rem)/1 'Cormorant Garamond',serif;margin:0}.service-grid,.package-grid,.addon-grid{display:grid;grid-template-columns:1fr;gap:12px}.choice{position:relative;display:block;min-height:104px;padding:18px;border:1px solid var(--line);border-radius:18px;background:#0005;cursor:pointer;overflow:hidden;transition:border .2s,transform .2s,background .2s}.choice:hover{transform:translateY(-2px);border-color:#d9a3b0}.choice input{position:absolute;opacity:0}.choice:has(input:checked){border-color:#dba3b0;background:linear-gradient(120deg,#7a001970,#ffffff08)}.choice strong,.choice small{display:block;position:relative;z-index:1}.choice strong{font:500 1.35rem 'Cormorant Garamond',serif}.choice small{margin-top:4px;color:var(--muted);font-size:.75rem}.service-icon{float:right;font-size:1.5rem}.package-card{min-height:235px}.package-card b{display:block;margin:13px 0;color:#fff;font-size:1.55rem}.package-card ul{margin:10px 0 0;padding:0;list-style:none;color:var(--muted);font-size:.75rem;line-height:1.7}.package-card li::before{content:'✓';color:var(--gold);padding-right:6px}.form-grid{display:grid;gap:16px}.form-grid label{display:grid;gap:7px;color:#eee;font-size:.78rem;font-weight:600}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid var(--line);border-radius:13px;background:#0008;color:#fff;padding:13px;outline:none}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#e0abb6;box-shadow:0 0 0 3px #7a001944}.wide{grid-column:1/-1}.addon-choice{min-height:78px}.addon-choice strong{font-family:Inter,sans-serif;font-size:.9rem}.step-note,.fine-print{color:var(--muted);font-size:.84rem;line-height:1.6}.calendar{display:grid;gap:10px}.calendar-head{display:flex;align-items:center;justify-content:space-between}.calendar-head button{border:0;background:none;color:white;font-size:1.4rem;min-width:44px;min-height:44px;cursor:pointer}.calendar-days,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-days span{text-align:center;color:var(--muted);font-size:.65rem}.calendar-date{aspect-ratio:1;border:1px solid transparent;background:#ffffff08;color:white;border-radius:10px;cursor:pointer}.calendar-date:hover,.calendar-date.is-selected{background:var(--wine);border-color:#e6a9b6}.calendar-date.is-unavailable{background:#7a00194a;color:#ffffff6e;text-decoration:line-through;cursor:not-allowed}.calendar-date:disabled{opacity:.6}.summary-card{display:grid;gap:14px;padding:22px;border-radius:18px;background:#0008;border:1px solid var(--line)}.summary-row{display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:.88rem}.summary-total{padding-top:18px;border-top:1px solid var(--line);color:#fff;font-size:1rem}.summary-total strong{font-size:clamp(1.6rem,6vw,2.4rem);font-weight:500}.payment-methods{border:0;padding:0;margin:0}.payment-methods legend{font-size:.85rem;margin-bottom:14px;color:var(--muted)}.payment-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.payment-choice{min-height:70px;text-align:center}.payment-choice strong{font:600 .82rem Inter,sans-serif}.consent{display:flex;gap:10px;margin:24px 0;color:var(--muted);font-size:.82rem;line-height:1.5}.consent input{accent-color:var(--wine);width:18px;height:18px;flex:0 0 auto}.secure-badge{display:flex;gap:12px;align-items:center;padding:16px;border:1px solid #d9a3b052;border-radius:16px;background:#7a001926;color:#edbac4;font-size:1.3rem}.secure-badge span{display:grid;gap:3px;color:var(--muted);font-size:.74rem}.secure-badge strong{color:white}.form-actions{display:flex;justify-content:space-between;gap:12px;margin-top:22px}.form-actions .button{min-width:126px}.form-actions .button-secondary{visibility:hidden}.confirmation{text-align:center;padding:clamp(40px,8vw,84px) 20px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,#7a001942,#ffffff08);box-shadow:0 25px 70px #0006}.confirmation h2{font-size:clamp(2.6rem,6vw,4.5rem)}.confirmation>p:not(.eyebrow):not(.fine-print){max-width:570px;margin:18px auto;color:var(--muted);line-height:1.65}.confirmation-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:24px}.mobile-book{position:fixed;z-index:9;left:16px;right:16px;bottom:calc(12px + env(safe-area-inset-bottom));min-height:52px;display:flex;align-items:center;justify-content:center;background:var(--wine);border:1px solid #e9aebc66;border-radius:999px;box-shadow:0 14px 38px #0009;font-weight:700}@keyframes zoom{to{transform:scale(1.1)}}@keyframes step-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media(min-width:576px){.service-grid,.addon-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.payment-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:768px){.booking-header nav>a:not(.header-book){display:block}.booking-hero{min-height:85vh}.mobile-book{display:none}.service-grid{grid-template-columns:repeat(3,1fr)}.package-grid{grid-template-columns:repeat(3,1fr)}.addon-grid{grid-template-columns:repeat(3,1fr)}.booking-shell{padding-bottom:100px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
