/* Young Travelers design system. Change the tokens here to restyle the whole site. */
@font-face{font-family:"Inter";font-weight:400;font-style:normal;font-display:swap;src:url(fonts/inter-Regular.woff) format("woff")}
@font-face{font-family:"Inter";font-weight:600;font-style:normal;font-display:swap;src:url(fonts/inter-SemiBold.woff) format("woff")}
@font-face{font-family:"Inter";font-weight:700;font-style:normal;font-display:swap;src:url(fonts/inter-Bold.woff) format("woff")}
@font-face{font-family:"Lora";font-weight:400 700;font-style:normal;font-display:swap;src:url(fonts/lora.woff) format("woff")}

:root{
  --ink:#0A2540;          /* text and headings (navy) */
  --muted:#4A5F75;        /* secondary text */
  --sky:#0A8AD0;          /* logo blue: graphics and large elements */
  --brand:#0A6FAE;        /* buttons and links (passes contrast with white text) */
  --brand-d:#085A8D;
  --brand-soft:#E3F1FA;
  --bg:#F1F7FC;           /* page background (mist) */
  --surface:#fff;
  --line:#D9E5EF; --line-strong:#B8CBDC;
  --good:#0F6B45; --good-bg:#E2F3EA;
  --info:#0A6FAE; --info-bg:#E3F1FA;
  --warn:#8A5200; --warn-bg:#FFF1D1;
  --bad:#A1262B; --bad-bg:#FDEAEA;
  --r:14px; --r-sm:10px;
  --font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --serif:"Lora",Georgia,"Times New Roman",serif;
  --shadow:0 1px 2px rgba(10,37,64,.06),0 8px 24px rgba(10,37,64,.07);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.6 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--brand)}
h1,h2,h3{margin:0}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.wrap.read{max-width:760px}

