:root{
  --cream:#FBF3E6;
  --cream-dk:#F2E5CC;
  --paper:#FFFDF9;
  --plum:#6B2FA0;
  --plum-dk:#4B1E75;
  --plum-soft:#8A4FC0;
  --berry:#C24875;
  --berry-dk:#9C3860;
  --lavender:#D9C8E9;
  --lavender-dk:#B9A0CF;
  --sage:#7C8B5D;
  --sage-dk:#5F6C45;
  --ink:#2B1E30;
  --ink-soft:#5B4B62;
  --white:#FFFFFF;
  --shadow: 0 12px 32px rgba(107,47,160,0.16);
  --rb-red:#E8503E;
  --rb-orange:#F0954A;
  --rb-yellow:#F0C44C;
  --rb-green:#6FAE72;
  --rb-blue:#4E9BD1;
  --rb-purple:#6B2FA0;
  --rainbow-grad: linear-gradient(90deg, var(--rb-red), var(--rb-orange), var(--rb-yellow), var(--rb-green), var(--rb-blue), var(--rb-purple));
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;} }
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Karla',sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;}
h1,h2,h3,.serif{font-family:'Fraunces',serif;}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px;}
.eyebrow{font-family:'Karla',sans-serif;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;font-size:0.72rem;color:var(--berry-dk);display:flex;align-items:center;gap:0.5rem;}
.eyebrow .peace{width:14px;height:14px;flex-shrink:0;}
.rainbow-rule{width:64px;height:6px;border-radius:100px;background:var(--rainbow-grad);margin-bottom:0.9rem;}
.rainbow-strip{height:6px;width:100%;background:var(--rainbow-grad);}
.curl-divider{width:100%;height:34px;display:block;}
.curl-divider path{fill:none;stroke-width:3;stroke-linecap:round;}

/* ---------- Nav ---------- */
header.site-header{position:sticky;top:0;z-index:50;background:rgba(247,239,227,0.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--cream-dk);}
.nav{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;max-width:1120px;margin:0 auto;}
.brand{display:flex;align-items:center;gap:0.7rem;text-decoration:none;color:var(--plum);}
.brand img{width:44px;height:44px;border-radius:50%;object-fit:cover;box-shadow:0 2px 8px rgba(107,47,160,0.2);}
.brand-word{font-family:'Fraunces',serif;font-weight:600;font-size:1.1rem;letter-spacing:0.01em;line-height:1.1;}
.brand-word span{display:block;font-size:0.62rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--berry);font-family:'Karla',sans-serif;margin-top:2px;}
nav.links{display:flex;gap:1.15rem;align-items:center;}
nav.links a{text-decoration:none;font-weight:600;font-size:0.9rem;color:var(--plum);position:relative;padding:4px 0;}
nav.links a:after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--berry);transition:width 0.2s ease;}
nav.links a:hover:after, nav.links a.current:after{width:100%;}
.nav-cta{background:linear-gradient(90deg, var(--plum), var(--berry));color:var(--white) !important;padding:9px 18px;border-radius:100px;font-weight:700 !important;}
.nav-cta:after{display:none;}
.menu-btn{display:none;background:none;border:none;cursor:pointer;padding:6px;}
.menu-btn svg{width:26px;height:26px;}
@media (max-width:1024px){
  nav.links{position:fixed;top:64px;left:0;right:0;background:var(--paper);flex-direction:column;align-items:flex-start;padding:1.2rem 24px 1.6rem;gap:1rem;border-bottom:1px solid var(--cream-dk);transform:translateY(-130%);opacity:0;transition:all 0.25s ease;pointer-events:none;}
  nav.links.open{transform:translateY(0);opacity:1;pointer-events:auto;}
  .menu-btn{display:block;}
  .brand-word{font-size:1rem;}
}

/* ---------- Buttons ---------- */
.btn-row{display:flex;flex-wrap:wrap;gap:0.9rem;}
.btn{display:inline-flex;align-items:center;gap:0.5rem;padding:13px 26px;border-radius:100px;font-weight:700;font-size:0.95rem;text-decoration:none;transition:transform 0.15s ease, box-shadow 0.15s ease;cursor:pointer;border:none;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:linear-gradient(90deg, var(--plum), var(--berry));color:var(--white);box-shadow:0 8px 20px rgba(107,47,160,0.35);}
.btn-primary:hover{filter:brightness(1.08);}
.btn-ghost{background:transparent;border:1.5px solid var(--plum);color:var(--plum);}
.btn-ghost:hover{background:var(--plum);color:var(--white);}

