/* ===== Questini.com — Design System v2 ===== */
:root{
  --parchment:#FFFCF5;
  --ink:#383026;
  --ink2:#6E6154;
  --label:#8A7B68;
  --line:#E7DBC6;
  --terra:#B4502E;
  --terra-h:#8F3D1F;
  --terra-a:#7A3116;
  --btn2-border:#D9A88F;
  --olive:#5F6637;
  --olive-bg:#EEF0E0;
  --sea:#23677A;
  --sea-bg:#E4EEF0;
  --chip-bg:#F1E6D2;
  --row-hover:#FDF8EC;
  --row-active:#F7EFDD;
  --btn2-hover:#FBF1E7;
  --sh1:0 1px 2px rgba(60,42,20,.08);
  --sh2:0 1px 2px rgba(60,42,20,.06),0 8px 24px rgba(60,42,20,.08);
  --sh-hover:0 2px 4px rgba(60,42,20,.08),0 12px 32px rgba(60,42,20,.14);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:#FFF;
  background-image:
    radial-gradient(560px 420px at 92% -6%,rgba(180,80,46,.07),transparent 62%),
    radial-gradient(520px 380px at -12% 34%,rgba(95,102,55,.06),transparent 62%),
    radial-gradient(460px 340px at 108% 82%,rgba(35,103,122,.06),transparent 62%);
  background-attachment:fixed;
  color:var(--ink);
  font-family:'Figtree',system-ui,sans-serif;
  font-size:19px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
.wrap{max-width:720px;margin:0 auto;padding:0 20px 80px}
.wrap-wide{max-width:1200px;margin:0 auto;padding:0 20px 80px}

/* ===== CAPS label ===== */
.caps{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.11em;color:var(--label)}

/* ===== Logo ===== */
.logo{display:flex;align-items:baseline;gap:2px}
.logo-name{font-size:24px;font-weight:800;letter-spacing:-.02em}
.logo-dot{font-size:24px;font-weight:800;color:var(--terra)}
.logo-tld{font-size:16px;font-weight:600;color:var(--ink2)}

/* ===== Header ===== */
header{padding:20px 0 0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.hdr-left{flex:1;min-width:200px}
.hdr-left .caps{margin-bottom:8px}
h1{font-size:32px;font-weight:800;line-height:1.12;letter-spacing:-.015em}
.subtitle{font-size:19px;color:var(--ink2);margin-top:8px;line-height:1.5}

/* ===== Language switcher with flags ===== */
.lang-sw{
  display:inline-flex;background:var(--chip-bg);border-radius:999px;padding:3px;gap:2px;flex-shrink:0;
}
.lang-sw button{
  height:38px;display:flex;align-items:center;gap:6px;padding:0 10px;
  border:none;border-radius:999px;background:transparent;
  font-size:14px;font-weight:700;color:var(--ink2);transition:background .12s,color .12s;
}
.lang-sw button:hover{color:var(--terra-h)}
.lang-sw button.active{background:var(--parchment);color:var(--terra)}
.lang-sw button:focus-visible{outline:2px solid var(--sea);outline-offset:1px}
.flag{width:18px;height:13px;border-radius:3px;border:1px solid rgba(56,48,38,.18);flex-shrink:0}
.flag-pl{background:linear-gradient(180deg,#fff 50%,#dc143c 50%)}
.flag-en{background:linear-gradient(180deg,#012169 0%,#012169 100%)}
.flag-it{background:linear-gradient(90deg,#009246 33%,#fff 33%,#fff 66%,#ce2b37 66%)}
.flag-de{background:linear-gradient(180deg,#000 33%,#d00 33%,#d00 66%,#fc0 66%)}

/* ===== Filters ===== */
.filters{
  display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;
  padding:16px 0 4px;-webkit-overflow-scrolling:touch;
}
.filters::-webkit-scrollbar{display:none}
.filt{
  flex-shrink:0;min-height:48px;background:var(--parchment);
  border:1.5px solid var(--line);border-radius:12px;padding:6px 14px;
  display:flex;flex-direction:column;justify-content:center;
}
.filt:hover{border-color:var(--terra)}
.filt .caps{font-size:12px;margin-bottom:2px}
.filt-val{font-size:16px;font-weight:600}

/* ===== Landing hero ===== */
.landing-hero{padding:28px 0 8px}
.landing-hero h1{font-size:36px;line-height:1.12}
.landing-hero .subtitle{margin-top:12px}
.hero-photo{position:relative;height:220px;margin:20px 0 0;border-radius:20px;overflow:hidden;background:var(--chip-bg)}
.hero-photo img{width:100%;height:100%;object-fit:cover}
.hero-badge{
  position:absolute;left:12px;bottom:12px;background:rgba(255,252,245,.94);
  border-radius:999px;padding:8px 14px;font-size:15px;font-weight:600;pointer-events:none;
}

/* ===== Region cards ===== */
.regions{padding:24px 0 0;display:flex;flex-direction:column;gap:12px}
.region-card{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--parchment);border:2px solid transparent;border-radius:16px;
  padding:16px 18px;box-shadow:var(--sh2);text-decoration:none;color:var(--ink);
  transition:border-color .15s;
}
.region-card:hover{border-color:var(--terra)}
.region-card:focus-visible{outline:3px solid var(--sea);outline-offset:2px}
.region-card .caps{font-size:14px;letter-spacing:.08em}
.region-name{font-size:22px;font-weight:700;letter-spacing:-.015em;margin-top:2px}
.region-sub{font-size:17px;color:var(--ink2);margin-top:2px}
.region-arrow{
  width:44px;height:44px;border-radius:999px;background:var(--terra);color:var(--parchment);
  display:grid;place-items:center;font-size:20px;font-weight:700;flex-shrink:0;
}
.region-soon{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--parchment);border-radius:16px;padding:16px 18px;
  opacity:.65;box-shadow:var(--sh1);
}
.chip-soon{
  font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--olive);background:var(--olive-bg);padding:6px 12px;border-radius:999px;flex-shrink:0;
}

/* ===== Value tiles ===== */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0 0}
.val-tile{
  background:var(--parchment);border-radius:16px;padding:16px;
  box-shadow:var(--sh1);text-align:center;
}
.val-num{font-size:22px;font-weight:800}
.val-num.c-terra{color:var(--terra)}
.val-num.c-olive{color:var(--olive)}
.val-num.c-sea{color:var(--sea)}
.val-label{font-size:15px;color:var(--ink2);margin-top:2px}

/* ===== City cards ===== */
.city-list{display:flex;flex-direction:column;gap:16px;margin-top:20px}
.city-card{
  display:flex;align-items:stretch;gap:0;
  background:var(--parchment);border-radius:20px;border:2px solid transparent;
  box-shadow:var(--sh2);overflow:hidden;text-decoration:none;color:var(--ink);
  transition:box-shadow .15s,transform .15s,border-color .15s;
}
.city-card:hover{box-shadow:var(--sh-hover)}
.city-card.today{border-color:var(--terra)}
.city-card .thumb{width:150px;min-height:130px;background:var(--chip-bg);position:relative;flex-shrink:0}
.city-card .thumb img{width:100%;height:100%;object-fit:cover}
.badge-today{
  position:absolute;top:12px;left:12px;background:var(--terra);color:var(--parchment);
  font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  padding:4px 12px;border-radius:999px;
}
.city-body{flex:1;padding:12px 16px 16px;display:flex;flex-direction:column;gap:6px}
.city-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.city-name{font-size:24px;font-weight:600;letter-spacing:-.015em;flex:1}
.chip{font-size:16px;font-weight:600;padding:5px 12px;border-radius:999px;white-space:nowrap}
.chip-olive{background:var(--olive-bg);color:var(--olive)}
.chip-neutral{background:var(--chip-bg);color:var(--ink2)}
.chip-sea{background:var(--sea-bg);color:var(--sea)}
.city-lead{font-size:18px;line-height:1.45;color:var(--ink2)}

/* ===== City page hero ===== */
.hero-img{
  width:calc(100% + 40px);height:260px;background:var(--chip-bg);position:relative;
  margin:0 -20px;
}
.hero-img img{width:100%;height:100%;object-fit:cover}
.hero-over{
  position:absolute;top:16px;left:16px;right:16px;
  display:flex;justify-content:space-between;align-items:flex-start;
}
.btn-back{
  width:44px;height:44px;border-radius:999px;border:none;
  background:rgba(255,252,245,.92);display:flex;align-items:center;justify-content:center;
  font-size:22px;color:var(--ink);box-shadow:var(--sh1);
}
.city-hero-body{padding:20px 0 8px}
.city-hero-body h1{font-size:34px}
.city-hero-body .subtitle{margin:8px 0 12px}
.hero-chips{display:flex;flex-wrap:wrap;gap:8px}

/* ===== Accordion stops ===== */
.stops{display:flex;flex-direction:column;gap:12px;margin-top:24px}
.stop{
  background:var(--parchment);border-radius:16px;box-shadow:var(--sh1);
  border:1.5px solid var(--line);overflow:hidden;
}
.stop-header{
  display:flex;flex-direction:column;gap:10px;padding:14px 14px 12px;
  cursor:pointer;transition:background .1s;border:none;background:none;
  width:100%;text-align:left;color:var(--ink);
}
.stop-header:hover{background:var(--row-hover)}
.stop-header:active{background:var(--row-active)}
.stop-header:focus-visible{outline:3px solid var(--sea);outline-offset:-3px}
.stop-row1{display:flex;align-items:center;gap:10px}
.stop-num{font-size:16px;font-weight:700;color:var(--terra);letter-spacing:.04em;white-space:nowrap}
.stop-name{font-size:21px;font-weight:600;letter-spacing:-.015em;line-height:1.2;flex:1}
.stop-chev{
  color:var(--label);font-size:14px;flex-shrink:0;transition:transform .15s;
  width:24px;height:24px;display:flex;align-items:center;justify-content:center;
}
.stop.open .stop-chev{transform:rotate(180deg)}
.stop-chips{display:flex;flex-wrap:wrap;gap:6px}
.chip-sm{font-size:15px;font-weight:600;padding:5px 10px;border-radius:12px}
.stop-actions{display:flex;gap:8px;flex-wrap:wrap}
.act{
  display:inline-flex;align-items:center;gap:7px;min-height:44px;
  border-radius:12px;padding:0 16px;font-size:16px;font-weight:700;
  text-decoration:none;white-space:nowrap;transition:background .12s;
}
.act svg{width:16px;height:16px;flex-shrink:0}
.act-pri{background:var(--terra);color:var(--parchment);flex:1.4;justify-content:center}
.act-pri:hover{background:var(--terra-h)}
.act-sec{background:transparent;color:var(--terra-h);border:1.5px solid var(--btn2-border);flex:1;justify-content:center}
.act-sec:hover{background:var(--btn2-hover)}
.act-www{flex:.8;justify-content:center}
.act:focus-visible{outline:3px solid var(--sea);outline-offset:2px}
.stop-body{display:none;border-top:1px solid var(--chip-bg);padding:4px 14px 18px}
.stop.open .stop-body{display:block}
.stop-photo{width:100%;height:200px;background:var(--chip-bg);border-radius:14px;margin:12px 0;overflow:hidden}
.stop-photo img{width:100%;height:100%;object-fit:cover}
.stop-desc{font-size:19px;line-height:1.55;margin:12px 0}
.box{border-radius:16px;padding:14px 16px;margin:12px 0}
.box-kids{background:var(--olive-bg)}
.box-kids .caps{color:var(--olive)}
.box-foto{background:var(--sea-bg)}
.box-foto .caps{color:var(--sea)}
.box p{font-size:18px;line-height:1.5;margin-top:8px}

/* ===== Footer sections ===== */
.foot-section{margin-top:28px}
.foot-section .caps{margin-bottom:12px}
.plan-card{background:var(--parchment);border-radius:16px;box-shadow:var(--sh1);border:1.5px solid var(--line);overflow:hidden}
.plan-row{display:grid;grid-template-columns:72px 1fr;font-size:18px;padding:12px 16px;border-bottom:1px solid var(--chip-bg)}
.plan-row:last-child{border-bottom:none}
.plan-time{font-weight:700;color:var(--terra)}
.info-row{display:flex;gap:8px;font-size:18px;padding:10px 0;border-bottom:1px solid var(--line)}
.info-row:last-child{border-bottom:none}
.info-row strong{font-weight:600}
.phrase-card{background:var(--parchment);border-radius:16px;padding:14px 16px;box-shadow:var(--sh1);border:1.5px solid var(--line)}
.phrase-pair{padding:10px 0;border-bottom:1px solid var(--chip-bg)}
.phrase-pair:last-child{border-bottom:none}
.phrase-pl{font-size:18px;color:var(--ink2)}
.phrase-it{font-size:19px;font-weight:600;color:var(--sea);margin-top:2px}
.tel-row{display:flex;justify-content:space-between;align-items:center;min-height:52px;padding:10px 0;border-bottom:1px solid var(--line);font-size:18px}
.tel-row:last-child{border-bottom:none}
.tel-row a{font-weight:700;color:var(--terra-h)}
.note{font-size:17px;color:var(--ink2);font-style:italic;margin-top:32px;line-height:1.5}

/* ===== Geolocation bar ===== */
.loc-bar{background:var(--parchment);border:1.5px solid var(--line);border-radius:16px;padding:14px 18px;margin:20px 0 8px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;box-shadow:var(--sh1)}
.loc-bar svg{width:20px;height:20px;flex:none;color:var(--terra)}
.loc-text{flex:1;font-size:16px;font-weight:500;color:var(--ink2)}
.loc-btn{font-size:15px;font-weight:700;color:var(--parchment);background:var(--terra);border:none;border-radius:12px;padding:10px 18px}
.loc-btn:hover{background:var(--terra-h)}
.distance{font-size:16px;font-weight:600;color:var(--olive);text-align:right;line-height:1.3}
.distance small{display:block;font-size:13px;font-weight:400;color:var(--label)}

/* ===== Wikimedia images ===== */
.wikiimg{margin:12px 0;padding:0}
.wikiimg img{width:100%;height:200px;object-fit:cover;border-radius:14px}
.wikiimg figcaption{margin-top:6px}
.wikiimg figcaption a{font-size:12px;color:var(--label);border-bottom:1px dashed var(--line)}

/* ===== Album (app.js) ===== */
.album{margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}
.thumbs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}
.thumbs img{width:72px;height:72px;object-fit:cover;border-radius:10px;cursor:pointer}
.addphoto{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:15px;font-weight:600;color:var(--terra-h);background:none;border:2px dashed var(--btn2-border);border-radius:10px;padding:10px 14px;min-height:72px}
.addphoto:hover{background:var(--btn2-hover)}

/* ===== Responsive ===== */
@media (min-width:800px){
  .wrap-wide{padding:0 48px 80px}
  h1{font-size:44px}
  .landing-hero h1{font-size:44px}
  .lang-sw button{height:44px}
  .city-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}
  .city-card{flex-direction:column}
  .city-card .thumb{width:100%;height:180px}
  .city-card:hover{transform:translateY(-3px)}
  .city-body{padding:16px 20px 20px}
  .stops{max-width:720px}
  .values{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:480px){
  .values{grid-template-columns:1fr}
}
