:root{
  --ink:#0F2038;          
  --ink-soft:#3A4A63;     
  --paper:#F4F2EC;        
  --paper-raised:#FFFFFF; 
  --line:#D8D4C8;         

  --tier-self:#3A5F59; 
  --tier-self-bg:#E4EDE9;
  --tier-pharmacy:#0F6567; 
  --tier-pharmacy-bg:#DDEDEC;
  --tier-gp:#14577F;        
  --tier-gp-bg:#DCE9F2;
  --tier-111:#454877;       
  --tier-111-bg:#E4E4EF;
  --tier-utc:#8A5313;       
  --tier-utc-bg:#F5E7D3;
  --tier-ae:#8F2C22;        
  --tier-ae-bg:#F5DBD7;
  --accent-gold:#7A5A08;    

  --font-display:'Barlow Condensed', 'Noto Sans TC', sans-serif;
  --font-body:'Source Sans 3', 'Noto Sans TC', sans-serif;
  --fw-regular:400;
  --fw-bold:700;
  --fs-sm:0.875rem;
  --fs-base:1.0625rem;
  --fs-display:clamp(2.1rem, 5vw, 3.4rem);

/*Spacing*/
  --sp-1:8px;
  --sp-2:16px;
  --sp-3:24px;
  --sp-4:32px;
  --sp-5:48px;
  --sp-6:64px;

  --radius:6px;
  --shadow-sm:0 2px 8px rgba(15,32,56,0.07);
  --shadow-md:0 10px 26px rgba(15,32,56,0.12);
}

