/*
Theme Name: Cruise Talk 2.0
Theme URI: https://cruisetalk.org/
Description: Custom GeneratePress child theme for Cruise Talk 2.0.
Author: Cruise Talk
Template: generatepress
Version: 1.0.0
Text Domain: cruisetalk-2
*/

/*
 * Cruise Talk 2.0
 * ----------------
 * GeneratePress automatically loads the parent and child stylesheets.
 * Do not add @import for the GeneratePress parent stylesheet.
 */


/* ========================================================================== 
   1. Design tokens
   ========================================================================== */

:root {
	/* CruiseOne-related brand colors, used as ingredients rather than a clone. */
	--ct-blue-bright: #00a3d9;
	--ct-blue: #3981bf;
	--ct-blue-deep: #204d8a;
	--ct-navy: #091553;
	--ct-gold: #f4bf44;
	--ct-cream: #f4ede3;
	--ct-taupe: #a28b73;

	/* Editorial neutrals. */
	--ct-ink: #202936;
	--ct-muted: #5c6878;
	--ct-border: #dce4ec;
	--ct-soft-blue: #f4f8fc;
	--ct-soft-warm: #fbf8f4;
	--ct-white: #ffffff;

	/* Layout. */
	--ct-site-max: 1440px;
	--ct-reading-max: 820px;
	--ct-gutter: clamp(20px, 4vw, 64px);
	--ct-section-space: clamp(42px, 6vw, 84px);

	/* Shape and depth. */
	--ct-radius-sm: 6px;
	--ct-radius: 10px;
	--ct-shadow-soft: 0 10px 30px rgba(18, 45, 77, 0.08);

	/* Typography: system-first for speed and easy iteration. */
	--ct-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}


/* ========================================================================== 
   2. Global elements
   ========================================================================== */

html {
	scroll-behavior: smooth;
}

