/* NearbyCheck experience UI — full-surface product upgrade.
   Goal: make first use immediately legible, make results feel decisive, and make repeat use familiar.
   Product logic and evidence semantics remain untouched. */

:root{
  --nc-space-1:6px;
  --nc-space-2:10px;
  --nc-space-3:14px;
  --nc-space-4:20px;
  --nc-space-5:28px;
  --nc-space-6:40px;
  --nc-control:48px;
  --nc-ease:cubic-bezier(.2,.75,.25,1);
}

/* ---------- App frame ---------- */
.topbar{
  position:sticky!important;
  top:0;
  z-index:60;
  background:rgba(242,243,240,.96)!important;
  border-bottom-color:rgba(11,14,13,.82)!important;
}
.brand{
  transition:opacity .18s var(--nc-ease)!important;
}
.brand:hover{opacity:.72}
.pilot-badge{
  transition:color .18s var(--nc-ease)!important;
}
.pilot-badge:hover{color:var(--nc-ink)!important}

/* ---------- Landing: stronger first impression ---------- */
body:not(.has-live-results) .hero{
  padding-top:76px!important;
}
body:not(.has-live-results) .hero .eyebrow{
  display:inline-flex!important;
  align-items:center;
  gap:9px;
}
body:not(.has-live-results) .hero .eyebrow::before{
  content:"";
  width:22px;
  height:2px;
  background:var(--nc-accent);
}
body:not(.has-live-results) h1{
  max-width:840px!important;
  text-wrap:balance;
}
body:not(.has-live-results) .hero-copy{
  max-width:560px!important;
  font-size:16px!important;
  line-height:1.62!important;
}
body:not(.has-live-results) .search-panel{
  position:relative;
  margin-top:38px!important;
  padding:22px!important;
  border:1px solid var(--nc-ink)!important;
  border-top-width:4px!important;
  box-shadow:0 22px 60px rgba(11,14,13,.08)!important;
}
body:not(.has-live-results) .search-panel::before{
  content:"START HERE";
  position:absolute;
  top:-12px;
  right:18px;
  padding:3px 7px;
  background:var(--nc-canvas);
  color:var(--nc-faint);
  font-size:9px;
  font-weight:800;
  letter-spacing:.16em;
}