*{box-sizing:border-box;}
html{ scroll-behavior:smooth; font-size:19px; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.001ms !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-weight:var(--fw-regular);
  font-size:var(--fs-base);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

a{ color:var(--tier-gp); }
:focus-visible{ outline:3px solid var(--tier-utc); outline-offset:3px; border-radius:2px; }

.wrap{
  max-width:1440px;
  margin:0 auto;
  padding:0 var(--sp-4);
}

.skip-link{
  position:absolute;
  top:-100px;
  left:var(--sp-2);
  background:var(--ink);
  color:#fff;
  padding:var(--sp-1) var(--sp-2);
  border-radius:var(--radius);
  font-family:var(--font-body);
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  z-index:100;
  transition:top 0.15s ease;
}
.skip-link:focus{ top:var(--sp-2); }

.sr-only{
  position:absolute;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.label-text{
  font-family:var(--font-body);
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  letter-spacing:0.04em;
  text-transform:uppercase;
}

.emergency-banner{
  background:var(--ink);
  color:#fff;
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  letter-spacing:0.01em;
  padding:var(--sp-2) var(--sp-3);
  text-align:center;
}
.emergency-banner strong{ color:#F6D2BE; }

header.hero{
  background:var(--ink);
  color:#fff;
  position:relative;
  overflow:hidden;
}
header.hero::before{
  content:"";
  position:absolute;
  top:-140px; right:-140px;
  width:380px; height:380px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(20,87,127,0.35) 0%, rgba(20,87,127,0) 70%);
  pointer-events:none;
}
.hero-intro{
  max-width:700px;
  padding:var(--sp-4) 0;
  position:relative;
  animation:heroIn 0.6s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes heroIn{
  from{ opacity:0; transform:translateY(10px); }
  to{ opacity:1; transform:translateY(0); }
}
.site-logo{ height:34px; width:auto; display:block; margin-bottom:var(--sp-2); }
.eyebrow{
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:#B7C6DC;
  margin:0 0 var(--sp-2) 0;
}
h1.title{
  font-family:var(--font-display);
  font-weight:var(--fw-bold);
  font-size:var(--fs-display);
  line-height:1;
  letter-spacing:-0.01em;
  margin:0 0 var(--sp-2) 0;
}
.hero-sub{
  font-size:var(--fs-base);
  color:#DCE4EF;
  max-width:58ch;
  margin:0 0 var(--sp-1) 0;
}
.hero-byline{
  font-size:var(--fs-sm);
  color:#9FB0C7;
  margin-top:var(--sp-2);
}

.tabbar{
  background:var(--paper-raised);
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:30;
  box-shadow:var(--shadow-sm);
}
.tabbar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--sp-2);
  flex-wrap:wrap;
  padding:var(--sp-1) 0;
}
.tabbar-right{
  display:flex;
  align-items:center;
  gap:var(--sp-2);
  flex-shrink:0;
}
.tabs{
  position:relative;
  display:flex;
  gap:4px;
}
.tab-indicator{
  position:absolute;
  bottom:0;
  left:0;
  height:3px;
  width:0;
  background:var(--tier-gp);
  border-radius:2px 2px 0 0;
  transition:transform 0.3s cubic-bezier(.2,.8,.2,1), width 0.3s cubic-bezier(.2,.8,.2,1);
  pointer-events:none;
}
.tab-btn{
  font-family:var(--font-display);
  font-weight:var(--fw-bold);
  font-size:var(--fs-base);
  letter-spacing:0.01em;
  text-transform:uppercase;
  padding:var(--sp-2) var(--sp-2);
  min-height:44px;
  border:0;
  background:transparent;
  color:var(--ink-soft);
  cursor:pointer;
  transition:color 0.15s ease;
  position:relative;
  z-index:1;
}
.tab-btn:hover{ color:var(--ink); }
.tab-btn[aria-selected="true"]{ color:var(--ink); }

/* language toggle */
.lang-toggle{
  display:flex;
  background:var(--ink);
  border-radius:100px;
  padding:3px;
  flex-shrink:0;
}
.lang-toggle button{
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  letter-spacing:0.02em;
  padding:var(--sp-1) var(--sp-2);
  min-height:36px;
  border-radius:100px;
  border:0;
  background:transparent;
  color:#B7C6DC;
  cursor:pointer;
  transition:background 0.2s ease, color 0.2s ease;
}
.lang-toggle button[aria-pressed="true"]{
  background:var(--paper);
  color:var(--ink);
}

.zoom-toggle{
  display:flex;
  align-items:center;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:100px;
  padding:3px;
  flex-shrink:0;
  gap:1px;
}
.zoom-toggle button{
  font-family:var(--font-display);
  font-weight:var(--fw-bold);
  font-size:var(--fs-base);
  width:34px;
  height:34px;
  border-radius:50%;
  border:0;
  background:transparent;
  color:var(--ink-soft);
  cursor:pointer;
  transition:background 0.15s ease, color 0.15s ease;
  display:flex;
  align-items:center;
  justify-content:center;
}
.zoom-toggle button:hover{ background:var(--paper-raised); color:var(--ink); }
.zoom-toggle button:disabled{ opacity:0.35; cursor:default; }
.zoom-toggle button:disabled:hover{ background:transparent; }
.zoom-toggle .zoom-label{
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  color:var(--ink-soft);
  width:38px;
  text-align:center;
}

.chip-hint{
  font-size:var(--fs-sm);
  color:var(--ink-soft);
  margin:var(--sp-3) 0 0 0;
}
.location-note{
  font-size:var(--fs-sm);
  color:var(--ink-soft);
  margin:var(--sp-1) 0 0 0;
}
.quickpick-heading{
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  letter-spacing:0.03em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin:var(--sp-3) 0 var (--sp-1) 0;
}
.quickpick{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(110px, 1fr));
  gap:var(--sp-2);
  margin:0 0 var(--sp-3) 0;
}
.quickpick-tile{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  padding:var(--sp-2);
  background:var(--paper-raised);
  cursor:pointer;
  text-align:center;
  transition: box-shadow 0.15s ease, border-color 0.15s ease, transform 0.1s ease, background 0.15s ease;
}
.quickpick-tile:hover{
  box-shadow:var(--shadow--sm);
  border-color:var(--tier-gp);
}
.quickpick-title:active{transform:scale(0.97);}
.quickpick-tile.active{
  background:var(--tier-gp-bg);
  border-color:var(--tier-gp);
}
.quickpick-icon{
  width:40px;
  height:40px;
  color:var(--ink);
  flex-shrink:0;
}
.quickpick-icon svg{
  width:100%;
  height:100%;
}
.quickpick-label{
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  color:var(--ink);
}

