/* Organic — design-system tokens and component classes. This file is the source of truth for the system's look; retune it here and see readme.md. */

:root {
  --color-bg: #f5ead8;
  --color-surface: #ebddc5;
  --color-text: #201e1d;
  --color-accent: #c67139;
  --color-accent-2: #7a8a5e;
  --color-divider: color-mix(in srgb, #201e1d 16%, transparent);

  /* Tonal ramps — generated in OKLCH on one shared lightness scale, so the
     same step of any role matches the others in visual value. */
  --color-neutral-100: #f9f4ed;
  --color-neutral-200: #eee7db;
  --color-neutral-300: #dcd3c4;
  --color-neutral-400: #c0b6a5;
  --color-neutral-500: #a19786;
  --color-neutral-600: #82796a;
  --color-neutral-700: #645c50;
  --color-neutral-800: #474238;
  --color-neutral-900: #2e2b25;

  --color-accent-100: #fff2eb;
  --color-accent-200: #ffe1d0;
  --color-accent-300: #ffc6a5;
  --color-accent-400: #f6a06b;
  --color-accent-500: #d67f48;
  --color-accent-600: #b2622d;
  --color-accent-700: #8c491a;
  --color-accent-800: #643312;
  --color-accent-900: #402310;

  --color-accent-2-100: #f0fae1;
  --color-accent-2-200: #e1eecc;
  --color-accent-2-300: #ccdbb2;
  --color-accent-2-400: #aebf92;
  --color-accent-2-500: #8fa073;
  --color-accent-2-600: #728157;
  --color-accent-2-700: #56633f;
  --color-accent-2-800: #3d472b;
  --color-accent-2-900: #272e1b;

  --font-heading: "Caprasimo", system-ui, sans-serif;
  --font-heading-weight: 400;
  --font-body: "Figtree", system-ui, sans-serif;

  --space-1: 4.4px;
  --space-2: 8.8px;
  --space-3: 13.2px;
  --space-4: 17.6px;
  --space-6: 26.4px;
  --space-8: 35.2px;

  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 28px;

  /* Elevation — derived from the ground: soft ink-tinted shadows on a
     light theme, a hairline edge + ambient darkness on a dark one. */
  --shadow-sm: 0 1px 2px color-mix(in srgb, #2e2b25 14%, transparent);
  --shadow-md: 0 3px 10px color-mix(in srgb, #2e2b25 16%, transparent);
  --shadow-lg: 0 12px 32px color-mix(in srgb, #2e2b25 22%, transparent);
}

body {
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
}
h1, h2, h3, h4 { font-family: var(--font-heading); font-weight: var(--font-heading-weight); }

.washed{filter:saturate(0.6) contrast(0.85) brightness(1.1) opacity(0.94)}

/* ══════════════════════════════════════════════════════════════════════════
   Components — built with the tokens above. Plain CSS
   on plain HTML: no JavaScript, no build step. Each class is documented in
   readme.md and demonstrated in foundations/ and components/.
   ══════════════════════════════════════════════════════════════════════ */

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-size: 15px; line-height: 1.55; font-weight: 400; }
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  line-height: 1.12; letter-spacing: -0.015em; margin: 0 0 var(--space-2);
}
h1 { font-size: 42px; }
h2 { font-size: 32px; }
h3 { font-size: 25px; }
h4 { font-size: 20px; }
h5 { font-size: 16px; }
h6 { font-size: 13px; }
h6 { letter-spacing: 0.08em; text-transform: uppercase; }
p { margin: 0 0 var(--space-3); }
a { color: var(--color-accent); text-underline-offset: 3px; }
img { display: block; max-width: 100%; }
figure { margin: 0; }
figcaption {
  font-size: 11px; margin-top: var(--space-1);
  color: color-mix(in srgb, var(--color-text) 55%, transparent);
}
.text-muted { color: color-mix(in srgb, var(--color-text) 55%, transparent); }
:focus { outline: none; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
::selection { background: color-mix(in srgb, var(--color-accent) 30%, transparent); }

/* — rules — */
.hr {
  height: 1px; border: 0; margin: var(--space-4) 0;
  background: var(--color-divider);
}

/* — buttons — */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  cursor: pointer; text-decoration: none;
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 14px; line-height: 1.2; color: var(--color-text); /* matches the .input's 14px —
     the pair sits side by side in sign-up rows */
  background: transparent; border: 1px solid transparent;
  padding: var(--space-2) calc(var(--space-3) * 1.2);
  border-radius: var(--radius-md);
}
.btn svg { display: block; }
.btn:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-primary { background: var(--color-accent); color: var(--color-bg); }
.btn-primary:hover { background: var(--color-accent-600); }
.btn-primary:active { background: var(--color-accent-700); }
.btn-secondary { border-color: var(--color-divider); }
.btn-secondary:hover { background: color-mix(in srgb, var(--color-text) 7%, transparent); }
.btn-secondary:active { background: color-mix(in srgb, var(--color-text) 14%, transparent); }
.btn-ghost { color: var(--color-accent); padding-inline: var(--space-1); }
.btn-ghost:hover { background: color-mix(in srgb, var(--color-accent) 10%, transparent); }
.btn-ghost:active { background: color-mix(in srgb, var(--color-accent) 18%, transparent); }
.btn-icon { width: 36px; height: 36px; padding: 0; }
.btn-block { width: 100%; margin-top: var(--space-2); }

/* — forms — */
.field > label {
  display: block; font-size: 12px; margin-bottom: 5px;
  color: color-mix(in srgb, var(--color-text) 70%, transparent);
}
.input {
  width: 100%; min-height: 36px; padding: 6px 10px; font: inherit;
  font-size: 14px; color: var(--color-text); caret-color: var(--color-accent);
  background: var(--color-surface);
  border: 1px solid var(--color-divider); border-radius: var(--radius-md);
}
.input:hover { border-color: color-mix(in srgb, var(--color-text) 45%, transparent); }
.input:focus-visible { border-color: var(--color-accent); outline-offset: 0; }
textarea.input { min-height: 90px; resize: vertical; }
.radio { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 14px; }
.radio input, .seg-opt input {
  position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none;
}
.radio .dot {
  width: 16px; height: 16px; flex: none; border-radius: 50%;
  border: 1.5px solid var(--color-divider);
}
.radio:hover .dot { border-color: var(--color-accent); }
.radio input:checked + .dot {
  border-color: var(--color-accent); background: var(--color-accent);
  box-shadow: inset 0 0 0 4px var(--color-bg);
}
.radio input:focus-visible + .dot { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.seg {
  display: inline-flex; overflow: hidden;
  border: 1px solid var(--color-divider); border-radius: var(--radius-md);
}
.seg-opt {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 12px; font-size: 13px; cursor: pointer;
}
.seg-opt + .seg-opt { border-left: 1px solid var(--color-divider); }
.seg-opt:has(input:checked) { background: var(--color-accent); color: var(--color-bg); }
.seg-opt:not(:has(input:checked)):hover { background: color-mix(in srgb, var(--color-text) 7%, transparent); }
.seg-opt:has(input:focus-visible) { outline: 2px solid var(--color-accent); outline-offset: -2px; }

/* — cards — */
.card {
  display: flex; flex-direction: column; gap: var(--space-2);
  padding: var(--space-3); border-radius: var(--radius-md); background: var(--color-surface);
}
.card-kicker { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-accent); }
.card-title {
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 17px; line-height: 1.2;
}
.card-body { margin: 0; font-size: 13px; opacity: 0.8; flex: 1; }
.card-meta {
  display: flex; align-items: center; gap: 6px; font-size: 11px;
  color: color-mix(in srgb, var(--color-text) 50%, transparent);
}
.elev-sm { box-shadow: var(--shadow-sm); }
.elev-md { box-shadow: var(--shadow-md); }
.elev-lg { box-shadow: var(--shadow-lg); }

/* — tags — */
.tag {
  display: inline-flex; align-items: center; font-size: 11px;
  letter-spacing: 0.02em; padding: 3px 10px;
  border-radius: calc(var(--radius-md) * 0.75);
}
.tag-accent { background: var(--color-accent-100); color: var(--color-accent-800); }
.tag-accent-2 { background: var(--color-accent-2-100); color: var(--color-accent-2-800); }
.tag-neutral { background: var(--color-neutral-100); color: var(--color-neutral-800); }
.tag-outline { border: 1px solid var(--color-accent); color: var(--color-accent); }

/* — navigation — */
.nav {
  display: flex; align-items: center; gap: var(--space-4);
  padding: var(--space-3) var(--space-4);
  border-bottom: none;
}
.nav-brand {
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 18px; margin-right: auto;
}
.nav a { color: inherit; text-decoration: none; font-size: 14px; }
.nav a:hover, .nav a[aria-current='page'] { color: var(--color-accent); }

/* — tables — */
.table { width: 100%; border-collapse: collapse; font-size: 14px; }
.table th {
  text-align: left; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
  color: color-mix(in srgb, var(--color-text) 60%, transparent);
  padding: var(--space-2); border-bottom: 1px solid var(--color-divider);
}
.table td {
  padding: var(--space-2);
  border-bottom: 1px solid color-mix(in srgb, var(--color-text) 8%, transparent);
}
.table tbody tr:hover { background: color-mix(in srgb, var(--color-text) 4%, transparent); }

/* — dialog — */
.dialog-backdrop {
  position: fixed; inset: 0; display: grid; place-items: center;
  padding: var(--space-4);
  background: color-mix(in srgb, var(--color-neutral-900) 50%, transparent);
}
.dialog {
  width: min(440px, 100%); display: flex; flex-direction: column; gap: var(--space-3);
  padding: var(--space-4); border-radius: var(--radius-lg);
  background: var(--color-surface); box-shadow: var(--shadow-lg);
}
.dialog-title {
  font-family: var(--font-heading); font-weight: var(--font-heading-weight);
  font-size: 20px;
}
.dialog-body { font-size: 14px; opacity: 0.85; }
.dialog-actions { display: flex; justify-content: flex-end; gap: var(--space-2); margin-top: var(--space-2); }

/* — rounded frame: everything softens, small controls go pill — */
.card, .dialog { border-radius: calc(var(--radius-lg) * 1.15); }
.btn, .tag, .seg, .input { border-radius: 999px; }
.input { padding-inline: 14px; }


/* ── Page overrides carried verbatim from the prototype (Design E) ── */
:root {
  --color-bg: #fbfaf8; --color-surface: #f1f4f2; --color-text: #16211e;
  --color-accent: #1f5d52; --color-accent-100: #f0f7f5; --color-accent-200: #dbeae6;
  --color-accent-300: #b4d2ca; --color-accent-400: #74aca0; --color-accent-500: #1f5d52;
  --color-accent-600: #1a5148; --color-accent-700: #16443d; --color-accent-800: #113630;
  --color-accent-900: #0b2621;
  --color-accent-2: #c9922f; --color-accent-2-100: #fdf8ee; --color-accent-2-200: #f8edd6;
  --color-accent-2-300: #eed9a8; --color-accent-2-400: #ddb862; --color-accent-2-500: #c9922f;
  --color-accent-2-600: #b07f26; --color-accent-2-700: #8f661d; --color-accent-2-800: #6d4d16;
  --color-accent-2-900: #4a340f;
  --color-neutral-200: #f0f1f0; --color-neutral-300: #e0e3e1; --color-neutral-700: #616a67;
  --color-neutral-800: #3a4340; --color-neutral-900: #1c2523; --color-divider: #dfe4e2;
}
body { margin: 0; background: var(--color-bg); color: var(--color-text); }
a { color: var(--color-accent-700); text-decoration: none; }
a:hover { color: var(--color-accent-600); text-decoration: underline; }
.strip::-webkit-scrollbar { height: 0; }
@keyframes omRise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes omFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes omPulse { 0%, 100% { transform: scale(1); opacity: .55; } 50% { transform: scale(1.55); opacity: 0; } }
.om-r { opacity: 0; }
.om-r.om-in { animation: omRise .78s cubic-bezier(.22,.68,.2,1) both; }
.card { transition: transform .35s cubic-bezier(.22,.68,.2,1), box-shadow .35s ease; }
.card:hover { transform: translateY(-5px); }
.om-zoom img { transition: transform .7s cubic-bezier(.22,.68,.2,1); }
.om-zoom:hover img { transform: scale(1.05); }
a, button, .btn, .tag { transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s ease, opacity .25s ease; }
.btn:hover, a[href]:hover { transform: translateY(-2px); }
details summary { transition: color .25s ease; }
details[open] summary { color: var(--color-accent-700); }
@media (prefers-reduced-motion: reduce) { .om-r, .om-r.om-in { animation: none !important; opacity: 1 !important; } .card:hover, .btn:hover, a[href]:hover { transform: none; } }
details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }
details[open] .chev { transform: rotate(180deg); }
/* Tour product page — every rule below is the prototype's inline declaration, unchanged. */

.tp-container { max-width: 1240px; margin: 0 auto; padding: 0 28px; }

/* Top bar */
.tp-nav { padding-left: 0; padding-right: 0; }
.tp-nav-brand { font-size: 22px; }
.tp-nav-links { display: flex; align-items: center; gap: 22px; font-size: 14px; }
.tp-nav-phone { font-family: var(--font-heading); font-size: 16px; }

/* Hero */
.tp-hero { position: relative; background: linear-gradient(180deg, #143f37 0%, #143f37 62%, #2b7f6f 100%); overflow: hidden; }
.tp-hero-inner { position: relative; max-width: 1560px; margin: 0 auto; padding: 56px 0 0 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); gap: 40px; align-items: start; }
.tp-hero-text { padding: 10px 40px 48px 60px; }
.tp-crumbs { display: flex; gap: 8px; font-size: 13px; color: rgba(255,255,255,.7); margin-bottom: 18px; }
.tp-crumb { display: flex; gap: 8px; }
.tp-crumb-sep { opacity: .55; }
.tp-tabs { display: flex; gap: 8px; margin-bottom: 20px; }
.tp-tab { border-radius: 999px; padding: 9px 20px; font-family: var(--font-heading); font-size: 15px; cursor: pointer; background: transparent; color: #ffffff; border: 1px solid rgba(255,255,255,.45); }
.tp-tab.is-active { background: #f5b23f; color: #143f37; border: 0; }
.tp-kicker { font-size: 15px; letter-spacing: .2em; text-transform: uppercase; color: #e8a33d; font-weight: 700; margin-bottom: 14px; }
.tp-h1 { font-size: 52px; line-height: 1.07; margin: 0 0 10px; color: #ffffff; max-width: 20ch; }
.tp-sub { font-family: var(--font-heading); font-size: 19px; color: #f5b23f; margin-bottom: 18px; }
.tp-rating { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; }
.tp-stars { display: flex; gap: 4px; color: #4bbfa8; }
.tp-rating-text { font-size: 16px; font-style: italic; color: #ffffff; }
.tp-perks { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.tp-perk { display: flex; align-items: center; gap: 13px; font-size: 17px; color: #ffffff; }
.tp-perk-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 999px; background: rgba(255,255,255,.14); color: #ffffff; flex: none; }
.tp-highlights { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.tp-highlight { display: flex; align-items: baseline; gap: 14px; font-size: 18px; line-height: 1.4; color: #ffffff; }
.tp-highlight-dot { width: 7px; height: 7px; border-radius: 999px; background: #e8a33d; flex: none; transform: translateY(-3px); }

.tp-hero-media { padding: 34px 60px 48px 0; }
.tp-media-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 14px; align-items: stretch; }
.tp-video { position: relative; border-radius: 16px; overflow: hidden; background: #0b2621; aspect-ratio: 9 / 16; }
.tp-fill { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tp-play { position: absolute; inset: 0; display: grid; place-items: center; border: 0; background: rgba(11,38,33,.24); cursor: pointer; }
.tp-play-ring { display: grid; place-items: center; width: 82px; height: 82px; border-radius: 999px; border: 3px solid rgba(255,255,255,.9); color: #ffffff; }
.tp-reel-badge-wrap { position: absolute; inset: 16px 16px auto auto; }
.tp-reel-badge { display: inline-flex; align-items: center; gap: 7px; background: rgba(11,38,33,.6); color: #ffffff; border-radius: 999px; padding: 7px 14px; font-size: 12.5px; }
.tp-photo-col { display: grid; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tp-photo-tile { position: relative; border-radius: 16px; overflow: hidden; }
.tp-more { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; border: 0; background: rgba(11,38,33,.6); color: #ffffff; cursor: pointer; }
.tp-more-label { font-family: var(--font-heading); font-size: 17px; }
.tp-cta-row { display: flex; align-items: center; flex-wrap: nowrap; margin-top: 20px; gap: 12px; }
.tp-cta { display: inline-flex; align-items: center; justify-content: center; gap: 9px; flex: 1 1 0; min-width: 0; box-sizing: border-box; border-radius: 999px; padding: 16px 14px; font-family: var(--font-heading); font-size: 14.5px; white-space: nowrap; text-decoration: none; }
.tp-cta-primary, .tp-cta-primary:hover { background: #f5b23f; color: #143f37; border: 2px solid #f5b23f; text-decoration: none; }
.tp-cta-primary:hover { background: #e8a33d; }
.tp-cta-secondary, .tp-cta-secondary:hover { background: transparent; color: #ffffff; border: 2px solid rgba(255,255,255,.6); text-decoration: none; }
.tp-cta-secondary:hover { background: rgba(255,255,255,.12); border-color: #ffffff; }
.tp-cta-note { font-size: 14px; color: rgba(255,255,255,.72); margin-top: 12px; }

/* Sticky anchor bar */
.tp-sticky { position: sticky; top: 0; z-index: 40; background: #ffffff; box-shadow: 0 2px 10px rgba(20,63,55,.1); }
.tp-sticky-inner { max-width: 1560px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: stretch; }
.tp-anchors { flex: 1 1 380px; min-width: 0; display: flex; align-items: center; justify-content: flex-start; gap: 0; padding: 0 20px; overflow-x: auto; }
.tp-anchor, .tp-anchor:hover { font-family: var(--font-heading); font-size: 17px; color: #143f37; padding: 22px 22px; white-space: nowrap; }
.tp-anchor.is-active, .tp-anchor.is-active:hover { color: #e8930f; }
.tp-anchor-sep { width: 1px; align-self: stretch; margin: 22px 0; background: #dcdfdd; }
.tp-sticky-right { flex: 0 1 auto; display: flex; align-items: center; flex-wrap: wrap; gap: 18px; background: #143f37; padding: 14px 26px; }
.tp-sticky-rating { display: flex; align-items: center; gap: 10px; color: #ffffff; }
.tp-rating-chip { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 999px; background: #4bbfa8; color: #0b2621; font-family: var(--font-heading); font-size: 14px; }
.tp-sticky-rating-text { font-size: 13px; line-height: 1.3; color: rgba(255,255,255,.82); }
.tp-sticky-price { display: flex; align-items: baseline; gap: 12px; color: #ffffff; padding-left: 22px; border-left: 1px solid rgba(255,255,255,.25); }
.tp-from { font-size: 14px; letter-spacing: .1em; text-transform: uppercase; }
.tp-price-big { font-family: var(--font-heading); font-size: 30px; }
.tp-sticky-book, .tp-sticky-book:hover { display: inline-flex; align-items: center; gap: 12px; background: #f5b23f; color: #143f37; border-radius: 999px; padding: 15px 30px; font-family: var(--font-heading); font-size: 18px; text-decoration: none; }
.tp-sticky-book:hover { background: #e8a33d; }

/* Main body */
.tp-main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 360px); gap: 46px; align-items: start; padding: 54px 0 0; }
.tp-col { display: flex; flex-direction: column; gap: 66px; }

/* Overview */
.tp-summary { font-size: 18px; line-height: 1.65; margin: 0 0 16px; text-wrap: pretty; }
.tp-summary2 { font-size: 16px; line-height: 1.65; margin: 0 0 30px; color: var(--color-neutral-800); max-width: 66ch; }
.tp-overview-cards { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 360px); gap: 34px; align-items: start; margin-bottom: 30px; }
.tp-card-pad { padding: 24px 26px; gap: 6px; }
.tp-glance { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.tp-glance td { padding: 11px 0; }
.tp-glance td:first-child { color: var(--color-neutral-700); }
.tp-glance td:last-child { text-align: right; font-weight: 700; }
.tp-card-p { margin: 0; font-size: 15px; line-height: 1.65; color: var(--color-neutral-800); }
.tp-facts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 14px; background: #143f37; border-radius: var(--radius-lg); padding: 6px 22px; }
.tp-fact { min-width: 0; padding: 18px 0; }
.tp-fact-k { font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: #e8a33d; margin-bottom: 5px; }
.tp-fact-v { font-family: var(--font-heading); font-size: 14.5px; line-height: 1.3; color: #ffffff; overflow-wrap: break-word; }

/* Section headings */
.tp-sec-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.tp-sec-head--dates { gap: 20px; }
.tp-sec-head--reviews { gap: 20px; flex-wrap: wrap; margin-bottom: 20px; }
.tp-h2 { font-size: 34px; margin: 0; }
.tp-h2-it { font-size: 34px; margin: 0 0 8px; }
.tp-h2-pr { font-size: 34px; margin: 0 0 18px; }
.tp-h2-recos { font-size: 34px; margin: 0 0 20px; }

/* Photo carousel */
.tp-arrows { display: flex; gap: 8px; }
.tp-arrow { width: 44px; height: 44px; }
.tp-strip { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.tp-fig { flex: none; width: 380px; margin: 0; scroll-snap-align: start; }
.tp-fig-img { height: 268px; border-radius: var(--radius-lg); overflow: hidden; }
.tp-img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tp-figcap { font-size: 13px; color: var(--color-neutral-700); padding-top: 8px; }

/* Itinerary */
.tp-intro { margin: 0 0 24px; font-size: 15px; color: var(--color-neutral-700); }
.tp-days { display: flex; flex-direction: column; gap: 10px; }
.tp-day { padding: 0; gap: 0; overflow: hidden; scroll-margin-top: 120px; }
.tp-day.is-open { box-shadow: 0 0 0 2px var(--color-accent-500), var(--shadow-md); }
.tp-day-sum { display: grid; grid-template-columns: 92px minmax(0, 1fr) 26px; gap: 18px; align-items: center; padding: 20px 24px; }
.tp-day-pill { display: inline-flex; align-items: center; justify-content: center; padding: 6px 0; border-radius: 999px; background: var(--color-accent-200); color: var(--color-accent-800); font-family: var(--font-heading); font-size: 14px; }
.tp-day-title { display: block; font-family: var(--font-heading); font-size: 20px; line-height: 1.25; }
.tp-day-meta { display: block; font-size: 13px; color: var(--color-neutral-700); margin-top: 2px; }
.tp-chev { color: var(--color-accent-600); transition: transform .2s; display: grid; place-items: center; }
.tp-day-body { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 24px; padding: 4px 24px 24px 134px; align-items: start; }
.tp-day-text { margin: 0 0 14px; font-size: 15.5px; line-height: 1.65; color: var(--color-neutral-800); }
.tp-specs { display: grid; grid-template-columns: 118px minmax(0, 1fr); gap: 0 16px; margin-bottom: 14px; border-top: 1px solid var(--color-divider); }
.tp-spec { display: grid; grid-template-columns: subgrid; grid-column: span 2; border-bottom: 1px solid var(--color-divider); padding: 9px 0; font-size: 14px; }
.tp-spec-k { font-size: 11px; letter-spacing: .09em; text-transform: uppercase; color: var(--color-accent-700); padding-top: 2px; }
.tp-spec-v { color: var(--color-neutral-800); }
.tp-chain { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.tp-chain-item { display: flex; align-items: center; gap: 9px; font-size: 14px; }
.tp-chain-dot { width: 7px; height: 7px; border-radius: 999px; background: var(--color-accent-500); flex: none; }
.tp-chain-arrow { color: var(--color-accent-400); }
.tp-day-img { height: 160px; border-radius: var(--radius-lg); overflow: hidden; }

.tp-map-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: start; margin-top: 26px; }

.tp-stops { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 2px 14px; }
.tp-stop-line { display: none; }
.tp-stop-rail { height: auto; }
.tp-map-card { padding: 18px; gap: 8px; }
.tp-map-frame { position: relative; height: 520px; border-radius: var(--radius-lg); overflow: hidden; margin: 2px 0 12px; }
.tp-map-iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.tp-stops { border-radius: var(--radius-lg); background: var(--color-bg); padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.tp-stop { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; gap: 10px; align-items: center; width: 100%; border: 0; cursor: pointer; padding: 7px 8px; border-radius: 12px; background: transparent; }
.tp-stop.is-active { background: var(--color-accent-200); }
.tp-stop-rail { display: flex; flex-direction: column; align-items: center; height: 100%; }
.tp-stop-dot { width: 10px; height: 10px; border-radius: 999px; flex: none; background: var(--color-accent-500); }
.tp-stop.is-active .tp-stop-dot { background: var(--color-accent-700); }
.tp-stop-line { flex: 1; width: 2px; background: var(--color-accent-300); min-height: 10px; }
.tp-stop-name { font-family: var(--font-heading); font-size: 14px; text-align: left; }
.tp-stop-when { font-size: 11.5px; color: var(--color-neutral-700); }

/* Dates & prices */
.tp-toggle { display: flex; gap: 8px; }
.tp-btn-sm { font-size: 13.5px; }
.tp-btn-cal { display: inline-flex; align-items: center; gap: 8px; }
.tp-deps { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
.tp-dep { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto 110px auto; gap: 16px; align-items: center; width: 100%; text-align: left; padding: 14px 20px; border-radius: var(--radius-lg); box-sizing: border-box; cursor: pointer; opacity: 1; background: var(--color-surface); border: 2px solid transparent; }
.tp-dep.is-selected { background: var(--color-accent-200); border-color: var(--color-accent-500); }
.tp-dep.is-full { cursor: not-allowed; opacity: .55; }
.tp-radio { width: 20px; height: 20px; border-radius: 999px; box-sizing: border-box; border: 2px solid var(--color-neutral-300); background: transparent; }
.tp-dep.is-selected:not(.is-full) .tp-radio { border-color: var(--color-accent-600); background: radial-gradient(var(--color-accent-600) 0 45%, transparent 46%); }
.tp-dep-dates { text-align: left; }
.tp-dep-from { display: block; font-family: var(--font-heading); font-size: 17px; }
.tp-dep-to { display: block; font-size: 13px; color: var(--color-neutral-700); }
.tp-dep-price { font-family: var(--font-heading); font-size: 19px; text-align: right; }
.tp-dep-book { font-size: 13px; padding: 8px 16px; }
.tp-dep-book.is-full { opacity: .6; cursor: not-allowed; }

.tp-cal { padding: 24px 26px; gap: 0; margin-bottom: 16px; }
.tp-months { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; }
.tp-month-title { font-family: var(--font-heading); font-size: 18px; margin-bottom: 12px; }
.tp-month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.tp-dh { text-align: center; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--color-neutral-700); padding-bottom: 4px; }
.tp-cell { height: 38px; border-radius: 10px; border: 0; font-family: var(--font-heading); font-size: 14px; box-sizing: border-box; }
.tp-cell--blank { border: 0; background: transparent; padding: 0; height: 38px; }
.tp-cell--none { background: var(--color-neutral-200); color: var(--color-neutral-700); cursor: default; }
.tp-cell--full { background: var(--color-neutral-300); color: var(--color-neutral-700); cursor: not-allowed; text-decoration: line-through; }
.tp-cell--sel { cursor: pointer; background: var(--color-accent-500); color: #ffffff; }
.tp-cell--ok { cursor: pointer; background: var(--color-accent-2-300); color: var(--color-accent-2-900); }
.tp-cell--few { cursor: pointer; background: var(--color-accent-200); color: var(--color-accent-800); }
.tp-legend { display: flex; align-items: center; gap: 22px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--color-divider); font-size: 13px; color: var(--color-neutral-800); }
.tp-legend-item { display: flex; align-items: center; gap: 8px; }
.tp-sw { width: 14px; height: 14px; border-radius: 6px; }

.tp-selbar { padding: 18px 22px; gap: 0; margin-bottom: 16px; flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.tp-kicker0 { margin: 0; }
.tp-sel-label { font-family: var(--font-heading); font-size: 19px; }
.tp-sel-right { display: flex; align-items: center; gap: 16px; }
.tp-sel-price { font-family: var(--font-heading); font-size: 22px; }
.tp-sel-per { font-size: 13px; }
.tp-nodate { margin: 0 0 26px; font-size: 14px; color: var(--color-neutral-700); }
.tp-incl-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; margin-bottom: 26px; align-items: start; }
.tp-inc-card { background: #fff; border: 1px solid rgba(31, 30, 28, 0.08); border-radius: 14px; padding: 28px 30px; box-shadow: 0 1px 3px rgba(31, 30, 28, 0.05); }
.tp-inc-title { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; font-size: 14px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }
.tp-inc-title svg { width: 18px; height: 18px; }
.tp-inc-title-yes { color: #2e5c40; }
.tp-inc-title-no { color: #8a6a35; }
.tp-inc-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.tp-inc-list li { display: flex; align-items: flex-start; gap: 12px; font-size: 15.5px; line-height: 1.55; color: var(--color-neutral-800); }
.tp-inc-ic { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; margin-top: 1px; }
.tp-inc-ic svg { width: 13px; height: 13px; }
.tp-inc-yes { background: rgba(46, 92, 64, 0.12); color: #2e5c40; }
.tp-inc-no { background: rgba(178, 58, 50, 0.12); color: #b23a32; }
.tp-h3 { font-size: 21px; margin: 0 0 10px; }
.tp-list { margin: 0; padding-left: 20px; font-size: 15px; line-height: 1.9; color: var(--color-neutral-800); }
.tp-h4 { font-size: 16px; margin: 16px 0 6px; }
.tp-budget { margin: 0; font-size: 15px; line-height: 1.65; color: var(--color-neutral-800); }
.tp-h3-addons { font-size: 21px; margin: 0 0 12px; }
.tp-addons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.tp-addon { padding: 18px 20px; gap: 4px; }
.tp-addon-t { font-family: var(--font-heading); font-size: 17px; line-height: 1.3; }
.tp-addon-s { font-size: 14px; line-height: 1.55; color: var(--color-neutral-800); }
.tp-addon-p { font-size: 14px; color: var(--color-accent-700); font-weight: 700; margin-top: 4px; }
.tp-prices { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.tp-price-card { border-radius: var(--radius-lg); padding: 16px 18px; background: var(--color-surface); }
.tp-price-card.is-best { background: var(--color-accent-200); }
.tp-price-g { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--color-accent-700); }
.tp-price-p { font-family: var(--font-heading); font-size: 26px; }
.tp-price-per { font-size: 12.5px; color: var(--color-neutral-700); }

/* Practical info */
.tp-info-tabs { display: flex; gap: 8px; margin-bottom: 22px; flex-wrap: wrap; }
.tp-info-blocks { display: flex; flex-direction: column; gap: 22px; }
.tp-info-t { font-size: 20px; margin: 0 0 8px; }
.tp-info-b { margin: 0; font-size: 15.5px; line-height: 1.68; color: var(--color-neutral-800); max-width: 70ch; }
.tp-faq-wrap { margin-top: 26px; }
.tp-faq-h { font-size: 20px; margin: 0 0 12px; }
.tp-faq { border-top: 1px solid var(--color-divider); padding: 16px 0; }
.tp-faq-q { display: flex; align-items: start; justify-content: space-between; gap: 16px; font-family: var(--font-heading); font-size: 18px; line-height: 1.3; }
.tp-faq-chev { color: var(--color-accent-600); flex: none; transition: transform .2s; }
.tp-faq-a { margin: 11px 0 0; font-size: 15px; line-height: 1.65; color: var(--color-neutral-800); max-width: 70ch; }

/* Reviews */
.tp-reviews { display: flex; flex-direction: column; }
.tp-review { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 26px; padding: 24px 0; border-top: 1px solid var(--color-divider); }
.tp-rev-head { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.tp-initials { width: 38px; height: 38px; border-radius: 999px; background: var(--color-accent-200); color: var(--color-accent-800); display: grid; place-items: center; font-family: var(--font-heading); font-size: 14px; flex: none; }
.tp-rev-name { font-weight: 700; font-size: 15px; }
.tp-rev-meta { font-size: 12.5px; color: var(--color-neutral-700); }
.tp-rev-tag { margin-top: 8px; }
.tp-rev-stars { display: flex; gap: 3px; color: var(--color-accent-2-500); margin-bottom: 8px; }
.tp-rev-text { margin: 0; font-size: 16px; line-height: 1.65; color: var(--color-neutral-800); text-wrap: pretty; }

/* You may also like */
.tp-recos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.tp-reco { padding: 0; overflow: hidden; gap: 0; }
.tp-reco-img { height: 190px; overflow: hidden; }
.tp-reco-body { padding: 18px 20px; }
.tp-reco-k { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--color-accent-700); margin-bottom: 5px; }
.tp-reco-t { font-size: 19px; margin: 0 0 8px; line-height: 1.25; }
.tp-reco-m { font-size: 13.5px; color: var(--color-neutral-700); }

/* Sidebar */
.tp-aside { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 84px; }
.tp-book { padding: 20px 22px; gap: 8px; }
.tp-book-note { font-size: 12px; color: var(--color-neutral-700); text-align: center; }
.tp-advisor { padding: 22px; align-items: center; text-align: center; gap: 6px; }
.tp-avatar { width: 76px; height: 76px; border-radius: 999px; overflow: hidden; }
.tp-advisor-k { margin-top: 6px; }
.tp-advisor-name { font-family: var(--font-heading); font-size: 21px; }
.tp-advisor-role { font-size: 13.5px; color: var(--color-neutral-700); margin-bottom: 8px; }
.tp-advisor-phone { font-size: 13.5px; color: var(--color-neutral-700); }
.tp-blog { padding: 18px 20px; gap: 0; height: 305px; box-sizing: border-box; justify-content: space-between; }
.tp-post, .tp-post:hover { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 12px; align-items: center; text-decoration: none; color: inherit; }
.tp-post-img { height: 52px; border-radius: 14px; overflow: hidden; }
.tp-post-t { font-family: var(--font-heading); font-size: 14.5px; line-height: 1.25; }
.tp-post-m { font-size: 12px; color: var(--color-neutral-700); margin-top: 2px; }
.tp-all { font-size: 13px; }

/* Footer */
.tp-footer { background: var(--color-accent-900); color: #eef5f3; margin-top: 70px; }
.tp-footer-inner { max-width: 1240px; margin: 0 auto; padding: 34px 28px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.tp-footer-brand { font-family: var(--font-heading); font-size: 22px; }
.tp-footer-line { font-size: 13.5px; color: var(--color-accent-300); }

/* ── Site pages (home / listing / contact) — spacing glue only; every visual
   block is reused verbatim from the validated tour page. ── */
.hp-section { padding: 66px 0 0; }
.hp-page-head { padding: 54px 0 0; }
.hp-last { padding-bottom: 4px; }

/* ── Responsive — derived from the handoff's suggested mobile shape
   (single column, inlined sidebar, sticky bottom CTA, carousel kept). ── */

@media (max-width: 1080px) {
  .tp-hero-inner { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 28px; max-width: 720px; }
  .tp-hero-text { padding: 10px 28px 26px; }
  .tp-hero-media { padding: 0 28px 40px; }
  .tp-h1 { font-size: 38px; }
  .tp-main { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .tp-aside { position: static; }
  .tp-overview-cards { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .tp-map-row { grid-template-columns: minmax(0, 1fr); }
  .tp-recos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tp-prices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hp-hero-media { padding: 0 28px 40px; }
}

@media (max-width: 760px) {
  .tp-container { padding: 0 16px; }
  .tp-nav { flex-wrap: wrap; gap: 10px; padding-top: 12px; padding-bottom: 12px; }
  .tp-nav-links { flex-wrap: wrap; gap: 12px 14px; }
  .tp-hero-text { padding: 6px 18px 20px; }
  .tp-hero-media { padding: 0 18px 28px; }
  .tp-h1 { font-size: 30px; }
  .tp-sub { font-size: 17px; }
  .tp-kicker { font-size: 13px; }
  .tp-perk { font-size: 15px; }
  .tp-highlight { font-size: 15.5px; }
  .tp-media-grid { gap: 10px; }
  .tp-photo-col { gap: 10px; }
  .tp-video, .tp-media-grid > .tp-photo-tile:first-child { aspect-ratio: 3 / 4; }
  .tp-cta-row { flex-wrap: wrap; }
  .tp-cta { flex: 1 1 100%; }

  /* Sticky bar becomes a fixed bottom CTA bar */
  .tp-sticky { position: fixed; top: auto; bottom: 0; left: 0; right: 0; box-shadow: 0 -2px 10px rgba(20, 63, 55, .18); }
  .tp-anchors { display: none; }
  .tp-sticky-right { width: 100%; justify-content: space-between; padding: 10px 16px; gap: 10px; flex-wrap: nowrap; }
  .tp-sticky-rating { display: none; }
  .tp-sticky-price { padding-left: 0; border-left: 0; }
  .tp-price-big { font-size: 24px; }
  .tp-sticky-book { padding: 12px 20px; font-size: 15.5px; }
  body:has(.tp-sticky) { padding-bottom: 66px; }

  .tp-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 6px 18px; }
  .tp-fact { padding: 12px 0; }
  .tp-h2, .tp-h2-it, .tp-h2-pr, .tp-h2-recos { font-size: 27px; }
  .tp-sec-head { flex-wrap: wrap; gap: 12px; }
  .tp-fig { width: 78vw; }
  .tp-fig-img { height: 220px; }
  .tp-day-sum { grid-template-columns: 64px minmax(0, 1fr) 20px; gap: 10px; padding: 14px 14px; }
  .tp-day-pill { font-size: 12.5px; }
  .tp-day-title { font-size: 17px; }
  .tp-day-body { grid-template-columns: minmax(0, 1fr); padding: 4px 16px 18px; }
  .tp-day-img { height: 200px; }
  .tp-specs { grid-template-columns: 96px minmax(0, 1fr); }
  .tp-dep { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 14px 16px; }
  .tp-dep-dates { flex: 1 1 auto; }
  .tp-legend { flex-wrap: wrap; gap: 10px 18px; }
  .tp-incl-grid { grid-template-columns: minmax(0, 1fr); }
  .tp-addons { grid-template-columns: minmax(0, 1fr); }
  .tp-recos { grid-template-columns: minmax(0, 1fr); }
  .tp-review { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 18px 0; }
  .tp-months { grid-template-columns: minmax(0, 1fr); }
  .tp-selbar { gap: 12px; }
  .tp-footer-inner { justify-content: center; text-align: center; }
  .hp-hero-media { padding: 0 18px 28px; }
  .hp-section { padding: 44px 0 0; }
  .hp-page-head { padding: 36px 0 0; }
}

/* CTA pill (band) */
.hp-cta-btn, .hp-cta-btn:hover { display: inline-flex; align-items: center; justify-content: center; gap: 9px; border-radius: 999px; padding: 15px 26px; font-family: var(--font-heading); font-size: 14.5px; white-space: nowrap; text-decoration: none; background: #f5b23f; color: #143f37; border: 2px solid #f5b23f; }
.hp-cta-btn:hover { background: #e8a33d; }

/* ── Home v3 — structural transposition of the atalante.fr layout into the
   validated Kingdom system (green/amber, Caprasimo). Content is Kingdom's own. ── */

.at-hero { position: relative; overflow: hidden; }
.at-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.at-hero-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,38,33,.30) 0%, rgba(11,38,33,.06) 45%, rgba(11,38,33,.38) 100%); }
.at-hero-sub { font-family: var(--font-heading); font-size: 21px; color: #f5b23f; margin: 0 0 26px; text-shadow: 0 2px 14px rgba(11,38,33,.6); }
.at-hero-inner { position: relative; max-width: 1240px; margin: 0 auto; padding: 150px 28px 64px; }
.at-hero-h1 { font-size: 56px; line-height: 1.07; margin: 0 0 12px; color: #ffffff; max-width: 19ch; text-shadow: 0 2px 18px rgba(11,38,33,.65); }
.at-searchbar { display: flex; align-items: center; gap: 12px; background: #ffffff; border-radius: 999px; padding: 8px 8px 8px 24px; max-width: 640px; box-shadow: var(--shadow-md); }
.at-searchbar-label { flex: 1 1 auto; font-size: 15px; color: var(--color-neutral-700); white-space: nowrap; overflow: hidden; }
.at-searchbar-btn, .at-searchbar-btn:hover { display: inline-flex; align-items: center; gap: 9px; background: #f5b23f; color: #143f37; border-radius: 999px; padding: 13px 24px; font-family: var(--font-heading); font-size: 14.5px; white-space: nowrap; text-decoration: none; flex: none; }
.at-searchbar-btn:hover { background: #e8a33d; }
.at-hero-pills { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.at-hero-pill, .at-hero-pill:hover { display: inline-flex; align-items: center; border-radius: 999px; padding: 9px 18px; font-family: var(--font-heading); font-size: 13.5px; text-decoration: none; background: rgba(11,38,33,.45); color: #ffffff; border: 1.5px solid rgba(255,255,255,.55); }
.at-hero-pill:hover { background: rgba(255,255,255,.16); border-color: #ffffff; }

.at-sec { padding: 66px 0 0; }
.at-sec-head { text-align: center; margin-bottom: 26px; }
.at-kicker { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--color-accent-2-600); margin-bottom: 8px; }
.at-h2 { font-size: 34px; margin: 0; color: var(--color-accent-800); }
.at-head-row { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }

.at-card, .at-card:hover { display: flex; flex-direction: column; flex: none; width: 380px; scroll-snap-align: start; border-radius: var(--radius-lg); overflow: hidden; background: #143f37; color: #ffffff; text-decoration: none; }
.at-card-imgwrap { position: relative; height: 235px; overflow: hidden; }
.at-card-price { position: absolute; top: 14px; right: 14px; background: #f5b23f; color: #143f37; border-radius: 999px; padding: 7px 14px; font-family: var(--font-heading); font-size: 13px; box-shadow: var(--shadow-sm); }
.at-card-body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 8px; }
.at-card-k { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.72); }
.at-card-t { font-family: var(--font-heading); font-size: 20px; line-height: 1.25; color: #f5b23f; margin: 0; }
.at-card-meta { display: flex; align-items: center; gap: 14px; font-size: 13px; color: rgba(255,255,255,.85); border-top: 1px solid rgba(255,255,255,.18); padding-top: 12px; margin-top: 4px; }

.at-split { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 40px; align-items: start; }
.at-split--rev { grid-template-columns: minmax(0, 1fr) minmax(0, 380px); }
.at-split-h2 { font-size: 34px; margin: 0 0 14px; color: var(--color-accent-800); }
.at-split-p { font-size: 15.5px; line-height: 1.65; color: var(--color-neutral-800); margin: 0 0 20px; max-width: 44ch; }
.at-split-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.at-split-cards .at-card { width: auto; }

.at-cats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.at-cat, .at-cat:hover { position: relative; display: block; height: 210px; border-radius: var(--radius-lg); overflow: hidden; text-decoration: none; }
.at-cat img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s cubic-bezier(.22,.68,.2,1); }
.at-cat:hover img { transform: scale(1.05); }
.at-cat-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,38,33,0) 35%, rgba(11,38,33,.72) 100%); }
.at-cat-label { position: absolute; left: 18px; bottom: 14px; font-family: var(--font-heading); font-size: 20px; color: #ffffff; }

.at-mag-card, .at-mag-card:hover { display: block; border-radius: var(--radius-lg); overflow: hidden; background: var(--color-surface); text-decoration: none; color: inherit; }
.at-mag-img { height: 200px; overflow: hidden; }
.at-mag-body { padding: 16px 20px 20px; }
.at-mag-t { font-family: var(--font-heading); font-size: 18px; line-height: 1.3; margin: 4px 0 0; color: var(--color-accent-800); }

.at-reviews { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.at-review { padding: 20px 20px 18px; gap: 8px; }
.at-review-q { font-size: 14.5px; line-height: 1.55; color: var(--color-neutral-800); margin: 0; }
.at-review-who { font-size: 12.5px; color: var(--color-neutral-700); }

.at-tabs { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; margin-bottom: 26px; }
.at-tab { border: 0; background: transparent; cursor: pointer; font-family: var(--font-heading); font-size: 15px; color: var(--color-accent-800); padding: 10px 16px 12px; border-bottom: 3px solid transparent; }
.at-tab.is-active { border-bottom-color: #f5b23f; color: var(--color-accent-900); }
.at-tab-panel { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 34px; align-items: center; }
.at-tab-img { height: 250px; border-radius: var(--radius-lg); overflow: hidden; }

.at-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.at-step { padding: 22px 24px; gap: 8px; }
.at-step-n { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 999px; background: var(--color-accent-200); color: var(--color-accent-800); font-family: var(--font-heading); font-size: 16px; }
.at-step-t { font-family: var(--font-heading); font-size: 18px; }
.at-step-p { font-size: 14px; line-height: 1.55; color: var(--color-neutral-800); margin: 0; }

.at-band { position: relative; overflow: hidden; margin-top: 66px; }
.at-band-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.at-band-scrim { position: absolute; inset: 0; background: rgba(11,38,33,.62); }
.at-band-inner { position: relative; max-width: 760px; margin: 0 auto; text-align: center; padding: 74px 28px; }
.at-band-h2 { font-size: 34px; color: #ffffff; margin: 0 0 12px; }
.at-band-p { font-size: 15.5px; line-height: 1.65; color: rgba(255,255,255,.85); margin: 0 0 22px; }

.at-contactstrip { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 26px 0; border-top: 1px solid var(--color-divider); border-bottom: 1px solid var(--color-divider); margin-top: 66px; }
.at-contactstrip-t { font-family: var(--font-heading); font-size: 22px; color: var(--color-accent-900); }
.at-contact-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }

.at-brand { position: relative; overflow: hidden; }
.at-brand-img { width: 100%; height: 360px; object-fit: cover; display: block; }
.at-brand-scrim { position: absolute; inset: 0; background: rgba(11,38,33,.35); display: grid; place-items: center; }
.at-brand-word { font-family: var(--font-heading); font-size: 58px; color: #ffffff; text-align: center; padding: 0 20px; }

.at-footer-cols { max-width: 1240px; margin: 0 auto; padding: 44px 28px 10px; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 30px; }
.at-footer-h { font-family: var(--font-heading); font-size: 15px; color: #f5b23f; margin-bottom: 12px; }
.at-footer-cols a, .at-footer-cols a:hover { display: block; color: rgba(255,255,255,.82); font-size: 14px; text-decoration: none; margin-bottom: 8px; }
.at-footer-cols a:hover { color: #ffffff; text-decoration: underline; }
.at-footer-txt { color: rgba(255,255,255,.72); font-size: 14px; line-height: 1.6; }

@media (max-width: 1080px) {
  .at-hero-inner { padding: 110px 28px 50px; }
  .at-hero-h1 { font-size: 38px; }
  .at-split, .at-split--rev, .at-tab-panel { grid-template-columns: minmax(0, 1fr); }
  .at-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .at-reviews { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .at-footer-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .at-hero-inner { padding: 84px 18px 38px; }
  .at-hero-h1 { font-size: 30px; }
  .at-searchbar { flex-wrap: wrap; border-radius: var(--radius-lg); padding: 12px; }
  .at-searchbar-btn { width: 100%; justify-content: center; }
  .at-card { width: 78vw; }
  .at-split-cards { grid-template-columns: minmax(0, 1fr); }
  .at-cats { grid-template-columns: minmax(0, 1fr); }
  .at-reviews { grid-template-columns: minmax(0, 1fr); }
  .at-steps { grid-template-columns: minmax(0, 1fr); }
  .at-brand-word { font-size: 36px; }
  .at-footer-cols { grid-template-columns: minmax(0, 1fr); }
  .at-h2, .at-split-h2, .at-band-h2 { font-size: 27px; }
}

/* ── Home v3.1 — tighter structural symmetry with the reference layout ── */
.tp-nav--dark { background: #0b2621; }
.tp-nav--dark .nav-brand, .tp-nav--dark a, .tp-nav--dark .tp-nav-phone { color: #ffffff; }
.tp-nav--dark a:hover { color: #f5b23f; }
.tp-nav--dark .btn-secondary { border-color: rgba(255,255,255,.55); color: #143f37; background: #f5b23f; border-color: #f5b23f; }
.tp-nav--dark .btn-secondary:hover { background: #e8a33d; }
.tp-navwrap--dark { background: #0b2621; }

.at-hero-video { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.at-hero-video iframe { position: absolute; top: 50%; left: 50%; width: max(100vw, 235vh); height: max(56.25vw, 132.2vh); transform: translate(-50%, -50%); border: 0; }
.at-hero--video .at-hero-inner { min-height: calc(94vh - 64px); display: flex; flex-direction: column; justify-content: center; padding-top: 60px; padding-bottom: 70px; }
.at-hero-pill, .at-hero-pill:hover { background: rgba(11,38,33,.72); border: 0; padding: 10px 20px; }
.at-hero-pill:hover { background: rgba(11,38,33,.9); }

.at-carousel { position: relative; }
.at-nav-btn { position: absolute; top: 42%; z-index: 5; width: 46px; height: 46px; border-radius: 999px; background: #ffffff; border: 1px solid var(--color-divider); box-shadow: var(--shadow-md); display: grid; place-items: center; cursor: pointer; color: var(--color-accent-800); }
.at-nav-btn:hover { background: var(--color-neutral-200); }
.at-nav-btn--prev { left: -12px; }
.at-nav-btn--next { right: -12px; }
.at-dots { display: flex; justify-content: center; gap: 8px; margin-top: 18px; }
.at-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--color-neutral-400); border: 0; padding: 0; cursor: pointer; transition: background .2s, transform .2s; }
.at-dot.is-active { background: #f5b23f; transform: scale(1.3); }

.at-magbig, .at-magbig:hover { position: relative; display: block; height: 320px; border-radius: var(--radius-lg); overflow: hidden; text-decoration: none; }
.at-magbig img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s cubic-bezier(.22,.68,.2,1); }
.at-magbig:hover img { transform: scale(1.05); }
.at-magbig-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,38,33,.05) 30%, rgba(11,38,33,.78) 100%); }
.at-magbig-txt { position: absolute; left: 20px; right: 20px; bottom: 18px; }
.at-magbig-k { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: #f5b23f; margin-bottom: 6px; }
.at-magbig-t { font-family: var(--font-heading); font-size: 21px; line-height: 1.25; color: #ffffff; margin: 0; }

.at-review { position: relative; }
.at-review .btn { align-self: flex-start; margin-top: 4px; }
.at-more { text-align: center; margin-top: 24px; }

.at-btn-green, .at-btn-green:hover { display: inline-flex; align-items: center; gap: 8px; background: #143f37; color: #ffffff; border-radius: 999px; padding: 13px 24px; font-family: var(--font-heading); font-size: 14px; text-decoration: none; border: 2px solid #143f37; }
.at-btn-green:hover { background: #0b2621; border-color: #0b2621; }
.at-btn-ghostwhite, .at-btn-ghostwhite:hover { display: inline-flex; align-items: center; gap: 8px; background: transparent; color: #ffffff; border: 2px solid rgba(255,255,255,.7); border-radius: 999px; padding: 13px 24px; font-family: var(--font-heading); font-size: 14px; text-decoration: none; }
.at-btn-ghostwhite:hover { background: rgba(255,255,255,.14); border-color: #ffffff; }

.at-news { background: #143f37; border-radius: var(--radius-lg); padding: 24px 24px 20px; }
.at-news-t { font-family: var(--font-heading); font-size: 18px; color: #ffffff; margin: 0 0 6px; }
.at-news-p { font-size: 13px; color: rgba(255,255,255,.75); margin: 0 0 14px; }
.at-news-row { display: flex; gap: 8px; }
.at-news-row .input { border-radius: 999px; background: #ffffff; border: 0; min-height: 44px; }
.at-news-btn { flex: none; background: #f5b23f; color: #143f37; border: 0; border-radius: 999px; padding: 0 20px; font-family: var(--font-heading); font-size: 13.5px; cursor: pointer; }
.at-news-btn:hover { background: #e8a33d; }
.at-news-ok { font-size: 13px; color: #4bbfa8; margin-top: 10px; }

.at-badges { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; max-width: 1240px; margin: 6px auto 0; padding: 0 28px; }
.at-badge { border: 1px solid rgba(255,255,255,.3); color: rgba(255,255,255,.8); border-radius: 999px; padding: 6px 14px; font-size: 12px; }

.at-float-wa { position: fixed; right: 22px; bottom: 22px; z-index: 55; width: 58px; height: 58px; border-radius: 999px; background: #f5b23f; color: #143f37; display: grid; place-items: center; box-shadow: var(--shadow-lg); }
body:has(.tp-mobile.is-open) .at-float-wa { display: none; }

/* ── Category pillar: citable answer, compare table, on-page FAQ ── */
.ab-answer { font-size: 18.5px; line-height: 1.7; color: var(--color-neutral-900); max-width: 72ch; margin: 0 auto; border-left: 3px solid #f5b23f; padding-left: 18px; }
.ab-cmp-wrap { max-width: 1000px; margin: 26px auto 8px; padding: 0 28px; overflow-x: auto; }
.ab-cmp { border-collapse: collapse; width: 100%; min-width: 680px; font-size: 14.5px; }
.ab-cmp th { text-align: left; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--color-neutral-700); border-bottom: 2px solid var(--color-divider); padding: 9px 12px 7px; }
.ab-cmp td { border-bottom: 1px solid var(--color-divider); padding: 11px 12px; vertical-align: top; font-variant-numeric: tabular-nums; }
.ab-cmp td a { color: var(--color-accent-800); font-weight: 600; text-decoration: none; }
.ab-cmp td a:hover { text-decoration: underline; }
.ab-cmp-note { font-size: 13.5px; color: var(--color-neutral-700); margin: 12px 0 0; }
.ab-faq { max-width: 780px; margin: 0 auto; padding: 6px 28px 8px; }
.ab-review { max-width: 680px; margin: 34px auto 6px; padding: 0 28px; text-align: center; }
.ab-review .tp-rev-stars { color: #e8a33d; }
.ab-review-quote { font-family: var(--font-heading); font-size: 21px; line-height: 1.5; color: var(--color-neutral-900); margin: 14px 0 10px; }
.ab-review-who { font-size: 13.5px; color: var(--color-neutral-700); }
.ab-review-who a { color: var(--color-accent-800); font-weight: 600; text-decoration: none; }
.ab-review-who a:hover { text-decoration: underline; }
.at-payments { display: block; margin: 0 auto 16px; height: 30px; width: auto; opacity: .92; }
.at-awards { display: flex; gap: 12px; align-items: center; margin-top: 18px; }
.at-awards img { height: 76px; width: auto; display: block; }
.at-awards img.aw-plaque { border-radius: 6px; }
.ab-faq-more { font-size: 15px; margin-top: 16px; }
.ab-faq-more a { color: var(--color-accent-800); font-weight: 600; text-decoration: none; }
.ab-faq-more a:hover { text-decoration: underline; }
.kbe-cat-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 30px; }
.kbe-cat-filter .btn { text-decoration: none; }
.kbe-cat-n { opacity: .55; font-size: 12px; margin-left: 3px; }
.kbe-post-tours { padding: 34px 0 40px; margin-top: 8px; }

.kbe-post-cta { display: none; }
@media (max-width: 760px) {
  .kbe-post-cta { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.96); box-shadow: 0 -2px 12px rgba(20,63,55,.16); }
  body:has(.tp-mobile.is-open) .kbe-post-cta { display: none; }
  body:has(.kbe-post-cta) { padding-bottom: 74px; }
}
.at-float-wa:hover { background: #e8a33d; transform: translateY(-2px); }

.at-sec { padding: 84px 0 0; }

@media (max-width: 760px) {
  .at-nav-btn { display: none; }
  .at-magbig { height: 240px; }
  .at-news-row { flex-direction: column; }
  .at-news-btn { padding: 12px 20px; }
  .at-sec { padding: 52px 0 0; }
  .at-hero--video .at-hero-inner { min-height: 72vh; padding-top: 70px; padding-bottom: 44px; }
}

/* ── "Tour ideas" cards — full-photo tall cards on a dark topographic band ── */
.at-fullbleed { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.atc-band { background-color: #143f37; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420' viewBox='0 0 420 420'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.05' stroke-width='1.6'%3E%3Cpath d='M-20 60c70-40 150 30 220-10s130-70 240-30'/%3E%3Cpath d='M-20 110c80-40 160 40 230 0s140-80 230-30'/%3E%3Cpath d='M-20 170c60-30 140 40 220 10s150-60 240-20'/%3E%3Cpath d='M-20 250c90-50 170 30 250-10s120-50 210-10'/%3E%3Cpath d='M-20 320c70-30 160 30 240-10s130-60 220-20'/%3E%3Cpath d='M-20 390c80-40 150 30 230-10s140-50 230-20'/%3E%3C/g%3E%3C/svg%3E"); padding: 74px 0 64px; }
.atc-band .at-kicker { color: #b4d2ca; }
.atc-band .at-h2 { color: #ffffff; }
.atc-band .tp-strip { padding: 40px 6px 34px; align-items: center; gap: 40px; }
.atc-card.is-center { transform: scale(1.09); z-index: 2; }
.atc-card.is-center:hover { transform: scale(1.09) translateY(-5px); }
.atc-band .at-dot { background: rgba(255,255,255,.35); }
.atc-band .at-dot.is-active { background: #f5b23f; }
.at-nav-btn--dark { background: #0b2621; border: 1.5px solid rgba(255,255,255,.35); color: #ffffff; }
.at-nav-btn--dark:hover { background: #143f37; }

.atc-card, .atc-card:hover { position: relative; flex: none; width: 380px; aspect-ratio: 49 / 77; scroll-snap-align: start; text-decoration: none; display: block; transition: transform .35s cubic-bezier(.22,.68,.2,1); }
.atc-card:hover { transform: translateY(-6px); }
.atc-img { position: absolute; inset: 0; border-radius: 26px; overflow: hidden; box-shadow: var(--shadow-md); }
.atc-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s cubic-bezier(.22,.68,.2,1); }
.atc-card:hover .atc-img img { transform: scale(1.05); }
.atc-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,38,33,0) 42%, rgba(11,38,33,.55) 68%, rgba(11,38,33,.92) 100%); }
.atc-price, .atc-chip { transition: opacity .3s ease; }
.atc-card.is-clipped .atc-price, .atc-card.is-clipped .atc-chip { opacity: 0; }
.atc-price { position: absolute; top: -14px; right: -10px; z-index: 2; background: #b4d2ca; color: #0b2621; border-radius: 18px; padding: 10px 18px 11px; text-align: right; box-shadow: var(--shadow-md); }
.atc-price-small { display: block; font-size: 13px; font-weight: 600; }
.atc-price-big { display: block; font-family: var(--font-heading); font-size: 21px; line-height: 1.1; }
.atc-chip { position: absolute; top: 56px; right: -2px; z-index: 2; background: #0b2621; color: #f5b23f; border-radius: 10px; padding: 7px 14px; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.atc-body { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 22px 18px; z-index: 1; }
.atc-country { color: #ffffff; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 6px; }
.atc-title { font-family: var(--font-heading); font-size: 25px; line-height: 1.16; color: #f5b23f; margin: 0 0 12px; }
.atc-stars { display: flex; align-items: center; gap: 8px; color: #4bbfa8; margin-bottom: 12px; font-size: 13px; }
.atc-stars .n { color: rgba(255,255,255,.85); font-style: italic; }
.atc-meta { display: flex; border-top: 1px solid rgba(255,255,255,.28); padding-top: 13px; gap: 24px; }
.atc-meta-item { display: flex; align-items: center; gap: 10px; color: #ffffff; flex: 1; }
.atc-meta-item svg { flex: none; opacity: .95; }
.atc-meta-l { display: block; font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.75); }
.atc-meta-v { display: block; font-size: 14.5px; font-weight: 700; }

@media (max-width: 760px) {
  .atc-card { width: 82vw; }
  .atc-price { right: 2px; }
}

/* ── Split section in the reference style (big title left, tall cards right) ── */
.at-topo-cream { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420' viewBox='0 0 420 420'%3E%3Cg fill='none' stroke='%23143f37' stroke-opacity='.06' stroke-width='1.6'%3E%3Cpath d='M-20 60c70-40 150 30 220-10s130-70 240-30'/%3E%3Cpath d='M-20 110c80-40 160 40 230 0s140-80 230-30'/%3E%3Cpath d='M-20 170c60-30 140 40 220 10s150-60 240-20'/%3E%3Cpath d='M-20 250c90-50 170 30 250-10s120-50 210-10'/%3E%3Cpath d='M-20 320c70-30 160 30 240-10s130-60 220-20'/%3E%3Cpath d='M-20 390c80-40 150 30 230-10s140-50 230-20'/%3E%3C/g%3E%3C/svg%3E"); }
.at-split-h2 { font-size: 42px; line-height: 1.08; }
.at-btn-outline, .at-btn-outline:hover { display: inline-flex; align-items: center; gap: 8px; background: transparent; color: #143f37; border: 2px solid #143f37; border-radius: 999px; padding: 13px 24px; font-family: var(--font-heading); font-size: 14px; text-decoration: none; }
.at-btn-outline:hover { background: #143f37; color: #ffffff; }
.at-split-cards .atc-card { width: auto; }
.at-split { align-items: center; }
@media (max-width: 760px) {
  .at-split-h2 { font-size: 30px; }
}

/* ── Day-trips section v2: edge-bleeding carousel, per-card dots, corner arrows ── */
.at-lm-grid { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 44px; align-items: center; padding: 84px 0 36px; padding-left: max(28px, calc(50vw - 620px)); }
.at-lm-title { font-size: 54px; line-height: 1.06; margin: 0 0 22px; color: var(--color-accent-800); }
.at-lm-p { font-size: 16.5px; line-height: 1.8; color: var(--color-neutral-800); margin: 0 0 26px; max-width: 40ch; }
.at-btn-solidgreen, .at-btn-solidgreen:hover { display: inline-flex; align-items: center; gap: 10px; background: #143f37; color: #eef5f3; border: 2px solid #143f37; border-radius: 999px; padding: 15px 26px; font-family: var(--font-heading); font-size: 14.5px; text-decoration: none; }
.at-btn-solidgreen:hover { background: #0b2621; border-color: #0b2621; }
.at-lm-strip { display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 18px 28px 10px 6px; }
.at-lm-strip::-webkit-scrollbar { height: 0; }
.at-lm-nav { position: relative; margin-top: 8px; padding: 0 28px 4px; min-height: 46px; }
.at-lm-nav .at-dots { margin-top: 12px; }
.at-lm-arrows { position: absolute; right: 28px; top: 0; display: flex; gap: 10px; }
.at-nav-sm { width: 46px; height: 46px; border-radius: 999px; display: grid; place-items: center; cursor: pointer; }
.at-nav-sm--light { background: #ffffff; border: 1px solid var(--color-divider); color: var(--color-accent-800); box-shadow: var(--shadow-sm); }
.at-nav-sm--light:hover { background: var(--color-neutral-200); }
.at-nav-sm--dark { background: #0b2621; border: 1.5px solid #0b2621; color: #ffffff; }
.at-nav-sm--dark:hover { background: #143f37; }
@media (max-width: 1080px) {
  .at-lm-grid { grid-template-columns: minmax(0, 1fr); padding-left: 28px; }
  .at-lm-title { font-size: 38px; }
}
@media (max-width: 760px) {
  .at-lm-grid { padding-left: 16px; padding-top: 52px; }
  .at-lm-title { font-size: 30px; }
  .at-lm-strip { padding-right: 16px; }
  .at-lm-arrows { display: none; }
}

/* ── "Pick your terrain" band: square photo cards, amber underlined labels ── */
.at-h2-dash { width: 36px; height: 2px; background: #b4d2ca; margin: 18px auto 0; }
.at-terr-strip { display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 30px max(28px, calc(50vw - 620px)) 12px; }
.at-terr-strip::-webkit-scrollbar { height: 0; }
.at-terr-card, .at-terr-card:hover { position: relative; flex: none; width: 365px; height: 355px; border-radius: 16px; overflow: hidden; scroll-snap-align: start; text-decoration: none; display: block; }
.at-terr-card img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s cubic-bezier(.22,.68,.2,1); }
.at-terr-card:hover img { transform: scale(1.05); }
.at-terr-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,38,33,0) 55%, rgba(11,38,33,.5) 100%); }
.at-terr-label { position: absolute; left: 24px; bottom: 24px; right: 24px; font-family: var(--font-heading); font-size: 29px; color: #f5b23f; }
.at-terr-label::after { content: ""; display: block; height: 2px; background: #e8a33d; margin-top: 12px; }
.at-terr-wrap { position: relative; }
.at-terr-wrap .at-nav-btn--prev { left: max(10px, calc(50vw - 648px)); top: 50%; }
.at-terr-wrap .at-nav-btn--next { right: max(10px, calc(50vw - 648px)); top: 50%; }
@media (max-width: 760px) {
  .at-terr-card { width: 78vw; height: 300px; }
  .at-terr-strip { padding-left: 16px; padding-right: 16px; }
}

/* ── "Guides & inspiration": magazine cards carousel, amber underlined titles ── */
.at-btn-greenamber, .at-btn-greenamber:hover { display: inline-flex; align-items: center; gap: 10px; background: #143f37; color: #f5b23f; border: 2px solid #143f37; border-radius: 999px; padding: 15px 26px; font-family: var(--font-heading); font-size: 14.5px; text-decoration: none; }
.at-btn-greenamber:hover { background: #0b2621; border-color: #0b2621; }
.at-insp-card, .at-insp-card:hover { position: relative; flex: none; width: 440px; height: 520px; border-radius: 16px; overflow: hidden; scroll-snap-align: start; text-decoration: none; display: block; }
.at-insp-card img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s cubic-bezier(.22,.68,.2,1); }
.at-insp-card:hover img { transform: scale(1.05); }
.at-insp-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,38,33,0) 45%, rgba(11,38,33,.72) 82%, rgba(11,38,33,.92) 100%); }
.at-insp-txt { position: absolute; left: 26px; right: 26px; bottom: 26px; }
.at-insp-k { display: block; color: #ffffff; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 8px; }
.at-insp-t { font-family: var(--font-heading); font-size: 25px; line-height: 1.2; color: #f5b23f; margin: 0; }
.at-insp-t::after { content: ""; display: block; height: 2px; background: #e8a33d; margin-top: 12px; }
.at-kicker--2l { max-width: 34ch; line-height: 1.6; }
@media (max-width: 760px) {
  .at-insp-card { width: 82vw; height: 420px; }
}

/* ── End of page: back-to-top, contact strip, light brand moment ── */
.at-backtop { display: block; text-align: center; font-size: 14.5px; color: var(--color-neutral-800); padding: 22px 0 6px; }
.at-backtop:hover { color: var(--color-accent-800); }
.at-cstrip2 { display: flex; align-items: center; justify-content: space-between; gap: 26px; flex-wrap: wrap; padding: 26px 0 10px; }
.at-cstrip2-t { font-family: var(--font-heading); font-size: 34px; color: var(--color-accent-800); margin: 4px 0 0; }
.at-pill-mail, .at-pill-mail:hover { display: inline-flex; align-items: center; gap: 12px; background: #f5b23f; color: #143f37; border-radius: 999px; padding: 17px 30px; font-family: var(--font-heading); font-size: 16px; text-decoration: none; }
.at-pill-mail:hover { background: #e8a33d; }
.at-pill-phone, .at-pill-phone:hover { display: inline-flex; align-items: center; gap: 10px; background: transparent; color: #b2622d; border: 1.5px solid #ddb862; border-radius: 999px; padding: 15px 26px; font-family: var(--font-heading); font-size: 16px; text-decoration: none; }
.at-pill-phone:hover { background: rgba(245,178,63,.12); }
.at-brand--light { position: relative; overflow: hidden; }
.at-brand--light ~ footer.tp-footer, .at-brand ~ footer.tp-footer { margin-top: 0; }
.kbe-post-tours { margin-bottom: 0; }
.kbe-post-tours ~ footer.tp-footer, .gd-art ~ footer.tp-footer { margin-top: 0; }
.at-brand--light img { width: 100%; height: 470px; object-fit: cover; object-position: center 65%; display: block; }
.at-brand--light .at-brand-fade { position: absolute; inset: 0; background: linear-gradient(180deg, var(--color-bg) 0%, rgba(251,250,248,.85) 26%, rgba(251,250,248,0) 60%); }
.at-brand--light .at-brand-word { position: absolute; left: 0; right: 0; top: 15%; color: #143f37; font-size: 62px; text-shadow: none; }

/* ── Footer: link columns, socials, outlined newsletter, certifications band ── */
.at-socials { display: flex; gap: 26px; margin-bottom: 22px; }
.at-socials a, .at-socials a:hover { color: #f5b23f; display: inline-flex; }
.at-socials a:hover { color: #ffffff; }
.at-news--outline { background: transparent; border: 1.5px solid #ddb862; border-radius: 14px; padding: 24px 26px; }
.at-news--outline .at-news-t { color: #f5b23f; font-size: 21px; line-height: 1.3; }
.at-news--outline .at-news-p { color: rgba(255,255,255,.85); font-size: 14px; line-height: 1.7; }
.at-news-names { display: flex; gap: 10px; margin-bottom: 10px; }
.at-news--outline .input { border-radius: 10px; background: #ffffff; border: 1.5px solid #ddb862; min-height: 46px; font-size: 14px; }
.at-news-btn--outline { display: inline-flex; background: transparent; color: #f5b23f; border: 1.5px solid #ddb862; border-radius: 999px; padding: 13px 26px; font-family: var(--font-heading); font-size: 15px; cursor: pointer; margin: 6px auto 0; }
.at-news-btn--outline:hover { background: rgba(245,178,63,.14); }
.at-news-note { font-size: 12px; color: rgba(255,255,255,.6); text-align: center; margin-top: 12px; }
.at-footer-grid { max-width: 1240px; margin: 0 auto; padding: 54px 28px 40px; display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1.5fr; gap: 30px; }
.at-footer-grid .at-footer-h { font-size: 20px; margin-bottom: 20px; }
.at-footer-grid a, .at-footer-grid a:hover { display: block; color: #ffffff; font-size: 15px; text-decoration: none; margin-bottom: 15px; }
.at-footer-grid a:hover { color: #f5b23f; }
.at-certs { background: #0b2621; padding: 44px 0 30px; }
.at-certs-grid { max-width: 1240px; margin: 0 auto; padding: 0 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 30px; text-align: center; }
.at-certs-h { font-family: var(--font-heading); font-size: 21px; color: #ffffff; margin: 0 0 20px; }
.at-certs-row { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; }
.at-legal { text-align: center; padding: 26px 20px 6px; font-size: 14px; color: rgba(255,255,255,.65); }
.at-legal a, .at-legal a:hover { color: rgba(255,255,255,.65); }
.at-legal a:hover { color: #ffffff; }
@media (max-width: 1080px) { .at-footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) {
  .at-footer-grid, .at-certs-grid { grid-template-columns: 1fr; }
  .at-cstrip2-t { font-size: 26px; }
  .at-brand--light .at-brand-word { font-size: 34px; }
  .at-brand--light img { height: 320px; }
  .at-news-names { flex-direction: column; }
}

/* ── About / Responsible pages ── */
.ab-hero { position: relative; overflow: hidden; }
.ab-hero img { width: 100%; height: 430px; object-fit: cover; display: block; }
.ab-hero-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,38,33,.45) 0%, rgba(11,38,33,.25) 55%, rgba(11,38,33,.5) 100%); display: grid; place-items: center; }
.ab-hero-in { text-align: center; padding: 0 20px; }
.ab-hero-h1 { font-size: 46px; color: #ffffff; margin: 0 0 14px; text-shadow: 0 2px 14px rgba(11,38,33,.5); }
.ab-hero-k { font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: #f5b23f; margin-bottom: 10px; }
.ab-hero-tag { font-size: 15px; color: rgba(255,255,255,.9); }
.ab-tabs { background: #ffffff; box-shadow: 0 2px 10px rgba(20,63,55,.08); }
.ab-tabs-in { max-width: 1240px; margin: 0 auto; padding: 14px 28px; display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; }
.ab-tab, .ab-tab:hover { font-family: var(--font-heading); font-size: 15px; color: #143f37; padding: 11px 22px; border-radius: 999px; text-decoration: none; }
.ab-tab.is-active, .ab-tab.is-active:hover { background: #143f37; color: #ffffff; }
.ab-tab-sep { width: 1px; height: 22px; background: var(--color-divider); }
.ab-crumbs { max-width: 1240px; margin: 0 auto; padding: 22px 28px 0; font-size: 13px; color: var(--color-neutral-700); }
.ab-intro { max-width: 860px; margin: 0 auto; padding: 34px 28px 0; text-align: center; }
.ab-intro-h2 { font-size: 30px; color: var(--color-accent-2-700); margin: 0 0 18px; }
.ab-intro p { font-size: 15.5px; line-height: 1.75; color: var(--color-neutral-800); margin: 0 0 14px; text-align: left; }
.ab-stats { display: flex; justify-content: center; gap: 70px; padding: 34px 20px 10px; flex-wrap: wrap; }
.ab-stat { text-align: center; }
.ab-stat-n { font-family: var(--font-heading); font-size: 48px; color: #e8a33d; line-height: 1; }
.ab-stat-l { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--color-neutral-700); margin-top: 8px; }
.ab-bullets { max-width: 860px; margin: 0 auto; padding: 10px 28px 0; }
.ab-bullets li { font-size: 15.5px; line-height: 1.7; color: var(--color-neutral-800); margin-bottom: 10px; }
.ab-bullets { list-style: none; }
.ab-bullets li::before { content: "•"; color: #e8a33d; font-weight: 700; margin-right: 10px; }
.ab-band4 { background-color: #143f37; padding: 64px 0; margin-top: 56px; }
.ab-band4-grid { max-width: 1240px; margin: 0 auto; padding: 0 28px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 34px; }
.ab-band4 .tp-perk-icon { width: 52px; height: 52px; background: transparent; color: #f5b23f; margin: 0 auto 16px; }
.ab-band4-col { text-align: center; }
.ab-band4-t { font-family: var(--font-heading); font-size: 18px; color: #f5b23f; margin: 0 0 12px; }
.ab-band4-p { font-size: 14px; line-height: 1.7; color: rgba(255,255,255,.88); margin: 0; text-align: left; }
.ab-engage { background-color: #143f37; padding: 44px 0; margin-top: 46px; }
.ab-engage-h { font-family: var(--font-heading); font-size: 24px; color: #ffffff; text-align: center; margin: 0 0 26px; }
.ab-engage-grid { max-width: 1100px; margin: 0 auto; padding: 0 28px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.ab-engage-item { display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16); border-radius: 12px; padding: 13px 16px; color: #ffffff; font-size: 13.5px; line-height: 1.45; }
.ab-engage-item svg { flex: none; color: #f5b23f; }
.ab-chap { text-align: center; max-width: 860px; margin: 0 auto; padding: 56px 28px 0; }
.ab-chap-h2 { font-size: 28px; color: var(--color-accent-800); margin: 0 0 16px; }
.ab-chap p { font-size: 15.5px; line-height: 1.75; color: var(--color-neutral-800); text-align: left; margin: 0 0 14px; }
.ab-split { max-width: 1100px; margin: 0 auto; padding: 30px 28px 0; display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: 36px; align-items: start; }
.ab-split img { width: 100%; height: 300px; object-fit: cover; border-radius: var(--radius-lg); }
.ab-sub { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--color-accent-700); font-weight: 700; margin: 0 0 10px; }
.ab-split ul { margin: 0 0 18px; padding-left: 2px; list-style: none; }
.ab-split li { font-size: 14.5px; line-height: 1.65; color: var(--color-neutral-800); margin-bottom: 8px; }
.ab-split li::before { content: "–"; color: #e8a33d; margin-right: 9px; }
.ab-callout { border: 1.5px solid var(--color-accent-2-400); border-radius: 14px; padding: 20px 24px; }
.ab-wide { max-width: 1100px; margin: 40px auto 0; padding: 0 28px; }
.ab-wide img { width: 100%; height: 380px; object-fit: cover; border-radius: var(--radius-lg); }
.ab-upper { text-align: center; max-width: 860px; margin: 0 auto; padding: 56px 28px 0; }
.ab-upper-h2 { font-size: 22px; letter-spacing: .06em; text-transform: uppercase; color: var(--color-accent-900); font-family: var(--font-heading); margin: 0 0 16px; }
.ab-story { max-width: 720px; margin: 0 auto; padding: 20px 28px 0; }
.ab-story-item { display: flex; gap: 18px; margin-bottom: 14px; font-size: 15px; line-height: 1.6; color: var(--color-neutral-800); }
.ab-story-y { font-family: var(--font-heading); color: #b2622d; flex: none; width: 54px; }
@media (max-width: 1080px) { .ab-band4-grid { grid-template-columns: repeat(2, 1fr); } .ab-engage-grid { grid-template-columns: repeat(2, 1fr); } .ab-split { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .ab-hero-h1 { font-size: 32px; } .ab-band4-grid, .ab-engage-grid { grid-template-columns: 1fr; } .ab-stats { gap: 34px; } }

/* Sustainability: six-practice grid variant */
.ab-band4-grid--six { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 46px; }
@media (max-width: 1080px) { .ab-band4-grid--six { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 760px) { .ab-band4-grid--six { grid-template-columns: 1fr; } }

/* Guides, signature and destination pages */
.gd-hero img { height: 340px; }
.gd-art { max-width: 760px; margin: 0 auto; padding: 40px 28px 44px; }
.gd-dek { font-size: 18px; line-height: 1.6; color: var(--color-neutral-800); font-style: italic; margin: 0 0 26px; }
.gd-h { font-family: var(--font-heading); font-size: 23px; color: var(--color-accent-800); margin: 30px 0 12px; }
.gd-p { font-size: 15.5px; line-height: 1.8; color: var(--color-neutral-800); margin: 0 0 14px; }
.gd-grid { max-width: 1240px; margin: 0 auto; padding: 40px 28px 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.gd-side { border-top: 1px solid var(--color-divider); margin-top: 34px; padding-top: 22px; }
.pj-card { max-width: 860px; margin: 34px auto 0; padding: 34px 38px; }
.pj-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
.pj-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.pj-chip { border: 1.5px solid var(--color-divider); border-radius: 999px; padding: 9px 16px; font-family: var(--font-heading); font-size: 13px; cursor: pointer; background: transparent; color: var(--color-accent-800); }
.pj-chip.is-on { background: #143f37; border-color: #143f37; color: #ffffff; }
@media (max-width: 1080px) { .gd-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 760px) { .gd-grid, .pj-grid { grid-template-columns: 1fr; } .pj-card { padding: 24px 20px; } }

/* ── FAQ (structure transposed from the reference FAQ; Kingdom skin) ── */
.fq-band { background: #143f37; padding: 44px 20px 52px; text-align: center; }
.fq-band-t { color: #fff; font-family: var(--font-heading); font-size: 26px; margin: 0 0 20px; }
.fq-search { position: relative; max-width: 560px; margin: 0 auto; }
.fq-search input { width: 100%; box-sizing: border-box; border: none; border-radius: 999px; padding: 15px 54px 15px 24px; font-size: 15px; background: #fff; color: var(--color-neutral-900); outline: none; }
.fq-search svg { position: absolute; right: 20px; top: 50%; transform: translateY(-50%); color: #f5b23f; }
.fq-results { max-width: 560px; margin: 14px auto 0; background: #fff; border-radius: 16px; text-align: left; overflow: hidden; }
.fq-results a { display: block; padding: 12px 20px; font-size: 14.5px; color: var(--color-neutral-900); text-decoration: none; border-top: 1px solid var(--color-divider); }
.fq-results a:first-child { border-top: none; }
.fq-results a:hover { background: var(--color-neutral-50); }
.fq-results .fq-res-cat { display: block; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--color-accent-700); margin-bottom: 2px; }
.fq-wrap { max-width: 1180px; margin: 0 auto; padding: 34px 20px 10px; }
.fq-top { background: #fff; border: 1px solid rgba(31,30,28,.08); border-radius: 14px; padding: 26px 30px; box-shadow: 0 1px 3px rgba(31,30,28,.05); margin-bottom: 34px; }
.fq-top-h { font-family: var(--font-heading); font-size: 22px; color: #143f37; margin: 0 0 6px; }
.fq-h2 { font-family: var(--font-heading); font-size: 24px; color: var(--color-neutral-900); margin: 0 0 18px; }
.fq-cats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 44px; }
.fq-cat { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center; border: 1px solid rgba(20,63,55,.25); border-radius: 12px; padding: 22px 14px; text-decoration: none; color: #143f37; background: #fff; transition: border-color .2s, box-shadow .2s; min-height: 96px; }
.fq-cat:hover { border-color: #143f37; box-shadow: 0 2px 8px rgba(31,30,28,.08); }
.fq-cat svg { color: #f5b23f; }
.fq-cat-t { font-size: 13.5px; font-weight: 600; line-height: 1.35; }
.fq-grid { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 34px; align-items: start; }
.fq-menu { background: #fff; border: 1px solid rgba(31,30,28,.08); border-radius: 12px; overflow: hidden; box-shadow: 0 1px 3px rgba(31,30,28,.05); }
.fq-menu a { display: flex; align-items: center; gap: 12px; padding: 15px 16px; font-size: 13.5px; font-weight: 600; color: var(--color-neutral-800); text-decoration: none; border-top: 1px solid var(--color-divider); }
.fq-menu a:first-child { border-top: none; }
.fq-menu-h { padding: 13px 16px 7px; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--color-neutral-600); background: var(--color-neutral-50); border-top: 1px solid var(--color-divider); }
.fq-menu div:first-child .fq-menu-h { border-top: none; }
.fq-menu a svg { flex: none; color: #143f37; }
.fq-menu a .fq-menu-ch { margin-left: auto; color: var(--color-neutral-500); }
.fq-menu a:hover { background: var(--color-neutral-50); }
.fq-menu a.is-active { background: #e8f1ee; color: #143f37; box-shadow: inset 3px 0 0 #f5b23f; }
.fq-kicker { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--color-neutral-700); margin: 0 0 6px; }
.fq-cat-h1 { font-family: var(--font-heading); font-size: 30px; color: #143f37; margin: 0 0 20px; }
.fq-q { background: var(--color-neutral-50); border: 1px solid rgba(31,30,28,.06); border-radius: 10px; margin-bottom: 12px; overflow: hidden; }
.fq-q-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 20px; cursor: pointer; font-family: var(--font-heading); font-size: 16px; color: var(--color-neutral-900); }
.fq-q-head .fq-plus { flex: none; color: #143f37; font-size: 22px; line-height: 1; transition: transform .2s; }
.fq-q.is-open { background: #fff; }
.fq-q.is-open .fq-plus { transform: rotate(45deg); }
.fq-q-a { padding: 0 20px 18px; font-size: 15px; line-height: 1.7; color: var(--color-neutral-800); max-width: 75ch; }
@media (max-width: 1080px) { .fq-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fq-grid { grid-template-columns: minmax(0, 1fr); } .fq-menu { order: 2; } }

/* ── Blog article body (WP content rendered in our chrome) ── */
.kbe-post { padding-top: 34px; }
.kbe-post h2 { font-family: var(--font-heading); font-size: 26px; color: var(--color-neutral-900); margin: 38px 0 14px; line-height: 1.25; }
.kbe-post h3 { font-family: var(--font-heading); font-size: 20px; color: var(--color-neutral-900); margin: 28px 0 10px; }
.kbe-post p { font-size: 16px; line-height: 1.75; color: var(--color-neutral-800); margin: 0 0 16px; }
.kbe-post ul, .kbe-post ol { font-size: 16px; line-height: 1.75; color: var(--color-neutral-800); margin: 0 0 18px; padding-left: 22px; }
.kbe-post li { margin-bottom: 6px; }
.kbe-post a { color: var(--color-accent-700); }
.kbe-post img { max-width: 100%; height: auto; border-radius: 14px; margin: 8px 0 18px; }
.kbe-post blockquote { border-left: 3px solid #f5b23f; margin: 22px 0; padding: 4px 0 4px 18px; color: var(--color-neutral-700); font-style: italic; }
.kbe-post table { width: 100%; border-collapse: collapse; margin: 0 0 20px; font-size: 15px; }
.kbe-post th, .kbe-post td { border: 1px solid var(--color-divider); padding: 9px 12px; text-align: left; }
.kbe-post figure { margin: 0 0 18px; }
.kbe-post .tp-h1 { color: var(--color-neutral-900); font-size: 40px; line-height: 1.15; }
.kbe-dark-h1 { color: var(--color-neutral-900); font-size: 40px; line-height: 1.15; }
.kbe-pager { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; margin: 36px 0 10px; }
.kbe-pager .page-numbers { display: inline-flex; align-items: center; min-width: 38px; justify-content: center; padding: 9px 14px; border: 1px solid rgba(20,63,55,.3); border-radius: 999px; font-size: 14px; color: #143f37; text-decoration: none; background: #fff; }
.kbe-pager .page-numbers.current { background: #143f37; color: #f5b23f; border-color: #143f37; }
.kbe-pager .page-numbers.dots { border: none; background: none; }
details.fq-q summary { list-style: none; }
details.fq-q summary::-webkit-details-marker { display: none; }
details.fq-q[open] { background: #fff; }
details.fq-q[open] .fq-plus { transform: rotate(45deg); }

/* ── Menus v2 : déroulants desktop, hamburger + panneau mobile ── */
.tp-nav-item { position: relative; }
.tp-nav-item > a { display: inline-flex; align-items: center; gap: 5px; }
.tp-nav-caret { display: inline-flex; transition: transform .2s; }
.tp-nav-item:hover .tp-nav-caret { transform: rotate(180deg); }
.tp-nav-drop { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); background: #fff; border-radius: 12px; box-shadow: 0 12px 34px rgba(31,30,28,.18); padding: 10px 0; min-width: 235px; display: none; z-index: 80; }
.tp-nav-item:hover .tp-nav-drop, .tp-nav-item:focus-within .tp-nav-drop { display: block; }
.tp-nav-item .tp-nav-drop::before { content: ""; position: absolute; top: -12px; left: 0; right: 0; height: 12px; }
.tp-nav-drop a { display: block; padding: 9px 20px; font-size: 14px; white-space: nowrap; color: var(--color-neutral-900); }
.tp-nav--dark .tp-nav-drop a { color: var(--color-neutral-900); }
.tp-nav-drop a:hover, .tp-nav--dark .tp-nav-drop a:hover { background: var(--color-neutral-50); color: #143f37; }
.tp-burger { display: none; background: none; border: 1px solid rgba(20,63,55,.35); border-radius: 10px; padding: 8px 11px; cursor: pointer; color: inherit; font: inherit; align-items: center; gap: 8px; }
.tp-nav--dark .tp-burger { border-color: rgba(255,255,255,.45); color: #fff; }
.tp-mobile { display: none; }
.tp-mobile.is-open { display: block; background: #0b2621; color: #fff; padding: 6px 22px 28px; }
.tp-mobile a { display: block; color: #fff; text-decoration: none; padding: 11px 0; font-size: 16px; border-bottom: 1px solid rgba(255,255,255,.08); }
.tp-mobile a:hover { color: #f5b23f; }
.tp-mobile-h { font-family: var(--font-heading); color: #f5b23f; font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; margin: 20px 0 2px; }
.tp-mobile-cta { margin-top: 20px; display: flex; flex-direction: column; gap: 10px; }
.tp-mobile-cta .btn { justify-content: center; }
.tp-mobile-phone { color: rgba(255,255,255,.85); text-align: center; font-size: 15px; margin-top: 6px; }
@media (max-width: 1120px) {
  .tp-nav-links { display: none; }
  .tp-burger { display: inline-flex; }
}

/* Hero reel (kbe_video) — vertical video tile with click-to-play */
.tp-video-tile { position: relative; }
.tp-play { position: absolute; inset: 0; width: 100%; height: 100%; display: grid; place-items: center; background: rgba(16, 32, 28, .25); border: 0; cursor: pointer; color: #143f37; padding: 0; }
.tp-play svg { width: 62px; height: 62px; background: #f5b23f; border-radius: 999px; padding: 17px; box-sizing: border-box; box-shadow: 0 10px 30px rgba(20, 63, 55, .35); transition: transform .15s ease; }
.tp-play:hover svg, .tp-play:focus-visible svg { transform: scale(1.07); }
