/* ============================================================
   ORMA — global stylesheet
   Palette: "Alpenglow" — warm cream + terracotta-red accent,
   named for the enrosadira glow the Dolomites are famous for.
============================================================= */

/* Type system: Bricolage Grotesque for editorial/display text and Inter for
   navigation, controls, metadata, and body copy. Individual screens
   inherit these two roles rather than introducing page-specific fonts. */

:root{
  --bg:#F5F2E8;
  --card:#FFFFFF;
  --ink:#2E4034;
  --ink-soft:#59695D;
  --accent:#3E7A91;        /* deep glacier — text links, borders, buttons with white text */
  --accent-hover:#33667A;
  --accent-light:#6FA8BE;   /* glacier lake — map markers, light fills */
  --success:#4A7856;
  --success-dim:#E4EADF;
  --sage-dim:#E4EADF;
  --paper-line:#DEDDD0;
  /* emergency: rescue banner only, never a badge or a rating */
  --emergency-bg:#B5480B;
  --emergency-fg:#FFFFFF;
  --emergency-soft:#FFEEE2;
  --emergency-tint:#FFD9A0;
  --emergency-tint-fg:#7A2E10;
  --emergency-plate-fg:#9A4409;
  --shadow:0 8px 26px rgba(46,64,52,.08);
  --shadow-modal:0 20px 50px rgba(43,35,32,.25);
  --radius-lg:20px;
  --radius-md:12px;
  --radius-pill:999px;
  --radius-panel:16px;
  --radius-modal:18px;
  --radius-sm:10px;
  --radius-xs:8px;
  --border:1px solid var(--paper-line);
  --border-strong:1.5px solid var(--paper-line);
  --shadow-card-hover:0 12px 30px -14px rgba(46,64,52,.4);
  --shadow-menu:0 14px 34px -12px rgba(23,42,28,.4);
  --font-serif:'Bricolage Grotesque',sans-serif;
  --font-sans:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --space-1:4px;
  --space-2:6px;
  --space-3:8px;
  --space-4:10px;
  --space-5:12px;
  --space-6:14px;
  --space-7:16px;
  --space-8:18px;
  --space-9:20px;
  --space-12:26px;
  --space-14:32px;
  --space-16:40px;
  --wrap:1200px;
  --wrap-gutter:24px;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  -webkit-font-smoothing:antialiased;
}
body.auth-modal-open{overflow:hidden;}
h1,h2,h3,.serif{
  font-family:'Bricolage Grotesque',sans-serif;
  font-weight:700;
  color:var(--ink);
  margin:0;
}
a{color:inherit;}
img,svg{max-width:100%;height:auto;}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px;}
.section-page-head{
  width:100%;
  margin:0;
  padding:44px 32px 12px;
}
.section-page-head h1{
  margin:0;
  font-size:38px;
  line-height:1.08;
}
.section-page-subtitle{
  margin:12px 0 0;
  color:var(--ink-soft);
  font-size:15px;
  line-height:1.5;
  max-width:72ch;
  text-wrap:pretty;
}
.section-page-head--actions{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
}
.section-page-head__copy{min-width:0;}
/* The matching content column under a section-page-head: every section
   page shares this one wrap so gutters and rhythm stay identical. */
.section-page-wrap{max-width:var(--wrap);margin:0 auto;padding:12px var(--wrap-gutter) 60px;}
@media(max-width:760px){
  .section-page-head{padding:30px 18px 10px;}
  .section-page-head h1{font-size:28px;}
  .section-page-subtitle{font-size:14px;}
  .section-page-head--actions{align-items:flex-start;flex-direction:column;gap:14px;}
  .section-page-wrap{padding:10px 16px 44px;}
}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid var(--accent) !important;
  outline-offset:3px;
}
.dp-skip-link{
  position:fixed;top:8px;left:8px;z-index:10000;
  transform:translateY(-160%);padding:10px 14px;border-radius:9px;
  background:#fff;color:#1f3327;font:800 14px 'Inter',sans-serif;
  box-shadow:0 4px 18px rgba(0,0,0,.28);transition:transform .15s ease;
}
.dp-skip-link:focus{transform:translateY(0);}
.sr-only{
  position:absolute!important;width:1px!important;height:1px!important;
  padding:0!important;margin:-1px!important;overflow:hidden!important;
  clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;
}

/* ---------- ICONS ---------- */
.icon{
  width:20px;
  height:20px;
  flex:none;
  display:inline-block;
  vertical-align:middle;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  fill:none;
}

/* ---------- NAV ---------- */
/* Sticky header, two states sharing one dark alpine-green bar (2026-07
   design revamp — the cream member bar is gone):
   · logged out (default) — light links + white "Log in" pill;
   · logged in — `.nav-authed` added by mobile-nav.js swaps the pill for
     the bell + dog pill; links stay the same. */