.directory{
  display:flex;
  flex-wrap:wrap;
  gap:var(--sp-2);
  align-items:center;
  padding:var(--sp-2) 0 var(--sp-3) 0;
}
.search-box{
  flex:1 1 240px;
  display:flex;
  align-items:center;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:var(--sp-2);
  background:var(--paper-raised);
  transition:border-color 0.2s ease, box-shadow 0.2s ease;
}
.search-box:focus-within{
  border-color:var(--tier-gp);
  box-shadow:0 0 0 3px rgba(20,87,127,0.18);
}
.search-box input{
  border:0;
  background:transparent;
  width:100%;
  font-family:var(--font-body);
  font-size:var(--fs-base);
  color:var(--ink);
}
.search-box input:focus{ outline:none; }
.search-box svg{ flex-shrink:0; margin-right:var(--sp-1); opacity:0.55; }

#chipRow{
  display:flex;
  flex-wrap:wrap;
  gap:var(--sp-1);
}
.chip{
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  letter-spacing:0.01em;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:10px 16px;
  min-height:40px;
  border-radius:100px;
  border:1.5px solid var(--line);
  background:var(--paper-raised);
  color:var(--ink-soft);
  cursor:pointer;
  transition:background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.1s ease, box-shadow 0.15s ease;
}
.chip-icon{ width:15px; height:15px; display:flex; }
.chip-icon svg{ width:100%; height:100%; }
.chip:hover{ box-shadow:var(--shadow-sm); }
.chip:active{ transform:scale(0.96); }
.chip[aria-pressed="true"]{ color:#fff; border-color:transparent; }
.chip.tier-self[aria-pressed="true"]{ background:var(--tier-self); }
.chip.tier-pharmacy[aria-pressed="true"]{ background:var(--tier-pharmacy); }
.chip.tier-gp[aria-pressed="true"]{ background:var(--tier-gp); }
.chip.tier-111[aria-pressed="true"]{ background:var(--tier-111); }
.chip.tier-utc[aria-pressed="true"]{ background:var(--tier-utc); }
.chip.tier-ae[aria-pressed="true"]{ background:var(--tier-ae); }
.chip.tier-all[aria-pressed="true"]{ background:var(--ink); }
.chip.chip-saved{
  border-color:var(--accent-gold);
  color:var(--accent-gold);
}
.chip.chip-saved[aria-pressed="true"]{
  background:var(--accent-gold);
  border-color:transparent;
  color:#fff;
}
.chip-star-icon{ width:14px; height:14px; display:flex; }
.chip-star-icon svg{ width:100%; height:100%; }

.result-count{
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  color:var(--ink-soft);
  margin-left:auto;
  white-space:nowrap;
}

section[role="tabpanel"]{ padding:var(--sp-1) 0 var(--sp-6) 0; }
.section-note{
  color:var(--ink-soft);
  font-size:var(--fs-base);
  max-width:90ch;
  margin:0 0 var(--sp-3) 0;
}

.grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));
  gap:var(--sp-3);
}
.card{
  background:var(--paper-raised);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:var(--sp-3);
  border-left:5px solid var(--tier-color, var(--ink));
  display:flex;
  flex-direction:column;
  gap:var(--sp-2);
  opacity:0;
  transform:translateY(14px);
  transition:opacity 0.5s cubic-bezier(.2,.8,.2,1), transform 0.5s cubic-bezier(.2,.8,.2,1), box-shadow 0.2s ease, border-left-width 0.2s ease;
}
.card.in-view{ opacity:1; transform:translateY(0); }
.card:hover{
  box-shadow:var(--shadow-md);
  border-left-width:8px;
  transform:translateY(-3px);
}
.card-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:var(--sp-1);
}
.card-title-row{
  display:flex;
  align-items:flex-start;
  gap:var(--sp-1);
  flex:1;
}
@keyframes saveBounce{
  0%{transform: scale(1);}
  40%{transform: scale(1.35);}
  100%{transform:scale(1);}
}
.save-btn.bounce{animation:saveBounce 0.35s ease}
.save-btn{
  border:0;
  background:transparent;
  cursor:pointer;
  padding:2px;
  flex-shrink:0;
  color:var(--line);
  transition:color 0.15s ease, transform 0.1s ease;
}
.save-btn:hover{ color:var(--accent-gold); }
.save-btn:active{ transform:scale(0.9); }
.save-btn svg{ width:20px; height:20px; display:block; }
.save-btn[aria-pressed="true"]{ color:var(--accent-gold); }
.card-title{
  font-family:var(--font-body);
  font-weight:var(--fw-bold);
  font-size:var(--fs-base);
  margin:0;
}
.tier-tag{
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  padding:5px 11px;
  border-radius:100px;
  white-space:nowrap;
  color:var(--tier-color, var(--ink));
  background:var(--tier-bg, var(--paper));
}
.card-row{ font-size:var(--fs-base); }
.card-row .k{
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  letter-spacing:0.03em;
  text-transform:uppercase;
  color:var(--ink-soft);
  display:block;
  margin-bottom:var(--sp-1);
}
.card-actions{
  display:flex;
  flex-wrap:wrap;
  gap:var(--sp-1);
  margin-top:4px;
}

