
/* =========================================================
   RTN SITE STYLESHEET
   ========================================================= */

/* ---------- TOKENS ---------- */
:root{
  /* RGB for rgba() usage */
  --red-rgb: 121, 14, 14;
  --parchment-rgb: 253, 238, 190; /* #fdeebe */
  --taupe-rgb: 157, 148, 116;     /* #9d9474 */
  --gold-rgb: 208, 169, 51;       /* #d0a933 */
  --charcoal-rgb: 43, 43, 43;     /* #2b2b2b */
  --track-green-rgb: 72, 160, 120;
  --track-blue-rgb: 80, 140, 220;
  --track-orange-rgb: 220, 140, 60;

  /* Brand palette */
  --site-red: #790e0e;
  --site-red-dark: #681010;
  --site-gold: #d0a933;
  --site-gold-dark: #5f3e12;
  --site-parchment: #fdeebe;
  --site-taupe: #9d9474;
  --site-charcoal: #2b2b2b;
  --site-grey: #545454;

  /* Global defaults */
  --site-bg: var(--site-parchment);
  --site-text: var(--site-grey);

  /* Surfaces / borders */
  --site-surface: #fff8e4;
  --site-surface-2: rgba(208,169,51,.12);
  --site-border: rgba(84,84,84,.18);

  /* Typography */
  --site-font-h1: "west-end-decorate-shadow", sans-serif;
  --site-font-h2: "fairplex-narrow", serif;
  --site-font-h3: "thornwood-vf", sans-serif;
  --site-font-h4: "fairplex-narrow", serif;
  --site-font-h5: "thornwood-vf", sans-serif;
  --site-font-body: "fairplex-narrow", serif;
  --site-font-hatch: "hatch", serif;

  /* Radius */
  --site-radius-sm: .5rem;
  --site-radius: .95rem;
  --site-radius-lg: 1.4rem;

  /* Shadows */
  --site-shadow-sm: 0 .25rem .85rem rgba(0,0,0,.10);
  --site-shadow: 0 .65rem 1.75rem rgba(0,0,0,.14);
  --site-shadow-lg: 0 1.25rem 3rem rgba(0,0,0,.18);

  /* Focus ring */
  --site-focus-ring: 0 0 0 .22rem rgba(208,169,51,.45);

  /* Motion */
  --site-ease: cubic-bezier(.2,.8,.2,1);
  --site-dur-fast: 140ms;
  --site-dur: 220ms;
}