/* ---------- Sections ---------- */
section{padding:78px 0;}
.section-head{max-width:640px;margin:0 auto 2.6rem;text-align:left;}
.section-head h2{font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:600;color:var(--plum);margin:0.5rem 0 0.9rem;}
.section-head p{color:var(--ink-soft);font-size:1.03rem;margin:0;}
.center{text-align:center;margin-left:auto;margin-right:auto;}

/* ---------- Home hero ---------- */
.hero{position:relative;overflow:hidden;padding:64px 24px 84px;background:
    radial-gradient(circle at 10% 15%, rgba(107,47,160,0.16) 0%, transparent 40%),
    radial-gradient(circle at 30% 85%, rgba(240,196,76,0.18) 0%, transparent 38%),
    radial-gradient(circle at 92% 20%, rgba(111,174,114,0.16) 0%, transparent 42%),
    radial-gradient(circle at 86% 80%, rgba(194,72,117,0.16) 0%, transparent 46%),
    radial-gradient(circle at 55% 40%, rgba(78,155,209,0.10) 0%, transparent 50%),
    var(--cream);}
.hero-inner{max-width:1120px;margin:0 auto;text-align:center;}
.hero-logo{max-width:340px;width:75%;margin:0 auto 1.2rem;border-radius:50%;box-shadow:var(--shadow);background:var(--paper);}
.hero h1{font-size:clamp(2rem,4.5vw,3rem);line-height:1.1;font-weight:600;color:var(--plum);margin:0.6rem 0 1rem;}
.hero h1 em{font-style:italic;color:var(--berry);font-weight:500;}
.hero p.lede{font-size:1.1rem;color:var(--ink-soft);max-width:60ch;margin:0 auto 2rem;}

/* ---------- Page header (for non-home pages) ---------- */
.page-hero{padding:56px 24px 44px;background:
    radial-gradient(circle at 20% 30%, rgba(107,47,160,0.14) 0%, transparent 45%),
    radial-gradient(circle at 80% 70%, rgba(194,72,117,0.12) 0%, transparent 45%),
    var(--cream);
  text-align:center;}
.page-hero .eyebrow{justify-content:center;margin-bottom:0.5rem;}
.page-hero h1{font-family:'Fraunces',serif;font-weight:600;font-size:clamp(2rem,4.5vw,2.8rem);color:var(--plum);margin:0.3rem 0 0.7rem;line-height:1.1;}
.page-hero h1 em{font-style:italic;color:var(--berry);font-weight:500;}
.page-hero p.lede{font-size:1.05rem;color:var(--ink-soft);max-width:56ch;margin:0 auto;}
.page-hero .rainbow-rule{margin:0.6rem auto 1rem;}

/* ---------- Video ---------- */
.temple-section{background:var(--cream);padding:56px 0;}
.temple-inner{max-width:760px;margin:0 auto;padding:0 24px;text-align:center;}
.video-frame{position:relative;padding-top:56.25%;border-radius:18px;overflow:hidden;box-shadow:var(--shadow);border:6px solid var(--paper);}
.video-frame iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;}
.temple-credit{margin-top:1.2rem;font-family:'Fraunces',serif;font-size:1.15rem;color:var(--plum);}
.temple-credit span{font-family:'Karla',sans-serif;font-size:0.85rem;color:var(--ink-soft);display:inline-block;margin-top:0.3rem;}

/* ---------- About ---------- */
.about-section{background:var(--paper);}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:3.2rem;align-items:center;}
@media (max-width:860px){.about-grid{grid-template-columns:1fr;}}
.about-grid img{border-radius:20px;box-shadow:var(--shadow);}
.about-copy p{color:var(--ink-soft);font-size:1.03rem;}
.about-copy .tagline{font-family:'Fraunces',serif;font-style:italic;font-size:1.35rem;color:var(--berry-dk);margin-top:1.4rem;}
.stat-row{display:flex;gap:2.4rem;margin-top:1.8rem;flex-wrap:wrap;}
.stat b{display:block;font-family:'Fraunces',serif;font-size:1.7rem;}
.stat span{font-size:0.76rem;font-weight:700;text-transform:uppercase;letter-spacing:0.07em;color:var(--ink-soft);}

