/* Fonts and shared design tokens */
@font-face {
  font-family:Editorial;
  src:url('../fonts/editorial.woff2') format('woff2');
  font-display:swap;
  font-weight:400
}
@font-face {
  font-family:Editorial;
  src:url('../fonts/editorial-italic.woff2') format('woff2');
  font-display:swap;
  font-style:italic;
  font-weight:400
}
@font-face {
  font-family:Lato;
  src:url('../fonts/lato-regular.ttf') format('truetype');
  font-display:swap;
  font-weight:400
}
@font-face {
  font-family:Lato;
  src:url('../fonts/lato-bold.ttf') format('truetype');
  font-display:swap;
  font-weight:700
}
@font-face {
  font-family:Poppins;
  src:url('../fonts/poppins-300.woff2') format('woff2');
  font-display:swap;
  font-style:normal;
  font-weight:300
}
@font-face {
  font-family:Poppins;
  src:url('../fonts/poppins-400.woff2') format('woff2');
  font-display:swap;
  font-style:normal;
  font-weight:400
}
@font-face {
  font-family:Poppins;
  src:url('../fonts/poppins-500.woff2') format('woff2');
  font-display:swap;
  font-style:normal;
  font-weight:500
}
@font-face {
  font-family:Poppins;
  src:url('../fonts/poppins-600.woff2') format('woff2');
  font-display:swap;
  font-style:normal;
  font-weight:600
}
@font-face {
  font-family:Poppins;
  src:url('../fonts/poppins-700.woff2') format('woff2');
  font-display:swap;
  font-style:normal;
  font-weight:700
}
@font-face {
  font-family:Poppins;
  src:url('../fonts/poppins-400-italic.woff2') format('woff2');
  font-display:swap;
  font-style:italic;
  font-weight:400
}
@font-face {
  font-family:Poppins;
  src:url('../fonts/poppins-500-italic.woff2') format('woff2');
  font-display:swap;
  font-style:italic;
  font-weight:500
}
:root {
  --paper:#f7f5ed;
  --cream:#ebe9dc;
  --ink:#1d332a;
  --green:#173e31;
  --forest:#11382c;
  --lime:#d6db90;
  --muted:#687469;
  --line:#d7d9cb;
  --serif:Poppins,Arial,sans-serif;
  --sans:Poppins,Arial,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1)
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:110px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:15px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select,textarea {
  font:inherit
}
button,a,input,select,textarea {
  -webkit-tap-highlight-color:transparent
}
button {
  color:inherit;
  cursor:pointer
}
button:disabled {
  cursor:not-allowed
}
img {
  max-width:100%;
  display:block
}
button {
  border:0
}
h1,h2,h3,h4,p {
  margin:0
}
h1,h2,h3,h4 {
  font-family:var(--serif);
  font-weight:500;
  line-height:1.02
}
h1 {
  font-size:clamp(62px,7.5vw,112px);
  letter-spacing:-3.5px
}
h2 {
  font-size:clamp(46px,5vw,76px);
  letter-spacing:-2px
}
h3 {
  font-size:34px;
  letter-spacing:-.6px
}
em {
  font-family:var(--serif);
  font-weight:500
}
p+p {
  margin-top:18px
}
p {
  text-wrap:pretty
}
.icon {
  width:22px;
  height:22px;
  flex-shrink:0;
  vertical-align:middle
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:3px solid #a8b75b;
  outline-offset:6px
}
input:focus,textarea:focus,select:focus {
  outline:2px solid #879e73;
  outline-offset:2px
}
.frame {
  width:calc(100% - 112px);
  max-width:1328px;
  margin:0 auto
}
.section {
  padding:110px 0
}
.eyebrow {
  display:block;
  font-size:13.5px;
  font-weight:700;
  letter-spacing:2px;
  line-height:1.6
}
.small-star {
  font-size:40px;
  font-weight:400;
  line-height:1
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  border-radius:40px;
  padding:16px 25px;
  font-size:13.5px;
  font-weight:700;
  letter-spacing:.2px;
  line-height:1.4;
  transition:background .25s,transform .25s;
  white-space:nowrap
}
.button:hover {
  transform:translateY(-3px)
}
.button .icon {
  width:20px;
  height:20px
}
.button-green {
  background:var(--green);
  color:var(--paper)
}
.button-green:hover {
  background:#285c45
}
.button-cream {
  background:var(--paper);
  color:var(--green)
}
.button-cream:hover {
  background:var(--lime)
}
.button-outline {
  border:1px solid var(--ink);
  background:transparent
}
.button-outline:hover {
  background:var(--green);
  color:var(--paper)
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:18px;
  font-size:13.5px;
  font-weight:700;
  line-height:1.5;
  padding:9px 0;
  border-bottom:1px solid currentColor;
  background:none
}
.text-link .icon {
  width:19px;
  height:19px;
  transition:transform .3s
}
.text-link:hover .icon {
  transform:translate(4px,-2px)
}
.text-link.light {
  color:var(--paper)
}
.icon-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  background:transparent;
  border-radius:50%;
  flex-shrink:0
}
.icon-button:hover {
  background:#bbc5af33
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip-link {
  position:fixed;
  z-index:1000;
  top:-80px;
  left:20px;
  background:var(--paper);
  padding:15px
}
.skip-link:focus {
  top:10px
}
/* Navigation */
.topline {
  height:31px;
  background:var(--green);
  color:#f0f0df;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 56px;
  font-size:13.5px;
  letter-spacing:.7px
}
.topline a {
  display:flex;
  align-items:center;
  gap:18px
}
.topline .icon {
  width:12px;
  height:12px
}
.site-header {
  height:94px;
  padding:0 48px;
  display:flex;
  align-items:center;
  gap:35px;
  justify-content:space-between;
  background:var(--paper);
  position:sticky;
  top:0;
  z-index:100;
  border-bottom:1px solid transparent;
  transition:box-shadow .3s
}
.site-header.scrolled {
  box-shadow:0 5px 30px #102c2310;
  border-color:var(--line)
}
.brand {
  display:flex;
  align-items:center;
  gap:12px;
  white-space:nowrap
}
.brand>img {
  object-fit:contain
}
.brand>span {
  font-family:var(--sans);
  font-size:19px;
  letter-spacing:-.7px;
  font-weight:700;
  line-height:1.1
}
.brand small {
  font-size:13px;
  letter-spacing:2.8px;
  display:block;
  margin-top:8px;
  font-weight:400
}
.desktop-nav {
  display:flex;
  align-items:center;
  gap:25px
}
.desktop-nav>a {
  font-size:14px;
  position:relative;
  padding:10px 0;
  white-space:nowrap
}
.desktop-nav>a:after {
  content:'';
  position:absolute;
  bottom:2px;
  left:0;
  width:0;
  height:1px;
  background:var(--green);
  transition:width .25s
}
.desktop-nav>a:hover:after,.desktop-nav>a[aria-current]:after {
  width:100%
}
.header-actions {
  display:flex;
  align-items:center;
  gap:13px
}
.header-cta {
  font-size:13.5px;
  padding:15px 20px;
  gap:20px
}
.menu-toggle {
  display:none
}
.mobile-nav {
  position:fixed;
  z-index:99;
  top:80px;
  bottom:0;
  left:0;
  right:0;
  background:var(--paper);
  padding:40px 28px;
  overflow:auto
}
.mobile-nav>a:not(.button) {
  font-family:var(--serif);
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:36px;
  padding:16px 0;
  border-bottom:1px solid var(--line)
}
.mobile-nav>.eyebrow {
  margin-bottom:20px
}
.mobile-nav>.button {
  margin-top:30px;
  width:100%
}
body.menu-open {
  overflow:hidden
}
[hidden] {
  display:none!important
}
/* Homepage */
.hero {
  position:relative;
  height:min(790px,calc(100svh - 125px));
  min-height:650px;
  background:#343c2d;
  color:var(--paper);
  overflow:hidden
}
.hero-image {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:66% 57%
}
.hero-shade {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(9,29,22,.68),rgba(9,29,22,.22) 50%,rgba(9,29,22,.03) 75%),linear-gradient(0deg,rgba(9,29,22,.4),transparent 45%)
}
.hero-inner {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding-top:0
}
.hero-kicker {
  display:flex;
  align-items:center;
  gap:15px;
  font-size:13.5px;
  letter-spacing:2.2px;
  margin-bottom:24px
}
.hero-kicker .small-star {
  font-size:28px;
  color:var(--lime)
}
.hero h1 {
  font-size:clamp(86px,8.3vw,126px);
  line-height:.91;
  letter-spacing:-3.5px;
  max-width:690px
}
.hero h1 em {
  color:#e0e0b5
}
.hero-description {
  margin-top:28px
}
.hero-description>p {
  font-size:14px;
  line-height:1.7;
  letter-spacing:.15px;
  margin-bottom:24px;
  color:#f3f1e8
}
.film-button {
  display:inline-flex;
  gap:12px;
  align-items:center;
  background:none;
  color:var(--paper);
  font-size:13.5px;
  margin-left:25px;
  padding:10px 0;
  border-bottom:1px solid #faf8e478
}
.film-button .icon {
  width:15px;
  height:15px
}
.hero-bottom {
  position:absolute;
  bottom:28px;
  left:0;
  right:0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:13px;
  letter-spacing:2px
}
.hero-bottom a {
  display:flex;
  gap:18px;
  align-items:center
}
.hero-bottom .icon {
  width:16px;
  height:16px
}
.hero-stamp {
  position:absolute;
  right:20px;
  bottom:85px;
  width:132px;
  height:132px;
  color:#f3efd7
}
.hero-stamp>svg {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  animation:turn 55s linear infinite;
  fill:currentColor;
  font-size:13.5px;
  letter-spacing:3px;
  font-family:var(--sans)
}
.hero-stamp>span {
  position:absolute;
  inset:35px;
  border:1px solid #f3efd766;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  font-size:16px;
  font-weight:700
}
.hero-stamp>span>span {
  color:var(--lime);
  font-size:23px;
  font-weight:400
}
@keyframes turn {
  to {
    transform:rotate(360deg)
  }
}
.experience-rail {
  border-bottom:1px solid var(--line)
}
.experience-rail>.frame {
  display:grid;
  grid-template-columns:repeat(4,1fr)
}
.experience-rail a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:25px 26px;
  border-left:1px solid var(--line);
  font-family:var(--serif);
  font-size:24px;
  line-height:1.2;
  transition:background .2s
}
.experience-rail a:last-child {
  border-right:1px solid var(--line)
}
.experience-rail small {
  font:11.5px var(--sans);
  align-self:flex-start;
  margin-top:5px;
  color:var(--muted)
}
.experience-rail .icon {
  width:18px;
  height:18px
}
.experience-rail a:hover {
  background:var(--cream)
}
.intro-grid {
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:35px 90px;
  align-items:start
}
.section-index {
  grid-column:1/-1
}
.intro-grid h2 {
  font-size:clamp(46px,4.5vw,69px)
}
.intro-copy {
  padding-top:5px;
  max-width:370px;
  font-size:14px;
  color:#576357
}
.intro-copy p:first-child {
  color:var(--ink)
}
.intro-copy .text-link {
  color:var(--ink);
  margin-top:20px
}
.intro-section {
  padding-bottom:105px
}
.journeys-section {
  padding-top:20px
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:35px;
  margin-bottom:40px
}
.section-heading .eyebrow {
  margin-bottom:23px
}
.section-heading>div:last-child:not(:first-child) {
  max-width:380px;
  padding-bottom:5px
}
.section-heading p {
  font-size:14px;
  color:var(--muted);
  margin-bottom:17px
}
.section-heading>.text-link {
  margin-bottom:10px
}
.filter-tabs {
  display:flex;
  gap:32px;
  border-bottom:1px solid var(--line);
  margin-bottom:40px
}
.filter-tabs button {
  font-size:14px;
  background:none;
  padding:14px 0 18px;
  border-bottom:2px solid transparent;
  position:relative;
  top:1px;
  color:var(--muted)
}
.filter-tabs button[aria-pressed=true] {
  border-color:var(--green);
  color:var(--ink);
  font-weight:700
}
.filter-tabs button span {
  margin-left:25px
}
.tour-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:50px 30px
}
.tour-card {
  min-width:0
}
.tour-image {
  height:auto;
  aspect-ratio:4/4.5;
  display:block;
  position:relative;
  overflow:hidden;
  background:var(--cream)
}
.tour-image:after {
  content:'';
  position:absolute;
  inset:55% 0 0;
  background:linear-gradient(transparent,#0d271b20)
}
.tour-image img {
  height:100%;
  width:100%;
  object-fit:cover;
  transition:transform .8s var(--ease)
}
.tour-card:hover img {
  transform:scale(1.04)
}
.image-tag {
  position:absolute;
  left:18px;
  top:18px;
  background:#f7f5edeb;
  padding:5px 11px;
  font-size:13px;
  letter-spacing:.8px;
  border-radius:20px;
  line-height:1.5
}
.card-arrow {
  position:absolute;
  right:18px;
  bottom:18px;
  width:41px;
  height:41px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #ffffffe0;
  border-radius:50%;
  color:white;
  z-index:1;
  transition:background .25s
}
.tour-image:hover .card-arrow {
  background:var(--paper);
  color:var(--green)
}
.tour-meta {
  display:flex;
  gap:14px;
  font-size:13px;
  letter-spacing:1px;
  line-height:1.7;
  margin:20px 0 11px;
  flex-wrap:wrap
}
.tour-meta span+span:before {
  content:'·';
  margin-right:14px;
  color:#a3ab9d
}
.tour-card h3 {
  font-size:33px;
  line-height:1.08;
  margin-bottom:12px;
  max-width:350px
}
.tour-card>p {
  font-size:14px;
  color:var(--muted);
  line-height:1.6
}
.tour-card .text-link {
  margin-top:15px;
  font-size:13.5px;
  border-bottom-color:var(--line);
  width:100%;
  justify-content:space-between
}
.featured-grid:not([data-ready]) .featured-card:nth-child(n+4) {
  display:none
}
.featured-grid .tour-card[hidden] {
  display:none
}
.parks-section {
  background:var(--green);
  color:var(--paper);
  padding:100px 0 30px;
  position:relative;
  overflow:hidden
}
.parks-section:before {
  content:'';
  position:absolute;
  width:600px;
  height:600px;
  border:1px solid #7c976c1a;
  border-radius:45% 55% 30% 70%;
  top:-300px;
  right:-200px;
  box-shadow:0 0 0 60px #7c976c09,0 0 0 120px #7c976c08,0 0 0 180px #7c976c06
}
.parks-section .frame {
  position:relative
}
.parks-section .eyebrow {
  color:var(--lime)
}
.parks-section h2 em {
  color:#d4dcaf
}
.parks-section .section-heading p {
  color:#c2cdbd
}
.park-mosaic {
  display:grid;
  grid-template-columns:1.2fr .9fr .9fr;
  grid-template-rows:235px 235px;
  gap:20px;
  margin-top:50px
}
.park-tile {
  position:relative;
  overflow:hidden;
  background:#0d291f
}
.park-tile-1 {
  grid-row:span 2
}
.park-tile-2 {
  grid-column:span 2
}
.park-tile:after {
  position:absolute;
  inset:0;
  content:'';
  background:linear-gradient(0deg,#0c221dda,transparent 75%)
}
.park-tile img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .8s var(--ease)
}
.park-tile:hover img {
  transform:scale(1.04)
}
.park-tile>div {
  position:absolute;
  bottom:25px;
  left:28px;
  right:50px;
  z-index:1
}
.park-tile h3 {
  font-size:36px;
  margin-top:10px
}
.park-tile .eyebrow {
  font-size:13px;
  letter-spacing:1.5px;
  color:#e0e6d6
}
.park-tile p {
  font-size:14px;
  margin-top:10px;
  color:#d4ddd0
}
.park-tile-1 h3 {
  font-size:45px
}
.tile-arrow {
  position:absolute;
  bottom:28px;
  right:24px;
  z-index:2
}
.tile-arrow .icon {
  width:23px;
  height:23px
}
.parks-foot {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:35px;
  padding-top:22px;
  border-top:1px solid #94ab8c44;
  font-size:13px;
  letter-spacing:1.5px;
  color:#cad5c4
}
.parks-foot>span:nth-child(2) {
  font-size:22px;
  color:var(--lime)
}
.our-way {
  padding:140px 0
}
.our-way-grid {
  display:grid;
  grid-template-columns:1.08fr 1fr;
  gap:110px;
  align-items:center
}
.photo-composition {
  position:relative;
  padding-right:80px;
  padding-bottom:90px;
  margin-left:20px
}
.photo-main {
  width:100%;
  height:530px;
  object-fit:cover
}
.photo-inset {
  position:absolute;
  right:0;
  bottom:20px;
  width:48%;
  height:270px;
  object-fit:cover;
  border:9px solid var(--paper);
  transform:rotate(5deg)
}
.photo-note {
  position:absolute;
  bottom:10px;
  left:25px;
  font-family:var(--serif);
  font-style:italic;
  font-size:25px;
  line-height:1.1;
  transform:rotate(-6deg)
}
.local-seal {
  position:absolute;
  left:-30px;
  top:37px;
  border-radius:50%;
  width:134px;
  height:134px;
  background:var(--lime);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  font-size:13px;
  letter-spacing:1.5px;
  transform:rotate(-13deg);
  border:1px solid var(--green);
  outline:7px solid var(--lime)
}
.local-seal>span {
  font-size:14px;
  line-height:1.2;
  text-align:center;
  letter-spacing:0;
  padding:9px
}
.local-seal em {
  font-size:35px
}
.our-way-copy .eyebrow {
  margin-bottom:26px
}
.our-way-copy h2 {
  font-size:68px
}
.our-way-copy .lead {
  font-size:20px;
  color:var(--ink);
  margin:30px 0 18px
}
.lead {
  font-family:var(--serif);
  font-size:26px;
  line-height:1.45
}
.our-way-copy>p:not(.lead) {
  font-size:14px;
  color:var(--muted)
}
.our-way-copy>.button {
  margin-top:26px
}
.our-values {
  display:flex;
  gap:24px;
  margin-top:40px;
  padding-top:24px;
  border-top:1px solid var(--line)
}
.our-values>span {
  display:flex;
  flex-direction:column;
  gap:11px;
  font-size:13px
}
.our-values .icon {
  width:22px;
  height:22px
}
.services-preview {
  background:#eeeee3;
  border-top:1px solid var(--line);
  padding-top:90px;
  padding-bottom:90px
}
.service-row {
  display:grid;
  grid-template-columns:1.7fr 1fr 130px 35px;
  align-items:center;
  gap:24px;
  border-top:1px solid #cad0bf;
  padding:25px 0;
  transition:padding .4s
}
.service-row:last-child {
  border-bottom:1px solid #cad0bf
}
.service-row:hover {
  padding-left:12px
}
.service-number {
  font-size:13.5px;
  color:var(--muted);
  align-self:start;
  padding-top:10px
}
.service-row h3 {
  font-size:38px
}
.service-row p {
  font-size:14px;
  color:var(--muted)
}
.service-thumb {
  height:78px;
  overflow:hidden
}
.service-thumb img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s
}
.service-row:hover .service-thumb img {
  transform:scale(1.07)
}
.wide-photo {
  height:450px;
  position:relative;
  overflow:hidden;
  color:var(--paper)
}
.wide-photo>img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 50%
}
.wide-photo:after {
  content:'';
  position:absolute;
  inset:0;
  background:#17312736
}
.wide-photo>div {
  position:absolute;
  z-index:1;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  text-align:center
}
.wide-photo .eyebrow {
  font-size:13px;
  letter-spacing:2.5px
}
.wide-photo p {
  font-family:var(--serif);
  font-size:82px;
  line-height:1.1;
  margin-top:20px
}
.story-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:45px 30px
}
.story-image {
  display:block;
  position:relative;
  overflow:hidden;
  aspect-ratio:1.48;
  background:var(--cream)
}
.story-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s var(--ease)
}
.story-image>span {
  position:absolute;
  right:16px;
  bottom:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--paper);
  width:35px;
  height:35px
}
.story-image>span .icon {
  width:18px;
  height:18px
}
.story-image:hover img {
  transform:scale(1.04)
}
.story-card h3 {
  font-size:30px;
  line-height:1.12;
  margin-top:12px
}
.story-card .text-link {
  font-size:13.5px;
  margin-top:20px
}
.journal-section {
  padding-bottom:110px
}
.closing-section {
  background:var(--cream);
  border-top:1px solid #d0d3c3;
  padding:82px 0
}
.closing-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px
}
.closing-inner .eyebrow {
  font-size:13px;
  letter-spacing:1.8px;
  margin-bottom:25px
}
.closing-inner h2 {
  font-size:82px
}
.closing-copy {
  padding-right:7%;
  font-size:14px
}
.closing-copy .button {
  margin-top:25px
}
.site-footer {
  background:var(--forest);
  color:#e1e6d7;
  padding:65px 0 0
}
.footer-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px;
  border-bottom:1px solid #a0b19b33;
  padding-bottom:40px
}
.brand-light>span {
  color:var(--paper);
  font-size:24px
}
.footer-top>p {
  font-size:14px;
  color:#c1ccb9
}
.footer-email {
  display:flex;
  align-items:center;
  gap:20px;
  font-size:15px;
  border-bottom:1px solid #7e927566;
  padding:10px 0
}
.footer-email .icon {
  width:19px;
  height:19px
}
.footer-grid {
  display:grid;
  grid-template-columns:1.3fr 1fr 1.2fr 1fr;
  gap:40px;
  padding:46px 0
}
.footer-grid .eyebrow {
  font-size:13px;
  color:var(--lime);
  letter-spacing:1.2px;
  margin-bottom:18px
}
.footer-grid p,.footer-grid a {
  font-size:14px;
  line-height:1.9;
  color:#c3cfbc
}
.footer-grid a {
  display:block;
  width:fit-content;
  padding:2px 0
}
.footer-grid .icon {
  width:12px;
  height:12px;
  margin-left:4px
}
.footer-grid a:hover {
  color:white
}
.footer-wordmark {
  font-family:var(--serif);
  font-size:clamp(85px,14.5vw,220px);
  line-height:.9;
  letter-spacing:-4px;
  color:#c6d2b724;
  white-space:nowrap;
  text-align:center;
  padding:24px 0 35px
}
.footer-bottom {
  border-top:1px solid #a0b19b33;
  padding:22px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:13px;
  color:#a9bba0
}
.footer-bottom>div {
  display:flex;
  gap:28px
}
.whatsapp-float {
  position:fixed;
  z-index:90;
  right:24px;
  bottom:22px;
  display:flex;
  align-items:center;
  gap:8px;
  background:var(--green);
  color:var(--paper);
  border:1px solid #f7f5ed99;
  box-shadow:0 5px 20px #09261922;
  border-radius:35px;
  padding:12px 17px;
  font-size:13.5px
}
.whatsapp-float .icon {
  width:20px;
  height:20px
}
.whatsapp-float:hover {
  background:#326144
}
dialog {
  border:0;
  background:var(--paper);
  color:var(--ink);
  max-height:90svh;
  box-shadow:0 30px 90px #09261960
}
dialog::backdrop {
  background:#10261dcf;
  backdrop-filter:blur(5px)
}
.dialog-close {
  position:absolute;
  top:16px;
  right:16px;
  z-index:2;
  background:var(--paper)
}
.search-dialog {
  padding:65px;
  width:min(720px,92vw)
}
.search-dialog h2 {
  margin:22px 0 35px;
  font-size:75px
}
.search-dialog>form {
  display:flex;
  border-bottom:1px solid var(--ink);
  align-items:center
}
.search-dialog input {
  width:100%;
  border:0;
  background:none;
  padding:18px 0;
  font-size:16px;
  outline:none
}
.search-dialog>p {
  font-size:14px;
  margin-top:18px;
  color:var(--muted)
}
.film-dialog {
  padding:0;
  width:min(1050px,94vw);
  background:var(--green);
  color:var(--paper);
  overflow:visible
}
.film-dialog video {
  display:block;
  width:100%;
  max-height:75svh
}
.film-dialog>p {
  padding:18px 24px;
  font-size:14px
}
.film-dialog .dialog-close {
  top:-20px;
  right:-10px;
  color:var(--green)
}
/* Catalogue and detail pages */
.page-intro {
  padding-top:75px;
  padding-bottom:60px
}
.intro-top {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  margin-bottom:27px
}
.intro-top .small-star {
  color:#778b5f;
  font-size:40px
}
.page-intro h1 {
  max-width:950px;
  font-size:108px
}
.page-intro-bottom {
  margin-top:35px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:35px
}
.page-intro-bottom>p {
  font-size:15px;
  line-height:1.65;
  color:var(--muted);
  max-width:500px
}
.page-intro-bottom>span {
  font-size:13px;
  letter-spacing:1.4px;
  color:var(--muted)
}
.catalog-section {
  padding-bottom:100px
}
.catalog-filters {
  display:grid;
  grid-template-columns:1.6fr 1.1fr 1fr 1fr 60px;
  border:1px solid var(--line);
  background:#faf9f3;
  align-items:stretch
}
.catalog-filters>label {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:17px 20px;
  border-right:1px solid var(--line);
  min-width:0
}
.catalog-filters>label>span:not(.sr-only) {
  font-size:13px;
  letter-spacing:1.4px;
  color:var(--muted);
  margin-bottom:8px
}
.catalog-filters .filter-search {
  flex-direction:row;
  align-items:center;
  gap:12px
}
.filter-search .icon {
  width:18px;
  height:18px
}
.catalog-filters input,.catalog-filters select {
  width:100%;
  background:none;
  border:0;
  color:var(--ink);
  font-size:13.5px;
  min-width:0
}
.catalog-filters select {
  padding:0;
  cursor:pointer;
  max-width:100%
}
.filter-submit {
  background:var(--green);
  color:var(--paper);
  display:flex;
  justify-content:center;
  align-items:center
}
.filter-submit:hover {
  background:#326144
}
.results-line {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:13px;
  letter-spacing:1px;
  margin:30px 0
}
.results-line a {
  font-size:13.5px;
  letter-spacing:0
}
.catalog-note {
  margin-top:65px;
  padding:30px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  display:flex;
  gap:30px;
  align-items:center
}
.catalog-note>span>.icon {
  width:40px;
  height:40px
}
.catalog-note h3 {
  font-size:29px
}
.catalog-note p {
  font-size:13.5px;
  color:var(--muted);
  max-width:650px;
  margin-top:8px
}
.catalog-note .text-link {
  margin-left:auto;
  white-space:nowrap
}
.empty-state {
  grid-column:1/-1;
  text-align:center;
  padding:75px 0 95px
}
.empty-state h2 {
  margin:25px 0;
  font-size:64px
}
.empty-state>p {
  color:var(--muted);
  font-size:14px
}
.empty-state .button {
  margin-top:25px
}
.detail-hero {
  height:570px;
  position:relative;
  color:var(--paper);
  background:var(--green)
}
.detail-hero>img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 43%
}
.detail-hero>.frame {
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding-bottom:55px
}
.detail-hero .breadcrumb {
  position:absolute;
  top:35px;
  font-size:13px;
  letter-spacing:1.3px
}
.detail-hero .eyebrow {
  color:#d6ddbb;
  margin-bottom:20px;
  font-size:13px
}
.detail-hero h1 {
  font-size:90px;
  max-width:850px;
  line-height:.98
}
.detail-hero p {
  margin-top:20px;
  font-size:14px
}
.detail-facts {
  display:flex;
  align-items:center;
  gap:30px;
  border-bottom:1px solid var(--line);
  padding-top:22px;
  padding-bottom:22px;
  font-size:14px
}
.detail-facts>span {
  display:flex;
  align-items:center;
  gap:9px
}
.detail-facts .icon {
  width:17px;
  height:17px
}
.detail-facts>a {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:35px;
  font-size:13.5px;
  font-weight:700
}
.detail-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 305px;
  gap:85px;
  padding-top:70px;
  padding-bottom:65px;
  align-items:start
}
.detail-body>.eyebrow {
  margin-bottom:22px
}
.detail-body h2 {
  font-size:66px
}
.detail-body>.lead {
  margin:30px 0;
  color:var(--ink)
}
.overview-copy p {
  font-size:14px;
  color:#5c685c;
  line-height:1.9
}
.route-strip {
  background:var(--cream);
  padding:24px;
  margin:35px 0 60px;
  border-left:2px solid #98a87b
}
.route-strip .eyebrow {
  font-size:13px;
  color:var(--muted);
  margin-bottom:10px
}
.route-strip p {
  font-size:13.5px
}
.itinerary-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:30px
}
.itinerary-heading .eyebrow {
  margin-bottom:20px;
  font-size:13px
}
.print-button {
  font-size:13px;
  max-width:145px;
  text-align:left
}
.itinerary details {
  border-top:1px solid var(--line)
}
.itinerary details:last-child {
  border-bottom:1px solid var(--line)
}
.itinerary summary {
  display:flex;
  align-items:baseline;
  gap:20px;
  padding:24px 0;
  list-style:none;
  cursor:pointer
}
.itinerary summary::-webkit-details-marker {
  display:none
}
.day-index {
  font-size:13px;
  letter-spacing:1px;
  flex-shrink:0;
  min-width:45px;
  color:#7f8c72
}
.itinerary h3 {
  font-size:28px;
  line-height:1.2
}
.expand-mark {
  font:22px var(--sans);
  margin-left:auto;
  flex-shrink:0
}
.itinerary details[open] .expand-mark {
  transform:rotate(45deg)
}
.itinerary-copy {
  padding:0 30px 30px 65px;
  font-size:14px;
  color:#5b675c;
  line-height:1.9
}
.itinerary-copy p+p {
  margin-top:20px
}
.included-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:35px;
  margin-top:60px
}
.included-grid .eyebrow {
  font-size:13px;
  letter-spacing:1.4px;
  margin-bottom:14px
}
.included-grid h3 {
  font-size:34px
}
.included-grid ul {
  padding:0;
  margin:25px 0;
  list-style:none
}
.included-grid li {
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding-bottom:12px;
  font-size:13.5px;
  line-height:1.6;
  color:var(--muted)
}
.included-grid .icon {
  width:15px;
  height:15px;
  margin-top:2px
}
.fineprint {
  font-size:13.5px;
  color:var(--muted);
  line-height:1.8;
  border-top:1px solid var(--line);
  padding-top:20px
}
.journey-note {
  background:var(--cream);
  padding:30px;
  position:sticky;
  top:125px
}
.journey-note .eyebrow {
  font-size:13px
}
.journey-note h3 {
  font-size:54px;
  margin:22px 0
}
.journey-note>p {
  font-size:13.5px;
  color:var(--muted)
}
.journey-note .button {
  width:100%;
  font-size:13.5px;
  margin-top:25px;
  padding:17px
}
.note-divider {
  display:block;
  font-size:13px;
  letter-spacing:1.4px;
  text-align:center;
  margin:28px 0 15px;
  color:var(--muted)
}
.journey-note>.text-link {
  display:flex;
  justify-content:center;
  font-size:13.5px;
  border:0;
  padding:0
}
.journey-note small {
  display:block;
  text-align:center;
  font-size:13px;
  margin-top:20px;
  color:var(--muted)
}
.note-star {
  font-size:35px;
  display:block;
  margin-top:30px;
  color:#6e835e;
  text-align:center
}
.related-section {
  padding-top:25px
}
.destination-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:30px
}
.destination-grid .park-tile {
  height:450px;
  color:var(--paper)
}
.destination-grid .park-tile h3 {
  font-size:48px
}
.destinations-index {
  padding-bottom:100px
}
.park-copy {
  max-width:800px;
  margin:0 auto;
  padding:80px 0 20px
}
.park-copy .lead {
  font-size:34px;
  margin-bottom:30px
}
.park-copy p:not(.lead) {
  font-size:15px;
  line-height:1.9;
  color:var(--muted)
}
.about-hero {
  height:600px
}
.about-hero h1 {
  font-size:100px
}
.story-intro-grid {
  display:grid;
  grid-template-columns:1fr 1.5fr;
  gap:80px;
  align-items:start
}
.story-intro-grid .large-year {
  font-family:var(--serif);
  font-size:140px;
  line-height:1;
  display:block;
  margin-top:35px
}
.story-intro-grid h2 {
  font-size:60px;
  margin-bottom:30px
}
.story-intro-grid p {
  color:var(--muted);
  font-size:14px;
  line-height:1.9
}
.values-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:45px;
  margin-top:60px
}
.values-grid>div {
  border-top:1px solid var(--line);
  padding-top:25px
}
.values-grid h3 {
  font-size:32px;
  margin:20px 0 16px
}
.values-grid p {
  font-size:14px;
  color:var(--muted)
}
.values-grid .icon {
  width:32px;
  height:32px
}
.team-feature {
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:70px;
  align-items:center;
  padding:80px 0
}
.team-feature>img {
  height:480px;
  width:100%;
  object-fit:cover
}
.team-feature h2 {
  margin:22px 0 30px
}
.team-feature p {
  color:var(--muted);
  font-size:14px
}
.service-detail {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:center;
  padding:70px 0;
  border-top:1px solid var(--line);
  scroll-margin-top:110px
}
.service-detail:nth-child(even)>.service-detail-image {
  order:2
}
.service-detail-image {
  width:100%;
  height:450px;
  object-fit:cover
}
.service-detail h2 {
  font-size:66px;
  margin:22px 0
}
.service-detail p {
  font-size:14px;
  color:var(--muted)
}
.service-detail ul {
  padding-left:18px;
  color:var(--muted);
  font-size:14px;
  line-height:2
}
.service-detail .button {
  margin-top:20px
}
.service-page {
  padding-bottom:60px
}
.faq-section {
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:100px;
  padding-top:100px;
  padding-bottom:110px;
  scroll-margin-top:130px
}
.faq-section h2 {
  font-size:62px;
  margin-top:25px
}
.faq-list details {
  border-top:1px solid var(--line)
}
.faq-list details:last-child {
  border-bottom:1px solid var(--line)
}
.faq-list summary {
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:22px 0;
  cursor:pointer;
  font-size:14px
}
.faq-list summary::-webkit-details-marker {
  display:none
}
.faq-list summary .icon {
  width:16px;
  height:16px;
  transition:transform .2s
}
.faq-list details[open] summary .icon {
  transform:rotate(180deg)
}
.faq-list details>div {
  padding:0 35px 24px 0;
  font-size:14px;
  color:var(--muted)
}
.faq-list .text-link {
  font-size:13.5px
}
.guide-intro .page-intro-bottom a {
  white-space:nowrap
}
.guide-grid {
  padding-bottom:40px
}
.article-hero {
  max-width:950px;
  text-align:center;
  margin:auto;
  padding:75px 35px 50px
}
.article-hero .eyebrow {
  margin-bottom:25px
}
.article-hero h1 {
  font-size:70px;
  line-height:1.03;
  letter-spacing:-1.6px
}
.article-hero .tour-meta {
  justify-content:center;
  margin-top:30px
}
.article-cover {
  height:500px;
  width:100%;
  object-fit:cover
}
.article-content {
  max-width:760px;
  margin:auto;
  padding:70px 0 90px;
  font-size:16px;
  color:#4e6253;
  line-height:1.9
}
.article-content p+p {
  margin-top:25px
}
.article-content .article-short {
  font-family:var(--serif);
  font-size:32px;
  line-height:1.2;
  color:var(--ink);
  margin-top:35px
}
.article-content>.text-link {
  margin-top:40px
}
.search-results {
  padding-bottom:100px
}
.search-results h2 {
  font-size:45px;
  margin:50px 0 30px
}
.search-page-form {
  display:flex;
  max-width:750px;
  border-bottom:1px solid var(--ink);
  margin-top:35px
}
.search-page-form input {
  border:0;
  flex:1;
  min-width:0;
  padding:18px 0;
  background:none;
  font-size:18px
}
.search-park {
  display:flex;
  align-items:center;
  gap:30px;
  border-bottom:1px solid var(--line);
  padding:20px 0
}
.search-park img {
  width:150px;
  height:110px;
  object-fit:cover
}
.search-park>div {
  flex:1
}
.search-park h3 {
  font-size:35px
}
.search-park p {
  font-size:14px;
  margin-top:7px;
  color:var(--muted)
}
/* Enquiry forms */
.plan-intro {
  padding-bottom:45px
}
.plan-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:75px;
  align-items:start;
  padding-bottom:100px
}
.planning-form {
  background:#fbfaf5;
  padding:40px;
  border:1px solid var(--line);
  min-width:0
}
.form-progress {
  display:flex;
  gap:0;
  border-bottom:1px solid var(--line);
  margin-bottom:40px
}
.form-progress button {
  flex:1;
  background:none;
  border-bottom:2px solid transparent;
  padding:0 8px 18px;
  text-align:left;
  font-size:13.5px;
  color:var(--muted)
}
.form-progress button[aria-current=step] {
  color:var(--green);
  border-color:var(--green);
  font-weight:700
}
.form-progress b {
  display:block;
  font-size:13px;
  letter-spacing:1px;
  margin-bottom:7px;
  font-weight:400
}
.form-step {
  border:0;
  margin:0;
  padding:0;
  min-width:0
}
.form-step legend {
  font-family:var(--serif);
  font-size:42px;
  line-height:1.05;
  letter-spacing:-.7px;
  margin-bottom:15px
}
.form-step>p {
  font-size:13.5px;
  color:var(--muted);
  margin-bottom:28px
}
.form-field {
  margin-bottom:24px;
  min-width:0
}
.form-field>label,.field-label {
  display:block;
  font-size:14px;
  font-weight:700;
  margin-bottom:10px
}
.form-field input:not([type=checkbox]):not([type=radio]),.form-field select,.form-field textarea {
  width:100%;
  max-width:100%;
  padding:14px 15px;
  border:1px solid #cdd3c4;
  border-radius:0;
  background:#fcfcf7;
  color:var(--ink);
  font-size:14px;
  line-height:1.5
}
.form-field input::placeholder,.form-field textarea::placeholder {
  color:#929a8c;
  font-size:13.5px
}
.form-field textarea {
  resize:vertical
}
.field-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px
}
.choice-grid>div {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px
}
.choice-grid>div>div>label {
  border:1px solid var(--line);
  padding:13px 12px;
  display:flex;
  align-items:center;
  gap:10px;
  font-size:14px;
  line-height:1.5;
  cursor:pointer;
  min-height:46px
}
.choice-grid label:has(input:checked) {
  background:#e4ead5;
  border-color:#8d9f73
}
.choice-grid input {
  accent-color:var(--green);
  margin:0;
  flex-shrink:0;
  width:14px;
  height:14px
}
.country-choices>div {
  grid-template-columns:repeat(4,minmax(0,1fr))
}
.country-choices>div>div>label {
  padding:13px 8px;
  font-size:13.5px;
  gap:7px
}
.form-hint {
  font-size:13.5px;
  color:var(--muted);
  margin:8px 0 20px
}
.checkline {
  display:flex;
  align-items:flex-start;
  gap:11px;
  font-size:14px;
  color:var(--muted);
  margin:20px 0
}
.checkline input {
  margin-top:4px;
  accent-color:var(--green);
  flex-shrink:0
}
.form-actions {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-top:30px;
  padding-top:25px;
  border-top:1px solid var(--line)
}
.form-actions>.button {
  margin-left:auto
}
.step-back {
  font-size:14px;
  background:none;
  padding:10px
}
.wizard-next,.step-back,.form-progress {
  display:none
}
.js .wizard-next,.js .step-back {
  display:inline-flex
}
.js .form-progress {
  display:flex
}
.js .form-step[hidden] {
  display:none
}
.form-step+.form-step {
  margin-top:35px
}
.js .form-step+.form-step {
  margin-top:0
}
.honeypot {
  position:absolute;
  left:-9999px;
  opacity:0
}
.errorlist {
  list-style:none;
  padding:0;
  font-size:14px;
  color:#9c3527;
  margin:7px 0 0
}
.error-summary {
  padding:20px;
  background:#f5e7db;
  border-left:2px solid #a94b39;
  margin-bottom:25px;
  font-size:13.5px
}
.plan-aside {
  position:sticky;
  top:130px;
  padding-top:15px
}
.plan-aside .eyebrow {
  font-size:13px
}
.plan-aside h3 {
  font-size:46px;
  margin:20px 0
}
.plan-aside>p {
  font-size:13.5px;
  color:var(--muted)
}
.plan-aside img {
  width:100%;
  height:240px;
  object-fit:cover;
  margin-top:30px
}
.plan-aside .text-link {
  font-size:14px;
  margin-top:25px
}
.plan-aside small {
  display:block;
  font-size:13.5px;
  margin-top:15px;
  color:var(--muted)
}
.service-specific {
  border:1px solid var(--line);
  padding:20px;
  margin:20px 0
}
.service-specific h3 {
  font-size:30px;
  margin-bottom:20px
}
.contact-layout {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:90px;
  padding-bottom:100px;
  align-items:start
}
.contact-info>h2 {
  font-size:52px;
  margin-bottom:30px
}
.contact-info>p {
  color:var(--muted);
  font-size:14px;
  max-width:390px
}
.contact-lines {
  margin:40px 0
}
.contact-lines>a {
  display:flex;
  gap:15px;
  align-items:center;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  font-size:14px;
  overflow-wrap:anywhere
}
.contact-lines .icon {
  width:19px;
  height:19px
}
.contact-address {
  margin-top:35px;
  font-size:14px;
  color:var(--muted)
}
.contact-address .eyebrow {
  color:var(--ink);
  margin-bottom:14px
}
.contact-info>img {
  height:290px;
  width:100%;
  object-fit:cover;
  margin-top:40px
}
.contact-form h2 {
  font-size:40px;
  margin-bottom:30px
}
.contact-form .form-field {
  margin-bottom:20px
}
.contact-form .button {
  margin-top:10px
}
.review-wrap {
  max-width:930px;
  padding-top:85px;
  padding-bottom:110px
}
.review-wrap h1 {
  font-size:86px;
  margin:25px 0
}
.review-wrap>.lead {
  max-width:650px;
  color:var(--muted);
  font-size:27px
}
.review-panel {
  border:1px solid var(--line);
  background:#faf9f2;
  padding:35px;
  margin-top:40px
}
.review-panel h2 {
  font-size:42px;
  margin-bottom:30px
}
.review-details {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px 40px
}
.review-details>div {
  border-top:1px solid var(--line);
  padding-top:15px;
  overflow-wrap:anywhere
}
.review-details dt {
  font-size:13px;
  letter-spacing:1px;
  color:var(--muted);
  margin-bottom:5px
}
.review-details dd {
  font-size:14px;
  margin:0;
  white-space:pre-line
}
.review-actions {
  display:flex;
  gap:15px;
  margin-top:35px;
  flex-wrap:wrap
}
.review-panel .fineprint {
  margin-top:25px
}
.review-status {
  font-size:13.5px;
  background:#e4e9d5;
  padding:20px;
  margin-top:25px
}
.legal-content {
  max-width:820px;
  padding-top:80px;
  padding-bottom:110px
}
.legal-content h1 {
  font-size:77px;
  margin:25px 0 45px
}
.legal-content h2 {
  font-size:35px;
  margin:35px 0 18px
}
.legal-content p,.legal-content li {
  font-size:14px;
  line-height:1.9;
  color:var(--muted)
}
.legal-content a {
  text-decoration:underline
}
.error-page {
  padding:120px 0;
  text-align:center
}
.error-page h1 {
  font-size:100px;
  margin:25px 0
}
.error-page p {
  color:var(--muted);
  margin-bottom:30px
}
.js [data-reveal] {
  opacity:0;
  transform:translateY(23px);
  transition:opacity .8s var(--ease),transform .8s var(--ease)
}
.js [data-reveal].revealed {
  opacity:1;
  transform:none
}
/* Responsive layouts */
@media(min-width:1600px) {
  .hero-inner {
    padding-top:0
  }
  .hero {
    height:810px
  }
  .hero h1 {
    font-size:132px
  }
}
@media(max-width:1200px) {
  .site-header {
    padding:0 30px;
    gap:20px
  }
  .desktop-nav {
    gap:18px
  }
  .desktop-nav>a {
    font-size:13.5px
  }
  .header-actions {
    gap:5px
  }
  .header-cta {
    padding:14px 17px;
    gap:13px
  }
  .frame {
    width:calc(100% - 72px)
  }
  .topline {
    padding:0 36px
  }
  .our-way-grid {
    gap:60px
  }
  .our-way-copy h2 {
    font-size:58px
  }
  .our-values {
    gap:18px
  }
  .experience-rail a {
    padding:23px 18px;
    font-size:22px
  }
  .detail-layout {
    gap:45px;
    grid-template-columns:minmax(0,1fr) 285px
  }
  .footer-email {
    font-size:14px
  }
  .plan-layout {
    gap:45px
  }
  .tour-card h3 {
    font-size:30px
  }
}
@media(max-width:1020px) {
  .desktop-nav {
    display:none
  }
  .menu-toggle {
    display:flex
  }
  .site-header {
    height:80px
  }
  .hero {
    height:740px;
    min-height:660px
  }
  .hero h1 {
    font-size:108px
  }
  .hero-inner {
    padding-top:0
  }
  .our-way-grid {
    gap:40px
  }
  .our-way-copy h2 {
    font-size:52px
  }
  .photo-composition {
    padding-right:45px
  }
  .photo-main {
    height:470px
  }
  .photo-inset {
    height:230px
  }
  .our-values {
    flex-wrap:wrap
  }
  .section {
    padding:85px 0
  }
  .section-heading {
    gap:30px
  }
  .section-heading h2 {
    font-size:62px
  }
  .park-mosaic {
    grid-template-rows:230px 230px
  }
  .park-tile h3 {
    font-size:29px
  }
  .park-tile-1 h3 {
    font-size:38px
  }
  .park-tile p {
    font-size:13.5px
  }
  .service-row {
    grid-template-columns:1.5fr 1fr 95px 25px;
    gap:20px
  }
  .service-row h3 {
    font-size:30px
  }
  .service-thumb {
    height:70px
  }
  .footer-grid {
    gap:25px
  }
  .footer-top {
    flex-wrap:wrap
  }
  .footer-email {
    margin-left:auto
  }
  .intro-grid {
    gap:30px 50px
  }
  .page-intro h1 {
    font-size:95px
  }
  .tour-grid {
    gap:45px 23px
  }
  .tour-card h3 {
    font-size:29px
  }
  .tour-meta {
    font-size:13px;
    gap:9px
  }
  .tour-meta span+span:before {
    margin-right:9px
  }
  .detail-layout {
    grid-template-columns:minmax(0,1fr) 260px;
    gap:30px
  }
  .journey-note {
    padding:25px
  }
  .journey-note h3 {
    font-size:48px
  }
  .detail-body h2 {
    font-size:55px
  }
  .catalog-filters {
    grid-template-columns:1.3fr 1fr 1fr 1fr 50px
  }
  .catalog-filters>label {
    padding:15px 12px
  }
  .plan-layout {
    grid-template-columns:minmax(0,1fr) 240px;
    gap:30px
  }
  .planning-form {
    padding:28px
  }
  .country-choices>div {
    grid-template-columns:repeat(2,1fr)
  }
  .contact-layout {
    gap:40px
  }
  .destination-grid .park-tile {
    height:400px
  }
  .article-content {
    width:calc(100% - 90px)
  }
  .faq-section {
    gap:55px
  }
  .faq-section h2 {
    font-size:52px
  }
}
@media(max-width:760px) {
  html {
    scroll-padding-top:90px
  }
  .frame {
    width:calc(100% - 44px)
  }
  .topline {
    padding:0 22px;
    height:28px;
    font-size:13px;
    letter-spacing:.3px
  }
  .topline>a {
    gap:6px
  }
  .topline>a>span {
    display:none
  }
  .topline .icon {
    width:11px;
    height:11px
  }
  .site-header {
    padding:0 20px;
    height:76px;
    gap:10px
  }
  .brand {
    gap:8px
  }
  .brand>img {
    width:34px;
    height:37px
  }
  .brand>span {
    font-size:17px
  }
  .brand small {
    font-size:13px;
    letter-spacing:2px;
    margin-top:5px
  }
  .header-cta {
    font-size:13px;
    padding:12px 15px;
    gap:12px
  }
  .header-actions {
    gap:4px
  }
  .header-actions .search-trigger {
    display:none
  }
  .header-actions>.icon-button {
    width:34px;
    height:34px
  }
  .mobile-nav {
    top:76px
  }
  .hero {
    height:700px;
    min-height:640px;
    max-height:none
  }
  .hero-image {
    object-position:60% 50%
  }
  .hero-shade {
    background:linear-gradient(90deg,#0a241db8,#0a241d45 90%),linear-gradient(0deg,#0a241d66,transparent 60%)
  }
  .hero-inner {
    padding-top:0;
    justify-content:center;
    padding-bottom:20px
  }
  .hero-kicker {
    font-size:13px;
    letter-spacing:1.6px;
    margin-bottom:24px;
    gap:11px
  }
  .hero-kicker .small-star {
    font-size:25px
  }
  .hero h1 {
    font-size:clamp(69px,12.3vw,94px);
    line-height:.94;
    letter-spacing:-2px;
    max-width:550px
  }
  .hero-description {
    margin-top:27px
  }
  .hero-description>p {
    font-size:13.5px
  }
  .hero-description>.button {
    font-size:14px;
    padding:16px 21px
  }
  .film-button {
    margin-left:15px;
    font-size:13px;
    gap:9px
  }
  .hero-stamp {
    width:95px;
    height:95px;
    right:0;
    bottom:70px
  }
  .hero-stamp>span {
    inset:26px;
    font-size:13.5px
  }
  .hero-stamp>span>span {
    font-size:17px
  }
  .hero-bottom {
    bottom:25px;
    font-size:13px;
    letter-spacing:1.2px
  }
  .hero-bottom>a {
    font-size:13px;
    gap:10px
  }
  .experience-rail>.frame {
    grid-template-columns:repeat(2,1fr)
  }
  .experience-rail a {
    font-size:20px;
    padding:20px 15px;
    gap:10px;
    border-bottom:1px solid var(--line)
  }
  .experience-rail a:nth-child(2) {
    border-right:1px solid var(--line)
  }
  .experience-rail a:nth-child(n+3) {
    border-bottom:0
  }
  .experience-rail small {
    font-size:13px
  }
  .experience-rail .icon {
    width:16px;
    height:16px
  }
  .section {
    padding:70px 0
  }
  .intro-grid {
    grid-template-columns:1fr;
    gap:25px
  }
  .section-index {
    grid-column:auto
  }
  .eyebrow {
    font-size:13px;
    letter-spacing:1.5px
  }
  .intro-grid h2 {
    font-size:51px;
    letter-spacing:-1.6px
  }
  .intro-copy {
    max-width:100%;
    font-size:14px;
    padding:0
  }
  .intro-copy p {
    max-width:510px
  }
  .intro-copy .text-link {
    margin-top:12px
  }
  .journeys-section {
    padding-top:5px
  }
  .section-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:24px;
    margin-bottom:30px
  }
  .section-heading .eyebrow {
    margin-bottom:19px
  }
  .section-heading h2 {
    font-size:56px
  }
  .section-heading p {
    font-size:13.5px;
    max-width:400px
  }
  .section-heading>div:last-child:not(:first-child) {
    max-width:100%;
    padding:0
  }
  .section-heading>.text-link {
    margin:0
  }
  .filter-tabs {
    gap:22px;
    margin-bottom:30px;
    overflow:auto;
    white-space:nowrap;
    scrollbar-width:none
  }
  .filter-tabs button {
    font-size:13.5px;
    padding-bottom:15px;
    flex-shrink:0
  }
  .filter-tabs button span {
    margin-left:8px
  }
  .tour-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:35px 18px
  }
  .tour-card h3 {
    font-size:29px
  }
  .tour-meta {
    font-size:13px;
    gap:8px;
    margin-top:15px
  }
  .tour-meta span+span:before {
    margin-right:8px
  }
  .tour-meta>span:nth-child(3) {
    display:none
  }
  .tour-card>p {
    font-size:13.5px
  }
  .tour-card .text-link {
    font-size:13px;
    gap:10px;
    margin-top:10px
  }
  .image-tag {
    font-size:13px;
    padding:5px 9px;
    top:12px;
    left:12px;
    max-width:calc(100% - 24px)
  }
  .card-arrow {
    width:32px;
    height:32px;
    right:12px;
    bottom:12px
  }
  .card-arrow .icon {
    width:17px;
    height:17px
  }
  .featured-grid {
    display:flex;
    overflow-x:auto;
    gap:20px;
    scroll-snap-type:x mandatory;
    padding-bottom:14px;
    scrollbar-color:#a6b793 transparent;
    scrollbar-width:thin
  }
  .featured-grid .tour-card {
    flex:0 0 78%;
    width:78%;
    min-width:78%;
    scroll-snap-align:start
  }
  .featured-grid .tour-card h3 {
    font-size:34px
  }
  .featured-grid .tour-image {
    aspect-ratio:4/4.3
  }
  .featured-grid .tour-meta {
    font-size:13px
  }
  .parks-section {
    padding:70px 0 25px
  }
  .park-mosaic {
    grid-template-columns:1fr 1fr;
    grid-template-rows:360px 250px 250px;
    gap:15px;
    margin-top:35px
  }
  .park-tile-1 {
    grid-column:span 2;
    grid-row:auto
  }
  .park-tile-2 {
    grid-column:span 2
  }
  .park-tile>div {
    left:20px;
    bottom:22px;
    right:40px
  }
  .park-tile h3 {
    font-size:31px
  }
  .park-tile-1 h3 {
    font-size:46px
  }
  .park-tile p {
    font-size:13.5px
  }
  .tile-arrow {
    right:16px;
    bottom:22px
  }
  .park-tile-3 p,.park-tile-4 p {
    display:none
  }
  .park-tile .eyebrow {
    font-size:13px
  }
  .parks-foot {
    font-size:13px;
    letter-spacing:1px;
    margin-top:25px
  }
  .parks-foot>span:first-child {
    max-width:170px
  }
  .parks-foot>span:last-child {
    max-width:100px;
    text-align:right
  }
  .our-way {
    padding:95px 0 70px
  }
  .our-way-grid {
    grid-template-columns:1fr;
    gap:35px
  }
  .photo-composition {
    max-width:520px;
    padding-right:70px;
    margin:0 10px 0 20px;
    padding-bottom:65px
  }
  .photo-main {
    height:470px
  }
  .photo-inset {
    height:250px;
    bottom:0
  }
  .photo-note {
    font-size:24px;
    bottom:3px;
    left:0
  }
  .local-seal {
    left:-20px;
    width:112px;
    height:112px;
    top:28px;
    font-size:13px
  }
  .local-seal em {
    font-size:30px
  }
  .local-seal>span {
    padding:7px
  }
  .our-way-copy h2 {
    font-size:60px
  }
  .our-way-copy .lead {
    font-size:23px;
    margin-top:25px
  }
  .our-values {
    justify-content:space-between;
    margin-top:30px;
    gap:20px
  }
  .our-values>span {
    font-size:13px
  }
  .service-row {
    grid-template-columns:1fr 25px;
    gap:15px;
    padding:24px 0;
    position:relative
  }
  .service-row h3 {
    font-size:31px
  }
  .service-row p {
    grid-column:1;
    grid-row:2;
    font-size:13.5px;
    margin-top:-5px
  }
  .service-row>.icon {
    grid-column:2;
    grid-row:1/3;
    width:20px;
    height:20px
  }
  .service-thumb {
    display:none
  }
  .service-number {
    font-size:13px;
    padding-top:6px
  }
  .wide-photo {
    height:340px
  }
  .wide-photo p {
    font-size:65px
  }
  .wide-photo .eyebrow {
    font-size:13px
  }
  .story-grid {
    grid-template-columns:1fr;
    gap:40px
  }
  .story-card h3 {
    font-size:34px
  }
  .story-image {
    aspect-ratio:1.5
  }
  .story-card .tour-meta {
    font-size:13px
  }
  .closing-section {
    padding:60px 0
  }
  .closing-inner {
    flex-direction:column;
    align-items:flex-start;
    gap:28px
  }
  .closing-inner .eyebrow {
    font-size:13px;
    letter-spacing:1.2px;
    max-width:320px
  }
  .closing-inner h2 {
    font-size:72px
  }
  .closing-copy {
    padding:0;
    font-size:14px
  }
  .closing-copy .button {
    margin-top:20px
  }
  .site-footer {
    padding-top:45px
  }
  .footer-top {
    gap:25px;
    align-items:flex-start
  }
  .footer-top>.brand {
    width:100%
  }
  .footer-top>p {
    font-size:14px
  }
  .footer-email {
    margin-left:0;
    font-size:14px
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:35px 20px;
    padding-top:35px
  }
  .footer-grid .eyebrow {
    font-size:13px
  }
  .footer-grid p,.footer-grid a {
    font-size:13.5px
  }
  .footer-wordmark {
    font-size:16vw;
    letter-spacing:-2px;
    padding:15px 0 30px
  }
  .footer-bottom {
    font-size:13px;
    align-items:flex-start;
    gap:18px;
    flex-direction:column;
    padding-bottom:35px
  }
  .footer-bottom>div {
    gap:20px
  }
  .whatsapp-float {
    right:16px;
    bottom:16px;
    padding:12px
  }
  .whatsapp-float>span {
    display:none
  }
  .search-dialog {
    padding:60px 25px 35px
  }
  .search-dialog h2 {
    font-size:65px
  }
  .search-dialog input {
    font-size:13.5px
  }
  .page-intro {
    padding:50px 0 40px
  }
  .page-intro h1 {
    font-size:78px;
    letter-spacing:-2px
  }
  .intro-top {
    margin-bottom:22px
  }
  .intro-top .small-star {
    font-size:30px
  }
  .page-intro-bottom {
    margin-top:28px;
    flex-direction:column;
    align-items:flex-start;
    gap:25px
  }
  .page-intro-bottom p {
    font-size:14px
  }
  .page-intro-bottom>span {
    font-size:13px
  }
  .catalog-filters {
    grid-template-columns:1fr 1fr;
    gap:0;
    position:relative
  }
  .catalog-filters>.filter-search {
    grid-column:span 2;
    padding-right:60px;
    border-bottom:1px solid var(--line)
  }
  .catalog-filters>label {
    min-height:70px;
    padding:13px 14px
  }
  .catalog-filters>label:nth-child(4) {
    grid-column:span 2;
    border-top:1px solid var(--line)
  }
  .filter-submit {
    position:absolute;
    right:0;
    top:0;
    width:50px;
    height:70px
  }
  .catalog-filters input,.catalog-filters select {
    font-size:14px
  }
  .catalog-filters>label>span:not(.sr-only) {
    font-size:13px
  }
  .results-line {
    font-size:13px;
    margin:24px 0
  }
  .catalog-section {
    padding-bottom:60px
  }
  .catalog-note {
    flex-wrap:wrap;
    gap:20px;
    margin-top:40px;
    padding:25px 0
  }
  .catalog-note>div {
    flex:1;
    min-width:200px
  }
  .catalog-note h3 {
    font-size:29px
  }
  .catalog-note p {
    font-size:14px
  }
  .catalog-note .text-link {
    margin:0 0 0 52px
  }
  .catalog-note>span>.icon {
    width:30px;
    height:30px
  }
  .detail-hero {
    height:480px
  }
  .detail-hero>.frame {
    padding-bottom:35px
  }
  .detail-hero h1 {
    font-size:65px;
    letter-spacing:-2px;
    max-width:550px
  }
  .detail-hero .eyebrow {
    font-size:13px;
    letter-spacing:1.5px;
    margin-bottom:20px
  }
  .detail-hero .breadcrumb {
    top:25px;
    font-size:13px
  }
  .detail-hero p {
    font-size:14px
  }
  .detail-facts {
    gap:15px;
    flex-wrap:wrap;
    font-size:13.5px;
    padding:18px 0
  }
  .detail-facts>span:nth-child(3) {
    display:none
  }
  .detail-facts>a {
    font-size:13.5px;
    gap:12px
  }
  .detail-facts .icon {
    width:15px;
    height:15px
  }
  .detail-layout {
    grid-template-columns:1fr;
    gap:40px;
    padding-top:50px;
    padding-bottom:40px
  }
  .detail-body h2 {
    font-size:54px
  }
  .detail-body>.lead {
    font-size:25px
  }
  .overview-copy p {
    font-size:14px;
    line-height:1.85
  }
  .route-strip {
    margin-bottom:45px;
    padding:20px
  }
  .itinerary-heading {
    align-items:flex-start
  }
  .itinerary-heading h2 {
    font-size:50px
  }
  .itinerary-heading .eyebrow {
    font-size:13px;
    letter-spacing:1.2px
  }
  .print-button {
    font-size:13px;
    max-width:90px;
    gap:6px;
    margin-top:35px
  }
  .print-button .icon {
    width:16px;
    height:16px
  }
  .itinerary summary {
    gap:13px;
    padding:22px 0
  }
  .day-index {
    font-size:13px;
    min-width:39px
  }
  .itinerary h3 {
    font-size:26px
  }
  .itinerary-copy {
    padding-left:0;
    padding-right:15px;
    font-size:13.5px
  }
  .included-grid {
    gap:25px;
    margin-top:45px
  }
  .included-grid h3 {
    font-size:31px
  }
  .included-grid li {
    font-size:14px
  }
  .journey-note {
    position:static;
    padding:30px;
    max-width:100%
  }
  .journey-note h3 {
    font-size:55px
  }
  .journey-note>.button {
    max-width:350px
  }
  .journey-note>.text-link {
    justify-content:flex-start
  }
  .journey-note .note-divider {
    text-align:left
  }
  .journey-note small {
    text-align:left
  }
  .note-star {
    position:absolute;
    right:30px;
    bottom:30px
  }
  .journey-note {
    position:relative
  }
  .related-section {
    padding-top:20px
  }
  .related-section .tour-card:last-child {
    display:none
  }
  .destination-grid {
    gap:20px;
    grid-template-columns:1fr
  }
  .destination-grid .park-tile {
    height:380px
  }
  .destination-grid .park-tile h3 {
    font-size:46px
  }
  .destination-grid .park-tile p {
    display:block
  }
  .destinations-index {
    padding-bottom:70px
  }
  .park-copy {
    padding-top:50px
  }
  .park-copy .lead {
    font-size:29px
  }
  .park-copy p:not(.lead) {
    font-size:14px
  }
  .story-intro-grid {
    grid-template-columns:1fr;
    gap:35px
  }
  .story-intro-grid .large-year {
    font-size:90px;
    margin-top:20px
  }
  .story-intro-grid h2 {
    font-size:52px
  }
  .story-intro-grid p {
    font-size:14px
  }
  .values-grid {
    grid-template-columns:1fr;
    gap:30px;
    margin-top:45px
  }
  .values-grid h3 {
    margin-top:15px
  }
  .team-feature {
    grid-template-columns:1fr;
    gap:35px;
    padding:20px 0 70px
  }
  .team-feature>img {
    height:350px
  }
  .team-feature h2 {
    font-size:57px
  }
  .team-feature p {
    font-size:14px
  }
  .service-detail {
    grid-template-columns:1fr;
    gap:30px;
    padding:45px 0
  }
  .service-detail:nth-child(even)>.service-detail-image {
    order:0
  }
  .service-detail-image {
    height:350px
  }
  .service-detail h2 {
    font-size:56px
  }
  .service-detail p {
    font-size:14px
  }
  .faq-section {
    grid-template-columns:1fr;
    gap:35px;
    padding:70px 0
  }
  .faq-section h2 {
    font-size:54px;
    margin-top:20px
  }
  .faq-list summary {
    font-size:13.5px
  }
  .faq-list details>div {
    font-size:13.5px
  }
  .guide-grid {
    padding-bottom:0
  }
  .article-hero {
    padding:50px 22px 35px
  }
  .article-hero h1 {
    font-size:51px;
    letter-spacing:-1px
  }
  .article-hero .eyebrow {
    font-size:13px
  }
  .article-hero .tour-meta {
    margin-top:25px;
    font-size:13px
  }
  .article-cover {
    height:330px
  }
  .article-content {
    width:calc(100% - 44px);
    padding:45px 0 70px;
    font-size:14px
  }
  .article-content .article-short {
    font-size:28px
  }
  .search-page-form input {
    font-size:14px
  }
  .search-park {
    gap:18px
  }
  .search-park img {
    width:90px;
    height:90px
  }
  .search-park h3 {
    font-size:29px
  }
  .search-park p {
    font-size:14px
  }
  .plan-layout {
    grid-template-columns:1fr;
    gap:45px;
    padding-bottom:65px
  }
  .planning-form {
    padding:26px 22px
  }
  .plan-aside {
    position:static;
    padding:0;
    max-width:100%
  }
  .plan-aside>img {
    height:280px
  }
  .plan-aside h3 {
    font-size:43px
  }
  .form-step legend {
    font-size:37px
  }
  .form-step>p {
    font-size:14px
  }
  .form-field>label,.field-label {
    font-size:13.5px
  }
  .form-field input:not([type=checkbox]):not([type=radio]),.form-field select,.form-field textarea {
    font-size:14px;
    padding:13px
  }
  .form-progress button {
    font-size:13px;
    padding-left:0;
    padding-right:5px
  }
  .field-row {
    gap:13px
  }
  .choice-grid>div>div>label {
    font-size:13.5px;
    padding:12px 10px;
    gap:8px
  }
  .form-actions {
    gap:12px
  }
  .form-actions .button {
    font-size:13.5px;
    padding:15px 19px;
    gap:20px
  }
  .country-choices>div {
    grid-template-columns:repeat(2,1fr)
  }
  .contact-layout {
    grid-template-columns:1fr;
    gap:45px;
    padding-bottom:70px
  }
  .contact-info>h2 {
    font-size:47px
  }
  .contact-info>img {
    height:260px
  }
  .contact-lines {
    margin:30px 0
  }
  .contact-lines>a {
    font-size:13.5px
  }
  .contact-form h2 {
    font-size:36px
  }
  .review-wrap {
    padding:55px 0 70px
  }
  .review-wrap h1 {
    font-size:68px
  }
  .review-wrap>.lead {
    font-size:23px
  }
  .review-panel {
    padding:25px 20px
  }
  .review-details {
    gap:20px;
    grid-template-columns:1fr
  }
  .review-actions {
    flex-direction:column;
    gap:12px
  }
  .review-actions .button {
    width:100%
  }
  .legal-content {
    padding:50px 0 70px
  }
  .legal-content h1 {
    font-size:60px
  }
  .legal-content p,.legal-content li {
    font-size:14px
  }
  .error-page {
    padding:80px 0
  }
  .error-page h1 {
    font-size:73px
  }
}
@media(max-width:440px) {
  .hero {
    height:680px;
    min-height:630px
  }
  .hero h1 {
    font-size:76px
  }
  .hero-description>p {
    font-size:14px
  }
  .film-button {
    display:flex;
    width:fit-content;
    margin:15px 0 0
  }
  .hero-description>.button {
    padding:15px 22px
  }
  .hero-stamp {
    bottom:74px;
    right:0;
    width:88px;
    height:88px
  }
  .hero-bottom {
    font-size:13px;
    letter-spacing:1px
  }
  .hero-bottom a {
    font-size:13px
  }
  .header-cta {
    padding:12px;
    font-size:13px;
    gap:8px
  }
  .header-cta .icon {
    width:15px;
    height:15px
  }
  .brand>span {
    font-size:16px
  }
  .brand small {
    font-size:13px
  }
  .brand>img {
    width:31px;
    height:34px
  }
  .site-header {
    padding:0 16px
  }
  .experience-rail a {
    font-size:20px;
    padding:18px 10px;
    gap:7px
  }
  .experience-rail small {
    font-size:13px
  }
  .intro-grid h2 {
    font-size:46px
  }
  .section-heading h2 {
    font-size:52px
  }
  .photo-main {
    height:390px
  }
  .photo-inset {
    height:220px
  }
  .photo-composition {
    padding-right:45px
  }
  .tour-card h3 {
    font-size:27px
  }
  .tour-card>p {
    font-size:13px
  }
  .tour-card .text-link {
    font-size:13px
  }
  .tour-grid {
    gap:35px 14px
  }
  .featured-grid .tour-card {
    min-width:86%;
    width:86%
  }
  .park-tile-3 h3,.park-tile-4 h3 {
    font-size:29px
  }
  .park-mosaic {
    grid-template-rows:330px 235px 225px
  }
  .park-tile-3>div,.park-tile-4>div {
    left:16px;
    right:20px
  }
  .park-tile-3>.tile-arrow,.park-tile-4>.tile-arrow {
    display:none
  }
  .our-way-copy h2 {
    font-size:54px
  }
  .closing-inner h2 {
    font-size:64px
  }
  .page-intro h1 {
    font-size:71px
  }
  .detail-hero h1 {
    font-size:59px
  }
  .detail-facts {
    font-size:13px;
    gap:14px
  }
  .detail-facts>a {
    font-size:13px
  }
  .included-grid {
    grid-template-columns:1fr;
    gap:15px
  }
  .plan-intro h1 {
    font-size:71px
  }
  .planning-form {
    padding:25px 17px
  }
  .form-actions .button {
    gap:14px
  }
  .form-field input:not([type=checkbox]):not([type=radio]),.form-field textarea,.form-field select {
    font-size:16px
  }
  .field-row {
    grid-template-columns:1fr 1fr
  }
  .review-wrap h1 {
    font-size:61px
  }
  .article-hero h1 {
    font-size:46px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
  .js [data-reveal] {
    opacity:1;
    transform:none
  }
}
@media print {
  .topline,.site-header,.mobile-nav,.site-footer,.closing-section,.whatsapp-float,.journey-note,.related-section,.print-button,.detail-hero>img,.hero-shade {
    display:none!important
  }
  body {
    background:white;
    color:black
  }
  .frame {
    width:100%;
    max-width:none
  }
  .detail-hero {
    height:auto;
    color:black;
    background:white;
    padding:20px 0
  }
  .detail-hero>.frame {
    position:static;
    padding:0
  }
  .detail-hero .breadcrumb {
    display:none
  }
  .detail-hero h1 {
    font-size:40px
  }
  .detail-hero .eyebrow,.detail-hero p {
    color:black
  }
  .detail-layout {
    display:block;
    padding:25px 0
  }
  .detail-body h2 {
    font-size:32px
  }
  .itinerary details>.itinerary-copy {
    display:block!important;
    content-visibility:visible!important
  }
  .itinerary details {
    break-inside:avoid
  }
  .itinerary summary {
    padding:15px 0
  }
  .itinerary-copy {
    padding-left:0
  }
  .expand-mark {
    display:none
  }
  .detail-facts {
    padding:12px 0
  }
  .included-grid {
    gap:25px
  }
  .detail-body>.lead {
    font-size:20px
  }
  a {
    color:black
  }
  dialog {
    display:none!important
  }
}
.menu-close-icon {
  display:none
}
.menu-toggle[aria-expanded=true] .menu-open-icon {
  display:none
}
.menu-toggle[aria-expanded=true] .menu-close-icon {
  display:block
}
.form-field>label small {
  font-weight:400;
  color:var(--muted);
  font-size:13px;
  margin-left:4px
}
.field-error {
  color:#9c3527;
  font-size:14px;
  margin:7px 0
}
.has-error input,.has-error select,.has-error textarea {
  border-color:#a94b39!important
}
.error-summary ul {
  margin-bottom:0
}
.search-group>h2 {
  margin-bottom:30px
}
.article-end {
  border-top:1px solid var(--line);
  padding-top:30px;
  margin-top:45px
}
.article-end .small-star {
  font-size:34px
}
.article-end p {
  font-family:var(--serif);
  font-size:26px;
  color:var(--ink)
}
@media(max-width:760px) {
  .form-field input:not([type=checkbox]):not([type=radio]),.form-field select,.form-field textarea {
    font-size:16px
  }
  .form-field>label small {
    font-size:13px
  }
}
.planning-form {
  scroll-margin-top:15px
}
@media(max-width:760px) {
  .planning-page .whatsapp-float {
    display:none
  }
}

/* Intro photo */
.intro-photo { grid-column:1/-1; position:relative; margin:40px 0 0; border-radius:28px; overflow:hidden; aspect-ratio:21/9; background:var(--cream); box-shadow:0 30px 60px -30px #11382c55; isolation:isolate }
.intro-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 38%; transform:scale(1.04); transition:transform 1.4s var(--ease) }
.intro-photo:hover img { transform:scale(1) }
.intro-photo:after { content:''; position:absolute; inset:0; background:linear-gradient(200deg,transparent 45%,#0b201999 100%); pointer-events:none }
.intro-photo figcaption { position:absolute; z-index:1; left:30px; bottom:28px; right:30px; display:flex; align-items:flex-end; justify-content:space-between; gap:20px; color:#fff }
.intro-photo figcaption strong { display:block; font-size:22px; font-weight:600; letter-spacing:-.3px; line-height:1.2 }
.intro-photo figcaption span { display:block; margin-top:4px; font-size:14px; color:#ffffffcc }
.intro-photo figcaption .eyebrow { display:inline-flex; align-items:center; margin:0; padding:9px 16px; border-radius:30px; background:#ffffff26; border:1px solid #ffffff40; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); font-size:13px; color:#fff; white-space:nowrap }
@media(max-width:760px) {
  .intro-photo { margin-top:15px; border-radius:20px; aspect-ratio:4/5 }
  .intro-photo img { object-position:50% 30% }
  .intro-photo figcaption { left:20px; right:20px; bottom:20px; flex-direction:column; align-items:flex-start; gap:12px }
  .intro-photo figcaption strong { font-size:18px }
  .intro-photo figcaption .eyebrow { order:-1 }
}

/* Detail pop-up */
.detail-dialog { width:min(880px,94vw); max-height:92svh; padding:0; border-radius:4px; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin }
.detail-dialog[open] { animation:popIn .45s var(--ease) }
@keyframes popIn { from { opacity:0; transform:translateY(24px) scale(.985) } }
.detail-dialog .detail-close { position:sticky; top:22px; float:right; margin:22px 22px -66px 0; width:46px; height:46px; border-radius:50%; background:var(--paper); border:1px solid var(--line); box-shadow:0 0 0 4px var(--paper),0 0 0 5.5px #c9a55a; color:var(--ink) }
.detail-dialog .detail-close:hover { background:var(--cream) }
.detail-dialog__content { padding:90px 66px 60px }
.detail-loading { padding:80px 0; text-align:center; color:var(--muted); font-size:14px }
.popup-kicker { font-size:13.5px; color:var(--muted); margin-bottom:18px }
.popup-title { font-size:clamp(30px,4.2vw,46px); line-height:1.12; letter-spacing:-1.2px; font-weight:500; max-width:720px }
.popup-meta { margin-top:20px; font-size:13.5px; color:var(--muted) }
.article-share { display:flex; align-items:center; flex-wrap:wrap; gap:12px 22px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:18px 0; margin:26px 0 34px }
.article-share-label { font-size:13.5px; color:var(--muted) }
.article-share-actions { display:flex; gap:9px; flex-wrap:wrap }
.article-share-actions>a,.article-share-actions>button { display:grid; place-items:center; width:38px; height:38px; padding:0; border:1px solid var(--line); border-radius:50%; background:#fffdf8; color:var(--ink); cursor:pointer; transition:background .2s,transform .2s }
.article-share-actions>a:hover,.article-share-actions>button:hover { background:var(--cream); transform:translateY(-2px) }
.article-share-actions .icon { width:18px; height:18px }
.article-share-actions .share-whatsapp { color:#198c47 }
.article-share-actions .share-linkedin { color:#0a66c2 }
.article-share-actions .share-facebook { color:#0866ff }
.article-share-actions [hidden] { display:none }
.share-status { font-size:14px; color:#3c7a4d }
.share-status:empty { display:none }
.popup-image { display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; border-radius:4px; background:var(--cream) }
.popup-body { margin-top:38px; font-size:15px; line-height:1.85; color:#3f4d44 }
.popup-body p+p { margin-top:18px }
.popup-body>h3 { font-size:22px; font-weight:600; letter-spacing:-.3px; color:var(--ink); margin:40px 0 16px }
.popup-lead { font-size:18px; line-height:1.7; color:var(--ink); margin-bottom:22px }
.popup-route { display:flex; gap:14px; align-items:flex-start; margin:30px 0 0; padding:20px 22px; background:var(--cream); border-radius:4px; font-size:14px }
.popup-route .icon { width:20px; height:20px; flex-shrink:0; margin-top:2px; color:#4d6b3a }
.popup-route strong { display:block; font-size:14px; letter-spacing:1px; text-transform:uppercase; color:var(--ink) }
.popup-itinerary { margin-top:6px }
.popup-itinerary h3 { font-size:17px }
.popup-lists { display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:20px }
.popup-lists h3 { font-size:17px; font-weight:600; color:var(--ink); margin-bottom:12px }
.popup-lists ul { list-style:none; margin:0; padding:0; font-size:14px; line-height:1.6 }
.popup-lists li { display:flex; gap:10px; padding:7px 0; border-bottom:1px solid var(--line) }
.popup-lists .icon { width:16px; height:16px; flex-shrink:0; margin-top:3px; color:#4d6b3a }
.popup-body .fineprint { margin-top:24px; font-size:14px; color:var(--muted) }
.popup-related { display:grid; gap:10px }
.popup-related a { display:grid; grid-template-columns:64px 1fr auto; gap:16px; align-items:center; padding:10px; border:1px solid var(--line); border-radius:4px; background:#fffdf8; transition:background .2s }
.popup-related a:hover { background:var(--cream) }
.popup-related img { width:64px; height:64px; object-fit:cover; border-radius:3px }
.popup-related span { font-size:13.5px; line-height:1.5; color:var(--muted) }
.popup-related strong { display:block; font-size:14px; font-weight:600; color:var(--ink) }
.popup-related .icon { width:18px; height:18px }
.popup-cta { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:48px; padding-top:28px; border-top:1px solid var(--line) }
.popup-cta p { max-width:380px; font-size:14px; color:var(--ink) }
.article-share-wrap { width:min(760px,calc(100% - 40px)); margin:0 auto }
@media(max-width:760px) {
  .detail-dialog { width:100vw; max-width:100vw; max-height:100svh; height:100svh; margin:0; border-radius:0 }
  .detail-dialog .detail-close { top:14px; margin:14px 14px -60px 0; width:42px; height:42px }
  .detail-dialog__content { padding:74px 20px 40px }
  .popup-title { letter-spacing:-.6px }
  .article-share { gap:12px; margin:22px 0 26px }
  .article-share-label { width:100% }
  .popup-body { font-size:14px; margin-top:28px }
  .popup-lead { font-size:16px }
  .popup-lists { grid-template-columns:1fr }
  .popup-cta { flex-direction:column; align-items:flex-start }
}
@media(prefers-reduced-motion:reduce) { .detail-dialog[open] { animation:none } }

/* Gallery */
.gallery-app { padding-bottom:110px }
.gallery-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; padding:14px; background:var(--cream); border-radius:18px }
.gallery-segments { display:inline-flex; gap:4px; padding:4px; background:#dcdccb; border-radius:12px }
.gallery-segments button { display:inline-flex; align-items:center; gap:8px; padding:10px 18px; border:0; border-radius:9px; background:transparent; font:500 14px var(--sans); color:var(--ink); cursor:pointer; transition:background .2s,box-shadow .2s }
.gallery-segments button span { font-size:14px; color:var(--muted) }
.gallery-segments button[aria-pressed=true] { background:var(--paper); box-shadow:0 1px 3px #11382c26,0 0 0 .5px #11382c1a }
.gallery-search { display:flex; align-items:center; gap:10px; min-width:min(300px,100%); padding:11px 16px; background:var(--paper); border-radius:10px; box-shadow:inset 0 0 0 1px var(--line) }
.gallery-search .icon { width:18px; height:18px; color:var(--muted) }
.gallery-search input { flex:1; min-width:0; border:0; outline:0; background:transparent; font:14px var(--sans); color:var(--ink) }
.gallery-albums { display:flex; gap:8px; overflow-x:auto; padding:22px 2px 6px; scrollbar-width:none }
.gallery-albums::-webkit-scrollbar { display:none }
.gallery-albums button { flex-shrink:0; display:inline-flex; gap:7px; align-items:center; padding:9px 16px; border:1px solid var(--line); border-radius:30px; background:transparent; font:500 13.5px var(--sans); color:var(--ink); cursor:pointer; transition:background .2s,color .2s,border-color .2s }
.gallery-albums button span { font-size:14px; opacity:.6 }
.gallery-albums button:hover { background:var(--cream) }
.gallery-albums button[aria-pressed=true] { background:var(--green); border-color:var(--green); color:#fff }
.gallery-status { min-height:20px; margin:8px 0 0; font-size:13.5px; color:var(--muted) }
.gallery-album { margin-top:46px }
.gallery-album__head { display:flex; align-items:baseline; justify-content:space-between; gap:20px; padding-bottom:16px; margin-bottom:22px; border-bottom:1px solid var(--line) }
.gallery-album__head h2 { font-size:clamp(28px,3vw,40px); letter-spacing:-1px }
.gallery-album__head span { font-size:13.5px; color:var(--muted) }
.gallery-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:14px }
.gallery-grid--films { grid-template-columns:repeat(auto-fill,minmax(300px,1fr)) }
.gallery-tile,.home-gallery-tile { position:relative; display:block; width:100%; aspect-ratio:4/3; padding:0; border:0; border-radius:14px; overflow:hidden; background:var(--cream); cursor:pointer; isolation:isolate; box-shadow:0 1px 2px #11382c14 }
.gallery-grid--films .gallery-tile { aspect-ratio:16/9 }
.gallery-tile[hidden] { display:none }
.gallery-tile img,.home-gallery-tile img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease) }
.gallery-tile:hover img,.home-gallery-tile:hover img { transform:scale(1.05) }
.gallery-tile:focus-visible,.home-gallery-tile:focus-visible { outline:3px solid #c9a55a; outline-offset:3px }
.gallery-tile__caption { position:absolute; left:0; right:0; bottom:0; padding:38px 16px 14px; background:linear-gradient(transparent,#0b2019c7); color:#fff; font-size:14px; font-weight:500; line-height:1.4; text-align:left; opacity:0; transform:translateY(8px); transition:opacity .3s,transform .3s }
.gallery-tile:hover .gallery-tile__caption,.gallery-tile:focus-visible .gallery-tile__caption,.is-video .gallery-tile__caption,.home-gallery-tile .gallery-tile__caption { opacity:1; transform:none }
.gallery-tile__play { position:absolute; left:50%; top:50%; z-index:1; display:grid; place-items:center; width:58px; height:58px; transform:translate(-50%,-50%); border-radius:50%; background:#ffffff2e; border:1px solid #ffffff8c; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); color:#fff; transition:transform .3s }
.gallery-tile__play .icon { width:22px; height:22px; margin-left:3px; fill:currentColor }
.gallery-tile:hover .gallery-tile__play,.home-gallery-tile:hover .gallery-tile__play { transform:translate(-50%,-50%) scale(1.08) }
.gallery-tile__time { position:absolute; top:12px; right:12px; z-index:1; padding:3px 9px; border-radius:20px; background:#0b2019b3; color:#fff; font-size:13px; font-weight:500 }
.gallery-empty { padding:80px 0; text-align:center; color:var(--muted) }
.gallery-empty .small-star { font-size:34px; color:#778b5f }
/* Viewer */
.gallery-viewer { width:min(1180px,96vw); max-width:none; max-height:none; height:min(860px,94svh); padding:0; border-radius:14px; overflow:hidden; background:#0d1813; color:#fff; display:none; grid-template-rows:auto 1fr auto; box-shadow:0 40px 120px #000000a0 }
.gallery-viewer[open] { display:grid; animation:popIn .4s var(--ease) }
.gallery-viewer::backdrop { background:#08120ee6; backdrop-filter:blur(8px) }
.gallery-viewer__bar { display:grid; grid-template-columns:90px 1fr 90px; align-items:center; gap:12px; padding:12px 16px; background:#16241dcc; border-bottom:1px solid #ffffff14 }
.gallery-viewer__dots { display:flex; gap:8px }
.gallery-viewer__dots i { width:12px; height:12px; border-radius:50%; background:#e0ca97 }
.gallery-viewer__dots i:nth-child(2) { background:#d6db90 }
.gallery-viewer__dots i:nth-child(3) { background:#6f9a57 }
.gallery-viewer__title { text-align:center; min-width:0 }
.gallery-viewer__title strong { display:block; font-size:14px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.gallery-viewer__title span { display:block; font-size:14px; color:#ffffff99 }
.gallery-viewer__close { justify-self:end; display:grid; place-items:center; width:36px; height:36px; border-radius:50%; border:1px solid #ffffff30; background:#ffffff0d; color:#fff; cursor:pointer }
.gallery-viewer__close:hover { background:#ffffff26 }
.gallery-viewer__close .icon { width:18px; height:18px }
.gallery-viewer__stage { position:relative; display:grid; place-items:center; min-height:0; padding:18px 70px }
.gallery-viewer__stage img,.gallery-viewer__stage video { max-width:100%; max-height:100%; width:auto; height:auto; border-radius:6px; object-fit:contain; background:#000 }
.gallery-viewer__stage video { width:100% }
.gallery-viewer__nav { position:absolute; top:50%; z-index:2; display:grid; place-items:center; width:46px; height:46px; border-radius:50%; border:1px solid #ffffff30; background:#0d1813b3; color:#fff; cursor:pointer; backdrop-filter:blur(6px) }
.gallery-viewer__nav:hover { background:#ffffff26 }
.gallery-viewer__nav .icon { width:20px; height:20px }
.gallery-viewer__nav.is-prev { left:16px } .gallery-viewer__nav.is-prev .icon { transform:rotate(180deg) }
.gallery-viewer__nav.is-next { right:16px }
.gallery-viewer__strip { display:flex; gap:8px; overflow-x:auto; padding:12px 16px 16px; background:#16241dcc; border-top:1px solid #ffffff14; scrollbar-width:thin }
.gallery-viewer__strip button { position:relative; flex-shrink:0; width:76px; height:54px; padding:0; border:2px solid transparent; border-radius:8px; overflow:hidden; background:#ffffff10; opacity:.55; cursor:pointer; transition:opacity .2s,border-color .2s }
.gallery-viewer__strip button[aria-current=true] { opacity:1; border-color:#e0ca97 }
.gallery-viewer__strip button:hover { opacity:.9 }
.gallery-viewer__strip button.is-video:after { content:''; position:absolute; inset:auto 5px 5px auto; width:0; height:0; border-left:8px solid #fff; border-top:5px solid transparent; border-bottom:5px solid transparent }
.gallery-viewer__strip img { width:100%; height:100%; object-fit:cover }
/* Home gallery */
.home-gallery { background:var(--paper) }
.home-gallery-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:250px 250px; gap:16px }
.home-gallery-tile { aspect-ratio:auto; height:100% }
.home-gallery-tile:first-child { grid-column:span 2; grid-row:span 2 }
.home-gallery-tile:first-child .gallery-tile__caption { font-size:22px; font-weight:600; padding:60px 26px 24px }
.home-gallery-tile:first-child .gallery-tile__play { width:76px; height:76px }
@media(max-width:760px) {
  .gallery-toolbar { padding:10px; border-radius:14px }
  .gallery-segments { width:100% } .gallery-segments button { flex:1; justify-content:center; padding:9px 8px }
  .gallery-search { width:100% }
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px }
  .gallery-grid--films { grid-template-columns:1fr }
  .gallery-tile { border-radius:10px }
  .gallery-tile__caption { font-size:14px; padding:28px 10px 9px; opacity:1; transform:none }
  .gallery-album { margin-top:34px }
  .gallery-viewer { width:100vw; height:100svh; border-radius:0 }
  .gallery-viewer__bar { grid-template-columns:1fr 40px }
  .gallery-viewer__dots { display:none }
  .gallery-viewer__title { text-align:left }
  .gallery-viewer__stage { padding:10px }
  .gallery-viewer__nav { top:auto; bottom:96px; width:40px; height:40px }
  .gallery-viewer__strip button { width:60px; height:44px }
  .home-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:none; gap:8px }
  .home-gallery-tile { aspect-ratio:1 }
  .home-gallery-tile:first-child { grid-column:span 2; grid-row:auto; aspect-ratio:16/10 }
  .home-gallery-tile:first-child .gallery-tile__caption { font-size:16px; padding:40px 16px 14px }
  .home-gallery-tile .gallery-tile__caption { font-size:14px; padding:28px 10px 9px }
}
@media(prefers-reduced-motion:reduce) { .gallery-viewer[open] { animation:none } .gallery-tile img,.home-gallery-tile img { transition:none } }

/* About: purpose, partners, certificates */
.purpose-section { background:var(--cream) }
.purpose-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px }
.purpose-card { padding:34px 30px 36px; background:var(--paper); border-radius:18px; box-shadow:0 1px 2px #11382c12 }
.purpose-label { display:inline-block; margin-bottom:18px; padding:6px 14px; border-radius:30px; background:var(--green); color:#fff; font-size:14px; font-weight:600; letter-spacing:.6px; text-transform:uppercase }
.purpose-card p { font-size:17px; line-height:1.65; color:var(--ink) }
.company-values { margin-top:46px }
.company-values h3 { font-size:22px; font-weight:600; margin-bottom:18px }
.company-values ul { display:flex; flex-wrap:wrap; gap:10px; list-style:none; margin:0; padding:0 }
.company-values li { padding:10px 18px; border:1px solid #11382c26; border-radius:30px; background:var(--paper); font-size:14px; font-weight:500 }
.partner-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:14px; list-style:none; margin:0; padding:0 }
.partner-grid li { display:flex; flex-direction:column; align-items:center; justify-content:space-between; gap:16px; padding:28px 16px 20px; border:1px solid var(--line); border-radius:16px; background:#fff; text-align:center }
.partner-grid img { height:78px; width:auto; max-width:100%; object-fit:contain }
.partner-grid span { font-size:14px; line-height:1.45; color:var(--muted) }
.certificates-section { padding-top:0 }
.certificate-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px }
.certificate-card { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:#fff; color:var(--ink); transition:box-shadow .3s,transform .3s }
.certificate-card:hover { transform:translateY(-4px); box-shadow:0 18px 40px -22px #11382c66 }
.certificate-card:hover h3 { color:#4d6b3a }
.certificate-preview { display:block; aspect-ratio:4/5; overflow:hidden; background:#fff; border-bottom:1px solid var(--line) }
.certificate-preview img { width:100%; height:100%; padding:12px; object-fit:contain; background:#fff; transition:transform .6s var(--ease) }
.certificate-card:hover .certificate-preview img { transform:scale(1.04) }
.certificate-card>div { display:flex; flex-direction:column; flex:1; padding:20px }
.certificate-card h3 { font-size:17px; font-weight:600; letter-spacing:-.2px }
.certificate-card p { margin-top:4px; font-size:13.5px; color:var(--muted) }
.certificate-actions { display:flex; gap:8px; margin-top:auto; padding-top:18px }
.certificate-actions .button { flex:1; justify-content:center; padding:11px 14px; font-size:13.5px }
.map-address { display:block; transition:color .2s }
.map-address:hover { color:#4d6b3a }
.contact-po { margin-top:6px }
.map-link { display:inline-flex; align-items:center; gap:8px; margin-top:14px }
.map-link .icon { width:16px; height:16px }
@media(max-width:1020px) { .partner-grid { grid-template-columns:repeat(3,1fr) } .certificate-grid { grid-template-columns:repeat(2,1fr) } }
@media(max-width:760px) {
  .purpose-grid { grid-template-columns:1fr; gap:12px }
  .purpose-card { padding:26px 22px }
  .purpose-card p { font-size:15px }
  .company-values li { font-size:13.5px; padding:8px 14px }
  .partner-grid { grid-template-columns:repeat(2,1fr); gap:10px }
  .partner-grid img { height:60px }
  .certificate-grid { grid-template-columns:1fr 1fr; gap:10px }
  .certificate-card>div { padding:14px }
  .certificate-card h3 { font-size:14px }
  .certificate-actions { flex-direction:column }
}

/* Values panel */
.values-panel { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.6fr); gap:60px; margin-top:72px; padding-top:56px; border-top:1px solid #11382c1f; color:var(--ink) }
.values-panel__intro h3 { font-size:clamp(40px,4vw,58px); line-height:1.02; letter-spacing:-1.6px; font-weight:500; color:var(--ink) }
.values-panel__intro h3 em { color:#4d6b3a }
.values-panel__intro p { margin-top:18px; max-width:300px; font-size:15px; line-height:1.75; color:var(--muted) }
.values-panel__intro img { width:100%; height:auto; max-width:340px; aspect-ratio:3/4; object-fit:cover; margin-top:34px; border-radius:18px; box-shadow:0 24px 50px -28px #11382c80 }
.values-list { display:grid; grid-template-columns:1fr 1fr; column-gap:40px; list-style:none; margin:0; padding:0; align-content:start }
.values-list li { position:relative; display:flex; flex-direction:column; gap:5px; padding:20px 4px 20px 0; border-top:1px solid #11382c1f; transition:padding .35s var(--ease) }
.values-list li:before { content:''; position:absolute; left:0; top:-1px; width:0; height:2px; background:#c9a55a; transition:width .45s var(--ease) }
.values-list li:nth-last-child(-n+2) { border-bottom:1px solid #11382c1f }
.values-list strong { font-size:20px; font-weight:500; letter-spacing:-.3px; color:var(--ink); transition:color .3s }
.values-list span { font-size:14px; line-height:1.55; color:var(--muted) }
.values-list li:hover { padding-left:10px }
.values-list li:hover:before { width:56px }
.values-list li:hover strong { color:#4d6b3a }
@media(max-width:1020px) { .values-panel { grid-template-columns:1fr; gap:36px } .values-panel__intro img { display:none } .values-panel__intro p { max-width:520px } }
@media(max-width:760px) {
  .values-panel { margin-top:44px; padding-top:36px }
  .values-list { grid-template-columns:1fr }
  .values-list li:nth-last-child(2) { border-bottom:0 }
  .values-list strong { font-size:18px }
  .values-list li { padding:16px 0 }
}
@media(prefers-reduced-motion:reduce) { .values-list li,.values-list li:before { transition:none } }

/* Floating WhatsApp button: larger */
.whatsapp-float { gap:12px; padding:16px 26px 16px 20px; font-size:16px; font-weight:600; box-shadow:0 10px 30px #09261938 }
.whatsapp-float .icon { width:26px; height:26px }
@media(max-width:760px) { .whatsapp-float { padding:16px; } .whatsapp-float .icon { width:28px; height:28px } }

/* "Rooted here since 2012" badge: keep the lettering inside the circle */
.local-seal { width:140px; height:140px; font-size:10px; font-weight:600; letter-spacing:1.4px; line-height:1.3; text-align:center; padding:14px; box-shadow:0 12px 30px -14px #11382c66 }
.local-seal>span { font-size:13px; padding:6px 0; letter-spacing:.3px }
.local-seal em { font-size:34px; line-height:1 }
@media(max-width:760px) {
  .local-seal { left:-6px; top:16px; width:112px; height:112px; font-size:8.5px; letter-spacing:1px; padding:10px }
  .local-seal>span { font-size:11px; padding:4px 0 }
  .local-seal em { font-size:27px }
}

/* Titles: no italics anywhere */
h1 em, h2 em, h3 em, h4 em, .wide-photo p em, .values-panel__intro h3 em { font-style: normal; }

/* Testimonials */
.testimonials-section { background:var(--cream) }
.testimonial-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px }
.testimonial-card { position:relative; display:flex; flex-direction:column; justify-content:space-between; gap:30px; margin:0; padding:38px 32px 30px; background:var(--paper); border-radius:22px; box-shadow:0 1px 2px #11382c12; transition:transform .35s var(--ease),box-shadow .35s }
.testimonial-card:hover { transform:translateY(-4px); box-shadow:0 22px 44px -26px #11382c59 }
.testimonial-card:nth-child(2) { background:var(--green); color:#f3f1e4 }
.testimonial-mark { position:absolute; top:10px; right:26px; font-size:96px; line-height:1; color:#c9a55a; opacity:.55; font-weight:600 }
.testimonial-card blockquote { margin:0; font-size:17px; line-height:1.75; color:inherit }
.testimonial-card figcaption { display:flex; align-items:center; gap:14px; padding-top:22px; border-top:1px solid #11382c1a }
.testimonial-card:nth-child(2) figcaption { border-top-color:#ffffff26 }
.testimonial-avatar { display:grid; place-items:center; width:46px; height:46px; flex-shrink:0; border-radius:50%; background:#e0ca97; color:var(--ink); font-weight:600; font-size:18px }
.testimonial-card strong { display:block; font-size:16px; font-weight:600 }
.testimonial-card small { display:block; font-size:13px; opacity:.7 }
@media(max-width:1020px) { .testimonial-grid { grid-template-columns:1fr; max-width:640px } }
@media(max-width:760px) { .testimonial-card { padding:30px 22px 24px } .testimonial-card blockquote { font-size:15.5px } .testimonial-mark { font-size:72px } }
.testimonial-mark { position:static; display:block; height:40px; margin:-6px 0 -4px; font-size:80px; line-height:.9; opacity:.8 }
.testimonial-card { gap:22px }