.locate-btn, .share-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  background:transparent;
  border-radius:100px;
  padding:9px 16px;
  min-height:38px;
  cursor:pointer;
  transition:background 0.15s ease, color 0.15s ease;
}
.locate-btn{
  color:var(--tier-gp);
  border:1px solid var(--tier-gp);
}
.locate-btn:hover{ background:var(--tier-gp); color:#fff; }
.locate-btn svg{ width:14px; height:14px; }
.share-btn{
  color:var(--ink-soft);
  border:1px solid var(--line);
}
.share-btn:hover{
  background:var(--ink);
  color:#fff;
  border-color:var(--ink);
}
.share-btn svg{width:14px; height:14px;}

.toast{
  position:fixed;
  left:50%;
  bottom:90px;
  transform:translateX(-50%) translateY(10px);
  background:var(--ink);
  color:#fff;
  padding:12px 22px;
  border-radius:100px;
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  opacity:0;
  pointer-events:none;
  transition:opacity 0.25s ease, transform 0.25s ease;
  z-index:60;
  box-shadow:var(--shadow-md);
  white-space:nowrap;
}
.toast.visible{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}

.empty-state{
  font-weight:var(--fw-bold);
  font-size:var(--fs-base);
  color:var(--ink-soft);
  padding:var(--sp-5) 0;
}

.firstaid-card{
  background: var(--paper-raised);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:var(--sp-3);
  margin-bottom:var(--sp-2);
  opacity: 0 ;
  transform: translateY(10px);
  transition: opacity 0.45s ease, transform 0.45s ease;
}
.firstaid-card.in-view{
  opacity:1; 
  transform:translateY(0)
};
.firstaid-title{
  font-family:var(--font-body);
  font-weight:var(--fw-bold);
  font-size:var(--fs-base);
  margin: 0 0 var(--sp-1) 0;
}
.firstaid-when{
  font-size:var(--fs-base);
  color:var(--ink-soft);
  margin:0 0 var(--sp-2) 0;
}
.firstaid-when .k{
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  letter-spacing:0.03em;
  text-transform:uppercase;
  color:var(--ink-soft);
  display:block;
  margin-bottom:4px;
}
.firstaid-steps{
  margin:0 0 var(--sp-2) 0;
  padding-left:22px;
}
.firstaid-steps li{
  font-size:var(--fs-base);
  color:var(--ink);
  margin-bottom:var(--sp-1);
}
.firstaid-warning{
  font-size:var(--fs-sm);
  font-weight:var(--fw-bold);
  color:var(--tier-ae);
  background:var(--tier-ae-bg);
  padding:10px 14px;
  border-radius:var(--radius);
  margin:0;
}
.firstaid-sources{
  font-size:var(--fs-sm);
  color:var(--ink-soft);
  opacity:0.75;
  margin-top:var(--sp-3)
}

.conditions-nhs-link{
  display:inline-block;
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  color:var(--tier-gp);
  border:1.5px solid var(--tier-gp);
  padding:9px 16px;
  border-radius:100px;
  text-decoration:none;
  margin-bottom:var(--sp-3);
}
.conditions-nhs-link:hover{ 
  background:var(--tier-gp); 
  color:#fff; 
}
.conditions-category{
  margin-bottom:var(--sp-4);
  opacity:0;
  transform:translateY(10px);
  transition:opacity 0.45s ease, transform 0.45s ease;
}
.conditions-category.in-view{ opacity:1; transform:translateY(0); }
.conditions-category-heading{
  font-family:var(--font-display);
  font-weight:var(--fw-bold);
  font-size:1.4rem;
  text-transform:uppercase;
  letter-spacing:0.01em;
  color:var(--ink);
  margin:0 0 var(--sp-2) 0;
  padding-bottom:var(--sp-1);
  border-bottom:2px solid var(--line);
}
.conditions-category-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
  gap:var(--sp-2);
}
.conditions-item{
  background:var(--paper-raised);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:var(--sp-2);
  display:flex;
  flex-direction:column;
  gap:var(--sp-1);
}
.conditions-item-title{
  font-family:var(--font-body);
  font-weight:var(--fw-bold);
  font-size:var(--fs-base);
  margin:0;
}
.conditions-item-summary{
  font-size:var(--fs-sm);
  color:var(--ink-soft);
  margin:0;
}
.conditions-item-actions{
  display:flex;
  flex-wrap:wrap;
  gap:var(--sp-1);
  margin-top:4px;
}
.conditions-link, .conditions-external-link{
  display:inline-flex;
  align-items:center;
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  background:transparent;
  border-radius:100px;
  padding:7px 14px;
  cursor:pointer;
  text-decoration:none;
  transition:background 0.15s ease, color 0.15s ease;
}
.conditions-link{ 
  color:var(--tier-gp); 
  border:1px solid var(--tier-gp); 
}
.conditions-link:hover{ 
  background:var(--tier-gp); 
  color:#fff; 
}
.conditions-external-link{ 
  color:var(--ink-soft); 
  border:1px solid var(--line); 
}
.conditions-external-link:hover{ 
  background:var(--ink); 
  color:#fff; 
  border-color:var(--ink); 
}

