/*
 * Cruisewear front-end styles.
 * Values transcribed from the approved design (Cruisewear.dc.html, 1440px frame).
 * Brand tokens as CSS custom properties, hand-written, no build step.
 */

:root {
	--cw-blue: #1877BE;
	--cw-blue-deep: #0F4E80;
	--cw-blue-light: #8FC0E8;
	--cw-info-bg: #E4EEF7;
	--cw-info-border: #BCD8EE;
	--cw-ink: #14202E;
	--cw-sand: #F3EEE7;
	--cw-media: #EDE6DC;
	/* The page/section background used to be this soft off-white; it is now
	   pure white, and the panel tone below (previously plain #fff on cards,
	   the header, tables and form fields) takes its place as the neutral
	   surface color, so sections and the panels sitting on them stay visibly
	   distinct from each other. */
	--cw-bg: #FFFFFF;
	--cw-panel: #EDEFF1;
	--cw-border: #E3DCD2;
	--cw-border-strong: #D9D2C7;
	--cw-text: #14202E;
	--cw-text-muted: #4A5563;
	--cw-text-mute-2: #5A6270;
	--cw-text-mute-3: #6B7280;
	--cw-text-mute-4: #8A9099;
	--cw-gold: #D8A130;
	--cw-footer-muted: #A9B7C7;
	--cw-footer-faint: #7D8A9A;
	--cw-green: #1F6E45;
	--wc-star-color: var(--cw-gold);

	--cw-font-heading: 'Archivo', system-ui, sans-serif;
	--cw-font-body: 'DM Sans', system-ui, sans-serif;
	--cw-font-quote: 'Newsreader', Georgia, serif;

	--cw-radius: 0px;
	--cw-container: 1440px;
	--cw-gutter: 48px;
	--cw-logo-h: 40px;
}

/* ---------- Reset / base ---------- */
* { box-sizing: border-box; }
body {
	margin: 0;
	background: var(--cw-bg);
	color: var(--cw-text);
	font-family: var(--cw-font-body);
	-webkit-font-smoothing: antialiased;
}
a { color: var(--cw-blue); text-decoration: none; }
a:hover { color: var(--cw-blue-deep); }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-family: var(--cw-font-heading); margin: 0; color: var(--cw-ink); }
button { font-family: inherit; }
ul.products { list-style: none; margin: 0; padding: 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }

.cruise-container { max-width: var(--cw-container); margin: 0 auto; padding-inline: var(--cw-gutter); width: 100%; }
.cruise-page-section { padding-block: 86px; }
.cruise-page-section--tight { padding-top: 0; }
.cruise-prose p { margin: 0 0 14px; line-height: 1.7; color: var(--cw-text-muted); }
.cruise-token { color: var(--cw-blue-deep); }
.cruise-announcement-bar .cruise-token,
.cruise-site-footer .cruise-token { color: var(--cw-blue-light); }

.cruise-eyebrow { display: inline-block; font: 600 11px/1 var(--cw-font-heading); letter-spacing: .17em; text-transform: uppercase; color: var(--cw-blue); }
.cruise-eyebrow--light { color: var(--cw-blue-light); }

