/* dogs.css — page-specific styles for dogs.html
   Extracted from inline <style> by tools/css-consolidate.py. */

.nav-links .nav-item:nth-child(2):hover > a,.nav-links .nav-item:nth-child(2).active > a{color:var(--green-d)}

.nav-links .nav-item.current > a{color:var(--green-d)}

.nav-links .nav-item.current > a::after{right:0;background:var(--green-d)}

/* ============================================
   DOGS PAGE — page-specific styles (.dogs- namespace)
   ============================================ */

.dogs-heading-accent{font-family:'Fraunces',Georgia,'Times New Roman',serif;font-variation-settings:'opsz' 144,'SOFT' 100;font-style:italic;font-weight:700;letter-spacing:-0.005em}

/* HERO — single dog photo, dark forest overlay */
.dogs-hero{position:relative;min-height:clamp(520px,72vh,720px);overflow:hidden;background:#0a1408;margin:clamp(16px,2vw,28px);border-radius:var(--r-xl)}

.dogs-hero-bg{position:absolute;inset:0}

.dogs-hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 32%;filter:saturate(0.96) contrast(1.04)}

.dogs-hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.15) 0%,rgba(0,0,0,0) 30%,rgba(0,0,0,0.5) 70%,rgba(0,0,0,0.85) 100%),linear-gradient(90deg,rgba(0,0,0,0.6) 0%,rgba(0,0,0,0.1) 60%,rgba(0,0,0,0) 100%);}

.dogs-hero-content{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:clamp(70px,10vh,120px) var(--gutter) clamp(60px,8vh,100px);color:#fbf6e7;display:flex;flex-direction:column;justify-content:center;min-height:clamp(520px,72vh,720px)}

.dogs-hero-eyebrow{font:700 11px/1 var(--sans);letter-spacing:0.28em;text-transform:uppercase;color:#fff;margin-bottom:24px;display:inline-flex;align-items:center;gap:14px;background:rgba(255,255,255,0.10);backdrop-filter:blur(6px);padding:10px 16px 10px 14px;border-radius:999px;border:1px solid rgba(255,255,255,0.20);align-self:flex-start}

.dogs-hero-eyebrow::before{content:"";width:8px;height:8px;background:var(--gold);border-radius:50%;box-shadow:0 0 12px rgba(244,211,94,0.6)}

.dogs-hero h1{font-family:var(--slab);font-weight:800;font-size:clamp(44px,6.6vw,92px);line-height:0.98;letter-spacing:-0.025em;margin:0 0 22px;max-width:18ch;text-wrap:balance;color:#fbf6e7}

.dogs-hero h1 span{color:var(--gold-l)}

.dogs-hero p.lede{font-size:clamp(19px,2.0vw,24px);max-width:54ch;margin:0 0 36px;color:rgba(255,255,255,0.92);line-height:1.45;font-family:var(--slab);font-weight:500}

.dogs-hero p.lede strong{color:#fff;font-weight:700}

.dogs-hero-actions{display:flex;gap:14px;flex-wrap:wrap}

/* FILTERS — sticky chip row */
.dogs-filters{background:var(--paper);padding:clamp(28px,3.5vw,40px) var(--gutter) clamp(20px,2.5vw,28px);border-bottom:1px solid var(--line-soft)}

.dogs-filters .container{max-width:var(--maxw)}

.dogs-filters-row{display:flex;align-items:center;gap:clamp(14px,2vw,28px);flex-wrap:wrap}

.dogs-filter-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

.dogs-filter-label{font:700 11px/1 var(--sans);letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);margin-right:4px}

.dogs-chip{font-family:var(--sans);font-weight:600;font-size:13px;color:var(--green-d);background:var(--paper-2);padding:9px 16px;border-radius:999px;cursor:pointer;border:1.5px solid transparent;transition:all .2s ease;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}

.dogs-chip:hover{background:var(--paper);border-color:var(--gold)}

.dogs-chip.on{background:var(--green-d);color:#fbf6e7;border-color:var(--green-d)}

.dogs-chip .count{font-size:11px;opacity:0.75;font-variant-numeric:tabular-nums}

.dogs-chip.on .count{opacity:0.85}

.dogs-result-count{margin-left:auto;font:600 13px var(--sans);color:var(--muted);font-variant-numeric:tabular-nums}

/* GRID */
.dogs-grid-section{padding:clamp(36px,5vw,60px) var(--gutter) clamp(80px,10vw,140px);background:var(--paper)}

.dogs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2vw,28px);max-width:var(--maxw);margin:0 auto}

@media (max-width:1024px){.dogs-grid{grid-template-columns:repeat(3,1fr)}}

@media (max-width:760px){.dogs-grid{grid-template-columns:repeat(2,1fr)}}

@media (max-width:480px){.dogs-grid{grid-template-columns:1fr}}

.dogs-card{display:flex;flex-direction:column;background:var(--paper-2);border-radius:var(--r-lg);padding:14px;transition:all .25s ease;border:1px solid transparent;text-decoration:none;color:inherit;position:relative}

.dogs-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);background:var(--paper);border-color:var(--gold)}

