/* =========================================================
   IRON LEGACY CANE CORSO — Design System
   Palette: Deep midnight navy + iron grey + brand crimson + burnished gold
   Typography: Bebas Neue (display) + Inter (body)
   ========================================================= */

:root,[data-theme="light"]{
  /* Surfaces */
  --color-bg:#f6f5f2;
  --color-surface:#ffffff;
  --color-surface-2:#efece6;
  --color-surface-offset:#e7e3db;
  --color-divider:#d8d3ca;
  --color-border:#c9c3b8;

  /* Text */
  --color-text:#0f1420;
  --color-text-muted:#4b5568;
  --color-text-faint:#8a92a3;
  --color-text-inverse:#f4efe6;

  /* Brand */
  --color-navy:#0b1428;         /* midnight navy */
  --color-navy-deep:#050a18;    /* near-black */
  --color-navy-2:#141d33;
  --color-iron:#2a3142;         /* iron grey-blue */
  --color-primary:#0b1428;
  --color-accent:#a11b1b;       /* brand crimson */
  --color-accent-hover:#7a1212;
  --color-gold:#b08b3a;         /* burnished gold for stars/dividers */
  --color-gold-soft:#c9a24c;

  /* Radius */
  --radius-sm:.25rem;
  --radius-md:.5rem;
  --radius-lg:.75rem;
  --radius-xl:1rem;
  --radius-full:9999px;

  --transition-interactive:200ms cubic-bezier(.16,1,.3,1);

  /* Shadows */
  --shadow-sm:0 1px 2px rgba(11,20,40,.08);
  --shadow-md:0 8px 24px rgba(11,20,40,.10);
  --shadow-lg:0 24px 64px rgba(11,20,40,.16);

  /* Type scale */
  --text-xs:clamp(.75rem,.7rem + .25vw,.875rem);
  --text-sm:clamp(.875rem,.8rem + .35vw,1rem);
  --text-base:clamp(1rem,.95rem + .25vw,1.125rem);
  --text-lg:clamp(1.125rem,1rem + .75vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --text-2xl:clamp(2rem,1.4rem + 2.2vw,3.25rem);
  --text-3xl:clamp(2.5rem,1.4rem + 4vw,4.75rem);
  --text-hero:clamp(3rem,1.5rem + 5.5vw,6.5rem);

  /* Spacing */
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;
  --space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;
  --space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;

  /* Content widths */
  --content-narrow:640px;
  --content-default:1080px;
  --content-wide:1280px;

  /* Fonts */
  --font-display:"Bebas Neue","Oswald","Impact",sans-serif;
  --font-body:"Inter","Helvetica Neue",system-ui,sans-serif;
  --font-serif:"Playfair Display",Georgia,serif;
}

[data-theme="dark"]{
  --color-bg:#080d18;
  --color-surface:#0f172a;
  --color-surface-2:#141d33;
  --color-surface-offset:#1b2540;
  --color-divider:#22304e;
  --color-border:#2b3a5c;
  --color-text:#eae3d3;
  --color-text-muted:#a1a9bd;
  --color-text-faint:#6a7288;
  --color-text-inverse:#0b1428;
  --color-navy:#050a18;
  --color-navy-deep:#020510;
  --color-navy-2:#0f172a;
  --color-iron:#1b2540;
  --color-primary:#eae3d3;
  --color-accent:#d33232;
  --color-accent-hover:#b21e1e;
  --color-gold:#d4a648;
  --color-gold-soft:#e6bf65;
  --shadow-sm:0 1px 2px rgba(0,0,0,.35);
  --shadow-md:0 8px 24px rgba(0,0,0,.45);
  --shadow-lg:0 24px 64px rgba(0,0,0,.55);
}

/* =========================================================
   Typography helpers
   ========================================================= */
.display{
  font-family:var(--font-display);
  font-weight:400;
  letter-spacing:.01em;
  line-height:.95;
  text-transform:uppercase;
}
.eyebrow{
  font-family:var(--font-body);
  font-size:var(--text-xs);
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--color-accent);
}
.eyebrow--light{color:var(--color-gold-soft)}

/* =========================================================
   Layout
   ========================================================= */
.wrap{
  width:min(100% - 2*var(--space-6),var(--content-wide));
  margin-inline:auto;
}
.wrap--narrow{max-width:var(--content-narrow)}
.wrap--default{max-width:var(--content-default)}

section{padding-block:clamp(var(--space-16),8vw,var(--space-32))}
section.compact{padding-block:clamp(var(--space-12),6vw,var(--space-20))}

.section-head{
  display:flex;flex-direction:column;gap:var(--space-4);
  margin-bottom:clamp(var(--space-10),5vw,var(--space-16));
  max-width:var(--content-narrow);
}
.section-head.center{margin-inline:auto;text-align:center;align-items:center}
.section-head h2{
  font-family:var(--font-display);
  font-size:var(--text-2xl);
  line-height:1;
  text-transform:uppercase;
  color:var(--color-text);
  letter-spacing:.01em;
}
.section-head p{color:var(--color-text-muted);font-size:var(--text-base)}

/* =========================================================
   Header
   ========================================================= */
.site-header{
  position:sticky;top:0;z-index:50;
  background:color-mix(in oklab,var(--color-bg) 88%,transparent);
  backdrop-filter:blur(14px);
  border-bottom:1px solid color-mix(in oklab,var(--color-border) 55%,transparent);
}
.site-header .bar{
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--space-6);
  padding-block:var(--space-4);
}
.brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:var(--color-text)}
.brand__logo{height:56px;width:auto;display:block}
.brand__logo--footer{height:96px}
@media (max-width:820px){.brand__logo{height:44px}}
.brand__name{
  font-family:var(--font-display);
  font-size:1.15rem;letter-spacing:.08em;
  line-height:1;text-transform:uppercase;
}
.brand__name em{color:var(--color-accent);font-style:normal}

.site-nav{display:flex;align-items:center;gap:var(--space-2)}
.site-nav ul{display:flex;list-style:none;gap:var(--space-1)}
.site-nav a{
  padding:var(--space-2) var(--space-4);
  font-size:var(--text-sm);
  font-weight:600;
  text-decoration:none;
  color:var(--color-text);
  letter-spacing:.04em;
  text-transform:uppercase;
  border-radius:var(--radius-sm);
  position:relative;
}
.site-nav a:hover{color:var(--color-accent)}
.site-nav a[aria-current="page"]{color:var(--color-accent)}
.site-nav a[aria-current="page"]::after{
  content:"";position:absolute;left:var(--space-4);right:var(--space-4);bottom:2px;
  height:2px;background:var(--color-accent);
}

/* ---- Nav dropdown (Our Dogs > Enzo) ---- */
.site-nav .has-submenu{position:relative}
.site-nav .nav-parent{display:inline-flex;align-items:center;gap:.35em}
.site-nav .nav-caret{
  font-size:.6em;line-height:1;opacity:.7;
  transition:transform .2s ease;display:inline-block;
}
.site-nav .has-submenu[data-open="true"] .nav-caret{transform:rotate(180deg)}
.site-nav .nav-submenu{
  position:absolute;top:calc(100% + 4px);left:0;
  min-width:260px;
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg);
  padding:var(--space-2) 0;
  list-style:none;
  display:flex;flex-direction:column;gap:0;
  opacity:0;visibility:hidden;transform:translateY(-4px);
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index:60;
}
@media (hover:hover) and (pointer:fine){
  .site-nav .has-submenu:hover .nav-submenu,
  .site-nav .has-submenu:focus-within .nav-submenu{
    opacity:1;visibility:visible;transform:translateY(0);
  }
}
.site-nav .has-submenu[data-open="true"] .nav-submenu{
  opacity:1;visibility:visible;transform:translateY(0);
}
.site-nav .nav-submenu li{margin:0;padding:0}
.site-nav .nav-submenu a{
  display:block;width:100%;
  padding:var(--space-2) var(--space-4);
  font-size:var(--text-xs);
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--color-text);
  border-radius:0;
}
.site-nav .nav-submenu a:hover{background:color-mix(in oklab,var(--color-accent) 10%,transparent);color:var(--color-accent)}
.site-nav .nav-submenu__label{
  padding:var(--space-3) var(--space-4) var(--space-1);
  font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--color-text-muted);
  border-top:1px solid var(--color-border);
  margin-top:var(--space-1);
  pointer-events:none;
}
.site-nav .nav-submenu__group + .nav-submenu__label{border-top:1px solid var(--color-border)}

