/* ============================================================================
   Pioneer Trails RV Park — bespoke design pass ("Evergreen")
   Loaded AFTER styles.css so these brand tokens win over base.css defaults.
   Pacific-Northwest identity: deep pine green + warm cedar/campfire amber,
   warm-paper background, Zilla Slab slab-serif headings (trail-marker feel).
   ============================================================================ */
:root {
  --brand-primary: #1E5A3E;        /* pine / evergreen */
  --brand-primary-deep: #16432E;
  --brand-secondary: #14241B;      /* deep forest charcoal — dark sections */
  --accent: #CC7A3B;               /* cedar / campfire amber */
  --accent-deep: #B0652C;
  --brand-text: #1B2620;
  --brand-text-muted: #5A6961;
  --brand-bg: #FAF7F0;             /* warm paper */
  --brand-bg-alt: #ECF0E7;         /* soft sage mist */
  --brand-border: #DDE3D7;
  --font-heading: 'Zilla Slab', Georgia, 'Times New Roman', serif;
  --font-body: 'Inter', system-ui, -apple-system, sans-serif;
  --radius: 12px;
  --shadow-1: 0 8px 26px rgba(20,36,27,0.08);
  --shadow-2: 0 20px 52px rgba(20,36,27,0.18);
}

body { background: var(--brand-bg); color: var(--brand-text); font-family: var(--font-body); }
h1,h2,h3,h4 { font-family: var(--font-heading); letter-spacing: -0.01em; }

/* a faint topographic contour overlay, reused on dark sections + the photo band */
:root {
  --topo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='560' height='560' viewBox='0 0 560 560'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.05' stroke-width='1.5'%3E%3Cpath d='M-40 300 C120 200 200 360 320 300 440 240 520 360 600 300'/%3E%3Cpath d='M-40 340 C120 240 200 400 320 340 440 280 520 400 600 340'/%3E%3Cpath d='M-40 380 C120 280 200 440 320 380 440 320 520 440 600 380'/%3E%3Cpath d='M-40 260 C120 160 200 320 320 260 440 200 520 320 600 260'/%3E%3Cpath d='M-40 220 C120 120 200 280 320 220 440 160 520 280 600 220'/%3E%3C/g%3E%3C/svg%3E");
}