/* ---------- Dog card (Lotus) ---------- */
.dog-card{background:var(--paper);border-radius:22px;box-shadow:var(--shadow);overflow:hidden;display:grid;grid-template-columns:0.85fr 1.15fr;max-width:960px;margin:0 auto;}
@media (max-width:760px){.dog-card{grid-template-columns:1fr;}}
.dog-card img{width:100%;height:100%;object-fit:cover;min-height:300px;}
.dog-copy{padding:2.4rem;display:flex;flex-direction:column;justify-content:center;}
.dog-name{font-family:'Fraunces',serif;font-size:2rem;color:var(--plum);margin:0 0 0.3rem;}
.dog-tags{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:1rem;}
.tag{background:var(--lavender);color:var(--plum);font-size:0.72rem;font-weight:700;padding:5px 12px;border-radius:100px;text-transform:uppercase;letter-spacing:0.04em;}
.tag.pink{background:var(--berry);color:var(--white);}
.tag.orange{background:var(--rb-orange);color:var(--white);}
.tag.green{background:var(--rb-green);color:var(--white);}
.tag.blue{background:var(--rb-blue);color:var(--white);}
.tag.purple{background:var(--plum);color:var(--white);}
.dog-copy p{color:var(--ink-soft);}
.fee-note{font-size:0.85rem;color:var(--ink-soft);margin-top:0.4rem;}

/* ---------- Happy Tails grid (hub page) ---------- */
.tails-hub{background:var(--plum);color:var(--cream);}
.tails-hub .section-head h2, .tails-hub .page-hero h1{color:var(--cream);}
.tails-hub .section-head p, .tails-hub .page-hero p.lede{color:var(--lavender);}
.tails-hub .eyebrow{color:var(--lavender-dk);}
.tails-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem;max-width:900px;margin:0 auto;}
@media (max-width:720px){.tails-cards{grid-template-columns:1fr;}}
.tails-card{background:var(--plum-dk);border-radius:20px;overflow:hidden;text-decoration:none;color:var(--cream);border:1px solid rgba(217,200,233,0.15);transition:transform 0.2s ease, border-color 0.2s ease;display:flex;flex-direction:column;}
.tails-card:hover{transform:translateY(-4px);border-color:var(--berry);}
.tails-card-img{aspect-ratio:16/11;background:var(--lavender-dk);overflow:hidden;}
.tails-card-img img{width:100%;height:100%;object-fit:cover;}
.tails-card-body{padding:1.3rem 1.5rem 1.6rem;flex:1;display:flex;flex-direction:column;}
.tails-card-body h3{font-family:'Fraunces',serif;font-size:1.35rem;color:var(--cream);margin:0 0 0.4rem;}
.tails-card-body p{font-size:0.9rem;color:var(--lavender);margin:0;flex:1;}
.tails-card-body .read-more{margin-top:0.9rem;font-size:0.78rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--berry);}

/* ---------- Individual dog story page ---------- */
.dog-story{background:var(--cream);padding-bottom:80px;}
.dog-story-inner{max-width:800px;margin:0 auto;padding:0 24px;}
.dog-hero-img{border-radius:20px;overflow:hidden;box-shadow:var(--shadow);margin-bottom:2rem;}
.dog-hero-img img{width:100%;display:block;}
.dog-story-inner h1{font-family:'Fraunces',serif;font-size:clamp(2.2rem,5vw,3rem);color:var(--plum);margin:0 0 0.5rem;line-height:1.1;}
.dog-story-inner .subtitle{font-family:'Fraunces',serif;font-style:italic;color:var(--berry);font-size:1.15rem;margin-bottom:1.6rem;}
.dog-story-inner p{color:var(--ink);font-size:1.05rem;line-height:1.75;margin:0 0 1.1rem;}
.dog-story-inner p em{color:var(--berry-dk);font-weight:500;}
.dog-story-inner .tail-badges{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:1.4rem;}
.mini-gallery{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.6rem 0;}
.mini-gallery img{border-radius:14px;box-shadow:var(--shadow);width:100%;aspect-ratio:1/1;object-fit:cover;}
.back-link{display:inline-flex;align-items:center;gap:0.4rem;color:var(--plum);font-weight:700;font-size:0.85rem;text-decoration:none;margin-bottom:1.6rem;text-transform:uppercase;letter-spacing:0.06em;}
.back-link:hover{color:var(--berry);}