.theme-toggle{
  width:36px;height:36px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:var(--radius-full);
  color:var(--color-text-muted);
  border:1px solid var(--color-border);
}
.theme-toggle:hover{color:var(--color-text);border-color:var(--color-text-muted)}

/* Mobile nav */
.nav-toggle{display:none;width:40px;height:40px;color:var(--color-text)}
@media (max-width:1024px){
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center}
  .site-nav{
    position:fixed;
    top:64px;left:0;right:0;
    background:var(--color-navy);
    padding:var(--space-6);
    transform:translateY(-100%);
    margin-top:-64px;
    transition:transform .3s cubic-bezier(.16,1,.3,1);
    border-bottom:1px solid var(--color-border);
    box-shadow:var(--shadow-lg);
    max-height:calc(100dvh - 64px);
    overflow-y:auto;
  }
  .site-nav[data-open="true"]{transform:translateY(64px)}
  .site-nav ul{flex-direction:column;width:100%;gap:0}
  .site-nav a{color:#f4efe6;padding:var(--space-4);width:100%}
  .site-nav a[aria-current="page"]{color:#d6a948}
  .site-nav a[aria-current="page"]::after{display:none}

  /* Mobile submenu: full-width accordion under the parent */
  .site-nav .has-submenu{width:100%}
  .site-nav .nav-parent{
    width:100%;
    justify-content:space-between;
    min-height:56px;
    padding-top:var(--space-4);
    padding-bottom:var(--space-4);
    font-weight:600;
    letter-spacing:.06em;
  }
  /* Upgrade the caret to an unmissable +/− toggle on the right */
  .site-nav .nav-caret{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:32px;height:32px;
    border:1px solid color-mix(in oklab,#fff 30%,transparent);
    border-radius:50%;
    font-size:0;
    line-height:1;
    transform:none !important;
    color:#f4efe6;
    background:color-mix(in oklab,#000 25%,transparent);
    position:relative;
    flex:0 0 auto;
  }
  .site-nav .nav-caret::before,
  .site-nav .nav-caret::after{
    content:"";
    position:absolute;
    top:50%;left:50%;
    background:#f4efe6;
    transition:transform .2s ease;
  }
  .site-nav .nav-caret::before{width:14px;height:2px;transform:translate(-50%,-50%)}
  .site-nav .nav-caret::after{width:2px;height:14px;transform:translate(-50%,-50%)}
  .site-nav .has-submenu[data-open="true"] .nav-caret{background:var(--color-accent);border-color:var(--color-accent)}
  .site-nav .has-submenu[data-open="true"] .nav-caret::after{transform:translate(-50%,-50%) scaleY(0)}
  .site-nav .nav-submenu{
    position:static;transform:none;opacity:1;visibility:visible;
    display:none;
    flex-direction:column;
    align-items:stretch;
    min-width:0;width:100%;
    background:color-mix(in oklab,#000 25%,var(--color-navy));
    border:none;border-radius:0;box-shadow:none;padding:var(--space-2) 0;
    margin:0;
    gap:0;
  }
  .site-nav .has-submenu[data-open="true"] .nav-submenu{display:flex;flex-direction:column}
  .site-nav .nav-submenu li{width:100%;display:block}
  .site-nav .nav-submenu a{
    color:#f4efe6;
    padding:var(--space-4) var(--space-8);
    font-size:.9rem;
    min-height:48px;
    display:flex;
    align-items:center;
    letter-spacing:.02em;
  }
  .site-nav .nav-submenu a:hover{background:color-mix(in oklab,#fff 6%,transparent);color:#d6a948}
  .site-nav .nav-submenu__label{
    color:color-mix(in oklab,#f4efe6 60%,transparent);
    border-top:1px solid color-mix(in oklab,#fff 12%,transparent);
    padding:var(--space-2) var(--space-6) var(--space-1);
  }
  .theme-toggle-wrap{padding-top:var(--space-4)}
  .theme-toggle{color:#f4efe6;border-color:color-mix(in oklab,#fff 25%,transparent)}
}

/* Primary CTA button */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);
  padding:var(--space-3) var(--space-6);
  font-family:var(--font-body);
  font-size:var(--text-sm);
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  text-decoration:none;
  border-radius:2px;
  border:2px solid transparent;
  min-height:44px;
}
.btn--primary{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-sm)}
.btn--primary:hover{background:var(--color-accent-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn--ghost{background:transparent;color:var(--color-text-inverse);border-color:var(--color-text-inverse)}
.btn--ghost:hover{background:var(--color-text-inverse);color:var(--color-navy)}
.btn--outline{background:transparent;color:var(--color-text);border-color:var(--color-text)}
.btn--outline:hover{background:var(--color-text);color:var(--color-bg)}

/* =========================================================
   Hero
   ========================================================= */
.hero{
  position:relative;
  background:linear-gradient(180deg,var(--color-navy-deep) 0%,var(--color-navy) 60%,var(--color-navy-2) 100%);
  color:var(--color-text-inverse);
  overflow:hidden;
  padding-block:clamp(var(--space-20),12vw,var(--space-32));
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(1200px 500px at 15% 30%,rgba(161,27,27,.22),transparent 60%),
    radial-gradient(900px 400px at 85% 70%,rgba(176,139,58,.15),transparent 60%);
  pointer-events:none;
}
.hero__grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:clamp(var(--space-8),5vw,var(--space-16));
  align-items:center;
  position:relative;z-index:2;
}
@media (max-width:840px){.hero__grid{grid-template-columns:1fr}}

.hero__eyebrow{
  display:inline-flex;align-items:center;gap:var(--space-3);
  color:var(--color-gold-soft);
  font-size:var(--text-xs);
  letter-spacing:.28em;text-transform:uppercase;font-weight:600;
  margin-bottom:var(--space-6);
}
.hero__eyebrow::before{
  content:"";width:32px;height:1px;background:var(--color-gold);
}
.hero h1{
  font-family:var(--font-display);
  font-size:var(--text-hero);
  line-height:.9;letter-spacing:.005em;
  text-transform:uppercase;
  color:#fff;
}
.hero h1 em{font-style:normal;color:var(--color-accent);display:block}
.hero__tagline{
  margin-top:var(--space-6);
  font-size:var(--text-lg);
  color:color-mix(in oklab,var(--color-text-inverse) 85%,transparent);
  max-width:52ch;
}
.hero__actions{margin-top:var(--space-8);display:flex;gap:var(--space-4);flex-wrap:wrap}

.hero__visual{
  position:relative;
  aspect-ratio:1/1;
  max-width:520px;
  margin-inline:auto;
  border-radius:var(--radius-md);
  background:
    linear-gradient(135deg,rgba(161,27,27,.12),rgba(176,139,58,.08)),
    var(--color-navy-2);
  border:1px solid rgba(255,255,255,.08);
  overflow:hidden;
  box-shadow:var(--shadow-lg);
}
.hero__visual .placeholder{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;flex-direction:column;
  gap:var(--space-3);
  color:color-mix(in oklab,var(--color-text-inverse) 45%,transparent);
  font-size:var(--text-sm);
  letter-spacing:.15em;text-transform:uppercase;
}
.hero__visual .placeholder svg{opacity:.5;width:80px;height:80px}

/* subtle Texas-flag stripe accent */
.hero__stripe{
  position:absolute;left:0;right:0;bottom:0;height:6px;
  background:linear-gradient(90deg,var(--color-accent) 0%,var(--color-accent) 33%,#fff 33%,#fff 66%,var(--color-navy-deep) 66%);
  opacity:.85;
}

/* Compact hero for interior pages */
.hero--compact{
  padding-block:clamp(var(--space-20),10vw,var(--space-24));
  padding-top:clamp(var(--space-24),12vw,var(--space-32));
}
.hero--compact h1{font-size:var(--text-3xl)}
.hero--compact .hero__grid{grid-template-columns:1fr;text-align:left;max-width:var(--content-default)}
.hero--compact .hero__visual{display:none}
.hero--compact .hero__tagline{max-width:60ch}

/* =========================================================
   About / intro
   ========================================================= */
.intro{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(var(--space-8),5vw,var(--space-16));
  align-items:center;
}
@media (max-width:840px){.intro{grid-template-columns:1fr}}
.intro__photo{
  aspect-ratio:4/5;
  background:var(--color-surface-2);
  border-radius:var(--radius-md);
  position:relative;
  overflow:hidden;
  border:1px solid var(--color-border);
}
.intro__photo .placeholder{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  flex-direction:column;gap:var(--space-3);
  color:var(--color-text-muted);font-size:var(--text-xs);
  letter-spacing:.2em;text-transform:uppercase;
}
.intro__photo svg{width:64px;height:64px;opacity:.4}
.intro__text h2{
  font-family:var(--font-display);
  font-size:var(--text-2xl);
  text-transform:uppercase;line-height:1;
  margin-bottom:var(--space-6);
}
.intro__text h2 em{font-style:normal;color:var(--color-accent)}
.intro__text p{margin-bottom:var(--space-4);color:var(--color-text-muted);font-size:var(--text-base)}
.intro__text p:first-of-type{color:var(--color-text);font-size:var(--text-lg)}

/* =========================================================
   Services / numbered cards
   ========================================================= */
.services-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:var(--space-6);
}
.service-card{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:clamp(var(--space-6),3vw,var(--space-10));
  display:flex;flex-direction:column;gap:var(--space-4);
  position:relative;overflow:hidden;
  transition:transform var(--transition-interactive),box-shadow var(--transition-interactive),border-color var(--transition-interactive);
}
.service-card::before{
  content:"";position:absolute;top:0;left:0;width:4px;height:100%;
  background:var(--color-accent);
  transform:scaleY(0);transform-origin:top;
  transition:transform var(--transition-interactive);
}
.service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--color-text-muted)}
.service-card:hover::before{transform:scaleY(1)}
.service-card__num{
  font-family:var(--font-display);
  font-size:2.5rem;color:var(--color-accent);
  line-height:1;letter-spacing:.02em;
}
.service-card h3{
  font-family:var(--font-display);
  font-size:var(--text-lg);
  text-transform:uppercase;
  letter-spacing:.03em;
  color:var(--color-text);
}
.service-card p{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.65}

/* =========================================================
   Dark CTA bands
   ========================================================= */
.cta-band{
  background:
    linear-gradient(135deg,rgba(161,27,27,.10),transparent 50%),
    var(--color-navy);
  color:var(--color-text-inverse);
  position:relative;overflow:hidden;
}
.cta-band::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(600px 300px at 80% 50%,rgba(176,139,58,.12),transparent 60%);
  pointer-events:none;
}
.cta-band__inner{
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-6);
  position:relative;z-index:2;
  padding-block:clamp(var(--space-16),8vw,var(--space-24));
}
.cta-band__inner .eyebrow{color:var(--color-gold-soft)}
.cta-band h2{
  font-family:var(--font-display);
  font-size:var(--text-2xl);
  text-transform:uppercase;
  color:#fff;line-height:1;
  max-width:22ch;
}
.cta-band p{color:color-mix(in oklab,var(--color-text-inverse) 80%,transparent);max-width:52ch}

/* =========================================================
   Why choose us
   ========================================================= */
.why{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(var(--space-8),5vw,var(--space-16));
  align-items:center;
}
@media (max-width:840px){.why{grid-template-columns:1fr}}
.why__list{display:grid;gap:var(--space-6)}
.why__item{
  display:grid;grid-template-columns:auto 1fr;gap:var(--space-5);
  padding:var(--space-5) 0;
  border-top:1px solid var(--color-border);
}
.why__item:last-child{border-bottom:1px solid var(--color-border)}
.why__icon{
  width:44px;height:44px;
  display:flex;align-items:center;justify-content:center;
  color:var(--color-accent);
  border:1px solid color-mix(in oklab,var(--color-accent) 40%,transparent);
  border-radius:var(--radius-full);
  flex-shrink:0;
}
.why__item h3{
  font-family:var(--font-display);
  font-size:var(--text-lg);
  text-transform:uppercase;letter-spacing:.03em;
  margin-bottom:var(--space-2);
}
.why__item p{color:var(--color-text-muted);font-size:var(--text-sm)}
.why__visual{
  aspect-ratio:4/5;background:var(--color-surface-2);
  border-radius:var(--radius-md);border:1px solid var(--color-border);
  position:relative;overflow:hidden;
}
.why__visual .placeholder{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:var(--color-text-muted);font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;
}

/* =========================================================
   Stats
   ========================================================= */
.stats{
  background:var(--color-surface-2);
  border-top:1px solid var(--color-border);
  border-bottom:1px solid var(--color-border);
}
.stats__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:var(--space-8);
  text-align:center;
}
.stat__num{
  font-family:var(--font-display);
  font-size:clamp(3rem,1.5rem + 5vw,5rem);
  color:var(--color-accent);
  line-height:1;
}
.stat__label{
  font-size:var(--text-xs);
  letter-spacing:.25em;text-transform:uppercase;
  color:var(--color-text-muted);
  margin-top:var(--space-3);
}

/* =========================================================
   Testimonials
   ========================================================= */
.testimonials{
  background:var(--color-navy);
  color:var(--color-text-inverse);
  position:relative;overflow:hidden;
}
.testimonials::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(700px 400px at 20% 30%,rgba(161,27,27,.12),transparent 60%);
  pointer-events:none;
}
.testimonials .section-head h2{color:#fff}
.testimonials .section-head p{color:color-mix(in oklab,var(--color-text-inverse) 75%,transparent)}
.testimonial-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:var(--space-6);
  position:relative;z-index:2;
}
.testimonial{
  padding:var(--space-8);
  background:color-mix(in oklab,#fff 4%,transparent);
  border:1px solid color-mix(in oklab,#fff 12%,transparent);
  border-radius:var(--radius-md);
  display:flex;flex-direction:column;gap:var(--space-4);
}
.testimonial__stars{color:var(--color-gold-soft);letter-spacing:.2em;font-size:var(--text-base)}
.testimonial__quote{
  font-family:var(--font-serif);
  font-size:var(--text-lg);
  line-height:1.5;
  color:#fff;
  font-style:italic;
}
.testimonial__attr{
  font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;
  color:var(--color-gold-soft);font-weight:600;
}

/* =========================================================
   Footer
   ========================================================= */
.site-footer{
  background:var(--color-navy-deep);
  color:var(--color-text-inverse);
  padding-block:var(--space-16) var(--space-8);
}
.footer__grid{
  display:grid;grid-template-columns:1.4fr 1fr 1fr;
  gap:var(--space-10);
  margin-bottom:var(--space-12);
}
@media (max-width:720px){.footer__grid{grid-template-columns:1fr;gap:var(--space-8)}}
.footer__brand{display:flex;flex-direction:column;gap:var(--space-4);max-width:36ch}
.footer__brand .brand{color:var(--color-text-inverse)}
.footer__brand p{color:color-mix(in oklab,var(--color-text-inverse) 70%,transparent);font-size:var(--text-sm)}
.site-footer h4{
  font-family:var(--font-display);
  font-size:var(--text-sm);
  text-transform:uppercase;letter-spacing:.2em;
  color:var(--color-gold-soft);
  margin-bottom:var(--space-4);
}
.site-footer ul{list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}
.site-footer a{color:color-mix(in oklab,#f4efe6 80%,transparent);text-decoration:none;font-size:var(--text-sm)}
.site-footer a:hover{color:var(--color-gold-soft)}
.site-footer .brand{color:#f4efe6}
.site-footer .brand__name em{color:var(--color-accent)}
.footer__bottom{
  border-top:1px solid color-mix(in oklab,#fff 10%,transparent);
  padding-top:var(--space-6);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-4);
  font-size:var(--text-xs);
  color:color-mix(in oklab,var(--color-text-inverse) 55%,transparent);
  letter-spacing:.1em;text-transform:uppercase;
}

/* =========================================================
   Contact page
   ========================================================= */
.contact{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(var(--space-8),5vw,var(--space-16));
  align-items:start;
}
@media (max-width:840px){.contact{grid-template-columns:1fr}}
.contact__info{display:flex;flex-direction:column;gap:var(--space-8)}
.contact__info h2{
  font-family:var(--font-display);
  font-size:var(--text-2xl);
  text-transform:uppercase;line-height:1;
}
.contact__methods{display:grid;gap:var(--space-4)}
.contact__method{
  display:flex;gap:var(--space-4);align-items:flex-start;
  padding:var(--space-5);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  background:var(--color-surface);
  text-decoration:none;color:var(--color-text);
}
.contact__method:hover{border-color:var(--color-accent);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.contact__method__icon{
  width:44px;height:44px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:var(--color-accent);color:#fff;
  border-radius:var(--radius-full);
}
.contact__method__label{
  font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;
  color:var(--color-text-muted);margin-bottom:var(--space-1);
}
.contact__method__value{font-size:var(--text-base);font-weight:600}

.contact__form{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:clamp(var(--space-6),4vw,var(--space-10));
}
.contact__form h3{
  font-family:var(--font-display);
  font-size:var(--text-xl);
  text-transform:uppercase;
  margin-bottom:var(--space-2);
}
.contact__form p.lead{color:var(--color-text-muted);margin-bottom:var(--space-6);font-size:var(--text-sm)}
.form-row{display:grid;gap:var(--space-4);margin-bottom:var(--space-4)}
.form-row.two{grid-template-columns:1fr 1fr}
@media (max-width:520px){.form-row.two{grid-template-columns:1fr}}
.form-group label{
  display:block;font-size:var(--text-xs);letter-spacing:.15em;
  text-transform:uppercase;font-weight:600;color:var(--color-text-muted);
  margin-bottom:var(--space-2);
}
.form-group input,.form-group textarea{
  width:100%;
  padding:var(--space-3) var(--space-4);
  background:var(--color-bg);
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  font-size:var(--text-base);
  color:var(--color-text);
  min-height:44px;
}
.form-group textarea{min-height:140px;resize:vertical}
.form-group input:focus,.form-group textarea:focus{
  outline:none;border-color:var(--color-accent);
  box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 20%,transparent);
}

.form-success{
  display:none;padding:var(--space-4);
  background:color-mix(in oklab,var(--color-accent) 8%,transparent);
  border:1px solid color-mix(in oklab,var(--color-accent) 40%,transparent);
  border-radius:var(--radius-sm);color:var(--color-accent);
  font-size:var(--text-sm);margin-bottom:var(--space-4);
}
.form-success.show{display:block}

/* =========================================================
   Prose / long-form (health guarantee)
   ========================================================= */
.prose{
  max-width:var(--content-narrow);margin-inline:auto;
}
.prose h2{
  font-family:var(--font-display);
  font-size:var(--text-xl);
  text-transform:uppercase;letter-spacing:.02em;
  margin-top:var(--space-12);margin-bottom:var(--space-4);
  padding-bottom:var(--space-3);
  border-bottom:2px solid var(--color-accent);
  color:var(--color-text);
}
.prose h2:first-child{margin-top:0}
.prose h3{
  font-family:var(--font-display);
  font-size:var(--text-lg);
  text-transform:uppercase;letter-spacing:.03em;
  margin-top:var(--space-8);margin-bottom:var(--space-3);
  color:var(--color-text);
}
.prose p{margin-bottom:var(--space-4);color:var(--color-text-muted);line-height:1.7}
.prose ul{margin:var(--space-4) 0;padding-left:var(--space-6)}
.prose ul li{color:var(--color-text-muted);margin-bottom:var(--space-2);line-height:1.7}
.prose ul li::marker{color:var(--color-accent)}
.prose .callout{
  background:var(--color-surface-2);
  border-left:4px solid var(--color-accent);
  padding:var(--space-6);
  margin:var(--space-8) 0;
  border-radius:var(--radius-sm);
}
.prose .callout p{color:var(--color-text)}
.prose .disclaimer{
  margin-top:var(--space-12);padding-top:var(--space-6);
  border-top:1px solid var(--color-border);
  font-size:var(--text-sm);color:var(--color-text-faint);
}

/* =========================================================
   Detailed service sections (Services page)
   ========================================================= */
.service-detail{
  display:grid;grid-template-columns:auto 1fr;
  gap:clamp(var(--space-6),4vw,var(--space-12));
  padding-block:clamp(var(--space-16),8vw,var(--space-24));
  border-bottom:1px solid var(--color-border);
}
.service-detail:last-child{border-bottom:none}
.service-detail__num{
  font-family:var(--font-display);
  font-size:clamp(4rem,2rem + 6vw,7rem);
  line-height:.85;
  color:var(--color-accent);
  writing-mode:horizontal-tb;
  min-width:2ch;
}
@media (max-width:720px){
  .service-detail{grid-template-columns:1fr;gap:var(--space-4)}
  .service-detail__num{font-size:3.5rem}
}
.service-detail__body h2{
  font-family:var(--font-display);
  font-size:var(--text-2xl);
  text-transform:uppercase;letter-spacing:.02em;line-height:1;
  margin-bottom:var(--space-3);
}
.service-detail__body .subtitle{
  font-family:var(--font-serif);font-style:italic;font-size:var(--text-lg);
  color:var(--color-accent);margin-bottom:var(--space-6);
}
.service-detail__body h3{
  font-family:var(--font-display);
  font-size:var(--text-lg);
  text-transform:uppercase;letter-spacing:.03em;
  margin-top:var(--space-8);margin-bottom:var(--space-3);
}
.service-detail__body p{color:var(--color-text-muted);line-height:1.7;margin-bottom:var(--space-4)}
.service-detail__body ul{margin:var(--space-4) 0 var(--space-6) var(--space-5)}
.service-detail__body li{color:var(--color-text-muted);margin-bottom:var(--space-2);line-height:1.7}
.service-detail__body li::marker{color:var(--color-accent)}
.service-detail__body blockquote{
  border-left:3px solid var(--color-accent);
  padding-left:var(--space-5);
  margin:var(--space-6) 0;
  font-family:var(--font-serif);font-style:italic;
  color:var(--color-text);font-size:var(--text-lg);
}

/* =========================================================
   Motion — reveal on scroll (opt-in via <html class="js-ready">)
   ========================================================= */
.js-ready .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.js-ready .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  .js-ready .reveal{opacity:1;transform:none}
}

/* =========================================================
   Utilities
   ========================================================= */
.text-accent{color:var(--color-accent)}
.text-gold{color:var(--color-gold-soft)}
.mt-4{margin-top:var(--space-4)}
.mt-8{margin-top:var(--space-8)}

/* =========================================================
   NEW: SEO rebuild components
   ========================================================= */

/* Hero badges strip */
.hero__badges{
  display:flex;flex-wrap:wrap;gap:var(--space-2);
  margin-top:var(--space-6);list-style:none;padding:0;
}
.hero__badges li{
  font-size:var(--text-xs);
  letter-spacing:.08em;text-transform:uppercase;
  color:var(--color-text-muted);
  border:1px solid var(--color-border);
  padding:6px 12px;border-radius:99px;
  background:var(--color-surface-2);
}

/* Page hero (sub-pages) */
.page-hero{
  padding:calc(var(--space-16) + var(--space-4)) 0 var(--space-12);
  border-bottom:1px solid var(--color-border);
  background:linear-gradient(180deg,var(--color-surface-2) 0%,var(--color-bg) 100%);
}
.page-hero h1{
  font-family:var(--font-display);
  font-size:clamp(2.5rem, 6vw, 4rem);
  line-height:1.02;letter-spacing:.005em;
  margin-top:var(--space-3);
  color:var(--color-text);
  max-width:22ch;
}
.page-hero .lead{
  margin-top:var(--space-5);
  font-size:var(--text-lg);
  color:var(--color-text-muted);
  max-width:70ch;
  line-height:1.6;
}

/* Prose (long-form body copy on info pages) */
.prose{max-width:75ch;margin:0 auto}
.prose h2{
  font-family:var(--font-display);
  font-size:var(--text-2xl);
  color:var(--color-text);
  margin-top:var(--space-12);
  margin-bottom:var(--space-4);
  letter-spacing:.01em;
}
.prose h2:first-child{margin-top:0}
.prose h3{
  font-size:var(--text-lg);
  color:var(--color-text);
  margin-top:var(--space-6);margin-bottom:var(--space-3);
  font-weight:700;
}
.prose p{color:var(--color-text-muted);line-height:1.75;margin-bottom:var(--space-4);font-size:var(--text-base)}
.prose p strong{color:var(--color-text)}
.prose ul,.prose ol{margin:var(--space-4) 0 var(--space-6) var(--space-5);padding:0}
.prose li{color:var(--color-text-muted);margin-bottom:var(--space-2);line-height:1.7}
.prose li::marker{color:var(--color-accent)}
.prose li strong{color:var(--color-text)}
.prose a.link,.link{color:var(--color-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.prose a.link:hover,.link:hover{color:var(--color-accent-hover)}
.fine-print{font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic;margin-top:var(--space-6)}

/* Callout box */
.callout{
  margin:var(--space-6) 0;padding:var(--space-5) var(--space-6);
  border-radius:var(--radius-md);
  border:1px solid var(--color-border);
  background:var(--color-surface-2);
}
.callout--warn{
  border-color:color-mix(in oklab,var(--color-gold-soft) 40%,var(--color-border));
  background:color-mix(in oklab,var(--color-gold-soft) 8%,var(--color-surface-2));
}
.callout h3{margin-top:0;margin-bottom:var(--space-2);color:var(--color-text)}
.callout p{margin:0;color:var(--color-text-muted)}

/* Health testing table */
.table-wrap{overflow-x:auto;margin:var(--space-6) 0;border:1px solid var(--color-border);border-radius:var(--radius-md)}
.table-health{
  width:100%;border-collapse:collapse;font-size:var(--text-sm);
  background:var(--color-surface);
}
.table-health thead th{
  text-align:left;padding:var(--space-3) var(--space-4);
  background:var(--color-surface-2);color:var(--color-text);
  border-bottom:1px solid var(--color-border);
  font-weight:700;letter-spacing:.03em;text-transform:uppercase;font-size:var(--text-xs);
}
.table-health tbody td{
  padding:var(--space-3) var(--space-4);
  border-bottom:1px solid var(--color-border);
  color:var(--color-text-muted);vertical-align:top;
}
.table-health tbody tr:last-child td{border-bottom:none}
.table-health tbody td:first-child{color:var(--color-text);font-weight:600}

/* Pillars grid (Why Iron Legacy) */
.pillars-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:var(--space-6);
  margin-top:var(--space-8);
}
.pillar{
  padding:var(--space-6);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  background:var(--color-surface);
  position:relative;
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;
}
.pillar:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--color-accent)}
.pillar__num{
  font-family:var(--font-display);font-size:var(--text-lg);
  color:var(--color-accent);letter-spacing:.1em;
  margin-bottom:var(--space-3);
}
.pillar h3{
  font-size:var(--text-base);color:var(--color-text);
  margin-bottom:var(--space-2);font-weight:700;line-height:1.35;
}
.pillar p{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.65;margin:0}

/* Litters grid + card */
.litters-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(340px,1fr));
  gap:var(--space-8);margin-top:var(--space-8);
}
.litter-card{
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  overflow:hidden;background:var(--color-surface);
  display:flex;flex-direction:column;
}
.litter-card__media{
  aspect-ratio:16/10;
  display:flex;align-items:center;justify-content:center;
  background:var(--color-surface-2);color:var(--color-text-muted);
  border-bottom:1px solid var(--color-border);
  flex-direction:column;gap:var(--space-2);
}
.litter-card__media svg{width:56px;height:56px;opacity:.4}
.litter-card__media span{font-size:var(--text-sm)}
.litter-card__body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);flex:1}
.litter-card__body h3{font-size:var(--text-xl);color:var(--color-text);font-family:var(--font-display);letter-spacing:.01em}
.tag{
  display:inline-block;font-size:var(--text-xs);
  letter-spacing:.1em;text-transform:uppercase;font-weight:700;
  padding:4px 10px;border-radius:99px;
  background:var(--color-surface-2);color:var(--color-text-muted);
  align-self:flex-start;
}
.tag--accent{background:var(--color-accent);color:#fff}
.litter-dl{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-2) var(--space-4);margin:0}
.litter-dl dt{font-weight:700;color:var(--color-text);font-size:var(--text-sm)}
.litter-dl dd{color:var(--color-text-muted);font-size:var(--text-sm);margin:0;line-height:1.5}
.litter-card__cta{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:auto}

