:root{
  --cream:#faf5ec; --beige:#efe3cd; --sand:#e3d0a8;
  --gold:#b8860b; --gold-soft:#c9a227; --bronze:#8a6d1f;
  --ink:#3a2f22; --muted:#7a6a52; --card:#fffdf8;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:Georgia,'Times New Roman',serif;background:var(--cream);color:var(--ink);line-height:1.6}
a{color:var(--bronze)}
.topbar{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;
  padding:1rem 1.4rem;background:rgba(250,245,236,.96);border-bottom:1px solid var(--sand);
  position:sticky;top:0;z-index:10;
}
.brandmark{font-size:1.35rem;letter-spacing:.18em;text-transform:uppercase;color:var(--bronze)}
.brandmark small{display:block;font-size:.68rem;letter-spacing:.32em;color:var(--gold);margin-top:.1rem}
nav.mainnav{display:flex;flex-wrap:wrap;gap:1rem;font-size:.95rem}
nav.mainnav a{text-decoration:none;letter-spacing:.08em;text-transform:uppercase}
nav.mainnav a:hover{text-decoration:underline}
.crown{font-size:2.2rem;letter-spacing:.4rem;color:var(--gold)}
header.hero{
  text-align:center;padding:4rem 1.2rem 2.6rem;
  background:linear-gradient(180deg,var(--beige),var(--cream));
  border-bottom:3px double var(--gold-soft);
}
header.hero h1{
  font-size:clamp(3rem,9vw,5.2rem);font-weight:400;letter-spacing:.12em;
  color:var(--bronze);text-transform:uppercase;
}
header.hero h1 span{display:block;font-size:.38em;letter-spacing:.55em;color:var(--gold);margin-top:.4rem}
.dates{margin-top:1rem;color:var(--muted);letter-spacing:.25em;font-size:.95rem}
.tagline{font-style:italic;font-size:1.35rem;color:var(--bronze);margin-top:.6rem}
.eyebrow{letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-size:.85rem}
.hero-photo,.about-photo{max-width:560px;margin:2.2rem auto 0;padding:10px;background:var(--card);
  border:1px solid var(--sand);box-shadow:0 10px 30px rgba(138,109,31,.18)}
.hero-photo img,.about-photo img{width:100%;display:block}
.hero-photo figcaption,.about-photo figcaption{padding:.6rem;font-size:.9rem;color:var(--muted);font-style:italic}
.hero-copy{max-width:760px;margin:0 auto}
section{max-width:980px;margin:0 auto;padding:3rem 1.2rem 1rem}
section.wide{max-width:1120px}
h2{text-align:center;font-weight:400;letter-spacing:.2em;text-transform:uppercase;
  color:var(--bronze);font-size:1.5rem;margin-bottom:.4rem}
h3{font-weight:400;color:var(--bronze);letter-spacing:.06em}
.rule{width:120px;height:1px;background:var(--gold-soft);margin:.8rem auto 1.8rem;position:relative}
.rule::after{content:"♥";position:absolute;left:50%;top:-.72em;transform:translateX(-50%);
  background:var(--cream);padding:0 .4em;color:var(--gold);font-size:.9rem}
p.lead{max-width:720px;margin:0 auto 1.2rem;text-align:center;color:var(--ink)}
.center{text-align:center}
.button-row{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:1.4rem}
.button{display:inline-block;text-decoration:none;border:1px solid var(--gold-soft);color:var(--bronze);
  padding:.65rem 1.3rem;letter-spacing:.18em;font-size:.85rem;text-transform:uppercase;background:var(--card)}
.button.primary{background:var(--bronze);color:#fff;border-color:var(--bronze)}
.button:hover{filter:brightness(1.04)}
.pillars,.collection-grid,.faq-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.pillar,.product-card,.faq-card{background:var(--card);border:1px solid var(--sand);padding:1.25rem;
  box-shadow:0 4px 14px rgba(138,109,31,.10)}
.pillar .icon{font-size:1.7rem;color:var(--gold)}
.product-card img{width:100%;height:210px;object-fit:cover;display:block;border:1px solid var(--sand);margin-bottom:1rem}
.product-card ul,.faq-card ul{margin-left:1.1rem;color:var(--ink)}
.badge{display:inline-block;border:1px solid var(--gold-soft);color:var(--bronze);padding:.18rem .65rem;
  letter-spacing:.18em;font-size:.72rem;text-transform:uppercase;background:var(--cream);margin-bottom:.7rem}
.collection-board{max-width:860px;margin:0 auto;padding:10px;background:var(--card);border:1px solid var(--sand);
  box-shadow:0 10px 30px rgba(138,109,31,.14)}
.collection-board img{width:100%;display:block}
.note{max-width:760px;margin:1rem auto 0;text-align:center;color:var(--muted);font-style:italic}
.timeline{max-width:700px;margin:0 auto}
.timeline li{list-style:none;padding:.9rem 1rem .9rem 1.4rem;border-left:2px solid var(--sand);position:relative}
.timeline li::before{content:"♛";position:absolute;left:-.62rem;top:.85rem;background:var(--cream);
  color:var(--gold);font-size:.95rem;padding:.1rem}
.timeline b{color:var(--bronze);letter-spacing:.06em}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.gallery figure{background:var(--card);border:1px solid var(--sand);padding:8px;
  box-shadow:0 4px 14px rgba(138,109,31,.12)}
.gallery img{width:100%;height:230px;object-fit:cover;display:block}
.gallery img.pos-top{object-position:top center}
.gallery figcaption{font-size:.85rem;color:var(--muted);font-style:italic;padding:.45rem .2rem .2rem;text-align:center}
.memorial{display:flex;flex-wrap:wrap;gap:18px;justify-content:center}
.memorial figure{background:var(--card);border:1px solid var(--sand);padding:8px;max-width:320px;
  box-shadow:0 4px 14px rgba(138,109,31,.12)}
.memorial img{width:100%;display:block}
.memorial figcaption{font-size:.85rem;color:var(--muted);font-style:italic;text-align:center;padding:.45rem .2rem .2rem}
.newsletter{background:var(--beige);border-top:3px double var(--gold-soft);border-bottom:3px double var(--gold-soft);
  max-width:none;padding-left:1.2rem;padding-right:1.2rem}
.newsletter-inner{max-width:820px;margin:0 auto;text-align:center}
footer{text-align:center;padding:2.6rem 1.2rem 3.2rem;color:var(--muted)}
footer .paws{font-size:1.4rem;letter-spacing:.8rem;color:var(--gold)}
footer .runfree{font-size:1.35rem;letter-spacing:.28em;color:var(--bronze);text-transform:uppercase;margin:.8rem 0}
.footer-links{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin:1rem 0}
.footer-links a{text-decoration:none}
.coming-soon{display:inline-block;margin-top:1rem;border:1px solid var(--gold-soft);color:var(--bronze);
  padding:.45rem 1.2rem;letter-spacing:.25em;font-size:.85rem;text-transform:uppercase;background:var(--card)}
.small{font-size:.9rem;color:var(--muted)}
@media (max-width:640px){
  .topbar{justify-content:center;text-align:center}
  nav.mainnav{justify-content:center}
  header.hero{padding-top:3rem}
}
.signup-form { max-width: 520px; margin: 18px auto 0; text-align: left; }
.signup-label { display: block; font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--gold-deep); margin-bottom: 8px; }
.signup-row { display: flex; gap: 10px; }
.signup-row input { flex: 1; padding: 14px 16px; border-radius: 999px; border: 1px solid var(--line); background: #fffdf8; font: inherit; color: var(--ink); min-width: 0; }
.signup-row input:focus { outline: 2px solid rgba(201,162,75,.45); border-color: rgba(201,162,75,.8); }
.signup-form .small { text-align: center; margin-top: 12px; }
@media (max-width: 560px) { .signup-row { flex-direction: column; } .signup-row .btn { width: 100%; } }
.collection-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 8px 0 4px; }
.collection-photos figure { margin: 0; }
.collection-photos img { width: 100%; height: 100%; max-height: 340px; object-fit: cover; border-radius: 18px; display: block; }
.collection-photos figcaption { text-align: center; font-family: var(--serif); font-size: 1.05rem; color: var(--gold-deep); margin-top: 10px; letter-spacing: .02em; }
@media (max-width: 640px) { .collection-photos { grid-template-columns: 1fr; } }

