/* Layout: one 1200px column; sections alternate stone / tint / coat-black bands. */
:root{
  --bg:#f3f1ee; --surface:#fffdfb; --tint:#e9e4de; --ink:#17120f; --muted:#62574e; --line:#d9d1c8;
  --mahog:#9a461d; --tan:#c97a3d; --coat:#16110e; --coat-ink:#f2ebe3; --ok:#2f6b3f; --ask:#8a5a12;
  --display:"Big Shoulders Display","Oswald","Arial Narrow",sans-serif;
  --body:"Libre Franklin","Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --r:6px; --wrap:1200px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#12100e; --surface:#1b1714; --tint:#1f1a16; --ink:#f1ebe4; --muted:#b0a397; --line:#3a312a;
  --mahog:#d47a43; --tan:#e29b5e; --coat:#0b0908; --coat-ink:#f2ebe3; --ok:#7fc08e; --ask:#e3b15c; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#12100e; --surface:#1b1714; --tint:#1f1a16; --ink:#f1ebe4; --muted:#b0a397; --line:#3a312a;
  --mahog:#d47a43; --tan:#e29b5e; --coat:#0b0908; --coat-ink:#f2ebe3; --ok:#7fc08e; --ask:#e3b15c; color-scheme:dark}

/* base reset (static hosting) */
[hidden]{display:none!important}
html,body{margin:0}
html{-webkit-text-size-adjust:100%}
img{max-width:100%;height:auto}
button,input,select,textarea{font:inherit}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:16px/1.65 var(--body);-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--coat)}
a{color:var(--mahog);text-underline-offset:3px}
a:hover{color:var(--tan)}
:focus-visible{outline:2px solid var(--tan);outline-offset:3px;border-radius:2px}
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:1.02;letter-spacing:.005em;text-wrap:balance;margin:0 0 .5em;text-transform:uppercase}
h1{font-size:clamp(2.6rem,6.5vw,5rem)}
h2{font-size:clamp(1.9rem,4vw,2.9rem)}
h3{font-size:1.45rem;font-weight:700}
p{margin:0 0 1em}
img{max-width:100%;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.narrow{max-width:820px}
.measure{max-width:68ch}
.mono{font-family:var(--mono);letter-spacing:.06em}
.small{font-size:.86rem}
.muted{color:var(--muted)}
.big{font-family:var(--display);font-size:2.4rem;font-weight:800;margin:0}

/* signature: the two tan "eyebrow" dots every Rottweiler has above its eyes */
.brows{display:inline-flex;gap:5px;margin-right:.6em;vertical-align:middle}
.brows i{width:9px;height:6px;border-radius:50%;background:var(--tan);display:block}
.eyebrow{font-family:var(--mono);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 .9rem}

/* header */
.top{background:var(--coat);color:var(--coat-ink);font-size:.82rem}
.top .wrap{display:flex;gap:1rem;justify-content:space-between;padding-block:.45rem;flex-wrap:wrap}
.top a{color:var(--coat-ink)}
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;gap:1.2rem;padding-block:.75rem}
.logo{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink);font-family:var(--display);font-weight:900;font-size:1.35rem;line-height:.9;text-transform:uppercase}
.logo-mark{width:48px;height:48px;border-radius:50%;flex:none;object-fit:cover;box-shadow:0 0 0 2px var(--tan);transition:transform .4s}
.logo:hover .logo-mark{transform:rotate(-8deg) scale(1.06)}
.logo small{display:block;font-family:var(--mono);font-size:.58rem;font-weight:400;letter-spacing:.18em;color:var(--muted)}
.nav{display:flex;gap:.2rem;margin-left:auto;align-items:center}
.nav a{color:var(--ink);text-decoration:none;font-weight:600;font-size:.92rem;padding:.45rem .7rem;border-radius:var(--r);position:relative}
.nav a::after{content:"";position:absolute;left:.7rem;right:.7rem;bottom:.2rem;height:2px;background:var(--mahog);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.cartbtn{display:inline-flex;align-items:center;gap:.4rem;background:var(--coat);color:var(--coat-ink)!important;border-radius:999px;padding:.45rem .9rem!important}
.cartbtn::after{display:none}
.cartcount{font-family:var(--mono);background:var(--tan);color:var(--coat);border-radius:999px;min-width:1.4em;text-align:center;font-size:.75rem;padding:0 .35em}
.cartcount.bump{animation:bump .4s}
@keyframes bump{50%{transform:scale(1.45)}}
.menu-toggle{display:none;margin-left:auto;background:none;border:1px solid var(--line);color:var(--ink);border-radius:var(--r);padding:.45rem .7rem;font:600 .9rem var(--body)}
@media (max-width:900px){
  .menu-toggle{display:block}
  .nav{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;background:var(--bg);border-bottom:1px solid var(--line);padding:.5rem max(16px,env(safe-area-inset-right,0px)) 1rem max(16px,env(safe-area-inset-left,0px));display:none}
  .nav.open{display:flex}
}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:700 .95rem var(--body);padding:.85rem 1.3rem;border-radius:var(--r);border:1.5px solid var(--ink);background:transparent;color:var(--ink);text-decoration:none;cursor:pointer;transition:transform .15s,background .2s,color .2s}
.btn:hover{transform:translateY(-2px);color:var(--ink)}
.btn-primary{background:var(--mahog);border-color:var(--mahog);color:#fff}
.btn-primary:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.btn-ghost{border-color:var(--line)}
.btn-sm{padding:.45rem .8rem;font-size:.84rem}
.btn-block{width:100%}
.link-arrow{font-weight:700;text-decoration:none;white-space:nowrap}
.phone-chip{display:inline-flex;gap:.6rem;align-items:center;border:1px dashed var(--line);border-radius:var(--r);padding:.6rem .9rem;flex-wrap:wrap}
.phone-chip .mono{font-size:.7rem;color:var(--muted)}
.phone-chip a{font-weight:700;color:var(--ink);text-decoration:none}

/* motion */
.rise{animation:rise .8s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--d,0s)}
@keyframes rise{from{transform:translateY(18px);opacity:.001}to{transform:none;opacity:1}}
.route-in .pcard,.route-in .trait,.route-in .loc,.route-in .acard,.route-in .steps li,.route-in .guarantees li,.route-in .review,.route-in .case{animation:rise .7s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0)*70ms + .1s)}

