/* Keep the original design tokens, typography, illustrations and component styles. */
@font-face{font-family:Manrope;font-style:normal;font-weight:400;src:url('./fonts/manrope-400.woff2') format('woff2');font-display:swap}
@font-face{font-family:Manrope;font-style:normal;font-weight:500;src:url('./fonts/manrope-500.woff2') format('woff2');font-display:swap}
@font-face{font-family:Manrope;font-style:normal;font-weight:600;src:url('./fonts/manrope-600.woff2') format('woff2');font-display:swap}
@font-face{font-family:Manrope;font-style:normal;font-weight:700;src:url('./fonts/manrope-700.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:500;src:url('./fonts/geist-mono-500.woff2') format('woff2');font-display:swap}
*,:before,:after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px;background:var(--surface-page)}
body{margin:0;font:16px/24px var(--font-sans);color:var(--ink)}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea,summary{touch-action:manipulation}
button{cursor:pointer}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}
svg{flex-shrink:0}
input,select,textarea{max-width:100%;min-width:0}
textarea{resize:vertical}
h1,h2,h3,p,dd,.d5-chip{overflow-wrap:anywhere}
.d5-btn--primary:hover{color:var(--on-brand)}
.d5-chip{white-space:normal;max-width:100%}
.d5-badge{max-width:100%}
[hidden]{display:none!important}
#app>div>a:first-child:focus{top:8px!important}
.merchant-layout{align-items:flex-start!important;flex-wrap:wrap!important}
.merchant-layout>div{min-width:0}
.d5-search-status{margin:0;color:var(--ink-muted);font-size:14px;line-height:22px}
.d5-demo-note{max-width:1120px;margin:0 auto;padding:0 16px 32px;font-size:14px;line-height:22px;color:var(--ink-muted)}
.d5-toast{position:fixed;z-index:100;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:12px 20px;border:1px solid var(--border-hairline);border-radius:12px;background:var(--brand-navy);color:white;box-shadow:var(--shadow-raised);font-size:14px;line-height:22px;text-align:center}
.d5-dialog{width:min(480px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:24px;border:1px solid var(--border-hairline);border-radius:16px;box-shadow:var(--shadow-raised);color:var(--ink);background:var(--surface-card);font:16px/24px var(--font-sans)}
.d5-dialog::backdrop{background:rgba(7,35,60,.5)}
.d5-dialog h2{margin:0 0 16px;font-size:24px;line-height:32px;color:var(--brand-navy)}
.d5-dialog p{margin:0 0 20px}
.d5-dialog .d5-field{max-width:none;margin-bottom:20px}
.d5-dialog-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end;margin-top:20px}
.d5-menu-links{display:flex;flex-direction:column;gap:8px}
.d5-menu-links a{display:block;padding:12px 16px;border-radius:8px;text-decoration:none;background:var(--surface-page);font-weight:600;color:var(--brand-navy)}
.d5-chat-messages{max-height:680px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.d5-receipt-name{overflow-wrap:anywhere}
@media(max-width:1023px){
  nav[data-main-nav="true"]{gap:12px!important;padding-left:12px!important}
  .merchant-layout{flex-direction:column-reverse!important;flex-wrap:nowrap!important;align-items:stretch!important}
  .merchant-layout>aside{position:static}
  .merchant-layout>aside,.merchant-layout>div{flex:none!important;width:100%}
}
@media(max-width:600px){
  [style*="grid-template-columns: repeat(auto-fill"]{grid-template-columns:minmax(0,1fr)!important}
  .merchant-layout{gap:32px!important}
  .merchant-layout>aside{flex-basis:100%!important;width:100%}
  .merchant-media>span{position:absolute!important;left:16px;right:16px;top:72px;font-size:12px!important;line-height:18px!important;max-width:260px}
  .merchant-media .d5-badge{white-space:normal;max-width:260px}
  .d5-badge{white-space:normal}
  .d5-chip{font-size:12px;line-height:18px}
  .d5-btn{white-space:normal;text-align:center;min-height:44px}
  .d5-chat-messages{max-height:540px;padding:16px!important}
  .d5-dialog{padding:20px}
  .d5-dialog .d5-btn{flex:1}
  .d5-booking-layout>aside{padding:20px!important}
  .d5-booking-layout>section{flex-basis:100%!important}
  .d5-booking-layout{align-items:flex-start!important}
  .d5-booking-layout dl{grid-template-columns:minmax(72px,auto) minmax(0,1fr)!important}
  nav[data-main-nav="true"]>a{font-size:16px!important;gap:6px!important}
  nav[data-main-nav="true"] [role="group"]{gap:0!important}
  nav[data-main-nav="true"] [role="group"] button{padding:0 6px!important}
  nav[data-main-nav="true"]>div:last-child{gap:4px!important}
}
@media(max-width:359px){
  nav[data-main-nav="true"]{padding:8px!important;gap:6px!important}
  nav[data-main-nav="true"]>a svg{width:24px;height:24px}
  nav[data-main-nav="true"]>a{font-size:14px!important}
  nav[data-main-nav="true"] [role="group"] button{min-width:40px!important}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,::before,::after{animation:none!important;transition:none!important}}

/* Ocean illustration refinement, v2. Original palette and interactions retained. */
:root{--shadow-card:0 3px 16px rgba(7,59,117,.045);--shadow-raised:0 8px 32px rgba(7,59,117,.09)}
.d5-main-nav{background:transparent!important;border-color:rgba(255,255,255,.22)!important;box-shadow:none!important;backdrop-filter:none!important}
.d5-main-nav>a{color:white!important}
.d5-main-nav>div:not(:last-child)>a{color:#d7e6f3!important;background:transparent!important}
.d5-main-nav>div:not(:last-child)>a[aria-current="page"]{color:white!important;background:rgba(255,255,255,.12)!important}
.d5-main-nav [role="group"]{background:rgba(255,255,255,.06)!important;border-color:rgba(255,255,255,.28)!important}
.d5-main-nav [role="group"] button[aria-pressed="true"]{background:white!important;color:var(--brand-navy)!important}
.d5-main-nav [role="group"] button[aria-pressed="false"]{color:white!important}
.d5-main-nav [data-action="signin"]{color:var(--brand-navy)!important;background:white!important}
.d5-main-nav [data-action="menu"]{border:1px solid rgba(255,255,255,.28)!important}
.d5-main-nav :focus-visible{outline-color:white}
.d5-home-hero{display:grid!important;grid-template-columns:minmax(0,1.05fr) minmax(0,.9fr);gap:56px!important;padding-top:64px!important;padding-bottom:64px!important;isolation:isolate}
.d5-home-copy{gap:22px!important}
.d5-home-copy>h1{font-size:48px!important;line-height:1.12!important;letter-spacing:-.035em!important;text-wrap:balance}
.d5-home-copy>p{font-size:17px!important;line-height:28px!important;max-width:500px!important}
.d5-home-copy>form{box-shadow:0 8px 28px rgba(0,20,50,.14)!important;border:0!important}
.d5-home-copy>ul{font-size:13px!important;line-height:20px!important;gap:8px!important}
.d5-hero-proposal{width:100%;max-width:none!important;min-width:0!important;margin:0!important;padding:0!important;gap:0!important;border:1px solid rgba(255,255,255,.22)!important;border-radius:24px!important;box-shadow:0 20px 40px rgba(0,20,50,.18)!important;overflow:hidden}
.d5-ocean-art{position:relative;aspect-ratio:16 / 10;overflow:hidden;background:#087fb5}
.d5-ocean-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:62% center}
.d5-example-details>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:88px;padding:18px 22px;list-style:none;cursor:pointer;color:var(--brand-navy)}
.d5-example-details>summary::-webkit-details-marker{display:none}
.d5-example-details>summary>span{display:flex;flex-direction:column;gap:4px}
.d5-example-details>summary strong{font-size:16px;line-height:24px}
.d5-example-details>summary span>span{font-size:12px;line-height:18px;color:var(--ink-muted)}
.d5-example-details>summary svg{transition:transform 160ms ease}
.d5-example-details[open]>summary svg{transform:rotate(180deg)}
.d5-proposal-original{display:flex;flex-direction:column;gap:16px;padding:0 22px 22px;border-top:1px solid var(--border-hairline)}
.d5-proposal-original>div:first-child{padding-top:20px}
.d5-reef-img,.d5-media-scrim{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.d5-reef-img{object-fit:cover;object-position:60% 52%}
.d5-media-scrim{background:linear-gradient(180deg,rgba(3,26,54,.5),transparent 60%,rgba(3,26,54,.2))}
.merchant-media>svg{opacity:.15}
.merchant-media>span{position:absolute!important;top:16px;right:16px;left:auto;bottom:auto;z-index:1;max-width:65%;padding:6px 10px;border-radius:6px;background:rgba(3,26,54,.82);color:white!important;font-size:12px!important;line-height:18px!important}
.merchant-media>div:not(.d5-media-scrim){z-index:1}
.d5-language-facts>div{border:0!important;background:var(--brand-ocean-tint)!important;box-shadow:none!important}
.d5-language-facts span:first-child{text-transform:none!important;letter-spacing:0!important}
.d5-course-card{overflow:hidden;box-shadow:none!important}
.d5-course-card span{font-variant-numeric:tabular-nums}
.d5-prototype-controls{border:0!important;background:var(--brand-ocean-tint)!important}
.d5-prototype-controls>button{min-height:40px!important}
.d5-btn:active{transform:translateY(1px)}
.d5-home-band>div[aria-hidden="true"]{display:none}
@media(max-width:1023px){
 .d5-home-hero{grid-template-columns:minmax(0,1fr);gap:24px!important;max-width:720px!important;padding-top:32px!important;padding-bottom:40px!important}
 .d5-home-copy>h1{font-size:40px!important}
 .d5-ocean-art{aspect-ratio:2.2}
}
@media(max-width:600px){
 .d5-home-hero{padding-top:28px!important;padding-bottom:28px!important;gap:20px!important;position:relative}
 .d5-home-copy{gap:18px!important}
 .d5-home-copy>h1{font-size:34px!important;line-height:1.2!important;letter-spacing:-.025em!important;text-wrap:initial}
 .d5-home-copy>p{font-size:16px!important;line-height:25px!important;max-width:340px!important}
 .d5-home-copy>form{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px!important;padding:7px!important;border-radius:14px!important}
 .d5-home-copy>form>label:first-child,.d5-home-copy>form>a{grid-column:1/-1}
 .d5-home-copy>form>label{padding:7px 10px!important;min-width:0!important}
 .d5-home-copy>form select,.d5-home-copy>form input{width:100%;font-size:16px!important;line-height:24px!important}
 .d5-home-copy>form>a{min-height:50px!important}
 .d5-home-copy>ul{font-size:12px!important;line-height:18px!important;gap:6px!important}
 .d5-home-copy>ul>li{align-items:flex-start!important}
 .d5-hero-proposal .d5-ocean-art{height:166px;aspect-ratio:auto}
 .d5-hero-proposal .d5-ocean-art img{object-position:65% 45%}
 .d5-hero-proposal{border-radius:16px!important;box-shadow:none!important}
 .d5-example-details>summary{min-height:76px;padding:14px 16px}
 .d5-example-details>summary strong{font-size:14px;line-height:20px}
 .d5-proposal-original{padding:0 16px 16px}
 .merchant-media{height:232px!important;border-radius:18px!important}
 .merchant-media>span{top:auto!important;bottom:14px;left:14px;right:auto;max-width:calc(100% - 28px);font-size:11px!important;line-height:16px!important}
 .d5-language-facts{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
 .d5-language-facts>div{padding:14px!important;border-radius:12px!important;gap:6px!important}
 .d5-language-facts span:first-child{font-size:11px!important;line-height:16px!important}
 .d5-language-facts span:last-child{font-size:13px!important;line-height:20px!important}
 .d5-booking-progress{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important}
 .d5-booking-progress>li{flex-direction:column!important;align-items:flex-start!important;gap:7px!important;padding:10px 8px!important;border-color:transparent!important;background:transparent!important}
 .d5-booking-progress>li>span:first-child{width:26px!important;height:26px!important}
 .d5-booking-progress>li>span:last-child{font-size:11px!important;line-height:16px!important;min-height:32px}
}
@media(max-width:359px){.d5-home-copy>h1{font-size:29px!important}.d5-home-copy>p{font-size:15px!important}.d5-language-facts{grid-template-columns:minmax(0,1fr)!important}}
@media(prefers-reduced-motion:reduce){.d5-example-details>summary svg{transition:none}}

/* Destination artwork stays attached to its island across language and region filters. */
.d5-destination--illustrated{color:white!important;background:var(--brand-navy)!important}
.d5-destination-image,.d5-destination-scrim{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.d5-destination-image{object-fit:cover;object-position:center}
.d5-destination-scrim{background:linear-gradient(180deg,rgba(3,26,54,.08) 15%,rgba(3,26,54,.9) 100%)}
.d5-destination--illustrated>svg{display:none}
.d5-destination--illustrated>span{z-index:1}

/* App-like sheets remain native dialogs with keyboard and reduced-motion support. */
.d5-sheet{position:fixed;inset:auto 0 0;margin:0 auto;width:min(100%,560px);max-width:100%;padding:0;border:1px solid var(--border-hairline);border-bottom:0;border-radius:24px 24px 0 0;background:var(--surface-card);color:var(--ink);font:16px/24px var(--font-sans);overflow:hidden;box-shadow:0 -12px 48px rgba(7,35,60,.18)}
.d5-sheet[open]{display:flex;flex-direction:column}
.d5-sheet::backdrop{background:rgba(7,35,60,.48);animation:d5-sheet-shade 200ms var(--ease-out)}
.d5-sheet.is-closing::backdrop{opacity:0;transition:opacity var(--sheet-exit-duration) var(--ease-out)}
.d5-sheet-grip{flex:none;height:28px;display:flex;align-items:center;justify-content:center;touch-action:none;cursor:grab}
.d5-sheet-grip span{width:38px;height:4px;border-radius:4px;background:#b4c7d4}
.d5-sheet-header{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 20px 16px;border-bottom:1px solid var(--border-hairline)}
.d5-sheet-header h2{margin:0;font-size:20px;line-height:28px;color:var(--brand-navy)}
.d5-sheet-close{flex:none;width:44px;height:44px;border:0;border-radius:12px;background:var(--surface-page);color:var(--brand-navy);font-size:28px;line-height:1}
.d5-sheet-body{padding:20px;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0}
.d5-sheet-form{display:flex;flex-direction:column;gap:16px;margin:0}
.d5-sheet-form .d5-field{max-width:none}
.d5-sheet-hint{font-size:14px;line-height:22px;color:var(--ink-muted);margin:0}
.d5-sheet-actions{flex:none;display:flex;gap:12px;padding:16px 20px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--border-hairline);background:white}
.d5-sheet-actions>.d5-btn{flex:1;min-height:48px}
.d5-mobile-action{display:none}
@keyframes d5-sheet-shade{from{opacity:0}to{opacity:1}}
@media(max-width:1023px){
 .d5-enquiry-source{display:none!important}
 .d5-has-mobile-action{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
 .d5-mobile-action{display:flex;position:fixed;z-index:30;bottom:0;left:0;right:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border-hairline);background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}
 .d5-mobile-action>.d5-btn{width:100%;min-height:50px;font-size:16px}
}
@media(prefers-reduced-motion:reduce){.d5-sheet::backdrop{animation:none}.d5-sheet.is-closing::backdrop{transition:none}}

/* iOS native date controls need explicit inline sizing to stay inside each grid column. */
.d5-date-range{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;min-width:0;width:100%}
.d5-date-range .d5-field{width:100%;min-width:0;max-width:100%;font-size:12px;line-height:18px;gap:4px}
.d5-date-range input[type=date]{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;inline-size:100%;min-inline-size:0;max-inline-size:100%;padding:10px 8px;font-size:16px;min-height:44px;color-scheme:light;-webkit-appearance:none;appearance:none}
.d5-date-range input[type=date]::-webkit-date-and-time-value{min-width:0;min-height:24px;text-align:left}
.d5-date-range input[type=date]::-webkit-datetime-edit{min-width:0;padding:0}
.d5-home-dates{flex-basis:100%!important}
.d5-home-dates>.d5-date-range{margin-top:4px}
@media(max-width:600px){.d5-home-copy>form>.d5-home-dates,.d5-home-copy>form>label{grid-column:1/-1}.d5-home-copy>form>.d5-home-dates{padding:7px 10px!important}.d5-home-copy>form .d5-date-range input{font-size:16px!important}}


/* Stable multilingual navigation; quick, physical feedback for real input. */
:root{--ease-out:cubic-bezier(.23,1,.32,1);--press-duration:140ms}
.d5-btn,.d5-main-nav button,.d5-main-nav>div:not(:last-child)>a{transition:transform var(--press-duration) var(--ease-out)}
.d5-btn--primary{box-shadow:0 4px 12px rgba(7,59,117,.16)}
.d5-btn--secondary{box-shadow:0 2px 8px rgba(7,59,117,.06)}
.d5-btn:not(:disabled):not([aria-disabled="true"]):active,.d5-main-nav button:active,.d5-main-nav>div:not(:last-child)>a:active{transform:scale(.97)}
.d5-btn:disabled,.d5-btn[aria-disabled="true"]{box-shadow:none;transform:none;pointer-events:none}
.d5-main-nav{min-height:68px;gap:12px!important}
.d5-main-nav>a{flex-shrink:0;white-space:nowrap}
.d5-main-nav>div:last-child{flex:none;gap:8px!important}
.d5-main-nav [role="group"]{flex:none;gap:2px!important;padding:2px!important}
.d5-main-nav [role="group"] button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;min-width:44px!important;height:44px;min-height:44px!important;padding:0!important;line-height:20px!important;white-space:nowrap}
.d5-main-nav [role="group"] button[aria-pressed="true"]{background:var(--brand-cyan)!important;box-shadow:0 2px 6px rgba(0,20,50,.16)}
.d5-main-nav [data-action="signin"]{flex:none;width:116px;height:44px;min-height:44px!important;padding:0 12px!important;gap:8px;background:var(--brand-orange)!important;white-space:nowrap}
.d5-main-nav [data-action="signin"]::after{content:"";width:16px;height:16px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14m-6-6 6 6-6 6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform var(--press-duration) var(--ease-out)}
.d5-main-nav [data-action="menu"]{flex:none;width:44px;height:44px;background:rgba(255,255,255,.08)!important}
.d5-main-nav>div:not(:last-child){flex:1;min-width:0;display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px!important}
.d5-main-nav>div:not(:last-child)>a{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:44px;padding:2px 6px!important;line-height:18px!important;text-align:center;text-wrap:balance}
.d5-main-nav>div:not(:last-child)>a::after{content:"";position:absolute;bottom:3px;left:calc(50% - 10px);width:20px;height:2px;border-radius:2px;background:var(--brand-cyan);opacity:0;transform:scaleX(.5);transition:opacity var(--press-duration) var(--ease-out),transform var(--press-duration) var(--ease-out)}
.d5-main-nav>div:not(:last-child)>a[aria-current="page"]::after,.d5-main-nav>div:not(:last-child)>a:focus-visible::after{opacity:1;transform:scaleX(1)}
.d5-main-nav--booking>[role="group"]{width:max-content;justify-self:end}
.d5-main-nav--booking>div:not(:last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
@media(hover:hover) and (pointer:fine){
 .d5-btn:not(:disabled):not([aria-disabled="true"]):hover{transform:translateY(-2px)}
 .d5-main-nav button:hover{background:rgba(255,255,255,.14)!important}
 .d5-main-nav [role="group"] button[aria-pressed="true"]:hover{background:var(--brand-cyan)!important}
 .d5-main-nav [data-action="signin"]:hover{background:var(--brand-orange-tint)!important}
 .d5-main-nav [data-action="signin"]:hover::after{transform:translateX(2px)}
 .d5-main-nav>div:not(:last-child)>a:hover{background:rgba(255,255,255,.1)!important;color:white!important}
 .d5-main-nav>div:not(:last-child)>a:hover::after{opacity:1;transform:scaleX(1)}
 .d5-btn:not(:disabled):not([aria-disabled="true"]):active{transform:scale(.97)}
}
@media(min-width:1024px){.d5-main-nav{display:grid!important;grid-template-columns:108px minmax(0,1fr) 266px}}
@media(min-width:1024px){.d5-main-nav--booking{grid-template-columns:108px minmax(0,1fr) 142px}}
@media(max-width:600px){.d5-main-nav>div:last-child{gap:4px!important}.d5-main-nav [role="group"] button{width:40px;min-width:40px!important;height:44px}}
@media(max-width:359px){.d5-main-nav{gap:6px!important}.d5-main-nav [data-action="menu"]{width:40px}}
@media(prefers-reduced-motion:reduce){.d5-btn,.d5-main-nav button,.d5-main-nav a,.d5-main-nav [data-action="signin"]::after{transform:none!important}.d5-main-nav>div:not(:last-child)>a::after{transform:none}}

/* Share the search row on desktop so the ocean card follows the form, not the full intro. */
@media(min-width:1024px){
 .d5-home-hero{column-gap:56px!important;row-gap:22px!important;align-items:start!important}
 .d5-home-copy{display:contents!important}
 .d5-home-copy>h1{grid-column:1;grid-row:1}
 .d5-home-copy>p{grid-column:1;grid-row:2}
 .d5-home-copy>form{grid-column:1;grid-row:3;align-self:start}
 .d5-home-copy>ul{grid-column:1;grid-row:4}
 .d5-hero-proposal{grid-column:2;grid-row:3;align-self:stretch;display:flex!important;flex-direction:column}
 .d5-hero-proposal .d5-ocean-art{flex:1 1 0;height:0;min-height:160px;aspect-ratio:auto}
 .d5-hero-proposal .d5-ocean-art img{position:absolute;inset:0}
 .d5-hero-proposal .d5-example-details{flex:none}
}

/* Two-stage sheet motion uses the same UI easing tokens as the other controls. */
:root{--ease-drawer:cubic-bezier(.32,.72,0,1);--sheet-enter-duration:500ms;--sheet-exit-duration:180ms}
