:root{
  --green:#466b20;
  --green-dark:#234b18;
  --blue:#063f78;
  --blue-soft:#dbeefa;
  --orange:#de650f;
  --yellow:#f0b533;
  --cream:#fff7df;
  --paper:#fffdf6;
  --sand:#efe4c6;
  --ink:#102312;
  --muted:#54624a;
  --line:#eadfca;
  --shadow:0 14px 30px rgba(28,39,16,.14);
  --radius:8px;
  --page:1360px;
  --title-font:"Baloo 2","Nunito Sans","Segoe UI",system-ui,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Nunito Sans","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
  color:var(--ink);
  background:
    linear-gradient(180deg,#fff 0,#fffdf7 46%,#f6f0dc 100%);
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,textarea,select{font:inherit}

.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;
}

.site-topbar{
  width:100%;
  background:#173f2d;
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.site-topbar-inner{
  width:min(100% - 72px,1500px);
  min-height:38px;
  margin:0 auto;
  padding:6px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.topbar-links,
.language-switcher{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px 14px;
}
.topbar-links a,
.language-option{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  color:rgba(255,255,255,.9);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  white-space:nowrap;
}
.topbar-links a:hover,
.language-option:hover,
.language-option.is-active{
  color:#fff7d7;
}
.topbar-links a:not(:last-child):after{
  content:"";
  width:1px;
  height:12px;
  margin-left:14px;
  background:rgba(255,255,255,.22);
}
.topbar-map-link:before{
  content:"";
  width:10px;
  height:10px;
  margin-right:7px;
  border:2px solid currentColor;
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
}
.language-option{
  gap:5px;
  padding:2px 0;
}
.language-option.is-active{
  border-bottom:2px solid var(--yellow);
}
.language-flag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  line-height:1;
}

.site-header{
  width:min(100% - 72px,1500px);
  min-height:104px;
  margin:0 auto;
  padding:10px 0 12px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  justify-content:stretch;
  gap:18px;
  background:
    linear-gradient(180deg,#fff 0,#fffdf6 100%);
  border-bottom:1px solid rgba(234,223,202,.9);
  z-index:1200;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.brand-full{
  width:330px;
  max-height:100px;
  height:auto;
  object-fit:contain;
  object-position:left center;
}
.header-nav-area{
  display:grid;
  justify-items:end;
  gap:6px;
  min-width:0;
}
.header-kicker{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  color:var(--green-dark);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.header-kicker span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.header-kicker span:not(:first-child):before{
  content:"";
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--yellow);
}
.brand-mascot{
  width:76px;
  height:76px;
  object-fit:contain;
  object-position:center;
}
.brand-copy{
  display:grid;
  line-height:1;
  color:var(--green-dark);
  text-transform:uppercase;
}
.brand-copy span{
  font-weight:900;
  font-size:20px;
}
.brand-copy strong{
  font-size:30px;
  color:var(--blue);
}
.brand-copy em{
  margin-top:7px;
  font-size:12px;
  color:var(--green-dark);
  text-transform:none;
  font-style:italic;
}
.site-nav{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:14px;
  min-width:0;
}
.nav-item{
  position:relative;
  display:flex;
  align-items:center;
}
.has-children:before{
  content:"";
  position:absolute;
  left:-14px;
  right:-14px;
  top:100%;
  height:18px;
  z-index:1290;
}
.nav-link,
.nav-sub-link{
  color:#07170b;
  font-size:15px;
  font-weight:900;
  text-transform:uppercase;
  white-space:nowrap;
}
.nav-link{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:8px 2px;
  border-bottom:3px solid transparent;
}
.has-children .nav-parent{
  gap:7px;
}
.has-children .nav-parent:after{
  content:"";
  width:7px;
  height:7px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:translateY(-2px) rotate(45deg);
}
.nav-link:hover,
.nav-link.is-active{color:var(--blue);border-color:var(--yellow)}
.nav-flyout{
  position:absolute;
  left:50%;
  top:calc(100% + 6px);
  min-width:230px;
  padding:10px;
  display:grid;
  gap:4px;
  background:rgba(255,253,246,.98);
  border:1px solid rgba(70,107,32,.18);
  border-radius:8px;
  box-shadow:0 18px 42px rgba(16,35,18,.18);
  opacity:0;
  pointer-events:none;
  transform:translate(-50%, -3px);
  transition:opacity .18s ease, transform .18s ease;
  z-index:1300;
}
.nav-flyout:before{
  content:"";
  position:absolute;
  left:50%;
  top:-6px;
  width:14px;
  height:14px;
  background:#fffdf6;
  border-left:1px solid rgba(70,107,32,.18);
  border-top:1px solid rgba(70,107,32,.18);
  transform:translateX(-50%) rotate(45deg);
}
.has-children:hover .nav-flyout,
.has-children:focus-within .nav-flyout{
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%, 0);
}
.nav-sub-link{
  position:relative;
  display:flex;
  align-items:center;
  min-height:42px;
  padding:10px 12px;
  border-radius:6px;
  font-size:14px;
  color:var(--green-dark);
}
.nav-sub-link:hover,
.nav-sub-link.is-active{
  color:var(--blue);
  background:#eef5e9;
}
.header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:0;
}

.btn,
.map-btn,
button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:12px 22px;
  border:0;
  border-radius:999px;
  background:var(--green);
  color:#fff;
  font-weight:900;
  text-transform:uppercase;
  font-size:13px;
  cursor:pointer;
  box-shadow:0 8px 16px rgba(70,107,32,.22);
}
.btn:hover,
.map-btn:hover,
button:hover{background:var(--green-dark)}
.btn-light{
  background:#fff;
  color:var(--blue);
  box-shadow:0 8px 18px rgba(6,63,120,.16);
}
.btn-light:hover{background:var(--blue-soft);color:var(--blue)}
.btn-small,.btn.small{min-height:36px;padding:9px 18px;font-size:11px}
.map-btn span{
  width:15px;
  height:15px;
  border:3px solid #fff;
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
}

.admin-badge{
  background:#173f2d;
  color:#fff7d7;
  text-align:center;
  padding:8px 16px;
  font-size:13px;
  font-weight:900;
  letter-spacing:.2px;
}
.site-main{min-height:55vh}
.site-main-home{overflow:hidden}

.home-hero{
  width:min(100% - 72px,1500px);
  margin:0 auto;
}
.hero-art{
  min-height:610px;
  position:relative;
  overflow:hidden;
  border-radius:26px;
  background:#dff0fb url("../img/bg-slide.webp") center center / cover no-repeat;
  box-shadow:var(--shadow);
}
.hero-landscape{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(255,255,255,.08) 0 34%,rgba(255,255,255,.72) 43%,rgba(255,255,255,.5) 68%,rgba(255,255,255,.05) 100%);
}
.hero-landscape:before{
  content:none;
}
.hero-copy{
  position:relative;
  z-index:2;
  width:min(52%,600px);
  margin-left:43%;
  padding:96px 56px 48px 0;
  color:var(--blue);
}
.hero-copy p:first-child{
  margin:0;
  font-size:48px;
  line-height:.9;
  font-weight:900;
  font-family:var(--title-font);
}
.hero-copy h1{
  margin:0 0 10px;
  font-size:82px;
  line-height:.88;
  color:var(--blue);
  text-transform:uppercase;
  font-family:var(--title-font);
  letter-spacing:.5px;
}
.hero-copy h2{
  max-width:520px;
  margin:0 0 12px;
  color:var(--green-dark);
  font-size:30px;
  line-height:1.05;
  font-family:var(--title-font);
}
.hero-copy p{
  max-width:510px;
  margin:0 0 24px;
  color:#101b12;
  font-size:17px;
  line-height:1.45;
  font-weight:700;
}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero-note{
  width:180px;
  min-height:170px;
  position:absolute;
  right:44px;
  bottom:70px;
  z-index:2;
  transform:rotate(6deg);
  background:#fff8de;
  border:1px solid #e0cc92;
  border-radius:var(--radius);
  padding:24px 18px;
  box-shadow:0 12px 18px rgba(75,54,10,.2);
  text-align:center;
}
.hero-note:before{
  content:"";
  width:24px;
  height:24px;
  border-radius:50%;
  background:#517d33;
  position:absolute;
  top:-12px;
  left:50%;
  transform:translateX(-50%);
  box-shadow:0 3px 0 rgba(0,0,0,.15);
}
.hero-note strong{
  display:block;
  color:var(--green-dark);
  text-transform:uppercase;
  font-size:19px;
  line-height:1.05;
  margin-bottom:10px;
}
.hero-note span{font-size:14px;line-height:1.35;font-weight:700}