/* home hero */
.home-hero{background:var(--coat);color:var(--coat-ink);overflow:hidden;position:relative}
.home-hero .eyebrow{color:#b8a998}
.hh-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center;padding-block:4rem 3rem}
.hh-title{font-size:clamp(3rem,8.4vw,6.6rem);font-weight:900;line-height:.88;margin-bottom:1.4rem}
.hh-title .ln{display:block;overflow:hidden}
.hh-title .ln>span{display:inline-block;animation:lineup 1s cubic-bezier(.2,.75,.15,1) both}
.hh-title .ln:nth-child(2)>span{animation-delay:.1s}.hh-title .ln:nth-child(3)>span{animation-delay:.2s}
.hh-title .mahog{color:var(--tan)}
@keyframes lineup{from{transform:translateY(105%)}to{transform:none}}
.home-hero .lede{color:#d9cfc4;max-width:56ch;font-size:1.08rem}
.hh-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin:1.6rem 0 2rem}
.home-hero .btn-ghost{color:var(--coat-ink);border-color:#4a3e35}
.home-hero .btn-primary:hover{background:var(--coat-ink);color:var(--coat);border-color:var(--coat-ink)}
.stats{display:flex;gap:2.4rem;margin:0;flex-wrap:wrap;border-top:1px solid #3a3029;padding-top:1.2rem}
.stats dt{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#a99a8c}
.stats dd{margin:0;font-family:var(--display);font-size:2.4rem;font-weight:800;color:var(--coat-ink);font-variant-numeric:tabular-nums}
.hh-media{position:relative}
.frame{aspect-ratio:1/1.05;border-radius:180px 180px var(--r) var(--r);overflow:hidden;background:#2a211b;max-width:100%;animation:framein 1.2s .15s cubic-bezier(.2,.75,.15,1) both}
@keyframes framein{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
.frame img,.frame .ph{width:100%;height:100%;object-fit:cover}
.tag{position:absolute;left:-1.2rem;bottom:2rem;background:var(--tan);color:var(--coat);padding:.7rem .9rem;font-size:.72rem;line-height:1.5;border-radius:var(--r);transform:rotate(-3deg);animation:rise .8s .7s both}
.tag span{display:block;font-weight:700;letter-spacing:.2em}
.paws{position:absolute;right:-10px;top:-24px;width:120px;height:260px;pointer-events:none}
.paws span{position:absolute;width:22px;height:22px;left:calc(50% + (var(--i) - 2.5) * 6px + (var(--i) * 13px % 26px) - 13px);top:calc(var(--i) * 42px);opacity:0;animation:paw 4.2s calc(var(--i)*.35s + 1s) infinite;background:
radial-gradient(circle at 50% 70%,var(--tan) 0 34%,transparent 36%),radial-gradient(circle at 18% 30%,var(--tan) 0 12%,transparent 14%),radial-gradient(circle at 40% 14%,var(--tan) 0 12%,transparent 14%),radial-gradient(circle at 62% 14%,var(--tan) 0 12%,transparent 14%),radial-gradient(circle at 84% 30%,var(--tan) 0 12%,transparent 14%);transform:rotate(calc(var(--i) * 12deg - 30deg))}
.paws span:nth-child(even){margin-left:26px}
@keyframes paw{0%{opacity:0}10%{opacity:.85}55%{opacity:.85}75%,100%{opacity:0}}
.marquee{border-top:1px solid #2e2620;overflow:hidden;padding-block:.9rem}
.track{display:flex;gap:1.4rem;width:max-content;animation:marq 40s linear infinite;font-family:var(--display);font-weight:700;font-size:1.3rem;text-transform:uppercase;color:#cbbcad}
.track b{color:var(--tan);font-size:.6rem;align-self:center}
@keyframes marq{to{transform:translateX(-50%)}}

.hero-seal{position:absolute;right:-.6rem;top:1.2rem;width:96px;height:96px;border-radius:50%;box-shadow:0 0 0 3px var(--tan),0 10px 30px rgba(0,0,0,.5);animation:seal 1s .9s cubic-bezier(.2,.8,.2,1.3) both}
@keyframes seal{from{transform:scale(.3) rotate(-40deg);opacity:.001}to{transform:none;opacity:1}}
.emblem{background:#000;aspect-ratio:1}
.emblem img{object-fit:contain}
/* meet the breeder */
.breeder-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:3.5rem;align-items:center}
.breeder-grid>*{min-width:0}
.breeder-photo{margin:0;position:relative}
.breeder-photo img,.breeder-photo .ph{width:100%;aspect-ratio:1080/894;object-fit:cover;border-radius:var(--r);display:block}
.breeder-photo::before{content:"";position:absolute;inset:18px -18px -18px 18px;border:2px solid var(--tan);border-radius:var(--r);z-index:-1;transition:transform .5s}
.breeder-photo:hover::before{transform:translate(-8px,-8px)}
.breeder{position:relative;z-index:0}
.breeder-photo figcaption{color:var(--muted);margin-top:1.6rem}
.route-in .breeder-photo{animation:rise .9s .15s cubic-bezier(.2,.7,.2,1) both}
@media (max-width:800px){.breeder-grid{grid-template-columns:1fr;gap:2.4rem}.breeder-photo::before{inset:12px -10px -10px 12px}}
/* page hero */
.phero{padding-block:2.6rem 2.2rem;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--tint),var(--bg))}
.phero .lede{font-size:1.12rem;max-width:62ch;color:var(--muted)}
.hero-facts{display:inline-flex;gap:.7rem;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.45rem 1rem;font-size:.92rem}
.crumbs{font-size:.82rem;color:var(--muted);margin-bottom:1.4rem}
.crumbs a{color:var(--muted)}
.crumbs span{opacity:.6;margin-inline:.2rem}

/* sections */
.sec{padding-block:4.5rem}
.sec-tint{background:var(--tint)}
.sec-dark{background:var(--coat);color:var(--coat-ink)}
.sec-dark .eyebrow{color:#b8a998}
.sec-dark a{color:var(--tan)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}
.sec-head h2{margin:0}
.split{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}
.split>*{min-width:0}
.split-img{border-radius:var(--r);overflow:hidden;background:var(--tint);aspect-ratio:4/3;max-width:100%}
.split-img img,.split-img .ph{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.split-img:hover img{transform:scale(1.04)}
.sticky-img{position:sticky;top:6rem;align-self:start}
.stack{display:grid;gap:1rem}
.prose h2{font-size:clamp(1.6rem,3vw,2.1rem);margin-top:1.6em}
.prose h2:first-child{margin-top:0}
.prose h3{margin-top:1.4em}
.ticks{list-style:none;padding:0;margin:0 0 1.2em;display:grid;gap:.5rem}
.ticks li{padding-left:1.6rem;position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:6px;border-radius:50%;background:var(--tan);box-shadow:12px 0 0 -0px transparent}

/* puppy cards */
.pgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.4rem}
#shopgrid>div[hidden]{display:none}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;height:100%;transition:transform .25s,box-shadow .25s}
.pcard:hover{transform:translateY(-4px);box-shadow:0 14px 30px -18px rgba(0,0,0,.45)}
.pcard-img{position:relative;aspect-ratio:1;overflow:hidden;background:var(--tint);display:block}
.pcard-img img,.pcard-img .ph{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.pcard:hover .pcard-img img{transform:scale(1.07)}
.pill{position:absolute;top:.7rem;left:.7rem;font:700 .68rem var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:.3rem .55rem;border-radius:999px;background:var(--surface);border:1px solid var(--line)}
.pill.ok{color:var(--ok)}.pill.ask{color:var(--ask)}
.pill::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:.4rem;vertical-align:1px}
.pcard-body{padding:1rem 1.1rem 1.1rem;display:flex;flex-direction:column;flex:1}
.pcard-body h3{margin:0 0 .15rem;font-size:1.7rem}
.pcard-body h3 a{color:var(--ink);text-decoration:none}
.pcard-body .mono{color:var(--muted);font-size:.7rem;margin-bottom:.9rem}
.pcard-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:.5rem;border-top:1px solid var(--line);padding-top:.8rem}
.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.6rem}
.chip{font:600 .9rem var(--body);border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:.5rem .9rem;border-radius:999px;cursor:pointer}
.chip .mono{color:var(--muted);font-size:.75rem;margin-left:.3rem}
.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.chip.on .mono{color:var(--bg)}

/* traits */
.traits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:3rem;border-top:1px solid #3a3029}
.trait{padding:1.6rem 1.4rem 1.4rem 0;border-bottom:1px solid #3a3029}
.trait p{color:#cbbfb3;margin:0}
.trait .num{color:var(--tan);font-size:.75rem}
.trait h3{margin:.4rem 0 .5rem}

/* steps */
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.4rem;counter-reset:s}
.steps li{display:grid;gap:.8rem;align-content:start;padding-top:1.2rem;border-top:3px solid var(--ink)}
.stepn{font-family:var(--display);font-weight:900;font-size:3.2rem;line-height:1;color:var(--mahog)}
.steps p{color:var(--muted);margin:0}

/* locations */
.locgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:1.6rem}
.loc{position:relative;display:grid;gap:.25rem;padding:1.2rem 1.2rem 1.3rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--ink);overflow:hidden;transition:background .25s,color .25s}
.loc strong{font-family:var(--display);font-size:2rem;text-transform:uppercase;line-height:1}
.loc .mono{color:var(--mahog);font-size:.7rem}
.loc .small{color:var(--muted)}
.loc .arrow{position:absolute;right:1rem;top:1rem;transition:transform .25s}
.loc:hover{background:var(--coat);color:var(--coat-ink)}
.loc:hover .small{color:#cbbfb3}.loc:hover .mono{color:var(--tan)}
.loc:hover .arrow{transform:translateX(4px)}

/* guarantees */
.guarantees{list-style:none;padding:0;margin:1.4rem 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.guarantees li{display:flex;gap:.6rem;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:.7rem .8rem;font-weight:600;font-size:.92rem}
.guarantees svg{width:20px;height:20px;flex:none;fill:none;stroke:var(--ok);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}

/* articles */
.agrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6rem}
.acard{display:grid;gap:1rem;align-content:start}
.acard-img{aspect-ratio:16/10;border-radius:var(--r);overflow:hidden;background:var(--tint);display:block}
.acard-img img,.acard-img .ph{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.acard:hover img{transform:scale(1.05)}
.acard h3 a{color:var(--ink);text-decoration:none}
.acard h3{font-size:1.5rem;margin:.2rem 0 .4rem}
.acard .mono{color:var(--mahog);margin:0}
.acard .small{color:var(--muted)}
.article h1{font-size:clamp(2.3rem,5.4vw,3.8rem)}
.article-img{aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;margin:1.4rem 0 2rem;background:var(--tint)}
.article-img img,.article-img .ph{width:100%;height:100%;object-fit:cover}
.article .prose{font-size:1.06rem}
.inline-cta{border-left:4px solid var(--tan);background:var(--tint);padding:1rem 1.2rem;margin-top:2rem;border-radius:0 var(--r) var(--r) 0}
.inline-cta p{margin:0}

/* FAQ */
.faq{border-top:1px solid var(--line);margin-block:1.4rem}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:1.15rem 2.4rem 1.15rem 0;font-weight:700;font-size:1.06rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.plus{position:absolute;right:.4rem;top:50%;width:16px;height:16px;transform:translateY(-50%)}
.plus::before,.plus::after{content:"";position:absolute;inset:7px 0;background:var(--mahog);transition:transform .3s}
.plus::after{transform:rotate(90deg)}
details[open] .plus::after{transform:rotate(0)}
.faq details p{color:var(--muted);padding-bottom:1.1rem;margin:0;animation:rise .4s both}

/* PDP */
.pdp-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.pdp-grid>*{min-width:0}
.pdp-img{position:relative;aspect-ratio:1;border-radius:var(--r);overflow:hidden;background:var(--tint);max-width:100%}
.pdp-img img,.pdp-img .ph{width:100%;height:100%;object-fit:cover}
.pdp-info h1{font-size:clamp(3rem,7vw,5.2rem);margin-bottom:.2em}
.price{font-family:var(--display);font-size:2.4rem;font-weight:800;display:flex;flex-direction:column;line-height:1;gap:.3rem}
.price .mono{font-family:var(--mono);font-size:.68rem;font-weight:400;color:var(--muted)}
.pdp-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin:1.4rem 0}
.spec{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.93rem}
.spec th{text-align:left;font:500 .72rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:.65rem 1rem .65rem 0;width:36%;vertical-align:top}
.spec td{padding:.6rem 0}
.spec tr{border-bottom:1px solid var(--line)}

/* misc */
.cta-band{background:var(--mahog);color:#fff}
.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding-block:3rem;flex-wrap:wrap}
.cta-inner h2{margin:0 0 .3rem}.cta-inner p{margin:0;opacity:.9}
.cta-band .btn-primary{background:var(--coat);border-color:var(--coat)}
.cta-band .phone-chip{border-color:rgba(255,255,255,.5)}
.cta-band .phone-chip a,.cta-band .phone-chip .mono{color:#fff}
.cta-actions{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}
.cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem}
.box .mono{color:var(--mahog)}
.side-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem;align-self:start;position:sticky;top:6rem}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:1rem 0 1.2rem}
.facts dt{font:500 .68rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.facts dd{margin:0;font-family:var(--display);font-size:1.6rem;font-weight:800}
.citylist{display:flex;flex-wrap:wrap;gap:.4rem}
.citylist span{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.25rem .7rem;font-size:.88rem}
.badges{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2rem;margin-top:1.4rem}
.badges figure{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1rem;display:grid;gap:.6rem;justify-items:center;text-align:center}
.badges img,.badges .ph{height:70px;width:auto;object-fit:contain}
.notice{border:1px dashed var(--ask);background:color-mix(in srgb,var(--ask) 10%,var(--surface));color:var(--ink);padding:.9rem 1.1rem;border-radius:var(--r);margin-bottom:1.6rem;font-size:.93rem}
.rgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.review{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem;position:relative;display:flex;flex-direction:column;gap:.6rem}
.review blockquote{margin:0;color:var(--muted);font-style:italic}
.review figcaption{display:grid;margin-top:auto}
.stars{color:var(--tan);letter-spacing:.15em}
.sample-tag{position:absolute;top:.8rem;right:.8rem;font-size:.62rem;color:var(--ask);border:1px solid var(--ask);border-radius:3px;padding:.1rem .4rem}
.cases{display:grid;gap:1.2rem}
.case{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.8rem}
.case .mono{color:var(--mahog)}
.case dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem;margin:1rem 0 1.2rem}
.case dt{font:500 .7rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.3rem}
.case dd{margin:0}
.contact-list{display:grid;gap:1.4rem;align-self:start}
.contact-list p{margin:0}
.contact-list .mono{color:var(--mahog);margin-bottom:.2rem}
.selectable{user-select:all}
.form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem;display:grid;gap:1rem;align-self:start}
.form h2{font-size:1.9rem;margin:0}
.form label{display:grid;gap:.3rem;font-weight:600;font-size:.88rem}
.form input,.form textarea,.form select{font:1rem var(--body);padding:.7rem .8rem;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);color:var(--ink);width:100%}
.form .check{display:flex;gap:.5rem;align-items:center;font-weight:500}
.form .check input{width:auto}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.form-msg{margin:0;font-weight:600;color:var(--ok)}
.form-msg.err{color:var(--mahog)}
.total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);padding-top:1rem}
.total strong{font-family:var(--display);font-size:2rem}
.cart-items{display:grid;gap:.8rem;align-self:start}
.cart-row{display:grid;grid-template-columns:72px 1fr auto;gap:1rem;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:.7rem}
.cart-row .thumb{width:72px;height:72px;border-radius:4px;overflow:hidden;background:var(--tint)}
.cart-row .thumb img,.cart-row .thumb .ph{width:100%;height:100%;object-fit:cover}
.cart-row h3{margin:0;font-size:1.4rem}
.empty{border:1px dashed var(--line);border-radius:var(--r);padding:2rem;text-align:center;color:var(--muted)}

