@font-face{font-family:system;src:local("Arial")}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#062b42;background:#f7fafb;font:16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e8a62f;outline-offset:3px}[hidden]{display:none!important}.wrap{max-width:1250px;margin:auto;padding:0 36px}.header{display:flex;align-items:center;gap:26px;min-height:100px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:850;font-size:23px;letter-spacing:2px;line-height:1.15}.brand small{display:block;font-size:12px;letter-spacing:3px;margin-top:5px}.header nav{display:flex;gap:28px;margin-left:auto;font-size:14px;font-weight:600}.header nav a{text-decoration:none}.language select{padding:8px 10px;border:1px solid #cedde2;background:transparent;border-radius:6px;font-size:13px;max-width:135px}.header-phone{font-size:14px;font-weight:650;text-decoration:none}.hero{display:grid;grid-template-columns:1fr 1.1fr;gap:65px;padding-top:35px;padding-bottom:65px;align-items:start}.hero-copy{padding-top:34px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:750;color:#008793;margin:0 0 16px}h1{font-size:clamp(40px,4.4vw,65px);line-height:1.08;letter-spacing:-2.2px;font-weight:760;margin:0 0 25px}h2{font-size:34px;line-height:1.15;letter-spacing:-1px;margin:0 0 12px}h3{font-size:24px;line-height:1.3;margin:12px 0}.intro{max-width:400px;font-size:19px;color:#48606e;margin-bottom:30px}.hero-links{display:flex;gap:22px;align-items:center}.hours{font-size:14px;color:#59717b;margin-top:24px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border-radius:7px;padding:12px 22px;font-weight:650;font-size:15px;text-decoration:none;border:1px solid transparent;transition:background .15s}.primary{background:#008994;color:white}.primary:hover{background:#006f79}.secondary{background:transparent;color:#062b42;border-color:#b8cbd2}.secondary:hover{background:#eaf2f4}.full{width:100%}.text-link{font-size:14px;font-weight:600}.booking-card{background:#fff;border:1px solid #dce7eb;border-radius:15px;padding:28px;box-shadow:0 15px 45px #062b4209;scroll-margin-top:20px}.card-top{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:15px}.card-top .eyebrow{margin:0;font-size:11px}.badge{font-size:12px;color:#466570;background:#eef6f7;border-radius:30px;padding:4px 10px}.booking-card h2{font-size:29px}.muted{font-size:14px;color:#5d737e;margin:8px 0}.steps{display:flex;list-style:none;padding:0;margin:22px 0 24px;justify-content:space-between;gap:10px}.steps li{display:flex;align-items:center;gap:8px;font-size:12px;color:#758892}.steps b{font-weight:550}.steps span{display:grid;place-items:center;border:1px solid #dbe5e9;border-radius:50%;width:25px;height:25px;font-size:12px}.steps .active{color:#007c86}.steps .active span{background:#008994;color:white;border-color:#008994}fieldset{border:0;margin:0;padding:0;min-width:0}label{display:block;margin-bottom:15px;font-size:14px;font-weight:600}label>span{display:block;margin-bottom:5px}input,select,textarea{display:block;width:100%;min-width:0;border:1px solid #cbdbe1;border-radius:6px;padding:10px 11px;min-height:45px;background:#fff;color:#123749;font-size:15px;font-weight:400}input::placeholder,textarea::placeholder,select option{font-weight:400}textarea{resize:vertical}.two,.three{display:grid;gap:14px;grid-template-columns:1fr 1fr}.three{grid-template-columns:1.4fr 1fr .8fr}.field-note{font-size:12px;color:#607782;margin:0 0 18px;line-height:1.55}.actions{display:flex;justify-content:space-between;gap:12px}.actions .primary{flex:1}.check{display:flex;gap:10px;font-size:14px;font-weight:400}.check input{width:20px;min-height:20px;flex-shrink:0;margin-top:3px;accent-color:#008994}.summary{margin:0 0 25px}.summary dt{font-size:12px;color:#647f8b;margin-top:10px}.summary dd{margin:0;font-size:15px;overflow-wrap:anywhere}.error{font-size:14px;color:#9d2635;background:#fff0f1;padding:12px;border-radius:6px}.success-mark{display:inline-grid;place-items:center;width:55px;height:55px;background:#e4f5f1;color:#00856d;border-radius:50%;font-size:30px}.coast-banner{height:210px;background:#0a5166;position:relative;overflow:hidden;color:white}.coast-banner.has-image{background-size:cover;background-position:center 52%}.coast-banner:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#062b42bb,transparent 80%)}.coast-banner .wrap{position:relative;height:100%;display:flex;align-items:end;justify-content:space-between;padding-bottom:25px}.coast-banner span:first-child{font-size:25px;font-weight:600}.coast-banner span:last-child{font-size:12px;letter-spacing:2px}.services{padding-top:65px;padding-bottom:70px}.section-heading{max-width:550px;margin-bottom:32px}.section-heading>p:last-child{color:#57717c}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.service-card{display:flex;flex-direction:column;background:#fff;border:1px solid #dae6ea;border-radius:10px;padding:25px;min-height:230px}.service-card .service-number{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;width:32px;height:32px;flex:0 0 32px;border:1px solid #c5e4e5;border-radius:50%;background:#edf7f7;color:#006f79;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:.02em}.service-card h3{font-size:21px;margin:20px 0 10px}.service-card p{font-size:14px;color:#58727d;margin:0 0 20px}.service-card button{margin-top:auto;align-self:start;border:0;padding:0;background:none;color:#007f89;font-size:14px;font-weight:650;text-decoration:underline;text-underline-offset:4px}.contact-section{background:#062b42;color:#fff;padding:65px 0}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.contact-grid h2{font-size:43px}.contact-grid .eyebrow{color:#5dd1d9}.contact-grid p{max-width:410px;color:#bfd3db}.contact-options{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-options a{display:flex;flex-direction:column;justify-content:center;border:1px solid #325568;border-radius:8px;padding:18px;text-decoration:none;overflow-wrap:anywhere}.contact-options a:hover{background:#103b52}.contact-options span{font-size:12px;color:#7ad4dc;margin-bottom:7px}.contact-options strong{font-size:15px;font-weight:550}.footer{display:flex;justify-content:space-between;gap:20px;padding-top:25px;padding-bottom:25px;font-size:12px;color:#5d7580}.footer>div{display:flex;gap:20px}.sr,.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:absolute;top:-100px;left:20px;background:white;padding:10px;z-index:10}.skip:focus{top:15px}.admin-header{border-bottom:1px solid #d9e6eb}.admin-shell{padding-top:40px;padding-bottom:50px}.login-card{max-width:430px;margin:35px auto;background:white;padding:32px;border:1px solid #dce7eb;border-radius:12px}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px}.admin-toolbar .actions{align-items:center}.admin-toolbar h1{font-size:35px;margin:0}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #cfdee5;border-left:1px solid #cfdee5;background:white}.calendar-heading{padding:12px;font-size:13px;background:#eef5f7;border-right:1px solid #cfdee5;text-align:center}.calendar-day{min-height:115px;border-right:1px solid #cfdee5;border-bottom:1px solid #cfdee5;padding:8px;background:#fff;min-width:0}.calendar-day.outside{background:#f0f4f6}.calendar-day.today{background:#ecfaf9}.day-number{font-size:13px;font-weight:600}.calendar-item{display:block;width:100%;margin-top:5px;text-align:left;font-size:12px;line-height:1.35;border:0;border-left:3px solid #dfab39;background:#fff5d9;padding:5px;overflow-wrap:anywhere;color:#123749}.calendar-item.confirmed{border-color:#008994;background:#def5f4}.calendar-item.cancelled{border-color:#82939a;background:#edf0f2}.calendar-item.completed{border-color:#637ccc;background:#eaf0ff}.legend{display:flex;gap:15px;flex-wrap:wrap;font-size:13px;margin:15px 0}.admin-list{display:grid;gap:10px;margin-top:25px}.booking-row{width:100%;text-align:left;border:1px solid #d4e2e8;border-radius:8px;background:white;padding:18px;display:grid;grid-template-columns:130px 1fr 1fr 110px;gap:15px;font-size:14px;color:#123749}.status{font-size:12px;border-radius:20px;padding:4px 9px;background:#fff0c9;align-self:center;justify-self:start}.status.confirmed{background:#def5f4}.status.cancelled{background:#e7ecef}.status.completed{background:#eaf0ff}dialog{border:1px solid #d5e3e8;border-radius:12px;padding:28px;width:min(600px,95vw);max-height:90vh;overflow:auto;color:#062b42}dialog::backdrop{background:#062b4266}dialog .close{float:right}.admin-notice{background:#fff4d8;border-radius:8px;padding:15px;font-size:14px}.plain-page{max-width:760px;margin:50px auto;padding:0 25px}.plain-page h1{font-size:38px}.plain-page h2{font-size:24px;margin-top:30px}.empty{padding:30px;background:#fff;border:1px solid #d4e2e8;border-radius:8px;color:#5d7580}.mode-toggle{display:flex;gap:5px}.mode-toggle button.active{background:#062b42;color:white}
.coast-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 52%;z-index:0}.coast-banner:before{z-index:1}.coast-banner .wrap{z-index:2}
@media(max-width:1050px){.header-phone{display:none}.hero{gap:30px}h1{font-size:49px}.wrap{padding-left:24px;padding-right:24px}.three{grid-template-columns:1fr 1fr}.three label:last-child{grid-column:1/-1}.contact-grid{gap:35px}}
@media(max-width:760px){.header{min-height:83px;gap:12px}.header nav{display:none}.language{margin-left:auto}.brand{font-size:19px;letter-spacing:1px}.brand small{font-size:10px;letter-spacing:2px}.hero{grid-template-columns:1fr;padding-top:8px;padding-bottom:35px;gap:26px}.hero-copy{padding-top:8px}.hero-copy h1{font-size:43px;letter-spacing:-1.6px}.hero-copy h1 br{display:none}.intro{font-size:17px;margin:16px 0 20px;max-width:none}.hours{margin-top:16px}.booking-card{padding:22px}.service-grid{grid-template-columns:1fr 1fr}.contact-grid{grid-template-columns:1fr}.contact-grid h2{font-size:35px}.contact-options{gap:12px}.coast-banner{height:180px}.coast-banner .wrap{align-items:start;justify-content:end;flex-direction:column;gap:8px}.services{padding-top:40px;padding-bottom:40px}.footer{flex-direction:column;gap:10px}.admin-toolbar .actions{flex-wrap:wrap}.calendar-day{min-height:75px;padding:4px}.calendar-item{font-size:11px;padding:3px}.calendar-heading{padding:9px 0}.booking-row{grid-template-columns:1fr 1fr}.calendar{overflow-x:auto}.admin-shell{padding-top:25px}}
@media(max-width:420px){.wrap{padding-left:16px;padding-right:16px}.service-grid{grid-template-columns:1fr}.two,.three{grid-template-columns:1fr}.three label:last-child{grid-column:auto}.contact-options{grid-template-columns:1fr}.steps li{gap:5px}.steps{gap:4px}.booking-card{padding:18px}.card-top{align-items:start}.badge{font-size:11px}.hero-links{gap:15px}.hero-copy h1{font-size:38px}.admin-toolbar h1{font-size:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Coastal homepage: a cinematic hero, condensed display type and route bar. */
@font-face{font-family:Anton;src:url('/anton-latin.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
.brand-logo{width:80px;height:80px;object-fit:contain}.logo-settings{display:flex;align-items:center;gap:20px;padding:20px;background:white;border:1px solid #dce7eb;border-radius:8px;margin-bottom:30px;flex-wrap:wrap}.logo-settings p{font-size:14px;margin:5px 0 0}.logo-upload{margin:0;cursor:pointer}.logo-upload:focus-within{outline:3px solid #e8a62f;outline-offset:3px}
@media(max-width:760px){.brand.has-logo>span{display:none}.brand-logo{width:70px;height:70px}}
@font-face{font-family:'Barlow Condensed';src:url('/barlow-condensed-latin.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
.hero{display:block;position:relative;isolation:isolate;padding:0;min-height:610px;overflow:hidden;background:#063044;color:white}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 55%;z-index:-2}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#031e35b8 0%,#031e3566 48%,#031e3505 100%);z-index:-1}
.hero-inner{min-height:610px;display:flex;align-items:center;padding-top:50px;padding-bottom:95px}
.hero .hero-copy{padding:0;max-width:820px}
.hero h1{font-family:Anton,'Arial Narrow',system-ui,sans-serif;font-weight:400;font-size:clamp(4rem,6.8vw,6.5rem);line-height:1.03;letter-spacing:.015em;margin:0 0 24px;text-transform:uppercase}
.hero .eyebrow{font-size:14px;letter-spacing:3px;color:#95e6e9;margin-bottom:20px}
.hero .intro{color:#e3edf2;font-size:18px;max-width:460px;margin:0 0 22px;line-height:1.55}
.hero .hours{color:#d3e5ec;font-size:14px;margin:18px 0 0}
.hero .secondary{border-color:#c3e1e6;color:white;background:#062b4226}.hero .secondary:hover{background:#062b4280}
.hero .text-link{color:white}
.route-wrap{position:relative;margin-top:-45px;z-index:2}
.route-strip{display:grid;grid-template-columns:1.15fr 1fr 1fr auto;gap:20px;align-items:center;background:#008b97;color:white;padding:24px 30px;border-radius:8px;box-shadow:0 16px 32px #052b421f}
.route-strip h2{font-family:'Barlow Condensed',system-ui,sans-serif;font-size:34px;font-weight:700;letter-spacing:.01em;line-height:1.05;margin:0}
.route-strip label{margin:0;font-size:13px;font-weight:550}.route-strip select{border:0;min-height:48px;background:#fff;color:#062b42}
.route-strip .button{background:#062b42;color:white;border-color:#062b42;align-self:end;min-height:48px;white-space:nowrap}.route-strip .button:hover{background:#15445e}
.booking-area{padding-top:45px;padding-bottom:25px}.booking-area .booking-card{max-width:900px;margin:auto;padding:30px 36px;box-shadow:none}
.booking-area #step-1{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.booking-area #step-1>label,.booking-area #step-1>.two:first-of-type,.booking-area #step-1>.field-note,.booking-area #step-1>.button{grid-column:1/-1}
.booking-area #step-1>.three{grid-template-columns:1fr 1fr}.booking-area #step-1>.three label:last-child{grid-column:1/-1}
.booking-area .booking-card h2,.services h2,.contact-grid h2{font-family:'Barlow Condensed',system-ui,sans-serif;font-weight:700;font-size:43px;letter-spacing:0;line-height:1.05}
.service-card h3{font-family:'Barlow Condensed',system-ui,sans-serif;font-size:28px;font-weight:700;letter-spacing:0;line-height:1.1}
.services{padding-top:40px}.services .service-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.services .service-card{padding:23px 19px;min-height:260px}.services .service-card p{font-size:14px}
html[lang=zh] .hero h1{font-family:system-ui,sans-serif;font-weight:900;letter-spacing:0;font-size:clamp(3rem,6vw,5.6rem);line-height:1.18}
html[lang=zh] .booking-card h2,html[lang=zh] .service-card h3,html[lang=zh] .services h2,html[lang=zh] .contact-grid h2,html[lang=zh] .route-strip h2{font-family:system-ui,sans-serif;font-weight:750}
@media(max-width:1050px){.hero h1{font-size:5.3rem}.route-strip{gap:15px;padding:22px}.route-strip h2{font-size:30px}.services .service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.services .service-card{min-height:240px}}
@media(max-width:760px){.hero{min-height:570px}.hero-inner{min-height:570px;padding-top:38px;padding-bottom:110px;align-items:center}.hero-photo{object-position:58% 50%}.hero:after{background:linear-gradient(90deg,#031e35c4,#031e3570 70%,#031e3530)}.hero h1{font-size:clamp(3.5rem,10vw,5rem);letter-spacing:.01em}.hero-copy h1 br{display:block}.hero .intro{font-size:16px;max-width:380px}.hero .eyebrow{font-size:12px}.route-wrap{margin-top:-65px}.route-strip{grid-template-columns:1fr 1fr;gap:16px;padding:22px;border-radius:8px}.route-strip h2{grid-column:1/-1;font-size:32px}.route-strip .button{grid-column:1/-1;justify-self:stretch}.booking-area{padding-top:30px}.booking-area .booking-card{padding:24px}.booking-area #step-1{display:block}.services .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-grid h2{font-size:43px}.booking-area .booking-card h2{font-size:36px}}
@media(max-width:420px){.hero-inner{padding-top:35px;padding-bottom:105px}.hero h1{font-size:3.6rem}.hero .hero-links{gap:14px}.hero .secondary{padding:11px 15px;font-size:14px}.hero .text-link{font-size:13px}.route-strip{padding:20px 16px;gap:13px}.route-strip select{font-size:13px;padding-left:8px;padding-right:8px}.booking-area .booking-card{padding:20px}.booking-area #step-1>.three{grid-template-columns:1fr}.services .service-grid{grid-template-columns:1fr}.services .service-card{min-height:auto}.service-card h3{margin-top:10px}.hero .hours{font-size:13px}}

.location-settings{padding:24px;background:white;border:1px solid #dce7eb;border-radius:8px;margin-bottom:30px}.location-settings>p{max-width:800px;font-size:14px}.location-settings textarea{white-space:pre-wrap}
.header .language{display:flex;align-items:center;margin-bottom:0;flex-shrink:0}

/* Keep admin navigation reachable on phones. */
@media(max-width:760px){
 .admin-header{flex-wrap:wrap;padding-top:12px;padding-bottom:12px;gap:12px}
 .admin-header .brand{min-width:0;max-width:calc(100% - 108px)}
 .admin-header #logout{margin-left:auto;padding:10px 14px;font-size:14px}
 .admin-header nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));order:3;flex-basis:100%;width:100%;margin-left:0;gap:6px}
 .admin-header nav a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 6px;border:1px solid #cfdee5;border-radius:6px;font-size:13px;line-height:1.3;text-align:center;background:#fff}
 .admin-header nav a[aria-current="page"]{background:#062b42;color:#fff;border-color:#062b42}
}

#success{scroll-margin-top:20px}