/* ---------- BASE ---------- */
.site{
  background: var(--site-bg);
  color: var(--site-text);
  font-family: var(--site-font-body);
  font-weight: 400;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.site img{
  max-width: 100%;
  height: auto;
}

.site :focus-visible{
  outline: none;
  box-shadow: var(--site-focus-ring);
  border-radius: .35rem;
}

/* Links */
.site a:not(.btn){
  color: var(--site-red);
  text-underline-offset: .15em;
  text-decoration-thickness: .08em;
}

.site a:not(.btn):hover{
  color: var(--site-red-dark);
  text-decoration-thickness: .12em;
}

/* ---------- TYPOGRAPHY SYSTEM ---------- */
.site h1{
  font-family: var(--site-font-h1);
  font-weight: 400;
}

.site h2{
  font-family: var(--site-font-h3);
  font-variation-settings: "wght" 260, "wdth" 55;
  font-weight: 400;
}

.site h3{
  font-family: var(--site-font-h3);
  font-variation-settings: "wght" 260, "wdth" 55;
  font-weight: 400;
}

.site p,
.site li{
  font-family: var(--site-font-body);
  line-height: 1.65;
}

/* helpers */
.site .measure{ max-width: 75ch; }
.site .measure-wide{ max-width: 85ch; }

/* ---------- BACKGROUND UTILITIES ---------- */
.site .site-bg-parchment{ background-color: var(--site-parchment); color: var(--site-charcoal); }
.site .site-bg-taupe{ background-color: var(--site-taupe); color: var(--site-charcoal); }
.site .site-bg-gold{ background-color: var(--site-gold-dark); color: var(--site-parchment); }
.site .site-bg-med-gold{ background-color: var(--site-gold); color: var(--site-charcoal); }
.site .site-bg-charcoal{ background-color: var(--site-charcoal); color: var(--site-parchment); }
.site .site-bg-red{ background-color: var(--site-red); color: var(--site-parchment); }
.site .site-bg-darkred{ background-color: #631616; color: var(--site-parchment); }

/* Text color utilities */
.site .text-gold{ color: var(--site-gold) !important; }
.site .text-parchment{ color: var(--site-parchment) !important; }
.site .text-red{ color: var(--site-red) !important; }
.site .text-charcoal{ color: var(--site-charcoal) !important; }
.site .text-med-grey{ color: var(--site-grey) !important; }

/* Accent workaround for fonts that lack accented glyphs such as West End */

.accent-e{
  position: relative;
  display: inline-block;
}

.accent-e::after{
  content: "´";                /* accent mark */
  position: absolute;
  left: 0.12em;                 /* horizontal alignment */
  top: -0.35em;                 /* vertical alignment */
  font-size: .65em;             /* scale relative to letter */
  line-height: 1;
  font-family: serif;           /* ensures accent exists */
  color: currentColor;          /* inherits text color */
  pointer-events: none;
}

/* ---------- PANELS ---------- */
.site .site-content-panel{
  background-color: rgba(var(--red-rgb), 0.82);
  color: var(--site-parchment);
  padding: clamp(1.5rem, 3vw, 2.25rem);
  margin-inline: auto;
  border-radius: 1rem;
  max-width: 72ch;
}
.site .site-content-panel p{ color: inherit; }

.site .site-grid-panel{
  background-color: rgba(var(--red-rgb), 0.72);
  color: var(--site-parchment);
  padding: clamp(1.5rem, 3vw, 2.25rem);
  margin-inline: auto;
  border-radius: 1rem;
  max-width: 1100px;
}
.site .site-grid-panel p{ color: inherit; }
.site .site-grid-panel .border-bottom{
  border-bottom-color: rgba(253,238,190,.25) !important;
}

.site .site-grid-panel--charcoal{
  background-color: rgba(43, 43, 43, 0.92);
  color: var(--site-parchment);
  padding: clamp(1.5rem, 3vw, 2.25rem);
  margin-inline: auto;
  border-radius: 1rem;
  max-width: 1100px;
}
.site .site-grid-panel--charcoal p{ color: inherit; }
.site .site-grid-panel--charcoal .border-bottom{
  border-bottom-color: rgba(208,169,51,.28) !important;
}

/* ---------- COPY BLOCK ---------- */
.site .site-copy-block{ text-align: center; }
.site .site-copy-block p{ margin-bottom: 1rem; }
.site .site-copy-block p:last-child{ margin-bottom: 0; }

.site .site-copy--editorial{ text-align: left; }
.site .site-copy--editorial p{ line-height: 1.7; }

.site .site-copy--columns{
  column-count: 1;
  column-gap: clamp(1.25rem, 3vw, 2.25rem);
  column-fill: balance;
}
@media (min-width: 992px){
  .site .site-copy--columns{ column-count: 2; }
}
.site .site-copy--columns p{
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
}

/* ---------- SECTION TITLES ---------- */
.site .site-section-title{
  color: var(--site-red);
  text-shadow:
    0 1px 0 rgba(255,255,255,.35),
    0 2px 3px rgba(0,0,0,.25);
  position: relative;
  display: inline-block;
  padding-bottom: .5rem;
}
.site .site-section-title::after{
  content: "";
  display: block;
  width: 3rem;
  height: .25rem;
  margin: .45rem auto 0;
  background-color: var(--site-gold);
  border-radius: 2px;
}
.site .site-section-title--red{ color: var(--site-red); }
.site .site-section-title--red::after{
  background-color: var(--site-red);
  height: .3rem;
}
.site .site-section-title--gold{ color: var(--site-gold); }
.site .site-section-title--gold::after{ background-color: var(--site-gold); }
.site .site-section-title--parchment{
  color: var(--site-parchment);
  text-shadow:
    0 1px 0 rgba(208,169,51,.65),
    0 2px 4px rgba(0,0,0,.45);
}
.site .site-section-title--parchment::after{ background-color: var(--site-parchment); }

/* ---------- BUTTON SYSTEM ---------- */
.site .btn{
  font-family: var(--site-font-h2);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.site .btn-site-primary{
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--site-red);
  --bs-btn-border-color: var(--site-red);
  --bs-btn-hover-bg: var(--site-red-dark);
  --bs-btn-hover-border-color: var(--site-red-dark);
  --bs-btn-active-bg: #5c0f0f;
  --bs-btn-active-border-color: #5c0f0f;
  --bs-btn-focus-shadow-rgb: 208,169,51;

  border-radius: calc(var(--site-radius) - .15rem);
  box-shadow: 0 .6rem 1.4rem rgba(0,0,0,.22);
}

.site .btn-site-outline{
  --bs-btn-color: var(--site-gold);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: var(--site-gold);

  /* hover state */
  --bs-btn-hover-color: var(--site-gold);
  --bs-btn-hover-bg: var(--site-red);
  --bs-btn-hover-border-color: var(--site-red);

  /* active state */
  --bs-btn-active-color: var(--site-gold);
  --bs-btn-active-bg: var(--site-red-dark);
  --bs-btn-active-border-color: var(--site-red-dark);

  --bs-btn-focus-shadow-rgb: 208,169,51;

  border-width: 2px;
  border-radius: calc(var(--site-radius) - .15rem);

  transition:
    transform var(--site-dur-fast) var(--site-ease),
    box-shadow var(--site-dur-fast) var(--site-ease),
    background-color var(--site-dur-fast) var(--site-ease),
    color var(--site-dur-fast) var(--site-ease);
}

/* reinforce gold text when red fills */
.site .btn-site-outline:hover{
  color: var(--site-gold);
  transform: translateY(-1px);
  box-shadow: 0 .65rem 1.4rem rgba(0,0,0,.28);
}

.site .btn-site-outline:active{
  color: var(--site-gold);
  transform: translateY(0);
  box-shadow: none;
}

.site .btn-site-charcoal{
  --bs-btn-color: var(--site-parchment);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: var(--site-parchment);
  --bs-btn-hover-color: var(--site-parchment);
  --bs-btn-hover-bg: var(--site-charcoal);
  --bs-btn-hover-border-color: var(--site-charcoal);
  --bs-btn-active-bg: #242424;
  --bs-btn-active-border-color: #242424;
  border-width: 2px;
  border-radius: calc(var(--site-radius) - .15rem);
}

/* =========================================================
   PARCHMENT BUTTON VARIANT 
   ========================================================= */

.site .btn-site-parchment{
  --bs-btn-color: var(--site-parchment);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: var(--site-parchment);

  /* hover state */
  --bs-btn-hover-color: var(--site-parchment);
  --bs-btn-hover-bg: var(--site-red);
  --bs-btn-hover-border-color: var(--site-red);

  /* active state */
  --bs-btn-active-color: var(--site-parchment);
  --bs-btn-active-bg: var(--site-red-dark);
  --bs-btn-active-border-color: var(--site-red-dark);

  --bs-btn-focus-shadow-rgb: 208,169,51;

  border-width: 2px;
  border-radius: calc(var(--site-radius) - .15rem);

  transition:
    transform var(--site-dur-fast) var(--site-ease),
    box-shadow var(--site-dur-fast) var(--site-ease),
    background-color var(--site-dur-fast) var(--site-ease),
    color var(--site-dur-fast) var(--site-ease);
}



/* reinforce gold text when red fills */
.site .btn-site-outline:hover{
  color: var(--site-parchment);
  transform: translateY(-1px);
  box-shadow: 0 .65rem 1.4rem rgba(0,0,0,.28);
}

.site .btn-site-outline:active{
  color: var(--site-parchment);
  transform: translateY(0);
  box-shadow: none;
}

/* =========================================================
   OUTLINE BUTTON FAMILY
   Based on .btn-site-outline behavior
   ========================================================= */

.site .btn-site-outline-gold,
.site .btn-site-outline-charcoal,
.site .btn-site-outline-parchment{

  --bs-btn-bg: transparent;

  /* hover */
  --bs-btn-hover-color: var(--site-parchment);
  --bs-btn-hover-bg: var(--site-red);
  --bs-btn-hover-border-color: var(--site-red);

  /* active */
  --bs-btn-active-color: var(--site-parchment);
  --bs-btn-active-bg: var(--site-red-dark);
  --bs-btn-active-border-color: var(--site-red-dark);

  --bs-btn-focus-shadow-rgb: 208,169,51;

  border-width: 2px;
  border-radius: calc(var(--site-radius) - .15rem);

  transition:
    transform var(--site-dur-fast) var(--site-ease),
    box-shadow var(--site-dur-fast) var(--site-ease),
    background-color var(--site-dur-fast) var(--site-ease),
    color var(--site-dur-fast) var(--site-ease),
    border-color var(--site-dur-fast) var(--site-ease);
}

/* Hover lift */
.site .btn-site-outline-gold:hover,
.site .btn-site-outline-charcoal:hover,
.site .btn-site-outline-parchment:hover{
  transform: translateY(-1px);
  box-shadow: 0 .65rem 1.4rem rgba(0,0,0,.28);
}

/* Active press */
.site .btn-site-outline-gold:active,
.site .btn-site-outline-charcoal:active,
.site .btn-site-outline-parchment:active{
  transform: translateY(0);
  box-shadow: none;
}

/* =========================================================
   COLOR VARIANTS
   ========================================================= */

.site .btn-site-outline-gold{
  --bs-btn-color: var(--site-gold);
  --bs-btn-border-color: var(--site-gold);
}

.site .btn-site-outline-charcoal{
  --bs-btn-color: var(--site-charcoal);
  --bs-btn-border-color: var(--site-charcoal);
}

.site .btn-site-outline-parchment{
  --bs-btn-color: var(--site-parchment);
  --bs-btn-border-color: var(--site-parchment);
}

/* ---------- OVERLAY SYSTEM ---------- */
.site .overlay{
  position: relative;
  isolation: isolate;
}

.site .overlay::before{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
}

.site .overlay > *{
  position: relative;
  z-index: 1;
}

.site .overlay-parchment-75::before{ background: rgba(var(--parchment-rgb), 0.75); }
.site .overlay-taupe-75::before{ background: rgba(var(--taupe-rgb), 0.75); }
.site .overlay-red-75::before{ background: rgba(var(--red-rgb), 0.75); }
.site .overlay-charcoal-75::before{ background: rgba(var(--charcoal-rgb), 0.75); }
.site .overlay-gold-75::before{ background: rgba(var(--gold-rgb), 0.75); }

/* ---------- GLOBAL FEATURE SYSTEM ---------- */
.feature__measure{ max-width: 80ch; }

.feature--green     { --feature-accent-rgb: var(--track-green-rgb); }
.feature--blue      { --feature-accent-rgb: var(--track-blue-rgb); }
.feature--orange    { --feature-accent-rgb: var(--track-orange-rgb); }
.feature--gold      { --feature-accent-rgb: var(--gold-rgb); }
.feature--red       { --feature-accent-rgb: var(--red-rgb); }
.feature--taupe     { --feature-accent-rgb: var(--taupe-rgb); }
.feature--parchment { --feature-accent-rgb: var(--parchment-rgb); }
.feature--charcoal  { --feature-accent-rgb: var(--charcoal-rgb); }
.feature--med-gold  { --feature-accent-rgb: var(--gold-rgb); }

.feature-card{
  border: 1px solid rgba(var(--parchment-rgb), .18);
  transition:
    transform var(--site-dur-fast) var(--site-ease),
    box-shadow var(--site-dur-fast) var(--site-ease),
    border-color var(--site-dur-fast) var(--site-ease),
    background-color var(--site-dur-fast) var(--site-ease);
}

@media (hover:hover){
  .feature-card:hover{
    transform: translateY(-2px);
    box-shadow: var(--site-shadow);
  }
}

.feature-chip{
  width: 44px;
  height: 44px;
  background: rgba(var(--feature-accent-rgb), .14);
  border: 1px solid rgba(var(--feature-accent-rgb), .35);
}

.feature-chip__icon{
  color: rgb(var(--feature-accent-rgb));
}

.feature-title,
.feature-lede{
  color: rgb(var(--feature-accent-rgb));
}

.feature-footer{
  background: rgba(var(--feature-accent-rgb), .08);
  border: 1px solid rgba(var(--feature-accent-rgb), .18);
}

.feature--parchment .feature-chip__icon,
.feature--parchment .feature-title,
.feature--parchment .feature-lede{
  color: var(--site-parchment);
}

.feature--charcoal .feature-chip{
  background: rgba(var(--parchment-rgb), .08);
  border-color: rgba(var(--parchment-rgb), .22);
}

.feature--charcoal .feature-chip__icon,
.feature--charcoal .feature-title,
.feature--charcoal .feature-lede{
  color: var(--site-parchment);
}

.feature--charcoal .feature-footer{
  background: rgba(var(--parchment-rgb), .06);
  border-color: rgba(var(--parchment-rgb), .16);
}

/* red-on-red */
.feature--red .feature-card{
  background: rgba(var(--red-rgb), .35);
  border-color: rgba(var(--parchment-rgb), .16);
  backdrop-filter: blur(3px);
}

.feature--red .feature-footer{
  background: rgba(var(--red-rgb), .28);
  border-color: rgba(var(--parchment-rgb), .18);
}

@media (hover:hover){
  .feature--red .feature-card:hover{
    background: rgba(var(--red-rgb), .42);
  }
}

/* pills */
.site .feature-pill{
  border-radius: 999px;
  border: 1px solid rgba(var(--charcoal-rgb), .25);
  background: rgba(255,255,255,.40);
  color: var(--site-charcoal);
  text-decoration: none;
}
.site .feature-pill:hover,
.site .feature-pill:focus-visible{
  background: rgba(255,255,255,.60);
  color: var(--site-charcoal);
}

.site .feature-pill--green{ border-color: rgba(var(--track-green-rgb), .35); }
.site .feature-pill--blue{ border-color: rgba(var(--track-blue-rgb), .35); }
.site .feature-pill--orange{ border-color: rgba(var(--track-orange-rgb), .35); }
.site .feature-pill--gold{ border-color: rgba(var(--gold-rgb), .40); }
.site .feature-pill--red{ border-color: rgba(var(--red-rgb), .40); }
.site .feature-pill--taupe{ border-color: rgba(var(--taupe-rgb), .40); }
.site .feature-pill--parchment{ border-color: rgba(var(--parchment-rgb), .40); }
.site .feature-pill--charcoal{ border-color: rgba(var(--charcoal-rgb), .40); }

.feature-nav{
  max-width: 520px;
  margin-inline: auto;
}

.feature-nav-label{
  font-size: .85rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(253,238,190,.65);
}

.feature-section{
  scroll-margin-top: 80px;
}

@media (prefers-contrast: more){
  .feature-card{ border-color: rgba(var(--parchment-rgb), .28); }
  .feature-chip{ border-width: 2px; }
  .feature-footer{ border-width: 2px; }
}

/* ---------- FEATURE HERO / VIDEO ---------- */
.site .feature-hero{
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(2.5rem, 6vw, 4rem);
}

.site .feature-hero__media{
  position: absolute;
  inset: 0;
  z-index: 0;
}

.site .feature-hero__img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.site .feature-hero__scrim{
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to bottom, rgba(0,0,0,.35), rgba(0,0,0,.25));
}

.site .feature-hero__inner{
  position: relative;
  z-index: 2;
  min-height: clamp(520px, 60vw, 720px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.site .feature-hero__card{
  width: 100%;
  max-width: 85ch;
  border: 1px solid rgba(var(--charcoal-rgb), .18);
}

.site .feature-hero .overlay::before{
  border-radius: inherit;
}

.site .feature-hero__divider{
  border-color: rgba(var(--charcoal-rgb), .18) !important;
}

.site .feature-video{
  border: 1px solid rgba(var(--charcoal-rgb), .18);
  background: rgba(255,255,255,.35);
}

.site .feature-video__placeholder{
  background: rgba(255,255,255,.20);
}

/* =========================================================
   FEATURE SYSTEM
   ========================================================= */

.feature--red .feature-card{
  background: rgba(var(--red-rgb), .35);
  border: 1px solid rgba(var(--parchment-rgb), .16);
  backdrop-filter: blur(3px);
}

.feature--red .feature-chip{
  background: rgba(var(--gold-rgb), .14);
  border-color: rgba(var(--gold-rgb), .32);
}

.feature--red .feature-chip__icon{
  color: var(--site-parchment);
}

.feature--red .feature-title,
.feature--red .feature-lede{
  color: var(--site-parchment);
}

.feature--red .feature-footer{
  background: rgba(var(--red-rgb), .28);
  border: 1px solid rgba(var(--parchment-rgb), .18);
}

/* optional hover polish */
@media (hover:hover){
  .feature--red .feature-card:hover{
    background: rgba(var(--red-rgb), .42);
    transform: translateY(-2px);
    transition: all .2s ease;
  }
}

/* ---------- CARDS ---------- */
.site .card.site-card{
  background-color: var(--site-charcoal);
  border-color: rgba(255,255,255,.12);
  box-shadow: var(--site-shadow-sm);
  overflow: hidden;
  transition:
    transform var(--site-dur) var(--site-ease),
    box-shadow var(--site-dur) var(--site-ease),
    border-color var(--site-dur) var(--site-ease);
}
.site .card.site-card:hover{
  transform: translateY(-5px);
  box-shadow: var(--site-shadow);
  border-color: rgba(208,169,51,.58);
}

.site .card.site-card .card-img-top{
  width: 100%;
  aspect-ratio: 4 / 3;
  height: auto;
  object-fit: cover;
  display: block;
}

.site .card.site-card .site-card-title,
.site .card.site-card h3,
.site .card.site-card .h5{
  color: var(--site-gold);
  text-shadow: 0 1px 0 rgba(0,0,0,.5);
  letter-spacing: 0.04em;
}

.site .card.site-card .card-body p,
.site .card.site-card .text-body-secondary{
  color: var(--site-parchment) !important;
}

.site .card.site-card.site-card--red{
  background-color: var(--site-red);
  border-color: rgba(253,238,190,.18);
}
.site .card.site-card.site-card--red .site-card-title{
  color: var(--site-parchment) !important;
}
.site .card.site-card.site-card--red .card-body p,
.site .card.site-card.site-card--red .text-body-secondary{
  color: var(--site-gold) !important;
}

/* =========================================================
   PUPPIES PAGE — AVAILABLE PUPPY LISTINGS
   ========================================================= */

.puppy-card__media{
  background: rgba(var(--parchment-rgb), .06);
  border: 1px solid rgba(253,238,190,.16);
  min-height: 100%;
}

.puppy-card__meta,
.puppy-card__copy{
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(253,238,190,.14);
}

.puppy-card__meta h3,
.puppy-card__copy h3{
  line-height: 1.15;
}

.puppy-facts{
  display: grid;
  gap: .75rem;
  margin: 0;
}

.puppy-facts__row{
  display: grid;
  grid-template-columns: minmax(4.5rem, auto) 1fr;
  gap: .75rem;
  align-items: start;
  padding-bottom: .65rem;
  border-bottom: 1px solid rgba(253,238,190,.12);
}

.puppy-facts__row:last-child{
  padding-bottom: 0;
  border-bottom: 0;
}

.puppy-facts dt,
.puppy-facts dd{
  margin: 0;
  line-height: 1.45;
}

.puppy-facts dt{
  font-size: .98rem;
  letter-spacing: .03em;
}

.puppy-facts dd{
  color: var(--site-parchment);
  font-family: var(--site-font-body);
}

#puppies .site-badge{
  font-family: var(--site-font-h2);
  text-transform: uppercase;
  letter-spacing: .06em;
}

.puppy-card__copy .btn{
  width: 100%;
}

@media (min-width: 768px){
  .puppy-card__copy .btn{
    width: auto;
  }
}


@media (min-width: 992px){
  .puppy-card__media{
    min-height: 100%;
  }

  .puppy-card__media img{
    min-height: 100%;
  }
}


@media (max-width: 575.98px){
  .puppy-card__meta,
  .puppy-card__copy{
    padding: 1rem !important;
  }

  .puppy-facts__row{
    grid-template-columns: 4.25rem 1fr;
    gap: .6rem;
  }
}


/* =========================================================
   PUPPIES PAGE — ABOUT PUPPIES
   ========================================================= */

.puppy-story__media{
  background: rgba(var(--parchment-rgb), .06);
  border: 1px solid rgba(253,238,190,.16);
}

.puppy-story__media img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.puppy-info-panel{
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(253,238,190,.14);
}

#about-puppies .site-copy--editorial p{
  line-height: 1.8;
}

@media (min-width: 992px){
  .puppy-story__media{
    min-height: 320px;
  }
}

/* Mobile spacing */
@media (max-width: 575.98px){
  .puppy-info-panel{
    padding: 1.25rem !important;
  }
}


/* =========================================================
   SECTION-SPECIFIC REFINEMENTS
   ========================================================= */

#puppies .site-copy-width,
#about-puppies .site-copy-width{
  max-width: 75ch;
  margin-left: auto;
  margin-right: auto;
}