/* FAQ */
.faq-grid{display:grid;gap:var(--space-3);max-width:820px;margin:0 auto}
.faq-item{
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  background:var(--color-surface);
  overflow:hidden;
}
.faq-item[open]{border-color:var(--color-accent)}
.faq-item summary{
  padding:var(--space-4) var(--space-5);
  cursor:pointer;list-style:none;
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);
  color:var(--color-text);font-weight:600;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"";width:14px;height:14px;flex-shrink:0;
  border-right:2px solid var(--color-text-muted);
  border-bottom:2px solid var(--color-text-muted);
  transform:rotate(45deg);transition:transform .3s ease;
  margin-top:-4px;
}
.faq-item[open] summary::after{transform:rotate(-135deg);margin-top:4px;border-color:var(--color-accent)}
.faq-item p{
  padding:0 var(--space-5) var(--space-5);
  color:var(--color-text-muted);line-height:1.7;margin:0;font-size:var(--text-sm);
}
.faq-item p a{color:var(--color-accent);text-decoration:underline}

/* Contact grid */
.contact-grid{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);
  gap:var(--space-10);
  align-items:start;
}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr}}
.contact-form-card{
  padding:var(--space-8);
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  min-width:0;
}
.contact-side{min-width:0}
.contact-side__card{min-width:0}
@media (max-width:520px){
  .contact-form-card{padding:var(--space-5)}
  .contact-side__card{padding:var(--space-4) !important}
  .side-dl{grid-template-columns:1fr !important;gap:2px 0}
  .side-dl dd{margin-bottom:var(--space-3)}
}
.contact-form-card h2{
  font-family:var(--font-display);font-size:var(--text-2xl);
  color:var(--color-text);margin-bottom:var(--space-6);
}
.contact-form-card .form-note{
  color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.6;
  margin:calc(var(--space-6) * -1 + 4px) 0 var(--space-6);
  padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border);
}
.contact-form{display:grid;gap:var(--space-6)}
.form-section{display:grid;gap:var(--space-4)}
.form-section__head{
  display:grid;gap:6px;
  padding-bottom:var(--space-3);
  border-bottom:1px solid color-mix(in oklab,var(--color-border) 60%,transparent);
}
.form-section__head .eyebrow{color:var(--color-accent)}
.form-section__sub{
  font-family:"Playfair Display",Georgia,serif;font-style:italic;
  font-size:var(--text-xl);color:#000000 !important;
  margin:0;line-height:1.25;
  text-transform:none;letter-spacing:0;font-weight:700 !important;
}
html[data-theme="dark"] .form-section__sub{color:#f4efe4 !important;}
.field{display:flex;flex-direction:column;gap:6px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
@media (max-width:520px){.field-row{grid-template-columns:1fr}}
.field label{
  font-size:var(--text-xs);letter-spacing:.08em;
  text-transform:uppercase;color:var(--color-text-muted);font-weight:600;
}
.field input,.field select,.field textarea{
  width:100%;font-family:inherit;font-size:var(--text-base);
  padding:12px 14px;border:1px solid var(--color-border);
  border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);
  transition:border-color .2s ease,box-shadow .2s ease;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--color-accent);
  box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 20%,transparent);
}
.field textarea{resize:vertical;min-height:120px;font-family:inherit}
.btn--wide{width:100%;justify-content:center}
.contact-side{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5)}
.contact-side__card{
  padding:var(--space-6);
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
}
.contact-side__card h3,.contact-side__card h4{
  color:var(--color-text);margin-bottom:var(--space-3);font-size:var(--text-base);
}
.contact-side__card p{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.6;margin-bottom:var(--space-4)}
.side-dl{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-2) var(--space-4);margin:0}
.side-dl dt{font-weight:700;color:var(--color-text);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em}
.side-dl dd{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}
.side-dl a{color:var(--color-accent)}
.check-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-2)}
.check-list li{
  color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.5;
  padding-left:22px;position:relative;
}
.check-list li::before{
  content:"";position:absolute;left:0;top:6px;width:12px;height:6px;
  border-left:2px solid var(--color-accent);border-bottom:2px solid var(--color-accent);
  transform:rotate(-45deg);
}

