/* =============================================================
   Karousel Hobby Farm — shared stylesheet
   Palette: matched to the farm's logo — warm olive green + golden
   mustard flower accent, cream paper background, dusty sky blue
   kept as a secondary functional accent. Simple, natural, a little magical.
   ============================================================= */

:root{
  --forest: #55503A;
  --forest-deep: #3A3626;
  --forest-light: #7C7658;
  --sage: #A6A17E;
  --sage-light: #E9E4D0;
  --meadow: #F3F0E4;
  --sky: #3E6E8C;
  --sky-light: #7FA6BC;
  --sky-pale: #E4EEF2;
  --gold: #D9A428;
  --gold-light: #F6E8C9;
  --gold-deep: #B87F1D;
  --terracotta: #C97A54;
  --cream: #FBF8F1;
  --paper: #FFFDF9;
  --ink: #2A2A22;
  --ink-soft: #5F5C4E;
  --ink-faint: #93907C;
  --line: rgba(85,80,58,.14);

  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Jost', 'Segoe UI', sans-serif;

  --radius: 18px;
  --radius-sm: 10px;
  --shadow-soft: 0 12px 40px rgba(85,80,58,.12);
  --shadow-blue: 0 12px 40px rgba(62,110,140,.18);
  --container: 1180px;

  --gradient-accent: linear-gradient(135deg, var(--sage) 0%, var(--sky) 55%, var(--gold) 100%);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; font-size:115%; } /* +15% base size, everything below is rem-based */
body{
  margin:0;
  font-family:var(--font-body);
  background:var(--cream);
  color:var(--ink);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family:var(--font-display); color:var(--forest-deep); font-weight:500; letter-spacing:.01em; margin:0 0 .5em; line-height:1.18; }
h1{ font-weight:500; }
h1 em, h2 em{ font-weight:500; }
p{ margin:0 0 1em; color:var(--ink-soft); }
.container{ max-width:var(--container); margin:0 auto; padding:0 clamp(1.2rem,4vw,2.5rem); }

/* ---------- eyebrow / swash / section rhythm ---------- */
.eyebrow{
  display:inline-block; font-family:var(--font-body); font-size:.72rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--sky); font-weight:600; margin-bottom:.6rem;
}
.swash{ width:150px; height:auto; margin:.5rem 0 1.1rem; }
.swash img{ width:100%; height:auto; display:block; }
.section{ padding:clamp(3rem,7vw,5.5rem) 0; }
.section--tint{ background:var(--meadow); }
.section--sky{ background:var(--sky-pale); }
.center{ text-align:center; max-width:640px; margin:0 auto; }