#puppies .feature-card{
  border-color: rgba(var(--gold-rgb), .22);
}

#puppies .vstack > article + article{
  margin-top: .25rem;
}

/* =========================================================
   EVENTS — FEATURED EVENT
   ========================================================= */

.site .event-featured{
  background: rgba(var(--parchment-rgb), .08);
  border: 1px solid rgba(var(--parchment-rgb), .16);
  overflow: hidden;
}

.site .event-featured__media{
  background: rgba(255,255,255,.04);
}

.site .event-featured__img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.site .event-featured__eyebrow{
  font-family: var(--site-font-h2);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--site-gold);
}

.site .event-featured__title{
  color: var(--site-parchment);
}

.site .event-featured__date{
  color: var(--site-gold);
}

.site .event-featured__copy{
  color: var(--site-parchment);
}

.site .event-featured__body{
  height: 100%;
}

@media (min-width: 992px){
  .site .event-featured__media{
    min-height: 100%;
  }

  .site .event-featured__img{
    min-height: 100%;
  }
}

/* ---------- GENERIC HERO ---------- */
.site .hero-section{
  position: relative;
  min-height: clamp(420px, 70vh, 760px);
  display: grid;
  align-items: center;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #1b1b1b;
}
.site .hero-section::before{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.15);
}
.site .hero-section .container{
  position: relative;
  z-index: 1;
}

