/* ==========================================================================
   Davis Guide Service — custom heritage-waterfowl build
   Palette derived from the engraved circular badge (chocolate Lab + drake mallard):
   forest-green accent, gold/tan secondary, warm cream paper, deep olive-brown ink.
   All text/background pairs verified >= 4.5:1.
   ========================================================================== */

:root {
  /* surfaces + ink */
  --surface:      #FBF7EF;   /* warm cream paper */
  --surface-alt:  #F0E7D3;   /* deeper cream band */
  --ink:          #26200A;   /* deep olive-brown, near-black */
  --ink-soft:     #4A4326;   /* muted body-secondary */

  /* accent: forest green (badge frame + mallard head) */
  --accent-fill:  #3B5A34;   /* buttons, bars */
  --accent-deep:  #223A20;   /* dark green band */
  --accent-text:  #33512D;   /* green links/eyebrows on cream (8.3:1) */
  --on-accent:    #FBF7EF;   /* cream text on green (7.3:1) */

  /* secondary: gold/tan */
  --gold-fill:    #A9813A;
  --gold-text:    #7E5E1E;   /* gold text on cream (5.6:1) */

  /* green ramp (family shades, no clashes) */
  --g-050:#EEF0E6; --g-100:#DBE0CC; --g-200:#B7C1A0; --g-300:#8FA073;
  --g-400:#6C7F50; --g-500:#4E6640; --g-600:#3B5A34; --g-700:#2C4427;
  --g-800:#223A20; --g-900:#152614;

  --line:      rgba(59,90,52,.30);   /* hairline in the accent family, never gray */
  --line-soft: rgba(59,90,52,.16);
  --hero-pos:  center;

  /* motion + shadow (reference values) */
  --t: 260ms cubic-bezier(.2,.7,.2,1);
  --s-card:  0 14px 40px -18px rgba(20,26,10,.30), 0 2px 6px rgba(20,26,10,.07);
  --s-hover: 0 26px 56px -18px rgba(20,26,10,.42), 0 3px 10px rgba(20,26,10,.12);

  --wrap: 1200px;
  --r: 4px;                          /* restrained radius — heritage, not glossy */

  --font-display: "Zilla Slab", Georgia, "Times New Roman", serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* ---- reset-ish ---- */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-body) !important;     /* survive MB widget normalize */
  color: var(--ink) !important;
  background: var(--surface) !important;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
a { color: var(--accent-text); text-decoration: none; }
h1,h2,h3,h4 { font-family: var(--font-display); font-weight: 700; line-height: 1.06; margin: 0 0 .5em; letter-spacing: -.01em; }
h2 { font-size: clamp(1.9rem, 3.6vw, 3rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); letter-spacing: 0; }
p { margin: 0 0 1.1em; }
::selection { background: var(--g-300); color: var(--ink); }

/* ---- layout ---- */
.wrap { width: min(var(--wrap), 100% - 3rem); margin-inline: auto; }
.wrap--narrow { width: min(820px, 100% - 3rem); margin-inline: auto; }
.section { position: relative; padding-block: clamp(3.5rem, 8vw, 7rem); overflow: clip; }
.section--tight { padding-block: clamp(2.25rem, 4vw, 3.25rem); }
.section--alt { background: var(--surface-alt); }
.section--dark { background: var(--accent-deep); color: var(--on-accent); }
.section--ink { background: var(--ink); color: var(--surface); }
.section--dark h1, .section--dark h2, .section--dark h3,
.section--ink h1, .section--ink h2, .section--ink h3 { color: var(--surface); }

/* topographic overlay on solid bands only (mask -> inherits palette) */
.section--dark::before, .section--ink::before, .cta-banner::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-color: var(--surface);
  -webkit-mask-image: url("/images/overlays/terrain-open.svg");
          mask-image: url("/images/overlays/terrain-open.svg");
  -webkit-mask-size: 860px auto; mask-size: 860px auto;
  -webkit-mask-repeat: repeat; mask-repeat: repeat;
  opacity: .07;
}
.section > .wrap, .cta-banner > .wrap { position: relative; z-index: 1; }