.story-section{ background:transparent; }
.story-intro{
  max-width:100%;
  color:var(--ink-soft);
  font-size:var(--fs-base);
  margin-bottom:var(--sp-4);
}
.story-intro em{ color:var(--tier-ae); font-style:normal; font-weight:var(--fw-bold); }
.timeline{
  display:flex;
  flex-direction:column;
  gap:0;
  position:relative;
}
.timeline::before{
  content:"";
  position:absolute;
  left:7px; top:0; bottom:0;
  width:1px;
  background:linear-gradient(to bottom, var(--tier-ae), var(--line));
  transform:scaleY(0);
  transform-origin:top;
  transition:transform 1.1s cubic-bezier(.2,.8,.2,1);
}
.timeline.in-view::before{ transform:scaleY(1); }
.timeline-item{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:var(--sp-3);
  padding:var(--sp-3) 0 var(--sp-3) 28px;
  border-top:1px solid var(--line);
  position:relative;
  opacity:0;
  transform:translateY(10px);
  transition:opacity 0.5s ease, transform 0.5s ease;
}
.timeline-item.in-view{ opacity:1; transform:translateY(0); }
.timeline-item::before{
  content:"";
  position:absolute;
  left:2px; top:35px;
  width:11px; height:11px;
  border-radius:50%;
  background:var(--tier-ae);
}
.timeline-item:last-child{ border-bottom:1px solid var(--line); }
.timeline-date{
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  color:var(--tier-ae);
}
.timeline-title{
  font-family:var(--font-body);
  font-weight:var(--fw-bold);
  font-size:var(--fs-base);
  margin:0 0 var(--sp-1) 0;
}
.timeline-body{ color:var(--ink-soft); font-size:var(--fs-base); max-width:80ch; }
@media(max-width:560px){
  .timeline-item{ grid-template-columns:1fr; gap:6px; padding-left:22px; }
}

