/**
 * CharterWorld - Core Styles v3.1
 * Cleaned, merged, deduplicated
 */

/* ===== VARIABLES ===== */
:root {
    --cw-navy: #0D2B44;
    --cw-navy-hover: #124066;
    --cw-coral: #F66867;
    --cw-sky: #D3E3F1;
    --cw-sand: #E6DBC1;
    --cw-sand-hover: #cfc09e;
    --cw-white: #FFFFFF;
    --cw-grey: #444444;
    --cw-dark-grey: #363636;
    --cw-light-grey: #F5F5F5;
    --cw-border: rgba(0, 62, 120, 0.1);
    --cw-border-medium: rgba(0, 62, 120, 0.2);
    --cw-transition: 0.3s ease;
    --cw-gap: 25px;
}


/* ===== COMPONENT BASE ===== */
.cw-component {
    position: relative;
    max-width: 1400px;
    margin: 0 auto;
    padding: 40px 20px;
}

.cw-component-fullwidth {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

.cw-component-fullwidth .cw-filters-wrapper {
    max-width: 1080px;
    margin: 0 auto 30px auto;
    padding: 0 20px;
}

.cw-component-fullwidth .cw-section-header {
    max-width: 1400px;
    margin: 0 auto 25px auto;
    padding: 0 20px;
}

/* ===== SECTION HEADER ===== */
.cw-section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    gap: 20px;
}

.cw-section-title {
    font-size: 32px;
    font-weight: 700;
    color: var(--cw-navy);
    margin: 0;
    line-height: 1.2;
}

.cw-section-footer {
    text-align: center;
    margin-top: 30px;
}

/* ===== NAV BUTTONS ===== */
.cw-nav {
    display: flex;
    gap: 0;
}

.cw-nav-btn {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid #e5e5e5 !important;
    border-radius: 50%;
    color: var(--cw-navy);
    cursor: pointer;
    transition: background var(--cw-transition), transform var(--cw-transition);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    padding: 0;
    margin: 0;
    line-height: 1;
    -webkit-appearance: none;
    appearance: none;
    text-indent: 0;
    font-size: 0;
}

.cw-nav-btn:hover {
    background: var(--cw-navy);
    color: var(--cw-white);
}

.cw-nav-btn:disabled {
    background: var(--cw-white);
    color: var(--cw-grey);
    cursor: not-allowed;
    opacity: 0.5;
}

.cw-nav-btn svg {
    width: 26px;
    height: 26px;
    stroke-width: 2.5;
    display: block;
    flex-shrink: 0;
    pointer-events: none;
}

/* ===== NAV OVERLAY ===== */
.cw-nav-overlay {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    align-items: center;
    pointer-events: none;
    z-index: 0;
    padding: 0 10px;
}

.cw-nav-overlay .cw-nav-btn {
    pointer-events: auto;
    background: rgba(0, 62, 120, 0.55);
    border: none !important;
    color: var(--cw-white);
    width: 50px;
    height: 50px;
    border-radius: 0;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    box-shadow: none;
    padding: 0;
    margin: 0;
}

.cw-nav-overlay .cw-nav-btn:hover {
    background: rgba(0, 62, 120, 0.85);
    color: var(--cw-white);
}

.cw-nav-overlay .cw-nav-btn:disabled {
    background: rgba(0, 62, 120, 0.2);
    color: rgba(255, 255, 255, 0.4);
    cursor: not-allowed;
    opacity: 1;
}

.cw-nav-overlay .cw-nav-btn svg {
    width: 22px;
    height: 22px;
    stroke-width: 2.5;
}

/* NAV LIGHT variant */
.cw-nav-overlay.cw-nav-light .cw-nav-btn {
    width: 60px;
    height: 60px;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 50%;
    color: var(--cw-navy);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    padding: 0;
    line-height: 0;
    border:#efefef 1px solid !important;
}

.cw-nav-overlay.cw-nav-light .cw-nav-btn:hover {
    background: rgba(255, 255, 255, 0.92);
    border-color: rgba(0, 62, 120, 0.3);
    color: var(--cw-navy);
}

.cw-nav-overlay.cw-nav-light .cw-nav-btn:disabled {
    background: rgba(255, 255, 255, 0.3);
    border-color: rgba(0, 62, 120, 0.05);
    color: rgba(0, 62, 120, 0.25);
    cursor: not-allowed;
}

.cw-nav-overlay.cw-nav-light .cw-nav-btn svg {
    width: 24px;
    height: 24px;
}

/* ===== FILTERS ===== */
.cw-filters {
    background: var(--cw-light-grey);
    padding: 20px 35px;
    margin-bottom: 30px;
    border-bottom: 4px solid var(--cw-navy);
}

.cw-filters-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
}

.cw-filter-group {
    flex: 1;
    min-width: 140px;
}

.cw-filter-group label {
    display: block;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--cw-navy);
    margin-bottom: 5px;
    line-height: 1;
}

.cw-filter-group select {
    width: 100%;
    height: 42px;
    padding: 0 12px;
    border: 1px solid var(--cw-border-medium);
    background: var(--cw-white);
    font-size: 13px;
    color: var(--cw-navy);
    cursor: pointer;
    transition: border-color var(--cw-transition);
    box-sizing: border-box;
    margin: 0;
}

.cw-filter-group select:focus {
    outline: none;
    border-color: var(--cw-sand);
    color: var(--cw-navy);
}

.cw-filter-buttons {
    flex: 0 0 auto;
    min-width: auto;
    display: flex;
    flex-direction: row;
    gap: 8px;
    padding-top: 15px;
}

.cw-filter-buttons label {
    display: none;
}

/* ===== BUTTONS ===== */
.cw-btn {
    height: 42px;
    padding: 0 20px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: none;
    border-radius: 0;
    cursor: pointer;
    transition: all var(--cw-transition);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    text-decoration: none;
}

.cw-btn-primary {
    background: var(--cw-navy);
    color: var(--cw-white);
}

.cw-btn-primary:hover {
   background-color: var(--cw-sand);
    color: var(--cw-grey);
}