/* Quick intents are choices, not generic segmented buttons. */
body:not(.has-live-results) .quick-intents{
  border-color:var(--nc-ink)!important;
  background:var(--nc-paper)!important;
}
body:not(.has-live-results) .quick-intent{
  position:relative;
  min-height:76px!important;
  display:flex!important;
  flex-direction:column;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:5px;
  padding:12px 14px!important;
  text-align:left;
  transition:background .16s var(--nc-ease),color .16s var(--nc-ease)!important;
}
body:not(.has-live-results) .quick-intent::after{
  display:block;
  color:var(--nc-faint);
  font-size:10px;
  font-weight:560;
  line-height:1.3;
  letter-spacing:0;
}
body:not(.has-live-results) .quick-intent[data-intent="bathroom"]::after{content:"Fastest useful option"}
body:not(.has-live-results) .quick-intent[data-intent="easy-stop"]::after{content:"Parking + washroom"}
body:not(.has-live-results) .quick-intent[data-intent="kids"]::after{content:"Playground first"}
body:not(.has-live-results) .quick-intent[data-intent="dog"]::after{content:"Dog area nearby"}
body:not(.has-live-results) .quick-intent.active::after{color:#c9cfcc}
body:not(.has-live-results) .quick-intent:hover{background:#e9ebe7!important}
body:not(.has-live-results) .quick-intent.active:hover{background:var(--nc-ink)!important}

.place-search-block .control-label,
.time-row>.control-label,
.need-heading .control-label{
  color:var(--nc-ink)!important;
}
.search-field-wrap input{
  transition:border-color .16s var(--nc-ease),box-shadow .16s var(--nc-ease),background .16s var(--nc-ease)!important;
}
.search-field-wrap input:hover{border-color:var(--nc-line-strong)!important}
body:not(.has-live-results) .search-field-wrap input{
  min-height:68px!important;
  font-size:18px!important;
}
body:not(.has-live-results) .time-row{
  display:grid!important;
  grid-template-columns:74px 220px minmax(0,1fr)!important;
  align-items:center!important;
  gap:12px!important;
}
body:not(.has-live-results) .time-row>.control-label{margin:0!important}
body:not(.has-live-results) .time-tabs{width:220px!important}
body:not(.has-live-results) .future-time{margin:0!important;max-width:320px}
body:not(.has-live-results) .need-section{
  padding-top:2px;
}
.need-chip{
  transition:background .15s var(--nc-ease),border-color .15s var(--nc-ease),transform .15s var(--nc-ease)!important;
}
.need-chip:hover{transform:translateY(-1px)!important}
.primary-button{
  position:relative;
  letter-spacing:.01em!important;
  transition:background .16s var(--nc-ease),border-color .16s var(--nc-ease),transform .16s var(--nc-ease)!important;
}
.primary-button:not(:disabled):hover{transform:translateY(-1px)!important}
.primary-button:disabled{opacity:.62!important;cursor:progress!important}

/* Turn the honesty note into a compact trust ribbon. */
body:not(.has-live-results) .honesty-strip{
  display:flex!important;
  align-items:center!important;
  min-height:44px;
  margin:16px 0 72px!important;
  padding:0 14px!important;
  border:1px solid var(--nc-line)!important;
  border-left:3px solid var(--nc-accent)!important;
  background:rgba(255,255,255,.32)!important;
}
body:not(.has-live-results) .honesty-strip div:last-child{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

/* ---------- Results: decision mode ---------- */
body.has-live-results .topbar{
  box-shadow:0 1px 0 rgba(11,14,13,.08);
}
body.has-live-results .hero{
  padding-top:10px!important;
}
body.has-live-results .search-panel{
  position:relative;
}
body.has-live-results .decision-check-summary{
  position:sticky!important;
  top:58px;
  z-index:45;
  background:var(--nc-canvas)!important;
  box-shadow:0 1px 0 var(--nc-line)!important;
}
body.has-live-results .decision-check-copy strong{
  letter-spacing:-.02em!important;
}
body.has-live-results .decision-check-actions button{
  transition:background .14s var(--nc-ease),border-color .14s var(--nc-ease)!important;
}
body.has-live-results .place-search-block{
  animation:nc-reveal .2s var(--nc-ease) both;
}

body.has-live-results .results-section{
  scroll-margin-top:112px;
}
body.has-live-results .section-heading{
  min-height:58px;
}
body.has-live-results .section-heading h2{
  text-wrap:balance;
}

/* Best Match reads like the product's answer, not just a styled card. */
.po6-has-results .decision-banner{
  isolation:isolate;
  transition:transform .18s var(--nc-ease),box-shadow .18s var(--nc-ease)!important;
}
.po6-has-results .decision-banner::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:linear-gradient(105deg,rgba(40,72,232,.08),transparent 38%);
}
.po6-has-results .decision-main>strong{
  text-wrap:balance;
}
.po6-has-results .decision-use-status{
  max-width:760px;
}
.decision-brief-row strong{
  max-width:780px;
}
.po6-has-results .decision-actions>a,
.po6-has-results .decision-actions>button{
  transition:background .14s var(--nc-ease),border-color .14s var(--nc-ease),transform .14s var(--nc-ease)!important;
}
.po6-has-results .decision-actions>a:hover,
.po6-has-results .decision-actions>button:hover{
  transform:translateY(-1px);
}

/* List/Map becomes a persistent local navigation affordance. */
.po6-has-results .result-view-tabs{
  position:sticky!important;
  top:116px;
  z-index:30;
  background:var(--nc-canvas)!important;
  box-shadow:0 8px 14px -14px rgba(11,14,13,.45);
}
.po6-has-results .view-tab{
  position:relative;
  transition:color .14s var(--nc-ease)!important;
}
.po6-has-results .view-tab::after{
  content:"";
  position:absolute;
  left:50%;
  right:50%;
  bottom:-1px;
  height:2px;
  background:var(--nc-accent);
  transition:left .18s var(--nc-ease),right .18s var(--nc-ease);
}
.po6-has-results .view-tab.active::after{left:0;right:0}

/* Alternatives should invite scanning without competing with Best Match. */
.po6-has-results .place-card{
  position:relative;
  transition:background .14s var(--nc-ease),padding-left .14s var(--nc-ease)!important;
}
.po6-has-results .place-card::before{
  content:"";
  position:absolute;
  left:0;
  top:12px;
  bottom:12px;
  width:2px;
  background:transparent;
  transition:background .14s var(--nc-ease);
}
.po6-has-results .place-card:hover{
  background:rgba(255,255,255,.52)!important;
}
.po6-has-results .place-card:hover::before{background:var(--nc-accent)}
.po6-has-results .place-name{line-height:1.12!important}
.decision-card-summary{max-width:720px}

.decision-results-toggle,
.try-nearby-toggle{
  transition:background .14s var(--nc-ease),border-color .14s var(--nc-ease)!important;
}

/* Try Nearby intentionally looks one confidence tier lower. */
.try-nearby-section{
  position:relative;
}
.try-nearby-section::before{
  content:"FALLBACK OPTIONS";
  position:absolute;
  top:17px;
  right:0;
  color:var(--nc-faint);
  font-size:9px;
  font-weight:800;
  letter-spacing:.14em;
}
.try-nearby-card{
  transition:background .14s var(--nc-ease)!important;
}
.try-nearby-card:hover{background:rgba(255,255,255,.42)!important}
.try-nearby-name{line-height:1.15!important}

/* Loading should feel intentional rather than frozen. */
.results-section.search-pending .section-heading h2,
.results-section.search-pending .result-count{
  opacity:.58;
}
.results-section.search-pending::before{
  content:"Checking sources";
  display:block;
  margin:0 0 10px;
  color:var(--nc-accent);
  font-size:9px;
  font-weight:850;
  letter-spacing:.15em;
  text-transform:uppercase;
  animation:nc-pulse 1.1s ease-in-out infinite alternate;
}

/* Supporting education is calmer and more editorial. */
.how-it-works{
  margin-top:8px!important;
}
.how-it-works-disclosure>summary{
  min-height:48px;
  display:flex;
  align-items:center;
  font-size:12px!important;
  font-weight:760!important;
}
.moment-grid article{
  border-radius:2px!important;
  padding:20px!important;
}

footer{
  min-height:74px;
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

@keyframes nc-reveal{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:none}
}
@keyframes nc-pulse{
  from{opacity:.45}
  to{opacity:1}
}

@media(min-width:901px){
  body:not(.has-live-results) .hero{
    display:grid!important;
    grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr)!important;
    column-gap:56px;
    align-items:start;
  }
  body:not(.has-live-results) .hero>.eyebrow,
  body:not(.has-live-results) .hero>h1,
  body:not(.has-live-results) .hero>.hero-copy{
    grid-column:1;
  }
  body:not(.has-live-results) .hero>.search-panel{
    grid-column:2;
    grid-row:1 / span 4;
    margin-top:0!important;
  }
  body:not(.has-live-results) h1{
    font-size:clamp(48px,5vw,68px)!important;
  }
}

@media(max-width:900px){
  body:not(.has-live-results) .time-row{
    grid-template-columns:72px minmax(0,1fr)!important;
  }
  body:not(.has-live-results) .future-time{
    grid-column:2;
  }
}

@media(max-width:760px){
  .topbar{
    background:rgba(242,243,240,.98)!important;
  }
  body:not(.has-live-results) .hero{
    padding-top:38px!important;
  }
  body:not(.has-live-results) h1{
    font-size:clamp(42px,13vw,56px)!important;
    line-height:.94!important;
  }
  body:not(.has-live-results) .hero-copy{
    font-size:14px!important;
  }
  body:not(.has-live-results) .search-panel{
    margin-top:28px!important;
    padding:14px!important;
    box-shadow:0 16px 38px rgba(11,14,13,.07)!important;
  }
  body:not(.has-live-results) .quick-intent{
    min-height:66px!important;
    padding:10px 11px!important;
  }
  body:not(.has-live-results) .quick-intent::after{
    font-size:9px;
  }
  body:not(.has-live-results) .search-field-wrap input{
    min-height:58px!important;
    font-size:15px!important;
  }
  body:not(.has-live-results) .honesty-strip{
    margin-bottom:46px!important;
  }

  body.has-live-results .decision-check-summary{
    top:54px;
  }
  body.has-live-results .results-section{
    scroll-margin-top:104px;
  }
  .po6-has-results .result-view-tabs{
    top:106px;
  }
  .po6-has-results .decision-banner::after{
    background:linear-gradient(145deg,rgba(40,72,232,.10),transparent 46%);
  }
  .po6-has-results .place-card::before{display:none}
  .try-nearby-section::before{display:none}

  footer{
    min-height:92px;
    flex-direction:column;
    align-items:flex-start!important;
    justify-content:center;
  }
}

@media(max-width:420px){
  body:not(.has-live-results) .quick-intent{
    min-height:62px!important;
  }
  body.has-live-results .section-heading{
    grid-template-columns:1fr!important;
    gap:4px!important;
  }
  body.has-live-results .result-count{
    max-width:none!important;
    text-align:left!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .brand,.pilot-badge,.quick-intent,.need-chip,.primary-button,.search-field-wrap input,
  .decision-banner,.decision-actions>a,.decision-actions>button,.view-tab,.view-tab::after,
  .place-card,.place-card::before,.try-nearby-card,.decision-results-toggle,.try-nearby-toggle{
    transition:none!important;
  }
  .results-section.search-pending::before{animation:none!important}
  body.has-live-results .place-search-block{animation:none!important}
}