.site .hero-section h1{
  font-family: "west-end-decorate-shadow", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: clamp(2.75rem, 2.2rem + 3vw, 4.25rem);
  line-height: 1.05;
  letter-spacing: 0.03em;
  margin-bottom: 1.25rem;
  text-shadow:
    0 1px 0 rgba(0,0,0,.5),
    0 4px 14px rgba(0,0,0,.75);
}
@media (min-width: 992px){
  .site .hero-section h1{ letter-spacing: 0.02em; }
}

.site .hero-section .hero-kicker,
.site .hero-section #hero-kicker{
  color: #d0a933;
  font-family: "fairplex-narrow", serif;
  font-weight: 600;
  font-style: normal;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-shadow:
    0 1px 0 rgba(0,0,0,.35),
    0 2px 6px rgba(0,0,0,.55);
}

.site .hero-section #hero-kicker{
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  margin-top: -2rem;
  margin-bottom: 6rem;
}

.site .hero-section .hero-kicker--bottom{
  margin-top: 10rem;
  margin-bottom: -1rem;
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-shadow:
    0 1px 0 rgba(0,0,0,.35),
    0 2px 6px rgba(0,0,0,.55);
}

@media (max-width: 575.98px){
  .site .hero-section #hero-kicker{
    margin-top: -0.75rem;
    margin-bottom: 1.75rem;
  }
  .site .hero-section .hero-kicker--bottom{
    margin-top: 2rem;
    font-size: 0.75rem;
  }
}

