/* Cabin Adventures — Fishing Lodge card grid styling
   Scoped under .cabinadv-lodges so it can't leak into Elementor-built pages elsewhere on the site. */

.cabinadv-lodges {
  --moss:#2F4A3D;
  --moss-dark:#20332A;
  --parchment:#F4EEE0;
  --parchment-deep:#EAE1CB;
  --rust:#C97D3D;
  --charcoal:#26241F;
  --gold:#A9812F;
  --line: rgba(38,36,31,0.12);

  font-family:'Inter',sans-serif;
  color:var(--charcoal);
  max-width:1100px;
  margin:0 auto;
  padding:32px 20px 60px;
}

.cabinadv-lodges *{ box-sizing:border-box; }

.cabinadv-lodges .lodges-intro .eyebrow{
  font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--moss); font-weight:700;
}
.cabinadv-lodges .lodges-intro h1{
  font-family:'Fraunces',Georgia,serif; font-weight:600; font-size:30px; margin:6px 0 6px;
}
.cabinadv-lodges .lodges-intro p{ font-size:14px; opacity:.75; margin:0 0 24px; max-width:640px; line-height:1.5; }

/* --- Filter / nav bar --- */
.cabinadv-lodges .filters{
  background:var(--parchment); border:1px solid var(--line); border-radius:6px;
  padding:16px 18px; margin-bottom:28px; display:flex; flex-wrap:wrap; gap:20px; align-items:flex-start;
}
.cabinadv-lodges .filter-group{ display:flex; flex-direction:column; gap:8px; }
.cabinadv-lodges .filter-group__label{
  font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--moss); opacity:.8;
}
.cabinadv-lodges .filter-group__opts{ display:flex; flex-wrap:wrap; gap:6px; }

