/* ==========================================================================
   Wild Tours Africa — block layouts
   Maps core blocks and the theme's block styles (Styles panel in the editor)
   onto the design in main.css. Loaded on the site and inside the editor.
   ========================================================================== */

/* Page canvas ------------------------------------------------------------ */
.wt-blocks { padding: 0; }
.wt-blocks.is-layout-constrained > :not(.alignfull):not(.alignwide) { max-width: min(var(--wp--style--global--content-size, 720px), calc(100% - 2 * var(--gutter))); }
.wt-blocks.is-layout-constrained > .alignwide { max-width: min(var(--wp--style--global--wide-size, 1320px), calc(100% - 2 * var(--gutter))); }
.wt-blocks.is-layout-constrained > .alignfull,
.wt-blocks.is-layout-constrained > .alignfull + * { margin-block-start: 0; }
.wt-canvas > .alignfull:last-child { margin-block-end: 0; }
.wt-canvas--builder { width: 100%; }

/* Text defaults inside block layouts */
.wt-blocks h1.wp-block-heading,
.wt-blocks h2.wp-block-heading { font-size: clamp(2.2rem, 4.2vw, 3.6rem); }
.wt-blocks h3.wp-block-heading { font-size: 1.6rem; }
.wt-blocks .wp-block-heading em { font-style: italic; color: var(--c-orange-deep); }
.wt-blocks :where(.wp-block-cover, .is-style-wt-black, .is-style-wt-contours, .is-style-wt-forest, .is-style-wt-mudcloth, .is-style-wt-card) .wp-block-heading em { color: var(--c-orange-bright); }
.wt-blocks p { margin-block-end: 0; }
.wt-blocks .wt-intro { max-width: 52ch; font-size: 1.05rem; color: var(--c-muted); }
.wt-blocks :where(.is-style-wt-black, .is-style-wt-contours, .is-style-wt-forest, .is-style-wt-mudcloth) .wt-intro { color: rgba(255, 255, 255, 0.74); }
.wt-blocks .has-text-align-center.wt-intro { margin-inline: auto; }

/* Headings: display style */
.is-style-wt-display.wp-block-heading { font-size: clamp(2.8rem, 6.4vw, 5.8rem); line-height: 1.02; max-width: 16ch; }
h2.is-style-wt-display.wp-block-heading { font-size: clamp(2.8rem, 6vw, 5.2rem); max-width: 18ch; }

/* Paragraph: eyebrow label. Italic words render as the Swahili label. */
.is-style-wt-eyebrow {
	display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px;
	margin: 0 0 4px;
	font-family: var(--f-slab); font-size: 13px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
	color: var(--c-orange-deep);
}
.is-style-wt-eyebrow::before { content: ""; width: 32px; height: 1px; background: currentColor; }
.is-style-wt-eyebrow em { font-family: var(--f-serif); font-style: italic; font-size: 1.35rem; font-weight: 500; letter-spacing: 0; text-transform: none; line-height: 1; }
.is-style-wt-eyebrow em::after { content: "·"; margin-left: 12px; font-family: var(--f-slab); font-style: normal; font-size: 13px; opacity: 0.7; }
.is-style-wt-eyebrow.has-text-align-center { justify-content: center; }
:where(.wp-block-cover, .is-style-wt-black, .is-style-wt-contours, .is-style-wt-forest, .is-style-wt-mudcloth, .is-style-wt-card) .is-style-wt-eyebrow { color: var(--c-orange-bright); }

/* Paragraph: lead (hero supporting line) */
.is-style-wt-lead { max-width: 58ch; font-size: clamp(1.05rem, 1.4vw, 1.2rem); }
.wp-block-cover .is-style-wt-lead { color: rgba(255, 255, 255, 0.86); }

/* Drop cap */
.wt-blocks .has-drop-cap:not(:focus)::first-letter,
.editor-styles-wrapper .has-drop-cap:not(:focus)::first-letter { float: left; margin: 6px 12px 0 0; font-family: var(--f-serif); font-size: 4.6rem; font-weight: 500; line-height: 0.8; color: var(--c-orange); }

