/* =========================================================
   The Woof of Walk Street – styles.css (rev C)
   Mobile-first. Keep mini.css loaded BEFORE this file.
   Contrast rules:
   - Header/nav always dark with white text
   - Light surfaces = dark text
   - Dark strips (hero--edge / section--ink / why-local / footer / impact) = white text
   ========================================================= */

/* ---------- CSS Variables (light default) ---------- */
:root{
  --brand:#f5b200;
  --accent:#ffd166;

  --bg:#ffffff;
  --ink:#0c1016;     /* body text on light */
  --ink-2:#1b222c;
  --muted:#616976;

  --surface:#f7f9fc; /* light cards/sections */
  --surface-2:#fffaf1;
  --border:#e6e9ef;

  --ok:#2a7a3a;
  --shadow:0 10px 30px rgba(0,0,0,.10);

  --gold:#f5b200;
  --line:var(--border);
  --radius:12px;
  --btn-radius:28px;
  --container:1120px;

  --promo-h:0px; /* set via JS if promo ribbon exists */

  /* helpers for forced color on very light/dark blocks */
  --text-dark:#0b0e12;
  --text-light:#ffffff;
}

/* Dark scheme tokens (auto) */
@media (prefers-color-scheme: dark){
  :root{
    --bg:#0b0e12;
    --ink:#e6edf3;  /* body text on dark */
    --ink-2:#cdd7e1;
    --muted:#97a3af;

    --surface:#0f1318;
    --surface-2:#171c23;
    --border:#1d232c;

    --brand:#f5b200;
    --accent:#ffd166;
    --ok:#46b067;
    --shadow:0 12px 34px rgba(0,0,0,.35);
  }
}

/* Optional forced theme via <html data-theme> */
:root[data-theme="light"] { color-scheme: light; }
:root[data-theme="dark"]  {
  color-scheme: dark;
  --bg:#0b0e12; --ink:#e6edf3; --ink-2:#cdd7e1; --muted:#97a3af;
  --surface:#121821; --surface-2:#171c23; --border:#1d232c;
  --brand:#f5b200; --accent:#ffd166; --shadow:0 12px 34px rgba(0,0,0,.5);
}

/* ---------- Base / Reset ---------- */
*{box-sizing:border-box}
html,body{
  margin:0;padding:0;overflow-x:hidden;
  background:var(--bg);color:var(--ink);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica,Arial,sans-serif;
  line-height:1.45;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink-2);text-decoration:none;text-decoration-color:rgba(0,0,0,.25)}
a:hover{color:var(--ink);text-decoration:underline;text-decoration-color:currentColor}
strong{font-weight:700}
.container{max-width:var(--container);margin:0 auto;padding:0 16px}
.center{text-align:center}
.muted{color:var(--muted)}
.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