/* page hero images */
.site .hero--home{ background-image: url("../images/Back Porch 1 Moms Memorial Oct 08@2010-05-13T07_00_00.png"); }
.site .hero--facility{ background-image: url("../images/Back Porch 1 Moms Memorial Oct 08@2010-05-13T07_00_00.png"); }
.site .hero--events{ background-image: url("../images/2024 Symposium Interns.JPEG"); }
.site .hero--herding{ background-image: url("../images/Rafe C course traffic road 07152017.JPG"); }
.site .hero--rtndogs{ background-image: url("../images/Rafe with his flock - 07162017.jpg"); }
.site .hero--store{ background-image: url("../images/Rafe with his flock - 07162017.jpg"); }
.site .hero--contact{ background-image: url("../images/Rafe with his flock - 07162017.jpg"); }
.site .hero--symposium2026{ background-image: url("../images/2024 Symposium Interns.JPEG"); }

/* ---------- NAVBAR ---------- */
.site .site-nav{
  background-color: #790e0e !important;
  border-bottom: 1px solid rgba(253,238,190,.22);
  position: relative;
  z-index: 1050;
}

.site .site-nav > .container-fluid,
.site .site-nav > .container{
  background: transparent !important;
}

.site .site-nav .navbar-brand{
  color: #fdeebe !important;
  font-family: "west-end-decorate-shadow", sans-serif;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-shadow:
    0 1px 0 rgba(0,0,0,.55),
    0 2px 4px rgba(0,0,0,.35);
}