.cw-btn-outline {
    background: transparent;
    color: var(--cw-navy);
    border: 1px solid var(--cw-navy);
}

.cw-btn-outline:hover {
    background: var(--cw-navy);
    color: var(--cw-white);
}

.cw-btn-icon {
    width: 42px;
    height: 42px;
    padding: 0;
    background: var(--cw-white);
    color: var(--cw-navy);
    border: 1px solid var(--cw-border-medium);
}

.cw-btn-icon:hover {
    background: var(--cw-navy);
    color: var(--cw-white);
}

.cw-btn-icon svg {
    width: 18px;
    height: 18px;
}

/* ===== CAROUSEL & GRID ===== */
.cw-carousel {
    overflow: hidden;
    position: relative;
}

.cw-carousel-track {
    display: flex;
    gap: var(--cw-gap);
    transition: transform 0.4s ease;
}

.cw-grid {
    display: grid;
    gap: var(--cw-gap);
}

.cw-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cw-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cw-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* Gallery hub tag cards — uniform 4/3 images */
.cw-gallery-hub-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 25px !important;
}

.cw-gallery-hub-grid .cw-gallery-card {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    background: #fff !important;
}

.cw-gallery-hub-grid .cw-gallery-card .cw-card-image {
    position: relative !important;
    width: 100% !important;
    height: 0 !important;
    padding-bottom: 75% !important;
    overflow: hidden !important;
    background: #f5f5f5 !important;
}

.cw-gallery-hub-grid .cw-gallery-card .cw-card-image a {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
}

.cw-gallery-hub-grid .cw-gallery-card .cw-card-image img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
}

.cw-gallery-hub-grid .cw-gallery-card .cw-card-content {
    padding: 12px 0 18px !important;
    min-height: 70px !important;
}

.cw-gallery-hub-grid .cw-gallery-card .cw-card-title {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #363636 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin: 0 0 6px !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.cw-gallery-hub-grid .cw-gallery-card .cw-card-meta {
    font-size: 13px !important;
    color: #888 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

/* Gallery pages spacing */
#Content.cw-gallery-content,
.cw-gallery-content {
    padding-top: 80px !important;
    padding-bottom: 80px !important;
}

.cw-gallery-content .content_wrapper {
    width: 100% !important;
    max-width: 100% !important;
}

/* ===== CARD BASE ===== */
.cw-card {
    background: var(--cw-white);
    display: flex;
    flex-direction: column;
    border: none;
}

.cw-card-link {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.cw-card-link:hover {
    text-decoration: none;
}

.cw-card-content-link {
    text-decoration: none;
    color: inherit;
    display: block;
    flex: 1;
}

.cw-card-content-link:hover {
    color: inherit;
    text-decoration: none;
}

/* ===== CAROUSEL COLUMNS ===== */
.cw-component .cw-carousel-track > .cw-card {
    flex: none !important;
    min-width: 0 !important;
    max-width: none !important;
    box-sizing: border-box;
}

.cw-component[data-columns="2"] > .cw-carousel > .cw-carousel-track > .cw-card {
    width: calc(50% - 12px) !important;
    flex: 0 0 calc(50% - 12px) !important;
}

.cw-component[data-columns="3"] > .cw-carousel > .cw-carousel-track > .cw-card {
    width: calc(33.333% - 17px) !important;
    flex: 0 0 calc(33.333% - 17px) !important;
}

.cw-component[data-columns="4"] > .cw-carousel > .cw-carousel-track > .cw-card {
    width: calc(25% - 19px) !important;
    flex: 0 0 calc(25% - 19px) !important;
}

.cw-component[data-columns="5"] > .cw-carousel > .cw-carousel-track > .cw-card {
    width: calc(20% - 20px) !important;
    flex: 0 0 calc(20% - 20px) !important;
}

.cw-component[data-columns="6"] > .cw-carousel > .cw-carousel-track > .cw-card {
    width: calc(16.667% - 21px) !important;
    flex: 0 0 calc(16.667% - 21px) !important;
}

/* ===== YACHT CARD ===== */
.cw-yacht-card .cw-card-image {
    position: relative;
    width: 100%;
    overflow: hidden;
    background: var(--cw-light-grey);
    padding-bottom: 66.67%;
    height: 0;
}

.cw-yacht-card .cw-card-image a:first-child {
    position: absolute;
    inset: 0;
}

.cw-yacht-card:hover .cw-card-image::after {
    background: rgba(0, 0, 0, 0.12);
}

.cw-yacht-card .cw-card-image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.5s ease;
}

/* Force identical image sizes across all grid pages */
.cw-grid .cw-yacht-card .cw-card-image {
    padding-bottom: 66.67% !important;
    height: 0 !important;
    width: 100%;
    overflow: hidden;
}

.cw-grid .cw-yacht-card .cw-card-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block;
    transition: transform 0.5s ease;
}

.cw-yacht-card:hover .cw-card-image img {
    transform: scale(1.01);
}

/* Zoom trigger */
.cw-yacht-card .cw-zoom-trigger {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 5;
    width: 36px;
    height: 36px;
    background: rgba(255, 255, 255, 0.95);
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 1 !important;
    visibility: visible !important;
    transition: none !important;
}

.cw-yacht-card .cw-zoom-trigger:hover {
    background: rgba(255, 255, 255, 1);
}

/* ===== SPECIAL OFFER (client 11-09 redesign) ===== */

/* "$" badge on result cards — same 36px circle as the zoom trigger,
   bottom-right corner; hover: coral background / white icon */
.cw-yacht-card .cw-special-offer-icon {
    position: absolute;
    bottom: 12px;
    right: 12px;
    z-index: 5;
    width: 36px;
    height: 36px;
    padding: 0;
    background: rgba(255, 255, 255, 0.95);
    color: var(--cw-coral);
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
}

.cw-yacht-card .cw-special-offer-icon:hover,
.cw-yacht-card .cw-special-offer-icon[aria-expanded="true"] {
    background: var(--cw-coral);
    color: #fff;
}