/* Stats — add fourth column support */
.stats__grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}

/* Hero logo (replaces placeholder) */
.hero__visual--logo{
  background:transparent;border:none;padding:0;
  display:flex;align-items:center;justify-content:center;
  min-height:auto;position:relative;
}
.hero__visual--logo::before{
  content:"";position:absolute;inset:-4%;z-index:0;
  background:radial-gradient(ellipse at center, rgba(255,255,255,.96) 0%, rgba(255,255,255,.88) 45%, rgba(255,255,255,0) 72%);
  border-radius:50%;
  filter:blur(2px);
}
.hero__visual--logo img{
  max-width:100%;height:auto;display:block;position:relative;z-index:1;
  filter: drop-shadow(0 24px 40px rgba(0,0,0,.45));
}
@media (max-width:820px){
  .hero__visual--logo{margin-top:var(--space-6)}
  .hero__visual--logo img{max-width:80%;margin:0 auto}
}

/* Ensure the intro / other placeholders still work but with clean styling */

/* Footer logo — put on a soft white plate so black wordmark reads on dark footer */
.footer__brand .brand{
  display:inline-flex;
  padding:14px 20px;
  background:#fff;
  border-radius:var(--radius-md);
  align-self:flex-start;
}
.footer__brand .brand__logo{height:80px}
@media (max-width:820px){.footer__brand .brand__logo{height:64px}}

