/* Little Forage: travel guides with honest verdicts.
   Layout: slim sticky header, wide editorial home, narrow reading column for articles. */
:root{
  --bg:#F4F2F5; --surface:#FFFFFF; --ink:#1F1824; --muted:#665E6C; --line:#DDD8E0;
  --accent:#7A2E55; --accent-ink:#FFFFFF; --tint:#C9D7E6; --warn-bg:#F3E9EE;
  --display:"Bodoni Moda","Didot","Bodoni 72",Georgia,serif;
  --body:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#151118; --surface:#1E1822; --ink:#F1ECF3; --muted:#A79FAE; --line:#352E3B;
    --accent:#E08BB3; --accent-ink:#1A0F16; --tint:#2B3D4F; --warn-bg:#2A1F28;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#151118; --surface:#1E1822; --ink:#F1ECF3; --muted:#A79FAE; --line:#352E3B;
  --accent:#E08BB3; --accent-ink:#1A0F16; --tint:#2B3D4F; --warn-bg:#2A1F28;
  color-scheme:dark;
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--bg); color:var(--ink); font-family:var(--body); font-size:17px; line-height:1.65;
  padding-block:0 40px;
  padding-left:max(16px, env(safe-area-inset-left, 0px));
  padding-right:max(16px, env(safe-area-inset-right, 0px));
}
body::before{content:""; position:fixed; inset:0 0 auto; height:env(safe-area-inset-top, 0px); z-index:30; background:var(--bg)}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent); outline-offset:3px}
.wrap{max-width:1120px; margin:0 auto}
.site-header{position:sticky; top:env(safe-area-inset-top, 0px); z-index:20; background:var(--bg); border-bottom:1px solid var(--ink)}
.site-header .wrap{display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-block:14px}
.brand{font-family:var(--display); font-size:28px; line-height:1; text-decoration:none; letter-spacing:-.01em}
.brand em{font-style:italic; color:var(--accent)}
.site-header nav{display:flex; gap:22px}
.site-header nav a{font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; text-decoration:none}
.site-header nav a:hover{color:var(--accent)}
.hero{padding:48px 0 32px; max-width:760px}
.hero h1{font-family:var(--display); font-weight:400; font-size:clamp(38px,7vw,68px); line-height:1.05; margin:0 0 16px; text-wrap:balance}
.hero p{margin:0; color:var(--muted); font-size:19px; max-width:56ch}
.tag{font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--accent)}
.thumb{background:var(--tint); position:relative; display:flex; align-items:flex-end; overflow:hidden; border-radius:2px}
.thumb::before{content:""; position:absolute; inset:0; background:radial-gradient(120% 90% at 85% 10%, color-mix(in srgb, var(--ink) 9%, transparent), transparent 60%)}
.thumb span{position:relative; font-family:var(--display); font-style:italic; font-size:clamp(18px,3vw,28px); padding:10px 14px; opacity:.55}
.feature{display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:32px; padding:8px 0 40px; align-items:center}
.feature .thumb{aspect-ratio:4/3}
.feature h2{font-family:var(--display); font-weight:400; font-size:clamp(28px,4vw,42px); line-height:1.1; margin:8px 0 12px; text-wrap:balance}
.feature p{margin:0 0 12px; color:var(--muted)}
.section-title{font-family:var(--display); font-weight:400; font-size:clamp(26px,4vw,36px); margin:0 0 20px; padding-top:28px; border-top:1px solid var(--ink)}
.grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin-bottom:24px}
.card{text-decoration:none; display:block}
.card .thumb{aspect-ratio:4/5}
.card h3{font-family:var(--display); font-weight:400; font-size:22px; line-height:1.2; margin:12px 0 6px; text-wrap:balance}
.card p{margin:0; font-size:15px; color:var(--muted)}
.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.two .card .thumb{aspect-ratio:4/3}
.feature a{text-decoration:none}
.card:hover h3,.feature a:hover h2{color:var(--accent)}
.meta{font-size:13px; color:var(--muted)}
.soon{display:flex; flex-wrap:wrap; gap:10px; margin:0 0 24px; padding:0; list-style:none}
.soon li{border:1px solid var(--line); padding:6px 14px; font-size:14px; color:var(--muted); border-radius:2px}
.article{max-width:700px; margin:0 auto; padding-top:28px}
.crumbs{font-size:13px; color:var(--muted); margin-bottom:18px}
.crumbs a{text-decoration:none; border-bottom:1px solid var(--line)}
.article h1{font-family:var(--display); font-weight:400; font-size:clamp(34px,6vw,54px); line-height:1.08; margin:6px 0 14px; text-wrap:balance}
.article h2{font-family:var(--display); font-weight:400; font-size:clamp(26px,4vw,34px); line-height:1.15; margin:40px 0 10px; text-wrap:balance}
.article p,.article li{max-width:65ch}
.article ul{padding-left:1.2em}
.article li{margin-bottom:6px}
.disclosure{font-size:14px; color:var(--muted); background:var(--warn-bg); padding:10px 14px; border-radius:2px; margin:0 0 22px}
.disclosure a{color:var(--accent)}
.quick{border-left:3px solid var(--accent); padding:4px 0 4px 16px; margin:0 0 24px; font-size:18px}
.picks{background:var(--surface); border:1px solid var(--line); padding:20px 22px; margin:32px 0}
.picks h2{margin:0 0 10px; font-size:26px}
.picks ul{margin:0; padding-left:1.1em}
.picks .aff{color:var(--accent); font-weight:600}
.note{border:1px dashed var(--accent); padding:16px 18px; margin:32px 0}
.note p{margin:6px 0 0}
.related{margin-top:36px; padding-top:20px; border-top:1px solid var(--line)}
.news{margin:48px auto 0; max-width:700px; background:var(--surface); border:1px solid var(--line); padding:24px}
.news h2{font-family:var(--display); font-weight:400; font-size:28px; margin:6px 0 8px; line-height:1.15}
.news p{margin:0 0 14px; color:var(--muted)}
.news-form{display:flex; gap:8px; flex-wrap:wrap}
.news-form input{flex:1 1 200px; min-width:0; padding:13px 14px; font:inherit; background:var(--bg); color:var(--ink); border:1px solid var(--line); border-radius:2px}
.news-form button{padding:13px 22px; font:inherit; font-weight:600; background:var(--accent); color:var(--accent-ink); border:0; border-radius:2px; cursor:pointer}
.news-form .msg{flex-basis:100%; margin:4px 0 0; font-size:13px; color:var(--muted); min-height:1.4em}
.site-footer{margin-top:56px; padding-top:20px; border-top:1px solid var(--ink)}
.site-footer .wrap{display:flex; justify-content:space-between; gap:12px 24px; flex-wrap:wrap; font-size:14px; color:var(--muted)}
.site-footer a{margin-right:16px}
@media (max-width:860px){
  .feature{grid-template-columns:minmax(0,1fr); gap:20px}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){
  .grid,.grid.two{grid-template-columns:minmax(0,1fr)}
  .card .thumb,.grid.two .card .thumb{aspect-ratio:3/2}
  .hero{padding-top:32px}
  .brand{font-size:24px}
  body{font-size:16px}
}
@media (prefers-reduced-motion:no-preference){
  .card .thumb,.feature .thumb{transition:transform .35s ease}
  .card:hover .thumb,.feature a:hover .thumb{transform:translateY(-3px)}
}