/* Buttons ------------------------------------------------------------------ */
.wt-blocks .wp-block-buttons { gap: 14px; }
.wt-blocks .wp-block-button__link,
.editor-styles-wrapper .wp-block-button__link {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 17px 32px; border: 1px solid transparent; border-radius: 0;
	background: var(--c-orange); color: var(--c-black);
	font-family: var(--f-sans); font-size: 13px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; line-height: 1.2;
	text-decoration: none;
	transition: background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
.wt-blocks .wp-block-button__link:hover { background: var(--c-black); color: var(--c-orange-bright); }
:where(.wp-block-cover, .is-style-wt-black, .is-style-wt-contours, .is-style-wt-forest, .is-style-wt-mudcloth) .wp-block-button:not(.is-style-wt-arrow):not(.is-style-wt-ghost) .wp-block-button__link:hover { background: var(--c-white); color: var(--c-black); }
.is-style-wt-dark .wp-block-button__link { background: var(--c-black); color: var(--c-white); }
.wt-blocks .is-style-wt-dark .wp-block-button__link:hover { background: var(--c-orange); color: var(--c-black); }
.is-style-wt-ghost .wp-block-button__link,
.is-style-outline .wp-block-button__link { background: transparent; border-color: rgba(255, 255, 255, 0.6); color: var(--c-white); }
.wt-blocks .is-style-wt-ghost .wp-block-button__link:hover { background: var(--c-white); border-color: var(--c-white); color: var(--c-black); }
.is-style-wt-arrow .wp-block-button__link,
.wt-blocks .is-style-wt-arrow .wp-block-button__link:hover { padding: 0 0 6px; background: none; border: 0; border-bottom: 1px solid var(--c-orange); color: inherit; }
.is-style-wt-arrow .wp-block-button__link::after { content: "\2192"; font-size: 1.1em; letter-spacing: 0; transition: transform .25s var(--ease); }
.is-style-wt-arrow .wp-block-button__link:hover::after { transform: translateX(5px); }

/* Sections (Group block styles) ------------------------------------------ */
.wp-block-group:is(.is-style-wt-section, .is-style-wt-bogolan, .is-style-wt-ivory, .is-style-wt-black, .is-style-wt-contours, .is-style-wt-forest, .is-style-wt-mudcloth, .is-style-wt-tracks) {
	position: relative; isolation: isolate;
	padding: var(--section) var(--gutter);
}
.is-style-wt-section, .is-style-wt-bogolan, .is-style-wt-tracks { background: var(--c-white); }
.is-style-wt-ivory { background: var(--c-ivory); }
.is-style-wt-black, .is-style-wt-contours { background: var(--c-black); color: var(--c-white); }
.is-style-wt-forest, .is-style-wt-mudcloth { background: var(--c-green); color: var(--c-white); }
.wt-partners-band.is-style-wt-black { padding-block: clamp(48px, 6vw, 80px); }

.is-style-wt-contours::before, .is-style-wt-mudcloth::before, .is-style-wt-bogolan::before, .is-style-wt-tracks::before { content: ""; position: absolute; z-index: -1; pointer-events: none; }
.is-style-wt-contours::before { inset: 0; background: url("../images/patterns/contours.svg") repeat center / 900px; opacity: 0.08; }
.is-style-wt-mudcloth::before { inset: 0; background: url("../images/patterns/mudcloth.svg") repeat center / 120px; opacity: 0.05; }
.is-style-wt-bogolan::before { top: 0; left: 0; right: 0; height: 18px; background: url("../images/patterns/bogolan.svg") repeat-x center / 48px 18px; opacity: 0.9; }
.is-style-wt-tracks::before { top: 40px; right: 2%; bottom: 40px; width: 240px; background: url("../images/patterns/tracks.svg") no-repeat center top / contain; opacity: 0.06; }

/* Space under a section's heading row */
.wt-section-head { margin-bottom: 0; }
.wt-blocks .wt-section-head + * { margin-block-start: clamp(40px, 5vw, 64px); }
.wt-blocks .wp-block-group > .wp-block-buttons:last-child { margin-block-start: 56px; }

/* Hero (Cover: "Safari hero") ---------------------------------------------- */
.wp-block-cover.is-style-wt-hero,
.wp-block-cover.is-style-wt-sunset { isolation: isolate; overflow: hidden; background: var(--c-black); }
.wp-block-cover.is-style-wt-hero { min-height: clamp(640px, 100svh, 1000px) !important; padding: calc(var(--header-h) + 64px) var(--gutter) clamp(150px, 17vw, 250px); }
.is-style-wt-hero .wp-block-cover__image-background { animation: hero-zoom 18s var(--ease) both; }
.is-style-wt-hero::before,
.is-style-wt-sunset::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.is-style-wt-hero::before {
	background:
		linear-gradient(to top, rgba(11, 12, 11, 0.6) 0%, rgba(11, 12, 11, 0.3) 40%, rgba(11, 12, 11, 0.08) 75%),
		linear-gradient(to right, rgba(11, 12, 11, 0.7), rgba(11, 12, 11, 0.25) 50%, transparent 75%);
}
.is-style-wt-hero::after,
.is-style-wt-sunset::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -1px; z-index: 1; pointer-events: none;
	height: clamp(120px, 15vw, 230px);
	background: url("../images/horizon-dark.svg") no-repeat center bottom / max(100%, calc(clamp(120px, 15vw, 230px) * 8)) 100%;
}
.is-style-wt-hero .wp-block-cover__inner-container { background: linear-gradient(transparent, transparent); }
.wp-block-cover.is-style-wt-hero > .wp-block-cover__background { background: linear-gradient(to top, rgba(242, 138, 58, 0.5), rgba(228, 111, 27, 0.18) 18%, transparent 42%) !important; opacity: 1 !important; mix-blend-mode: screen; }
.wp-block-cover:is(.is-style-wt-hero, .is-style-wt-sunset) .wp-block-cover__inner-container { z-index: 2; width: 100% !important; max-width: var(--wp--style--global--wide-size, 1320px); margin-inline: auto !important; }
.is-style-wt-hero .wp-block-buttons { margin-top: 40px; }
.is-style-wt-hero .is-style-wt-lead { margin-top: 28px; }

