:root {
  --color-primary: #FFD400;
  --color-primary-hover: #E6BF00;
  --color-black: #111111;
  --color-dark: #1C1C1C;
  --color-white: #FFFFFF;
  --color-gray-50: #FAFAFA;
  --color-gray-100: #F4F4F4;
  --color-gray-200: #E5E5E5;
  --color-gray-500: #737373;
  --color-gray-700: #404040;
  --color-success: #16845B;
  --color-danger: #C83A37;
  --color-warning: #A36D00;
  --color-success-soft: #E7F6EF;
  --color-danger-soft: #FCECEB;
  --color-warning-soft: #FFF5D6;
  --color-white-92: rgba(255, 255, 255, .92);
  --color-white-82: rgba(255, 255, 255, .82);
  --color-white-70: rgba(255, 255, 255, .70);
  --color-white-56: rgba(255, 255, 255, .56);
  --color-white-14: rgba(255, 255, 255, .14);
  --color-white-08: rgba(255, 255, 255, .08);
  --color-black-88: rgba(17, 17, 17, .88);
  --color-black-72: rgba(17, 17, 17, .72);
  --color-black-54: rgba(17, 17, 17, .54);
  --color-black-28: rgba(17, 17, 17, .28);
  --color-black-14: rgba(17, 17, 17, .14);
  --color-black-08: rgba(17, 17, 17, .08);
  --color-black-05: rgba(17, 17, 17, .05);
  --color-focus: rgba(255, 212, 0, .34);
  --color-map: #ECE9DA;
  --shadow-xs: 0 4px 16px var(--color-black-05);
  --shadow-sm: 0 12px 32px var(--color-black-08);
  --shadow-md: 0 24px 64px var(--color-black-14);
  --radius-xs: .45rem;
  --radius-sm: .75rem;
  --radius-md: 1rem;
  --radius-lg: 1.35rem;
  --font-display: Inter, Arial, Helvetica, sans-serif;
  --font-sans: Inter, Arial, Helvetica, sans-serif;
  --header-height: 5.25rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 1rem); }