/* Offer text as a hover tip (meeting 22.09 — was a click-open panel). `bottom`
   stops exactly at the top edge of the 36px icon (12px + 36px) so the cursor can
   travel onto the tip without it closing; .is-open is the touch/click path in
   cw-core.js. */
.cw-yacht-card .cw-special-overlay {
    display: none;
    position: absolute;
    top: 12px;
    left: 12px;
    right: 12px;
    bottom: 48px;
    z-index: 6;
    background: rgba(255, 255, 255, 0.94);
    padding: 14px 16px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--cw-dark-grey);
    overflow: auto;
}

.cw-yacht-card .cw-special-offer-icon:hover + .cw-special-overlay,
.cw-yacht-card .cw-special-offer-icon:focus + .cw-special-overlay,
.cw-yacht-card .cw-special-overlay:hover,
.cw-yacht-card .cw-special-overlay.is-open {
    display: block;
}

.cw-yacht-card .cw-special-overlay-title {
    color: var(--cw-coral);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.cw-yacht-card .cw-special-overlay-location {
    color: var(--cw-grey);
    font-size: 12px;
    margin-top: 6px;
}

.cw-yacht-card .cw-special-overlay-rate {
    color: var(--cw-coral);
    font-weight: 700;
    font-size: 13px;
    margin-top: 6px;
}

/* Specials results page ([cw_specials_list]) — card additions on top of
   the shared .cw-yacht-card format; clean and simple, no boxes.
   The .cw-special-view-offer / .cw-special-full* rules went with the VIEW
   OFFER expander (meeting 22.09): the card now carries the same "$" hover tip
   and a plain VIEW YACHT button as every other yacht card. */
.cw-special-card .cw-special-headline {
    font-size: 13px;
    font-weight: 700;
    color: var(--cw-dark-grey);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 4px 0 2px 0;
}

.cw-special-card .cw-special-rate {
    margin-bottom: 8px;
}

/* Card content — merged */
.cw-yacht-card .cw-card-content {
    padding: 10px 0 18px 0;
    text-align: left;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

/* Card title — merged, using 16px OI style */
.cw-yacht-card .cw-card-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--cw-dark-grey);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 6px 0;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Meta line */
.cw-yacht-card .cw-card-meta {
    font-size: 12px;
    color: var(--cw-grey);
    margin: 0 0 2px 0;
    line-height: 1.2;
}

/* Price */
.cw-yacht-card .cw-card-price {
    font-size: 12px;
    color: var(--cw-grey);
    margin: 0 0 8px 0;
}

/* View link */
.cw-yacht-card .cw-card-view-link {
    display: inline-block;
}

/* Year accent */
.cw-yacht-card .cw-card-year {
    color: var(--cw-coral);
}

/* Specs row */
.cw-yacht-card .cw-specs {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0;
    margin: 8px 0;
    border: none;
    white-space: nowrap;
}

.cw-yacht-card .cw-spec {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: var(--cw-grey);
}

.cw-yacht-card .cw-spec svg {
    width: 16px;
    height: 16px;
    stroke: var(--cw-navy);
    opacity: 0.7;
    flex-shrink: 0;
}

.cw-yacht-card .cw-spec + .cw-spec::before {
    content: none;
}

/* Legacy price display */
.cw-yacht-card .cw-price {
    font-size: 15px;
    font-weight: 600;
    color: var(--cw-navy);
    margin: 10px 0 15px 0;
}

.cw-yacht-card .cw-price-period {
    font-size: 12px;
    font-weight: 400;
    color: var(--cw-grey);
}

.cw-yacht-card .cw-price-request {
    font-size: 13px;
    font-weight: 600;
    color: var(--cw-coral);
}

/* Hidden legacy elements */
.cw-yacht-card .cw-card-subtitle,
.cw-yacht-card .cw-card-badge, .cw-card-badge, .cw-card-image .cw-card-badge {
    display: none!important;
}

/* Single post hero meta (category badge + date + author) must stay visible */
.single-post .cw-hero-meta {
    display: flex !important;
}

/* ===== LOCATION CARD ===== */
.cw-location-card-v3 {
    background: #fff;
    border: none;
    overflow: visible;
}

.cw-location-card-v3 .cw-card-image {
    position: relative;
    aspect-ratio: 4/3;
    overflow: hidden;
}

/* Padding-hack fallback for browsers without aspect-ratio support */
@supports not (aspect-ratio: 1/1) {
    .cw-location-card-v3 .cw-card-image { padding-bottom: 75%; }
    .cw-location-card-v3 .cw-card-image img { position: absolute; inset: 0; }
}

.cw-location-card-v3 .cw-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.cw-location-card-v3:hover .cw-card-image img {
    transform: scale(1.03);
}

.cw-location-card-v3 .cw-location-content {
    padding: 18px 0 0 0;
}

.cw-location-card-v3 .cw-location-name {
    font-size: 18px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.cw-location-card-v3 .cw-location-name a {
    color: var(--cw-grey);
    text-decoration: none;
}

.cw-location-card-v3 .cw-location-name a:hover {
   /* color: var(--cw-coral); */
}

.cw-location-card-v3 .cw-location-desc {
    font-size: 14px;
    line-height: 1.7;
    color: var(--cw-grey);
    margin: 0 0 15px 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    max-height: 4.8em;
}

.cw-location-tags {
    display: none;
}

.cw-location-link {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #fff;
    text-decoration: none;
    position: relative;
    padding-bottom: 4px;
}

.cw-location-link::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background: rgba(255, 255, 255, 0.4);
    transition: height 0.3s ease, bottom 0.3s ease;
}

.cw-location-card-v3:hover .cw-location-link::after {
    height: 40%;
    bottom: 0;
}

.cw-location-link svg {
    display: none;
}

/* ===== BUILDER CARD ===== */
.cw-builder-card {
    background: #fff;
    border: none;
    overflow: visible;
}

.cw-builder-card .cw-card-image {
    position: relative;
    aspect-ratio: 4/3;
    overflow: hidden;
}

.cw-builder-card .cw-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.cw-builder-card:hover .cw-card-image img {
    transform: scale(1.02);
}

.cw-builder-card .cw-card-content {
    padding: 18px 0 0 0;
}

.cw-builder-card .cw-card-title {
    font-size: 18px;
    font-weight: 700;
    text-transform: uppercase !important;
    letter-spacing: 0.5px;
    margin: 0 0 8px 0 !important;
    line-height: 1.3;
}

.cw-builder-card .cw-card-title a {
    color: var(--cw-dark-grey);
    text-decoration: none;
}

.cw-builder-card .cw-card-title a:hover {
 /*   color: var(--cw-coral); */
}

.cw-builder-card .cw-card-meta {
    font-size: 13px;
    color: var(--cw-grey);
    margin: 0 0 12px 0;
}

/* ===== TESTIMONIAL CARD ===== */
.cw-testimonial-card {
    position: relative;
    border: 1px solid #e5e5e5;
    padding: 20px 10px;
    overflow: hidden;
    background: #fff;
    display: flex;
    flex-direction: column;
    min-height: 320px;
}

.cw-testimonial-inner {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    padding: 28px 24px 24px;
}

.cw-testimonial-quote {
    position: relative;
    flex: 1;
}

.cw-quote-icon {
    position: absolute;
    top: -4px;
    left: -2px;
    width: 40px;
    height: 40px;
    color: var(--cw-navy);
    opacity: 0.1;
}

.cw-testimonial-quote p {
    position: relative;
    z-index: 1;
    font-size: 0.95rem;
    line-height: 1.65;
    color: #4a5568;
    margin: 0;
    font-style: italic;
    padding-top: 45px;
}

.cw-testimonial-footer {
    margin-top: 20px;
    padding-top: 0;
}

.cw-testimonial-divider {
    width: 40px;
    height: 2px;
    background: var(--cw-coral);
    margin-bottom: 12px;
}

.cw-testimonial-signature {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--cw-navy);
    line-height: 1.3;
    display: block;
    margin-bottom: 4px;
}