.cruise-h1 { font: 600 clamp(32px, 3.6vw, 46px)/1.06 var(--cw-font-heading); letter-spacing: -.026em; }
.cruise-h1--light { color: #fff; }
.cruise-h2 { font: 600 clamp(28px, 2.9vw, 40px)/1.08 var(--cw-font-heading); letter-spacing: -.024em; }
.cruise-h2--light { color: #fff; }
.cruise-h2-sm { font: 600 26px/1.15 var(--cw-font-heading); letter-spacing: -.02em; }
.cruise-h3-sm { font: 600 17px/1.3 var(--cw-font-heading); margin: 0 0 12px; }

.cruise-img-placeholder { width: 100%; height: 100%; min-height: 180px; background: var(--cw-media); border: 1px dashed var(--cw-border-strong); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: var(--cw-text-mute-4); }
.cruise-img-placeholder__icon { display: flex; }
.cruise-img-placeholder__label { font: 500 11px/1 var(--cw-font-body); letter-spacing: .06em; text-transform: uppercase; }

/* ---------- Buttons / links ---------- */
.cruise-btn {
	display: inline-flex; align-items: center; justify-content: center; align-self: flex-start;
	font: 700 14px/1 var(--cw-font-body); letter-spacing: .02em;
	padding: 18px 30px; border: 1px solid var(--cw-ink); border-radius: var(--cw-radius);
	cursor: pointer; text-align: center; background: transparent; color: var(--cw-ink);
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.cruise-btn--primary { background: var(--cw-blue); border-color: var(--cw-blue); color: #fff; padding: 18px 32px; }
.cruise-btn--primary:hover { background: var(--cw-blue-deep); border-color: var(--cw-blue-deep); color: #fff; }
.cruise-btn--outline-dark { font-weight: 600; background: transparent; color: var(--cw-ink); border-color: var(--cw-ink); }
.cruise-btn--outline-dark:hover { background: var(--cw-ink); color: #fff; }
.cruise-btn--light { background: #fff; color: var(--cw-ink); border-color: #fff; padding: 17px 30px; }
.cruise-btn--light:hover { background: var(--cw-sand); color: var(--cw-ink); }
.cruise-btn--muted { color: var(--cw-text-mute-4); border-color: var(--cw-border-strong); font: 600 12px/1 var(--cw-font-body); padding: 9px 13px; }
.cruise-btn--quick-add,
a.cruise-btn--quick-add,
.cruise-product-card__footer .button {
	font: 600 12px/1 var(--cw-font-body) !important;
	color: var(--cw-blue) !important;
	border: 1px solid var(--cw-blue) !important;
	background: transparent !important;
	padding: 9px 13px !important;
	border-radius: 0 !important;
	white-space: nowrap;
}
.cruise-product-card__footer .button:hover { background: var(--cw-blue) !important; color: #fff !important; }
.cruise-underline-link, .cruise-section-head__cta { display: inline-block; align-self: flex-start; font: 600 13.5px/1 var(--cw-font-body); color: var(--cw-ink); border-bottom: 1px solid var(--cw-ink); padding-bottom: 4px; }
.cruise-underline-link:hover, .cruise-section-head__cta:hover { color: var(--cw-blue-deep); border-color: var(--cw-blue-deep); }

.cruise-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 34px; flex-wrap: wrap; }
.cruise-section-head__copy { display: flex; flex-direction: column; gap: 12px; }

.cruise-pill { display: inline-block; font: 400 12px/1 var(--cw-font-body); color: var(--cw-blue-deep); background: var(--cw-info-bg); padding: 3px 7px; margin-left: 8px; vertical-align: middle; }
.cruise-badge { position: absolute; top: 12px; left: 12px; z-index: 2; display: inline-block; font: 700 10px/1 var(--cw-font-body); letter-spacing: .09em; padding: 6px 9px; pointer-events: none; }
.cruise-badge--dark { background: var(--cw-ink); color: #fff; }
.cruise-badge--brand { background: var(--cw-blue); color: #fff; }
.cruise-badge--muted { background: var(--cw-sand); border: 1px solid var(--cw-border-strong); color: var(--cw-text-mute-2); font-weight: 600; }

.cruise-stars { display: inline-flex; align-items: center; gap: 1px; color: var(--cw-gold); font-size: 12px; line-height: 1; letter-spacing: .04em; }
.cruise-star--empty { color: var(--cw-border-strong); }
.cruise-star--half { color: var(--cw-gold); opacity: .5; }
.cruise-stars__count { color: var(--cw-text-mute-3); font: 400 12px/1 var(--cw-font-body); margin-left: 5px; }

.cruise-breadcrumb, .woocommerce-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font: 400 12.5px/1.5 var(--cw-font-body); color: var(--cw-text-mute-3); }
.cruise-breadcrumb a, .woocommerce-breadcrumb a { color: var(--cw-text-mute-3); }
.cruise-breadcrumb .is-current, .cruise-breadcrumb__current { color: var(--cw-ink); }
.cruise-breadcrumb--light, .cruise-breadcrumb--light a { color: #C7D2DE; }
.cruise-breadcrumb--light .is-current { color: #fff; }

.cruise-chip-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 44px; }
.cruise-chip-row__label { font: 500 13px/1 var(--cw-font-body); color: var(--cw-text-mute-2); margin-right: 6px; }
.cruise-chip { font: 500 13px/1 var(--cw-font-body); color: var(--cw-blue-deep); border: 1px solid var(--cw-border-strong); background: var(--cw-panel); padding: 10px 15px; }
.cruise-chip:hover { border-color: var(--cw-blue); }

.cruise-page-hero--plain { padding: 56px 0 40px; background: var(--cw-panel); border-bottom: 1px solid var(--cw-border); }
.cruise-page-hero--plain .cruise-h1 { margin: 14px 0; }
.cruise-page-hero__intro { max-width: 660px; color: var(--cw-text-muted); font: 400 17px/1.66 var(--cw-font-body); margin: 0; }

/* ---------- Announcement bar ---------- */
.cruise-announcement-bar { background: var(--cw-ink); display: flex; align-items: center; justify-content: center; gap: 20px; padding: 9px 16px; flex-wrap: wrap; font: 500 12px/1.4 var(--cw-font-body); color: #E8EDF3; text-align: center; }
.cruise-announcement-bar__sep { width: 1px; height: 11px; background: rgba(255,255,255,.22); }

/* ---------- Header ---------- */
/* display: contents removes #masthead's own box so it no longer limits how
   far .cruise-header can travel while stuck: position: sticky only keeps an
   element pinned within its containing block, and that block was previously
   #masthead itself — barely taller than the header, so it ran out of room
   right after the announcement bar scrolled past. With #masthead out of the
   box tree, the header's containing block becomes #page (the full page
   height), so it stays stuck for the rest of the scroll. Purely a layout
   change — #masthead painted no background/border of its own. */
.cruise-masthead { display: contents; }
/* Sits right under the WP admin toolbar instead of behind it when logged in. */
.admin-bar .cruise-header { top: 32px; }
@media (max-width: 782px) {
	.admin-bar .cruise-header { top: 46px; }
}
/* Sticky menu, not the announcement bar above it: .cruise-header is the
   second child of #masthead (position: relative, its default), so as the
   page scrolls the bar scrolls away with the content and the header takes
   over the top of the viewport right behind it. */
.cruise-header { background: var(--cw-panel); border-bottom: 1px solid var(--cw-border); position: sticky; top: 0; z-index: 40; }
.cruise-header__inner { display: flex; align-items: center; gap: 44px; height: 84px; }
.cruise-header__logo { display: flex; align-items: center; flex: none; }
.cruise-header__logo img, img.cruise-logo--header { height: var(--cw-logo-h); width: auto; max-width: 220px; object-fit: contain; }
.cruise-logo-text { font: 700 22px/1 var(--cw-font-heading); color: var(--cw-ink); letter-spacing: -.02em; }
.cruise-header__hamburger { display: none; background: none; border: 0; padding: 10px; margin-left: -10px; color: var(--cw-ink); cursor: pointer; }
.cruise-header__nav { flex: 1 1 auto; min-width: 0; }
.cruise-nav { display: flex; align-items: center; gap: 28px; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
.cruise-nav li { position: relative; }
.cruise-nav a { display: inline-block; font: 400 13.5px/1 var(--cw-font-body); color: var(--cw-ink); padding-bottom: 6px; border-bottom: 2px solid transparent; white-space: nowrap; }
.cruise-nav > li:first-child > a { font-weight: 600; letter-spacing: .01em; }
.cruise-nav .current-menu-item > a,
.cruise-nav .current-menu-parent > a,
.cruise-nav .current-menu-ancestor > a { font-weight: 600; color: var(--cw-blue); border-bottom-color: var(--cw-blue); }
/* Sub-menus */
.cruise-nav .sub-menu { display: none; position: absolute; top: 100%; left: -14px; min-width: 210px; background: var(--cw-panel); border: 1px solid var(--cw-border); padding: 8px 0; margin: 0; list-style: none; z-index: 50; box-shadow: 0 8px 24px rgba(20,32,46,.08); }
.cruise-nav li:hover > .sub-menu, .cruise-nav li:focus-within > .sub-menu { display: block; }
.cruise-nav .sub-menu a { display: block; padding: 9px 16px; border: 0; font-size: 13px; color: var(--cw-text-muted); }
.cruise-nav .sub-menu a:hover { background: var(--cw-bg); color: var(--cw-ink); }

.cruise-header__actions { display: flex; align-items: center; gap: 10px; flex: none; margin-left: auto; }
.cruise-header__search { display: flex; align-items: center; gap: 8px; width: 210px; height: 38px; border: 1px solid var(--cw-border-strong); background: var(--cw-bg); padding: 0 11px; color: var(--cw-text-mute-2); }
.cruise-header__search input { border: 0; background: transparent; font: 400 13px/1 var(--cw-font-body); color: var(--cw-ink); width: 100%; outline: none; min-width: 0; }
.cruise-header__search input::placeholder { color: var(--cw-text-mute-4); }
.cruise-header__icon-btn { width: 38px; height: 38px; border: 1px solid var(--cw-border-strong); display: flex; align-items: center; justify-content: center; color: var(--cw-ink); flex: none; position: relative; }
.cruise-header__icon-btn--cart { background: var(--cw-ink); border-color: var(--cw-ink); color: #fff; }
.cruise-header__icon-btn--cart:hover { background: var(--cw-blue); border-color: var(--cw-blue); color: #fff; }
.cruise-cart-count { position: absolute; top: -6px; right: -6px; min-width: 17px; height: 17px; padding: 0 4px; background: var(--cw-blue); color: #fff; font: 700 10px/17px var(--cw-font-body); text-align: center; border-radius: 9px; }
.cruise-header__mobile-search, .cruise-header__chips { display: none; }

/* ---------- Mobile drawer ---------- */
.cruise-drawer { position: fixed; top: 0; right: -100%; width: min(390px, 100%); height: 100%; background: var(--cw-panel); z-index: 100; transition: right .25s ease; overflow-y: auto; }
.cruise-drawer.is-open { right: 0; }
.cruise-drawer-overlay { position: fixed; inset: 0; background: rgba(20,32,46,.5); z-index: 90; opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.cruise-drawer-overlay.is-open { opacity: 1; pointer-events: auto; }
.cruise-drawer__header { display: flex; align-items: center; justify-content: space-between; height: 60px; padding: 0 14px; border-bottom: 1px solid var(--cw-border); }
.cruise-drawer__header img { height: 30px; width: auto; }
.cruise-drawer__close { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; background: none; border: 0; cursor: pointer; color: var(--cw-ink); }
.cruise-drawer__body { padding: 14px; display: flex; flex-direction: column; }
.cruise-drawer__search { display: flex; align-items: center; gap: 9px; height: 48px; border: 1px solid var(--cw-border-strong); background: var(--cw-bg); padding: 0 13px; margin-bottom: 8px; color: var(--cw-text-mute-2); }
.cruise-drawer__search input { border: 0; background: transparent; outline: none; font: 400 14px/1 var(--cw-font-body); width: 100%; min-width: 0; }
.cruise-drawer__shop-all { display: flex; align-items: center; justify-content: space-between; height: 56px; border-bottom: 1px solid var(--cw-border); font: 700 17px/1 var(--cw-font-heading); letter-spacing: -.012em; color: var(--cw-ink); }
.cruise-drawer__shop-all span { color: var(--cw-blue); font: 400 15px/1 var(--cw-font-body); }
.cruise-drawer__accordion { border-bottom: 1px solid var(--cw-border); }
.cruise-drawer__accordion-toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; height: 56px; background: none; border: 0; padding: 0; font: 600 16px/1 var(--cw-font-heading); color: var(--cw-ink); cursor: pointer; }
.cruise-drawer__accordion-toggle span { color: var(--cw-blue); font: 400 17px/1 var(--cw-font-body); }
.cruise-drawer__accordion-panel { display: none; flex-direction: column; padding: 0 0 10px 2px; }
.cruise-drawer__accordion.is-open .cruise-drawer__accordion-panel { display: flex; }
.cruise-drawer__accordion-panel a { font: 400 14px/44px var(--cw-font-body); color: var(--cw-text-muted); }
.cruise-drawer__link { display: flex; align-items: center; height: 52px; border-bottom: 1px solid var(--cw-border); font: 400 15px/1 var(--cw-font-body); color: var(--cw-text-muted); }
.cruise-drawer__help { margin-top: 14px; padding: 16px; background: var(--cw-info-bg); border: 1px solid var(--cw-info-border); font: 400 13px/1.55 var(--cw-font-body); color: var(--cw-blue-deep); }
.cruise-drawer__help a { font-weight: 600; border-bottom: 1px solid var(--cw-blue-deep); color: var(--cw-blue-deep); }

/* ---------- Homepage hero ---------- */
.cruise-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); min-height: 560px; }
.cruise-hero__copy { padding: 84px 64px 84px var(--cw-gutter); display: flex; flex-direction: column; justify-content: center; gap: 26px; background: var(--cw-bg); }
.cruise-hero__heading { font: 600 clamp(34px, 4.2vw, 60px)/1.04 var(--cw-font-heading); letter-spacing: -.025em; color: var(--cw-ink); text-wrap: balance; }
.cruise-hero__paragraph { margin: 0; font: 400 17.5px/1.62 var(--cw-font-body); color: var(--cw-text-muted); max-width: 470px; }
.cruise-hero__ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 6px; }
.cruise-hero__meta { display: flex; gap: 22px; margin-top: 10px; font: 400 12.5px/1.5 var(--cw-font-body); color: var(--cw-text-mute-3); flex-wrap: wrap; align-items: center; }
.cruise-hero__meta strong { color: var(--cw-ink); font-weight: 500; }
.cruise-hero__media { position: relative; background: var(--cw-media); min-height: 320px; overflow: hidden; }
.cruise-hero__media img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }

/* ---------- Feature strip ---------- */
.cruise-feature-strip { background: var(--cw-panel); border-top: 1px solid var(--cw-border); border-bottom: 1px solid var(--cw-border); display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); }
.cruise-feature-strip__item { padding: 34px 32px; border-right: 1px solid var(--cw-border); display: flex; flex-direction: column; gap: 9px; }
.cruise-feature-strip__item:last-child { border-right: 0; }
.cruise-feature-strip__icon { color: var(--cw-blue); }
.cruise-feature-strip__title { font: 600 14.5px/1.3 var(--cw-font-heading); letter-spacing: -.01em; color: var(--cw-ink); }
.cruise-feature-strip__text { font: 400 13px/1.55 var(--cw-font-body); color: var(--cw-text-mute-2); }

/* ---------- Category grid / card ---------- */
.cruise-category-section, .cruise-favourites-section { background: var(--cw-bg); }
.cruise-category-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 20px; }
.cruise-category-card { background: var(--cw-panel); border: 1px solid var(--cw-border); display: flex; flex-direction: column; }
.cruise-category-card__media { display: block; height: 250px; background: var(--cw-media); overflow: hidden; position: relative; }
.cruise-category-card__media img { width: 100%; height: 100%; object-fit: cover; }
.cruise-category-card__body { padding: 22px 22px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.cruise-category-card__title { font: 600 19px/1.2 var(--cw-font-heading); letter-spacing: -.015em; }
.cruise-category-card__title a { color: var(--cw-ink); }
.cruise-category-card__desc { font: 400 13.5px/1.55 var(--cw-font-body); color: var(--cw-text-mute-2); margin: 0; }
.cruise-category-card__links { display: flex; flex-direction: column; gap: 5px; margin-top: 2px; }
.cruise-category-card__links a { font: 400 12.5px/1.5 var(--cw-font-body); color: var(--cw-blue-deep); }
.cruise-category-card__cta { margin-top: auto; padding-top: 16px; font: 700 13px/1 var(--cw-font-body); color: var(--cw-blue); }

/* ---------- Product grid / card ---------- */
.cruise-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 20px; list-style: none; margin: 0; padding: 0; }
.cruise-product-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.cruise-product-grid__item { list-style: none; display: flex; }
.cruise-product-card { background: var(--cw-panel); border: 1px solid var(--cw-border); display: flex; flex-direction: column; width: 100%; }
.cruise-product-card__media { position: relative; height: 290px; background: var(--cw-sand); display: block; overflow: hidden; }
.cruise-product-grid--3 .cruise-product-card__media { height: 280px; }
.cruise-product-card__media img { width: 100%; height: 100%; object-fit: cover; }
.cruise-product-card__body { padding: 18px 18px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.cruise-product-card__eyebrow { font: 400 11px/1 var(--cw-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--cw-text-mute-4); }
.cruise-product-card__title { font: 600 16px/1.25 var(--cw-font-heading); letter-spacing: -.012em; color: var(--cw-ink); }
.cruise-product-card__desc { font: 400 13px/1.45 var(--cw-font-body); color: var(--cw-text-mute-2); }
.cruise-product-card__footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 8px; gap: 10px; }
.cruise-product-card__price, .cruise-product-card__footer .price { font: 700 16px/1 var(--cw-font-body); color: var(--cw-ink); margin: 0; }
.cruise-product-card__footer ins { text-decoration: none; }
.cruise-product-card__footer del { color: var(--cw-text-mute-4); font-weight: 400; margin-right: 6px; }
.cruise-product-card .added_to_cart { display: none; }

.cruise-swatch-row { display: flex; align-items: center; gap: 6px; margin-top: 2px; }
.cruise-swatch-dot { width: 15px; height: 15px; border-radius: 50%; border: 1px solid var(--cw-border-strong); flex: none; }
.cruise-swatch-row__more { font: 400 11px/15px var(--cw-font-body); color: var(--cw-text-mute-3); }

/* ---------- Why band ---------- */
.cruise-why-band { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); background: var(--cw-ink); align-items: stretch; }
.cruise-why-band__media { position: relative; background: var(--cw-blue-deep); min-height: 440px; overflow: hidden; }
.cruise-why-band__media img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.cruise-why-band__copy { padding: 80px 64px; display: flex; flex-direction: column; justify-content: center; gap: 24px; }
.cruise-why-band__copy .cruise-h2 { font-size: clamp(26px, 2.6vw, 38px); line-height: 1.12; }
.cruise-why-band__paragraph { font: 400 16px/1.68 var(--cw-font-body); color: #C7D2DE; max-width: 440px; margin: 0; }
.cruise-why-band__list { display: flex; flex-direction: column; gap: 18px; margin-top: 6px; }
.cruise-why-band__item { display: flex; gap: 14px; align-items: flex-start; border-top: 1px solid rgba(255,255,255,.14); padding-top: 16px; }
.cruise-why-band__num { font: 600 12px/1.4 var(--cw-font-heading); color: var(--cw-blue-light); width: 26px; flex: none; }
.cruise-why-band__item-title { font: 600 15px/1.3 var(--cw-font-heading); color: #fff; margin-bottom: 5px; }
.cruise-why-band__item-text { font: 400 13.5px/1.55 var(--cw-font-body); color: var(--cw-footer-muted); }
.cruise-why-band__copy .cruise-btn { margin-top: 10px; }

/* ---------- Spec band ---------- */
/* Grey band; the tiles/texture inside flip to white (they used to share the
   site's old #fff-panel grey, which would now be identical to the band and
   make the whole section read as one flat block). Heading/paragraph/eyebrow
   were already dark-on-light and need no change: --cw-panel is close enough
   to white in lightness that their existing contrast carries over. */
.cruise-spec-band { padding-block: 86px; background: var(--cw-panel); }
.cruise-spec-band__grid { display: grid; grid-template-columns: minmax(0,0.85fr) minmax(0,1.15fr); gap: 56px; align-items: center; }
.cruise-spec-band__copy { display: flex; flex-direction: column; gap: 20px; }
.cruise-spec-band__copy .cruise-h2 { font-size: clamp(26px, 2.6vw, 38px); line-height: 1.1; }
.cruise-spec-band__copy p { color: var(--cw-text-muted); font: 400 16px/1.68 var(--cw-font-body); margin: 0; }
.cruise-spec-band__tiles { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1px; background: var(--cw-border-strong); border: 1px solid var(--cw-border-strong); }
.cruise-spec-tile { background: #fff; padding: 26px 24px; display: flex; flex-direction: column; gap: 6px; }
.cruise-spec-tile__label { font: 400 11px/1 var(--cw-font-body); letter-spacing: .09em; text-transform: uppercase; color: var(--cw-text-mute-4); }
.cruise-spec-tile__value { font: 600 26px/1.1 var(--cw-font-heading); color: var(--cw-ink); }
.cruise-spec-tile__note { font: 400 12.5px/1.5 var(--cw-font-body); color: var(--cw-text-mute-2); }
.cruise-spec-band__texture { background: #fff; grid-column: span 2; height: 190px; overflow: hidden; position: relative; }
.cruise-spec-band__texture img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Use-case grid ---------- */
.cruise-usecase-section { background: var(--cw-bg); border-top: 1px solid var(--cw-border); }
.cruise-usecase-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1px; background: var(--cw-border); border: 1px solid var(--cw-border); }
.cruise-usecase-card { background: var(--cw-panel); padding: 32px 26px 28px; display: flex; flex-direction: column; gap: 11px; color: var(--cw-ink); }
.cruise-usecase-card:hover { background: var(--cw-bg); }
.cruise-usecase-card__title { font: 600 22px/1.15 var(--cw-font-heading); letter-spacing: -.018em; color: var(--cw-ink); }
.cruise-usecase-card__text { font: 400 13.5px/1.55 var(--cw-font-body); color: var(--cw-text-mute-2); }
.cruise-usecase-card__tags { font: 500 12.5px/1.5 var(--cw-font-body); color: var(--cw-blue-deep); margin-top: 4px; }

/* ---------- Reviews summary (homepage) ---------- */
.cruise-reviews-summary { background: var(--cw-panel); border-top: 1px solid var(--cw-border); padding-block: 80px; }
.cruise-reviews-summary__grid { display: grid; grid-template-columns: 280px minmax(0,1fr); gap: 56px; align-items: start; }
.cruise-reviews-summary__aside { display: flex; flex-direction: column; gap: 10px; }
.cruise-reviews-summary__number { font: 600 54px/1 var(--cw-font-heading); letter-spacing: -.03em; color: var(--cw-ink); }
.cruise-reviews-summary__note { font: 400 13.5px/1.6 var(--cw-font-body); color: var(--cw-text-mute-2); margin: 0; }
.cruise-reviews-summary__note strong { color: var(--cw-ink); }
.cruise-reviews-summary__cards { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.cruise-review-card { border: 1px solid var(--cw-border); padding: 26px 24px; display: flex; flex-direction: column; gap: 12px; background: var(--cw-panel); }
.cruise-review-card__quote { font: 300 19px/1.45 var(--cw-font-quote); color: var(--cw-ink); margin: 0; }
.cruise-review-card__author { margin-top: auto; display: flex; align-items: center; gap: 10px; padding-top: 8px; }
.cruise-review-card__avatar { width: 32px; height: 32px; border-radius: 50%; background: var(--cw-sand); border: 1px solid var(--cw-border-strong); font: 600 12px/32px var(--cw-font-body); color: var(--cw-text-mute-2); text-align: center; flex: none; }
.cruise-review-card__name { font: 500 13px/1.3 var(--cw-font-body); color: var(--cw-ink); }
.cruise-review-card__meta { font: 400 12px/1.3 var(--cw-font-body); color: var(--cw-text-mute-4); }

/* ---------- Lifestyle full-bleed band ---------- */
.cruise-lifestyle-band { position: relative; min-height: 440px; background: var(--cw-blue-deep); display: flex; }
.cruise-lifestyle-band > img, .cruise-lifestyle-band > .cruise-img-placeholder { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.cruise-lifestyle-band__overlay { position: relative; width: 100%; min-height: 440px; background: linear-gradient(90deg, rgba(15,30,48,.74) 0%, rgba(15,30,48,.34) 52%, rgba(15,30,48,0) 78%); display: flex; align-items: center; }
.cruise-lifestyle-band__inner { display: flex; flex-direction: column; gap: 22px; }
.cruise-lifestyle-band__inner .cruise-h2 { max-width: 600px; font-size: clamp(28px, 3.1vw, 44px); line-height: 1.1; letter-spacing: -.026em; }
.cruise-about-band { min-height: 340px; }
.cruise-about-band .cruise-lifestyle-band__overlay { min-height: 340px; background: linear-gradient(90deg, rgba(15,30,48,.76) 0%, rgba(15,30,48,.3) 62%, rgba(15,30,48,0) 90%); }

/* ---------- FAQ teaser (homepage) ---------- */
.cruise-faq-teaser__grid { display: grid; grid-template-columns: minmax(0,0.7fr) minmax(0,1.3fr); gap: 56px; align-items: start; }
.cruise-faq-teaser__copy { display: flex; flex-direction: column; gap: 14px; }
.cruise-faq-teaser__copy .cruise-h2 { font-size: clamp(26px, 2.5vw, 36px); line-height: 1.12; }

/* ---------- FAQ accordion item (shared) ---------- */
.cruise-faq-list { display: flex; flex-direction: column; border-bottom: 1px solid var(--cw-border-strong); }
.cruise-faq-item { border-top: 1px solid var(--cw-border-strong); padding: 22px 0; }
.cruise-faq-item__question { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 0; background: none; border: 0; text-align: left; cursor: pointer; font: 600 18px/1.3 var(--cw-font-heading); letter-spacing: -.014em; color: var(--cw-ink); }
.cruise-faq-item__icon { font: 400 20px/1 var(--cw-font-body); color: var(--cw-blue); flex: none; }
.cruise-faq-item__answer { display: none; max-width: 760px; }
.cruise-faq-item__answer p { margin: 12px 0 0; font: 400 15.5px/1.68 var(--cw-font-body); color: var(--cw-text-muted); }
.cruise-faq-item.is-open .cruise-faq-item__answer { display: block; }

/* ---------- Newsletter band ---------- */
/* Brand-blue band. Every color below is chosen against #1877BE specifically —
   the muted tones used on the site's other colored bands (why-band, footer)
   are tuned for a near-black background and fall well short of readable here,
   so this section gets its own text/border/button treatment rather than
   reusing them. Verified with WCAG contrast math, not by eye:
     white on #1877BE            -> 4.75:1 (passes AA for text this size)
     ink/blue-light/panel on it  -> 2.5-3.5:1 (fails) */
.cruise-newsletter-band { padding-block: 64px; background: var(--cw-blue); border-top: 1px solid rgba(255,255,255,.18); }
.cruise-newsletter-band__inner { display: flex; align-items: center; justify-content: space-between; gap: 48px; flex-wrap: wrap; }
.cruise-newsletter-band__copy { max-width: 520px; display: flex; flex-direction: column; gap: 10px; }
.cruise-newsletter-band__copy .cruise-h2 { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.14; letter-spacing: -.022em; color: #fff; }
.cruise-newsletter-band__copy p { color: #fff; font: 400 15px/1.6 var(--cw-font-body); margin: 0; }
.cruise-newsletter-band__form { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; }
.cruise-newsletter-band__form label { display: flex; flex-direction: column; gap: 7px; font: 500 12px/1 var(--cw-font-body); color: #fff; }
.cruise-newsletter-band__form input { width: 300px; max-width: 100%; height: 52px; border: 1px solid transparent; background: #fff; color: var(--cw-ink); padding: 0 14px; font: 400 14px/1 var(--cw-font-body); }
.cruise-newsletter-band__form input::placeholder { color: var(--cw-text-mute-3); }
.cruise-newsletter-band__form input:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.cruise-newsletter-band__form .cruise-btn { height: 52px; padding-block: 0; align-self: flex-end; }
/* The section's own primary-blue button would vanish against a blue band, so
   it flips to white-on-blue-text here, with the site's usual "fills in dark"
   hover treatment (see .cruise-btn--outline-dark, .cruise-load-more__btn). */
.cruise-newsletter-band__form .cruise-btn--primary { background: #fff; border-color: #fff; color: var(--cw-blue); }
.cruise-newsletter-band__form .cruise-btn--primary:hover { background: var(--cw-ink); border-color: var(--cw-ink); color: #fff; }

/* ---------- Footer ---------- */
.cruise-site-footer { background: var(--cw-ink); padding: 64px 0 30px; }
.cruise-site-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 44px; padding-bottom: 44px; border-bottom: 1px solid rgba(255,255,255,.14); }
.cruise-site-footer__brand { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.cruise-site-footer__logo { display: inline-block; }
.cruise-site-footer__logo img { height: 38px; width: auto; background: #fff; padding: 7px 10px; }
.cruise-site-footer__logo .cruise-logo-text { color: #fff; font: 700 20px/1 var(--cw-font-heading); }
.cruise-site-footer__brand p { font: 400 13.5px/1.65 var(--cw-font-body); color: var(--cw-footer-muted); max-width: 300px; margin: 0; }
.cruise-site-footer__contact { font: 400 13px/1.8 var(--cw-font-body); color: var(--cw-footer-muted); }
.cruise-site-footer__contact a { color: var(--cw-footer-muted); }
.cruise-site-footer__socials { display: flex; gap: 8px; margin-top: 4px; }
.cruise-site-footer__socials a { width: 32px; height: 32px; border: 1px solid rgba(255,255,255,.2); display: flex; align-items: center; justify-content: center; font: 500 11px/1 var(--cw-font-body); color: var(--cw-footer-muted); }
.cruise-site-footer__socials a:hover { border-color: var(--cw-blue-light); color: #fff; }
.cruise-site-footer__heading { display: block; font: 600 11px/1 var(--cw-font-heading); letter-spacing: .15em; text-transform: uppercase; color: #fff; margin-bottom: 16px; }
.cruise-footer-nav { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.cruise-footer-nav a { font: 400 13.5px/1.3 var(--cw-font-body); color: var(--cw-footer-muted); }
.cruise-footer-nav a:hover { color: #fff; }
.cruise-site-footer__bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 24px; gap: 24px; flex-wrap: wrap; }
.cruise-site-footer__copyright { font: 400 12px/1.5 var(--cw-font-body); color: var(--cw-footer-faint); }
.cruise-site-footer__payments { display: flex; gap: 7px; align-items: center; flex-wrap: wrap; }
.cruise-site-footer__payments-label { font: 400 11px/1 var(--cw-font-body); color: var(--cw-footer-faint); margin-right: 4px; }
.cruise-payment-badge { width: 40px; height: 25px; border: 1px solid rgba(255,255,255,.2); display: flex; align-items: center; justify-content: center; font: 600 8px/1 var(--cw-font-body); color: var(--cw-footer-muted); overflow: hidden; }
.cruise-payment-badge--img { border-color: transparent; width: auto; min-width: 40px; padding: 0; }
.cruise-payment-badge--img img { height: 25px; width: auto; object-fit: contain; }

/* ==========================================================================
   Shop / category archive
   ========================================================================== */
.cruise-category-banner { position: relative; min-height: 280px; background: var(--cw-blue-deep); display: flex; }
.cruise-category-banner > img, .cruise-category-banner > .cruise-img-placeholder { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.cruise-category-banner__overlay { position: relative; width: 100%; min-height: 280px; background: linear-gradient(90deg, rgba(15,30,48,.82) 0%, rgba(15,30,48,.38) 60%, rgba(15,30,48,.05) 100%); display: flex; align-items: center; padding-block: 44px; }
.cruise-category-banner__inner { display: flex; flex-direction: column; gap: 14px; }
.cruise-category-banner__inner .cruise-h1 { max-width: 640px; }
.cruise-category-banner__inner p { color: #E1E8EF; max-width: 600px; margin: 0; font: 400 16px/1.6 var(--cw-font-body); }

.cruise-shop-layout { display: grid; grid-template-columns: 248px minmax(0,1fr); align-items: start; }
.cruise-filter-sidebar { background: var(--cw-panel); border-right: 1px solid var(--cw-border); padding: 32px 26px; align-self: stretch; }
/* Equal space on both sides of the divider: margin-top before the line,
   padding-top after it, so the line floats clear of the group above instead
   of touching its last row (and every group boundary now matches). */
.cruise-filter-group { display: flex; flex-direction: column; gap: 11px; border-top: 1px solid var(--cw-border); margin-top: 24px; padding-top: 24px; }
.cruise-filter-group:first-child { border-top: 0; margin-top: 0; padding-top: 0; }
.cruise-filter-group__title { font: 600 11px/1 var(--cw-font-heading); letter-spacing: .15em; text-transform: uppercase; color: var(--cw-ink); }
.cruise-filter-group a { font: 400 13.5px/1.3 var(--cw-font-body); color: var(--cw-text-muted); }
.cruise-filter-group a:hover { color: var(--cw-blue); }
.cruise-filter-group a.is-current, .cruise-filter-group__all { font: 600 13.5px/1.3 var(--cw-font-body); color: var(--cw-blue); }
.cruise-filter-checkbox { display: flex; align-items: center; gap: 9px; font: 400 13.5px/1.3 var(--cw-font-body); color: var(--cw-text-muted); cursor: pointer; }
.cruise-filter-checkbox input { position: absolute; opacity: 0; width: 0; height: 0; }
.cruise-filter-checkbox .cruise-check { width: 15px; height: 15px; border: 1px solid #B6BCC5; background: var(--cw-panel); flex: none; display: flex; align-items: center; justify-content: center; color: transparent; }
.cruise-filter-checkbox input:checked ~ .cruise-check { background: var(--cw-blue); border-color: var(--cw-blue); color: #fff; }
.cruise-filter-checkbox input:focus-visible ~ .cruise-check { outline: 2px solid var(--cw-blue); outline-offset: 2px; }
.cruise-filter-swatches { display: flex; flex-wrap: wrap; gap: 10px; }
.cruise-filter-swatch { position: relative; cursor: pointer; line-height: 0; }
.cruise-filter-swatch input { position: absolute; opacity: 0; width: 0; height: 0; }
.cruise-filter-swatch .cruise-swatch { display: block; width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--cw-border-strong); }
.cruise-filter-swatch input:checked ~ .cruise-swatch { outline: 1px solid var(--cw-ink); outline-offset: 2px; }

/* Price range: two overlaid native sliders styled as one dual-thumb track. */
.cruise-price-filter { display: flex; flex-direction: column; gap: 4px; }
.cruise-price-slider { position: relative; height: 3px; background: var(--cw-border); margin: 14px 0 10px; }
.cruise-price-slider__fill { position: absolute; top: 0; height: 3px; background: var(--cw-blue); }
.cruise-price-slider input[type="range"] { position: absolute; top: -6px; left: 0; width: 100%; height: 15px; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; }
.cruise-price-slider input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; pointer-events: auto; width: 13px; height: 13px; border-radius: 50%; background: var(--cw-panel); border: 2px solid var(--cw-blue); cursor: pointer; }
.cruise-price-slider input[type="range"]::-moz-range-thumb { pointer-events: auto; width: 13px; height: 13px; border-radius: 50%; background: var(--cw-panel); border: 2px solid var(--cw-blue); cursor: pointer; }
.cruise-price-slider input[type="range"]::-moz-range-track { background: none; }
.cruise-price-filter__values { display: flex; justify-content: space-between; font: 400 12.5px/1 var(--cw-font-body); color: var(--cw-text-mute-2); }
.cruise-filter-apply { width: 100%; justify-content: center; padding: 13px 16px; font-size: 13px; margin-top: 24px; }
.cruise-filter-reset { font: 400 12.5px/1 var(--cw-font-body); color: var(--cw-text-mute-3); text-align: center; margin-top: 14px; }

.cruise-shop-results { padding: 26px var(--cw-gutter) 72px; }
.cruise-shop-results__bar { display: flex; align-items: center; justify-content: space-between; padding-bottom: 20px; border-bottom: 1px solid var(--cw-border); margin-bottom: 26px; flex-wrap: wrap; gap: 12px; }
.cruise-shop-results__count { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.cruise-shop-results__count .woocommerce-result-count { font: 400 13.5px/1 var(--cw-font-body); color: var(--cw-text-mute-2); margin: 0; }
.cruise-shop-results__count .woocommerce-result-count strong { color: var(--cw-ink); font-weight: 600; }
.cruise-active-filter { display: inline-flex; align-items: center; gap: 7px; background: var(--cw-info-bg); border: 1px solid var(--cw-info-border); padding: 6px 10px; font: 500 12px/1 var(--cw-font-body); color: var(--cw-blue-deep); }
.cruise-active-filter span { color: var(--cw-blue); }
.cruise-shop-results__sort { display: flex; align-items: center; gap: 10px; }
.cruise-shop-results__sort > label, .cruise-shop-results__sort .cruise-sort-label { font: 400 13px/1 var(--cw-font-body); color: var(--cw-text-mute-2); }
.cruise-shop-results__sort form { margin: 0; }
.cruise-shop-results__sort select, .woocommerce-ordering select { height: 38px; border: 1px solid var(--cw-border-strong); background: var(--cw-panel); padding: 0 13px; font: 500 13px/1 var(--cw-font-body); color: var(--cw-ink); border-radius: 0; }

.cruise-load-more { display: flex; justify-content: center; margin-top: 36px; }
.cruise-load-more__btn { align-self: center; border: 1px solid var(--cw-ink); background: transparent; color: var(--cw-ink); font: 600 13.5px/1 var(--cw-font-body); padding: 15px 34px; cursor: pointer; }
.cruise-load-more__btn:hover { background: var(--cw-ink); color: #fff; }
.cruise-load-more noscript .woocommerce-pagination { margin-top: 20px; }

.cruise-guide-block { margin-top: 64px; padding: 36px 40px; background: var(--cw-panel); border: 1px solid var(--cw-border); }
.cruise-guide-block h2 { margin: 0 0 20px; font: 600 26px/1.15 var(--cw-font-heading); letter-spacing: -.02em; }
.cruise-guide-block__grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 32px; }
.cruise-guide-block__grid h3 { margin: 0 0 8px; font: 600 15px/1.3 var(--cw-font-heading); }
.cruise-guide-block__grid p { margin: 0; font: 400 14px/1.62 var(--cw-font-body); color: var(--cw-text-muted); }

.cruise-category-mini-faq { margin-top: 40px; }
.cruise-category-mini-faq h2 { margin: 0 0 8px; font: 600 26px/1.15 var(--cw-font-heading); letter-spacing: -.02em; }
.cruise-category-mini-faq .cruise-faq-item { padding: 19px 0; }
.cruise-category-mini-faq .cruise-faq-item__question { font-size: 16px; }

/* ==========================================================================
   Product detail page
   ========================================================================== */
.cruise-pdp-breadcrumb { background: var(--cw-bg); padding: 16px 0; }
.cruise-pdp-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 56px; padding-block: 8px 72px; }
/* An explicit two-column grid rather than flex: the thumbnail rail's column
   exists from the first paint, even though WooCommerce's gallery JS only
   inserts the rail itself after hydration. Under flex the main image started
   flush with the container and then jumped 92px right once the rail appeared —
   the "adjusts into the correct shape afterwards" the client reported. */
.cruise-pdp-gallery .woocommerce-product-gallery { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 14px; align-items: start; }
.cruise-pdp-gallery .flex-control-thumbs { grid-area: 1 / 1; }
.cruise-pdp-gallery .flex-viewport,
.cruise-pdp-gallery > .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper { grid-area: 1 / 2; min-width: 0; border: 1px solid var(--cw-border); background: var(--cw-sand); }
/* Once flexslider runs, the wrapper moves inside .flex-viewport, which is now
   the bordered box — so the wrapper must not draw a second one. */
.cruise-pdp-gallery .flex-viewport .woocommerce-product-gallery__wrapper { border: 0; background: none; }
/* Pre-hydration every gallery image is in the flow, making the column N images
   tall until the slider collapses it. Only the first belongs on screen. This
   selector stops matching the moment flexslider moves the wrapper. */
.cruise-pdp-gallery > .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:not(:first-child) { display: none; }
.cruise-pdp-gallery .woocommerce-product-gallery__image img { width: 100%; height: auto; }
.cruise-pdp-gallery .flex-control-thumbs { display: flex; flex-direction: column; gap: 10px; list-style: none; margin: 0; padding: 0; width: 78px; flex: none; }
.cruise-pdp-gallery .flex-control-thumbs li { width: 78px; }
.cruise-pdp-gallery .flex-control-thumbs img { border: 1px solid var(--cw-border); cursor: pointer; width: 100%; height: 96px; object-fit: cover; }
.cruise-pdp-gallery .flex-control-thumbs img.flex-active { border: 2px solid var(--cw-blue); }
.cruise-pdp-gallery .woocommerce-product-gallery__trigger { display: none; }

.cruise-pdp-summary { padding-top: 18px; display: flex; flex-direction: column; gap: 20px; }
.cruise-pdp-summary > * { margin: 0 !important; }
.cruise-pdp-eyebrow { font: 600 11px/1 var(--cw-font-heading); letter-spacing: .16em; text-transform: uppercase; color: var(--cw-blue); }
.cruise-pdp-summary .product_title { font: 600 clamp(28px, 2.7vw, 38px)/1.1 var(--cw-font-heading); letter-spacing: -.024em; color: var(--cw-ink); }
.cruise-pdp-summary .woocommerce-product-rating { display: flex; align-items: center; gap: 10px; }
.cruise-pdp-summary .woocommerce-product-rating .woocommerce-review-link { font: 400 13.5px/1 var(--cw-font-body); color: var(--cw-blue-deep); border-bottom: 1px solid var(--cw-info-border); }
.cruise-pdp-summary .price { font: 700 30px/1 var(--cw-font-body); color: var(--cw-ink); display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.cruise-pdp-summary .price del { font-size: 20px; color: var(--cw-text-mute-4); font-weight: 400; }
.cruise-pdp-summary .price ins { text-decoration: none; }
.cruise-pdp-price-note { font: 400 13.5px/1 var(--cw-font-body); color: var(--cw-text-mute-3); }
.cruise-pdp-summary .woocommerce-product-details__short-description { font: 400 16px/1.68 var(--cw-font-body); color: var(--cw-text-muted); max-width: 520px; }
.cruise-pdp-summary .woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }

.cruise-pdp-summary table.variations { width: 100%; border: 0; margin: 0; }
.cruise-pdp-summary table.variations tbody, .cruise-pdp-summary table.variations tr, .cruise-pdp-summary table.variations th, .cruise-pdp-summary table.variations td { display: block; border: 0; padding: 0; }
.cruise-pdp-summary table.variations tr { margin-bottom: 20px; }
.cruise-pdp-summary table.variations th.label { text-align: left; font: 600 12.5px/1 var(--cw-font-body); color: var(--cw-ink); padding-bottom: 11px; }
/* The native <select> stays in the markup as WooCommerce's source of truth for
   price, stock and image swapping; the picker beside it is what is shown.
   WooCommerce's own `div.product form.cart .variations select` is a four-class
   selector, so the override has to out-rank it rather than just follow it. */
body.woocommerce div.product form.cart .variations .cruise-variation-control > select,
body.woocommerce-page div.product form.cart .variations .cruise-variation-control > select,
.cruise-variation-control > select { display: none; }
.cruise-swatch-picker { display: flex; gap: 12px; flex-wrap: wrap; }
.cruise-swatch-picker__dot { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--cw-border-strong); cursor: pointer; padding: 0; }
.cruise-swatch-picker__dot.is-selected { outline: 1px solid var(--cw-ink); outline-offset: 3px; }
.cruise-pill-picker { display: flex; gap: 9px; flex-wrap: wrap; }
.cruise-pill-picker__btn { border: 1px solid var(--cw-border-strong); background: var(--cw-panel); padding: 13px 18px; font: 500 13.5px/1 var(--cw-font-body); color: var(--cw-ink); cursor: pointer; }
.cruise-pill-picker__btn.is-selected { border: 1.5px solid var(--cw-ink); font-weight: 600; padding: 12.5px 18px; }
a.reset_variations { display: inline-block; font: 400 12.5px/1 var(--cw-font-body); color: var(--cw-text-mute-2); margin-top: 8px; }
.cruise-pdp-summary .woocommerce-variation-price { margin-bottom: 12px; }

.cruise-pdp-summary .quantity { display: flex; align-items: center; border: 1px solid var(--cw-border-strong); background: var(--cw-panel); height: 58px; width: -moz-fit-content; width: fit-content; flex: none; }
.cruise-qty-btn { width: 44px; height: 100%; background: none; border: 0; font: 400 18px/1 var(--cw-font-body); color: var(--cw-text-mute-2); cursor: pointer; }
.cruise-pdp-summary input.qty { width: 40px; text-align: center; border: 0; font: 600 15px/1 var(--cw-font-body); color: var(--cw-ink); height: 100%; background: none; -moz-appearance: textfield; }
.cruise-pdp-summary input.qty::-webkit-outer-spin-button, .cruise-pdp-summary input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cruise-pdp-summary form.cart { display: flex; gap: 12px; align-items: stretch; flex-wrap: wrap; }
.cruise-pdp-summary form.cart.variations_form { display: block; }
.cruise-pdp-summary .woocommerce-variation-add-to-cart { display: flex; gap: 12px; align-items: stretch; flex-wrap: wrap; }
.cruise-pdp-summary .single_add_to_cart_button { flex: 1; min-width: 220px; height: 58px; background: var(--cw-blue); border: 1px solid var(--cw-blue); color: #fff; font: 700 15px/1 var(--cw-font-body); letter-spacing: .02em; cursor: pointer; border-radius: 0; }
.cruise-pdp-summary .single_add_to_cart_button:hover { background: var(--cw-blue-deep); border-color: var(--cw-blue-deep); }
.cruise-pdp-summary .single_add_to_cart_button.disabled,
.cruise-pdp-summary .single_add_to_cart_button:disabled {
	/* Half-opacity blue reads as a washed-out lavender on the sand background,
	   which looks like a styling bug rather than a disabled control. */
	opacity: 1;
	background: var(--cw-sand);
	border-color: var(--cw-border-strong);
	color: var(--cw-text-mute-4);
	cursor: not-allowed;
}

.cruise-stock-line { display: flex; align-items: center; gap: 8px; font: 500 13px/1 var(--cw-font-body); color: var(--cw-text-mute-2); }
.cruise-stock-line.is-in-stock { color: var(--cw-green); }
.cruise-stock-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; }
.cruise-info-block { border: 1px solid var(--cw-border); background: var(--cw-panel); }
.cruise-info-block__row { display: flex; align-items: flex-start; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--cw-border); color: var(--cw-blue); }
.cruise-info-block__row:last-child { border-bottom: 0; }
.cruise-info-block__row svg { flex: none; margin-top: 1px; }
.cruise-info-block__title { font: 600 13.5px/1.3 var(--cw-font-body); color: var(--cw-ink); }
.cruise-info-block__text { font: 400 13px/1.5 var(--cw-font-body); color: var(--cw-text-mute-2); }

.cruise-product-overview { background: var(--cw-panel); border-top: 1px solid var(--cw-border); padding-block: 64px; }
.cruise-product-overview__grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,0.85fr); gap: 64px; }
.cruise-product-overview h2 { margin: 0 0 16px; font: 600 28px/1.14 var(--cw-font-heading); letter-spacing: -.022em; }
.cruise-product-overview__copy p { margin: 0 0 14px; font: 400 15.5px/1.7 var(--cw-font-body); color: var(--cw-text-muted); }
.cruise-product-overview__copy h3 { margin: 26px 0 12px; font: 600 17px/1.3 var(--cw-font-heading); }
.cruise-feature-list { display: flex; flex-direction: column; gap: 9px; }
.cruise-feature-list__item { display: flex; gap: 10px; font: 400 14.5px/1.55 var(--cw-font-body); color: var(--cw-text-muted); }
.cruise-feature-list__item span { color: var(--cw-blue); flex: none; }

.cruise-accordion { display: flex; flex-direction: column; border-bottom: 1px solid var(--cw-border); }
.cruise-accordion__item { border-top: 1px solid var(--cw-border); }
.cruise-accordion__header { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; background: none; border: 0; text-align: left; cursor: pointer; font: 600 15.5px/1.3 var(--cw-font-heading); color: var(--cw-ink); }
.cruise-accordion__icon { color: var(--cw-blue); font: 400 19px/1 var(--cw-font-body); flex: none; }
.cruise-accordion__panel { display: none; padding-bottom: 18px; }
.cruise-accordion__item.is-open .cruise-accordion__panel { display: block; }
.cruise-accordion__panel p { margin: 0 0 10px; font: 400 14.5px/1.65 var(--cw-font-body); color: var(--cw-text-muted); }
.cruise-spec-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1px; background: var(--cw-border); border: 1px solid var(--cw-border); }
.cruise-spec-grid__cell { background: var(--cw-bg); padding: 14px 16px; }
.cruise-spec-grid__label { font: 400 11.5px/1 var(--cw-font-body); letter-spacing: .07em; text-transform: uppercase; color: var(--cw-text-mute-4); margin-bottom: 5px; }
.cruise-spec-grid__value { font: 500 14px/1.3 var(--cw-font-body); color: var(--cw-ink); }

.cruise-reviews-band { background: var(--cw-bg); border-top: 1px solid var(--cw-border); padding-block: 60px; }
.cruise-reviews-band__title { font: 600 24px/1.15 var(--cw-font-heading); letter-spacing: -.02em; margin: 0 0 28px; }
.cruise-reviews-band__grid { display: grid; grid-template-columns: minmax(0,1fr) 380px; gap: 48px; align-items: start; }
.cruise-reviews-band__main { display: flex; flex-direction: column; gap: 28px; }
.cruise-reviews-band__cards { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.cruise-reviews-band__cards .cruise-review-card { background: var(--cw-panel); padding: 22px; }
.cruise-reviews-band__cards .cruise-review-card__quote { font-size: 18px; }
.cruise-reviews-band__summary { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; padding-top: 24px; border-top: 1px solid var(--cw-border); }
.cruise-reviews-band__score { font: 600 42px/1 var(--cw-font-heading); letter-spacing: -.03em; color: var(--cw-ink); }
.cruise-reviews-band__count { font: 400 13px/1.55 var(--cw-font-body); color: var(--cw-text-mute-2); }
.cruise-review-form-wrap .comment-form label { display: block; font: 500 13px/1 var(--cw-font-body); margin-bottom: 6px; }
.cruise-review-form-wrap .comment-form input[type="text"], .cruise-review-form-wrap .comment-form input[type="email"], .cruise-review-form-wrap .comment-form textarea { border: 1px solid var(--cw-border-strong); background: var(--cw-panel); padding: 12px 14px; font: 400 14px/1.5 var(--cw-font-body); width: 100%; max-width: 520px; }
.cruise-review-form-wrap .comment-form .submit { background: var(--cw-blue); border: 1px solid var(--cw-blue); color: #fff; font: 700 14px/1 var(--cw-font-body); padding: 15px 28px; cursor: pointer; }

.cruise-upsells { background: var(--cw-panel); border-top: 1px solid var(--cw-border); padding-block: 60px; }
.cruise-upsells h2 { margin: 0 0 24px; font: 600 28px/1.14 var(--cw-font-heading); letter-spacing: -.022em; }

/* ==========================================================================
   About page
   ========================================================================== */
.cruise-about-hero { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,0.95fr); min-height: 520px; }
.cruise-about-hero__copy { padding: 80px 56px 80px var(--cw-gutter); display: flex; flex-direction: column; justify-content: center; gap: 22px; }
.cruise-about-hero__copy .cruise-h1 { font-size: clamp(34px, 3.6vw, 50px); line-height: 1.06; }
.cruise-about-hero__copy p { color: var(--cw-text-muted); font: 400 17px/1.66 var(--cw-font-body); max-width: 520px; margin: 0; }
.cruise-about-hero__media { position: relative; background: var(--cw-media); min-height: 320px; overflow: hidden; }
.cruise-about-hero__media img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }

.cruise-glance-band { background: var(--cw-panel); border-top: 1px solid var(--cw-border); border-bottom: 1px solid var(--cw-border); padding-block: 56px; }
.cruise-glance-band__eyebrow { display: block; font: 600 12px/1 var(--cw-font-heading); letter-spacing: .16em; text-transform: uppercase; color: var(--cw-blue); margin-bottom: 6px; }
.cruise-glance-band__intro { color: var(--cw-text-mute-3); max-width: 620px; margin: 0 0 28px; font: 400 14px/1.5 var(--cw-font-body); }
.cruise-glance-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1px; background: var(--cw-border); border: 1px solid var(--cw-border); }
.cruise-glance-grid__cell { background: var(--cw-panel); padding: 24px 26px; }
.cruise-glance-grid__q { font: 600 13px/1.3 var(--cw-font-heading); color: var(--cw-blue); margin-bottom: 8px; }
.cruise-glance-grid__a { font: 400 14.5px/1.62 var(--cw-font-body); color: var(--cw-text-muted); }

.cruise-story-grid { display: grid; grid-template-columns: minmax(0,0.9fr) minmax(0,1.1fr); gap: 64px; align-items: start; }
.cruise-story-grid__copy h2 { margin: 0 0 18px; font: 600 34px/1.12 var(--cw-font-heading); letter-spacing: -.024em; }
.cruise-story-grid__copy p { color: var(--cw-text-muted); font: 400 16px/1.7 var(--cw-font-body); margin: 0 0 14px; }
.cruise-story-grid__cards { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; }
.cruise-value-card { background: var(--cw-panel); border: 1px solid var(--cw-border); padding: 26px; display: block; }
.cruise-value-card__eyebrow { display: block; font: 600 12px/1 var(--cw-font-heading); letter-spacing: .14em; text-transform: uppercase; color: var(--cw-blue); margin-bottom: 12px; }
.cruise-value-card__title { font: 600 18px/1.25 var(--cw-font-heading); color: var(--cw-ink); margin-bottom: 8px; }
.cruise-value-card__text { font: 400 14px/1.6 var(--cw-font-body); color: var(--cw-text-mute-2); }
.cruise-value-card--dark { background: var(--cw-ink); border-color: var(--cw-ink); display: flex; flex-direction: column; justify-content: space-between; gap: 18px; }
.cruise-value-card--dark .cruise-value-card__eyebrow { color: var(--cw-blue-light); }
.cruise-value-card__title--light { color: #fff; }
.cruise-value-card__text--light { color: var(--cw-footer-muted); }
.cruise-value-card--dark .cruise-btn { font-size: 13px; padding: 14px 20px; }

/* ==========================================================================
   FAQ page
   ========================================================================== */
.cruise-faq-hero { background: var(--cw-panel); border-bottom: 1px solid var(--cw-border); padding: 56px 0 40px; }
.cruise-faq-hero .cruise-h1 { margin: 16px 0 14px; }
.cruise-faq-hero p { color: var(--cw-text-muted); max-width: 660px; margin: 0 0 26px; font: 400 17px/1.66 var(--cw-font-body); }
.cruise-faq-search { display: flex; align-items: center; gap: 10px; max-width: 520px; height: 52px; border: 1px solid var(--cw-border-strong); background: var(--cw-bg); padding: 0 16px; color: var(--cw-text-mute-2); }
.cruise-faq-search input { border: 0; background: transparent; outline: none; font: 400 14.5px/1 var(--cw-font-body); width: 100%; min-width: 0; }
.cruise-faq-body { padding: 48px 0 72px; }
.cruise-faq-body__grid { display: grid; grid-template-columns: 240px minmax(0,1fr); gap: 56px; align-items: start; }
.cruise-faq-toc { display: flex; flex-direction: column; gap: 11px; position: sticky; top: 20px; }
.cruise-faq-toc__title { font: 600 11px/1 var(--cw-font-heading); letter-spacing: .15em; text-transform: uppercase; color: var(--cw-ink); margin-bottom: 4px; }
.cruise-faq-toc a { font: 400 13.5px/1.4 var(--cw-font-body); color: var(--cw-text-muted); }
.cruise-faq-toc a:first-of-type, .cruise-faq-toc a.is-current { font-weight: 600; color: var(--cw-blue); }
.cruise-faq-toc__help { margin-top: 18px; padding: 20px; background: var(--cw-info-bg); border: 1px solid var(--cw-info-border); }
.cruise-faq-toc__help-title { font: 600 14px/1.3 var(--cw-font-heading); color: var(--cw-ink); margin-bottom: 7px; }
.cruise-faq-toc__help p { font: 400 13px/1.55 var(--cw-font-body); color: var(--cw-text-muted); margin: 0 0 12px; }
.cruise-faq-toc__help a { font: 600 12.5px/1 var(--cw-font-body); color: var(--cw-blue-deep); border-bottom: 1px solid var(--cw-blue-deep); padding-bottom: 3px; }
.cruise-faq-sections { display: flex; flex-direction: column; gap: 44px; }
.cruise-faq-sections h2 { margin: 0 0 4px; font: 600 26px/1.15 var(--cw-font-heading); letter-spacing: -.02em; }

/* ==========================================================================
   Forms (Contact / Refund)
   ========================================================================== */
.cruise-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; margin-bottom: 24px; }
.cruise-form-field { display: flex; flex-direction: column; gap: 7px; }
.cruise-form-field--full { grid-column: 1 / -1; }
.cruise-form-field > label { font: 500 13px/1 var(--cw-font-body); color: var(--cw-ink); }
.cruise-required { color: #b32d2e; }
.cruise-form-field input[type="text"], .cruise-form-field input[type="email"], .cruise-form-field input[type="tel"],
.cruise-form-field select, .cruise-form-field textarea, .cruise-form-field input[type="file"] {
	border: 1px solid var(--cw-border-strong); background: var(--cw-panel); padding: 12px 14px;
	font: 400 14px/1.5 var(--cw-font-body); color: var(--cw-ink); width: 100%; border-radius: 0;
}
.cruise-form-field textarea { min-height: 120px; resize: vertical; }
.cruise-form-checkbox { display: flex; align-items: center; gap: 8px; font: 400 14px/1.4 var(--cw-font-body); }
.cruise-form-errors { background: #FBEAEA; border: 1px solid #E3B4B4; padding: 14px 16px; margin-bottom: 18px; }
.cruise-form-errors p { margin: 0; color: #8A2A2A; font-size: 13.5px; }
.cruise-form-success { background: #EAF6EE; border: 1px solid #BEE0C8; padding: 20px; color: var(--cw-green); font: 500 15px/1.5 var(--cw-font-body); }
.cruise-form-hp { position: absolute !important; left: -9999px; }

/* ==========================================================================
   WooCommerce: cart, checkout, account, notices — brand-styled
   ========================================================================== */
.cruise-wc-page { padding: 48px 0 72px; }
.cruise-wc-page__header { margin-bottom: 28px; }
.cruise-wc-page__header .cruise-h1 { margin: 14px 0 10px; }
.cruise-wc-page__header p { margin: 0; color: var(--cw-text-muted); font: 400 15px/1.6 var(--cw-font-body); }

.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notices-wrapper .woocommerce-message {
	list-style: none; background: var(--cw-info-bg); border: 1px solid var(--cw-info-border); border-left: 3px solid var(--cw-blue);
	padding: 14px 18px; margin: 0 0 22px; font: 400 14px/1.6 var(--cw-font-body); color: var(--cw-blue-deep);
	display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.woocommerce-error { background: #FBEAEA; border-color: #E3B4B4; border-left-color: #b32d2e; color: #8A2A2A; flex-direction: column; align-items: flex-start; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; }

.woocommerce table.shop_table { width: 100%; border-collapse: collapse; border: 1px solid var(--cw-border); background: var(--cw-panel); margin-bottom: 28px; }
.woocommerce table.shop_table th { text-align: left; font: 600 11px/1 var(--cw-font-heading); letter-spacing: .12em; text-transform: uppercase; color: var(--cw-ink); padding: 16px 18px; border-bottom: 1px solid var(--cw-border); background: var(--cw-bg); }
.woocommerce table.shop_table td { padding: 18px; border-bottom: 1px solid var(--cw-border); font: 400 14px/1.5 var(--cw-font-body); color: var(--cw-text-muted); vertical-align: middle; }
.woocommerce table.shop_table td.product-name a { font: 600 15px/1.3 var(--cw-font-heading); color: var(--cw-ink); }
.woocommerce table.shop_table td.product-thumbnail img { width: 72px; height: 72px; object-fit: cover; border: 1px solid var(--cw-border); }
.woocommerce table.shop_table .product-remove a.remove { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border: 1px solid var(--cw-border-strong); color: var(--cw-text-mute-2) !important; font-size: 16px; line-height: 1; text-decoration: none; background: var(--cw-panel) !important; border-radius: 0; }
.woocommerce table.shop_table .product-remove a.remove:hover { background: var(--cw-ink) !important; color: #fff !important; border-color: var(--cw-ink); }
.woocommerce table.shop_table td.actions { background: var(--cw-bg); }
.woocommerce .cart-collaterals { display: grid; grid-template-columns: minmax(0,1fr) 420px; gap: 48px; align-items: start; }
.woocommerce .cart_totals h2, .woocommerce-checkout h3, .woocommerce-billing-fields h3, .woocommerce-additional-fields h3, #order_review_heading {
	font: 600 20px/1.2 var(--cw-font-heading); letter-spacing: -.018em; margin: 0 0 16px;
}
.woocommerce .cart_totals table { border: 1px solid var(--cw-border); background: var(--cw-panel); width: 100%; border-collapse: collapse; }
.woocommerce .cart_totals th, .woocommerce .cart_totals td { padding: 14px 18px; border-bottom: 1px solid var(--cw-border); font: 400 14px/1.5 var(--cw-font-body); text-align: left; }
.woocommerce .cart_totals .order-total td { font: 700 18px/1 var(--cw-font-body); color: var(--cw-ink); }

.woocommerce .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce #respond input#submit {
	background: var(--cw-ink); color: #fff; border: 1px solid var(--cw-ink); border-radius: 0;
	font: 700 13.5px/1 var(--cw-font-body); letter-spacing: .02em; padding: 15px 26px; cursor: pointer; text-transform: none;
}
.woocommerce .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background: var(--cw-blue); border-color: var(--cw-blue); color: #fff; }
.woocommerce .checkout-button, .woocommerce a.checkout-button, .woocommerce #place_order, .woocommerce button.button.alt {
	background: var(--cw-blue); border-color: var(--cw-blue); color: #fff; width: 100%; text-align: center; padding: 17px 26px; font-size: 15px;
}
.woocommerce .checkout-button:hover, .woocommerce #place_order:hover { background: var(--cw-blue-deep); border-color: var(--cw-blue-deep); }
.woocommerce .button.wc-backward, .woocommerce a.button.wc-backward { background: var(--cw-panel); color: var(--cw-ink); border-color: var(--cw-ink); }

.woocommerce form .form-row { display: flex; flex-direction: column; gap: 7px; margin: 0 0 18px; padding: 0; }
.woocommerce form .form-row label { font: 500 13px/1 var(--cw-font-body); color: var(--cw-ink); }
.woocommerce form .form-row .required { color: #b32d2e; text-decoration: none; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
	border: 1px solid var(--cw-border-strong); background: var(--cw-panel); padding: 12px 14px; height: auto; min-height: 46px;
	font: 400 14px/1.5 var(--cw-font-body); color: var(--cw-ink); width: 100%; border-radius: 0; box-shadow: none;
}
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered { line-height: 20px; padding: 0; color: var(--cw-ink); }
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); right: 10px; }
.woocommerce form .form-row textarea { min-height: 110px; }
.woocommerce-checkout .col2-set { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 40px; }
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { width: auto; float: none; }
.woocommerce-checkout #customer_details { margin-bottom: 36px; }
.woocommerce-checkout-review-order { background: var(--cw-panel); border: 1px solid var(--cw-border); padding: 26px; }
.woocommerce-checkout-review-order table.shop_table { border: 0; margin-bottom: 18px; }
#add_payment_method #payment, .woocommerce-cart #payment, .woocommerce-checkout #payment { background: var(--cw-bg); border: 1px solid var(--cw-border); border-radius: 0; padding: 4px; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--cw-border); padding: 16px; }
.woocommerce-checkout #payment div.form-row { padding: 16px; }
.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register {
	border: 1px solid var(--cw-border); background: var(--cw-panel); padding: 26px; border-radius: 0; margin-bottom: 26px;
}

/* Account / login */
.cruise-account-layout { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 40px; align-items: start; }
.woocommerce-account .woocommerce-MyAccount-navigation { width: 240px; float: none; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--cw-border); background: var(--cw-panel); }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--cw-border); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 14px 18px; font: 500 13.5px/1 var(--cw-font-body); color: var(--cw-text-muted); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a, .woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--cw-bg); color: var(--cw-ink); }
.woocommerce-account .woocommerce-MyAccount-content { width: auto; float: none; }
.cruise-account-grid { display: grid; grid-template-columns: 240px minmax(0,1fr); gap: 40px; align-items: start; }

.woocommerce-store-notice, p.demo_store { background: var(--cw-ink); color: #fff; font: 500 13px/1.5 var(--cw-font-body); }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1240px) {
	:root { --cw-gutter: 32px; }
	.cruise-header__inner { gap: 24px; }
	.cruise-nav { gap: 18px; }
	.cruise-header__search { width: 160px; }
	.cruise-product-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
	.cruise-category-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 1080px) {
	.cruise-hero, .cruise-why-band, .cruise-about-hero { grid-template-columns: minmax(0,1fr); }
	.cruise-hero__media, .cruise-why-band__media, .cruise-about-hero__media { min-height: 320px; order: -1; }
	.cruise-hero__copy, .cruise-about-hero__copy, .cruise-why-band__copy { padding: 48px var(--cw-gutter); }
	.cruise-feature-strip { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.cruise-feature-strip__item:nth-child(2n) { border-right: 0; }
	.cruise-feature-strip__item:nth-child(-n+2) { border-bottom: 1px solid var(--cw-border); }
	.cruise-product-grid, .cruise-product-grid--3, .cruise-usecase-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.cruise-spec-band__grid, .cruise-story-grid, .cruise-reviews-summary__grid, .cruise-glance-grid,
	.cruise-faq-teaser__grid, .cruise-product-overview__grid, .cruise-reviews-band__grid, .cruise-faq-body__grid,
	.cruise-account-grid, .cruise-account-layout { grid-template-columns: minmax(0,1fr); }
	.cruise-reviews-summary__cards { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.cruise-shop-layout { grid-template-columns: minmax(0,1fr); }
	.cruise-filter-sidebar { border-right: 0; border-bottom: 1px solid var(--cw-border); }
	.cruise-shop-results { padding-inline: var(--cw-gutter); }
	.cruise-pdp-grid { grid-template-columns: minmax(0,1fr); gap: 32px; }
	.cruise-story-grid__cards { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.cruise-guide-block__grid { grid-template-columns: minmax(0,1fr); gap: 20px; }
	.woocommerce .cart-collaterals, .woocommerce-checkout .col2-set { grid-template-columns: minmax(0,1fr); gap: 28px; }
	.cruise-faq-toc { position: static; }
	.woocommerce-account .woocommerce-MyAccount-navigation { width: auto; }
}

/* The primary nav (8 items: Shop All, 4 categories, About, FAQ, Hospitality)
   stops fitting on one line below ~1050px — narrower than that and
   .cruise-nav's own flex-wrap silently drops "Hospitality" onto a second row,
   which .cruise-header__inner's fixed height doesn't expect, so it overlaps
   the content below. Switching to the hamburger pattern here (before the wrap
   can happen) avoids that instead of trying to cram the full nav in. */
@media (max-width: 1050px) {
	.cruise-header__nav { display: none; }
	.cruise-header__actions .cruise-header__search { display: none; }
	.cruise-header__hamburger { display: inline-flex; }
	/* .cruise-header (not .cruise-masthead) is what sticks — see the base rule
	   above — so the announcement bar keeps scrolling away here too. */
	.cruise-header__inner { height: 60px; gap: 0; justify-content: space-between; }
	.cruise-header__logo img, img.cruise-logo--header { height: 30px; }
	.cruise-header__actions { gap: 0; }
	.cruise-header__icon-btn { width: 44px; height: 44px; border: 0; background: none; color: var(--cw-ink); }
	.cruise-header__icon-btn--cart { background: none; color: var(--cw-ink); }
	.cruise-cart-count { top: 4px; right: 3px; }
	.cruise-header__mobile-search { display: block; background: var(--cw-panel); border-bottom: 1px solid var(--cw-border); padding: 10px var(--cw-gutter); }
	.cruise-header__mobile-search .cruise-header__search { width: 100%; height: 44px; }
	.cruise-header__chips { display: flex; gap: 7px; overflow-x: auto; padding: 12px var(--cw-gutter); background: var(--cw-panel); border-bottom: 1px solid var(--cw-border); -webkit-overflow-scrolling: touch; }
	.cruise-header__chip { flex: none; font: 500 12px/1 var(--cw-font-body); color: var(--cw-ink); border: 1px solid var(--cw-border-strong); padding: 10px 12px; white-space: nowrap; }
	.cruise-header__chip.is-current { background: var(--cw-ink); border-color: var(--cw-ink); color: #fff; font-weight: 600; }
}

@media (max-width: 768px) {
	:root { --cw-gutter: 16px; }

	.cruise-page-section { padding-block: 40px; }
	.cruise-hero { min-height: 0; }
	.cruise-hero__copy { padding: 26px var(--cw-gutter) 28px; gap: 14px; }
	.cruise-hero__media { min-height: 330px; }
	.cruise-hero__ctas { flex-direction: column; align-items: stretch; }
	.cruise-hero__ctas .cruise-btn { width: 100%; height: 48px; padding-block: 0; }
	.cruise-feature-strip__item { padding: 18px 16px; }
	.cruise-category-grid, .cruise-product-grid, .cruise-product-grid--3, .cruise-usecase-grid,
	.cruise-reviews-summary__cards, .cruise-reviews-band__cards, .cruise-story-grid__cards,
	.cruise-glance-grid, .cruise-spec-band__tiles { grid-template-columns: minmax(0,1fr); }
	.cruise-spec-band__texture { grid-column: span 1; }
	.cruise-site-footer__grid { grid-template-columns: minmax(0,1fr); gap: 28px; }
	.cruise-newsletter-band__inner { flex-direction: column; align-items: stretch; }
	.cruise-newsletter-band__form { flex-direction: column; align-items: stretch; }
	.cruise-newsletter-band__form input { width: 100%; }
	/* Stacked: the button spans the column rather than hugging the right edge
	   (align-self: flex-end is only right for the side-by-side desktop row). */
	.cruise-newsletter-band__form .cruise-btn { align-self: stretch; }
	.cruise-form-grid { grid-template-columns: minmax(0,1fr); }
	.cruise-form-field--half { grid-column: 1 / -1; }
	.cruise-shop-results { padding: 20px var(--cw-gutter) 48px; }
	.cruise-shop-results__bar { flex-direction: column; align-items: flex-start; }
	.cruise-guide-block { padding: 24px 20px; }
	.cruise-pdp-gallery .woocommerce-product-gallery { grid-template-columns: minmax(0, 1fr); }
	.cruise-pdp-gallery .flex-viewport,
	.cruise-pdp-gallery > .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper { grid-area: 1 / 1; }
	.cruise-pdp-gallery .flex-control-thumbs { grid-area: 2 / 1; flex-direction: row; width: auto; flex-wrap: wrap; }
	.cruise-pdp-gallery .flex-control-thumbs li { width: 72px; }
	.cruise-pdp-summary .single_add_to_cart_button { min-width: 0; }
	.cruise-product-overview__grid { gap: 32px; }
	.woocommerce table.shop_table td.product-thumbnail { display: none; }
	.cruise-lifestyle-band__inner .cruise-h2 { font-size: 26px; }
}

/* ==========================================================================
   WooCommerce loop wrappers (core emits ul.products; map it onto our grid)
   ========================================================================== */
.cruise-shop-results ul.products,
.upsells ul.products,
.related ul.products,
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.upsells ul.products, .related ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.woocommerce ul.products li.product { list-style: none; display: flex; margin: 0; width: auto; float: none; }
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none; }

.upsells, .related { background: var(--cw-panel); border-top: 1px solid var(--cw-border); padding-block: 60px; }
.upsells > h2, .related > h2 { margin: 0 0 24px; font: 600 28px/1.14 var(--cw-font-heading); letter-spacing: -.022em; }

@media (max-width: 1080px) {
	.cruise-shop-results ul.products, .woocommerce ul.products,
	.upsells ul.products, .related ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
	.cruise-shop-results ul.products, .woocommerce ul.products,
	.upsells ul.products, .related ul.products { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   WooCommerce core stylesheet overrides
   --------------------------------------------------------------------------
   woocommerce-layout.css ships a float-based grid whose selectors carry one
   more class than ours (e.g. `.woocommerce ul.products.columns-3 li.product`
   beats `.woocommerce ul.products li.product`), so it silently won and squeezed
   every product card to 30.75% of its grid cell. Rather than escalate rule by
   rule, the float layout is neutralised once here, at the end of the cascade,
   so our own grid and card rules can do their job.
   ========================================================================== */
body.woocommerce ul.products li.product,
body.woocommerce-page ul.products li.product,
.woocommerce ul.products[class] li.product {
	width: 100%;
	float: none;
	clear: none;
	margin: 0;
}
body.woocommerce ul.products li.product a img,
body.woocommerce-page ul.products li.product a img,
.woocommerce ul.products[class] li.product a img {
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
	box-shadow: none;
}
/* The card's own footer button must not inherit the loop's full-width button. */
body.woocommerce ul.products li.product .cruise-product-card__footer a.button,
body.woocommerce ul.products li.product .cruise-product-card__footer .button {
	width: auto;
	margin: 0;
	padding: 10px 16px;
	float: none;
}
body.woocommerce ul.products li.product .price { font-size: 16px; }

/* PDP: the same float layout collapsed the gallery column to zero height and
   pushed the thumbnail rail outside the container. */
body.woocommerce div.product div.images,
body.woocommerce div.product div.summary,
body.woocommerce-page div.product div.images,
body.woocommerce-page div.product div.summary {
	float: none;
	width: auto;
	margin: 0;
	opacity: 1 !important;
}
body.woocommerce div.product div.images .flex-control-thumbs li,
body.woocommerce-page div.product div.images .flex-control-thumbs li {
	width: 100%;
	float: none;
	margin: 0;
}
body.woocommerce div.product div.images img,
body.woocommerce-page div.product div.images img { box-shadow: none; }


/* ---------- PDP gallery + lightbox ---------- */
.cruise-pdp-gallery .woocommerce-product-gallery { position: relative; width: 100%; }
.cruise-pdp-gallery .woocommerce-product-gallery__wrapper { margin: 0; padding: 0; list-style: none; }
.cruise-pdp-gallery .woocommerce-product-gallery__image { position: relative; }
.cruise-pdp-gallery .woocommerce-product-gallery__image > a { display: block; cursor: zoom-in; }
.cruise-pdp-gallery .woocommerce-product-gallery__image img {
	width: 100%;
	aspect-ratio: 4 / 5;
	height: auto;
	object-fit: cover;
	display: block;
}
/* Zoom affordance — also the PhotoSwipe trigger WooCommerce wires up for us. */
.cruise-pdp-gallery .woocommerce-product-gallery__trigger {
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 4;
	width: 40px;
	height: 40px;
	background: rgba(255,255,255,.94);
	border: 1px solid var(--cw-border-strong);
	color: var(--cw-ink);
	font-size: 0;
	text-decoration: none;
	transition: background .15s ease;
}
.cruise-pdp-gallery .woocommerce-product-gallery__trigger:hover { background: #fff; }
.cruise-pdp-gallery .woocommerce-product-gallery__trigger::after {
	content: "";
	width: 15px;
	height: 15px;
	border: 1.7px solid currentColor;
	border-radius: 50%;
	box-shadow: 7px 7px 0 -6px currentColor;
	transform: translate(-2px,-2px);
}
.cruise-pdp-gallery .woocommerce-product-gallery__trigger img { display: none; }

/* PhotoSwipe chrome, toned to the brand. */
.pswp__bg { background: rgba(20,32,46,.94); }
.pswp__caption__center { text-align: center; font-family: var(--cw-font-body); }

/* ==========================================================================
   My Account — dashboard, navigation, orders, addresses, login/register
   ========================================================================== */
.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	gap: 44px;
	align-items: start;
}
/* The login and lost-password screens have no account nav, so they should not
   reserve a column for one. */
.woocommerce-account.cruise-account--auth .woocommerce { display: block; }

.woocommerce-account .woocommerce-MyAccount-navigation { width: auto; float: none; margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1px solid var(--cw-border);
	background: var(--cw-panel);
}
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--cw-border); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 14px 18px;
	font: 500 14.5px/1.2 var(--cw-font-body);
	color: var(--cw-text);
	border-left: 3px solid transparent;
	transition: background .14s ease, color .14s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--cw-sand); color: var(--cw-ink); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: var(--cw-sand);
	border-left-color: var(--cw-blue);
	color: var(--cw-ink);
	font-weight: 700;
}
.woocommerce-account .woocommerce-MyAccount-navigation li--logout a { color: var(--cw-text-mute-3); }

.woocommerce-account .woocommerce-MyAccount-content {
	width: auto;
	float: none;
	background: var(--cw-panel);
	border: 1px solid var(--cw-border);
	padding: 32px 34px;
}
.woocommerce-account .woocommerce-MyAccount-content > p { font: 400 15px/1.7 var(--cw-font-body); color: var(--cw-text-muted); }
.woocommerce-account .woocommerce-MyAccount-content > p:first-child { margin-top: 0; }
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
	font: 600 20px/1.2 var(--cw-font-heading);
	letter-spacing: -.016em;
	margin: 0 0 16px;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address {
	background: var(--cw-bg);
	border: 1px solid var(--cw-border);
	padding: 22px 24px;
}
.woocommerce-account .addresses .title { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.woocommerce-account .addresses .title h2, .woocommerce-account .addresses .title h3 { margin: 0 0 12px; }
.woocommerce-account .woocommerce-Addresses { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
.woocommerce-account .woocommerce-Addresses .woocommerce-Address { width: auto; float: none; }
.woocommerce-account .woocommerce-MyAccount-content a { border-bottom: 1px solid var(--cw-info-border); }

/* Order and download tables */
.woocommerce-account table.shop_table {
	width: 100%;
	border: 1px solid var(--cw-border);
	border-collapse: collapse;
	background: var(--cw-panel);
}
.woocommerce-account table.shop_table th {
	background: var(--cw-sand);
	text-align: left;
	padding: 13px 16px;
	font: 600 11.5px/1 var(--cw-font-body);
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cw-text-mute-3);
	border-bottom: 1px solid var(--cw-border);
}
.woocommerce-account table.shop_table td {
	padding: 15px 16px;
	border-bottom: 1px solid var(--cw-border);
	font: 400 14.5px/1.5 var(--cw-font-body);
	color: var(--cw-text);
}
.woocommerce-account table.shop_table .button {
	display: inline-block;
	padding: 8px 14px;
	background: var(--cw-ink);
	color: #fff;
	font: 600 12.5px/1 var(--cw-font-body);
	border: 0;
	border-radius: 0;
}
.woocommerce-account table.shop_table .button:hover { background: var(--cw-blue); color: #fff; }

/* Account forms: details, addresses, login, register */
.woocommerce-account form .form-row,
.woocommerce form.login .form-row,
.woocommerce form.register .form-row { display: flex; flex-direction: column; gap: 7px; margin: 0 0 18px; padding: 0; }
.woocommerce-account form label,
.woocommerce form.login label,
.woocommerce form.register label { font: 600 12.5px/1.3 var(--cw-font-body); color: var(--cw-ink); }
.woocommerce-account form .input-text,
.woocommerce form.login .input-text,
.woocommerce form.register .input-text,
.woocommerce-account form input[type="text"],
.woocommerce-account form input[type="email"],
.woocommerce-account form input[type="password"],
.woocommerce-account form input[type="tel"] {
	width: 100%;
	height: 50px;
	padding: 0 14px;
	border: 1px solid var(--cw-border-strong);
	background: var(--cw-panel);
	font: 400 14.5px/1 var(--cw-font-body);
	color: var(--cw-ink);
	border-radius: 0;
}
.woocommerce-account form .input-text:focus,
.woocommerce form.login .input-text:focus { outline: 2px solid var(--cw-blue); outline-offset: -1px; }
.woocommerce-account form button.button,
.woocommerce form.login button.button,
.woocommerce form.register button.button {
	height: 52px;
	padding: 0 26px;
	background: var(--cw-blue);
	border: 1px solid var(--cw-blue);
	color: #fff;
	font: 700 14.5px/1 var(--cw-font-body);
	border-radius: 0;
	cursor: pointer;
}
.woocommerce-account form button.button:hover,
.woocommerce form.login button.button:hover { background: var(--cw-blue-deep); border-color: var(--cw-blue-deep); }
.woocommerce-account fieldset { border: 1px solid var(--cw-border); padding: 22px 24px; margin: 28px 0 0; }
.woocommerce-account fieldset legend { font: 600 15px/1 var(--cw-font-heading); padding: 0 8px; }
.woocommerce form.login .woocommerce-form-login__rememberme { flex-direction: row; align-items: center; gap: 8px; }

/* Login and guest checkout, side by side */
.cruise-auth-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 28px; align-items: start; }
.cruise-auth-card { background: var(--cw-panel); border: 1px solid var(--cw-border); padding: 32px 34px; }
.cruise-auth-card > h2 { font: 600 22px/1.2 var(--cw-font-heading); letter-spacing: -.018em; margin: 0 0 8px; }
.cruise-auth-card__intro { font: 400 14.5px/1.65 var(--cw-font-body); color: var(--cw-text-muted); margin: 0 0 22px; }
.cruise-auth-card form.login, .cruise-auth-card form.register { border: 0; padding: 0; margin: 0; border-radius: 0; }
.cruise-auth-card .cruise-btn { align-self: flex-start; }
.cruise-guest-note {
	margin-top: 22px;
	padding-top: 20px;
	border-top: 1px solid var(--cw-border);
	font: 400 14px/1.65 var(--cw-font-body);
	color: var(--cw-text-muted);
}
.cruise-guest-note strong { color: var(--cw-ink); display: block; margin-bottom: 4px; font: 600 14.5px/1.3 var(--cw-font-body); }

/* ---------- Cart: product thumbnails ---------- */
.woocommerce table.shop_table .product-thumbnail img,
.woocommerce-cart-form__cart-item .product-thumbnail img {
	width: 76px;
	height: 76px;
	object-fit: cover;
	border: 1px solid var(--cw-border);
	background: var(--cw-sand);
}

/* ---------- Shared split page layout: content left, form right (Refund, Contact) ---------- */
.cruise-split-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 520px;
	gap: 64px;
	align-items: start;
}
.cruise-split-layout__content .cruise-h2 { margin: 0 0 18px; }
.cruise-split-layout__content .cruise-prose p { font-size: 15.5px; }
.cruise-split-layout__form {
	background: var(--cw-panel);
	border: 1px solid var(--cw-border);
	padding: 32px 34px;
	position: sticky;
	top: 24px;
}
.cruise-split-layout__form .cruise-h3 {
	font: 600 20px/1.2 var(--cw-font-heading);
	letter-spacing: -.016em;
	margin: 0 0 20px;
}

/* ---------- Bulk orders: quote request block on the category archive ---------- */
.cruise-quote-block { background: var(--cw-panel); border-top: 1px solid var(--cw-border); padding-block: 64px; }
.cruise-quote-block__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 560px;
	gap: 64px;
	align-items: start;
}
.cruise-quote-block__copy h2 { font: 600 30px/1.14 var(--cw-font-heading); letter-spacing: -.022em; margin: 0 0 14px; }
.cruise-quote-block__copy p { font: 400 15.5px/1.7 var(--cw-font-body); color: var(--cw-text-muted); margin: 0 0 14px; }
.cruise-quote-block__points { display: flex; flex-direction: column; gap: 12px; margin-top: 22px; }
.cruise-quote-block__point { display: flex; gap: 10px; font: 400 14.5px/1.55 var(--cw-font-body); color: var(--cw-text); }
.cruise-quote-block__point span { color: var(--cw-blue); flex: none; }
.cruise-quote-block__form { background: var(--cw-bg); border: 1px solid var(--cw-border); padding: 32px 34px; }
.cruise-quote-block__form h3 { font: 600 20px/1.2 var(--cw-font-heading); letter-spacing: -.016em; margin: 0 0 20px; }

@media (max-width: 1080px) {
	.woocommerce-account .woocommerce { grid-template-columns: minmax(0,1fr); gap: 28px; }
	.cruise-split-layout, .cruise-quote-block__grid { grid-template-columns: minmax(0,1fr); gap: 40px; }
	.cruise-split-layout__form { position: static; }
	.cruise-auth-grid { grid-template-columns: minmax(0,1fr); }
	.woocommerce-account .woocommerce-Addresses { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 768px) {
	.woocommerce-account .woocommerce-MyAccount-content,
	.cruise-split-layout__form,
	.cruise-quote-block__form,
	.cruise-auth-card { padding: 24px 20px; }
	/* Order tables reflow to stacked rows on phones. */
	.woocommerce-account table.shop_table thead { display: none; }
	.woocommerce-account table.shop_table tr { display: block; border-bottom: 1px solid var(--cw-border); }
	.woocommerce-account table.shop_table td {
		display: flex;
		justify-content: space-between;
		gap: 16px;
		border-bottom: 0;
		padding: 9px 16px;
	}
	.woocommerce-account table.shop_table td::before {
		content: attr(data-title);
		font: 600 11.5px/1.6 var(--cw-font-body);
		letter-spacing: .06em;
		text-transform: uppercase;
		color: var(--cw-text-mute-3);
	}
}

/* WooCommerce renders the login (and register, when enabled) forms inside
   #customer_login; style that in place rather than forking form-login.php. */
.woocommerce-account #customer_login.col2-set {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
	align-items: start;
}
.woocommerce-account #customer_login .u-column1,
.woocommerce-account #customer_login .u-column2 { width: auto; float: none; }
.woocommerce-account #customer_login .u-column1,
.woocommerce-account #customer_login .u-column2,
.woocommerce-account.cruise-account--auth .woocommerce > form.woocommerce-form-login,
.woocommerce-account.cruise-account--auth .woocommerce > .woocommerce-ResetPassword {
	background: var(--cw-panel);
	border: 1px solid var(--cw-border);
	padding: 32px 34px;
}
.woocommerce-account.cruise-account--auth .woocommerce > form.woocommerce-form-login,
.woocommerce-account.cruise-account--auth .woocommerce > .woocommerce-ResetPassword {
	max-width: 520px;
}
.woocommerce-account #customer_login h2 {
	font: 600 22px/1.2 var(--cw-font-heading);
	letter-spacing: -.018em;
	margin: 0 0 20px;
}
.woocommerce-account form.login, .woocommerce-account form.register {
	border: 0;
	padding: 0;
	margin: 0;
	border-radius: 0;
}
.woocommerce-account .woocommerce-privacy-policy-text p,
.woocommerce-account .woocommerce-form__label-for-checkbox {
	font: 400 13px/1.6 var(--cw-font-body);
	color: var(--cw-text-mute-3);
}
.woocommerce-account .lost_password { margin-top: 14px; font: 400 13.5px/1 var(--cw-font-body); }

@media (max-width: 1080px) {
	.woocommerce-account #customer_login.col2-set { grid-template-columns: minmax(0,1fr); }
}

/* WooCommerce adds clearfix pseudo-elements (`.woocommerce::before { content:"" }`)
   for its float layout. On a grid container those count as grid items, so they
   silently occupy the first cell and shunt the real children along one — which
   is what put the My Account nav in the content column. Cancel them on every
   wrapper the theme turns into a grid, and pin the account columns explicitly. */
.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after,
.woocommerce .col2-set::before,
.woocommerce .col2-set::after,
.woocommerce .cart-collaterals::before,
.woocommerce .cart-collaterals::after,
.woocommerce .woocommerce-Addresses::before,
.woocommerce .woocommerce-Addresses::after { content: none; display: none; }

.woocommerce-account .woocommerce-MyAccount-navigation { grid-column: 1; grid-row: 1; }
.woocommerce-account .woocommerce-MyAccount-content { grid-column: 2; grid-row: 1; }
@media (max-width: 1080px) {
	.woocommerce-account .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-MyAccount-content { grid-column: 1; grid-row: auto; }
}

/* The Reviews band above already lists the reviews, but comments_template()
   also prints WooCommerce's own heading and list. Keep the block (it carries
   the review form the "Write a review" link targets) and hide the duplicate
   listing rather than reimplementing the rating form. */
.cruise-review-form-wrap #comments > h2,
.cruise-review-form-wrap ol.commentlist,
.cruise-review-form-wrap .woocommerce-noreviews,
.cruise-review-form-wrap p.woocommerce-verification-required { display: none; }

.cruise-review-form-wrap #review_form_wrapper {
	background: var(--cw-panel);
	border: 1px solid var(--cw-border);
	padding: 32px 34px;
}
.cruise-review-form-wrap #reply-title {
	display: block;
	font: 600 20px/1.2 var(--cw-font-heading);
	letter-spacing: -.016em;
	color: var(--cw-ink);
	margin: 0 0 18px;
}
.cruise-review-form-wrap .comment-form-rating label,
.cruise-review-form-wrap .comment-form p label {
	display: block;
	font: 600 12.5px/1.3 var(--cw-font-body);
	color: var(--cw-ink);
	margin-bottom: 7px;
}
.cruise-review-form-wrap .comment-form input[type="text"],
.cruise-review-form-wrap .comment-form input[type="email"],
.cruise-review-form-wrap .comment-form textarea {
	width: 100%;
	border: 1px solid var(--cw-border-strong);
	background: var(--cw-panel);
	padding: 13px 14px;
	font: 400 14.5px/1.5 var(--cw-font-body);
	border-radius: 0;
}
.cruise-review-form-wrap .comment-form input[type="submit"] {
	height: 52px;
	padding: 0 26px;
	background: var(--cw-blue);
	border: 1px solid var(--cw-blue);
	color: #fff;
	font: 700 14.5px/1 var(--cw-font-body);
	border-radius: 0;
	cursor: pointer;
}
.cruise-review-form-wrap .comment-form input[type="submit"]:hover { background: var(--cw-blue-deep); border-color: var(--cw-blue-deep); }
.cruise-review-form-wrap .stars a { color: var(--cw-gold, #C9A227); }

/* ==========================================================================
   WooCommerce Cart & Checkout blocks
   --------------------------------------------------------------------------
   The store uses the block-based Cart and Checkout (not the classic
   shortcodes), so the classic selectors further up this file never match them.
   These rules bring the blocks onto the same square-cornered, Archivo/DM Sans,
   brand-blue language as the rest of the theme.
   ========================================================================== */

/* ---------- Typography ---------- */
.wc-block-components-title,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-title,
.wc-block-cart__totals-title {
	font-family: var(--cw-font-heading) !important;
	color: var(--cw-ink);
	letter-spacing: -.012em;
}
.wc-block-components-checkout-step__title {
	font: 600 19px/1.25 var(--cw-font-heading);
	letter-spacing: -.016em;
	color: var(--cw-ink);
}
.wc-block-components-checkout-step__description { color: var(--cw-text-mute-3); font-size: 13.5px; }

/* ---------- Buttons ---------- */
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background-color: var(--cw-blue) !important;
	border: 1px solid var(--cw-blue) !important;
	color: #fff !important;
	border-radius: 0 !important;
	font: 700 15px/1 var(--cw-font-body) !important;
	min-height: 56px;
	letter-spacing: .02em;
}
.wc-block-components-button:not(.is-link):hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
	background-color: var(--cw-blue-deep) !important;
	border-color: var(--cw-blue-deep) !important;
}
.wc-block-components-button.is-link { color: var(--cw-blue); }

/* ---------- Inputs & selects ---------- */
.wc-block-components-text-input input,
.wc-block-components-select .wc-blocks-components-select__select,
.wc-block-components-textarea,
.wc-block-components-combobox-control input {
	border-radius: 0 !important;
	border: 1px solid var(--cw-border-strong) !important;
	background: var(--cw-panel) !important;
	font-family: var(--cw-font-body) !important;
	color: var(--cw-ink);
}
.wc-block-components-text-input.is-active input:focus,
.wc-block-components-text-input input:focus,
.wc-block-components-select .wc-blocks-components-select__select:focus {
	outline: 2px solid var(--cw-blue);
	outline-offset: -1px;
	box-shadow: none !important;
}
.wc-block-components-text-input label,
.wc-block-components-select .wc-blocks-components-select__label { font-family: var(--cw-font-body); color: var(--cw-text-mute-3); }

/* ---------- Order summary / totals panel ---------- */
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-cart__totals-wrapper,
.wp-block-woocommerce-cart-order-summary-block {
	background: var(--cw-panel);
	border: 1px solid var(--cw-border);
	border-radius: 0;
	padding: 24px 26px;
}
.wc-block-components-totals-item { font-family: var(--cw-font-body); }
.wc-block-components-totals-footer-item,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-family: var(--cw-font-body);
	color: var(--cw-ink);
	font-weight: 700;
}
.wc-block-components-panel__button { font-family: var(--cw-font-body); color: var(--cw-ink); }

/* ---------- Line items ---------- */
.wc-block-components-order-summary-item__image img,
.wc-block-cart-item__image img {
	border: 1px solid var(--cw-border);
	background: var(--cw-sand);
	border-radius: 0;
	object-fit: cover;
}
.wc-block-components-product-name { font-family: var(--cw-font-body); color: var(--cw-ink); font-weight: 600; }
.wc-block-components-product-name:hover { color: var(--cw-blue); }
.wc-block-components-product-metadata { color: var(--cw-text-mute-3); }

/* Cart table header row */
.wc-block-cart-items__header {
	font: 600 11.5px/1 var(--cw-font-body);
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cw-text-mute-3);
	border-bottom: 1px solid var(--cw-border);
}
.wc-block-cart-items .wc-block-cart-items__row { border-bottom: 1px solid var(--cw-border); }

/* Quantity stepper, to match the PDP control */
.wc-block-components-quantity-selector {
	border: 1px solid var(--cw-border-strong);
	border-radius: 0;
	background: var(--cw-panel);
}
.wc-block-components-quantity-selector::after { display: none; }
.wc-block-components-quantity-selector__input { font-family: var(--cw-font-body); color: var(--cw-ink); }
.wc-block-components-quantity-selector__button { color: var(--cw-ink); }

/* Notices */
.wc-block-components-notice-banner { border-radius: 0; font-family: var(--cw-font-body); }
.wc-block-components-notice-banner.is-info { border-color: var(--cw-info-border); }

/* Radio controls (shipping + payment) */
.wc-block-components-radio-control__option { font-family: var(--cw-font-body); }
.wc-block-components-radio-control-accordion-option,
.wc-block-components-radio-control__option { border-radius: 0; }

/* The checkout sidebar keeps the same rhythm as the rest of the page. */
.wp-block-woocommerce-checkout .wc-block-checkout__sidebar { top: 24px; }

/* ---------- My Account dashboard ---------- */
.cruise-account-dash__hello { font: 600 26px/1.15 var(--cw-font-heading); letter-spacing: -.02em; margin: 0 0 8px; }
.cruise-account-dash__intro { font: 400 15px/1.7 var(--cw-font-body); color: var(--cw-text-muted); margin: 0 0 28px; }
.cruise-account-dash__grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.cruise-account-tile {
	display: flex;
	flex-direction: column;
	gap: 5px;
	padding: 20px 22px;
	background: var(--cw-bg);
	border: 1px solid var(--cw-border);
	border-left: 3px solid var(--cw-blue);
	transition: background .14s ease, transform .14s ease;
}
.cruise-account-tile:hover { background: var(--cw-sand); transform: translateY(-1px); }
.cruise-account-tile__label { font: 600 15.5px/1.2 var(--cw-font-heading); color: var(--cw-ink); }
.cruise-account-tile__text { font: 400 13.5px/1.55 var(--cw-font-body); color: var(--cw-text-mute-3); }
.cruise-account-dash__help {
	margin-top: 28px;
	padding-top: 22px;
	border-top: 1px solid var(--cw-border);
	font: 400 14px/1.7 var(--cw-font-body);
	color: var(--cw-text-muted);
}
.cruise-account-dash__help strong { display: block; color: var(--cw-ink); font: 600 14.5px/1.4 var(--cw-font-body); margin-bottom: 3px; }
/* Tiles are links, but shouldn't pick up the underline the content area gives links. */
.woocommerce-account .woocommerce-MyAccount-content a.cruise-account-tile { border-bottom: 1px solid var(--cw-border); }

@media (max-width: 768px) {
	.cruise-account-dash__grid { grid-template-columns: minmax(0,1fr); }
}

/* Category banner with no image set: brand gradient instead of a bare block
   (and never the editor-only "Add image" placeholder). */
.cruise-category-banner--plain { background: linear-gradient(115deg, var(--cw-ink) 0%, var(--cw-blue-deep) 62%, var(--cw-blue) 140%); }
.cruise-category-banner--plain .cruise-category-banner__overlay { background: none; }

/* WooCommerce styles its add-to-cart button via `.woocommerce button.button.alt`
   and `.alt.disabled` in brand purple (#7f54b3), which outranks the theme's
   own rule. Override both states from the end of the cascade with enough
   specificity to win, so the button is Cruisewear blue when it can be used and
   reads as plainly unavailable when a variation still has to be chosen. */
body.woocommerce .cruise-pdp-summary button.single_add_to_cart_button,
body.woocommerce-page .cruise-pdp-summary button.single_add_to_cart_button {
	background-color: var(--cw-blue);
	border-color: var(--cw-blue);
	color: #fff;
}
body.woocommerce .cruise-pdp-summary button.single_add_to_cart_button:hover,
body.woocommerce-page .cruise-pdp-summary button.single_add_to_cart_button:hover {
	background-color: var(--cw-blue-deep);
	border-color: var(--cw-blue-deep);
}
body.woocommerce .cruise-pdp-summary button.single_add_to_cart_button.disabled,
body.woocommerce .cruise-pdp-summary button.single_add_to_cart_button:disabled,
body.woocommerce-page .cruise-pdp-summary button.single_add_to_cart_button.disabled,
body.woocommerce-page .cruise-pdp-summary button.single_add_to_cart_button:disabled {
	opacity: 1;
	background-color: var(--cw-sand);
	border-color: var(--cw-border-strong);
	color: var(--cw-text-mute-4);
	cursor: not-allowed;
}
