@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Inter:opsz,wght@14..32,300;14..32,400;14..32,500;14..32,600;14..32,700&display=swap";:root{--sand: #f5e6d3;--sand-light: #faf3eb;--sand-dark: #d4c5b0;--ocean: #0077b6;--ocean-dark: #005f8a;--ocean-light: #90e0ef;--foam: #caf0f8;--coral: #e76f51;--coral-dark: #c45a3f;--palm: #2d6a4f;--palm-light: #40916c;--available: #2ecc71;--booked: #bdc3c7;--selected: #e76f51;--text-dark: #1a1a2e;--text-muted: #6c757d;--text-light: #adb5bd;--white: #ffffff;--bg: #faf3eb;--card-bg: #ffffff;--border: #e8ddd0;--shadow-xs: 0 1px 3px rgba(0, 0, 0, .06);--shadow: 0 2px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .12);--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--radius-xl: 24px;--font-display: "Playfair Display", Georgia, "Times New Roman", serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--text-dark);background:var(--bg);line-height:1.6;overflow-x:hidden}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.25;color:var(--text-dark)}h1{font-size:1.85rem}h2{font-size:1.5rem}h3{font-size:1.15rem}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;gap:1rem;color:var(--text-muted);font-size:.9rem}.page-center{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--ocean);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.5rem;border:none;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s,transform .15s,box-shadow .2s;text-decoration:none;-webkit-tap-highlight-color:transparent}.btn-primary{background:var(--ocean);color:var(--white);box-shadow:0 2px 8px #0077b640}.btn-primary:hover:not(:disabled){background:var(--ocean-dark);box-shadow:0 4px 14px #0077b64d;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-secondary{background:transparent;color:var(--ocean);border:2px solid var(--ocean)}.btn-secondary:hover{background:var(--foam)}.btn-lg{padding:.9rem 2rem;font-size:1rem;border-radius:var(--radius)}.btn-cta{background:linear-gradient(135deg,var(--ocean) 0%,#0096c7 100%);color:var(--white);box-shadow:0 4px 15px #0077b659;font-size:1.05rem;padding:1rem 2rem;border-radius:var(--radius)}.btn-cta:hover:not(:disabled){box-shadow:0 6px 20px #0077b673;transform:translateY(-2px)}.btn-cta:active:not(:disabled){transform:translateY(0)}.btn-block{width:100%}.btn-back{display:inline-flex;align-items:center;gap:.35rem;background:none;border:none;color:var(--text-muted);font-family:var(--font-body);font-size:.9rem;font-weight:500;cursor:pointer;padding:.5rem .65rem;border-radius:var(--radius-sm);text-decoration:none;-webkit-tap-highlight-color:transparent;flex-shrink:0}.btn-back:hover{color:var(--text-dark);background:var(--sand)}.btn-spinner{display:inline-block;width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.card{background:var(--card-bg);border-radius:var(--radius-lg);padding:2rem;box-shadow:var(--shadow)}.error-card{max-width:420px;text-align:center}.error-card h2{color:var(--coral);margin-bottom:.75rem}.error-card p{color:var(--text-muted);margin-bottom:1.5rem}.landing-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.landing-hero{position:relative;min-height:340px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;color:var(--white)}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(170deg,#012a4a,#013a63,#01497c 40%,#0077b6 65%,#0096c7 80%,#00b4d8)}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 600px 400px at 25% 60%,rgba(144,224,239,.12) 0%,transparent 70%),radial-gradient(ellipse 500px 300px at 75% 30%,rgba(202,240,248,.08) 0%,transparent 70%);animation:caustics 8s ease-in-out infinite alternate}@keyframes caustics{0%{transform:scale(1) translate(0)}to{transform:scale(1.1) translate(15px,-8px)}}.hero-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;overflow:hidden}.hero-scene svg{width:100%;height:100%}.dhow-drift{animation:drift 20s ease-in-out infinite alternate}@keyframes drift{0%{transform:translate(950px,230px)}to{transform:translate(920px,228px)}}.hero-inner{position:relative;z-index:2;padding:3rem 2rem 5rem}.brand-title{font-family:var(--font-display);font-size:4.5rem;font-weight:700;letter-spacing:.22em;margin-bottom:.35rem;text-shadow:0 2px 20px rgba(0,0,0,.2);line-height:1;color:var(--white)}.brand-divider{width:60px;height:2px;background:#fff6;margin:.75rem auto;border-radius:2px}.brand-subtitle{font-family:var(--font-body);font-size:.95rem;font-weight:300;letter-spacing:.4em;text-transform:uppercase;opacity:.75}.hero-tagline{font-family:var(--font-display);font-size:1.15rem;font-weight:400;font-style:italic;opacity:.65;margin-top:1rem;letter-spacing:.02em}.header-waves{position:absolute;bottom:0;left:0;width:100%;height:140px;overflow:hidden;z-index:3}.header-waves svg{position:absolute;bottom:0;left:0;width:200%;height:100%}.wave{animation:wave-scroll 7s linear infinite}.wave-back{animation:wave-scroll 14s linear infinite reverse}.wave-mid{animation:wave-scroll 10s linear infinite}.wave-foam{animation:wave-scroll 8s linear infinite}@keyframes wave-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.features-strip{display:flex;justify-content:center;gap:2rem;padding:1.25rem 1.5rem;background:var(--white);border-bottom:1px solid var(--border);flex-wrap:wrap}.feature{display:flex;align-items:center;gap:.5rem;font-size:.82rem;font-weight:600;color:var(--text-muted)}.feature-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--foam);color:var(--ocean);flex-shrink:0}.landing-main{flex:1;max-width:780px;width:100%;margin:0 auto;padding:2rem 1.5rem 3rem}.booking-form-card{background:var(--card-bg);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden;margin-bottom:2.5rem}.booking-step{padding:1.5rem 1.75rem;border-bottom:1px solid var(--border)}.booking-step:last-child{border-bottom:none}.booking-step.step-disabled{opacity:.45;pointer-events:none}.step-header{display:flex;align-items:center;gap:.85rem;margin-bottom:1rem}.step-number{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--ocean);color:var(--white);font-weight:700;font-size:.85rem;flex-shrink:0}.step-title{font-family:var(--font-body);font-size:.95rem;font-weight:600;color:var(--text-dark);margin:0;line-height:1.2}.step-number-muted{background:var(--text-light)}.step-desc{font-size:.78rem;color:var(--text-muted);margin:0;line-height:1.3}.time-slots-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem}.time-slot-card{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:1rem .75rem;border:2px solid var(--border);border-radius:var(--radius);background:var(--white);cursor:pointer;transition:border-color .2s,background .2s,transform .15s,box-shadow .2s;-webkit-tap-highlight-color:transparent;font-family:var(--font-body);text-align:center}.time-slot-card:hover{border-color:var(--ocean-light);background:var(--foam)}.time-slot-card.active{border-color:var(--ocean);background:linear-gradient(135deg,var(--foam) 0%,#e0f4ff 100%);box-shadow:0 0 0 3px #0077b61f;transform:scale(1.02)}.slot-icon{font-size:1.5rem;line-height:1;margin-bottom:.15rem}.slot-name{font-weight:700;font-size:.95rem;color:var(--text-dark)}.time-slot-card.active .slot-name{color:var(--ocean-dark)}.slot-time{font-size:.75rem;color:var(--text-muted);font-weight:500}.slot-rate{font-size:1.1rem;font-weight:700;color:var(--ocean);margin-top:.25rem}.slot-rate-label{font-size:.65rem;color:var(--text-light);text-transform:uppercase;letter-spacing:.04em}.time-slot-card.expired{opacity:.45;cursor:not-allowed;background:#f5f5f5;border-color:#e0e0e0}.time-slot-card.expired:hover{transform:none;border-color:#e0e0e0;background:#f5f5f5}.slot-expired-label{font-size:.78rem;font-weight:600;color:var(--text-light);margin-top:.25rem}.booking-step-summary{padding:1.25rem 1.75rem 1.5rem;background:linear-gradient(to right,var(--sand-light),var(--foam));display:flex;flex-direction:column;gap:1rem}.summary-chips{display:flex;flex-wrap:wrap;gap:.5rem}.summary-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;background:var(--white);border-radius:20px;font-size:.8rem;font-weight:500;color:var(--text-dark);border:1px solid var(--border)}.summary-chip svg{color:var(--ocean);flex-shrink:0}.summary-chip.accent{background:var(--ocean);color:var(--white);border-color:var(--ocean);font-weight:700}.loading-brand{text-align:center;margin-bottom:.5rem}.date-strip-wrapper{position:relative;display:flex;align-items:center;gap:0}.date-strip-arrow{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:50%;background:var(--card-bg);color:var(--text-muted);cursor:pointer;flex-shrink:0;box-shadow:var(--shadow-xs);border:1px solid var(--border);transition:background .15s,color .15s;-webkit-tap-highlight-color:transparent;z-index:2}.date-strip-arrow:hover{background:var(--sand);color:var(--text-dark)}.date-strip-arrow.left{margin-right:-6px}.date-strip-arrow.right{margin-left:-6px}.date-strip{display:flex;gap:.5rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;padding:.5rem .25rem;flex:1;min-width:0}.date-strip::-webkit-scrollbar{display:none}.date-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:72px;padding:.65rem .5rem;border:2px solid transparent;border-radius:var(--radius);background:var(--white);cursor:pointer;transition:all .2s ease;scroll-snap-align:center;-webkit-tap-highlight-color:transparent;gap:.1rem;flex-shrink:0;font-family:var(--font-body);box-shadow:var(--shadow-xs);position:relative}.date-card:hover{border-color:var(--ocean-light);background:var(--foam);transform:translateY(-2px)}.date-card.active{border-color:var(--ocean);background:var(--ocean);color:var(--white);transform:translateY(-3px);box-shadow:0 4px 14px #0077b64d}.date-card.today:not(.active){border-color:var(--ocean-light)}.date-card.weekend:not(.active){background:#fef9f3}.date-card-day{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;opacity:.7}.date-card.active .date-card-day{opacity:.85;color:var(--white)}.date-card-num{font-size:1.35rem;font-weight:700;line-height:1.1;color:var(--text-dark)}.date-card.active .date-card-num{color:var(--white)}.date-card-month{font-size:.68rem;font-weight:500;color:var(--text-muted)}.date-card.active .date-card-month{color:#fffc}.date-card-today{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ocean);margin-top:.1rem}.date-card.active .date-card-today{color:#ffffffe6}.calendar{width:100%;-webkit-user-select:none;user-select:none}.calendar-header{display:flex;align-items:center;justify-content:space-between;padding:0 .25rem;margin-bottom:.75rem}.calendar-title{font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--text-dark)}.calendar-nav{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s;-webkit-tap-highlight-color:transparent}.calendar-nav:hover:not(:disabled){background:var(--sand);color:var(--text-dark)}.calendar-nav:disabled{opacity:.3;cursor:not-allowed}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:0;margin-bottom:.35rem}.calendar-weekday{text-align:center;font-size:.72rem;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.04em;padding:.35rem 0}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:transparent;font-family:var(--font-body);font-size:.88rem;font-weight:500;color:var(--text-dark);cursor:pointer;transition:background .15s,color .15s,transform .1s;-webkit-tap-highlight-color:transparent;position:relative}.calendar-day:hover:not(:disabled):not(.outside):not(.selected){background:var(--sand)}.calendar-day.today{color:var(--ocean);font-weight:700}.calendar-day.today:after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--ocean)}.calendar-day.selected{background:var(--ocean);color:var(--white);font-weight:700;transform:scale(1.05);box-shadow:0 2px 8px #0077b64d}.calendar-day.outside{color:var(--border);cursor:default}.calendar-day.disabled{color:var(--text-light);opacity:.4;cursor:not-allowed}.calendar-day.disabled:hover{background:transparent}.zone-preview{margin-top:.5rem;text-align:center}.zone-preview h3{font-size:1.3rem;margin-bottom:.3rem}.zone-preview-desc{font-size:.88rem;color:var(--text-muted);margin-bottom:1.25rem}.zone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}.zone-card{background:var(--card-bg);border-radius:var(--radius);padding:1.15rem .75rem;text-align:center;box-shadow:var(--shadow-xs);border:1px solid var(--border);display:flex;flex-direction:column;gap:.2rem;transition:transform .2s,box-shadow .2s,border-color .2s;cursor:default}.zone-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--zone-color, var(--ocean))}.zone-letter{font-family:var(--font-display);font-size:1.65rem;font-weight:700;color:var(--zone-color, var(--ocean));line-height:1.1}.zone-count{font-size:.78rem;color:var(--text-muted);font-weight:500}.zone-desc{font-size:.72rem;color:var(--text-light)}.landing-footer{text-align:center;padding:1.5rem 2rem;border-top:1px solid var(--border);background:var(--white)}.footer-link{display:inline-block;color:var(--ocean);font-size:.88rem;font-weight:500;margin-bottom:.5rem;text-decoration:none}.footer-link:hover{text-decoration:underline}.footer-copy{color:var(--text-light);font-size:.78rem;letter-spacing:.05em}.page-header{display:flex;align-items:center;gap:1rem;padding:.85rem 1.25rem;background:var(--card-bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50;box-shadow:var(--shadow-xs)}.header-info h1{font-size:1.25rem}.date-display{font-size:.82rem;color:var(--ocean);font-weight:500;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.header-slot-badge{display:inline-flex;align-items:center;padding:.15rem .55rem;background:var(--foam);color:var(--ocean-dark);border-radius:20px;font-size:.72rem;font-weight:600;border:1px solid rgba(0,119,182,.15)}.select-seats-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.select-layout{flex:1;display:flex;gap:0;min-height:0}.map-section{flex:1;padding:1rem;display:flex;flex-direction:column;min-height:0;overflow:hidden}.map-legend{display:flex;gap:1.25rem;padding:.65rem 1rem;background:var(--card-bg);border-radius:var(--radius-sm);margin-bottom:.75rem;box-shadow:var(--shadow-xs);border:1px solid var(--border);flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-muted);font-weight:500}.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.legend-dot.available{background:var(--available)}.legend-dot.booked{background:var(--booked)}.legend-dot.selected{background:var(--selected)}.selection-sidebar{width:320px;padding:1.25rem;background:var(--card-bg);border-left:1px solid var(--border);display:flex;flex-direction:column;gap:1rem;overflow-y:auto}.empty-selection{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;padding:2rem;color:var(--text-light);font-size:.9rem;line-height:1.5}.beach-map-container{position:relative;flex:1;min-height:0}.map-zoom-controls{position:absolute;top:.5rem;right:.5rem;z-index:20;display:flex;flex-direction:column;gap:4px;background:var(--card-bg);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:4px;border:1px solid var(--border)}.zoom-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:6px;background:transparent;color:var(--text-dark);cursor:pointer;transition:background .15s;-webkit-tap-highlight-color:transparent}.zoom-btn:hover:not(:disabled){background:var(--sand)}.zoom-btn:disabled{opacity:.3;cursor:not-allowed}.zoom-btn.zoom-reset{border-top:1px solid var(--border)}.beach-map-scroll{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;border-radius:var(--radius);box-shadow:var(--shadow);background:#fdf6ee}.beach-map-svg{width:100%;height:auto;min-height:450px;min-width:600px;display:block}.wave-line{animation:wave-drift 6s ease-in-out infinite alternate}.wave-2{animation-delay:-2s;animation-duration:8s}@keyframes wave-drift{0%{transform:translate(-3px)}to{transform:translate(3px)}}.zone-label{font-family:var(--font-body);font-size:11px;font-weight:700;fill:var(--ocean);opacity:.55;text-transform:uppercase;letter-spacing:.08em;pointer-events:none}.zone-count-label{font-family:var(--font-body);font-size:7.5px;font-weight:500;fill:var(--text-light);pointer-events:none}.landmark-label{font-family:var(--font-body);font-size:7.5px;font-weight:600;fill:var(--text-muted);pointer-events:none}.seat-node{cursor:pointer;-webkit-tap-highlight-color:transparent}.seat-node.unavailable{cursor:default;opacity:.4}.seat-node .umbrella-visual{transition:transform .2s ease;transform-origin:0 0}.seat-node.available:hover .umbrella-visual{transform:scale(1.2)}.seat-node.selected .umbrella-visual{transform:scale(1.15)}.seat-label{font-family:var(--font-body);font-size:6px;font-weight:600;fill:var(--text-muted);pointer-events:none;opacity:.7}.seat-node.available:hover .seat-label,.seat-node.selected .seat-label{opacity:1;fill:var(--text-dark)}.selection-ring{animation:pulse-ring 2s ease-in-out infinite}@keyframes pulse-ring{0%,to{opacity:.8;r:20}50%{opacity:.4;r:22}}.seat-tooltip{position:absolute;background:var(--card-bg);border-radius:var(--radius-sm);padding:.6rem .8rem;box-shadow:var(--shadow-lg);pointer-events:none;z-index:100;min-width:145px;border:1px solid var(--border);animation:tooltipIn .15s ease}@keyframes tooltipIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.tooltip-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.3rem}.tooltip-header strong{font-size:.92rem;font-family:var(--font-body)}.tooltip-badge{font-size:.68rem;font-weight:600;padding:.12rem .45rem;border-radius:20px;text-transform:uppercase;letter-spacing:.03em}.tooltip-badge.available{background:#d4edda;color:#155724}.tooltip-badge.unavailable{background:#f8d7da;color:#721c24}.tooltip-body{display:flex;gap:.5rem;font-size:.76rem;color:var(--text-muted);flex-wrap:wrap}.tooltip-rate{font-weight:600;color:var(--ocean)}.tooltip-hint{font-size:.7rem;color:var(--text-light);margin-top:.3rem;font-style:italic}.pricing-summary h3{font-family:var(--font-body);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.65rem}.pricing-list{display:flex;flex-direction:column;gap:0;margin-bottom:.65rem}.pricing-item{display:flex;justify-content:space-between;align-items:center;padding:.45rem 0;border-bottom:1px solid var(--border)}.pricing-item:last-child{border-bottom:none}.pricing-seat{display:flex;align-items:center;gap:.45rem;font-weight:500;font-size:.88rem}.pricing-dot{width:8px;height:8px;border-radius:50%;background:var(--selected);flex-shrink:0}.pricing-remove{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:50%;background:#fef2f2;color:#ef4444;cursor:pointer;flex-shrink:0;transition:background .15s,transform .1s;-webkit-tap-highlight-color:transparent;padding:0}.pricing-remove:hover{background:#fee2e2;transform:scale(1.1)}.pricing-zone{font-size:.75rem;color:var(--text-light);font-weight:400}.pricing-rate{font-size:.88rem;font-weight:600;color:var(--ocean)}.pricing-total{display:flex;justify-content:space-between;font-weight:700;font-size:1.02rem;padding-top:.65rem;border-top:2px solid var(--text-dark)}.booking-details-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.details-layout{flex:1;display:flex;gap:0;max-width:1100px;width:100%;margin:0 auto}.details-form{flex:1;padding:2rem;display:flex;flex-direction:column;gap:1.5rem}.details-sidebar{width:340px;padding:1.5rem;background:var(--sand-light);border-left:1px solid var(--border)}.booking-summary-card{position:sticky;top:80px}.booking-summary-card h3{font-family:var(--font-body);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:1rem}.summary-date{display:flex;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--border);color:var(--text-dark);font-weight:500;font-size:.9rem}.summary-date svg{color:var(--ocean);flex-shrink:0}.summary-slot{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border);color:var(--text-dark);font-weight:500;font-size:.9rem}.summary-slot svg{color:var(--ocean);flex-shrink:0}.form-section h3{font-family:var(--font-body);font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--text-dark)}.form-group{display:flex;flex-direction:column;gap:.3rem}.form-group label{font-size:.82rem;font-weight:600;color:var(--text-muted)}.form-group input,.form-group textarea,.form-group select{padding:.75rem .9rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.92rem;color:var(--text-dark);background:var(--white);transition:border-color .2s,box-shadow .2s;-webkit-appearance:none}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--ocean);box-shadow:0 0 0 3px #0077b61f}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-light)}.form-hint{font-size:.75rem;color:var(--text-light);margin-top:.1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-error{background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-sm);padding:.75rem 1rem;color:#dc2626;font-size:.88rem;font-weight:500}.terms-section{border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;background:var(--sand-light)}.terms-content{max-height:150px;overflow-y:auto;font-size:.82rem;color:var(--text-muted);margin-bottom:1rem;line-height:1.55}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.88rem;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--ocean);flex-shrink:0}.confirmation-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:2rem;background:linear-gradient(to bottom,var(--foam) 0%,var(--bg) 40%)}.confirmation-card{background:var(--card-bg);border-radius:var(--radius-xl);padding:2.5rem;box-shadow:var(--shadow-lg);max-width:520px;width:100%;text-align:center}.confirmation-card.compact{text-align:left}.confirmation-icon{margin-bottom:1rem}.confirmation-card h1{font-size:1.65rem;margin-bottom:.4rem}.confirmation-subtitle{color:var(--text-muted);margin-bottom:1.5rem;font-size:.92rem}.reference-box{background:linear-gradient(135deg,var(--sand) 0%,var(--sand-light) 100%);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.5rem;display:flex;flex-direction:column;gap:.3rem;align-items:center;border:1px solid var(--border)}.reference-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.reference-code{font-family:var(--font-display);font-size:1.65rem;font-weight:700;color:var(--ocean);letter-spacing:.06em}.confirmation-details{text-align:left;margin-bottom:1.5rem}.detail-row{display:flex;justify-content:space-between;padding:.6rem 0;border-bottom:1px solid var(--border);gap:1rem}.detail-row.total{border-bottom:none;border-top:2px solid var(--text-dark);padding-top:.75rem;margin-top:.25rem;font-weight:700;font-size:1.02rem}.detail-label{color:var(--text-muted);font-size:.86rem;flex-shrink:0}.detail-value{font-weight:500;font-size:.86rem;text-align:right;word-break:break-word}.status-badge{background:var(--foam);color:var(--ocean);padding:.2rem .65rem;border-radius:20px;font-size:.78rem;font-weight:600}.confirmation-note{background:var(--foam);border-radius:var(--radius-sm);padding:1rem;margin-bottom:1.5rem;font-size:.84rem;color:var(--ocean-dark);line-height:1.5}.confirmation-note p+p{margin-top:.35rem}.confirmation-actions{display:flex;gap:.75rem;justify-content:center}.lookup-page{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.lookup-content{max-width:520px;width:100%;margin:2rem auto;padding:0 1.5rem}.lookup-form{background:var(--card-bg);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow);display:flex;gap:1rem;align-items:flex-end;margin-bottom:1.5rem}.lookup-form .form-group{flex:1}.lookup-result{animation:fadeUp .3s ease}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.brand-title{font-size:3rem}.brand-subtitle{font-size:.82rem;letter-spacing:.25em}.hero-inner{padding:2.5rem 1.5rem 4.5rem}.hero-tagline{font-size:1rem}.landing-hero{min-height:280px}.features-strip{gap:1rem;padding:1rem}.feature{font-size:.78rem}.feature-icon{width:30px;height:30px}.feature-icon svg{width:16px;height:16px}.zone-grid{grid-template-columns:repeat(3,1fr);gap:.6rem}.zone-card{padding:.85rem .5rem}.zone-letter{font-size:1.4rem}.select-layout{flex-direction:column}.map-section{flex:none;height:auto;max-height:60vh;min-height:300px}.map-zoom-controls{flex-direction:row;top:auto;bottom:.5rem;right:.5rem}.zoom-btn{width:40px;height:40px}.zoom-btn.zoom-reset{border-top:none;border-left:1px solid var(--border)}.selection-sidebar{width:100%;border-left:none;border-top:2px solid var(--border);flex:1;max-height:none;padding:1rem 1.25rem}.details-layout{flex-direction:column}.details-sidebar{width:100%;border-left:none;border-top:1px solid var(--border);padding:1.25rem}.details-form{padding:1.25rem}.form-row{grid-template-columns:1fr}.confirmation-card{padding:1.75rem;border-radius:var(--radius-lg)}.confirmation-actions{flex-direction:column}.lookup-form{flex-direction:column;align-items:stretch}.date-strip-arrow{display:none}.date-card{min-width:66px;padding:.55rem .4rem}.date-card-num{font-size:1.2rem}.calendar-day{font-size:.85rem}.calendar-title{font-size:1rem}.booking-step{padding:1.25rem}.time-slots-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.booking-step-summary{padding:1rem 1.25rem}}@media (max-width: 480px){html{font-size:15px}.brand-title{font-size:2.5rem;letter-spacing:.15em}.brand-subtitle{font-size:.75rem;letter-spacing:.2em}.hero-inner{padding:2rem 1rem 4rem}.hero-tagline{font-size:.9rem}.landing-hero{min-height:240px}.features-strip{gap:.5rem}.feature span{display:none}.feature-icon{width:36px;height:36px}.landing-main{padding:0 1rem 2rem}.zone-grid{grid-template-columns:repeat(2,1fr)}h1{font-size:1.4rem}h2,.hero-text h2{font-size:1.3rem}.hero-text p{font-size:.88rem}.date-form{padding:1.25rem}.page-header{padding:.75rem 1rem;gap:.65rem}.header-info h1{font-size:1.15rem}.map-legend{gap:.6rem;padding:.55rem .75rem;justify-content:center}.legend-item{font-size:.75rem}.map-section{padding:.5rem;max-height:55vh;min-height:260px}.beach-map-svg{min-width:500px}.selection-sidebar{padding:.85rem 1rem}.calendar-nav{width:32px;height:32px}.calendar-day{font-size:.82rem}.confirmation-card{padding:1.25rem}.reference-code{font-size:1.4rem}.pricing-item{padding:.35rem 0}.pricing-seat,.pricing-rate{font-size:.84rem}}@supports (padding-top: env(safe-area-inset-top)){.landing-header{padding-top:calc(2rem + env(safe-area-inset-top))}.page-header{padding-top:calc(.85rem + env(safe-area-inset-top))}}