.cw-testimonial-attribution {
    font-size: 0.8rem;
    color: #8896a6;
    margin-top: 4px;
    line-height: 1.4;
}

.cw-testimonial-details {
    display: block;
    font-size: 12px;
    color: var(--cw-coral);
}

/* Testimonial quotes vary a lot in length; flex-start lets each card
   keep its own height instead of every card stretching to the tallest
   one in the row. Scoped here so the shared .cw-carousel-track rule
   (locations, yacht cards, blog, builders) keeps equal-height cards. */
/*
 * Equal-height testimonial cards with an overflow ellipsis (client 29.09, 2.6/2.9:
 * "the testimonials are different heights… can the text end with …").
 *
 * The row used to be align-items: flex-start on purpose (21.09), so a short quote
 * kept its own height — which is precisely the uneven row being complained about.
 * Stretching alone would not fix it either: one long quote would push the whole
 * row to its height and leave the others mostly empty. So the quote is clamped to
 * a fixed number of lines and the footer is pushed to the bottom, which makes the
 * cards the same height by construction and shows "…" where text was cut.
 *
 * Scoped to this component on purpose: the dedicated testimonials page renders the
 * same card in a grid, and there the full quote is the content — truncating it
 * would hide what the page exists to show.
 */
.cw-testimonials-component .cw-carousel-track {
    align-items: stretch;
}

.cw-testimonials-component .cw-carousel-track > .cw-card {
    display: flex;
    flex-direction: column;
}

.cw-testimonials-component .cw-testimonial-quote p {
    display: -webkit-box;
    -webkit-line-clamp: 7;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cw-testimonials-component .cw-testimonial-footer {
    margin-top: auto;
}

/* The "… more" control (client 07.10: the dots must expand the quote).
   Hidden until JS confirms the paragraph is actually clamped, so nothing
   clickable-but-dead appears without JS or on a grid view. The clamp is
   lifted per card; the row grows with it because the track is flex. */
.cw-testimonials-component .cw-testimonial-more {
    display: none;
}
.cw-quote-js .cw-testimonials-component .cw-quote-clamped .cw-testimonial-more {
    display: inline-block;
    margin-top: 8px;
    border: 0;
    background: none;
    padding: 0;
    cursor: pointer;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--cw-coral);
}
.cw-quote-js .cw-testimonials-component .cw-quote-clamped .cw-testimonial-quote p {
    cursor: pointer;
}
.cw-testimonials-component .cw-quote-open .cw-testimonial-quote p {
    display: block;
    -webkit-line-clamp: unset;
    overflow: visible;
}

/* ===== BLOG CARD ===== */
.cw-blog-card .cw-card-image {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: var(--cw-light-grey);
}

.cw-blog-card .cw-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.5s ease;
}

.cw-blog-card:hover .cw-card-image img {
    transform: scale(1.03);
}

.cw-blog-card .cw-card-content {
    padding: 10px 0 18px 0;
}

.cw-blog-card .cw-card-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--cw-navy);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0 0 6px 0;
    line-height: 1.3;
    min-height: 2.6em;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.cw-blog-card .cw-card-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: var(--cw-navy);
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 4px 10px;
    z-index: 3;
}

.cw-blog-date {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--cw-coral);
    margin-bottom: 8px;
    display: block;
}

.cw-blog-excerpt {
    font-size: 13px;
    color: var(--cw-grey);
    line-height: 1.5;
    margin: 8px 0 15px 0;
}

/* ===== LOADING ===== */
.cw-loading {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.9);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 100;
}

.cw-loading.active {
    display: flex;
}

.cw-spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--cw-sky);
    border-top-color: var(--cw-navy);
    border-radius: 50%;
    animation: cw-spin 0.8s linear infinite;
}

@keyframes cw-spin {
    to { transform: rotate(360deg); }
}

.cw-no-results {
    width: 100%;
    text-align: center;
    padding: 60px 20px;
    color: var(--cw-grey);
    font-size: 16px;
}
/* ===== FOOTER MENU ===== */
.mfn-footer-menu li:first-child {
    margin-bottom: 15px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
}