.site .site-nav .nav-link{
  color: #fdeebe !important;
  font-family: "fairplex-narrow", serif;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  position: relative;
}

.site .site-nav .nav-link:hover,
.site .site-nav .nav-link:focus-visible{
  color: var(--site-gold) !important;
}

.site .site-nav .nav-link::after{
  content: "";
  display: block;
  width: 0;
  height: .2rem;
  margin-top: .35rem;
  background-color: #d0a933;
  border-radius: 2px;
  transition: width 220ms cubic-bezier(.2,.8,.2,1);
}
.site .site-nav .nav-link:hover::after,
.site .site-nav .nav-link:focus-visible::after{
  width: 2.5rem;
}

.site .site-nav .dropdown-menu{
  background-color: var(--site-parchment);
  border: 1px solid var(--site-border);
}

.site .site-nav .dropdown-item{
  color: var(--site-grey);
  font-family: "fairplex-narrow", serif;
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  text-transform: none;
}

.site .site-nav .dropdown-item:hover,
.site .site-nav .dropdown-item:focus-visible{
  background-color: var(--site-gold);
  color: var(--site-parchment);
}

.site .site-nav .dropdown-divider{
  border-top-color: rgba(84,84,84,.22);
}

.site .site-nav .navbar-toggler{
  border-color: rgba(253,238,190,.65);
}

