:root{font-family:Arial,sans-serif;color:#173b55;background:#f6fafb}*{box-sizing:border-box}body{margin:0}header{display:flex;justify-content:space-between;align-items:center;padding:24px 6%;background:white;border-bottom:1px solid #d9e8ee}.brand{font-family:Georgia,serif;font-size:25px;font-weight:bold;text-decoration:none;color:inherit}.brand small{display:block;font:12px Arial;letter-spacing:2px;margin-top:7px}nav{display:flex;gap:8px}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #c9dfe8;border-radius:8px;padding:12px;background:white;color:#173b55}button[aria-pressed=true],.primary{background:#406a7c;color:white}button:disabled{cursor:not-allowed;opacity:.65}main{max-width:1250px;margin:auto;padding:22px 5%}.notice{background:#e8eff3;padding:12px 16px;border-radius:8px;font-size:13px}.intro{padding:28px 0}h1{font-family:Georgia,serif;font-weight:normal;font-size:clamp(34px,5vw,58px);line-height:1.1;margin:16px 0}h2{font-family:Georgia,serif;font-weight:normal;font-size:27px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:bold}p{line-height:1.7;color:#647681}.layout{display:grid;grid-template-columns:1.7fr 1fr;gap:28px}.packages{display:grid;grid-template-columns:1fr 1fr;gap:12px}.package{text-align:left;min-height:110px;display:grid;gap:8px}.package strong{font-size:17px}.package small{font-size:12px}.panel{background:white;border:1px solid #d9e8ee;border-radius:12px;padding:25px;margin:20px 0}aside.panel{margin-top:0;align-self:start;position:sticky;top:20px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:grid;gap:8px;font-size:13px}input,select{padding:12px;border:1px solid #c9dfe8;border-radius:6px;width:100%;background:white;color:inherit}dl>div{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid #e8eff3}dd{margin:0}.subtotal{font-weight:bold}.hint{font-size:13px}.primary{width:100%;margin-bottom:20px}a{color:#406a7c}footer{display:flex;justify-content:space-between;border-top:1px solid #d9e8ee;margin-top:40px;padding:24px 0;font-size:12px}.record{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;padding:16px 0;border-bottom:1px solid #e8eff3}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #bd8b42;outline-offset:3px}[hidden]{display:none!important}@media(max-width:800px){header{align-items:start;gap:20px;flex-direction:column}.layout{grid-template-columns:1fr}aside.panel{position:static}.record{grid-template-columns:1fr}footer{gap:18px;flex-direction:column}}@media(max-width:450px){.packages,.fields{grid-template-columns:1fr}}
/* Align with the existing STX Sailing planner's final blue-and-white theme. */
.brand{display:flex;align-items:center;gap:16px}.brand img{width:82px;height:82px;object-fit:contain}.brand>span{display:block}.intro{padding:54px 38px;border-radius:12px;background:linear-gradient(90deg,#173b55e8,#173b5570),url('/assets/main-charter.jpg') center 58%/cover;margin:24px 0 36px;color:white}.intro p{color:#fff}.intro h1{font-size:clamp(34px,4.5vw,54px)}.booking-heading h2{margin:8px 0 20px}.booking-heading .eyebrow{color:#406a7c}.port{padding:18px 0;margin:18px 0;border-top:1px solid #e8eff3;border-bottom:1px solid #e8eff3;display:grid;gap:7px}.port span{font-size:10px;letter-spacing:1.5px;color:#647681}.port strong{font-weight:500}h3{font-family:Georgia,serif;font-weight:normal;font-size:21px}.month-nav{display:flex;align-items:center;justify-content:space-between}.month-nav button{font-size:25px;padding:5px 16px}.weekdays,.dates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekdays{text-align:center;color:#647681;font-size:12px;padding:12px 0}.day{min-height:59px;padding:8px 2px;background:#f2f8fa;border-color:#d9e8ee;display:grid;gap:4px}.day span{font-size:12px;color:#4c8277}.day:hover:not(:disabled){background:#deedf3}.day.chosen{background:#406a7c;color:white;border-color:#406a7c}.day.chosen span{color:white}.day:disabled{background:#f4f4f4;color:#9a9a9a;border-color:transparent;opacity:1}.day:disabled span{color:#aaa}.legend{display:flex;gap:20px;font-size:12px}.legend span:first-child{color:#4c8277}.departure-field{max-width:270px}.fields small{color:#647681;line-height:1.5}aside.panel{margin-top:63px}.notice{font-size:12px;background:transparent;padding:0}.panel{box-shadow:0 5px 20px #173b5506}@media(max-width:800px){aside.panel{margin-top:0}.intro{padding:30px 22px}.brand img{width:64px;height:64px}}@media(max-width:450px){.day{min-height:49px}.dates{gap:4px}.panel{padding:18px}}
.charter-field{grid-column:1/-1}.charter-field h3{margin:0 0 8px}.charter-boxes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 24px}.charter-card{position:relative}.charter-select{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px;text-align:left;width:100%;min-height:102px;padding:16px;background:#f5f9fb;border:1px solid #c9dfe8}.charter-select strong{font-family:Georgia,serif;font-size:19px;font-weight:normal}.charter-select small{font-size:12px}.charter-select[aria-pressed=true]{background:#406a7c;color:white}.charter-preview{display:none;position:absolute;z-index:20;top:calc(100% - 2px);left:0;width:310px;max-width:calc(100vw - 70px);background:white;color:#173b55;border:1px solid #c9dfe8;border-radius:10px;box-shadow:0 12px 35px #173b5530;overflow:hidden}.charter-card:nth-child(3n) .charter-preview{left:auto;right:0}.charter-select:hover + .charter-preview,.charter-select:focus-visible + .charter-preview{display:block}.charter-preview img{width:100%;height:155px;object-fit:cover;display:block}.charter-preview-body{padding:16px}.charter-preview h4{font-family:Georgia,serif;font-size:22px;font-weight:normal;margin:0 0 8px}.charter-preview p{font-size:13px;margin:8px 0;line-height:1.6}.charter-preview .preview-meta{font-size:12px;color:#406a7c;font-weight:bold}.charter-card.dismissed .charter-preview{display:none}@media(max-width:600px){.charter-boxes{grid-template-columns:1fr 1fr}.charter-card:nth-child(3n) .charter-preview{left:0;right:auto}.charter-card:nth-child(2n) .charter-preview{left:auto;right:0}.charter-select{min-height:100px;padding:12px}.charter-select strong{font-size:17px}}@media(hover:none){.charter-preview{position:static;width:auto;max-width:none;margin-top:8px}.charter-card:focus-within{grid-column:1/-1}.charter-card:focus-within .charter-preview{display:block}}
/* Optional extras: an accessible modal between date selection and payment. */
dialog{width:min(680px,calc(100% - 28px));max-height:90vh;overflow:auto;border:1px solid #c9dfe8;border-radius:16px;padding:30px;color:#173b55;box-shadow:0 20px 80px #173b5540}dialog::backdrop{background:#173b5577}dialog h2{font-size:33px;margin:10px 0}.dialog-close{float:right;font-size:25px;padding:3px 12px}.addon-options{display:grid;gap:12px;margin:24px 0}.addon-option{display:flex;align-items:start;gap:14px;padding:20px;border:1px solid #d9e8ee;background:#f5f9fb;border-radius:10px}.addon-option input{width:20px;height:20px;margin:2px 0;accent-color:#406a7c;flex-shrink:0}.addon-option strong{font-family:Georgia,serif;font-size:21px;font-weight:normal;display:block}.addon-option small{display:block;margin:9px 0;line-height:1.6;color:#647681}.addon-option em{font-style:normal;font-size:12px;color:#406a7c}.unavailable{background:#f4f4f4}.dialog-actions{display:flex;gap:12px;align-items:center}.dialog-actions .primary{margin:0;width:auto;flex:1}#payment-review{border-top:1px solid #d9e8ee;margin-top:24px;padding-top:10px}@media(max-width:500px){dialog{padding:20px}.dialog-actions{flex-direction:column}.dialog-actions button{width:100%!important}.addon-option{padding:16px}}
.scooter-quantity{margin-top:14px;max-width:280px}.sandwich-menu-link{padding:0 8px 12px;display:inline-block}
.sandwich-section{display:block}.sandwich-section>div{width:100%}.sandwich-row{display:grid;grid-template-columns:2fr 1fr 80px;gap:10px;padding:15px 0;border-bottom:1px solid #d9e8ee}.sandwich-row .remove-sub{grid-column:1/-1;justify-self:start;padding:6px 10px;font-size:12px}.sandwich-section h3{margin:0}.sandwich-section #add-sandwich{margin-top:15px}.sub-menu{display:grid;grid-template-columns:1fr 1fr;gap:25px}.sub-menu li{padding:7px 0}@media(max-width:500px){.sandwich-row{grid-template-columns:1fr 1fr}.sandwich-row label:first-child{grid-column:1/-1}.sub-menu{grid-template-columns:1fr}}

@media print{header,.manifest-actions{display:none}main{max-width:none;padding:0}.panel{border:0;box-shadow:none}}
/* Calendar availability colors; past dates retain their previous appearance. */
.day.available{background:#dcefdc;border-color:#a6cfa8;color:#245b36}.day.available span{color:#327548}.day.available:hover:not(:disabled){background:#c6e5c8}.day.unavailable:disabled{background:#dedede;color:#777;border-color:#d3d3d3}.day.unavailable:disabled span{color:#888}.day.chosen{background:#406a7c;border-color:#406a7c;color:#fff}.day.chosen span{color:#fff}.legend{flex-wrap:wrap}.legend .available-key{color:#327548}.legend .unavailable-key{color:#777}.legend .selected-key{color:#406a7c}
.day.unavailable{background:#dedede;color:#777;border-color:#d3d3d3}.day.unavailable span{font-size:9px;color:#626262}.day.unavailable:hover{background:#d0d0d0}
#guest-contact fieldset{border:1px solid #d9e8ee;border-radius:9px;padding:20px;margin-top:25px}#guest-contact label{margin:14px 0}#guest-contact legend{font-family:Georgia,serif;font-size:23px;color:#173b55}
#charter-review-dialog{position:fixed;inset:0;margin:auto;width:min(600px,calc(100% - 28px));max-height:85vh;max-height:85dvh}#charter-review-dialog #payment-review{border-top:0;margin-top:0;padding-top:0}#charter-review-dialog #review-trip{font-size:17px}#charter-review-dialog #review-extras{padding:16px;background:#f0f6f7;border-radius:8px}#charter-review-dialog #review-price{line-height:1.8}
.review-pricing{margin:20px 0}.review-pricing>div{gap:16px;padding:12px 0}.review-pricing dd{white-space:nowrap;font-variant-numeric:tabular-nums}.review-pricing .review-subtotal{font-weight:700;border-top:2px solid #d9e8ee}.review-pricing .review-total{font-weight:700;font-size:21px;background:#e8eff3;padding:16px 12px;border-radius:8px;margin:8px 0}.review-pricing .review-due{font-weight:700}

input[aria-invalid="true"],select[aria-invalid="true"]{border:2px solid #b23a35;background:#fff6f5}

.payment-test-page #test-items>div,.payment-totals>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:baseline}.payment-test-page #test-items dd,.payment-totals dd{text-align:right;font-weight:700;color:#173b55;white-space:nowrap;font-variant-numeric:tabular-nums}.payment-totals .payment-total-row{background:#e8eff3;border-radius:8px;padding:16px 12px;margin-bottom:8px;font-size:21px;font-weight:700}.payment-totals{margin:16px 0 24px}.payment-methods{display:grid;gap:16px;margin-top:20px}.payment-test-page #payment-container label{margin-bottom:16px}.payment-test-page aside.panel{margin-top:0}.payment-test-page fieldset{border:1px solid #d9e8ee;border-radius:10px;padding:18px}.payment-test-page fieldset label{margin:14px 0}.payment-test-page textarea{font:inherit;padding:12px;border:1px solid #c9dfe8;border-radius:6px;resize:vertical}

.addon-heading{display:flex;align-items:center;gap:16px;margin-bottom:14px}.addon-heading h3{margin:0}.addon-thumbnail{width:120px;height:90px;object-fit:cover;border-radius:8px;flex-shrink:0;border:1px solid #d9e8ee}@media(max-width:450px){.addon-thumbnail{width:96px;height:76px}.addon-heading{gap:12px}}

.planner-button{display:inline-block;padding:12px 20px;margin:10px 0 0 8px;background:#406a7c;color:white;border:1px solid #406a7c;border-radius:8px;text-decoration:none;font-weight:700}.planner-button:hover{background:#173b55;border-color:#173b55}@media(max-width:500px){.planner-button{display:block;width:fit-content;margin-left:0}}

.charter-preview img[src="/assets/five-day-beach-signpost.jpg"]{object-position:center 82%}


.cash-table-wrap{overflow-x:auto;margin-top:24px}.cash-table{width:100%;border-collapse:collapse}.cash-table th,.cash-table td{padding:16px;border-bottom:1px solid #d9e8ee;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.cash-table th:first-child{text-align:left}.cash-table thead{background:#e8eff3}.cash-table th small{display:block;font-weight:normal;font-size:12px;color:#647681;margin-top:6px}.cash-table td{color:#173b55}

.reservation-row{width:100%;text-align:left;display:block;margin:12px 0;line-height:1.8}#reservation-details dl>div{gap:20px}#reservation-details dd{max-width:65%;overflow-wrap:anywhere;text-align:right}
.captain-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:20px}.captain-calendar-day{min-height:110px;border:1px solid #c8d8df;border-radius:8px;padding:10px;overflow-wrap:anywhere}.captain-calendar-day.available{background:#edf8ef}.captain-calendar-day.booked{background:#e3f0fb}.captain-calendar-day.pending{background:#fff1d5}.captain-calendar-day.blocked{background:#e3e5e7}.captain-calendar-day small{display:block;font-size:11px;margin-top:8px}.calendar-reservation{display:block;width:100%;text-align:left;padding:6px;margin-top:8px;font-size:12px;line-height:1.5;background:white;color:#173b55}#workspace>nav{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}@media(max-width:650px){.captain-month-grid{gap:3px}.captain-calendar-day{padding:4px;min-height:85px}.calendar-reservation{font-size:10px;padding:3px}.captain-calendar-day small{font-size:9px}}
header .website-menu{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:16px 28px;margin-left:28px}
header .website-menu a{font:15px/1.5 Georgia,serif;letter-spacing:.4px;color:#8bb8d1;text-decoration:none;padding:6px 0;border-bottom:1px solid transparent;white-space:nowrap}
header .website-menu a:hover,header .website-menu a:focus-visible{color:#173b55;border-bottom-color:#173b55}
@media(max-width:1000px){header:has(.website-menu){flex-wrap:wrap;gap:22px}header .website-menu{margin-left:0;justify-content:flex-start;width:100%;gap:12px 24px}}
@media(max-width:480px){header .website-menu{gap:8px 20px}header .website-menu a{font-size:14px}}

.charter-ship-store{border:1px solid #cbdde4;border-radius:10px;margin:16px 0;padding:14px}.charter-ship-store>summary{cursor:pointer;color:#123b55;font-weight:600;padding:4px}.charter-ship-store[open]>summary{margin-bottom:16px}.charter-ship-store summary:focus-visible{outline:2px solid #167a91;outline-offset:4px}

.merchandise-color-thumbnails{display:flex;flex-wrap:wrap;gap:18px;margin:12px 0}.merchandise-color-thumbnails figure{margin:0;max-width:150px}.merchandise-color-thumbnails .addon-thumbnail{display:block;width:150px;height:120px;object-fit:contain;background:#fff}.merchandise-color-thumbnails figcaption{font-size:.85rem;margin-top:6px;color:#345367}