.mfn-footer-menu li:first-child a {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #FFFFFF !important;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    text-decoration: none !important;
    display: inline-block;
    transition: all 0.3s ease;
}

.mfn-footer-menu li:first-child a:hover {
    color: var(--cw-coral) !important;
    text-decoration: none !important;
}

.mfn-footer-menu li:not(:first-child) {
    margin-bottom: 8px;
}

.mfn-footer-menu li:not(:first-child) a {
    font-size: 14px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    transition: all 0.3s ease;
}

.mfn-footer-menu li:not(:first-child) a:hover {
    color: #FFFFFF !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
}

/* ===== CW TEXT LINK BUTTON ===== */
.button.cw-text-link {
    background: transparent !important;
    border: none !important;
    padding: 0 0 6px 0 !important;
    position: relative;
    color: var(--cw-navy) !important;
    font-size: 14px;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 500;
    display: inline-block;
    overflow: visible;
}

.button.cw-text-link .button_label {
    position: relative;
    display: inline;
    z-index: 1;
}

.button.cw-text-link .button_label::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 100%;
    height: 2px;
    background: var(--cw-sand);
    transition: height 0.35s ease, background 0.35s ease;
    z-index: -1;
}

.button.cw-text-link:hover .button_label::after {
    height: 70%;
    background: linear-gradient(to top, var(--cw-sand), rgba(230, 219, 193, 0));
}

.button.cw-text-link:hover {
    color: var(--cw-navy) !important;
    background: transparent !important;
}

/* ===== YACHT FILTERS - MINIMAL STYLE ===== */
.cw-yachts-component .cw-filters {
    background: transparent;
    padding: 0;
    border-bottom: none;
    margin-bottom: 15px;
    box-shadow: none;
}

.cw-yachts-component .cw-filters-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: nowrap;
    border-bottom: none;
    padding-bottom: 20px;
    box-shadow: none;
    max-width: 100%;
}

.cw-yachts-component .cw-filter-group {
    flex: 1 1 0;
    min-width: 0;
}

.cw-yachts-component .cw-filter-group label {
    display: none;
}

.cw-yachts-component .cw-filter-group select {
    width: 100%;
    height: auto;
    padding: 15px 35px 15px 15px;
    border: none;
    border-bottom: 1px solid var(--cw-border-medium);
    border-radius: 0;
    background-color: #fff;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--cw-navy);
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23003E78' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    box-shadow: none;
    outline: none;
}

.cw-yachts-component .cw-filter-group select:focus {
    outline: none;
    box-shadow: none;
    border-bottom-color: var(--cw-navy);
}

.cw-yachts-component .cw-filter-group select option {
    background-color: #fff;
    color: var(--cw-navy);
    padding: 12px 15px;
}
.mfn-header-menu-burger {padding:5px!important;}
.cw-yachts-component .cw-filter-buttons {
    flex: 0 0 auto;
    margin-left: 30px;
    padding-top: 0;
    flex-direction: row;
    align-items: center;
    font-weight: normal;
}


.cw-yachts-component .cw-filter-buttons .cw-btn,
.cw-yachts-component .cw-filter-buttons .cw-btn-primary,
.cw-yachts-component .cw-filter-buttons .cw-btn-icon {
    border-radius: 0;
    box-shadow: none;
}
.cw-yachts-component .cw-filter-buttons .cw-btn-icon {
  border:#0D2B44 1px solid!important;
  padding: 4px!important;
  color:#0D2B44!important;
}

.cw-yachts-component .cw-filter-buttons .cw-btn-icon:hover {
  border:#0D2B44 1px solid!important;
  padding: 4px!important;
  color: #ffffff!important;
}

/* ===== PHOTOSWIPE 5 FIX (WooCommerce conflict) ===== */

/* Reset legacy overrides to let PhotoSwipe calculate transforms natively */
.pswp__zoom-wrap {
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
}

/* Only the max-* may be forced. PhotoSwipe 5 sizes each image with an INLINE
   width/height that IS its fit-to-viewport calculation (a 1600x1067 photo in a
   1440x900 window gets width:1350px; height:900px), so `width: auto !important`
   here used to throw that away and show the photo at natural size — larger than
   the screen, which is what the client reported on 05.10 as "the images are
   appearing too large again rather than defaulting to a full screen view".
   The !important is still needed against the max-width:100%/height:auto clamp
   that WooCommerce and BeTheme put on every img. */
.pswp__img {
    max-width: none !important;
    max-height: none !important;
}

/* PhotoSwipe 5 vs WooCommerce PhotoSwipe 4 skin.
   WC's default-skin CSS paints a sprite background on every .pswp__button —
   including PSWP5's buttons, whose real icons are inline <svg class="pswp__icn">.
   Result was two icon layers per button. Keep the sprite only on PSWP4 buttons
   (they have NO svg child) and show the inline svg on PSWP5 buttons. */
.pswp__button:has(> svg.pswp__icn) {
    background: none !important;
}

.pswp__button > svg.pswp__icn {
    display: block !important;
    width: 32px;
    height: 32px;
    margin: 0 auto;
}

/* WooCommerce's PSWP4 shell is always in the DOM; when closed it must stay
   invisible, otherwise its toolbar shows through the PSWP5 overlay. */
.pswp:not(.pswp--open):not(.pswp--visible) {
    display: none !important;
}

/* --- THE TAILOR.COM HEADER STYLE --- */

/* 1. Base State: Fixed positioning, transparent background by default */
.mfn-header-tmpl-builder .mcb-header-section {
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 9999;
    background-color: transparent !important;
    transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), background-color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), box-shadow 0.4s ease !important;
    box-shadow: none !important;
}

/* 2. Push all header content down by 10px */
.mfn-header-tmpl-builder .mcb-header-section .section_wrapper {
    padding-top: 10px !important;
}

/* 3. State: Hide header when scrolling down */
.mfn-header-tmpl-builder .mcb-header-section.header-hidden {
    transform: translateY(-100%) !important;
}

/* 4. State: White background when scrolling up OR hovering over the header */
.mfn-header-tmpl-builder .mcb-header-section.header-white,
.mfn-header-tmpl-builder .mcb-header-section:hover {
    background-color: #ffffff !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05) !important;
}