body.cruisetalk-2 {
	background: var(--ct-white);
	color: var(--ct-ink);
	font-family: var(--ct-font-sans);
	font-size: clamp(17px, 0.25vw + 16px, 18px);
	line-height: 1.68;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.cruisetalk-2 .grid-container {
	max-width: var(--ct-site-max);
}

body.cruisetalk-2 .site-content,
body.cruisetalk-2 .site.grid-container {
	background: var(--ct-white);
}

body.cruisetalk-2 a {
	color: var(--ct-blue-bright);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
	transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease;
}

body.cruisetalk-2 a:hover,
body.cruisetalk-2 a:focus {
	color: var(--ct-blue-deep);
}

body.cruisetalk-2 :focus-visible {
	outline: 3px solid rgba(0, 163, 217, 0.35);
	outline-offset: 3px;
}

body.cruisetalk-2 h1,
body.cruisetalk-2 h2,
body.cruisetalk-2 h3,
body.cruisetalk-2 h4,
body.cruisetalk-2 h5,
body.cruisetalk-2 h6 {
	color: var(--ct-blue-deep);
	font-family: var(--ct-font-sans);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.15;
}

body.cruisetalk-2 h1 {
	font-size: clamp(2.35rem, 4vw, 3.7rem);
}

body.cruisetalk-2 h2 {
	font-size: clamp(1.8rem, 2.8vw, 2.65rem);
}

body.cruisetalk-2 h3 {
	font-size: clamp(1.4rem, 2vw, 1.85rem);
}

body.cruisetalk-2 p,
body.cruisetalk-2 ul,
body.cruisetalk-2 ol {
	margin-bottom: 1.25em;
}

body.cruisetalk-2 hr {
	border: 0;
	border-top: 1px solid var(--ct-border);
	margin: 2.5rem 0;
}

body.cruisetalk-2 blockquote {
	border-left: 4px solid var(--ct-gold);
	color: var(--ct-muted);
	font-size: 1.08em;
	margin: 2rem 0;
	padding: 0.2rem 0 0.2rem 1.35rem;
}

body.cruisetalk-2 figure.wp-block-image img,
body.cruisetalk-2 .post-image img,
body.cruisetalk-2 .featured-image img {
	border-radius: var(--ct-radius);
}


/* ========================================================================== 
   3. Header & navigation
   ========================================================================== */

body.cruisetalk-2 .site-header {
	background: var(--ct-white);
	border-bottom: 1px solid var(--ct-border);
}

body.cruisetalk-2 .inside-header {
	padding-top: 10px;
	padding-right: var(--ct-gutter);
	padding-bottom: 10px;
	padding-left: var(--ct-gutter);
}

body.cruisetalk-2 .site-title {
	font-family: var(--ct-font-sans);
	font-size: clamp(2.8rem, 4vw, 3.7rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.05;
}

body.cruisetalk-2 .site-title a,
body.cruisetalk-2 .site-title a:hover,
body.cruisetalk-2 .site-title a:focus {
	color: var(--ct-blue-bright);
	text-decoration: none;
}

body.cruisetalk-2 .site-description {
	color: var(--ct-muted);
}

body.cruisetalk-2 .main-navigation,
body.cruisetalk-2 .main-navigation ul ul {
	background: var(--ct-white);
}

body.cruisetalk-2 .main-navigation .inside-navigation {
	padding-left: var(--ct-gutter);
	padding-right: var(--ct-gutter);
}

body.cruisetalk-2 .main-navigation .main-nav ul li a,
body.cruisetalk-2 .main-navigation .menu-toggle,
body.cruisetalk-2 .main-navigation .menu-bar-item > a {
	color: var(--ct-blue-deep);
	font-weight: 650;
	letter-spacing: 0.005em;
}

body.cruisetalk-2 .main-navigation .main-nav ul li > a:hover,
body.cruisetalk-2 .main-navigation .main-nav ul li > a:focus,
body.cruisetalk-2 .main-navigation .main-nav ul li.sfHover > a {
	background: var(--ct-soft-blue);
	color: var(--ct-navy);
}

body.cruisetalk-2 .main-navigation .main-nav ul li[class*="current-menu-"] > a,
body.cruisetalk-2 .main-navigation .main-nav ul li[class*="current_page_"] > a {
	background: transparent;
	box-shadow: inset 0 -3px 0 var(--ct-gold);
	color: var(--ct-navy);
}

body.cruisetalk-2 .main-navigation ul ul {
	border: 1px solid var(--ct-border);
	box-shadow: var(--ct-shadow-soft);
}


/* ========================================================================== 
   4. Content & post layouts
   ========================================================================== */

body.cruisetalk-2 .site-content {
	padding-left: var(--ct-gutter);
	padding-right: var(--ct-gutter);
}

body.cruisetalk-2 .entry-title a {
	color: var(--ct-blue-deep);
	text-decoration: none;
}

body.cruisetalk-2 .entry-title a:hover,
body.cruisetalk-2 .entry-title a:focus {
	color: var(--ct-blue-bright);
}

body.cruisetalk-2 .entry-meta,
body.cruisetalk-2 .entry-meta a {
	color: var(--ct-muted);
	font-size: 0.91em;
}

body.cruisetalk-2 .entry-meta a:hover,
body.cruisetalk-2 .entry-meta a:focus {
	color: var(--ct-blue-deep);
}

body.cruisetalk-2 .separate-containers .inside-article,
body.cruisetalk-2 .one-container .site-content {
	padding-top: clamp(28px, 4vw, 52px);
	padding-bottom: clamp(28px, 4vw, 52px);
}

body.cruisetalk-2 .paging-navigation,
body.cruisetalk-2 .post-navigation {
	border-top: 1px solid var(--ct-border);
	margin-top: 2.5rem;
	padding-top: 1.5rem;
}




/* ==========================================================================
   4A. Home page editorial feed
   ========================================================================== */

/*
 * One expansive lead story followed by six compact editorial cards.
 * This keeps the home page useful as a gateway instead of turning it into
 * an endless stack of full-width post previews.
 */
/*
 * A compact orientation panel gives first-time visitors context before the
 * editorial feed begins. Keep it horizontal on larger screens so the
 * introduction adds clarity without consuming hero-scale vertical space.
 */
body.cruisetalk-2.home .ct-home-welcome {
	background: var(--ct-soft-warm);
	display: grid;
	grid-column: 1 / -1;
	grid-template-columns: minmax(240px, 0.8fr) minmax(0, 1.55fr);
	gap: clamp(26px, 4vw, 58px);
	margin: 0;
	padding: clamp(26px, 3.2vw, 42px);
}

body.cruisetalk-2.home .ct-home-welcome__heading {
	align-self: start;
}

body.cruisetalk-2.home .ct-home-welcome .ct-eyebrow {
	margin-bottom: 0.7rem;
}

body.cruisetalk-2.home .ct-home-welcome__title {
	font-size: clamp(1.95rem, 3vw, 2.65rem);
	margin: 0;
	text-wrap: balance;
}

body.cruisetalk-2.home .ct-home-welcome__photo {
	display: block;
	height: 145px;
	margin-top: 1rem;
	object-fit: cover;
	object-position: 36% 46%;
	width: 205px;
	border: 1px solid rgba(19, 45, 88, 0.12);
	border-radius: 9px;
	box-shadow: 0 5px 14px rgba(19, 45, 88, 0.09);
}

body.cruisetalk-2.home .ct-home-welcome__body {
	align-self: center;
	max-width: 760px;
}

body.cruisetalk-2.home .ct-home-welcome__body p {
	font-size: 1.01em;
	line-height: 1.68;
	margin: 0;
}

body.cruisetalk-2.home .ct-home-welcome__body p + p {
	margin-top: 0.8rem;
}

body.cruisetalk-2.home .ct-home-welcome__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem 1.35rem;
	margin-top: 1.15rem;
}

body.cruisetalk-2.home .ct-home-welcome__links a {
	color: var(--ct-blue-deep);
	font-size: 0.94em;
	font-weight: 750;
	text-decoration: none;
}

body.cruisetalk-2.home .ct-home-welcome__links a::after {
	content: " \2192";
}

body.cruisetalk-2.home .ct-home-welcome__links a:hover,
body.cruisetalk-2.home .ct-home-welcome__links a:focus {
	color: var(--ct-blue-bright);
}

body.cruisetalk-2.home .site-main {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: clamp(28px, 3vw, 42px);
	row-gap: clamp(28px, 2.5vw, 36px);
}

body.cruisetalk-2.home .site-main > article {
	margin-bottom: 0;
	min-width: 0;
}

body.cruisetalk-2.home .site-main > article:first-of-type,
body.cruisetalk-2.home .site-main > .paging-navigation,
body.cruisetalk-2.home .site-main > .navigation {
	grid-column: 1 / -1;
}

/* Remove GeneratePress's default stacked-container spacing on the grid. */
body.cruisetalk-2.home.separate-containers .site-main > article + article {
	margin-top: 0;
}

/* Lead story: broad, quiet, photography-forward. */
body.cruisetalk-2.home .site-main > article:first-of-type .inside-article {
	padding-top: clamp(28px, 2.7vw, 38px);
	padding-bottom: clamp(22px, 3vw, 32px);
}

body.cruisetalk-2.home .site-main > article:first-of-type .entry-header,
body.cruisetalk-2.home .site-main > article:first-of-type .entry-summary,
body.cruisetalk-2.home .site-main > article:first-of-type > .inside-article > footer.entry-meta {
	max-width: 1040px;
}

body.cruisetalk-2.home .site-main > article:first-of-type .entry-title {
	font-size: clamp(2.2rem, 3.55vw, 3.3rem);
	margin-bottom: 0.4rem;
	max-width: 1200px;
	text-wrap: balance;
}

body.cruisetalk-2.home .site-main > article:first-of-type .post-image {
	margin-top: clamp(28px, 3.5vw, 46px);
	margin-bottom: clamp(28px, 3.5vw, 44px);
}

body.cruisetalk-2.home .site-main > article:first-of-type .post-image img {
	display: block;
	height: auto;
	max-height: 720px;
	object-fit: cover;
	width: 100%;
}

body.cruisetalk-2.home .site-main > article:first-of-type .entry-summary {
	font-size: 1.06em;
	line-height: 1.72;
}

/* The eyebrow is intentionally reserved for the lead story. */
body.cruisetalk-2.home .ct-home-lead-eyebrow {
	margin-bottom: 0.95rem;
}

/*
 * Secondary stories: compact cards.
 * Image-first on these cards creates a clear visual distinction from the lead.
 */
body.cruisetalk-2.home .site-main > article:not(:first-of-type) .inside-article {
	background: var(--ct-white);
	border: 1px solid var(--ct-border);
	border-top: 4px solid var(--ct-gold);
	border-radius: var(--ct-radius);
	box-shadow: var(--ct-shadow-soft);
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	padding: 0;
}

body.cruisetalk-2.home .site-main > article:not(:first-of-type) .post-image {
	margin: 0;
	order: -1;
	width: 100%;
}

body.cruisetalk-2.home .site-main > article:not(:first-of-type) .post-image a {
	display: block;
}

body.cruisetalk-2.home .site-main > article:not(:first-of-type) .post-image img {
	aspect-ratio: 3 / 2;
	border-radius: 0;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

body.cruisetalk-2.home .site-main > article:not(:first-of-type) .entry-header {
	padding: clamp(22px, 2.4vw, 30px) clamp(22px, 2.4vw, 30px) 0;
}

body.cruisetalk-2.home .site-main > article:not(:first-of-type) .entry-title {
	font-size: clamp(1.4rem, 1.7vw, 1.72rem);
	margin-bottom: 0.55rem;
	text-wrap: balance;
}

body.cruisetalk-2.home .site-main > article:not(:first-of-type) .entry-summary {
	color: var(--ct-ink);
	flex: 1;
	font-size: 0.97em;
	line-height: 1.62;
	margin-top: 1rem;
	padding: 0 clamp(22px, 2.4vw, 30px);
}

body.cruisetalk-2.home .site-main > article:not(:first-of-type) .entry-summary p:last-child {
	margin-bottom: 0;
}

/* Keep categories available, but remove the low-value "Leave a comment" noise. */
body.cruisetalk-2.home .site-main > article footer.entry-meta {
	border-top: 1px solid var(--ct-border);
	margin-top: 1.4rem;
	padding-top: 1rem;
}

body.cruisetalk-2.home .site-main > article:not(:first-of-type) footer.entry-meta {
	margin-left: clamp(22px, 2.4vw, 30px);
	margin-right: clamp(22px, 2.4vw, 30px);
	padding-bottom: clamp(22px, 2.4vw, 30px);
}

body.cruisetalk-2.home .comments-link {
	display: none;
}

body.cruisetalk-2.home footer.entry-meta .cat-links {
	display: inline;
}

body.cruisetalk-2.home footer.entry-meta .cat-links .gp-icon {
	color: var(--ct-blue);
	display: inline-flex;
	margin-right: 0.45rem;
	vertical-align: -0.12em;
}

body.cruisetalk-2.home footer.entry-meta .cat-links .gp-icon svg {
	fill: currentColor;
}

body.cruisetalk-2.home footer.entry-meta .cat-links a {
	color: var(--ct-blue-deep);
	font-weight: 650;
	text-decoration: none;
}

body.cruisetalk-2.home footer.entry-meta .cat-links a:hover,
body.cruisetalk-2.home footer.entry-meta .cat-links a:focus {
	color: var(--ct-blue-bright);
}

/* "Read more" remains textual, but has enough weight to be discoverable. */
body.cruisetalk-2.home .ct-read-more {
	color: var(--ct-blue-deep);
	font-weight: 700;
	white-space: nowrap;
}

body.cruisetalk-2.home .ct-read-more:hover,
body.cruisetalk-2.home .ct-read-more:focus {
	color: var(--ct-blue-bright);
}

/* Pagination is a quiet, centered control that closes the home-page grid. */
body.cruisetalk-2.home .paging-navigation {
	background: var(--ct-soft-warm);
	border: 1px solid var(--ct-border);
	border-radius: var(--ct-radius);
	box-shadow: var(--ct-shadow-soft);
	margin-top: clamp(4px, 1vw, 12px);
	padding: clamp(16px, 2vw, 22px);
}

body.cruisetalk-2.home .paging-navigation .nav-links {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
}

body.cruisetalk-2.home .paging-navigation .page-numbers {
	align-items: center;
	background: var(--ct-white);
	border: 1px solid var(--ct-border);
	border-radius: var(--ct-radius-sm);
	color: var(--ct-blue-deep);
	display: inline-flex;
	font-weight: 750;
	height: 42px;
	justify-content: center;
	line-height: 1;
	min-width: 42px;
	padding: 0 0.8rem;
	text-decoration: none;
}

body.cruisetalk-2.home .paging-navigation a.page-numbers:hover,
body.cruisetalk-2.home .paging-navigation a.page-numbers:focus {
	background: var(--ct-soft-blue);
	border-color: var(--ct-blue);
	color: var(--ct-navy);
}

body.cruisetalk-2.home .paging-navigation .page-numbers.current {
	background: var(--ct-blue-deep);
	border-color: var(--ct-blue-deep);
	color: var(--ct-white);
}

body.cruisetalk-2.home .paging-navigation .page-numbers.dots {
	background: transparent;
	border-color: transparent;
	min-width: auto;
	padding-left: 0.3rem;
	padding-right: 0.3rem;
}

body.cruisetalk-2.home .paging-navigation .page-numbers.prev,
body.cruisetalk-2.home .paging-navigation .page-numbers.next {
	font-size: 0;
	padding: 0;
	width: 42px;
}

body.cruisetalk-2.home .paging-navigation .page-numbers.prev::before,
body.cruisetalk-2.home .paging-navigation .page-numbers.next::before {
	font-size: 1.55rem;
	font-weight: 500;
	line-height: 1;
}

body.cruisetalk-2.home .paging-navigation .page-numbers.prev::before {
	content: "‹";
}

body.cruisetalk-2.home .paging-navigation .page-numbers.next::before {
	content: "›";
}


/* Home-page grid breakpoints. */
@media (max-width: 1100px) {
	body.cruisetalk-2.home .site-main {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	body.cruisetalk-2.home .ct-home-welcome__photo {
		display: none;
	}

	body.cruisetalk-2.home .ct-home-welcome {
		display: block;
		margin-bottom: 32px;
		padding: 24px 22px 26px;
	}

	body.cruisetalk-2.home .ct-home-welcome__body {
		margin-top: 1rem;
	}

	body.cruisetalk-2.home .ct-home-welcome__links {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.45rem;
		margin-top: 1rem;
	}

	body.cruisetalk-2.home .site-main {
		display: block;
	}

	/*
	 * Match the specificity of the GeneratePress stacked-container reset above.
	 * Without `.separate-containers` here, that reset wins and mobile cards
	 * visually touch even though this rule appears later.
	 */
	body.cruisetalk-2.home.separate-containers .site-main > article + article {
		margin-top: 32px;
	}

	body.cruisetalk-2.home .site-main > article:first-of-type .entry-title {
		font-size: clamp(2rem, 9vw, 2.65rem);
	}
}




/* ==========================================================================
   4B. Archive / collection pages
   ========================================================================== */

/*
 * Categories, taxonomies, author/date archives, and similar collection pages
 * share one visual language. The archive header establishes context; the grid
 * below is optimized for scanning.
 */
body.cruisetalk-2.archive .site-content {
	padding-top: clamp(24px, 3vw, 42px);
}

body.cruisetalk-2.archive .page-header {
	background: var(--ct-soft-warm);
	border: 1px solid var(--ct-border);
	border-radius: var(--ct-radius);
	box-shadow: var(--ct-shadow-soft);
	grid-column: 1 / -1;
	margin-bottom: 0;
	padding: clamp(26px, 4vw, 46px);
}

/*
 * Archive eyebrow is generated as a presentational label inside the full-width
 * archive panel so it cannot become a separate grid item.
 */
body.cruisetalk-2.archive .page-header::before {
	align-items: center;
	color: var(--ct-blue-deep);
	content: "Cruise Talk Collection";
	display: flex;
	font-size: 0.82rem;
	font-weight: 800;
	gap: 0.75rem;
	letter-spacing: 0.09em;
	line-height: 1.25;
	margin-bottom: 0.8rem;
	text-transform: uppercase;
}

body.cruisetalk-2.category .page-header::before {
	content: "Browse by Category";
}

body.cruisetalk-2.author .page-header::before {
	content: "Stories by Author";
}

/*
 * Author archives use the WordPress/GeneratePress avatar already supplied by
 * the user profile. Enlarge it enough to feel like an author portrait while
 * leaving the shared archive grid and pagination untouched.
 */
body.cruisetalk-2.author .page-header .avatar {
	border-radius: 50%;
	float: left;
	height: 112px;
	margin: 0 1.5rem 0.5rem 0;
	object-fit: cover;
	width: 112px;
}

@media (max-width: 600px) {
	body.cruisetalk-2.author .page-header .avatar {
		float: none;
		height: 96px;
		margin: 0 0 1rem;
		width: 96px;
	}
}

body.cruisetalk-2.date .page-header::before {
	content: "Stories from the Archive";
}

body.cruisetalk-2.archive .page-header::after {
	background: var(--ct-gold);
	content: "";
	display: none;
}

/* Gold rule is attached to the eyebrow text using a small pseudo-element. */
body.cruisetalk-2.archive .page-header .page-title::before,
body.cruisetalk-2.archive .page-header h1::before {
	content: none;
}

body.cruisetalk-2.archive .page-header h1,
body.cruisetalk-2.archive .page-header .page-title {
	color: var(--ct-blue-deep);
	font-size: clamp(2rem, 3.5vw, 3rem);
	line-height: 1.08;
	margin-bottom: 0;
	text-wrap: balance;
}

body.cruisetalk-2.archive .page-header .taxonomy-description,
body.cruisetalk-2.archive .page-header .archive-description {
	color: var(--ct-muted);
	font-size: 1.02em;
	line-height: 1.7;
	margin-top: 1rem;
	max-width: 900px;
}

body.cruisetalk-2.archive .page-header .taxonomy-description > :last-child,
body.cruisetalk-2.archive .page-header .archive-description > :last-child {
	margin-bottom: 0;
}

/* Three-column archive grid, with twelve stories per page. */
body.cruisetalk-2.archive .site-main {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: clamp(28px, 3vw, 42px);
	row-gap: clamp(32px, 3vw, 44px);
}

body.cruisetalk-2.archive .site-main > article {
	margin: 0;
	min-width: 0;
}

body.cruisetalk-2.archive .site-main > .page-header,
body.cruisetalk-2.archive .site-main > .paging-navigation,
body.cruisetalk-2.archive .site-main > .navigation {
	grid-column: 1 / -1;
}

/* Remove GeneratePress stacked-container spacing inside the archive grid. */
body.cruisetalk-2.archive.separate-containers .site-main > article + article {
	margin-top: 0;
}

body.cruisetalk-2.archive .site-main > article .inside-article {
	background: var(--ct-white);
	border: 1px solid var(--ct-border);
	border-top: 4px solid var(--ct-gold);
	border-radius: var(--ct-radius);
	box-shadow: var(--ct-shadow-soft);
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	padding: 0;
}

body.cruisetalk-2.archive .site-main > article .post-image {
	margin: 0;
	order: -1;
	width: 100%;
}

body.cruisetalk-2.archive .site-main > article .post-image a {
	display: block;
}

body.cruisetalk-2.archive .site-main > article .post-image img {
	aspect-ratio: 3 / 2;
	border-radius: 0;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

body.cruisetalk-2.archive .site-main > article .entry-header {
	padding: clamp(22px, 2.4vw, 30px) clamp(22px, 2.4vw, 30px) 0;
}

body.cruisetalk-2.archive .site-main > article .entry-title {
	font-size: clamp(1.35rem, 1.7vw, 1.68rem);
	line-height: 1.18;
	margin-bottom: 0.55rem;
	text-wrap: balance;
}

body.cruisetalk-2.archive .site-main > article .entry-summary {
	color: var(--ct-ink);
	flex: 1;
	font-size: 0.96em;
	line-height: 1.6;
	margin-top: 1rem;
	padding: 0 clamp(22px, 2.4vw, 30px);
}

body.cruisetalk-2.archive .site-main > article .entry-summary p:last-child {
	margin-bottom: 0;
}

body.cruisetalk-2.archive .site-main > article footer.entry-meta {
	border-top: 1px solid var(--ct-border);
	margin: 1.35rem clamp(22px, 2.4vw, 30px) 0;
	padding: 1rem 0 clamp(22px, 2.4vw, 30px);
}

body.cruisetalk-2.archive .comments-link {
	display: none;
}

body.cruisetalk-2.archive footer.entry-meta .cat-links {
	display: inline;
}

body.cruisetalk-2.archive footer.entry-meta .cat-links .gp-icon {
	color: var(--ct-blue);
	display: inline-flex;
	margin-right: 0.45rem;
	vertical-align: -0.12em;
}

body.cruisetalk-2.archive footer.entry-meta .cat-links .gp-icon svg {
	fill: currentColor;
}

body.cruisetalk-2.archive footer.entry-meta .cat-links a {
	color: var(--ct-blue-deep);
	font-weight: 650;
	text-decoration: none;
}

body.cruisetalk-2.archive footer.entry-meta .cat-links a:hover,
body.cruisetalk-2.archive footer.entry-meta .cat-links a:focus {
	color: var(--ct-blue-bright);
}

body.cruisetalk-2.archive .ct-read-more {
	color: var(--ct-blue-deep);
	font-weight: 700;
	white-space: nowrap;
}

body.cruisetalk-2.archive .ct-read-more:hover,
body.cruisetalk-2.archive .ct-read-more:focus {
	color: var(--ct-blue-bright);
}

/*
 * Archive pagination intentionally matches the home-page control so users
 * learn one navigation pattern across the site.
 */
body.cruisetalk-2.archive .paging-navigation {
	background: var(--ct-soft-warm);
	border: 1px solid var(--ct-border);
	border-radius: var(--ct-radius);
	box-shadow: var(--ct-shadow-soft);
	margin-top: clamp(4px, 1vw, 12px);
	padding: clamp(16px, 2vw, 22px);
}

body.cruisetalk-2.archive .paging-navigation .nav-links {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
}

body.cruisetalk-2.archive .paging-navigation .page-numbers {
	align-items: center;
	background: var(--ct-white);
	border: 1px solid var(--ct-border);
	border-radius: var(--ct-radius-sm);
	color: var(--ct-blue-deep);
	display: inline-flex;
	font-weight: 750;
	height: 42px;
	justify-content: center;
	line-height: 1;
	min-width: 42px;
	padding: 0 0.8rem;
	text-decoration: none;
}

body.cruisetalk-2.archive .paging-navigation a.page-numbers:hover,
body.cruisetalk-2.archive .paging-navigation a.page-numbers:focus {
	background: var(--ct-soft-blue);
	border-color: var(--ct-blue);
	color: var(--ct-navy);
}

body.cruisetalk-2.archive .paging-navigation .page-numbers.current {
	background: var(--ct-blue-deep);
	border-color: var(--ct-blue-deep);
	color: var(--ct-white);
}

body.cruisetalk-2.archive .paging-navigation .page-numbers.dots {
	background: transparent;
	border-color: transparent;
	min-width: auto;
	padding-left: 0.3rem;
	padding-right: 0.3rem;
}

body.cruisetalk-2.archive .paging-navigation .page-numbers.prev,
body.cruisetalk-2.archive .paging-navigation .page-numbers.next {
	font-size: 0;
	padding: 0;
	width: 42px;
}

body.cruisetalk-2.archive .paging-navigation .page-numbers.prev::before,
body.cruisetalk-2.archive .paging-navigation .page-numbers.next::before {
	font-size: 1.55rem;
	font-weight: 500;
	line-height: 1;
}

body.cruisetalk-2.archive .paging-navigation .page-numbers.prev::before {
	content: "‹";
}

body.cruisetalk-2.archive .paging-navigation .page-numbers.next::before {
	content: "›";
}

@media (max-width: 1100px) {
	body.cruisetalk-2.archive .site-main {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	body.cruisetalk-2.archive .site-main {
		display: block;
	}

	/*
	 * Once the archive grid stacks, CSS grid row-gap no longer separates the
	 * archive header from the first card or one card from the next. Restore both
	 * relationships explicitly for mobile.
	 */
	body.cruisetalk-2.archive.separate-containers .site-main > .page-header + article,
	body.cruisetalk-2.archive.separate-containers .site-main > article + article {
		margin-top: 32px;
	}

	body.cruisetalk-2.archive .page-header {
		padding: 24px 22px;
	}
}


/* ========================================================================== 
   5. Buttons & reusable editorial components
   ========================================================================== */

body.cruisetalk-2 .wp-block-button__link,
body.cruisetalk-2 .wp-element-button,
body.cruisetalk-2 button:not(.menu-toggle),
body.cruisetalk-2 input[type="button"],
body.cruisetalk-2 input[type="reset"],
body.cruisetalk-2 input[type="submit"] {
	background: var(--ct-blue-deep);
	border: 1px solid var(--ct-blue-deep);
	border-radius: var(--ct-radius-sm);
	color: var(--ct-white);
	font-family: var(--ct-font-sans);
	font-weight: 700;
	padding: 0.72em 1.15em;
	text-decoration: none;
}

body.cruisetalk-2 .wp-block-button__link:hover,
body.cruisetalk-2 .wp-block-button__link:focus,
body.cruisetalk-2 .wp-element-button:hover,
body.cruisetalk-2 .wp-element-button:focus,
body.cruisetalk-2 button:not(.menu-toggle):hover,
body.cruisetalk-2 button:not(.menu-toggle):focus,
body.cruisetalk-2 input[type="button"]:hover,
body.cruisetalk-2 input[type="reset"]:hover,
body.cruisetalk-2 input[type="submit"]:hover {
	background: var(--ct-blue-bright);
	border-color: var(--ct-blue-bright);
	color: var(--ct-white);
}

/* Eyebrow: use above a major section heading, not above every heading. */
body.cruisetalk-2 .ct-eyebrow {
	align-items: center;
	color: var(--ct-blue-deep);
	display: flex;
	font-size: 0.82rem;
	font-weight: 800;
	gap: 0.75rem;
	letter-spacing: 0.09em;
	line-height: 1.25;
	margin-bottom: 0.8rem;
	text-transform: uppercase;
}

body.cruisetalk-2 .ct-eyebrow::before {
	background: var(--ct-gold);
	content: "";
	flex: 0 0 42px;
	height: 3px;
}

/* Light panel: for genuinely discrete information, not every section. */
body.cruisetalk-2 .ct-panel {
	background: var(--ct-white);
	border: 1px solid var(--ct-border);
	border-top: 4px solid var(--ct-gold);
	border-radius: var(--ct-radius);
	box-shadow: var(--ct-shadow-soft);
	padding: clamp(24px, 3vw, 38px);
}

/* Dark callout: intentionally strong so it should remain occasional. */
body.cruisetalk-2 .ct-callout {
	background: var(--ct-navy);
	border-top: 5px solid var(--ct-gold);
	border-radius: var(--ct-radius);
	color: rgba(255, 255, 255, 0.9);
	padding: clamp(28px, 4vw, 52px);
}

body.cruisetalk-2 .ct-callout h2,
body.cruisetalk-2 .ct-callout h3,
body.cruisetalk-2 .ct-callout h4,
body.cruisetalk-2 .ct-callout a {
	color: var(--ct-white);
}

body.cruisetalk-2 .ct-callout .ct-eyebrow {
	color: var(--ct-gold);
}

/* Badge shell for future inline SVG icons. */
body.cruisetalk-2 .ct-icon-badge {
	align-items: center;
	background: var(--ct-soft-blue);
	border: 1px solid var(--ct-border);
	border-radius: 50%;
	color: var(--ct-blue-deep);
	display: inline-flex;
	height: 46px;
	justify-content: center;
	width: 46px;
}

body.cruisetalk-2 .ct-icon-badge svg {
	height: 21px;
	width: 21px;
}


/* ========================================================================== 
   6. Footer
   ========================================================================== */

body.cruisetalk-2 .site-footer,
body.cruisetalk-2 .footer-widgets,
body.cruisetalk-2 .site-info {
	background: var(--ct-navy);
	color: rgba(255, 255, 255, 0.82);
}

body.cruisetalk-2 .footer-widgets-container,
body.cruisetalk-2 .site-info .inside-site-info {
	padding-left: var(--ct-gutter);
	padding-right: var(--ct-gutter);
}

body.cruisetalk-2 .site-footer h2,
body.cruisetalk-2 .site-footer h3,
body.cruisetalk-2 .site-footer h4,
body.cruisetalk-2 .site-footer .widget-title {
	color: var(--ct-white);
}

body.cruisetalk-2 .site-footer a {
	color: var(--ct-white);
}

body.cruisetalk-2 .site-footer a:hover,
body.cruisetalk-2 .site-footer a:focus {
	color: var(--ct-gold);
}


/*
 * Legacy footer widgets are intentionally retired in Cruise Talk 2.0.
 * The compact GeneratePress site-info/footer remains available while we
 * design a purpose-built footer later.
 */
body.cruisetalk-2 .footer-widgets {
	display: none;
}


/* ========================================================================== 
   7. Responsive adjustments
   ========================================================================== */

@media (max-width: 768px) {
	body.cruisetalk-2 {
		font-size: 17px;
	}

	body.cruisetalk-2 .site-content {
		padding-left: 20px;
		padding-right: 20px;
	}

	body.cruisetalk-2 .inside-header,
	body.cruisetalk-2 .main-navigation .inside-navigation,
	body.cruisetalk-2 .footer-widgets-container,
	body.cruisetalk-2 .site-info .inside-site-info {
		padding-left: 20px;
		padding-right: 20px;
	}

	body.cruisetalk-2 .ct-eyebrow::before {
		flex-basis: 30px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	body.cruisetalk-2 *,
	body.cruisetalk-2 *::before,
	body.cruisetalk-2 *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}



/*
 * The lead article alone owns the header-to-content vertical gap.
 * GeneratePress/site-content top padding is removed on the home page so
 * two independent spacing rules do not stack.
 */
body.cruisetalk-2.home .site-content {
	padding-top: 0;
}



body.cruisetalk-2 .site-info {
	font-size: 0.94rem;
}

/*
 * Keep footer privacy controls compact, wrap-safe, and visually consistent.
 * The Hu-manity manual revoke action is exposed as a real button so it stays
 * keyboard-accessible while looking like the adjacent Privacy Policy link.
 */
body.cruisetalk-2 .ct-footer-bar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.28rem 0.5rem;
}

body.cruisetalk-2 .ct-footer-item + .ct-footer-item::before {
	content: "\2022";
	display: inline-block;
	margin-right: 0.5rem;
	opacity: 0.7;
}

body.cruisetalk-2 .ct-footer-privacy-choices {
	appearance: none;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: var(--ct-white);
	cursor: pointer;
	font: inherit;
	line-height: inherit;
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

body.cruisetalk-2 .ct-footer-privacy-choices:hover,
body.cruisetalk-2 .ct-footer-privacy-choices:focus {
	background: transparent;
	color: var(--ct-gold);
}

body.cruisetalk-2 .ct-footer-privacy-choices:focus-visible {
	outline: 2px solid var(--ct-gold);
	outline-offset: 3px;
}

/*
 * On phones, keep Privacy Choices on a deliberate second footer row and
 * suppress the separator that would otherwise appear as an orphaned bullet.
 * Wider layouts retain the normal inline separators.
 */
@media (max-width: 600px) {
	body.cruisetalk-2 .ct-footer-privacy-item {
		flex-basis: 100%;
	}

	body.cruisetalk-2 .ct-footer-item + .ct-footer-privacy-item::before {
		content: none;
		display: none;
		margin-right: 0;
	}
}


body.cruisetalk-2.archive .page-header {
	border-top: 4px solid var(--ct-gold);
}


body.cruisetalk-2.archive .site-main > .ct-archive-eyebrow {
	display: none;
}



/* ==========================================================================
   3A. Site identity
   ========================================================================== */

/*
 * GeneratePress uses .main-title for the site title. Control it directly so
 * "Cruise Talk" remains consistent on the home page and internal pages.
 */
body.cruisetalk-2 .main-title {
	font-family: var(--ct-font-sans);
	font-size: clamp(2.8rem, 4vw, 3.7rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1;
	margin: 0;
}

body.cruisetalk-2 .main-title a,
body.cruisetalk-2 .main-title a:hover,
body.cruisetalk-2 .main-title a:focus {
	color: var(--ct-blue-bright);
	text-decoration: none;
}

/*
 * The WordPress Site Tagline / Description is intentionally quiet. It adds
 * identity without competing with the site name or primary navigation.
 */
body.cruisetalk-2 .site-description {
	color: var(--ct-muted);
	font-family: var(--ct-font-sans);
	font-size: clamp(0.86rem, 1vw, 0.98rem);
	font-weight: 500;
	letter-spacing: 0.015em;
	line-height: 1.35;
	margin-top: 0.35rem;
	max-width: 28rem;
}

@media (max-width: 600px) {
	body.cruisetalk-2 .main-title {
		font-size: clamp(2.25rem, 11vw, 2.8rem);
	}

	body.cruisetalk-2 .site-description {
		font-size: 0.82rem;
		margin-top: 0.25rem;
	}
}


/* Optical alignment: visually align the small tagline with the large title. */
body.cruisetalk-2 .site-description {
	margin-left: 4px;
}





/* ==========================================================================
   4C. Standard WordPress Page foundation
   ========================================================================== */

/*
 * Cruise Talk 2.0 Pages are intentionally editorial and lightly styled.
 * Native WordPress content gets a calm reading measure while visual and
 * structural blocks can breathe wider. Legacy custom-HTML wrappers are not
 * forcibly narrowed so old Pages can be migrated deliberately.
 */
body.cruisetalk-2.page:not(.home) .site-content {
	padding-top: clamp(28px, 2.5vw, 40px);
	padding-bottom: clamp(18px, 2vw, 28px);
}

body.cruisetalk-2.page:not(.home) .site-main {
	margin-bottom: 0;
	max-width: 100%;
}

body.cruisetalk-2.page:not(.home) .content-area,
body.cruisetalk-2.page:not(.home) article.page {
	margin-bottom: 0;
}

body.cruisetalk-2.page:not(.home) article.page .inside-article {
	background: transparent;
	padding: 0;
}

/*
 * GeneratePress emits the standard Page image before #page on this site.
 * Hide only that temporary body-level position; page-layout.js moves the same
 * node below the title, where this selector no longer matches.
 */
body.cruisetalk-2.page:not(.home) > .featured-image.page-header-image {
	display: none;
}

/* Simple Page title: no box, no automatic eyebrow. */
body.cruisetalk-2.page:not(.home) .entry-header {
	margin-bottom: 0;
	margin-left: auto;
	margin-right: auto;
	max-width: 820px;
	padding-bottom: 10px;
	text-align: left;
}

body.cruisetalk-2.page:not(.home) article.page.has-post-thumbnail .entry-header {
	padding-bottom: clamp(22px, 2vw, 28px);
}

body.cruisetalk-2.page:not(.home) .entry-title {
	color: var(--ct-blue-deep);
	font-size: clamp(2.35rem, 4vw, 3.65rem);
	letter-spacing: -0.03em;
	line-height: 1.06;
	margin: 0;
	text-wrap: balance;
}

/* Page body typography. */
body.cruisetalk-2.page:not(.home) .entry-content {
	color: var(--ct-ink);
	font-size: clamp(1.02rem, 0.35vw + 0.96rem, 1.10rem);
	line-height: 1.76;
	margin-block-start: 0;
	margin-top: 0;
}

body.cruisetalk-2.page:not(.home) .entry-header + .entry-content {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}

/*
 * Native editorial blocks use the reading column. We target known block
 * output instead of using a blanket direct-child selector so legacy custom
 * HTML is left alone.
 */
body.cruisetalk-2.page:not(.home) .entry-content > p,
body.cruisetalk-2.page:not(.home) .entry-content > h2,
body.cruisetalk-2.page:not(.home) .entry-content > h3,
body.cruisetalk-2.page:not(.home) .entry-content > h4,
body.cruisetalk-2.page:not(.home) .entry-content > h5,
body.cruisetalk-2.page:not(.home) .entry-content > h6,
body.cruisetalk-2.page:not(.home) .entry-content > ul,
body.cruisetalk-2.page:not(.home) .entry-content > ol,
body.cruisetalk-2.page:not(.home) .entry-content > blockquote,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-buttons,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-separator {
	margin-left: auto;
	margin-right: auto;
	max-width: 820px;
}

/* Visual / structural blocks get a wider canvas. */
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-image,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-gallery,
body.cruisetalk-2.page:not(.home) .entry-content > .gallery,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-columns,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-media-text,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-cover,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-group,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-table,
body.cruisetalk-2.page:not(.home) .entry-content > .alignwide {
	margin-left: auto;
	margin-right: auto;
	max-width: 1120px;
}

body.cruisetalk-2.page:not(.home) .entry-content > .alignfull {
	margin-left: auto;
	margin-right: auto;
	max-width: none;
	width: 100%;
}

/*
 * The first native content block begins the Page story; it should not inherit
 * the same top margin used to separate later sections.
 */
body.cruisetalk-2.page:not(.home) .entry-content > h2:first-child,
body.cruisetalk-2.page:not(.home) .entry-content > h3:first-child,
body.cruisetalk-2.page:not(.home) .entry-content > h4:first-child,
body.cruisetalk-2.page:not(.home) .entry-content > p:first-child,
body.cruisetalk-2.page:not(.home) .entry-content > ul:first-child,
body.cruisetalk-2.page:not(.home) .entry-content > ol:first-child {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}

/*
 * Structural siblings need a little separation when Gutenberg's native
 * margins collapse visually. In particular, don't let a wide image run
 * directly into a following columns block.
 */
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-image + .wp-block-columns,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-gallery + .wp-block-columns,
body.cruisetalk-2.page:not(.home) .entry-content > .gallery + .wp-block-columns {
	margin-top: 28px;
}

/* Editorial rhythm. */
body.cruisetalk-2.page:not(.home) .entry-content p {
	margin-bottom: 1.4em;
}

body.cruisetalk-2.page:not(.home) .entry-content h2,
body.cruisetalk-2.page:not(.home) .entry-content h3,
body.cruisetalk-2.page:not(.home) .entry-content h4,
body.cruisetalk-2.page:not(.home) .entry-content h5 {
	color: var(--ct-blue-deep);
	text-wrap: balance;
}

/*
 * Standard Page heading rhythm. Major sections get more separation; deeper
 * levels stay progressively closer to the content they introduce.
 */
body.cruisetalk-2.page:not(.home) .entry-content h2 {
	font-size: clamp(1.75rem, 2.4vw, 2.3rem);
	line-height: 1.15;
	margin-bottom: 14px;
	margin-top: 38px;
}

body.cruisetalk-2.page:not(.home) .entry-content h3 {
	font-size: clamp(1.35rem, 1.9vw, 1.72rem);
	line-height: 1.2;
	margin-bottom: 11px;
	margin-top: 30px;
}

body.cruisetalk-2.page:not(.home) .entry-content h4 {
	font-size: clamp(1.12rem, 1.4vw, 1.28rem);
	line-height: 1.25;
	margin-bottom: 9px;
	margin-top: 24px;
}

body.cruisetalk-2.page:not(.home) .entry-content h5 {
	font-size: clamp(1rem, 1.15vw, 1.12rem);
	line-height: 1.3;
	margin-bottom: 7px;
	margin-top: 20px;
}

body.cruisetalk-2.page:not(.home) .entry-content ul,
body.cruisetalk-2.page:not(.home) .entry-content ol {
	margin-bottom: 1.5em;
	padding-left: 1.45em;
}

body.cruisetalk-2.page:not(.home) .entry-content li + li {
	margin-top: 0.4em;
}

body.cruisetalk-2.page:not(.home) .entry-content a:not(.wp-block-button__link):not(.wp-element-button) {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.16em;
}

/*
 * Keep the current button-to-divider breathing room, but pull the next prose
 * block closer to the divider.
 */
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-separator {
	margin-block-end: 0 !important;
	margin-bottom: 0 !important;
	margin-top: 2.35rem;
}

body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-separator + * {
	margin-block-start: 18px !important;
	margin-top: 18px !important;
}

body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-separator + .wp-block-group {
	padding-block-start: 0 !important;
	padding-top: 0 !important;
}

body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-separator + .wp-block-group > :first-child,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-separator + .wp-block-group > .wp-block-group__inner-container,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-separator + .wp-block-group .wp-block-group:first-child,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-separator + .wp-block-group .wp-block-group__inner-container > :first-child,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-separator + .wp-block-group p:first-child {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
	padding-block-start: 0 !important;
	padding-top: 0 !important;
}

/* Keep the existing restrained gold-rule quote treatment, just tune spacing. */
body.cruisetalk-2.page:not(.home) .entry-content blockquote {
	margin-bottom: 2rem;
	margin-top: 2rem;
}

/* Native images stay subtle and photography-forward. */
body.cruisetalk-2.page:not(.home) .entry-content img {
	height: auto;
}

body.cruisetalk-2.page:not(.home) .wp-caption,
body.cruisetalk-2.page:not(.home) figcaption {
	color: var(--ct-muted);
	font-size: 0.84rem;
	line-height: 1.5;
	margin-top: 0.65rem;
	text-align: center;
}

/*
 * Background Groups remain optional callouts, not a default Page language.
 * Respect the editor-selected colors; only add a little structural polish.
 */
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-group.has-background {
	border-radius: var(--ct-radius-sm);
	overflow: hidden;
}

/* Featured image, when a Page intentionally has one. */
body.cruisetalk-2.page:not(.home) article.page .ct-page-featured-image {
	display: block;
}

body.cruisetalk-2.page:not(.home) article.page .featured-image,
body.cruisetalk-2.page:not(.home) article.page .post-image,
body.cruisetalk-2.page:not(.home) article.page .page-header-image-single {
	margin: 0 auto clamp(26px, 2.25vw, 32px);
	max-width: 820px;
	width: 100%;
}

body.cruisetalk-2.page:not(.home) .featured-image img,
body.cruisetalk-2.page:not(.home) .post-image img,
body.cruisetalk-2.page:not(.home) .page-header-image-single img {
	display: block;
	height: auto;
	width: 100%;
}

/* Empty terminal paragraph blocks are content noise, not intentional spacing. */
body.cruisetalk-2.page:not(.home) .entry-content > p:empty:last-child {
	display: none;
}

/*
 * A final Gutenberg Group can retain a last-child paragraph/list margin even
 * when the outer Group itself has zero margin and padding. Remove that internal
 * trailing margin without changing the normal Page/footer gutter.
 */
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-group:last-child p:last-child,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-group:last-child ul:last-child,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-group:last-child ol:last-child,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-group:last-child blockquote:last-child,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-group:last-child .wp-block-group:last-child,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-group:last-child .wp-block-group__inner-container > :last-child {
	margin-block-end: 0 !important;
	margin-bottom: 0 !important;
}

/* Don't let the last native content block create a second bottom gutter. */
body.cruisetalk-2.page:not(.home) .entry-content > p:last-child,
body.cruisetalk-2.page:not(.home) .entry-content > ul:last-child,
body.cruisetalk-2.page:not(.home) .entry-content > ol:last-child,
body.cruisetalk-2.page:not(.home) .entry-content > blockquote:last-child,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-group:last-child,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-columns:last-child,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-image:last-child,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-gallery:last-child,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-buttons:last-child,
body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-separator:last-child {
	margin-bottom: 0;
}

@media (max-width: 700px) {
	body.cruisetalk-2.page:not(.home) .site-content {
		padding-top: 22px;
		padding-bottom: 22px;
	}

	body.cruisetalk-2.page:not(.home) .entry-header {
		padding-bottom: 8px;
	}

	body.cruisetalk-2.page:not(.home) article.page.has-post-thumbnail .entry-header {
		padding-bottom: 20px;
	}

	body.cruisetalk-2.page:not(.home) article.page .featured-image,
	body.cruisetalk-2.page:not(.home) article.page .post-image,
	body.cruisetalk-2.page:not(.home) article.page .page-header-image-single {
		margin-bottom: 22px;
	}

	body.cruisetalk-2.page:not(.home) .entry-title {
		font-size: clamp(2rem, 10vw, 2.65rem);
	}

	body.cruisetalk-2.page:not(.home) .entry-content {
		line-height: 1.72;
	}
}


/* ==========================================================================
   4C. Single-post reading experience
   ========================================================================== */

/*
 * Single posts use a broad page canvas but a controlled reading measure.
 * The article itself remains centered and calm; media can break wider.
 */
body.cruisetalk-2.single-post .site-content {
	padding-top: clamp(26px, 3vw, 44px);
}

body.cruisetalk-2.single-post .site-main {
	max-width: 100%;
}

body.cruisetalk-2.single-post article.post .inside-article {
	background: transparent;
	padding: 0;
}

/* ------------------------------
   Post header
   ------------------------------ */

body.cruisetalk-2.single-post .entry-header {
	margin-left: calc((100% - min(820px, 100%)) / 2);
	margin-right: auto;
	max-width: min(1020px, calc(100% - ((100% - min(820px, 100%)) / 2)));
	padding-bottom: clamp(18px, 2.2vw, 28px);
	text-align: left;
}

body.cruisetalk-2.single-post .entry-title {
	color: var(--ct-blue-deep);
	font-size: clamp(2.25rem, 4vw, 3.65rem);
	letter-spacing: -0.025em;
	line-height: 1.06;
	margin-bottom: 0.8rem;
	text-wrap: balance;
}

body.cruisetalk-2.single-post .entry-meta {
	color: var(--ct-muted);
	font-size: 0.9rem;
	line-height: 1.5;
}

body.cruisetalk-2.single-post .entry-meta a {
	color: var(--ct-blue);
	font-weight: 650;
	text-decoration: none;
}

body.cruisetalk-2.single-post .entry-meta a:hover,
body.cruisetalk-2.single-post .entry-meta a:focus {
	color: var(--ct-blue-deep);
	text-decoration: underline;
}

/* ------------------------------
   Featured image
   ------------------------------ */

body.cruisetalk-2.single-post .post-image {
	margin: 0 auto clamp(28px, 3.2vw, 42px);
	max-width: 1020px;
}

body.cruisetalk-2.single-post .post-image img {
	border-radius: var(--ct-radius);
	display: block;
	height: auto;
	width: 100%;
}

/* ------------------------------
   Reading measure
   ------------------------------ */

body.cruisetalk-2.single-post .entry-content {
	color: var(--ct-ink);
	font-size: clamp(1.02rem, 0.4vw + 0.96rem, 1.12rem);
	line-height: 1.78;
	margin-top: 0;
}

/*
 * Default direct children use the reading column.
 * Selected media-oriented blocks are allowed to break wider.
 */
body.cruisetalk-2.single-post .entry-content > * {
	margin-left: auto;
	margin-right: auto;
	max-width: 820px;
}

body.cruisetalk-2.single-post .entry-content > figure,
body.cruisetalk-2.single-post .entry-content > .wp-block-image,
body.cruisetalk-2.single-post .entry-content > .wp-block-gallery,
body.cruisetalk-2.single-post .entry-content > .gallery,
body.cruisetalk-2.single-post .entry-content > .wp-block-cover,
body.cruisetalk-2.single-post .entry-content > .wp-block-media-text {
	max-width: 1120px;
}

/* Older/classic posts often wrap a standalone image inside a paragraph. */
@supports selector(p:has(img)) {
	body.cruisetalk-2.single-post .entry-content > p:has(> img:only-child),
	body.cruisetalk-2.single-post .entry-content > p:has(> a:only-child > img:only-child) {
		max-width: 1120px;
	}
}

/* ------------------------------
   Body typography
   ------------------------------ */

body.cruisetalk-2.single-post .entry-content p {
	margin-bottom: 1.45em;
}

body.cruisetalk-2.single-post .entry-content h2,
body.cruisetalk-2.single-post .entry-content h3,
body.cruisetalk-2.single-post .entry-content h4 {
	color: var(--ct-blue-deep);
	margin-top: 1.8em;
	text-wrap: balance;
}

body.cruisetalk-2.single-post .entry-content h2 {
	font-size: clamp(1.7rem, 2.5vw, 2.25rem);
	line-height: 1.15;
	margin-bottom: 0.75em;
}

body.cruisetalk-2.single-post .entry-content h3 {
	font-size: clamp(1.35rem, 2vw, 1.75rem);
	line-height: 1.2;
	margin-bottom: 0.65em;
}

body.cruisetalk-2.single-post .entry-content ul,
body.cruisetalk-2.single-post .entry-content ol {
	margin-bottom: 1.5em;
	padding-left: 1.4em;
}

body.cruisetalk-2.single-post .entry-content li + li {
	margin-top: 0.45em;
}

body.cruisetalk-2.single-post .entry-content a {
	color: var(--ct-blue-deep);
	font-weight: 650;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

body.cruisetalk-2.single-post .entry-content a:hover,
body.cruisetalk-2.single-post .entry-content a:focus {
	color: var(--ct-blue-bright);
}

body.cruisetalk-2.single-post .entry-content blockquote {
	background: var(--ct-soft-warm);
	border-left: 4px solid var(--ct-gold);
	border-radius: 0 var(--ct-radius-sm) var(--ct-radius-sm) 0;
	color: var(--ct-navy);
	font-size: 1.08em;
	margin-bottom: 1.7em;
	margin-top: 1.7em;
	padding: 1.15em 1.35em;
}

body.cruisetalk-2.single-post .entry-content blockquote > :last-child {
	margin-bottom: 0;
}

/* ------------------------------
   Inline / body images
   ------------------------------ */

body.cruisetalk-2.single-post .entry-content img {
	border-radius: var(--ct-radius-sm);
	height: auto;
}

body.cruisetalk-2.single-post .wp-caption,
body.cruisetalk-2.single-post figcaption {
	color: var(--ct-muted);
	font-size: 0.84rem;
	line-height: 1.5;
	margin-top: 0.65rem;
	text-align: center;
}

/* ------------------------------
   Post footer metadata
   ------------------------------ */

body.cruisetalk-2.single-post article.post > .inside-article > footer.entry-meta {
	border-top: 1px solid var(--ct-border);
	color: var(--ct-muted);
	margin: clamp(38px, 5vw, 64px) auto 0;
	max-width: 820px;
	padding-top: 1.2rem;
}

body.cruisetalk-2.single-post article.post > .inside-article > footer.entry-meta .cat-links {
	display: inline;
}

body.cruisetalk-2.single-post article.post > .inside-article > footer.entry-meta .cat-links .gp-icon {
	color: var(--ct-blue);
	display: inline-flex;
	margin-right: 0.45rem;
	vertical-align: -0.12em;
}

body.cruisetalk-2.single-post article.post > .inside-article > footer.entry-meta .cat-links .gp-icon svg {
	fill: currentColor;
}

body.cruisetalk-2.single-post article.post > .inside-article > footer.entry-meta a {
	color: var(--ct-blue-deep);
	font-weight: 650;
	text-decoration: none;
}

body.cruisetalk-2.single-post article.post > .inside-article > footer.entry-meta a:hover,
body.cruisetalk-2.single-post article.post > .inside-article > footer.entry-meta a:focus {
	color: var(--ct-blue-bright);
}

/* Tags are not part of the Cruise Talk 2.0 content model. */
body.cruisetalk-2.single-post .tags-links {
	display: none;
}

/* ------------------------------
   Previous / next article navigation
   ------------------------------ */

body.cruisetalk-2.single-post .post-navigation {
	background: var(--ct-soft-warm);
	border: 1px solid var(--ct-border);
	border-radius: var(--ct-radius);
	box-shadow: var(--ct-shadow-soft);
	margin: clamp(34px, 4vw, 52px) auto 0;
	max-width: 1120px;
	padding: 0;
	overflow: hidden;
}

body.cruisetalk-2.single-post .post-navigation .nav-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.cruisetalk-2.single-post .post-navigation .nav-previous,
body.cruisetalk-2.single-post .post-navigation .nav-next {
	align-items: center;
	display: flex;
	justify-content: center;
	min-width: 0;
	padding: clamp(26px, 3vw, 38px) clamp(22px, 3vw, 34px);
	text-align: center;
}

body.cruisetalk-2.single-post .post-navigation .nav-next {
	border-left: 1px solid var(--ct-border);
}

/*
 * The small directional label is centered and visually attached to the
 * post-title link beneath it. Long titles are allowed to wrap naturally.
 */
body.cruisetalk-2.single-post .post-navigation .nav-previous,
body.cruisetalk-2.single-post .post-navigation .nav-next {
	position: relative;
}

body.cruisetalk-2.single-post .post-navigation .nav-previous::before,
body.cruisetalk-2.single-post .post-navigation .nav-next::before {
	color: var(--ct-muted);
	display: block;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.2;
	position: absolute;
	top: clamp(22px, 2.6vw, 30px);
	text-transform: uppercase;
}

body.cruisetalk-2.single-post .post-navigation .nav-previous::before {
	content: "‹  Previous story";
}

body.cruisetalk-2.single-post .post-navigation .nav-next::before {
	content: "Next story  ›";
}

body.cruisetalk-2.single-post .post-navigation a {
	color: var(--ct-blue-deep);
	display: block;
	font-weight: 750;
	line-height: 1.35;
	margin-top: 1.9rem;
	max-width: 28rem;
	text-decoration: none;
	text-wrap: balance;
}

body.cruisetalk-2.single-post .post-navigation a:hover,
body.cruisetalk-2.single-post .post-navigation a:focus {
	color: var(--ct-blue-bright);
}

body.cruisetalk-2.single-post .post-navigation .gp-icon {
	display: none;
}

/* ------------------------------
   Responsive
   ------------------------------ */

@media (max-width: 700px) {
	body.cruisetalk-2.single-post .entry-title {
		font-size: clamp(2rem, 10vw, 2.7rem);
	}

	body.cruisetalk-2.single-post .entry-content {
		font-size: 1rem;
		line-height: 1.72;
	}

	body.cruisetalk-2.single-post .post-navigation .nav-links {
		grid-template-columns: 1fr;
	}

	body.cruisetalk-2.single-post .post-navigation .nav-next {
		border-top: 1px solid var(--ct-border);
		padding-top: 1rem;
		text-align: left;
	}
}


@media (max-width: 860px) {
	body.cruisetalk-2.single-post .entry-header {
		margin-left: 0;
		max-width: 100%;
	}
}


/* Cruise Talk 2.0 does not display a comments UI. */
body.cruisetalk-2 .comments-area,
body.cruisetalk-2 #comments {
	display: none;
}



@media (max-width: 700px) {
	body.cruisetalk-2.single-post .post-navigation .nav-links {
		grid-template-columns: 1fr;
	}

	body.cruisetalk-2.single-post .post-navigation .nav-next {
		border-left: 0;
		border-top: 1px solid var(--ct-border);
	}

	body.cruisetalk-2.single-post .post-navigation .nav-previous,
	body.cruisetalk-2.single-post .post-navigation .nav-next {
		padding: 30px 22px 28px;
	}

	body.cruisetalk-2.single-post .post-navigation .nav-previous::before,
	body.cruisetalk-2.single-post .post-navigation .nav-next::before {
		top: 22px;
	}
}



/* ==========================================================================
   4D. Single-post navigation final layout
   ========================================================================== */

/*
 * Cruise Talk titles tend to be long. A centered stacked previous/next
 * treatment gives each title enough horizontal room and avoids awkward
 * half-width wrapping.
 */
body.cruisetalk-2.single-post .post-navigation {
	padding: clamp(20px, 2.5vw, 28px);
}

body.cruisetalk-2.single-post .post-navigation .nav-links {
	display: block;
}

body.cruisetalk-2.single-post .post-navigation .nav-previous,
body.cruisetalk-2.single-post .post-navigation .nav-next {
	align-items: center;
	border: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 0;
	position: relative;
	text-align: center;
}

body.cruisetalk-2.single-post .post-navigation .nav-next {
	border-left: 0;
	margin-top: clamp(22px, 2.5vw, 30px);
	padding-left: 0;
}

body.cruisetalk-2.single-post .post-navigation .nav-previous::before,
body.cruisetalk-2.single-post .post-navigation .nav-next::before {
	color: var(--ct-muted);
	display: block;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.2;
	margin-bottom: 0.4rem;
	position: static;
	text-transform: uppercase;
}

body.cruisetalk-2.single-post .post-navigation .nav-previous::before {
	content: "‹  Previous story";
}

body.cruisetalk-2.single-post .post-navigation .nav-next::before {
	content: "Next story  ›";
}

body.cruisetalk-2.single-post .post-navigation a {
	margin-top: 0;
	max-width: 980px;
	text-align: center;
	text-wrap: balance;
}

@media (max-width: 700px) {
	body.cruisetalk-2.single-post .post-navigation {
		padding: 20px 18px;
	}

	body.cruisetalk-2.single-post .post-navigation .nav-next {
		border-top: 1px solid var(--ct-border);
		margin-top: 20px;
		padding-top: 20px;
	}
}



/* ==========================================================================
   4E. Cruise Talk galleries
   ========================================================================== */

/*
 * Galleries are repeatable editorial components inside a post:
 * prose -> gallery -> prose -> single image -> gallery, etc.
 *
 * New native WordPress galleries and legacy SimpLy justified galleries share
 * the same Cruise Talk front-end presentation.
 */
body.cruisetalk-2:is(.single-post, .page) .entry-content > .wp-block-gallery,
body.cruisetalk-2:is(.single-post, .page) .entry-content > .wp-block-pgcsimplygalleryblock-justified,
body.cruisetalk-2:is(.single-post, .page) .entry-content > .gallery {
	max-width: 1200px;
	margin-bottom: clamp(30px, 4vw, 48px);
	margin-top: clamp(24px, 3vw, 38px);
}

/* The JS layout engine applies explicit dimensions to each item. */
body.cruisetalk-2:is(.single-post, .page) .ct-justified-gallery {
	align-items: flex-start;
	display: flex !important;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: flex-start;
	width: 100%;
}

body.cruisetalk-2:is(.single-post, .page) .ct-justified-gallery > .wp-block-image,
body.cruisetalk-2:is(.single-post, .page) .ct-justified-gallery > .blocks-gallery-item,
body.cruisetalk-2:is(.single-post, .page) .ct-justified-gallery > .sgb-item,
body.cruisetalk-2:is(.single-post, .page) .ct-justified-gallery > .gallery-item {
	box-sizing: border-box;
	flex: 0 0 auto !important;
	margin: 0 !important;
	max-width: none !important;
	overflow: hidden;
	padding: 0 !important;
	position: relative;
	width: auto;
}

body.cruisetalk-2:is(.single-post, .page) .ct-justified-gallery figure {
	margin: 0;
	height: 100%;
	width: 100%;
}

body.cruisetalk-2:is(.single-post, .page) .ct-justified-gallery a {
	display: block;
	height: 100%;
	width: 100%;
}

body.cruisetalk-2:is(.single-post, .page) .ct-justified-gallery img {
	border-radius: 5px;
	cursor: zoom-in;
	display: block;
	height: 100% !important;
	margin: 0 !important;
	max-width: none !important;
	object-fit: cover;
	width: 100% !important;
}

/*
 * Captions stay available when intentionally supplied, but camera-generated
 * boilerplate is suppressed by the JS compatibility layer.
 */
body.cruisetalk-2:is(.single-post, .page) .ct-justified-gallery figcaption,
body.cruisetalk-2:is(.single-post, .page) .ct-justified-gallery .sgb-item-caption,
body.cruisetalk-2:is(.single-post, .page) .ct-justified-gallery .gallery-caption {
	background: linear-gradient(to top, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0));
	bottom: 0;
	box-sizing: border-box;
	color: #fff;
	font-size: 0.78rem;
	left: 0;
	line-height: 1.35;
	margin: 0;
	padding: 2rem 0.65rem 0.55rem;
	position: absolute;
	right: 0;
	text-align: left;
	z-index: 2;
}

body.cruisetalk-2:is(.single-post, .page) .ct-gallery-caption-is-boilerplate {
	display: none !important;
}

/* ------------------------------
   Cruise Talk lightbox
   ------------------------------ */

.ct-lightbox[hidden] {
	display: none !important;
}

.ct-lightbox {
	align-items: center;
	background: rgba(5, 12, 34, 0.96);
	display: flex;
	inset: 0;
	justify-content: center;
	padding: clamp(18px, 3vw, 36px);
	position: fixed;
	z-index: 99999;
}

.ct-lightbox__stage {
	align-items: center;
	display: flex;
	height: 100%;
	justify-content: center;
	max-height: 100%;
	max-width: 100%;
	position: relative;
	width: 100%;
}

.ct-lightbox__figure {
	align-items: center;
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: center;
	margin: 0;
	max-width: min(1500px, calc(100vw - 140px));
	width: 100%;
}

.ct-lightbox__image {
	border-radius: 4px;
	box-shadow: 0 16px 48px rgba(0, 0, 0, 0.35);
	display: block;
	max-height: calc(100vh - 130px);
	max-width: 100%;
	object-fit: contain;
	width: auto;
}

.ct-lightbox__caption {
	color: rgba(255, 255, 255, 0.88);
	font-size: 0.9rem;
	line-height: 1.45;
	margin-top: 0.8rem;
	max-width: 900px;
	text-align: center;
}

.ct-lightbox__counter {
	background: rgba(0, 0, 0, 0.35);
	border-radius: 999px;
	color: #fff;
	font-size: 0.78rem;
	font-weight: 700;
	left: 50%;
	letter-spacing: 0.04em;
	padding: 0.4rem 0.7rem;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
}

.ct-lightbox__button {
	align-items: center;
	background: rgba(255, 255, 255, 0.10);
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	font-family: inherit;
	font-size: 2rem;
	height: 48px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	position: absolute;
	transition: background-color 150ms ease, border-color 150ms ease;
	width: 48px;
	z-index: 2;
}

.ct-lightbox__button:hover,
.ct-lightbox__button:focus-visible {
	background: rgba(255, 255, 255, 0.20);
	border-color: rgba(255, 255, 255, 0.55);
	outline: none;
}

.ct-lightbox__close {
	font-size: 1.7rem;
	right: 0;
	top: 0;
}

.ct-lightbox__prev {
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

.ct-lightbox__next {
	right: 0;
	top: 50%;
	transform: translateY(-50%);
}

body.ct-lightbox-open {
	overflow: hidden;
}

@media (max-width: 700px) {
	body.cruisetalk-2:is(.single-post, .page) .ct-justified-gallery {
		gap: 6px;
	}

	.ct-lightbox {
		padding: 14px;
	}

	.ct-lightbox__figure {
		max-width: calc(100vw - 28px);
	}

	.ct-lightbox__image {
		max-height: calc(100vh - 120px);
	}

	.ct-lightbox__button {
		height: 42px;
		width: 42px;
	}

	.ct-lightbox__prev {
		left: 4px;
	}

	.ct-lightbox__next {
		right: 4px;
	}

	.ct-lightbox__close {
		right: 4px;
		top: 4px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ct-lightbox__button {
		transition: none;
	}
}


/* ==========================================================================
   4F. Gallery / lightbox refinements
   ========================================================================== */

.ct-lightbox__button {
	background: rgba(255, 255, 255, 0.07);
	border-color: rgba(255, 255, 255, 0.20);
	height: 44px;
	width: 44px;
}

.ct-lightbox__button:hover,
.ct-lightbox__button:focus-visible {
	background: rgba(255, 255, 255, 0.15);
	border-color: rgba(255, 255, 255, 0.42);
}

.ct-lightbox__close {
	right: clamp(10px, 1.5vw, 20px);
	top: clamp(10px, 1.5vw, 20px);
}

.ct-lightbox__prev {
	left: clamp(6px, 1vw, 14px);
}

.ct-lightbox__next {
	right: clamp(6px, 1vw, 14px);
}

@media (max-width: 700px) {
	.ct-lightbox__button {
		height: 40px;
		width: 40px;
	}

	.ct-lightbox__close {
		right: 8px;
		top: 8px;
	}

	.ct-lightbox__prev {
		left: 2px;
	}

	.ct-lightbox__next {
		right: 2px;
	}
}


/* ==========================================================================
   4G. Single-post category context + wide navigation
   ========================================================================== */

/* Category context belongs with the headline rather than after the article. */
body.cruisetalk-2.single-post .ct-single-category-eyebrow {
	margin-bottom: 0.9rem;
}

body.cruisetalk-2.single-post .ct-single-category-eyebrow a {
	color: var(--ct-blue-deep);
	text-decoration: none;
}

body.cruisetalk-2.single-post .ct-single-category-eyebrow a:hover,
body.cruisetalk-2.single-post .ct-single-category-eyebrow a:focus {
	color: var(--ct-blue-bright);
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

body.cruisetalk-2.single-post .ct-category-separator {
	color: var(--ct-gold);
	margin: 0 0.45rem;
}

/*
 * The single-post footer previously contained only category/tag metadata.
 * Categories now live in the headline eyebrow, and tags are not part of the
 * Cruise Talk 2.0 content model.
 */
body.cruisetalk-2.single-post article.post > .inside-article > footer.entry-meta {
	border-top: 0;
	color: inherit;
	margin: 0 auto;
	max-width: 1200px;
	padding-top: 0;
}

body.cruisetalk-2.single-post article.post > .inside-article > footer.entry-meta > .cat-links,
body.cruisetalk-2.single-post article.post > .inside-article > footer.entry-meta > .tags-links {
	display: none;
}

/*
 * Match the broad article/gallery measure so navigation visually anchors the
 * full article rather than reading like another narrow prose component.
 */
body.cruisetalk-2.single-post .post-navigation {
	max-width: 1200px;
	width: 100%;
}


/* ==========================================================================
   4H. Single-post editorial column alignment
   ========================================================================== */

/*
 * The reading column remains intentionally narrower than wide photography,
 * but a perfectly centered 820px column leaves too much visual dead space at
 * the left edge of a 1120–1200px article canvas.
 *
 * On desktop, shift headline/meta/prose approximately 110px left from exact
 * center. Wide media remains centered. The max() guard prevents the reading
 * column from colliding with the viewport gutter as the screen narrows.
 */
@media (min-width: 1001px) {
	body.cruisetalk-2.single-post .entry-header {
		margin-left: max(0px, calc((100% - 820px) / 2 - 110px));
		margin-right: auto;
		max-width: min(1020px, calc(100% - max(0px, calc((100% - 820px) / 2 - 110px))));
	}

	body.cruisetalk-2.single-post .entry-content > * {
		margin-left: max(0px, calc((100% - 820px) / 2 - 110px));
		margin-right: auto;
	}

	/*
	 * Photography and other wide blocks continue to use the centered media
	 * canvas rather than inheriting the left-biased prose position.
	 */
	body.cruisetalk-2.single-post .entry-content > figure,
	body.cruisetalk-2.single-post .entry-content > .wp-block-image,
	body.cruisetalk-2.single-post .entry-content > .wp-block-gallery,
	body.cruisetalk-2.single-post .entry-content > .gallery,
	body.cruisetalk-2.single-post .entry-content > .wp-block-cover,
	body.cruisetalk-2.single-post .entry-content > .wp-block-media-text {
		margin-left: auto;
		margin-right: auto;
	}

	@supports selector(p:has(img)) {
		body.cruisetalk-2.single-post .entry-content > p:has(> img:only-child),
		body.cruisetalk-2.single-post .entry-content > p:has(> a:only-child > img:only-child) {
			margin-left: auto;
			margin-right: auto;
		}
	}
}


/* ==========================================================================
   4I. Journeys (post_series taxonomy owned by Cruise Talk)
   ========================================================================== */

/*
 * Hide any legacy series box that may be stored in historical post content.
 * Cruise Talk now renders the Journey navigator itself.
 */
body.cruisetalk-2.single-post .wp-post-series-box {
	display: none !important;
}

/*
 * Journey context spans the broad editorial canvas, like post navigation and
 * galleries, while normal prose retains the narrower left-biased measure.
 */
body.cruisetalk-2.single-post .entry-content > .ct-journey-box {
	background: var(--ct-soft-warm);
	border: 1px solid var(--ct-border);
	border-radius: var(--ct-radius);
	box-shadow: var(--ct-shadow-soft);
	margin: clamp(10px, 1.2vw, 16px) auto clamp(34px, 4vw, 48px);
	max-width: 1020px;
	overflow: hidden;
	width: 100%;
}

.ct-journey-box__bar {
	align-items: center;
	display: flex;
	gap: 1.25rem;
	justify-content: space-between;
	padding: clamp(17px, 2.2vw, 23px) clamp(20px, 2.6vw, 30px);
}

.ct-journey-box__identity {
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem 0.65rem;
	min-width: 0;
}

.ct-journey-box__label {
	color: var(--ct-muted);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.ct-journey-box__name {
	color: var(--ct-blue-deep);
	font-size: 1.02rem;
	font-weight: 750;
	text-decoration: none;
}

a.ct-journey-box__name:hover,
a.ct-journey-box__name:focus {
	color: var(--ct-blue-bright);
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

.ct-journey-box__controls {
	align-items: center;
	display: flex;
	flex: 0 0 auto;
	gap: 0.75rem;
}

.ct-journey-box__position {
	color: var(--ct-muted);
	font-size: 0.86rem;
	font-weight: 650;
	white-space: nowrap;
}

/* Override the broad site button treatment for this quiet disclosure control. */
body.cruisetalk-2 button.ct-journey-box__toggle {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--ct-blue-deep);
	display: inline-flex;
	font-size: 0.88rem;
	font-weight: 750;
	gap: 0.35rem;
	padding: 0.25rem 0;
	white-space: nowrap;
}

body.cruisetalk-2 button.ct-journey-box__toggle:hover,
body.cruisetalk-2 button.ct-journey-box__toggle:focus {
	background: transparent;
	border-color: transparent;
	color: var(--ct-blue-bright);
}

.ct-journey-box__chevron {
	font-size: 1rem;
	line-height: 1;
	transition: transform 150ms ease;
}

.ct-journey-box__toggle[aria-expanded="true"] .ct-journey-box__chevron {
	transform: rotate(180deg);
}

.ct-journey-box__posts {
	border-top: 1px solid var(--ct-border);
	padding: clamp(18px, 2.5vw, 28px) clamp(22px, 3vw, 34px) clamp(18px, 2vw, 22px);
}

.ct-journey-box__posts[hidden] {
	display: none;
}

.ct-journey-box__posts ol {
	margin: 0;
	padding-left: 1.55rem;
}

.ct-journey-box__posts li {
	color: var(--ct-muted);
	line-height: 1.5;
	margin: 0.38rem 0;
	padding-left: 0.25rem;
}

.ct-journey-box__posts li::marker {
	color: var(--ct-blue);
	font-weight: 750;
}

.ct-journey-box__posts a {
	color: var(--ct-blue-deep);
	text-decoration: none;
}

.ct-journey-box__posts a:hover,
.ct-journey-box__posts a:focus {
	color: var(--ct-blue-bright);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.ct-journey-box__posts li.is-current {
	color: var(--ct-ink);
	font-weight: 750;
}

.ct-journey-box__posts li.is-current::marker {
	color: var(--ct-gold);
}

.ct-journey-box__posts small {
	color: var(--ct-muted);
	font-weight: 500;
}

/* Journey archive context. */
body.cruisetalk-2.tax-post_series .page-header::before {
	content: "Journey";
}

body.cruisetalk-2.tax-post_series .page-header .taxonomy-description,
body.cruisetalk-2.tax-post_series .page-header .archive-description {
	max-width: 1050px;
}

/*
 * Journey archives are narrative sequences. Keep cards and pagination from
 * the standard archive system, but their query order is oldest-to-newest (or
 * explicit Journey order) rather than normal reverse chronology.
 */

@media (max-width: 800px) {
	.ct-journey-box__bar {
		align-items: flex-start;
		flex-direction: column;
	}

	.ct-journey-box__controls {
		justify-content: space-between;
		width: 100%;
	}
}

@media (max-width: 520px) {
	.ct-journey-box__controls {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.45rem;
	}

	.ct-journey-box__position,
	body.cruisetalk-2 button.ct-journey-box__toggle {
		white-space: normal;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ct-journey-box__chevron {
		transition: none;
	}
}


/* ==========================================================================
   4J. Journey alignment refinement
   ========================================================================== */

/*
 * Journey navigation is editorial context, not wide media. On desktop it
 * shares the headline/prose left edge and the headline's generous 1020px
 * measure. This keeps both the collapsed bar and expanded Journey list
 * visually attached to the story rather than floating on the gallery canvas.
 */
@media (min-width: 1001px) {
	body.cruisetalk-2.single-post .entry-content > .ct-journey-box {
		margin-left: max(0px, calc((100% - 820px) / 2 - 110px));
		margin-right: auto;
		max-width: min(
			1020px,
			calc(100% - max(0px, calc((100% - 820px) / 2 - 110px)))
		);
	}
}


/* ==========================================================================
   4K. Journey archive itinerary disclosure
   ========================================================================== */

/*
 * Journey descriptions remain fully visible. Only the long linked itinerary
 * list is tucked away so readers can reach the Journey's story cards quickly.
 */
body.cruisetalk-2.tax-post_series .ct-journey-itinerary {
	margin-top: 0.85rem;
}

body.cruisetalk-2.tax-post_series .ct-journey-itinerary > summary {
	align-items: center;
	color: var(--ct-blue-deep);
	cursor: pointer;
	display: inline-flex;
	font-size: 0.92rem;
	font-weight: 750;
	gap: 0.4rem;
	list-style: none;
	padding: 0.15rem 0;
	text-decoration: none;
}

body.cruisetalk-2.tax-post_series .ct-journey-itinerary > summary::-webkit-details-marker {
	display: none;
}

body.cruisetalk-2.tax-post_series .ct-journey-itinerary > summary:hover,
body.cruisetalk-2.tax-post_series .ct-journey-itinerary > summary:focus-visible {
	color: var(--ct-blue-bright);
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

body.cruisetalk-2.tax-post_series .ct-journey-itinerary__chevron {
	display: inline-block;
	font-size: 1rem;
	line-height: 1;
	transition: transform 150ms ease;
}

body.cruisetalk-2.tax-post_series .ct-journey-itinerary[open] .ct-journey-itinerary__chevron {
	transform: rotate(180deg);
}

body.cruisetalk-2.tax-post_series .ct-journey-itinerary__list {
	margin-top: 0.75rem;
}

body.cruisetalk-2.tax-post_series .ct-journey-itinerary__list > ul,
body.cruisetalk-2.tax-post_series .ct-journey-itinerary__list > ol {
	margin-bottom: 0.75rem;
	margin-top: 0;
	padding-left: 1.55rem;
}

body.cruisetalk-2.tax-post_series .ct-journey-itinerary__list li {
	margin-bottom: 0.18rem;
}

/*
 * The disclosure is rendered after all Journey summary prose, so historical
 * context stays together and the itinerary control reads as the final action.
 */

@media (prefers-reduced-motion: reduce) {
	body.cruisetalk-2.tax-post_series .ct-journey-itinerary__chevron {
		transition: none;
	}
}


/* ==========================================================================
   4L. Journey archive header spacing refinement
   ========================================================================== */

/*
 * Once the itinerary list is collapsed, the generic archive panel leaves more
 * empty space below the disclosure than this Journey header needs.
 */
body.cruisetalk-2.tax-post_series .page-header {
	padding-bottom: clamp(20px, 2.2vw, 28px);
}


/* ==========================================================================
   4M. Empty Journey archive
   ========================================================================== */

/*
 * Empty Journeys use the same archive header as populated Journeys: eyebrow,
 * title, description, and optional itinerary disclosure. The empty-state is a
 * final note inside that same panel rather than a separate no-results card.
 */
body.cruisetalk-2.tax-post_series .ct-empty-journey-header {
	grid-column: 1 / -1;
}

body.cruisetalk-2.tax-post_series .ct-empty-journey-message {
	border-top: 1px solid var(--ct-border);
	margin-top: clamp(20px, 2.2vw, 28px);
	padding-top: clamp(18px, 2vw, 24px);
}

body.cruisetalk-2.tax-post_series .ct-empty-journey-message h2 {
	color: var(--ct-blue-deep);
	font-size: clamp(1.2rem, 1.8vw, 1.45rem);
	line-height: 1.2;
	margin: 0 0 0.35rem;
}

body.cruisetalk-2.tax-post_series .ct-empty-journey-message p {
	color: var(--ct-muted);
	font-size: 1rem;
	line-height: 1.65;
	margin: 0;
}



/* ==========================================================================
   4N. Journey directory
   ========================================================================== */

/*
 * `/journeys/` is a theme-owned directory rather than a WordPress Page, but it
 * deliberately shares the calm spacing and reading proportions of Cruise Talk
 * editorial Pages.
 */
body.cruisetalk-2.ct-journeys-index-page .site-content {
	padding-bottom: clamp(16px, 2vw, 24px);
	padding-top: clamp(18px, 1.8vw, 28px);
}

body.cruisetalk-2.ct-journeys-index-page .site-main {
	margin-bottom: 0;
	max-width: 100%;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index > .inside-article {
	background: transparent;
	padding: 0;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__header {
	background: var(--ct-surface-soft);
	border: 1px solid var(--ct-border);
	border-radius: var(--ct-radius);
	border-top: 4px solid var(--ct-gold);
	box-shadow: var(--ct-shadow-soft);
	margin-left: auto;
	margin-right: auto;
	max-width: 1120px;
	padding: clamp(28px, 3.3vw, 42px);
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__header > .ct-eyebrow,
body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__header > .ct-journeys-index__title,
body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__header > .ct-journeys-index__intro,
body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__header > .ct-journeys-index__alternate,
body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__header > .ct-journeys-jump--top {
	max-width: 820px;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__title {
	color: var(--ct-blue-deep);
	font-size: clamp(2.35rem, 4vw, 3.65rem);
	letter-spacing: -0.03em;
	line-height: 1.06;
	margin: 0 0 0.85rem;
	text-wrap: balance;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__intro {
	font-size: clamp(1.02rem, 0.35vw + 0.96rem, 1.10rem);
	line-height: 1.76;
	margin: 0 0 0.85rem;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__alternate {
	color: var(--ct-muted);
	font-size: 0.98rem;
	line-height: 1.65;
	margin: 0;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__years {
	margin: clamp(40px, 4.8vw, 60px) auto 0;
	max-width: 1120px;
}


body.cruisetalk-2.ct-journeys-index-page .ct-journeys-jump {
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	font-size: 0.94rem;
	gap: 0.45rem 0.7rem;
	line-height: 1.5;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-jump--top {
	margin-top: 1.35rem;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-jump--bottom {
	border-top: 1px solid var(--ct-border);
	margin: clamp(24px, 3vw, 34px) auto 0;
	max-width: 1120px;
	padding-top: 0.8rem;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-jump__label {
	color: var(--ct-muted);
	font-weight: 650;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-jump__links {
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.7rem;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-jump__links a {
	font-weight: 700;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.14em;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-jump__links a + a::before {
	color: var(--ct-muted);
	content: "·";
	display: inline-block;
	font-weight: 400;
	margin-right: 0.7rem;
	text-decoration: none;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-jump__top-link {
	margin-left: 0.15rem;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-year {
	scroll-margin-top: 24px;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-year + .ct-journeys-year {
	margin-top: clamp(40px, 5vw, 62px);
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-year__title {
	align-items: center;
	display: flex;
	font-size: clamp(1.55rem, 2.1vw, 2rem);
	gap: 1rem;
	line-height: 1.15;
	margin: 0 0 1.15rem;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-year__title::after {
	background: var(--ct-border);
	content: "";
	flex: 1 1 auto;
	height: 1px;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-year__grid {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.cruisetalk-2.ct-journeys-index-page .ct-journey-index-card {
	background: var(--ct-white);
	border: 1px solid var(--ct-border);
	border-radius: var(--ct-radius);
	box-shadow: var(--ct-shadow-soft);
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journey-index-card__image-link {
	background: var(--ct-surface-soft);
	display: block;
	line-height: 0;
	overflow: hidden;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journey-index-card__image {
	aspect-ratio: 16 / 9;
	display: block;
	height: auto;
	object-fit: cover;
	transition: transform 180ms ease;
	width: 100%;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journey-index-card__image-link:hover .ct-journey-index-card__image {
	transform: scale(1.015);
}

body.cruisetalk-2.ct-journeys-index-page .ct-journey-index-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: clamp(18px, 1.8vw, 22px);
}

body.cruisetalk-2.ct-journeys-index-page .ct-journey-index-card__title {
	font-size: clamp(1.08rem, 1.2vw, 1.25rem);
	line-height: 1.24;
	margin: 0 0 0.45rem;
	text-wrap: balance;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journey-index-card__title a {
	color: var(--ct-blue-deep);
	text-decoration: none;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journey-index-card__title a:hover,
body.cruisetalk-2.ct-journeys-index-page .ct-journey-index-card__title a:focus {
	color: var(--ct-blue-bright);
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journey-index-card__meta {
	color: var(--ct-muted);
	font-size: 0.9rem;
	line-height: 1.5;
	margin: 0 0 0.8rem;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journey-index-card__link {
	font-size: 0.94rem;
	font-weight: 750;
	margin: auto 0 0;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journey-index-card__link a {
	text-decoration-thickness: 1px;
	text-underline-offset: 0.16em;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__empty {
	margin: clamp(36px, 4.5vw, 56px) auto 0;
	max-width: 820px;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__empty h2 {
	margin-bottom: 0.45rem;
}

body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__empty p {
	margin: 0;
}

@media (max-width: 980px) {
	body.cruisetalk-2.ct-journeys-index-page .ct-journeys-year__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__header {
		padding: 24px 20px;
	}

	body.cruisetalk-2.ct-journeys-index-page .ct-journeys-jump {
		align-items: flex-start;
		flex-direction: column;
		gap: 0.25rem;
	}

	body.cruisetalk-2.ct-journeys-index-page .ct-journeys-jump__links {
		gap: 0.3rem 0.55rem;
	}

	body.cruisetalk-2.ct-journeys-index-page .ct-journeys-jump__links a + a::before {
		margin-right: 0.55rem;
	}

	body.cruisetalk-2.ct-journeys-index-page .site-content {
		padding-bottom: 16px;
		padding-top: 18px;
	}

	body.cruisetalk-2.ct-journeys-index-page .ct-journeys-year__grid {
		grid-template-columns: 1fr;
	}

	body.cruisetalk-2.ct-journeys-index-page .ct-journeys-year + .ct-journeys-year {
		margin-top: 36px;
	}
}

/* ==========================================================================
   Contact Form 7
   ========================================================================== */

/*
 * Keep Contact Form 7 aligned with the standard readable Page width.
 */
body.cruisetalk-2 .wp-block-contact-form-7-contact-form-selector,
body.cruisetalk-2 .wpcf7 {
max-width: 820px;
margin-left: auto;
margin-right: auto;
}

/*
 * Form rhythm.
 */
body.cruisetalk-2 .wpcf7 form p {
margin-bottom: 1.4em;
}

body.cruisetalk-2 .wpcf7 label {
display: block;
font-family: var(--ct-font-sans);
font-weight: 500;
}

/*
 * Standard form controls.
 */
body.cruisetalk-2 .wpcf7 input[type="text"],
body.cruisetalk-2 .wpcf7 input[type="email"],
body.cruisetalk-2 .wpcf7 input[type="tel"],
body.cruisetalk-2 .wpcf7 input[type="url"],
body.cruisetalk-2 .wpcf7 input[type="number"],
body.cruisetalk-2 .wpcf7 select,
body.cruisetalk-2 .wpcf7 textarea {
box-sizing: border-box;
width: 100%;
max-width: 100%;
margin-top: 0.35em;
padding: 0.72em 0.8em;
border: 1px solid #d7dde5;
border-radius: var(--ct-radius-sm);
background: var(--ct-white);
color: inherit;
font: inherit;
line-height: 1.4;
}

/*
 * Message fields should be useful without dominating the Page.
 */
body.cruisetalk-2 .wpcf7 textarea {
height: 240px;
min-height: 180px;
resize: vertical;
}

/*
 * Clear keyboard focus state.
 */
body.cruisetalk-2 .wpcf7 input[type="text"]:focus,
body.cruisetalk-2 .wpcf7 input[type="email"]:focus,
body.cruisetalk-2 .wpcf7 input[type="tel"]:focus,
body.cruisetalk-2 .wpcf7 input[type="url"]:focus,
body.cruisetalk-2 .wpcf7 input[type="number"]:focus,
body.cruisetalk-2 .wpcf7 select:focus,
body.cruisetalk-2 .wpcf7 textarea:focus {
border-color: var(--ct-blue-bright);
outline: 2px solid var(--ct-blue-bright);
outline-offset: 2px;
}

/*
 * Keep Cloudflare Turnstile visually attached to the final submit action
 * without crowding the button.
 */
body.cruisetalk-2 .wpcf7 .cf-turnstile {
margin-bottom: 16px;
}

/*
 * Validation and submission feedback.
 */
body.cruisetalk-2 .wpcf7 .wpcf7-not-valid-tip {
display: block;
margin-top: 0.4em;
font-size: 0.9em;
}

body.cruisetalk-2 .wpcf7 form .wpcf7-response-output {
margin: 1.5em 0 0;
padding: 0.75em 1em;
border-radius: var(--ct-radius-sm);
}

/* ==========================================================================
   Constant Contact inline forms
   ========================================================================== */

/*
 * Keep embedded Constant Contact forms aligned with the standard readable
 * Page width rather than allowing the third-party widget to span the viewport.
 */
body.cruisetalk-2 .ctct-inline-form {
	max-width: 820px;
	margin-left: auto;
	margin-right: auto;
}

/* ==========================================================================
   Header search
   ========================================================================== */

/*
 * Keep the search trigger obvious enough to discover without turning it into
 * another text navigation item. GeneratePress places menu-bar items at the end
 * of the desktop navigation and in the mobile header.
 */
body.cruisetalk-2 .ct-search-menu-item {
	display: flex;
	align-items: center;
	margin-left: 0.2rem;
}

body.cruisetalk-2 .main-navigation .ct-search-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	box-shadow: none;
	color: var(--ct-blue-deep);
	cursor: pointer;
}

/*
 * The gold ring echoes the active-menu underline without turning the search
 * trigger into another filled navigation button.
 */
body.cruisetalk-2 .main-navigation .ct-search-toggle:hover,
body.cruisetalk-2 .main-navigation .ct-search-toggle:focus {
	border: 0;
	background: transparent;
	box-shadow: 0 0 0 2px var(--ct-gold);
	color: var(--ct-navy);
}

body.cruisetalk-2 .main-navigation .ct-search-toggle:focus-visible {
	outline: 2px solid var(--ct-gold);
	outline-offset: 3px;
}

body.cruisetalk-2 .ct-search-toggle__icon {
	width: 22px;
	height: 22px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
}

/* Align the entire search utility with the desktop navigation labels. */
@media (min-width: 769px) {
	body.cruisetalk-2 .ct-search-menu-item {
		margin-top: -19px;
	}
}

/*
 * The tray occupies normal document flow immediately below the header. Opening
 * search therefore never shifts or compresses the primary navigation itself.
 */
body.cruisetalk-2 .ct-search-tray {
	background: var(--ct-white);
	border-bottom: 1px solid var(--ct-border);
	box-shadow: none;
}

body.cruisetalk-2 .ct-search-tray[hidden] {
	display: none !important;
}

body.cruisetalk-2 .ct-search-tray__inner {
	max-width: 820px;
	margin: 0 auto;
	padding: 18px var(--ct-gutter) 20px;
}

body.cruisetalk-2 .ct-search-form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto 44px;
	gap: 10px;
	align-items: center;
	margin: 0;
}

body.cruisetalk-2 .ct-search-field {
	box-sizing: border-box;
	width: 100%;
	height: 46px;
	margin: 0;
	padding: 0.7em 0.85em;
	border: 1px solid #d7dde5;
	border-radius: var(--ct-radius-sm);
	background: var(--ct-white);
	color: inherit;
	font: inherit;
	line-height: 1.3;
}

body.cruisetalk-2 .ct-search-field:focus {
	border-color: var(--ct-blue-bright);
	outline: 2px solid var(--ct-blue-bright);
	outline-offset: 2px;
}

/* Override generic button metrics so the label is truly centered. */
body.cruisetalk-2 .ct-search-form .ct-search-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 46px;
	min-height: 46px;
	margin: 0;
	padding-top: 0;
	padding-bottom: 0;
	line-height: 1;
	white-space: nowrap;
}

/* Keep Close visually secondary to Search, but unmistakable. */
body.cruisetalk-2 .ct-search-form .ct-search-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	min-height: 44px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--ct-border);
	border-radius: var(--ct-radius-sm);
	background: var(--ct-white);
	box-shadow: none;
	color: var(--ct-blue-deep);
	cursor: pointer;
	font-family: var(--ct-font-sans);
	font-size: 1.65rem;
	font-weight: 400;
	line-height: 1;
}

body.cruisetalk-2 .ct-search-form .ct-search-close:hover,
body.cruisetalk-2 .ct-search-form .ct-search-close:focus {
	border-color: var(--ct-gold);
	background: var(--ct-soft-warm);
	box-shadow: none;
	color: var(--ct-navy);
}

body.cruisetalk-2 .ct-search-form .ct-search-close:focus-visible {
	outline: 2px solid var(--ct-gold);
	outline-offset: 2px;
}

body.cruisetalk-2 .ct-search-close span {
	display: block;
	transform: translateY(-1px);
}

@media (max-width: 768px) {
	body.cruisetalk-2 .ct-search-tray__inner {
		padding: 16px 20px 18px;
	}

	body.cruisetalk-2 .ct-search-form {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	body.cruisetalk-2 .ct-search-field {
		grid-column: 1 / -1;
	}

	body.cruisetalk-2 .ct-search-submit {
		justify-self: start;
	}

	body.cruisetalk-2 .ct-search-close {
		justify-self: end;
	}
}

/* ==========================================================================
   Search results
   ========================================================================== */

/*
 * Search is a scanning utility, not another archive gallery. Keep the results
 * in a restrained editorial column and use compact horizontal summaries.
 */
body.cruisetalk-2.search .site-content {
	padding-top: clamp(28px, 2.5vw, 40px);
}

body.cruisetalk-2.search .site-main {
	max-width: 1120px;
	margin-left: auto;
	margin-right: auto;
}

body.cruisetalk-2.search .page-header {
	background: transparent;
	border: 0;
	box-shadow: none;
	margin: 0;
	padding: 0 0 0.35rem;
}

body.cruisetalk-2.search .page-header h1,
body.cruisetalk-2.search .page-header .page-title {
	color: var(--ct-blue-deep);
	font-size: clamp(2.15rem, 3.4vw, 3rem);
	line-height: 1.08;
	margin: 0;
	text-wrap: balance;
}

body.cruisetalk-2.search .ct-search-result-count {
	color: var(--ct-muted);
	font-size: 1rem;
	font-weight: 600;
	margin: 0.35rem 0 1.25rem;
}

body.cruisetalk-2.search .site-main > article {
	border-top: 1px solid var(--ct-border);
	margin: 0;
	min-width: 0;
}

body.cruisetalk-2.search.separate-containers .site-main > article + article {
	margin-top: 0;
}

body.cruisetalk-2.search .site-main > article .inside-article {
	background: transparent;
	display: grid;
	grid-template-columns: minmax(180px, 230px) minmax(0, 1fr);
	grid-template-areas:
		"image header"
		"image summary";
	column-gap: clamp(22px, 3vw, 34px);
	row-gap: 0;
	padding: clamp(24px, 3vw, 32px) 0;
}

body.cruisetalk-2.search .site-main > article.ct-search-no-thumbnail .inside-article {
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas:
		"header"
		"summary";
}

body.cruisetalk-2.search .site-main > article .post-image {
	align-self: start;
	grid-area: image;
	margin: 0;
	width: 100%;
}

body.cruisetalk-2.search .site-main > article .post-image a {
	display: block;
}

body.cruisetalk-2.search .site-main > article .post-image img {
	aspect-ratio: 3 / 2;
	border-radius: var(--ct-radius-sm);
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

body.cruisetalk-2.search .site-main > article .entry-header {
	grid-area: header;
	margin: 0;
	padding: 0;
}

body.cruisetalk-2.search .site-main > article .entry-title {
	font-size: clamp(1.35rem, 2vw, 1.78rem);
	line-height: 1.2;
	margin: 0 0 0.45rem;
	text-wrap: balance;
}

body.cruisetalk-2.search .site-main > article .entry-meta {
	margin: 0 0 0.7rem;
}

body.cruisetalk-2.search .site-main > article .entry-meta .byline {
	display: none;
}

body.cruisetalk-2.search .site-main > article .entry-summary {
	color: var(--ct-ink);
	font-size: 0.98em;
	grid-area: summary;
	line-height: 1.6;
	margin: 0;
	padding: 0;
}

body.cruisetalk-2.search .site-main > article .entry-summary > :last-child {
	margin-bottom: 0;
}

body.cruisetalk-2.search .site-main > article footer.entry-meta,
body.cruisetalk-2.search .site-main > article .comments-link {
	display: none;
}

/*
 * Search pagination deliberately uses the same control language as home and
 * collection pages instead of the legacy plain-text page links.
 */
body.cruisetalk-2.search .paging-navigation {
	background: var(--ct-soft-warm);
	border: 1px solid var(--ct-border);
	border-radius: var(--ct-radius);
	box-shadow: var(--ct-shadow-soft);
	margin-top: clamp(20px, 3vw, 32px);
	padding: clamp(16px, 2vw, 22px);
}

body.cruisetalk-2.search .paging-navigation .nav-links {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
}

body.cruisetalk-2.search .paging-navigation .page-numbers {
	align-items: center;
	background: var(--ct-white);
	border: 1px solid var(--ct-border);
	border-radius: var(--ct-radius-sm);
	color: var(--ct-blue-deep);
	display: inline-flex;
	font-weight: 750;
	height: 42px;
	justify-content: center;
	line-height: 1;
	min-width: 42px;
	padding: 0 0.8rem;
	text-decoration: none;
}

body.cruisetalk-2.search .paging-navigation a.page-numbers:hover,
body.cruisetalk-2.search .paging-navigation a.page-numbers:focus {
	background: var(--ct-soft-blue);
	border-color: var(--ct-blue);
	color: var(--ct-navy);
}

body.cruisetalk-2.search .paging-navigation .page-numbers.current {
	background: var(--ct-blue-deep);
	border-color: var(--ct-blue-deep);
	color: var(--ct-white);
}

body.cruisetalk-2.search .paging-navigation .page-numbers.dots {
	background: transparent;
	border-color: transparent;
	min-width: auto;
	padding-left: 0.3rem;
	padding-right: 0.3rem;
}

body.cruisetalk-2.search .paging-navigation .page-numbers.prev,
body.cruisetalk-2.search .paging-navigation .page-numbers.next {
	font-size: 0;
	padding: 0;
	width: 42px;
}

body.cruisetalk-2.search .paging-navigation .page-numbers.prev::before,
body.cruisetalk-2.search .paging-navigation .page-numbers.next::before {
	font-size: 1.55rem;
	font-weight: 500;
	line-height: 1;
}

body.cruisetalk-2.search .paging-navigation .page-numbers.prev::before {
	content: "‹";
}

body.cruisetalk-2.search .paging-navigation .page-numbers.next::before {
	content: "›";
}

@media (max-width: 700px) {
	body.cruisetalk-2.search .site-content {
		padding-top: 28px;
	}

	body.cruisetalk-2.search .site-main > article .inside-article {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"image"
			"header"
			"summary";
		row-gap: 14px;
		padding: 26px 0;
	}

	body.cruisetalk-2.search .site-main > article .post-image {
		max-width: 320px;
	}

	body.cruisetalk-2.search .site-main > article .entry-meta {
		margin-bottom: 0;
	}
}



/* ==========================================================================
   404 and zero-result recovery states
   ========================================================================== */

/*
 * These are utility/recovery views, not content archives. Keep them compact,
 * readable, and visually consistent with the Page and search systems.
 */
body.cruisetalk-2.error404 .site-content,
body.cruisetalk-2.search.search-no-results .site-content,
body.cruisetalk-2.author .site-content:has(.ct-empty-author) {
	padding-top: clamp(28px, 2.5vw, 40px);
}

body.cruisetalk-2.error404 .site-main,
body.cruisetalk-2.search.search-no-results .site-main,
body.cruisetalk-2.author .site-main:has(.ct-empty-author) {
	max-width: 820px;
	margin-left: auto;
	margin-right: auto;
}

body.cruisetalk-2 .ct-recovery-state {
	background: transparent;
	margin: 0;
	padding: 0;
}

body.cruisetalk-2.author .ct-empty-author {
	grid-column: 1 / -1;
	min-width: 0;
	width: 100%;
}

body.cruisetalk-2 .ct-recovery-state .page-header {
	background: transparent;
	border: 0;
	box-shadow: none;
	margin: 0 0 1.15rem;
	padding: 0;
}

body.cruisetalk-2 .ct-recovery-state .page-title {
	color: var(--ct-blue-deep);
	font-size: clamp(2.15rem, 3.4vw, 3rem);
	line-height: 1.08;
	margin: 0;
	text-wrap: balance;
}

body.cruisetalk-2 .ct-recovery-state .page-content {
	margin: 0;
}

body.cruisetalk-2 .ct-recovery-state .page-content > p:first-child {
	font-size: 1.06rem;
	line-height: 1.7;
	margin: 0 0 1.35rem;
	max-width: 760px;
}

body.cruisetalk-2 .ct-recovery-search-form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px;
	align-items: center;
	max-width: 680px;
	margin: 0;
}

body.cruisetalk-2 .ct-recovery-search-field {
	box-sizing: border-box;
	width: 100%;
	height: 46px;
	margin: 0;
	padding: 0.7em 0.85em;
	border: 1px solid #d7dde5;
	border-radius: var(--ct-radius-sm);
	background: var(--ct-white);
	color: inherit;
	font: inherit;
	line-height: 1.3;
}

body.cruisetalk-2 .ct-recovery-search-field:focus {
	border-color: var(--ct-blue-bright);
	outline: 2px solid var(--ct-blue-bright);
	outline-offset: 2px;
}

body.cruisetalk-2 .ct-recovery-search-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 46px;
	min-height: 46px;
	margin: 0;
	padding-top: 0;
	padding-bottom: 0;
	line-height: 1;
	white-space: nowrap;
}

body.cruisetalk-2 .ct-recovery-home-wrap {
	margin: 1.15rem 0 0;
}

body.cruisetalk-2 .ct-recovery-home {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}

@media (max-width: 600px) {
	body.cruisetalk-2 .ct-recovery-search-form {
		grid-template-columns: 1fr;
	}

	body.cruisetalk-2 .ct-recovery-search-submit {
		justify-self: start;
	}
}


/* ==========================================================================
   9. Desktop spacing polish — v0.8.38
   ========================================================================== */

/*
 * The home page established the preferred header-to-content rhythm. On larger
 * screens, remove the additional child-theme top padding from internal Pages,
 * archives, search results, and the Journey directory so GeneratePress' base
 * content separation is the single source of that gap. Mobile/tablet spacing
 * remains unchanged for the dedicated responsive review.
 */
@media (min-width: 701px) {
	body.cruisetalk-2.page:not(.home) .site-content,
	body.cruisetalk-2.archive .site-content,
	body.cruisetalk-2.search .site-content,
	body.cruisetalk-2.ct-journeys-index-page .site-content,
	body.cruisetalk-2.error404 .site-content {
		padding-top: 0;
	}

	/*
	 * The custom 404 template also inherits GeneratePress' generic article
	 * padding. Clear the extra top layer, while retaining almost all of the
	 * established bottom gutter (just 5px less beneath the Home button).
	 */
	body.cruisetalk-2.error404 .inside-article {
		padding-top: 0;
		padding-bottom: calc(clamp(28px, 4vw, 52px) - 5px);
	}

	/*
	 * When a Page switches between the 820px reading column and a 1120px
	 * structural block, stacked Gutenberg margins can create more air than the
	 * surrounding editorial rhythm. Trim only those width/structure handoffs;
	 * ordinary long-form H2 spacing remains untouched.
	 */
	body.cruisetalk-2.page:not(.home) .entry-content > p + .wp-block-columns,
	body.cruisetalk-2.page:not(.home) .entry-content > p + .wp-block-group,
	body.cruisetalk-2.page:not(.home) .entry-content > p + .alignwide,
	body.cruisetalk-2.page:not(.home) .entry-content > ul + .wp-block-columns,
	body.cruisetalk-2.page:not(.home) .entry-content > ol + .wp-block-columns {
		margin-top: 1.5rem;
	}

	body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-columns + h2,
	body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-group + h2,
	body.cruisetalk-2.page:not(.home) .entry-content > .alignwide + h2,
	body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-image + h2,
	body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-gallery + h2 {
		margin-top: 26px;
	}

	/* The first home-page lead begins a little closer to the welcome panel. */
	body.cruisetalk-2.home:not(.paged) .site-main > article:first-of-type .inside-article {
		padding-top: clamp(12px, 1.4vw, 20px);
	}

	/* Journey directory: remove a little accumulated air around year sections. */
	body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__header {
		padding-bottom: clamp(18px, 2.4vw, 32px);
	}

	body.cruisetalk-2.ct-journeys-index-page .ct-journeys-index__years {
		margin-top: clamp(28px, 3.6vw, 44px);
	}

	body.cruisetalk-2.ct-journeys-index-page .ct-journeys-year + .ct-journeys-year {
		margin-top: clamp(32px, 4vw, 50px);
	}
}

/*
 * Keep the gold blockquote rule visually tied to the quote itself. Gutenberg
 * paragraph margins previously made the rule extend well below the final line.
 */
body.cruisetalk-2.page:not(.home) .entry-content blockquote {
	padding-top: 0.7rem;
	padding-bottom: 0.7rem;
}

body.cruisetalk-2.page:not(.home) .entry-content blockquote > :first-child {
	margin-top: 0;
}

body.cruisetalk-2.page:not(.home) .entry-content blockquote > :last-child {
	margin-bottom: 0;
}

/*
 * Constant Contact Active Forms inject their own vertical defaults inside the
 * placeholder. Keep the WordPress wrapper compact, remove extra widget top/
 * bottom padding, and make the desktop Subscribe action read as a button rather
 * than a full-width bar.
 */
body.cruisetalk-2.ct-has-constant-contact-form .ctct-inline-form {
	margin-top: 12px;
	margin-bottom: 0;
}

body.cruisetalk-2.ct-has-constant-contact-form div.ctct-form-embed div.ctct-form-defaults {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

@media (min-width: 701px) {
	body.cruisetalk-2.ct-has-constant-contact-form div.ctct-form-embed .ctct-form-button,
	body.cruisetalk-2.ct-has-constant-contact-form div.ctct-form-embed button[type="submit"],
	body.cruisetalk-2.ct-has-constant-contact-form div.ctct-form-embed input[type="submit"] {
		display: inline-flex !important;
		justify-content: center;
		min-width: 240px;
		max-width: 280px;
		width: auto !important;
	}
}

@media (max-width: 700px) {
	body.cruisetalk-2.ct-has-constant-contact-form div.ctct-form-embed .ctct-form-button,
	body.cruisetalk-2.ct-has-constant-contact-form div.ctct-form-embed button[type="submit"],
	body.cruisetalk-2.ct-has-constant-contact-form div.ctct-form-embed input[type="submit"] {
		max-width: none;
		min-width: 0;
		width: 100% !important;
	}
}



/* ==========================================================================
   10. Mobile spacing polish — v0.8.39
   ========================================================================== */

/*
 * Phone review showed the same small stacked top-gap effect that was removed
 * on desktop in v0.8.38. Trim only the child-theme contribution here; the
 * accepted desktop/tablet rhythm remains untouched.
 */
@media (max-width: 700px) {
	body.cruisetalk-2.page:not(.home) .site-content {
		padding-top: 14px;
	}

	body.cruisetalk-2.archive .site-content,
	body.cruisetalk-2.search .site-content,
	body.cruisetalk-2.error404 .site-content {
		padding-top: 16px;
	}

	body.cruisetalk-2.ct-journeys-index-page .site-content {
		padding-top: 14px;
	}

	/*
	 * The custom 404 template has its own .inside-article wrapper. On phones it
	 * was still adding GeneratePress' generic article top padding on top of the
	 * recovery-view site-content gap.
	 */
	body.cruisetalk-2.error404 .inside-article {
		padding-top: 0;
	}

	/*
	 * At phone widths the 820px reading column and 1120px structural column are
	 * both effectively the viewport width. Direct Gutenberg layout wrappers do
	 * not need a second horizontal inset merely to preserve that desktop width
	 * distinction. Background callouts keep their own intentional padding.
	 */
	body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-group.is-layout-constrained:not(.has-background),
	body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-group.has-global-padding:not(.has-background),
	body.cruisetalk-2.page:not(.home) .entry-content > .wp-block-columns.has-global-padding,
	body.cruisetalk-2.page:not(.home) .entry-content > .alignwide.has-global-padding {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	/*
	 * The About page's desktop multi-column story markers become a long stack on
	 * phones. Reduce only that stacked block gap; global Page H2/H3 rhythm stays
	 * unchanged for Privacy, Contact, History, and other long-form Pages.
	 */
	body.cruisetalk-2.ct-about-page .entry-content .wp-block-columns {
		gap: 24px;
	}

	body.cruisetalk-2.ct-about-page .entry-content .wp-block-column {
		margin-bottom: 0;
	}

	body.cruisetalk-2.ct-about-page .entry-content .wp-block-column > :first-child {
		margin-top: 0;
	}

	body.cruisetalk-2.ct-about-page .entry-content .wp-block-column > :last-child {
		margin-bottom: 0;
	}

	/*
	 * Keep the year links lightweight, but make the bottom utility link wrap on
	 * purpose instead of allowing a separator to begin a second line by itself.
	 */
	body.cruisetalk-2.ct-journeys-index-page .ct-journeys-jump--bottom .ct-journeys-jump__top-link {
		flex-basis: 100%;
		margin-left: 0;
		margin-top: 0.1rem;
	}

	body.cruisetalk-2.ct-journeys-index-page .ct-journeys-jump--bottom .ct-journeys-jump__top-link::before {
		content: none;
		display: none;
	}
}



/* ==========================================================================
   11. Mobile stacked-content rhythm — v0.8.40
   ========================================================================== */

@media (max-width: 700px) {
	/*
	 * About and Past Cruises contain desktop structures that become long vertical
	 * stacks on phones. Their desktop heading/block spacing compounds when those
	 * items stack, producing much more air than the surrounding mobile pages.
	 * Tighten only these two known Pages; Privacy, Contact, and other Pages keep
	 * the already-accepted standard Page rhythm.
	 */
	body.cruisetalk-2.ct-about-page .entry-content h2,
	body.cruisetalk-2.ct-past-cruises-page .entry-content h2 {
		margin-bottom: 10px;
		margin-top: 28px;
	}

	body.cruisetalk-2.ct-about-page .entry-content h3,
	body.cruisetalk-2.ct-past-cruises-page .entry-content h3 {
		margin-bottom: 8px;
		margin-top: 22px;
	}

	body.cruisetalk-2.ct-about-page .entry-content h4,
	body.cruisetalk-2.ct-past-cruises-page .entry-content h4 {
		margin-bottom: 7px;
		margin-top: 16px;
	}

	body.cruisetalk-2.ct-about-page .entry-content p,
	body.cruisetalk-2.ct-past-cruises-page .entry-content p {
		margin-bottom: 1.05em;
	}

	/* Preserve the no-extra-air rule for the first heading/content block. */
	body.cruisetalk-2.ct-about-page .entry-content > :is(h2, h3, h4):first-child,
	body.cruisetalk-2.ct-past-cruises-page .entry-content > :is(h2, h3, h4):first-child {
		margin-top: 0;
	}

	/*
	 * Gutenberg columns are the main source of the oversized stacked gaps on
	 * these Pages. Once a column is full-width, use a compact row gap and let
	 * the contents inside each column establish their own small rhythm instead
	 * of inheriting both block-gap and desktop heading margins.
	 */
	body.cruisetalk-2.ct-about-page .entry-content .wp-block-columns,
	body.cruisetalk-2.ct-past-cruises-page .entry-content .wp-block-columns {
		column-gap: 20px;
		row-gap: 20px;
	}

	body.cruisetalk-2.ct-about-page .entry-content .wp-block-column > * + *,
	body.cruisetalk-2.ct-past-cruises-page .entry-content .wp-block-column > * + * {
		margin-block-start: 9px !important;
		margin-top: 9px !important;
	}

	body.cruisetalk-2.ct-about-page .entry-content .wp-block-column > :first-child,
	body.cruisetalk-2.ct-past-cruises-page .entry-content .wp-block-column > :first-child {
		margin-block-start: 0 !important;
		margin-top: 0 !important;
	}

	body.cruisetalk-2.ct-about-page .entry-content .wp-block-column > :last-child,
	body.cruisetalk-2.ct-past-cruises-page .entry-content .wp-block-column > :last-child {
		margin-block-end: 0 !important;
		margin-bottom: 0 !important;
	}
}

@media (max-width: 640px) {
	/*
	 * Future-proof Journey year navigation for 2024-2026 and later. Years remain
	 * individual flex items and may wrap to additional rows cleanly. Mobile uses
	 * spacing instead of dot separators so a wrapped row can never begin with a
	 * stranded separator.
	 */
	body.cruisetalk-2.ct-journeys-index-page .ct-journeys-jump__links {
		column-gap: 0.8rem;
		row-gap: 0.3rem;
	}

	body.cruisetalk-2.ct-journeys-index-page .ct-journeys-jump__links a + a::before {
		content: none;
		display: none;
		margin-right: 0;
	}
}



/* ==========================================================================
   12. About-page mobile rhythm correction — v0.8.41
   ========================================================================== */

@media (max-width: 700px) {
	/*
	 * The About page contains one additional nested Gutenberg layout layer that
	 * still preserved desktop block-gap spacing after v0.8.40. On a phone this
	 * compounded between the 1975 / Cruise Talk / CruiseOne story markers.
	 * Normalize the nested flow/flex gaps only on About; other Pages keep their
	 * accepted spacing and the Past Cruises v0.8.40 treatment is unchanged.
	 */
	body.cruisetalk-2.ct-about-page .entry-content :where(.wp-block-columns, .wp-block-group, .wp-block-column) {
		--wp--style--block-gap: 10px;
	}

	body.cruisetalk-2.ct-about-page .entry-content .wp-block-columns {
		gap: 18px !important;
	}

	body.cruisetalk-2.ct-about-page .entry-content .wp-block-columns > .wp-block-column,
	body.cruisetalk-2.ct-about-page .entry-content .wp-block-column > .wp-block-group,
	body.cruisetalk-2.ct-about-page .entry-content .wp-block-group > .wp-block-group {
		margin-block-start: 0 !important;
		margin-block-end: 0 !important;
	}

	/*
	 * WordPress layout classes can apply block-gap to nested groups rather than
	 * to the heading/paragraph itself. Override that structural gap explicitly,
	 * then use compact editorial margins for the text inside each stacked item.
	 */
	body.cruisetalk-2.ct-about-page .entry-content :where(.wp-block-column, .wp-block-group).is-layout-flow > * + *,
	body.cruisetalk-2.ct-about-page .entry-content :where(.wp-block-column, .wp-block-group).is-layout-constrained > * + * {
		margin-block-start: 10px !important;
	}

	body.cruisetalk-2.ct-about-page .entry-content h2 {
		margin-top: 22px !important;
		margin-bottom: 8px !important;
	}

	body.cruisetalk-2.ct-about-page .entry-content h3 {
		margin-top: 16px !important;
		margin-bottom: 6px !important;
	}

	body.cruisetalk-2.ct-about-page .entry-content h4 {
		margin-top: 12px !important;
		margin-bottom: 5px !important;
	}

	body.cruisetalk-2.ct-about-page .entry-content p {
		margin-top: 0 !important;
		margin-bottom: 0.8em !important;
	}

	/* No extra heading lift at the start of a stacked column/group. */
	body.cruisetalk-2.ct-about-page .entry-content :where(.wp-block-column, .wp-block-group) > :where(h2, h3, h4):first-child {
		margin-top: 0 !important;
	}

	/* Keep the end of each story marker from contributing another hidden gap. */
	body.cruisetalk-2.ct-about-page .entry-content :where(.wp-block-column, .wp-block-group) > :last-child {
		margin-bottom: 0 !important;
	}
}


/* ==========================================================================
   13. Narrow-phone final polish — v0.8.46
   ========================================================================== */

/*
 * Featured Cruises, Journeys Ahead, Century Club, and Why a Travel Advisor use
 * desktop multi-column editorial
 * blocks that become one long stack on phones. Keep the accepted typography,
 * but remove the compounded Gutenberg column/block gap that produced oversized
 * pauses between sibling feature points once those columns stack.
 */
@media (max-width: 700px) {
	body.cruisetalk-2:is(.ct-featured-cruises-page, .ct-journeys-ahead-page, .ct-century-club-page, .ct-travel-advisor-page) .entry-content .wp-block-columns {
		--wp--style--block-gap: 12px;
		column-gap: 20px;
		row-gap: 24px !important;
	}

	body.cruisetalk-2:is(.ct-featured-cruises-page, .ct-journeys-ahead-page, .ct-century-club-page, .ct-travel-advisor-page) .entry-content .wp-block-column {
		margin-bottom: 0;
	}

	body.cruisetalk-2:is(.ct-featured-cruises-page, .ct-journeys-ahead-page, .ct-century-club-page, .ct-travel-advisor-page) .entry-content .wp-block-column > :first-child {
		margin-block-start: 0 !important;
		margin-top: 0 !important;
	}

	body.cruisetalk-2:is(.ct-featured-cruises-page, .ct-journeys-ahead-page, .ct-century-club-page, .ct-travel-advisor-page) .entry-content .wp-block-column > :last-child {
		margin-block-end: 0 !important;
		margin-bottom: 0 !important;
	}

	body.cruisetalk-2:is(.ct-featured-cruises-page, .ct-journeys-ahead-page, .ct-century-club-page, .ct-travel-advisor-page) .entry-content .wp-block-column.is-layout-flow > * + *,
	body.cruisetalk-2:is(.ct-featured-cruises-page, .ct-journeys-ahead-page, .ct-century-club-page, .ct-travel-advisor-page) .entry-content .wp-block-column.is-layout-constrained > * + * {
		margin-block-start: 10px !important;
	}
}

/*
 * Below 400px, reclaim a little vertical and horizontal space without changing
 * the broader phone/tablet layout that passed at 390-440px.
 */
@media (max-width: 400px) {
	/* Standard Pages can begin slightly closer to the header on very small phones. */
	body.cruisetalk-2.page:not(.home) .site-content {
		padding-top: 6px;
	}

	/* Long Journey itinerary labels benefit from a shallower list indent. */
	body.cruisetalk-2.tax-post_series .ct-journey-itinerary__list > ul,
	body.cruisetalk-2.tax-post_series .ct-journey-itinerary__list > ol {
		padding-left: 1.05rem;
	}
}

/*
 * At classic 320-360px widths the decorative eyebrow rule can force otherwise
 * short labels onto an extra line. Shorten only the decoration/gap; typography
 * and wording remain unchanged.
 */
@media (max-width: 360px) {
	body.cruisetalk-2 .ct-eyebrow {
		gap: 0.55rem;
	}

	body.cruisetalk-2 .ct-eyebrow::before {
		flex-basis: 20px;
	}
}