.site .site-nav .navbar-toggler-icon{
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(253,238,190,0.95)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.site nav.navbar .dropdown-toggle::after{
  border-top-color: currentColor;
}

.site nav.navbar .site-nav-inner{
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 991.98px){
  .site .site-nav .navbar-collapse{
    background-color: #790e0e !important;
    margin-top: .5rem;
    padding: .75rem 0 1rem;
    border-top: 1px solid rgba(253,238,190,.22);
  }
}

@media (min-width: 992px){
  .nav-hover-dropdown:hover .dropdown-menu{
    display: block;
    margin-top: 0;
    transition: opacity .2s ease;
  }

  .site nav.navbar .navbar-brand{
    font-size: 1.55rem;
  }

  .site nav.navbar .nav-link{
    font-size: 1rem;
  }
}

/* ---------- FOOTER ---------- */
.site footer.border-top{
  background-color: #790e0e !important;
  border-top-color: rgba(208,169,51,.55) !important;
}

.site footer.border-top,
.site footer.border-top p,
.site footer.border-top .text-body-secondary,
.site footer.border-top a{
  color: #fdeebe !important;
}

.site footer.border-top a:hover,
.site footer.border-top a:focus-visible{
  color: #d0a933 !important;
}

.site footer::before{
  content: "";
  display: block;
  height: 3px;
  background: linear-gradient(90deg, transparent, #d0a933, transparent);
}

.site footer.site-footer .navbar-brand{
  font-family: "west-end-decorate-shadow", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 1.25rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fdeebe;
  opacity: 0.9;
  text-shadow:
    0 1px 0 rgba(0,0,0,.55),
    0 2px 4px rgba(0,0,0,.35);
}

.site footer.site-footer,
.site footer.site-footer p,
.site footer.site-footer a:not(.navbar-brand){
  font-family: "fairplex-narrow", serif;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #fdeebe;
}

.site footer.site-footer .site-footer__copy{
  font-size: .95rem;
  color: rgba(253,238,190,.9);
}

@media (min-width: 992px){
  .site footer.site-footer .navbar-brand{
    font-size: 1.4rem;
  }
}

/* ---------- IMAGE / GALLERY UTILITIES ---------- */
.site .slice-img{
  height: clamp(240px, 35vw, 420px);
  overflow: hidden;
}
.site .slice-img img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.site .gallery-five{
  height: 90px;
  width: 100%;
  object-fit: contain;
  padding: .5rem;
}

.gallery-stage{
  aspect-ratio: 16 / 9;
  width: 100%;
  overflow: hidden;
  display: grid;
  place-items: center;
}

.gallery-stage img{
  width: 100%;
  height: 100%;
  transition: opacity .25s ease;
}

.gallery-stage img.fit-cover{
  object-fit: cover;
  object-position: center;
}

.gallery-stage img.fit-contain{
  object-fit: contain;
  object-position: center;
}

/* Reusable thumbnail gallery */
.thumb-gallery{
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  background: rgba(0,0,0,.35);
}

.thumb-gallery .gallery-stage{
  aspect-ratio: auto;
}

.thumb-gallery__stage{
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
}

.thumb-gallery__main{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center 55%;
}

.thumb-gallery__thumbs{
  flex: 0 0 auto;
  display: flex;
  gap: .5rem;
  padding: .5rem;
  background: rgba(var(--charcoal-rgb), .82);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.thumb-gallery__thumb{
  flex: 0 0 72px;
  width: 72px;
  height: 54px;
  padding: 0;
  border: 2px solid transparent;
  border-radius: .5rem;
  overflow: hidden;
  background: transparent;
  cursor: pointer;
}

.thumb-gallery__thumb img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.thumb-gallery__thumb.is-active{
  border-color: var(--site-gold);
}

/* ---------- SYMPOSIUM HELPERS ---------- */
.sympo-section{ scroll-margin-top: 80px; }
.sympo-measure{ max-width: 75ch; }
.sympo-header .site-section-title{ letter-spacing: .02em; }

.sympo-jump{
  background: rgba(var(--charcoal-rgb), .92);
  backdrop-filter: blur(8px);
}

.sympo-jump__scroller{
  overflow-x: auto;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
}
.sympo-jump__scroller::-webkit-scrollbar{ display: none; }

.sympo-break__media{ min-height: 360px; }
.sympo-break__scrim{
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0) 55%);
}
.sympo-break__caption{
  max-width: 70ch;
  background: rgba(var(--charcoal-rgb), .72);
  border: 1px solid rgba(253,238,190,.18);
}

.sympo-panel,
.sympo-mini,
.sympo-row{
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(253,238,190,.14);
}
.sympo-mini .btn{ margin-top: auto; }

/* =========================================================
   FACULTY BIOS
   ========================================================= */

.faculty-bio-panel.d-none{
  display: none !important;
}

.faculty-bio-panel.is-active{
  display: block;
}

/* ---------- CO-OP ---------- */
.co-op-card{
  background: rgba(var(--parchment-rgb), .05);
  border: 1px solid rgba(253,238,190,.16);
  backdrop-filter: blur(2px);
}

.co-op-photo__stage{
  background: rgba(var(--parchment-rgb), .06);
  border: 1px solid rgba(253,238,190,.16);
  padding: 1rem;
}

.co-op-photo__img{
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  object-position: center;
}

.co-op-video{
  border: 1px solid rgba(var(--charcoal-rgb), .18);
  background: rgba(255,255,255,.18);
}

@media (min-width: 992px){
  .co-op-card{ height: 100%; }

  .co-op-photo__stage{
    min-height: 360px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .co-op-photo__img{
    max-height: 100%;
  }
}

@media (max-width: 575.98px){
  .co-op-card{ padding: 1rem !important; }
}

/* =========================================================
   SPONSOR SECTION
   ========================================================= */

.sponsor-highlight{
  background: rgba(253,238,190,.35);
  border: 2px solid rgba(208,169,51,.65);
}

.sponsor-divider{
  border-color: rgba(253,238,190,.28) !important;
}

.home-sponsor-highlight{
  background: var(--site-taupe);
  border: 1px solid rgba(208,169,51,.45);
  box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.18);
}

/* ---------- AKC TRIALS ---------- */
.akc-trial-media{
  background: rgba(var(--parchment-rgb), .06);
  border: 1px solid rgba(253,238,190,.16);
}

.akc-trial-media__img{
  width: 100%;
  height: auto;
  object-fit: contain;
}

@media (min-width: 992px){
  .akc-trial-media{
    min-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .akc-trial-media__img{
    max-height: 520px;
    width: 100%;
  }
}

/* ---------- SPLIT SECTION ---------- */
.site .site-split .site-split-media{
  width: 100%;
}

.site .site-split-img{
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

@media (min-width: 992px){
  .site .site-split .site-split-media{
    height: 100%;
    min-height: 100%;
  }

  .site .site-split-img{
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: 50% 50%;
  }
}

/* ---------- TEXT WRAPPING / WIDTH ---------- */
.wrap-copy{
  max-width: 85ch;
  margin: 0 auto;
}

.wrap-image{
  width: min(40%, 420px);
  margin: 0 0 1rem 1.5rem;
}

.wrap-copy--wide{
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

.wrap-image--left{
  float: left;
  margin: 0 1.75rem 1rem 0;
}

.wrap-image--right{
  float: right;
  margin: 0 0 1rem 1.75rem;
}

.wrap-image img{
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.clear-both{
  clear: both;
}

.gallery-six{
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}

@media (max-width: 991.98px){
  .wrap-image,
  .wrap-image--left,
  .wrap-image--right{
    float: none;
    width: 100%;
    margin: 0 0 1rem 0;
  }

  .clear-both{
    clear: none;
  }
}

.site-copy-width{
  max-width: 75ch;
  margin-left: auto;
  margin-right: auto;
}

/* ---------- GRID HELPERS ---------- */
.title-row{ min-height: 5em; }
.middle-row{ min-height: 5em; }

/* ---------- TITLE TREATMENTS ---------- */
.site-title-treatment{
  color: #fdeebe;
  position: relative;
  text-shadow:
    0 1px 0 rgba(0,0,0,.45),
    0 2px 4px rgba(0,0,0,.35);
  padding-bottom: .45rem;
}
.site-title-treatment::after{
  content: "";
  display: block;
  width: 3rem;
  height: .25rem;
  margin: .45rem auto 0;
  background-color: #fdeebe;
  border-radius: 2px;
}

.site .site-title-underline--gold{
  position: relative;
  display: inline-block;
  padding-bottom: .45rem;
}
.site .site-title-underline--gold::after{
  content: "";
  display: block;
  width: 2.75rem;
  height: .2rem;
  margin-top: .4rem;
  background-color: #d0a933;
  border-radius: 2px;
}

.site .site-title-underline--charcoal{
  position: relative;
  display: inline-block;
  padding-bottom: .45rem;
}
.site .site-title-underline--charcoal::after{
  content: "";
  display: block;
  width: 2.75rem;
  height: .2rem;
  margin-top: .4rem;
  background-color: #2b2b2b;
  border-radius: 2px;
}

/* ---------- COMPONENT / UTILITY HELPERS ---------- */
.py-lg-6{
  padding-top: 4.5rem;
  padding-bottom: 4.5rem;
}
@media (min-width: 992px){
  .py-lg-6{
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}

.letter-space{ letter-spacing: 0.08em; }

.site-section{
  padding-top: clamp(2.5rem, 2rem + 2vw, 4rem);
  padding-bottom: clamp(2.5rem, 2rem + 2vw, 4rem);
}
.site-section--muted{ background: var(--site-surface-2); }
.site-section--inverse{
  background: #111418;
  color: rgba(255,255,255,.92);
}
.site-section--inverse .text-body-secondary{ color: rgba(255,255,255,.74) !important; }
.site-section--inverse a{ color: rgba(255,255,255,.92); }

.site .badge.site-badge{
  font-weight: 700;
  letter-spacing: .02em;
  border-radius: 999px;
  padding: .45rem .7rem;
}
.site .site-badge--gold{ background: rgba(208,169,51,.18); color: #6a4f00; }
.site .site-badge--red{ background: rgba(121,14,14,.12); color: var(--site-red); }

.site .form-control,
.site .form-select{
  border-radius: calc(var(--site-radius) - .2rem);
  border-color: rgba(84,84,84,.24);
  background-color: rgba(255,248,228,.6);
}
.site .form-control:focus,
.site .form-select:focus{
  border-color: rgba(208,169,51,.92);
  box-shadow: var(--site-focus-ring);
}

.site-divider{
  height: 1px;
  background: rgba(84,84,84,.18);
  width: 100%;
}
.site-muted{ color: rgba(84,84,84,.78) !important; }
.site-maxw-960{ max-width: 960px !important; }

.site-shadow-sm{ box-shadow: var(--site-shadow-sm) !important; }
.site-shadow{ box-shadow: var(--site-shadow) !important; }
.site-shadow-lg{ box-shadow: var(--site-shadow-lg) !important; }

.site-rounded{ border-radius: var(--site-radius) !important; }
.site-rounded-lg{ border-radius: var(--site-radius-lg) !important; }

/* ---------- TYPOGRAPHY UTILITIES ---------- */
.site .font-westend{
  font-family: "west-end-decorate-shadow", sans-serif !important;
  font-weight: 400;
  font-style: normal;
}
.site .font-westend--hero{
  font-family: "west-end-decorate-shadow", sans-serif !important;
  font-weight: 400;
  text-shadow:
    0 1px 0 rgba(0,0,0,.45),
    0 3px 8px rgba(0,0,0,.45);
}
.site .font-westend--brand{
  font-family: "west-end-decorate-shadow", sans-serif !important;
  font-weight: 400;
  text-shadow:
    0 1px 0 rgba(0,0,0,.35);
}
.site .font-westend--tight{
  font-family: "west-end-decorate-shadow", sans-serif !important;
  letter-spacing: 0.02em;
}

.site .font-fairplex{
  font-family: "fairplex-narrow", serif !important;
  font-style: normal;
}
.site .font-fairplex--bold{
  font-family: "fairplex-narrow", serif !important;
  font-weight: 700;
}
.site .font-fairplex--caps{
  font-family: "fairplex-narrow", serif !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.site .font-thornwood{
  font-family: "thornwood-vf", sans-serif !important;
  font-style: normal;
}
.site .font-thornwood--condensed{
  font-family: "thornwood-vf", sans-serif !important;
  font-variation-settings: "wght" 260, "wdth" 55;
}
.site .font-thornwood--display{
  font-family: "thornwood-vf", sans-serif !important;
  font-variation-settings: "wght" 320, "wdth" 60;
}
.site .font-thornwood--caps{
  font-family: "thornwood-vf", sans-serif !important;
  font-variation-settings: "wght" 260, "wdth" 55;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.site .font-hatch{
  font-family: var(--site-font-hatch) !important;
}

/* ---------- ACCENT TOP STRIPE ---------- */
.site .site-accent-top{
  position: relative;
}
.site .site-accent-top::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, #d0a933, transparent);
  z-index: 10;
  pointer-events: none;
}
.site .site-accent-top.site-accent-lg::before{
  height: 5px;
}
.site .site-accent-top--dark::before{
  background: linear-gradient(90deg, transparent, rgba(208,169,51,0.9), transparent);
}

/* ---------- RESPONSIVE ---------- */
@media (min-width: 576px){
  .hero-section{ min-height: clamp(460px, 72vh, 780px); }
  #hero-kicker{ padding: .55rem 1rem; }
}

@media (min-width: 768px){
  .site-card.card .card-body{ padding: 1.25rem 1.25rem 1.35rem; }
}

@media (min-width: 992px){
  .site-card.card:hover{ transform: translateY(-6px); }
  .site-card.card .h5{ font-variation-settings: "wght" 280, "wdth" 58; }
}

/* ---------- REDUCED MOTION ---------- */
@media (prefers-reduced-motion: reduce){
  *{
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
    animation-duration: 0.001ms !important;
  }

  html:focus-within{
    scroll-behavior: auto;
  }
}

/* ---------- MOBILE TYPOGRAPHY SAFETY ---------- */
@media (max-width: 575.98px){
  .site .feature-hero__card{ padding: 1.25rem !important; }
  .site .feature-hero .display-6,
  .site .feature-hero .display-5{
    font-size: clamp(1.6rem, 6vw, 2.1rem);
  }
}