body { margin: 0; color: var(--color-gray-700); background: var(--color-white); font-family: var(--font-sans); font-size: 1rem; line-height: 1.65; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .18em; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, h4 { margin-top: 0; color: var(--color-black); font-family: var(--font-display); font-weight: 850; line-height: 1.02; letter-spacing: -.045em; text-wrap: balance; }
h1 { font-size: clamp(2.55rem, 7vw, 6.25rem); }
h2 { font-size: clamp(2rem, 4.6vw, 4.2rem); }
h3 { font-size: clamp(1.3rem, 2.4vw, 1.8rem); }
p { margin: 0 0 1rem; }
::selection { color: var(--color-black); background: var(--color-primary); }
:focus-visible { outline: 3px solid var(--color-primary); outline-offset: 3px; }

.skip-link { position: fixed; z-index: 9999; top: .5rem; left: .5rem; padding: .75rem 1rem; color: var(--color-white); background: var(--color-black); border-radius: var(--radius-xs); transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.container-wide { width: min(calc(100% - 2rem), 1320px); max-width: 1320px; margin-inline: auto; }
.section { padding: clamp(4rem, 8vw, 7.5rem) 0; }
.section-tight { padding: clamp(3rem, 6vw, 5.5rem) 0; }
.section-cream { background: var(--color-gray-50); }
.section-dark { color: var(--color-white-82); background: var(--color-dark); }
.section-dark h2, .section-dark h3, .section-dark .lead-copy { color: var(--color-white); }
.section-orange { color: var(--color-black); background: var(--color-primary); }
.section-orange h2, .section-orange h3, .section-orange .eyebrow { color: var(--color-black); }
.eyebrow { display: inline-flex; gap: .6rem; align-items: center; margin-bottom: 1rem; color: var(--color-gray-700); font-size: .73rem; font-weight: 850; letter-spacing: .16em; line-height: 1.2; text-transform: uppercase; }
.eyebrow::before { width: 1.75rem; height: 3px; content: ""; background: var(--color-primary); }
.section-dark .eyebrow, .page-hero-image .eyebrow, .hero .eyebrow { color: var(--color-white); }
.section-heading { display: grid; gap: 1.25rem; align-items: end; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.section-heading h2 { max-width: 850px; margin-bottom: 0; }
.section-heading p { max-width: 610px; margin: 0; color: var(--color-gray-500); font-size: clamp(1rem, 1.5vw, 1.12rem); }
.section-dark .section-heading p { color: var(--color-white-70); }
.lead-copy { max-width: 720px; color: var(--color-gray-500); font-size: clamp(1.05rem, 2vw, 1.3rem); }
.kicker { color: var(--color-black); font-weight: 800; }

.site-header { position: sticky; z-index: 1000; top: 0; min-height: var(--header-height); background: var(--color-white-92); border-bottom: 1px solid var(--color-gray-200); box-shadow: var(--shadow-xs); backdrop-filter: blur(18px); transition: box-shadow .2s ease; }
.site-header.is-sticky { box-shadow: var(--shadow-sm); }
.navbar { min-height: var(--header-height); padding: .75rem 0; }
.navbar-brand { display: inline-flex; gap: .7rem; align-items: center; color: var(--color-black) !important; line-height: 1; text-decoration: none; }
.navbar-brand img { flex: none; border-radius: var(--radius-xs); box-shadow: 0 5px 0 var(--color-primary); }
.navbar-brand span { display: grid; gap: .22rem; }
.navbar-brand strong { font-size: 1rem; font-weight: 900; letter-spacing: .16em; }
.navbar-brand small { font-size: .56rem; font-weight: 750; letter-spacing: .13em; }
.navbar-nav { gap: .1rem; }
.navbar .nav-link { padding: .72rem .76rem !important; color: var(--color-gray-700) !important; font-size: .88rem; font-weight: 750; text-decoration: none; }
.navbar .nav-link:hover, .navbar .nav-link.active { color: var(--color-black) !important; }
.navbar .nav-link.active { position: relative; }
.navbar .nav-link.active::after { position: absolute; right: .75rem; bottom: .35rem; left: .75rem; height: 3px; content: ""; background: var(--color-primary); }
.language-menu .dropdown-toggle { border: 0; background: transparent; }
.language-menu .dropdown-menu { min-width: 5.5rem; padding: .4rem; background: var(--color-white); border: 1px solid var(--color-gray-200); border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); }
.language-menu .dropdown-item { border-radius: var(--radius-xs); font-size: .85rem; font-weight: 750; }
.language-menu .dropdown-item:hover, .language-menu .dropdown-item.active { color: var(--color-black); background: var(--color-primary); }
.nav-cta { margin-left: .65rem; }
.navbar-toggler { padding: .5rem; border: 1px solid var(--color-gray-200); border-radius: var(--radius-xs); }
.navbar-toggler:focus { box-shadow: 0 0 0 .22rem var(--color-focus); }

.btn { min-height: 3.1rem; display: inline-flex; align-items: center; justify-content: center; padding: .75rem 1.3rem; border-radius: var(--radius-xs); font-weight: 850; letter-spacing: -.01em; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease; }
.btn:hover { transform: translateY(-2px); }
.btn-brand { color: var(--color-black) !important; background: var(--color-primary); border: 1px solid var(--color-primary); box-shadow: 0 7px 0 var(--color-black); }
.btn-brand:hover, .btn-brand:focus { color: var(--color-black) !important; background: var(--color-primary-hover); border-color: var(--color-primary-hover); box-shadow: 0 4px 0 var(--color-black); }
.btn-outline-brand { color: var(--color-black); background: var(--color-white); border: 1px solid var(--color-black); }
.btn-outline-brand:hover, .btn-outline-brand:focus { color: var(--color-white); background: var(--color-black); border-color: var(--color-black); }
.btn-light { color: var(--color-black) !important; background: var(--color-white); border-color: var(--color-white); }
.btn-light:hover { color: var(--color-black) !important; background: var(--color-primary); border-color: var(--color-primary); }
.btn-outline-light { color: var(--color-white); border-color: var(--color-white-56); }
.btn-outline-light:hover { color: var(--color-black); background: var(--color-white); border-color: var(--color-white); }
.arrow-link { min-width: 6.2rem; min-height: 2.75rem; display: inline-flex; gap: .55rem; align-items: center; justify-content: center; padding: .55rem .85rem; color: var(--color-black); background: var(--color-primary); border: 1px solid var(--color-primary); border-radius: var(--radius-xs); font-size: .8rem; font-weight: 850; text-decoration: none; }
.arrow-link:hover { color: var(--color-white); background: var(--color-black); border-color: var(--color-black); }

.hero { position: relative; min-height: min(800px, calc(100svh - var(--header-height))); display: grid; align-items: end; overflow: hidden; color: var(--color-white); background: var(--color-dark); }
.hero-media { position: absolute; inset: 0; }
.hero-media picture { display: block; width: 100%; height: 100%; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }
.hero-media::after { position: absolute; inset: 0; content: ""; background: linear-gradient(90deg, var(--color-black-88) 0%, var(--color-black-72) 48%, var(--color-black-28) 84%), linear-gradient(0deg, var(--color-black-54), transparent 58%); }
.hero-content { position: relative; z-index: 1; max-width: 900px; padding: clamp(5rem, 10vw, 8.5rem) 0 clamp(3.5rem, 7vw, 6rem); }
.hero h1 { max-width: 890px; margin-bottom: 1.3rem; color: var(--color-white); font-size: clamp(3rem, 7.2vw, 6.6rem); }
.hero h1::after { width: clamp(4rem, 10vw, 8rem); height: .55rem; display: block; margin-top: 1.2rem; content: ""; background: var(--color-primary); }
.hero-lead { max-width: 690px; margin-bottom: 1.8rem; color: var(--color-white-82); font-size: clamp(1.06rem, 1.9vw, 1.28rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.hero-trust { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin: 2.2rem 0 0; padding: 0; list-style: none; font-size: .88rem; font-weight: 750; }
.hero-trust li { display: flex; gap: .5rem; align-items: center; }
.hero-trust li::before { width: 1.3rem; height: 1.3rem; display: grid; flex: none; place-items: center; content: "✓"; color: var(--color-black); background: var(--color-primary); border-radius: 50%; font-size: .72rem; }
.route-line { position: absolute; right: -2vw; bottom: 6%; z-index: 1; width: min(35vw, 450px); color: var(--color-white); opacity: .55; pointer-events: none; }
.route-line circle { color: var(--color-primary); }

.experience-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.experience-card { min-width: 0; display: flex; flex-direction: column; overflow: hidden; background: var(--color-white); border: 1px solid var(--color-gray-200); border-radius: var(--radius-md); box-shadow: var(--shadow-xs); transition: transform .25s ease, box-shadow .25s ease; }
.experience-card:hover { box-shadow: var(--shadow-md); transform: translateY(-6px); }
.experience-card-image { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--color-gray-100); }
.experience-card-image picture { display: block; width: 100%; height: 100%; }
.experience-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.experience-card:hover .experience-card-image img { transform: scale(1.035); }
.experience-level { position: absolute; top: .9rem; left: .9rem; padding: .38rem .68rem; color: var(--color-black); background: var(--color-primary); border-radius: var(--radius-xs); box-shadow: var(--shadow-xs); font-size: .69rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.experience-card-body { min-height: 0; display: flex; flex: 1; flex-direction: column; padding: 1.25rem; }
.experience-meta { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin-bottom: .65rem; color: var(--color-gray-500); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.experience-meta span::before { margin-right: .35rem; color: var(--color-primary-hover); content: "●"; font-size: .65em; }
.experience-card h3 { margin-bottom: .7rem; font-size: clamp(1.35rem, 2vw, 1.65rem); }
.experience-card h3 a { text-decoration: none; }
.experience-card p { margin-bottom: 1.2rem; color: var(--color-gray-500); font-size: .94rem; }
.experience-card-footer { display: flex; gap: 1rem; align-items: end; justify-content: space-between; margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--color-gray-200); }
.price { display: grid; line-height: 1.12; }
.price small { margin-bottom: .25rem; color: var(--color-gray-500); font-size: .7rem; font-weight: 750; text-transform: uppercase; }
.price strong { color: var(--color-black); font-size: 1.18rem; }
.filter-bar { display: flex; flex-wrap: wrap; gap: .55rem; margin-bottom: 2.2rem; }
.filter-button { padding: .62rem 1rem; color: var(--color-black); background: var(--color-white); border: 1px solid var(--color-gray-200); border-radius: var(--radius-xs); font-size: .82rem; font-weight: 800; }
.filter-button:hover, .filter-button.active { color: var(--color-black); background: var(--color-primary); border-color: var(--color-primary); }
.experience-card[hidden] { display: none; }

.why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; overflow: hidden; background: var(--color-gray-200); border: 1px solid var(--color-gray-200); border-radius: var(--radius-md); }
.why-card { min-height: 270px; padding: clamp(1.4rem, 3vw, 2.2rem); background: var(--color-white); }
.why-number, .icon-disc { width: 2.75rem; height: 2.75rem; display: grid; margin-bottom: clamp(2rem, 5vw, 3.5rem); place-items: center; color: var(--color-black); background: var(--color-primary); border-radius: var(--radius-xs); font-weight: 900; }
.why-card h3 { font-size: 1.4rem; }
.why-card p, .value-card p, .format-card p { margin: 0; color: var(--color-gray-500); font-size: .94rem; }
.story-split { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem, 7vw, 6.5rem); align-items: center; }
.story-image { position: relative; }
.story-image img { width: 100%; min-height: 500px; object-fit: cover; border-radius: var(--radius-md); }
.story-image::after { position: absolute; right: -.65rem; bottom: -.65rem; width: 35%; height: 38%; content: ""; border-right: 8px solid var(--color-primary); border-bottom: 8px solid var(--color-primary); border-radius: 0 0 var(--radius-md) 0; }
.story-copy h2 { margin-bottom: 1.3rem; }
.story-copy p { color: var(--color-gray-500); font-size: 1.06rem; }
.check-list { display: grid; gap: .75rem; margin: 1.4rem 0 0; padding: 0; list-style: none; }
.check-list li { position: relative; padding-left: 2rem; }
.check-list li::before { position: absolute; top: .08rem; left: 0; width: 1.35rem; height: 1.35rem; display: grid; place-items: center; content: "✓"; color: var(--color-black); background: var(--color-primary); border-radius: 50%; font-size: .72rem; font-weight: 900; }
.stats-band { position: relative; overflow: hidden; }
.stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--color-white-14); }
.stat { padding: clamp(2.1rem, 5vw, 4rem); text-align: center; background: var(--color-dark); }
.stat strong { display: block; color: var(--color-primary); font-size: clamp(3rem, 7vw, 6rem); font-weight: 900; letter-spacing: -.065em; line-height: 1; }
.stat span { color: var(--color-white-70); font-size: .82rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.review-card { min-height: 300px; display: flex; flex-direction: column; padding: clamp(1.35rem, 3vw, 2rem); background: var(--color-white); border: 1px solid var(--color-gray-200); border-top: 5px solid var(--color-primary); border-radius: var(--radius-md); }
.stars { margin-bottom: 1.2rem; color: var(--color-warning); font-size: .9rem; letter-spacing: .12em; }
.review-card blockquote { flex: 1; margin: 0 0 1.4rem; color: var(--color-black); font-size: clamp(1.18rem, 2vw, 1.55rem); font-weight: 750; line-height: 1.4; }
.review-card footer { display: grid; gap: .1rem; font-size: .84rem; }
.review-card footer span { color: var(--color-gray-500); }
.photo-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; }
.photo-strip img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-sm); }
.map-panel { position: relative; min-height: 500px; overflow: hidden; border-radius: var(--radius-md); background: var(--color-map); }
.map-panel::before { position: absolute; inset: -10%; content: ""; opacity: .6; background-image: radial-gradient(circle at 30% 35%, transparent 0 18%, var(--color-black-14) 18.5% 19%, transparent 19.5%), radial-gradient(circle at 68% 64%, transparent 0 20%, var(--color-black-14) 20.5% 21%, transparent 21.5%), linear-gradient(120deg, transparent 46%, var(--color-white-82) 46.5% 48%, transparent 48.5%); }
.map-panel::after { position: absolute; top: 18%; right: 12%; bottom: 20%; left: 18%; content: ""; border: 5px dashed var(--color-black); border-radius: 53% 47% 43% 57% / 45% 51% 49% 55%; transform: rotate(-8deg); }
.map-copy { position: absolute; z-index: 2; bottom: 1.75rem; left: 1.75rem; max-width: 430px; padding: 1.4rem; background: var(--color-white-92); border-left: 6px solid var(--color-primary); border-radius: var(--radius-sm); box-shadow: var(--shadow-md); }
.map-copy h2 { margin-bottom: .5rem; font-size: 2rem; }
.map-copy p { margin: 0; color: var(--color-gray-500); }
.newsletter { display: grid; grid-template-columns: .9fr 1.1fr; gap: 2rem; align-items: center; }
.newsletter h2 { margin-bottom: .6rem; }
.newsletter p { margin: 0; color: var(--color-white-70); }
.newsletter-form { display: flex; flex-wrap: wrap; gap: .6rem; padding: .55rem; background: var(--color-white); border-radius: var(--radius-sm); }
.newsletter-form input { min-width: 0; flex: 1; padding: .7rem 1rem; color: var(--color-black); border: 0; outline: 0; background: transparent; }
.newsletter-form .btn { flex: none; box-shadow: none; }
.newsletter-form .form-status { flex-basis: 100%; margin: 0; }