/* image fallback (used when a photo can't load, e.g. in previews) */
.ph{display:grid;place-items:center;align-content:center;gap:.5rem;background:radial-gradient(120% 90% at 30% 20%,#3b2a20,#16110e 70%);color:#e6d6c6;text-align:center;padding:1rem;width:100%;height:100%;min-height:80px}
.ph svg{width:42px;height:42px;fill:var(--tan);opacity:.9}
.ph span{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.25rem;line-height:1}

/* footer */
.foot{background:var(--coat);color:#cbbfb3;padding-block:3.5rem 2rem;font-size:.92rem}
.foot a{color:var(--coat-ink);text-decoration:none}
.foot a:hover{color:var(--tan)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
.foot h4{font:500 .72rem var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#8f8073;margin:0 0 .9rem}
.foot ul{list-style:none;padding:0;margin:0;display:grid;gap:.45rem}
.foot .logo{color:var(--coat-ink)}
.foot-bottom{border-top:1px solid #2e2620;margin-top:2.5rem;padding-top:1.2rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.8rem}
.toast{position:fixed;left:50%;bottom:calc(1.4rem + env(safe-area-inset-bottom,0px));transform:translate(-50%,150%);background:var(--ink);color:var(--bg);padding:.8rem 1.2rem;border-radius:999px;font-weight:600;z-index:80;transition:transform .35s cubic-bezier(.2,.8,.2,1);max-width:calc(100% - 32px)}
.toast.show{transform:translate(-50%,0)}
.toast a{color:var(--tan)}

/* SEO plan table */
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r)}
.seo-tbl{border-collapse:collapse;width:100%;min-width:900px;font-size:.84rem;background:var(--surface)}
.seo-tbl th,.seo-tbl td{text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--line);vertical-align:top}
.seo-tbl th{font:500 .68rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--tint);position:sticky;top:0}
.seo-tbl td:first-child{font-family:var(--mono);font-size:.76rem;white-space:nowrap}
.len{font-family:var(--mono);font-size:.72rem;color:var(--muted)}

@media (max-width:1000px){
  .pgrid,.locgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:800px){
  .hh-grid,.split,.pdp-grid{grid-template-columns:1fr;gap:2rem}
  .hh-media{max-width:420px}
  .traits,.agrid,.cols3,.rgrid,.case dl{grid-template-columns:1fr}
  .badges{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sticky-img,.side-card{position:static}
  .sec{padding-block:3.2rem}
  .tag{left:.5rem}
}
@media (max-width:520px){
  .pgrid,.locgrid,.steps,.guarantees,.row2,.foot-grid{grid-template-columns:1fr}
  .stats{gap:1.4rem}
  .paws{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .track{transform:none}
}
.btn-adopt{background:var(--mahog);border-color:var(--mahog);color:#fff}.btn-adopt:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}

/* WhatsApp */
.btn-wa{background:#25D366;border-color:#25D366;color:#06281a}
.btn-wa:hover{background:#1ebe5b;border-color:#1ebe5b;color:#06281a}
.wa-ic{width:20px;height:20px;fill:currentColor;flex:none}
.wa-float{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:70;display:flex;align-items:center;gap:.55rem;background:#25D366;color:#06281a;text-decoration:none;font-weight:700;border-radius:999px;padding:.8rem 1.1rem .8rem .9rem;box-shadow:0 10px 26px -8px rgba(0,0,0,.45);animation:wa-in .6s 1.2s cubic-bezier(.2,.8,.2,1.3) both}
.wa-float .wa-ic{width:28px;height:28px}
.wa-float::before{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 rgba(37,211,102,.55);animation:wa-pulse 2.4s 2s infinite}
.wa-float:hover{color:#06281a;transform:translateY(-2px)}
@keyframes wa-in{from{transform:translateY(120%) scale(.6);opacity:.001}to{transform:none;opacity:1}}
@keyframes wa-pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.55)}70%,100%{box-shadow:0 0 0 16px rgba(37,211,102,0)}}
@media (max-width:600px){.wa-float span{display:none}.wa-float{padding:.85rem}.toast{bottom:calc(5.4rem + env(safe-area-inset-bottom,0px))}}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

/* reserve pop-up */
html.modal-open{overflow:hidden}
.rmodal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.rmodal-back{position:absolute;inset:0;background:rgba(10,7,5,.62);backdrop-filter:blur(4px);opacity:0;transition:opacity .25s}
.rmodal-box{position:relative;background:var(--surface);color:var(--ink);border-radius:10px;width:min(880px,100%);max-height:100%;overflow:auto;display:grid;grid-template-columns:.9fr 1.1fr;box-shadow:0 30px 80px -20px rgba(0,0,0,.6);transform:translateY(24px) scale(.97);opacity:0;transition:transform .35s cubic-bezier(.2,.8,.2,1.1),opacity .25s}
.rmodal.show .rmodal-back{opacity:1}
.rmodal.show .rmodal-box{transform:none;opacity:1}
.rmodal-media{position:relative;background:var(--coat);min-height:100%}
.rmodal-media img,.rmodal-media .ph{width:100%;height:100%;object-fit:cover;display:block;min-height:260px}
.rmodal-tag{position:absolute;left:12px;bottom:12px;background:var(--tan);color:var(--coat);font-size:.66rem;padding:.35rem .6rem;border-radius:4px}
.rmodal-body{padding:1.6rem 1.6rem 1.4rem;display:grid;gap:.8rem;align-content:start;min-width:0}
.rmodal-body h2{margin:0;font-size:clamp(2rem,4vw,2.8rem)}
#rm-name{color:var(--mahog)}
.rform{border:0;padding:0;background:none;gap:.8rem}
.rform-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.rform-actions .btn-primary{flex:1}
.rmodal-x{position:absolute;top:10px;right:10px;z-index:2;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:1.5rem;line-height:1;cursor:pointer}
.rmodal-x:hover{background:var(--ink);color:var(--bg)}
.rmodal-done{text-align:center;display:grid;gap:.6rem;justify-items:center;padding:1rem 0}
.rmodal-done[hidden]{display:none}
.rmodal-done svg{width:72px;height:72px;fill:none;stroke:var(--ok);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.rmodal-done circle{stroke-dasharray:151;stroke-dashoffset:151;animation:draw .6s forwards}
.rmodal-done path{stroke-dasharray:40;stroke-dashoffset:40;animation:draw .4s .5s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.nav-reserve{margin-left:.4rem}
@media (max-width:720px){.rmodal{place-items:end center;padding-bottom:0}.rmodal-box{grid-template-columns:1fr;border-radius:14px 14px 0 0;max-height:92vh}.rmodal-media img,.rmodal-media .ph{min-height:0;height:180px}}
@media (max-width:900px){.nav-reserve{margin:.4rem 0}}

/* ---- motion & buttons pass ---- */
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn .arr{display:inline-block;transition:transform .25s}
.btn:hover .arr{transform:translateX(4px)}
.btn-shine::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);z-index:-1}
.btn-shine:hover::after{animation:shine .8s}
.btn-primary.btn-shine{animation:breathe 3.2s 2.5s ease-in-out infinite}
@keyframes shine{to{transform:translateX(120%)}}
@keyframes breathe{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--mahog) 0%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--mahog) 22%,transparent)}}
.ripple{position:absolute;border-radius:50%;background:currentColor;opacity:.25;transform:scale(0);animation:ripple .6s ease-out;pointer-events:none}
@keyframes ripple{to{transform:scale(2.4);opacity:0}}
.btn-light{background:#fff;border-color:#fff;color:var(--coat)}
.btn-light:hover{background:var(--coat);border-color:var(--coat);color:#fff}
.hero-actions{margin-top:1.4rem}
.pre{opacity:.3;transform:translateY(22px)}
.pre.in{opacity:1;transform:none;transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * 60ms)}
.sec h2{position:relative}
.sec-head h2::after,.prose h2::after{content:"";display:block;width:56px;height:4px;background:var(--tan);margin-top:.45rem;border-radius:2px;transform-origin:left;transform:scaleX(1)}
.sec-head h2.pre::after,.prose h2.pre::after{transform:scaleX(0)}
.sec-head h2.in::after,.prose h2.in::after{transform:scaleX(1);transition:transform .6s .3s}
.pcard{transition:transform .2s ease-out,box-shadow .25s}
.pcard-hover{position:absolute;left:0;right:0;bottom:0;padding:.7rem .9rem;background:linear-gradient(transparent,rgba(10,7,5,.8));color:#fff;font-weight:700;transform:translateY(100%);transition:transform .3s}
.pcard:hover .pcard-hover,.pcard:focus-within .pcard-hover{transform:none}
.hero-seal{animation:seal 1s .9s cubic-bezier(.2,.8,.2,1.3) both,bob 4s 2s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-6px) rotate(4deg)}}
.cols4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.cols4 .stepn{font-size:2.4rem}
.cta-band{position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;inset:-40% -10%;background:radial-gradient(40% 60% at 20% 50%,rgba(255,255,255,.12),transparent 60%);animation:drift 12s ease-in-out infinite alternate;pointer-events:none}
@keyframes drift{to{transform:translateX(30%)}}
.totop{position:fixed;left:calc(18px + env(safe-area-inset-left,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:69;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:1.2rem;cursor:pointer;opacity:0;transform:translateY(20px);pointer-events:none;transition:.3s}
.totop.show{opacity:1;transform:none;pointer-events:auto}
.mbar{display:none}
@media (max-width:700px){
  .mbar{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:6px;position:fixed;left:0;right:0;bottom:0;z-index:72;background:var(--coat);padding:8px max(8px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));transform:translateY(110%);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
  .mbar.show{transform:none}
  .mbar a,.mbar button{display:flex;align-items:center;justify-content:center;gap:.35rem;border-radius:8px;padding:.7rem .4rem;font:700 .88rem var(--body);text-decoration:none;border:0;cursor:pointer}
  .mbar svg{width:18px;height:18px;fill:currentColor}
  .mbar-call{background:var(--coat-ink);color:var(--coat)}
  .mbar-wa{background:#25D366;color:#06281a}
  .mbar-res{background:var(--mahog);color:#fff}
  .wa-float{display:none}
  .totop{bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .toast{bottom:calc(5.6rem + env(safe-area-inset-bottom,0px))}
  body{padding-bottom:72px}
  .cols4{grid-template-columns:1fr 1fr}
}
@media (max-width:420px){.cols4{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.pre{opacity:1;transform:none}}

.citylist a{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.25rem .75rem;font-size:.88rem;text-decoration:none;transition:background .2s,color .2s}
.citylist a:hover{background:var(--ink);color:var(--bg)}
.citydir{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.6rem;margin-top:2.4rem}
.citydir h3{margin:0 0 .5rem}.citydir h3 a{color:var(--ink);text-decoration:none}
.citydir ul{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.citydir li{display:flex;justify-content:space-between;gap:.5rem;border-bottom:1px dashed var(--line);padding-bottom:.25rem}
.citydir .mono{color:var(--muted)}
@media (max-width:1000px){.citydir{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.citydir{grid-template-columns:1fr}}

.choice{border:0;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.choice legend{font-weight:600;font-size:.88rem;margin-bottom:.35rem;padding:0}
.choice .opt{display:block;cursor:pointer}
.choice .opt input{position:absolute;opacity:0;width:1px;height:1px}
.choice .opt span{display:grid;gap:.1rem;border:1.5px solid var(--line);border-radius:var(--r);padding:.65rem .8rem;transition:border-color .2s,background .2s,transform .15s}
.choice .opt small{color:var(--muted);font-weight:400}
.choice .opt input:checked + span{border-color:var(--mahog);background:color-mix(in srgb,var(--mahog) 9%,var(--surface));transform:translateY(-1px)}
.choice .opt input:focus-visible + span{outline:2px solid var(--tan);outline-offset:2px}
[aria-invalid="true"]{border-color:var(--mahog)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--mahog) 20%,transparent)}

/* puppy families */
.fam-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:2rem}
.fam-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.fam-item{display:block;padding:0;border:0;background:var(--tint);border-radius:var(--r);overflow:hidden;cursor:zoom-in;position:relative}
.fam-item img{width:100%;height:auto;aspect-ratio:480/560;object-fit:cover;display:block;transition:transform .6s,filter .3s}
.fam-item::after{content:"♥";position:absolute;right:10px;bottom:8px;color:#fff;font-size:1.1rem;opacity:0;transform:scale(.4);transition:.3s;text-shadow:0 2px 8px rgba(0,0,0,.5)}
.fam-item:hover img{transform:scale(1.06);filter:saturate(1.1)}
.fam-item:hover::after{opacity:1;transform:none}
.fam-stats{border-top:0;padding-top:0}
.fam-stats dt{color:var(--muted)}.fam-stats dd{color:var(--ink)}
.cert{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1rem;display:grid;gap:.6rem;box-shadow:0 18px 40px -26px rgba(0,0,0,.5);transform:rotate(-1deg)}
.cert img{width:100%;border-radius:4px}
.cert figcaption{color:var(--muted)}
.lb{position:fixed;inset:0;z-index:95;background:rgba(8,6,5,.92);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:max(16px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));opacity:0;transition:opacity .25s}
.lb.show{opacity:1}
.lb figure{margin:0;display:grid;justify-items:center;gap:.6rem;min-width:0}
.lb img{max-height:82vh;max-width:100%;width:auto;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.lb figcaption{color:#e9dfd4;text-align:center}
.lb-nav,.lb-x{background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:50%;width:46px;height:46px;font-size:1.8rem;line-height:1;cursor:pointer}
.lb-nav:hover,.lb-x:hover{background:rgba(255,255,255,.25)}
.lb-x{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:calc(14px + env(safe-area-inset-right,0px))}
@media (max-width:1000px){.fam-strip,.fam-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.fam-strip,.fam-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lb{grid-template-columns:1fr}.lb-nav{position:absolute;bottom:calc(20px + env(safe-area-inset-bottom,0px))}.lb-prev{left:20px}.lb-next{right:20px}}
@media (max-width:700px){
  .fam-home .fam-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding-bottom:6px;-webkit-overflow-scrolling:touch}
  .fam-home .fam-item{flex:0 0 44%;scroll-snap-align:start}
}
a.box{text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s}
a.box:hover{transform:translateY(-3px);box-shadow:0 14px 30px -18px rgba(0,0,0,.45)}
