/* Shared coastal visual language for customer and operations pages. */
:root{--navy:#10384a;--teal:#087f8c;--muted:#586f78;--border:#dce8e8}
body{background:#fbfdfc;font-size:16px;-webkit-font-smoothing:antialiased}
::selection{background:#c7eeea;color:#10384a}
a,button,input,select,textarea{outline-offset:5px}
:focus-visible{outline:3px solid #1ca7ad}
.announcement{background:#103e50;color:#fff;letter-spacing:.25px;height:36px}
.announcement .pulse{background:#7ee0c9;box-shadow:0 0 0 4px #ffffff12}
.header{height:98px}.header nav a{padding:12px 0;position:relative}
.header nav a.active:after,.header nav a:hover:after{content:'';height:3px;background:var(--teal);position:absolute;bottom:3px;left:0;right:0;border-radius:2px}
.hero{border-radius:0 0 32px 32px;overflow:hidden}.hero h1{font-size:clamp(42px,4.7vw,68px);letter-spacing:-2.5px}.hero p{max-width:460px;font-size:16px}
.eyebrow{letter-spacing:2px;font-size:11px}.section-head h2{margin-top:14px;font-size:clamp(28px,3vw,40px);letter-spacing:-1.3px}.section-head p{font-size:16px}
.booking-widget{border-radius:20px;box-shadow:0 18px 48px #123b4d16}.booking-tabs{height:64px}.search-form{border-radius:12px}.search-field label{font-size:10px}
.button{border-radius:10px;box-shadow:0 4px 10px #087b8710;min-height:44px}.button.outline{background:#ffffff}.button:hover{box-shadow:0 7px 18px #087b8720}
.destination-card{border-radius:20px;box-shadow:0 8px 24px #123b4d0d}.destination-card img{transition:transform .45s ease}.destination-card:hover img{transform:scale(1.045)}.destination-tag{border-radius:30px!important;padding:8px 12px!important;background:#fffffff0!important;color:#123b4d!important;font-size:11px!important}.destination-card h3{font-size:25px;letter-spacing:-.6px}
.package-card,.destination-detail,.route-card,.sailing-card,.panel,.ticket{border-radius:18px;border-color:#dce8e8;box-shadow:0 6px 22px #123b4d07;background:#fff}
.package-card,.route-card,.destination-detail{transition:transform .2s,box-shadow .2s;overflow:hidden}.package-card:hover,.route-card:hover,.destination-detail:hover{transform:translateY(-4px);box-shadow:0 14px 32px #123b4d12}
.package-body{padding:25px}.package-body h3{font-size:22px;letter-spacing:-.5px;line-height:1.4}.package-body p{font-size:14px;line-height:1.8}.package-image img{height:250px;object-fit:cover}.package-image>span{border-radius:30px;padding:7px 12px}
.page-title{background:radial-gradient(ellipse at 95% 20%,#cdeee8 0,transparent 50%),linear-gradient(120deg,#edf7f4,#f4f9f9);border-bottom:1px solid #dceae6}.page-title h1{font-size:clamp(32px,4vw,48px);letter-spacing:-1.6px}.page-title p{max-width:720px;font-size:16px}
.field input,.field select,.field textarea{border-radius:10px;background:#fbfdfd;border-color:#cddedf;min-height:46px}.field label{font-weight:650}.badge{border-radius:20px;padding:7px 11px}.notice,.alert{border-radius:12px}
.routes-section{background:#eef6f5}.route-card{padding:26px}.route-price strong{color:var(--teal)}.benefit-icon{border-radius:16px;background:#e5f3ef}.benefits h3{font-size:14px}.benefits p{font-size:12px}
footer{background:#10384a}.footer-grid{gap:42px}footer a:hover{color:#8be4d4}.footer-bottom{line-height:1.8}
.admin-shell{background:#f1f6f6}.sidebar{background:linear-gradient(180deg,#103d50,#0b2937)}.sidebar a.menu-item{border-radius:10px}.admin-top{background:#ffffff;border-bottom:1px solid #dce8e8}.admin-title h1{letter-spacing:-1px}.admin-shell table th{background:#f1f7f6;letter-spacing:.5px}.admin-shell tbody tr:hover{background:#f7fbfa}
@media(max-width:800px){.header{height:80px}.hero{border-radius:0 0 22px 22px}.hero h1{font-size:44px}.hero p{font-size:14px;max-width:85%}.booking-tabs{gap:18px;font-size:11px;padding:0 18px}.booking-widget{border-radius:16px}.section{padding-top:44px;padding-bottom:40px}.page-title h1{font-size:32px}.destination-card h3{font-size:21px}.package-body{padding:21px}.package-image img{height:220px}.footer-grid{gap:28px}}
@media(max-width:480px){.destination-grid-featured{grid-template-columns:1fr}.destination-card{height:290px}.hero h1{font-size:39px;letter-spacing:-1.6px}.hero-caption{gap:12px}.hero-caption span+span{padding-left:12px}.booking-tabs{gap:12px}.announcement{font-size:10px}.announcement a{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
