@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,700&family=DM+Serif+Display:ital@0;1&display=swap');

:root { --navy:#143556; --navy-deep:#0b2038; --coral:#2d70b7; --coral-dark:#1e5795; --sea:#4e7093; --paper:#ffffff; --ink:#14263a; --muted:#53687e; --line:#d7e0e8; --display:'DM Serif Display', Georgia, serif; --body:'DM Sans', Arial, sans-serif; --container:min(1180px, calc(100% - 64px)); }

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font:400 17px/1.65 var(--body); }
a { color:inherit; text-decoration-thickness:1px; text-underline-offset:3px; }
img { display:block; max-width:100%; height:auto; }
.screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap; }
.container { width:var(--container); margin-inline:auto; }
.site-header { background:#fff; height:98px; display:grid; align-items:center; position:relative; z-index:4; }
.site-header__inner { width:var(--container); display:flex; gap:30px; align-items:center; margin:auto; }
.brand { display:inline-flex; align-items:center; color:var(--navy); font:400 clamp(1.45rem,2.2vw,2rem)/1 var(--display); text-decoration:none; letter-spacing:-.025em; white-space:nowrap; }
.brand .custom-logo, .brand__default-logo { max-height:62px; width:auto; }
.brand__ship { color:var(--coral); font:1.4em/1 sans-serif; transform:rotate(-9deg); margin-right:12px; }
.primary-nav { margin-left:auto; }
.menu { padding:0; margin:0; list-style:none; display:flex; align-items:center; gap:31px; }
.menu a { color:var(--navy); text-decoration:none; font-size:.9rem; font-weight:500; }
.menu a:hover, .menu .current-menu-item > a { color:var(--coral); }
.menu > .menu-item--button > a { display:inline-flex; align-items:center; min-height:54px; padding:13px 21px; background:var(--coral); color:#fff; border-radius:7px; font-weight:700; transition:background .2s, transform .2s; }
.menu > .menu-item--button > a:hover { color:#fff; background:var(--coral-dark); transform:translateY(-2px); }
.button { display:inline-flex; justify-content:center; align-items:center; gap:16px; min-height:54px; padding:13px 22px; border:1px solid transparent; border-radius:7px; font:700 .92rem/1.2 var(--body); text-decoration:none; transition:background .2s, color .2s, transform .2s; }
.button:hover { transform:translateY(-2px); }
.button--coral { background:var(--coral); color:white; }.button--coral:hover { background:var(--coral-dark); }
.button--outline { color:white; border-color:rgba(255,255,255,.85); }.button--outline:hover { background:white; color:var(--navy); }
.button--navy { background:var(--navy); color:#fff; }.button--navy:hover { background:var(--navy-deep); }
.header-cta { margin-left:8px; white-space:nowrap; }
.nav-toggle { display:none; background:none; border:0; padding:8px; }.nav-toggle span:not(.screen-reader-text) { display:block; width:24px; height:2px; margin:4px; background:var(--navy); }
.hero { position:relative; min-height:650px; display:grid; align-items:center; background:var(--navy) var(--hero-image) 69% center / cover no-repeat; overflow:hidden; }
.hero__shade { position:absolute; inset:0; background:linear-gradient(90deg, rgba(8,39,55,.98) 0%, rgba(8,39,55,.87) 33%, rgba(8,39,55,.24) 61%, rgba(8,39,55,.04) 100%); }
.hero__inner { position:relative; color:#fff; padding-block:95px 126px; }.hero h1 { max-width:630px; margin:0 0 22px; font:400 clamp(4rem,7.3vw,7.15rem)/.91 var(--display); letter-spacing:-.055em; }.hero p { max-width:540px; margin:0 0 36px; font:400 clamp(1.15rem,1.8vw,1.55rem)/1.45 var(--display); }.hero__actions { display:flex; flex-wrap:wrap; gap:14px; }
.hero-slider { position:relative; min-height:650px; overflow:hidden; background:var(--navy); }.hero-slider::after { content:''; position:absolute; z-index:2; left:0; right:0; bottom:-1px; height:80px; pointer-events:none; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0 26 C360 62 1080 62 1440 26 V80 H0Z' fill='%23ffffff'/%3E%3C/svg%3E") 50% 100%/100% 100% no-repeat; }.hero-slider__slides, .hero-slider__slide { min-height:650px; }.hero-slider__slide { position:absolute; inset:0; display:grid; align-items:center; opacity:0; pointer-events:none; transition:opacity .8s ease; }.hero-slider__slide.is-active { position:relative; opacity:1; pointer-events:auto; }.hero-slider__media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }.hero-slider__slide .hero__inner { position:relative; z-index:2; width:var(--container); margin:auto; }.hero-slider__slide .hero__shade { z-index:1; }.hero-slider__controls { position:absolute; z-index:3; left:50%; bottom:58px; transform:translateX(-50%); display:flex; align-items:center; gap:13px; }.hero-slider__controls button { display:grid; place-items:center; width:38px; height:38px; padding:0; color:#fff; border:1px solid rgba(255,255,255,.75); border-radius:50%; background:rgba(11,32,56,.36); font-size:1.1rem; cursor:pointer; }.hero-slider__controls button:hover, .hero-slider__controls button:focus-visible { background:#fff; color:var(--navy); outline:none; }.hero-slider__dots { display:flex; gap:7px; }.hero-slider__dots button { width:8px; height:8px; padding:0; border:0; background:rgba(255,255,255,.55); }.hero-slider__dots button.is-active { background:#fff; transform:scale(1.2); }.hero-slider--fallback { min-height:650px; }
.home-page-content .wp-block-cover.home-hero { min-height:650px !important; align-items:center; background-color:var(--navy); }.home-page-content .home-hero > .wp-block-cover__inner-container { width:100%; max-width:none; z-index:1; }.home-hero__content { color:#fff; padding:95px 0 126px; }.home-hero__content h1 { max-width:630px; margin:0 0 22px; font:400 clamp(4rem,7.3vw,7.15rem)/.91 var(--display); letter-spacing:-.055em; }.home-hero__content > p { max-width:540px; margin:0 0 36px; font:400 clamp(1.15rem,1.8vw,1.55rem)/1.45 var(--display); }.home-hero .wp-block-buttons { gap:14px; }.home-hero .wp-block-button__link { min-height:54px; padding:16px 22px; border-radius:7px; font:700 .92rem/1.2 var(--body); }.home-hero .is-style-outline .wp-block-button__link { border-color:rgba(255,255,255,.85); color:#fff; }.home-hero .is-style-outline .wp-block-button__link:hover { background:#fff; color:var(--navy); }
.home-page-content .home-section { width:100%; max-width:none; padding:94px max(32px, calc((100vw - 1180px) / 2)); }.home-page-content .home-section > .wp-block-group__inner-container { max-width:1180px; margin:auto; }.home-upcoming { position:relative; background:var(--paper); }.home-upcoming > h2 { margin:0 0 30px; color:var(--navy); font:400 clamp(2.2rem,4vw,3.5rem)/1 var(--display); letter-spacing:-.04em; }.home-intro .wp-block-columns { gap:min(12vw,160px); }.home-intro h2 { color:#fff; max-width:450px; font:400 clamp(2.2rem,4vw,3.5rem)/1 var(--display); letter-spacing:-.04em; }.home-intro p { max-width:520px; }.home-intro a { color:#fff; font-weight:700; }.home-page-content .home-section:not(.home-intro) .wp-block-column { border-top:2px solid var(--sea); padding-top:24px; }.home-page-content .home-section:not(.home-intro) .wp-block-column h2 { color:var(--navy); font-size:2.2rem; }.home-page-content .home-section:not(.home-intro) .wp-block-column p { color:var(--muted); }
.sponsor-section { padding:80px max(32px, calc((100vw - 1180px) / 2)); background:#fff; }.sponsor-section__heading { max-width:1180px; margin:0 auto 28px; display:flex; justify-content:space-between; align-items:center; gap:20px; }.sponsor-section h2 { margin:0; color:var(--navy); font:400 clamp(2.1rem,4vw,3.3rem)/1 var(--display); letter-spacing:-.04em; }.slider-controls { display:flex; gap:8px; }.slider-button { width:42px; height:42px; border:1px solid var(--sea); color:var(--navy); background:#fff; border-radius:50%; font-size:1.2rem; cursor:pointer; }.slider-button:hover, .slider-button:focus-visible { color:#fff; background:var(--sea); outline:none; }.sponsor-slider { max-width:1180px; margin:auto; overflow-x:auto; scrollbar-width:none; scroll-snap-type:x mandatory; }.sponsor-slider::-webkit-scrollbar { display:none; }.sponsor-slider__track { display:flex; gap:16px; padding-bottom:4px; }.sponsor-card { flex:0 0 calc((100% - 48px) / 4); min-height:140px; display:grid; place-items:center; padding:24px; border:1px solid var(--line); border-radius:3px; scroll-snap-align:start; background:var(--paper); }.sponsor-card a { display:grid; place-items:center; width:100%; height:100%; }.sponsor-card img { max-width:160px; max-height:80px; object-fit:contain; mix-blend-mode:multiply; }.sponsor-card__name { color:var(--navy); font:700 1.1rem/1.3 var(--body); text-align:center; }.sponsor-empty { width:var(--container); margin:50px auto; padding:20px; border:1px dashed var(--sea); color:var(--muted); }
.section { padding:94px 0; }.upcoming { margin-top:-1px; position:relative; background:var(--paper); }.upcoming::before { content:''; position:absolute; top:-28px; left:0; right:0; height:30px; background:var(--paper); clip-path:ellipse(58% 100% at 50% 100%); }
.section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:24px; margin-bottom:30px; }.section h2, .booking-band h2 { margin:0; color:var(--navy); font:400 clamp(2.2rem,4vw,3.5rem)/1 var(--display); letter-spacing:-.04em; }.text-link { color:var(--navy); font-weight:700; text-decoration:none; white-space:nowrap; }.text-link span { margin-left:8px; }.text-link:hover { color:var(--coral); }
.event-feature { border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:grid; grid-template-columns:110px 1fr auto; align-items:center; gap:35px; padding:32px 0; }.event-feature time { display:grid; place-content:center; width:96px; min-height:112px; color:white; background:var(--sea); text-align:center; border-radius:2px; line-height:1.1; }.event-feature time span, .event-feature time small { font-weight:700; font-size:.7rem; letter-spacing:.07em; text-transform:uppercase; }.event-feature time strong { font:400 3.1rem/.95 var(--display); }.event-feature h3 { margin:0 0 6px; color:var(--navy); font:400 clamp(1.8rem,2.7vw,2.5rem)/1 var(--display); }.event-feature p { margin:0; color:var(--muted); }
.section--navy { background:var(--navy); color:#fff; }.intro__grid { display:grid; grid-template-columns:1fr 1fr; gap:min(12vw,160px); }.section--navy h2 { color:#fff; max-width:450px; }.intro p { margin:0 0 26px; font-size:1.17rem; }.text-link--light { color:#fff; }.text-link--light:hover { color:#fff; opacity:.72; }
.route__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:50px; }.route article { border-top:2px solid var(--sea); padding-top:24px; }.route h2 { font-size:2.2rem; }.route p { color:var(--muted); margin:18px 0 25px; }
.booking-band { background:var(--sea); color:#fff; padding:60px 0; }.booking-band__inner { display:flex; align-items:center; justify-content:space-between; gap:40px; }.booking-band h2 { color:#fff; font-size:3rem; }.booking-band p { max-width:630px; margin:12px 0 0; }
.site-footer { background:var(--navy-deep); color:#d7e2e4; }.site-footer__wave { height:31px; background:var(--sea); clip-path:ellipse(62% 100% at 50% 0%); }.site-footer__inner { width:var(--container); margin:auto; padding:80px 0 54px; display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:36px; }.brand--footer { color:white; font-size:1.9rem; }.brand--footer .brand__default-logo { max-height:56px; padding:4px; background:#fff; }.site-footer h2 { margin:0 0 10px; color:#fff; font:400 1.25rem/1 var(--display); }.site-footer p { margin:10px 0; font-size:.92rem; }.site-footer a { color:inherit; }.site-footer a:hover { color:#fff; }.footer-menu ul { list-style:none; padding:0; margin:0; }.footer-menu li { margin:0 0 8px; }.site-footer__legal { width:var(--container); margin:auto; padding:22px 0; border-top:1px solid rgba(255,255,255,.12); color:#aababe; font-size:.78rem; }
.page-main { min-height:55vh; }.page-header { margin-bottom:44px; }.page-header h1 { margin:0; color:var(--navy); font:400 clamp(3rem,6vw,5.8rem)/.98 var(--display); letter-spacing:-.05em; }.prose { max-width:860px; }.prose > * + * { margin-top:1.5em; }.prose h2 { margin-top:1.9em; font-size:2.4rem; }.prose h3 { font-size:1.6rem; }.prose a { color:var(--coral-dark); font-weight:700; }.post-image { margin:30px 0; border-radius:3px; }.post-teaser { padding:26px 0; border-top:1px solid var(--line); }.post-teaser h2 { margin:0; font-size:2rem; }.agenda-list { border-top:1px solid var(--line); }.agenda-row { display:grid; grid-template-columns:140px 1fr; padding:25px 0; gap:25px; border-bottom:1px solid var(--line); }.agenda-row time { color:var(--sea); display:flex; flex-direction:column; font-weight:700; }.agenda-row time strong { font-size:1.3rem; }.agenda-row h2 { margin:0; font-size:2rem; }.agenda-row p { margin:6px 0 0; color:var(--muted); }.split-page { display:grid; grid-template-columns:1.3fr .7fr; gap:100px; }.booking-aside { align-self:start; color:#fff; background:var(--navy); padding:38px; }.booking-aside h2 { color:#fff; font-size:2rem; }.booking-form-wrap h2 { margin:0 0 10px; font:400 2.25rem/1 var(--display); }.booking-form-wrap > p { margin:0 0 22px; }.booking-form { margin-top:20px; }.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.booking-form label { display:grid; gap:6px; font-size:.84rem; font-weight:700; }.booking-form input, .booking-form select, .booking-form textarea { width:100%; min-height:43px; padding:10px 11px; border:1px solid rgba(255,255,255,.55); border-radius:3px; background:#fff; color:var(--ink); font:400 1rem/1.4 var(--body); }.booking-form textarea { resize:vertical; }.booking-form .form-full { grid-column:1/-1; }.booking-form .consent { display:flex; align-items:flex-start; gap:9px; margin:18px 0; font-size:.78rem; font-weight:400; }.booking-form .consent input { flex:0 0 auto; width:17px; min-height:17px; margin-top:2px; }.booking-form .button { width:100%; border:0; cursor:pointer; }.form-notice { padding:13px; border-radius:3px; font-weight:700; }.form-notice--success { background:#d9ebe3; color:#16493a; }.form-notice--error { background:#f8d8d2; color:#822b1e; }.form-honeypot { position:absolute !important; left:-9999px !important; opacity:0 !important; }.booking-aside > p:last-child { margin:20px 0 0; }.booking-aside > p:last-child a { color:#fff; }
@media (max-width:980px) { :root{--container:min(100% - 40px, 1180px);} .site-header { height:78px; }.site-header__inner { gap:15px; }.header-cta { display:none; }.nav-toggle { display:block; margin-left:auto; }.primary-nav { display:none; position:absolute; left:0; right:0; top:78px; padding:22px 20px; background:#fff; box-shadow:0 12px 20px rgba(0,0,0,.1); }.primary-nav.is-open { display:block; }.menu { flex-direction:column; align-items:flex-start; gap:14px; }.menu a { font-size:1rem; }.hero, .hero-slider, .hero-slider__slides, .hero-slider__slide { min-height:610px; }.hero { background-position:62% center; }.hero__shade { background:linear-gradient(90deg, rgba(8,39,55,.96) 0%, rgba(8,39,55,.81) 54%, rgba(8,39,55,.16) 100%); }.hero h1 { font-size:clamp(3.7rem,9vw,5.7rem); }.route__grid { gap:28px; }.site-footer__inner { grid-template-columns:1.3fr 1fr 1fr; }.footer-menu { display:none; }.split-page { gap:50px; } }
@media (max-width:680px) { :root{--container:calc(100% - 40px);} body { font-size:16px; }.brand { font-size:1.35rem; }.brand__ship { margin-right:7px; }.hero, .hero-slider, .hero-slider__slides, .hero-slider__slide { min-height:560px; }.hero { background-position:67% center; }.hero__inner { padding-block:75px 100px; }.hero h1 { font-size:3.75rem; max-width:400px; }.hero p { font-size:1.2rem; max-width:330px; }.button { width:100%; }.hero__actions { display:grid; }.section { padding:66px 0; }.section-heading { display:block; }.section-heading h2 { margin-bottom:17px; }.event-feature { grid-template-columns:76px 1fr; gap:18px; }.event-feature time { width:76px; min-height:86px; }.event-feature time strong { font-size:2.3rem; }.event-feature .button { grid-column:1/-1; }.intro__grid, .route__grid, .split-page { grid-template-columns:1fr; gap:32px; }.route__grid { gap:45px; }.booking-band__inner { display:block; }.booking-band .button { margin-top:24px; }.site-footer__inner { grid-template-columns:1fr 1fr; padding-top:55px; }.site-footer__inner > :first-child { grid-column:1/-1; }.agenda-row { grid-template-columns:100px 1fr; gap:15px; }.agenda-row h2 { font-size:1.65rem; }.booking-aside { padding:26px; }.hero-slider__controls { bottom:17px; } }
@media (max-width:680px) { .sponsor-section { padding:60px 20px; }.sponsor-card { flex-basis:80%; }.form-grid { grid-template-columns:1fr; }.booking-form .form-full { grid-column:auto; } }
@media (max-width:680px) { .home-page-content .wp-block-cover.home-hero { min-height:560px !important; }.home-hero__content { padding:75px 0 100px; }.home-hero__content h1 { font-size:3.75rem; max-width:400px; }.home-hero__content > p { font-size:1.2rem; max-width:330px; }.home-hero .wp-block-buttons { display:grid; }.home-hero .wp-block-button { width:100%; }.home-hero .wp-block-button__link { width:100%; }.home-page-content .home-section { padding:66px 20px; }.home-intro .wp-block-columns { gap:32px; } }