/* ---------- Jack ---------- */
.jack-section{background:var(--cream);}
.jack-inner{max-width:760px;margin:0 auto;text-align:center;}
.jack-inner .eyebrow{justify-content:center;}
.jack-inner h2{font-size:clamp(1.9rem,4vw,2.6rem);color:var(--plum);margin:0.6rem 0 1.6rem;}
.jack-quote{font-family:'Fraunces',serif;font-style:italic;font-size:1.3rem;line-height:1.55;color:var(--berry-dk);margin:0 0 1.6rem;}
.jack-inner p{color:var(--ink-soft);font-size:1.03rem;text-align:left;}
.jack-signoff{font-family:'Fraunces',serif;font-size:1.4rem;color:var(--plum);margin-top:1.8rem;text-align:center !important;}
.jack-portrait{width:120px;height:120px;border-radius:50%;object-fit:cover;margin:0 auto 1.2rem;border:4px solid var(--paper);box-shadow:var(--shadow);}
.jack-before-after{margin:1.6rem 0;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);}
.jack-before-after img{width:100%;display:block;}

/* ---------- Help ---------- */
.help-section{background:var(--paper);}
.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;}
@media (max-width:860px){.help-grid{grid-template-columns:1fr;}}
.help-copy p{color:var(--ink-soft);}
.help-cards{display:flex;flex-direction:column;gap:1rem;}
.help-card{background:var(--cream);border-radius:16px;padding:1.3rem 1.5rem;display:flex;align-items:center;gap:1rem;text-decoration:none;color:var(--ink);border:1px solid var(--cream-dk);transition:border-color 0.15s ease, transform 0.15s ease;}
.help-card:hover{border-color:var(--berry);transform:translateX(4px);}
.help-card .ico{width:44px;height:44px;flex-shrink:0;border-radius:50%;background:var(--lavender);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.help-card .ico svg{width:22px;height:22px;color:var(--plum);}
.help-card h4{margin:0 0 0.15rem;font-size:0.98rem;font-family:'Fraunces',serif;}
.help-card p{margin:0;font-size:0.82rem;color:var(--ink-soft);}
.social-row{display:flex;gap:0.8rem;margin-top:1.6rem;}
.social-row a{width:42px;height:42px;border-radius:50%;background:var(--plum);display:flex;align-items:center;justify-content:center;color:var(--cream);text-decoration:none;transition:background 0.15s ease;}
.social-row a:hover{background:var(--berry);}
.social-row svg{width:19px;height:19px;}

/* ---------- Preview cards on home ---------- */
.preview-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;}
@media (max-width:920px){.preview-cards{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.preview-cards{grid-template-columns:1fr;}}
.pcard{background:var(--paper);border-radius:16px;overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform 0.2s ease;display:flex;flex-direction:column;}
.pcard:hover{transform:translateY(-4px);}
.pcard-img{aspect-ratio:1/1;overflow:hidden;background:var(--lavender);}
.pcard-img img{width:100%;height:100%;object-fit:cover;}
.pcard-body{padding:1rem 1.1rem 1.2rem;flex:1;display:flex;flex-direction:column;}
.pcard-body h3{font-family:'Fraunces',serif;font-size:1.05rem;color:var(--plum);margin:0 0 0.3rem;}
.pcard-body p{font-size:0.82rem;color:var(--ink-soft);margin:0;flex:1;}

/* ---------- Footer ---------- */
footer{background:var(--plum-dk);color:var(--lavender);padding:44px 24px 34px;text-align:center;font-size:0.85rem;}
footer .brand-word{color:var(--cream);}
footer .fbrand{display:flex;align-items:center;justify-content:center;gap:0.55rem;margin-bottom:0.8rem;}
footer .fbrand img{width:32px;height:32px;border-radius:50%;}
footer p{margin:0.2rem 0;}
footer a{color:var(--cream);text-decoration:underline;}

.reveal{opacity:0;transform:translateY(18px);transition:opacity 0.6s ease, transform 0.6s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

/* ---------- Top contact bar ---------- */
.topbar{background:var(--plum-dk);color:var(--cream);text-align:center;padding:9px 16px;font-size:0.92rem;font-weight:600;font-family:'Karla',sans-serif;}
.topbar a{color:var(--cream);text-decoration:none;border-bottom:1px solid rgba(251,243,230,0.5);padding-bottom:1px;white-space:nowrap;}
.topbar a:hover{border-bottom-color:var(--cream);}
@media (max-width:520px){.topbar{font-size:0.87rem;padding:8px 12px;}}

/* ---------- Adoption application form ---------- */
.app-form{background:var(--paper);border-radius:22px;box-shadow:var(--shadow);max-width:760px;margin:0 auto;padding:2.4rem;}
@media (max-width:520px){.app-form{padding:1.5rem 1.2rem;}}
.app-form .field{margin:0 0 1.3rem;border:0;padding:0;min-width:0;}
.app-form .field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 1.2rem;}
@media (max-width:640px){.app-form .field-row{grid-template-columns:1fr;}}
.app-form label, .app-form legend{display:block;font-weight:700;color:var(--plum);font-size:0.95rem;margin-bottom:0.4rem;padding:0;}
.app-form .req{color:var(--berry);}
.app-form input[type=text], .app-form input[type=email], .app-form input[type=tel], .app-form textarea{width:100%;font:inherit;color:var(--ink);background:var(--cream);border:1.5px solid var(--cream-dk);border-radius:12px;padding:11px 14px;transition:border-color 0.15s ease, box-shadow 0.15s ease;}
.app-form textarea{resize:vertical;}
.app-form input:focus, .app-form textarea:focus{outline:none;border-color:var(--plum-soft);box-shadow:0 0 0 3px rgba(107,47,160,0.15);background:var(--white);}
.app-form .choices{display:flex;flex-wrap:wrap;gap:0.6rem;}
.app-form label.choice{display:inline-flex;align-items:center;gap:0.45rem;font-weight:500;color:var(--ink);background:var(--cream);border:1.5px solid var(--cream-dk);border-radius:100px;padding:8px 16px;margin:0;cursor:pointer;}
.app-form label.choice:has(input:checked){border-color:var(--plum);background:var(--lavender);}
.app-form input[type=radio]{accent-color:var(--plum);margin:0;}
.app-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.app-form button.btn{font-family:inherit;}

.app-form .field-error{color:var(--berry-dk);font-weight:700;font-size:0.88rem;margin:-0.8rem 0 1.2rem;}

/* ---------- New dog alerts ---------- */
.alerts-box{background:var(--paper);border-radius:22px;box-shadow:var(--shadow);max-width:760px;margin:0 auto;padding:2.2rem 2.4rem;}
@media (max-width:520px){.alerts-box{padding:1.6rem 1.2rem;}}
.alerts-box h2{font-size:clamp(1.5rem,3vw,2rem);font-weight:600;color:var(--plum);margin:0.3rem 0 0.5rem;line-height:1.2;}
.alerts-box p{color:var(--ink-soft);margin:0 0 1rem;}
.alerts-form{display:flex;flex-wrap:wrap;gap:0.7rem;margin-bottom:1rem;}
.alerts-form input[type=text], .alerts-form input[type=email]{flex:1 1 180px;min-width:0;font:inherit;color:var(--ink);background:var(--cream);border:1.5px solid var(--cream-dk);border-radius:100px;padding:12px 18px;}
.alerts-form input:focus{outline:none;border-color:var(--plum-soft);box-shadow:0 0 0 3px rgba(107,47,160,0.15);background:var(--white);}
.alerts-form .btn{font-family:inherit;}
.alerts-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.alerts-done{font-weight:700;color:var(--plum) !important;}
.alerts-foster{font-size:0.92rem;margin:0 !important;}
.alerts-foster a{color:var(--plum);font-weight:700;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}