/* Closing invitation (Cover: "Closing invitation") */
.wp-block-cover.is-style-wt-sunset { min-height: 0 !important; padding: clamp(110px, 14vw, 200px) var(--gutter) clamp(190px, 20vw, 300px); }
.is-style-wt-sunset::before { background: linear-gradient(to right, rgba(11, 12, 11, 0.9) 0%, rgba(11, 12, 11, 0.6) 50%, rgba(11, 12, 11, 0.25) 100%); }
.is-style-wt-sunset::after { background-image: url("../images/horizon-green.svg"); }
.is-style-wt-sunset p:not(.is-style-wt-eyebrow) { max-width: 56ch; font-size: 1.08rem; color: rgba(255, 255, 255, 0.84); }
.is-style-wt-sunset .wp-block-buttons { margin-top: 40px; }

/* Story ------------------------------------------------------------------- */
.wt-story { gap: clamp(40px, 7vw, 120px) !important; }
.wt-story h2.wp-block-heading { font-size: clamp(2rem, 3.6vw, 3.1rem); line-height: 1.15; }
.wt-story > .wp-block-column:last-child { padding-top: clamp(0px, 6vw, 96px); font-size: 1.08rem; color: var(--c-muted); }
.wt-story .wp-block-image { margin-top: 48px; }

/* Images */
.wt-blocks .wp-block-image { margin: 0; }
.wt-blocks .wp-block-image img { width: 100%; }
.is-style-wt-captioned figcaption { margin-top: 14px; font-family: var(--f-serif); font-style: italic; font-size: 1.15rem; text-align: left; color: var(--c-muted); }

/* Quote: pull quote with elephant */
.wp-block-quote.is-style-wt-elephant { display: grid; grid-template-columns: 84px 1fr; gap: 24px; align-items: center; margin: 40px 0; padding: 28px 0; border: 0; border-block: 1px solid var(--c-line); }
.wp-block-quote.is-style-wt-elephant::before { content: ""; width: 84px; height: 64px; background: var(--c-orange); -webkit-mask: url("../images/marks/elephant.svg") no-repeat center / contain; mask: url("../images/marks/elephant.svg") no-repeat center / contain; }
.wp-block-quote.is-style-wt-elephant p { margin: 0; font-family: var(--f-serif); font-style: italic; font-size: clamp(1.4rem, 2.2vw, 1.8rem); line-height: 1.35; color: var(--c-text); }
.wp-block-quote.is-style-wt-elephant cite { grid-column: 2; font-style: normal; font-size: 0.9rem; color: var(--c-muted); }

/* Numbered trail (How we work) -------------------------------------------- */
.is-style-wt-trail { position: relative; counter-reset: trail; gap: 28px !important; grid-template-columns: repeat(auto-fit, minmax(min(10rem, 100%), 1fr)) !important; }
.is-style-wt-trail::before { content: ""; position: absolute; top: 28px; left: 28px; right: 28px; border-top: 2px dashed var(--c-orange); opacity: 0.55; }
.is-style-wt-trail > .wp-block-group { position: relative; counter-increment: trail; }
.is-style-wt-trail > .wp-block-group::before {
	content: counter(trail, decimal-leading-zero);
	position: relative; display: grid; place-items: center;
	width: 56px; height: 56px; margin-bottom: 24px;
	border: 2px solid var(--c-orange); border-radius: 50%; background: var(--c-ivory);
	font-family: var(--f-slab); font-size: 1.2rem; font-weight: 600; color: var(--c-orange-deep);
}
.is-style-wt-trail h3.wp-block-heading { font-size: 1.5rem; margin: 0 0 8px; }
.is-style-wt-trail p { margin: 0; font-size: 0.95rem; line-height: 1.6; color: var(--c-muted); }

