:root {
  --ink:#29154f; --muted:#645674; --purple:#5128b4; --deep:#321770;
  --aqua:#007e98; --mint:#94e6ec; --line:#ded5ec; --canvas:#f4effb;
  --soft:#eee7fb; --white:#fff; --radius:16px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--canvas);color:var(--ink);font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
::selection{background:var(--mint);color:var(--ink)}
html{scrollbar-color:#8971b5 var(--canvas)}
a{color:var(--purple);text-underline-offset:4px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
button,input,select{font:inherit}
button,a,input,select,summary{touch-action:manipulation}
:focus-visible{outline:3px solid var(--aqua);outline-offset:4px}
h2:focus{outline:0}
button{cursor:pointer}
button:disabled,select:disabled{cursor:wait;opacity:.6}
[hidden]{display:none!important}
.preview{display:flex;align-items:center;justify-content:center;gap:12px;background:#21113e;color:#ebddff;font-size:11px;padding:7px 20px}
.preview strong{font-weight:500;color:white}
header{background:var(--deep);padding:26px max(6%,calc((100% - 1120px)/2));display:flex;justify-content:space-between;align-items:center;gap:25px}
.brand{line-height:0;display:block}
.brand img{width:235px;height:auto}
header>a:last-child{font-size:14px;color:white;padding:10px 0}
main{max-width:1320px;margin:auto}
.welcome-hero{display:grid;grid-template-columns:1.15fr 1fr;gap:64px;align-items:center;padding:80px 7% 86px;background:var(--purple);color:white;border-bottom:6px solid var(--mint)}
.welcome-copy h1{font:clamp(40px,4.15vw,57px)/1.08 Georgia,serif;letter-spacing:-.035em;margin:0 0 28px;text-wrap:balance}
.welcome-copy h1 em{color:var(--mint)}
.welcome-copy>p{font-size:17px;line-height:1.8;color:#f2eaff;margin:0;max-width:380px}
.date-picker{padding:34px;background:white;color:var(--ink);border-radius:var(--radius);box-shadow:0 18px 40px #21113e24}
h2{font:30px/1.22 Georgia,serif;margin:0 0 14px;letter-spacing:-.015em;text-wrap:balance}
h3{font-size:15px;margin:0 0 10px}
.date-picker>p{font-size:14px;color:var(--muted);margin:0 0 23px}
label{display:block;font-size:14px;font-weight:600;margin:21px 0 8px}
input:not([type=checkbox]),select{width:100%;min-height:52px;padding:12px 14px;border:1px solid #b5a6c8;border-radius:8px;background:white;color:var(--ink);caret-color:var(--purple)}
input:not([type=checkbox]):hover,select:hover{border-color:var(--purple)}
input:focus,select:focus{border-color:var(--purple)}
.date-picker select{min-height:60px;border:2px solid var(--aqua);background:#f1fbfc;font-size:16px}
.hint{font-size:12px!important;line-height:1.6;color:var(--muted);margin:8px 0 18px!important}
.date-picker .hint{margin:17px 0 0!important;font-size:12px!important}
#selection-message{background:var(--soft);padding:12px;border-radius:8px;margin:16px 0 0;font-size:14px}
.intro{display:grid;grid-template-columns:.87fr 1.13fr;align-items:start;gap:50px;padding:52px 7% 70px;scroll-margin-top:24px}
.chosen-title{font:39px/1.12 Georgia,serif;margin:0 0 27px;letter-spacing:-.025em}
.chosen-title em{color:var(--aqua)}
.voyage{background:var(--aqua);color:white;padding:29px;border-radius:var(--radius)}
.voyage p{margin:2px 0;font-size:14px;color:#e3faff}
.voyage h2{font-size:29px;color:white;margin:8px 0}
.voyage hr{border:0;border-top:1px solid #75c6d5;margin:24px 0}
.voyage strong{display:block;font-size:17px;line-height:1.5}
.voyage #explanation{font-size:13px;margin-top:12px}
.card-faq{margin:25px 0}
.card-faq h3{font:24px/1.25 Georgia,serif;margin:0 0 19px;color:white;text-wrap:balance}
.card-faq dl{margin:0}
.card-faq dt{font-size:15px;font-weight:650;line-height:1.5;margin:20px 0 6px}
.card-faq dd{font-size:14px;line-height:1.7;color:white;margin:0}
.voyage .faq-limits,.voyage .faq-tip{font-size:13px;line-height:1.7;color:white;margin:20px 0 0}
.personal{font-size:13px;color:var(--muted);margin:25px 5px 0}
.personal span{display:block;font:italic 20px/1.5 Georgia,serif;color:var(--purple);margin-top:16px}
.formside{background:white;padding:32px;border-radius:var(--radius);box-shadow:0 14px 35px #32177008}
.steps{display:flex;gap:12px;justify-content:space-between;padding:0;margin:0 0 31px;list-style:none;border-bottom:1px solid var(--line);font-size:12px}
.steps li{display:flex;align-items:center;gap:7px;padding-bottom:14px;color:var(--muted);position:relative}
.steps .step-number{display:grid;place-items:center;border:1px solid var(--line);width:23px;height:23px;border-radius:50%;font-size:11px;flex-shrink:0}
.steps [aria-current]{font-weight:700;color:var(--purple)}
.steps [aria-current]:after{content:'';position:absolute;height:3px;background:var(--aqua);bottom:-1px;left:0;right:0}
.steps [aria-current] .step-number{background:var(--purple);color:white;border-color:var(--purple)}
.steps [data-done=true] .step-number{color:var(--aqua);border-color:var(--aqua);background:#e6f8fa}
form section>p,#complete>p{color:var(--muted);font-size:14px;margin:0 0 24px}
.formside h2{font-size:29px}
.check{display:flex;align-items:flex-start;gap:12px;font-size:14px;font-weight:400;line-height:1.6;margin:22px 0;padding:14px 0;cursor:pointer}
.check input{width:20px;height:20px;margin:2px 0 0;flex:0 0 20px;accent-color:var(--purple)}
button{min-height:52px;padding:13px 20px;border:1px solid var(--purple);border-radius:8px;background:var(--purple);color:white;font-size:14px;font-weight:600}
button:hover{background:#3c198c;border-color:#3c198c}
button:active{transform:translateY(1px)}
section>button{width:100%;display:flex;justify-content:space-between;align-items:center}
.actions{display:flex;gap:12px;margin-top:24px}
.actions>button:last-child{flex:1}
.back{background:white;color:var(--purple);border-color:var(--line)}
.back:hover{background:var(--soft);border-color:var(--line)}
.columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.optional{font-weight:400;color:var(--muted)}
.note{background:#f1f8fa;border-radius:8px;padding:16px;font-size:12px!important;margin-top:24px!important}
.review{background:#f5f1fb;padding:22px;border-radius:12px;margin:20px 0 28px}
.review p{white-space:pre-line;font-size:14px;margin:0}
.textbutton{min-height:44px;background:transparent;border:0;color:var(--purple);padding:10px 0;text-decoration:underline;text-underline-offset:4px}
.textbutton:hover{background:transparent;color:#321770}
.terms{padding-left:19px;font-size:13px;line-height:1.7}
.terms li{padding-left:3px;margin-bottom:12px}
details{font-size:13px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
summary{font-weight:600;cursor:pointer}
#signature{font:italic 23px Georgia,serif;min-height:58px}
#notice{color:#77371f;background:#fff0e9;padding:15px;border-radius:8px;font-size:14px;margin-bottom:23px}
[aria-invalid=true]:not([type=checkbox]){border:2px solid #a74730}
.field-error{font-size:12px;color:#983a23;margin:7px 0 0}
.seal{width:58px;height:58px;display:grid;place-items:center;background:#ddf7f4;color:#086f69;border-radius:50%;margin:0 0 24px}
.seal svg{width:28px;height:28px}
footer{max-width:1160px;display:flex;align-items:center;gap:28px;margin:auto;padding:35px 30px;color:var(--muted);font-size:12px}
footer img{width:165px;height:auto}
footer span{flex:1}
/* Once selected, the welcome becomes a compact sailing switcher. */
.has-sailing .welcome-hero{padding-top:25px;padding-bottom:25px;gap:40px}
.has-sailing .welcome-copy h1{font-size:29px;margin:0}
.has-sailing .welcome-copy>p,.has-sailing .date-picker>h2,.has-sailing .date-picker>p:not(#selection-message){display:none}
.has-sailing .date-picker{padding:0;background:transparent;box-shadow:none;color:white}
.has-sailing .date-picker label{margin:0 0 7px}
.has-sailing .date-picker select{min-height:49px;background:white;border-color:white}
@media(min-width:1321px){.welcome-hero{border-radius:0 0 22px 22px}}
@media(max-width:1050px){.welcome-hero{gap:30px;padding:55px 5%}.welcome-copy h1{font-size:43px}.intro{gap:28px;padding:38px 5%}.formside{padding:26px}.steps{gap:6px}.steps li{gap:4px;font-size:11px}}
@media(max-width:750px){
 header{padding:22px 6%;gap:20px}.brand img{width:190px}header>a:last-child{font-size:12px;max-width:96px;text-align:right}
 .preview{font-size:11px;gap:9px;padding:6px 10px}
 .welcome-hero{grid-template-columns:1fr;gap:29px;padding:38px 6% 38px}
 .welcome-copy h1{font-size:41px;line-height:1.1;letter-spacing:-.03em;margin-bottom:20px;text-wrap:initial}
 .welcome-copy>p{font-size:15px;line-height:1.7}
 .date-picker{padding:25px 22px}.date-picker h2{font-size:27px}.date-picker>p{margin-bottom:20px}
 .intro{grid-template-columns:1fr;gap:24px;padding:26px 5% 40px}
 .chosen-title,.personal{display:none}
 .voyage{padding:23px}.voyage h2{font-size:26px}.voyage hr{margin:16px 0}.voyage strong{font-size:16px}
 .formside{padding:26px 20px}.formside h2{font-size:27px}
 .steps{gap:8px;margin-bottom:28px}.steps li{font-size:11px;gap:5px}.steps .step-number{width:21px;height:21px}
 .columns{gap:12px}.actions{gap:9px}.actions button{padding:12px}
 footer{padding:28px 6%;flex-direction:column;gap:12px;text-align:center}footer img{width:160px}
 .has-sailing .welcome-hero{padding:22px 6%;gap:0}.has-sailing .welcome-copy{display:none}
 .check{font-size:13px}
}
@media(max-width:360px){.brand img{width:165px}.welcome-copy h1{font-size:37px}.formside{padding:22px 16px}.steps li{gap:3px}.steps .step-number{width:19px;height:19px}.columns{grid-template-columns:1fr}}
@media(prefers-reduced-motion:no-preference){
 button,input,select{transition:background-color .16s,border-color .16s}
 #sailing-content{animation:arrive .3s cubic-bezier(.16,1,.3,1)}
 @keyframes arrive{from{transform:translateY(8px)}to{transform:translateY(0)}}
}
@media print{header,.preview,.welcome-hero,.lead,.steps,footer,button{display:none!important}.intro{display:block;padding:0}.formside{box-shadow:none;padding:0}}

/* Partner introduction appears before sailing selection. */
.welcome-copy .partnership{margin:0 0 14px;font-size:17px;color:white;max-width:none}
.welcome-copy .partnership strong{font-weight:650}
.welcome-copy .partner-link{margin-top:19px;font-size:14px;color:var(--mint)}
.partner-link a{color:white;text-decoration-color:var(--mint);text-decoration-thickness:1px;padding:7px 0;display:inline-block}
.partner-link a:hover{color:var(--mint)}
@media(max-width:750px){.welcome-copy .partnership{font-size:16px}.welcome-copy .partner-link{margin-top:12px}}
.release{border:1px solid var(--line);border-radius:12px;padding:22px;margin:26px 0;background:#faf8fe}
.release h3{font:24px/1.25 Georgia,serif;margin:0 0 14px}
.release h4{font-size:14px;margin:23px 0 7px}
.release p{font-size:13px;line-height:1.75;margin:0;color:var(--ink)}
.release .release-draft{background:#fff0df;color:#744716;padding:10px 12px;border-radius:6px;margin-bottom:16px;font-weight:600}
#release-notice{font-weight:600}
.release .hint{margin-top:20px!important;margin-bottom:0!important;overflow-wrap:anywhere}

#print-record{display:none}
@media print{body>*{display:none!important}body>#print-record{display:block!important;white-space:pre-wrap;overflow-wrap:anywhere;font:10.5pt/1.4 Arial,sans-serif;color:#111;background:white;margin:0}body{background:white}@page{margin:18mm}}

@media print{#print-record p{margin:0 0 12pt;break-inside:avoid;orphans:3;widows:3}#print-record p:first-child{border-bottom:2pt solid #5128b4;padding-bottom:12pt}}

.voyage a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px}

.privacy-document{max-width:820px;margin:40px auto;padding:32px;background:white;border-radius:16px}.privacy-document h1{font:34px/1.2 Georgia,serif}.privacy-document p{white-space:pre-line;line-height:1.7}@media(max-width:750px){.privacy-document{margin:16px;padding:24px}}