.dogs-card .photo{aspect-ratio:4/5;overflow:hidden;background:var(--paper-3);position:relative;border-radius:var(--r-md)}

.dogs-card .photo img{width:100%;height:100%;object-fit:cover;object-position:center 28%;display:block;transition:transform .6s ease}

.dogs-card:hover .photo img{transform:scale(1.04)}

.dogs-card .tag{position:absolute;top:10px;left:10px;padding:6px 12px;background:rgba(255,255,255,0.94);backdrop-filter:blur(6px);font:700 10px/1 var(--sans);letter-spacing:0.16em;text-transform:uppercase;border-radius:999px;color:var(--green-d);z-index:1}

.dogs-card .tag.bulgaria{background:var(--gold);color:var(--green-d)}

.dogs-card .tag.romania{background:var(--leaf);color:#fbf6e7}

.dogs-card h3{font-family:var(--slab);font-weight:800;font-size:24px;letter-spacing:-0.02em;color:var(--green-d);margin:14px 4px 4px;text-transform:uppercase;line-height:1}

.dogs-card .meta{margin:0 4px 8px;font:600 12px/1 var(--sans);letter-spacing:0.10em;text-transform:uppercase;color:var(--muted);display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}

.dogs-card .meta .sep{display:inline-block;color:var(--gold)}

.dogs-card p{font-size:14px;line-height:1.55;color:var(--ink-2);margin:6px 4px 14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.dogs-card .meet{margin:auto 4px 6px 4px;font:700 11px/1 var(--sans);letter-spacing:0.18em;text-transform:uppercase;color:var(--green-d);display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:8px 14px;border-radius:999px;background:var(--paper);transition:all .2s ease}

.dogs-card:hover .meet{background:var(--gold);color:var(--green-d)}

/* EMPTY STATE */
.dogs-empty{grid-column:1/-1;text-align:center;padding:80px 20px;color:var(--muted)}

.dogs-empty h3{font-family:var(--slab);font-weight:700;font-size:22px;color:var(--green-d);margin:0 0 8px}

.dogs-empty p{font-size:15px;margin:0 auto;max-width:42ch;line-height:1.6}

/* CLOSING CTA */
.dogs-bridge{background:linear-gradient(160deg,var(--green-d) 0%,var(--green) 100%);color:#fbf6e7;padding:clamp(70px,10vw,120px) var(--gutter);position:relative;overflow:hidden}

.dogs-bridge::after{content:"";position:absolute;bottom:-50px;right:-60px;width:280px;height:280px;background:var(--gold);-webkit-mask:url('../images/paw-only.svg') no-repeat center/contain;mask:url('../images/paw-only.svg') no-repeat center/contain;opacity:0.18;pointer-events:none;transform:rotate(20deg)}

.dogs-bridge .container{max-width:880px;text-align:center;position:relative;z-index:1}

.dogs-bridge .eyebrow{color:var(--gold-l);justify-content:center;margin-bottom:22px}

.dogs-bridge .eyebrow::before{background:var(--gold)}

.dogs-bridge h2{font-family:var(--slab);font-weight:800;font-size:clamp(34px,4.6vw,56px);line-height:1.08;letter-spacing:-0.02em;margin:0 0 22px;color:#fbf6e7;text-wrap:balance}

.dogs-bridge h2 span{color:var(--gold-l);font-style:italic;font-weight:600;font-family:'Fraunces',Georgia,serif}

.dogs-bridge p{font-size:17px;color:rgba(251,246,231,0.88);max-width:54ch;margin:0 auto 32px;line-height:1.6}

.dogs-bridge-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}

.dogs-bridge-actions .btn-secondary{background:transparent;color:#fbf6e7;border:1.5px solid rgba(255,255,255,0.55);font-family:var(--slab);font-weight:700;font-size:13px;letter-spacing:0.16em;text-transform:uppercase;padding:16px 28px;border-radius:999px;display:inline-flex;align-items:center;gap:10px;transition:all .22s ease}

.dogs-bridge-actions .btn-secondary:hover{background:#fff;color:var(--green-d);border-color:#fff}

.dogs-hero-bg img{animation:kb-slow 24s ease-in-out infinite alternate;will-change:transform}

.dogs-hero-actions .btn-primary{animation:cta-pulse 2.6s ease-in-out infinite}

.dogs-hero-actions .btn-primary:hover{animation:none}

@media (prefers-reduced-motion:reduce){
  .r-up{transition:opacity 0.3s ease;transform:none !important}
  .r-up.in{transform:none !important}
  .dogs-hero-bg img{animation:none !important}
  .dogs-hero-actions .btn-primary{animation:none !important}
  html{scroll-behavior:auto}
}

/* ============================================================
   ASM v0.3.x — tighter grid for many dogs + extra tag colours
   ============================================================ */

/* Auto-fit grid: scales smoothly from 5 cols on wide screens to 1 on phones,
   no hard breakpoints needed. Cards stay at a sensible reading width. */
.dogs-grid{grid-template-columns:repeat(auto-fill, minmax(230px, 1fr));}
@media (min-width:1400px){.dogs-grid{grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));}}

/* Extra location/status tag colours */
.dogs-card .tag.uk{background:#5b8e3c;color:#fbf6e7}
.dogs-card .tag.other{background:var(--paper);color:var(--ink-2);border:1px solid var(--line-soft)}
.dogs-card .tag.reserved{background:#c4923a;color:#fbf6e7}
.dogs-card .tag.special{background:#b04a2e;color:#fbf6e7}

/* ============================================================
   Single-animal page (/dogs/{slug}-{id}/)
   ============================================================ */

.single-animal-wrap{padding-bottom:0;background:var(--paper)}

.single-animal-hero{max-width:var(--maxw);margin:0 auto;padding:clamp(20px,3vw,40px) var(--gutter) clamp(40px,6vw,80px);position:relative}

.single-animal-back{display:inline-flex;align-items:center;gap:8px;font:700 12px/1 var(--sans);letter-spacing:0.16em;text-transform:uppercase;color:var(--green-d);text-decoration:none;padding:10px 14px;border-radius:999px;background:var(--paper-2);transition:all .2s ease;margin-bottom:clamp(20px,3vw,32px)}
.single-animal-back:hover{background:var(--gold);color:var(--green-d)}

.single-animal-hero-inner{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,4vw,64px);align-items:start}
@media (max-width:880px){.single-animal-hero-inner{grid-template-columns:1fr}}

.single-animal-photo{position:relative;aspect-ratio:4/5;background:var(--paper-3);border-radius:var(--r-xl);overflow:hidden}
.single-animal-photo img{width:100%;height:100%;object-fit:cover;object-position:center 28%;display:block}
.single-animal-photo .tag{position:absolute;top:14px;left:14px;padding:8px 14px;font:700 11px/1 var(--sans);letter-spacing:0.18em;text-transform:uppercase;border-radius:999px;background:rgba(255,255,255,0.94);color:var(--green-d);backdrop-filter:blur(6px)}
.single-animal-photo .tag.reserved{background:#c4923a;color:#fbf6e7}
.single-animal-photo .tag.sanctuary{background:#7a5230;color:#fbf6e7}
.single-animal-photo .tag.foster{background:#5b8e3c;color:#fbf6e7}

.single-animal-meta{padding-top:clamp(12px,2vw,28px)}

.single-animal-eyebrow{display:inline-block;font:700 11px/1 var(--sans);letter-spacing:0.28em;text-transform:uppercase;color:var(--gold-d, #946d12);padding:8px 14px;background:var(--paper-2);border-radius:999px;margin-bottom:18px}

.single-animal-meta h1{font-family:var(--slab);font-weight:800;font-size:clamp(46px,6.6vw,84px);line-height:0.98;letter-spacing:-0.025em;color:var(--green-d);margin:0 0 18px}

.single-animal-stats{list-style:none;padding:0;margin:0 0 22px;display:flex;flex-wrap:wrap;gap:8px}
.single-animal-stats li{font:600 13px/1 var(--sans);color:var(--ink-2);background:var(--paper-2);padding:9px 14px;border-radius:999px}

.single-animal-lede{font-size:clamp(17px,1.6vw,20px);line-height:1.55;color:var(--ink);max-width:46ch;margin:0 0 28px;font-family:var(--slab);font-weight:500}

.single-animal-actions{display:flex;gap:12px;flex-wrap:wrap}

.single-animal-gallery{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter) clamp(40px,6vw,80px)}
.single-animal-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));gap:clamp(10px,1.5vw,16px)}
.single-animal-gallery-grid img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r-md);background:var(--paper-3);display:block}

.single-animal-bridge{background:linear-gradient(160deg,var(--green-d) 0%,var(--green) 100%);color:#fbf6e7;padding:clamp(60px,8vw,100px) var(--gutter);text-align:center}
.single-animal-bridge .container{max-width:680px;margin:0 auto}
.single-animal-bridge .eyebrow{color:var(--gold-l);justify-content:center;margin-bottom:18px}
.single-animal-bridge h2{font-family:var(--slab);font-weight:800;font-size:clamp(30px,4vw,46px);line-height:1.1;letter-spacing:-0.02em;color:#fbf6e7;margin:0 0 28px;text-wrap:balance}
.single-animal-bridge h2 span{color:var(--gold-l);font-style:italic;font-weight:600;font-family:'Fraunces',Georgia,serif}
.single-animal-bridge-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.single-animal-bridge-actions .btn-secondary{background:transparent;color:#fbf6e7;border:1.5px solid rgba(255,255,255,0.55);font-family:var(--slab);font-weight:700;font-size:13px;letter-spacing:0.16em;text-transform:uppercase;padding:14px 24px;border-radius:999px;display:inline-flex;align-items:center;gap:10px;transition:all .22s ease}
.single-animal-bridge-actions .btn-secondary:hover{background:#fff;color:var(--green-d);border-color:#fff}

/* Filter visibility: card has display:flex which beats user-agent [hidden],
   so hiding the attribute alone wasn't taking effect. Force it. */
.dogs-card[hidden]{display:none !important}

/* ============================================================
   Mobile responsiveness fixes (audit 2026-05-30)
   - Bump sub-13px text inside dogs.css-owned components
   - Ensure 44x44 tap targets for clickable elements on mobile
   ============================================================ */
@media (max-width:640px){
  /* Filter chips: ensure full 44px tap target */
  .dogs-chip{min-height:44px;padding-top:11px;padding-bottom:11px;font-size:14px}
  .dogs-chip .count{font-size:12px}

  /* Card "Meet" pill: ensure tap target */
  .dogs-card .meet{min-height:44px;padding-top:12px;padding-bottom:12px;font-size:12px}

  /* Card meta line readability */
  .dogs-card .meta{font-size:13px}

  /* Card body text: keep at 14px (already AA, but enforce on small screens) */
  .dogs-card p{font-size:14px}

  /* Single-animal back link: tap target */
  .single-animal-back{min-height:44px;padding-top:14px;padding-bottom:14px;font-size:13px}

  /* Single-animal stat pills: bump to 14px on mobile */
  .single-animal-stats li{font-size:14px;padding-top:11px;padding-bottom:11px}

  /* Bridge secondary CTA: ensure target height */
  .dogs-bridge-actions .btn-secondary,
  .single-animal-bridge-actions .btn-secondary{min-height:44px}

  /* Constrain hero margin so the rounded card never pushes content past viewport */
  .dogs-hero{margin-left:12px;margin-right:12px}
}


/* === PA hero mobile restructure (auto, 2026-05-31) === prefix:dogs */
@media (max-width:980px){
  .dogs-hero{
    display:flex; flex-direction:column;
    min-height:0 !important; height:auto !important;
    padding:0 !important; background:var(--paper);
    position:relative; overflow:hidden; align-items:stretch !important;
  }
  .dogs-hero-bg{
    position:relative !important; inset:auto !important; z-index:auto !important;
    width:100%; aspect-ratio:4/3; height:auto !important; order:1; flex:0 0 auto;
  }
  .dogs-hero-bg img{
    position:absolute !important; inset:0 !important;
    width:100%; height:100% !important; object-fit:cover; object-position:center 30%;
  }
  .dogs-hero > .container,
  .dogs-hero > .dogs-hero-content,
  .dogs-hero .dogs-hero-content{
    position:static !important; inset:auto !important;
    padding:0 !important; max-width:100%; width:100%; margin:0;
    background:var(--paper); color:var(--ink);
    order:2; flex:1 1 auto; min-height:0 !important; display:block !important;
  }
  .dogs-hero-eyebrow, .dogs-hero .eyebrow{ display:none !important; }
  .dogs-hero h1{
    position:absolute !important; top:37.5vw; left:0; right:0; transform:translateY(-50%);
    margin:0 !important; padding:0 24px; max-width:none; text-align:center; color:var(--paper-w);
    font-size:clamp(26px,7vw,38px); line-height:1.1;
    text-shadow:0 2px 14px rgba(0,0,0,.6), 0 1px 4px rgba(0,0,0,.5); z-index:3;
  }
  .dogs-hero h1 .accent, .dogs-hero h1 span{ color:var(--gold-l); }
  .dogs-hero .lede, .dogs-hero p.sub{
    margin:0 !important; padding:22px 22px 8px; max-width:none;
    background:var(--paper); color:#4a4a3d; font-size:14.5px; line-height:1.5; text-align:center;
  }
  .dogs-hero .lede strong{ color:var(--ink); }
  .dogs-hero .hero-actions, .dogs-hero .actions, .dogs-hero .dogs-hero-actions{
    margin:0 !important; padding:0 22px 24px; background:var(--paper);
    display:flex; flex-direction:row; flex-wrap:wrap; gap:10px;
    align-items:center; justify-content:center; width:100%;
  }
  .dogs-hero .btn-light{ background:transparent; border:1.5px solid var(--green-d); color:var(--green-d); }
  .dogs-hero .btn-light:hover{ background:var(--green-d); color:var(--paper-w); }
  .dogs-hero .hero-meta, .dogs-hero .meta, .dogs-hero .dogs-hero-meta{
    position:absolute; top:calc(75vw - 34px); left:50%; right:auto; bottom:auto; transform:translateX(-50%);
    margin:0 !important; padding:5px 14px; background:rgba(0,0,0,.34);
    backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); border-radius:999px;
    font-family:'Lora',Georgia,serif; font-style:italic; font-size:11px;
    color:rgba(251,246,231,.92); z-index:3; display:inline-flex; gap:5px; white-space:nowrap;
  }
  .dogs-hero .who{ color:var(--gold-l); font-weight:600; }
}

/* === PA hero mobile contrast/meta fix (auto, 2026-05-31b) === prefix:dogs */
@media (max-width:980px){
  .dogs-hero .lede, .dogs-hero p.lede,
  .dogs-hero p.sub, .dogs-hero .sub,
  .dogs-hero blockquote, .dogs-hero .quote{ color:#4a4a3d !important; }
  .dogs-hero .lede strong, .dogs-hero p.lede strong{ color:var(--ink) !important; }
  .dogs-hero .attrib, .dogs-hero .attribution,
  .dogs-hero .credit, .dogs-hero .source{ color:var(--gold-d) !important; }
  .dogs-hero .hero-meta, .dogs-hero .meta, .dogs-hero .dogs-hero-meta{ display:none !important; }
}

/* ============================================================
   Per-dog video (ASM "Video link" additional field -> VIDEOLINK).
   When present, the video takes the hero's primary slot (beside the
   meta) and every photo drops into the larger gallery below.
   ============================================================ */
.single-animal-hero-video{
  width:100%;
  max-width:360px;
  justify-self:center;
}
.single-animal-video-wrap{
  position:relative;
  width:100%;
  aspect-ratio:9 / 16;
  background:#000;
  border-radius:var(--r-xl, 16px);
  overflow:hidden;
  box-shadow:0 18px 44px rgba(0,0,0,.20);
}
.single-animal-video-frame{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
/* Bigger gallery tiles when the video owns the hero. */
.single-animal-gallery.has-video .single-animal-gallery-grid{
  grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:clamp(12px,1.8vw,20px);
}