/* Numbered list (Why travel with us) */
.is-style-wt-numbered { display: grid; gap: 28px; margin: 40px 0; counter-reset: reason; }
.is-style-wt-numbered > .wp-block-group { counter-increment: reason; display: grid; grid-template-columns: 64px 1fr; column-gap: 16px; padding-bottom: 28px; border-bottom: 1px solid var(--c-line); }
.is-style-wt-numbered > .wp-block-group::before { content: counter(reason, decimal-leading-zero); grid-row: span 2; font-family: var(--f-slab); font-size: 2.4rem; font-weight: 600; line-height: 1; color: var(--c-orange); }
.is-style-wt-numbered > .wp-block-group > * { grid-column: 2; margin: 0 !important; }
.is-style-wt-numbered h3.wp-block-heading { font-size: 1.6rem; margin-bottom: 6px !important; }
.is-style-wt-numbered p { color: var(--c-muted); }
.wt-why { gap: clamp(40px, 7vw, 110px) !important; }

/* Green info card (enquiry "What happens next") */
.is-style-wt-card { padding: clamp(28px, 3vw, 40px); background: var(--c-green); color: var(--c-white); }
.is-style-wt-card h2.wp-block-heading { font-size: 1.9rem; margin-bottom: 20px; }
.is-style-wt-card p { color: rgba(255, 255, 255, 0.8); font-size: 0.96rem; }
.wt-steps { list-style: none; counter-reset: step; display: grid; gap: 18px; padding: 0; margin: 0; }
.wt-steps li { counter-increment: step; position: relative; padding-left: 44px; font-size: 0.96rem; color: rgba(255, 255, 255, 0.82); }
.wt-steps li::before { content: counter(step, decimal-leading-zero); position: absolute; left: 0; top: -2px; font-family: var(--f-slab); font-weight: 600; font-size: 1.5rem; color: var(--c-orange-bright); }
.wt-steps strong { color: var(--c-white); }
.wt-enquiry { gap: clamp(40px, 6vw, 96px) !important; }
.wt-enquiry > .wp-block-column:last-child { position: sticky; top: calc(var(--header-h) + 72px); align-self: flex-start; }
.wt-enquiry .enquiry-form { margin-top: 40px; }

/* Theme blocks ------------------------------------------------------------- */
.wt-blocks .partners--logos { margin-top: 40px; }
.wt-blocks .partners--logos .partners__list { justify-content: center; }
.wt-block-empty { padding: 24px; border: 1px dashed var(--c-line); color: var(--c-muted); font-size: 0.95rem; }

/* Responsive --------------------------------------------------------------- */
@media (max-width: 1100px) {
	.is-style-wt-trail::before { display: none; }
	.wt-enquiry > .wp-block-column:last-child { position: static; }
}
@media (max-width: 900px) {
	.is-style-wt-tracks::before { display: none; }
	.wt-story > .wp-block-column:last-child { padding-top: 0; }
}
@media (max-width: 600px) {
	.is-style-wt-eyebrow em { flex-basis: 100%; }
	.is-style-wt-eyebrow em::after { display: none; }
	.wp-block-quote.is-style-wt-elephant { grid-template-columns: 1fr; }
	.wp-block-quote.is-style-wt-elephant cite { grid-column: 1; }
	.is-style-wt-hero .wp-block-button { flex: 1 1 100%; }
	.is-style-wt-hero .wp-block-button__link { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
	.is-style-wt-hero .wp-block-cover__image-background { animation: none; }
}

/* Editor only: keep fixed-position chrome out of the canvas, show reveal content */
.editor-styles-wrapper [data-reveal] { opacity: 1 !important; transform: none !important; }
.editor-styles-wrapper .wt-block-preview a { pointer-events: none; }

/* Elementor content inside theme layouts (destination, journey and experience bodies) */
.prose .elementor { max-width: none; }
.prose .elementor h2::before,
.prose--chapters .elementor h2::before { content: none; display: none; }
.prose--chapters .elementor h2 { counter-increment: none; padding-top: 0; }
.prose .elementor img { width: auto; }
.wt-canvas--builder > .elementor { width: 100%; }
