/* Layout skin only. OnePress theme_mod CSS remains the authority for colours. */
#masthead .onepress-menu, #masthead .onepress-menu a { font-size:16px; }
#masthead .site-branding { max-width:42%; }
#masthead .custom-logo-link img { max-width:100%; }
#masthead .site-title { font-size:2.3rem; }
.site .header-full-width .container { width:100%; max-width:100%; padding-left:20px; padding-right:20px; }
#footer-widgets { padding-top:60px; padding-bottom:45px; }
#footer-widgets .widget { margin-bottom:24px; }
#footer-widgets .widget-title, #footer-widgets .follow-heading { font-size:2.6rem; font-weight:700; line-height:1.3; margin:0 0 18px; }
#footer-widgets p, #footer-widgets li, #footer-widgets .textwidget { line-height:1.5; }
#footer-widgets .footer-connect { padding:0; }
#footer-widgets .footer-connect .container { width:100%; padding:0; }
#footer-widgets .footer-connect .row { margin:0; }
#footer-widgets .footer-connect .row > div { flex:0 0 100%; max-width:100%; margin-left:0; padding:0; }
#footer-widgets .footer-subscribe input.subs_input { display:block; width:100%; margin:0 0 15px; padding:12px; color:#243c4b; }
#footer-widgets .footer-subscribe input[type=submit] { margin-top:16px; }
#footer-widgets .newsletter-consent { display:flex; gap:10px; margin:12px 0; text-align:left; line-height:1.5; }
#footer-widgets .newsletter-consent input { flex-shrink:0; margin-top:5px; }
#footer-widgets .footer-logo { margin-bottom:25px; }
.site-footer .site-info { padding:20px 0; }
.site-footer .freewave-footer-bottom { margin:0; padding:0; border:0; }
.site-footer .footer-menu { list-style:none; margin:0; padding:0; }
.site-footer .footer-menu a { font-size:inherit; }
.site-footer .partner-logo { max-width:180px; }
/* Identical visual height for every main slide, independent of source dimensions. */
.freewave-slider { height:clamp(420px,42vw,670px); min-height:420px; }
.freewave-slider > .swiper-wrapper, .freewave-slider .swiper-slide { height:100%; }
.freewave-slider .slide-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.slide-copy-inner { position:relative; isolation:isolate; width:100%; max-width:850px; }
.slide-copy-inner::before { content:''; position:absolute; inset:-40px -80px; z-index:-1; pointer-events:none; background:radial-gradient(ellipse at center,rgba(0,0,0,.52) 0%,rgba(0,0,0,.32) 38%,rgba(0,0,0,0) 72%); }
.freewave-slider .slide-copy { min-height:0; }
#freewave-content > .site-content { background:#fff; }
@media(max-width:767px) { #footer-widgets .footer-column { flex:0 0 100%; max-width:100%; } }
@media(max-width:600px) { .freewave-slider { height:450px; } .slide-copy-inner::before { inset:-30px -38px; } }
/* Header height is content-driven: logo height + 15px breathing room per side. */
#masthead { height:auto; min-height:0; }
#masthead .site-branding { padding:15px 0; }
#masthead .site-brand-inner { line-height:normal; }
#masthead .site-logo-div { line-height:0; }
#masthead .custom-logo-link { display:block; }
#masthead .site-branding .site-title { display:block; margin:8px 0 0; top:auto; line-height:1.2; }
#masthead .site-branding .site-description { top:auto; margin:6px 0 0; line-height:1.5; }
#freewave-content > section:not(.freewave-section):not(.freewave-slider):not(.freewave-search) { padding:50px 0; }
/* Contain the native floated branding/navigation from the very first paint. */
#masthead > .container { display:flex; align-items:center; justify-content:space-between; }
#masthead .site-branding { float:none; flex-shrink:0; }
#masthead .header-right-wrapper { float:none; margin-left:auto; }
#header-section { display:flow-root; }
#header-section .freewave-slider { clear:both; width:100%; }
.freewave-topbar { position:relative; z-index:1001; }
/* Animate only visual properties; geometry remains stable through sticky changes. */
#masthead { transition:background-color .3s ease, box-shadow .3s ease; }
#masthead.header-fixed:not(.no-scroll) { animation:freewave-sticky-enter .35s ease-out both; box-shadow:0 5px 18px rgba(18,59,88,.16); }
@keyframes freewave-sticky-enter { from { transform:translateY(-100%); box-shadow:0 0 0 transparent; } to { transform:translateY(0); box-shadow:0 5px 18px rgba(18,59,88,.16); } }
#footer-widgets input.subs_input { font-size:inherit; background:#fff; }
.site-footer .site-info, .site-footer .site-info .back-to-top { font-size:inherit; }
.partner-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.partner-grid a { min-width:0; }
.partner-grid img { max-width:100%; }
.fadeInUp { animation-name:freewave-fade-up; }
.animated { animation-duration:.5s; animation-fill-mode:both; }
@keyframes freewave-fade-up { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
.animation-disable .wow { visibility:visible !important; animation:none !important; }
@media(prefers-reduced-motion:reduce) { #masthead.header-fixed, .wow { animation:none !important; } }
/* Utility bar and footer-widget copy use the requested fixed 16px scale. */
.freewave-topbar, .freewave-topbar a { font-size:16px; }
#footer-widgets, #footer-widgets .widget, #footer-widgets .textwidget,
#footer-widgets li, #footer-widgets label, #footer-widgets a,
#footer-widgets input, #footer-widgets input.subs_input,
#footer-widgets button, #footer-widgets select, #footer-widgets textarea { font-size:16px; }
body.freewave-site #footer-widgets p { font-size:16px !important; }

/* Homepage booking form and editorial cards. */
.freewave-search { padding:45px 20px; }
.freewave-search > .container { margin:auto; }
.featured-card a::after { inset:50% 0 0; background:linear-gradient(transparent,#092b43df); }
.featured-card a>div { right:28px; }
.featured-card .featured-more { display:inline-flex; align-items:center; gap:18px; }
.featured-more::after { content:""; width:8px; height:8px; border-top:2px solid currentColor; border-right:2px solid currentColor; transform:rotate(45deg); }
.news-gallery-section .news-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.section-gallery .home-photo-swiper { margin:0; }
.section-gallery .home-photo-swiper .swiper-slide { width:32%; }
.section-gallery .home-photo-swiper .swiper-slide img { height:360px; aspect-ratio:auto; object-fit:cover; }
@media(max-width:991px) { .news-gallery-section .news-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .section-gallery .home-photo-swiper .swiper-slide { width:60%; } }
@media(max-width:600px) { .news-gallery-section .news-grid { grid-template-columns:1fr; } .freewave-search { padding:25px 15px; } .freewave-search>.container { padding:15px; } .section-gallery .home-photo-swiper .swiper-slide { width:85%; } }

.home-partners .partner-grid { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:35px 45px; }
.home-partners .partner-grid a { display:flex; align-items:center; justify-content:center; width:150px; }
.home-partners .partner-grid img { max-width:150px; max-height:100px; width:auto; height:auto; object-fit:contain; }

/* Shared section headings and the Villa Nena homepage carousel dimensions. */
body.freewave-site .freewave-section .section-title { font-size:3.6rem; font-weight:600; }
.freewave-section .section-title::after { content:""; display:block; width:60px; height:2px; background:#85a5cc; margin:20px auto 0; }
.fleet-banner .section-title::after { background:#fff; }
.section-gallery .home-photo-swiper { --fw-photo-height:clamp(220px,46vh,540px); }
.section-gallery .home-photo-swiper .swiper-slide { width:auto; height:var(--fw-photo-height); padding:0; }
.section-gallery .home-photo-swiper .gallery-image { display:block; width:auto; height:100%; }
.section-gallery .home-photo-swiper .swiper-slide img { display:block; width:auto; height:100%; max-width:none; aspect-ratio:auto; object-fit:contain; }
.section-gallery .home-photo-swiper .swiper-pagination { display:none; }
.section-gallery .home-photo-swiper .swiper-button-prev,.section-gallery .home-photo-swiper .swiper-button-next { width:32px; height:32px; padding:7px; background:rgba(0,0,0,.45); top:50%; margin-top:-16px; border:0; }
.section-gallery .home-photo-swiper .swiper-button-prev { left:15px; }
.section-gallery .home-photo-swiper .swiper-button-next { right:15px; }
@media(max-width:600px) { .section-gallery .home-photo-swiper { --fw-photo-height:clamp(180px,40svh,320px); } }

/* Native OnePress videolightbox parallax wrapper, powered by bundled Jarallax. */
.freewave-fleet-parallax { position:relative; isolation:isolate; }
.freewave-fleet-parallax .fleet-banner { background:rgba(9,43,67,.25); }
.freewave-fleet-parallax .parallax-bg img { width:100%; height:100%; object-fit:cover; }

.freewave-slider .swiper-slide.jarallax { isolation:isolate; overflow:hidden; }
.freewave-slider .slide-copy { position:relative; z-index:1; }
.freewave-slider .jarallax-container img.slide-image { max-width:none; }

/* WordPress lazy-image auto sizes reserve 3000px; carousel widths must use photo ratios. */
.section-gallery .home-photo-swiper img { contain:none !important; contain-intrinsic-size:none !important; }
/* Equal partner slots fill the container; logo artwork keeps its proportions. */
.home-partners .partner-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:24px; width:100%; align-items:stretch; }
.home-partners .partner-grid > a,
.home-partners .partner-grid > img { width:100%; min-width:0; height:120px; margin:0; padding:15px; box-sizing:border-box; }
.home-partners .partner-grid > a { display:flex; align-items:center; justify-content:center; }
.home-partners .partner-grid img { display:block; width:100%; height:90px; max-width:100%; max-height:90px; object-fit:contain; }
.home-partners .partner-grid > img { height:120px; max-height:120px; }
@media(max-width:1199px) { .home-partners .partner-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; } }
@media(max-width:600px) { .home-partners .partner-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; } }

.freewave-fleet-parallax .parallax-bg img { object-position:50% 100%; }
.freewave-fleet-parallax .fleet-banner { padding-top:100px; padding-bottom:100px; }
@media(max-width:600px) { .freewave-fleet-parallax .fleet-banner { padding-top:75px; padding-bottom:75px; } }
/* Compact, centred frame for the externally hosted reservation search. */

/* Keep the standard container; presentation belongs to the widget itself. */

.freewave-search #nsWidget { width:100%; max-width:820px; margin:0 auto; padding:24px; background:#fff; box-shadow:0 6px 24px rgba(18,59,88,.09); min-height:0; }
.freewave-search #nsWidget iframe { height:140px; min-height:0; }
@media(max-width:600px) { .freewave-search #nsWidget { padding:15px; } .freewave-search #nsWidget iframe { height:300px; min-height:0; } }
.freewave-search #nsWidget { padding-left:0; padding-right:0; }
/* Main slider: centred lower content and a full-width blue lower gradient. */
.freewave-search #nsWidget { max-width:960px; }
.freewave-slider .swiper-slide::after { content:""; position:absolute; inset:50% 0 0; z-index:0; pointer-events:none; background:linear-gradient(to bottom,rgba(9,43,67,0),rgba(9,43,67,.82)); }
.freewave-slider .slide-copy { justify-content:flex-end; align-items:center; text-align:center; padding:35px 35px 95px; }
.freewave-slider .slide-copy-inner { max-width:1000px; margin:0 auto; }
.freewave-slider .slide-copy-inner::before { display:none; }
body.freewave-site .freewave-slider .slide-copy h2 { max-width:none; font-size:3.6rem; font-weight:600 !important; line-height:1.2; letter-spacing:normal; margin:15px 0 24px; }
.freewave-slider .slide-copy h2::after { content:""; display:block; width:60px; height:2px; background:#fff; margin:20px auto 0; }
body.freewave-site .freewave-slider .slide-copy .eyebrow { color:#7de1e7; font-size:2.2rem !important; font-weight:500; letter-spacing:.15em; margin:0; }
.freewave-slider .slide-description { max-width:850px; margin:auto; }
.freewave-slider > .swiper-button-prev,.freewave-slider > .swiper-button-next { top:auto; bottom:22px; margin:0; width:38px; height:38px; padding:10px; border:1px solid #ffffff80; background:#103a5866; color:white; z-index:5; }
.freewave-slider > .swiper-button-prev { left:24px; right:auto; }
.freewave-slider > .swiper-button-next { left:72px; right:auto; }
@media(max-width:600px) { .freewave-slider .slide-copy { padding:25px 20px 90px; } body.freewave-site .freewave-slider .slide-copy h2 { font-size:3.2rem; } body.freewave-site .freewave-slider .slide-copy .eyebrow { font-size:1.8rem !important; } }

.freewave-slider .slide-copy { padding-bottom:65px; }
@media(max-width:600px) { .freewave-slider .slide-copy { padding-bottom:70px; } }
/* Taller hero and a higher blue gradient. */
.freewave-slider { height:75vh; min-height:0; }
.freewave-slider .swiper-slide::after { top:35%; }
@media(max-width:600px) { .freewave-slider { height:75vh; } }
/* Contain native OnePress floated article/sidebar columns with Bootstrap 4. */
#content-inside { display:flow-root; }
#freewave-content { display:flow-root; }
#colophon { clear:both; }

/* Yacht overview and a full-height dark detail column extending to the viewport edge. */
.yacht-overview-header { background:linear-gradient(#10344d66,#10344d66),url('../images/slide3.jpg') center/cover; text-align:center; padding:60px 0; }
body.freewave-site .yacht-overview-header .entry-title { color:#fff; font-size:3.6rem; margin:0; }
.single-yacht-content { overflow:hidden; }
.single-yacht-content > .container > .row { align-items:stretch; }
.yacht-details-column { position:relative; isolation:isolate; color:#fff; padding:40px 35px; }
.yacht-details-column::before { content:""; position:absolute; top:0; bottom:0; left:0; width:calc(100% + 50vw); background:#1b202d; z-index:-1; pointer-events:none; }
body.freewave-site .yacht-details-column h1,body.freewave-site .yacht-details-column h2,body.freewave-site .yacht-details-column h3,body.freewave-site .yacht-details-column h4 { color:#fff; }
.yacht-details-column .tech-block h1 { margin-top:0; }
.yacht-details-column .tech-block li { border-color:rgba(255,255,255,.18); }
.yacht-details-column a:not(.button0) { color:#a9c5e7; }
.yacht-details-column table { color:inherit; }
.yacht-listing-section { background:#eee; }
body.freewave-site .freewave-card { border:0; }
@media(max-width:767px) { .yacht-details-column { margin-top:30px; padding:30px 20px; } .yacht-details-column::before { left:-20px; width:calc(100% + 40px); } }

/* Yacht gallery spans the viewport before the inquiry/detail columns. */
.yacht-gallery-section { padding:0; }
.yacht-details-column > .leadimg { display:block; width:100%; height:auto; margin:0 0 30px; }
.yacht-details-column table { width:100%; border-collapse:collapse; border:0; font-size:inherit; background:transparent; }
.yacht-details-column table td,.yacht-details-column table th { padding:12px 14px; border:0; border-bottom:1px solid rgba(255,255,255,.2); color:#fff; background:transparent; vertical-align:middle; }
.yacht-details-column table tbody tr:nth-child(even),.yacht-details-column table tr:nth-child(even) td { background:rgba(255,255,255,.06); }
.yacht-details-column table tr:nth-child(odd) td { background:transparent; }
.yacht-details-column table td:last-child { text-align:right; font-weight:600; white-space:nowrap; }
.yacht-details-column table tr:last-child td { border-bottom:0; }
.single-yacht-content .yacht-charter-sale-form { margin-top:0; }

/* Unified yacht details: information left, prices and inquiry right, carousel below. */
.yacht-unified-section { background:#fff; color:var(--fw-ink); padding:60px 0 0; }
.yacht-content-columns { row-gap:35px; }
.yacht-information-column { padding-right:35px; }
.yacht-information-column > .leadimg { display:block; width:100%; height:auto; margin:0 0 30px; }
.yacht-booking-column .single-prices { width:100%; border:0; border-collapse:collapse; font-size:inherit; margin-bottom:35px; }
.yacht-booking-column .single-prices td { padding:12px 14px; border:0; border-bottom:1px solid #dce3e7; color:var(--fw-ink); }
.yacht-booking-column .single-prices tr:nth-child(even) td { background:#f1f5f6; }
.yacht-booking-column .single-prices td:last-child { text-align:right; font-weight:600; white-space:nowrap; }
.yacht-booking-column .yacht-charter-sale-form { margin-top:35px; padding:25px; }
.yacht-unified-section > .yacht-gallery-section { margin-top:60px; }
@media(max-width:991px) { .yacht-information-column { padding-right:15px; } }

.yacht-information-column > .yacht-blueprint { display:block; width:50%; margin:0 0 30px; }
.yacht-blueprint .gallery-image { display:block; cursor:zoom-in; }
.yacht-blueprint img { display:block; width:100%; height:auto; }
/* Blueprints retain their complete original proportions, unlike gallery thumbnails. */
.single-yacht-content .yacht-blueprint.freewave-gallery img { width:100%; height:auto; max-height:none; aspect-ratio:auto; object-fit:contain; }

.yacht-summary-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:30px; align-items:center; margin-bottom:35px; }
.yacht-summary-row > .yacht-blueprint { width:100%; margin:0; }
body.freewave-site .yacht-summary-copy h1 { font-size:4rem; line-height:1.2; margin:0 0 20px; }
.yacht-summary-copy h1 span { font-size:inherit; font-weight:400; }
.yacht-summary-copy .button0 { max-width:100%; }
@media(max-width:600px) { .yacht-summary-row { gap:20px; } body.freewave-site .yacht-summary-copy h1 { font-size:3rem; } .yacht-summary-copy .button0 { padding:12px; gap:10px; } }
@media(max-width:380px) { .yacht-summary-row { grid-template-columns:1fr; } .yacht-summary-row>.yacht-blueprint { width:65%; margin:auto; } }
/* Blueprint is a single lightbox item, not a thumbnail grid. */
.yacht-summary-row > .yacht-blueprint.freewave-gallery { display:block; width:100%; }
.yacht-summary-row > .yacht-blueprint .gallery-image { width:100%; }
body.freewave-site .yacht-summary-copy h1 { font-size:3rem; }
body.freewave-site .single-yacht-content .yacht-summary-copy h1 { font-size:3rem; }
body.freewave-site .single-yacht-content .yacht-summary-copy h1 { font-size:3.6rem; }
.yacht-summary-row > .yacht-blueprint .gallery-image { border:1px solid #e2e6e9; background:#fff; box-sizing:border-box; }
/* Yacht subsection headings follow the homepage underline treatment. */
.yacht-unified-section .tech-block h3::after,
.yacht-unified-section .yacht-booking-column h3::after { content:""; display:block; width:60px; height:2px; background:#85a5cc; margin:20px 0 24px; }
.yacht-summary-row > .yacht-blueprint.freewave-gallery { width:85%; }
body.freewave-site .single-yacht-content .yacht-summary-copy h1 { font-size:4.14rem; }
.yacht-charter-sale-form .flatpickr-input[readonly] { cursor:pointer; background:#fff; }
.flatpickr-calendar { font-family:'Source Sans Pro',Arial,sans-serif; font-size:16px; z-index:10020; }
.flatpickr-day.selected,.flatpickr-day.selected:hover { background:#85a5cc; border-color:#85a5cc; }
/* Consistent form controls, including Flatpickr's visible date inputs. */
body.freewave-site .wpcf7 input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=submit]),
body.freewave-site .wpcf7 select { height:46px; min-height:46px; padding:10px 12px; line-height:24px; border:1px solid #85a5cc; border-radius:0; box-shadow:none; box-sizing:border-box; }
body.freewave-site .wpcf7 textarea { border:1px solid #85a5cc; border-radius:0; box-shadow:none; }
body.freewave-site .wpcf7 input:focus,body.freewave-site .wpcf7 select:focus,body.freewave-site .wpcf7 textarea:focus { box-shadow:none; border-color:#668bb6; }

.yacht-equipment-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; margin-top:30px; }
.yacht-equipment-grid h3 { margin-top:0; }
@media(max-width:600px) { .yacht-equipment-grid { grid-template-columns:1fr; } }
body.freewave-site .wpcf7 form p { margin-bottom:18px; }
body.freewave-site .wpcf7 input:focus,
body.freewave-site .wpcf7 input:focus-visible,
body.freewave-site .wpcf7 select:focus,
body.freewave-site .wpcf7 select:focus-visible,
body.freewave-site .wpcf7 textarea:focus,
body.freewave-site .wpcf7 textarea:focus-visible { outline:none; outline-offset:0; box-shadow:none; border-color:#123b58; }
body.freewave-site .wpcf7 input:focus,body.freewave-site .wpcf7 select:focus,body.freewave-site .wpcf7 textarea:focus { border-color:#123b58 !important; }
/* Generated price matrices: readable desktop rows and horizontal mobile scrolling. */
.freewave-pricelist { margin-bottom:45px; }
.price-day-group { margin-bottom:55px; }
body.freewave-site .price-day-title { font-size:3.6rem; margin:0 0 30px; }
.price-day-title::after,.price-line-group h3::after { content:""; display:block; width:60px; height:2px; background:#85a5cc; margin:20px 0 24px; }
.price-line-group { margin-bottom:45px; }
.price-disclaimer { margin-bottom:15px; }
.price-table-scroll { width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; margin-bottom:18px; }
.freewave-pricelist table.yacht-price-matrix { width:100%; min-width:1520px; table-layout:fixed; border-collapse:separate; border-spacing:0; border:0; font-size:inherit; line-height:1.3; margin:0; }
.yacht-price-matrix th,.yacht-price-matrix td { padding:12px 8px; border:0; border-bottom:1px solid #dce3e7; text-align:center; vertical-align:middle; background:#fff; }
.yacht-price-matrix thead th { background:#123b58; color:#fff; font-weight:600; width:77px; white-space:normal; }
.yacht-price-matrix thead th:first-child,.yacht-price-matrix tbody th { width:220px; text-align:left; position:sticky; left:0; z-index:2; }
.yacht-price-matrix thead th:first-child { z-index:3; }
.yacht-price-matrix thead th:nth-child(2),.yacht-price-matrix thead th:nth-child(3) { width:70px; }
.yacht-price-matrix thead th:last-child { width:85px; }
.yacht-price-matrix tbody td { white-space:nowrap; }
.yacht-price-matrix tbody th { font-weight:600; }
.yacht-price-matrix tbody th a { color:#123b58; }
.yacht-price-matrix tbody tr:nth-child(even)>* { background:#f1f5f6; }
.price-payment { font-size:inherit; line-height:1.5; }
@media(max-width:600px) { .yacht-price-matrix thead th:first-child,.yacht-price-matrix tbody th { width:170px; } }
.freewave-pricelist .yacht-price-matrix th,.freewave-pricelist .yacht-price-matrix td,.freewave-pricelist .yacht-price-matrix a { font-size:inherit; }
/* Legacy content filters may insert an inner scroller; keep a single scroll surface. */
.price-table-scroll > div { overflow:visible !important; }

.yacht-price-matrix .price-date,.yacht-price-matrix .price-yacht-model,.yacht-price-matrix .price-yacht-name { display:block; }
.yacht-price-matrix .price-date { white-space:nowrap; }
.yacht-price-matrix .price-yacht-name { font-weight:400; }
/* Tariff lines are subordinate to the departure-day headings. */
body.freewave-site .freewave-pricelist .price-line-group > h3 { font-size:2.8rem; margin:0 0 22px; }
.price-line-group > h3::after { display:none; }
/* Shared title banner for pages and archives; custom cover images remain editable. */
body.freewave-site .page-header:not(.page--cover) { background:linear-gradient(#10344d66,#10344d66),url('../images/slide3.jpg') center/cover; padding:60px 0; border:0; color:#fff; text-align:center; }
body.freewave-site .page-header:not(.page--cover) :is(.entry-title,.page-title) { color:#fff; font-size:3.6rem; line-height:1.2; margin:0; }
body.freewave-site .page-header:not(.page--cover) .taxonomy-description,body.freewave-site .page-header:not(.page--cover) .entry-tagline { color:#fff; }

/* Combined homepage news: one featured story and two stacked updates. */
.freewave-news-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; align-items:stretch; }
.news-gallery-section .freewave-news-list { grid-template-columns:minmax(0,1fr); align-content:center; gap:32px; }
.freewave-news-layout > * { min-width:0; }
.freewave-news-featured > a { height:100%; min-height:360px; background:var(--fw-blue); }
.freewave-news-featured img { display:block; height:100%; min-height:360px; object-fit:cover; }
body.freewave-site .freewave-news-featured h2 { font-size:3rem; line-height:1.2; }
.freewave-news-list .news-item + .news-item { border-top:1px solid var(--fw-line); padding-top:28px; }
@media(max-width:767px) {
 .freewave-news-layout { grid-template-columns:minmax(0,1fr); gap:30px; }
 .freewave-news-featured > a,.freewave-news-featured img { min-height:300px; }
 body.freewave-site .freewave-news-featured h2 { font-size:2.8rem; }
}

/* Draw slider controls independently of the text font. */
.freewave-slider .slider-pause { font-size:0; display:inline-flex; align-items:center; justify-content:center; gap:4px; }
.freewave-slider .slider-pause::before { content:""; display:block; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); flex:none; width:18px; height:18px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cpath d='M6 2v14M12 2v14' fill='none' stroke='white' stroke-width='1.25'/%3E%3C/svg%3E") center/18px 18px no-repeat; }
.freewave-slider .slider-pause::after { display:none; }
.freewave-slider .slider-pause[aria-pressed="true"]::before { width:0; height:0; background:transparent; border-top:8px solid transparent; border-bottom:8px solid transparent; border-left:12px solid currentColor; }
.freewave-slider .slider-pause[aria-pressed="true"]::after { display:none; }
.freewave-slider .slider-pause[hidden] { display:none; }

/* Native homepage search, independent of the external results iframe. */
.freewave-native-search { max-width:1040px; margin:0 auto; }
body.freewave-site .freewave-native-search h2 { font-size:2.8rem; text-align:center; margin:0 0 24px; }
.freewave-search-form { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) minmax(140px,.8fr); gap:18px; align-items:end; }
.freewave-search-form label { display:block; min-width:0; margin:0; }
.freewave-search-form label > span { display:block; margin-bottom:8px; font-size:16px; font-weight:600; color:var(--fw-blue); }
.freewave-search-form select { display:block; box-sizing:border-box; width:100%; height:52px; margin:0; padding:10px 36px 10px 15px; border:1px solid #cad6dd; border-radius:0; background-color:#fff; color:var(--fw-blue); font:inherit; font-size:inherit; }
.freewave-search-form .button0 { height:52px; margin:0; font-size:inherit; }
@media(max-width:767px) { .freewave-search-form { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; } }
@media(max-width:420px) { .freewave-search-form { grid-template-columns:minmax(0,1fr); } }

/* Continue the slider's blue shade into the compact search strip. */
body.freewave-site .freewave-search { background:#244c65; border-top:1px solid #ffffff80; border-bottom:0; }
.freewave-slider .swiper-slide::after { background:linear-gradient(to bottom,rgba(36,76,101,0),#244c65); }
.freewave-search-form label > span { color:#fff; }
.freewave-search > .container { padding-top:0; padding-bottom:0; }

/* Keep slider pagination clear of the search separator. */
.freewave-slider > .swiper-pagination { bottom:30px; }

/* Search fields share the CF7 dimensions and focus treatment. */
body.freewave-site .freewave-search-form :is(input:not([type=hidden]),select) { display:block; width:100%; height:46px; min-height:46px; padding:10px 12px; line-height:24px; border:1px solid #85a5cc; border-radius:0; box-shadow:none; box-sizing:border-box; background:#fff; color:var(--fw-blue); font:inherit; font-size:inherit; margin:0; }
body.freewave-site .freewave-search-form :is(input,select):is(:focus,:focus-visible) { outline:none; box-shadow:none; border-color:#123b58; }
.freewave-search-form .freewave-search-date[readonly] { cursor:pointer; }
.freewave-search-form .button0 { height:46px; }

.freewave-native-search:has(.freewave-weekly-search) { max-width:1140px; }
.freewave-weekly-search { grid-template-columns:1.2fr 1.2fr .9fr .8fr 1fr; gap:14px; }
.freewave-departure { min-width:0; padding:0; margin:0; border:0; }
.freewave-departure legend { float:none; width:auto; padding:0; margin:0 0 8px; color:#fff; font-size:16px; font-weight:600; line-height:inherit; }
.freewave-day-switch { display:flex; height:46px; }
.freewave-day-switch label { flex:1; position:relative; }
body.freewave-site .freewave-day-switch input[type=radio] { position:absolute; width:1px; height:1px; min-height:0; padding:0; opacity:0; }
.freewave-search-form .freewave-day-switch label > span { display:flex; align-items:center; justify-content:center; height:46px; padding:0 10px; margin:0; border:1px solid #85a5cc; color:#fff; font-size:16px; cursor:pointer; font-weight:400; }
.freewave-day-switch label + label > span { border-left:0; }
.freewave-search-form .freewave-day-switch input:checked + span { background:#85a5cc; color:#123b58; font-weight:600; }
.freewave-day-switch input:focus-visible + span { box-shadow:inset 0 0 0 2px #fff; }
.freewave-search-summary { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:8px 24px; color:#fff; font-size:15px; line-height:1.4; }
.freewave-period-output { font-weight:600; }
.freewave-wednesday-note { color:#d4e3ee; }
.freewave-wednesday-note[hidden] { display:none; }
@media(max-width:991px) { .freewave-weekly-search { grid-template-columns:repeat(2,minmax(0,1fr)); } .freewave-weekly-search > .button0 { grid-column:1/-1; } }
@media(max-width:420px) { .freewave-weekly-search { grid-template-columns:minmax(0,1fr); } }

.freewave-search-summary[hidden] { display:none; }

body.freewave-site .freewave-search-form input::placeholder { color:var(--fw-blue); opacity:1; }

/* Recommendations share the site's Jarallax treatment and equal card heights. */
.freewave-recommendations-parallax { position:relative; isolation:isolate; }
.freewave-recommendations { background:rgba(9,43,67,.4); color:#fff; }
.freewave-recommendations .news-gallery-title { color:#fff; }
.freewave-recommendations .news-gallery-title::after { background:#fff; }
.freewave-recommendations .recommendation-grid { align-items:stretch; }
.freewave-recommendations .recommendation-grid > * { height:clamp(220px,22vw,340px); min-width:0; }
.freewave-recommendations .recommendation-grid > a { display:block; overflow:hidden; }
.freewave-recommendations .recommendation-grid > a img { width:100%; height:100%; object-fit:cover; }
.recommendation-media { display:flex; flex-direction:column; gap:10px; }
.recommendation-media > p:has(img) { flex:1; min-height:0; margin:0; overflow:hidden; }
.recommendation-media > img,.recommendation-media > p img { display:block; width:100%; height:100%; object-fit:cover; margin:0!important; }
.recommendation-media > img { flex:1; min-height:0; }
.recommendation-media .wp-audio-shortcode { flex-shrink:0; width:100%!important; max-width:100%; margin:0; }
.recommendation-media > p:has(audio) { margin:0; }
@media(max-width:767px) { .freewave-recommendations .recommendation-grid { grid-template-columns:1fr; } .freewave-recommendations .recommendation-grid > * { height:auto; aspect-ratio:16/9; } }

.recommendation-media > .embeded-media { flex:1; min-height:0; overflow:hidden; }
.recommendation-media > .embeded-media img { width:100%; height:100%; object-fit:cover; margin:0!important; }