/* Header logo — white plate ensures readability against dark-mode navy header */
.site-header .brand{
  padding:6px 10px;
  background:#fff;
  border-radius:8px;
  transition:transform .2s ease, box-shadow .2s ease;
}
.site-header .brand:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.15)}

/* ---------------------------------------------------------------
   Application Paths — top-of-page split card on puppies.html
   Two side-by-side path cards: Puppy Application (companion) +
   Breeder Questionnaire (full breeding rights). Accent card on right.
--------------------------------------------------------------- */
.application-paths-section{
  padding:var(--space-10) 0 var(--space-11);
  background:var(--color-surface);
  border-top:1px solid var(--color-border);
  border-bottom:1px solid var(--color-border);
}
.application-paths__grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:var(--space-6);
  margin-top:var(--space-6);
}
.application-path-card{
  display:flex;
  flex-direction:column;
  gap:var(--space-3);
  padding:var(--space-8) var(--space-7);
  background:var(--color-surface-2);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  text-decoration:none;
  color:var(--color-text);
  position:relative;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.application-path-card:hover,
.application-path-card:focus-visible{
  transform:translateY(-4px);
  box-shadow:var(--shadow-lg, 0 12px 32px rgba(0,0,0,.12));
  border-color:var(--color-accent);
  outline:none;
}
.application-path-card__tag{
  display:inline-block;
  align-self:flex-start;
  font-family:var(--font-mono, "Bebas Neue", Impact, sans-serif);
  font-size:var(--text-xs);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--color-accent);
  padding:4px 10px;
  border:1px solid var(--color-accent);
  border-radius:999px;
  margin-bottom:var(--space-2);
}
.application-path-card h3{
  font-family:var(--font-display, "Playfair Display", Georgia, serif);
  font-size:var(--text-2xl);
  color:var(--color-heading);
  margin:0;
  line-height:1.15;
}
.application-path-card > p{
  color:var(--color-text-muted, var(--color-muted));
  line-height:1.6;
  margin:0;
}
.application-path-card__list{
  list-style:none;
  padding:0;
  margin:var(--space-2) 0 var(--space-3);
  display:flex;
  flex-direction:column;
  gap:8px;
}
.application-path-card__list li{
  position:relative;
  padding-left:20px;
  font-size:var(--text-sm);
  line-height:1.5;
  color:var(--color-text);
}
.application-path-card__list li::before{
  content:"";
  position:absolute;
  left:0; top:9px;
  width:10px; height:1px;
  background:var(--color-accent);
}
.application-path-card__cta{
  margin-top:auto;
  padding-top:var(--space-3);
  font-family:var(--font-mono, "Bebas Neue", Impact, sans-serif);
  font-size:var(--text-base);
  letter-spacing:.08em;
  color:var(--color-heading);
  border-top:1px solid var(--color-border);
  transition:color .3s ease, letter-spacing .3s ease;
}
.application-path-card:hover .application-path-card__cta,
.application-path-card:focus-visible .application-path-card__cta{
  color:var(--color-accent);
  letter-spacing:.12em;
}
.application-path-card--accent{
  background:#0e0b09;
  border-color:#0e0b09;
  color:#f6efe4;
}
.application-path-card.application-path-card--accent h3{color:#ffffff !important}
.application-path-card--accent > p{color:rgba(246,239,228,.82)}
.application-path-card--accent .application-path-card__list li{color:#f6efe4}
.application-path-card--accent .application-path-card__list li::before{background:var(--color-accent)}
.application-path-card--accent .application-path-card__tag{
  color:#fff;
  border-color:var(--color-accent);
  background:var(--color-accent);
}
.application-path-card--accent .application-path-card__cta{
  color:#fff;
  border-top-color:rgba(246,239,228,.22);
}
.application-path-card--accent:hover,
.application-path-card--accent:focus-visible{
  border-color:var(--color-accent);
}
.application-paths__note{
  margin:var(--space-7) auto 0;
  max-width:640px;
  text-align:center;
  color:var(--color-text-muted, var(--color-muted));
  font-size:var(--text-sm);
  line-height:1.6;
}
@media (max-width: 820px){
  .application-paths__grid{grid-template-columns:1fr;gap:var(--space-5)}
  .application-path-card{padding:var(--space-6) var(--space-5)}
}

/* ---------------------------------------------------------------
   Trust & Certification — registry/health-program seals
   Mounted with <div data-mount="trust"></div> on homepage +
   Our Program page. Cards render inline monogram SVGs in
   currentColor so they adapt to light/dark surfaces.
--------------------------------------------------------------- */
.trust-section{
  padding:var(--space-11) 0;
  background:var(--color-surface);
  border-top:1px solid var(--color-border);
  border-bottom:1px solid var(--color-border);
}
.trust-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:var(--space-4);
  margin-top:var(--space-8);
}
.trust-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:var(--space-2);
  padding:var(--space-6) var(--space-4);
  background:var(--color-surface-2);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  text-decoration:none;
  color:var(--color-text);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease, background-color .3s ease;
}
.trust-card:hover,
.trust-card:focus-visible{
  transform:translateY(-3px);
  box-shadow:var(--shadow-md);
  border-color:var(--color-accent);
  outline:none;
}
.trust-card__seal{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:96px;
  height:96px;
  color:var(--color-heading);
  margin-bottom:var(--space-2);
}
.trust-card__seal svg{width:100%;height:100%;display:block}
.trust-card:hover .trust-card__seal,
.trust-card:focus-visible .trust-card__seal{color:var(--color-accent)}
.trust-card__code{
  font-family:var(--font-display, "Playfair Display", Georgia, serif);
  font-size:var(--text-lg);
  font-weight:700;
  letter-spacing:.04em;
  color:var(--color-heading);
}
.trust-card__name{
  font-size:var(--text-sm);
  font-weight:600;
  color:var(--color-text);
  line-height:1.35;
}
.trust-card__note{
  font-size:var(--text-xs);
  color:var(--color-muted);
  line-height:1.5;
  margin-top:var(--space-1);
}
.trust-promise{
  margin:var(--space-9) auto 0;
  max-width:760px;
  text-align:center;
  font-family:var(--font-display, "Playfair Display", Georgia, serif);
  font-size:var(--text-xl);
  font-style:italic;
  color:var(--color-heading);
  line-height:1.5;
  padding:var(--space-6) var(--space-6);
  border-top:1px solid var(--color-border);
  border-bottom:1px solid var(--color-border);
}
.trust-promise strong{font-style:normal;font-weight:700;color:var(--color-accent);letter-spacing:.02em}
.trust-promise em{font-style:italic;color:var(--color-heading)}
@media (max-width: 960px){
  .trust-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-3)}
  .trust-card:nth-child(4),
  .trust-card:nth-child(5){grid-column:span 1}
}
@media (max-width: 640px){
  .trust-grid{grid-template-columns:repeat(2,1fr)}
  .trust-card__seal{width:80px;height:80px}
  .trust-promise{font-size:var(--text-lg);padding:var(--space-5) var(--space-4)}
}