/* header */
header.top{background:var(--surface);border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:72px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.logo img{display:block;height:40px;width:auto}
nav{display:flex;align-items:center;gap:6px;white-space:nowrap}
nav a{text-decoration:none;font-weight:600;font-size:.97rem;color:var(--muted);padding:9px 12px;border-radius:999px}
nav a:hover{color:var(--ink);background:var(--bg)}
nav a.cta{background:var(--brand);color:#fff;padding:9px 18px;margin-left:6px}
nav a.cta:hover{background:var(--brand-d);color:#fff}
.logo .admin-tag{font-size:.75rem;font-weight:700;color:var(--muted);background:var(--brand-soft);border-radius:999px;padding:3px 10px}

/* page titles on inner pages */
.hero{padding:44px 0 8px}
.hero h1{font:600 clamp(2rem,5vw,2.8rem)/1.12 var(--serif);letter-spacing:-.01em;max-width:18em;text-wrap:balance}
.hero p{color:var(--muted);margin:12px 0 0;max-width:36em;font-size:1.1rem}

/* home: one navy band, one search card */
.band{background:var(--ink);color:#fff;padding:48px 0 92px}
.band h1{font:600 clamp(2.3rem,6.2vw,3.9rem)/1.08 var(--serif);letter-spacing:-.015em;max-width:13em;text-wrap:balance}
.band p{margin:16px 0 0;max-width:32em;color:#C9DAEA;font-size:1.12rem}
.search{background:var(--surface);border-radius:20px;box-shadow:var(--shadow);padding:22px;margin:-64px 0 0;position:relative;border:1px solid var(--line)}
.q-label{display:block;font-weight:600;font-size:1rem;margin:0 0 12px;color:var(--ink)}
.tags{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.tags button{all:unset;box-sizing:border-box;cursor:pointer}
.tags button:focus-visible{outline:3px solid var(--sky);outline-offset:3px}

/* key tag: the age, shaped like a hotel key fob */
.tag,.tags button{position:relative}
.tags button.t{width:84px;height:96px;border-radius:14px 14px 18px 18px;background:var(--brand-soft);color:var(--ink);display:flex;align-items:flex-end;justify-content:center;padding-bottom:12px;font:600 2rem/1 var(--serif);border:2px solid transparent;transition:background .15s,color .15s}
.tags button.t::before{content:"";position:absolute;top:10px;left:50%;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--surface);box-shadow:inset 0 1px 2px rgba(10,37,64,.25)}
.tags button.t:hover{background:#D3E9F7}
.tags button.t[aria-pressed=true]{background:var(--ink);color:#fff}
.tags button.any{padding:12px 14px;border-radius:999px;font-weight:600;font-size:.98rem;color:var(--brand);align-self:center}
.tags button.any[aria-pressed=true]{background:var(--brand-soft);color:var(--ink)}
.tags button.any:hover{background:var(--bg)}
.bar{display:flex;align-items:center;gap:10px;border:1.5px solid var(--line-strong);border-radius:14px;padding:0 14px;margin-top:20px;background:#fff}
.bar:focus-within{border-color:var(--sky);box-shadow:0 0 0 4px rgba(10,138,208,.18)}
.bar svg{flex:none;color:var(--muted)}
.bar input{border:0!important;box-shadow:none!important;outline:none!important;padding:15px 4px!important;font-size:1.08rem;width:100%;background:transparent}
.row2{display:flex;justify-content:flex-end;margin-top:8px}
.linkbtn{background:none;border:0;color:var(--brand);font:600 .96rem var(--font);cursor:pointer;padding:8px 4px}
.linkbtn:hover{text-decoration:underline}
.more{display:none;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-top:10px;padding-top:16px;border-top:1px solid var(--line)}
.more.open{display:grid}
.how{margin:18px 2px 0;color:var(--muted);font-size:.95rem;max-width:44em}

/* results */
.meta{margin:30px 0 14px}
.count{font:600 1.35rem/1.2 var(--serif);color:var(--ink)}
.hlist{display:grid;gap:12px;align-items:start;grid-template-columns:1fr}
@media(min-width:900px){.hlist{grid-template-columns:1fr 1fr;gap:14px}}
details.h{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
details.h:hover{border-color:var(--line-strong)}
details.h[open]{border-color:var(--sky);box-shadow:var(--shadow)}
details.h summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:14px 16px;border-radius:var(--r)}
details.h summary::-webkit-details-marker{display:none}
details.h summary:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.tile{position:relative;width:64px;height:72px;border-radius:11px 11px 14px 14px;background:var(--brand-soft);color:var(--ink);display:flex;align-items:flex-end;justify-content:center;padding-bottom:9px;font:600 1.5rem/1 var(--serif);flex:none}
.tile::before{content:"";position:absolute;top:8px;left:50%;width:9px;height:9px;margin-left:-4.5px;border-radius:50%;background:var(--surface);box-shadow:inset 0 1px 2px rgba(10,37,64,.25)}
.tile.hi{background:var(--ink);color:#fff}
.hname{font-weight:600;line-height:1.3}
.hsub{color:var(--muted);font-size:.95rem;margin-top:1px}
.src{display:inline-block;margin-top:6px;font-size:.86rem;font-weight:600}
.src::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;background:currentColor;vertical-align:0}
.t-confirmed .src{color:var(--good)}
.t-website .src{color:var(--info)}
.t-user_reported .src{color:var(--warn)}
.t-unverified .src{color:var(--muted)}
.chev{width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-2px) rotate(45deg);margin-right:4px}
details.h[open] .chev{transform:translateY(2px) rotate(-135deg)}
.detail{padding:4px 18px 18px 96px;display:grid;gap:12px}
.detail dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0;font-size:.96rem}
.detail dt{color:var(--muted)}
.detail dd{margin:0}
.exc{background:var(--warn-bg);border-radius:var(--r-sm);padding:10px 14px;font-size:.95rem}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
@media(max-width:560px){.detail{padding-left:16px}.tile{width:56px;height:64px;font-size:1.3rem}}

/* controls */
label{display:block;font-weight:600;font-size:.93rem;margin:0 0 6px}
input,select,textarea,button{font:inherit}
input[type=text],input[type=email],input[type=url],input[type=date],input[type=number],input[type=password],select,textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line-strong);border-radius:var(--r-sm);background:#fff;color:var(--ink)}
textarea{min-height:100px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--sky);box-shadow:0 0 0 4px rgba(10,138,208,.18)}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
input[type=checkbox]{width:20px;height:20px;margin:0 10px 0 0;vertical-align:-4px;accent-color:var(--brand)}
.row{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.field{margin-bottom:16px}
.hint{font-size:.9rem;color:var(--muted);margin-top:5px}
.btn{display:inline-block;background:var(--brand);color:#fff;border:0;border-radius:999px;padding:12px 22px;font-weight:600;cursor:pointer;text-decoration:none;line-height:1.2}
.btn:hover{background:var(--brand-d)}
.btn.ghost{background:#fff;color:var(--brand);border:1.5px solid var(--line-strong)}
.btn.ghost:hover{background:var(--brand-soft)}
.btn.danger{background:var(--bad)}
.btn.sm{padding:9px 16px;font-size:.93rem}
.btn:disabled{opacity:.5;cursor:default}

/* content blocks */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:26px;margin:18px 0}
.panel h2{font:600 1.45rem/1.25 var(--serif);margin:28px 0 8px}
.panel h2.mt0{margin-top:0}
.panel p,.panel li{max-width:42em}
.panel p{margin:8px 0}
.panel ul{padding-left:1.2em;margin:8px 0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin:12px 0}
.card h3{margin:0 0 2px;font-size:1.05rem}
.sub{color:var(--muted);font-size:.95rem}
.age{float:right;margin-left:12px;background:var(--brand-soft);color:var(--ink);border-radius:10px;padding:5px 12px;font:600 1.15rem var(--serif)}
.badge{display:inline-block;border-radius:999px;padding:3px 11px;font-size:.84rem;font-weight:600;margin:6px 6px 0 0}
.badge.good{background:var(--good-bg);color:var(--good)}
.badge.info{background:var(--info-bg);color:var(--info)}
.badge.warn{background:var(--warn-bg);color:var(--warn)}
.badge.bad{background:var(--bad-bg);color:var(--bad)}
.badge.plain{background:#E8EEF4;color:var(--muted)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1.5px solid var(--line-strong);background:#fff;color:var(--ink);border-radius:999px;padding:8px 16px;cursor:pointer;font-weight:600}
.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.notice{background:var(--brand-soft);border-radius:var(--r-sm);padding:12px 14px;font-size:.96rem}
.msg{padding:12px 14px;border-radius:var(--r-sm);margin:12px 0}
.msg.ok{background:var(--good-bg);color:var(--good)}
.msg.err{background:var(--bad-bg);color:var(--bad)}
.empty{text-align:center;color:var(--muted);padding:44px 16px;background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--r)}
.empty strong{color:var(--ink);font:600 1.25rem var(--serif);display:block;margin-bottom:6px}
.empty .actions{justify-content:center;margin-top:14px}

/* footer */
footer{margin:64px 0 0;padding:32px 0 40px;background:var(--surface);border-top:1px solid var(--line);color:var(--muted);font-size:.92rem}
footer p{margin:0 0 10px;max-width:46em}
footer nav{gap:4px;margin-left:-12px}
footer nav a{font-size:.92rem;padding:6px 12px}

.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:9px;border-bottom:1px solid var(--line);vertical-align:top;font-size:.95rem}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}
.tablewrap{overflow-x:auto}
dialog{border:0;border-radius:var(--r);padding:24px;max-width:560px;width:calc(100% - 32px);box-shadow:var(--shadow)}
dialog::backdrop{background:rgba(10,37,64,.55)}
.dup{background:var(--warn-bg);border-radius:var(--r-sm);padding:9px 12px;margin:8px 0;font-size:.93rem}
.small{font-size:.9rem;color:var(--muted)}

/* utility classes (replace inline styles so the Content Security Policy can forbid them) */
.mt0{margin-top:0}.mt8{margin-top:8px}.mt12{margin-top:12px}.m6{margin:6px 0}.m4{margin:4px 0}.m4pre{margin:4px 0;white-space:pre-wrap}.m10{margin:10px 0 4px}.mla{margin-left:auto}.fw4{font-weight:400}
.narrow{max-width:440px;margin:36px auto}.group{border:1px solid var(--line);border-radius:var(--r-sm);padding:14px;margin:0 0 16px}.legend-b{font-weight:600;padding:0 6px}
.dot-good{background:var(--good)}.dot-info{background:var(--info)}.dot-warn{background:var(--warn)}

/* loading placeholders */
.skel{height:98px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);position:relative}
.skel::before{content:"";position:absolute;left:16px;top:13px;width:64px;height:72px;border-radius:11px;background:#E8EEF4}
.skel::after{content:"";position:absolute;left:96px;top:30px;width:45%;height:13px;border-radius:5px;background:#E8EEF4;box-shadow:0 24px 0 -2px #EEF3F8}
.skel::before,.skel::after{background-image:linear-gradient(90deg,#E8EEF4 0,#F3F7FA 50%,#E8EEF4 100%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* phones */
@media(max-width:640px){
  .wrap{padding:0 16px}
  header.top .wrap{height:64px}
  .logo img{height:32px}
  nav a:not(.cta){display:none}
  nav a.cta{margin-left:0;padding:9px 16px}
  .band{padding:28px 0 80px}
  .search{padding:18px;margin-top:-56px;border-radius:18px}
  .tags{gap:8px}
  .tags button.t{width:calc((100% - 24px)/4);height:88px;font-size:1.8rem}
  .tags button.any{width:100%;text-align:center;padding:8px}
  .panel{padding:20px}
}

/* submit form steps */
.step h2 .n{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--ink);color:#fff;font:600 .95rem var(--font);margin-right:12px;vertical-align:3px}
.step label.fw4{display:flex;align-items:flex-start;line-height:1.45}
.step label.fw4 input{flex:none;margin-top:2px}

.lab{padding:12px 0;border-top:1px solid var(--line)}
.lab:first-of-type{border-top:0;padding-top:0}
.lab .src{margin:0;font-size:.98rem}
.lab p{margin:4px 0 0}
.step h2{margin-bottom:18px}

.prog{margin-bottom:12px}
.prog-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px}
.prog-h span{font-weight:700;color:#0F6B45}
.bar{position:relative;height:14px;border-radius:999px;background:var(--brand-soft);overflow:hidden}
.bar i{position:absolute;left:0;top:0;bottom:0;border-radius:999px;transition:width .3s}
.bar i.w{background:#9CC9E6}
.bar i.d{background:#0F6B45}

.cityp summary{cursor:pointer;font-weight:700}
.cityp #cities{margin-top:10px}
.crow{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:9px 2px;font:inherit;color:inherit;cursor:pointer}
.crow:hover{background:var(--brand-soft)}
.crow .cn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crow .cc{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.875rem}
.bar.sm{display:block;height:8px}
@media (max-width:640px){.crow{grid-template-columns:1fr auto}.crow .bar{grid-column:1/-1;order:3}}