.eyebrow {
  font-family: var(--font-display);
  text-transform: uppercase; letter-spacing: .22em; font-weight: 600;
  font-size: .72rem; color: var(--gold-text); margin: 0 0 1rem;
}
.section--dark .eyebrow, .section--ink .eyebrow { color: var(--gold-fill); }
.lead { font-size: clamp(1.05rem, 1.6vw, 1.28rem); color: var(--ink-soft); }
.section--dark .lead, .section--ink .lead { color: rgba(251,247,239,.85); }

/* ---- buttons ---- */
.btn {
  display: inline-flex; align-items: center; gap: .55rem;
  font-family: var(--font-display); font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase; font-size: .8rem;
  padding: .95rem 1.6rem; border: 0; border-radius: var(--r); cursor: pointer;
  transition: all var(--t); position: relative; line-height: 1;
}
.btn svg { width: 1em; height: 1em; transition: transform var(--t); }
.btn:hover svg { transform: translateX(4px); }
.btn--primary { background: var(--accent-fill) !important; color: var(--on-accent) !important; }
.btn--primary:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -12px rgba(59,90,52,.65); background: var(--g-700) !important; }
.btn--gold { background: var(--gold-fill); color: var(--ink); }
.btn--gold:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -12px rgba(169,129,58,.6); }
.btn--ghost { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--accent-fill); }
.btn--ghost:hover { background: var(--accent-fill); color: var(--on-accent); transform: translateY(-2px); }
.section--dark .btn--ghost, .section--ink .btn--ghost, .hero .btn--ghost, .cta-banner .btn--ghost { color: var(--surface); box-shadow: inset 0 0 0 2px rgba(251,247,239,.9); }
.section--dark .btn--ghost:hover, .section--ink .btn--ghost:hover, .hero .btn--ghost:hover, .cta-banner .btn--ghost:hover { background: var(--surface); color: var(--ink); box-shadow: inset 0 0 0 2px var(--surface); }
/* CTA-band closer button: gold fill pops on the deep-green band (meets 3:1 UI contrast) */
.cta-banner .btn--primary { background: var(--gold-fill) !important; color: var(--ink) !important; }
.cta-banner .btn--primary:hover { background: #ba9047 !important; transform: translateY(-2px); box-shadow: 0 14px 30px -12px rgba(169,129,58,.65); }
button.mb_widget.btn--primary { font-family: var(--font-display) !important; }

/* ==========================================================================
   Header / nav
   ========================================================================== */
.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: .55rem clamp(1rem, 4vw, 2.25rem);
  background: transparent;
  transition: background var(--t), box-shadow var(--t), backdrop-filter var(--t), padding var(--t);
}
.site-header.is-scrolled {
  background: rgba(251,247,239,.94);
  backdrop-filter: saturate(150%) blur(10px);
  box-shadow: 0 1px 0 var(--line), 0 6px 24px -20px rgba(20,26,10,.5);
}
.brand__logo { display: flex; align-items: center; }
.brand__logo img {
  height: 66px; width: auto; transition: height var(--t), filter var(--t);
  filter: drop-shadow(0 2px 8px rgba(0,0,0,.28));
}
.site-header.is-scrolled .brand__logo img { height: 48px; filter: none; }

.nav-main { display: flex; align-items: center; gap: clamp(1rem, 2.4vw, 2rem); list-style: none; margin: 0; padding: 0; }
.nav-main > li { position: relative; }
.nav-main > li > a {
  font-family: var(--font-display); font-weight: 600; font-size: .82rem;
  text-transform: uppercase; letter-spacing: .13em;
  color: var(--surface); position: relative; padding: .5rem 0; display: inline-block;
  text-shadow: 0 1px 10px rgba(0,0,0,.5);
  transition: color var(--t);
}
.site-header.is-scrolled .nav-main > li > a { color: var(--ink); text-shadow: none; }
.nav-main > li > a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px;
  background: var(--gold-fill); transform: scaleX(0); transform-origin: left;
  transition: transform var(--t);
}
.nav-main > li > a:hover::after, .nav-main > li.is-current > a::after { transform: scaleX(1); }
.nav-cta { margin-left: .35rem; }

