/* ============================================================
   All Love — shared brand treatment for standard pages
   (forest hero + clean cream surface + light form fields)
   Opt in per page: <body class="brand-page"> and
   <section class="page-header brand-hero">.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&display=swap');

:root{
  --bp-forest:#123a28; --bp-forest2:#0a2016; --bp-gold-lt:#e2c47f;
  --bp-cream:#f1ece0; --bp-ink:#1d2a22; --bp-sage:#5d7367; --bp-line:rgba(29,42,34,.14);
  --bp-serif:'Fraunces',Georgia,serif; --bp-cond:'Roboto Condensed',sans-serif;
}

/* clean cream surface in place of the washed body image */
body.brand-page{ background:var(--bp-cream) !important; background-image:none !important; }

/* ---- hero ---- */
.page-header.brand-hero{
  position:relative; overflow:hidden; text-align:center;
  padding:clamp(56px,9vh,104px) 0 clamp(50px,8vh,86px) !important;
  background:radial-gradient(130% 110% at 82% 0%, var(--bp-forest2) 0%, #0e2a1d 42%, var(--bp-forest2) 100%) !important;
}
.page-header.brand-hero::before{
  content:""; position:absolute; inset:0;
  background:url('../images/leaf-pattern.svg?v=2') center / 300px 300px repeat;
  opacity:.06; filter:brightness(0) invert(1);
}
.page-header.brand-hero .container{ position:relative; z-index:1; }
.page-header.brand-hero .ph-eyebrow{
  display:inline-block; font-family:var(--bp-cond); font-weight:700; font-size:12px;
  letter-spacing:.24em; text-transform:uppercase; color:var(--bp-gold-lt); margin-bottom:15px;
}
.page-header.brand-hero h1{
  font-family:var(--bp-serif) !important; font-weight:500 !important;
  color:#fff !important; -webkit-text-fill-color:#fff !important; background:none !important;
  font-size:clamp(32px,5.2vw,54px) !important; letter-spacing:-.01em !important;
  text-transform:none !important; margin-bottom:12px !important;
}
.page-header.brand-hero h1::after{
  content:""; display:block; width:56px; height:2px; margin:16px auto 0;
  background:linear-gradient(90deg,var(--bp-gold-lt),transparent 85%);
}
.page-header.brand-hero p{
  color:rgba(255,255,255,.82) !important; font-size:clamp(15px,2vw,18px) !important;
  max-width:600px; margin:0 auto !important; position:relative; z-index:1;
}

/* ---- form fields (light, on white cards) ---- */
.brand-page input[type=text], .brand-page input[type=email], .brand-page input[type=password],
.brand-page input[type=tel], .brand-page input[type=number], .brand-page input[type=date],
.brand-page input[type=search], .brand-page textarea, .brand-page select{
  background:#f5f6f2 !important; color:var(--bp-ink) !important;
  border:1px solid rgba(29,42,34,.18) !important; border-radius:10px !important;
}
.brand-page input::placeholder, .brand-page textarea::placeholder{ color:#9aa89f !important; }
.brand-page input:focus, .brand-page textarea:focus, .brand-page select:focus{
  border-color:var(--bp-forest) !important; box-shadow:0 0 0 3px rgba(18,58,40,.13) !important; outline:none;
}

/* ---- common content cards ---- */
.brand-page .auth-card, .brand-page .contact-card, .brand-page .content-card,
.brand-page .form-card, .brand-page .legal-content, .brand-page .info-card{
  background:#fff !important; border-radius:18px; border:1px solid var(--bp-line);
  box-shadow:0 18px 50px rgba(16,60,36,.12);
}

/* "Own this dispensary?" claim box on directory detail pages */
.claim-listing-cta{ background:linear-gradient(135deg,#123a28,#0a2016); color:#fff; border-radius:16px;
  padding:22px 26px; margin:26px 0; display:flex; align-items:center; justify-content:space-between;
  gap:18px; flex-wrap:wrap; box-shadow:0 14px 40px rgba(11,25,16,.22); }
.claim-listing-cta p{ margin:0; font-size:15px; color:rgba(255,255,255,.9); max-width:60ch; }
.claim-listing-cta strong{ color:#e2c47f; }
.claim-listing-cta .btn{ white-space:nowrap; }

/* Live menu (pulled from a connected dispensary's POS) on detail pages */
#live-menu-section{ margin:28px 0; }
#live-menu-section .lm-title{ font-family:var(--bp-serif); font-weight:500; color:#12452a; font-size:26px; margin:0 0 4px; }
#live-menu-section .lm-title .lm-dot{ display:inline-block; width:9px; height:9px; border-radius:50%; background:#43e07a; margin-right:8px; vertical-align:middle; box-shadow:0 0 0 0 rgba(67,224,122,.5); animation:lmPulse 1.8s infinite; }
@keyframes lmPulse{ 0%{box-shadow:0 0 0 0 rgba(67,224,122,.5)} 70%{box-shadow:0 0 0 8px rgba(67,224,122,0)} 100%{box-shadow:0 0 0 0 rgba(67,224,122,0)} }
#live-menu-section .lm-note{ color:var(--bp-sage); font-size:12.5px; margin:6px 0 16px; }
#live-menu-section .lm-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:14px; }
.lm-card{ background:#fff; border:1px solid var(--bp-line); border-radius:12px; overflow:hidden; box-shadow:0 8px 24px rgba(16,60,36,.08); }
.lm-card .lm-img{ height:120px; background:#eef2ea center/cover no-repeat; }
.lm-card .lm-body{ padding:12px 14px; }
.lm-card .lm-name{ font-weight:700; color:var(--bp-ink); font-size:14.5px; line-height:1.3; }
.lm-card .lm-brand{ color:var(--bp-sage); font-size:12.5px; margin-top:2px; }
.lm-card .lm-meta{ color:var(--bp-sage); font-size:12px; margin-top:6px; }
.lm-card .lm-price{ color:#1f9d57; font-weight:700; font-size:16px; margin-top:8px; }