/* 5. Keep menu item background completely transparent on hover */
.mfn-header-tmpl-builder .mcb-header-section .mfn-menu-li:hover>.mfn-menu-link {
    background-color: transparent !important;
    opacity: 0.7;
}
/* =========================================
   TEXT COLORS (White by default, Dark on white bg) 
   ========================================= */

/* 6A. Default state (Transparent bg): Text is WHITE */
.mfn-header-tmpl-builder .mcb-header-section .mfn-menu-link,
.mfn-header-tmpl-builder .mcb-header-section .mfn-header-menu-toggle .icon,
.mfn-header-tmpl-builder .mcb-header-section .icon-wrapper i {
    color: #ffffff !important;
    transition: color 0.3s ease !important;
}

/* 6B. Scrolled or Hovered state (White bg): Text is #444444 */
.mfn-header-tmpl-builder .mcb-header-section.header-white .mfn-menu-link,
.mfn-header-tmpl-builder .mcb-header-section.header-white .mfn-header-menu-toggle .icon,
.mfn-header-tmpl-builder .mcb-header-section.header-white .icon-wrapper i,
.mfn-header-tmpl-builder .mcb-header-section:hover .mfn-menu-link,
.mfn-header-tmpl-builder .mcb-header-section:hover .mfn-header-menu-toggle .icon,
.mfn-header-tmpl-builder .mcb-header-section:hover .icon-wrapper i {
    color: #444444 !important;
}
/* =========================================
   LOGO COLORS (White on transparent bg, Original on white bg)
   ========================================= */

/* 1. Logo becomes fully white when the header is transparent */
.mfn-header-tmpl-builder .mcb-header-section:not(.header-white) .logo-wrapper img {
    filter: brightness(0) invert(1) !important;
    transition: filter 0.4s ease !important;
}

/* 2. Reset logo to its original colors when the header is white */
.mfn-header-tmpl-builder .mcb-header-section.header-white .logo-wrapper img,
.mfn-header-tmpl-builder .mcb-header-section:hover .logo-wrapper img {
    filter: none !important;
}

/* Optional: If your burger menu button has a border, change its color too */
.mfn-header-tmpl-builder .mcb-header-section .mfn-header-menu-burger {
    border-color: rgba(255, 255, 255, 0.5) !important;
    transition: border-color 0.3s ease !important;
}

.mfn-header-tmpl-builder .mcb-header-section.header-white .mfn-header-menu-burger,
.mfn-header-tmpl-builder .mcb-header-section:hover .mfn-header-menu-burger {
    border-color: rgba(68, 68, 68, 0.3) !important;
}

/* ===== BETHEME GLOBAL OVERRIDES ===== */
.button.button_theme {
    border: none;
    background-color: var(--cw-navy);
    color: #fff;
}

.button.button_theme:hover {
    border: none;
    background-color: rgba(0, 62, 120, 0.44);
    color: #fff;
}

.button {
    border-radius: 0 !important;
}

h3, h2 {
    text-transform: uppercase;
}

/* ===== YACHT FILTERS RESPONSIVE ===== */
@media (max-width: 1200px) {
    .cw-yachts-component .cw-filter-group select {
        font-size: 10px;
        padding: 12px 30px 12px 0;
    }
}

@media (max-width: 992px) {
    .cw-yachts-component .cw-filters-row {
        flex-wrap: wrap;
    }

    .cw-yachts-component .cw-filter-group {
        flex: 0 0 calc(50% - 10px);
        margin-bottom: 10px;
    }

    .cw-yachts-component .cw-filter-group select {
        padding: 12px 30px 12px 0;
    }

    .cw-yachts-component .cw-filter-buttons {
        flex: 0 0 100%;
        margin-left: 0;
        margin-top: 10px;
        justify-content: flex-end;
    }
}

@media (max-width: 576px) {
    .cw-yachts-component .cw-filter-group {
        flex: 0 0 100%;
    }
}


@media (max-width: 1200px) {
    .cw-grid-4 { grid-template-columns: repeat(3, 1fr); }
    .cw-filter-group { min-width: 120px; }

    .cw-component[data-columns="4"] > .cw-carousel > .cw-carousel-track > .cw-card,
    .cw-component[data-columns="5"] > .cw-carousel > .cw-carousel-track > .cw-card,
    .cw-component[data-columns="6"] > .cw-carousel > .cw-carousel-track > .cw-card {
        width: calc(33.333% - 17px) !important;
        flex: 0 0 calc(33.333% - 17px) !important;
    }

    .cw-location-card-v3 .cw-location-name { font-size: 22px; }
}

@media (max-width: 992px) {
    .cw-grid-4,
    .cw-grid-3 { grid-template-columns: repeat(2, 1fr); }
    .cw-filter-group { min-width: calc(33% - 10px); }
    .cw-section-title { font-size: 26px; }
}

@media (max-width: 768px) {
    .cw-section-header {
        flex-direction: column;
        text-align: center;
    }
    .cw-filter-group { min-width: calc(50% - 8px); }
    .cw-filter-buttons {
        width: 100%;
        justify-content: flex-end;
        padding-top: 10px;
    }
    .cw-grid-2 { grid-template-columns: 1fr; }

    .cw-component[data-columns] > .cw-carousel > .cw-carousel-track > .cw-card {
        width: calc(50% - 12px) !important;
        flex: 0 0 calc(50% - 12px) !important;
    }

    .cw-carousel-track { gap: 16px; }
    .cw-yacht-card .cw-card-title { font-size: 14px; }
    .cw-location-card-v3 .cw-location-name { font-size: 20px; }
    .cw-testimonial-inner { padding: 22px 18px 20px; }
    .cw-testimonial-quote p { font-size: 0.9rem; }
}