/* dropdown */
.nav-dropdown {
  position: absolute; top: 100%; left: 50%; transform: translate(-50%, 8px);
  min-width: 230px; background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r); box-shadow: var(--s-card); padding: .5rem;
  opacity: 0; visibility: hidden; transition: opacity var(--t), transform var(--t);
}
.nav-main > li:hover .nav-dropdown { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.nav-main > li::after { /* hover bridge across the trigger→panel gap */
  content: ""; position: absolute; top: 100%; left: 0; right: 0; height: 14px;
}
.nav-dropdown a {
  display: block; padding: .6rem .8rem; border-radius: 3px;
  font-family: var(--font-display); font-weight: 600; font-size: .82rem;
  text-transform: uppercase; letter-spacing: .09em; color: var(--ink) !important;
  transition: background var(--t), color var(--t);
}
.nav-dropdown a small { display: block; font-family: var(--font-body); font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--ink-soft); font-size: .74rem; margin-top: .1rem; }
.nav-dropdown a:hover { background: var(--g-050); color: var(--accent-text) !important; }

.nav-toggle { display: none; background: none; border: 0; cursor: pointer; padding: .4rem; }
.nav-toggle span { display: block; width: 26px; height: 2px; background: var(--surface); margin: 5px 0; transition: all var(--t); }
.site-header.is-scrolled .nav-toggle span { background: var(--ink); }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero { position: relative; display: flex; align-items: flex-end; color: var(--surface); isolation: isolate; }
.hero--photo { min-height: clamp(560px, 92vh, 880px); }
.hero--photo::before {
  content: ""; position: absolute; inset: 0; z-index: -2;
  background-image: var(--hero-img);
  background-size: cover; background-position: var(--hero-pos);
}
.hero--photo::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(ellipse 90% 70% at 30% 90%, rgba(15,18,8,.72) 0%, rgba(15,18,8,.10) 70%, rgba(15,18,8,0) 100%),
    linear-gradient(180deg, rgba(15,18,8,.42) 0%, rgba(15,18,8,.05) 34%, rgba(15,18,8,.72) 100%);
}
.hero__inner { padding-block: clamp(3rem, 10vh, 6.5rem); padding-top: 8rem; }
.hero .eyebrow { color: var(--gold-fill); text-shadow: 0 1px 12px rgba(0,0,0,.55); }
.hero h1 {
  font-size: clamp(2.6rem, 6.4vw, 5.2rem) !important;   /* pinned vs MB normalize */
  color: var(--surface); max-width: 16ch;
  text-shadow: 0 2px 26px rgba(0,0,0,.5);
}
.hero p.lead { color: rgba(251,247,239,.92); max-width: 46ch; text-shadow: 0 1px 14px rgba(0,0,0,.5); }
.hero__cta { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 1.7rem; }
.hero__scroll { position: absolute; left: 50%; bottom: 1.4rem; transform: translateX(-50%); z-index: 1; color: rgba(251,247,239,.8); font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; font-family: var(--font-display); animation: bob 2.4s ease-in-out infinite; }
@keyframes bob { 0%,100%{transform:translate(-50%,0)} 50%{transform:translate(-50%,6px)} }

/* short block hero (interior + lean pages) */
.hero--block { min-height: clamp(300px, 42vh, 400px); background: linear-gradient(158deg, var(--g-800), var(--g-600)); }
.hero--block::after {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-color: var(--surface);
  -webkit-mask-image:url("/images/overlays/terrain-open.svg"); mask-image:url("/images/overlays/terrain-open.svg");
  -webkit-mask-size:760px auto; mask-size:760px auto; -webkit-mask-repeat:repeat; mask-repeat:repeat; opacity:.08;
}
.hero--block .hero__inner { padding-top: 9rem; padding-bottom: 3rem; }
.hero--block h1 { font-size: clamp(2.3rem, 5vw, 3.8rem) !important; }
.hero--block .badge-mark { position: absolute; right: clamp(-40px, 2vw, 40px); top: 50%; transform: translateY(-45%); width: clamp(160px, 22vw, 300px); opacity: .12; z-index: -1; }

