@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{--ink:#182226;--cream:#f5f0e6;--accent:#6b8f47;--accent2:#3a7ca5;--line:rgba(24,34,38,.18)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}
img{width:100%;display:block;object-fit:cover}
a{color:inherit;text-decoration:none}
.eyebrow,.section-label{font-size:.72rem;letter-spacing:.18em;font-weight:700}
h1,h2{font-family:'Playfair Display',serif;font-weight:500;line-height:.98;letter-spacing:-.03em;margin:.7rem 0 1.5rem}
h1 em,h2 em{font-weight:500}
.lead{font-size:1.25rem;line-height:1.7;max-width:700px}
.section{padding:7vw 8vw}
.center{text-align:center}
.button{display:inline-block;background:var(--ink);color:white;padding:1rem 1.4rem;font-size:.85rem;font-weight:600;border-radius:2px;border:none;cursor:pointer;font-family:inherit}
.button.light{background:var(--cream);color:var(--ink)}
.button.outline{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.text-link,.arrow-link{font-weight:600;border-bottom:1px solid currentColor;padding-bottom:.2rem}

/* ---- header / nav (shared, injected by main.js) ---- */
/* #site-header must not create its own box: a wrapper that shrink-wraps to
   nav's own height leaves position:sticky zero room to engage (its containing
   block would be exactly as tall as the sticky element itself). display:contents
   removes the wrapper from the box tree so nav's containing block is body instead. */
#site-header{display:contents}
.nav{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:var(--ink);color:var(--cream);position:sticky;top:0;z-index:50}
.brand{font-size:1.35rem;font-weight:700;letter-spacing:.06em}
.brand span{color:var(--accent2)}
.nav-links{display:flex;gap:1.6rem;font-size:.82rem;flex-wrap:wrap}
.nav-links a{opacity:.82;white-space:nowrap}
.nav-links a:hover,.nav-links a.active{opacity:1;border-bottom:1px solid var(--accent2)}
.menu-btn{display:none;background:none;border:0;color:white;font-size:1.5rem;cursor:pointer}
.nav-right{display:flex;align-items:center;gap:1rem}
.lang-switch-group{display:flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:700;letter-spacing:.05em}
.lang-switch,.lang-current{border:1px solid rgba(255,255,255,.4);padding:.35rem .6rem;border-radius:999px}
.lang-switch{opacity:.75}
.lang-switch:hover{opacity:1;border-color:var(--accent2)}
.lang-current{opacity:1;border-color:var(--accent2);color:var(--accent2)}
@media(max-width:1050px){.nav-links{display:none;position:absolute;top:78px;left:0;right:0;background:var(--ink);flex-direction:column;padding:1.2rem 7vw;gap:1rem}.nav-links.open{display:flex}.menu-btn{display:block}}

/* ---- generic page hero (non-home pages) ---- */
.page-hero{padding:9vw 8vw 4vw;background:var(--ink);color:var(--cream)}
.page-hero h1,.page-hero h2{font-size:clamp(2.6rem,6vw,4.6rem)}
.page-hero p{max-width:640px;opacity:.85;font-size:1.1rem;line-height:1.6}

/* ---- home hero ---- */
.hero{min-height:92vh;background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.1)),url('assets/aukstaitijos-parkas.jpg') center/cover;position:relative;color:white;display:flex;flex-direction:column;justify-content:flex-end;padding:0 0 5vw}
.hero-content{max-width:760px;padding:0 5vw;margin:6vh 0 3vh}
.hero h1{font-size:clamp(3.2rem,7.5vw,6.8rem)}
.hero-text{font-size:1.15rem;line-height:1.7;max-width:590px;color:rgba(255,255,255,.88)}
.hero-actions{display:flex;align-items:center;gap:2rem;margin-top:2rem;flex-wrap:wrap}

/* ---- icon system (line SVGs, replaces emoji) ---- */
.icon{display:inline-flex}
.icon svg{width:100%;height:100%;display:block}
.icon-heading{display:flex;align-items:center;gap:.7rem}
.icon-heading .icon{width:1.9rem;height:1.9rem;color:var(--accent);flex-shrink:0}
.eyebrow.icon-heading,.section-label.icon-heading{gap:.5rem}
.eyebrow.icon-heading .icon,.section-label.icon-heading .icon{width:1rem;height:1rem;color:var(--accent2)}

/* ---- category tiles (home) ---- */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.tile{background:var(--cream);padding:1.8rem 1.6rem;display:flex;flex-direction:column;gap:.4rem;min-height:150px;justify-content:flex-end;transition:background .2s}
.tile:hover{background:var(--ink);color:var(--cream)}
.tile .ico{width:1.7rem;height:1.7rem;color:var(--accent)}
.tile h3{font-family:'Playfair Display',serif;font-size:1.2rem;margin:0}
.tile p{margin:0;opacity:.7;font-size:.85rem;line-height:1.45}
@media(max-width:800px){.tiles{grid-template-columns:1fr}}