.topnav{
  position:sticky;
  top:0;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  /* Brand hugs the left edge, links the right — no centered clamp. */
  padding:20px 32px;
  background:rgba(38,53,42,.94);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(242,238,226,.09);
}
.topnav .brand{
  font:600 27px 'Bricolage Grotesque',sans-serif;
  color:#F2EEE2;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:14px;
}
.topnav .brand::after{
  content:'| Dog Trails & Terrain Guide';
  font:600 14px/1.2 'Inter',sans-serif;
  letter-spacing:.015em;
  color:#DCE1D4;
  white-space:nowrap;
}
.topnav .brand .brand-mark{
  width:40px;
  height:40px;
  border-radius:10px;
  background:#2f5138;
  color:#e8f0e9;
  font-size:15px;
  display:grid;
  place-items:center;
}
.topnav .brand img{
  width:40px;
  height:40px;
  border-radius:10px;
  display:block;
}
.topnav .links{display:flex;gap:30px;align-items:center;font-family:'Inter',sans-serif;font-size:14.5px;font-weight:400;color:#DCE1D4;}
.topnav .links a{
  color:#DCE1D4;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.topnav .links a:hover,.topnav .links a.active{color:#fff;font-weight:500;}
/* Current page named in the header as plain text — a quiet divider + label
   next to the brand, never a button. Inherits the bar's text colour so it
   works on both the dark guest bar and the cream member bar. */
.topnav .topnav-page{
  margin-left:14px;margin-right:auto;padding-left:14px;border-left:1px solid currentColor;
  font:600 13px 'Inter',sans-serif;color:#F2EEE2;opacity:.72;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px;
  align-self:center;
}
@media (max-width:700px){.topnav .topnav-page{font-size:12px;max-width:110px;}}
/* On inner pages the page name replaces the brand tagline — never both. */
.topnav:has(.topnav-page) .brand::after{content:none;}
.mobile-nav-toggle{display:none;}
/* Tablet: guest labels + language pill outgrow one row well before the
   700px hamburger kicks in — tighten and allow a graceful wrap. */
@media (max-width:1150px) and (min-width:701px){
  .topnav{flex-wrap:wrap;gap:10px 14px;padding-top:12px;padding-bottom:12px;}
  .topnav .brand{font-size:23px;}
  .topnav .brand::after{font-size:12.5px;}
  .topnav .links{gap:14px 18px;font-size:13px;flex-wrap:wrap;}
  .account-btn{padding:8px 14px;}
}
.account-btn{
  padding:9px 18px;
  border-radius:var(--radius-pill);
  background:#F7F4EB;
  color:#1b1f19;
  font-weight:600;
  font-family:'Inter',sans-serif;
  font-size:13.5px;
  border:none;
  cursor:pointer;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
}
.account-btn:hover{opacity:.9;}

/* The login pill can be an <a> on static pages — keep its text dark on
   the dark guest bar despite the generic light link color above. */
.topnav .links a.account-btn,
.topnav .links a.account-btn:hover{color:#1b1f19;font-weight:600;}

/* Language toggle (injected by i18n.js) */
.topnav .links .lang-toggle{border:1.5px solid rgba(242,238,226,.4);color:#F2EEE2;}

/* Bell — quiet icon button on the dark bar, dropdown "What's new" */
.nav-bellwrap{position:relative;display:inline-flex;}
.nav-bell{
  width:38px;height:38px;border-radius:50%;
  border:none;
  background:none;color:#F2EEE2;
  display:grid;place-items:center;cursor:pointer;position:relative;
}
.nav-bell:hover{background:rgba(255,255,255,.12);}
.nav-bell-badge{
  position:absolute;top:-4px;right:-4px;
  min-width:16px;height:16px;padding:0 4px;border-radius:999px;
  background:#9C3A25;color:#fff;
  font:800 10px/16px 'Inter',sans-serif;text-align:center;
}
.nav-bell-menu{
  position:absolute;right:0;top:calc(100% + 10px);width:300px;
  background:var(--card,#fff);border:1px solid rgba(27,31,25,.12);
  border-radius:14px;box-shadow:0 18px 40px rgba(27,31,25,.16);
  padding:8px;z-index:60;
}
.nav-bell-head{
  font:800 11px 'Inter',sans-serif;text-transform:uppercase;
  letter-spacing:.08em;color:var(--ink-soft,#6b6f62);padding:8px 10px 4px;
}
.nav-bell-item,
.topnav .links a.nav-bell-item{display:block;padding:9px 10px;border-radius:10px;text-decoration:none;color:inherit;}
.nav-bell-item:hover,
.topnav .links a.nav-bell-item:hover{background:var(--sage-dim,#E7ECE2);color:inherit;font-weight:inherit;}
.nav-bell-item b{display:block;font-size:13px;color:var(--ink,#1b1f19);}
.nav-bell-item span{display:block;font-size:12px;color:var(--ink-soft,#6b6f62);margin-top:2px;line-height:1.45;}

/* Dog pill — avatar + dog name, translucent on the dark bar; opens the
   shared "Switch dog" panel */
.nav-userwrap{position:relative;display:inline-flex;}
.nav-user{
  display:inline-flex;align-items:center;gap:9px;
  padding:5px 12px 5px 6px;border-radius:999px;
  border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);
  text-decoration:none;color:#fff;cursor:pointer;
  font:700 13px 'Inter',sans-serif;
}
.topnav .links a.nav-user{color:#fff;}
.nav-user:hover{border-color:rgba(255,255,255,.55);color:#fff;}
.nav-user-caret{color:rgba(255,255,255,.7);font-size:11px;}
.nav-dogmenu{
  position:absolute;right:0;top:calc(100% + 8px);z-index:70;
  width:260px;max-width:calc(100vw - 24px);
  background:#fff;border:1px solid var(--paper-line);border-radius:12px;
  box-shadow:0 14px 34px -12px rgba(23,42,28,.4);padding:10px;text-align:left;
}
.nav-dogmenu[hidden]{display:none;}
.nav-dogmenu-kick{font:700 9.5px 'Inter',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#8A9689;padding:4px 8px 8px;}
.nav-dogmenu-row{
  display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;
  border:1.5px solid var(--paper-line);background:#fff;border-radius:12px;padding:9px 11px;
  font-family:'Inter',sans-serif;
}
.nav-dogmenu-row + .nav-dogmenu-row{margin-top:6px;}
.nav-dogmenu-row.on{border-color:#9FC4B0;background:#EAF3EC;}
.nav-dogmenu-row b{display:block;font:700 13px 'Bricolage Grotesque',sans-serif;color:var(--ink);}
.nav-dogmenu-row small{display:block;font-size:11px;color:#6B7A6E;}
.nav-dogmenu-row .nav-user-avatar{background-color:var(--accent);}
.nav-dogmenu .nav-dogmenu-manage,
.topnav .links a.nav-dogmenu-manage{
  display:block;width:100%;box-sizing:border-box;text-align:left;border:none;background:none;cursor:pointer;
  margin-top:6px;padding:9px 11px;border-radius:12px;
  font:700 12.5px 'Inter',sans-serif;color:var(--accent);text-decoration:none;
}
.nav-dogmenu .nav-dogmenu-manage:hover,
.topnav .links a.nav-dogmenu-manage:hover{background:#F0EDE1;color:var(--accent);}
.nav-dogmenu-div{height:1px;background:#EDE9DD;margin:8px 0;}
.nav-dogmenu .nav-dogmenu-item,
.topnav .links a.nav-dogmenu-item{
  display:flex;align-items:center;gap:9px;width:100%;box-sizing:border-box;text-align:left;
  border:none;background:none;cursor:pointer;padding:9px 11px;border-radius:12px;
  font:500 13.5px 'Inter',sans-serif;color:var(--ink);text-decoration:none;
}
.nav-dogmenu .nav-dogmenu-item:hover,
.topnav .links a.nav-dogmenu-item:hover{background:#F0EDE1;color:var(--ink);font-weight:500;}
/* Same rust heart as the trail-card save button */
.nav-dogmenu-heart{color:#9C3A25;font-size:15px;line-height:1;}
.nav-dogmenu-count{margin-left:auto;color:#8A9689;font-weight:700;}
.nav-dogmenu .nav-dogmenu-logout{color:#9C3A25;}
.nav-dogmenu .nav-dogmenu-logout:hover{color:#9C3A25;}
.nav-user-avatar{
  width:28px;height:28px;border-radius:50%;flex:none;
  background:#5B7E96 center/cover no-repeat;
  color:#fff;font:800 13px/28px 'Inter',sans-serif;text-align:center;
}

/* ---------- HERO (split) ---------- */
.hero-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  align-items:stretch;
  max-width:1280px;
  margin:0 auto;
}
@media (max-width:860px){ .hero-split{grid-template-columns:1fr;} }
.hero-left{
  padding:80px 64px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
@media (max-width:640px){ .hero-left{padding:48px 24px;} }
.hero-left h1{
  font-size:44px;
  line-height:1.2;
  margin-bottom:20px;
  max-width:520px;
}
.hero-left .sub{
  font-size:15px;
  line-height:1.6;
  color:var(--ink-soft);
  margin-bottom:28px;
  max-width:460px;
}
.hero-right{
  background:repeating-linear-gradient(135deg,#E9EEE4,#E9EEE4 12px,#DCE4D3 12px,#DCE4D3 24px);
  min-height:420px;
  border-radius:16px;
  overflow:hidden;
}

.btn-primary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 26px;
  border-radius:var(--radius-pill);
  border:none;
  background:var(--accent-light);
  color:#1E3A44;
  font-weight:700;
  font-size:14px;
  text-decoration:none;
  cursor:pointer;
  font-family:'Inter', sans-serif;
}
.btn-primary:hover{background:#5B94AA;}

.trust-row{
  display:flex;
  flex-direction:column;   /* one item per line — tidy vertical list */
  align-items:flex-start;
  gap:12px;
  font-size:12.5px;
  color:var(--ink-soft);
  margin-top:32px;
}
.trust-row > span{display:flex;align-items:center;gap:8px;}

/* ---------- PARTIAL-REVEAL TEASER ---------- */
.teaser{
  padding:56px 64px;
  border-top:1px solid var(--paper-line);
  max-width:1280px;
  margin:0 auto;
}
@media (max-width:640px){ .teaser{padding:40px 24px;} }

/* ---------- MOBILE PASS ---------- */
@media (max-width:640px){
  /* Maps deserve most of a phone screen, not a 340px letterbox */
  #trailMap{height:55vh !important;}
  #trailDetailMap{height:62vh !important;}
  /* Comfortable tap targets */
  .adj-pill, .area-pill{padding:10px 16px !important;}
  .fav-btn{padding:11px 22px;}
  .topnav .links{gap:16px;font-size:12.5px;}
  .topnav .brand img{width:36px;height:36px;}
}
.teaser h2{
  font-size:22px;
  text-align:center;
  margin-bottom:24px;
}
.teaser-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-bottom:24px;
}
@media (max-width:760px){ .teaser-grid{grid-template-columns:1fr;} }
.teaser-card{
  border:1px solid var(--paper-line);
  border-radius:var(--radius-md);
  padding:16px;
  background:var(--card);
}
.teaser-card .photo{
  height:90px;
  border-radius:6px;
  margin-bottom:10px;
  background:repeating-linear-gradient(135deg,#EFE7D8,#EFE7D8 8px,#E4D9C4 8px,#E4D9C4 16px);
}
.teaser-card .row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;}
.teaser-card .name{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:14px;}
.teaser-card .match{
  font-weight:700;
  font-size:12px;
  color:var(--success);
  filter:blur(4px);
  user-select:none;
  flex:none;
}
.teaser-card .meta{font-size:11px;color:var(--ink-soft);margin-top:4px;}
.teaser-cta{text-align:center;}

/* ---------- REAL TRAIL CARDS (browse page, results) ---------- */
.trail-card{
  display:flex;
  gap:16px;
  padding:16px;
  background:var(--card);
  border:1px solid var(--paper-line);
  border-radius:var(--radius-md);
  margin-bottom:12px;
  transition:box-shadow .3s ease, border-color .3s ease;
}
.trail-card.highlighted{
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(214,160,56,.35);
}
.trail-card .photo{
  width:120px;height:90px;flex:none;border-radius:8px;
  background:#E7ECE3;
}
.trail-card .body{flex:1;min-width:0;}
.trail-card .top-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
.trail-card .name{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:17px;}
.trail-card .meta{font-size:12px;color:var(--ink-soft);margin-top:4px;}
.trail-card .tag{
  display:inline-block;margin-top:8px;padding:4px 10px;border-radius:12px;
  background:var(--success-dim);color:var(--ink-soft);font-size:11px;
}
.safety-badge{
  display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;
  padding:5px 12px;border-radius:var(--radius-pill);white-space:nowrap;
}
.safety-low{background:#DCEBDD;color:#2C5C34;}
.safety-moderate{background:#F5E4C6;color:#8A5A16;}
.safety-caution{background:#F3D9D2;color:#9C3A25;}

/* ---------- AUTH MODAL ---------- */
.modal-overlay{
  position:fixed; inset:0;
  background:rgba(43,35,32,0.45);
  align-items:center; justify-content:center;
  padding:20px;
  z-index:100;
}
.modal-overlay[hidden]{display:none !important;}
.modal-overlay:not([hidden]){display:flex;}
.modal{
  background:var(--card);
  border-radius:18px;
  padding:30px 28px;
  max-width:380px;
  width:100%;
  position:relative;
  box-shadow:0 20px 50px rgba(43,35,32,0.25);
}
.modal-close{
  position:absolute; top:14px; right:16px;
  border:none; background:none; cursor:pointer;
  font-size:22px; line-height:1; color:var(--ink-soft);
}
.modal h2{font-size:21px;margin-bottom:6px;}
.modal .hint{font-size:13px;color:var(--ink-soft);margin-bottom:18px;}
@media (max-width:520px){
  .modal-overlay{align-items:flex-start;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));overflow-y:auto;}
  .modal{box-sizing:border-box;max-height:calc(100dvh - 24px);overflow-y:auto;padding:24px 20px;border-radius:16px;}
  .modal-close{top:8px;right:8px;width:44px;height:44px;display:grid;place-items:center;}
  .modal input,.modal select,.modal textarea{font-size:16px !important;}
}

.field-label{
  display:block;
  font-size:12.5px;
  font-weight:700;
  color:var(--ink);
  margin-bottom:14px;
}
.field-label input, .field-label select{
  display:block;
  width:100%;
  margin-top:6px;
  padding:10px 12px;
  border:1.5px solid var(--paper-line);
  border-radius:10px;
  font-family:'Inter', sans-serif;
  font-size:14px;
  color:var(--ink);
  background:var(--bg);
}
.field-label input:focus, .field-label select:focus{outline:none;border-color:var(--accent);}
#dogBreedOtherField[hidden]{display:none !important;}
#nbBreedOtherField[hidden]{display:none;}

.auth-submit, .google-btn{
  width:100%;
  border:none;
  border-radius:10px;
  padding:11px 14px;
  font-size:14px;
  font-weight:700;
  font-family:'Inter', sans-serif;
  cursor:pointer;
  text-decoration:none;
  display:block;
  text-align:center;
}
.auth-submit{background:var(--ink);color:#fff;margin-top:4px;}
.auth-submit:hover{opacity:.94;}
.google-btn{background:var(--card);border:1.5px solid var(--paper-line);color:var(--ink);}
.google-btn:hover{border-color:var(--ink-soft);}

.auth-error{
  margin:0 0 10px;
  font-size:12.5px;
  color:#8f2f2f;
  background:#fff3f3;
  border:1px solid #f3d0d0;
  border-radius:8px;
  padding:8px 10px;
}
.auth-error[hidden]{display:none;}

.auth-divider{
  display:flex; align-items:center; gap:10px;
  margin:18px 0;
  color:var(--ink-soft);
  font-size:12px;
}
.auth-divider::before, .auth-divider::after{content:'';flex:1;height:1px;background:var(--paper-line);}

.forgot-link{
  display:block;
  width:100%;
  text-align:right;
  background:none; border:none;
  color:var(--accent);
  font-size:12px;
  font-weight:700;
  cursor:pointer;
  padding:0;
  margin:-8px 0 16px;
}

.auth-toggle{
  text-align:center;
  font-size:13px;
  color:var(--ink-soft);
  margin-top:18px;
}
.auth-toggle button{
  border:none; background:none;
  color:var(--accent);
  font-weight:700;
  cursor:pointer;
  font-size:13px;
  margin-left:4px;
}

/* ---------- SAVE-PROMPT / STATUS BANNERS (shared shape) ---------- */
.dog-prompt-banner{
  align-items:center; justify-content:space-between; gap:16px;
  background:var(--sage-dim); border-radius:14px;
  padding:16px 20px; margin-bottom:20px; flex-wrap:wrap;
}
.dog-prompt-banner[hidden]{display:none !important;}
.dog-prompt-banner:not([hidden]){display:flex;}
.dog-prompt-banner .txt{font-size:13.5px;font-weight:600;color:var(--ink);}
.dog-prompt-banner .txt span{display:block;font-weight:400;font-size:12px;color:var(--ink-soft);margin-top:2px;}
.dog-prompt-banner button{
  font-size:13px;font-weight:700;color:#fff;background:var(--accent);
  border:none;border-radius:var(--radius-pill);padding:10px 20px;cursor:pointer;
  font-family:'Inter',sans-serif;white-space:nowrap;
}

/* ---------- ACCOUNT / GUIDE PAGES ---------- */
.guide-hero{max-width:760px;margin:0 auto;padding:50px 24px 10px;}
/* Page kicker: plain uppercase text, not a pill — the page identity also
   sits in the header (.topnav-page), so this stays a quiet label. */
.guide-hero .eyebrow{
  display:inline-flex;gap:8px;align-items:center;
  color:var(--ink-soft);
  font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
}
.guide-hero .sub{font-size:15px;color:var(--ink-soft);line-height:1.6;}
.guide-article{max-width:760px;margin:30px auto 0;padding:0 24px 60px;}
.guide-context-return{display:inline-flex;margin:0 0 18px;color:var(--accent);font-size:13px;font-weight:700;text-decoration:none;}
.guide-context-return:hover{text-decoration:underline;}
.guide-page-nav{margin:0 0 24px;padding:16px 18px;background:var(--sage-dim);border:1px solid #d3dbcf;border-radius:14px;}
.guide-page-nav__label{display:block;margin-bottom:9px;font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);}
.guide-page-nav__links{display:flex;flex-wrap:wrap;gap:7px 16px;}
.guide-page-nav a{color:var(--ink);font-size:12.5px;font-weight:600;text-decoration:none;line-height:1.4;}
.guide-page-nav a:hover{text-decoration:underline;color:var(--accent);}
.guide-anchor{scroll-margin-top:90px;}
/* Account page: form + live "how this shapes the trails" summary sidebar */
.account-article{max-width:1020px;}
.account-article > #loggedInState > .guide-section,
.account-article > #loggedInState > section{max-width:760px;margin-left:auto;margin-right:auto;}
.account-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start;}
.account-summary{position:sticky;top:90px;}
@media (max-width:880px){
  .account-grid{grid-template-columns:1fr;}
  .account-summary{position:static;order:-1;}
}
.guide-section{
  background:var(--card);border:1px solid var(--paper-line);border-radius:16px;
  padding:26px;margin-bottom:18px;
}
.guide-section h2{font-size:20px;margin-bottom:10px;}
.guide-section p{font-size:14.5px;line-height:1.7;color:var(--ink);opacity:.9;margin:0 0 10px;}
.guide-section ul{margin:0;padding-left:20px;}
.guide-section li{font-size:14.5px;line-height:1.7;color:var(--ink);opacity:.9;}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;}
.detail-grid div b{color:var(--ink);}

/* ---------- EMPTY / ERROR STATES ---------- */
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin-top:20px;padding:38px 24px;border:1px solid var(--paper-line);border-radius:18px;background:var(--card);color:var(--ink);}
.empty-state[hidden]{display:none !important;}
.empty-state__icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:var(--sage-dim);color:var(--success);}
.empty-state__title{margin:12px 0 5px;font:700 18px/1.25 'Bricolage Grotesque',sans-serif;color:var(--ink);}
.empty-state__copy{max-width:46ch;margin:0;color:var(--ink-soft);font-size:13px;line-height:1.55;}
.empty-state__actions{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;margin-top:17px;}
.empty-state__action{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 18px;border:0;border-radius:10px;background:var(--ink);color:#fff;font:700 12.5px 'Inter',sans-serif;text-decoration:none;cursor:pointer;}
.empty-state__action:hover{background:var(--accent);}
.empty-state--compact{align-items:flex-start;text-align:left;margin-top:0;padding:18px 20px;background:var(--bg);}
.empty-state--compact .empty-state__title{margin:0 0 4px;font-size:15px;}
.empty-state--compact .empty-state__copy{max-width:none;}
.empty-state--compact .empty-state__actions{justify-content:flex-start;margin-top:12px;}
.trail-photos-list>.empty-state{grid-column:1/-1;}
@media(max-width:520px){
  .empty-state{padding:30px 18px;}
  .empty-state__actions{width:100%;}
  .empty-state__action{width:100%;box-sizing:border-box;}
  .guide-page-nav{margin-bottom:20px;padding:14px 16px;overflow:hidden;}
  .guide-page-nav__links{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;padding-bottom:2px;scrollbar-width:none;}
  .guide-page-nav__links::-webkit-scrollbar{display:none;}
  .guide-page-nav a{flex:0 0 auto;padding:7px 11px;background:var(--card);border:1px solid var(--paper-line);border-radius:999px;}
}

.fav-btn{
  border:1px solid var(--paper-line);background:var(--bg);cursor:pointer;
  padding:9px 22px;border-radius:var(--radius-pill);font-size:13px;font-weight:700;color:var(--ink-soft);
}
.fav-btn:hover{border-color:var(--accent);color:var(--accent);}
.fav-btn.saved{background:var(--success);border-color:var(--success);color:#fff;}
.fav-btn.saved:hover{background:#3D6647;border-color:#3D6647;color:#fff;}

.danger-btn{
  background:#E24B4A;color:#fff;border:none;padding:10px 20px;border-radius:10px;
  font-weight:700;font-size:13.5px;cursor:pointer;font-family:'Inter',sans-serif;
}
.danger-btn:hover{background:#C93E3D;}
.danger-btn:disabled{opacity:.6;cursor:default;}

/* ---------- FOOTER ---------- */
.site-footer{
  text-align:center;
  font-size:12px;
  color:var(--ink-soft);
  padding:40px 24px 60px;
}

/* ---------- MAP POPUPS ---------- */
.maplibregl-popup-content{
  background:var(--card);
  color:var(--ink);
  font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  padding:12px 14px;
  border-radius:8px;
  box-shadow:0 4px 12px rgba(46,64,52,.15);
  font-size:13px;
  line-height:1.4;
}
.maplibregl-popup-content b{
  color:var(--ink);
  font-weight:700;
  display:block;
  margin-bottom:4px;
}
.maplibregl-popup-anchor-top .maplibregl-popup-tip{
  border-top-color:var(--card);
}
.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{
  border-bottom-color:var(--card);
}
.maplibregl-popup-anchor-left .maplibregl-popup-tip{
  border-left-color:var(--card);
}
.maplibregl-popup-anchor-right .maplibregl-popup-tip{
  border-right-color:var(--card);
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:700px){
  .topnav{padding:12px 20px;}
  .topnav .brand{font-size:22px;gap:10px;}
  .topnav .brand img{width:38px;height:38px;}
  .topnav .brand::after,.li-brand::after{display:none;}
  .mobile-nav-toggle{
    width:44px;
    height:44px;
    padding:0;
    border:1px solid rgba(242,238,226,.35);
    border-radius:12px;
    background:transparent;
    color:#F2EEE2;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    cursor:pointer;
  }
  .mobile-nav-toggle span{width:19px;height:2px;border-radius:2px;background:currentColor;transition:transform .16s ease,opacity .16s ease;}
  .mobile-nav-open .mobile-nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .mobile-nav-open .mobile-nav-toggle span:nth-child(2){opacity:0;}
  .mobile-nav-open .mobile-nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .topnav .links{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:4px;
    padding:10px 20px 18px;
    background:rgba(38,53,42,.98);
    border-bottom:1px solid rgba(242,238,226,.14);
    box-shadow:0 12px 24px rgba(27,31,25,.18);
    font-size:15px;
  }
  .topnav.mobile-nav-open .links{display:flex;}
  .topnav .links a{min-height:44px;padding:10px 12px;border-radius:10px;}
  .topnav .links a:hover,.topnav .links a.active{background:rgba(255,255,255,.09);}
  .topnav .links .account-btn{width:100%;min-height:44px;margin:4px 0 0;text-align:center;justify-content:center;}
  .topnav .links > div{display:block !important;width:100%;}
  .topnav .links > div > button{width:100%;min-height:44px;text-align:center;}
  /* Member controls keep their compact shape inside the mobile sheet.
     The sheet itself scrolls — the dog switcher plus its menu items can
     outgrow a phone screen. */
  .topnav .links{max-height:calc(100dvh - 72px);overflow-y:auto;}
  /* The bell sits in the header bar itself, left of the hamburger —
     notifications are visible first thing, no menu required. Sized to
     match the toggle. */
  .topnav > .nav-bellwrap{display:flex;margin-left:auto;margin-right:10px;}
  .topnav > .nav-bellwrap > button.nav-bell{
    width:44px;height:44px;border-radius:12px;border:1px solid rgba(242,238,226,.35);
    background:transparent;color:#F2EEE2;display:flex;align-items:center;justify-content:center;
  }
  .topnav > .nav-bellwrap .nav-bell-badge{position:absolute;top:4px;right:4px;}
  .topnav > .nav-bellwrap .nav-bell-menu{position:absolute;top:calc(100% + 8px);right:0;width:min(320px,86vw);}
  .nav-bell-menu{position:static;width:100%;margin-top:6px;box-shadow:none;}
  .topnav .links .nav-user{min-height:48px;justify-content:flex-start;text-align:left;}
  .nav-dogmenu{position:static;width:100%;margin-top:6px;box-shadow:none;}
}

/* ---------- BROWSE COLLECTIONS (browse-trails.html#collections) ---------- */
.browse-collections{margin:28px 0 22px;}
.browse-coll-head h2{font-size:21px;margin:0;}
.browse-coll-head p{margin:6px 0 0;font-size:13.5px;color:var(--ink-soft);}
.browse-coll-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:12px;
  margin-top:14px;
}
.browse-coll-card{
  text-align:left;
  padding:14px 16px;
  border-radius:14px;
  border:1.5px solid var(--paper-line);
  background:var(--card);
  cursor:pointer;
  font-family:'Inter',sans-serif;
  transition:border-color .12s ease, box-shadow .12s ease;
}
.browse-coll-card:hover{border-color:rgba(27,31,25,.35);}
.browse-coll-card.active{border-color:var(--ink);box-shadow:var(--shadow);}
.browse-coll-card b{display:block;font-size:14px;color:var(--ink);}
.browse-coll-card span{display:block;font-size:12px;color:var(--ink-soft);margin-top:3px;line-height:1.45;}
.browse-coll-card em{display:block;font-style:normal;font-size:11.5px;font-weight:700;color:var(--accent);margin-top:8px;}

/* ---------- COLLECTIONS PAGE ---------- */
.collections-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.collection-card{display:block;min-width:0;overflow:hidden;border:var(--border);border-radius:var(--radius-panel);background:var(--card);text-decoration:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;}
.collection-card:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:var(--shadow-card-hover);}
.collection-card__image{height:150px;background:#E7ECE3 center/cover no-repeat;}
.collection-card__body{padding:16px 18px;}
.collection-card__body h2{font-size:18px;margin:0;}
.collection-card__body p{margin:5px 0 12px;color:var(--ink-soft);font-size:12.5px;line-height:1.45;}
.collection-card__meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11.5px;color:var(--ink-soft);}
.collection-card__open{font-weight:800;color:var(--accent);}
.collection-feature{display:grid;grid-template-columns:1fr 1fr;margin-top:26px;overflow:hidden;border:var(--border);border-radius:var(--radius-panel);background:var(--card);}
.collection-feature__image{min-height:280px;background:url('images/lago-di-braies.webp') center/cover no-repeat;}
.collection-feature__body{padding:24px 26px;}
.collection-feature__kick{font:700 10.5px var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;}
.collection-feature__body h2{font-size:22px;}
.collection-feature__body>p{margin:10px 0 14px;color:var(--ink-soft);font-size:13.5px;line-height:1.6;}
.collection-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.collection-chips span{padding:6px 10px;border-radius:var(--radius-pill);background:var(--success-dim);color:var(--success);font-size:11.5px;font-weight:700;}
.collection-trails{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;}
.collection-trail{display:flex;align-items:baseline;gap:10px;padding:11px 14px;border:var(--border);border-radius:var(--radius-md);background:var(--bg);text-decoration:none;}
.collection-trail b{flex:1;min-width:0;font:700 13.5px var(--font-serif);}
.collection-trail span{font-size:11.5px;color:var(--ink-soft);}
.collection-trail em{font-style:normal;font-size:13px;font-weight:800;color:var(--success);}
.collection-cta{display:inline-flex;padding:10px 16px;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:12.5px;font-weight:800;text-decoration:none;}
.collection-cta:hover{background:var(--accent-hover);}
.collection-detail{min-height:65vh;background:var(--bg);}
.collection-detail-hero{min-height:430px;background-image:linear-gradient(90deg,rgba(23,39,29,.88) 0%,rgba(23,39,29,.58) 52%,rgba(23,39,29,.15) 100%),var(--collection-cover);background-position:center;background-size:cover;display:flex;align-items:flex-end;}
.collection-detail-hero__overlay{width:min(var(--wrap),100%);margin:0 auto;padding:70px var(--wrap-gutter) 54px;color:#fff;}
.collection-detail-back{display:inline-block;margin-bottom:62px;color:#fff;text-decoration:none;font-size:13px;font-weight:700;}
.collection-detail-kick{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#DCE9E1;}
.collection-detail-hero h1{margin:9px 0 8px;color:#fff;font-size:52px;}
.collection-detail-hero p{margin:0;max-width:690px;font-size:18px;line-height:1.5;color:#F3F4EF;}
.collection-detail-content{max-width:var(--wrap);margin:0 auto;padding:38px var(--wrap-gutter) 70px;}
.collection-detail-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:36px;margin-bottom:34px;}
.collection-detail-intro>p{max-width:710px;margin:0;color:var(--ink-soft);font-size:15px;line-height:1.7;}
.collection-detail-intro .collection-chips{justify-content:flex-end;max-width:390px;margin:0;}
.collection-detail-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px;}
.collection-detail-heading h2{font-size:25px;}
.collection-detail-heading span{color:var(--ink-soft);font-size:12px;font-weight:700;}
.collection-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.collection-detail-card{min-width:0;overflow:hidden;border:var(--border);border-radius:var(--radius-panel);background:var(--card);transition:transform .18s ease,box-shadow .18s ease;}
.collection-detail-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover);}
.collection-detail-card__image{display:block;height:190px;text-decoration:none;}
.collection-detail-card__visual{width:100%;height:100%;}
.collection-detail-card__body{padding:16px 17px 17px;}
.collection-detail-card__area{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--accent);font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;}
.collection-detail-card h2{margin:6px 0 7px;font-size:18px;line-height:1.25;}
.collection-detail-card h2 a{color:var(--ink);text-decoration:none;}
.collection-detail-card__body>p{margin:0;color:var(--ink-soft);font-size:12px;}
.collection-detail-card__footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:15px;padding-top:12px;border-top:1px solid var(--divider);font-size:11.5px;font-weight:700;}
.collection-detail-card__footer span{color:var(--success);}
.collection-detail-card__footer a{color:var(--accent);text-decoration:none;}
.collection-not-found{max-width:680px;margin:0 auto;padding:100px 24px;text-align:center;}
.collection-not-found p{margin:12px 0 22px;color:var(--ink-soft);}
@media(max-width:900px){
  .collections-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .collection-feature{display:flex;flex-direction:column;}
  .collection-feature__image{min-height:190px;}
  .collection-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .collection-detail-intro{display:block;}
  .collection-detail-intro .collection-chips{justify-content:flex-start;max-width:none;margin-top:18px;}
}
@media(max-width:600px){
  .collections-grid{grid-template-columns:1fr;}
  .collection-card__image{height:170px;}
  .collection-feature__body{padding:20px 18px;}
  .collection-detail-hero{min-height:390px;}
  .collection-detail-hero__overlay{padding:54px 18px 38px;}
  .collection-detail-back{margin-bottom:50px;}
  .collection-detail-hero h1{font-size:38px;}
  .collection-detail-hero p{font-size:15px;}
  .collection-detail-content{padding:30px 18px 52px;}
  .collection-detail-grid{grid-template-columns:1fr;}
  .collection-detail-card__image{height:210px;}
}

/* ---------- FULL DESIGN FLOWS ---------- */
.flow-shell{min-height:100vh;background:var(--bg);}
.flow-wrap{max-width:720px;margin:0 auto;padding:38px 24px 60px;}
.flow-wrap--narrow{max-width:640px;}
.flow-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;}
.flow-back{border:0;background:none;color:var(--accent);font:700 13px var(--font-sans);cursor:pointer;padding:0;text-decoration:none;}
.flow-context{font:700 12px var(--font-sans);color:var(--ink-soft);}
.flow-titlebar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.flow-titlebar h1,.flow-wrap>h1{font-size:28px;}
.flow-lead{margin:10px 0 0;font-size:13.5px;color:var(--ink-soft);line-height:1.6;}
.flow-card{background:var(--card);border:var(--border);border-radius:var(--radius-panel);padding:20px;}
.flow-kicker{font:700 10.5px var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:#8A9689;margin:0 0 8px;}
.flow-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:10px 18px;border:0;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font:800 13px var(--font-sans);cursor:pointer;text-decoration:none;}
.flow-btn:hover{background:var(--accent-hover);color:#fff;}
.flow-btn:disabled{opacity:.5;cursor:not-allowed;}
.flow-btn--quiet{background:var(--card);color:var(--ink);border:var(--border-strong);}
.flow-btn--quiet:hover{background:var(--card);color:var(--accent);border-color:var(--accent);}
.flow-btn--block{width:100%;}
.flow-field{display:block;margin-top:16px;}
.flow-field>span{display:flex;gap:5px;font:700 12.5px var(--font-sans);color:var(--ink);margin-bottom:7px;}
.flow-field small{color:#8A9689;font-weight:500;}
.flow-field input,.flow-field textarea{display:block;width:100%;padding:11px 13px;border:var(--border-strong);border-radius:var(--radius-sm);outline:0;font:400 14px var(--font-sans);color:var(--ink);background:var(--card);}
.flow-field textarea{resize:vertical;}
.flow-field input:focus,.flow-field textarea:focus{border-color:var(--accent);}
.flow-actions{display:flex;gap:10px;margin-top:20px;}
.flow-success{min-height:100vh;display:grid;place-items:center;padding:24px;text-align:center;background:var(--bg);}
.flow-success>div{max-width:380px;width:100%;}
.flow-success-icon{width:60px;height:60px;border-radius:50%;background:var(--sage-dim);display:grid;place-items:center;margin:0 auto 16px;color:var(--success);font-size:25px;font-weight:800;}
.flow-success h1{font-size:22px;}
.flow-success p{margin:10px 0 22px;font-size:13.5px;color:var(--ink-soft);line-height:1.6;}

/* notification centre */
.notifications-head{padding-bottom:8px;}
.notifications-tools{display:flex;align-items:center;gap:14px;}
.notifications-read{border:0;background:none;color:var(--accent);font:700 13px var(--font-sans);cursor:pointer;padding:4px;}
.notifications-close{width:34px;height:34px;border-radius:50%;border:var(--border-strong);background:var(--card);display:grid;place-items:center;text-decoration:none;font-size:17px;color:var(--ink-soft);}
.notification-group{overflow:hidden;border:var(--border);border-radius:var(--radius-panel);background:var(--card);margin-bottom:26px;}
.notification-row{display:flex;gap:13px;align-items:flex-start;padding:15px 17px;border-bottom:1px solid #EDE9DD;color:inherit;text-decoration:none;}
.notification-row:last-child{border-bottom:0;}
a.notification-row{cursor:pointer;transition:background .12s ease;}
a.notification-row:hover{background:#F3F0E4;}
/* Unread carries the tint; --alert only recolors the icon chip. */
.notification-row--unread{background:var(--sage-dim);}
a.notification-row--unread:hover{background:#E2E7DA;}
.notification-icon{flex:none;width:36px;height:36px;border-radius:10px;background:var(--sage-dim);display:grid;place-items:center;color:#2C5C34;font-weight:800;}
.notification-row--alert .notification-icon{background:var(--risk-mod-bg,#F5E4C6);color:#9C3A25;}
.notification-copy{flex:1;min-width:0;}
.notification-copy b{display:block;font:700 13.5px/1.3 var(--font-sans);}
.notification-time{display:block;font-size:11.5px;color:#8A9689;margin-top:2px;}
.notification-copy p{margin:6px 0 0;font-size:13px;color:var(--ink-soft);line-height:1.5;}
.notification-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:6px;}
.notifications-empty{border:var(--border);border-radius:var(--radius-panel);background:var(--card);padding:38px 24px;text-align:center;}
.notifications-empty h2{font-size:19px;margin:0 0 8px;}
.notifications-empty p{margin:0 auto;max-width:44ch;font-size:13.5px;color:var(--ink-soft);line-height:1.6;}

/* full search */
.search-composer{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.search-back{flex:none;width:38px;height:38px;border-radius:50%;border:var(--border);background:#fff;display:grid;place-items:center;text-decoration:none;}
.search-box{flex:1;display:flex;align-items:center;gap:9px;background:var(--card);border:var(--border-strong);border-radius:var(--radius-pill);padding:10px 16px;color:var(--ink-soft);}
.search-box input{flex:1;min-width:0;border:0;outline:0;background:none;font:400 15px var(--font-sans);color:var(--ink);}
.search-clear{border:0;background:none;color:#8A9689;font-size:16px;cursor:pointer;}
.search-summary{font-size:13px;color:var(--ink-soft);margin:0 0 14px;}
.search-summary b{color:var(--ink);}
.search-refine{display:flex;gap:8px;overflow-x:auto;margin-bottom:16px;padding-bottom:2px;}
.search-refine button{flex:none;border:var(--border-strong);white-space:nowrap;background:var(--card);color:var(--ink);border-radius:var(--radius-pill);padding:8px 14px;font:700 13px var(--font-sans);cursor:pointer;}
.search-refine button.on{border-color:var(--ink);background:var(--ink);color:#fff;}
.search-results{display:flex;flex-direction:column;gap:8px;margin-bottom:22px;}
.search-row{display:grid;grid-template-columns:64px minmax(0,1fr) 76px;gap:12px;align-items:center;padding:10px;background:var(--card);border:var(--border);border-radius:14px;text-decoration:none;transition:var(--ease-card,.2s);}
.search-row:hover{transform:translateY(-2px);border-color:var(--accent-light);box-shadow:var(--shadow-card-hover);}
.search-row img{width:64px;height:64px;border-radius:12px;object-fit:cover;}
.search-row h3{font-size:14.5px;margin:0;}
.search-row p{font-size:11.5px;color:var(--ink-soft);margin:4px 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.search-row-match{align-self:stretch;border-left:1px dashed var(--paper-line);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.search-row-match b{font:800 18px var(--font-sans);color:var(--success);}
.search-row-match small{font-size:9px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;}
.search-subtitle{font-size:16px;margin:0 0 10px;}
.search-linkrow{display:flex;align-items:center;gap:12px;padding:12px 15px;border:var(--border);border-radius:var(--radius-md);background:var(--card);text-decoration:none;margin-bottom:8px;}
.search-linkrow>span:first-child{flex:1;min-width:0;}
.search-linkrow b{display:block;font:700 14px var(--font-serif);}
.search-linkrow small{display:block;font-size:12px;color:var(--ink-soft);margin-top:3px;}
.search-linkrow>em{font-style:normal;font:700 13px var(--font-sans);color:var(--success);}
.search-empty{padding:36px 20px;border:var(--border);border-radius:var(--radius-panel);background:var(--card);text-align:center;color:var(--ink-soft);}
.search-empty h2{font-size:18px;margin-bottom:6px;}
.search-empty p{font-size:13px;line-height:1.55;margin:0;}

/* reviews */
.review-summary{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12.5px;color:var(--ink-soft);}
.review-stars{display:inline-flex;gap:1px;color:var(--sun,#F7C96B);}
.review-compose{margin-top:20px;}
.review-picker{display:flex;gap:4px;}
.review-picker button{border:0;background:none;cursor:pointer;font-size:28px;line-height:1;padding:2px;color:var(--sun,#F7C96B);opacity:.3;}
.review-picker button.on{opacity:1;}
.review-list{display:flex;flex-direction:column;gap:14px;margin-top:22px;}
.review-card{background:var(--card);border:var(--border);border-radius:var(--radius-panel);padding:16px 18px;}
.review-card-head{display:flex;align-items:center;gap:10px;}
.review-avatar{flex:none;width:36px;height:36px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;}
.review-person{flex:1;min-width:0;}
.review-person b{display:block;font:700 13.5px var(--font-serif);}
.review-person small{font-size:11.5px;color:#6B7A6E;}
.review-date{text-align:right;font-size:11px;color:#8A9689;}
.review-card>p{margin:10px 0 0;font-size:13.5px;line-height:1.6;color:var(--ink-soft);}
.review-helpful{margin-top:10px;border:0;background:none;color:var(--ink-soft);font:700 12px var(--font-sans);cursor:pointer;padding:0;}

/* photo + report flows */
.upload-actions{display:flex;gap:10px;margin:20px 0;}
.upload-empty{border:2px dashed var(--paper-line);border-radius:var(--radius-panel);padding:36px 20px;text-align:center;color:var(--ink-soft);}
.upload-empty p{margin:10px 0 0;font-size:13px;}
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.photo-tile{position:relative;aspect-ratio:1;border-radius:var(--radius-md);background:var(--sage-dim) center/cover no-repeat;overflow:hidden;display:grid;place-items:center;color:var(--success);font-size:22px;}
.photo-remove{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;cursor:pointer;display:grid;place-items:center;}
.hazard-options{display:flex;flex-direction:column;gap:9px;margin:6px 0 20px;}
.hazard-option{display:block;width:100%;text-align:left;padding:13px 15px;border:var(--border-strong);border-radius:var(--radius-md);background:var(--card);cursor:pointer;}
.hazard-option.on{background:#EAF3EC;border-color:var(--accent);}
.hazard-option b{display:block;font:700 13.5px var(--font-sans);}
.hazard-option small{display:block;margin-top:3px;font-size:11.5px;line-height:1.45;color:var(--ink-soft);}
.severity-control{display:flex;gap:4px;padding:4px;background:var(--sage-dim);border-radius:var(--radius-pill);margin:7px 0 20px;}
.severity-control button{flex:1;border:0;background:none;border-radius:var(--radius-pill);padding:9px 10px;font:700 12.5px var(--font-sans);cursor:pointer;color:var(--ink-soft);}
.severity-control button.on{background:var(--ink);color:#fff;}
.report-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px;}
.photo-add-tile{aspect-ratio:1;border:2px dashed var(--paper-line);border-radius:var(--radius-md);background:none;color:var(--ink-soft);font-size:22px;cursor:pointer;}

@media(max-width:700px){
  .flow-wrap{padding:26px 16px 44px;}
  .flow-wrap--narrow{padding-top:22px;}
  .flow-titlebar h1,.flow-wrap>h1{font-size:24px;}
  .search-row{grid-template-columns:56px minmax(0,1fr) 68px;gap:9px;}
  .search-row img{width:56px;height:56px;}
  .upload-actions{flex-direction:column;}
}

/* exact dog-profile screen */
.profile-design{display:none;}
body.ep-app .profile-design{display:block;}
body.ep-app .acct-wrap{max-width:1020px;padding:40px 24px 60px;}
body.ep-app .acct-wrap>#backLink,body.ep-app .acct-wrap>#accountH1,body.ep-app #accountSubline,body.ep-app .acct-grid,body.ep-app .ep-mbar,body.ep-app .ep-mfooter{display:none!important;}
.profile-back{display:block;margin:0 0 18px;font-size:13px;font-weight:700;color:var(--accent);text-decoration:none;}
.profile-kicker{display:inline-flex;background:var(--sage-dim);border:1px solid #D3DBCF;color:var(--ink-soft);font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;padding:5px 12px;border-radius:var(--radius-pill);}
.profile-design>h1{font-size:34px;margin-top:14px;}
.profile-intro{max-width:620px;font-size:15px;color:var(--ink-soft);line-height:1.6;margin:12px 0 0;}
.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start;margin-top:24px;}
.profile-card{background:var(--card);border:var(--border);border-radius:var(--radius-panel);padding:26px;margin-bottom:18px;}
.profile-card h2{font-size:20px;margin-bottom:6px;}
.profile-card>p{font-size:14.5px;line-height:1.7;color:var(--ink);opacity:.9;margin:0 0 14px;}
.profile-photo-row{display:flex;gap:18px;align-items:center;margin:14px 0 18px;}
.profile-avatar{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font:800 25px var(--font-sans);background-size:cover;background-position:center;}
.profile-select{display:block;width:100%;padding:11px 13px;border:var(--border-strong);border-radius:var(--radius-sm);background:var(--card);font:400 14px var(--font-sans);color:var(--ink);}
.profile-hint{display:block;font-size:11.5px;color:#8A9689;margin-top:6px;line-height:1.45;}
.profile-two{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.profile-checks{display:flex;flex-direction:column;gap:9px;}
.profile-checks label{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;line-height:1.45;cursor:pointer;border:var(--border-strong);border-radius:13px;padding:13px 14px;background:#fff;}
.profile-checks input{margin-top:2px;accent-color:var(--accent);}
.profile-sidebar{position:sticky;top:24px;display:flex;flex-direction:column;gap:14px;}
.profile-card--compact{padding:16px;margin:0;}
.profile-impact{padding:10px 0;border-bottom:1px solid #EDE9DD;}
.profile-impact:last-child{border-bottom:0;padding-bottom:0;}
.profile-impact b{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;}
.profile-impact b span{color:var(--success);text-align:right;}
.profile-impact p{font-size:11.5px;line-height:1.45;color:var(--ink-soft);margin:4px 0 0;}
.profile-card--warm{padding:16px;margin:0;background:#FBF6E9;border-color:#E6D3B4;}
.profile-card--warm .flow-kicker{color:#8A5A26;}
.profile-card--warm p{font-size:12.5px;line-height:1.5;color:#6E5A3C;margin:0;}
.profile-card--warm a{display:inline-block;margin-top:10px;font-size:12px;font-weight:700;color:#8A5A26;}
@media(max-width:820px){
  body.ep-app .topnav{display:flex;}
  body.ep-app .acct-wrap{padding:26px 16px 48px;}
  .profile-layout{grid-template-columns:1fr;}
  .profile-sidebar{position:static;}
  .profile-design>h1{font-size:27px;}
}
@media(max-width:560px){.profile-two{grid-template-columns:1fr;}}

/* ---------- AREA FILTER (homepage) ---------- */
.area-pill{
  padding:8px 15px;border-radius:999px;border:1.5px solid var(--paper-line);
  background:var(--card);font-size:12.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;
}
.area-pill.active{background:var(--ink);border-color:var(--ink);color:#fff;}
.area-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}

/* ---- Region / valley / provenance filtering ---- */
.region-tabs{display:flex;gap:6px;background:var(--sage-dim);padding:5px;border-radius:999px;width:max-content;max-width:100%;margin-bottom:14px;}
.region-tab{padding:9px 22px;border-radius:999px;font-size:13.5px;font-weight:700;color:var(--ink-soft);cursor:pointer;border:none;background:transparent;font-family:inherit;}
.region-tab.active{background:var(--ink);color:#fff;box-shadow:var(--shadow);}
.region-tab .count{font-weight:600;opacity:.65;font-size:12px;margin-left:5px;}
.province-pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.province-pills .area-pill{padding:5px 10px;font-size:11.5px;}
.prov-row{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:10px;margin-bottom:16px;}
.valley-pills{display:flex;gap:8px;flex-wrap:wrap;}
.pill-count{font-size:10.5px;opacity:.7;margin-left:4px;}
.prov-toggle{display:flex;border:1.5px solid var(--paper-line);border-radius:999px;overflow:hidden;background:var(--card);flex-shrink:0;}
.prov-opt{padding:7px 14px;font-size:11.5px;font-weight:700;color:var(--ink-soft);cursor:pointer;white-space:nowrap;}
.prov-opt.active{background:var(--sage-dim);color:var(--ink);}
.country-opt{padding:8px 14px;border:0;background:transparent;font:700 12px 'Inter',sans-serif;color:var(--ink-soft);cursor:pointer;white-space:nowrap;}
.country-opt.active{background:var(--ink);color:#fff;}
.country-opt:focus-visible{outline:3px solid var(--sky);outline-offset:-3px;}
.country-opt:disabled{cursor:wait;opacity:.65;}
.region-section-header{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:19px;color:var(--ink);margin:26px 0 4px;}
.region-section-sub{font-size:12px;color:var(--ink-soft);margin-bottom:14px;}


/* ---------- SHARED COMPONENTS (audit items 7 & 9) ----------
   One visual language for every JS-generated element, defined once:
   map markers, map controls, card badges, pagination. */

/* Map markers — shared SVG badge markers plus plain dot (trails) */
.dp-marker{width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;filter:drop-shadow(0 2px 4px rgba(0,0,0,.28));}
.dp-marker .dp-icon-svg{display:block;}
.dp-marker-dot{width:15px;height:15px;border-radius:50%;background:var(--accent-light);border:2.5px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35);cursor:pointer;transition:transform .12s ease;}
.dp-marker-dot:hover{transform:scale(1.45);}
.dp-icon-host,.dp-chip-label,.dp-legend-item{display:inline-flex;align-items:center;gap:7px;}
.dp-icon-host .dp-icon-svg,.dp-chip-label .dp-icon-svg,.dp-legend-item .dp-icon-svg{display:block;flex:none;}
.dp-inline-status{display:inline-flex;align-items:center;gap:6px;}
.dp-inline-status .dp-icon-svg,.trail-provenance>.dp-icon-svg{display:inline-block;vertical-align:-3px;flex:none;}
.trail-provenance>.dp-icon-svg{margin-right:6px;}

/* Trail-card visuals — one hierarchy on every list: photo, route preview,
   then a deliberate neutral placeholder. */
.trail-visual{position:relative;overflow:hidden;background:#E7ECE3;color:#2E4034;display:flex;align-items:center;justify-content:center;isolation:isolate;}
.trail-card .photo.trail-visual,.simple-card .photo.trail-visual,.teaser-card .photo.trail-visual{background:#E7ECE3;}
.trail-visual--photo img{width:100%;height:100%;object-fit:cover;display:block;}
.trail-visual-route{width:100%;height:100%;display:block;color:#2E4034;}
.trail-visual--route{background:linear-gradient(145deg,#EDF1E9 0%,#DDE7DA 100%);}
.trail-visual--placeholder{flex-direction:column;gap:7px;background:linear-gradient(145deg,#F0EEE5 0%,#E4E7DC 100%);color:#667064;}
.trail-visual-placeholder-icon{display:flex;align-items:center;justify-content:center;}
.trail-visual-placeholder-label{font:700 9px/1.2 'Inter',sans-serif;letter-spacing:.04em;text-transform:uppercase;text-align:center;max-width:90%;}
.trail-visual--clickable{cursor:pointer;}
.trail-visual--clickable::after{content:"";position:absolute;inset:0;border:2px solid transparent;border-radius:inherit;transition:border-color .15s ease;pointer-events:none;}
.trail-visual--clickable:hover::after{border-color:rgba(46,64,52,.28);}

/* Map controls — white buttons matching MapLibre's own control style */
.map-btn{position:absolute;bottom:10px;z-index:6;height:34px;padding:0 16px;border-radius:8px;background:#fff;color:var(--ink);border:1px solid var(--paper-line);font-size:12px;font-weight:700;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.15);font-family:'Inter',sans-serif;}
.map-btn.guest-lifts-toggle.on{background:var(--ink);color:#fff;border-color:var(--ink);}
.map-btn--terrain{left:auto;right:10px;bottom:52px;}
.map-panel{position:absolute;bottom:48px;left:10px;z-index:6;background:#fff;border:1px solid var(--paper-line);border-radius:12px;padding:10px;display:none;flex-direction:column;gap:6px;box-shadow:0 4px 14px rgba(0,0,0,.18);min-width:170px;}
.map-chip{padding:7px 12px;border-radius:999px;font-size:11.5px;font-weight:600;cursor:pointer;border:1.5px solid var(--paper-line);background:none;color:var(--ink);font-family:'Inter',sans-serif;text-align:left;}
.map-chip.on{border-color:var(--ink);background:var(--ink);color:#fff;}

/* "Points of interest" toggle + live-position dot (trail-detail redesign) */
.td-map-toggle{position:absolute;top:52px;left:10px;z-index:6;display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:9px;border:none;font-size:11.5px;font-weight:700;cursor:pointer;font-family:'Inter',sans-serif;background:rgba(255,255,255,.95);color:var(--ink);box-shadow:0 2px 8px rgba(23,42,28,.16);}
.td-map-toggle.on{background:#243128;color:#fff;}
.td-live-pill{position:absolute;top:92px;left:10px;z-index:6;display:inline-flex;align-items:center;gap:7px;background:rgba(36,49,40,.94);color:#fff;border-radius:999px;padding:7px 13px;font-size:11.5px;font-weight:700;box-shadow:0 2px 8px rgba(23,42,28,.16);}
.td-live-pill[hidden]{display:none;}
.td-live-pill .dot{width:8px;height:8px;border-radius:50%;background:var(--accent-light);}
.hike-live-dot{width:20px;height:20px;border-radius:50%;background:var(--accent);border:3px solid #fff;box-shadow:0 0 0 0 rgba(62,122,145,.5);animation:hikePulse 1.8s infinite;}
@keyframes hikePulse{0%{box-shadow:0 0 0 0 rgba(62,122,145,.5);}70%{box-shadow:0 0 0 16px rgba(62,122,145,0);}100%{box-shadow:0 0 0 0 rgba(62,122,145,0);}}
.map-chip .dp-chip-label{pointer-events:none;}

/* Product badges — one shape, weight and icon treatment everywhere. */
.dp-badge{display:inline-flex;align-items:center;gap:5px;min-height:24px;box-sizing:border-box;padding:4px 9px;border-radius:999px;font:700 10.5px/1 'Inter',sans-serif;letter-spacing:.02em;white-space:nowrap;}
.dp-badge .dp-icon-svg{display:block;flex:none;}
.dp-badge--verified{color:#2C5C34;background:#E5EFE7;}
.dp-badge--imported{color:#28736B;background:#E3F1EF;}
.dp-badge--new{color:#6E4812;background:#F5E4C6;}
.dp-badge--low-risk,.dp-badge--heat-low{color:#2C5C34;background:#DCEBDD;}
.dp-badge--moderate,.dp-badge--heat-moderate{color:#8A5A16;background:#F5E4C6;}
.dp-badge--caution,.dp-badge--heat-high{color:#9C3A25;background:#F3D9D2;}
.dp-badge--neutral{color:var(--ink-soft);background:var(--sage-dim);}

/* Legacy badge hooks retain the same visual grammar while older static pages
   are regenerated progressively. */
.badge-pill{display:inline-flex;align-items:center;min-height:24px;box-sizing:border-box;font-size:10.5px;font-weight:700;padding:4px 9px;border-radius:999px;white-space:nowrap;}
.badge-verified{color:#2C5C34;background:#E5EFE7;}
.badge-imported{color:#28736B;background:#E3F1EF;}
.badge-new{color:#6E4812;background:#F5E4C6;}

/* Pagination */
.page-btn{padding:9px 18px;border-radius:999px;border:1.5px solid var(--ink);background:var(--ink);color:#fff;font-size:12.5px;font-weight:700;font-family:'Inter',sans-serif;cursor:pointer;}
.page-btn:disabled{border-color:var(--paper-line);background:none;color:var(--ink-soft);cursor:default;opacity:.55;}
.page-info{font-size:12.5px;color:var(--ink-soft);font-weight:600;}

/* Hero CTA: a button, not a banner — cap its width */
.hero-left .btn-primary{align-self:flex-start;width:auto;padding-left:34px;padding-right:34px;}

/* ---- Dog photo upload (account page) ---- */
.dog-photo-circle{
  width:72px;height:72px;border-radius:50%;border:2px solid var(--paper-line);
  overflow:hidden;background:var(--sage-dim);display:flex;align-items:center;justify-content:center;
  font-size:28px;flex-shrink:0;position:relative;
}
.dog-photo-circle img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.dog-photo-upload-btn{
  display:inline-flex;align-items:center;gap:7px;
  padding:9px 16px;border-radius:10px;
  border:1.5px solid var(--paper-line);background:var(--card);
  font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;font-family:'Inter',sans-serif;
  transition:border-color .15s,color .15s;
}
.dog-photo-upload-btn:hover{border-color:var(--accent);color:var(--accent);}
.dog-photo-remove-btn{
  display:block;margin-top:8px;background:none;border:none;padding:0;
  font-size:12px;color:var(--ink-soft);cursor:pointer;
  font-family:'Inter',sans-serif;text-decoration:underline;
}
.dog-photo-remove-btn:hover{color:var(--ink);}

/* ---- Dog photo bubble (returning homepage) ---- */
.dog-photo-bubble{display:flex;align-items:center;flex-shrink:0;}
.dog-bubble-photo{
  position:relative;width:68px;height:68px;border-radius:50%;
  border:3px solid #fff;box-shadow:0 4px 16px rgba(0,0,0,.18);
  overflow:hidden;background:var(--paper-line);
  display:flex;align-items:center;justify-content:center;
}
.dog-bubble-fallback{font-size:28px;line-height:1;pointer-events:none;}
#dogBubbleImg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.companion-greeting{margin-bottom:2px;}
.dog-speech-cloud{
  position:relative;display:block;background:#fff;
  border:1.5px solid var(--paper-line);border-radius:22px;
  padding:20px 30px;font-size:clamp(23px,3vw,32px);line-height:1.3;margin:0;
  box-shadow:0 8px 22px -16px rgba(46,64,52,.35);
}
.dog-speech-cloud::before{
  content:'';position:absolute;left:-8px;top:32px;
  transform:rotate(45deg);
  width:14px;height:14px;background:#fff;
  border-left:1.5px solid var(--paper-line);
  border-bottom:1.5px solid var(--paper-line);
}
@media (max-width:520px){
  .dog-bubble-photo{width:52px;height:52px;}
  .dog-speech-cloud{font-size:19px;padding:12px 18px;}
}

/* ---- Adjust-for-today toggle button ---- */
.adjust-toggle-btn{
  display:inline-flex;align-items:center;gap:7px;
  padding:10px 20px;border-radius:10px;
  background:var(--ink);color:#fff;border:none;
  font-size:13px;font-weight:700;cursor:pointer;font-family:'Inter',sans-serif;
  transition:background .15s;
  white-space:nowrap;
}
.adjust-toggle-btn:hover{background:var(--accent);}
.adjust-toggle-btn[hidden]{display:none;}

/* ---- Adjust panel (prominent, above area filter) ---- */
.adjust-panel{
  background:#fff;border:2px solid var(--ink);border-radius:14px;
  padding:20px 22px;margin-bottom:18px;
  box-shadow:0 4px 18px rgba(46,64,52,.10);
}
.adj-filter-label{
  font-size:11px;font-weight:700;color:var(--ink);
  text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px;
}

/* ---- Health conditions dropdown (account page) ---- */
.cond-box{margin-top:6px;border:1.5px solid var(--paper-line);border-radius:10px;background:var(--bg);}
.cond-box summary{list-style:none;cursor:pointer;padding:10px 12px;font-size:14px;font-weight:400;color:var(--ink);display:flex;justify-content:space-between;align-items:center;}
.cond-box summary::-webkit-details-marker{display:none;}
.cond-box summary::after{content:'▾';color:var(--ink-soft);font-size:12px;margin-left:8px;}
.cond-box[open] summary{border-bottom:1.5px solid var(--paper-line);}
.cond-box[open] summary::after{content:'▴';}
.cond-list{padding:6px 12px 10px;display:flex;flex-direction:column;gap:2px;}
.cond-list label{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;font-weight:400;color:var(--ink);padding:7px 2px;cursor:pointer;line-height:1.4;}
.cond-list input[type=checkbox]{width:auto;margin:2px 0 0;flex:none;accent-color:var(--accent);}

/* ---- Safety guide: accordions + icons ---- */
.guide-acc{border:1.5px solid var(--paper-line);border-radius:16px;background:#fff;margin-bottom:18px;overflow:hidden;}
.guide-acc>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:16px 20px;font-family:'Bricolage Grotesque',sans-serif;font-size:19px;font-weight:700;color:var(--ink);}
.guide-acc>summary::-webkit-details-marker{display:none;}
.guide-acc>summary::after{content:'▾';margin-left:auto;color:var(--ink-soft);font-size:14px;transition:transform .15s;}
.guide-acc[open]>summary::after{transform:rotate(180deg);}
.guide-acc[open]>summary{border-bottom:1.5px solid var(--paper-line);}
.guide-acc>summary:hover{background:var(--bg);}
.guide-acc-body{padding:6px 20px 14px;}
.guide-acc-body .guide-section{border:none;box-shadow:none;padding:14px 0;margin:0;border-bottom:1px dashed var(--paper-line);border-radius:0;background:none;}
.guide-acc-body .guide-section:last-child{border-bottom:none;}
.gs-h{display:flex;align-items:center;gap:10px;}
.gs-h .gs-i{flex:none;}
.gs-h3{display:flex;align-items:center;gap:8px;font-size:15px;margin:18px 0 8px;}
.gs-h3 .gs-i{flex:none;}
.sign-strip{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 14px;}
.sign-chip{display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--paper-line);border-radius:999px;padding:6px 13px 6px 9px;font-size:12.5px;font-weight:600;color:var(--ink);background:var(--bg);}
.sign-chip .gs-i{flex:none;}
.layer-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:4px 0 16px;}
.layer-card{display:flex;align-items:flex-start;gap:10px;border:1.5px solid var(--paper-line);border-radius:12px;padding:12px 14px;background:var(--bg);}
.layer-card .gs-i{flex:none;margin-top:1px;}
.layer-card b{display:block;font-size:13.5px;color:var(--ink);}
.layer-card span{display:block;font-size:12.5px;color:var(--ink-soft);line-height:1.45;margin-top:2px;}
@media (max-width:560px){
  .layer-cards{grid-template-columns:1fr;}
  .guide-acc>summary{font-size:17px;padding:14px 16px;}
  .guide-acc-body{padding:4px 16px 12px;}
}

/* ---- Match-first trail cards (logged-in homepage) ---- */
.match-col{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:72px;border-left:1px dashed var(--paper-line);padding-left:14px;}
.match-num{font-size:22px;font-weight:800;line-height:1;font-family:'Inter',sans-serif;}
.match-lbl{font-size:10.5px;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;}
.match-est{font-size:10px;color:var(--ink-soft);font-style:italic;}
@media (max-width:640px){ .match-col{min-width:60px;padding-left:10px;} .match-num{font-size:19px;} }

/* ---- Trail detail redesign: dark hero, chips, split grid, itinerary ---- */
.trail-hero-dark{background:var(--ink);border-radius:16px;padding:20px 24px;color:#fff;}
.th-match{font-size:14.5px;font-weight:700;color:#9FE1CB;white-space:nowrap;}
.th-facts{display:flex;gap:22px;margin-top:14px;flex-wrap:wrap;}
.th-facts .f b{display:block;font-size:15px;font-weight:700;color:#fff;font-family:'Inter',sans-serif;}
.th-facts .f span{font-size:10px;color:#C9D4CB;text-transform:uppercase;letter-spacing:.05em;}
.th-facts .f.safe b{color:#9FE1CB;}
.trail-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.trail-chip{background:var(--card);border:1px solid var(--paper-line);border-radius:999px;padding:6px 14px;font-size:12px;font-weight:600;color:var(--ink);}
.trail-chip--sage{background:var(--sage-dim);border-color:var(--sage-dim);}
.trail-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:16px;align-items:start;}
.trail-experience-grid--itinerary-only{grid-template-columns:minmax(0,1fr);}
@media (max-width:860px){ .trail-grid{grid-template-columns:1fr;} }
.trail-map-box{position:relative;height:560px;border-radius:16px;border:1px solid var(--paper-line);overflow:hidden;background:var(--sage-dim);}
@media (max-width:640px){ .trail-map-box{height:62vh;} }
.map-expand-btn{position:absolute;top:10px;right:56px;z-index:7;width:36px;height:36px;border-radius:8px;background:#fff;border:1px solid var(--paper-line);font-size:17px;color:var(--ink);cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.15);line-height:1;}
.trail-map-box.map-fs{position:fixed;inset:0;z-index:300;height:100vh !important;height:100dvh !important;border-radius:0;border:none;}
body.map-fs-open{overflow:hidden;}
.map-key{margin-top:8px;}
.map-key>summary{list-style:none;cursor:pointer;font-size:12px;font-weight:700;color:var(--ink-soft);display:inline-flex;align-items:center;gap:6px;}
.map-key>summary::-webkit-details-marker{display:none;}
.map-key>summary::after{content:'▾';font-size:10px;}
.map-key[open]>summary::after{content:'▴';}
.itin-card{background:var(--card);border:1px solid var(--paper-line);border-radius:16px;padding:18px 20px;}
.itin-list{display:flex;flex-direction:column;gap:12px;}
.itin-row{display:flex;gap:11px;align-items:flex-start;font-size:13px;line-height:1.55;color:var(--ink);}
.itin-row svg{flex:none;margin-top:1px;}
.itin-row a{color:var(--accent);font-size:12px;}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:760px){ .about-grid{grid-template-columns:1fr;} }
.trail-sources{margin:16px 0 0;font-size:11px;color:var(--ink-soft);}
.trail-review-meta{margin:12px 0 0;font-size:12px;font-weight:700;color:var(--ink);}
.trail-source-disclosure{margin-top:12px;font-size:12px;color:var(--ink-soft);}
.trail-source-disclosure>summary{cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--forest);}
.trail-source-disclosure>summary::after{content:'▾';font-size:10px;}
.trail-source-disclosure[open]>summary::after{content:'▴';}
.trail-source-disclosure>summary::-webkit-details-marker{display:none;}
.trail-source-disclosure>#trailCoords{margin:12px 0 0;}
.trail-source-links{margin-top:10px;font-size:12px;color:var(--ink-soft);}
.trail-source-heading{margin:0 0 6px;font-weight:700;color:var(--ink);}
.trail-source-links ul{margin:0;padding-left:18px;display:grid;gap:7px;}
.trail-source-links a{color:var(--forest);text-decoration:underline;text-underline-offset:2px;}
.trail-source-links small{display:block;margin-top:1px;color:var(--ink-soft);}

/* ---- Trail map legend chips ---- */
.legend-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.legend-chips .sign-chip{padding:5px 12px 5px 9px;font-weight:600;font-size:12px;}

/* ---- Map popups: soft edges + card-style match ---- */
.maplibregl-popup-content{border-radius:14px !important;padding:14px 16px !important;}
.popup-match{display:flex;align-items:baseline;gap:6px;margin:6px 0 8px;}
.locate-btn{background:none;border:1.5px solid var(--paper-line);border-radius:999px;padding:5px 13px;font-size:11.5px;font-weight:700;color:var(--ink-soft);cursor:pointer;font-family:'Inter',sans-serif;}
.locate-btn:hover{border-color:var(--accent);color:var(--accent);}

/* ============================================================
   DOG PROFILE WIZARD (dog-wizard.js) — guest-first onboarding
============================================================= */
.dw-overlay{position:fixed;inset:0;background:rgba(46,64,52,.45);align-items:center;justify-content:center;padding:20px;z-index:1000;}
.dw-overlay[hidden]{display:none !important;}
.dw-overlay:not([hidden]){display:flex;}
.dw-modal{position:relative;background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow);width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;padding:26px 28px 22px;}
.dw-close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:24px;line-height:1;color:var(--ink-soft);cursor:pointer;padding:4px;}
.dw-close:hover{color:var(--ink);}
.dw-title{font-size:20px;padding-right:28px;}
.dw-subtitle{font-size:13px;color:var(--ink-soft);margin:6px 0 0;line-height:1.5;}
.dw-stepper{display:flex;align-items:center;justify-content:center;gap:6px;margin:18px 0 4px;flex-wrap:wrap;}
.dw-stepper[hidden]{display:none;}
.dw-step{display:flex;align-items:center;gap:7px;}
.dw-step-dot{width:26px;height:26px;border-radius:50%;background:var(--sage-dim);color:var(--ink-soft);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none;}
.dw-step.active .dw-step-dot{background:var(--accent);color:#fff;}
.dw-step.done .dw-step-dot{background:var(--success);color:#fff;}
.dw-step-label{font-size:11.5px;font-weight:600;color:var(--ink-soft);}
.dw-step.active .dw-step-label{color:var(--ink);}
.dw-connector{width:18px;height:1.5px;background:var(--paper-line);flex:none;}
.dw-body{overflow-y:auto;padding:16px 2px 4px;flex:1;}
.dw-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:16px;border-top:1px solid var(--paper-line);margin-top:8px;}
.dw-footer[hidden]{display:none;}
.dw-btn-primary{font-family:'Inter',sans-serif;font-size:13.5px;font-weight:700;padding:11px 24px;border-radius:var(--radius-pill);border:none;background:var(--accent);color:#fff;cursor:pointer;}
.dw-btn-primary:hover{background:var(--accent-hover);}
.dw-btn-primary:disabled{opacity:.6;cursor:default;}
.dw-btn-ghost{font-family:'Inter',sans-serif;font-size:13px;font-weight:600;padding:10px 18px;border-radius:var(--radius-pill);border:1.5px solid var(--paper-line);background:transparent;color:var(--ink-soft);cursor:pointer;}
.dw-btn-ghost:hover{border-color:var(--ink-soft);color:var(--ink);}
.dw-field-group{margin-bottom:18px;}
.dw-label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:6px;}
.dw-required{color:#9C3A25;}
.dw-optional{font-weight:400;color:var(--ink-soft);font-size:12px;}
.dw-input,.dw-select,.dw-textarea{display:block;width:100%;padding:11px 13px;border:1.5px solid var(--paper-line);border-radius:10px;font-family:'Inter',sans-serif;font-size:14px;color:var(--ink);background:var(--bg);}
.dw-input:focus,.dw-select:focus,.dw-textarea:focus{outline:none;border-color:var(--accent);}
.dw-textarea{resize:vertical;}
.dw-option-group{display:flex;flex-direction:column;gap:8px;}
.dw-option{font-family:'Inter',sans-serif;font-size:13px;font-weight:600;text-align:left;padding:11px 15px;border-radius:12px;border:1.5px solid var(--paper-line);background:var(--card);color:var(--ink-soft);cursor:pointer;}
.dw-option:hover{border-color:var(--accent);}
.dw-option.selected{background:var(--sage-dim);border-color:var(--success);color:var(--ink);}
.dw-field-error{display:block;font-size:12px;font-weight:600;color:#9C3A25;margin-top:6px;}
.dw-field-error[hidden]{display:none;}
.dw-photo-picker{display:flex;align-items:center;gap:14px;}
.dw-photo-preview{width:72px;height:72px;flex:none;border-radius:50%;border:1.5px dashed var(--paper-line);background:var(--sage-dim);background-size:cover;background-position:center;position:relative;}
.dw-photo-preview:not(.has-photo)::after{content:'🐾';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:24px;opacity:.55;}
.dw-photo-preview.has-photo{border-style:solid;border-color:var(--accent);}
.dw-photo-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.dw-photo-actions .dw-btn-ghost{padding:8px 14px;}
.dw-photo-remove{border:0;background:none;color:#9C3A25;font:600 12px 'Inter',sans-serif;cursor:pointer;padding:6px 2px;}
.dw-photo-remove[hidden]{display:none;}
.dw-photo-help{width:100%;font-size:11.5px;color:var(--ink-soft);line-height:1.4;}
.dw-step-hint{font-size:12.5px;color:var(--ink-soft);margin:0 0 16px;line-height:1.5;}
.dw-cond-list{display:flex;flex-direction:column;gap:9px;}
.dw-cond-item{display:flex;gap:9px;align-items:flex-start;font-size:13px;font-weight:400;color:var(--ink);line-height:1.45;cursor:pointer;}
.dw-cond-item input{margin-top:2px;accent-color:var(--accent);}
.dw-review-card{background:var(--bg);border:1px solid var(--paper-line);border-radius:var(--radius-md);padding:16px 18px;}
.dw-review-section{margin-bottom:14px;}
.dw-review-section:last-child{margin-bottom:0;}
.dw-review-title{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:8px;}
.dw-review-row{display:flex;justify-content:space-between;gap:14px;font-size:13.5px;padding:3px 0;}
.dw-review-key{color:var(--ink-soft);flex:none;}
.dw-review-val{color:var(--ink);font-weight:600;text-align:right;}
.dw-info-panel{text-align:center;padding:14px 6px;}
.dw-info-icon{font-size:30px;margin-bottom:10px;}
.dw-info-text{font-size:13.5px;color:var(--ink-soft);line-height:1.55;margin:0 0 18px;}
.dw-info-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.dw-keep-link{background:none;border:none;font-family:'Inter',sans-serif;font-size:12.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;margin-top:14px;text-decoration:underline;}
.dw-keep-link:hover{color:var(--ink);}
.dw-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;font-size:13px;font-weight:600;padding:12px 22px;border-radius:var(--radius-pill);box-shadow:var(--shadow);z-index:1100;opacity:0;transition:opacity .25s ease;}
.dw-toast[hidden]{display:none;}
.dw-toast--in{opacity:1;}
/* Payoff view — the guest's reward before the account ask */
.dw-payoff{text-align:center;padding:6px 2px;}
.dw-payoff-list{display:flex;flex-direction:column;gap:8px;margin:4px 0 20px;text-align:left;}
.dw-payoff-row{display:flex;align-items:baseline;gap:10px;background:var(--bg);border:1px solid var(--paper-line);border-radius:var(--radius-md);padding:11px 14px;}
.dw-payoff-name{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:14px;color:var(--ink);flex:1;min-width:0;}
.dw-payoff-meta{font-size:11.5px;color:var(--ink-soft);flex:none;}
.dw-payoff-score{font-size:14.5px;font-weight:700;color:var(--success);flex:none;}
.dw-payoff-cta{width:100%;padding:13px 20px;}
.dw-payoff-hint{font-size:12px;color:var(--ink-soft);margin:10px 0 0;line-height:1.5;}

/* ---- Guest teaser: honesty label under the example score ---- */
.teaser-card .match-note{display:block;font-size:9.5px;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;margin-top:1px;text-align:right;}

/* ---- Skeleton loading states (shimmer bars, replaced by real content) ---- */
.skeleton{display:inline-block;border-radius:6px;background:linear-gradient(90deg,var(--sage-dim) 25%,#EFEBDD 50%,var(--sage-dim) 75%);background-size:200% 100%;animation:dp-shimmer 1.2s linear infinite;vertical-align:middle;}
.skeleton--light{background:linear-gradient(90deg,rgba(255,255,255,.18) 25%,rgba(255,255,255,.32) 50%,rgba(255,255,255,.18) 75%);background-size:200% 100%;}
@keyframes dp-shimmer{to{background-position:-200% 0;}}
@media (prefers-reduced-motion: reduce){ .skeleton{animation:none;} }
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto!important;}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    transition-delay:0ms!important;
  }
}


/* ---- Trail page blueprint (answer strip, docked map key, tips card,
       nearby trails, decision bar) --------------------------------- */
.verified-seal{display:inline-flex;align-items:center;gap:6px;background:var(--sage-dim);color:#2C5C34;font-weight:700;border-radius:999px;padding:5px 13px;font-size:11.5px;white-space:nowrap;}
.qa-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px;margin-top:14px;}
.qa-card{background:var(--card);border:1px solid var(--paper-line);border-radius:14px;padding:13px 15px;display:flex;gap:11px;align-items:flex-start;}
.qa-ico{width:26px;height:26px;flex:none;overflow:visible;}
.qa-card b{font-size:13px;font-weight:700;display:block;margin:0 0 3px;color:var(--ink);}
.qa-sub{font-size:11.5px;color:var(--ink-soft);line-height:1.5;display:block;}
.qa-sub a{color:var(--accent);font-weight:700;text-decoration:none;}
.qa-strip[hidden]{display:none !important;}

.trail-map-box--wide{height:480px;}
@media (max-width:640px){ .trail-map-box--wide{height:62vh;} }

.map-key--dock{position:absolute;bottom:12px;left:12px;z-index:5;background:#fff;border:1px solid var(--paper-line);border-radius:12px;padding:8px 13px;max-width:min(320px,80%);margin:0;box-shadow:0 1px 6px rgba(0,0,0,.08);}
.map-key--dock>summary{font-size:11.5px;}
.legend-chips--aligned{display:grid;grid-template-columns:1fr;gap:6px;margin-top:8px;}
.legend-chips--aligned .sign-chip{display:grid;grid-template-columns:22px 1fr;align-items:center;gap:8px;background:none;border:none;padding:0;font-size:11.5px;color:var(--ink);}
.legend-chips--aligned .sign-chip > :first-child{justify-self:center;}

.about-grid--bp{grid-template-columns:1.25fr 1fr;}
@media (max-width:760px){ .about-grid--bp{grid-template-columns:1fr;} }
.dogtips-card{border-top:4px solid #3F8F77;border-radius:0 0 16px 16px;}
.dogtips-note{font-size:10.5px;color:var(--ink-soft);margin:10px 0 0;}

.near-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:11px;}
.near-card{border:1px solid var(--paper-line);border-radius:12px;padding:12px 14px;background:var(--card);text-decoration:none;color:inherit;display:block;}
.near-card:hover{border-color:var(--ink);}
.near-card b{font-size:13.5px;display:block;margin-bottom:5px;font-family:'Bricolage Grotesque',sans-serif;}
.near-card span{font-size:11.5px;color:var(--ink-soft);}

/* ---- Trail detail: decision-first customer flow ---------------- */
.trail-decision-hero{position:relative;isolation:isolate;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;padding:34px 38px;background-size:cover;background-position:center;box-shadow:0 18px 42px rgba(31,48,35,.13);}
.trail-decision-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(23,42,28,.94) 0%,rgba(23,42,28,.77) 52%,rgba(23,42,28,.28) 100%);}
.trail-hero-content{max-width:760px;}
.trail-hero-eyebrow,.section-kicker{display:block;margin:0 0 8px;font:700 10px/1.2 'Inter',sans-serif;letter-spacing:.13em;color:#9FE1CB;}
.trail-decision-hero .verified-seal{margin:0 0 14px;width:max-content;}
.hero-rating{display:flex;align-items:center;gap:6px;margin-top:7px;color:#F7C96B;font:700 15px/1 'Inter',sans-serif;white-space:nowrap;}.hero-rating span{font:600 11px/1 'Inter',sans-serif;color:#edf4ee;}
.trail-hero-verdict{max-width:600px;margin:13px 0 0;color:#edf4ee;font-size:15px;line-height:1.55;}
.trail-section-nav{position:sticky;top:0;z-index:40;display:flex;gap:6px;margin:14px 0 0;padding:7px;background:rgba(255,255,255,.94);border:1px solid var(--paper-line);border-radius:14px;box-shadow:0 8px 25px rgba(31,48,35,.07);backdrop-filter:blur(10px);overflow:auto;}
.trail-section-nav a,.trail-section-nav button{flex:1;min-width:max-content;padding:9px 16px;border-radius:9px;color:var(--ink-soft);font-size:12px;font-weight:700;text-align:center;text-decoration:none;background:none;border:none;cursor:pointer;font-family:'Inter',sans-serif;}
.trail-section-nav a:hover,.trail-section-nav a.active,.trail-section-nav button:hover,.trail-section-nav button.active{background:var(--sage-dim);color:var(--ink);}

/* ---- Trail detail: tabbed panels + sticky conditions sidebar ---- */
.trail-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px;align-items:start;margin-top:6px;}
.trail-side{position:sticky;top:70px;display:flex;flex-direction:column;gap:14px;}
.trail-side-card{background:var(--card);border:1px solid var(--paper-line);border-radius:16px;padding:15px 16px;}
.trail-side-label{font:700 10.5px/1.2 'Inter',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:9px;}
.dog-safety-rows{display:flex;flex-direction:column;gap:10px;}
.safety-row{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--paper-line);border-radius:12px;padding:12px 14px;font-size:13px;}
.safety-row b{font-size:13px;}
.safety-row small{display:block;color:var(--ink-soft);font-size:12px;line-height:1.5;margin-top:2px;}
.safety-row-mark{flex:none;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;}
.safety-row.is-good .safety-row-mark{background:var(--success-dim);color:#2C5C34;}
.safety-row.is-caution .safety-row-mark{background:#F5E4C6;color:#8A5A16;}
.safety-row.is-good .safety-row-state{color:#2C5C34;font-weight:700;}
.safety-row.is-caution .safety-row-state{color:#8A5A16;font-weight:700;}
.fc-strip{display:flex;align-items:flex-end;gap:2px;height:32px;}
.fc-strip span{flex:1;border-radius:2px 2px 0 0;min-width:3px;}
.fc-strip-label{display:flex;justify-content:space-between;font-size:10px;color:var(--ink-soft);margin-top:4px;}
.fc-day{display:flex;align-items:baseline;gap:8px;padding:7px 0;border-top:1px dashed var(--paper-line);font-size:12px;flex-wrap:wrap;}
.fc-day:first-child{border-top:none;}
.fc-day b{width:44px;flex:none;font-size:12px;}
.fc-day span{color:var(--ink);}
.fc-day small{color:var(--ink-soft);font-size:11px;margin-left:auto;}
#sideForecastToday{margin-bottom:10px;}
@media (max-width:900px){
  .trail-detail-grid{grid-template-columns:1fr;}
  .trail-side{position:static;order:-1;flex-direction:row;flex-wrap:wrap;}
  .trail-side-card{flex:1 1 260px;}
}
.trail-overview-panel,.dog-safety-panel{margin-top:14px;padding:20px 22px;background:var(--card);border:1px solid var(--paper-line);border-radius:16px;}
.trail-overview-heading,.dog-safety-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px;}
.trail-overview-heading h2,.dog-safety-head h2,.trail-plan-heading h2{font-size:20px;margin:0;}
.trail-overview-heading p,.trail-plan-heading p{margin:0;color:var(--ink-soft);font-size:12px;}
.trail-overview-panel .section-kicker,.dog-safety-panel .section-kicker,.trail-plan-heading .section-kicker{color:var(--accent);}
.decision-signals{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.decision-signal{min-width:0;padding:14px;border-radius:12px;background:var(--bg);border:1px solid transparent;}
.decision-signal.good{background:#edf6e9;border-color:#d8e8d2;}
.decision-signal.watch{background:#fff5df;border-color:#f3dfb5;}
.decision-signal .signal-icon{font-size:19px;margin-bottom:9px;display:block;}
.decision-signal b{display:block;font-size:12.5px;margin-bottom:4px;}
.decision-signal span:last-child{display:block;color:var(--ink-soft);font-size:11px;line-height:1.4;}
.dog-safety-panel{background:linear-gradient(135deg,#f7faf1,#fffdf7);border-color:#dce5d1;}
.safety-verdict{padding:6px 11px;border-radius:999px;background:#dcefd7;color:#24562c;font-size:11px;font-weight:800;white-space:nowrap;}
.dog-safety-signals{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.dog-safety-signal{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:rgba(255,255,255,.75);border:1px solid #e4eadc;border-radius:10px;font-size:11.5px;}
.dog-safety-signal b{font-size:10.5px;color:var(--ink-soft);font-weight:600;}
.dog-safety-signal span{font-weight:800;text-align:right;}
.dog-safety-why{margin:12px 0 0;padding-top:12px;border-top:1px solid #e1e7d9;color:var(--ink);font-size:12px;line-height:1.5;}
.trail-plan-heading{padding-top:24px;scroll-margin-top:70px;}
.trail-plan-heading p{margin-top:5px;}
#trailOverview,#trailMapBox,#trailReportsWrap{scroll-margin-top:70px;}
@media (max-width:760px){
  .trail-decision-hero{min-height:360px;padding:26px 22px;background-position:65% center;}
  .trail-decision-hero::before{background:linear-gradient(0deg,rgba(23,42,28,.96) 0%,rgba(23,42,28,.65) 72%,rgba(23,42,28,.28) 100%);}
  .decision-signals,.dog-safety-signals{grid-template-columns:repeat(2,1fr);}
  .trail-overview-heading,.dog-safety-head{align-items:flex-start;flex-direction:column;gap:8px;}
}
@media (max-width:420px){.decision-signals{grid-template-columns:1fr 1fr}.trail-section-nav a{padding:9px 12px}.trail-overview-panel,.dog-safety-panel{padding:17px}}

/* ---- Personal trail match and compact planning flow ------------- */
.personal-match{margin-top:14px;padding:20px 22px;background:var(--card);border:1px solid var(--paper-line);border-radius:16px;}
.personal-match__top{display:flex;align-items:center;gap:16px;}
.match-dog-avatar{width:68px;height:68px;flex:none;border-radius:50%;background:var(--sage-dim);border:2px solid var(--success);display:grid;place-items:center;overflow:hidden;}
.match-dog-avatar img{width:100%;height:100%;object-fit:cover;}
.match-dog-avatar svg{width:42px;height:42px;fill:#6B7A6E;}
.personal-match__copy{min-width:0;flex:1;}
.personal-match__copy .section-kicker{color:var(--success);margin-bottom:5px;}
.personal-match__copy h2{font-size:21px;margin:0 0 4px;}
.personal-match__copy p{margin:0;color:var(--ink-soft);font-size:13px;line-height:1.45;}
.personal-score{display:flex;flex-direction:column;align-items:center;white-space:nowrap;color:var(--success);}
.personal-score b{font:700 28px/1 'Inter',sans-serif;}
.personal-score span{font-size:10.5px;color:var(--ink-soft);}
.personal-actions{display:flex;flex-direction:column;gap:7px;min-width:162px;}
.start-navigation-btn,.directions-btn,.save-trail-btn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:38px;padding:9px 12px;border-radius:9px;font:700 12px 'Inter',sans-serif;text-decoration:none;cursor:pointer;}
.start-navigation-btn{border:1px solid var(--success);background:var(--success);color:#fff;}
.start-navigation-btn:hover{background:#3A6145;color:#fff;}
.start-hike-icon{width:16px;height:16px;fill:currentColor;flex:none;}.directions-btn{border:1px solid var(--accent);background:var(--accent);color:#fff;}.directions-btn:hover{background:#2D6C84;color:#fff;}
.save-trail-btn{border:1px solid var(--paper-line);background:var(--card);color:var(--ink);}
.save-trail-btn.saved{border-color:var(--success);color:var(--success);background:var(--sage-dim);}
.match-weekly{display:inline-flex;margin-top:9px;padding:5px 10px;font-size:10.5px;color:var(--success);}
.match-signals{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--paper-line);}
.match-why{margin-top:10px;padding:19px 22px;background:var(--card);border:1px solid var(--paper-line);border-radius:16px;}
.match-why .section-kicker{margin-bottom:5px;color:var(--success);}
.match-why h2{font-size:18px;margin:0;}
.match-why .match-signals{margin-top:15px;}
.match-signal{display:flex;align-items:center;gap:9px;min-width:0;}
.match-signal svg{width:25px;height:25px;flex:none;overflow:visible;}
.match-signal span{display:flex;min-width:0;flex-direction:column;}
.match-signal b{font-size:12.5px;}
.match-signal small{font-size:11px;color:var(--ink-soft);line-height:1.35;}
.match-advice{display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding:12px 14px;border-radius:10px;background:#F7EEE0;color:var(--ink);font-size:12px;line-height:1.45;}
.match-advice svg{width:25px;height:25px;flex:none;}
.match-advice b{display:block;margin-bottom:4px;}.match-advice ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px;margin:0;padding-left:16px;}.match-advice li{padding-left:1px;}
.trail-essentials{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:10px;margin-bottom:10px;}
.trail-arrival{margin:16px 0 10px;}.trail-arrival-card{display:flex;align-items:center;gap:11px;max-width:560px;padding:13px 15px;border:1px solid var(--paper-line);border-radius:12px;background:var(--card);}.trail-arrival-card svg{width:26px;height:26px;flex:none;overflow:visible;}.trail-arrival-card span{display:flex;min-width:0;flex-direction:column;}.trail-arrival-card b{font-size:13px;}.trail-arrival-card small{margin-top:2px;color:var(--ink-soft);font-size:11.5px;line-height:1.35;}.trail-arrival-card a{margin-left:auto;color:var(--accent);font-size:11.5px;font-weight:700;white-space:nowrap;text-decoration:none;}
.trail-essential{display:flex;align-items:center;gap:9px;min-width:0;padding:12px 13px;border:1px solid var(--paper-line);border-radius:11px;background:var(--card);}
.trail-essential svg{width:25px;height:25px;flex:none;overflow:visible;}
.trail-essential span{display:flex;min-width:0;flex-direction:column;}
.trail-essential b{font-size:12.5px;}.trail-essential small{font-size:11px;color:var(--ink-soft);line-height:1.35;}
.trail-essential a{margin-left:auto;color:var(--accent);font-size:10.5px;font-weight:700;white-space:nowrap;text-decoration:none;}
.map-expand-btn{display:flex;align-items:center;gap:6px;width:auto;padding:0 11px;font:700 11px 'Inter',sans-serif;}
.trail-about-card{padding:23px;background:var(--card);border:1px solid var(--paper-line);border-radius:16px;}
.trail-about-section{margin-top:24px;}
.trail-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px;}
.trail-section-heading .section-kicker{color:var(--accent);margin-bottom:5px;}
.trail-section-heading h2{margin:0;font-size:22px;}
.about-verified{padding:6px 10px;border-radius:999px;background:var(--sage-dim);color:var(--success);font-size:10.5px;font-weight:700;white-space:nowrap;}
.trail-about-card__intro{max-width:none;margin:10px 0 18px;color:var(--ink-soft);font-size:14px;line-height:1.6;}
.about-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.about-fact{display:flex;gap:9px;padding-top:12px;border-top:3px solid var(--sage-dim);}
.about-fact svg{width:25px;height:25px;flex:none;overflow:visible;}.about-fact span{display:flex;flex-direction:column;}
.about-fact b{font-size:12px;}.about-fact small{font-size:11px;color:var(--ink-soft);line-height:1.4;margin-top:2px;}
.trail-data-details{margin-top:16px;color:var(--accent);font-size:12px;font-weight:700;}.trail-data-details summary{cursor:pointer;}.trail-data-details p{margin:8px 0 0;color:var(--ink-soft);font:11px/1.5 'Inter',sans-serif;}
.community-section{scroll-margin-top:70px;}
.community-card{padding:18px 20px;border:1px solid var(--paper-line);border-radius:16px;background:var(--card);}
.community-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;}
.community-card__top p{max-width:620px;margin:0;color:var(--ink-soft);font-size:12.5px;line-height:1.5;}
.community-actions{display:flex;gap:8px;flex:none;}
.add-photo-btn,.add-review-btn,.add-report-btn{padding:8px 12px;border-radius:10px;font:700 11.5px 'Inter',sans-serif;cursor:pointer;white-space:nowrap;}
.add-photo-btn,.add-review-btn{border:1px solid var(--paper-line);background:var(--card);color:var(--ink);}.add-photo-btn{color:var(--accent);}.add-report-btn{border:1px solid var(--ink);background:var(--ink);color:#fff;}
.community-rating{display:flex;align-items:baseline;gap:7px;white-space:nowrap;color:#BA7517;}.community-rating b{font:700 18px/1 'Inter',sans-serif;}.community-rating span{font-size:11px;color:var(--ink-soft);}
.trail-reviews-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;}
.trail-photos-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px;}.community-photo{overflow:hidden;border-radius:11px;border:1px solid var(--paper-line);background:var(--bg);}.community-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;}.community-photo figcaption{padding:8px 9px;color:var(--ink-soft);font-size:10.5px;line-height:1.35;}
.community-review{padding:13px 14px;border:1px solid var(--paper-line);border-radius:11px;background:var(--bg);}
.community-review__rating{color:#BA7517;font-size:13px;letter-spacing:.04em;}.community-review p{margin:7px 0 0;font-size:12px;line-height:1.5;color:var(--ink);}.community-review footer{display:block;margin-top:7px;color:var(--ink-soft);font-size:10.5px;}.community-review footer span{padding:0 3px;}
.community-reports-label{margin:16px 0 8px;padding-top:14px;border-top:1px solid var(--paper-line);font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);}
.review-star-picker{display:flex;gap:4px;margin:14px 0 12px;}.review-star-picker button{border:0;background:none;padding:2px;color:#E8A93A;display:inline-grid;place-items:center;cursor:pointer;transition:transform .15s ease;}.review-star-picker button:hover,.review-star-picker button.is-selected{transform:translateY(-1px);}
.modal-close svg{display:block;margin:auto;}
@media (max-width:760px){.personal-match__top{align-items:flex-start;flex-wrap:wrap;}.personal-score{align-items:flex-start;}.personal-actions{width:100%;flex-direction:row;}.personal-actions>*{flex:1;}.match-signals,.about-facts{grid-template-columns:repeat(2,1fr);}.match-advice ul{grid-template-columns:1fr;}.trail-essentials{grid-template-columns:1fr;}.trail-arrival-card{align-items:flex-start;flex-wrap:wrap;}.trail-arrival-card a{margin-left:37px;}.trail-essential a{margin-left:0;margin-top:4px;}.trail-essential{flex-wrap:wrap;}.trail-section-heading,.community-card__top{align-items:flex-start;flex-direction:column;}.community-actions{width:100%;}.community-actions button{flex:1;}}
@media (max-width:420px){.match-dog-avatar{width:56px;height:56px;}.personal-match{padding:17px;}.match-signals,.about-facts{grid-template-columns:1fr;}.personal-actions{flex-direction:column;}.trail-section-nav{top:0;}}

/* Breed insight card — logged-in homepage */
.breed-insight-card{background:var(--card);border:1px solid var(--paper-line);border-radius:12px;padding:18px 20px;}
.breed-insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.breed-insight-signal{display:flex;gap:9px;min-width:0;}
.breed-insight-signal svg{width:24px;height:24px;flex:none;overflow:visible;}
.breed-insight-signal b{font-size:12.5px;color:var(--ink);}
.breed-insight-signal small{display:block;font-size:11px;color:var(--ink-soft);line-height:1.4;margin-top:2px;}
.breed-insight-foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--paper-line);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;}
.breed-insight-foot span{font-size:12px;color:var(--ink-soft);}
.breed-insight-foot a{font-size:12.5px;font-weight:700;color:var(--accent);text-decoration:none;white-space:nowrap;}
@media(max-width:700px){.breed-insight-grid{grid-template-columns:1fr;}}

/* ============================================================
   COMPANION LAYOUT — personalised trail-browse screen
   (logged-in homepage: dog profile + conditions + filters sidebar,
   map, sortable ranked list). Uses the site's own type pair
   (Bricolage Grotesque / Inter) and colour tokens throughout — this is a
   density/layout change, not a new visual language.
   ============================================================ */
.companion-wrap{max-width:1320px;margin:0 auto;padding:0 24px;}
.companion-grid{display:grid;grid-template-columns:296px 1fr;gap:28px;align-items:start;}
.companion-sidebar{position:sticky;top:88px;display:flex;flex-direction:column;gap:14px;}
.companion-card{background:var(--card);border:1px solid var(--paper-line);border-radius:16px;padding:18px;}
.companion-sidebar-mobile-head,.companion-mobile-tools,.companion-panel-backdrop{display:none;}

/* Dog profile card */
.companion-dog-head{display:flex;align-items:center;gap:13px;}
.companion-dog-avatar{width:66px;height:66px;border-radius:18px;flex:none;background:linear-gradient(135deg,var(--sage-dim),var(--success-dim));display:flex;align-items:center;justify-content:center;font-size:26px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);}
.companion-dog-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.companion-dog-name{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:19px;line-height:1.1;}
.companion-dog-meta{font-size:12px;color:var(--ink-soft);margin-top:4px;white-space:nowrap;}
.companion-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;}
.companion-chip{font-size:11px;font-weight:600;background:var(--success-dim);color:var(--success);padding:4px 10px;border-radius:8px;white-space:nowrap;}
.companion-edit-link{display:inline-flex;align-items:center;gap:5px;margin-top:14px;font-size:12.5px;font-weight:700;color:var(--accent);text-decoration:none;}
.companion-edit-link:hover{color:var(--accent-hover);}

/* Conditions / readiness card — honest substitute for live weather:
   ORMA has no weather feed, so this reflects the dog's actual
   heat-sensitivity profile and links to the real adjust-for-today tool
   rather than inventing a temperature. */
.companion-conditions{background:#F6ECDB;border:1px solid #E6D3B4;}
.companion-conditions .head{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.companion-conditions .label{font:700 10.5px/1.2 'Inter',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#8A5A26;}
.companion-heat-meter{display:flex;align-items:center;gap:9px;margin-top:12px;}
.companion-heat-meter .meter-label{font-size:12px;color:#6E5A3C;width:60px;flex:none;}
.companion-heat-meter .bars{flex:1;display:flex;gap:4px;}
.companion-heat-meter .bar{flex:1;height:7px;border-radius:4px;background:#E6D3B4;}
.companion-heat-meter .bar.on{background:#C98A3E;}
.companion-heat-meter .reading{font-size:11.5px;font-weight:600;color:#8A5A26;white-space:nowrap;}
.companion-conditions p{margin:12px 0 0;font-size:12.5px;line-height:1.5;color:#6E5A3C;}
.companion-conditions-cta{display:inline-block;margin-top:10px;font-size:12px;font-weight:700;color:#8A5A26;background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;font-family:'Inter',sans-serif;}
/* Quiet sidebar link to the adjust-for-today tool (design has no weather card) */
.companion-adjust-link{display:block;width:100%;text-align:left;margin-top:2px;padding:4px 6px;font:600 12px/1.4 'Inter',sans-serif;color:var(--ink-soft);background:none;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:3px;}
.companion-adjust-link:hover{color:var(--ink);}
/* Risk legend floats inside the map card, bottom right (per the design) */
.companion-map-key{position:absolute;left:88px;bottom:10px;z-index:7;height:34px;box-sizing:border-box;background:#fff;border:1px solid var(--paper-line);border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.15);font:700 12px 'Inter',sans-serif;color:var(--ink);}
.companion-map-key summary{height:32px;padding:0 14px;display:flex;align-items:center;cursor:pointer;list-style:none;}
.companion-map-key summary::-webkit-details-marker{display:none;}
.companion-map-legend{position:absolute;left:0;bottom:42px;width:max-content;max-width:min(330px,calc(100vw - 40px));display:flex;gap:9px;align-items:flex-start;flex-direction:column;background:rgba(255,255,255,.97);border:1px solid var(--paper-line);border-radius:12px;padding:10px 12px;font-size:11px;color:var(--ink);box-shadow:0 4px 14px rgba(0,0,0,.16);}
.companion-map-legend > span{white-space:nowrap;}
.prov-opt .count,.country-opt .count{font-weight:600;opacity:.65;font-size:11px;margin-left:3px;}

/* Filters card */
.companion-filter-label{font:700 10.5px/1.2 'Inter',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin:16px 0 9px;}
.companion-filter-label:first-child{margin-top:0;}
.companion-seg{display:flex;gap:6px;}
.companion-seg button{flex:1;font:600 12.5px 'Inter',sans-serif;padding:8px 8px;border-radius:10px;cursor:pointer;border:1px solid var(--paper-line);background:none;color:var(--ink);}
.companion-seg button.active{background:var(--success);border-color:var(--success);color:#fff;}
.companion-seg.is-dark button.active{background:var(--ink);border-color:var(--ink);color:#fff;}
.companion-valleys{display:flex;flex-wrap:wrap;gap:6px;}

/* Saved row */
.companion-saved{display:flex;align-items:center;justify-content:space-between;cursor:pointer;}
.companion-saved .txt{font-size:13.5px;color:var(--ink);font-weight:600;}
.companion-saved .count{font:700 13px 'Inter',sans-serif;background:var(--success-dim);color:var(--success);padding:3px 11px;border-radius:999px;}
.companion-saved.active .txt{color:var(--success);}

/* Main column */
.companion-kicker{font:700 11px/1.2 'Inter',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:6px;}
.companion-list-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:26px 0 14px;}
.companion-list-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:22px;}
.companion-list-sub{font-size:12.5px;color:var(--ink-soft);margin-top:3px;}
.companion-sort{display:flex;align-items:center;gap:8px;}
.companion-sort-label{font-size:12px;color:var(--ink-soft);}
.companion-sort-group{display:flex;gap:4px;background:var(--sage-dim);padding:4px;border-radius:11px;}
.companion-sort-group button{font:600 12px 'Inter',sans-serif;padding:6px 12px;border-radius:8px;border:none;background:none;color:#5B6B5E;cursor:pointer;}
.companion-sort-group button.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.1);}

/* Ranked trail cards — reuse .trail-card as the row, new inner parts */
.trail-card .tc-thumb{width:98px;height:auto;align-self:stretch;flex:none;border-radius:13px;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.tc-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.tc-thumb-label{font:400 9px ui-monospace,monospace;color:#a29d8c;}
.tc-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;}
.tc-risk-dot{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-soft);}
.tc-risk-dot .dot{width:7px;height:7px;border-radius:50%;flex:none;}
.tc-heat-pill{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap;}
.tc-reason{display:inline-flex;align-items:flex-start;gap:6px;margin-top:8px;background:var(--success-dim);border-radius:8px;padding:5px 10px;align-self:flex-start;max-width:100%;}
.tc-reason .mark{color:var(--success);font-size:11px;line-height:1.4;flex:none;}
.tc-reason .txt{font-size:12px;line-height:1.35;color:var(--success);}
.tc-stats{font-size:12px;color:var(--ink-soft);margin-top:8px;}
.tc-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px dashed var(--paper-line);}
.tc-actions a, .tc-actions button{font-size:12.5px;font-weight:700;color:var(--ink);text-decoration:none;background:none;border:none;padding:0;cursor:pointer;font-family:'Inter',sans-serif;}
.tc-actions .locate{color:var(--success);}
.tc-actions .save.saved{color:var(--success);}
.companion-match-col{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;flex:none;padding-left:10px;border-left:1px solid var(--paper-line);}
.tc-ring{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;}
.tc-ring-inner{width:40px;height:40px;border-radius:50%;background:var(--card);display:flex;align-items:center;justify-content:center;font:700 12px 'Inter',sans-serif;color:var(--ink);}
.tc-ring-label{font:700 8.5px 'Inter',sans-serif;letter-spacing:.08em;color:var(--ink-soft);margin-top:5px;text-align:center;white-space:nowrap;}
.trail-card.tc-selected{border-color:var(--success);box-shadow:0 14px 26px -18px rgba(74,124,89,.55);}

/* Map pin selection + floating callout (added on top of the existing
   trailMap / dp-marker-dot system, no change to marker logic itself) */
.dp-marker-dot.tc-pin-selected{width:20px;height:20px;box-shadow:0 0 0 4px rgba(74,124,89,.28),0 1px 4px rgba(0,0,0,.35);z-index:7;}
/* Selected-trail preview card — mirrors the list-row anatomy and docks at
   the foot of the map pane, like the design's TrailPreview. */
.map-callout{position:absolute;left:12px;right:12px;bottom:12px;display:grid;grid-template-columns:142px minmax(240px,1fr) 118px 18px;align-items:stretch;gap:12px;background:var(--card);border:1px solid var(--paper-line);border-radius:16px;padding:14px;box-shadow:0 10px 28px rgba(27,31,25,.22);font-family:'Inter',sans-serif;z-index:9;max-width:820px;margin:0 auto;}
.map-callout[hidden]{display:none !important;}
.map-callout-thumb{flex:none;display:block;align-self:stretch;}
.map-callout-thumb .li-thumb{width:142px;height:100%;min-height:116px;border-radius:12px;}
.map-callout-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;}
.map-callout-kick{font:700 10px 'Inter',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#8A9689;}
.map-callout-actions{display:grid;grid-template-columns:repeat(3,minmax(84px,118px));gap:7px;align-items:stretch;justify-content:start;margin-top:auto;padding-top:6px;max-width:380px;}
.map-callout-open{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:34px;padding:6px 11px;border-radius:9px;background:var(--accent);color:#fff;font:700 12px 'Inter',sans-serif;text-decoration:none;white-space:nowrap;}
.map-callout-open:hover{background:var(--accent-hover);color:#fff;}
.map-callout-save,.map-callout-directions{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:34px;gap:5px;padding:6px 11px;border-radius:9px;border:1.5px solid var(--paper-line);background:#fff;color:var(--ink);font:700 12.5px 'Inter',sans-serif;cursor:pointer;white-space:nowrap;}
.map-callout-save:hover{border-color:#9C3A25;color:#9C3A25;}
.map-callout-directions:hover{border-color:var(--accent);color:var(--accent);}
.map-callout-directions:disabled{cursor:wait;opacity:.65;}
.map-callout-save.saved{background:#9C3A25;border-color:#9C3A25;color:#fff;}
.map-directions-status{display:block;min-height:0;color:var(--ink-soft);font-size:11px;line-height:1.35;}
.map-directions-status:empty{display:none;}
.map-callout-info-row{display:flex;align-items:center;justify-content:flex-start;gap:16px;flex-wrap:wrap;margin-top:2px;}
.map-callout-info-row .li-rating-row{margin-top:0;}
.map-callout #mapCalloutMatch{display:flex;align-self:stretch;min-width:0;}
.map-callout .li-match{
  align-self:stretch;width:118px;box-sizing:border-box;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  text-align:center;background:#FAF8F1;border:1px solid var(--paper-line);border-radius:13px;
  padding:12px 8px;
}
.map-callout .li-match b{font-size:21px;line-height:1;}
.map-callout .li-match b span{font-size:12px;}
.map-callout .li-match-lbl{font-size:8px;letter-spacing:.09em;}
.map-callout .li-match-tier{font-size:10px;padding:3px 9px;}
.map-callout .close{cursor:pointer;color:var(--ink-soft);font-size:16px;line-height:1;padding-left:2px;align-self:flex-start;}

@media(max-width:700px){
  .map-callout{grid-template-columns:86px minmax(0,1fr) 22px;gap:9px;max-height:calc(100% - 24px);overflow-y:auto;padding:10px;}
  .map-callout-thumb{grid-row:1 / span 2;}
  .map-callout-thumb .li-thumb{width:86px;min-height:110px;}
  .map-callout-body{grid-column:2;}
  .map-callout .close{grid-column:3;grid-row:1;}
  .map-callout #mapCalloutMatch{grid-column:2 / span 2;grid-row:2;}
  .map-callout .li-match{min-height:0;width:100%;flex-direction:row;justify-content:flex-start;gap:8px;padding:8px 10px;}
  .map-callout .li-match b{font-size:17px;}
  .map-callout .li-match-lbl{display:inline;}
  .map-callout-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;max-width:none;}
  .map-callout-open,.map-callout-save,.map-callout-directions{min-height:38px;padding:7px 5px;font-size:10.5px;}
}

@media(max-width:900px){
  .companion-grid{grid-template-columns:1fr;}
  .companion-sidebar{
    position:fixed;
    z-index:82;
    top:0;
    right:0;
    bottom:0;
    width:min(360px,calc(100% - 28px));
    padding:18px;
    overflow-y:auto;
    background:var(--bg);
    box-shadow:-18px 0 40px rgba(27,31,25,.18);
    transform:translateX(105%);
    visibility:hidden;
    transition:transform .2s ease,visibility .2s ease;
  }
  .companion-mobile-panel-open .companion-sidebar{transform:translateX(0);visibility:visible;}
  .companion-sidebar-mobile-head{
    position:sticky;
    top:-18px;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:-18px -18px 0;
    padding:14px 18px;
    background:rgba(247,244,235,.97);
    border-bottom:1px solid var(--paper-line);
    font:700 15px 'Inter',sans-serif;
  }
  .companion-sidebar-mobile-head button{
    width:42px;
    height:42px;
    border:1px solid var(--paper-line);
    border-radius:12px;
    background:var(--card);
    color:var(--ink);
    font-size:25px;
    line-height:1;
    cursor:pointer;
  }
  .companion-panel-backdrop{
    position:fixed;
    inset:0;
    z-index:81;
    display:block;
    border:0;
    padding:0;
    background:rgba(20,27,23,.42);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease,visibility .2s ease;
  }
  .companion-mobile-panel-open .companion-panel-backdrop{opacity:1;visibility:visible;pointer-events:auto;}
  body.companion-mobile-panel-open{overflow:hidden;}
  .companion-mobile-tools{
    width:100%;
    min-height:64px;
    margin-top:16px;
    padding:12px 15px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    border:1px solid var(--paper-line);
    border-radius:15px;
    background:var(--card);
    color:var(--ink);
    text-align:left;
    cursor:pointer;
    font-family:'Inter',sans-serif;
  }
  .companion-mobile-tools-copy{display:flex;flex-direction:column;gap:3px;min-width:0;}
  .companion-mobile-tools-copy strong{font-size:13.5px;}
  .companion-mobile-tools-copy small{font-size:11.5px;color:var(--ink-soft);font-weight:500;}
  .companion-mobile-tools > span:last-child{font-size:12px;font-weight:700;color:var(--accent);white-space:nowrap;}
}
@media(max-width:640px){
  .companion-list-head{align-items:flex-start;}
  .trail-card .tc-thumb{width:72px;}
}

/* ============================================================
   REDESIGNED LOGGED-OUT HOMEPAGE (search-first) + split-image
   auth modal + dog mini-wizard. Ported from the Alpenglow
   prototype; colours use the site's existing CSS variables.
   ============================================================ */
.hp{background:var(--bg);}
.hp-announce{display:flex;align-items:center;justify-content:center;gap:10px;padding:9px 20px;background:var(--ink);color:#EBF1EA;font-size:12.5px;font-weight:600;text-align:center;}
.hp-announce-dot{width:7px;height:7px;border-radius:50%;background:#F7C96B;flex:none;}

/* --- hero --- */
.hp-hero{position:relative;min-height:500px;display:flex;flex-direction:column;justify-content:center;}
.hp-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hp-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,42,28,.62) 0%,rgba(23,42,28,.32) 42%,rgba(23,42,28,.72) 100%);}
.hp-hero-inner{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 24px 44px;}
.hp-hero-inner h1{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:46px;line-height:1.1;color:#fff;max-width:720px;margin:0 0 10px;}
.hp-hero-sub{font-size:15px;color:#E8EFE7;max-width:540px;margin:0 0 24px;line-height:1.5;}

/* --- search card --- */
.hp-searchcard{position:relative;width:100%;max-width:860px;background:#fff;border-radius:18px;box-shadow:0 24px 55px -18px rgba(23,42,28,.6);padding:12px;box-sizing:border-box;}
.hp-search-row{display:flex;align-items:center;gap:10px;padding:6px 8px;}
.hp-search-icon{color:var(--ink-soft);flex:none;}
#hpSearch{flex:1;min-width:0;border:none;outline:none;font-family:'Inter',sans-serif;font-size:15px;color:var(--ink);background:none;}
#hpSearch::placeholder{color:#9AA69B;}
.hp-dogpill{display:inline-flex;align-items:center;gap:7px;background:var(--sage-dim);border:none;border-radius:999px;padding:6px 12px 6px 9px;font-size:12.5px;font-weight:700;color:var(--ink);cursor:pointer;font-family:'Inter',sans-serif;white-space:nowrap;}
.hp-dog-emoji{font-size:13px;}
.hp-filter-row{display:flex;gap:8px;flex-wrap:wrap;padding:10px 4px 2px;border-top:1px solid #EDE9DD;margin-top:4px;}
.hp-filt-wrap{flex:1;min-width:150px;}
.hp-filt{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:1.5px solid var(--paper-line);border-radius:12px;padding:9px 12px;font-size:13px;color:var(--ink);background:#fff;cursor:pointer;font-family:'Inter',sans-serif;box-sizing:border-box;}
.hp-filt:hover{border-color:var(--accent-light);}
.hp-filt-k,.hp-filt-caret{color:var(--ink-soft);}
.hp-search-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 26px;border-radius:999px;border:none;background:var(--accent-light);color:#173039;font-weight:700;font-size:15px;cursor:pointer;font-family:'Inter',sans-serif;white-space:nowrap;}
.hp-search-btn:hover{background:#5B94AA;}

/* --- menus --- */
.hp-menuwrap{position:relative;}
.hp-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:30;background:#fff;border:1px solid var(--paper-line);border-radius:12px;box-shadow:0 14px 34px -12px rgba(23,42,28,.4);padding:6px;min-width:190px;}
.hp-menu-right{right:0;left:auto;min-width:220px;}
.hp-menu[hidden]{display:none;}
.hp-menu-head{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);padding:6px 11px 4px;}
.hp-menu-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 11px;border-radius:9px;font-size:13.5px;color:var(--ink);cursor:pointer;font-family:'Inter',sans-serif;background:none;border:none;}
.hp-menu-item:hover{background:#F0EDE1;}
.hp-menu-check{margin-left:auto;color:var(--success);font-weight:800;}
.hp-menu-avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;flex:none;font-weight:700;}
.hp-menu-item .hp-mi-name{display:block;font-weight:700;}
.hp-menu-item .hp-mi-sub{display:block;font-size:11.5px;color:var(--ink-soft);}

/* --- popular chips --- */
.hp-popular{display:flex;align-items:center;gap:9px;margin-top:14px;flex-wrap:wrap;justify-content:center;}
.hp-popular-label{font-size:12px;color:#E8EFE7;}
#hpPopular{display:inline-flex;gap:8px;flex-wrap:wrap;justify-content:center;}
.hp-chip{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.9);color:var(--ink);border:none;cursor:pointer;font-family:'Inter',sans-serif;}
.hp-chip:hover{background:#fff;}

/* --- guest bar --- */
.hp-guestbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 40px;background:var(--sage-dim);border-bottom:1px solid var(--paper-line);flex-wrap:wrap;}
.hp-guestbar-copy{font-size:13px;color:var(--ink);}
.hp-guestbar-copy span{color:var(--ink-soft);}
.hp-guestbar-cta{border:none;border-radius:999px;background:var(--ink);color:#fff;padding:10px 20px;font-weight:700;font-size:13.5px;cursor:pointer;font-family:'Inter',sans-serif;}

/* --- content / results --- */
.hp-content{max-width:1200px;margin:0 auto;padding:34px 40px 20px;}
.hp-results-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap;}
.hp-results-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:22px;color:var(--ink);}
.hp-results-sub{font-size:12.5px;color:var(--ink-soft);margin-top:3px;}
.hp-clear{background:none;border:1.5px solid var(--paper-line);border-radius:999px;padding:8px 16px;font-size:12.5px;font-weight:700;color:var(--ink-soft);cursor:pointer;font-family:'Inter',sans-serif;}
.hp-list{display:flex;flex-direction:column;gap:12px;}
.hp-trailrow{display:flex;gap:16px;padding:14px;background:#fff;border:1px solid var(--paper-line);border-radius:16px;transition:box-shadow .2s,border-color .2s,transform .2s;cursor:pointer;text-align:left;align-items:stretch;width:100%;font-family:inherit;}
.hp-trailrow:hover{box-shadow:0 12px 30px -14px rgba(46,64,52,.4);border-color:var(--accent-light);transform:translateY(-2px);}
.hp-trailrow-thumb{width:120px;height:96px;flex:none;border-radius:12px;overflow:hidden;background:var(--sage-dim);}
.hp-trailrow-thumb img,.hp-trailrow-thumb svg{width:100%;height:100%;object-fit:cover;display:block;}
.hp-trailrow-main{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;}
.hp-trailrow-name{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:17px;color:var(--ink);}
.hp-rating{display:flex;align-items:center;gap:6px;margin-top:4px;}
.hp-rating .star{color:#E8A93A;font-size:13px;}
.hp-rating .val{font-size:12.5px;font-weight:700;color:var(--ink);}
.hp-rating .cnt{font-size:11.5px;color:var(--ink-soft);}
.hp-trailrow-meta{font-size:12px;color:var(--ink-soft);margin-top:3px;}
.hp-badges{display:flex;gap:7px;margin-top:9px;flex-wrap:wrap;}
.hp-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap;}
.hp-badge-diff{background:#EFEBDD;color:var(--ink);}
.hp-badge-dot{width:7px;height:7px;border-radius:50%;display:inline-block;}
/* Rebalanced (2026-07): details keep the room; the match column is narrower
   and the figure a step smaller. */
.hp-trailrow-match{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:72px;border-left:1px dashed var(--paper-line);padding-left:12px;}
.hp-match-pct{font-family:'Inter',sans-serif;font-weight:800;font-size:20px;line-height:1;}
.hp-match-pct span{font-size:12px;}
.hp-tier{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;}
.hp-empty{text-align:center;padding:48px 24px;border:1px dashed var(--paper-line);border-radius:16px;background:#fff;}
.hp-empty h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:19px;margin:0 0 6px;color:var(--ink);}
.hp-empty p{font-size:13.5px;color:var(--ink-soft);margin:0 0 16px;}

/* --- collection + community --- */
.hp-coll-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px;gap:12px;flex-wrap:wrap;}
.hp-coll-head h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:20px;margin:0;color:var(--ink);}
.hp-coll-sub{font-size:12.5px;color:var(--ink-soft);margin:4px 0 0;}
.hp-coll-all{font-size:12.5px;font-weight:700;text-decoration:none;white-space:nowrap;}
.hp-coll-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.hp-ccard{border:1px solid var(--paper-line);border-radius:14px;overflow:hidden;background:#fff;transition:box-shadow .2s,transform .2s;cursor:pointer;text-align:left;padding:0;font-family:inherit;display:block;}
.hp-ccard:hover{box-shadow:0 12px 30px -14px rgba(46,64,52,.4);transform:translateY(-2px);}
.hp-ccard-img{display:block;height:130px;position:relative;overflow:hidden;background:var(--sage-dim);}
.hp-ccard-img img,.hp-ccard-img svg{width:100%;height:100%;object-fit:cover;display:block;}
.hp-ccard-pct{position:absolute;top:10px;right:10px;font-family:'Inter',sans-serif;font-weight:800;font-size:13px;color:#fff;border-radius:999px;padding:3px 9px;}
.hp-ccard-body{display:block;padding:13px 15px;}
.hp-ccard-name{display:block;font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:15px;color:var(--ink);}
.hp-ccard-tags{display:flex;align-items:center;gap:8px;margin-top:7px;}
.hp-ccard-tags .txt{font-size:11.5px;color:var(--ink-soft);}
.hp-community{margin:28px 0 8px;background:#fff;border:1px solid var(--paper-line);border-radius:16px;padding:20px 24px;}
.hp-community-kick{font-family:'Inter',sans-serif;font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;}
.hp-community-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
.hp-community-item{display:flex;gap:12px;}
.hp-community-avatar{width:40px;height:40px;border-radius:50%;flex:none;color:#fff;display:grid;place-items:center;font-weight:800;}
.hp-community-item .who{font-size:13px;color:var(--ink);}
.hp-community-item .txt{font-size:12.5px;color:var(--ink-soft);line-height:1.5;margin-top:3px;}

/* --- consolidated filter panel --- */
.hp-filt-lab{display:inline-flex;align-items:center;gap:7px;font-weight:600;}
.hp-filt-lab svg{color:var(--ink);}
#hpFiltersBadge{font-weight:700;}
.hp-filt-on{background:#EAF3EC;border-color:#9FC4B0;}
.hp-fpanel{width:318px;max-width:calc(100vw - 48px);padding:15px 16px;text-align:left;box-sizing:border-box;}
.hp-fpanel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;}
.hp-fpanel-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:14px;color:var(--ink);}
#hpFiltersReset{background:none;border:none;color:var(--accent);font-family:'Inter',sans-serif;font-weight:700;font-size:12px;cursor:pointer;padding:0;}
.hp-fsec{font-family:'Inter',sans-serif;font-weight:700;font-size:10.5px;line-height:1;letter-spacing:.1em;text-transform:uppercase;color:#8A9689;margin:14px 0 8px;}
.hp-fsec.first{margin-top:2px;}
.hp-seg{display:flex;flex-wrap:wrap;gap:6px;}
.hp-segbtn{border-radius:9px;padding:7px 11px;font-family:'Inter',sans-serif;font-weight:600;font-size:12px;cursor:pointer;border:1.5px solid var(--paper-line);background:#fff;color:var(--ink);}
.hp-segbtn.sel{border-color:var(--ink);background:var(--ink);color:#fff;}
.hp-frow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid #EDE9DD;margin-top:14px;}
.hp-frow-lab{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--ink);}
.hp-frow-ico{width:26px;height:26px;border-radius:7px;background:#2C8FA6;display:grid;place-items:center;flex:none;}
.hp-switch{width:40px;height:23px;border-radius:999px;position:relative;transition:background .15s;flex:none;border:none;cursor:pointer;padding:0;background:var(--paper-line);}
.hp-switch .hp-knob{position:absolute;top:2.5px;left:2.5px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 3px rgba(0,0,0,.3);}
.hp-switch.on{background:var(--accent);}
.hp-switch.on .hp-knob{left:19px;}
.hp-fapply{width:100%;margin-top:14px;border:none;border-radius:11px;padding:12px;background:var(--ink);color:#fff;font-family:'Inter',sans-serif;font-weight:700;font-size:13.5px;cursor:pointer;}

/* --- live search suggestions --- */
.hp-suggest{position:absolute;top:calc(100% + 10px);left:0;right:0;z-index:41;background:#fff;border:1px solid var(--paper-line);border-radius:16px;box-shadow:0 22px 50px -16px rgba(23,42,28,.55);padding:8px;text-align:left;}
.hp-suggest[hidden]{display:none;}
.hp-sug-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px 8px;}
.hp-sug-kick{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8A9689;}
.hp-sug-chip{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;font-size:9px;font-weight:800;}
.hp-sug-count{font-size:11px;color:#8A9689;}
.hp-sug-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border-radius:12px;border:none;background:none;cursor:pointer;font-family:'Inter',sans-serif;text-align:left;}
.hp-sug-item:hover{background:#F0EDE1;}
.hp-sug-thumb{width:48px;height:48px;flex:none;border-radius:11px;overflow:hidden;border:1px solid #E4E0D3;background:var(--sage-dim);}
.hp-sug-thumb img,.hp-sug-thumb svg{width:100%;height:100%;object-fit:cover;display:block;}
.hp-sug-main{flex:1;min-width:0;}
.hp-sug-name{display:block;font-weight:700;font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hp-sug-meta{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft);margin-top:2px;}
.hp-sug-sep{color:#C9C7BB;}
.hp-sug-match{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:2px;}
.hp-sug-match .pct{font-family:'Inter',sans-serif;font-weight:800;font-size:16px;line-height:1;}
.hp-sug-match .pct span{font-size:10px;}
.hp-sug-match .lab{font-size:9.5px;font-weight:700;color:#8A9689;}
.hp-sug-more{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:6px;border:none;border-top:1px solid #EDE9DD;background:none;padding:12px 10px 6px;font-family:'Inter',sans-serif;font-weight:700;font-size:13px;color:var(--accent);cursor:pointer;}
.hp-sug-key{font-size:10px;font-weight:700;color:#8A9689;border:1px solid var(--paper-line);border-radius:6px;padding:2px 7px;}
.hp-sug-empty{padding:16px 12px;text-align:center;}
.hp-sug-empty-h{font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:4px;}
.hp-sug-empty p{font-size:12.5px;color:var(--ink-soft);margin:0 0 12px;}
.hp-sug-empty button{border:1.5px solid var(--paper-line);border-radius:999px;padding:7px 15px;font-family:'Inter',sans-serif;font-weight:700;font-size:12.5px;color:var(--ink-soft);background:#fff;cursor:pointer;}
.hp-suggest-scrim{position:fixed;inset:0;z-index:38;}

/* --- how it works --- */
.hp-kick{font-family:'Inter',sans-serif;font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:7px;}
.hp-how{margin-bottom:34px;}
.hp-how-head{text-align:center;margin-bottom:22px;}
.hp-how-h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:26px;margin:0;color:var(--ink);}
.hp-how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.hp-howcard{background:#fff;border:1px solid var(--paper-line);border-radius:16px;padding:22px 22px 20px;}
.hp-howcard-head{display:flex;align-items:center;gap:12px;margin-bottom:11px;}
.hp-howcard-ico{width:44px;height:44px;flex:none;border-radius:12px;background:var(--sage-dim);display:grid;place-items:center;}
.hp-howcard-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:17px;color:var(--ink);}
.hp-howcard p{font-size:13px;color:var(--ink-soft);line-height:1.55;margin:0;}

/* --- featured this week --- */
.hp-kick-left{text-align:left;}
.hp-feat-h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:20px;margin:0;color:var(--ink);display:inline-flex;align-items:center;gap:9px;}

/* --- outside-click catcher --- */
.hp-menu-scrim{position:fixed;inset:0;z-index:20;}
.hp-menu-scrim[hidden]{display:none;}

/* --- homepage footer (design port) --- */
.hp-footer{background:var(--ink);color:#D4DED3;padding:44px 40px 30px;text-align:left;font-size:13.5px;position:relative;overflow:hidden;}
/* The brand mark ghosted tone-on-tone inside the footer band: the logo's
   dark tile melts into the footer green, so only the paw and its contour
   rings surface as a shade. Clipped by the footer — it never bleeds onto
   the page above. */
.hp-footer::after{
  content:"";position:absolute;right:-40px;bottom:-90px;width:460px;height:460px;
  background:url('logo.svg?v=5') center/contain no-repeat;
  opacity:.16;filter:grayscale(55%);
  pointer-events:none;
}
.hp-footer-grid,.hp-footer-base{position:relative;z-index:1;}
@media (max-width:700px){.hp-footer::after{width:300px;height:300px;right:-50px;bottom:-60px;}}
/* Canonical 5-block footer (brand · Explore · For dogs · Connect · Company)
   — the browse-trails footer, used on every page. */
.hp-footer-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.2fr repeat(4,1fr);gap:28px;}
.hp-footer-brand{display:inline-flex;align-items:center;gap:10px;margin-bottom:12px;}
/* The logo's badge background disappears on the footer's matching dark
   green, leaving ~6px of invisible inset — pull the icon left so the
   visible art lines up with the blurb text below. */
.hp-footer-brand img{width:32px;height:32px;border-radius:9px;margin-left:-6px;}
.hp-footer-brand span{font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:19px;color:#F7F4EA;}
.hp-footer-blurb{font-size:13px;line-height:1.6;color:#AEBCAF;max-width:280px;margin:0;}
.hp-footer-h{font-family:'Inter',sans-serif;font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#8DA290;margin-bottom:12px;}
.hp-footer-links{display:flex;flex-direction:column;gap:9px;}
.hp-footer-links a{font-size:13.5px;color:#D4DED3;text-decoration:none;}
.hp-footer-links a:hover,.hp-footer-social a:hover{color:#F7F4EA;}
.hp-footer-base{max-width:1200px;margin:28px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.hp-footer-base span{font-size:12px;color:#8DA290;}
.hp-footer-social{display:flex;gap:18px;}
.hp-footer-social a{font-size:12px;color:#8DA290;text-decoration:none;}
@media (max-width:820px){
  .hp-footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:520px){
  .hp-footer-grid{grid-template-columns:1fr;}
}

/* ============ SPLIT-IMAGE AUTH MODAL ============ */
.auth-modal-redesign .modal{padding:0;overflow-y:auto;overflow-x:hidden;max-width:380px;max-height:calc(100vh - 40px);background:var(--bg);border-radius:var(--radius-modal);box-shadow:var(--shadow-modal);}
.auth-hero{position:relative;padding:26px 28px 22px;background:var(--ink);color:var(--bg);overflow:hidden;}
.auth-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;}
.auth-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(46,64,52,.35),rgba(46,64,52,.85));}
.auth-modal-redesign .modal-close{color:#fff;background:rgba(255,255,255,.15);width:30px;height:30px;border-radius:50%;display:grid;place-items:center;z-index:2;}
.auth-hero-copy{position:relative;}
.auth-hero-brand{display:inline-flex;align-items:center;gap:9px;margin-bottom:14px;font-family:'Bricolage Grotesque',sans-serif;font-weight:600;font-size:18px;}
.auth-hero-brand img{width:30px;height:30px;border-radius:8px;}
.auth-modal-redesign .auth-hero h2{font-family:'Bricolage Grotesque',sans-serif;font-size:22px;margin:0;color:#fff;}
.auth-modal-redesign .auth-hero .hint{font-size:12.5px;color:#D6E1D8;margin:6px 0 0;line-height:1.5;}
.auth-body{padding:24px 28px 26px;}
.auth-modal-redesign .google-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;border-radius:var(--radius-sm);}
.auth-modal-redesign .auth-submit{border-radius:var(--radius-sm);padding:13px;background:var(--accent);}
.auth-modal-redesign .auth-submit:hover{background:var(--accent-hover);opacity:1;}
.auth-modal-redesign .field-label input{background:#fff;border-radius:10px;}
.auth-field-hint{display:block;margin-top:5px;color:var(--ink-soft);font-size:11.5px;font-weight:500;}
.auth-field-hint[hidden],.auth-signup-field[hidden],.auth-terms[hidden]{display:none;}
.auth-terms{display:flex;gap:9px;align-items:flex-start;margin:2px 0 16px;color:var(--ink-soft);font-size:12px;line-height:1.5;cursor:pointer;}
.auth-terms input{flex:none;margin-top:2px;accent-color:var(--accent);}
.auth-terms a{font-weight:600;color:var(--accent);}
.auth-guest-link{display:block;width:100%;border:none;background:none;margin-top:14px;color:var(--ink-soft);font-size:13px;font-weight:600;cursor:pointer;font-family:'Inter',sans-serif;text-decoration:underline;}
/* Password-reset view: back link + non-enumerating confirmation panel */
.auth-back-link{display:inline-block;background:none;border:none;padding:0;margin:0 0 14px;font:700 12.5px 'Inter',sans-serif;color:var(--accent);cursor:pointer;}
.auth-back-link:hover{color:var(--accent-hover);text-decoration:underline;}
.auth-back-link[hidden]{display:none;}
.auth-reset-done{background:var(--sage-dim);border-radius:12px;padding:14px 15px;font-size:13px;color:var(--ink);line-height:1.5;}
.auth-reset-done[hidden]{display:none;}
@media (max-width:520px){
  .auth-modal-redesign .modal{max-height:calc(100dvh - 24px);padding:0;border-radius:16px;}
  .auth-modal-redesign.modal-overlay{align-items:flex-start;}
  .auth-body{padding:22px 20px 24px;}
  .auth-hero{padding:24px 20px 20px;}
}

/* ============ DOG MINI-WIZARD ============ */
.hp-wiz-overlay{position:fixed;inset:0;z-index:100;background:rgba(23,42,28,.55);display:flex;align-items:center;justify-content:center;padding:20px;}
.hp-wiz-overlay[hidden]{display:none;}
.hp-wiz-modal{position:relative;width:100%;max-width:460px;background:var(--bg);border-radius:20px;overflow:hidden;box-shadow:0 30px 70px rgba(23,42,28,.5);}
.hp-wiz-head{padding:22px 26px 16px;background:var(--ink);color:var(--bg);position:relative;}
.hp-wiz-close{position:absolute;top:12px;right:14px;background:rgba(255,255,255,.15);border:none;color:#fff;width:30px;height:30px;border-radius:50%;font-size:17px;cursor:pointer;}
.hp-wiz-step{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9FC7D6;margin-bottom:6px;}
.hp-wiz-head h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:21px;margin:0;color:#fff;}
.hp-wiz-bars{display:flex;gap:6px;margin-top:14px;}
.hp-wiz-bars span{flex:1;height:4px;border-radius:2px;background:rgba(255,255,255,.25);}
.hp-wiz-bars span.on{background:var(--accent-light);}
.hp-wiz-body{padding:22px 26px 8px;min-height:200px;}
.hp-wiz-q{font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:9px;}
.hp-wiz-input{display:block;width:100%;margin:6px 0 16px;padding:11px 13px;border:1.5px solid var(--paper-line);border-radius:10px;font-family:'Inter',sans-serif;font-size:14px;color:var(--ink);background:#fff;box-sizing:border-box;}
.hp-wiz-opts{display:flex;gap:9px;margin-bottom:16px;}
.hp-wiz-opts.col{flex-direction:column;}
.hp-wiz-opt{flex:1;padding:12px 14px;border-radius:12px;border:1.5px solid var(--paper-line);background:#fff;color:var(--ink-soft);font-weight:700;font-size:13px;cursor:pointer;font-family:'Inter',sans-serif;text-align:center;}
.hp-wiz-opts.col .hp-wiz-opt{text-align:left;}
.hp-wiz-opt.sel{border-color:var(--success);background:var(--sage-dim);color:var(--ink);}
.hp-wiz-summary{background:#fff;border:1px solid var(--paper-line);border-radius:12px;padding:14px 16px;}
.hp-wiz-summary-h{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:10px;}
.hp-wiz-summary-row{display:flex;justify-content:space-between;font-size:13px;padding:3px 0;}
.hp-wiz-summary-row span{color:var(--ink-soft);}
.hp-wiz-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 26px 22px;border-top:1px solid var(--paper-line);}
.hp-wiz-back{background:none;border:none;color:var(--ink-soft);font-size:13px;font-weight:700;cursor:pointer;font-family:'Inter',sans-serif;padding:8px 10px;}

@media (max-width:820px){
  .hp-coll-grid{grid-template-columns:1fr 1fr;}
  .hp-how-grid{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .hp-hero-inner h1{font-size:34px;}
  .hp-hero{min-height:440px;}
  .hp-content{padding:24px 18px 20px;}
  .hp-guestbar{padding:14px 18px;}
  .hp-coll-grid{grid-template-columns:1fr;}
  .hp-community-grid{grid-template-columns:1fr;}
  .hp-trailrow-thumb{width:88px;height:88px;}
  .hp-trailrow-match{min-width:70px;padding-left:12px;}
}

/* ============================================================
   LOGGED-IN HOMEPAGE — map-first app shell
   Ported from the "ORMA Homepage (Logged in)" design prototype:
   header (search · filters · account pill), full-height map pane on
   the left, 430px ranked list on the right.
============================================================= */

/* While the logged-in shell is active, the shared topnav and closing
   quote stay out of the way (the shell has its own dark header). The
   site footer stays IN: the map shell fills the first screen and the
   footer sits below it — scroll past the shell to reach it. The phone
   app layout still hides it (homepage-mobile.css) in favour of the
   bottom tab bar. */
body[data-homepage-view="returning"] .topnav,
body[data-homepage-view="returning"] .hp-quote{display:none;}

#returningCustomerHomepage[hidden]{display:none !important;}
#returningCustomerHomepage{
  height:100vh;
  height:100dvh;
  display:flex;
  flex-direction:column;
  background:#EFECE2;
}

/* ---------- dark app header (AppShell design) ---------- */
.li-top{
  display:flex;
  align-items:center;
  gap:20px;
  padding:12px 24px;
  background:var(--ink);
  border-bottom:1px solid rgba(242,238,226,.09);
  flex:none;
  position:relative;
  z-index:50;
}
.li-brand{
  font-family:'Bricolage Grotesque',sans-serif;
  font-weight:600;
  font-size:24px;
  color:#F2EEE2;
  display:inline-flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  flex:none;
}
.li-brand img{width:36px;height:36px;border-radius:9px;}
.li-brand::after{
  content:'| Dog Trails & Terrain Guide';
  font:600 13px/1.2 'Inter',sans-serif;
  letter-spacing:.015em;
  color:#DCE1D4;
  white-space:nowrap;
}
/* Links sit on the right with the bell + dog pill, mirroring the site
   header (brand far left · everything else far right). */
.li-nav{display:flex;align-items:center;gap:24px;margin-left:auto;font-family:'Inter',sans-serif;font-size:14px;color:#DCE1D4;}
.li-nav a{color:#DCE1D4;text-decoration:none;white-space:nowrap;}
.li-nav a:hover{color:#fff;font-weight:500;}
.li-top .li-top-spacer{display:none;}

/* Legacy greeting data host. The visible context now lives in the compact
   toolbar, avoiding a second full-width row above the map. */
.li-greetbar{
  display:none;
  align-items:center;
  padding:18px 24px;
  background:var(--bg);
  border-bottom:1px solid var(--paper-line);
  flex:none;
}
.li-greetbar .li-dog-row{flex:1;min-width:0;}

/* ---------- toolbar (dog context · search · country · region · saved · filters) ----------
   Desktop: one compact, consistently sized contextual control row.
   The greeting block is a phone-only element; desktop context lives in
   the static "Tailored to" label. */
.li-toolbar{
  display:grid;
  grid-template-columns:auto minmax(260px,1fr) auto auto auto auto;
  grid-template-areas:"dogctx search country region saved filters";
  align-items:center;
  gap:8px 10px;
  padding:7px 20px;
  background:var(--bg);
  border-bottom:1px solid var(--paper-line);
  flex:none;
  position:relative;
  z-index:45;
}
.li-toolbar-greet{
  grid-area:dogctx;
  display:none;
  align-items:center;
  gap:9px;
  min-width:0;
  flex:none;
  color:var(--ink);
}
.li-dogctx-wrap{grid-area:dogctx;flex:none;}
.li-dogctx-static{
  display:flex;align-items:center;gap:8px;max-width:310px;min-height:42px;box-sizing:border-box;
  background:#fff;border:1.5px solid var(--paper-line);border-radius:var(--radius-pill);
  padding:5px 13px 5px 5px;color:var(--ink);text-align:left;
}
.li-dogctx-avatar{width:30px;height:30px;flex:none;}
.li-dogctx-copy{display:flex;flex-direction:column;min-width:0;}
.li-dogctx-copy .li-control-kicker{font-size:8.5px;line-height:1;}
.li-dogctx-name{display:flex;align-items:baseline;min-width:0;font:700 13.5px/1.2 'Inter',sans-serif;white-space:nowrap;overflow:hidden;max-width:238px;}
#liDogCtxBreedSep{padding:0 4px;color:var(--ink-soft);}
.li-dogctx-name>a{overflow:hidden;text-overflow:ellipsis;color:var(--ink);font-size:12.5px;text-decoration:underline;text-decoration-color:#AAB5AA;text-underline-offset:2px;}
.li-dogctx-name>a:hover{color:var(--accent);text-decoration-color:currentColor;}
.li-toolbar-greet .li-greet-avatar{width:40px;height:40px;}
.li-toolbar-greet-copy{display:flex;flex-direction:column;min-width:0;}
.li-toolbar-greet-copy strong{font:700 21px/1.12 'Bricolage Grotesque',sans-serif;white-space:nowrap;}
.li-toolbar-greet-copy small{margin-top:2px;font:600 10.5px/1.2 'Inter',sans-serif;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:none;}
.li-toolbar-breed{color:inherit;text-decoration:underline;text-decoration-color:#AAB5AA;text-underline-offset:2px;}
.li-toolbar-breed:hover{color:var(--accent);text-decoration-color:currentColor;}
.li-region-wrap{grid-area:region;flex:none;}
.li-country-wrap{grid-area:country;flex:none;}
.li-region-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:42px;box-sizing:border-box;padding:0 13px;border:1.5px solid var(--paper-line);
  border-radius:var(--radius-pill);background:#fff;color:var(--ink);
  font:700 12.5px 'Inter',sans-serif;cursor:pointer;white-space:nowrap;
}
.li-control-kicker{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);}
.li-region-btn:hover,.li-region-btn[aria-expanded="true"]{border-color:var(--accent);background:#F7FAF8;}
.li-region-menu{left:0;right:auto;width:230px;padding:10px;}
.li-country-menu{left:0;right:auto;width:190px;padding:10px;}
#liFiltersWrap{grid-area:filters;}
.li-region-option{justify-content:space-between;gap:14px;}
.li-region-option small{font:600 10.5px 'Inter',sans-serif;color:var(--ink-soft);}
.li-region-option.on{background:#EAF3EC;color:var(--ink);font-weight:700;}
.li-saved-only{
  grid-area:saved;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:42px;box-sizing:border-box;padding:0 13px;border:1.5px solid var(--paper-line);
  border-radius:var(--radius-pill);background:#fff;color:var(--ink);
  font:700 12.5px 'Inter',sans-serif;cursor:pointer;white-space:nowrap;
}
.li-saved-only:hover{border-color:#9C3A25;}
.li-saved-only[aria-pressed="true"]{border-color:#9C3A25;background:#F8EAE5;color:#8F3827;}
.li-saved-count{display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#EEF1E9;color:var(--ink-soft);font-size:10px;}
.li-saved-only[aria-pressed="true"] .li-saved-count{background:#9C3A25;color:#fff;}
/* Inline chips — Any area · Distance · Terrain · Shade · Water */
.li-chiprow{display:none;}
.li-chipwrap{position:relative;}
.li-chip{
  display:inline-flex;align-items:center;gap:7px;
  border:1.5px solid var(--paper-line);border-radius:var(--radius-pill);
  background:#fff;padding:8px 14px;
  font:600 13px 'Inter',sans-serif;color:var(--ink);
  cursor:pointer;white-space:nowrap;
}
.li-chip:hover{border-color:var(--accent);}
.li-chip.on{background:#EAF3EC;border-color:#9FC4B0;font-weight:700;}
.li-chipmenu{left:0;right:auto;min-width:190px;max-height:min(420px,60vh);overflow-y:auto;}
.li-chip-selected{background:#F0EDE1;font-weight:700;}
/* Discovery uses one consolidated filters panel at every viewport size. */
/* The design's app home has no conditions card on the map (desktop);
   phones keep it as the dog-identity pill. */
@media(min-width:701px){.li-cond{display:none !important;}}
/* What's-new bell on the dark header */
.li-bell{
  position:relative;width:38px;height:38px;border-radius:50%;
  border:none;background:none;color:#F2EEE2;
  display:grid;place-items:center;cursor:pointer;
}
.li-bell:hover{background:rgba(255,255,255,.12);}
.li-bell-dot{position:absolute;top:6px;right:7px;width:8px;height:8px;border-radius:50%;background:#E24B4A;border:1.5px solid var(--ink);}
.li-bell-dot[hidden]{display:none;}
/* Greeting avatar = dog switcher */
.li-greetswitch{flex:none;}
.li-greetswitch-btn{display:flex;align-items:center;gap:6px;border:none;background:none;cursor:pointer;padding:0;color:var(--ink-soft);}
.li-greetswitch-menu{left:0;right:auto;top:calc(100% + 8px);width:268px;}
.li-search{
  grid-area:search;
  width:100%;
  max-width:none;
  min-width:250px;
  position:relative;
  display:flex;
  align-items:center;
  gap:9px;
  background:#fff;
  border:1.5px solid var(--paper-line);
  border-radius:var(--radius-pill);
  height:42px;box-sizing:border-box;padding:0 14px;
  color:var(--ink-soft);
}
.li-search:focus-within{border-color:var(--accent);}
.li-search input{
  flex:1;
  min-width:0;
  border:none;
  outline:none;
  background:none;
  font-family:'Inter',sans-serif;
  font-size:14px;
  color:var(--ink);
}
.li-search input::placeholder{color:#9AA69B;}
.li-search input::-webkit-search-cancel-button{-webkit-appearance:none;}
.li-search-suggest{
  position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:90;
  overflow:hidden;max-height:min(430px,60vh);overflow-y:auto;
  border:1px solid var(--paper-line);border-radius:15px;background:#fff;
  box-shadow:0 18px 42px rgba(27,45,34,.18);padding:7px;
}
.li-search-suggest[hidden]{display:none;}
.li-search-option{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;
  border:0;border-radius:10px;background:transparent;padding:10px 11px;text-align:left;
  color:var(--ink);cursor:pointer;font-family:'Inter',sans-serif;
}
.li-search-option:hover,.li-search-option.active{background:#EEF3EC;}
.li-search-option-copy{display:flex;flex-direction:column;min-width:0;gap:2px;}
.li-search-option-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 13px 'Bricolage Grotesque',sans-serif;}
.li-search-option-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:500 10.5px 'Inter',sans-serif;color:var(--ink-soft);}
.li-search-option-match{flex:none;font:800 12px 'Inter',sans-serif;}
.li-search-empty{padding:15px 12px;color:var(--ink-soft);font:600 12px 'Inter',sans-serif;}
.li-top-spacer{flex:1;}
.li-top-actions{display:flex;align-items:center;gap:8px;}
.li-menuwrap{position:relative;}
.li-filt{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:1.5px solid var(--paper-line);
  border-radius:var(--radius-pill);
  height:42px;box-sizing:border-box;padding:0 14px;
  font-size:12.5px;
  font-weight:600;
  color:var(--ink);
  background:#fff;
  cursor:pointer;
  font-family:'Inter',sans-serif;
  white-space:nowrap;
}
.li-filt:hover{border-color:var(--accent);}
.li-filt.on{background:#EAF3EC;border-color:#9FC4B0;}
.li-caret{color:var(--ink-soft);font-size:11px;}
#liFiltersBadge:empty{display:none;}
/* Account pill — translucent on the dark header (TopNav dog pill) */
.li-account{
  display:flex;
  align-items:center;
  gap:8px;
  padding:4px 12px 4px 4px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:var(--radius-pill);
  background:rgba(255,255,255,.1);
  cursor:pointer;
  font-family:'Inter',sans-serif;
}
.li-account:hover{border-color:rgba(255,255,255,.55);}
.li-account-name{font-size:13px;font-weight:700;color:#fff;}
.li-avatar{
  width:30px;
  height:30px;
  border-radius:50%;
  background-color:var(--accent);
  background-size:cover;
  background-position:center;
  color:#fff;
  display:grid;
  place-items:center;
  font-weight:800;
  font-size:12px;
  flex:none;
  overflow:hidden;
}
.li-avatar-lg{width:40px;height:40px;font-size:15px;}

/* ---------- dropdown menus ---------- */
.li-menu{
  position:absolute;
  top:calc(100% + 6px);
  right:0;
  z-index:60;
  background:#fff;
  border:1px solid var(--paper-line);
  border-radius:12px;
  box-shadow:0 14px 34px -12px rgba(23,42,28,.4);
  padding:6px;
  min-width:200px;
}
.li-menu[hidden]{display:none;}
.li-menu-item{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  text-align:left;
  padding:9px 11px;
  border-radius:9px;
  font-size:13.5px;
  color:var(--ink);
  cursor:pointer;
  font-family:'Inter',sans-serif;
  background:none;
  border:none;
  text-decoration:none;
}
.li-menu-item:hover{background:#F0EDE1;}
.li-menu-count{margin-left:auto;color:#8A9689;font-weight:700;}
.li-menu-div{height:1px;background:#EDE9DD;margin:5px 0;}
.li-logout{color:#9C3A25;}
.li-menu-kick{font:700 9.5px 'Inter',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#8A9689;padding:4px 8px 8px;}
.li-account-menu .nav-dogmenu-row{margin:0 0 6px;}

/* ---------- filters panel ---------- */
.li-filters-menu{width:320px;padding:15px 16px;max-height:calc(100vh - 90px);overflow-y:auto;}
.li-fhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;}
.li-fhead span{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:14px;}
.li-fhead button{background:none;border:none;color:var(--accent);font:700 12px 'Inter',sans-serif;cursor:pointer;padding:0;}
.li-fareas{margin-top:6px;}
.li-fareas .companion-filter-label{font:700 10.5px 'Inter',sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#8A9689;margin:12px 0 8px;}
.li-fareas .companion-filter-label:first-child{margin-top:2px;}
.li-fsec{
  font:700 10.5px 'Inter',sans-serif;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#8A9689;
  margin:15px 0 8px;
}
.li-seg{display:flex;flex-wrap:wrap;gap:6px;}
.li-segbtn{
  border-radius:9px;
  padding:7px 11px;
  font:600 12px 'Inter',sans-serif;
  cursor:pointer;
  border:1.5px solid var(--paper-line);
  background:#fff;
  color:var(--ink);
}
.li-segbtn.on{border-color:var(--ink);background:var(--ink);color:#fff;}
.li-frows{margin-top:14px;}
.li-frow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 0;
  border-top:1px solid #EDE9DD;
}
.li-frow-label{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--ink);}
.li-frow-icon{
  width:26px;
  height:26px;
  border-radius:7px;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.li-switch{
  width:40px;
  height:23px;
  border-radius:var(--radius-pill);
  position:relative;
  transition:background .15s;
  flex:none;
  border:none;
  cursor:pointer;
  padding:0;
  background:var(--paper-line);
}
.li-switch.on{background:var(--accent);}
.li-switch .knob{
  position:absolute;
  top:2.5px;
  left:2.5px;
  width:18px;
  height:18px;
  border-radius:50%;
  background:#fff;
  transition:left .15s;
  box-shadow:0 1px 3px rgba(0,0,0,.3);
}
.li-switch.on .knob{left:19px;}
.li-apply{
  width:100%;
  margin-top:15px;
  border:none;
  border-radius:11px;
  padding:12px;
  background:var(--ink);
  color:#fff;
  font:700 13.5px 'Inter',sans-serif;
  cursor:pointer;
}

/* ---------- body grid ---------- */
.li-body{
  flex:1;
  display:grid;
  grid-template-columns:1fr 430px;
  min-height:0;
}
/* Collapse-results state: discovery stays map-first and the map expands to
   the full workspace. A small map-edge control restores ranked trails. */
@media (min-width:1041px){
  .li-body.list-collapsed{grid-template-columns:1fr;}
  .li-body.list-collapsed .li-list{display:none;}
  .li-body.list-collapsed .li-show-trails{display:inline-flex;}
}
.li-list-head-side{display:flex;align-items:center;gap:12px;}
.li-collapse-map{
  display:none;align-items:center;gap:6px;background:none;border:1.5px solid var(--paper-line);
  border-radius:10px;padding:6px 11px;font:700 12px 'Inter',sans-serif;color:var(--ink-soft);cursor:pointer;
}
.li-collapse-map:hover{color:var(--ink);border-color:var(--accent-light);}
@media (min-width:1041px){.li-collapse-map{display:inline-flex;}}

.li-map{position:relative;overflow:hidden;background:var(--sage-dim);}
.li-map #trailMap{position:absolute;inset:0;width:100%;height:100%;}

/* conditions card — top-left map overlay */
.li-cond{
  position:absolute;
  top:56px; /* below the top-left Layers chip */
  left:16px;
  z-index:7;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border:1px solid var(--paper-line);
  border-radius:14px;
  padding:13px 15px;
  box-shadow:0 8px 24px -14px rgba(23,42,28,.5);
  max-width:280px;
}
.li-cond[hidden]{display:none;}
.li-cond-head{display:flex;align-items:center;gap:10px;}
.li-cond-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:15px;color:var(--ink);}
.li-cond-sub{font-size:11.5px;color:var(--ink-soft);}
.li-cond-tiles{display:flex;gap:8px;margin-top:11px;}
.li-cond-tile{flex:1;background:#FAF8F1;border-radius:9px;padding:8px 10px;text-align:center;min-width:64px;}
.li-cond-tile b{display:block;font:900 14px 'Inter',sans-serif;color:var(--ink);}
.li-cond-tile small{font-size:9.5px;color:#8A9689;font-weight:700;text-transform:uppercase;letter-spacing:.03em;}

/* ---------- list pane ---------- */
/* Beige pane with white card rows (2026-07 revamp fixed the inversion:
   the pane used to be white with flat rows). */
.li-list{
  border-left:1px solid var(--paper-line);
  background:#EFECE2;
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.li-list-head{
  padding:10px 20px 10px;
  position:sticky;
  top:0;
  background:var(--bg);
  border-bottom:1px solid #EDE9DD;
  z-index:5;
}
.li-dog-row{display:flex;gap:13px;align-items:center;}
.li-dogavatar{
  width:52px;
  height:52px;
  flex:none;
  border-radius:50%;
  background-color:var(--accent);
  color:#fff;
  display:grid;
  place-items:center;
  font-weight:800;
  font-size:19px;
  box-shadow:0 0 0 3px #EAF3EC;
  overflow:hidden;
}
.li-dogavatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.li-dog-copy{flex:1;min-width:0;}
.li-greet{font-size:20px;line-height:1.12;margin:0;}
.li-chips-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center;}
.li-dogname{font-size:12px;font-weight:800;color:var(--ink);}
.li-chips{display:contents;}
.li-pchip,
.li-chips .companion-chip{
  display:inline-flex;
  align-items:center;
  font-size:11px;
  font-weight:600;
  color:#6B7A6E;
  background:#F0EDE1;
  border-radius:var(--radius-pill);
  padding:3px 9px;
}
.li-pchip:empty{display:none;}
.li-edit{
  flex:none;
  font-size:12px;
  font-weight:700;
  color:var(--accent);
  text-decoration:none;
  padding:6px 10px;
  border:1px solid var(--paper-line);
  border-radius:9px;
}
.li-edit:hover{border-color:var(--accent);}
.li-newsline{font-size:12px;color:var(--success);font-weight:600;margin:10px 0 0;}
.li-list-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:0;}
.li-kick{
  font:700 10.5px 'Inter',sans-serif;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#8A9689;
}
.li-list-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:18px;margin-top:2px;color:var(--ink);}
.li-list-sub{font-size:11.5px;color:#8A9689;font-weight:600;text-align:right;max-width:150px;}
.li-sort{display:flex;align-items:center;gap:8px;margin-top:8px;}
.li-sort-label{font-size:11px;font-weight:600;color:var(--ink-soft);}
.li-sort .companion-sort-group{padding:3px;}
.li-sort .companion-sort-group button{padding:5px 10px;font-size:11.5px;}

/* trail rows — white cards on the beige pane */
.li-rows{padding:8px 12px 20px;display:flex;flex-direction:column;gap:8px;}
.li-row{
  display:flex;
  gap:12px;
  align-items:center;
  padding:12px;
  border-radius:14px;
  background:#fff;
  border:1px solid var(--paper-line);
  cursor:pointer;
}
.li-row:hover{background:#FAF8F1;}
.li-row.tc-selected{background:#EAF3EC;border-color:#9FC4B0;}
.li-thumb{
  width:66px;
  height:66px;
  flex:none;
  border-radius:12px;
  background-color:var(--sage-dim);
  background-size:cover;
  background-position:center;
  overflow:hidden;
  display:grid;
  place-items:center;
  color:var(--ink-soft);
}
.li-thumb img{width:100%;height:100%;object-fit:cover;}
.li-thumb .trail-visual-route{width:100%;height:100%;}
.li-row-body{flex:1;min-width:0;}
.li-row-name{
  display:block;
  font-family:'Bricolage Grotesque',sans-serif;
  font-weight:700;
  font-size:14.5px;
  color:var(--ink);
  text-decoration:none;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.li-row-meta{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:3px;
  font-size:11px;
  color:#8A9689;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.li-row-badges{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap;}
/* "Trail rating · Low-risk" row (design TrailRow) */
/* Pre-auth boot (see the inline script in index.html's head): members
   see their shell immediately instead of a guest-homepage flash. */
html.early-member #newCustomerHomepage{display:none;}
html.early-member #returningCustomerHomepage[hidden]{display:block;}
.li-cond-t-mobile{display:none;}
/* Phone record chip — desktop uses the map FAB below instead. */
.li-record{display:none;flex:none;align-items:center;justify-content:center;gap:8px;min-height:39px;box-sizing:border-box;padding:9px 15px;border-radius:999px;background:#C4652F;color:#fff;font:800 12.5px 'Inter',sans-serif;text-decoration:none;white-space:nowrap;box-shadow:0 6px 16px -10px rgba(23,42,28,.55);}
.li-record:hover{background:#A9541F;}
.li-record-dot{width:8px;height:8px;border-radius:50%;background:#fff;}

/* Desktop record FAB — bottom-centre of the map canvas (mockup C). */
.li-record-fab{
  position:absolute;left:50%;bottom:20px;transform:translateX(-50%);
  z-index:8;display:flex;align-items:center;gap:10px;
  padding:12px 22px;border-radius:999px;background:#D56B30;color:#fff;
  text-decoration:none;white-space:nowrap;
  box-shadow:0 14px 34px -12px rgba(160,70,20,.65);
  transition:filter .15s ease, transform .15s ease;
}
.li-record-fab:hover{filter:brightness(1.06);}
.li-record-fab:active{transform:translateX(-50%) scale(.98);}
.li-record-fab-dot{position:relative;width:10px;height:10px;flex:none;}
.li-record-fab-dot::before{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(255,255,255,.7);animation:li-fab-ping 1.6s cubic-bezier(0,0,.2,1) infinite;}
.li-record-fab-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:#fff;}
@keyframes li-fab-ping{0%{transform:scale(1);opacity:.8;}80%,100%{transform:scale(2.2);opacity:0;}}
.li-record-fab-label{font:800 13.5px/1 'Inter',sans-serif;letter-spacing:.04em;text-transform:uppercase;}
@media (max-width:700px){.li-record-fab{display:none;}}
.li-rating-row{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap;align-items:center;}
/* Card quick actions: a quiet bar across the card bottom — focus the
   homepage map, or hand off to the platform's maps app. */
.li-row{flex-wrap:wrap;}
.li-row-bar{flex-basis:calc(100% + 24px);display:flex;border-top:1px solid #EDE9DD;margin:0 -12px -12px;}
.li-bar-act{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:10px 4px;border:0;background:none;cursor:pointer;font:700 12.5px 'Inter',sans-serif;color:var(--accent);text-decoration:none;white-space:nowrap;}
.li-row-bar>*+*{border-left:1px solid #EDE9DD;}
.li-bar-act:hover{background:#F7F5EE;}
.li-row-bar>*:first-child,.li-row-bar>*:first-child .li-bar-act{border-bottom-left-radius:13px;}
.li-row-bar>*:last-child,.li-row-bar>*:last-child .li-bar-act{border-bottom-right-radius:13px;}
/* Apple devices: Get directions opens a small Apple/Google chooser. */
.li-dir-wrap{position:relative;flex:1;display:flex;}
.li-dir-menu{position:absolute;bottom:calc(100% + 6px);right:8px;z-index:8;min-width:150px;background:#fff;border:1px solid var(--paper-line);border-radius:12px;box-shadow:0 12px 28px -10px rgba(23,42,28,.35);padding:5px;}
.li-dir-menu[hidden]{display:none;}
.li-dir-menu a{display:block;padding:9px 12px;border-radius:8px;font:600 12.5px 'Inter',sans-serif;color:var(--ink);text-decoration:none;}
.li-dir-menu a:hover{background:#F0EDE1;}
.li-rating-kick{font:700 10px 'Inter',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);}
.li-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:11px;
  font-weight:700;
  padding:3px 8px;
  border-radius:var(--radius-pill);
  white-space:nowrap;
  background:#EFEBDD;
  color:var(--ink);
}
.li-badge .li-dot{width:6px;height:6px;}
/* match column — sits mid-row between the details and the save heart,
   deliberately narrower than the details side (2026-07 rebalance) */
.li-match{
  flex:none;
  align-self:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  min-width:64px;
  border-left:1px dashed var(--paper-line);
  padding-left:10px;
}
.li-match b{font:800 15px/1 'Inter',sans-serif;}
.li-match b span{font-size:9px;}
.li-match-lbl{font:700 7.5px 'Inter',sans-serif;letter-spacing:.03em;color:var(--ink-soft);white-space:nowrap;text-transform:uppercase;}
.li-match-tier{font-size:9px;font-weight:700;padding:2px 6px;border-radius:var(--radius-pill);white-space:nowrap;}
/* Phones: the long label costs the details column too much room */
@media (max-width:640px){
  .li-match{min-width:52px;padding-left:8px;}
  .li-match-lbl{display:none;}
}
/* save heart — hover + saved states standardized (rust fill when saved) */
.li-heart{
  width:34px;
  height:34px;
  border-radius:50%;
  border:1px solid var(--paper-line);
  background:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  font-size:15px;
  flex:none;
  color:#9C3A25;
  font-family:'Inter',sans-serif;
  line-height:1;
  transition:background .15s,border-color .15s;
}
.li-heart:hover{border-color:#9C3A25;background:#F3D9D2;}
.li-heart[aria-pressed="true"]{background:#9C3A25;border-color:#9C3A25;color:#fff;}
.li-heart[aria-pressed="true"]:hover{background:#83301F;border-color:#83301F;}
.li-empty{text-align:center;padding:40px 20px;color:var(--ink-soft);}
.li-empty .li-empty-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:17px;color:var(--ink);margin-bottom:6px;}
.li-empty p{font-size:13px;margin:0 0 14px;}
.li-empty button{
  display:inline-flex;
  align-items:center;
  gap:7px;
  border:1.5px solid var(--paper-line);
  border-radius:var(--radius-pill);
  padding:8px 14px;
  font-size:13px;
  font-weight:600;
  color:var(--ink);
  background:#fff;
  cursor:pointer;
  font-family:'Inter',sans-serif;
}
.li-empty button:hover{border-color:var(--accent);}

/* Layers chip lives in the map's top-left corner; its panel opens below */
.li-map .map-btn{top:10px;left:10px;bottom:auto;}
.li-map .map-panel{top:52px;left:10px;bottom:auto;}
.li-map .li-map-expand{top:10px;right:56px;bottom:auto;width:auto;height:36px;min-height:36px;}
.li-show-trails{position:absolute;top:56px;right:56px;z-index:8;display:none;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 14px;border:1px solid var(--paper-line);border-radius:999px;background:rgba(255,255,255,.96);color:var(--ink);box-shadow:0 5px 16px rgba(23,42,28,.16);font:700 12.5px 'Inter',sans-serif;cursor:pointer;}
.li-show-trails:hover{border-color:var(--accent);color:var(--accent);}
.li-show-trails[hidden]{display:none!important;}
.li-map.map-fs{position:fixed;inset:0;z-index:300;width:100vw;height:100vh;height:100dvh;display:block!important;border-radius:0;}
.li-map.map-fs #trailMap{position:absolute;inset:0;}
.li-map.map-fs .map-btn,.li-map.map-fs .map-panel{left:max(10px,env(safe-area-inset-left));}
.li-map.map-fs .li-map-expand{top:max(10px,env(safe-area-inset-top));right:calc(56px + env(safe-area-inset-right));}
.li-map.map-fs .maplibregl-ctrl-top-right{top:env(safe-area-inset-top);right:env(safe-area-inset-right);}
.li-map.map-fs .td-layer-switch{left:max(10px,env(safe-area-inset-left));bottom:max(10px,env(safe-area-inset-bottom));}
.li-map.map-fs .maplibregl-ctrl-bottom-right{right:env(safe-area-inset-right);bottom:env(safe-area-inset-bottom);}

/* Map style switch — Map · Satellite · 3D grouped in one visible control
   (bottom-left, same group on the trail map and the app map). */
.td-layer-switch{position:absolute;bottom:14px;left:14px;z-index:6;display:flex;gap:8px;}
.td-layer-switch button{padding:7px 13px;border-radius:9px;border:none;font-size:11.5px;font-weight:700;cursor:pointer;font-family:'Inter',sans-serif;background:rgba(255,255,255,.94);color:var(--ink);box-shadow:0 2px 8px rgba(23,42,28,.12);}
.td-layer-switch button.on{background:var(--ink);color:#fff;}
/* App map: the freed bottom-left slot */
.li-map .td-layer-switch{bottom:10px;left:10px;}
/* ---------- responsive: one-pane tablet app ---------- */
@media (min-width:701px) and (max-width:1040px){
  #returningCustomerHomepage{height:100vh;height:100dvh;}
  .li-toolbar{display:flex;flex-wrap:wrap;padding:9px 16px;gap:9px;}
  .li-search{order:0;flex:1;max-width:390px;}
  .li-country-wrap{order:1;}
  .li-region-wrap{order:2;}
  .li-saved-only{order:3;}
  #liFiltersWrap{order:4;}
  .li-body{display:block;min-height:0;}
  .li-body[data-pane="list"] .li-map,
  .li-body[data-pane="map"] .li-list{display:none;}
  .li-map,
  .li-list{height:100%;min-height:0;}
  .li-list{border-left:0;overflow-y:auto;}
  .li-filters-menu{right:auto;left:0;}
}

/* ---------- responsive: stacked app on small screens ---------- */
@media (max-width:700px){
  #returningCustomerHomepage{height:auto;min-height:100vh;}
  .li-top{gap:10px;padding:10px 14px;}
  .li-nav{display:none;}
  .li-greetbar{padding:12px 14px;}
  .li-toolbar{display:flex;padding:10px 14px;flex-wrap:wrap;}
  .li-dogctx-wrap{display:none;}
  .li-toolbar-greet{display:flex;width:100%;min-width:0;}
  .li-search{order:1;flex:1 1 100%;max-width:none;min-width:170px;}
  .li-country-wrap{order:2;}
  .li-region-wrap{order:3;}
  .li-saved-only{order:4;}
  #liFiltersWrap{order:5;}
  .li-record{display:inline-flex;order:6;}
  .li-top-spacer{display:none;}
  .li-top-actions{margin-left:auto;}
  .li-account-name{max-width:90px;overflow:hidden;text-overflow:ellipsis;}
  .li-body{grid-template-columns:1fr;}
  .li-map{height:46vh;min-height:300px;}
  .li-map #trailMap{position:absolute;}
  .li-cond{max-width:230px;padding:10px 12px;}
  .li-list{border-left:none;border-top:1px solid var(--paper-line);overflow:visible;}
  .li-list-head{position:static;}
  .li-filters-menu{position:fixed;top:auto;right:8px;left:8px;width:auto;max-height:70vh;}
}

/* ============================================================
   HIKE MODE — completion screen (save / discard, photos,
   "show on trail page" flag). Injected by hike-mode.js when a
   recorded hike ends.
============================================================= */
.hk-overlay{position:fixed;inset:0;z-index:400;background:var(--bg);overflow-y:auto;display:flex;align-items:flex-start;justify-content:center;padding:24px;}
.hk-card{max-width:440px;width:100%;background:var(--card);border:1px solid var(--paper-line);border-radius:16px;padding:28px;margin:auto;box-sizing:border-box;}
.hk-avatar{width:60px;height:60px;border-radius:50%;background-color:var(--accent);background-size:cover;background-position:center;color:#fff;display:grid;place-items:center;font:800 22px 'Inter',sans-serif;margin:0 auto 14px;box-shadow:0 0 0 3px #EAF3EC;}
.hk-title{font-size:23px;text-align:center;margin:0 0 4px;}
.hk-sub{margin:0;font-size:13px;color:var(--ink-soft);text-align:center;}
.hk-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0;}
.hk-stat{background:var(--bg);border-radius:12px;padding:14px 8px;text-align:center;min-width:0;}
.hk-stat b{display:block;font:900 22px 'Inter',sans-serif;color:var(--ink);white-space:nowrap;}
.hk-stat span{display:block;font-size:10px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;}
.hk-matchline{display:flex;align-items:center;gap:8px;margin-bottom:18px;flex-wrap:wrap;}
.hk-matchline .pct{font:700 13px 'Inter',sans-serif;color:var(--success);}
.hk-label{font:700 11px 'Inter',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;}
.hk-block{margin-bottom:20px;}
.hk-seg{display:flex;gap:6px;}
.hk-seg button{flex:1;padding:9px 0;border-radius:var(--radius-pill);border:1.5px solid var(--paper-line);background:#fff;color:var(--ink);font:600 12.5px 'Inter',sans-serif;cursor:pointer;}
.hk-seg button.on{background:#EAF3EC;border-color:#9FC4B0;font-weight:700;}
.hk-photos{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;}
.hk-photo{position:relative;aspect-ratio:1/1;border-radius:10px;background:var(--sage-dim) center/cover no-repeat;}
.hk-photo button{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;border:none;background:rgba(0,0,0,.55);color:#fff;cursor:pointer;font-size:11px;line-height:1;display:grid;place-items:center;padding:0;}
.hk-add{aspect-ratio:1/1;border-radius:10px;border:2px dashed var(--paper-line);background:none;cursor:pointer;color:var(--ink-soft);display:grid;place-items:center;font-size:18px;}
.hk-add:hover{border-color:var(--accent);color:var(--accent);}
.hk-share{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:10px;}
.hk-share[hidden]{display:none;}
.hk-share b{font-size:13px;display:block;color:var(--ink);}
.hk-share small{display:block;font-size:12px;color:var(--ink-soft);line-height:1.5;margin-top:2px;}
.hk-actions{display:flex;gap:10px;margin-top:20px;}
.hk-actions[hidden]{display:none;}
.hk-ghost{padding:12px 18px;border-radius:var(--radius-pill);border:1.5px solid var(--paper-line);background:transparent;color:var(--ink-soft);font:600 13px 'Inter',sans-serif;cursor:pointer;}
.hk-ghost:hover{border-color:var(--ink-soft);color:var(--ink);}
.hk-save{flex:1;border:none;border-radius:11px;padding:13px;background:var(--ink);color:#fff;font:700 13.5px 'Inter',sans-serif;cursor:pointer;}
.hk-save:hover{opacity:.94;}
.hk-discard-note{background:#F3D9D2;border-radius:12px;padding:14px 16px;margin-top:20px;}
.hk-discard-note p{margin:0 0 12px;font-size:13px;color:#9C3A25;line-height:1.5;}
.hk-discard-note .row{display:flex;gap:8px;}
.hk-danger{flex:1;border:none;border-radius:var(--radius-pill);padding:10px 16px;background:#9C3A25;color:#fff;font:700 13px 'Inter',sans-serif;cursor:pointer;}
.hk-note{margin:14px 0 0;font-size:12px;color:var(--ink-soft);text-align:center;}
.hk-outcome-block{padding:15px;border:1px solid var(--paper-line);border-radius:13px;background:var(--bg);}
.hk-outcome-intro{margin:0 0 11px;color:var(--ink-soft);font-size:12px;line-height:1.5;}
.hk-outcome-options{display:grid;gap:6px;}
.hk-outcome-options button{padding:9px 11px;border:1.5px solid var(--paper-line);border-radius:10px;background:#fff;color:var(--ink);font:600 12px 'Inter',sans-serif;text-align:left;cursor:pointer;}
.hk-outcome-options button.on{border-color:#7ead91;background:#eaf3ec;font-weight:800;}
.hk-outcome-followups{display:grid;gap:10px;margin-top:13px;}
.hk-outcome-followups[hidden]{display:none;}
.hk-outcome-followups>label,.hk-outcome-followups legend{color:var(--ink);font:700 11.5px/1.4 'Inter',sans-serif;}
.hk-outcome-followups label span,.hk-outcome-followups legend span{color:var(--ink-soft);font-weight:500;}
.hk-outcome-followups select{width:100%;margin-top:5px;padding:9px 10px;border:1px solid var(--paper-line);border-radius:9px;background:#fff;color:var(--ink);font:500 12px 'Inter',sans-serif;}
.hk-outcome-followups fieldset{margin:0;padding:0;border:0;}
.hk-hazard-options{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px;}
.hk-hazard-options label{display:inline-flex;align-items:center;gap:5px;padding:7px 9px;border:1px solid var(--paper-line);border-radius:999px;background:#fff;color:var(--ink-soft);font:600 11px 'Inter',sans-serif;}
.hk-outcome-save{width:100%;margin-top:13px;padding:10px;border:0;border-radius:10px;background:var(--ink);color:#fff;font:800 12px 'Inter',sans-serif;cursor:pointer;}
.hk-outcome-save:disabled{cursor:not-allowed;opacity:.46;}
.hk-outcome-status{min-height:17px;margin:7px 0 0;color:var(--ink-soft);font:600 11px/1.45 'Inter',sans-serif;}
@media (max-width:520px){
  .hk-overlay{padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));}
  .hk-card{padding:22px 18px;}
}

/* ============================================================
   DOG WIZARD — mobile app chrome (≤700px)
   Ported from "ORMA Dog Profile Setup": full-screen sheet,
   thin progress bar + "Step X of Y" under the title, card-style
   option rows, sticky blurred footer. All four production steps
   and their data stay exactly as they are — this is presentation
   only. Desktop keeps the centred modal with the dot stepper.
============================================================= */

/* Selected options everywhere pick up the design's accent treatment */
.dw-option.selected{background:#EAF3EC;border-color:var(--accent);color:var(--ink);}

.dw-progress{display:none;}
.dw-stepcount{display:none;}

@media (max-width:700px){
  .dw-overlay{padding:0;align-items:stretch;}
  .dw-modal{
    max-width:none;
    max-height:none;
    height:100%;
    border-radius:0;
    box-shadow:none;
    padding:calc(14px + env(safe-area-inset-top)) 0 0;
  }
  .dw-close{
    top:calc(10px + env(safe-area-inset-top));
    right:12px;
    width:34px;height:34px;
    border:1.5px solid var(--paper-line);
    border-radius:10px;
    background:#fff;
    font-size:18px;
    display:grid;place-items:center;
    padding:0;
  }
  .dw-title{
    font-size:17px;
    padding:0 54px 0 18px;
  }
  .dw-stepcount[hidden]{display:none;}
  .dw-stepcount{
    display:block;
    font:600 11px 'Inter',sans-serif;
    color:#8A9689;
    margin:2px 0 0;
    padding:0 18px;
  }
  .dw-subtitle{padding:0 18px;}
  .dw-stepper{display:none;}
  .dw-progress[hidden]{display:none;}
  .dw-progress{
    display:block;
    height:4px;
    background:rgba(27,31,25,.06);
    margin-top:12px;
  }
  .dw-progress span{
    display:block;
    height:100%;
    width:0;
    background:var(--accent);
    transition:width .25s ease;
  }
  .dw-body{padding:20px 18px 24px;}
  .dw-label{font-size:12.5px;font-weight:800;}
  .dw-input,.dw-select,.dw-textarea{
    padding:14px 15px;
    border-radius:12px;
    font-size:15px;
    background:#fff;
  }
  .dw-option{
    padding:14px 15px;
    border-radius:14px;
    font-size:13.5px;
    font-weight:800;
    color:var(--ink);
  }
  .dw-cond-item{
    border:1.5px solid var(--paper-line);
    border-radius:13px;
    padding:13px 14px;
    background:#fff;
  }
  .dw-footer{
    margin:0;
    padding:14px 16px calc(14px + env(safe-area-inset-bottom));
    background:rgba(247,244,235,.96);
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
    border-top:1px solid rgba(27,31,25,.08);
  }
  .dw-btn-primary{
    flex:1;
    padding:14px 18px;
    border-radius:12px;
    font-size:15px;
    font-weight:800;
  }
  .dw-btn-ghost{
    padding:14px 18px;
    border-radius:12px;
    font-size:14px;
    font-weight:700;
    background:#fff;
    color:var(--ink);
  }
  .dw-footer .dw-back-none{display:none;}
}