/* ==========================================================================
   Home — offerings high on the page
   ========================================================================== */
.section__head { max-width: 60ch; margin-bottom: 2.6rem; }
.section__head.center { margin-inline: auto; text-align: center; }

.card-grid { display: grid; gap: 1.6rem; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.card-grid--2 { grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); }

.hunt-card {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r);
  overflow: hidden; display: flex; flex-direction: column;
  box-shadow: var(--s-card); transition: transform var(--t), box-shadow var(--t);
}
.hunt-card:hover { transform: translateY(-4px); box-shadow: var(--s-hover); }
.hunt-card__media { position: relative; aspect-ratio: 3/2; overflow: hidden; }
.hunt-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms ease; }
.hunt-card:hover .hunt-card__media img { transform: scale(1.05); }
.hunt-card__tag {
  position: absolute; left: 1rem; top: 1rem; z-index: 1;
  background: rgba(34,58,32,.92); color: var(--surface);
  font-family: var(--font-display); font-weight: 600; font-size: .68rem;
  letter-spacing: .14em; text-transform: uppercase; padding: .4rem .7rem; border-radius: 3px;
}
.hunt-card__body { padding: 1.5rem 1.6rem 1.7rem; display: flex; flex-direction: column; flex: 1; }
.hunt-card__body h3 { margin-bottom: .3rem; }
.section--alt .hunt-card h3, .section--dark .hunt-card h3 { color: var(--ink); }   /* guard */
.hunt-card__meta { font-family: var(--font-display); text-transform: uppercase; letter-spacing: .1em; font-size: .7rem; color: var(--gold-text); margin-bottom: .8rem; }
.hunt-card__price { font-family: var(--font-display); font-weight: 700; color: var(--accent-text); font-size: 1.5rem; margin: .1rem 0 .3rem; }
.hunt-card__price span { font-size: .8rem; font-weight: 400; color: var(--ink-soft); letter-spacing: .02em; }
.hunt-card p { color: var(--ink-soft); font-size: .96rem; }
.hunt-card__incl { list-style: none; margin: .2rem 0 1.3rem; padding: 0; display: grid; gap: .4rem; }
.hunt-card__incl li { position: relative; padding-left: 1.35rem; font-size: .9rem; color: var(--ink-soft); }
.hunt-card__incl li::before { content: ""; position: absolute; left: 0; top: .5em; width: 8px; height: 8px; border-radius: 50%; background: var(--gold-fill); }
.hunt-card__foot { margin-top: auto; }

/* ---- split feature ---- */
.split { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(1.5rem, 4vw, 3.4rem); align-items: center; }
.split--flip .split__media { order: 2; }
.split__media { position: relative; }
.split__media img { width: 100%; border-radius: var(--r); box-shadow: var(--s-card); aspect-ratio: 4/5; object-fit: cover; }
.split__media--tall img { aspect-ratio: 4/5; }
.split__media--wide img { aspect-ratio: 4/3; }
.split__frame { position: absolute; inset: 14px -14px -14px 14px; border: 1px solid var(--line); border-radius: var(--r); z-index: -1; }
.split--flip .split__frame { inset: 14px 14px -14px -14px; }

/* ---- species index (signature move) ---- */
.species-index { columns: 2; column-gap: 3rem; }
.species-index li {
  list-style: none; display: flex; align-items: baseline; gap: .7rem;
  padding: .7rem 0; border-bottom: 1px solid rgba(251,247,239,.14);
  break-inside: avoid;
}
.species-index .num { font-family: var(--font-display); font-size: .8rem; color: var(--gold-fill); min-width: 2ch; }
.species-index .name { font-family: var(--font-display); font-weight: 600; font-size: 1.15rem; text-transform: uppercase; letter-spacing: .04em; color: var(--surface); }
.species-index .dots { flex: 1; border-bottom: 1px dotted rgba(251,247,239,.28); transform: translateY(-4px); }
.species-index .note { font-size: .78rem; color: rgba(251,247,239,.55); }