@media (max-width: 576px) {
    .cw-grid-4,
    .cw-grid-3,
    .cw-grid-2 { grid-template-columns: 1fr; }
    .cw-component { padding: 30px 15px; }
    .cw-section-title { font-size: 22px; }
    .cw-nav-btn { width: 44px; height: 44px; }
    .cw-nav-overlay .cw-nav-btn { width: 40px; height: 40px; }
    .cw-nav-overlay { padding: 0 5px; }
    .cw-nav-overlay.cw-nav-light .cw-nav-btn { width: 44px; height: 44px; }
    .cw-nav-overlay.cw-nav-light .cw-nav-btn svg { width: 20px; height: 20px; }
    .cw-filter-group { min-width: 100%; }
}

@media (max-width: 480px) {
    .cw-component[data-columns] > .cw-carousel > .cw-carousel-track > .cw-card {
        width: 100% !important;
        flex: 0 0 100% !important;
    }

    .cw-carousel-track { gap: 12px; }
    .cw-testimonial-inner { padding: 18px 16px; }
}

/* ===== WOOCOMMERCE GRID → CW YACHT CARDS ===== */
ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 30px !important;
    list-style: none !important;
    padding: 0 !important;
}

ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}

@media (max-width: 992px) {
    ul.products { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 576px) {
    ul.products { grid-template-columns: 1fr !important; }
}

/* ===== FIX: WooCommerce grid first cell empty ===== */
ul.products::before,
ul.products::after {
    display: none !important;
    content: none !important;
}

ul.products li.product:first-child {
    grid-column-start: 1 !important;
}

/* Hide WooCommerce result count & ordering on archive */
.woocommerce-result-count,
.woocommerce-ordering {
    display: none;
}

/* Fix Betheme be.css button align-items: flex-end override */
button.cw-nav-btn {
    align-items: center !important;
    justify-content: center !important;
}

/* Results lead-in (client 22.09, tightened 24.09): the only text above the
   grid — one paragraph naming every active filter, each taxonomy linked to its
   own page. The long legacy location copy that used to follow it is no longer
   rendered (see archive-product.php). Body size and colour, so it reads as
   content text rather than as a heading, and the links are ordinary in-text
   links — client 24.09: "not red or anything, just underlined, in the general
   style". Navy like .cw-term-content a (cw-templates.css:808), with a plain
   underline rather than that rule's sand border-bottom because this paragraph
   sits on the results page, not inside term content. */
.cw-search-summary {
    margin: 0 0 30px;
    font-size: 15px;
    line-height: 1.8;
    color: #444;
    font-weight: 400;
}

.cw-search-summary a {
    color: var(--cw-navy, #0D2B44);
    font-weight: inherit;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.cw-search-summary a:hover {
    color: var(--cw-navy, #0D2B44);
    text-decoration-thickness: 2px;
}

/* Pagination */
.cw-pagination {
    text-align: center;
    margin: 40px 0 20px;
    font-size: 14px;
}
.cw-pagination .page-numbers {
    display: inline-block;
    padding: 8px 14px;
    margin: 0 3px;
    border: 1px solid #ddd;
    color: #0D2B44;
    text-decoration: none;
    transition: all 0.3s ease;
}
.cw-pagination .page-numbers.current {
    background: #0D2B44;
    color: #fff;
    border-color: #0D2B44;
}
.cw-pagination .page-numbers:hover {
    background: #0D2B44;
    color: #fff;
    border-color: #0D2B44;
}
.cw-pagination .prev,
.cw-pagination .next {
    font-size: 18px;
    font-weight: 300;
}

/* =====================================================
   EQUAL HEIGHT CARDS - Push buttons to bottom
   ===================================================== */

.cw-card-content,
.cw-location-content {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.cw-card-content .button,
.cw-card-content a.button,
.cw-location-content .button,
.cw-location-content a.button {
    margin-top: auto;
}

/* ===== BLOG CARD CATEGORIES (notable-features style) ===== */
.cw-blog-card-cats {
    list-style: none;
    padding: 0;
    margin: 6px 0 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}
.cw-blog-card-cats li {
    background: #f0f4f8;
    color: #0D2B44;
    padding: 3px 10px;
    font-size: 11px;
    line-height: 1.4;
}
.cw-blog-card-cats li a {
    color: inherit;
    text-decoration: none;
}
.cw-blog-card-cats li a:hover {
    text-decoration: none;
}

/* ===== MAIN MENU STYLES (BeTheme header menu) ===== */
/* All menus: Level 1 hover — slightly darker text */
.mfn-header-menu > .mfn-menu-li:hover > .mfn-menu-link {
    opacity: 0.7;
}

/* All menus: Level 2 & 3 hover — subtle background + darker text */
.mfn-header-menu .mfn-submenu .mfn-menu-li > .mfn-menu-link:hover {
    background: rgba(0,0,0,0.04);
    opacity: 0.7;
}

/* Browse box on the specials page (11-09 mockup) */
/* Designer fonts (11-09 PDF): Syne for offer headlines, Montserrat for text.
   The old .cw-specials-browse-* rules lived here until 2026-09-21, when the
   specials "browse" dropdown was moved onto the site-wide
   cw_render_browse_accordion() component (style.css .cw-browse-*) so it matches
   every other "Browse … Section" accordion instead of being a second,
   differently-styled dropdown on the same page. */
.cw-special-card .cw-special-headline,
.cw-yacht-card .cw-special-overlay-title {
    font-family: 'Syne', sans-serif;
}

.cw-yacht-card .cw-special-overlay-text {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
}

/* ===== MIGRATED INLINE-STYLE NEUTRALISER (2026-09-21) ======================
   Legacy / Word-pasted content carries hard-coded inline font-family,
   font-size and color on text nodes inside the three render wrappers:
   .post-content (news single.php:73 + page.php:147/155), .cw-term-content
   (location pages) and .cw-term-description (builder/type/charter-type/tag
   pages). Inline styles outrank every normal stylesheet rule, so this needs
   !important (house idiom — cw-core.css already uses it ~145x).
   Descendants only: the wrappers' own deliberate inline style
   (.post-content style="font-size:15px; line-height:1.8; color:#444; ...")
   is left alone. `inherit` resolves to the wrapper's own type scale
   (.post-content 15px inline — the theme's body size, set 23.09 instead of the
   previous 18px — / .cw-term-content 16px / .cw-term-description
   17px, 16px on tax pages via style.css:793), which is the intended look.
   Deliberately NOT touched: h1-h6 (real headings keep size + navy colour),
   img / figure / table / video, and every layout property — text-align,
   width, max-width, height, flex*, gap, padding, margin, white-space,
   background*, border-radius — including the migration's responsive image
   rule (max-width:100% !important; height:auto; width:auto).
   Links are excluded from the color reset only: theme navy links
   (.cw-term-content a) and inline white-on-blue CTA buttons in pages
   (e.g. <a style="background-color:#004080; color:#fff">) must keep theirs;
   their family/size are still normalised below. */
/* RESCOPED 2026-09-21: match only elements that actually carry the offending
   inline declaration. .post-content also wraps shortcodes, so the previous
   blanket descendant rule flattened the components rendered inside it — the
   [cw_specials_list] cards (.cw-card-meta / .cw-special-headline /
   .cw-special-rate are all <div>, its VIEW YACHT button is <a>) and the shared
   .cw-browse-accordion (.cw-dd-list li a) inherited the
   wrapper's own inline 18px / #444 and lost their designed 12-13px Syne /
   Montserrat type. Theme components emit no inline font declarations at all
   (verified: zero style= attributes inside .cw-specials-grid), so keying on
   [style*="..."] hits migrated paste and nothing else:
     no style attribute                        -> untouched
     style="text-align:center" / "width:675px"  -> untouched
     style="margin-left:0cm;text-indent:0cm"    -> untouched, so list indents
       and every other authored spacing survive (nothing is zeroed here)
     style="font-size:11.5pt;color:#17365d"     -> exactly those two reset
   Each property is overridden only when that property is present inline.
   list-style is never touched, so content lists keep their markers. */
.post-content :where(p, span, li, div, td, th, a, strong, b, em, i, font, small, label, dd, dt)[style*="font-family"],
.cw-term-content :where(p, span, li, div, td, th, a, strong, b, em, i, font, small, label, dd, dt)[style*="font-family"],
.cw-term-description :where(p, span, li, div, td, th, a, strong, b, em, i, font, small, label, dd, dt)[style*="font-family"] {
    font-family: inherit !important;
}

.post-content :where(p, span, li, div, td, th, a, strong, b, em, i, font, small, label, dd, dt)[style*="font-size"],
.cw-term-content :where(p, span, li, div, td, th, a, strong, b, em, i, font, small, label, dd, dt)[style*="font-size"],
.cw-term-description :where(p, span, li, div, td, th, a, strong, b, em, i, font, small, label, dd, dt)[style*="font-size"] {
    font-size: inherit !important;
}

/* <a> is excluded (theme navy links + inline white-on-blue CTA buttons keep
   their colour), and [style*="color"] also matches background-color, so any
   element that only sets a background is left alone too. */
.post-content :where(p, span, li, div, td, th, strong, b, em, i, font, small, label, dd, dt)[style*="color"]:not([style*="background-color"]),
.cw-term-content :where(p, span, li, div, td, th, strong, b, em, i, font, small, label, dd, dt)[style*="color"]:not([style*="background-color"]),
.cw-term-description :where(p, span, li, div, td, th, strong, b, em, i, font, small, label, dd, dt)[style*="color"]:not([style*="background-color"]) {
    color: inherit !important;
}

/* =====================================================
   HORIZONTAL YACHT SEARCH BAR — [cw_search_bar]
   inc/component-search-bar.php, client 29.09 (Rachel: isolate the toolbar from
   the yacht grid and put it between the banner and Best Charter Destinations).
   The builder paints the element it sits in navy (#124066) and centres the
   .desc wrapper, so the block declares its own alignment and the form is a
   light card on that band.
   ===================================================== */
.cw-searchbar-component {
    max-width: 1240px;
    margin: 0 auto;
    padding: 6px 20px 26px;
    text-align: left;
}

.cw-searchbar-label {
    font-size: 22px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--cw-white);
    text-align: center;
    margin: 0 0 16px 0;
}

.cw-searchbar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 14px;
    background: var(--cw-white);
    border: 1px solid rgba(255, 255, 255, 0.25);
    padding: 18px 20px;
    margin: 0;
}

.cw-searchbar-field {
    flex: 1 1 190px;
    min-width: 0;
}

.cw-searchbar-field--narrow {
    flex: 0 1 130px;
}

.cw-searchbar-field--submit {
    flex: 0 0 auto;
    min-width: 0;
}

.cw-searchbar-field label {
    display: block;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--cw-navy);
    margin-bottom: 5px;
    line-height: 1;
}

/* No max-width and no text-overflow here: the client complaint this replaces
   was "'All Locations' and 'All builders' are currently cut off". The select
   keeps its native dropdown behaviour, so nothing is clipped as long as the
   field itself has room, which the flex-basis below gives it. */
.cw-searchbar-field select {
    width: 100%;
    height: 42px;
    padding: 0 10px;
    border: 1px solid var(--cw-border-medium);
    background: var(--cw-white);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.4;
    color: var(--cw-navy);
    cursor: pointer;
    border-radius: 0;
    box-sizing: border-box;
    margin: 0;
    transition: border-color var(--cw-transition);
}

.cw-searchbar-field select:focus {
    outline: none;
    border-color: var(--cw-sand);
}

.cw-searchbar-submit {
    min-width: 150px;
    white-space: nowrap;
}

@media (max-width: 1024px) {
    .cw-searchbar-field { flex: 1 1 calc(33.333% - 14px); }
    .cw-searchbar-field--narrow { flex: 1 1 calc(33.333% - 14px); }
}

@media (max-width: 767px) {
    .cw-searchbar { padding: 16px; gap: 12px; }
    .cw-searchbar-field,
    .cw-searchbar-field--narrow { flex: 1 1 calc(50% - 12px); }
    .cw-searchbar-field--submit,
    .cw-searchbar-submit { width: 100%; }
    .cw-searchbar-submit { min-width: 0; }
}