.support-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(280px,1fr));
  gap:var(--sp-2);
}
.support-item{
  background:var(--paper-raised);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:var(--sp-3);
  opacity:0;
  transform:translateY(10px);
  transition:opacity 0.45s ease, transform 0.45s ease, box-shadow 0.2s ease;
}
.support-item.in-view{ opacity:1; transform:translateY(0); }
.support-item:hover{ box-shadow:var(--shadow-md); }
.support-item h3{
  font-family:var(--font-body);
  font-weight:var(--fw-bold);
  font-size:var(--fs-base);
  margin:0 0 var(--sp-1) 0;
}
.support-item p{
  font-size:var(--fs-base);
  color:var(--ink-soft);
  margin:0;
}

footer{ padding:var(--sp-4) 0 var(--sp-5) 0; border-top:1px solid var(--line); }
footer p{ font-size:var(--fs-sm); color:var(--ink-soft); max-width:100%; margin:0 0 var(--sp-2) 0; }
.footer-meta{
  font-size:var(--fs-sm);
  color:var(--ink-soft);
  opacity:0.8;
}
.footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:var(--sp-2);
  margin-top:var(--sp-3);
}
.footer-links a{
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  color:var(--ink);
  display:inline-block;
  background:var(--paper-raised);
  border:1.5px solid var(--line);
  padding:10px 18px;
  border-radius:100px;
  text-decoration:none;
}
.footer-links a:hover{
  border-color:var(--tier-gp);
  color:var(--tier-gp);
}

.lang-fading{ animation:langFade 0.3s ease; }
@keyframes langFade{ 0%{ opacity:0.3; } 100%{ opacity:1; } }

.scroll-top{
  position:fixed;
  right:22px;
  bottom:22px;
  width:46px;
  height:46px;
  border-radius:50%;
  border:0;
  background:var(--ink);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:var(--shadow-md);
  opacity:0;
  transform:translateY(10px);
  pointer-events:none;
  transition:opacity 0.25s ease, transform 0.25s ease, background 0.15s ease;
  z-index:40;
}
.scroll-top.visible{ opacity:1; transform:translateY(0); pointer-events:auto; }
.scroll-top:hover{ background:var(--tier-gp); }
.scroll-top svg{ width:20px; height:20px; }

/*legal Page*/
.legal-page main{ padding:var(--sp-5) 0 var(--sp-6) 0; }
.legal-back{
  display:inline-block;
  font-weight:var(--fw-bold);
  font-size:var(--fs-sm);
  color:var(--tier-gp);
  margin-bottom:var(--sp-3);
}
.legal-page h1{
  font-family:var(--font-display);
  font-weight:var(--fw-bold);
  font-size:var(--fs-display);
  margin:0 0 var(--sp-4) 0;
}
.legal-section{
  padding:var(--sp-3) 0;
  border-top:1px solid var(--line);
  max-width:80ch;
}
.legal-section:last-child{ border-bottom:1px solid var(--line); }
.legal-section h2{
  font-family:var(--font-body);
  font-weight:var(--fw-bold);
  font-size:var(--fs-base);
  margin:0 0 var(--sp-1) 0;
}
.legal-section p{
  font-size:var(--fs-base);
  color:var(--ink-soft);
  margin:0;
}