.page-hero { padding: clamp(4rem, 8vw, 7rem) 0 clamp(3.25rem, 7vw, 5.5rem); background: var(--color-gray-50); border-bottom: 1px solid var(--color-gray-200); }
.page-hero::before { width: clamp(4rem, 10vw, 8rem); height: .55rem; display: block; margin-bottom: 2rem; content: ""; background: var(--color-primary); }
.page-hero .lead-copy { margin: 1.2rem 0 0; }
.page-hero-image { position: relative; display: grid; min-height: clamp(500px, 68vw, 650px); align-items: end; overflow: hidden; color: var(--color-white); background-position: center; background-size: cover; }
.page-hero-image::before { position: absolute; inset: 0; content: ""; background: linear-gradient(0deg, var(--color-black-88), var(--color-black-28)); }
.page-hero-image .page-hero-overlay { position: relative; z-index: 1; width: 100%; padding: clamp(5rem, 12vw, 9rem) 0 clamp(3rem, 6vw, 4.5rem); }
.page-hero-image h1 { max-width: 960px; margin-bottom: 1rem; color: var(--color-white); }
.page-hero-image h1::after { width: 5rem; height: .45rem; display: block; margin-top: 1rem; content: ""; background: var(--color-primary); }
.page-hero-image .lead-copy { color: var(--color-white-82); }
.breadcrumb-lite { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: 1.2rem; padding: 0; color: var(--color-white-70); list-style: none; font-size: .82rem; }
.breadcrumb-lite a { color: inherit; }
.experience-facts { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: -2rem; overflow: hidden; background: var(--color-gray-200); border: 1px solid var(--color-gray-200); border-radius: var(--radius-md); box-shadow: var(--shadow-md); }
.fact { padding: 1.35rem 1.4rem; background: var(--color-white); }
.fact::before { width: 2rem; height: .25rem; display: block; margin-bottom: .65rem; content: ""; background: var(--color-primary); }
.fact small { display: block; margin-bottom: .25rem; color: var(--color-gray-500); font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.fact strong { color: var(--color-black); font-size: 1.05rem; }
.content-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, .6fr); gap: clamp(2rem, 7vw, 6rem); align-items: start; }
.prose { color: var(--color-gray-500); font-size: 1.06rem; }
.prose h2, .prose h3 { margin-top: 2.3rem; color: var(--color-black); }
.prose h2:first-of-type { margin-top: 0; }
.prose p { max-width: 760px; }
.prose ul { display: grid; gap: .5rem; padding-left: 1.25rem; }
.prose li::marker { color: var(--color-primary-hover); }
.sticky-card { position: sticky; top: calc(var(--header-height) + 1.5rem); padding: 1.5rem; background: var(--color-gray-50); border: 1px solid var(--color-gray-200); border-top: 6px solid var(--color-primary); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.sticky-card .price strong { font-size: 2rem; }
.sticky-card .btn { width: 100%; margin-top: 1.2rem; }
.sticky-card hr { margin: 1.3rem 0; border-color: var(--color-gray-200); }
.sticky-card-list { display: grid; gap: .75rem; padding: 0; list-style: none; color: var(--color-gray-500); font-size: .9rem; }
.sticky-card-list li { padding-bottom: .65rem; border-bottom: 1px solid var(--color-gray-200); }
.detail-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.detail-box { padding: clamp(1.5rem, 3vw, 2.2rem); background: var(--color-white); border: 1px solid var(--color-gray-200); border-radius: var(--radius-md); }
.detail-box:first-child { border-top: 5px solid var(--color-success); }
.detail-box:last-child { border-top: 5px solid var(--color-gray-500); }
.detail-box h3 { font-size: 1.4rem; }
.detail-box ul { display: grid; gap: .55rem; margin: 0; padding-left: 1.2rem; color: var(--color-gray-500); }
.mobile-booking-bar { display: none; }

.calendar-table { overflow: hidden; background: var(--color-white); border: 1px solid var(--color-gray-200); border-radius: var(--radius-md); box-shadow: var(--shadow-xs); }
.calendar-row { display: grid; grid-template-columns: 1.1fr 2fr 1fr 1fr auto; gap: 1rem; align-items: center; padding: 1.15rem 1.3rem; border-bottom: 1px solid var(--color-gray-200); }
.calendar-row:last-child { border: 0; }
.calendar-row-head { color: var(--color-gray-500); background: var(--color-gray-50); font-size: .7rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.status-pill { display: inline-flex; width: fit-content; padding: .35rem .65rem; color: var(--color-success); background: var(--color-success-soft); border-radius: var(--radius-xs); font-size: .73rem; font-weight: 850; }
.status-pill.last { color: var(--color-warning); background: var(--color-warning-soft); }
.status-pill.request { color: var(--color-gray-700); background: var(--color-gray-100); }
.value-grid, .format-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.value-card, .format-card { padding: clamp(1.4rem, 3vw, 2.2rem); background: var(--color-white); border: 1px solid var(--color-gray-200); border-radius: var(--radius-md); }
.value-card h3, .format-card h3 { font-size: 1.5rem; }
.partner-benefits { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; padding: 0; list-style: none; }
.partner-benefits li { position: relative; padding: 1.1rem 1.15rem 1.1rem 2.8rem; background: var(--color-gray-50); border: 1px solid var(--color-gray-200); border-radius: var(--radius-sm); }
.partner-benefits li::before { position: absolute; top: 1.2rem; left: 1rem; color: var(--color-primary-hover); content: "●"; }
.accordion { --bs-accordion-border-color: var(--color-gray-200); --bs-accordion-btn-focus-box-shadow: 0 0 0 .22rem var(--color-focus); --bs-accordion-active-color: var(--color-black); --bs-accordion-active-bg: var(--color-gray-50); }
.accordion-item { overflow: hidden; margin-bottom: .7rem; background: var(--color-white); border: 1px solid var(--color-gray-200) !important; border-radius: var(--radius-sm) !important; }
.accordion-button { padding: 1.15rem 1.3rem; color: var(--color-black); font-weight: 800; }
.accordion-button:not(.collapsed) { box-shadow: inset 5px 0 0 var(--color-primary); }
.accordion-body { padding: 0 1.3rem 1.3rem; color: var(--color-gray-500); }

.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.blog-card { min-width: 0; display: flex; flex-direction: column; overflow: hidden; background: var(--color-white); border: 1px solid var(--color-gray-200); border-radius: var(--radius-md); }
.blog-card > a { display: block; overflow: hidden; }
.blog-card img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .4s ease; }
.blog-card:hover img { transform: scale(1.035); }
.blog-card-body { display: flex; flex: 1; flex-direction: column; padding: 1.3rem; }
.blog-card time { color: var(--color-gray-500); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.blog-card h2, .blog-card h3 { margin: .55rem 0 .75rem; font-size: 1.55rem; }
.blog-card h2 a, .blog-card h3 a { text-decoration: none; }
.blog-card p { color: var(--color-gray-500); }
.blog-card-body > a:last-child { width: fit-content; margin-top: auto; font-weight: 800; text-decoration-color: var(--color-primary); text-decoration-thickness: .25rem; }
.article-header { max-width: 950px; margin-inline: auto; text-align: center; }
.article-header h1 { font-size: clamp(2.5rem, 6.5vw, 5.3rem); }
.article-cover { width: min(calc(100% - 2rem), 1180px); max-height: 680px; margin: -2.5rem auto 0; object-fit: cover; border-radius: var(--radius-md); box-shadow: var(--shadow-md); }
.article-prose { max-width: 760px; margin-inline: auto; color: var(--color-gray-700); font-size: clamp(1rem, 1.5vw, 1.1rem); }
.article-prose h2 { margin-top: 2.5rem; font-size: clamp(1.8rem, 3vw, 2.25rem); }
.article-prose a { text-decoration-color: var(--color-primary-hover); text-decoration-thickness: .2rem; }
.article-byline { display: flex; flex-wrap: wrap; gap: .65rem 1.2rem; justify-content: center; color: var(--color-gray-500); font-size: .84rem; }
.article-layout { display: grid; grid-template-columns: minmax(180px, 240px) minmax(0, 720px); gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.article-toc { position: sticky; top: calc(var(--header-height) + 1.5rem); padding: 1.2rem; background: var(--color-gray-50); border-left: 5px solid var(--color-primary); border-radius: var(--radius-sm); }
.article-toc ol { display: grid; gap: .55rem; margin: 1rem 0 0; padding-left: 1.2rem; font-size: .84rem; }
.article-prose h2 { scroll-margin-top: calc(var(--header-height) + 1rem); }
.article-tags, .social-share, .footer-social { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; }
.article-tags span, .social-share a { padding: .4rem .65rem; background: var(--color-gray-100); border-radius: var(--radius-xs); font-size: .75rem; text-decoration: none; }
.social-share strong { width: 100%; }
.sitemap-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 5rem); }
.clean-list { display: grid; gap: .7rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.clean-list a { text-decoration: none; }
.clean-list a:hover { text-decoration: underline; text-decoration-color: var(--color-primary-hover); text-decoration-thickness: .2rem; }

.form-shell { padding: clamp(1.3rem, 4vw, 2.6rem); background: var(--color-white); border: 1px solid var(--color-gray-200); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.form-label { color: var(--color-black); font-size: .84rem; font-weight: 800; }
.form-control, .form-select { min-height: 3.15rem; color: var(--color-black); background-color: var(--color-white); border: 1px solid var(--color-gray-200); border-radius: var(--radius-xs); }
.form-control:hover, .form-select:hover { border-color: var(--color-gray-500); }
.form-control:focus, .form-select:focus { border-color: var(--color-black); box-shadow: 0 0 0 .22rem var(--color-focus); }
textarea.form-control { min-height: 140px; resize: vertical; }
.form-check-input { border-color: var(--color-gray-500); }
.form-check-input:checked { background-color: var(--color-black); border-color: var(--color-black); }
.form-check-input:focus { border-color: var(--color-black); box-shadow: 0 0 0 .22rem var(--color-focus); }
.form-hint { color: var(--color-gray-500); font-size: .8rem; }
.form-status { display: none; margin-top: 1rem; padding: .9rem 1rem; border-radius: var(--radius-xs); }
.form-status.success { display: block; color: var(--color-success); background: var(--color-success-soft); }
.form-status.error { display: block; color: var(--color-danger); background: var(--color-danger-soft); }
.booking-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); gap: 2rem; align-items: start; }
.booking-summary { position: sticky; top: calc(var(--header-height) + 1.5rem); overflow: hidden; background: var(--color-gray-50); border: 1px solid var(--color-gray-200); border-radius: var(--radius-md); }
.booking-summary img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.booking-summary-body { padding: 1.35rem; }
.booking-summary h2 { font-size: 1.55rem; }
.summary-lines { display: grid; gap: .65rem; margin: 1.2rem 0; padding: 1rem 0; border-block: 1px solid var(--color-gray-200); }
.summary-line { display: flex; justify-content: space-between; gap: 1rem; color: var(--color-gray-500); font-size: .9rem; }
.summary-line strong { color: var(--color-black); text-align: right; }
.summary-total { display: flex; align-items: end; justify-content: space-between; }
.summary-total strong { color: var(--color-black); font-size: 1.6rem; }
.form-step { margin-bottom: 2rem; padding-bottom: 2rem; border-bottom: 1px solid var(--color-gray-200); }
.form-step:last-of-type { border-bottom: 0; }
.form-step-title { display: flex; gap: .75rem; align-items: center; margin-bottom: 1.3rem; font-size: 1.08rem; font-weight: 850; letter-spacing: 0; }
.form-step-title span { width: 2rem; height: 2rem; display: grid; place-items: center; color: var(--color-black); background: var(--color-primary); border-radius: var(--radius-xs); font-size: .78rem; }
.notice { padding: 1rem 1.1rem; color: var(--color-gray-700); background: var(--color-gray-50); border-left: 5px solid var(--color-primary); border-radius: var(--radius-xs); font-size: .87rem; }
.voucher-card { position: relative; max-width: 680px; min-height: 380px; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; padding: clamp(2rem, 5vw, 3.5rem); color: var(--color-white); background: var(--color-dark); border-radius: var(--radius-md); box-shadow: var(--shadow-md); }
.voucher-card::before { position: absolute; top: -25%; right: -10%; width: 55%; aspect-ratio: 1; content: ""; border: 2.5rem solid var(--color-primary); border-radius: 50%; }
.voucher-card > * { position: relative; z-index: 1; }
.voucher-card h2 { max-width: 440px; color: var(--color-white); font-size: clamp(2.4rem, 6vw, 4.4rem); }
.pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.pricing-card { padding: 1.75rem; background: var(--color-white); border: 1px solid var(--color-gray-200); border-top: 5px solid var(--color-primary); border-radius: var(--radius-md); text-align: center; }
.pricing-card strong { display: block; margin-top: .7rem; color: var(--color-black); font-size: 2.2rem; font-weight: 900; }
.success-panel, .not-found-panel { min-height: 65vh; display: grid; place-items: center; padding: 5rem 1rem; text-align: center; }
.success-panel .inner, .not-found-panel .inner { max-width: 760px; }
.success-icon { width: 5rem; height: 5rem; display: grid; margin: 0 auto 2rem; place-items: center; color: var(--color-black); background: var(--color-primary); border-radius: 50%; font-size: 2rem; }

.site-footer { padding: clamp(4rem, 8vw, 6.5rem) 0 1.5rem; color: var(--color-white-70); background: var(--color-black); }
.footer-grid { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: clamp(2rem, 5vw, 5rem); }
.navbar-brand-footer { margin-bottom: 1.35rem; color: var(--color-white) !important; }
.navbar-brand-footer img { box-shadow: 0 5px 0 var(--color-primary); }
.footer-brand p { max-width: 390px; }
.footer-origin { color: var(--color-primary); font-size: .8rem; font-weight: 750; }
.site-footer h2 { margin-bottom: 1rem; color: var(--color-white); font-size: .74rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.site-footer .footer-grid > div:not(.footer-brand) { display: flex; flex-direction: column; align-items: flex-start; gap: .65rem; }
.site-footer a { color: var(--color-white-70); font-size: .88rem; text-decoration: none; }
.site-footer a:hover { color: var(--color-primary); }
.footer-legal { margin-top: .4rem; color: var(--color-white-56); font-size: .72rem; }
.footer-bottom { display: flex; gap: 1rem; align-items: center; justify-content: space-between; margin-top: 4rem; padding-top: 1.3rem; border-top: 1px solid var(--color-white-14); font-size: .75rem; }
.footer-languages { display: flex; gap: .65rem; }
.footer-languages a { font-size: .75rem; font-weight: 850; }
.footer-languages a.active { color: var(--color-primary); }
.footer-social a { padding: .4rem .65rem; color: var(--color-white-82); background: var(--color-white-08); border-radius: var(--radius-xs); font-size: .74rem; text-decoration: none; }
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .55s ease, transform .55s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

@media (min-width: 768px) {
  .section-heading { grid-template-columns: 1.25fr .75fr; }
}

@media (max-width: 1199.98px) {
  .navbar-collapse { margin-top: .75rem; padding: 1rem; background: var(--color-white); border: 1px solid var(--color-gray-200); border-radius: var(--radius-sm); box-shadow: var(--shadow-md); }
  .navbar-nav { align-items: stretch !important; }
  .nav-cta { margin: .55rem 0 0; }
  .nav-cta .btn { width: 100%; }
  .navbar .nav-link.active::after { right: auto; bottom: .3rem; width: 2rem; }
  .language-menu .dropdown-menu { box-shadow: none; }
  .experience-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .why-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1.5fr repeat(3, 1fr); gap: 2rem; }
}

@media (max-width: 991.98px) {
  .story-split, .content-grid, .booking-layout, .newsletter { grid-template-columns: 1fr; }
  .story-image img { min-height: 430px; }
  .sticky-card, .booking-summary { position: static; }
  .value-grid, .format-grid { grid-template-columns: 1fr 1fr; }
  .review-grid, .blog-grid { grid-template-columns: 1fr 1fr; }
  .review-card:last-child { grid-column: 1 / -1; min-height: 240px; }
  .experience-facts { grid-template-columns: repeat(2, 1fr); }
  .photo-strip { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 767.98px) {
  body.page-experience { padding-bottom: 5.25rem; }
  .container-wide { width: min(calc(100% - 1.25rem), 1320px); }
  .section { padding: clamp(3.5rem, 14vw, 4.5rem) 0; }
  .hero { min-height: 700px; }
  .hero-media::after { background: linear-gradient(0deg, var(--color-black-88) 8%, var(--color-black-54) 72%, var(--color-black-28)); }
  .hero-content { padding-bottom: 2.75rem; }
  .hero h1 { font-size: clamp(2.75rem, 13vw, 4.7rem); }
  .hero-actions .btn { width: 100%; }
  .hero-trust { gap: .65rem; }
  .hero-trust li { width: 100%; }
  .route-line { display: none; }
  .experience-grid, .review-grid, .blog-grid, .value-grid, .format-grid, .pricing-grid { grid-template-columns: 1fr; }
  .experience-card-image { aspect-ratio: 16 / 10; }
  .experience-card-footer { align-items: center; }
  .why-grid { grid-template-columns: 1fr; }
  .why-card { min-height: auto; }
  .why-number { margin-bottom: 1.8rem; }
  .stats-grid { grid-template-columns: 1fr; }
  .stat { padding: 2.2rem 1rem; }
  .photo-strip { grid-template-columns: repeat(2, 1fr); }
  .photo-strip img { aspect-ratio: 16 / 10; }
  .photo-strip img:first-child { grid-column: 1 / -1; }
  .map-panel { min-height: 430px; }
  .map-copy { right: 1rem; bottom: 1rem; left: 1rem; }
  .page-hero-image { min-height: 540px; }
  .experience-facts { margin-top: 0; border-radius: 0; box-shadow: none; }
  .detail-columns { grid-template-columns: 1fr; }
  .mobile-booking-bar { position: fixed; z-index: 1050; right: 0; bottom: 0; left: 0; display: flex; gap: .75rem; align-items: center; justify-content: space-between; padding: .7rem max(.75rem, env(safe-area-inset-right)) calc(.7rem + env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left)); background: var(--color-white-92); border-top: 1px solid var(--color-gray-200); box-shadow: 0 -10px 30px var(--color-black-14); backdrop-filter: blur(18px); }
  .mobile-booking-bar .price strong { font-size: 1rem; }
  .mobile-booking-bar .btn { min-height: 2.8rem; flex: 1; box-shadow: 0 4px 0 var(--color-black); }
  .calendar-table { overflow: visible; background: transparent; border: 0; box-shadow: none; }
  .calendar-row { grid-template-columns: 1fr 1fr; margin-bottom: .8rem; padding: 1rem; background: var(--color-white); border: 1px solid var(--color-gray-200); border-radius: var(--radius-sm); }
  .calendar-row-head { display: none; }
  .calendar-row .calendar-title { grid-column: 1 / -1; font-weight: 850; }
  .calendar-row .btn { grid-column: 1 / -1; width: 100%; }
  .partner-benefits { grid-template-columns: 1fr; }
  .newsletter-form { flex-direction: column; padding: .65rem; }
  .newsletter-form .btn { width: 100%; }
  .article-layout, .sitemap-grid { grid-template-columns: 1fr; }
  .article-toc { position: static; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  .reveal { opacity: 1; transform: none; }
}

@media (max-width: 480px) {
  h1 { font-size: 2.5rem; }
  .navbar-brand strong { font-size: .86rem; }
  .navbar-brand small { font-size: .48rem; }
  .navbar-brand img { width: 40px; height: 40px; }
  .experience-facts { grid-template-columns: 1fr 1fr; }
  .fact { padding: 1rem; }
  .photo-strip { grid-template-columns: 1fr; }
  .photo-strip img:first-child { grid-column: auto; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .reveal { opacity: 1; transform: none; }
}