/* ---- filter bar + chips ---- */
.filter-bar{display:flex;flex-wrap:wrap;gap:.8rem;padding:2rem 8vw;background:#ece5d6;border-bottom:1px solid var(--line);position:sticky;top:78px;z-index:40}
.filter-group{display:flex;flex-direction:column;gap:.4rem}
.filter-group label{font-size:.65rem;letter-spacing:.1em;font-weight:700;opacity:.65}
.chips{display:flex;flex-wrap:wrap;gap:.4rem}
.chip{border:1px solid var(--line);background:var(--cream);padding:.45rem .85rem;border-radius:999px;font-size:.8rem;cursor:pointer;font-family:inherit}
.chip.active{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.result-count{padding:1.2rem 8vw 0;font-size:.85rem;opacity:.65}

/* ---- place cards ---- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.4rem;padding:2rem 8vw 5vw}
.card{background:white;color:var(--ink);border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;cursor:pointer;transition:transform .15s, box-shadow .15s}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(23,35,29,.14)}
.card img{height:190px}
.card-body{padding:1.2rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.card-body h3{font-family:'Playfair Display',serif;font-size:1.35rem;margin:0}
.card-body p{margin:0;font-size:.92rem;line-height:1.55;opacity:.75}
.tag-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto}
.tag{font-size:.68rem;letter-spacing:.04em;padding:.25rem .55rem;border-radius:999px;background:#ece5d6;opacity:.85}
.meta-row{display:flex;gap:1rem;font-size:.78rem;opacity:.65}
.no-results{padding:4rem 8vw;text-align:center;opacity:.6}

/* ---- modal ---- */
.modal-backdrop{position:fixed;inset:0;background:rgba(23,35,29,.72);display:none;align-items:center;justify-content:center;z-index:100;padding:4vw}
.modal-backdrop.open{display:flex}
.modal{background:var(--cream);max-width:760px;width:100%;max-height:88vh;overflow:auto;border-radius:6px;position:relative}
.modal img{height:280px}
.modal-body{padding:2rem 2.4rem 2.6rem}
.modal-body h2{font-size:2.2rem}
.modal-close{position:absolute;top:1rem;right:1.2rem;background:rgba(23,35,29,.7);color:white;border:none;width:36px;height:36px;border-radius:50%;font-size:1.1rem;cursor:pointer;z-index:2}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.5rem 0;border-top:1px solid var(--line);padding-top:1.2rem}
.info-grid div strong{display:block;font-size:.65rem;letter-spacing:.1em;opacity:.6;margin-bottom:.25rem}
@media(max-width:640px){.info-grid{grid-template-columns:1fr 1fr}}

/* ---- grouped lists (pramogos, su vaikais, gamta) ---- */
.group-block{padding:0 8vw 3vw}
.group-block h2{font-size:clamp(2rem,4vw,3rem);margin-bottom:.3rem}
.group-block .group-sub{opacity:.65;margin-bottom:1.5rem}
.simple-list{display:grid;gap:.9rem}
.simple-list .row{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);padding:1rem 0;align-items:baseline}
.simple-list .row b{font-family:'Playfair Display',serif;font-size:1.25rem;font-weight:500}
.simple-list .row span{opacity:.6;font-size:.85rem;text-align:right}

/* ---- routes / itineraries ---- */
.route-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.4rem;padding:2rem 8vw 4vw}
.route-card{background:var(--ink);color:var(--cream);padding:2rem;border-radius:6px;display:flex;flex-direction:column;gap:1rem}
.route-card h3{font-family:'Playfair Display',serif;font-size:1.6rem;margin:0;display:flex;align-items:center;gap:.7rem}
.route-card h3 .icon{width:1.5rem;height:1.5rem;color:currentColor;opacity:.75;flex-shrink:0}
.route-steps{display:flex;flex-direction:column;gap:.5rem;font-size:.92rem;opacity:.85}
.route-steps span{opacity:.55;margin-right:.5rem;font-size:.75rem}

