.tw-customer{--twc-blue:#4e65f8;--twc-ink:#20283b;--twc-muted:#627087;--twc-line:#e3e8f4;color:var(--twc-ink);font-family:inherit;line-height:1.6;font-size:16px;text-align:left;box-sizing:border-box}
.tw-customer *{box-sizing:border-box}.tw-customer [hidden]{display:none!important}.tw-customer h1,.tw-customer h2,.tw-customer h3{color:var(--twc-ink);line-height:1.25;margin:0 0 16px}.tw-customer h1{font-size:clamp(28px,4vw,42px)}.tw-customer h2{font-size:25px}.tw-customer h3{font-size:20px}.tw-customer p{margin:0 0 16px}.tw-customer a{color:#364ccc;text-decoration:underline;text-underline-offset:3px}.tw-customer button,.tw-customer .twc-button{background:var(--twc-blue);border:1px solid var(--twc-blue);border-radius:8px;color:#fff;padding:12px 20px;font:inherit;font-weight:650;cursor:pointer;display:inline-block;text-decoration:none;line-height:1.4;white-space:normal}.tw-customer button:hover,.tw-customer .twc-button:hover{background:#354bdd;color:#fff}.tw-customer button:disabled{opacity:.5;cursor:wait}.tw-customer :focus-visible{outline:3px solid #2636b3;outline-offset:3px}.tw-customer label{display:block;font-weight:600;margin:0 0 15px}.tw-customer input:not([type=hidden]),.tw-customer select{width:100%;min-height:46px;margin:5px 0 0;border:1px solid #b9c3d6;border-radius:8px;background:#fff;color:var(--twc-ink);padding:10px 12px;font:inherit}.tw-customer input[type=checkbox],.tw-customer input[type=radio]{width:20px;height:20px;min-height:0;flex-shrink:0;accent-color:var(--twc-blue);margin:2px 8px 0 0}.tw-customer .twc-check,.tw-customer .twc-choices label{display:flex;align-items:flex-start;font-weight:500}.tw-customer .twc-link{border:0;padding:6px 0;background:transparent;color:#364ccc;text-decoration:underline}.tw-customer .twc-link:hover{color:#2636b3;background:transparent}.tw-customer-panel{max-width:1180px;margin:30px auto;padding:clamp(18px,4vw,48px);background:#fff;border:1px solid var(--twc-line);border-radius:24px;box-shadow:0 15px 45px #23356709}.twc-heading{margin-bottom:26px}.twc-heading>span,.twc-tag{color:#465dcc;font-size:13px;letter-spacing:.05em;font-weight:700}.twc-heading>span{display:block;margin-bottom:10px}.twc-heading p{color:var(--twc-muted)}.twc-tabs,.twc-actions,.twc-choices{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.twc-tabs button{background:#f1f3ff;color:#364ccc;border-color:#e0e5ff}.twc-tabs button[aria-pressed=true]{background:var(--twc-blue);color:#fff}.twc-form{max-width:520px;margin:15px 0 22px}.twc-form h3{margin-bottom:20px}.twc-form p{font-size:14px;color:var(--twc-muted)}.twc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.twc-card{padding:24px;background:#fff;border:1px solid var(--twc-line);border-radius:16px}.twc-card .twc-tag{margin-bottom:12px}.twc-card form{margin:12px 0 0}.twc-detail{margin-top:24px;scroll-margin-top:100px}.twc-detail>details{border-top:1px solid var(--twc-line);margin-top:22px;padding-top:20px}.tw-customer summary{cursor:pointer;font-weight:650;padding:8px 0}.twc-detail summary{margin-bottom:14px}.twc-ticket{display:flex;gap:28px;align-items:center;margin:28px 0}.twc-qr{width:230px;max-width:100%;flex-shrink:0;background:#fff}.twc-ticket .twc-button{margin-bottom:10px}.twc-callout{border-left:4px solid var(--twc-blue);background:#f3f5ff;padding:16px;border-radius:4px}.tw-customer .twc-status,.twc-global-status{font-size:14px;margin:12px 0;overflow-wrap:anywhere}.tw-customer .twc-status:empty,.twc-global-status:empty{display:none}.tw-customer .twc-error{color:#b42318}.tw-customer-header{display:flex;gap:18px;align-items:center;position:relative;font-size:15px}.twc-inline{display:inline-block;margin:0}.twc-checkout{margin-bottom:24px;padding:22px;border:1px solid var(--twc-line);border-radius:14px;background:#f8f9ff}.twc-choices label{margin:0;background:#fff;padding:12px;border:1px solid var(--twc-line);border-radius:8px}.twc-checkout h3{font-size:20px}
@media(max-width:640px){.twc-grid{grid-template-columns:1fr}.twc-ticket{flex-direction:column;align-items:flex-start}.twc-card{padding:18px}.twc-tabs{gap:8px}.twc-tabs button{flex:1;padding:10px;font-size:14px}.twc-choices{flex-direction:column}.tw-customer-header{gap:10px;font-size:14px}.twc-detail{scroll-margin-top:20px}}
/* Account navigation and a native modal above all theme stacking contexts. */
.tw-customer label{text-transform:none;letter-spacing:normal;font-size:14px}
.tw-customer-header .twc-login-trigger{font-size:13px;letter-spacing:.08em;text-transform:uppercase;padding:12px 22px;min-height:44px;box-shadow:0 5px 16px #4e65f825}
body.twc-modal-open{overflow:hidden}
dialog.twc-login-dialog{position:fixed;inset:0;margin:auto;width:440px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);padding:36px;border:1px solid #e3e8f4;border-radius:22px;background:#fff;box-shadow:0 24px 90px #101b3940;overflow:auto;overscroll-behavior:contain;z-index:2147483647}
dialog.twc-login-dialog:not([open]){display:none}
dialog.twc-login-dialog[open]{animation:twc-modal-in .24s ease-out both}
dialog.twc-login-dialog::backdrop{background:rgba(17,25,48,.58);animation:twc-backdrop-in .24s ease-out both}
dialog.twc-login-dialog.is-closing{animation:twc-modal-out .18s ease-in both}
dialog.twc-login-dialog.is-closing::backdrop{animation:twc-backdrop-out .18s ease-in both}
.twc-login-dialog .twc-form{margin:0;max-width:none}.twc-login-dialog h3{font-size:27px;padding-right:24px;margin-bottom:26px}.twc-login-dialog input:not([type=hidden]){font-size:16px;min-height:50px;box-shadow:none}.twc-login-dialog button:not(.twc-modal-close){width:100%;min-height:46px;margin-top:10px}.twc-login-dialog button[type=submit]{text-transform:uppercase;letter-spacing:.06em}.tw-customer .twc-secondary{background:#f2f4ff;color:#364ccc;border-color:#dce2ff}.tw-customer .twc-secondary:hover{background:#e7ebff;color:#2636b3}.twc-login-dialog .twc-modal-close{position:absolute;right:13px;top:11px;padding:0;width:40px;height:40px;background:transparent;border:0;color:#627087;font-size:29px;line-height:1}.twc-login-dialog .twc-modal-close:hover{background:#f2f4ff;color:#20283b}.twc-login-dialog .twc-link{font-size:14px}
.twc-account-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:start}.twc-account-content{min-width:0}.twc-sidebar{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f7f8fc;border:1px solid var(--twc-line);border-radius:16px}.twc-sidebar button{width:100%;text-align:left;background:transparent;color:var(--twc-ink);border-color:transparent;font-size:14px;letter-spacing:normal;text-transform:none;padding:13px 14px;min-height:48px}.twc-sidebar button:hover{background:#eaeeff;color:#364ccc}.twc-sidebar button[aria-pressed=true]{background:var(--twc-blue);color:#fff;box-shadow:0 4px 12px #4e65f820}.twc-sidebar-logout{border-top:1px solid var(--twc-line);padding-top:8px;margin:10px 0 0}.twc-sidebar-logout button{color:#a43339}.twc-order-list{grid-template-columns:1fr;gap:12px}.twc-order-list .twc-card{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:22px;padding:22px}.twc-order-list .twc-tag,.twc-order-list h3,.twc-order-list p{grid-column:1;margin-bottom:8px}.twc-order-list form{grid-column:2;grid-row:1 / span 4;align-self:center;margin:0}.twc-order-list button,.twc-ticket-list button{font-size:14px;text-transform:none;letter-spacing:normal}.twc-order-amount span{color:var(--twc-muted);font-size:13px;margin-right:8px}.twc-order-amount{font-weight:650}.twc-section-intro{color:var(--twc-muted);font-size:14px}.twc-ticket-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.twc-ticket-list .twc-card{padding:22px}.twc-ticket-list button{width:100%}.twc-card,.twc-profile{overflow-wrap:anywhere}.twc-detail .twc-ticket{flex-wrap:wrap}.twc-detail .twc-ticket>div{flex:1;min-width:190px}.twc-empty{padding:22px;border:1px dashed #cdd5e5;border-radius:12px;grid-column:1 / -1;color:var(--twc-muted)}
@keyframes twc-modal-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes twc-modal-out{to{opacity:0;transform:translateY(8px) scale(.985)}}@keyframes twc-backdrop-in{from{opacity:0}to{opacity:1}}@keyframes twc-backdrop-out{to{opacity:0}}
@media(max-width:900px){.twc-account-layout{grid-template-columns:190px minmax(0,1fr);gap:18px}.twc-ticket-list{grid-template-columns:1fr}.twc-order-list .twc-card{display:block}.twc-order-list form{margin-top:14px}}
@media(max-width:640px){.twc-account-layout{grid-template-columns:1fr}.twc-sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px}.twc-sidebar button{height:100%;font-size:13px;padding:11px;min-height:46px}.twc-sidebar-logout{margin:0;padding:0;border:0;grid-column:1 / -1}.twc-sidebar-logout button{text-align:center}.twc-login-dialog{padding:28px 22px!important}.twc-account-content h2{font-size:23px}}
@media(prefers-reduced-motion:reduce){dialog.twc-login-dialog[open],dialog.twc-login-dialog.is-closing,dialog.twc-login-dialog::backdrop{animation:none!important}}
/* Consistent controls independent of light/dark Elementor header styles. */
.tw-customer.tw-customer-header{flex-wrap:wrap;gap:10px;align-items:flex-start}
.tw-customer.tw-customer-header .twc-header-link,.tw-customer.tw-customer-header .twc-header-logout{display:inline-flex;align-items:center;justify-content:center;min-height:42px;margin:0;padding:10px 16px;border:1px solid #4054da;border-radius:8px;font-family:inherit;font-size:12px;font-weight:700;line-height:1.5;letter-spacing:.06em;text-transform:uppercase;text-decoration:none!important;box-shadow:0 2px 8px #17203314;white-space:nowrap}
.tw-customer.tw-customer-header .twc-header-link{background:#4054da;color:#fff!important}
.tw-customer.tw-customer-header .twc-header-link:hover{background:#3042bd;border-color:#3042bd}
.tw-customer.tw-customer-header .twc-header-logout{background:#fff;color:#26377e!important;border-color:#d0d7ea}
.tw-customer.tw-customer-header .twc-header-logout:hover{background:#edf0ff;border-color:#4054da}
.tw-customer.tw-customer-header .twc-inline{margin:0}
.tw-customer.tw-customer-panel button,.tw-customer.tw-customer-panel .twc-button{text-transform:none;letter-spacing:normal;text-decoration:none!important;box-shadow:none}
.tw-customer .twc-detail-toolbar{margin:0 0 28px;padding-bottom:20px;border-bottom:1px solid var(--twc-line)}
.tw-customer button.twc-back-button{display:inline-flex;gap:10px;align-items:center;background:#f3f5fc;border-color:#dce2f0;color:#33446b;font-size:14px;min-height:44px;padding:10px 15px;text-decoration:none}
.tw-customer button.twc-back-button:hover{background:#e8edfc;color:#223582}
.tw-customer .twc-reservation-heading{margin-bottom:24px}.twc-reservation-heading .twc-tag{display:block;margin-bottom:8px}.twc-reservation-heading h2{margin:0}
.tw-customer .twc-itinerary{border:1px solid var(--twc-line);border-radius:12px;overflow:hidden;margin-bottom:20px}
.tw-customer .twc-itinerary table{width:100%;border-collapse:collapse;margin:0;border:0;font-size:14px;table-layout:auto}
.twc-itinerary caption{text-align:left;padding:16px;font-weight:700;color:var(--twc-ink);background:#fff;font-size:16px}
.tw-customer .twc-itinerary th,.tw-customer .twc-itinerary td{border:0;border-top:1px solid var(--twc-line);padding:13px 14px;text-align:left;vertical-align:middle;line-height:1.5}
.tw-customer .twc-itinerary th{background:#f5f7fc;font-size:12px;color:#536179;font-weight:650}
.tw-customer .twc-itinerary td{background:white;color:#20283b}.twc-itinerary td:last-child{font-weight:750;white-space:nowrap}
.tw-customer .twc-ticket-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--twc-line);border:1px solid var(--twc-line);border-radius:12px;overflow:hidden;margin:0 0 28px}
.twc-ticket-facts>div{padding:15px;background:#f9faff}.twc-ticket-facts dt{font-size:12px;font-weight:500;color:#536179;margin:0 0 6px}.twc-ticket-facts dd{font-size:18px;font-weight:700;line-height:1.5;margin:0;color:#20283b}.twc-ticket-facts .twc-fact-email{grid-column:1/-1;background:white}.twc-fact-email dd{font-size:15px;overflow-wrap:anywhere}
.tw-customer .twc-calendar{border-top:1px solid var(--twc-line);padding-top:26px;margin-top:28px}.twc-calendar h3{margin-bottom:10px}.twc-calendar-sailing{border:1px solid var(--twc-line);border-radius:12px;padding:18px;margin:14px 0;background:#f9faff}.tw-customer .twc-calendar-sailing h4{margin:0 0 4px;font-size:16px;line-height:1.5;color:#20283b}.twc-calendar-sailing>p{font-size:14px;color:#536179;margin-bottom:14px}.twc-calendar-actions{display:flex;flex-wrap:wrap;gap:10px}
.tw-customer a.twc-calendar-button,.tw-customer button.twc-calendar-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px 16px;background:#fff;color:#30439d;border:1px solid #bbc7ef;border-radius:8px;font:inherit;font-size:14px;font-weight:650;line-height:1.5;text-decoration:none!important;letter-spacing:normal;text-transform:none;box-shadow:none}
.tw-customer a.twc-calendar-button:hover,.tw-customer button.twc-calendar-button:hover{background:#eaf0ff;color:#253680;border-color:#4054da}.tw-customer .twc-calendar-note{font-size:12px;line-height:1.7;color:#627087;margin:12px 0 0}
@media(max-width:640px){.tw-customer.tw-customer-header .twc-header-link,.tw-customer.tw-customer-header .twc-header-logout{font-size:11px;padding:10px 12px;min-height:44px}.twc-itinerary thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.twc-itinerary table,.twc-itinerary tbody,.twc-itinerary tr{display:block}.tw-customer .twc-itinerary td{display:grid;grid-template-columns:80px minmax(0,1fr);gap:12px;border:0;padding:7px 14px}.twc-itinerary td:before{content:attr(data-label);font-weight:500;font-size:12px;color:#627087}.twc-itinerary tr{padding:10px 0;border-top:1px solid var(--twc-line)}.tw-customer .twc-ticket-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.twc-calendar-actions{flex-direction:column}.twc-calendar-actions a,.twc-calendar>p>a.twc-calendar-button{width:100%}.twc-detail-toolbar{margin-bottom:22px}}
/* Purchase choice and authentication remain a single, readable column. */
.tw-booking .tw-customer.twc-checkout .twc-choices{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin:20px 0}
.tw-booking .twc-checkout .twc-choices label{width:100%;min-height:54px;display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;text-transform:none;letter-spacing:normal;font-size:16px}
.tw-booking .twc-checkout .twc-choices input[type=radio]{width:20px;height:20px;margin:0;flex:0 0 20px}
.tw-booking .twc-checkout .twc-choices label:has(input:checked){border-color:#4e65f8;background:#eef1ff;box-shadow:0 0 0 1px #4e65f8}
.tw-booking .twc-checkout .twc-form{width:100%;max-width:none;margin:24px 0 0}
.tw-booking .twc-checkout .twc-form label,.tw-booking .twc-checkout .twc-form input:not([type=hidden]),.tw-booking .twc-checkout .twc-form button{width:100%;max-width:none;box-sizing:border-box}
.tw-booking .twc-checkout .twc-form button{display:block;min-height:48px;margin-top:18px;text-transform:none;letter-spacing:normal}
.tw-booking .twc-checkout .twc-form h3{font-size:22px;margin-bottom:18px}.tw-booking .twc-checkout .twc-form input:not([type=hidden]){font-size:16px}
.tw-customer .twc-email-delivery{margin:28px 0;padding:22px;border:1px solid #dce3f3;border-radius:14px;background:#f8faff}
.tw-customer .twc-email-delivery h3{margin-bottom:12px;font-size:21px}
.tw-customer .twc-email-delivery>p{font-size:14px;line-height:1.7;color:#536179}
.tw-customer .twc-email-steps{margin:18px 0;padding-left:22px;font-size:14px;color:#33446b}.twc-email-steps li{padding:0 0 10px 4px;line-height:1.6}
.tw-customer .twc-email-current{background:#fff;border:1px solid #e3e8f4;border-radius:8px;padding:13px 15px;overflow-wrap:anywhere}.twc-email-current span{display:block;font-size:12px;margin-bottom:4px}.twc-email-current strong{color:#20283b;font-size:14px}
.tw-customer .twc-email-delivery .twc-form{width:100%;max-width:none;margin:20px 0}.twc-email-delivery .twc-form input:not([type=hidden]),.twc-email-delivery .twc-form button{width:100%;max-width:none;min-height:48px}.twc-email-delivery .twc-form button{margin-top:12px}.tw-customer .twc-email-delivery .twc-email-note{margin-bottom:0;font-size:12px}
@media(max-width:640px){.tw-customer .twc-email-delivery{padding:18px}.tw-booking .twc-checkout .twc-choices label{font-size:15px}}