/* ---------- Promo Ribbon (edgier) ---------- */
.promo-ribbon{
  position:sticky;top:0;z-index:1100;
  background:linear-gradient(135deg,#ff1f3d,#ff6f00);
  color:#fff;border-bottom:1px solid rgba(0,0,0,.08);
  padding:.65rem 0;text-align:center;transition:transform .35s ease;will-change:transform;
  box-shadow:0 6px 14px rgba(0,0,0,.06);
}
.promo-inner{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap}
.promo-dog{border-radius:50%;background:#fff;padding:2px}
.promo-copy{font-size:.95rem;letter-spacing:.2px;font-weight:800}
.promo-cta{
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 16px;border-radius:999px;font-weight:900;
  background:linear-gradient(180deg,#ffdd6a 0%,var(--gold) 100%);
  color:#111;border:0;box-shadow:0 6px 18px rgba(245,178,0,.35);
  text-decoration:none;transition:transform .15s ease,box-shadow .15s ease;
}
.promo-cta:hover{transform:translateY(-2px)}
.promo-close{background:transparent;border:0;color:#fff;font-size:1rem;cursor:pointer}

/* Mini promo (optional) */
.promo-mini{
  position:fixed;top:0;left:0;right:0;height:32px;z-index:1200;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(120% 120% at 50% 0%, #FFF6D9 0%, #FBE9B0 40%, #14161A 100%);
  box-shadow:0 6px 16px rgba(0,0,0,.18);border-bottom:1px solid rgba(0,0,0,.06);
}
.promo-mini .mini-btn{
  appearance:none;border:0;background:#111;color:#fff;font-weight:800;font-size:13px;line-height:1;
  padding:8px 12px;border-radius:999px;box-shadow:0 4px 12px rgba(0,0,0,.25);
}
body.with-mini-offset{padding-top:32px}

/* ---------- Header / Nav (ALWAYS dark, white text) ---------- */
.site-header{
  position:sticky;top:var(--promo-h);z-index:1000;
  background:#0c1117;border-bottom:1px solid rgba(255,255,255,.12);
  box-shadow:0 2px 10px rgba(0,0,0,.24);
}
.navbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px}
.brand{display:flex;align-items:center;gap:10px}
.brand img{border-radius:8px}
.brand strong{font-size:1.15rem;color:#fff;font-weight:900;letter-spacing:-.2px;text-transform:uppercase}
.nav-links{display:flex;align-items:center;gap:16px}
.nav-links a{color:#e6edf3;font-weight:700;padding:8px 10px;border-radius:8px}
.nav-links a:hover{color:#fff;background:rgba(255,255,255,.08);text-decoration:none}
.nav-links a[aria-current="page"]{background:#ffd166;color:#111}
.nav-cta.btn,.nav-cta.button-primary{padding:8px 14px}

/* Dropdown */
.nav-group{position:relative}
.nav-group-btn{background:transparent;border:0;font:inherit;color:#e6edf3;cursor:pointer;font-weight:800;padding:8px 10px;border-radius:8px}
.nav-group-btn:hover{background:rgba(255,255,255,.08)}
.nav-group-list{
  position:absolute;top:100%;left:0;z-index:1001;display:none;min-width:240px;padding:8px;
  border:1px solid rgba(255,255,255,.12);background:#0f1318;border-radius:10px;box-shadow:0 14px 32px rgba(0,0,0,.35)
}
.nav-group-list li{list-style:none}
.nav-group-list a{display:block;padding:10px;border-radius:8px;color:#e6edf3;font-weight:700}
.nav-group-list a:hover{background:rgba(255,255,255,.06);text-decoration:none}
.nav-group-btn[aria-expanded="true"] + .nav-group-list{display:block}

/* Mobile hamburger */
#nav-toggle{display:none}
.nav-toggle{display:none;cursor:pointer;font-size:1.6rem;color:#e6edf3}
@media (max-width:880px){
  .nav-links{
    display:none;position:absolute;left:0;right:0;top:100%;
    background:#0f1318;border-bottom:1px solid rgba(255,255,255,.12);
    padding:12px 16px;flex-direction:column;gap:10px;box-shadow:0 12px 26px rgba(0,0,0,.35)
  }
  #nav-toggle:checked ~ .nav-links{display:flex}
  .nav-toggle{display:block;margin-left:auto}
  .nav-group-list{position:static;min-width:unset;padding:6px 0;border:0;box-shadow:none;background:transparent}
}

/* ---------- Buttons (unified) ---------- */
.btn,.button-primary,.cta-button:not(.secondary){
  display:inline-block;border:0;border-radius:999px;padding:12px 20px;font-weight:900;color:#111;
  background:linear-gradient(180deg,#ffdd6a 0%,var(--gold) 100%);
  box-shadow:0 6px 18px rgba(245,178,0,.40);
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease,color .15s ease;
  text-decoration:none
}
.btn:hover,.button-primary:hover,.cta-button:not(.secondary):hover{
  transform:translateY(-2px) scale(1.03);
  box-shadow:0 10px 24px rgba(245,178,0,.45);text-decoration:none
}
.cta-button.secondary,.btn.button-secondary{
  display:inline-block;background:#fff;color:#111;border:2px solid #111;border-radius:999px;font-weight:800;padding:12px 20px;
  box-shadow:0 4px 14px rgba(0,0,0,.10);transition:transform .15s ease,box-shadow .15s ease,background .15s ease,color .15s ease;
  text-decoration:none
}
.cta-button.secondary:hover,.btn.button-secondary:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.18);text-decoration:none}
.btn-ghost{background:#fff;color:#111;border:1px solid #111}
.btn-ghost:hover{background:#111;color:#fff}
.cta-buttons{display:flex;flex-wrap:wrap;gap:10px}

/* ---------- Sections (light by default) ---------- */
.hero{background:var(--surface-2);padding:24px 0 26px;color:var(--text-dark)}
.hero h1{font-size:clamp(1.6rem,4.5vw + .6rem,2.6rem);line-height:1.15;margin:.4rem 0 .2rem;color:var(--text-dark)}
.subhead{font-size:clamp(1rem,2.2vw + .6rem,1.2rem);color:#46505a;margin:.25rem 0 0}
.section{padding:28px 0;color:var(--text-dark)}
.section.alt{background:var(--surface);color:var(--text-dark)}

/* “Edgy” dark hero variant */
.hero.hero--edge{
  text-align:center;padding:2.2rem 1rem 2.2rem;
  background:linear-gradient(160deg,#0b1420 0%,#1c2430 100%);color:#fff;
}
.hero.hero--edge h1{
  color:#ffd166;font-size:2rem;line-height:1.2;font-weight:900;margin-bottom:.6rem;
  text-transform:uppercase;letter-spacing:-.5px;text-shadow:1px 1px 2px rgba(0,0,0,.25);
}
.hero.hero--edge .subhead{font-size:1.05rem;line-height:1.5;max-width:34ch;margin:0 auto 1.2rem;color:#e5ecf3}

/* ---------- Cards / Grids ---------- */
.card{border:1px solid var(--border);border-radius:var(--radius);padding:14px;background:#fff;color:var(--text-dark)}
.grid{display:grid;gap:18px}
.grid-2{grid-template-columns:1fr}
.grid-3{grid-template-columns:1fr}
@media (min-width:880px){
  .grid-2{grid-template-columns:1fr 1fr}
  .grid-3{grid-template-columns:repeat(3,1fr)}
}

/* Dark “ink” section */
.section--ink{background:#0f1318;color:#fff}
.section--ink h2{color:#ffd166}
.section--ink .card{background:#11161d;border-color:#2d3948;color:#e6edf3}

/* WHY LOCAL block (dark) */
.why-local{background:#0b0e12;color:#fff;border-block:4px solid var(--gold);margin-top:32px}
.why-local .container{padding:32px 16px;text-align:center;max-width:900px}
.why-local h2{color:#fff;font-size:1.9rem;margin-bottom:12px}
.why-local p{margin:0 auto;max-width:60ch;color:#cfd6df;line-height:1.6}

/* ---------- Blog / Posts ---------- */
.page-header{background:var(--surface);padding:28px 0;border-bottom:1px solid var(--border);color:var(--text-dark)}
.blog-grid{display:grid;gap:18px}
@media(min-width:860px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
.blog-card{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff;display:flex;flex-direction:column;color:var(--text-dark)}
.blog-card .body{padding:14px}
.blog-card h2{margin:.2rem 0 .4rem;font-size:1.2rem}
.blog-card p{margin:.35rem 0 .25rem;color:#444}
.blog-card .meta{color:#778;font-size:.9rem}
.post-hero img{border-radius:12px;margin:12px auto}
.intro{font-size:1.1rem;color:#444;margin:.5rem 0 1.25rem}
.benefits{display:grid;gap:14px}
.benefit{border:1px solid var(--border);border-radius:12px;padding:14px;background:#fff;color:var(--text-dark)}
.benefit h3{margin:.25rem 0 .35rem;font-size:1.05rem}
.callout{background:#eef6ff;border:1px solid #cfe5ff;border-radius:10px;padding:14px;margin:1rem 0}
.faq details{border-top:1px solid var(--border);padding:.6rem 0}
.faq summary{cursor:pointer;font-weight:600}

/* ---------- Footer (dark) ---------- */
.site-footer{background:#0b0e12;border-top:1px solid rgba(255,255,255,.12);margin-top:24px;color:#fff}
.footer-banner img{width:100%;height:auto}
.footer-grid{display:grid;gap:18px;padding:18px 0}
.footer-brand .footer-logo{border-radius:8px}
.footer-brand p{margin:.4rem 0}
.footer-socials a{display:inline-block;margin-right:8px;color:#fff}
.footer-col h3{margin:.25rem 0 .5rem;color:#fff}
.footer-col ul{margin:0;padding:0;list-style:none}
.footer-col li{margin:.35rem 0}
.footer-geo{padding:12px 0;color:#d5dde6}
.footer-bottom{padding:12px 0;border-top:1px solid rgba(255,255,255,.12);color:#cfd6df}
.collapsible .collapse-btn{background:transparent;border:0;font:inherit;font-weight:700;cursor:pointer;padding:0;color:#fff}
@media(min-width:860px){.footer-grid{grid-template-columns:1.2fr 1fr 1fr 1fr}}

/* ---------- Forms ---------- */
input,select,textarea{font:inherit;border:1px solid var(--border);border-radius:10px;padding:10px;width:100%}
label{display:block;margin:.2rem 0 .25rem;color:#475467}

/* ---------- Small helpers ---------- */
.list-check{padding-left:1.25rem}
.list-check li{margin:.35rem 0}
.quotes{display:grid;gap:14px}
.quote{border-left:4px solid #b59b5a;padding-left:12px;color:#3c4550}
.badge{display:inline-block;padding:.35rem .6rem;border:1px solid #ddd;border-radius:999px;font-size:.9rem;line-height:1;text-decoration:none}
.badge[aria-current="page"]{background:#f6f6f6;font-weight:600;pointer-events:none}

/* ---------- Impact ribbon (dark) ---------- */
.impact-ribbon{
  background:linear-gradient(90deg,#0c1117,#0c1117 60%,#122034);
  color:#fff;border-block:3px solid #40e0c2;
  font-size:clamp(.95rem,1.6vw,1.05rem)
}
.impact-inner{
  max-width:1100px;margin:0 auto;padding:12px 16px;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;line-height:1.45
}
.impact-emoji{font-size:1.1em}
.impact-ribbon a{color:#7bf0dc;text-underline-offset:2px}
.impact-ribbon a:hover{text-decoration:underline}
.impact-cta{
  margin-left:.4rem;background:#1a2b3f;border:1px solid rgba(64,224,194,.35);
  color:#ffd166;padding:6px 10px;border-radius:10px;font-weight:700;white-space:nowrap
}
.impact-cta:hover{background:#203550}

/* ---------- Search / Legal ---------- */
.search-results .result{border-bottom:1px solid var(--border);padding:12px 0;color:var(--text-dark)}
.search-results .result:last-child{border-bottom:0}
.legal h1,.legal h2{margin-top:1rem;color:var(--text-dark)}

/* ---------- Accessibility ---------- */
:focus-visible{outline:2px solid #2563eb;outline-offset:2px}

/* ---------- Mobile Tweaks ---------- */
@media (max-width:640px){
  .hero{padding:18px 0 8px}
  .hero h1{letter-spacing:-.2px;line-height:1.18;margin-bottom:.35rem}
  .hero.hero--edge h1{font-size:1.8rem}
  .hero.hero--edge .subhead{font-size:1rem}
  .cta-buttons .btn,.cta-button{width:100%;margin:8px 0}
  .section.alt{padding:20px 0}
  section{padding:18px 0}
  .promo-inner{gap:10px}
  .promo-copy{font-size:.95rem}
}

/* ============ Key Takeaways styling ============ */
.key-takeaways .m-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  padding:18px;
  box-shadow:var(--shadow);
  color:var(--ink);
}
.key-takeaways h2{margin:.2rem 0 .6rem;font-weight:900}
.key-takeaways ul{list-style:none;padding:0;margin:0;display:grid;gap:.55rem}
.key-takeaways li{position:relative;padding-left:28px;line-height:1.45}
.key-takeaways li::before{content:"✅";position:absolute;left:0;top:0;line-height:1.2;filter:saturate(1.1)}
@media (min-width:900px){ .key-takeaways ul{grid-template-columns:1fr 1fr} }

/* ---------- Embeds ---------- */
.embed-1x1 iframe{height:360px!important}
.poster img{max-height:520px;object-fit:cover}

/* ===============================
   Sticky CTA safety area (mobile)
   =============================== */
:root{ --sticky-cta-h: 88px; }
@media (max-width: 820px){
  main{ padding-bottom: calc(var(--sticky-cta-h) + 18px); }
  .m-wrap, .m-card, section, .section{ scroll-margin-bottom: calc(var(--sticky-cta-h) + 24px); }
  .sticky-cta{
    position:fixed;left:12px;right:12px;bottom:12px;z-index:1100;
    background:#ffffffee;border:1px solid var(--border);box-shadow:var(--shadow);
    border-radius:16px;
  }
}

/* ---------- Page-specific: About (forces high-contrast light) ---------- */
body.about{
  --bg:#ffffff; --ink:#0c1016; --ink-2:#1b222c; --muted:#4b5563;
  --surface:#ffffff; --surface-2:#fffaf1; --border:#e6e9ef;
  --brand:#f5b200; --accent:#ffd166; --ok:#2a7a3a;
}
body.about .site-header{background:#0c1117;border-bottom:1px solid rgba(255,255,255,.12)}
body.about .nav-links a{color:#e6edf3}
body.about .nav-links a[aria-current="page"]{background:#ffd166;color:#111}
body.about .hero{background:linear-gradient(180deg,#fffaf0,#fffdfa);color:var(--ink)}
body.about .hero .subhead{color:#475569}
body.about .card, body.about .m-card{
  background:#fff!important;border:1px solid var(--border)!important;color:#111!important;box-shadow:var(--shadow);
}
body.about .card h2, body.about .card h3, body.about .m-card h2, body.about .m-card h3{color:#0c1016!important}
body.about .list-check li{color:#1f2937}
body.about .impact-ribbon{background:#0c1117!important;color:#ffffff!important;border-block:4px solid var(--brand)!important}
body.about .impact-cta{background:#1a2b3f;border:1px solid rgba(245,178,0,.35);color:#ffd166}
body.about .impact-ribbon a{color:#7bf0dc}
body.about .impact-ribbon a:hover{text-decoration:underline}
/* ---------- Trust Strip ---------- */
.trust-strip .m-trust{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  list-style:none;
  padding:0;
  margin:0;
}
@media(min-width:780px){
  .trust-strip .m-trust{ grid-template-columns:repeat(2,1fr); }
}

/* Use existing tick style, but boost contrast on dark section */
.section--ink .m-trust li{ color:#e6edf3; }
.section--ink .m-trust li::before{ content:"✔"; color:#40e0c2; font-weight:800; margin-right:.5rem; }

/* Slight spacing polish */
.trust-strip h2{ margin-bottom:14px; }
.trust-strip .btn{ margin-top:8px; }


/* ---------- Tiny helpers ---------- */
#theme-toggle.btn-ghost{padding:8px 12px;border-radius:999px;line-height:1;display:inline-flex;align-items:center;gap:.4rem}

/* Nearby areas (single, de-duplicated) */
.section.alt[aria-label="Nearby areas we walk"] h2 { color: var(--ink); }
.section.alt[aria-label="Nearby areas we walk"] a { color: var(--ink-2); text-decoration: none; }
.section.alt[aria-label="Nearby areas we walk"] a:hover { text-decoration: underline; }

/* Trust ticks */
.m-trust li{color:var(--muted)}
.m-trust li::before{content:"✔";color:var(--ok);font-weight:800;position:relative;left:auto}

/* ============================
   Booking section improvements
   ============================ */

.booking-section {
  background: linear-gradient(180deg, #0c0f13 0%, #121720 100%);
  color: #fff;
  padding: 40px 0 50px;
}

.booking-section h2,
.booking-section h3,
.booking-section p,
.booking-section li,
.booking-section span {
  color: #fff !important;
}

.booking-section .pricing-card {
  background: #141a24;
  color: #fff;
  border: 2px solid rgba(245, 178, 0, 0.4);
  border-radius: 16px;
  box-shadow: 0 0 20px rgba(245, 178, 0, 0.25);
  transition: all 0.25s ease;
  padding: 20px;
}

.booking-section .pricing-card:hover {
  border-color: var(--gold);
  box-shadow: 0 0 30px rgba(245, 178, 0, 0.45);
  transform: translateY(-4px);
}

.booking-section .price {
  font-size: 1.6rem;
  font-weight: 900;
  color: var(--gold);
}

.booking-section .old-price {
  text-decoration: line-through;
  opacity: 0.6;
  color: #aaa;
  font-size: 1rem;
  margin-right: 6px;
}

.booking-section .btn-primary {
  background: var(--gold);
  color: #111;
  font-weight: 900;
  box-shadow: 0 0 18px rgba(245,178,0,.45);
}

.booking-section .btn-primary:hover {
  background: #ffd86a;
  box-shadow: 0 0 28px rgba(245,178,0,.55);
}

.booking-section small {
  color: #cfd6df;
}
/* Sticky dual CTAs */
.sticky-cta{
  position:fixed;left:12px;right:12px;bottom:12px;z-index:1100;
  background:#ffffffee;border:1px solid var(--border);border-radius:16px;
  box-shadow:var(--shadow);padding:10px;display:flex;gap:10px;
  justify-content:center;align-items:center
}
.sticky-cta .btn,.sticky-cta .cta-button{padding:10px 14px}
@media(min-width:900px){ .sticky-cta{display:none} }

/* Header readability (always-dark header) */
.site-header{
  position:sticky;top:var(--promo-h,0px);z-index:1000;
  background:#0c1117;border-bottom:1px solid rgba(255,255,255,.12);
  box-shadow:0 2px 10px rgba(0,0,0,.24);
}
.site-header .nav-links a,
.site-header .nav-group-btn{color:#e6edf3}
.site-header .nav-links a:hover,
.site-header .nav-group-btn:hover{color:#fff;background:rgba(255,255,255,.08);text-decoration:none}

/* Outline style for the Walks button variant */
.btn.btn-outline{
  background:transparent;border:1px solid var(--brand,#f5b200);color:var(--brand,#f5b200);
}
.btn.btn-outline:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.18)}
}