/* ---- planner quiz ---- */
.planner{background:#ece5d6;margin:0 8vw 5vw;border-radius:8px;padding:3rem;display:grid;gap:2rem}
.planner-q{display:flex;flex-direction:column;gap:.7rem}
.planner-q label{font-weight:700;font-size:.9rem}
.planner-options{display:flex;flex-wrap:wrap;gap:.6rem}
.planner-options button{border:1px solid var(--line);background:var(--cream);padding:.6rem 1.1rem;border-radius:999px;cursor:pointer;font-family:inherit;font-size:.88rem}
.planner-options button.active{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.planner-result{background:var(--ink);color:var(--cream);border-radius:6px;padding:2rem;display:none}
.planner-result.open{display:block}
.planner-result .row{display:flex;gap:1rem;border-top:1px solid rgba(255,255,255,.18);padding:.8rem 0}
.planner-result .row b{min-width:70px;color:var(--accent2)}

/* ---- weather widget ---- */
.weather-loading{padding:2rem 8vw;opacity:.65;font-size:.9rem}
.weather-widget{margin:0 8vw 4vw;background:var(--ink);color:var(--cream);border-radius:10px;padding:2rem 2.2rem 1.6rem;display:flex;flex-direction:column;gap:1.6rem}
.weather-now{display:flex;align-items:center;gap:1.2rem}
.weather-now-icon{font-size:3.4rem;line-height:1}
.weather-now-temp{font-family:'Playfair Display',serif;font-size:2.6rem;line-height:1}
.weather-now-label{font-size:.9rem;opacity:.85;margin-top:.2rem}
.weather-now-meta{font-size:.8rem;opacity:.65;margin-top:.3rem}
.weather-days{display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem;border-top:1px solid rgba(255,255,255,.15);padding-top:1.4rem}
.weather-day{text-align:center;display:flex;flex-direction:column;gap:.35rem}
.wd-name{font-size:.72rem;letter-spacing:.05em;opacity:.7}
.wd-icon{font-size:1.5rem}
.wd-temp{font-size:.85rem}
.wd-temp b{color:var(--accent2)}
.wd-rain{font-size:.68rem;opacity:.6}
.weather-note{margin:0;font-size:.72rem;opacity:.5}
@media(max-width:800px){
  .weather-widget{margin:0 6vw 3rem;padding:1.6rem}
  .weather-days{grid-template-columns:repeat(3,1fr);row-gap:1.2rem}
}

.weather-widget--compact{flex-direction:row;align-items:center;gap:2rem;padding:1.1rem 1.6rem;border-radius:0;margin:0}
.weather-widget--compact .weather-now{flex-shrink:0;gap:.8rem;padding-right:1.6rem;border-right:1px solid rgba(255,255,255,.15)}
.weather-widget--compact .weather-now-icon{font-size:2rem}
.weather-widget--compact .weather-now-temp{font-size:1.5rem}
.weather-widget--compact .weather-now-label{font-size:.75rem;opacity:.7;margin-top:0}
.weather-widget--compact .weather-days{border-top:none;padding-top:0;gap:1rem;flex:1}
.weather-widget--compact .wd-icon{font-size:1.2rem}
.weather-widget--compact .wd-temp{font-size:.78rem}
@media(max-width:800px){
  .weather-widget--compact{flex-direction:column;align-items:stretch;gap:1rem}
  .weather-widget--compact .weather-now{border-right:none;border-bottom:1px solid rgba(255,255,255,.15);padding-right:0;padding-bottom:.8rem}
  .weather-widget--compact .weather-days{grid-template-columns:repeat(6,1fr);display:grid;gap:.4rem}
}

/* ---- compact section utility (homepage) ---- */
.section.tight{padding:2.6rem 8vw}
.hub-label{font-size:.72rem;letter-spacing:.14em;font-weight:700;opacity:.55;padding:0 8vw;margin:2.6rem 0 1rem}

/* ---- long-form article (istorija / rašytojai) ---- */
.jump-nav{display:flex;gap:1rem;padding:0 8vw;margin:1.5rem 0 0;flex-wrap:wrap}
.jump-nav a{background:#ece5d6;padding:.6rem 1.3rem;border-radius:999px;font-size:.85rem;font-weight:600}
.article{max-width:760px;padding:3rem 8vw 1rem;margin:0 auto}
.article h2{font-size:clamp(1.7rem,3.2vw,2.3rem);margin:2.6rem 0 1rem}
.article h2:first-of-type{margin-top:0}
.article p{line-height:1.8;margin:0 0 1.1rem;font-size:1.03rem;opacity:.87}
.writer{max-width:900px;margin:0 auto;padding:3rem 8vw 1rem;border-top:1px solid var(--line);display:grid;grid-template-columns:180px 1fr;gap:2.2rem}
.writer:first-of-type{border-top:none}
.writer.no-photo{grid-template-columns:1fr}
.writer-portrait{width:180px;height:230px;border-radius:4px;object-fit:cover;background:#ece5d6}
.writer h3{font-size:clamp(1.5rem,3vw,2rem);margin:0 0 .2rem}
.writer .years{font-size:.8rem;letter-spacing:.08em;opacity:.55;font-weight:700;margin-bottom:1rem;display:block}
.writer p{line-height:1.8;margin:0 0 1.1rem;font-size:1.02rem;opacity:.87}
@media(max-width:700px){.writer{grid-template-columns:1fr;gap:1.2rem}.writer-portrait{width:140px;height:180px}}

/* ---- historical photo gallery ---- */
.history-gallery{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;padding:0 8vw 3rem;max-width:1100px;margin:0 auto}
.history-gallery figure{margin:0}
.history-gallery img{border-radius:4px;height:320px}
.history-gallery figcaption{font-size:.78rem;opacity:.6;margin-top:.6rem;line-height:1.5}
@media(max-width:800px){.history-gallery{grid-template-columns:1fr;padding:0 6vw 2.5rem}.history-gallery img{height:260px}}

/* ---- timeline ---- */
.timeline{padding:2rem 8vw 5vw;display:grid;gap:0}
.timeline .tl-row{display:grid;grid-template-columns:160px 1fr;gap:2rem;padding:1.6rem 0;border-top:1px solid var(--line)}
.timeline .tl-row strong{font-family:'Playfair Display',serif;font-size:1.4rem}
.timeline .tl-row p{margin:0;line-height:1.6;opacity:.8}
.tl-row .tl-body{display:flex;gap:1.4rem;align-items:flex-start}
.tl-row .tl-logo{width:110px;height:110px;object-fit:contain;background:#ece5d6;border-radius:8px;padding:10px;flex-shrink:0}
.tl-row .tl-logo.tl-photo{object-fit:cover;padding:0;width:170px;height:110px}
@media(max-width:700px){.tl-row .tl-logo{width:80px;height:80px}.tl-row .tl-logo.tl-photo{width:120px;height:80px}}

/* ---- writers ---- */
.writer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.4rem;padding:2rem 8vw 5vw}
.writer-card{border:1px solid var(--line);border-radius:6px;padding:1.6rem}
.writer-card h3{font-family:'Playfair Display',serif;font-size:1.3rem;margin:0 0 .5rem}
.writer-card p{opacity:.75;line-height:1.6;font-size:.92rem;margin:0}

/* ---- practical info ---- */
.practical-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.4rem;padding:2rem 8vw 5vw}
.practical-card{border-top:2px solid var(--ink);padding-top:1rem;display:flex;flex-direction:column;gap:.6rem}
.practical-card h3{font-size:1.1rem;margin:0 0 .3rem}
.practical-card p{opacity:.75;line-height:1.6;font-size:.9rem;margin:0}
.practical-card .text-link{font-size:.82rem}

/* ---- business cards (maistas / apsistoti) ---- */
.biz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.2rem;padding:2rem 8vw 4vw}
.biz-card{background:white;color:var(--ink);border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column}
.biz-card img{height:150px}
.biz-card .biz-body{padding:1.2rem 1.4rem 1.4rem;display:flex;flex-direction:column;gap:.5rem}
.biz-card h3{font-family:'Playfair Display',serif;font-size:1.2rem;margin:0}
.biz-card .biz-loc{font-size:.85rem;opacity:.65}
.biz-card .biz-links{margin-top:.4rem;display:flex;gap:1rem;font-size:.85rem}

/* ---- placeholder / coming soon ---- */
.placeholder-box{margin:2rem 8vw 5vw;border:1px dashed var(--line);border-radius:8px;padding:3rem 2rem;text-align:center}
.placeholder-box h3{margin:0 0 .8rem}
.placeholder-box p{opacity:.7;max-width:560px;margin:0 auto 1.2rem;line-height:1.6}

/* ---- map ---- */
#map{height:70vh;width:100%}
.map-legend{display:flex;flex-wrap:wrap;gap:1.2rem;padding:1.2rem 8vw;font-size:.82rem}
.map-legend span,.map-legend label{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer}
.map-legend input[type="checkbox"]{accent-color:var(--ink);cursor:pointer}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block}

footer{background:var(--ink);color:var(--cream);padding:3.5rem 5vw;display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap}
footer p{font-size:.75rem;opacity:.6;margin:.8rem 0 0}
.footer-info{text-align:right}
.footer-links{display:flex;gap:1.4rem;flex-wrap:wrap;justify-content:flex-end;font-size:.82rem}
@media(max-width:700px){footer{flex-direction:column;align-items:flex-start}.footer-info{text-align:left}.footer-links{justify-content:flex-start}}

@media(max-width:800px){
  .section{padding:4rem 6vw}
  .filter-bar,.result-count,.card-grid,.route-grid,.group-block,.timeline,.writer-grid,.practical-grid{padding-left:6vw;padding-right:6vw}
  .info-grid{grid-template-columns:1fr 1fr}
  .planner{margin:0 6vw 3rem;padding:1.8rem}
  .timeline .tl-row{grid-template-columns:1fr}
}
