.booking-section{margin:2rem 0;padding:1.5rem;border:1px solid var(--border,#deded4);border-radius:16px;background:var(--surface,#fff)}.booking-section h2{margin-top:0}.booking-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}.booking-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin:.7rem 0}.booking-tags span{font-size:.8125rem;padding:.3rem .6rem;background:#edf2ec;color:#25493b;border-radius:99px}.booking-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:.8rem;gap:.8rem;margin:1rem 0}.booking-facts div{min-width:0;border-bottom:1px solid #e6e8df;padding-bottom:.65rem}.booking-facts dt,.port-times dt{font-size:.8125rem;color:var(--muted,#666)}.booking-facts dd,.port-times dd{margin:.25rem 0 0;font-size:.9rem}.booking-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1rem;gap:1rem}.booking-photo-grid figure{margin:0}.booking-photo-grid img{width:100%;height:180px;object-fit:cover;border-radius:10px}.booking-photo-grid img.floor-plan{object-fit:contain;background:#f7f6f1}.booking-photo-grid figcaption,.enriched-itinerary figcaption,.route-map figcaption{font-size:.8125rem;color:var(--muted,#666);padding-top:.4rem;line-height:1.4}.cabin-reference-card{padding:1.2rem 0;border-top:1px solid #e6e8df}.cabin-reference-card h3{margin-top:0}.cabin-reference-card details{margin-top:.8rem}.cabin-reference-card summary{cursor:pointer;font-weight:600}.cabin-inline-summary{padding:.8rem;background:#f5f6ef;border-radius:10px;margin:1rem 0}.cabin-inline-summary p{margin:.35rem 0}.cabin-inline-summary img{width:100%;max-height:160px;object-fit:cover;border-radius:8px}.fare-option-label{font-weight:600;color:#285247}.room-total{margin:.7rem 0;font-size:.85rem;color:#285247}.inclusion-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1.5rem;gap:1.5rem}.inclusion-columns h3{font-size:1rem;margin-top:0}.inclusion-columns ul{padding-left:1.15rem;font-size:.9rem;line-height:1.6}.venue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem}.venue-card{padding:1rem;background:#f6f7f1;border-radius:12px}.venue-card h3{margin:.4rem 0}.venue-card p{margin-bottom:.5rem}.route-map{margin:1.5rem 0}.route-map svg{width:100%;height:auto;max-height:360px}.itinerary-context{margin-bottom:1.5rem}.enriched-itinerary .itinerary-stop-content{display:flex;gap:1.25rem;align-items:flex-start}.enriched-itinerary .itinerary-stop-content figure{margin:0;width:170px;flex:0 0 170px}.enriched-itinerary .itinerary-stop-content img{width:100%;height:115px;object-fit:cover;border-radius:10px}.enriched-itinerary .itinerary-stop-content>div{flex:1 1}.port-times{display:flex;gap:2rem;flex-wrap:wrap;margin:1rem 0}.itinerary-sea{background:#f0f5f4;border-radius:12px}.ship-gallery-cabins img.floor-plan{object-fit:contain;background:#f8f7f0}.official-resource-links{display:flex;gap:1rem;flex-wrap:wrap;margin:1rem 0}@media (max-width:720px){.booking-section{padding:1rem}.booking-facts,.booking-photo-grid,.inclusion-columns,.venue-grid{grid-template-columns:1fr}.booking-photo-grid img{height:220px}.enriched-itinerary .itinerary-stop-content{flex-direction:column;gap:.65rem}.enriched-itinerary .itinerary-stop-content figure{width:100%;flex-basis:auto}.enriched-itinerary .itinerary-stop-content img{height:170px}}.gallery-image-button{padding:0;border:0;background:transparent;display:block;width:100%;cursor:zoom-in;border-radius:10px}.gallery-image-button:focus-visible{outline:3px solid #256b60;outline-offset:4px}.gallery-image-button img{display:block}.ship-gallery--hero{margin-bottom:16px}.ship-gallery--hero .ship-gallery-exterior{height:300px}.ship-gallery-exterior .gallery-image-button{height:100%}@media (max-width:720px){.ship-gallery--hero .ship-gallery-exterior{height:220px}}.photo-dialog{width:min(920px,calc(100vw - 2rem));max-height:92vh;border:1px solid #deded4;border-radius:16px;padding:1rem;background:#fff}.photo-dialog::-webkit-backdrop{background:rgba(9,29,27,.75)}.photo-dialog::backdrop{background:rgba(9,29,27,.75)}.photo-dialog figure{margin:.75rem 0}.photo-dialog figure img{width:100%;max-height:65vh;object-fit:contain;background:#f5f5ee}.photo-dialog figcaption{font-size:.85rem;padding-top:.75rem}.photo-dialog-controls,.photo-dialog-toolbar{display:flex;justify-content:space-between;gap:1rem;align-items:center}.photo-dialog button{padding:.6rem .85rem;border:1px solid #b7c7c1;border-radius:8px;background:#f5f7f0;color:#25493b;cursor:pointer}.cabin-guide-category{margin:.75rem 0;border:1px solid #e0e6dd;border-radius:10px;padding:.85rem}.cabin-guide-category>summary{cursor:pointer;font-weight:600;line-height:1.5}.cabin-guide-category>.cabin-reference-card{margin-top:.75rem;padding-top:1rem}.fare-groups{display:grid;grid-gap:1rem;gap:1rem}.fare-group{border:1px solid #dce3d8;border-radius:14px;background:#fff;padding:1rem 1.25rem}.fare-group-summary{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;cursor:pointer}.fare-group-summary h3{margin:0}.fare-group-summary>div:last-child{max-width:350px}.fare-group-summary .price{display:block;font-size:1.6rem;margin-top:.3rem}.fare-group-summary .basis{font-size:.8125rem;line-height:1.5}.fare-group[open]>.fare-card-grid{border-top:1px solid #e2e7df;padding-top:1rem;margin-top:1rem}.fare-group-summary:after{content:"+";font-size:1.5rem;color:#285247}.fare-group[open]>.fare-group-summary:after{content:"−"}@media (max-width:720px){.fare-group{padding:1rem}.fare-group-summary{align-items:flex-start;flex-wrap:wrap;gap:.8rem}.fare-group-summary>div{width:100%}.fare-group-summary:after{position:absolute;right:1rem}.fare-group-summary{position:relative;padding-right:1.5rem}}