/* ---- Header / nav ---- */
.site-header { backdrop-filter: none; background: rgba(250,247,240,.96); box-shadow: 0 1px 0 rgba(20,36,27,.07); }
.nav-logo img { height: 48px; max-width: 260px; width: auto; }
.nav-links { gap: 22px; }
.nav-links > li > a {
  font-family: var(--font-body); font-weight: 700; text-transform: uppercase;
  color: var(--brand-text); letter-spacing: .07em; font-size: .76rem; white-space: nowrap;
}
.nav-links > li > a:hover { color: var(--brand-primary); }
.nav-cta { background: var(--brand-primary) !important; color:#fff !important; border-radius: 999px; white-space: nowrap; padding: 11px 22px !important; }
.nav-cta:hover { background: var(--brand-primary-deep) !important; opacity: 1; }
@media (max-width: 1040px) and (min-width: 861px) {
  .nav-links { gap: 15px; }
  .nav-links > li > a { font-size: .71rem; letter-spacing: .04em; }
}

/* dropdown parent */
.nav-parent {
  text-transform: uppercase; letter-spacing: .07em; font-size: .76rem;
  font-weight: 700; color: var(--brand-text); font-family: var(--font-body);
}
.nav-has-children:hover .nav-parent,
.nav-has-children:focus-within .nav-parent,
.nav-has-children.is-active .nav-parent { color: var(--brand-primary); }
.nav-dropdown a[aria-current="page"] { color: var(--brand-primary); }
@media (max-width: 1040px) and (min-width: 861px) {
  .nav-parent { font-size: .71rem; letter-spacing: .04em; }
}
@media (max-width: 860px) {
  .nav-parent { font-size: 1.05rem; padding: 16px 0; border-bottom: 1px solid var(--brand-border); width: 100%; }
  /* base.css's later desktop rule (opacity:0) wins over its own mobile rule at
     equal specificity — force the dropdown open inline in the mobile menu. */
  .nav-links .nav-dropdown {
    position: static; opacity: 1; visibility: visible; transform: none;
    box-shadow: none; border: none; background: transparent; min-width: 0;
    padding: 0 0 8px 16px; margin: 0;
  }
  .nav-links .nav-dropdown a { font-size: 1rem; }
}

/* ---- Buttons ---- */
.x-btn { border-radius: 999px; font-weight: 700; letter-spacing: .01em; }
.x-btn-primary { background: var(--brand-primary); }
.x-btn-primary:hover { background: var(--brand-primary-deep); }
.x-btn .ic { width: 18px; height: 18px; }
.x-btn-accent { display:inline-flex; align-items:center; gap:10px; padding:16px 30px; border-radius:999px; font-weight:700; font-size:1.05rem; text-decoration:none; background:var(--accent); color:#fff; transition:background .2s, transform .12s; }
.x-btn-accent:hover { background:var(--accent-deep); transform:translateY(-2px); text-decoration:none; color:#fff; }
.x-btn-outline {
  display:inline-flex; align-items:center; gap:10px; padding:16px 30px;
  border-radius:999px; font-weight:700; font-size:1.05rem; text-decoration:none;
  background:transparent; color:var(--brand-text); border:1.5px solid var(--brand-border);
  transition:border-color .2s, color .2s, transform .12s;
}
.x-btn-outline:hover { border-color:var(--brand-primary); color:var(--brand-primary); transform:translateY(-2px); text-decoration:none; }

/* ---- Hero (home) ---- */
.home-hero { min-height: 92vh; }
.home-hero .x-hero-scrim {
  background: linear-gradient(180deg, rgba(20,36,27,.34) 0%, rgba(20,36,27,.22) 38%, rgba(20,36,27,.86) 100%);
}
.x-eyebrow {
  background: transparent; border: 1.5px solid rgba(255,255,255,.55); color:#fff;
  border-radius: 999px; letter-spacing: .16em; padding: 8px 16px 8px 14px; gap: 9px;
}
.x-eyebrow::before { content:''; width:9px; height:9px; background:var(--accent); transform:rotate(45deg); display:inline-block; flex:none; }
.home-hero h1 { font-weight: 700; font-size: clamp(2.6rem, 6.4vw, 5.1rem); line-height: 1.0; max-width: 16ch; }
.x-hero .x-sub { font-weight: 500; }
.x-hero .x-chip svg { color: var(--accent); }

/* ---- Stat strip ---- */
.x-stats { background: var(--brand-secondary); position:relative; }
.x-stats::after { content:''; position:absolute; inset:0; background-image:var(--topo); background-size:560px; opacity:1; pointer-events:none; }
.x-stats .container { position:relative; z-index:1; }
.x-stat .num { color: var(--accent); font-family: var(--font-heading); font-weight: 700; }
.x-stat .lbl { color: rgba(255,255,255,.82); }

/* ---- Section heads ---- */
.x-head .k { color: var(--brand-primary); font-weight:700; letter-spacing:.16em; display:flex; align-items:center; gap:10px; }
.x-head.center .k { justify-content:center; }
.x-head .k::before { content:''; width:26px; height:2px; background:var(--accent); display:inline-block; }
.x-head h2 { font-weight: 700; }

/* ---- Welcome grid (home) ---- */
.welcome-grid { display:grid; grid-template-columns: 1.05fr .95fr; gap: clamp(32px,5vw,72px); align-items:center; }
.welcome-media { border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow-2); aspect-ratio: 5/4; position:relative; }
.welcome-media img { width:100%; height:100%; object-fit:cover; }
.welcome-copy .x-lead { font-size:1.2rem; color:var(--brand-text); font-weight:500; }
@media (max-width:820px){ .welcome-grid{ grid-template-columns:1fr; } .welcome-media{ aspect-ratio:16/10; } }

/* ---- Photo band (topographic) ---- */
.photo-band { position:relative; background-size:cover; background-position:center; padding: clamp(64px,11vw,140px) 0; color:#fff; text-align:center; }
.photo-band-scrim { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,36,27,.55), rgba(20,36,27,.78)); }
.photo-band-scrim::after { content:''; position:absolute; inset:0; background-image:var(--topo); background-size:560px; }
.photo-band .container { position:relative; z-index:2; }
.photo-band-quote {
  font-family: var(--font-heading); font-weight:600; font-size: clamp(1.5rem, 3.4vw, 2.6rem);
  line-height:1.25; max-width: 24ch; margin:0 auto; text-shadow: 0 2px 24px rgba(0,0,0,.3);
}
.photo-band-sub { margin: 18px auto 0; max-width: 52ch; color: rgba(255,255,255,.86); font-size:1.05rem; position:relative; z-index:2; }

/* ---- Cards (RV sites, cabins) — reuse .room-* grid ---- */
.room-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
@media (max-width:920px){ .room-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:560px){ .room-grid{ grid-template-columns: 1fr; } }
.room-card { background:#fff; border:1px solid var(--brand-border); border-radius: var(--radius); overflow:hidden; transition: transform .18s, box-shadow .18s; display:flex; flex-direction:column; }
.room-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-2); }
.room-card-img { aspect-ratio: 4/3; overflow:hidden; position:relative; }
.room-card-img img { width:100%; height:100%; object-fit:cover; transition: transform .5s ease; }
.room-card:hover .room-card-img img { transform: scale(1.05); }
.room-price { position:absolute; top:12px; right:12px; background:rgba(20,36,27,.86); color:#fff; font-weight:700; font-size:.82rem; padding:6px 12px; border-radius:999px; letter-spacing:.02em; }
.room-price small { font-weight:500; opacity:.8; }
.room-card-body { padding: 20px 22px 22px; flex:1; display:flex; flex-direction:column; }
.room-card-body h3 { font-size:1.4rem; font-weight:700; margin:0 0 6px; }
.room-beds { font-weight:600; color:var(--brand-text); margin:0 0 4px; }
.room-extra { color:var(--brand-text-muted); font-size:.96rem; margin:0 0 16px; line-height:1.5; }
.room-meta { margin-top:auto; display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; }
.room-sleeps, .room-tag { display:inline-flex; align-items:center; gap:7px; font-size:.85rem; font-weight:600; }
.room-sleeps { color:var(--brand-text); }
.room-sleeps svg { width:18px; height:18px; color:var(--brand-primary); }
.room-tag { color:var(--accent-deep); }
.room-tag svg { width:17px; height:17px; }

/* ---- Dark split feature ---- */
.feature-dark { background:var(--brand-secondary); position:relative; }
.feature-dark::before { content:''; position:absolute; inset:0; background-image:var(--topo); background-size:560px; pointer-events:none; }
.feature-grid { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,5vw,64px); align-items:center; position:relative; z-index:1; }
.feature-media { border-radius:var(--radius); overflow:hidden; box-shadow: var(--shadow-2); aspect-ratio:4/3; }
.feature-media img { width:100%; height:100%; object-fit:cover; }
.feature-dark .x-head h2, .feature-dark h2 { color:#fff; }
.feature-dark .x-head .k { color:#fff; }
.feature-copy p { color: rgba(255,255,255,.84); font-size:1.08rem; }
.feature-list { list-style:none; margin:18px 0 24px; padding:0; display:grid; gap:11px; }
.feature-list li { display:flex; gap:11px; align-items:flex-start; color:rgba(255,255,255,.9); line-height:1.5; }
.feature-list svg { flex:none; width:22px; height:22px; color:var(--accent); margin-top:1px; }
@media (max-width:820px){ .feature-grid{ grid-template-columns:1fr; } }

/* ---- Split feature (light, reusable) ---- */
.split-feature { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,5vw,64px); align-items:center; }
.split-media { border-radius:var(--radius); overflow:hidden; box-shadow: var(--shadow-2); aspect-ratio:4/3; }
.split-media img { width:100%; height:100%; object-fit:cover; }
@media (max-width:820px){ .split-feature{ grid-template-columns:1fr; } }

/* ---- Amenities ---- */
.amen-grid { display:grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
@media (max-width:820px){ .amen-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .amen-grid{ grid-template-columns:1fr; } }
.amen-card { display:flex; gap:16px; padding:22px; background:#fff; border:1px solid var(--brand-border); border-radius:var(--radius); transition:box-shadow .18s, transform .18s; }
.amen-card:hover { box-shadow: var(--shadow-2); transform:translateY(-3px); }
.amen-ic { flex:none; width:48px; height:48px; border-radius:12px; background: color-mix(in srgb, var(--brand-primary) 12%, transparent); display:flex; align-items:center; justify-content:center; }
.amen-ic svg { width:26px; height:26px; color:var(--brand-primary); }
.amen-card h3 { font-size:1.12rem; font-weight:700; margin:2px 0 5px; }
.amen-card p { margin:0; color:var(--brand-text-muted); font-size:.95rem; line-height:1.5; }

/* ---- Things to do ---- */
.todo-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:26px; }
@media (max-width:880px){ .todo-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .todo-grid{ grid-template-columns:1fr; } }
.todo-card { background:#fff; border:1px solid var(--brand-border); border-radius:var(--radius); overflow:hidden; transition:transform .18s, box-shadow .18s; display:block; color:inherit; }
.todo-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-2); text-decoration:none; }
.todo-img { aspect-ratio: 3/2; overflow:hidden; }
.todo-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.todo-card:hover .todo-img img { transform:scale(1.05); }
.todo-body { padding: 20px 22px 24px; }
.todo-body h3 { font-size:1.3rem; font-weight:700; margin:0 0 8px; }
.todo-body p { margin:0; color:var(--brand-text-muted); line-height:1.55; }

/* ---- Nearby attractions ---- */
.attr-grid { display:grid; grid-template-columns:1fr 1fr; gap:26px 44px; }
.attr-item { display:flex; gap:16px; }
.attr-pin { flex:none; width:46px; height:46px; border-radius:12px; background:color-mix(in srgb, var(--brand-primary) 12%, transparent); display:flex; align-items:center; justify-content:center; }
.attr-pin svg { width:24px; height:24px; color:var(--brand-primary); }
.attr-item h3 { font-size:1.2rem; font-weight:700; margin:2px 0 6px; }
.attr-item p { margin:0; color:var(--brand-text-muted); line-height:1.55; }
@media (max-width:760px){ .attr-grid{ grid-template-columns:1fr; gap:22px; } }

/* ---- Rate tables ---- */
.rate-wrap { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
@media (max-width:820px){ .rate-wrap{ grid-template-columns:1fr; } }
.rate-card { background:#fff; border:1px solid var(--brand-border); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-1); }
.rate-card h3 { background:var(--brand-secondary); color:#fff; margin:0; padding:18px 24px; font-size:1.25rem; font-weight:700; }
.rate-table { width:100%; border-collapse:collapse; }
.rate-table th, .rate-table td { text-align:left; padding:13px 24px; border-bottom:1px solid var(--brand-border); font-size:.98rem; }
.rate-table th { font-family:var(--font-body); font-weight:700; color:var(--brand-text); width:46%; }
.rate-table td { color:var(--brand-text-muted); font-weight:600; }
.rate-table tr:last-child th, .rate-table tr:last-child td { border-bottom:none; }
.rate-note { font-size:.92rem; color:var(--brand-text-muted); line-height:1.6; margin:18px 0 0; }
.policy-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:760px){ .policy-grid{ grid-template-columns:1fr; } }
.policy-card { background:var(--brand-bg-alt); border-radius:var(--radius); padding:24px; }
.policy-card h4 { font-size:1.1rem; font-weight:700; margin:0 0 8px; color:var(--brand-primary); }
.policy-card p { margin:0; color:var(--brand-text-muted); font-size:.96rem; line-height:1.6; }

/* ---- Quick-fact info strip ---- */
.info-strip { background:var(--brand-primary); color:#fff; }
.info-strip .container { display:flex; flex-wrap:wrap; gap:18px 40px; justify-content:center; padding:22px var(--container-pad); }
.info-strip .info { display:inline-flex; align-items:center; gap:10px; font-weight:600; font-size:.98rem; }
.info-strip svg { width:20px; height:20px; color:#fff; opacity:.9; }

/* ---- Home gallery teaser strip ---- */
.gteaser { display:grid; grid-template-columns:repeat(6,1fr); gap:12px; }
.gteaser-item { aspect-ratio:1/1; border-radius:10px; overflow:hidden; box-shadow:var(--shadow-1); display:block; }
.gteaser-item img { width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.gteaser-item:hover img { transform:scale(1.06); }
@media (max-width:900px){ .gteaser{ grid-template-columns:repeat(3,1fr);} }
@media (max-width:520px){ .gteaser{ grid-template-columns:repeat(2,1fr);} }

/* ---- Gallery page ---- */
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:820px){ .gallery-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .gallery-grid{ grid-template-columns:1fr; } }
.gallery-grid .x-gphoto { position:relative; }
.gallery-grid figcaption {
  position:absolute; inset:auto 0 0 0; padding:26px 16px 13px; color:#fff;
  font-weight:600; font-size:.96rem; line-height:1.3;
  background:linear-gradient(to top, rgba(0,0,0,.78), rgba(0,0,0,0));
  opacity:0; transform:translateY(8px); transition:opacity .25s ease, transform .25s ease;
}
.gallery-grid .x-gphoto:hover figcaption { opacity:1; transform:none; }
@media (max-width:760px){ .gallery-grid figcaption{ opacity:1; transform:none; } }

/* ---- Checklist ---- */
.x-checklist { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 28px; margin:18px 0 22px; padding:0; list-style:none; }
.x-checklist li { display:flex; gap:11px; align-items:flex-start; padding-left:0; margin:0; line-height:1.5; font-size:1.02rem; color:var(--brand-text); }
.x-checklist li::before { display:none; }
.x-checklist .x-ck { flex:none; width:22px; height:22px; color:var(--brand-primary); margin-top:1px; }
@media (max-width:520px){ .x-checklist{ grid-template-columns:1fr; } }

/* intro split */
.intro-split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:center; }
@media (max-width:820px){ .intro-split{ grid-template-columns:1fr; gap:22px; } }

/* ---- Rules columns ---- */
.rules-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:30px 44px; }
@media (max-width:760px){ .rules-grid{ grid-template-columns:1fr; } }
.rules-block h3 { font-size:1.2rem; font-weight:700; margin:0 0 12px; color:var(--brand-primary); display:flex; align-items:center; gap:10px; }
.rules-block h3 svg { width:22px; height:22px; color:var(--brand-primary); }
.rules-block ul { list-style:none; margin:0 0 8px; padding:0; }
.rules-block li { position:relative; padding-left:22px; margin-bottom:9px; color:var(--brand-text-muted); line-height:1.55; font-size:.98rem; }
.rules-block li::before { content:''; position:absolute; left:0; top:9px; width:7px; height:7px; background:var(--accent); transform:rotate(45deg); }

/* ---- Sister parks ---- */
.sister-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
@media (max-width:640px){ .sister-grid{ grid-template-columns:1fr; } }
.sister-card { display:block; background:#fff; border:1px solid var(--brand-border); border-radius:var(--radius); padding:28px; transition:transform .18s, box-shadow .18s; color:inherit; }
.sister-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-2); text-decoration:none; }
.sister-card .k { text-transform:uppercase; letter-spacing:.12em; font-size:.74rem; font-weight:700; color:var(--accent-deep); }
.sister-card h3 { font-size:1.3rem; font-weight:700; margin:8px 0 6px; }
.sister-card p { margin:0 0 12px; color:var(--brand-text-muted); }
.sister-card .x-arrow { display:inline-flex; align-items:center; gap:8px; font-weight:700; color:var(--brand-primary); font-size:.95rem; }

/* ---- Reviews ---- */
.reviews-stars { display:flex; justify-content:center; gap:6px; margin-bottom:18px; }
.reviews-stars svg { width:30px; height:30px; color:var(--accent); }

/* ---- Contact ---- */
.contact-grid { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,5vw,64px); align-items:start; }
@media (max-width:880px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-list { list-style:none; margin:24px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; }
.contact-list a, .contact-list .static { display:flex; align-items:center; gap:16px; padding:16px; border-radius:var(--radius); color:var(--brand-text); transition:background .15s; }
.contact-list a:hover { background:var(--brand-bg-alt); text-decoration:none; }
.contact-list .ci { flex:none; width:46px; height:46px; border-radius:12px; background:color-mix(in srgb, var(--brand-primary) 12%, transparent); display:flex; align-items:center; justify-content:center; }
.contact-list .ci svg { width:24px; height:24px; color:var(--brand-primary); }
.contact-list strong { display:block; font-size:1.05rem; }
.contact-list em { font-style:normal; color:var(--brand-text-muted); font-size:.9rem; }
.contact-form-wrap { background:#fff; border:1px solid var(--brand-border); border-radius:var(--radius); padding: clamp(24px,3vw,36px); box-shadow:var(--shadow-2); }
.contact-form h3 { font-size:1.4rem; font-weight:700; margin:0 0 18px; }
.contact-form label { display:block; font-size:.85rem; font-weight:600; color:var(--brand-text); margin-bottom:14px; }
.contact-form input, .contact-form textarea { width:100%; margin-top:6px; padding:12px 14px; font:inherit; font-weight:400; border:1px solid var(--brand-border); border-radius:8px; background:#fff; color:var(--brand-text); }
.contact-form input:focus, .contact-form textarea:focus { outline:none; border-color:var(--brand-primary); box-shadow:0 0 0 3px color-mix(in srgb, var(--brand-primary) 18%, transparent); }
.cf-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:480px){ .cf-row{ grid-template-columns:1fr; } }
.cf-note { font-size:.82rem; color:var(--brand-text-muted); margin:14px 0 0; text-align:center; }
.map-section { line-height:0; }
.map-section iframe { width:100%; height:440px; border:0; display:block; filter: saturate(.96); }

/* ---- Footer ---- */
.footer-brand { font-family:var(--font-heading); font-weight:700; font-size:1.4rem; color:#fff; margin-bottom:14px; }
.site-footer p { color:rgba(255,255,255,.7); font-size:.95rem; line-height:1.6; }
.footer-social { display:flex; gap:12px; margin-top:18px; }
.footer-social a { width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; color:#fff; transition:background .18s; }
.footer-social a:hover { background:var(--brand-primary); }
.footer-social svg { width:20px; height:20px; }

/* ---- "A day at the park" experiential story rows ---- */
.story-row { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); align-items:center; margin-bottom:clamp(40px,6vw,84px); }
.story-row:last-child { margin-bottom:0; }
.story-row:nth-child(even) .story-media { order:2; }
.story-media { position:relative; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-2); aspect-ratio:5/4; }
.story-media img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.story-row:hover .story-media img { transform:scale(1.04); }
.story-num { position:absolute; top:18px; left:18px; font-family:var(--font-heading); font-weight:700; font-size:2.4rem; color:#fff; line-height:1; text-shadow:0 2px 16px rgba(0,0,0,.45); opacity:.92; }
.story-kicker { text-transform:uppercase; letter-spacing:.18em; font-size:.74rem; font-weight:700; color:var(--accent-deep); display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.story-kicker::before { content:''; width:24px; height:2px; background:var(--accent); }
.story-copy h3 { font-size:clamp(1.6rem,3vw,2.2rem); font-weight:700; line-height:1.1; margin:0 0 14px; }
.story-copy p { font-size:1.08rem; line-height:1.7; color:var(--brand-text-muted); margin:0; }
@media (max-width:780px){ .story-row{ grid-template-columns:1fr; gap:20px; margin-bottom:48px; } .story-row:nth-child(even) .story-media{ order:0; } }

/* ---- Personal welcome note ---- */
.welcome-note { background:var(--brand-secondary); position:relative; overflow:hidden; }
.welcome-note::before { content:''; position:absolute; inset:0; background-image:var(--topo); background-size:560px; }
.welcome-note .container { position:relative; z-index:1; max-width:780px; text-align:center; padding-top:clamp(56px,8vw,96px); padding-bottom:clamp(56px,8vw,96px); }
.welcome-note .k { text-transform:uppercase; letter-spacing:.2em; font-size:.76rem; font-weight:700; color:var(--accent); margin-bottom:18px; }
.welcome-note p.note { font-family:var(--font-heading); font-weight:500; font-size:clamp(1.3rem,2.6vw,1.85rem); line-height:1.45; color:#fff; margin:0 0 22px; }
.welcome-note .sig { font-family:var(--font-heading); font-style:italic; font-size:1.15rem; color:rgba(255,255,255,.85); }

/* ---- Photo mosaic (home gallery teaser, richer) ---- */
.mosaic { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:150px; gap:12px; }
.mosaic a { border-radius:10px; overflow:hidden; box-shadow:var(--shadow-1); display:block; }
.mosaic a img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.mosaic a:hover img { transform:scale(1.06); }
.mosaic a.tall { grid-row:span 2; }
.mosaic a.wide { grid-column:span 2; }
@media (max-width:760px){ .mosaic{ grid-template-columns:repeat(2,1fr); grid-auto-rows:130px; } .mosaic a.wide{ grid-column:span 2; } .mosaic a.tall{ grid-row:span 1; } }

/* ---- Amenity photo strip ---- */
.amen-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:8px; }
.amen-strip figure { margin:0; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-1); aspect-ratio:4/3; position:relative; }
.amen-strip img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.amen-strip figure:hover img { transform:scale(1.05); }
.amen-strip figcaption { position:absolute; inset:auto 0 0 0; padding:22px 14px 11px; color:#fff; font-weight:600; font-size:.9rem; background:linear-gradient(to top, rgba(0,0,0,.8), rgba(0,0,0,0)); }
@media (max-width:760px){ .amen-strip{ grid-template-columns:1fr 1fr; } }

/* ---- Park map image ---- */
.parkmap-wrap { background:#fff; border:1px solid var(--brand-border); border-radius:var(--radius); padding:clamp(16px,3vw,32px); box-shadow:var(--shadow-1); text-align:center; }
.parkmap-wrap img { max-width:100%; height:auto; border-radius:8px; }

/* ---- Banner (inner page hero) ---- */
.x-banner .x-hero-scrim { background: linear-gradient(180deg, rgba(20,36,27,.5), rgba(20,36,27,.8)); }
.x-banner .x-hero-scrim::after { content:''; position:absolute; inset:0; background-image:var(--topo); background-size:560px; }
.x-banner h1 { font-weight:700; }
.x-banner .x-eyebrow { margin-bottom:16px; }