.feature-cards{
  width:min(100% - 96px,1280px);
  margin:-56px auto 14px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
  position:relative;
  z-index:5;
}
.feature-card{
  min-height:405px;
  background:#fff;
  border:1px solid rgba(222,210,188,.85);
  border-radius:26px;
  padding:14px 14px 24px;
  box-shadow:0 12px 28px rgba(35,42,20,.13);
  display:grid;
  grid-template-rows:205px auto auto auto;
  justify-items:center;
  text-align:center;
  overflow:hidden;
}
.feature-card > picture{display:block;width:100%}
.feature-image{
  width:100%;
  height:202px;
  border-radius:19px;
  object-fit:cover;
  object-position:center;
  border:7px solid #f7fbff;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.05);
}
.feature-icon{
  width:66px;
  height:66px;
  margin-top:-37px;
  border:5px solid #fff;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 6px 12px rgba(0,0,0,.15);
  position:relative;
  display:grid;
  place-items:center;
}
.feature-icon svg{
  width:38px;
  height:38px;
  fill:none;
  stroke:#fff;
  stroke-width:5;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.tone-blue .feature-icon{background:#4e90c8}
.tone-orange .feature-icon{background:var(--orange)}
.tone-olive .feature-icon{background:#789b38}
.feature-card strong{
  margin-top:16px;
  color:var(--blue);
  text-transform:uppercase;
  font-size:20px;
  line-height:1.1;
  letter-spacing:.2px;
  font-family:var(--title-font);
}
.tone-orange strong{color:var(--orange)}
.tone-olive strong{color:var(--green-dark)}
.feature-card small{
  display:block;
  max-width:235px;
  margin-top:12px;
  color:#152211;
  font-size:16px;
  line-height:1.38;
  font-weight:700;
}
.feature-card em{
  align-self:end;
  min-height:34px;
  margin-top:20px;
  padding:8px 15px;
  border:2px solid currentColor;
  border-radius:999px;
  color:var(--blue);
  background:#fff;
  font-size:12px;
  font-style:normal;
  font-weight:900;
  text-transform:uppercase;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.feature-card:hover em{background:var(--blue);border-color:var(--blue);color:#fff}
.tone-orange:hover em{background:var(--orange);border-color:var(--orange)}
.tone-olive:hover em{background:var(--green-dark);border-color:var(--green-dark)}
.tone-olive em{color:var(--green-dark)}

.activity-section{
  width:min(100% - 96px,var(--page));
  margin:34px auto;
  position:relative;
}
.activity-head{
  margin-bottom:20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.activity-section h2,
.home-map-section h2,
.booklet-section h2{
  margin:0;
  color:var(--blue);
  font-size:31px;
  line-height:1.1;
  text-transform:uppercase;
  font-family:var(--title-font);
  letter-spacing:.4px;
}
.home-map-section h2,
.booklet-section h2{margin-bottom:20px}
.activity-controls{
  display:flex;
  align-items:center;
  gap:10px;
}
.activity-controls[hidden]{display:none}
.activity-arrow{
  width:44px;
  height:44px;
  padding:0;
  border:2px solid var(--blue);
  border-radius:50%;
  background:#fff;
  color:var(--blue);
  display:grid;
  place-items:center;
  cursor:pointer;
  box-shadow:0 8px 16px rgba(6,63,120,.1);
  transition:background .2s ease,color .2s ease,opacity .2s ease;
}
.activity-arrow:hover,
.activity-arrow:focus-visible{
  background:var(--blue);
  color:#fff;
  outline:0;
}
.activity-arrow:disabled{
  opacity:.4;
  cursor:default;
  pointer-events:none;
}
.activity-arrow svg{
  width:22px;
  height:22px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.activity-carousel{
  display:flex;
  gap:20px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:4px 2px 18px;
  scrollbar-color:var(--orange) #f5ead1;
}
.activity-carousel:focus-visible{
  outline:3px solid rgba(6,63,120,.25);
  outline-offset:6px;
}
.activity-card{
  flex:0 0 clamp(250px,26vw,340px);
  min-height:390px;
  padding:16px 18px 20px;
  border-radius:var(--radius);
  background:#fffaf0;
  border:1px solid #f0dfbd;
  box-shadow:0 10px 20px rgba(38,45,14,.08);
  scroll-snap-align:start;
  display:flex;
  flex-direction:column;
}
.activity-media{
  display:block;
  height:136px;
  margin-bottom:14px;
  border-radius:var(--radius);
  overflow:hidden;
  background:#eef5e9;
}
.activity-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.activity-tags{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  margin-bottom:9px;
}
.activity-tags span,
.activity-tags small{
  align-self:flex-start;
  padding:5px 10px;
  border-radius:999px;
  color:#fff;
  background:var(--green);
  font-size:11px;
  line-height:1;
  font-weight:900;
  text-transform:uppercase;
}
.activity-tags small{
  color:var(--ink);
  background:#fff;
  border:1px solid rgba(28,39,16,.12);
}
.activity-card h3{
  margin:0 0 8px;
  color:var(--orange);
  text-transform:uppercase;
  font-size:18px;
  line-height:1.08;
  font-family:var(--title-font);
}
.activity-location{
  display:block;
  margin:-3px 0 10px;
  color:#5f6c55;
  font-size:12px;
  line-height:1.2;
  font-weight:900;
}
.activity-card p{
  min-height:58px;
  margin:0 0 16px;
  line-height:1.35;
  font-size:14px;
  font-weight:700;
}
.activity-card .btn{margin-top:auto;align-self:flex-start}
.activity-tone-blue h3{color:var(--blue)}
.activity-tone-blue .activity-tags span{background:var(--blue)}
.activity-tone-green h3{color:var(--green-dark)}
.activity-tone-green .activity-tags span{background:var(--green)}
.activity-tone-purple h3{color:#74378f}
.activity-tone-purple .activity-tags span{background:#74378f}
.activity-tone-orange .activity-tags span{background:var(--orange)}

.events-section{
  width:min(100% - 96px,var(--page));
  margin:34px auto;
  padding:24px;
  border:1px solid #d8e6cf;
  border-radius:var(--radius);
  background:linear-gradient(135deg,#fffdf6,#eef7ec);
  box-shadow:var(--shadow);
}
.events-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:20px;
}
.events-head span{
  display:block;
  margin-bottom:6px;
  color:var(--green);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
.events-head h2{
  margin:0;
  color:var(--blue);
  font-family:var(--title-font);
  font-size:34px;
  line-height:1;
  text-transform:uppercase;
}
.events-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.event-controls{
  display:flex;
  gap:10px;
}
.event-controls[hidden]{display:none}
.event-arrow{
  width:42px;
  height:42px;
  padding:0;
  display:grid;
  place-items:center;
  border:2px solid var(--green);
  border-radius:50%;
  background:#fff;
  color:var(--green);
  box-shadow:0 8px 16px rgba(28,39,16,.08);
}
.event-arrow:hover,
.event-arrow:focus-visible{
  background:var(--green);
  color:#fff;
  outline:0;
}
.event-arrow:disabled{
  opacity:.45;
  pointer-events:none;
}
.event-arrow svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.event-carousel{
  display:flex;
  gap:18px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:2px 2px 16px;
  scrollbar-color:var(--green) #e7f0df;
}
.event-carousel:focus-visible{
  outline:3px solid rgba(70,107,32,.2);
  outline-offset:6px;
}
.event-card-public{
  flex:0 0 clamp(280px,31vw,390px);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  border:1px solid rgba(70,107,32,.16);
  border-radius:var(--radius);
  background:#fff;
  box-shadow:0 12px 24px rgba(28,39,16,.09);
  scroll-snap-align:start;
}
.event-card-public img{
  width:100%;
  height:190px;
  object-fit:cover;
  background:#eef5e9;
}
.event-card-body{
  padding:18px;
  display:flex;
  flex:1;
  flex-direction:column;
}
.event-card-body h3{
  margin:10px 0 8px;
  color:var(--blue);
  font-family:var(--title-font);
  font-size:23px;
  line-height:1.05;
  text-transform:uppercase;
}
.event-card-body p{
  margin:0 0 14px;
  color:var(--ink);
  line-height:1.42;
  font-weight:700;
}
.event-card-body .btn{margin-top:auto;align-self:flex-start}
.event-date-chip{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  min-height:32px;
  padding:7px 11px;
  border-radius:999px;
  background:var(--orange);
  color:#fff;
  font-size:12px;
  font-weight:900;
  line-height:1;
  text-transform:uppercase;
}
.event-card-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 16px;
}
.event-card-meta small{
  padding:6px 9px;
  border:1px solid rgba(70,107,32,.18);
  border-radius:999px;
  background:#fffdf6;
  color:var(--green-dark);
  font-weight:900;
}
.event-home-empty{
  padding:26px;
  border:1px dashed rgba(70,107,32,.32);
  border-radius:var(--radius);
  background:#fff;
}
.event-home-empty h3{
  margin:0 0 8px;
  color:var(--blue);
  font-family:var(--title-font);
  font-size:26px;
  line-height:1.05;
  text-transform:uppercase;
}
.event-home-empty p{
  max-width:720px;
  margin:0 0 16px;
  color:var(--green-dark);
  font-weight:800;
  line-height:1.45;
}

.home-map-section{
  width:min(100% - 96px,var(--page));
  margin:18px auto 34px;
  text-align:center;
}
.map-board{
  position:relative;
  overflow:hidden;
  min-height:320px;
  border-radius:var(--radius);
  border:1px solid #d9e5d0;
  background:#cfe4c1;
  box-shadow:var(--shadow);
}
.map,
.map-home{
  position:relative;
  z-index:0;
  width:100%;
  min-height:320px;
  background:
    linear-gradient(135deg,#b9d08a,#f4d887 32%,#79c0dc 33% 40%,#83b760 41% 100%);
}
.leaflet-container{
  z-index:0;
}
.map-tiles-valle{
  filter:saturate(.78) contrast(1.06) sepia(.22) hue-rotate(338deg);
}
.map-marker{
  background:transparent;
  border:0;
}
.map-marker span{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:3px solid #fff;
  border-radius:50% 50% 50% 8px;
  background:var(--green);
  color:#fff;
  font-size:13px;
  font-weight:900;
  line-height:1;
  box-shadow:0 8px 18px rgba(0,0,0,.26);
  transform:rotate(-45deg);
  font-family:var(--title-font);
  text-align:center;
}
.map-marker b{
  display:block;
  transform:rotate(45deg);
}
.map-marker-mtb span{background:#195f79}
.map-marker-trekking span{background:#4f8f38}
.map-marker-village span{background:var(--orange)}
.map-marker-typical span{background:var(--yellow);color:var(--ink)}
.map-marker-tasting span{background:#8c4c9f}
.map-marker-eating span{background:#c75f19}
.map-marker-sleeping span{background:#2f6fb0}
.map-marker-experience span{background:#2b7a67}
.map-marker-default span{background:#4aa8d8}
.map-marker-peak span{
  width:54px;
  height:54px;
  background:#173f35;
  border-color:#fff8e8;
  color:#fff;
  font-size:10px;
  box-shadow:0 10px 22px rgba(0,0,0,.3),0 0 0 8px rgba(222,101,15,.2);
}
.leaflet-control-layers{
  border:0;
  border-radius:var(--radius);
  box-shadow:0 8px 18px rgba(0,0,0,.14);
  font-family:inherit;
  font-weight:800;
}
.map.large{min-height:420px}
.map.full{min-height:680px}
.map-home{height:320px}
.map-legend{
  width:220px;
  position:absolute;
  top:18px;
  right:18px;
  z-index:10;
  background:rgba(255,255,255,.92);
  border-radius:var(--radius);
  padding:16px 18px;
  text-align:left;
  box-shadow:0 8px 18px rgba(0,0,0,.14);
}
.map-legend b{
  display:block;
  margin-bottom:8px;
  color:var(--blue);
  text-transform:uppercase;
}
.map-legend span{
  display:flex;
  align-items:center;
  gap:8px;
  margin:8px 0;
  font-size:13px;
  font-weight:800;
}
.dot{
  width:13px;
  height:13px;
  border-radius:50%;
  display:inline-block;
}
.dot.mtb{background:#195f79}
.dot.trekking{background:#4f8f38}
.dot.village{background:var(--orange)}
.dot.tasting{background:#8c4c9f}
.dot.eating{background:#c75f19}
.dot.sleeping{background:#2f6fb0}
.dot.typical{background:var(--yellow)}
.dot.experience{background:#2b7a67}
.map-page-legend span{
  display:flex;
  align-items:center;
  gap:10px;
  margin:12px 0;
  color:var(--ink);
  font-size:14px;
  font-weight:900;
}
.map-open{
  position:absolute;
  left:50%;
  bottom:16px;
  z-index:10;
  transform:translateX(-50%);
}

.booklet-section{
  width:min(100% - 96px,var(--page));
  margin:62px auto 12px;
  min-height:255px;
  display:grid;
  grid-template-columns:minmax(320px,455px) minmax(390px,1fr) minmax(310px,440px);
  align-items:center;
  gap:22px;
  padding:22px 34px 22px;
  background:
    radial-gradient(circle at 8% 28%,rgba(255,255,255,.82) 0 16%,transparent 17%),
    linear-gradient(90deg,#fff7e4 0,#fffaf0 50%,#fff6df 100%);
  border:1px solid #ead9b8;
  border-radius:28px;
  box-shadow:0 12px 26px rgba(48,40,18,.08);
  overflow:visible;
  position:relative;
}
.booklet-section:before,
.booklet-section:after{content:none}
.booklet-media{
  display:flex;
  min-width:0;
  position:relative;
  z-index:2;
}
.booklet-media-left{
  align-self:end;
  justify-content:flex-start;
  margin-left:-72px;
  margin-top:-70px;
  margin-bottom:-28px;
}
.booklet-media-right{
  justify-content:flex-end;
  margin-right:-68px;
  margin-top:-30px;
  margin-bottom:-24px;
}
.booklet-left{
  width:118%;
  max-width:none;
  max-height:330px;
  object-fit:contain;
  object-position:left bottom;
  filter:drop-shadow(0 8px 10px rgba(38,45,14,.12));
}
.booklet-copy{
  min-width:0;
  padding:8px 0;
}
.booklet-section h2{text-align:left;margin-bottom:8px}
.booklet-section p{
  margin:0 0 14px;
  max-width:630px;
  font-size:18px;
  line-height:1.42;
  font-weight:800;
  color:#132114;
}
.booklet-steps{
  display:flex;
  align-items:flex-start;
  gap:0;
  flex-wrap:wrap;
  margin:14px 0 12px;
}
.booklet-steps span{
  min-width:88px;
  padding-top:42px;
  position:relative;
  text-align:center;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  color:#1d2f1c;
}
.booklet-steps span:not(:last-child):after{
  content:"";
  width:20px;
  height:3px;
  background:var(--green);
  position:absolute;
  top:18px;
  right:-10px;
  border-radius:999px;
}
.booklet-steps svg{
  width:34px;
  height:34px;
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  fill:none;
  stroke:#29482a;
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.booklet-btn{
  min-height:38px;
  padding:9px 24px;
  background:#52752a;
  box-shadow:0 8px 15px rgba(70,107,32,.2);
}
.booklet-right{
  width:116%;
  max-width:none;
  max-height:285px;
  object-fit:contain;
  object-position:right center;
  filter:drop-shadow(0 8px 10px rgba(38,45,14,.12));
}

.value-strip{
  width:min(100% - 96px,var(--page));
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  background:#fffdf8;
  border-top:0;
  border-bottom:0;
  position:relative;
  padding:8px 0 10px;
}
.value-strip div{
  min-height:82px;
  display:grid;
  grid-template-columns:64px 1fr;
  align-content:center;
  column-gap:12px;
  padding:8px 18px;
  border-right:2px dotted #d4cbb7;
}
.value-strip div:last-child{border-right:0}
.value-icon{
  grid-row:1 / span 2;
  width:54px;
  height:54px;
  border-radius:16px;
  background:#fff4d9;
  display:grid;
  place-items:center;
}
.value-icon svg{
  width:42px;
  height:42px;
  fill:none;
  stroke:#244420;
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.value-backpack svg{stroke:#9a6a19}
.value-house svg{stroke:#d7760f}
.value-earth svg{stroke:#2b7a67}
.value-heart svg{
  fill:#df6047;
  stroke:#9c2f26;
}
.value-strip b{
  color:var(--green-dark);
  text-transform:uppercase;
  font-size:15px;
  align-self:end;
}
.value-strip small{
  font-size:14px;
  color:#25331d;
  font-weight:700;
  align-self:start;
}

.page-hero{
  width:min(100% - 96px,var(--page));
  min-height:0;
  margin:18px auto 24px;
  border-radius:12px;
  background:
    linear-gradient(180deg,#fff,#fffdf8);
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:start;
  gap:10px;
  padding:22px 28px;
  overflow:hidden;
  position:relative;
  border:1px solid rgba(234,223,202,.9);
  box-shadow:0 10px 22px rgba(28,39,16,.07);
}
.page-hero:before{content:none}
.page-hero:after{content:none}
.page-hero-theme-valle,
.detail-masthead-theme-valle{--hero-accent:#2b7a67;--hero-soft:#dcefe6}
.page-hero-theme-gesso,
.detail-masthead-theme-gesso{--hero-accent:#7b8b93;--hero-soft:#eef2f1}
.page-hero-theme-famiglie,
.detail-masthead-theme-famiglie{--hero-accent:#df6047;--hero-soft:#ffe8d8}
.page-hero-theme-sentieri,
.detail-masthead-theme-sentieri{--hero-accent:#466b20;--hero-soft:#e9f4d7}
.page-hero-theme-esperienze,
.detail-masthead-theme-esperienze{--hero-accent:#de650f;--hero-soft:#fff0d9}
.page-hero-theme-borghi,
.detail-masthead-theme-borghi{--hero-accent:#9a6a19;--hero-soft:#f6ead0}
.page-hero-theme-sapori,
.detail-masthead-theme-sapori{--hero-accent:#6f8e1d;--hero-soft:#f0f5d7}
.page-hero-theme-ospitalita,
.detail-masthead-theme-ospitalita{--hero-accent:#8b5d8e;--hero-soft:#f2e4f2}
.page-hero-theme-mappa,
.detail-masthead-theme-mappa{--hero-accent:#063f78;--hero-soft:#dbeefa}
.page-hero-theme-contatti,
.detail-masthead-theme-contatti{--hero-accent:#2b7a67;--hero-soft:#e0f2ec}
.page-hero.compact{min-height:0}
.page-hero > *{
  position:relative;
  z-index:1;
}
.page-hero h1,
.detail h1{
  margin:0 0 10px;
  color:var(--blue);
  font-size:clamp(30px,3.1vw,44px);
  line-height:1.05;
  text-transform:uppercase;
  font-family:var(--title-font);
  letter-spacing:0;
}
.page-hero p{
  max-width:620px;
  margin:0;
  font-size:16px;
  line-height:1.45;
  font-weight:700;
  color:var(--green-dark);
}
.page-hero .hero-mascot,
.page-hero .generic-page-image{display:none}
.hero-mascot{
  width:clamp(260px,25vw,370px);
  min-height:255px;
  justify-self:center;
  align-self:end;
  position:relative;
  display:grid;
  place-items:end center;
}
.hero-mascot:before,
.hero-mascot:after{content:none}
.hero-mascot img{
  width:min(100%,290px);
  max-height:315px;
  object-fit:contain;
  position:relative;
  z-index:2;
  filter:drop-shadow(0 16px 16px rgba(38,45,14,.18));
}

.section,
.directory,
.detail,
.content-page,
.contact-grid,
.map-layout{
  width:min(100% - 96px,var(--page));
  margin:32px auto;
}
.content-page{
  max-width:900px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:32px;
  line-height:1.65;
  box-shadow:0 10px 22px rgba(28,39,16,.08);
}
.managed-page-content{
  width:min(100% - 96px,900px);
  margin:28px auto;
  padding:28px 32px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  line-height:1.7;
  box-shadow:0 10px 22px rgba(28,39,16,.08);
}
.generic-page-image{
  overflow:hidden;
  min-height:250px;
  border-radius:var(--radius);
  box-shadow:0 18px 35px rgba(38,45,14,.18);
}
.generic-page-image img{
  width:100%;
  height:100%;
  min-height:250px;
  display:block;
  object-fit:cover;
}
.valley-hero,
.valley-intro,
.valley-story-grid,
.valley-photo-band,
.valley-experience,
.valley-itinerary,
.valley-seasons,
.valley-gallery-planner,
.valley-closing{
  width:min(100% - 96px,var(--page));
  margin:34px auto;
}
.valley-hero{
  min-height:560px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,540px);
  align-items:stretch;
  gap:24px;
}
.valley-hero-copy,
.valley-intro,
.valley-experience,
.valley-itinerary,
.valley-seasons,
.valley-closing{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 16px 34px rgba(28,39,16,.1);
}
.valley-hero-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(28px,5vw,64px);
  background:
    linear-gradient(120deg,rgba(255,253,246,.98),rgba(255,247,223,.9)),
    url("../img/bg-slide.webp") center/cover;
  overflow:hidden;
  position:relative;
}
.valley-hero-copy:after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:7px;
  background:linear-gradient(90deg,var(--green),var(--yellow),var(--orange),var(--blue));
}
.valley-hero-copy .eyebrow,
.valley-intro span,
.valley-section-head span,
.valley-itinerary > div span,
.valley-closing span{
  display:block;
  margin-bottom:10px;
  color:var(--orange);
  font-weight:900;
  text-transform:uppercase;
  font-size:13px;
}
.valley-hero h1{
  max-width:780px;
  margin:0 0 18px;
  color:var(--blue);
  font-family:var(--title-font);
  font-size:clamp(42px,6vw,74px);
  line-height:.96;
  text-transform:uppercase;
}
.valley-hero p{
  max-width:720px;
  margin:0 0 26px;
  color:#22301d;
  font-size:19px;
  font-weight:750;
  line-height:1.5;
}
.valley-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.valley-photo-slot{
  min-height:260px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:8px;
  padding:22px;
  border:2px dashed #d8c8a4;
  border-radius:var(--radius);
  background:
    linear-gradient(135deg,rgba(255,253,246,.92),rgba(219,238,250,.78)),
    repeating-linear-gradient(-45deg,rgba(70,107,32,.08) 0 10px,rgba(6,63,120,.06) 10px 20px);
  color:var(--green-dark);
  text-align:center;
  overflow:hidden;
}
.valley-photo-slot img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:calc(var(--radius) - 2px);
}
.valley-photo-slot span{
  font-family:var(--title-font);
  color:var(--blue);
  font-size:24px;
  font-weight:900;
  text-transform:uppercase;
}
.valley-photo-slot small{
  color:var(--muted);
  font-weight:800;
}
.valley-photo-hero{min-height:560px}
.valley-intro{
  display:grid;
  grid-template-columns:minmax(260px,430px) 1fr;
  gap:32px;
  align-items:center;
  padding:34px;
}
.valley-intro h2,
.valley-section-head h2,
.valley-itinerary h2,
.valley-closing h2{
  margin:0;
  color:var(--blue);
  font-family:var(--title-font);
  font-size:clamp(30px,4vw,48px);
  line-height:1.05;
  text-transform:uppercase;
}
.valley-intro p,
.valley-section-head p,
.valley-itinerary p,
.valley-seasons p,
.valley-experience p,
.valley-closing p{
  color:#26341f;
  line-height:1.58;
  font-weight:700;
}
.valley-story-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.valley-story-grid article,
.valley-experience-grid a,
.valley-season-grid article,
.valley-itinerary li{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 12px 26px rgba(28,39,16,.08);
}
.valley-story-grid article{
  padding:26px;
}
.valley-story-grid span{
  display:inline-grid;
  place-items:center;
  width:44px;
  height:44px;
  margin-bottom:18px;
  border-radius:50%;
  background:var(--green);
  color:#fff;
  font-weight:900;
}
.valley-story-grid h2{
  color:var(--blue);
  font-family:var(--title-font);
  line-height:1.08;
  text-transform:uppercase;
}
.valley-photo-band{
  display:grid;
  grid-template-columns:1.4fr .8fr 1fr;
  gap:18px;
}
.valley-photo-band .valley-photo-slot:first-child{min-height:380px}
.valley-experience,
.valley-itinerary,
.valley-seasons{
  padding:34px;
}
.valley-section-head{
  max-width:820px;
  margin-bottom:24px;
}
.valley-section-head p{margin-bottom:0}
.valley-experience-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}
.valley-experience-grid a{
  min-height:190px;
  padding:22px;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.valley-experience-grid a:hover{
  transform:translateY(-3px);
  border-color:var(--yellow);
  box-shadow:0 16px 30px rgba(28,39,16,.13);
}
.valley-experience-grid b,
.valley-season-grid b,
.valley-itinerary b{
  display:block;
  margin-bottom:10px;
  color:var(--green-dark);
  font-family:var(--title-font);
  font-size:24px;
  line-height:1.05;
  text-transform:uppercase;
}
.valley-itinerary{
  display:grid;
  grid-template-columns:minmax(260px,390px) 1fr;
  gap:28px;
}
.valley-itinerary ol{
  display:grid;
  gap:14px;
  margin:0;
  padding:0;
  list-style:none;
}
.valley-itinerary li{
  padding:22px;
}
.valley-season-grid,
.valley-gallery-planner{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.valley-season-grid article{
  padding:22px;
  background:linear-gradient(180deg,#fff,#fffaf0);
}
.valley-gallery-planner .valley-photo-slot{
  min-height:250px;
}
.valley-closing{
  display:grid;
  grid-template-columns:300px 1fr;
  gap:26px;
  align-items:center;
  padding:28px 34px;
  background:linear-gradient(120deg,#fff,#f1f7ed);
}
.valley-closing img{
  max-height:260px;
  object-fit:contain;
  justify-self:center;
  filter:drop-shadow(0 14px 14px rgba(38,45,14,.16));
}
.gesso-hero,
.gesso-intro,
.gesso-focus-grid,
.gesso-photo-ribbon,
.gesso-explore,
.gesso-rules,
.gesso-itinerary,
.gesso-gallery-planner,
.gesso-closing{
  width:min(100% - 96px,var(--page));
  margin:34px auto;
}
.gesso-hero{
  min-height:560px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,540px);
  gap:24px;
  align-items:stretch;
}
.gesso-hero-copy,
.gesso-intro,
.gesso-explore,
.gesso-rules,
.gesso-itinerary,
.gesso-closing{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 16px 34px rgba(28,39,16,.1);
}
.gesso-hero-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(28px,5vw,64px);
  background:
    linear-gradient(120deg,rgba(255,255,255,.96),rgba(238,242,241,.9)),
    url("../img/bg-slide.webp") center/cover;
  overflow:hidden;
  position:relative;
}
.gesso-hero-copy:after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:7px;
  background:linear-gradient(90deg,#7b8b93,#f0b533,#466b20,#063f78);
}
.gesso-hero-copy .eyebrow,
.gesso-intro span,
.gesso-rules > div span,
.gesso-itinerary > div span,
.gesso-closing span{
  display:block;
  margin-bottom:10px;
  color:#6d777d;
  font-weight:900;
  text-transform:uppercase;
  font-size:13px;
}
.gesso-hero h1{
  max-width:760px;
  margin:0 0 18px;
  color:var(--blue);
  font-family:var(--title-font);
  font-size:clamp(42px,6vw,74px);
  line-height:.96;
  text-transform:uppercase;
}
.gesso-hero p{
  max-width:720px;
  margin:0 0 26px;
  color:#26341f;
  font-size:19px;
  font-weight:750;
  line-height:1.5;
}
.gesso-photo-hero{min-height:560px}
.gesso-intro{
  display:grid;
  grid-template-columns:minmax(260px,430px) 1fr;
  gap:32px;
  align-items:center;
  padding:34px;
}
.gesso-intro h2,
.gesso-rules h2,
.gesso-itinerary h2,
.gesso-closing h2{
  margin:0;
  color:var(--blue);
  font-family:var(--title-font);
  font-size:clamp(30px,4vw,48px);
  line-height:1.05;
  text-transform:uppercase;
}
.gesso-intro p,
.gesso-focus-grid p,
.gesso-rules p,
.gesso-itinerary p,
.gesso-closing p{
  color:#26341f;
  line-height:1.58;
  font-weight:700;
}
.gesso-focus-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.gesso-focus-grid article,
.gesso-rules li,
.gesso-itinerary li{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 12px 26px rgba(28,39,16,.08);
}
.gesso-focus-grid article{
  padding:24px;
  background:linear-gradient(180deg,#fff,#f8faf8);
}
.gesso-focus-grid span{
  display:inline-flex;
  min-height:34px;
  align-items:center;
  padding:7px 12px;
  margin-bottom:16px;
  border-radius:999px;
  background:#eef2f1;
  color:#536168;
  font-weight:900;
  text-transform:uppercase;
  font-size:12px;
}
.gesso-focus-grid h2{
  color:var(--blue);
  font-family:var(--title-font);
  line-height:1.08;
  text-transform:uppercase;
}
.gesso-photo-ribbon{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:18px;
}
.gesso-photo-ribbon .valley-photo-slot{
  min-height:340px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.9),rgba(238,242,241,.76)),
    repeating-linear-gradient(-45deg,rgba(123,139,147,.11) 0 10px,rgba(240,181,51,.08) 10px 20px);
}
.gesso-explore,
.gesso-rules,
.gesso-itinerary{
  padding:34px;
}
.gesso-rules{
  display:grid;
  grid-template-columns:minmax(260px,390px) 1fr;
  gap:28px;
}
.gesso-rules ul,
.gesso-itinerary ol{
  display:grid;
  gap:14px;
  margin:0;
  padding:0;
  list-style:none;
}
.gesso-rules li,
.gesso-itinerary li{
  padding:22px;
}
.gesso-rules b,
.gesso-itinerary b{
  display:block;
  margin-bottom:8px;
  color:var(--green-dark);
  font-family:var(--title-font);
  font-size:23px;
  line-height:1.05;
  text-transform:uppercase;
}
.gesso-itinerary{
  display:grid;
  grid-template-columns:minmax(260px,390px) 1fr;
  gap:28px;
}
.gesso-gallery-planner{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.gesso-gallery-planner .valley-photo-slot{
  min-height:250px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.92),rgba(238,242,241,.78)),
    repeating-linear-gradient(-45deg,rgba(123,139,147,.11) 0 10px,rgba(70,107,32,.07) 10px 20px);
}
.gesso-closing{
  display:grid;
  grid-template-columns:300px 1fr;
  gap:26px;
  align-items:center;
  padding:28px 34px;
  background:linear-gradient(120deg,#fff,#eef2f1);
}
.gesso-closing img{
  max-height:260px;
  object-fit:contain;
  justify-self:center;
  filter:drop-shadow(0 14px 14px rgba(38,45,14,.16));
}
.family-hero,
.family-intro,
.family-card-grid,
.family-photo-strip,
.family-planner,
.family-day,
.family-tips,
.family-gallery-planner,
.family-closing{
  width:min(100% - 96px,var(--page));
  margin:34px auto;
}
.family-hero{
  min-height:560px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,540px);
  gap:24px;
  align-items:stretch;
}
.family-hero-copy,
.family-intro,
.family-planner,
.family-day,
.family-tips,
.family-closing{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 16px 34px rgba(28,39,16,.1);
}
.family-hero-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(28px,5vw,64px);
  background:
    linear-gradient(120deg,rgba(255,253,246,.98),rgba(255,232,216,.88)),
    url("../img/bg-slide.webp") center/cover;
  overflow:hidden;
  position:relative;
}
.family-hero-copy:after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:7px;
  background:linear-gradient(90deg,#df6047,#f0b533,#466b20,#063f78);
}
.family-hero-copy .eyebrow,
.family-intro span,
.family-day > div span,
.family-closing span{
  display:block;
  margin-bottom:10px;
  color:#df6047;
  font-weight:900;
  text-transform:uppercase;
  font-size:13px;
}
.family-hero h1{
  max-width:790px;
  margin:0 0 18px;
  color:var(--blue);
  font-family:var(--title-font);
  font-size:clamp(42px,6vw,74px);
  line-height:.96;
  text-transform:uppercase;
}
.family-hero p{
  max-width:720px;
  margin:0 0 26px;
  color:#26341f;
  font-size:19px;
  font-weight:750;
  line-height:1.5;
}
.family-photo-hero{min-height:560px}
.family-intro{
  display:grid;
  grid-template-columns:minmax(260px,430px) 1fr;
  gap:32px;
  align-items:center;
  padding:34px;
}
.family-intro h2,
.family-day h2,
.family-closing h2{
  margin:0;
  color:var(--blue);
  font-family:var(--title-font);
  font-size:clamp(30px,4vw,48px);
  line-height:1.05;
  text-transform:uppercase;
}
.family-intro p,
.family-card-grid p,
.family-planner p,
.family-day p,
.family-tips p,
.family-closing p{
  color:#26341f;
  line-height:1.58;
  font-weight:700;
}
.family-card-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.family-card-grid article,
.family-planner-grid a,
.family-tip-grid article,
.family-day li{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 12px 26px rgba(28,39,16,.08);
}
.family-card-grid article{
  min-height:250px;
  padding:24px;
  background:linear-gradient(180deg,#fff,#fff7ed);
}
.family-card-grid span{
  display:inline-flex;
  min-height:34px;
  align-items:center;
  padding:7px 12px;
  margin-bottom:16px;
  border-radius:999px;
  background:#ffe8d8;
  color:#b5422d;
  font-weight:900;
  text-transform:uppercase;
  font-size:12px;
}
.family-card-grid h2{
  color:var(--blue);
  font-family:var(--title-font);
  line-height:1.08;
  text-transform:uppercase;
}
.family-photo-strip{
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:18px;
}
.family-photo-strip .valley-photo-slot{
  min-height:330px;
  background:
    linear-gradient(135deg,rgba(255,253,246,.92),rgba(255,232,216,.78)),
    repeating-linear-gradient(-45deg,rgba(223,96,71,.1) 0 10px,rgba(240,181,51,.09) 10px 20px);
}
.family-planner,
.family-day,
.family-tips{
  padding:34px;
}
.family-planner-grid,
.family-tip-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}
.family-planner-grid a,
.family-tip-grid article{
  min-height:180px;
  padding:22px;
}
.family-planner-grid a:hover{
  transform:translateY(-3px);
  border-color:#df6047;
  box-shadow:0 16px 30px rgba(28,39,16,.13);
}
.family-planner-grid a{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.family-planner-grid b,
.family-tip-grid b,
.family-day b{
  display:block;
  margin-bottom:10px;
  color:var(--green-dark);
  font-family:var(--title-font);
  font-size:24px;
  line-height:1.05;
  text-transform:uppercase;
}
.family-day{
  display:grid;
  grid-template-columns:minmax(260px,390px) 1fr;
  gap:28px;
}
.family-day ol{
  display:grid;
  gap:14px;
  margin:0;
  padding:0;
  list-style:none;
}
.family-day li{padding:22px}
.family-gallery-planner{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.family-gallery-planner .valley-photo-slot{
  min-height:250px;
  background:
    linear-gradient(135deg,rgba(255,253,246,.92),rgba(255,232,216,.78)),
    repeating-linear-gradient(-45deg,rgba(223,96,71,.1) 0 10px,rgba(70,107,32,.07) 10px 20px);
}
.family-closing{
  display:grid;
  grid-template-columns:300px 1fr;
  gap:26px;
  align-items:center;
  padding:28px 34px;
  background:linear-gradient(120deg,#fff,#fff1e7);
}
.family-closing img{
  max-height:260px;
  object-fit:contain;
  justify-self:center;
  filter:drop-shadow(0 14px 14px rgba(38,45,14,.16));
}
.section h2{
  color:var(--blue);
  text-align:center;
  text-transform:uppercase;
  font-family:var(--title-font);
}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.cards{grid-template-columns:repeat(3,1fr)}
.card,
.list-card,
.filters,
.pin-detail,
.contact-grid form,
.faq,
.detail-grid aside{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 10px 22px rgba(28,39,16,.08);
}
.card{
  min-height:190px;
  padding:24px;
  text-align:center;
}
.card .icon{font-size:32px}
.card h3{
  color:var(--blue);
  font-family:var(--title-font);
  text-transform:uppercase;
}
.card span{color:var(--green);font-weight:900;text-transform:uppercase}

.directory{
  display:grid;
  grid-template-columns:300px 1fr;
  align-items:start;
  gap:22px;
}
.filters,
.pin-detail{padding:22px}
.filters{
  position:sticky;
  top:134px;
  padding:18px;
  border-radius:18px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,253,246,.96));
  border:1px solid rgba(234,223,202,.95);
  box-shadow:0 16px 34px rgba(28,39,16,.1);
}
.filters h3,
.pin-detail h3{
  margin-top:0;
  color:var(--blue);
  text-transform:uppercase;
  font-family:var(--title-font);
}
.filters h3{
  margin:0 0 16px;
  display:flex;
  align-items:center;
  gap:10px;
  font-size:27px;
  line-height:1;
  letter-spacing:0;
}
.filters h3:before{
  content:"";
  width:34px;
  height:34px;
  border-radius:50%;
  background:
    linear-gradient(var(--blue),var(--blue)) center 10px/16px 3px no-repeat,
    linear-gradient(var(--blue),var(--blue)) center/22px 3px no-repeat,
    linear-gradient(var(--blue),var(--blue)) center 21px/10px 3px no-repeat,
    #dbeefa;
  box-shadow:inset 0 0 0 1px rgba(6,63,120,.12);
}
.filter-search{
  position:relative;
  margin-bottom:14px;
}
.filter-search:before{
  content:"";
  position:absolute;
  left:15px;
  top:50%;
  width:15px;
  height:15px;
  border:2px solid var(--blue);
  border-radius:50%;
  transform:translateY(-56%);
  opacity:.75;
  pointer-events:none;
}
.filter-search:after{
  content:"";
  position:absolute;
  left:29px;
  top:56%;
  width:9px;
  height:2px;
  background:var(--blue);
  border-radius:2px;
  transform:rotate(45deg);
  opacity:.75;
  pointer-events:none;
}
.filters input,
.contact-grid input,
.contact-grid textarea{
  width:100%;
  padding:13px 14px;
  border:1px solid #d8cfbd;
  border-radius:var(--radius);
  margin:8px 0 14px;
  background:#fffefa;
}
.filters .filter-search input{
  height:48px;
  margin:0;
  padding:0 14px 0 44px;
  border-radius:999px;
  border:1px solid rgba(6,63,120,.18);
  background:#fff;
  color:var(--ink);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.filters .filter-search input:focus{
  border-color:var(--blue);
  outline:3px solid rgba(6,63,120,.13);
}
.filters .filter-search input::placeholder{color:#7c8476}
.filters label{display:block;margin:12px 0;font-weight:700}
.filter-form{margin:0}
.filter-field span{
  display:block;
  margin:0 0 7px;
  color:var(--green-dark);
  font-size:14px;
  font-weight:900;
  text-transform:uppercase;
}
.filter-field select{
  width:100%;
  min-height:48px;
  padding:0 42px 0 14px;
  border:1px solid rgba(6,63,120,.18);
  border-radius:14px;
  background:
    linear-gradient(45deg,transparent 50%,var(--blue) 50%) right 18px center/7px 7px no-repeat,
    linear-gradient(135deg,var(--blue) 50%,transparent 50%) right 13px center/7px 7px no-repeat,
    #fff;
  color:var(--ink);
  font:inherit;
  font-weight:800;
  appearance:none;
  -webkit-appearance:none;
}
.filter-field select:focus{
  border-color:var(--blue);
  outline:3px solid rgba(6,63,120,.13);
}
.filter-option{
  min-height:50px;
  display:flex !important;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border:1px solid rgba(234,223,202,.95);
  border-radius:14px;
  background:#fff;
  color:var(--green-dark);
  cursor:pointer;
  transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.filter-option:hover{
  border-color:rgba(6,63,120,.24);
  box-shadow:0 8px 18px rgba(28,39,16,.08);
  transform:translateY(-1px);
}
.filter-option input{
  width:22px;
  height:22px;
  flex:0 0 22px;
  margin:0;
  padding:0;
  border:2px solid #b8c4ad;
  border-radius:7px;
  appearance:none;
  -webkit-appearance:none;
  background:#fff;
  display:grid;
  place-items:center;
}
.filter-option input:focus-visible{
  outline:3px solid rgba(6,63,120,.16);
  outline-offset:2px;
}
.filter-option input:checked{
  border-color:var(--green);
  background:var(--green);
}
.filter-option input:checked:before{
  content:"";
  width:10px;
  height:6px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(-45deg) translate(1px,-1px);
}
.filter-option:has(input:checked){
  border-color:rgba(70,107,32,.38);
  background:linear-gradient(180deg,#f4faec,#fff);
  box-shadow:inset 4px 0 0 var(--green);
}
.filter-option span{
  line-height:1.15;
  font-weight:900;
}
.filter-actions{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:16px;
}
.filter-actions .btn{
  flex:1;
  justify-content:center;
  min-height:44px;
}
.filter-reset{
  color:var(--blue);
  font-weight:900;
  text-decoration:none;
}
.filter-reset:hover{text-decoration:underline}
.filter-count{
  margin:14px 0 0;
  color:#697262;
  font-weight:800;
}
.list{display:flex;flex-direction:column;gap:16px}
.list-empty{
  padding:26px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 10px 22px rgba(28,39,16,.08);
}
.list-empty h2{
  margin:0 0 8px;
  color:var(--blue);
  font-family:var(--title-font);
  text-transform:uppercase;
}
.list-card{
  display:grid;
  grid-template-columns:240px 1fr;
  gap:18px;
  padding:14px;
}
.list-card img{
  width:100%;
  height:170px;
  object-fit:cover;
  border-radius:var(--radius);
  background:#f2e9cf;
}
.list-card img[alt=""]{object-fit:contain;padding:10px}
.list-card h2{
  margin:6px 0;
  color:var(--blue);
  font-family:var(--title-font);
  text-transform:uppercase;
}
.list-card p{line-height:1.45}
.meta{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0;color:var(--green-dark);font-weight:800}
.events-list-page,
.event-detail-page{
  width:min(100% - 96px,var(--page));
  margin:34px auto;
}
.events-list-grid{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.event-public-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:22px;
  padding:22px 24px;
  border:1px solid rgba(70,107,32,.18);
  border-radius:var(--radius);
  background:linear-gradient(135deg,#fffdf6,#eef7ec);
  box-shadow:0 10px 22px rgba(28,39,16,.08);
}
.event-public-cta h2{
  margin:0 0 4px;
  color:var(--blue);
  font-family:var(--title-font);
  font-size:28px;
  line-height:1.05;
  text-transform:uppercase;
}
.event-public-cta p{
  margin:0;
  color:var(--green-dark);
  font-weight:800;
  line-height:1.4;
}
.event-list-card{
  display:grid;
  grid-template-columns:300px minmax(0,1fr);
  gap:20px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#fff;
  box-shadow:0 10px 22px rgba(28,39,16,.08);
}
.event-list-card img{
  width:100%;
  height:220px;
  object-fit:cover;
  border-radius:var(--radius);
  background:#eef5e9;
}
.event-list-card h2{
  margin:12px 0 8px;
  color:var(--blue);
  font-family:var(--title-font);
  font-size:29px;
  line-height:1.05;
  text-transform:uppercase;
}
.event-list-card p{
  margin:0 0 14px;
  line-height:1.48;
  font-weight:700;
}
.event-empty{
  padding:34px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#fff;
  text-align:center;
  box-shadow:0 10px 22px rgba(28,39,16,.08);
}
.event-empty h2{
  color:var(--blue);
  font-family:var(--title-font);
  text-transform:uppercase;
}
.trail-icons{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:12px 0 2px;
}
.trail-icon{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border:1px solid rgba(70,107,32,.18);
  border-radius:12px;
  background:#fffdf6;
  color:var(--green-dark);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  box-shadow:0 8px 18px rgba(28,39,16,.06);
}
.trail-icon svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.detail{
  max-width:1080px;
  padding:24px;
  border:1px solid rgba(234,223,202,.95);
  border-radius:14px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,253,246,.88));
  box-shadow:0 12px 26px rgba(28,39,16,.08);
}
.detail-back-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:36px;
  margin:0 0 14px;
  padding:8px 12px;
  border:1px solid rgba(6,63,120,.16);
  border-radius:999px;
  background:#fff;
  color:var(--blue);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
.detail-back-link:before{
  content:"";
  width:8px;
  height:8px;
  border-left:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg);
}
.detail-back-link:hover{
  color:#fff;
  background:var(--blue);
}
.detail-masthead{
  min-height:0;
  margin:0 0 20px;
  padding:20px 24px;
  border-radius:12px;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:center;
  gap:14px;
  overflow:hidden;
  position:relative;
  background:
    linear-gradient(180deg,#fff,#fffdf9);
  border:1px solid rgba(234,223,202,.9);
}
.detail-masthead:after{content:none}
.detail-masthead-copy{
  position:relative;
  z-index:1;
}
.detail-eyebrow{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:10px;
}
.detail-eyebrow span{
  display:inline-flex;
  min-height:30px;
  align-items:center;
  padding:6px 12px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(70,107,32,.18);
  color:var(--hero-accent,var(--green));
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
.detail h1{
  max-width:860px;
  padding-bottom:0;
  border-bottom:0;
  border-image:none;
}
.detail .lead{
  max-width:760px;
  margin-top:0;
  margin-bottom:14px;
  font-size:18px;
  line-height:1.45;
  color:var(--green-dark);
  font-weight:700;
}
.detail-fact-strip{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  max-width:820px;
}
.detail-fact-strip span{
  min-height:42px;
  padding:8px 12px;
  border:1px solid rgba(70,107,32,.16);
  border-radius:999px;
  background:#fff;
  box-shadow:none;
}
.detail-fact-strip small{
  display:inline;
  margin-right:6px;
  margin-bottom:0;
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.detail-fact-strip b{
  display:inline;
  color:var(--blue);
  font-size:14px;
  line-height:1.2;
}
.detail-cover{
  width:100%;
  max-height:460px;
  object-fit:cover;
  border-radius:var(--radius);
  border:1px solid var(--line);
  box-shadow:0 12px 26px rgba(28,39,16,.12);
}
.detail-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 310px;
  gap:24px;
  margin-top:24px;
}
.detail-description-card,
.detail-grid aside{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 10px 22px rgba(28,39,16,.08);
}
.detail-description-card{
  padding:30px;
  font-size:17px;
  line-height:1.7;
}
.detail-description-card h2,
.detail-info-panel h2{
  margin:0 0 16px;
  color:var(--green-dark);
  font-size:28px;
  line-height:1.1;
  font-family:var(--title-font);
}
.detail-highlights{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
  padding-top:20px;
  border-top:1px dashed rgba(70,107,32,.28);
}
.detail-highlights span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:8px 12px;
  border-radius:999px;
  background:#eef5e9;
  color:var(--green-dark);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
.detail-grid aside{
  padding:22px;
  background:
    linear-gradient(180deg,#fff8e8,#fffdf8);
}
.detail-grid aside p{
  display:flex;
  justify-content:space-between;
  gap:14px;
  margin:0;
  padding:13px 0;
  border-bottom:1px solid rgba(16,35,18,.1);
  color:var(--muted);
}
.detail-grid aside p b{color:var(--green-dark)}
.detail-grid aside p span{
  color:var(--blue);
  font-weight:900;
  text-align:right;
}
.detail-grid aside p:last-of-type{border-bottom:0}
.detail-contact-actions{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid rgba(16,35,18,.1);
}
.detail-contact-actions > b{
  display:block;
  margin-bottom:12px;
  color:var(--green-dark);
  font-size:15px;
}
.detail-contact-actions small{
  display:block;
  margin-top:10px;
  color:var(--muted);
  font-weight:800;
}
.detail-contact-actions a:not(.btn){
  color:var(--blue);
  font-weight:900;
}
.event-detail-hero{
  display:grid;
  grid-template-columns:minmax(300px,460px) minmax(0,1fr);
  align-items:center;
  gap:28px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:
    linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,253,246,.88)),
    linear-gradient(120deg,#e9f5e3,#dbeefa);
  box-shadow:var(--shadow);
}
.event-detail-hero img{
  width:100%;
  height:360px;
  object-fit:cover;
  border-radius:var(--radius);
  background:#eef5e9;
}
.event-detail-hero h1{
  margin:14px 0 12px;
  color:var(--blue);
  font-family:var(--title-font);
  font-size:clamp(36px,5vw,64px);
  line-height:.95;
  text-transform:uppercase;
}
.event-detail-hero p{
  margin:0;
  color:var(--green-dark);
  font-size:19px;
  line-height:1.45;
  font-weight:800;
}
.event-detail-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  gap:24px;
  margin-top:24px;
}
.event-detail-grid section,
.event-detail-grid aside{
  padding:26px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#fff;
  box-shadow:0 10px 22px rgba(28,39,16,.08);
}
.event-detail-grid h2{
  margin-top:0;
  color:var(--blue);
  font-family:var(--title-font);
  text-transform:uppercase;
}
.event-detail-grid section div{
  line-height:1.65;
  font-weight:700;
}
.event-detail-grid aside{
  background:linear-gradient(180deg,#fff8e8,#fffdf8);
}
.event-detail-grid aside p{
  display:flex;
  justify-content:space-between;
  gap:14px;
  margin:0;
  padding:13px 0;
  border-bottom:1px solid rgba(16,35,18,.1);
}
.event-detail-grid aside span{
  text-align:right;
  font-weight:800;
}
.event-detail-grid aside .btn{
  margin-top:18px;
}
.trail-map-panel{
  margin-top:34px;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#fff;
  box-shadow:0 18px 34px rgba(28,39,16,.1);
  overflow:hidden;
}
.trail-map-head,
.elevation-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:20px 22px;
}
.trail-map-head{
  background:
    linear-gradient(110deg,#173f35,#245d41);
  color:#fff;
}
.trail-map-head span,
.elevation-head span{
  display:block;
  margin-bottom:4px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:.78;
}
.trail-map-head h2,
.elevation-head h3{
  margin:0;
  font-family:var(--title-font);
  text-transform:uppercase;
  line-height:1;
}
.trail-map-head h2{color:#fff;font-size:30px}
.trail-map-shell{
  position:relative;
  background:#dbe8d1;
}
.trail-map-shell .map{
  border-radius:0;
  min-height:520px;
}
.gpx-status{
  position:absolute;
  left:18px;
  bottom:18px;
  z-index:420;
  max-width:min(420px,calc(100% - 36px));
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--green-dark);
  font-size:13px;
  font-weight:900;
  box-shadow:0 8px 18px rgba(0,0,0,.16);
}
.gpx-status[data-state="error"]{color:#9c2f26}
.gpx-status[data-state="ready"]{color:var(--green-dark)}
.elevation-panel{
  padding:0 22px 22px;
  background:
    radial-gradient(circle at 92% 24%,rgba(222,101,15,.12),transparent 32%),
    linear-gradient(180deg,#fff,#fff8e8);
}
.elevation-head{
  padding:20px 0 14px;
}
.elevation-head h3{color:var(--blue);font-size:24px}
.elevation-stats{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
}
.elevation-stats span{
  min-width:92px;
  padding:9px 12px;
  border:1px solid #eadfca;
  border-radius:14px;
  background:#fff;
  color:var(--muted);
  text-align:center;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  box-shadow:0 8px 18px rgba(28,39,16,.06);
}
.elevation-stats .elevation-peak-stat{
  border-color:rgba(222,101,15,.28);
  background:linear-gradient(135deg,#173f35,#245d41);
  color:rgba(255,255,255,.75);
}
.elevation-stats b{
  display:block;
  color:var(--green-dark);
  font-size:16px;
}
.elevation-stats .elevation-peak-stat b{color:#fff8e8}
.detail #elevationChart{
  width:100%;
  display:block;
  height:190px;
  border:1px solid rgba(70,107,32,.2);
  border-radius:18px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,253,246,.96)),
    repeating-linear-gradient(90deg,rgba(23,63,53,.05) 0 1px,transparent 1px 72px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 12px 26px rgba(28,39,16,.08);
}

.map-layout{
  display:grid;
  grid-template-columns:300px 1fr 280px;
  gap:18px;
}
.contact-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:24px;
}
.contact-grid form,
.faq{padding:26px}
.contact-grid textarea{min-height:160px}
.contact-form span,
.contact-info span,
.faq-head span{
  display:block;
  margin-bottom:10px;
  color:var(--orange);
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
}
.contact-form h2,
.contact-info h2,
.faq-head h2{
  margin:0 0 10px;
  color:var(--blue);
  font-family:var(--title-font);
  font-size:clamp(28px,3vw,40px);
  line-height:1.05;
  text-transform:uppercase;
}
.contact-form p,
.contact-info p,
.faq-head p{
  color:#26341f;
  font-weight:700;
  line-height:1.55;
}
.contact-form label{
  display:block;
  color:var(--green-dark);
  font-weight:900;
}
.contact-info{
  padding:26px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,247,223,.9));
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 10px 22px rgba(28,39,16,.08);
}
.contact-info-list{
  display:grid;
  gap:12px;
  margin-top:20px;
}
.contact-info-list div{
  padding:16px;
  border:1px solid rgba(234,223,202,.95);
  border-radius:var(--radius);
  background:#fff;
}
.contact-info-list b{
  display:block;
  margin-bottom:4px;
  color:var(--green-dark);
  font-family:var(--title-font);
  font-size:21px;
  text-transform:uppercase;
}
.contact-info-list small{
  color:var(--muted);
  font-weight:800;
  line-height:1.4;
}
.event-submit-page{
  width:min(100% - 96px,var(--page));
  margin:32px auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:24px;
  align-items:start;
}
.event-submit-form,
.event-submit-aside{
  padding:30px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 10px 22px rgba(28,39,16,.08);
}
.event-submit-form span{
  display:block;
  margin-bottom:10px;
  color:var(--orange);
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
}
.event-submit-form h2,
.event-submit-aside h2{
  margin:0 0 16px;
  color:var(--blue);
  font-family:var(--title-font);
  text-transform:uppercase;
}
.submit-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.submit-grid label{
  color:var(--green-dark);
  font-weight:900;
}
.submit-grid input,
.submit-grid textarea{
  width:100%;
  margin-top:7px;
  padding:13px 14px;
  border:1px solid #d8cfbd;
  border-radius:var(--radius);
  background:#fffefa;
}
.submit-grid textarea{min-height:170px}
.event-submit-form .btn{margin-top:16px}
.event-submit-aside p,
.event-submit-aside li{
  color:#26341f;
  font-weight:700;
  line-height:1.55;
}
.contact-faq{
  width:min(100% - 96px,var(--page));
  margin:32px auto;
  padding:32px;
}
.faq-head{
  max-width:860px;
  margin-bottom:22px;
}
.faq-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.faq-list details{
  border:1px solid rgba(234,223,202,.95);
  border-radius:var(--radius);
  background:#fffefa;
  overflow:hidden;
}
.faq-list summary{
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px 18px;
  color:var(--green-dark);
  cursor:pointer;
  font-weight:900;
  line-height:1.25;
  list-style:none;
}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:after{
  content:"+";
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:50%;
  background:#dbeefa;
  color:var(--blue);
  font-size:22px;
  font-weight:900;
  line-height:1;
}
.faq-list details[open]{
  background:#fff;
  box-shadow:0 10px 20px rgba(28,39,16,.08);
}
.faq-list details[open] summary:after{
  content:"-";
  background:#fff0d9;
  color:var(--orange);
}
.faq-list details p{
  margin:0;
  padding:0 18px 18px;
  color:#26341f;
  font-weight:700;
  line-height:1.55;
}

.coming-soon{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:40px 20px;
  background:linear-gradient(180deg,#fff,#eef4d7);
}
.coming-soon img{max-width:220px}
.coming-soon h1{
  max-width:760px;
  margin:18px 0 0;
  font-size:44px;
  color:var(--blue);
  text-transform:uppercase;
  font-family:var(--title-font);
}
.coming-soon h2{color:var(--green-dark)}
.coming-soon-form{
  width:min(100%,520px);
  margin-top:22px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  padding:7px;
  border:1px solid #d8dfc0;
  border-radius:999px;
  background:#fff;
  box-shadow:0 14px 30px rgba(28,39,16,.12);
}
.coming-soon-form input[type="email"]{
  min-width:0;
  border:0;
  outline:0;
  padding:0 16px;
  background:transparent;
}
.coming-soon-form button{min-height:42px;padding:10px 22px}
.form-feedback,
.newsletter-feedback{
  margin:14px 0 0;
  font-size:15px;
  line-height:1.35;
  font-weight:800;
}
.form-feedback{max-width:520px}
.form-feedback.success,
.newsletter-feedback.success{color:var(--green-dark)}
.form-feedback.error,
.newsletter-feedback.error{color:#9c2f26}
.newsletter-feedback{color:#fff}
.site-footer .newsletter-feedback.success{color:#fff}
.site-footer .newsletter-feedback.error{color:#ffd4d4}

.site-footer{
  margin-top:54px;
  background:#174833;
  color:#fff;
  position:relative;
  overflow:hidden;
}
.footer-wave{
  height:28px;
  background:#174833;
}
.footer-newsletter{
  width:min(100% - 96px,var(--page));
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 470px;
  align-items:center;
  gap:24px;
  color:#fff;
  padding:10px 0 26px;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.footer-newsletter b{
  display:block;
  color:#fff;
  text-transform:uppercase;
}
.footer-newsletter span{font-size:14px;color:rgba(255,255,255,.78)}
.footer-newsletter form{
  min-height:54px;
  background:#fff;
  border-radius:999px;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  padding:6px;
  box-shadow:0 8px 18px rgba(0,0,0,.12);
}
.footer-newsletter input{
  border:0;
  min-width:0;
  padding:0 16px;
  outline:0;
}
.footer-newsletter button{
  min-height:42px;
  padding:10px 22px;
}
.footer-grid{
  width:min(100% - 96px,var(--page));
  margin:0 auto;
  padding:30px 0 56px;
  display:grid;
  grid-template-columns:minmax(310px,360px) repeat(3,minmax(150px,1fr));
  align-items:start;
  gap:68px;
}
.footer-grid h3{
  margin:0 0 10px;
  font-size:14px;
  text-transform:uppercase;
}
.footer-grid a,
.footer-grid span{
  display:block;
  color:rgba(255,255,255,.82);
  font-size:14px;
  margin:6px 0;
}
.footer-brand img{
  width:100%;
  height:auto;
  object-fit:contain;
}
.footer-brand .footer-logo-white{
  width:100%;
  min-width:100%;
  height:auto;
  max-height:none;
  object-position:left center;
}
.footer-brand strong{
  display:block;
  margin-top:8px;
  font-size:19px;
  text-transform:uppercase;
}

@media(max-width:1120px){
  .site-topbar-inner{width:min(100% - 48px,1500px)}
  .site-header{width:min(100% - 48px,1500px);grid-template-columns:270px minmax(0,1fr);gap:12px;padding:8px 0 10px;justify-content:stretch}
  .brand-full{width:260px;max-height:88px}
  .header-actions{grid-column:2;justify-self:end}
  .header-kicker{display:none}
  .site-nav{justify-content:flex-end;gap:10px;overflow:visible;padding-bottom:8px}
  .nav-link{font-size:14px}
  .hero-copy{margin-left:40%;width:58%}
  .hero-note{display:none}
  .feature-cards{width:min(100% - 36px,900px);grid-template-columns:repeat(2,1fr)}
  .valley-hero{grid-template-columns:1fr}
  .gesso-hero{grid-template-columns:1fr}
  .family-hero{grid-template-columns:1fr}
  .valley-photo-hero{min-height:380px}
  .gesso-photo-hero{min-height:380px}
  .family-photo-hero{min-height:380px}
  .valley-story-grid,
  .valley-experience-grid,
  .valley-season-grid,
  .gesso-focus-grid,
  .gesso-gallery-planner,
  .family-card-grid,
  .family-planner-grid,
  .family-tip-grid,
  .family-gallery-planner{grid-template-columns:repeat(2,1fr)}
  .valley-photo-band,
  .valley-itinerary,
  .valley-closing,
  .gesso-photo-ribbon,
  .gesso-rules,
  .gesso-itinerary,
  .gesso-closing,
  .family-photo-strip,
  .family-day,
  .family-closing{grid-template-columns:1fr}
  .booklet-section{grid-template-columns:minmax(240px,360px) 1fr}
  .booklet-media-left{
    margin-left:-40px;
    margin-top:-42px;
  }
  .booklet-left{
    width:112%;
    max-height:270px;
  }
  .booklet-media-right{display:none}
  .value-strip{grid-template-columns:repeat(3,1fr)}
}

@media(max-width:820px){
  .site-topbar-inner{
    width:min(100% - 24px,1500px);
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
    padding:7px 0;
  }
  .topbar-links{gap:3px 10px}
  .topbar-links a:not(:last-child):after{
    height:10px;
    margin-left:10px;
  }
  .language-switcher{gap:8px}
  .site-header{
    width:min(100% - 24px,1500px);
    padding:10px 0 8px;
    min-height:96px;
    grid-template-columns:1fr;
  }
  .brand-full{width:220px;max-height:76px}
  .brand-mascot{width:58px;height:58px}
  .brand-copy span{font-size:16px}
  .brand-copy strong{font-size:24px}
  .brand-copy em{font-size:11px}
  .header-actions{grid-column:auto}
  .header-nav-area{grid-column:1 / -1;justify-items:stretch;order:3}
  .site-nav{grid-column:1 / -1;justify-content:flex-start}
  .home-hero{width:min(100% - 16px,1220px)}
  .hero-art{min-height:700px;border-radius:18px}
  .hero-art{background-position:28% center}
  .hero-copy{
    width:100%;
    margin:0;
    padding:320px 24px 28px;
    text-align:center;
  }
  .hero-copy p:first-child{font-size:34px}
  .hero-copy h1{font-size:56px}
  .hero-copy h2{font-size:24px;margin-inline:auto}
  .hero-copy p{margin-inline:auto}
  .hero-actions{justify-content:center}
  .feature-cards,
  .grid,
  .cards,
  .directory,
  .detail-grid,
  .map-layout,
  .contact-grid,
  .footer-newsletter,
  .footer-grid{grid-template-columns:1fr}
  .valley-hero,
  .valley-intro,
  .valley-story-grid,
  .valley-photo-band,
  .valley-experience,
  .valley-itinerary,
  .valley-seasons,
  .valley-gallery-planner,
  .valley-closing,
  .gesso-hero,
  .gesso-intro,
  .gesso-focus-grid,
  .gesso-photo-ribbon,
  .gesso-explore,
  .gesso-rules,
  .gesso-itinerary,
  .gesso-gallery-planner,
  .gesso-closing,
  .family-hero,
  .family-intro,
  .family-card-grid,
  .family-photo-strip,
  .family-planner,
  .family-day,
  .family-tips,
  .family-gallery-planner,
  .family-closing{
    width:min(100% - 24px,var(--page));
  }
  .valley-intro,
  .valley-story-grid,
  .valley-experience-grid,
  .valley-season-grid,
  .valley-gallery-planner,
  .gesso-intro,
  .gesso-focus-grid,
  .gesso-photo-ribbon,
  .gesso-gallery-planner,
  .family-intro,
  .family-card-grid,
  .family-photo-strip,
  .family-planner-grid,
  .family-tip-grid,
  .family-gallery-planner{
    grid-template-columns:1fr;
  }
  .valley-hero-copy,
  .valley-intro,
  .valley-experience,
  .valley-itinerary,
  .valley-seasons,
  .valley-closing,
  .gesso-hero-copy,
  .gesso-intro,
  .gesso-explore,
  .gesso-rules,
  .gesso-itinerary,
  .gesso-closing,
  .family-hero-copy,
  .family-intro,
  .family-planner,
  .family-day,
  .family-tips,
  .family-closing{
    padding:22px;
  }
  .valley-hero h1{font-size:42px}
  .valley-hero p{font-size:16px}
  .gesso-hero h1{font-size:42px}
  .gesso-hero p{font-size:16px}
  .family-hero h1{font-size:42px}
  .family-hero p{font-size:16px}
  .valley-photo-hero,
  .gesso-photo-hero,
  .family-photo-hero,
  .valley-photo-slot,
  .gesso-photo-ribbon .valley-photo-slot,
  .family-photo-strip .valley-photo-slot,
  .valley-photo-band .valley-photo-slot:first-child{
    min-height:230px;
  }
  .valley-closing img{max-height:210px}
  .gesso-closing img{max-height:210px}
  .family-closing img{max-height:210px}
  .feature-cards{margin-top:20px}
  .activity-head{align-items:flex-start;flex-direction:column}
  .activity-controls{align-self:flex-end}
  .activity-card{flex-basis:min(82vw,330px)}
  .map-legend{position:static;width:auto;margin:12px}
  .map-open{position:static;transform:none;margin:0 auto 16px}
  .booklet-section{grid-template-columns:1fr;text-align:center;padding:20px}
  .booklet-section{overflow:hidden;margin-top:34px}
  .booklet-section:before,
  .booklet-section:after{display:none}
  .booklet-section h2{text-align:center}
  .booklet-section p{margin-inline:auto}
  .booklet-media-left,
  .booklet-media-right{
    display:flex;
    justify-content:center;
    margin:0 auto;
  }
  .booklet-left{width:100%;max-height:220px;object-position:center}
  .booklet-right{display:block;width:100%;max-height:170px;object-position:center}
  .booklet-steps{justify-content:center}
  .booklet-steps span:not(:last-child):after{display:none}
  .value-strip{grid-template-columns:1fr}
  .value-strip div{border-right:0;border-bottom:1px dashed #d0c4ab}
  .page-hero{
    grid-template-columns:1fr;
    min-height:0;
    text-align:left;
    padding:18px 20px;
    gap:8px;
  }
  .page-hero .hero-mascot{
    width:min(100%,260px);
    min-height:210px;
    order:-1;
    align-self:center;
    justify-self:center;
  }
  .page-hero .hero-mascot img{max-height:225px}
  .page-hero h1,.detail h1{font-size:32px}
  .detail{padding:18px}
  .detail-masthead{
    margin:0 0 18px;
    padding:18px;
    grid-template-columns:1fr;
    text-align:left;
  }
  .detail-eyebrow{justify-content:flex-start}
  .detail-fact-strip{display:flex}
  .filters{
    position:static;
    top:auto;
  }
  .filters h3{font-size:24px}
  .list-card{grid-template-columns:1fr}
  .trail-map-head,
  .elevation-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .trail-map-shell .map{min-height:440px}
  .elevation-stats{
    width:100%;
    justify-content:stretch;
  }
  .elevation-stats span{
    flex:1 1 120px;
  }
  .map.full{min-height:480px}
  .footer-newsletter form{grid-template-columns:1fr}
  .footer-newsletter button{width:100%}
  .coming-soon-form{grid-template-columns:1fr;border-radius:var(--radius)}
  .coming-soon-form input[type="email"]{min-height:44px;text-align:center}
  .coming-soon-form button{width:100%}
}

@media(max-width:520px){
  .site-topbar-inner,
  .site-header{width:min(100% - 24px,1500px)}
  .site-header{padding:8px 0}
  .brand-full{width:190px;max-height:68px}
  .topbar-links a,
  .language-option{font-size:11px}
  .map-btn{padding:10px 16px;font-size:12px}
  .site-nav{gap:13px}
  .nav-link,
  .nav-sub-link{font-size:13px}
  .hero-copy h1{font-size:44px}
  .hero-copy p:first-child{font-size:28px}
  .hero-copy h2{font-size:20px}
  .trail-map-head h2{font-size:24px}
  .trail-map-head,
  .elevation-panel{padding-inline:16px}
  .trail-map-shell .map{min-height:360px}
  .gpx-status{
    left:10px;
    right:10px;
    bottom:10px;
    max-width:none;
    border-radius:var(--radius);
  }
  .feature-cards,
  .activity-section,
  .home-map-section,
  .booklet-section,
  .value-strip,
  .valley-hero,
  .valley-intro,
  .valley-story-grid,
  .valley-photo-band,
  .valley-experience,
  .valley-itinerary,
  .valley-seasons,
  .valley-gallery-planner,
  .valley-closing,
  .gesso-hero,
  .gesso-intro,
  .gesso-focus-grid,
  .gesso-photo-ribbon,
  .gesso-explore,
  .gesso-rules,
  .gesso-itinerary,
  .gesso-gallery-planner,
  .gesso-closing,
  .family-hero,
  .family-intro,
  .family-card-grid,
  .family-photo-strip,
  .family-planner,
  .family-day,
  .family-tips,
  .family-gallery-planner,
  .family-closing,
  .contact-faq,
  .event-submit-page,
  .page-hero,
  .section,
  .directory,
  .detail,
  .contact-grid,
  .map-layout,
  .content-page,
  .footer-newsletter,
  .footer-grid{width:min(100% - 24px,var(--page))}
}

@media(max-width:820px){
  body{overflow-x:hidden}
  .site-header{
    min-height:auto;
    padding:10px 12px 8px;
    gap:8px 12px;
    box-shadow:0 8px 22px rgba(16,35,18,.08);
  }
  .brand-full{
    width:min(58vw,220px);
    max-height:70px;
  }
  .site-nav{
    width:100%;
    justify-content:flex-start;
    flex-wrap:wrap;
    gap:8px;
    overflow:visible;
    padding:4px 0 2px;
  }
  .site-nav::-webkit-scrollbar{display:none}
  .nav-link{
    min-height:40px;
    display:inline-flex;
    align-items:center;
    padding:8px 10px;
    border:1px solid rgba(70,107,32,.18);
    border-radius:999px;
    background:#fffdf6;
    font-size:14px;
  }
  .nav-link.is-active{
    background:#eef5e9;
    border-color:var(--green);
  }
  .nav-flyout{
    left:0;
    top:calc(100% + 5px);
    min-width:220px;
    transform:translateY(-2px);
  }
  .has-children:hover .nav-flyout,
  .has-children:focus-within .nav-flyout{
    transform:translateY(0);
  }
  .nav-flyout:before{
    left:28px;
    transform:rotate(45deg);
  }
  .nav-sub-link{
    font-size:13px;
  }
  .map-btn{
    min-height:40px;
    padding:8px 12px;
  }
  .home-hero,
  .feature-cards,
  .activity-section,
  .home-map-section,
  .booklet-section,
  .value-strip,
  .page-hero,
  .section,
  .directory,
  .detail,
  .contact-grid,
  .map-layout,
  .content-page,
  .footer-newsletter,
  .footer-grid{
    width:min(100% - 24px,var(--page));
  }
  .hero-art{
    min-height:auto;
    border-radius:var(--radius);
    background-position:24% center;
  }
  .hero-copy{
    min-height:560px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:260px 18px 26px;
  }
  .hero-actions .btn{
    width:100%;
  }
  .valley-hero-actions .btn{
    width:100%;
  }
  .feature-cards{
    grid-template-columns:1fr;
    gap:16px;
  }
  .feature-card{
    min-height:auto;
    grid-template-rows:180px auto auto auto;
    border-radius:var(--radius);
  }
  .feature-image{
    height:178px;
    border-radius:var(--radius);
  }
  .activity-carousel{
    scroll-padding-inline:12px;
  }
  .list-card{
    overflow:hidden;
  }
  .list-card img{
    min-height:210px;
  }
  .map-board,
  .trail-map-shell,
  .map.full{
    border-radius:var(--radius);
  }
  .map-home,
  .map.full,
  .trail-map-shell .map{
    min-height:360px;
  }
  .content-page,
  .detail-description-card,
  .detail-grid aside,
  .contact-grid form,
  .faq,
  .contact-info,
  .contact-faq{
    padding:20px;
  }
  .faq-list{
    grid-template-columns:1fr;
  }
  .event-submit-page,
  .submit-grid{
    grid-template-columns:1fr;
  }
  .event-submit-form,
  .event-submit-aside{
    padding:20px;
  }
  .faq-list summary{
    min-height:54px;
    padding:15px;
  }
}

@media(max-width:430px){
  .hero-copy{
    min-height:520px;
    padding-top:230px;
  }
  .hero-copy h1{font-size:42px}
  .hero-copy h2{font-size:20px}
  .hero-copy p{font-size:15px}
  .valley-hero h1{font-size:36px}
  .gesso-hero h1{font-size:36px}
  .family-hero h1{font-size:36px}
  .valley-intro h2,
  .valley-section-head h2,
  .valley-itinerary h2,
  .valley-closing h2,
  .gesso-intro h2,
  .gesso-rules h2,
  .gesso-itinerary h2,
  .gesso-closing h2,
  .family-intro h2,
  .family-day h2,
  .family-closing h2{font-size:29px}
  .valley-photo-slot span{font-size:20px}
  .page-hero h1,
  .detail h1{
    font-size:31px;
  }
  .btn,
  .map-btn,
  .footer-newsletter button{
    width:100%;
  }
  .map-home,
  .map.full,
  .trail-map-shell .map{
    min-height:320px;
  }
}

@media(max-width:900px){
  .events-head{
    display:grid;
    align-items:start;
  }
  .events-actions{
    justify-content:flex-start;
  }
  .event-list-card,
  .event-detail-hero,
  .event-detail-grid{
    grid-template-columns:1fr;
  }
  .event-public-cta{
    align-items:flex-start;
    flex-direction:column;
  }
  .event-detail-hero img{
    height:280px;
  }
}

@media(max-width:820px){
  .events-section,
  .events-list-page,
  .event-detail-page{
    width:min(100% - 24px,var(--page));
  }
  .event-carousel{
    scroll-padding-inline:12px;
  }
}

@media(max-width:520px){
  .events-section{
    padding:18px;
  }
  .event-card-public{
    flex-basis:min(84vw,330px);
  }
  .event-detail-hero,
  .event-detail-grid section,
  .event-detail-grid aside{
    padding:18px;
  }
  .event-detail-hero img,
  .event-list-card img{
    height:230px;
  }
}
