/* Ofenberg · local design, revision 2. All text and actions stay in document flow. */
:root {
  --paper:#f8f5ef; --white:#fffdf9; --ink:#253c31; --muted:#687267;
  --accent:#b65a38; --accent-hover:#944125; --dark:#213a2e; --tint:#eeeade;
  --line:#dddcd0; --gold:#d9bb82; --serif:'Palatino Linotype','Book Antiqua',Georgia,serif;
  --sans:'Segoe UI',Arial,sans-serif; --shadow:0 18px 55px #243c300c;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { margin:0; color:var(--ink); background:var(--paper); font:16px/1.75 var(--sans); -webkit-font-smoothing:antialiased; }
body.camping { --accent:#4b6b46; --accent-hover:#344f31; --tint:#e9eddf; }
a { color:inherit; text-decoration:none; }
button,input,textarea,select { font:inherit; }
button { color:inherit; cursor:pointer; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid #d29151; outline-offset:5px; }
/* Text fields show focus through their own border instead of the offset ring. */
:is(input:not([type=checkbox]):not([type=radio]),select,textarea):focus-visible { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px #b65a381f; }
img { display:block; max-width:100%; }
svg { display:block; flex-shrink:0; }
h1,h2,h3,h4,p,figure { margin:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; letter-spacing:-.045em; line-height:1.1; }
h1 { font-size:clamp(50px,5.5vw,88px); }
h2 { font-size:clamp(38px,4vw,64px); }
h3 { font-size:31px; }
em { font-family:var(--serif); font-weight:400; }
p+p { margin-top:20px; }
::selection { background:#ddc79e; color:#20382a; }
[hidden] { display:none!important; }
.wrap { width:100%; max-width:1440px; margin-inline:auto; padding-inline:60px; }
.icon { width:26px; height:26px; }
.botanical { width:140px; height:170px; }
.eyebrow { display:block; margin-bottom:22px; font-size:11px; font-weight:600; line-height:1.6; letter-spacing:.16em; text-transform:uppercase; }
.eyebrow.line { display:flex; align-items:center; gap:13px; }
.eyebrow.line:before { content:''; width:30px; height:1px; background:currentColor; flex-shrink:0; }
.skip-link { position:fixed; top:-100px; left:16px; padding:12px 20px; background:white; border-radius:10px; z-index:100; }
.skip-link:focus { top:12px; }

/* The navigation belongs to the page; dropdowns float only when opened. */
.topbar { background:var(--dark); color:#e3e7da; font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.topbar>.wrap { min-height:34px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.topbar-right { display:flex; align-items:center; gap:24px; }
.topbar a { opacity:.7; }
.topbar a.selected { opacity:1; text-decoration:underline; text-underline-offset:6px; }
.topbar a:hover { opacity:1; }
.site-header { position:sticky; top:0; z-index:30; background:#fbf9f4f7; backdrop-filter:blur(18px); border-bottom:1px solid #dcded0; box-shadow:0 4px 20px #213a2e05; }
.header-inner { min-height:96px; display:flex; align-items:center; gap:28px; }
.brand { display:flex; align-items:center; gap:14px; margin-right:auto; flex-shrink:0; }
.brand img { width:64px; height:64px; object-fit:contain; }
.brand-copy strong { font:600 24px/1.2 var(--serif); letter-spacing:-.045em; display:block; }
.brand-copy small { display:block; font-size:9px; letter-spacing:.13em; text-transform:uppercase; margin-top:5px; }
.navigation { display:flex; align-items:center; gap:12px; }
.navigation>a,.nav-group>summary { font-size:13px; font-weight:500; white-space:nowrap; }
.navigation>a:not(.button) { padding:12px 14px; border-radius:11px; transition:background .2s,color .2s; }
.navigation>a:not(.button):hover,.navigation>a.current { background:#e8eddf; }
.navigation>a.current,.navigation>a:not(.button):hover,.nav-group.current>summary { color:var(--accent); }
.navigation>a.nav-phone { display:none; }
/* Every phone number gets a handset icon in the current text colour. */
a[href^="tel:"]::before { content:''; display:inline-block; flex:0 0 auto; width:1.05em; height:1.05em; margin-right:.45em; vertical-align:-.16em; background:currentColor; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3h3.5l2 5-2.5 1.5a11 11 0 0 0 6.5 6.5l1.5-2.5 5 2V19a2 2 0 0 1-2 2A16 16 0 0 1 3 5a2 2 0 0 1 2-2z'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3h3.5l2 5-2.5 1.5a11 11 0 0 0 6.5 6.5l1.5-2.5 5 2V19a2 2 0 0 1-2 2A16 16 0 0 1 3 5a2 2 0 0 1 2-2z'/%3E%3C/svg%3E") center/contain no-repeat; }
.nav-group { position:relative; }
.nav-group>summary { display:flex; align-items:center; gap:8px; padding:12px 14px; border-radius:11px; cursor:pointer; list-style:none; transition:background .2s,color .2s; }
.nav-group>summary:hover,.nav-group[open]>summary,.nav-group.current>summary { background:#e8eddf; color:var(--ink); }
.nav-group>summary::-webkit-details-marker { display:none; }
.nav-group>summary::marker { content:''; }
.nav-chevron { width:15px; height:15px; stroke-width:1.8; color:var(--muted); transition:transform .2s,color .2s; }
.nav-group[open] .nav-chevron { transform:rotate(180deg); color:var(--accent); }
.dropdown { position:absolute; left:-10px; top:calc(100% + 12px); width:365px; padding:12px; background:var(--white); border:1px solid #d8dfce; border-radius:21px; box-shadow:0 22px 60px #1c302424; }
.dropdown-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:9px 12px 15px; margin-bottom:5px; border-bottom:1px solid #e5e8dc; }
.dropdown-heading>span { font-size:11px; font-weight:650; letter-spacing:.07em; text-transform:uppercase; }
.dropdown-heading>small { font:italic 14px var(--serif); color:var(--muted); }
.dropdown-links { display:grid; gap:4px; }
.dropdown .submenu-link { display:grid; grid-template-columns:40px minmax(0,1fr) 18px; gap:13px; align-items:center; padding:12px; border-radius:13px; transition:background .2s; }
.dropdown .submenu-link:hover,.dropdown .submenu-link.is-current { background:#eef1e5; }
.submenu-icon { display:grid; place-items:center; width:40px; height:40px; border:1px solid #e0e5d5; border-radius:12px; color:var(--accent); background:#f6f6ed; }
.submenu-icon>.icon { width:22px; height:22px; }
.submenu-copy { display:grid; gap:3px; min-width:0; }
.submenu-title { font-size:14px; font-weight:600; line-height:1.5; }
.submenu-description { font-size:11px; color:var(--muted); line-height:1.6; }
.submenu-arrow>.icon { width:16px; height:16px; stroke-width:1.7; color:#829275; transition:transform .2s; }
.submenu-link:hover .submenu-arrow>.icon { transform:translate(2px,-2px); }
.menu-toggle { display:none; width:46px; height:46px; flex-direction:column; align-items:center; justify-content:center; gap:5px; border:1px solid #d6ddcc; border-radius:50%; background:var(--white); padding:0; }
.menu-toggle span { display:block; flex:0 0 2px; width:20px; height:2px; border-radius:2px; background:var(--ink); margin:0; transition:transform .2s,opacity .2s; }
.menu-toggle[aria-expanded=true] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded=true] span:nth-child(2) { opacity:0; transform:scaleX(.5); }
.menu-toggle[aria-expanded=true] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* Text and arrow have their own flexible cells, including long button labels. */
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; max-width:100%; min-height:58px; padding:9px 10px 9px 24px; border:1px solid var(--accent); border-radius:999px; background:var(--accent); color:#fff; font-size:13px; font-weight:600; line-height:1.4; vertical-align:middle; box-shadow:0 5px 15px #253a2610; transition:background .2s,box-shadow .2s,transform .2s; }
.button-label { min-width:0; }
.button .arrow,.text-link .arrow,.photo-card .arrow,.round-arrow { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%; flex:0 0 38px; font:20px/1 var(--sans); }
.arrow>.icon,.round-arrow>.icon { width:18px; height:18px; stroke-width:1.8; }
.button .arrow { background:#ffffff26; }
.button:hover { background:var(--accent-hover); border-color:var(--accent-hover); box-shadow:0 9px 22px #233a2820; transform:translateY(-2px); }
.button.small { min-height:49px; padding:7px 8px 7px 20px; font-size:12px; gap:20px; }
.button.small .arrow { height:33px; width:33px; flex-basis:33px; }
.button.light { background:var(--white); color:var(--ink); border-color:var(--white); }
.button.light .arrow { background:#e7e9dc; }
.button.light:hover { background:#e8e8d9; border-color:#e8e8d9; }
.button.outline { background:transparent; color:var(--ink); border-color:#9aa590; box-shadow:none; }
.button.outline .arrow { background:#dde2d3; }
.button.outline:hover { background:var(--tint); border-color:var(--ink); }
.button.white-outline { color:#fff; background:#ffffff0d; border-color:#ffffff70; backdrop-filter:blur(8px); box-shadow:none; }
.button.white-outline:hover { background:#ffffff24; border-color:#fff; }
.text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:26px; max-width:100%; margin-top:28px; font-size:13px; font-weight:600; line-height:1.5; padding-bottom:8px; border-bottom:1px solid #b6bdab; }
.text-link .arrow { width:33px; height:33px; flex-basis:33px; background:#e6e9dd; }
.text-link:hover { color:var(--accent); border-color:var(--accent); }
.text-link:hover .arrow { background:var(--accent); color:#fff; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:34px; }

/* Hero footer is a separate grid row. No absolute placement or inherited padding. */
.hero { position:relative; isolation:isolate; display:grid; grid-template-rows:1fr auto; margin:0; border-radius:0; overflow:hidden; color:#fff; background:var(--dark); }
.hero>img { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero:after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#152d21da 0%,#172b2080 48%,#12291c1a 100%),linear-gradient(0deg,#162c2680,transparent 55%); }
.hero-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; align-items:end; gap:65px; padding-block:92px 64px; min-height:650px; }
.hero-content { min-width:0; }
.hero .eyebrow { color:#f0e8d4; font-size:10px; }
.hero h1 { font-size:clamp(64px,6.6vw,110px); line-height:1.02; max-width:900px; letter-spacing:-.052em; text-shadow:0 2px 30px #102d2122; }
.hero h1 em { color:#e9d2a6; }
.hero p { color:#f2f0e8; max-width:440px; font-size:15px; line-height:1.9; margin-top:27px; }
.hero-side { display:grid; gap:36px; align-content:end; }
.nature-seal { display:flex; flex-direction:column; gap:12px; align-items:center; justify-content:center; width:140px; height:140px; margin-left:auto; margin-right:25px; border:1px solid #ffffff60; border-radius:50%; padding:20px; font:italic 16px/1.3 var(--serif); text-align:center; color:#eee5ce; transform:rotate(8deg); }
.nature-seal .icon { height:32px; width:32px; }
.hero-camping .hero-side { align-self:center; align-content:center; }
.hero-camping .nature-seal { width:220px; height:220px; padding:30px; border:2px solid #eee5ce; outline:1px solid #eee5ce66; outline-offset:-9px; background:#203b2df5; color:#fff7e6; font-size:19px; line-height:1.35; transform:none; box-shadow:0 12px 36px #102c2145; }
.hero-camping .nature-seal .icon { width:34px; height:34px; flex-shrink:0; stroke-width:1.6; }
.hero-teaser { display:grid; grid-template-columns:84px minmax(0,1fr); gap:18px; align-items:center; border:1px solid #ffffff50; background:#f8f5eff2; color:var(--ink); border-radius:20px; padding:17px; box-shadow:0 20px 45px #0e291d25; position:relative; transition:transform .25s; }
.hero-teaser:hover { transform:translateY(-5px); }
.hero-teaser>img { width:84px; height:125px; border-radius:12px; object-fit:cover; }
.teaser-copy { display:flex; flex-direction:column; gap:10px; min-width:0; }
.teaser-copy small { font-size:8px; letter-spacing:.12em; color:var(--accent); font-weight:700; }
.teaser-copy strong { font:28px/1.08 var(--serif); letter-spacing:-.03em; }
.teaser-copy>span { font-size:10px; padding-right:28px; line-height:1.6; }
.hero-teaser .round-arrow { position:absolute; right:13px; bottom:13px; width:28px; height:28px; flex-basis:28px; font-size:16px; background:var(--ink); color:#fff; }
.hero-bottom { border-top:1px solid #ffffff30; }
.hero-footer { display:flex; align-items:center; justify-content:space-between; gap:25px; padding-block:22px; }
.hero-note { display:flex; align-items:center; gap:10px; font-size:10px; line-height:1.6; letter-spacing:.1em; text-transform:uppercase; }
.hero-note:before { content:''; height:6px; width:6px; border-radius:50%; background:var(--gold); flex-shrink:0; }
.photo-note { font-size:9px; letter-spacing:.12em; text-transform:uppercase; opacity:.8; }
.quick-strip { padding-block:24px 0; }
.quick-strip>.wrap { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.quick-strip a { display:flex; align-items:center; gap:16px; min-width:0; padding:23px 20px; border:1px solid var(--line); border-radius:17px; background:var(--white); box-shadow:0 5px 18px #233c2803; transition:background .25s,transform .25s; }
.quick-strip a:hover { background:#edeedc; transform:translateY(-3px); }
.shortcut-icon { width:45px; height:45px; flex:0 0 45px; display:grid; place-items:center; border-radius:50%; background:#f0e5d7; color:var(--accent); }
.camping .shortcut-icon { background:#e7eddd; }
.shortcut-text { min-width:0; flex:1; }
.shortcut-text strong { display:block; font-size:14px; font-weight:600; line-height:1.4; }
.shortcut-text small { display:block; margin-top:5px; font-size:11px; color:var(--muted); line-height:1.6; }
.quick-strip .round-arrow { width:27px; height:27px; flex-basis:27px; font-size:20px; }

/* Editorial picture compositions, with badges taking their own layout space. */
.section { padding-block:100px; }
.section.tint,.discover-section { background:var(--tint); }
.section-head { display:flex; align-items:end; justify-content:space-between; gap:50px; margin-bottom:45px; }
.section-head>div { min-width:0; }
.section-head h2 { max-width:850px; }
.section-head>p { font-size:14px; color:var(--muted); max-width:300px; flex:0 0 25%; padding-bottom:6px; }
.section-head>.text-link { flex-shrink:0; }
.section-head>.discover-sketch { flex:0 0 auto; width:min(340px,34%); height:auto; color:#6f8466; margin-bottom:-4px; }
.discover-sketch .warm { stroke:#c39a4f; }
.intro-section { padding-block:112px; }
.intro-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:100px; }
.intro-copy h2 { font-size:clamp(44px,4.6vw,72px); }
.intro-copy>p { margin-top:23px; font-size:15px; color:var(--muted); max-width:530px; }
.intro-copy>p.intro-lead { font:23px/1.55 var(--serif); letter-spacing:-.015em; color:var(--ink); margin-top:28px; }
.value-tags { display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px; border-top:1px solid var(--line); margin-top:35px; padding-top:24px; }
.value-tags>span { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:500; color:var(--muted); line-height:1.6; }
.value-tags .icon { width:21px; height:21px; color:var(--accent); }
.intro-photo { display:flex; flex-direction:column; align-items:stretch; min-width:0; padding:0 0 0 20px; }
.intro-photo>img { width:100%; height:520px; object-fit:cover; border-radius:100px 24px 24px 24px; }
.number-badge { z-index:1; position:relative; width:245px; max-width:calc(100% - 28px); margin-top:-100px; margin-left:auto; margin-right:22px; padding:24px 27px; border:1px solid #e1e1d6; border-radius:18px; box-shadow:0 15px 45px #22382712; background:var(--white); }
.number-badge>.eyebrow { font-size:9px; letter-spacing:.08em; margin-bottom:10px; }
.number-badge>strong { font:64px/1.12 var(--serif); letter-spacing:-.06em; display:block; margin-bottom:12px; }
.number-badge>strong>span { display:inline; font:17px var(--serif); letter-spacing:0; margin-left:10px; }
.number-badge>span:not(.eyebrow) { display:block; font-size:11px; line-height:1.7; color:var(--muted); }
.number-badge>.icon { color:var(--accent); width:28px; height:28px; margin-bottom:12px; }
.camping .number-badge>strong { font-size:30px; letter-spacing:-.04em; }
.photo-label { font-size:10px; letter-spacing:.06em; margin:18px 0 0 4px; color:var(--muted); }
.photo-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:27px; align-items:start; }
.photo-card { display:block; padding:12px; min-width:0; border:1px solid #dadace; background:var(--white); border-radius:23px; box-shadow:0 10px 40px #263d2d05; transition:transform .3s,box-shadow .3s; }
.photo-card:hover { transform:translateY(-7px); box-shadow:0 20px 55px #263d2d14; }
.photo-card .card-image { overflow:hidden; border-radius:14px; position:relative; }
.photo-card img { width:100%; height:310px; object-fit:cover; transition:transform .6s; }
.photo-card:hover img { transform:scale(1.045); }
.card-num { position:absolute; left:15px; top:15px; height:35px; width:35px; display:grid; place-items:center; background:#faf8f2ed; color:var(--ink); border:1px solid #ffffff70; border-radius:50%; font-size:10px; }
.card-content { padding:18px 12px 16px; }
.card-label { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.card-label h3 { font-size:30px; min-width:0; }
.photo-card .arrow { width:39px; height:39px; flex-basis:39px; background:#e9ecdf; color:var(--ink); }
.photo-card p { font-size:13px; color:var(--muted); line-height:1.8; margin-top:13px; }
.discover-section .photo-card:nth-child(2) { margin-top:37px; }
.discover-section .photo-card:nth-child(2) img { height:370px; }
.discover-section .photo-card:nth-child(3) { margin-top:74px; background:var(--dark); color:#f4f0e6; border-color:var(--dark); }
.discover-section .photo-card:nth-child(3) p { color:#d2dacb; }
.discover-section .photo-card:nth-child(3) .arrow { background:#ffffff22; color:#fff; }

/* The distillery is the feature, rather than another generic card. */
.event-section { padding-block:95px 0; }
.event-band { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); border-radius:28px; overflow:hidden; background:var(--dark); color:#f7f2e7; }
.event-media { position:relative; min-height:620px; }
.event-media>img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.image-tag { position:absolute; bottom:23px; left:24px; right:24px; width:fit-content; font-size:10px; letter-spacing:.06em; border-radius:50px; padding:10px 17px; background:#f8f5efed; color:var(--ink); }
.event-copy { padding:64px 55px; display:flex; align-items:flex-start; flex-direction:column; justify-content:center; min-width:0; }
.pill-label { display:inline-flex; align-items:center; gap:9px; border:1px solid #c3cead55; border-radius:50px; color:#e7d1a8; font-size:9px; letter-spacing:.1em; text-transform:uppercase; padding:8px 13px; margin-bottom:28px; }
.pill-label .icon { width:18px; height:18px; }
.event-copy h2 { font-size:clamp(38px,4.1vw,64px); }
.event-copy h2 em { color:#e5d0a3; }
.event-copy p { font-size:14px; color:#dce1d1; margin-top:23px; max-width:470px; }
.event-meta { display:flex; flex-wrap:wrap; gap:20px 30px; padding-block:24px; margin-block:27px 9px; border-top:1px solid #ffffff28; width:100%; }
.event-meta>span { font-size:11px; line-height:1.7; color:#c4cfb9; }
.event-meta strong { display:block; margin-bottom:5px; font-size:12px; font-weight:550; color:#fff; }
.quote-section { padding-block:85px 25px; }
.pullquote { text-align:center; }
.pullquote>.icon { width:32px; height:32px; margin:0 auto 23px; color:var(--accent); }
.pullquote>.eyebrow { color:var(--muted); font-size:9px; }
.pullquote blockquote { margin:0 auto; font:400 clamp(32px,3.7vw,55px)/1.27 var(--serif); letter-spacing:-.04em; max-width:880px; }
.pullquote blockquote em { color:var(--accent); }
.pullquote cite { display:block; margin-top:25px; font-size:10px; font-style:normal; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.wide-gallery { display:grid; grid-template-columns:1.25fr .9fr .9fr; gap:24px; align-items:start; }
.wide-gallery>figure { min-width:0; }
.wide-gallery>figure:nth-child(2) { padding-top:65px; }
.wide-gallery>figure:nth-child(3) { padding-top:30px; }
.wide-gallery img { width:100%; height:360px; object-fit:cover; border-radius:22px; }
.wide-gallery>figure:first-child img { height:430px; border-top-left-radius:80px; }
.wide-gallery figcaption { display:flex; align-items:baseline; gap:12px; margin-top:18px; font-size:12px; color:var(--muted); }
.wide-gallery figcaption>span { font:italic 16px var(--serif); color:var(--accent); }
.camp-feature-section { padding-block:100px 0; }
.camp-feature { display:grid; grid-template-columns:1fr 1fr; gap:85px; align-items:center; }
.camp-feature-image { position:relative; padding:0 28px 40px 0; }
.camp-feature-image>img { width:100%; height:480px; object-fit:cover; border-radius:28px 100px 28px 28px; }
.camp-feature-image .botanical { position:absolute; color:#9aa886; right:-10px; bottom:0; width:135px; height:160px; background:var(--paper); padding:18px; border-radius:50%; }
.camp-feature-copy>p { color:var(--muted); font-size:15px; margin-top:25px; }
.camp-feature-copy>.button { margin-top:29px; }
.quiet-note { display:flex; gap:14px; margin-top:30px; border-top:1px solid var(--line); padding-top:23px; }
.quiet-note>.icon { width:22px; height:22px; color:var(--accent); }
.quiet-note p { font-size:12px; color:var(--muted); }

/* Contact invitation and footer. Contact text may wrap, never collide. */
.visit-section { padding-block:30px 100px; }
.visit { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); align-items:center; gap:70px; background:var(--dark); border-radius:27px; padding:65px; color:#f4f1e8; }
.visit .eyebrow { color:#d7c59b; }
.visit h2 { font-size:clamp(38px,3.5vw,56px); }
.visit h2 em { color:#dcc897; }
.visit p { margin-top:24px; font-size:14px; color:#d7decb; max-width:480px; }
.visit .button { margin-top:28px; }
.visit-info { border-top:1px solid var(--line); min-width:0; }
.visit-row { display:grid; grid-template-columns:142px minmax(0,1fr); gap:20px; padding:20px 0; border-bottom:1px solid var(--line); font-size:15px; align-items:start; }
.visit-row>span { font-size:14px; font-weight:500; letter-spacing:.01em; color:var(--muted); line-height:1.7; padding-top:2px; }
.visit-row>span .icon { width:20px; height:20px; margin-bottom:8px; }
.visit-row strong { font-weight:500; line-height:1.8; }
.visit-row a { overflow-wrap:anywhere; }
.visit-row a:hover { color:var(--accent); }
.visit .visit-info,.visit .visit-row { border-color:#ffffff28; }
.visit .visit-row>span { color:#c2cfb4; }
.visit-row a>span { display:inline; font-size:16px; margin-left:6px; }
.visit .visit-row a:hover { color:#e8c58d; }
.footer { background:var(--dark); color:#edf0e5; padding-top:75px; border-radius:32px 32px 0 0; }
.footer-grid { display:grid; grid-template-columns:1.5fr .8fr 1fr; gap:80px; padding-bottom:65px; }
.footer h2 { font-size:39px; line-height:1.15; }
.footer p { font-size:12px; line-height:1.9; max-width:350px; color:#bbc9b1; margin-top:24px; }
.footer .eyebrow { color:#c1caa8; font-size:9px; }
.footer-links { display:grid; gap:12px; font-size:12px; }
.footer-links a:hover { color:#e7c790; }
.footer-base { display:flex; justify-content:space-between; gap:25px; border-top:1px solid #ffffff25; padding-block:23px; font-size:10px; color:#c3ceb8; }
.footer-legal { display:flex; flex-wrap:wrap; gap:24px; }
.preview-label { background:#182d23; padding:9px 22px; text-align:center; color:#a2b595; font-size:9px; }

/* Secondary pages keep the same visual quality as the front pages. */
.page-top { padding-block:45px 65px; }
.breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:13px; font-size:11px; color:var(--muted); margin-bottom:42px; }
.breadcrumb a:hover { color:var(--accent); }
.breadcrumb>span:last-child { background:#e9ebdf; padding:4px 11px; border-radius:50px; }
.page-top-grid { display:grid; grid-template-columns:minmax(0,1fr) 170px; gap:60px; align-items:center; }
.page-heading { min-width:0; }
.page-top h1 { font-size:clamp(49px,5.7vw,90px); max-width:1100px; hyphens:auto; overflow-wrap:anywhere; }
.page-lead { font-size:17px; line-height:1.85; color:var(--muted); max-width:720px; margin-top:29px; }
.page-emblem { display:flex; flex-direction:column; align-items:center; color:#93a183; text-align:center; padding-top:15px; }
.page-emblem .botanical { width:120px; height:150px; }
.page-emblem>span { font:italic 16px/1.4 var(--serif); margin-top:12px; }
.page-cover { width:calc(100% - 40px); max-width:1680px; margin-inline:auto; height:500px; object-fit:cover; border-radius:26px; }
.article-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:85px; align-items:start; }
.prose { color:#5a6859; font-size:16px; line-height:1.9; min-width:0; }
.prose h2,.prose h3 { margin-block:45px 24px; color:var(--ink); }
.prose h2 { font-size:42px; }
.prose h3 { font-size:32px; }
.prose h2:first-child,.prose h3:first-child { margin-top:0; }
.prose ul { padding-left:22px; margin-block:25px; }
.prose li { margin-bottom:13px; }
.prose a:not(.button):not(.text-link) { color:var(--accent); text-decoration:underline; text-underline-offset:4px; }
.aside-box { background:var(--white); padding:32px; border:1px solid var(--line); border-radius:24px; box-shadow:var(--shadow); min-width:0; }
.aside-box>img { width:100%; height:280px; object-fit:cover; border-radius:15px; margin-bottom:28px; }
.aside-box h3 { font-size:32px; margin-bottom:22px; }
.aside-box>p { font-size:14px; color:var(--muted); margin-bottom:25px; }
.aside-box>.button { width:100%; }
.aside-list { border-top:1px solid var(--line); padding-top:13px; margin-top:26px; }
.aside-list a { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-block:10px; font-size:13px; }
.aside-list a[href^="tel:"] { justify-content:flex-start; gap:0; }
.aside-list a[href^="tel:"]>span { margin-left:auto; }
.aside-list a:hover { color:var(--accent); }
.subnav { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:42px; padding:8px; background:#eeeee3; border:1px solid var(--line); border-radius:19px; width:fit-content; }
.subnav a { font-size:12px; padding:11px 20px; border-radius:12px; }
.subnav a.active { background:var(--ink); color:#fff; }
.subnav a:hover:not(.active) { background:var(--white); }
.stat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-block:32px; }
.stat { text-align:center; border:1px solid var(--line); border-radius:18px; background:var(--white); padding:25px 12px; font-size:11px; line-height:1.7; }
.stat strong { display:block; font:49px/1.2 var(--serif); color:var(--accent); margin-bottom:12px; }
.feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.excursion-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.feature-item { border:1px solid var(--line); border-radius:23px; padding:30px; background:var(--white); }
.feature-icon { display:grid; place-items:center; width:55px; height:55px; border-radius:50%; background:#e8eddf; color:var(--accent); margin-bottom:22px; }
.feature-item h3 { font-size:28px; margin-bottom:16px; }
.feature-item p { font-size:13px; color:var(--muted); }
.feature-number { display:block; font:italic 23px var(--serif); color:var(--accent); margin-bottom:17px; }
.notice { border:1px solid #d9ddca; background:#eceedf; border-radius:15px; padding:22px 25px; font-size:13px; color:#58664e; margin-top:26px; line-height:1.85; overflow-wrap:anywhere; }
.notice>strong { display:block; font-weight:600; color:var(--ink); margin-bottom:6px; }
.notice .text-link { margin-top:16px; }
.timeline { padding-left:30px; border-left:1px solid #b6c4a4; margin-top:45px; }
.timeline-entry { position:relative; padding-bottom:32px; }
.timeline-entry:before { content:''; position:absolute; left:-36px; top:12px; height:11px; width:11px; background:var(--accent); border-radius:50%; outline:5px solid var(--paper); }
.timeline-entry strong { display:block; font:31px/1.3 var(--serif); margin-bottom:13px; color:var(--ink); }
.event-detail { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:75px; align-items:start; }
.event-detail>img { width:100%; height:670px; object-fit:cover; border-radius:100px 24px 24px 24px; }
.event-detail h2 { font-size:47px; margin-bottom:26px; }
.event-detail p { font-size:15px; color:var(--muted); }
.event-facts { padding:7px 25px; margin-block:30px; border:1px solid var(--line); border-radius:20px; background:var(--white); }
.event-facts>div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:20px; border-bottom:1px solid var(--line); padding-block:17px; font-size:12px; }
.event-facts>div:last-child { border:0; }
.event-facts span { color:var(--muted); }
.event-facts strong { font-weight:500; text-align:right; }
.event-list-card { display:grid; grid-template-columns:1fr 1.1fr; gap:65px; align-items:center; background:var(--white); padding:20px; border:1px solid var(--line); border-radius:28px; box-shadow:var(--shadow); }
.event-list-card>img { width:100%; height:500px; object-fit:cover; border-radius:17px; }
.event-list-card>div { padding:25px 30px 25px 0; min-width:0; }
.event-list-card h2 { margin-bottom:25px; }
.event-list-card p { font-size:15px; color:var(--muted); }
.event-list-card .event-meta { border-color:var(--line); }
.event-list-card .event-meta strong { color:var(--ink); }
.event-list-card .event-meta>span { color:var(--muted); }

/* Pricing and forms: generous input heights and separate results, no overlapping text. */
.fee-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:45px; align-items:start; }
.price-group { background:var(--white); border:1px solid var(--line); border-radius:23px; padding:28px; margin-bottom:23px; }
.price-group h2 { font-size:32px; margin-bottom:22px; }
.price-table { width:100%; border-collapse:collapse; font-size:13px; table-layout:fixed; }
.price-table th,.price-table td { padding:17px 0; border-bottom:1px solid var(--line); text-align:left; }
.price-table th { font-size:9px; letter-spacing:.1em; text-transform:uppercase; font-weight:600; color:var(--muted); }
.price-table th:first-child { width:44%; }
.price-table th:last-child { width:92px; }
.price-table :is(th,td):nth-child(2) { padding-inline:12px; }
.price-table td:nth-child(2) { color:var(--muted); font-size:11px; }
.price-table :is(th,td):last-child { text-align:right; white-space:nowrap; font-weight:600; }
.price-table tr:last-child td { border-bottom:0; }
.calculator { border-radius:25px; background:var(--dark); color:#fff; padding:30px 32px; position:sticky; top:110px; }
.calculator h2 { font-size:32px; margin-bottom:10px; }
.calculator>p { color:#ced9c2; font-size:13px; margin-bottom:16px; }
.calculator .eyebrow { font-size:9px; color:#d3c394; margin-bottom:12px; }
.calculator>.button { width:100%; margin-top:16px; }
label { display:block; font-size:12px; font-weight:550; line-height:1.6; margin-bottom:22px; }
input,textarea,select { width:100%; min-width:0; display:block; border:1px solid #c6cebb; border-radius:11px; padding:13px 15px; margin-top:8px; color:inherit; background:var(--white); font-size:15px; font-weight:400; line-height:1.6; }
textarea { min-height:160px; resize:vertical; }
select option { background:var(--paper); color:var(--ink); }
.form-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:19px; }
.check-label { display:flex; align-items:start; gap:11px; font-size:12px; font-weight:400; }
.check-label input { width:17px; height:17px; padding:0; margin:2px 0 0; flex:0 0 17px; accent-color:var(--accent); }
.calculator label { margin-bottom:12px; }
.calculator .check-label { margin-bottom:0; }
.calculator input,.calculator select { border-color:#ffffff45; background:#ffffff0d; padding:10px 14px; margin-top:6px; }
.calculator .check-label input { accent-color:#d3bd8f; }
.calculator :is(input:not([type=checkbox]),select):focus-visible { border-color:#d3c394; box-shadow:0 0 0 3px #d3c39424; }
.fee-result { border-top:1px solid #ffffff30; padding-top:16px; margin-top:16px; }
.fee-result>strong { display:block; font:46px/1.15 var(--serif); letter-spacing:-.05em; }
.fee-result small { display:block; color:#c9d5bd; font-size:11px; margin-top:6px; }
.fee-result .breakdown { margin-top:8px; font-size:10px; }
.calculator>.fineprint { font-size:10px; color:#c9d5bd; margin:12px 0 0; }
/* Only keep the calculator pinned while the whole card fits on screen. */
@media(max-height:859px) { .calculator { position:static; } }
.contact-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr); gap:85px; align-items:start; }
.contact-info h2 { font-size:43px; }
.contact-info>p { font-size:15px; color:var(--muted); margin-top:26px; }
.contact-info>.visit-info { margin-top:32px; }
.contact-form { padding:38px; border:1px solid var(--line); border-radius:25px; box-shadow:var(--shadow); background:var(--white); min-width:0; }
.contact-form h2 { font-size:36px; margin-bottom:18px; }
.contact-form>p { font-size:13px; color:var(--muted); margin-bottom:30px; }
.contact-form input,.contact-form textarea,.contact-form select { background:#f7f7ef; }
.contact-form .form-preview-note { padding:12px 16px; border:1px solid var(--line); border-radius:10px; background:var(--paper); font-size:12px; }
.contact-form .form-fineprint { font-size:12px; color:var(--muted); margin:0 0 20px; }
.form-fineprint a { text-decoration:underline; }
.form-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.contact-preview { border-top:1px solid var(--line); margin-top:30px; padding-top:30px; }
.contact-preview h3 { font-size:29px; }
.contact-preview p { font-size:12px; color:var(--muted); margin-block:18px; }
.contact-preview pre { font:13px/1.9 var(--sans); white-space:pre-wrap; overflow-wrap:anywhere; background:var(--tint); border-radius:12px; padding:20px; color:var(--ink); }
.location-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:75px; align-items:center; }
.location-grid>img { border-radius:28px; width:100%; max-height:550px; object-fit:cover; }
.map-card { position:relative; isolation:isolate; overflow:hidden; border-radius:28px; min-height:510px; display:flex; align-items:center; justify-content:center; }
.map-card>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-1; filter:brightness(.72); }
.map-address { max-width:340px; margin:28px; padding:35px; background:var(--white); box-shadow:0 20px 60px #13291b40; border-radius:22px; text-align:center; }
.map-address h3 { font-size:34px; margin-bottom:15px; }
.map-address p { font-size:14px; color:var(--muted); margin-bottom:24px; }
.map-address .button { justify-content:center; padding-inline:22px; }
.map-address .arrow:not(.button .arrow) { font-size:20px; }

/* Photographs remain the focus in the galleries. */
.gallery-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-bottom:32px; }
.gallery-toolbar button { padding:11px 21px; border:1px solid var(--line); border-radius:40px; background:var(--white); font-size:12px; transition:background .2s; }
.gallery-toolbar button[aria-pressed=true] { background:var(--ink); color:#fff; border-color:var(--ink); }
.gallery-toolbar button:hover { border-color:var(--ink); }
.gallery-toolbar>span { margin-left:auto; font-size:11px; color:var(--muted); }
.gallery-grid { columns:3; column-gap:24px; }
.gallery-item { width:100%; display:inline-block; text-align:left; padding:10px; border:1px solid var(--line); border-radius:20px; background:var(--white); margin-bottom:24px; break-inside:avoid; transition:transform .25s,box-shadow .25s; }
.gallery-item img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:12px; }
.gallery-item:nth-child(5n+2) img { aspect-ratio:4/4.3; }
.gallery-item:hover { transform:translateY(-4px); box-shadow:0 14px 30px #243b2b12; }
.gallery-item .caption { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 7px 8px; font-size:12px; line-height:1.6; }
.lightbox { border:0; border-radius:22px; padding:20px; background:var(--paper); width:min(1100px,96vw); max-height:95dvh; overflow:auto; }
.lightbox::backdrop { background:#102319ed; backdrop-filter:blur(8px); }
.lightbox img { width:100%; max-height:74dvh; object-fit:contain; border-radius:10px; }
.lightbox figcaption { padding:18px 0 3px; font-size:12px; text-align:center; }
.lightbox-controls { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:17px; }
.lightbox-controls button { background:var(--white); border:1px solid var(--line); border-radius:50px; padding:10px 18px; font-size:12px; }
.lightbox-controls .prev-next { display:flex; gap:8px; }
.legal { max-width:1000px; }
.legal :is(h2,h3) { font-size:31px; margin-block:38px 18px; }
.legal p,.legal li { font-size:14px; color:var(--muted); line-height:1.9; overflow-wrap:anywhere; }
.legal p+p { margin-top:18px; }
.legal a:not(.button) { text-decoration:underline; text-underline-offset:4px; }
.legal ul { padding-left:20px; }
.link-list { display:grid; }
.link-list a { display:flex; align-items:center; justify-content:space-between; gap:25px; border-bottom:1px solid var(--line); padding-block:19px; font-size:14px; }
.link-list a:hover { color:var(--accent); }
.link-list small { flex-shrink:0; font-size:10px; }

@media(min-width:1600px) {
  .hero-layout { min-height:715px; padding-block:100px 75px; }
  .hero-content>p { font-size:17px; max-width:480px; }
  .hero-layout { grid-template-columns:minmax(0,1fr) 350px; }
  .hero-teaser { grid-template-columns:90px minmax(0,1fr); padding:19px; }
  .hero-teaser>img { width:90px; height:135px; }
}
@media(max-width:1150px) {
  .wrap { padding-inline:38px; }
  .brand-copy strong { font-size:22px; }
  .brand-copy small { font-size:8px; }
  .navigation { gap:8px; }
  .navigation>a,.nav-group>summary { font-size:12px; }
  .navigation>a:not(.button),.nav-group>summary { padding:11px 9px; }
  .header-inner { gap:20px; }
  .hero-layout { grid-template-columns:minmax(0,1fr) 290px; gap:40px; min-height:620px; }
  .hero h1 { font-size:clamp(62px,7vw,84px); }
  .hero-teaser { grid-template-columns:66px minmax(0,1fr); gap:13px; padding:14px; }
  .hero-teaser>img { width:66px; height:118px; }
  .teaser-copy strong { font-size:25px; }
  .hero-side { gap:45px; }
  .quick-strip a { padding:20px 15px; gap:11px; }
  .shortcut-icon { height:36px; width:36px; flex-basis:36px; }
  .shortcut-icon .icon { height:23px; width:23px; }
  .shortcut-text strong { font-size:12px; }
  .shortcut-text small { font-size:10px; }
  .intro-grid,.camp-feature { gap:60px; }
  .intro-photo>img { height:460px; }
  .photo-cards { gap:20px; }
  .photo-card img { height:260px; }
  .discover-section .photo-card:nth-child(2) img { height:320px; }
  .card-content { padding-inline:6px; }
  .card-label h3 { font-size:26px; }
  .event-copy { padding:45px 35px; }
  .event-media { min-height:580px; }
  .visit { padding:46px; gap:45px; }
  .footer-grid { gap:50px; }
  .article-grid,.contact-grid { gap:50px; }
  .event-detail,.location-grid { gap:50px; }
  .calculator { padding:29px; position:static; }
  .fee-layout { gap:30px; }
}
@media(max-width:980px) {
  .header-inner { min-height:82px; }
  .brand img { height:56px; width:56px; }
  .menu-toggle { display:flex; }
  .navigation { display:none; position:absolute; left:0; right:0; top:100%; padding:18px 30px 26px; max-height:calc(100dvh - 85px); overflow-y:auto; background:#fbf9f4; border-bottom:1px solid var(--line); box-shadow:0 20px 40px #203c251a; }
  .navigation.is-open { display:flex; flex-direction:column; align-items:stretch; gap:6px; }
  .navigation>a:not(.button),.nav-group>summary { display:flex; align-items:center; justify-content:space-between; padding:14px 16px; font-size:16px; border:1px solid #e4e8db; border-radius:13px; background:var(--white); }
  .nav-group[open]>summary { background:#e8eddf; border-color:#dce3cf; }
  .navigation>.button { margin-top:12px; width:100%; }
  .navigation>a.nav-phone { display:flex; justify-content:center; font-weight:600; color:var(--accent); background:transparent; border-style:dashed; }
  .dropdown { position:static; width:100%; min-width:0; box-shadow:none; border:0; border-radius:0; padding:7px 0 4px; background:transparent; margin:0; }
  .dropdown-heading { display:none; }
  .dropdown-links { gap:3px; padding:3px 0 3px 9px; border-left:1px solid #cad5be; margin-left:14px; }
  .dropdown .submenu-link { grid-template-columns:36px minmax(0,1fr) 16px; padding:10px 11px; gap:11px; }
  .submenu-icon { width:36px; height:36px; border-radius:10px; }
  .submenu-title { font-size:14px; }
  .hero-layout { grid-template-columns:minmax(0,1fr) 260px; gap:35px; }
  .nature-seal { width:120px; height:120px; font-size:14px; margin-right:0; }
  .hero h1 { font-size:70px; }
  .hero-actions { gap:10px; }
  .hero-actions>.button { font-size:12px; padding-left:19px; gap:15px; min-height:54px; }
  .hero-actions>.button .arrow { width:33px; height:33px; flex-basis:33px; }
  .intro-grid { gap:45px; }
  .intro-copy h2 { font-size:51px; }
  .intro-copy>p.intro-lead { font-size:21px; }
  .value-tags { gap:13px; }
  .value-tags>span { font-size:13px; }
  .intro-photo { padding-left:0; }
  .number-badge { width:220px; padding:22px; }
  .section-head { gap:30px; }
  .section-head>p { flex-basis:32%; }
  .photo-cards { gap:16px; }
  .photo-card { padding:9px; }
  .card-label h3 { font-size:24px; }
  .photo-card .arrow { width:30px; height:30px; flex-basis:30px; font-size:18px; }
  .photo-card p { font-size:12px; }
  .event-band { grid-template-columns:.9fr 1.1fr; }
  .event-copy { padding:38px 30px; }
  .pill-label { font-size:8px; padding-inline:10px; }
  .event-copy h2 { font-size:42px; }
  .event-copy p { font-size:13px; }
  .event-media { min-height:570px; }
  .event-meta { gap:18px; margin-block:20px 10px; }
  .wide-gallery { gap:18px; }
  .wide-gallery img { height:290px; }
  .wide-gallery>figure:first-child img { height:350px; }
  .visit { grid-template-columns:1fr 1fr; padding:37px; gap:36px; }
  .visit h2 { font-size:40px; }
  .visit-row { grid-template-columns:1fr; gap:7px; font-size:14px; }
  .visit-row>span { font-size:13px; }
  .footer-grid { grid-template-columns:1.2fr .8fr 1fr; gap:35px; }
  .footer h2 { font-size:32px; }
  .feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fee-layout { grid-template-columns:1fr; }
  .calculator { width:100%; max-width:600px; }
  .page-top-grid { grid-template-columns:minmax(0,1fr) 110px; gap:25px; }
  .page-emblem .botanical { width:90px; height:115px; }
  .page-emblem>span { font-size:13px; }
  .page-top h1 { font-size:64px; }
  .article-grid { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:35px; }
  .aside-box { padding:24px; }
  .aside-box>img { height:230px; }
  .aside-box h3 { font-size:28px; }
  .contact-grid { grid-template-columns:.9fr 1.2fr; gap:35px; }
  .contact-form { padding:28px; }
  .form-row { gap:14px; }
  .gallery-grid { columns:2; }
  .event-list-card { gap:35px; }
  .event-list-card h2 { font-size:43px; }
  .event-list-card>div { padding-right:10px; }
}
@media(max-width:760px) {
  .excursion-grid { grid-template-columns:1fr; }
  .wrap { padding-inline:26px; }
  .hero { margin:0; border-radius:0; }
  .hero-layout { grid-template-columns:1fr; min-height:auto; gap:32px; padding:65px 28px 34px; }
  .hero h1 { font-size:clamp(58px,9vw,76px); max-width:580px; }
  .hero-content>p { max-width:460px; font-size:15px; }
  .hero-side { grid-template-columns:1fr; gap:0; }
  .nature-seal { display:none; }
  .hero-camping .hero-side { display:none; }
  .hero-teaser { max-width:420px; grid-template-columns:68px minmax(0,1fr); padding:13px 14px; gap:16px; }
  .hero-teaser>img { width:68px; height:94px; }
  .teaser-copy { gap:7px; }
  .teaser-copy strong { font-size:25px; }
  .teaser-copy strong br { display:none; }
  .teaser-copy>span { font-size:10px; }
  .hero-footer { padding:18px 28px; }
  .hero-note { font-size:9px; letter-spacing:.06em; }
  .photo-note { display:none; }
  .quick-strip>.wrap { grid-template-columns:1fr; gap:9px; }
  .quick-strip a { padding:17px 20px; }
  .shortcut-icon { width:41px; height:41px; flex-basis:41px; }
  .shortcut-text strong { font-size:14px; }
  .shortcut-text small { font-size:11px; }
  .section { padding-block:70px; }
  .intro-grid { grid-template-columns:1fr; gap:45px; }
  .intro-copy { order:0; }
  .intro-photo { order:1; max-width:570px; width:100%; }
  .intro-copy h2 { font-size:57px; }
  .intro-copy>p { max-width:570px; }
  .intro-photo>img { height:470px; }
  .value-tags { font-size:11px; gap:20px; }
  .value-tags>span { font-size:14px; }
  .section-head { align-items:start; flex-direction:column; gap:20px; margin-bottom:35px; }
  .section-head h2 { font-size:46px; }
  .section-head>p { max-width:450px; flex:auto; font-size:14px; }
  .section-head>.text-link { margin-top:0; }
  .section-head>.discover-sketch { width:min(300px,100%); }
  .photo-cards { grid-template-columns:1fr; gap:22px; max-width:570px; }
  .photo-card { padding:12px; }
  .photo-card img { height:330px; }
  .discover-section .photo-card:nth-child(2),.discover-section .photo-card:nth-child(3) { margin-top:0; }
  .discover-section .photo-card:nth-child(2) img { height:330px; }
  .card-content { padding:20px 13px; }
  .card-label h3 { font-size:32px; }
  .photo-card .arrow { height:42px; width:42px; flex-basis:42px; font-size:21px; }
  .photo-card p { font-size:14px; }
  .event-section { padding-top:70px; }
  .event-band { grid-template-columns:1fr; }
  .event-media { min-height:380px; }
  .event-copy { padding:40px; }
  .event-copy h2 { font-size:53px; }
  .event-copy p { font-size:14px; }
  .pill-label { font-size:9px; }
  .event-meta { gap:25px; margin-block:25px 15px; }
  .quote-section { padding-block:65px 0; }
  .pullquote blockquote { font-size:40px; }
  .wide-gallery { grid-template-columns:1fr 1fr; gap:28px 17px; }
  .wide-gallery>figure:first-child { grid-column:1/-1; }
  .wide-gallery>figure:nth-child(2),.wide-gallery>figure:nth-child(3) { padding-top:0; }
  .wide-gallery>figure:first-child img { height:360px; }
  .wide-gallery img { height:250px; }
  .wide-gallery figcaption { font-size:11px; margin-top:12px; gap:8px; }
  .camp-feature { grid-template-columns:1fr; gap:30px; }
  .camp-feature-section { padding-top:70px; }
  .camp-feature-copy h2 { font-size:47px; }
  .camp-feature-image>img { height:390px; }
  .visit-section { padding-block:15px 70px; }
  .visit { grid-template-columns:1fr; padding:40px; gap:38px; }
  .visit h2 { font-size:45px; }
  .visit-row { grid-template-columns:142px minmax(0,1fr); font-size:15px; }
  .visit-row>span { font-size:14px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:38px; }
  .footer-grid>div:first-child { grid-column:1/-1; }
  .footer h2 { font-size:41px; }
  .footer p { max-width:430px; }
  .footer-base { flex-direction:column; gap:15px; }
  .page-top { padding:32px 0 45px; }
  .page-top-grid { grid-template-columns:1fr; }
  .page-emblem { display:none; }
  .breadcrumb { margin-bottom:32px; }
  .page-top h1 { font-size:58px; }
  .page-lead { font-size:15px; }
  .page-cover { width:calc(100% - 24px); height:380px; border-radius:21px; }
  .article-grid { grid-template-columns:1fr; gap:40px; }
  .prose { font-size:15px; }
  .aside-box { padding:29px; max-width:600px; }
  .aside-box>img { height:300px; }
  .aside-box h3 { font-size:34px; }
  .aside-box>.button { width:fit-content; }
  .stat-grid { gap:10px; }
  .feature-item { padding:25px; }
  .feature-item h3 { font-size:26px; }
  .feature-item p { font-size:12px; }
  .contact-grid { grid-template-columns:1fr; gap:40px; }
  .location-grid { grid-template-columns:1fr; gap:35px; }
  .map-card { min-height:430px; }
  .event-detail { grid-template-columns:1fr; gap:40px; }
  .event-detail>img { height:420px; }
  .event-detail h2 { font-size:43px; }
  .event-list-card { grid-template-columns:1fr; gap:25px; padding:14px; }
  .event-list-card>img { height:390px; }
  .event-list-card>div { padding:10px 18px 25px; }
  .event-list-card h2 { font-size:46px; }
}
@media(max-width:480px) {
  .wrap { padding-inline:22px; }
  .topbar>.wrap { min-height:31px; padding-inline:20px; gap:10px; }
  .topbar .location { font-size:8px; letter-spacing:.04em; }
  .topbar-right { gap:12px; font-size:8px; letter-spacing:.04em; }
  .top-phone { display:none; }
  .header-inner { min-height:77px; gap:16px; }
  .brand { gap:9px; }
  .brand img { height:49px; width:49px; }
  .brand-copy strong { font-size:20px; }
  .brand-copy small { font-size:7px; letter-spacing:.09em; }
  .menu-toggle { height:44px; width:44px; padding:0; flex:0 0 44px; }
  .navigation { padding-inline:22px; }
  .hero { margin:0; border-radius:0; }
  .hero-layout { padding:47px 22px 25px; gap:29px; }
  .hero .eyebrow { font-size:8px; letter-spacing:.1em; margin-bottom:25px; gap:9px; }
  .hero .eyebrow:before { width:17px; }
  .hero h1 { font-size:clamp(49px,13.4vw,62px); line-height:1.06; }
  .hero-content>p { font-size:13px; line-height:1.9; margin-top:25px; }
  .hero-actions { gap:10px; margin-top:28px; align-items:stretch; }
  .hero-actions>.button { justify-content:space-between; width:100%; min-height:53px; padding-left:20px; font-size:12px; }
  .hero:after { background:linear-gradient(90deg,#132b21d9,#162a2266),linear-gradient(0deg,#142e2380,transparent); }
  .hero>img { object-position:60% center; }
  .hero-teaser { border-radius:15px; padding:12px; gap:12px; grid-template-columns:62px minmax(0,1fr); }
  .hero-teaser>img { width:62px; height:94px; border-radius:9px; }
  .teaser-copy>small { font-size:7px; letter-spacing:.09em; }
  .teaser-copy strong { font-size:24px; }
  .teaser-copy strong br { display:initial; }
  .teaser-copy>span { font-size:9px; }
  .hero-footer { padding:16px 22px; }
  .hero-note { font-size:8px; letter-spacing:.04em; gap:8px; }
  .hero-note:before { width:5px; height:5px; }
  .quick-strip { padding-top:18px; }
  .quick-strip a { padding:16px; border-radius:15px; gap:14px; }
  .shortcut-text strong { font-size:13px; }
  .shortcut-text small { font-size:10px; }
  .eyebrow { font-size:9px; letter-spacing:.13em; margin-bottom:20px; }
  .eyebrow.line { gap:10px; }
  .eyebrow.line:before { width:22px; }
  .section { padding-block:58px; }
  .intro-copy h2 { font-size:49px; }
  .intro-copy>p.intro-lead { font-size:21px; }
  .intro-copy>p { font-size:14px; }
  .text-link { font-size:12px; gap:18px; }
  .value-tags { gap:13px; padding-top:20px; margin-top:28px; }
  .value-tags>span { font-size:13px; gap:7px; }
  .value-tags .icon { width:19px; height:19px; }
  .intro-photo>img { height:370px; border-radius:75px 19px 19px 19px; }
  .number-badge { width:220px; margin-right:15px; margin-top:-73px; padding:21px 23px; }
  .number-badge>strong { font-size:58px; }
  .number-badge>.eyebrow { font-size:8px; }
  .photo-label { font-size:9px; margin-top:15px; }
  .section-head h2 { font-size:40px; }
  .section-head>p { font-size:13px; }
  .photo-card { padding:10px; border-radius:20px; }
  .photo-card img,.discover-section .photo-card:nth-child(2) img { height:295px; }
  .card-label h3 { font-size:30px; }
  .card-content { padding:17px 10px 20px; }
  .photo-card p { font-size:13px; }
  .event-section { padding-top:55px; }
  .event-band { border-radius:23px; }
  .event-media { min-height:330px; }
  .image-tag { left:17px; bottom:17px; right:17px; font-size:9px; padding:9px 12px; }
  .event-copy { padding:30px 25px 35px; }
  .pill-label { font-size:7px; letter-spacing:.08em; margin-bottom:26px; }
  .event-copy h2 { font-size:41px; }
  .event-copy p { font-size:13px; }
  .event-meta { gap:19px; }
  .event-meta>span { font-size:10px; }
  .event-meta strong { font-size:11px; }
  .event-copy>.button { width:100%; font-size:12px; padding-left:19px; gap:15px; }
  .quote-section { padding-block:58px 0; }
  .pullquote blockquote { font-size:33px; }
  .pullquote>.eyebrow { font-size:8px; }
  .pullquote cite { font-size:8px; }
  .wide-gallery { gap:23px 13px; }
  .wide-gallery>figure:first-child img { height:300px; border-radius:60px 18px 18px 18px; }
  .wide-gallery img { height:205px; border-radius:17px; }
  .wide-gallery figcaption { font-size:10px; line-height:1.7; gap:7px; }
  .wide-gallery figcaption>span { font-size:13px; }
  .camp-feature-section { padding-top:58px; }
  .camp-feature { gap:20px; }
  .camp-feature-image>img { height:340px; }
  .camp-feature-image .botanical { width:110px; height:140px; }
  .camp-feature-copy h2 { font-size:41px; }
  .camp-feature-copy>p { font-size:14px; }
  .visit-section { padding-block:5px 58px; }
  .visit { padding:31px 25px; gap:34px; border-radius:23px; }
  .visit .eyebrow { font-size:8px; }
  .visit h2 { font-size:39px; }
  .visit p { font-size:13px; }
  .visit-row { grid-template-columns:1fr; gap:7px; padding-block:17px; font-size:14px; }
  .visit-row>span { font-size:13px; padding-top:0; }
  .visit-row>span>.icon { display:none; }
  .visit-row a { display:flex; justify-content:space-between; gap:10px; align-items:center; }
  .visit-row a[href^="tel:"] { justify-content:flex-start; gap:0; }
  .visit-row a[href^="tel:"]>span { margin-left:auto; }
  .visit .button { min-height:54px; font-size:12px; }
  .footer { padding-top:50px; border-radius:25px 25px 0 0; }
  .footer-grid { gap:33px 25px; padding-bottom:40px; }
  .footer h2 { font-size:36px; }
  .footer p { font-size:11px; }
  .footer .eyebrow { font-size:8px; letter-spacing:.09em; }
  .footer-links { font-size:11px; gap:11px; overflow-wrap:anywhere; }
  .footer-base { font-size:9px; gap:13px; padding-block:20px; }
  .footer-legal { gap:12px 18px; }
  .preview-label { font-size:8px; padding-inline:17px; }
  .page-top h1 { font-size:clamp(40px,11.8vw,56px); overflow-wrap:anywhere; }
  .page-lead { font-size:14px; margin-top:25px; }
  .page-cover { width:calc(100% - 18px); height:300px; border-radius:19px; }
  .breadcrumb { font-size:10px; gap:10px; margin-bottom:27px; }
  .subnav { gap:5px; padding:6px; border-radius:15px; margin-bottom:30px; }
  .subnav a { padding:9px 12px; font-size:10px; border-radius:10px; }
  .prose { font-size:14px; }
  .prose h2 { font-size:35px; }
  .prose h3 { font-size:29px; }
  .aside-box { padding:25px; border-radius:20px; }
  .aside-box>img { height:255px; }
  .aside-box>.button { width:100%; }
  .stat-grid { gap:7px; }
  .stat { font-size:10px; padding:21px 8px; border-radius:13px; }
  .stat strong { font-size:42px; }
  .feature-grid { gap:14px; }
  .feature-item { padding:21px 18px; border-radius:18px; }
  .feature-item h3 { font-size:24px; overflow-wrap:anywhere; }
  .feature-item p { font-size:11px; }
  .feature-icon { height:44px; width:44px; margin-bottom:19px; }
  .feature-icon .icon { width:24px; height:24px; }
  .notice { padding:20px; font-size:12px; }
  .fee-layout { gap:25px; }
  .price-group { padding:22px 17px; border-radius:19px; }
  .price-group h2 { font-size:28px; margin-bottom:17px; }
  .price-table { font-size:11px; }
  .price-table th { font-size:8px; letter-spacing:.04em; }
  .price-table th:first-child { width:40%; }
  .price-table th:last-child { width:64px; }
  .price-table :is(th,td):nth-child(2) { padding-inline:7px; }
  .price-table td:nth-child(2) { font-size:9px; }
  .price-table td { padding-block:15px; }
  .calculator { padding:26px; border-radius:21px; }
  .calculator h2 { font-size:30px; }
  .fee-result>strong { font-size:42px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .calculator .form-row { grid-template-columns:1fr 1fr; gap:13px; }
  label { font-size:11px; }
  input,select,textarea { padding:12px; font-size:16px; }
  .contact-form { padding:25px 22px; border-radius:21px; }
  .contact-form h2 { font-size:33px; }
  .contact-form>p { font-size:12px; }
  .contact-info h2 { font-size:37px; }
  .contact-info>p { font-size:14px; }
  .contact-preview .button { width:100%; font-size:11px; padding-left:16px; gap:12px; }
  .contact-preview pre { padding:15px; font-size:12px; }
  .map-card { min-height:390px; border-radius:21px; }
  .map-address { margin:20px; padding:29px 23px; }
  .map-address h3 { font-size:31px; }
  .event-detail>img { height:370px; border-radius:70px 21px 21px 21px; }
  .event-detail h2 { font-size:37px; }
  .event-detail p { font-size:14px; }
  .event-facts { padding-inline:18px; }
  .event-facts>div { font-size:11px; gap:12px; }
  .event-list-card>img { height:325px; }
  .event-list-card>div { padding:8px 12px 20px; }
  .event-list-card h2 { font-size:40px; }
  .event-list-card p { font-size:14px; }
  .gallery-toolbar { gap:7px; }
  .gallery-toolbar button { font-size:10px; padding:10px 14px; }
  .gallery-toolbar>span { flex-basis:100%; margin:5px 0 0; }
  .gallery-grid { column-gap:13px; }
  .gallery-item { padding:7px; border-radius:16px; margin-bottom:13px; }
  .gallery-item img { border-radius:10px; }
  .gallery-item .caption { padding:11px 4px 6px; font-size:10px; line-height:1.6; gap:5px; }
  .lightbox { padding:13px; border-radius:17px; }
  .lightbox-controls { gap:7px; margin-bottom:13px; }
  .lightbox-controls button { padding:9px 12px; font-size:10px; }
  .lightbox-controls .prev-next { gap:5px; }
  .lightbox figcaption { font-size:11px; }
  .legal :is(h2,h3) { font-size:27px; }
  .legal p,.legal li { font-size:13px; }
  .link-list a { font-size:12px; gap:16px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*:before,*:after { transition:none!important; animation:none!important; }
}