/* ---------- language toggle visibility ---------- */
html[data-lang="en"] [data-fr]{ display:none !important; }
html[data-lang="fr"] [data-en]{ display:none !important; }
.lang-toggle{
  display:inline-flex; align-items:center; gap:.3rem; border:1px solid var(--line);
  border-radius:50px; padding:3px; background:var(--paper);
}
.lang-toggle button{
  border:none; background:none; font-family:var(--font-body); font-size:.72rem; letter-spacing:.08em;
  padding:5px 11px; border-radius:50px; cursor:pointer; color:var(--ink-faint); font-weight:600;
}
.lang-toggle button.is-active{ background:var(--forest); color:#fff; }

/* ---------- header / nav ---------- */
.site-header{
  position:sticky; top:0; z-index:50; background:rgba(251,248,241,.92); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.site-header .container{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding-top:.9rem; padding-bottom:.9rem; }
.wordmark{ display:flex; align-items:center; }
.wordmark-logo{ height:90px; width:auto; display:block; }

nav.nav-primary{ display:flex; align-items:center; gap:1.9rem; }
nav.nav-primary a{ font-size:.86rem; letter-spacing:.02em; color:var(--ink); position:relative; padding:.3rem 0; }
nav.nav-primary a:hover{ color:var(--forest); }
nav.nav-primary a.is-current{ color:var(--forest); font-weight:600; }
.has-dropdown{ position:relative; }
.dropdown{
  position:absolute; top:100%; left:50%; transform:translateX(-50%); background:var(--paper);
  border:1px solid var(--line); border-radius:var(--radius-sm); padding:.5rem; min-width:180px;
  box-shadow:var(--shadow-soft); opacity:0; visibility:hidden; transform:translate(-50%,4px);
  transition:opacity .18s, transform .18s; margin-top:.6rem;
}
.has-dropdown:hover .dropdown, .has-dropdown:focus-within .dropdown{ opacity:1; visibility:visible; transform:translate(-50%,0); }
.dropdown a{ display:block; padding:.5rem .8rem; border-radius:6px; font-size:.84rem; }
.dropdown a:hover{ background:var(--meadow); }
.header-right{ display:flex; align-items:center; gap:1rem; }
.btn-nav{
  background:var(--forest); color:#fff !important; padding:.55rem 1.1rem; border-radius:50px;
  font-size:.8rem; letter-spacing:.03em; white-space:nowrap;
}
.btn-nav:hover{ background:var(--forest-deep); }
.nav-toggle{
  display:none; background:none; border:none; cursor:pointer; padding:.5rem; position:relative; z-index:70;
  width:44px; height:44px; border-radius:50%; transition:background .25s ease;
}
.nav-toggle .bar{ display:block; width:22px; height:2.5px; background:var(--forest-deep); margin:5px auto; border-radius:2px; transition:transform .3s cubic-bezier(.25,.46,.45,.94), opacity .2s ease, width .3s ease; }
.nav-toggle.is-open{ background:rgba(85,80,58,.12); box-shadow:0 2px 10px rgba(85,80,58,.1); }
.nav-toggle.is-open .bar{ background:var(--forest-deep); width:24px; height:3px; }
.nav-toggle.is-open .bar:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
.nav-toggle.is-open .bar:nth-child(2){ opacity:0; width:0; }
.nav-toggle.is-open .bar:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

.nav-mobile-extra{ display:none; }

@media (max-width: 880px){
  /* backdrop-filter on an ancestor creates a containing block for
     position:fixed descendants, which broke the full-screen mobile menu —
     drop it here so the menu positions against the viewport instead. */
  .site-header{ backdrop-filter:none; -webkit-backdrop-filter:none; background:rgba(251,248,241,.98); }
  .wordmark-logo{ height:51px; }
  nav.nav-primary{
    position:fixed; inset:0; z-index:60; background:rgba(251,248,241,.97); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    flex-direction:column; align-items:center; justify-content:center; gap:.3rem;
    padding:2rem clamp(1.2rem,4vw,2.5rem); overflow-y:auto;
    opacity:0; visibility:hidden; pointer-events:none; transform:none; transition:opacity .35s ease;
  }
  nav.nav-primary.is-open{ opacity:1; visibility:visible; pointer-events:all; }
  nav.nav-primary a{
    font-family:var(--font-display); font-size:1.55rem; font-weight:500; letter-spacing:.01em;
    padding:.6rem 0; border-bottom:none; width:auto; text-align:center; color:var(--ink);
  }
  nav.nav-primary a:hover{ color:var(--forest); }
  .has-dropdown{ text-align:center; }
  .dropdown{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:none; padding:0; margin:0 0 .4rem; display:none; background:none; }
  .dropdown a{ font-size:1.1rem; padding:.4rem 0; }
  .has-dropdown.is-open .dropdown{ display:block; }
  .nav-toggle{ display:block; }
  .header-right{ display:none !important; }
  .nav-mobile-extra{
    display:flex; flex-direction:column; align-items:center; gap:1.1rem; margin-top:1.6rem; width:100%;
  }
  .nav-mobile-extra .lang-toggle{ display:flex; gap:.6rem; }
  .nav-mobile-extra .lang-toggle button{
    font-size:.8rem; font-weight:600; letter-spacing:.04em; padding:.4rem 1rem; border:1px solid var(--line);
    border-radius:50px; background:none; color:var(--ink-soft); cursor:pointer;
  }
  .nav-mobile-extra .lang-toggle button.is-active{ background:var(--forest); color:#fff; border-color:var(--forest); }
  .nav-mobile-extra .btn-nav{ font-size:.88rem; }
}

/* ---------- buttons / links ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6rem; padding:.85rem 1.5rem; border-radius:50px;
  font-size:.85rem; letter-spacing:.03em; font-weight:600; transition:transform .2s, box-shadow .2s;
}
.btn--forest{ background:var(--forest); color:#fff; }
.btn--forest:hover{ transform:translateY(-2px); box-shadow:var(--shadow-soft); }
.btn--sky{ background:var(--sky); color:#fff; }
.btn--sky:hover{ transform:translateY(-2px); box-shadow:var(--shadow-blue); }
.btn--outline{ background:transparent; border:1.5px solid var(--forest); color:var(--forest); }
.btn--outline:hover{ background:var(--forest); color:#fff; }
.link-underline{ position:relative; font-weight:600; color:var(--forest); }
.link-underline::after{ content:""; position:absolute; left:0; right:0; bottom:-3px; height:1px; background:currentColor; transform:scaleX(1); transform-origin:left; }

/* ---------- hero ---------- */
.hero{
  padding:clamp(3rem,8vw,6rem) 0 clamp(2.5rem,6vw,4rem);
  background:
    radial-gradient(80% 60% at 85% 0%, var(--gold-light) 0%, transparent 60%),
    radial-gradient(70% 70% at 5% 10%, var(--sky-pale) 0%, transparent 55%),
    var(--cream);
  position:relative; overflow:hidden;
}
.hero .container{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
.hero h1{ font-size:clamp(2.3rem,4.6vw,3.6rem); }
.hero h1 em{ font-style:italic; color:var(--sky); }
.hero p.lead{ font-size:1.05rem; max-width:46ch; }
.hero-actions{ display:flex; gap:1rem; flex-wrap:wrap; margin-top:1.6rem; }
.hero-media{ position:relative; }
@media (max-width: 880px){ .hero .container{ grid-template-columns:1fr; } .hero-media{ order:-1; } }

/* ---------- full-bleed hero (wide photo, text anchored left) ---------- */
.hero-full{
  position:relative; width:100%; min-height:64vh; overflow:hidden;
  display:flex; align-items:flex-start; justify-content:flex-start;
}
.hero-full-media{ position:absolute; inset:0; z-index:0; }
.hero-full-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.hero-full-media .photo-placeholder{ position:absolute; inset:0; border-radius:0; }
.hero-full-scrim{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(to right, rgba(34,50,41,.68) 0%, rgba(34,50,41,.4) 32%, rgba(34,50,41,.1) 58%, transparent 78%),
    linear-gradient(to top, rgba(34,50,41,.3) 0%, transparent 40%);
}
.hero-full-text{
  position:relative; z-index:2; max-width:500px; margin-left:0; margin-right:auto;
  padding:clamp(1.4rem,3.5vw,2.8rem) 0;
  color:#fff;
}
.hero-full-text .eyebrow{ color:var(--gold-light); font-size:.684rem; }
.hero-full-text h1{ color:#fff; font-size:clamp(2.185rem,4.37vw,3.515rem); }
.hero-full-text h1 em{ font-style:italic; color:var(--gold-light); }
.hero-full-text .lead{ font-size:.9975rem; max-width:420px; color:rgba(255,255,255,.87); text-shadow:0 1px 3px rgba(0,0,0,.35), 0 4px 18px rgba(0,0,0,.3); }
.hero-full-text .swash{ margin:.3rem 0 .8rem; }
.hero-full-text .swash svg{ stroke:var(--gold-light); }
.hero-full-text .hero-actions .btn{ font-size:.8075rem; }
.btn--outline-light{ background:transparent; border:1.5px solid rgba(255,255,255,.85); color:#fff; }
.btn--outline-light:hover{ background:#fff; color:var(--forest-deep); transform:translateY(-2px); box-shadow:0 12px 40px rgba(0,0,0,.25); }
@media (max-width: 880px){
  .hero-full{ min-height:78vh; align-items:flex-end; justify-content:flex-start; }
  .hero-full-media{ overflow:hidden; }
  .hero-full-media img{ transform:scale(1.35) translate(-8%,-12%); transform-origin:center center; }
  .hero-full-text{ max-width:100%; margin-left:0; padding:1.6rem 0 2.4rem; }
}

/* ---------- photo placeholder (natural, no real images yet) ---------- */
.photo{
  position:relative; border-radius:var(--radius); overflow:hidden; aspect-ratio:4/5;
  border:2px solid transparent;
  background-image: linear-gradient(var(--paper), var(--paper)), var(--gradient-accent);
  background-origin: border-box;
  background-clip: padding-box, border-box;
}
.photo.ratio-wide{ aspect-ratio:16/10; }
.photo.ratio-square{ aspect-ratio:1/1; }
.photo img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s cubic-bezier(.16,1,.3,1); }
.photo:hover img{ transform:scale(1.045); }
.photo-placeholder{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:
    radial-gradient(120% 140% at 15% 0%, rgba(62,110,140,.28), transparent 55%),
    linear-gradient(150deg, var(--sage-light), var(--gold-light));
}
.photo-placeholder svg{ width:34%; opacity:.4; }
.photo-caption{
  position:absolute; left:0; right:0; bottom:0; padding:.6rem .9rem; font-size:.68rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--ink-faint); background:linear-gradient(0deg, rgba(255,253,249,.85), transparent);
}

/* ---------- animal cards (gradient-frame, per farm card style) ---------- */
.grid{ display:grid; gap:1.8rem; }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width: 980px){ .grid-3,.grid-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width: 620px){ .grid-2,.grid-3,.grid-4{ grid-template-columns:1fr; } }

.animal-card{
  border:2px solid transparent;
  border-radius: var(--radius);
  background-image: linear-gradient(var(--paper), var(--paper)), var(--gradient-accent);
  background-origin: border-box;
  background-clip: padding-box, border-box;
  overflow:hidden;
  transition: transform .25s, box-shadow .25s;
  display:flex; flex-direction:column;
}
.animal-card:hover{ transform:translateY(-4px); box-shadow:0 12px 40px rgba(62,110,140,.22); }
.animal-card .photo{ border:none; border-radius:0; aspect-ratio:1/1; background-image:none; background:var(--sage-light); }
.animal-card .body{ padding:1.3rem 1.4rem 1.5rem; }
.animal-card h3{ font-size:1.15rem; margin-bottom:.2rem; }
.animal-card .subtitle{ font-size:.82rem; color:var(--ink-faint); margin-bottom:.6rem; letter-spacing:.02em; }
.animal-card p{ font-size:.88rem; margin-bottom:.9rem; }

/* status badge with dot indicator */
.status-badge{
  display:inline-flex; align-items:center; gap:6px; padding:4px 12px; border-radius:50px;
  font-size:.625rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; margin-bottom:.7rem;
}
.status-badge::before{ content:""; width:6px; height:6px; border-radius:50%; background:currentColor; flex:none; }
.status-available{ background:#E7F1E1; color:#3B6D33; }
.status-reserved{ background:var(--gold-light); color:#8a6a35; }
.status-retired{ background:var(--sky-pale); color:var(--sky); }
.status-soon{ background:#F1EDE3; color:var(--ink-faint); }
.status-female{ background:#E7F1E1; color:#3B6D33; }
.status-male{ background:var(--sky-pale); color:var(--sky); }

/* ---------- promise / values icon grid ---------- */
.value-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:2rem 1.5rem; margin-top:2.2rem; }
@media (max-width: 780px){ .value-grid{ grid-template-columns:repeat(2,1fr); } }
.value-item{ text-align:center; }
.value-item .ico{
  width:64px; height:64px; margin:0 auto .9rem; border-radius:50%;
  background:
    radial-gradient(120% 120% at 30% 20%, rgba(201,169,110,.4), transparent 60%),
    linear-gradient(150deg, var(--gold-light), var(--paper));
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 24px rgba(169,128,63,.22);
  transition:transform .3s ease, box-shadow .3s ease;
}
.value-item:hover .ico{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(169,128,63,.3); }
.value-item .ico svg{ width:28px; height:28px; fill:var(--terracotta); stroke:none; }
.value-item .label{ font-size:.85rem; font-weight:600; color:var(--ink); }

/* ---------- split section ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
@media (max-width: 880px){ .split{ grid-template-columns:1fr; } }
.split.rev .split-media{ order:-1; }
.signature{
  margin-top:1.1rem; text-align:center; display:flex; flex-direction:column; gap:.3rem;
  font-family:var(--font-display); font-style:italic; font-size:1.05rem; color:var(--forest-deep); letter-spacing:.01em;
}
.signature-role{
  font-family:var(--font-body); font-style:normal; font-size:.68rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-faint); font-weight:600;
}

/* ---------- quote banner ---------- */
.quote-banner{
  padding:clamp(3rem,8vw,5rem) 0; text-align:center; background:var(--forest); color:#fff;
}
.quote-banner .paw{ display:block; width:64px; height:64px; margin:0 auto 1.3rem; opacity:.9; }
.quote-banner .paw svg{ width:100%; height:100%; fill:var(--gold-light); }
.quote-banner p{ font-family:var(--font-display); font-style:italic; font-size:clamp(1.1rem,2vw,1.5rem); color:#fff; max-width:20ch; margin:0 auto; }

/* ---------- detail / profile page ---------- */
.profile-hero{ padding-top:clamp(2rem,5vw,3rem); }
.profile-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem,5vw,3.5rem); align-items:flex-start; }
@media (max-width: 880px){ .profile-grid{ grid-template-columns:1fr; } }
.profile-facts{ display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.5rem; margin:1.6rem 0; padding:1.4rem 1.6rem; background:var(--meadow); border-radius:var(--radius-sm); }
.profile-facts .fact .k{ display:block; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:.2rem; }
.profile-facts .fact .v{ font-weight:600; color:var(--forest-deep); }
.thumb-row{ display:flex; gap:.7rem; margin-top:.8rem; }
.thumb-row .photo{ width:70px; height:70px; aspect-ratio:1/1; border-radius:10px; border-width:1.5px; }

/* ---------- OFA health screening table ---------- */
.health-block{ margin:1.6rem 0; }
.health-block h3{ font-size:.98rem; margin-bottom:.2rem; }
.health-reg{ font-size:.82rem; color:var(--ink-faint); margin-bottom:.7rem; }
.health-reg a{
  display:inline-flex; align-items:center; gap:.35rem; color:var(--sky); font-weight:600;
  text-decoration:underline; text-underline-offset:3px; transition:color .2s;
}
.health-reg a::after{ content:"\2197"; font-size:.9em; }
.health-reg a:hover{ color:var(--sky-light); }
.health-table-wrap{ overflow-x:auto; border-radius:var(--radius-sm); border:1px solid var(--line); }
.health-table{ width:100%; border-collapse:collapse; font-size:.82rem; }
.health-table th, .health-table td{ padding:.6rem .8rem; text-align:left; white-space:nowrap; }
.health-table thead th{ background:var(--meadow); color:var(--forest-deep); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; }
.health-table tbody tr{ border-top:1px solid var(--line); }
.health-table tbody td.conclusion{ font-weight:600; color:var(--forest-deep); }

/* ---------- placeholder note (used when real content pending) ---------- */
.note-pending{
  border:1.5px dashed var(--line); border-radius:var(--radius-sm); padding:1.1rem 1.3rem;
  background:var(--paper); font-size:.86rem; color:var(--ink-faint);
}

/* ---------- contact ---------- */
/* ---------- legal prose (privacy policy, etc.) ---------- */
.legal-content h2{ font-size:1.3rem; margin-top:1.9rem; }
.legal-content h2:first-child{ margin-top:0; }
.legal-content p{ font-size:.94rem; }

.contact-list{ max-width:460px; margin:1.8rem auto 0; }
.contact-row{ display:flex; align-items:center; justify-content:space-between; padding:.9rem 0; border-bottom:1px solid var(--line); }
.contact-row .k{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); }
.contact-row .v{ font-weight:600; color:var(--forest-deep); }

/* ---------- contact form (Netlify Forms) ---------- */
.contact-form-wrap{ max-width:480px; margin:2.2rem auto 0; text-align:left; }
.contact-form-wrap h3{ text-align:center; font-size:1.05rem; margin-bottom:1.2rem; }
.hp-field{ position:absolute; left:-9999px; top:-9999px; }
.form-row{ margin-bottom:1.1rem; }
.form-row label{ display:block; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:.4rem; }
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea{
  width:100%; padding:.75rem .95rem; border:1.5px solid var(--line); border-radius:var(--radius-sm);
  background:var(--paper); font-family:var(--font-body); font-size:.95rem; color:var(--ink);
  transition:border-color .2s, box-shadow .2s;
}
.contact-form textarea{ resize:vertical; min-height:110px; }
.contact-form input:focus, .contact-form textarea:focus{
  outline:none; border-color:var(--sky); box-shadow:0 0 0 3px var(--sky-pale);
}
.contact-form .btn{ width:100%; border:none; cursor:pointer; }
.contact-form .btn:disabled{ opacity:.6; cursor:default; transform:none; }
.form-status{ margin-top:1rem; padding:.8rem 1rem; border-radius:var(--radius-sm); font-size:.88rem; text-align:center; }
.form-status.is-success{ background:var(--sage-light); color:var(--forest-deep); }
.form-status.is-error{ background:#f6dcdc; color:#8a3030; }

/* ---------- footer ---------- */
.site-footer{ padding:2.6rem 0; background:var(--forest-deep); color:rgba(255,255,255,.82); }
.footer-row{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; }
.footer-logo{ height:52px; width:auto; display:block; }
@media (max-width: 880px){ .footer-logo{ height:38px; } }
.footer-nav{ display:flex; gap:1.4rem; flex-wrap:wrap; }
.footer-nav a{ font-size:.82rem; color:rgba(255,255,255,.75); }
.footer-nav a:hover{ color:#fff; }
.footer-copy{ font-size:.78rem; color:rgba(255,255,255,.55); margin-top:1.6rem; }
.footer-credit{ opacity:.8; }
.footer-credit a{ color:rgba(255,255,255,.7); text-decoration:underline; text-underline-offset:2px; }
.footer-credit a:hover{ color:#fff; }

/* ---------- misc ---------- */
.tag-row{ display:flex; gap:.6rem; flex-wrap:wrap; margin-bottom:1rem; }
.tag{ font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; padding:4px 10px; border-radius:50px; background:var(--meadow); color:var(--forest); font-weight:600; }
.divider{ height:1px; background:var(--line); margin:2.4rem 0; border:none; }
.story-list{ margin:.5rem 0 1.1rem; padding-left:0; list-style:none; }
.story-list li{ position:relative; padding-left:1.6rem; margin-bottom:.45rem; color:var(--ink-soft); }
.story-list li::before{ content:"—"; position:absolute; left:0; color:var(--gold-deep); font-weight:600; }
[data-reveal]{ opacity:1; }

/* ---------- gallery slider ---------- */
.gallery-slider{ position:relative; max-width:820px; margin:2.6rem auto 0; border-radius:var(--radius); overflow:hidden; aspect-ratio:16/10; background:var(--sage-light); box-shadow:var(--shadow-soft); }
.gallery-track{ position:relative; width:100%; height:100%; }
.gallery-slide{ position:absolute; inset:0; width:100%; height:100%; border:none; padding:0; margin:0; background:none; cursor:zoom-in; opacity:0; visibility:hidden; transition:opacity .7s ease; }
.gallery-slide.is-active{ opacity:1; visibility:visible; z-index:1; }
.gallery-slide img{ width:100%; height:100%; object-fit:cover; display:block; }
.gallery-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:42px; height:42px; border-radius:50%; background:rgba(255,253,249,.9); border:none; color:var(--forest-deep); font-size:1.4rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s, transform .2s; }
.gallery-arrow:hover{ background:#fff; transform:translateY(-50%) scale(1.06); }
.gallery-prev{ left:14px; }
.gallery-next{ right:14px; }
.gallery-dots{ display:flex; gap:.5rem; justify-content:center; margin-top:1.1rem; }
.gallery-dots button{ width:8px; height:8px; border-radius:50%; border:none; background:var(--line); cursor:pointer; padding:0; transition:background .2s, transform .2s; }
.gallery-dots button.is-active{ background:var(--gold-deep); transform:scale(1.3); }
@media (max-width:620px){
  .gallery-slider{ border-radius:var(--radius-sm); }
  .gallery-arrow{ width:36px; height:36px; font-size:1.2rem; }
}

/* ---------- show photos grid ---------- */
.show-photos{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; max-width:820px; margin:2.6rem auto 0; }
.show-photo{ position:relative; border:none; padding:0; margin:0; background:none; cursor:zoom-in; border-radius:var(--radius-sm); overflow:hidden; aspect-ratio:3/2; box-shadow:var(--shadow-soft); }
.show-photo img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
.show-photo:hover img{ transform:scale(1.04); }
@media (max-width: 640px){ .show-photos{ grid-template-columns:1fr; } }

/* ---------- gallery lightbox ---------- */
.lightbox{ position:fixed; inset:0; z-index:900; background:rgba(42,42,34,.94); display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:opacity .3s ease; padding:2rem; }
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox-img{ max-width:92vw; max-height:82vh; border-radius:var(--radius-sm); box-shadow:0 20px 60px rgba(0,0,0,.4); }
.lightbox-close{ position:absolute; top:20px; right:20px; z-index:2; width:46px; height:46px; border-radius:50%; border:none; background:rgba(255,255,255,.14); color:#fff; font-size:1.7rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s; }
.lightbox-close:hover{ background:rgba(255,255,255,.28); }
.lightbox-arrow{ position:absolute; top:50%; transform:translateY(-50%); width:48px; height:48px; border-radius:50%; border:none; background:rgba(255,255,255,.14); color:#fff; font-size:1.7rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s; }
.lightbox-arrow:hover{ background:rgba(255,255,255,.28); }
.lightbox-prev{ left:20px; }
.lightbox-next{ right:20px; }
@media (max-width:620px){
  .lightbox-close{ top:14px; right:14px; width:42px; height:42px; }
  .lightbox-arrow{ width:40px; height:40px; }
}

/* ---------- animal profile modal (cats.html / dogs.html cards) ---------- */
.profile-modal-overlay{
  position:fixed; inset:0; z-index:920; background:rgba(42,42,34,.55);
  display:flex; align-items:flex-start; justify-content:center;
  padding:clamp(1.2rem,4vw,3.5rem) 1rem; overflow-y:auto;
}
.profile-modal-overlay[hidden]{ display:none; }
.profile-modal{
  position:relative; background:var(--paper); border-radius:var(--radius);
  max-width:920px; width:100%; margin:auto;
  padding:clamp(1.6rem,4vw,2.8rem) clamp(1.2rem,4vw,2.8rem);
  box-shadow:0 24px 70px rgba(0,0,0,.35);
}
.profile-modal-close{
  position:absolute; top:.9rem; right:.9rem; width:2.3rem; height:2.3rem; border-radius:50%;
  border:1px solid var(--line); background:var(--paper); color:var(--ink);
  font-size:1.3rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background .2s;
}
.profile-modal-close:hover{ background:var(--meadow); }
.profile-modal-body .profile-grid{ margin-top:0; }
.profile-modal-loading{ text-align:center; padding:3rem 1rem; color:var(--ink-faint); }
@media (max-width:620px){
  .profile-modal{ padding:3.2rem 1.1rem 1.8rem; border-radius:var(--radius-sm); }
}

/* ---------- animal profile modal: photo zoom hint ---------- */
.profile-modal-body .photo{ cursor:zoom-in; }
#profileLightbox{ z-index:940; }

/* ---------- guides / articles ---------- */
.article-wrap{ max-width:820px; }
.breadcrumbs{ font-size:.78rem; color:var(--ink-faint); margin-bottom:1.2rem; }
.breadcrumbs a{ color:var(--sky); }
.breadcrumbs span span, .breadcrumbs > span > span{ margin:0 .35rem; }
.article h1{ font-size:clamp(1.8rem,4vw,2.6rem); }
.byline{ font-size:.82rem; color:var(--ink-faint); margin:0 0 1.6rem; }
.byline a{ color:var(--forest); text-decoration:underline; text-underline-offset:2px; }
.answer-box{
  background:var(--paper); border-left:4px solid var(--gold); border-radius:var(--radius-sm);
  padding:1.1rem 1.3rem; box-shadow:var(--shadow-soft); font-size:.98rem; margin-bottom:1.8rem;
}
.article-figure{ margin:0 0 2rem; }
.article-figure img{ width:100%; max-height:440px; object-fit:cover; border-radius:var(--radius); }
.article-body h2{ font-size:1.45rem; margin-top:2.2rem; }
.article-body h3{ font-size:1.12rem; margin-top:1.6rem; }
.article-body p, .article-body li{ font-size:.98rem; }
.article-body ul, .article-body ol{ padding-left:1.3rem; }
.article-body li{ margin-bottom:.45rem; }
.article-body a, .faq a, .article-cta p a{ color:var(--sky); text-decoration:underline; text-underline-offset:2px; }
.article-body .note-pending{ margin-bottom:1.4rem; }
.article-table{ width:100%; border-collapse:collapse; margin:1.2rem 0 1.6rem; font-size:.86rem; background:var(--paper); border-radius:var(--radius-sm); overflow:hidden; display:block; overflow-x:auto; }
.article-table th, .article-table td{ text-align:left; vertical-align:top; padding:.7rem .85rem; border-bottom:1px solid var(--line); }
.article-table thead th{ background:var(--meadow); color:var(--forest-deep); font-weight:600; }
.faq{ margin-top:3rem; }
.faq h2{ font-size:1.45rem; }
.faq-item{ border-bottom:1px solid var(--line); padding:.9rem 0; }
.faq-item summary{ cursor:pointer; font-weight:600; color:var(--forest-deep); list-style:none; position:relative; padding-right:1.6rem; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:"+"; position:absolute; right:0; top:0; color:var(--gold-deep); font-size:1.2rem; line-height:1.4; }
.faq-item[open] summary::after{ content:"–"; }
.faq-item div{ padding-top:.6rem; font-size:.95rem; color:var(--ink-soft); }
.article-cta{ margin-top:3rem; padding:2rem; background:var(--meadow); border-radius:var(--radius); text-align:center; }
.article-cta h2{ font-size:1.35rem; }
.article-cta .btn{ margin-top:.6rem; }
.related{ margin-top:2.6rem; }
.related h2{ font-size:1.25rem; }
.related-list{ display:grid; gap:.7rem; }
.related-link{ display:block; padding:.9rem 1.1rem; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-sm); color:var(--forest-deep); font-weight:500; transition:border-color .2s, transform .2s; }
.related-link:hover{ border-color:var(--gold); transform:translateX(3px); }
.sources{ margin-top:2.4rem; font-size:.82rem; color:var(--ink-faint); }
.sources h3{ font-size:.95rem; }
.sources ul{ padding-left:1.1rem; }
.sources a{ color:var(--sky); text-decoration:underline; text-underline-offset:2px; word-break:break-word; }
.guide-grid{ margin-top:1.4rem; }
.guide-card{ display:block; }
.guide-card .photo{ background-color:var(--sage-light); }
.guide-card h3{ font-size:1.05rem; margin-top:.5rem; }

/* fixes 2026-09-30: let profile columns shrink so health tables scroll instead of widening the page on mobile */
.profile-grid > *{ min-width:0; }
/* animal names inside dogs.html / cats.html cards (h2 instead of a second h1) */
.profile-name{ font-size:2em; }

/* ---------- card hover effects (2026-09-30) ---------- */
.animal-card{ position:relative; transition:transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s cubic-bezier(.16,1,.3,1); }
.animal-card h3{ transition:color .3s ease; }
.animal-card .photo{ isolation:isolate; }
.animal-card .photo img{ transition:transform 1.1s cubic-bezier(.16,1,.3,1), filter .6s ease; }
/* soft tint + light sweep over the photo */
.animal-card .photo::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, transparent 45%, rgba(42,42,34,.28) 100%);
  opacity:0; transition:opacity .5s ease;
}
.animal-card .photo::after{
  content:""; position:absolute; top:0; bottom:0; left:-75%; width:50%; z-index:2; pointer-events:none;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent);
  transform:skewX(-18deg); opacity:0;
}
/* "view" arrow badge on clickable cards */
a.animal-card .body, .animal-card.is-linked .body{ position:relative; }
a.animal-card .body::after, .animal-card.is-linked .body::after{
  content:"→"; position:absolute; top:1.2rem; right:1.2rem; width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:1rem; line-height:1;
  background:var(--forest); color:#fff; opacity:0; transform:translateX(-8px) scale(.85);
  transition:opacity .35s ease, transform .45s cubic-bezier(.16,1,.3,1);
}
a.animal-card .body h3, .animal-card.is-linked .body h3{ padding-right:2.4rem; }
.animal-card.is-linked{ cursor:pointer; }
.link-underline::after{ transition:transform .45s cubic-bezier(.16,1,.3,1); }
.animal-card .tag{ transition:background .3s ease, color .3s ease; }

@media (hover:hover) and (pointer:fine){
  .animal-card:hover{ transform:translateY(-6px); box-shadow:0 22px 50px -12px rgba(62,110,140,.35), 0 6px 16px rgba(85,80,58,.08); }
  .animal-card:hover .photo img{ transform:scale(1.07); filter:saturate(1.08); }
  .animal-card:hover .photo::before{ opacity:1; }
  .animal-card:hover .photo::after{ animation:card-shine .9s ease forwards; }
  a.animal-card:hover h3, .animal-card.is-linked:hover h3{ color:var(--sky); }
  a.animal-card:hover .body::after, .animal-card.is-linked:hover .body::after{ opacity:1; transform:none; }
  .animal-card:hover .tag{ background:var(--gold-light); color:var(--forest-deep); }
  .animal-card:hover .link-underline::after{ transform:scaleX(.35); }
  /* info-only cards (no link): gentler lift */
  div.animal-card:not(.is-linked):hover{ transform:translateY(-3px); box-shadow:0 14px 36px -10px rgba(62,110,140,.28); }
  /* standalone photos (profile pages) */
  .photo{ transition:box-shadow .45s ease; }
  .photo:hover{ box-shadow:0 16px 40px -12px rgba(62,110,140,.35); }
}
@keyframes card-shine{ 0%{ left:-75%; opacity:0; } 20%{ opacity:1; } 100%{ left:130%; opacity:0; } }
/* keyboard users get the same highlight */
.animal-card:focus-visible{ outline:3px solid var(--gold); outline-offset:3px; transform:translateY(-6px); }
@media (prefers-reduced-motion: reduce){
  .animal-card, .animal-card .photo img, .animal-card .body::after{ transition:none !important; }
  .animal-card:hover, .animal-card:hover .photo img{ transform:none !important; }
  .animal-card:hover .photo::after{ animation:none !important; }
}

/* ---------- values icons v2 (2026-09-30): line-art in a gradient ring, matches card frames ---------- */
.value-item .ico{
  width:92px; height:92px; margin:0 auto 1.1rem; border-radius:50%;
  border:2px solid transparent;
  background-image:
    radial-gradient(110% 110% at 30% 20%, var(--paper) 0%, var(--cream) 55%, var(--gold-light) 100%),
    var(--gradient-accent);
  background-origin:border-box; background-clip:padding-box, border-box;
  box-shadow:0 12px 28px -10px rgba(62,110,140,.28), inset 0 0 0 5px rgba(255,253,249,.7);
  display:flex; align-items:center; justify-content:center;
  transition:transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s cubic-bezier(.16,1,.3,1);
}
.value-item .ico svg{
  width:48px; height:48px; fill:none; stroke:var(--forest-deep); stroke-width:1.5;
  stroke-linecap:round; stroke-linejoin:round; overflow:visible;
  transition:transform .45s cubic-bezier(.16,1,.3,1);
}
.value-item .ico svg .fill{ fill:var(--gold); fill-opacity:.32; stroke:none; transition:fill-opacity .4s ease, fill .4s ease; }
.value-item .ico svg .fill.solid{ fill:var(--terracotta); fill-opacity:.85; }
.value-item .label{ display:block; font-size:.9rem; letter-spacing:.01em; }
@media (hover:hover) and (pointer:fine){
  .value-item:hover .ico{ transform:translateY(-4px); box-shadow:0 20px 36px -12px rgba(62,110,140,.4), inset 0 0 0 5px rgba(255,253,249,.7); }
  .value-item:hover .ico svg{ transform:scale(1.08) rotate(-3deg); }
  .value-item:hover .ico svg .fill{ fill-opacity:.55; }
  .value-item:hover .ico svg .fill.solid{ fill-opacity:1; }
}
@media (prefers-reduced-motion: reduce){ .value-item .ico, .value-item .ico svg{ transition:none; } .value-item:hover .ico, .value-item:hover .ico svg{ transform:none; } }

/* ---------- header nav polish (2026-09-30): one-line labels, gold underline, dropdown chevron ---------- */
nav.nav-primary a{ white-space:nowrap; }
@media (min-width: 881px){
  nav.nav-primary{ gap:clamp(1.2rem,2.3vw,2.2rem); }
  nav.nav-primary a{ font-size:.9rem; letter-spacing:.035em; font-weight:500; color:var(--ink-soft); transition:color .25s ease; }
  nav.nav-primary a:hover, nav.nav-primary a.is-current{ color:var(--forest-deep); }
  nav.nav-primary a.is-current{ font-weight:600; }
  nav.nav-primary > a::after, .has-dropdown > a::after{
    content:""; position:absolute; left:0; right:0; bottom:-1px; height:1.5px; border-radius:2px;
    background:var(--gold); transform:scaleX(0); transform-origin:left center;
    transition:transform .4s cubic-bezier(.16,1,.3,1);
  }
  nav.nav-primary > a:hover::after, nav.nav-primary > a.is-current::after,
  .has-dropdown:hover > a::after, .has-dropdown > a.is-current::after{ transform:scaleX(1); }
  .has-dropdown{ display:flex; align-items:center; gap:.4rem; }
  .has-dropdown::after{
    content:""; width:6px; height:6px; margin-top:-3px; flex:none;
    border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
    color:var(--ink-faint); transform:rotate(45deg); transition:transform .3s ease, color .3s ease;
  }
  .has-dropdown:hover::after{ transform:rotate(225deg) translate(-2px,-2px); color:var(--gold-deep); }
  .dropdown{ min-width:190px; padding:.45rem; }
  .dropdown::before{ content:""; position:absolute; left:0; right:0; top:-.8rem; height:.8rem; } /* hover bridge */
  .dropdown a{ font-size:.86rem; color:var(--ink-soft); }
  .dropdown a:hover{ color:var(--forest-deep); }
  .dropdown a::after{ display:none; }
}
/* narrow laptops: keep everything on one line */
@media (min-width: 881px) and (max-width: 1180px){
  .site-header .container{ gap:1rem; }
  .wordmark-logo{ height:72px; }
  nav.nav-primary{ gap:1.15rem; }
  nav.nav-primary a{ font-size:.85rem; letter-spacing:.02em; }
  .header-right{ gap:.6rem; }
  .btn-nav{ padding:.5rem .95rem; }
}

/* ---------- OFA health table as compact rows (2026-09-30) ---------- */
.health-table-wrap{ overflow:visible; background:var(--paper); }
.health-table, .health-table tbody{ display:block; width:100%; }
.health-table thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.health-table tbody tr{
  display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:1rem; row-gap:.35rem;
  grid-template-areas:"reg res" "meta meta";
  align-items:center; padding:.85rem 1.1rem; border-top:1px solid var(--line);
  transition:background .25s ease;
}
.health-table tbody tr:first-child{ border-top:none; }
.health-table tbody tr:hover{ background:var(--meadow); }
.health-table th, .health-table td{ padding:0; white-space:normal; }
.health-table td.hr-reg{ grid-area:reg; font-size:.95rem; font-weight:600; color:var(--forest-deep); line-height:1.3; }
/* date · age · OFA number share one muted line */
.health-table td.hr-date, .health-table td.hr-age, .health-table td.hr-ofa{
  grid-row:2; font-size:.78rem; color:var(--ink-faint); line-height:1.4; display:inline;
}
.health-table tbody tr{ grid-template-columns:auto auto minmax(0,1fr) auto; grid-template-areas:"reg reg reg res" "date age ofa ofa"; column-gap:.5rem; }
.health-table td.hr-date{ grid-area:date; white-space:nowrap; }
.health-table td.hr-age{ grid-area:age; white-space:nowrap; }
.health-table td.hr-ofa{ grid-area:ofa; font-variant-numeric:tabular-nums; letter-spacing:.02em; overflow-wrap:anywhere; }
.health-table td.hr-age::before, .health-table td.hr-ofa::before{ content:"·"; margin-right:.5rem; opacity:.6; }
.health-table td.hr-age::after{ content:" mo"; }
html[data-lang="fr"] .health-table td.hr-age::after{ content:" mois"; }
.health-table td.hr-ofa::before{ content:"· OFA"; margin-right:.35rem; }
.health-table td.conclusion{
  grid-area:res; justify-self:end; text-align:center; max-width:13rem;
  font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; line-height:1.35;
  padding:.3rem .75rem; border-radius:50px; background:#E7F1E1; color:#3B6D33;
}
@media (max-width: 480px){
  .health-table tbody tr{ grid-template-areas:"reg reg reg" "res res res" "date age ." "ofa ofa ofa"; grid-template-columns:auto auto minmax(0,1fr); row-gap:.25rem; }
  .health-table td.hr-ofa{ grid-row:4; white-space:nowrap; }
  .health-table td.hr-ofa::before{ content:"OFA"; }
  .health-table td.conclusion{ justify-self:start; text-align:left; margin:.1rem 0 .15rem; }
}

/* ---------- all buttons & status pills in the farm green (2026-09-30) ---------- */
.btn--sky{ background:var(--forest); color:#fff; }
.btn--sky:hover{ background:var(--forest-deep); box-shadow:var(--shadow-soft); }
.status-male, .status-retired{ background:#E7F1E1; color:#3B6D33; }

/* ---------- mobile hero: dogs visible, text below the photo (2026-09-30) ---------- */
@media (max-width: 880px){
  .hero-full{ display:block; min-height:0; background:rgb(34,50,41); }
  .hero-full-media{ position:relative; inset:auto; height:clamp(300px,52vh,480px); }
  .hero-full-media img{ transform:none; object-position:80% 78%; }
  .hero-full-scrim{
    inset:auto; top:0; left:0; right:0; height:clamp(300px,52vh,480px);
    background:linear-gradient(to bottom, rgba(34,50,41,.25) 0%, rgba(34,50,41,0) 18%, rgba(34,50,41,0) 62%, rgba(34,50,41,.85) 90%, rgb(34,50,41) 100%);
  }
  .hero-full > .container{ margin-top:-4.2rem; }
  .hero-full-text{ padding:0 0 2.6rem; }
  .hero-full-text h1{ font-size:clamp(2.1rem,9vw,2.8rem); }
  .hero-full-text .lead{ font-size:.98rem; color:rgba(255,255,255,.85); text-shadow:none; }
  .hero-full-text .hero-actions{ gap:.75rem; }
  .hero-full-text .swash{ margin:.1rem 0 .5rem; }
}

/* ---------- close / arrow icons drawn in CSS so they sit dead-center (2026-09-30) ---------- */
.profile-modal-close, .lightbox-close, .lightbox-arrow, .gallery-arrow{ font-size:0 !important; color:transparent; position:absolute; }
.profile-modal-close::before, .profile-modal-close::after,
.lightbox-close::before, .lightbox-close::after{
  content:""; position:absolute; left:50%; top:50%; width:16px; height:1.75px; border-radius:2px;
  background:var(--forest-deep); transform:translate(-50%,-50%) rotate(45deg); transition:background .2s;
}
.profile-modal-close::after, .lightbox-close::after{ transform:translate(-50%,-50%) rotate(-45deg); }
.lightbox-close::before, .lightbox-close::after{ width:18px; height:2px; background:#fff; }
.lightbox-arrow::before, .gallery-arrow::before{
  content:""; position:absolute; left:50%; top:50%; width:10px; height:10px;
  border-top:2px solid #fff; border-right:2px solid #fff; border-radius:1px;
  transform:translate(-65%,-50%) rotate(45deg);
}
.lightbox-prev::before, .gallery-prev::before{ transform:translate(-35%,-50%) rotate(-135deg); }
.gallery-arrow::before{ border-color:var(--forest-deep); width:9px; height:9px; }

/* modal close stays pinned in the corner while the profile scrolls */
.profile-modal-close{
  position:sticky; top:.9rem; z-index:6; margin-left:auto;
  margin-top:calc(-1 * clamp(1.6rem,4vw,2.8rem) + .9rem);
  margin-right:calc(-1 * clamp(1.2rem,4vw,2.8rem) + .9rem);
  margin-bottom:calc(clamp(1.6rem,4vw,2.8rem) - 3.2rem);
  box-shadow:0 4px 14px rgba(42,42,34,.12);
}
.profile-modal-close:hover::before, .profile-modal-close:hover::after{ background:var(--ink); }
@media (max-width:620px){
  .profile-modal-close{ top:.7rem; margin-top:calc(-3.2rem + .7rem); margin-right:calc(-1.1rem + .6rem); margin-bottom:.2rem; }
}

/* ---------- mobile menu "Get in Touch" button: proper padding (2026-09-30) ---------- */
@media (max-width: 880px){
  nav.nav-primary .nav-mobile-extra a.btn-nav{
    display:inline-flex; align-items:center; justify-content:center; min-width:210px;
    padding:.95rem 2.2rem; border-radius:50px; line-height:1.2;
    font-family:var(--font-body); font-size:1rem; font-weight:600; letter-spacing:.04em;
    color:#fff; background:var(--forest);
    box-shadow:0 10px 24px -10px rgba(58,54,38,.45);
  }
  nav.nav-primary .nav-mobile-extra a.btn-nav:active{ background:var(--forest-deep); }
}

/* Screen-reader / SEO only heading */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