/* ---------------------------------------------------------------
   Follow Us section — social platform cards
   Used on Reviews + Community pages via <div data-mount="follow">
--------------------------------------------------------------- */
.follow-section{
  padding:var(--space-11) 0;
  background:var(--color-surface-2);
  border-top:1px solid var(--color-border);
  border-bottom:1px solid var(--color-border);
}
.social-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:var(--space-5);
  margin-top:var(--space-8);
}
.social-card{
  display:flex;
  align-items:flex-start;
  gap:var(--space-4);
  padding:var(--space-6);
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  text-decoration:none;
  color:var(--color-text);
  position:relative;
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.social-card:hover,
.social-card:focus-visible{
  transform:translateY(-3px);
  box-shadow:var(--shadow-md);
  border-color:var(--color-accent);
  outline:none;
}
.social-card:hover .social-card__arrow,
.social-card:focus-visible .social-card__arrow{
  transform:translateX(4px);
  color:var(--color-accent);
}
.social-card__icon{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px;height:48px;
  background:var(--color-text);
  color:var(--color-surface);
  border-radius:var(--radius-md);
}
.social-card__icon svg{width:24px;height:24px}
.social-card__meta{
  display:flex;
  flex-direction:column;
  gap:2px;
  flex:1 1 auto;
  min-width:0;
}
.social-card__platform{
  font-family:var(--font-display);
  font-size:var(--text-base);
  font-weight:700;
  letter-spacing:.02em;
  color:var(--color-text);
}
.social-card__handle{
  font-size:var(--text-sm);
  color:var(--color-accent);
  font-weight:600;
  word-break:break-word;
}
.social-card__blurb{
  margin-top:6px;
  font-size:var(--text-sm);
  color:var(--color-text-muted);
  line-height:1.5;
}
.social-card__arrow{
  flex:0 0 auto;
  font-size:20px;
  color:var(--color-text-muted);
  transition:transform .3s ease, color .3s ease;
  align-self:center;
}
@media (max-width:600px){
  .social-card{padding:var(--space-5);gap:var(--space-3)}
  .social-card__icon{width:40px;height:40px}
  .social-card__icon svg{width:20px;height:20px}
}

/* Enzo silhouette watermark removed — hero image now features Enzo (the real dog) directly. */

/* =========================================================
   MEET THE DOGS — Homepage showcase section
   ========================================================= */
.meet-dogs{
  background:var(--color-surface-2);
  border-top:1px solid var(--color-border);
  border-bottom:1px solid var(--color-border);
  padding:96px 0;
}
.meet-dogs .section-head{ max-width:820px; margin:0 auto 56px; }
.section-head__lede{
  font-size:1.08rem;
  line-height:1.6;
  color:var(--color-text-muted, #5a4a3d);
  margin:18px auto 0;
  max-width:640px;
}
.meet-dogs__grid{
  display:grid;
  grid-template-columns: 1.35fr 1fr 1fr;
  gap:24px;
  align-items:stretch;
  margin-bottom:56px;
}
.meet-dogs__card{
  margin:0;
  background:#1a1410;
  border:1px solid var(--color-border);
  border-radius:6px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition: transform .4s ease, box-shadow .4s ease;
}
.meet-dogs__card:hover{
  transform: translateY(-4px);
  box-shadow: 0 24px 60px -30px rgba(15,13,11,.4);
}
.meet-dogs__img{
  width:100%;
  aspect-ratio: 4/5;
  background-color:#1a1410;
  flex:1;
}
.meet-dogs__card--tall .meet-dogs__img{
  aspect-ratio: 3/4.4;
}
.meet-dogs__card figcaption{
  padding:22px 24px 24px;
  background:#fbf7ec;
  display:flex;
  flex-direction:column;
  gap:6px;
}
html[data-theme="dark"] .meet-dogs__card figcaption{ background:#241b15; }
.meet-dogs__name{
  font-family:'Playfair Display', serif;
  font-weight:900;
  font-style:normal;
  font-size:1.65rem;
  line-height:1.1;
  color:#0a0705 !important;
  letter-spacing:-.01em;
}
html[data-theme="dark"] .meet-dogs__name{ color:#fbf7ec !important; }
.meet-dogs__meta{
  font-family:'Bebas Neue', Impact, sans-serif;
  letter-spacing:.22em;
  font-size:.78rem;
  color:#8b6a3a;
  text-transform:uppercase;
}
.meet-dogs__actions{
  display:flex;
  gap:16px;
  justify-content:center;
  flex-wrap:wrap;
}

@media (max-width: 900px){
  .meet-dogs{ padding:72px 0; }
  .meet-dogs__grid{
    grid-template-columns: 1fr;
    gap:20px;
    margin-bottom:44px;
  }
  .meet-dogs__card--tall .meet-dogs__img{ aspect-ratio: 4/5; }
}

/* =========================================================
   Background Check Disclosure & Consent (Puppy Application)
   ========================================================= */
.bg-check-section{
  background: color-mix(in oklab, var(--color-accent) 6%, var(--color-surface-2));
  border: 1px solid color-mix(in oklab, var(--color-accent) 24%, var(--color-border));
  border-radius: var(--radius-lg);
  padding: var(--space-8);
  margin-top: var(--space-6);
}
.disclosure{
  color:#0f0d0b;
  font-size: var(--text-base);
  line-height: 1.65;
}
.disclosure p{ margin: 0 0 var(--space-4); color:#1a1410; }
.disclosure__title{
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 700 !important;
  font-style: normal !important;
  font-size: 1.5rem;
  color: #000000 !important;
  margin: 0 0 var(--space-4);
  letter-spacing: -.01em;
  text-transform: none !important;
}
.disclosure__sub{
  font-family: "Bebas Neue", Impact, sans-serif;
  letter-spacing: .18em;
  font-size: 1rem;
  color: #8b1414 !important;
  margin: var(--space-7) 0 var(--space-3) !important;
  padding-top: var(--space-4);
  border-top: 1px solid color-mix(in oklab, #8b1414 20%, transparent);
  text-transform: uppercase;
  font-weight: 500 !important;
  font-style: normal !important;
}
.disclosure > .disclosure__sub:first-of-type{border-top:none;padding-top:0;margin-top:var(--space-5) !important;}
.disclosure__list{
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-5);
}
.disclosure__list li{
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: var(--space-3);
  color: #1a1410;
  line-height: 1.55;
}
.disclosure__list li:last-child{margin-bottom:0}
.disclosure__note{
  background: color-mix(in oklab, #c9a96e 18%, #fbf7ec);
  border-left: 4px solid #c9a96e;
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-sm);
  margin: var(--space-5) 0 var(--space-4);
  color: #1a1410 !important;
  font-size: .95rem;
  line-height: 1.6;
}
.disclosure__note strong{color:#000; font-weight:700}
.disclosure__list li::before{
  content: "\2022";
  position: absolute;
  left: .3rem;
  top: 0;
  color: #8b1414;
  font-weight: 700;
}
.consent-box{
  margin-top: var(--space-8);
  padding: var(--space-6);
  background: #fbf7ec;
  border: 2px solid #8b1414;
  border-radius: var(--radius-md);
}
.consent-box > p{ color:#0f0d0b; margin: 0 0 var(--space-5); font-weight:500; }
.consent-check{
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: var(--space-4);
  cursor: pointer;
  padding: 12px;
  border-radius: var(--radius-sm);
  transition: background .18s ease;
  color: #0f0d0b;
  line-height: 1.55;
}
.consent-check:hover{ background: rgba(139,20,20,.05); }
.consent-check input[type="checkbox"]{
  flex-shrink: 0;
  margin-top: 4px;
  width: 20px;
  height: 20px;
  accent-color: #8b1414;
  cursor: pointer;
}
.consent-check span{ font-size: .98rem; }
.consent-check strong{ font-weight: 700; color: #000; }

html[data-theme="dark"] .bg-check-section{
  background: color-mix(in oklab, #8b1414 8%, #241b15);
  border-color: color-mix(in oklab, #8b1414 40%, transparent);
}
html[data-theme="dark"] .disclosure,
html[data-theme="dark"] .disclosure p,
html[data-theme="dark"] .disclosure__list li{ color:#e8dfc9 !important; }
html[data-theme="dark"] .disclosure__title{ color:#fbf7ec !important; }
html[data-theme="dark"] .disclosure__sub{
  color:#e9c56a !important;
  border-top-color: color-mix(in oklab, #e9c56a 30%, transparent);
}
html[data-theme="dark"] .disclosure__note{
  background: color-mix(in oklab, #c9a96e 12%, #241b15);
  border-left-color:#e9c56a;
  color:#f4efe4 !important;
}
html[data-theme="dark"] .disclosure__note strong{color:#fbf7ec}
html[data-theme="dark"] .consent-box{
  background:#241b15;
  border-color:#c9a96e;
}
html[data-theme="dark"] .consent-box > p{ color:#f4efe4; }
html[data-theme="dark"] .consent-check{ color:#e8dfc9; }
html[data-theme="dark"] .consent-check strong{ color:#fbf7ec; }
html[data-theme="dark"] .consent-check:hover{ background: rgba(233,197,106,.08); }

/* Signature row inside consent box extends flush to the consent box border
   so its inputs visually align with all other form inputs outside the box. */
.consent-box .field-row{
  margin-left: calc(-1 * var(--space-6));
  margin-right: calc(-1 * var(--space-6));
  padding-left: var(--space-6);
  padding-right: var(--space-6);
  border-top: 1px solid color-mix(in oklab, #8b1414 22%, transparent);
  padding-top: var(--space-5);
}
html[data-theme="dark"] .consent-box .field-row{
  border-top-color: color-mix(in oklab, #c9a96e 30%, transparent);
}

@media (max-width: 640px){
  .bg-check-section{ padding: var(--space-5); }
  .consent-box{ padding: var(--space-4); }
  .consent-check{ padding: 8px; }
  .consent-box .field-row{
    margin-left: calc(-1 * var(--space-4));
    margin-right: calc(-1 * var(--space-4));
    padding-left: var(--space-4);
    padding-right: var(--space-4);
    grid-template-columns: 1fr;
  }
}

/* ============ Reproductive Services CTA (contact page) ============ */
.repro-cta{
  background:#0e0b09;
  color:#f5f0e6;
  border:1px solid rgba(214,169,72,.28);
  border-radius:var(--radius-lg);
  padding:var(--space-10) var(--space-10);
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:var(--space-8);
  align-items:center;
  box-shadow:var(--shadow-lg);
}
.repro-cta__body .eyebrow{color:var(--color-gold-soft, #d6a948);letter-spacing:.18em}
.repro-cta__body h2{color:#ffffff !important;margin:.35rem 0 .5rem;font-size:clamp(1.55rem,2.4vw,2rem);line-height:1.15}
.repro-cta__body p{color:#d6cbb3;margin:0;max-width:60ch}
.repro-cta__actions{display:flex;flex-direction:column;gap:var(--space-3);align-items:stretch}
.repro-cta__actions .btn{justify-content:center;white-space:nowrap}
.repro-cta__actions .btn--ghost{color:#f5f0e6;border-color:rgba(214,169,72,.45)}
.repro-cta__actions .btn--ghost:hover{background:rgba(214,169,72,.12);color:#ffffff;border-color:rgba(214,169,72,.9)}
@media (max-width:820px){
  .repro-cta{grid-template-columns:1fr;padding:var(--space-8) var(--space-6)}
  .repro-cta__actions{flex-direction:column}
}