/* ---- full-bleed photo breather ---- */
.photo-band { position: relative; height: clamp(320px, 46vh, 520px); overflow: hidden; }
.photo-band img { width: 100%; height: 100%; object-fit: cover; object-position: var(--hero-pos, center); }
.photo-band__cap { position: absolute; left: 0; bottom: 0; padding: 1.4rem 1.8rem; color: var(--surface); font-family: var(--font-display); text-transform: uppercase; letter-spacing: .14em; font-size: .82rem; text-shadow: 0 1px 12px rgba(0,0,0,.6); background: linear-gradient(0deg, rgba(15,18,8,.55), transparent); width: 100%; }

/* ---- values triad ---- */
.triad { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)); gap: 1.6rem; }
.triad__item { padding: 1.6rem 0; }
.triad__num { font-family: var(--font-display); font-size: 2.4rem; color: var(--gold-fill); line-height: 1; margin-bottom: .5rem; }
.triad__item h3 { margin-bottom: .35rem; }
.triad__item p { color: var(--ink-soft); font-size: .96rem; margin: 0; }
.section--dark .triad__item p, .section--ink .triad__item p { color: rgba(251,247,239,.82); }

/* ==========================================================================
   Pricing rows (trip detail)
   ========================================================================== */
.pricing-rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.pricing-rows li { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 1.1rem 0; border-bottom: 1px solid var(--line); }
.pricing-rows .pr-name { font-family: var(--font-display); font-weight: 600; font-size: 1.08rem; }
.pricing-rows .pr-name small { display: block; font-family: var(--font-body); font-weight: 400; color: var(--ink-soft); font-size: .82rem; letter-spacing: 0; text-transform: none; margin-top: .15rem; }
.pricing-rows .pr-price { font-family: var(--font-display); font-weight: 700; color: var(--accent-text); font-size: 1.5rem; white-space: nowrap; }
.pricing-rows .pr-price sup { font-size: .62em; margin-right: 2px; position: relative; top: -.55em; }
.pricing-rows .pr-price span { font-size: .62rem; font-weight: 400; color: var(--ink-soft); letter-spacing: .02em; }

.incl-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px,1fr)); gap: .8rem 1.6rem; list-style: none; padding: 0; margin: 0; }
.incl-grid li { position: relative; padding-left: 1.7rem; color: var(--ink-soft); font-size: .96rem; }
.incl-grid li svg { position: absolute; left: 0; top: .18em; width: 1.05em; height: 1.05em; color: var(--accent-fill); }

/* ==========================================================================
   Guide cards (about)
   ========================================================================== */
.guide-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; box-shadow: var(--s-card); transition: transform var(--t), box-shadow var(--t); }
.guide-card:hover { transform: translateY(-4px); box-shadow: var(--s-hover); }
.guide-card img { aspect-ratio: 1/1; object-fit: cover; width: 100%; }
.guide-card__body { padding: 1.3rem 1.5rem 1.6rem; }
.guide-card__body h3 { margin-bottom: .1rem; }
.guide-card__role { font-family: var(--font-display); text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; color: var(--gold-text); margin-bottom: .8rem; }
.guide-card__body p { color: var(--ink-soft); font-size: .94rem; margin: 0; }

/* ==========================================================================
   Gallery
   ========================================================================== */
.gallery-filters { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 2rem; }
.gallery-filters button {
  font-family: var(--font-display); font-weight: 600; font-size: .74rem;
  text-transform: uppercase; letter-spacing: .1em; padding: .55rem 1.05rem;
  border: 1px solid var(--line); background: transparent; color: var(--ink-soft);
  border-radius: 999px; cursor: pointer; transition: all var(--t);
}
.gallery-filters button:hover { border-color: var(--accent-fill); color: var(--accent-text); }
.gallery-filters button.is-active { background: var(--accent-fill); color: var(--on-accent); border-color: var(--accent-fill); }