/*404 Not Found*/
.notfound-wrap{
  min-height:70vh;
  display:flex;
  align-items:center;
}
.notfound-code{
  font-family:var(--font-display);
  font-weight:var(--fw-bold);
  font-size:clamp(4rem, 14vw, 9rem);
  line-height:0.9;
  color:var(--tier-gp);
  margin: 0 0 var(--sp-2) 0;
}
.notfound-title{
  font-family:var(--font-display);
  font-weight:var(--fw-bold);
  font-size: var(--fs-display);
  margin: 0 0 var(--sp-2) 0;
}
.notfound-body{
  font-size:var(--fs-base);
  color:var(--ink-soft);
  max-width:60ch;
  margin: 0 0 var(--sp-3) 0 ;
}
.notfound-link{
  display:inline-block;
  font-weight: var(--fw-bold);
  color:#fff;
  background:var(--ink);
  padding:12px 22px;
  border-radius:100px;
  text-decoration:none;
}
.notfound-link:hover{background: var(--tier-gp);}

/*Mobile*/
@media(max-width:640px){
  html{ font-size:16.5px; }
  .wrap{ padding:0 var(--sp-2); max-width:100%; }

  .emergency-banner{ padding:var(--sp-2); text-align:left; }

  .hero-intro{ padding:var(--sp-3) 0; }
  .site-logo{ height:28px; margin-bottom:var(--sp-1); }

  .tabbar-inner{ padding:var(--sp-1) 0; gap:var(--sp-1); }
  .tab-btn{ font-size:var(--fs-base); padding:var(--sp-1) var(--sp-1); }
  .lang-toggle button{ padding:6px 11px; min-height:32px; }
  .zoom-toggle button{ width:28px; height:28px; }
  .zoom-toggle .zoom-label{ display:none; }

  .directory{ padding:var(--sp-2) 0; flex-direction:column; align-items:stretch; }
  .search-box{ flex:1 1 100%; }
  #chipRow{
    flex-wrap:nowrap;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding-bottom:2px;
  }
  #chipRow::-webkit-scrollbar{ display:none; }
  .chip{ flex-shrink:0; }
  .result-count{ margin-left:0; }

  section[role="tabpanel"]{ padding:var(--sp-1) 0 var(--sp-4) 0; }
  .section-note{ margin-bottom:var(--sp-2); }

  .grid{ grid-template-columns:1fr; gap:var(--sp-2); }
  .card{ padding:var(--sp-2); }

  .support-grid{ grid-template-columns:1fr; }

  footer{ padding:var(--sp-3) 0 var(--sp-4) 0; }

  .scroll-top{ right:16px; bottom:16px; width:42px; height:42px; }
}

/*Print*/
@media print{
  .emergency-banner,
  header.hero,
  .tabbar,
  footer,
  .scroll-top,
  .toast,
  .save-btn,
  .share-btn,
  .locate-btn,
  .chip-hint,
  .location-note,
  .directory,
  .legal-back,
  .lang-toggle,
  .zoom-toggle{display:none !important}
  body{background:#fff; color:#000;}
  .wrap{max-width:100%; padding:0;}
  section[role="tabpanel"][hidden]{display:none !important}
  .card,.support-item{
    break-inside:avoid;
    box-shadow:none;
    border:1px solid #999;
    opacity:1;
    transform:none
  }
  .grid{gap:12px;}
  a{color:#000; text-decoration:underline}
}