.cabinadv-lodges .chip-link{
  font-family:'Inter',sans-serif; font-size:12px; font-weight:600;
  background:#fff; border:1px solid var(--line); color:var(--charcoal);
  padding:6px 12px; border-radius:20px; cursor:pointer;
  display:inline-flex; align-items:center; gap:5px; text-decoration:none;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.cabinadv-lodges .chip-link:hover{ border-color:var(--moss); background:rgba(47,74,61,0.06); }
.cabinadv-lodges .chip-link.is-active{ background:var(--moss); border-color:var(--moss); color:#fff; }
.cabinadv-lodges .chip-link.chip-active{ background:var(--rust); border-color:var(--rust); color:#fff; }

.cabinadv-lodges .region-select{
  font-family:'Inter',sans-serif; font-size:13px; font-weight:600;
  background:#fff; border:1px solid var(--line); color:var(--charcoal);
  padding:8px 12px; border-radius:6px; cursor:pointer; min-width:180px;
}
.cabinadv-lodges .filters__note{ font-size:11px; opacity:.55; margin:2px 0 0; max-width:220px; line-height:1.4; }

.cabinadv-lodges .results-count{ font-size:13px; font-weight:600; opacity:.7; margin:0 0 18px; }

/* --- Grid / cards --- */
.cabinadv-lodges .grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:24px;
}
.cabinadv-lodges .card{
  background:var(--parchment); border-radius:4px; overflow:hidden;
  box-shadow:0 1px 2px rgba(38,36,31,0.08), 0 8px 24px -12px rgba(38,36,31,0.25);
  display:flex; flex-direction:column; position:relative;
}
.cabinadv-lodges .card__photo-wrap{ position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--moss-dark); }
.cabinadv-lodges .card__photo-wrap img{ width:100%; height:100%; object-fit:cover; display:block; }
.cabinadv-lodges .card__photo-wrap .no-photo{
  width:100%; height:100%; display:flex; align-items:center; justify-content:center;
  color:var(--parchment); opacity:.4; font-size:12px;
}

.cabinadv-lodges .card__badges{ position:absolute; top:10px; right:10px; display:flex; flex-direction:column; gap:6px; align-items:flex-end; }
.cabinadv-lodges .badge{
  font-family:'Fraunces',Georgia,serif; font-size:11px; letter-spacing:.04em; font-weight:600;
  padding:5px 10px 4px; border-radius:2px; color:#fff; text-transform:uppercase;
  box-shadow:0 2px 6px rgba(0,0,0,.25); transform:rotate(-2deg);
}
.cabinadv-lodges .badge--visited{ background:var(--rust); }
.cabinadv-lodges .badge--verified{ background:var(--gold); }

.cabinadv-lodges .card__location-tag{
  position:absolute; left:10px; bottom:10px; background:var(--moss-dark); color:var(--parchment);
  font-size:12px; font-weight:600; padding:5px 10px; border-radius:2px; display:flex; align-items:center; gap:5px;
}
.cabinadv-lodges .card__location-tag svg{ width:11px; height:11px; flex-shrink:0; }

.cabinadv-lodges .card__body{ padding:18px 18px 14px; display:flex; flex-direction:column; gap:12px; flex:1; }
.cabinadv-lodges .card__name{ font-family:'Fraunces',Georgia,serif; font-size:19px; font-weight:600; line-height:1.2; margin:0; }
.cabinadv-lodges .card__name a{ color:inherit; text-decoration:none; }
.cabinadv-lodges .card__name a:hover{ text-decoration:underline; }

.cabinadv-lodges .card__species-row{ display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.cabinadv-lodges .species-tag{
  font-size:10.5px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  padding:3px 9px; border-radius:20px; background:rgba(47,74,61,0.08); color:var(--moss);
}
.cabinadv-lodges .carp-callout{ font-family:'Fraunces',Georgia,serif; font-size:13px; font-weight:600; color:var(--rust); display:flex; align-items:center; gap:4px; }
.cabinadv-lodges .carp-callout svg{ width:14px; height:14px; }

.cabinadv-lodges .card__facts{
  display:grid; grid-template-columns:repeat(5, 1fr); gap:6px; padding:10px 0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.cabinadv-lodges .fact{ display:flex; flex-direction:column; align-items:center; gap:4px; text-align:center; }
.cabinadv-lodges .fact svg{ width:17px; height:17px; color:var(--moss); flex-shrink:0; }
.cabinadv-lodges .fact span{ font-size:9.5px; font-weight:600; color:var(--charcoal); opacity:.75; line-height:1.2; }
.cabinadv-lodges .fact.fact--off svg{ color:var(--charcoal); opacity:.3; }
.cabinadv-lodges .fact.fact--off span{ opacity:.4; }

.cabinadv-lodges .card__tags{ display:flex; flex-wrap:wrap; gap:6px; }
.cabinadv-lodges .tag{ font-size:11px; font-weight:600; padding:4px 9px; border-radius:20px; background:rgba(201,125,61,0.12); color:var(--rust); }

.cabinadv-lodges .card__note{ font-size:13px; line-height:1.5; color:var(--charcoal); opacity:.85; margin:0; }

.cabinadv-lodges .card__more{ display:none; font-size:13px; line-height:1.6; padding-top:2px; }
.cabinadv-lodges .card__more.is-open{ display:block; }
.cabinadv-lodges .card__more dl{ margin:0; }
.cabinadv-lodges .card__more dt{ font-weight:700; color:var(--moss); margin-top:8px; }
.cabinadv-lodges .card__more dd{ margin:2px 0 0; opacity:.85; }

.cabinadv-lodges .card__actions{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:6px; }
.cabinadv-lodges .btn-toggle{
  background:none; border:none; font-family:'Inter',sans-serif; font-weight:700; font-size:12px;
  letter-spacing:.03em; text-transform:uppercase; color:var(--moss); cursor:pointer; padding:6px 0;
  display:flex; align-items:center; gap:4px;
}
.cabinadv-lodges .btn-toggle svg{ width:11px; height:11px; transition:transform .2s ease; }
.cabinadv-lodges .btn-toggle[aria-expanded="true"] svg{ transform:rotate(180deg); }

.cabinadv-lodges .btn-book{
  background:var(--rust); color:#fff; font-family:'Inter',sans-serif; font-weight:700; font-size:12px;
  letter-spacing:.02em; text-decoration:none; padding:9px 16px; border-radius:3px; white-space:nowrap;
}
.cabinadv-lodges .btn-book:hover{ background:#b56b2c; color:#fff; }

.cabinadv-lodges .filters__clear{
  font-size:12px; font-weight:700; color:var(--rust); background:none; border:none;
  cursor:pointer; text-decoration:underline; text-underline-offset:2px;
  padding:0; margin-top:2px; display:none; align-self:flex-start;
}
.cabinadv-lodges .filters__clear.is-visible{ display:inline-block; }

.cabinadv-lodges .card.is-hidden{ display:none; }

.cabinadv-lodges .live-empty-state{
  display:none; text-align:center; padding:60px 20px; opacity:.6; font-size:14px; grid-column:1/-1;
}
.cabinadv-lodges .live-empty-state.is-visible{ display:block; }

.cabinadv-lodges .empty-state{ text-align:center; padding:60px 20px; opacity:.6; font-size:14px; }

/* Defensive backup for the Excluded Areas setting in AdSense — some Auto ads
   placements respect this CSS-based ignore hint even before the dashboard
   exclusion is applied. Doesn't replace setting Excluded Areas in AdSense,
   just adds a second layer. */
.cabinadv-lodges .grid{ google-auto-ads: ignore; }

/* --- Ad slots --- */
.cabinadv-lodges .ad-slot{
  grid-column: 1 / -1; /* if ever placed inside a grid by mistake, span full width rather than squeezing into one column */
  width:100%;
  min-height:100px;
  margin:8px 0 28px;
  padding:14px;
  border:1px dashed var(--line);
  border-radius:6px;
  background:rgba(255,255,255,0.4);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
}
.cabinadv-lodges .ad-slot__label{
  font-size:10px; letter-spacing:.1em; text-transform:uppercase; opacity:.4; font-weight:700;
}

@media (prefers-reduced-motion: reduce){ .cabinadv-lodges .btn-toggle svg{ transition:none; } }