.gallery-grid { columns: 3 260px; column-gap: 1rem; }
.gallery-grid figure { break-inside: avoid; margin: 0 0 1rem; position: relative; overflow: hidden; border-radius: var(--r); cursor: pointer; }
.gallery-grid img { width: 100%; transition: transform 700ms ease; }
.gallery-grid figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(34,58,32,.5), transparent 55%); opacity: 0; transition: opacity var(--t); }
.gallery-grid figure:hover img { transform: scale(1.05); }
.gallery-grid figure:hover::after { opacity: 1; }
.gallery-grid figcaption { position: absolute; left: .9rem; bottom: .8rem; z-index: 1; color: var(--surface); font-family: var(--font-display); font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; opacity: 0; transform: translateY(6px); transition: all var(--t); text-shadow: 0 1px 8px rgba(0,0,0,.6); }
.gallery-grid figure:hover figcaption { opacity: 1; transform: none; }

/* lightbox */
.lb { position: fixed; inset: 0; z-index: 300; background: rgba(15,18,8,.94); display: none; align-items: center; justify-content: center; }
.lb.is-open { display: flex; }
.lb img { max-width: 92vw; max-height: 86vh; width: auto; border-radius: var(--r); box-shadow: 0 30px 80px -20px rgba(0,0,0,.8); }
.lb__btn { position: absolute; background: none; border: 0; color: var(--surface); cursor: pointer; font-size: 2.4rem; line-height: 1; padding: 1rem; opacity: .8; transition: opacity var(--t); }
.lb__btn:hover { opacity: 1; }
.lb__close { top: .6rem; right: 1rem; }
.lb__prev { left: .5rem; top: 50%; transform: translateY(-50%); }
.lb__next { right: .5rem; top: 50%; transform: translateY(-50%); }

/* ==========================================================================
   CTA banner + FAQ + contact
   ========================================================================== */
.cta-banner { position: relative; background: var(--accent-deep); color: var(--surface); text-align: center; padding-block: clamp(3rem, 6vw, 5rem); overflow: clip; }
.cta-banner h2 { color: var(--surface); }
.cta-banner p { color: rgba(251,247,239,.85); max-width: 44ch; margin-inline: auto; }
.cta-banner .hero__cta { justify-content: center; }

.faq { border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; list-style: none; padding: 1.25rem 2.5rem 1.25rem 0; position: relative; font-family: var(--font-display); font-weight: 600; font-size: 1.1rem; color: var(--ink); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: .3rem; top: 1.1rem; font-size: 1.5rem; color: var(--gold-fill); transition: transform var(--t); font-family: var(--font-body); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { color: var(--ink-soft); padding: 0 2rem 1.4rem 0; margin: 0; }

.guestinfo { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); gap: 1.6rem; }
.info-block { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 1.6rem 1.7rem; }
.info-block h3 { display: flex; align-items: center; gap: .6rem; font-size: 1.2rem; }
.info-block h3 svg { width: 1.1em; height: 1.1em; color: var(--accent-fill); }
.info-block ul { list-style: none; margin: .4rem 0 0; padding: 0; display: grid; gap: .5rem; }
.info-block li { position: relative; padding-left: 1.3rem; color: var(--ink-soft); font-size: .95rem; }
.info-block li::before { content: ""; position: absolute; left: 0; top: .55em; width: 7px; height: 7px; border-radius: 50%; background: var(--gold-fill); }

.contact-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 1.4rem; margin-bottom: 3rem; }
.contact-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 1.8rem; text-align: center; transition: transform var(--t), box-shadow var(--t); }
.contact-card:hover { transform: translateY(-4px); box-shadow: var(--s-hover); }
.contact-card svg { width: 2rem; height: 2rem; color: var(--accent-fill); margin-bottom: .8rem; }
.contact-card h3 { font-size: 1.1rem; margin-bottom: .3rem; }
.contact-card a, .contact-card p { color: var(--ink-soft); font-size: .98rem; margin: 0; word-break: break-word; }
.contact-card a:hover { color: var(--accent-text); }

