/* ==========================================================================
   Cerchio Trip Pages — front end + block editor styles
   Every rule is scoped to .ct-* classes so it never touches the rest of the site.
   ========================================================================== */

:root {
	--ct-ink: #2a2522;
	--ct-muted: #6f655d;
	--ct-cream: #fbf7f1;
	--ct-sand: #f3ece2;
	--ct-line: #e7ddd0;
	--ct-white: #ffffff;
	--ct-max: 1120px;
	--ct-radius: 16px;
	--ct-radius-sm: 10px;
	--ct-shadow: 0 1px 2px rgba(42, 37, 34, .06), 0 8px 24px rgba(42, 37, 34, .06);
	--ct-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--ct-display: "Playfair Display", Georgia, "Times New Roman", serif;
	--ct-gap: clamp(.75rem, 2vw, 1.25rem);
	--ct-pad: clamp(1rem, 4vw, 2rem);
	--ct-nav-h: 56px;
}

/* Classic (non block) themes wrap group contents in .wp-block-group__inner-container.
   Make that wrapper transparent so flex/grid trip layouts behave the same everywhere. */
[class*="ct-"].wp-block-group > .wp-block-group__inner-container { display: contents; }

/* Default accent for anything not given a colour */
.ct-sec { --ct-accent: var(--ct-terracotta, #c0573e); }

/* Priority / highlight helper variants (accent set via colour tokens) */
.ct-prio--now   { --ct-accent: var(--ct-terracotta, #c0573e); }
.ct-prio--soon  { --ct-accent: var(--ct-ochre, #c48a1c); }
.ct-prio--later { --ct-accent: var(--ct-aegean, #1f5f8b); }
.ct-highlight--roman { --ct-accent: var(--ct-roman, #6d3f6b); }

/* --------------------------------------------------------------------------
   Sections
   -------------------------------------------------------------------------- */
.ct-sec {
	box-sizing: border-box;
	font-family: var(--ct-font);
	color: var(--ct-ink);
	background: var(--ct-cream);
	padding: clamp(2.75rem, 6vw, 5rem) var(--ct-pad);
	line-height: 1.6;
	font-size: clamp(1rem, .96rem + .2vw, 1.0625rem);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.ct-sec *, .ct-sec *::before, .ct-sec *::after { box-sizing: border-box; }

/* Everything inside a section sits in a centred column — including any extra
   blocks you drop in between the trip items. */
:is(.ct-sec, :where(.ct-sec > .wp-block-group__inner-container)) > * {
	max-width: var(--ct-max);
	margin-left: auto !important;
	margin-right: auto !important;
}
:is(.ct-sec, :where(.ct-sec > .wp-block-group__inner-container)) > * + * { margin-top: clamp(1rem, 2.5vw, 1.75rem); }
:is(.ct-sec, :where(.ct-sec > .wp-block-group__inner-container)) > .alignwide { max-width: calc(var(--ct-max) + 160px); }
:is(.ct-sec, :where(.ct-sec > .wp-block-group__inner-container)) > .alignfull { max-width: none; }

.ct-sec h1, .ct-sec h2, .ct-sec h3 {
	font-family: var(--ct-display);
	color: inherit;
	line-height: 1.2;
	letter-spacing: -.01em;
	margin: 0;
}
.ct-sec h4, .ct-sec h5, .ct-sec h6 { font-family: var(--ct-font); margin: 0; color: inherit; }
:is(.ct-sec, :where(.ct-sec > .wp-block-group__inner-container)) > h2 { text-align: center; font-size: clamp(1.75rem, 1.3rem + 2vw, 2.6rem); }
.ct-sec p { margin: 0; }
.ct-sec a { color: var(--ct-accent); text-underline-offset: 3px; }
.ct-sec img { max-width: 100%; height: auto; display: block; }
.ct-sec figure { margin: 0; }
.ct-sec .wp-block-image img { border-radius: var(--ct-radius-sm); }

.ct-lede {
	text-align: center;
	color: var(--ct-muted);
	font-size: clamp(1.02rem, .98rem + .3vw, 1.15rem);
	max-width: 46rem !important;
	margin-top: .6rem !important;
}
:is(.ct-sec, :where(.ct-sec > .wp-block-group__inner-container)) > .ct-lede + * { margin-top: clamp(1.75rem, 4vw, 2.75rem); }

.ct-divided { border-top: 1px solid var(--ct-line); }
.ct-itinerary, .ct-tips-sec { background: var(--ct-sand); }

/* Full-bleed fallback for classic themes that don't support .alignfull */
body.ct-trip-page { overflow-x: clip; }
body.ct-trip-page .entry-content > .ct-sec.alignfull,
body.ct-trip-page .ct-sec.alignfull:not(.ct-sec .ct-sec) {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
}

/* --------------------------------------------------------------------------
   Hero (group or cover)
   -------------------------------------------------------------------------- */
.ct-hero {
	--ct-accent: var(--ct-ochre, #c48a1c);
	text-align: center;
	color: #fff;
	background:
		radial-gradient(120% 90% at 85% 0%, rgba(196, 138, 28, .35), transparent 55%),
		radial-gradient(90% 80% at 0% 100%, rgba(31, 95, 139, .45), transparent 60%),
		linear-gradient(135deg, #2c2a2b 0%, #5a2a22 55%, #c0573e 100%);
	padding-top: clamp(4rem, 12vw, 8rem);
	padding-bottom: clamp(4rem, 12vw, 8rem);
}
.ct-hero.wp-block-cover { background: #2c2a2b; min-height: clamp(420px, 70vh, 640px); }
.ct-hero .wp-block-cover__inner-container { max-width: var(--ct-max); color: #fff; }
.ct-hero .wp-block-cover__inner-container > * + * { margin-top: clamp(1rem, 2.5vw, 1.5rem); }
.ct-hero h1 {
	font-size: clamp(2.2rem, 1.4rem + 4.5vw, 4.4rem);
	color: #fff;
	text-wrap: balance;
	text-shadow: 0 2px 20px rgba(0, 0, 0, .25);
}
.ct-eyebrow-hero {
	text-transform: uppercase;
	letter-spacing: .18em;
	font-size: .8rem;
	font-weight: 600;
	color: #f4d9a0;
}
.ct-hero-dates { font-size: clamp(1.05rem, 1rem + .5vw, 1.3rem); opacity: .92; }
.ct-chips { gap: .5rem !important; justify-content: center; }
.ct-chip {
	display: inline-block;
	padding: .4rem .95rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, .14);
	border: 1px solid rgba(255, 255, 255, .28);
	font-size: .92rem;
	font-weight: 500;
	backdrop-filter: blur(4px);
	margin: 0 !important;
}

/* --------------------------------------------------------------------------
   Sticky section nav
   -------------------------------------------------------------------------- */
.ct-navbar {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
	padding: .55rem var(--ct-pad);
	background: rgba(255, 255, 255, .92);
	backdrop-filter: saturate(160%) blur(10px);
	border-bottom: 1px solid var(--ct-line);
	box-shadow: 0 2px 10px rgba(42, 37, 34, .05);
}
.ct-nav {
	display: flex;
	flex-wrap: nowrap !important;
	justify-content: flex-start;
	gap: .4rem !important;
	overflow-x: auto;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	scroll-snap-type: x proximity;
	padding: 2px;
}
.ct-nav::-webkit-scrollbar { display: none; }
@media (min-width: 900px) { .ct-nav { justify-content: center; } }
.ct-nav .wp-block-button { flex: 0 0 auto; margin: 0 !important; scroll-snap-align: start; }
.ct-nav .wp-block-button__link {
	display: inline-block;
	font-family: var(--ct-font);
	font-size: .88rem;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
	padding: .55rem .95rem;
	border-radius: 999px;
	color: var(--ct-ink) !important;
	background: transparent !important;
	border: 1px solid var(--ct-line);
	text-decoration: none;
	transition: background .15s, color .15s, border-color .15s;
}
.ct-nav .wp-block-button__link:hover,
.ct-nav .wp-block-button__link:focus-visible,
.ct-nav .wp-block-button__link.is-active {
	background: var(--ct-ink) !important;
	border-color: var(--ct-ink);
	color: #fff !important;
}

/* Anchored items stop below the sticky nav when jumped to */
.ct-sec[id], .ct-day[id], .ct-sec [id] {
	scroll-margin-top: calc(var(--ct-nav-h) + var(--wp-admin--admin-bar--height, 0px) + 12px);
}
html:has(.ct-navbar) { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html:has(.ct-navbar) { scroll-behavior: auto; } }

/* --------------------------------------------------------------------------
   Route timeline
   -------------------------------------------------------------------------- */
.ct-route {
	display: flex;
	align-items: flex-start;
	gap: 0;
	overflow-x: auto;
	padding: .5rem 0 1rem;
	scrollbar-width: thin;
}
.ct-stop {
	position: relative;
	flex: 1 0 104px;
	text-align: center;
	padding: 0 .25rem;
	margin: 0 !important;
}
.ct-stop + .ct-stop::before {
	content: "";
	position: absolute;
	top: 28px;
	right: calc(50% + 30px);
	width: calc(100% - 60px);
	height: 2px;
	background: repeating-linear-gradient(90deg, #cdbba6 0 6px, transparent 6px 11px);
}
:is(.ct-stop, :where(.ct-stop > .wp-block-group__inner-container)) > * { margin: 0 !important; }
.ct-stop-code {
	width: 56px;
	height: 56px;
	margin: 0 auto .6rem !important;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--ct-accent);
	color: #fff;
	font-weight: 700;
	font-size: .9rem;
	letter-spacing: .04em;
	box-shadow: 0 0 0 4px var(--ct-cream), 0 4px 12px rgba(0, 0, 0, .12);
}
.ct-stop-code a { color: #fff !important; text-decoration: none; display: grid; place-items: center; width: 100%; height: 100%; }
.ct-stop-date {
	font-size: .75rem;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--ct-muted);
	font-weight: 600;
}
.ct-stop-place { font-weight: 600; font-size: .95rem; line-height: 1.3; }
.ct-stop--minor .ct-stop-code {
	width: 40px;
	height: 40px;
	margin-top: 8px !important;
	font-size: .8rem;
	background: var(--ct-white);
	color: var(--ct-accent);
	border: 2px solid var(--ct-accent);
}
.ct-stop--minor .ct-stop-code a { color: var(--ct-accent) !important; }
.ct-stop--minor .ct-stop-place { font-weight: 500; color: var(--ct-muted); }

@media (max-width: 640px) {
	.ct-route { flex-direction: column; overflow: visible; padding: 0; max-width: 26rem !important; }
	.ct-stop {
		flex: none;
		display: grid;
		grid-template-columns: 56px 1fr;
		column-gap: 1rem;
		align-items: center;
		text-align: left;
		padding: .45rem 0;
	}
	.ct-stop-code { grid-row: span 2; margin: 0 !important; position: relative; z-index: 1; }
	.ct-stop--minor .ct-stop-code { margin: 0 auto !important; }
	.ct-stop-place { grid-column: 2; }
	.ct-stop + .ct-stop::before { display: none; }
	.ct-route { position: relative; }
	.ct-route::before {
		content: "";
		position: absolute;
		left: 27px;
		top: 34px;
		bottom: 34px;
		width: 2px;
		background: repeating-linear-gradient(180deg, #cdbba6 0 6px, transparent 6px 11px);
	}
}

/* --------------------------------------------------------------------------
   Grids (stats, destinations, tips, foods, footer stats)
   WordPress' Grid layout is kept, but columns auto-fit so there are no
   empty slots and cards reflow down to one column on phones.
   -------------------------------------------------------------------------- */
.ct-stats, .ct-dests, .ct-tips, .ct-foods, .ct-fstats {
	display: grid;
	gap: var(--ct-gap) !important;
	grid-template-columns: repeat(auto-fit, minmax(min(var(--ct-min, 12rem), 100%), 1fr)) !important;
}
.ct-stats  { --ct-min: 9rem; }
.ct-dests  { --ct-min: 14rem; }
/* Destinations use flex so 1–3 cards stay a sensible size and centre */
.ct-dests  { display: flex !important; flex-wrap: wrap; justify-content: center; }
:is(.ct-dests, :where(.ct-dests > .wp-block-group__inner-container)) > * { flex: 1 1 14rem; max-width: 22rem; }
.ct-tips   { --ct-min: 19rem; }
.ct-foods  { --ct-min: 12rem; }
.ct-fstats { --ct-min: 8rem; }
:is(.ct-stats, :where(.ct-stats > .wp-block-group__inner-container)) > *, :is(.ct-dests, :where(.ct-dests > .wp-block-group__inner-container)) > *, :is(.ct-tips, :where(.ct-tips > .wp-block-group__inner-container)) > *, :is(.ct-foods, :where(.ct-foods > .wp-block-group__inner-container)) > *, :is(.ct-fstats, :where(.ct-fstats > .wp-block-group__inner-container)) > * { margin: 0 !important; }
@media (max-width: 480px) { .ct-stats, .ct-fstats { grid-template-columns: repeat(2, 1fr) !important; } }

/* Stat tiles */
.ct-stat {
	background: var(--ct-white);
	border-radius: var(--ct-radius);
	border-top: 4px solid var(--ct-accent);
	box-shadow: var(--ct-shadow);
	padding: 1.25rem .75rem 1.1rem;
	text-align: center;
}
:is(.ct-stat, :where(.ct-stat > .wp-block-group__inner-container)) > * { margin: 0 !important; }
.ct-stat-num {
	font-family: var(--ct-display);
	font-size: clamp(2rem, 1.6rem + 1.6vw, 2.75rem);
	font-weight: 700;
	line-height: 1.05;
	color: var(--ct-accent);
}
.ct-stat-num a { color: inherit !important; text-decoration: none; }
.ct-stat-label {
	margin-top: .35rem !important;
	font-size: .78rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	font-weight: 600;
}
.ct-stat-note { margin-top: .3rem !important; font-size: .82rem; color: var(--ct-muted); font-style: italic; }

/* Destination cards */
.ct-dest {
	background: var(--ct-white);
	border-radius: var(--ct-radius);
	overflow: hidden;
	box-shadow: var(--ct-shadow);
	border-bottom: 4px solid var(--ct-accent);
	padding-bottom: 1.1rem;
	display: flex;
	flex-direction: column;
}
:is(.ct-dest, :where(.ct-dest > .wp-block-group__inner-container)) > * { margin: 0 !important; }
.ct-dest .wp-block-image { margin: 0 0 1rem !important; }
.ct-dest .wp-block-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 0;
}
.ct-dest h3, .ct-dest h4 { padding: 0 1.1rem; font-size: 1.35rem; }
.ct-dest h3 a, .ct-dest h4 a { color: var(--ct-ink) !important; text-decoration: none; }
.ct-dest p { padding: 0 1.1rem; margin-top: .35rem !important; }
.ct-dest-nights {
	align-self: flex-start;
	margin-left: 1.1rem !important;
	margin-top: .5rem !important;
	padding: .2rem .7rem !important;
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--ct-accent);
	background: color-mix(in srgb, var(--ct-accent) 12%, white);
}

/* --------------------------------------------------------------------------
   Itinerary — day cards
   -------------------------------------------------------------------------- */
.ct-days { display: flex; flex-direction: column; gap: clamp(1rem, 2.5vw, 1.5rem); }
:is(.ct-days, :where(.ct-days > .wp-block-group__inner-container)) > * { margin: 0 !important; }
:is(.ct-days, :where(.ct-days > .wp-block-group__inner-container)) > :not(.ct-day) { max-width: 100%; } /* blocks added between days */

.ct-day {
	position: relative;
	background: var(--ct-white);
	border-radius: var(--ct-radius);
	box-shadow: var(--ct-shadow);
	border-left: 6px solid var(--ct-accent);
	padding: clamp(1.25rem, 3.5vw, 2.1rem) clamp(1.1rem, 3.5vw, 2.25rem);
}
:is(.ct-day, :where(.ct-day > .wp-block-group__inner-container)) > * { margin-top: 0; margin-bottom: 0; }
:is(.ct-day, :where(.ct-day > .wp-block-group__inner-container)) > * + * { margin-top: .9rem !important; }

.ct-eyebrow {
	font-size: .75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .14em;
	color: var(--ct-accent);
}
.ct-day h3 { font-size: clamp(1.3rem, 1.1rem + 1vw, 1.7rem); margin-top: .35rem !important; text-wrap: balance; }
.ct-sub { color: var(--ct-muted); font-style: italic; margin-top: .3rem !important; }

.ct-time {
	font-size: .8rem !important;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--ct-ink);
	padding-top: 1rem;
	margin-top: 1.25rem !important;
	border-top: 1px solid var(--ct-line);
	display: flex;
	align-items: center;
	gap: .5rem;
}
:is(.ct-day, :where(.ct-day > .wp-block-group__inner-container)) > .ct-time:first-child, :is(.ct-option, :where(.ct-option > .wp-block-group__inner-container)) > .ct-time:first-child { border-top: 0; padding-top: 0; margin-top: 0 !important; }

.ct-acts {
	list-style: none !important;
	padding: 0 !important;
	margin-left: 0 !important;
}
.ct-time + .ct-acts { margin-top: .5rem !important; }
.ct-acts li {
	padding: .5rem 0 .5rem 0;
	margin: 0;
	border-bottom: 1px dashed var(--ct-line);
}
.ct-acts li:last-child { border-bottom: 0; }
.ct-acts li::marker { content: none; }

/* Highlights (paragraph or group) */
.ct-highlight {
	background: color-mix(in srgb, var(--ct-accent) 9%, white);
	border: 1px solid color-mix(in srgb, var(--ct-accent) 22%, white);
	border-left: 4px solid var(--ct-accent);
	border-radius: var(--ct-radius-sm);
	padding: .9rem 1.1rem !important;
}
:is(.ct-highlight, :where(.ct-highlight > .wp-block-group__inner-container)) > * { margin: 0 !important; }
:is(.ct-highlight, :where(.ct-highlight > .wp-block-group__inner-container)) > * + * { margin-top: .45rem !important; }
:is(.ct-highlight, :where(.ct-highlight > .wp-block-group__inner-container)) > p:first-child:not(:only-child) { font-weight: 700; color: var(--ct-accent); }
p.ct-highlight { font-weight: 500; }

/* Notes / logistics */
.ct-note {
	background: var(--ct-sand);
	border-radius: var(--ct-radius-sm);
	padding: .75rem 1rem !important;
	font-size: .95rem;
	color: #4b433d;
}

/* Option A / B blocks */
.ct-option {
	border: 1.5px solid color-mix(in srgb, var(--ct-accent) 40%, white);
	border-radius: var(--ct-radius-sm);
	padding: 1rem 1.15rem !important;
}
:is(.ct-option, :where(.ct-option > .wp-block-group__inner-container)) > * { margin-top: 0; }
:is(.ct-option, :where(.ct-option > .wp-block-group__inner-container)) > * + * { margin-top: .7rem !important; }
.ct-option--alt { border-style: dashed; border-color: var(--ct-line); background: #fdfbf8; }
.ct-option--alt .ct-time { color: var(--ct-muted); }

/* Photos dropped into a day */
.ct-day .wp-block-image, .ct-day .wp-block-gallery { margin-top: 1rem !important; }

/* --------------------------------------------------------------------------
   Booking checklist
   -------------------------------------------------------------------------- */
:is(.ct-checklist-sec, :where(.ct-checklist-sec > .wp-block-group__inner-container)) > .ct-prio + .ct-prio { margin-top: var(--ct-gap); }
.ct-prio {
	background: var(--ct-white);
	border-radius: var(--ct-radius);
	box-shadow: var(--ct-shadow);
	padding: clamp(1.1rem, 3vw, 1.75rem) !important;
	border-top: 5px solid var(--ct-accent);
}
:is(.ct-prio, :where(.ct-prio > .wp-block-group__inner-container)) > * { margin-top: 0; margin-bottom: 0; }
.ct-prio h3 {
	font-size: clamp(1.15rem, 1rem + .6vw, 1.4rem);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .6rem;
}
.ct-prio-count {
	font-family: var(--ct-font);
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .04em;
	padding: .2rem .6rem;
	border-radius: 999px;
	background: color-mix(in srgb, var(--ct-accent) 12%, white);
	color: var(--ct-accent);
}
.ct-checklist {
	list-style: none !important;
	padding: 0 !important;
	margin: .9rem 0 0 !important;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr));
	column-gap: 1.5rem;
}
.ct-checklist li {
	position: relative;
	padding: .6rem .25rem .6rem 2.25rem;
	margin: 0;
	border-bottom: 1px solid var(--ct-line);
	cursor: pointer;
	user-select: none;
	-webkit-tap-highlight-color: transparent;
	transition: color .15s;
}
.ct-checklist li::marker { content: none; }
.ct-checklist li::before {
	content: "";
	position: absolute;
	left: .1rem;
	top: .72rem;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 6px;
	border: 2px solid color-mix(in srgb, var(--ct-accent) 55%, white);
	background: var(--ct-white);
	display: grid;
	place-items: center;
	font-size: .8rem;
	line-height: 1;
	color: #fff;
	transition: background .15s, border-color .15s;
}
.ct-checklist li.is-done { color: var(--ct-muted); text-decoration: line-through; text-decoration-color: rgba(0, 0, 0, .3); }
.ct-checklist li.is-done::before { content: "✓"; background: var(--ct-accent); border-color: var(--ct-accent); font-weight: 700; }
.ct-checklist li:focus-visible { outline: 2px solid var(--ct-accent); outline-offset: 2px; border-radius: 4px; }

.ct-progress { max-width: 30rem !important; text-align: center; }
.ct-progress-bar { height: 8px; border-radius: 999px; background: var(--ct-line); overflow: hidden; }
.ct-progress-bar span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--ct-terracotta, #c0573e), var(--ct-ochre, #c48a1c)); transition: width .3s ease; }
.ct-progress-text { margin-top: .5rem !important; font-size: .85rem; color: var(--ct-muted); font-weight: 600; }

/* --------------------------------------------------------------------------
   Tips
   -------------------------------------------------------------------------- */
.ct-tip {
	background: var(--ct-white);
	border-radius: var(--ct-radius);
	box-shadow: var(--ct-shadow);
	padding: clamp(1.1rem, 3vw, 1.5rem) !important;
}
:is(.ct-tip, :where(.ct-tip > .wp-block-group__inner-container)) > * { margin-top: 0; margin-bottom: 0; }
:is(.ct-tip, :where(.ct-tip > .wp-block-group__inner-container)) > * + * { margin-top: .6rem !important; }
.ct-tip h3 { font-size: 1.2rem; }
.ct-tip p { font-size: .97rem; color: #453e39; }
.ct-tip--wide { grid-column: 1 / -1; }
:is(.ct-tip--wide, :where(.ct-tip--wide > .wp-block-group__inner-container)) > .ct-foods { margin-top: 1rem !important; }

.ct-food {
	border-radius: var(--ct-radius-sm);
	padding: 1rem 1.1rem !important;
	background: color-mix(in srgb, var(--ct-accent) 8%, white);
	border-top: 3px solid var(--ct-accent);
}
:is(.ct-food, :where(.ct-food > .wp-block-group__inner-container)) > * { margin: 0 !important; }
:is(.ct-food, :where(.ct-food > .wp-block-group__inner-container)) > * + * { margin-top: .4rem !important; }
.ct-food h4 { font-size: 1rem; font-weight: 700; color: var(--ct-accent); }
.ct-food p { font-size: .92rem; }

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.ct-footer {
	background: linear-gradient(160deg, #2b2826 0%, #3a2b26 60%, #4d2c23 100%);
	color: #f6efe6;
	text-align: center;
}
.ct-footer a { color: #f4d9a0; }
.ct-fstat { padding: .5rem; }
:is(.ct-fstat, :where(.ct-fstat > .wp-block-group__inner-container)) > * { margin: 0 !important; }
.ct-footer .ct-stat-num { color: #fff; }
.ct-footer .ct-stat-label { color: #d8c9b8; }
.ct-quote, .ct-sec .ct-quote.wp-block-quote {
	border: 0 !important;
	padding: 0 !important;
	max-width: 44rem !important;
	margin-top: clamp(2rem, 5vw, 3rem) !important;
	background: none;
}
.ct-quote p {
	font-family: var(--ct-display);
	font-style: italic;
	font-size: clamp(1.25rem, 1rem + 1.2vw, 1.75rem);
	line-height: 1.4;
	color: #fff;
}
.ct-quote cite { display: block; margin-top: .6rem; font-size: .85rem; font-style: normal; color: #d8c9b8; }
.ct-footer-cta { font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.1rem) !important; color: #fff; margin-top: clamp(2rem, 5vw, 3rem) !important; text-wrap: balance; }
.ct-footer-cta-text { color: #d8c9b8; max-width: 38rem !important; }
.ct-footer .wp-block-buttons { justify-content: center; }

.ct-btn .wp-block-button__link,
.ct-sec .wp-block-button.ct-btn .wp-block-button__link {
	background: var(--ct-terracotta, #c0573e) !important;
	color: #fff !important;
	border-radius: 999px;
	padding: .9rem 1.8rem;
	font-family: var(--ct-font);
	font-weight: 600;
	font-size: 1rem;
	text-decoration: none;
	box-shadow: 0 6px 18px rgba(192, 87, 62, .35);
	transition: transform .15s, box-shadow .15s;
}
.ct-btn .wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(192, 87, 62, .45); }

/* --------------------------------------------------------------------------
   Phones
   -------------------------------------------------------------------------- */
@media (max-width: 600px) {
	.ct-day { border-left-width: 5px; }
	.ct-highlight { padding: .8rem .9rem !important; }
	.ct-acts li { padding: .45rem 0; }
	.ct-checklist li { padding-top: .7rem; padding-bottom: .7rem; } /* bigger tap targets */
	.ct-checklist li::before { top: .8rem; }
}

/* --------------------------------------------------------------------------
   Block editor niceties
   -------------------------------------------------------------------------- */
.editor-styles-wrapper .ct-navbar { position: relative; top: 0; }
.editor-styles-wrapper .ct-checklist li { cursor: text; }
.editor-styles-wrapper .ct-route { overflow: visible; flex-wrap: wrap; row-gap: 1rem; }

/* Print — clean itinerary for clients who print it */
@media print {
	.ct-navbar, .ct-progress, .ct-footer .wp-block-buttons { display: none !important; }
	.ct-sec { background: #fff !important; padding: 1.5rem 0; }
	.ct-hero, .ct-footer { color: #000; background: #fff !important; }
	.ct-hero h1, .ct-quote p, .ct-footer-cta, .ct-footer .ct-stat-num { color: #000; text-shadow: none; }
	.ct-day, .ct-tip, .ct-prio, .ct-stat, .ct-dest { box-shadow: none; break-inside: avoid; border: 1px solid #ddd; }
}

/* Trip Insurance card + synced insurance banners (#22409) */
.ct-tip--insurance { --ct-accent: var(--ct-aegean, #1f5f8b); border-top: 4px solid var(--ct-accent); }
.ct-tip--insurance .wp-block-image,
.ct-tip--insurance figure { margin: 1rem 0 0 !important; }
.ct-tip--insurance img { width: 100%; max-width: 760px; height: auto; margin-inline: auto; border-radius: var(--ct-radius-sm); }
.ct-tip--insurance a img { transition: transform .15s, box-shadow .15s; }
.ct-tip--insurance a:hover img { transform: translateY(-1px); box-shadow: var(--ct-shadow); }
