:root{
  --plum:#341443;
  --plum2:#4a2357;
  --cream:#f7f1e7;
  --paper:#fffaf2;
  --terra:#c95735;
  --terra2:#ab4328;
  --olive:#73734f;
  --ink:#241d26;
  --muted:#665e66;
  --line:#e1d7ca;
  --max:1440px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:"Inter",Arial,sans-serif;line-height:1.42}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.container{width:min(var(--max),calc(100% - 56px));margin:auto}
h1,h2,h3,.brand-name,.nav-links,.btn,.section-title,.impact-strip strong{font-family:"League Spartan",Arial,sans-serif}

.site-header{position:sticky;top:0;z-index:60;background:rgba(250,246,238,.97);border-bottom:1px solid rgba(52,20,67,.07);backdrop-filter:blur(10px)}
.nav{height:106px;display:flex;align-items:center;gap:30px}
.brand{display:flex;align-items:center;gap:15px;margin-right:auto;color:var(--plum)}
.brand img{width:76px;height:72px;object-fit:contain}
.brand-name{font-weight:800;line-height:.78;letter-spacing:-.025em;text-transform:uppercase;white-space:nowrap;font-size:2rem}
.brand-name span{display:block}
.brand-name .brand-real{font-size:1.28em;line-height:.9;margin-bottom:4px}
.nav-links{display:flex;align-items:center;gap:28px;color:var(--plum);font-size:.88rem;font-weight:700;letter-spacing:.025em;white-space:nowrap}
.nav-links a:hover,.nav-links .adopt-link{color:var(--terra)}
.menu-toggle{display:none;border:0;background:none;color:var(--plum);font-size:1.5rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:0;border-radius:4px;min-height:48px;padding:0 24px;font-size:.96rem;font-weight:700;letter-spacing:.035em;transition:.15s ease}
.btn:hover{transform:translateY(-1px)}
.btn-nav{background:var(--plum);color:#fff;min-width:108px}
.btn-plum{background:var(--plum);color:#fff}
.btn-terra{background:var(--terra);color:#fff}

.hero-composite{height:438px;position:relative;overflow:hidden;background:#d8c7ae;isolation:isolate}
.hero-coast{position:absolute;inset:0;background-image:url('../images/st-croix-coast.jpg');background-size:cover;background-position:center 53%;filter:saturate(.92) contrast(.97);transform:scale(1.03);z-index:-3}
.hero-cat{position:absolute;right:0;top:0;width:53%;height:100%;background-image:url('../images/colony-cat-hero.jpg');background-size:cover;background-position:center 60%;z-index:-2;-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.28) 13%,#000 33%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.28) 13%,#000 33%)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,247,235,.97) 0%,rgba(255,247,235,.88) 34%,rgba(255,247,235,.22) 54%,rgba(52,20,67,.02) 100%);z-index:-1}
.hero-inner{height:100%;display:flex;align-items:center}
.hero-copy{width:56%;padding:10px 0 0 18px}
h1{margin:0;color:var(--plum);font-size:clamp(3.4rem,5.5vw,5.8rem);line-height:.84;letter-spacing:-.045em;text-transform:uppercase;font-weight:800}
.hero-copy p{font-size:1.18rem;line-height:1.35;max-width:610px;margin:20px 0 20px;color:#2f2930}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}

.compact-section{padding:22px 0 25px}
.section-title{text-align:center;margin:0 0 15px;color:var(--plum);font-size:1.55rem;line-height:1;font-weight:800;letter-spacing:.02em}
.section-title:after{content:"";display:block;width:54px;height:2px;background:var(--terra);margin:7px auto 0}
.program-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.program-card{display:grid;grid-template-columns:44% 56%;min-height:195px;background:rgba(255,250,242,.88);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.program-card img{width:100%;height:100%;min-height:195px;object-fit:cover}
.program-card:nth-child(1) img{object-position:center 45%}
.program-card:nth-child(2) img{object-position:center 51%}
.program-card:nth-child(3) img{object-position:center 48%}
.program-body{padding:18px 19px 15px;display:flex;flex-direction:column}
.program-body h3{margin:0;color:var(--plum);font-size:1.25rem;line-height:1;font-weight:800}
.program-body p{font-size:.82rem;line-height:1.45;color:#342d35;margin:10px 0 11px}
.text-link{margin-top:auto;color:var(--plum);font-family:"League Spartan",Arial,sans-serif;font-size:.8rem;font-weight:800;letter-spacing:.03em}
.text-link:hover{color:var(--terra)}

.impact-strip{background:linear-gradient(100deg,#291034,#3c1849);color:#fff;padding:18px 0}
.impact-grid{display:grid;grid-template-columns:1.15fr repeat(3,1fr) 1.35fr;align-items:stretch}
.impact-intro,.impact-goal,.stat{padding:5px 25px;min-height:90px;display:flex;flex-direction:column;justify-content:center}
.stat,.impact-goal{border-left:1px solid rgba(255,255,255,.25)}
.impact-intro h2,.impact-goal h3{margin:0;color:#fff;font-size:1.25rem;line-height:1;font-weight:800}
.impact-intro p{margin:8px 0 0;font-size:.92rem;color:#f2eaf4}
.stat{text-align:center}
.stat strong{font-size:2rem;line-height:1;font-weight:700}
.stat span{font-size:.75rem;margin-top:8px;color:#fff}
.stat small{font-size:.65rem;color:#d7c7dd;margin-top:2px}
.impact-goal p{font-size:.76rem;line-height:1.35;margin:7px 0}
.impact-goal a{font-family:"League Spartan",Arial,sans-serif;color:#e9794e;font-size:.72rem;font-weight:800}

.sanctuary-strip{background:#fbf5ec;padding:16px 0 20px}
.sanctuary-grid.compact{display:grid;grid-template-columns:1.25fr 1fr 1.12fr;gap:22px;align-items:center}
.sanctuary-copy{padding:8px 0 8px 18px}
.sanctuary-copy h2{font-size:1.35rem;color:var(--plum);margin:0 0 4px}
.sanctuary-lead{font-weight:700!important;color:var(--plum)!important}
.sanctuary-copy p{font-size:.8rem;line-height:1.38;color:#433b43;margin:5px 0}
.sanctuary-photo{height:128px;overflow:hidden;border-radius:5px}
.sanctuary-photo img{width:100%;height:100%;object-fit:cover;object-position:center 55%}
.sanctuary-tagline{padding:5px 18px;text-align:left;color:var(--plum)}
.sanctuary-tagline span{display:block;font-size:1rem;margin-bottom:6px}
.sanctuary-tagline strong{display:block;font-family:"League Spartan",Arial,sans-serif;font-size:1.7rem;line-height:.95}

.footer{background:#21102b;color:#d9cddd;padding:26px 0 18px}
.footer-grid{display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:36px}
.footer-lockup{display:flex;align-items:center;gap:10px}
.footer-lockup img{width:48px;height:46px;object-fit:contain;filter:brightness(0) invert(1)}
.footer .brand-name{color:#fff;font-size:1.16rem;line-height:.82}
.footer-brand p{font-size:.72rem;color:#bdaec3;max-width:240px}
.footer h4{font-family:"League Spartan",Arial,sans-serif;color:#fff;margin:0 0 7px;font-size:.76rem}
.footer a{display:block;font-size:.72rem;color:#cdbfd2;margin:3px 0}
.footer a:hover{color:#fff}

/* shared interior-page defaults */
.page-hero{padding:58px 0 38px;background:var(--paper);text-align:center}.page-hero h1{font-size:clamp(2.8rem,5vw,4.8rem)}
.page-content{padding:44px 0 70px;max-width:900px;margin:auto}.page-content p{font-size:1.02rem;color:var(--muted)}
.embed-wrap{background:white;padding:20px;border-radius:12px}

@media(max-width:1100px){
  .nav{height:88px}.brand img{width:60px;height:58px}.brand-name{font-size:1.55rem}.nav-links{display:none;position:absolute;top:88px;left:0;right:0;flex-direction:column;align-items:flex-start;background:var(--cream);padding:22px 28px;border-bottom:1px solid var(--line)}.nav-links.open{display:flex}.menu-toggle{display:block}.nav>.btn-nav{display:none}
  .hero-composite{height:430px}.hero-copy{width:65%}.hero-cat{width:58%}
  .program-card{grid-template-columns:42% 58%}.impact-grid{grid-template-columns:1fr 1fr 1fr}.impact-intro,.impact-goal{grid-column:span 3}.impact-intro{min-height:auto}.impact-goal{border-left:0;border-top:1px solid rgba(255,255,255,.2);text-align:center;min-height:auto}.stat:first-of-type{border-left:0}
  .sanctuary-grid.compact{grid-template-columns:1fr 1fr}.sanctuary-tagline{grid-column:1/-1;text-align:center}
}
@media(max-width:720px){
  .container{width:min(100% - 28px,var(--max))}.brand-name{font-size:1.25rem}.brand img{width:50px;height:48px}.nav{height:76px}.nav-links{top:76px}
  .hero-composite{height:550px}.hero-coast{background-position:center}.hero-cat{top:40%;width:100%;height:60%;background-position:center 56%;-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 25%);mask-image:linear-gradient(180deg,transparent 0%,#000 25%)}.hero-shade{background:linear-gradient(180deg,rgba(255,247,235,.98) 0%,rgba(255,247,235,.9) 47%,rgba(255,247,235,.08) 72%)}.hero-inner{align-items:flex-start}.hero-copy{width:100%;padding:32px 0 0}.hero-copy p{font-size:1rem;max-width:95%;margin:14px 0 16px}.hero-actions .btn{min-height:44px;padding:0 18px;font-size:.82rem}
  h1{font-size:3.25rem}.program-grid{grid-template-columns:1fr}.program-card{min-height:170px}.program-card img{min-height:170px}.impact-grid{grid-template-columns:1fr}.impact-intro,.impact-goal{grid-column:auto}.stat,.impact-goal{border-left:0;border-top:1px solid rgba(255,255,255,.18);min-height:76px}.stat strong{font-size:1.8rem}
  .sanctuary-grid.compact{grid-template-columns:1fr}.sanctuary-copy{padding-left:0}.sanctuary-photo{height:180px}.sanctuary-tagline{grid-column:auto}
  .footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}
}

/* v2.1 polish: consistent lockup, controlled image crops, tighter interior pages */
.brand img{flex:0 0 auto}
.brand-name{display:flex;flex-direction:column;justify-content:center;line-height:.76}
.brand-name .brand-real{font-size:1.36em;line-height:.82;margin:0 0 5px}

/* Hero uses a transparent cutout so the colony cat is never awkwardly cropped. */
.hero-cat{display:none!important}
.hero-cat-cutout{position:absolute;right:5.5%;bottom:-5px;height:91%;width:auto;max-width:45%;object-fit:contain;object-position:bottom center;z-index:-2;filter:drop-shadow(0 8px 12px rgba(34,18,29,.16))}
.hero-coast{background-position:center 51%}
.hero-shade{background:linear-gradient(90deg,rgba(255,247,235,.98) 0%,rgba(255,247,235,.89) 34%,rgba(255,247,235,.34) 53%,rgba(255,247,235,.05) 72%,rgba(52,20,67,.02) 100%)}

/* The three homepage images each get their own focal point instead of one generic crop. */
.program-card:nth-child(1) img{object-position:center 29%}
.program-card:nth-child(2) img{object-position:center 24%}
.program-card:nth-child(3) img{object-position:center 42%}
.sanctuary-photo img{object-position:center 27%}

/* Interior pages inherit the same compact rhythm as the homepage. */
.page-hero{padding:34px 0 23px;background:linear-gradient(180deg,#fffaf2 0%,#f7f1e7 100%);text-align:left;border-bottom:1px solid var(--line)}
.page-hero .container{max-width:var(--max)}
.page-hero .eyebrow{font-family:"League Spartan",Arial,sans-serif;font-weight:700;letter-spacing:.075em;text-transform:uppercase;color:var(--terra);font-size:.76rem;margin-bottom:4px}
.page-hero h1{font-size:clamp(2.5rem,4.3vw,4.3rem);line-height:.88;margin:0;text-align:left}
.page-content{padding:30px 0 52px;max-width:940px;margin:auto}
.page-content p{font-size:.98rem;line-height:1.55;color:var(--muted)}
.embed-wrap{border:1px solid var(--line);box-shadow:0 5px 18px rgba(52,20,67,.05)}

@media(max-width:1100px){
  .hero-cat-cutout{right:1%;height:82%;max-width:53%}
}
@media(max-width:720px){
  .hero-cat-cutout{right:-8%;bottom:-8px;height:56%;max-width:75%;z-index:-2}
  .hero-shade{background:linear-gradient(180deg,rgba(255,247,235,.99) 0%,rgba(255,247,235,.94) 48%,rgba(255,247,235,.45) 68%,rgba(255,247,235,.05) 100%)}
  .page-hero{padding:27px 0 19px}
  .page-content{padding:24px 0 42px}
}

/* ============================================================
   VERSION 3 — approved beach hero direction
   Uses Christine's St. Croix beach photo + Falcon cutout unchanged.
   ============================================================ */
.site-header{background:rgba(250,247,240,.985)}
.nav{height:96px}
.brand{gap:14px}
.brand img{width:70px;height:68px;object-fit:contain}
.brand-name{font-weight:800;font-size:2.05rem;letter-spacing:-.035em;line-height:.75}
.brand-name .brand-real{font-size:1.34em;line-height:.8;margin-bottom:5px}
.nav-links{gap:26px;font-size:.9rem;font-weight:800}
.btn-nav{min-height:50px;min-width:112px;font-weight:800}

.hero-composite{height:448px;background:#e6d6bc}
.hero-coast{
  background-image:url('../images/st-croix-beach-hero.jpeg');
  background-size:cover;
  background-position:center 55%;
  filter:saturate(.94) contrast(.98) brightness(1.01);
  transform:scale(1.01);
}
.hero-cat-cutout{
  right:7.5%;
  bottom:-4px;
  height:78%;
  max-width:39%;
  width:auto;
  object-fit:contain;
  object-position:bottom center;
  filter:
    drop-shadow(0 16px 12px rgba(53,35,22,.16))
    drop-shadow(0 4px 3px rgba(53,35,22,.12));
}
.hero-shade{
  background:linear-gradient(90deg,
    rgba(255,249,239,.98) 0%,
    rgba(255,249,239,.94) 23%,
    rgba(255,249,239,.80) 38%,
    rgba(255,249,239,.30) 51%,
    rgba(255,249,239,.03) 67%,
    rgba(255,249,239,0) 100%);
}
.hero-copy{width:54%;padding:8px 0 0 8px}
h1{font-weight:800;font-size:clamp(3.6rem,5.5vw,5.9rem);line-height:.83;letter-spacing:-.05em}
.hero-copy p{font-size:1.16rem;max-width:590px;margin:20px 0 19px}

.compact-section{padding:20px 0 24px}
.program-grid{gap:18px}
.program-card{min-height:188px}
.program-card img{min-height:188px}
.impact-strip{padding:16px 0}

@media(max-width:1100px){
  .nav{height:86px}
  .brand img{width:60px;height:58px}
  .brand-name{font-size:1.58rem}
  .nav-links{top:86px}
  .hero-composite{height:430px}
  .hero-cat-cutout{right:2.5%;height:73%;max-width:48%}
  .hero-copy{width:62%}
}

@media(max-width:720px){
  .nav{height:74px}
  .brand img{width:48px;height:46px}
  .brand-name{font-size:1.22rem}
  .nav-links{top:74px}
  .hero-composite{height:560px}
  .hero-coast{background-position:center 48%}
  .hero-shade{background:linear-gradient(180deg,
      rgba(255,249,239,.99) 0%,
      rgba(255,249,239,.96) 42%,
      rgba(255,249,239,.64) 59%,
      rgba(255,249,239,.12) 76%,
      rgba(255,249,239,0) 100%)}
  .hero-cat-cutout{right:-3%;bottom:-4px;height:49%;max-width:76%}
  .hero-copy{width:100%;padding:30px 0 0}
  h1{font-size:3.2rem}
}

/* v3.1: impact summary cards */
.impact-page-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0 30px}
.impact-page-stat{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:24px;text-align:center}
.impact-page-stat strong{display:block;font-family:"League Spartan",Arial,sans-serif;font-size:2.6rem;line-height:1;color:var(--plum);font-weight:800}
.impact-page-stat span{display:block;font-family:"League Spartan",Arial,sans-serif;font-size:1.05rem;font-weight:800;color:var(--plum);margin-top:8px}
.impact-page-stat small{display:block;color:var(--muted);font-size:.76rem;margin-top:3px}
@media(max-width:720px){.impact-page-grid{grid-template-columns:1fr}}

/* v3.2: TNVR page */
.tnvr-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:center;margin-bottom:30px}.tnvr-intro h2,.tnvr-section h2{font-family:"League Spartan",Arial,sans-serif;color:var(--plum);font-size:1.8rem;line-height:1;margin:0 0 10px}.tnvr-intro img{width:100%;height:260px;object-fit:cover;object-position:center 30%;border-radius:8px}.tnvr-help{background:var(--plum);color:#fff;border-radius:8px;padding:24px 28px;margin:24px 0 32px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}.tnvr-help h2{color:#fff;margin:0 0 5px}.tnvr-help p{color:#f5edf6;margin:0;max-width:700px}.tnvr-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:18px 0 34px}.tnvr-step{background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:15px 9px;text-align:center}.tnvr-step strong{display:block;font-family:"League Spartan",Arial,sans-serif;color:var(--plum);font-size:1rem;line-height:1.05}.tnvr-step span{display:block;color:var(--terra);font-family:"League Spartan",Arial,sans-serif;font-weight:800;font-size:1.25rem;margin-bottom:6px}.tnvr-two-col{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:30px 0}.tnvr-section{padding:6px 0}.tnvr-section p{margin:0 0 12px}.tnvr-photo-note{display:grid;grid-template-columns:38% 62%;background:var(--paper);border:1px solid var(--line);border-radius:8px;overflow:hidden}.tnvr-photo-note img{width:100%;height:100%;min-height:230px;object-fit:cover;object-position:center 28%}.tnvr-photo-copy{padding:24px}.tnvr-timeline{display:grid;grid-template-columns:1.25fr repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:18px 0 12px}.tnvr-era{background:#fffaf2;padding:20px 18px;min-height:155px}.tnvr-era:first-child{background:#f3eaf5}.tnvr-era .period{font-family:"League Spartan",Arial,sans-serif;color:var(--terra);font-size:.78rem;font-weight:800;letter-spacing:.04em}.tnvr-era strong{display:block;font-family:"League Spartan",Arial,sans-serif;color:var(--plum);font-size:2.35rem;line-height:1;margin:7px 0 4px}.tnvr-era b{display:block;font-family:"League Spartan",Arial,sans-serif;color:var(--plum);font-size:.92rem}.tnvr-era small{display:block;color:var(--muted);line-height:1.35;margin-top:7px}.tnvr-total{text-align:center;background:var(--plum);color:#fff;border-radius:8px;padding:23px;margin:18px 0 30px}.tnvr-total strong{display:block;font-family:"League Spartan",Arial,sans-serif;font-size:3rem;line-height:1}.tnvr-total span{font-family:"League Spartan",Arial,sans-serif;font-weight:800;letter-spacing:.04em}.tnvr-future{border-left:5px solid var(--terra);padding:4px 0 4px 22px;margin:30px 0}.tnvr-final{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:28px;text-align:center;margin-top:32px}.tnvr-final h2{margin-bottom:8px}.tnvr-final .hero-actions{justify-content:center}.tnvr-note{font-size:.82rem!important;color:var(--muted)!important}
@media(max-width:900px){.tnvr-intro,.tnvr-two-col{grid-template-columns:1fr}.tnvr-steps{grid-template-columns:repeat(3,1fr)}.tnvr-timeline{grid-template-columns:1fr 1fr}.tnvr-help{grid-template-columns:1fr}.tnvr-photo-note{grid-template-columns:42% 58%}}
@media(max-width:600px){.tnvr-steps{grid-template-columns:1fr 1fr}.tnvr-timeline{grid-template-columns:1fr}.tnvr-photo-note{grid-template-columns:1fr}.tnvr-photo-note img{height:220px}.tnvr-total strong{font-size:2.4rem}}


/* v3.18 internal photo heroes */
.photo-page-hero{
  position:relative!important;
  overflow:hidden!important;
  color:#fff!important;
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  min-height:360px;
  display:flex;
  align-items:center;
}
.photo-page-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(49,20,66,.94) 0%,rgba(49,20,66,.84) 42%,rgba(49,20,66,.36) 72%,rgba(49,20,66,.14) 100%);
}
.photo-page-hero .container{
  position:relative!important;
  z-index:2!important;
  width:100%;
}
.photo-page-hero h1,
.photo-page-hero h2,
.photo-page-hero .eyebrow,
.photo-page-hero .lead,
.photo-page-hero .hero-lead,
.photo-page-hero .hero-emphasis,
.photo-page-hero p{
  color:#fff!important;
}
.photo-page-hero h1{
  text-shadow:0 2px 16px rgba(0,0,0,.16);
}
@media(max-width:700px){
  .photo-page-hero{min-height:320px;background-position:center!important}
  .photo-page-hero::before{
    background:linear-gradient(90deg,rgba(49,20,66,.94),rgba(49,20,66,.70));
  }
}


/* v3.22 interior page headers: Adopt-style text + photo instead of cropped full-width heroes */
.interior-split-hero{
  background:#f2e6d2!important;
  color:#2b252b!important;
  padding:4.5rem 0!important;
  min-height:0!important;
  height:auto!important;
  text-align:left!important;
}
.interior-split-hero::before,.interior-split-hero::after{display:none!important;content:none!important}
.interior-split-hero .interior-hero-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr)!important;
  gap:2.7rem!important;
  align-items:center!important;
}
.interior-split-hero .interior-hero-copy{position:relative!important;z-index:1!important;padding:0 0 0 2rem!important;margin:0!important;max-width:none!important}
.interior-split-hero h1,.interior-split-hero h2,.interior-split-hero h3{color:#4b1f67!important;text-shadow:none!important}
.interior-split-hero h1 span{color:#e67d45!important}
.interior-split-hero p{color:#2b252b!important;text-shadow:none!important}
.interior-split-hero .eyebrow{color:#e67d45!important;text-shadow:none!important}
.interior-hero-photo{margin:0!important;border-radius:18px!important;overflow:hidden!important;background:#fff!important;box-shadow:0 10px 26px rgba(53,21,75,.09)!important;align-self:center!important}
.interior-hero-photo img{display:block!important;width:100%!important;height:auto!important;max-height:520px!important;object-fit:contain!important;background:#fff!important}
.team-grid{grid-template-columns:repeat(3,1fr)!important}
.vet-grid{grid-template-columns:1fr 1.5fr!important}
.vet-subhead{margin-top:1.45rem!important;padding-top:1.25rem!important;border-top:1px solid rgba(75,31,103,.18)!important}
figure figcaption,.photo-caption,.caption{font-weight:800!important;color:#4b1f67}
@media(max-width:900px){
  .interior-split-hero{padding:3.5rem 0!important}
  .interior-split-hero .interior-hero-grid{grid-template-columns:1fr!important}
  .interior-split-hero .interior-hero-copy{padding-left:.65rem!important;padding-right:.65rem!important}
  .interior-hero-photo{max-width:720px!important}
  .team-grid,.vet-grid{grid-template-columns:1fr!important}
}


/* v3.25 regression cleanup: preserve pre-Falcon layout decisions */
.interior-split-hero .interior-hero-copy{
  padding-left:clamp(1.5rem,3vw,3rem)!important;
  padding-right:clamp(1rem,2vw,2rem)!important;
}
.page-hero:not(.interior-split-hero) .container,
.photo-page-hero:not(.interior-split-hero) .container{
  padding-left:clamp(1rem,2vw,2rem);
  padding-right:clamp(1rem,2vw,2rem);
}
figure figcaption,.photo-caption,.caption{
  font-weight:800!important;
  color:#4b1f67!important;
}
@media(max-width:700px){
  .interior-split-hero .interior-hero-copy{padding-left:.75rem!important;padding-right:.75rem!important}
}


/* v3.26 accessibility: split interior heroes use a light sand background.
   Override the legacy photo-hero white text rules retained from v3.18. */
.photo-page-hero.interior-split-hero,
.photo-page-hero.interior-split-hero .lead,
.photo-page-hero.interior-split-hero .hero-lead,
.photo-page-hero.interior-split-hero .hero-emphasis,
.photo-page-hero.interior-split-hero p{
  color:var(--plum)!important;
}
.photo-page-hero.interior-split-hero h1,
.photo-page-hero.interior-split-hero h2{
  color:var(--plum)!important;
  text-shadow:none!important;
}
.photo-page-hero.interior-split-hero .eyebrow{
  color:var(--terra)!important;
}
.photo-page-hero.interior-split-hero::before{
  display:none!important;
}


/* v3.29 — make every action link visually unmistakable */
.btn-cta,.text-link.btn,.light-link.btn{
  display:inline-flex!important;align-items:center;justify-content:center!important;
  width:auto!important;min-height:48px!important;padding:0 22px!important;
  margin-top:1rem!important;border-radius:5px!important;
  background:var(--terra)!important;color:#fff!important;
  border:2px solid var(--terra)!important;text-decoration:none!important;
  font-family:"League Spartan",Arial,sans-serif!important;font-size:.88rem!important;
  font-weight:800!important;letter-spacing:.035em!important;
  box-shadow:0 2px 0 rgba(75,31,103,.12);
}
.btn-cta:hover,.text-link.btn:hover,.light-link.btn:hover{
  background:var(--plum)!important;border-color:var(--plum)!important;color:#fff!important;
  transform:translateY(-1px);
}
/* Existing CTA buttons already have filled backgrounds; reinforce their button shape. */
a.btn{border-radius:5px;text-decoration:none!important;cursor:pointer}

/* v3.30 — CTA accessibility: every .btn is visibly a button.
   Several pages use btn-primary / btn-secondary, which previously had no
   background declaration and therefore rendered as plain text. */
a.btn,
button.btn,
input.btn {
  background:var(--plum);
  color:#fff;
  border:2px solid var(--plum);
  border-radius:7px;
  min-height:48px;
  padding:0 24px;
  text-decoration:none!important;
  font-family:"League Spartan",Arial,sans-serif;
  font-weight:800;
  letter-spacing:.035em;
  cursor:pointer;
  box-shadow:0 2px 0 rgba(75,31,103,.12);
}
a.btn:hover,
button.btn:hover,
input.btn:hover {
  background:var(--terra);
  border-color:var(--terra);
  color:#fff;
}
.btn-primary,.btn-plum,.btn-nav {background:var(--plum)!important;color:#fff!important;border-color:var(--plum)!important}
.btn-secondary,.btn-terra,.btn-accent {background:var(--terra)!important;color:#fff!important;border-color:var(--terra)!important}
.btn-light {background:#fff!important;color:var(--plum)!important;border-color:#fff!important}
.btn-primary:hover,.btn-plum:hover,.btn-nav:hover {background:var(--terra)!important;border-color:var(--terra)!important;color:#fff!important}
.btn-secondary:hover,.btn-terra:hover,.btn-accent:hover {background:var(--plum)!important;border-color:var(--plum)!important;color:#fff!important}
.btn-light:hover {background:var(--terra)!important;border-color:var(--terra)!important;color:#fff!important}


/* v3.31 photo-container cleanup
   Photos should either fill their frame or the frame should fit the photo. */
.interior-hero-photo{
  background:transparent!important;
}
.interior-hero-photo img{
  width:100%!important;
  height:clamp(300px,31vw,470px)!important;
  max-height:none!important;
  object-fit:cover!important;
  background:transparent!important;
}
/* Portrait hero photos use a narrower frame instead of sitting inside a wide white box. */
.interior-hero-photo.portrait-hero{
  width:min(100%,430px)!important;
  justify-self:center!important;
  background:transparent!important;
}
.interior-hero-photo.portrait-hero img{
  height:auto!important;
  max-height:540px!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
}
@media(max-width:900px){
  .interior-hero-photo.portrait-hero{width:min(88vw,500px)!important}
  .interior-hero-photo img{height:clamp(280px,62vw,440px)!important}
  .interior-hero-photo.portrait-hero img{height:auto!important;max-height:620px!important}
}

/* v3.32 partners, veterinary resources, and volunteer form */
.partner-section{padding:clamp(3rem,6vw,5rem) 0;background:#fff}
.partner-section h2{text-align:center;color:var(--plum)}
.partner-section .section-kicker{text-align:center}
.partner-logo-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1.25rem;align-items:center;margin:2rem 0 3rem}
.partner-logo-card{height:115px;padding:1rem;display:flex;align-items:center;justify-content:center}
.partner-logo-card img{max-width:100%;max-height:85px;width:auto;height:auto;object-fit:contain}
.vet-partner-title{text-align:center;color:var(--plum);margin:1rem 0 1.5rem}
.vet-partner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:900px;margin:auto}
.vet-partner-card{border:1px solid #e7ded2;border-radius:14px;padding:1.2rem;text-align:center;text-decoration:none!important;color:var(--plum)!important;display:flex;flex-direction:column;align-items:center;gap:.45rem;background:var(--cream,#faf5ec)}
.vet-partner-card img{height:72px;max-width:190px;object-fit:contain}
.vet-partner-card span{color:#332b32;font-size:.92rem}
.vet-resource-section{padding:clamp(3rem,6vw,5rem) 0}
.vet-resource-box{background:var(--cream,#faf5ec);border-radius:22px;padding:clamp(1.5rem,4vw,3rem)}
.vet-resource-box>h2{color:var(--plum)}
.vet-resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:2rem}
.vet-resource-card{background:#fff;border-radius:16px;padding:1.4rem;display:flex;flex-direction:column;align-items:flex-start}
.vet-resource-card img{height:85px;max-width:220px;object-fit:contain;align-self:center;margin-bottom:1rem}
.vet-resource-card h3{color:var(--plum);margin:.25rem 0}
.button-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:auto;padding-top:1rem}
.resource-cta{padding:2rem 0}
.resource-cta-inner{background:#fff;border-left:5px solid var(--terra);border-radius:14px;padding:1.5rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}
.resource-cta-inner h2{color:var(--plum);margin:.2rem 0}
@media(max-width:900px){
 .partner-logo-grid{grid-template-columns:repeat(3,1fr)}
 .vet-partner-grid,.vet-resource-grid{grid-template-columns:1fr}
 .resource-cta-inner{flex-direction:column;align-items:flex-start}
}
@media(max-width:560px){.partner-logo-grid{grid-template-columns:repeat(2,1fr)}}

/* v3.33: homepage veterinary resource */
.home-vet-resource{padding-top:3rem;padding-bottom:4rem}
.home-vet-resource .vet-resource-box{background:#f7eddd}

/* v3.35 Etsy shop */
.shop-cta{padding:2.5rem 0}.shop-cta-inner{background:#fff;border-radius:18px;padding:2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;border-left:5px solid var(--terra)}.shop-cta-inner h2{color:var(--plum);margin:.25rem 0 .5rem}.shop-cta-inner p{max-width:760px;margin-bottom:0}@media(max-width:760px){.shop-cta-inner{flex-direction:column;align-items:flex-start}}