/* The MB form ships its own card styling — keep the shell a plain wrapper, no chrome */
.contact-form-shell { background: transparent; border: 0; border-radius: 0; padding: 0; box-shadow: none; }
.contact-form-shell iframe { width: 100%; border: 0; }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { background: var(--ink); color: rgba(251,247,239,.8); padding-block: 3.5rem 2rem; position: relative; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2.5rem; align-items: start; }
.footer-brand img { height: 96px; width: auto; margin-bottom: 1rem; }
.footer-brand p { font-size: .92rem; color: rgba(251,247,239,.66); max-width: 34ch; }
.site-footer h4 { font-family: var(--font-display); text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; color: var(--gold-fill); margin-bottom: 1rem; }
.footer-links { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.footer-links a { color: rgba(251,247,239,.8); font-size: .95rem; transition: color var(--t); }
.footer-links a:hover { color: var(--gold-fill); }
.footer-social { display: flex; gap: .8rem; margin-top: .4rem; }
.footer-social a { width: 40px; height: 40px; border: 1px solid rgba(251,247,239,.24); border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: all var(--t); }
.footer-social a:hover { background: var(--gold-fill); border-color: var(--gold-fill); }
.footer-social svg { width: 18px; height: 18px; fill: rgba(251,247,239,.85); transition: fill var(--t); }
.footer-social a:hover svg { fill: var(--ink); }
.footer-bottom { border-top: 1px solid rgba(251,247,239,.14); margin-top: 2.5rem; padding-top: 1.5rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: .6rem; font-size: .82rem; color: rgba(251,247,239,.5); }
.footer-bottom a { color: rgba(251,247,239,.6); }

/* ==========================================================================
   Reveal + utilities
   ========================================================================== */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity 700ms ease, transform 700ms ease; }
.reveal.is-in { opacity: 1; transform: none; }
.prose p:last-child { margin-bottom: 0; }
.accent { color: var(--gold-fill); }
.section--dark .accent, .section--ink .accent, .hero .accent { color: var(--gold-fill); }
.mt-2 { margin-top: 2rem; }
.center { text-align: center; }

/* hide injected MB widget script/style nodes */
.mb_widget script, .mb_widget style, mb-widget script, mb-widget style { display: none !important; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 900px) {
  .split { grid-template-columns: 1fr; }
  .split--flip .split__media { order: 0; }
  .split__frame { display: none; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .species-index { columns: 1; }
}
@media (max-width: 820px) {
  .nav-toggle { display: block; z-index: 101; margin-left: auto; }
  /* full-screen overlay menu — every item visible without scrolling */
  .nav-main {
    position: fixed; inset: 0; width: 100%; height: 100vh; height: 100dvh;
    flex-direction: column; align-items: center; justify-content: center;
    gap: .1rem; background: var(--surface); padding: 5.5rem 1.5rem 2rem;
    transform: translateX(100%); transition: transform var(--t);
    overflow-y: auto; z-index: 90;
  }
  .nav-main.is-open { transform: none; }
  .nav-main > li { width: 100%; max-width: 440px; text-align: center; }
  .nav-main > li > a { color: var(--ink) !important; text-shadow: none; display: block; width: 100%; padding: .9rem 0; font-size: 1.2rem; border-bottom: 1px solid var(--line-soft); }
  .nav-main > li::after { display: none; }
  .nav-dropdown { position: static; transform: none; opacity: 1; visibility: visible; box-shadow: none; border: 0; padding: .2rem 0 .4rem; min-width: 0; background: transparent; }
  .nav-dropdown a { text-align: center; color: var(--ink-soft) !important; padding: .55rem 0; font-size: .82rem; }
  .nav-dropdown a small { display: none; }
  .nav-cta { margin: 1.2rem 0 0; width: 100%; max-width: 440px; }
  .site-header .nav-cta .btn { width: 100%; justify-content: center; }
  /* when the menu is open, drop the header's backdrop-filter so the fixed overlay
     is not trapped in the header's containing block (which clipped it before) */
  body.nav-open { overflow: hidden; }
  body.nav-open .site-header { background: var(--surface); backdrop-filter: none !important; -webkit-backdrop-filter: none !important; box-shadow: none; }
  body.nav-open .nav-toggle span { background: var(--ink); }
  body.nav-open .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  body.nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
  body.nav-open .nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}
@media (max-width: 540px) {
  body { font-size: 16px; }
  .wrap, .wrap--narrow { width: min(100% - 2rem, var(--wrap)); }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; }
  .hero__cta .btn { flex: 1; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
}
