:root{
  --pine:#1f3529;
  --pine-2:#2c4a39;
  --moss:#5d7466;
  --paper:#f6efdf;
  --paper-2:#efe4cc;
  --ink:#2a2219;
  --ink-soft:#54483a;
  --mark:#c8312b;
  --sky:#2f6fb0;
  --sun:#e2a83a;
  --line:#d4c4a0;
  --serif:Georgia,"Times New Roman","Liberation Serif",serif;
  --sans:-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font:17px/1.65 var(--sans);
}
img{max-width:100%;height:auto;display:block}
a{color:#8a2a1f}
a:hover{color:var(--mark)}
h1,h2,h3{font-family:var(--serif);line-height:1.2;color:var(--pine)}
h1{font-size:clamp(2rem,5vw,3.3rem);margin:.2em 0 .3em}
h2{font-size:clamp(1.5rem,3.2vw,2.1rem);margin:0 0 .5em}
h3{font-size:1.2rem;margin:0 0 .4em}
p{margin:0 0 1em}

.skip{position:absolute;left:-999px}
.skip:focus{left:12px;top:12px;background:#fff;padding:6px 10px;z-index:10}

/* ---------- header ---------- */
.site-head{background:var(--pine);color:#f3ead8;position:relative}
.site-head::after{
  content:"";display:block;height:8px;
  background:linear-gradient(#fff 0 33%,var(--mark) 33% 67%,#fff 67%);
}
.head-in{max-width:1180px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;color:#f3ead8;text-decoration:none;margin-right:auto}
.brand img{width:54px;height:54px}
.brand b{display:block;font-family:var(--serif);font-size:1.45rem;letter-spacing:.02em;font-weight:normal}
.brand small{display:block;font-size:.8rem;opacity:.75;letter-spacing:.08em;text-transform:uppercase}
.nav{display:flex;gap:4px;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.nav a{
  display:block;padding:8px 14px;color:#f3ead8;text-decoration:none;font-size:.95rem;
  border-radius:20px;border:1px solid transparent;
}
.nav a:hover{border-color:rgba(243,234,216,.4);color:#fff}
.nav a[aria-current="page"]{background:#f3ead8;color:var(--pine)}

/* ---------- page opener: slanted picture + altitude tag ---------- */
.opener{position:relative;background:var(--pine-2);color:#f3ead8;overflow:hidden}
.opener-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:420px}
.opener-text{padding:48px 28px 56px 20px;position:relative;z-index:2;align-self:center}
.opener-text h1{color:#fff7e6}
.opener-text .lead{font-size:1.12rem;color:#e8dcc2;max-width:32em}
.kicker{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:#f0c48a;margin:0}
.opener-pic{position:relative;clip-path:polygon(12% 0,100% 0,100% 100%,0 100%);min-height:320px}
.opener-pic img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.facts{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0;padding:0;list-style:none}
.facts li{border:1px solid rgba(243,234,216,.35);border-radius:6px;padding:8px 12px;font-size:.9rem;background:rgba(0,0,0,.15)}
.facts strong{display:block;font-family:var(--serif);font-size:1.25rem;color:#fff}

/* ---------- trail: stations along a dashed line ---------- */
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.trail{position:relative;padding:56px 0 24px}
.trail::before{
  content:"";position:absolute;top:0;bottom:0;left:38px;width:0;
  border-left:4px dashed #b8a57c;
}
.stop{position:relative;padding-left:100px;margin-bottom:56px}
.stop-pin{
  position:absolute;left:0;top:0;width:80px;height:80px;border-radius:50%;
  background:#fff;border:4px solid var(--pine);display:flex;flex-direction:column;
  align-items:center;justify-content:center;font-family:var(--serif);color:var(--pine);text-align:center;line-height:1.05;
  box-shadow:0 0 0 6px var(--paper);
}
.stop-pin b{font-size:1.1rem}
.stop-pin span{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}
.stop-pin.red{border-color:var(--mark);color:var(--mark)}
.stop-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start}
.stop-body.flip .stop-fig{order:-1}
.stop-body.solo{grid-template-columns:minmax(0,1fr)}
.stop-fig{margin:0;background:#fff;padding:10px 10px 6px;border:1px solid var(--line);transform:rotate(-1.2deg);box-shadow:0 10px 24px -14px rgba(40,30,10,.5)}
.stop-body.flip .stop-fig{transform:rotate(1.2deg)}
.stop-fig figcaption{font-family:var(--serif);font-style:italic;font-size:.9rem;color:var(--ink-soft);padding:6px 4px 2px}

/* ---------- luggage tag aside ---------- */
.tag{
  position:relative;background:var(--paper-2);border:2px solid #b8a57c;border-radius:4px 22px 22px 4px;
  padding:20px 22px 18px 44px;margin:8px 0 0;
}
.tag::before{content:"";position:absolute;left:14px;top:22px;width:14px;height:14px;border-radius:50%;background:var(--paper);border:2px solid #b8a57c}
.tag h3{font-size:1.05rem;text-transform:uppercase;letter-spacing:.08em;font-family:var(--sans);color:var(--mark)}
.tag ul{margin:0;padding-left:1.1em}
.tag li{margin:.2em 0}

/* ---------- band: full-width colour strip with ledger ---------- */
.band{background:var(--pine);color:#efe5cf;padding:56px 0;margin-top:20px;position:relative}
.band h2{color:#fff7e6}
.band a{color:#f0c48a}
.band-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:40px;align-items:center}
.ledger{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid rgba(239,229,207,.3)}
.ledger div{padding:18px 18px 18px 0;border-bottom:1px solid rgba(239,229,207,.3)}
.ledger div+div{padding-left:18px;border-left:1px solid rgba(239,229,207,.3)}
.ledger b{display:block;font-family:var(--serif);font-size:1.6rem;color:#fff}

/* ---------- mosaic of seasons ---------- */
.mosaic{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;padding:56px 0}
.mosaic>*{background:#fff;border:1px solid var(--line);padding:22px}
.mosaic .m-wide{grid-column:span 4}
.mosaic .m-narrow{grid-column:span 2}
.mosaic .m-half{grid-column:span 3}
.mosaic .m-dark{background:var(--pine-2);color:#efe5cf;border-color:var(--pine-2)}
.mosaic .m-dark h3{color:#fff7e6}
.mosaic .m-pic{padding:0;overflow:hidden}
.mosaic .m-pic img{width:100%;height:100%;object-fit:cover}
.season{font-family:var(--serif);font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mark);margin-bottom:.3em}

/* ---------- wide figure (map, profile) ---------- */
.plate{margin:0 0 20px;background:#fff;border:1px solid var(--line);padding:14px}
.plate figcaption{font-size:.9rem;color:var(--ink-soft);padding-top:8px}

/* ---------- timetable ---------- */
.table-wrap{overflow-x:auto;margin:0 0 1.2em}
table{border-collapse:collapse;width:100%;min-width:480px;background:#fff;font-size:.95rem}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
th{background:var(--paper-2);font-family:var(--serif);color:var(--pine)}
td.num{font-variant-numeric:tabular-nums;white-space:nowrap}

/* ---------- note strip ---------- */
.warn{border-left:6px solid var(--mark);background:#fff;padding:16px 20px;margin:0 0 1.2em}
.warn strong{color:var(--mark)}

/* ---------- quote ---------- */
.saying{font-family:var(--serif);font-size:clamp(1.3rem,2.6vw,1.8rem);font-style:italic;color:var(--pine);border:0;margin:0;padding:40px 0;text-align:center;max-width:780px;margin:0 auto}
.saying cite{display:block;font-size:.95rem;font-style:normal;color:var(--ink-soft);margin-top:10px}

/* ---------- footer ---------- */
.site-foot{
  background:
    repeating-radial-gradient(circle at 80% 20%,transparent 0 22px,rgba(243,234,216,.06) 22px 24px),
    #172a20;
  color:#d9ccb0;padding:44px 0 24px;margin-top:40px;font-size:.92rem
}
.foot-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:32px}
.site-foot h3{color:#f3ead8;font-size:1rem;font-family:var(--sans);text-transform:uppercase;letter-spacing:.1em}
.site-foot a{color:#f0c48a}
.site-foot ul{list-style:none;margin:0;padding:0}
.site-foot li{margin:.3em 0}
.foot-brand{display:flex;gap:12px;align-items:flex-start}
.foot-brand img{width:46px;height:46px;flex:none}
.copy{border-top:1px solid rgba(217,204,176,.2);margin-top:28px;padding-top:16px;font-size:.85rem;opacity:.8}

/* ---------- responsive ---------- */
@media (max-width:860px){
  .opener-grid{grid-template-columns:minmax(0,1fr)}
  .opener-pic{clip-path:polygon(0 8%,100% 0,100% 100%,0 100%);min-height:240px}
  .opener-text{padding:36px 20px 20px}
  .stop-body{grid-template-columns:minmax(0,1fr)}
  .stop-body.flip .stop-fig{order:0}
  .band-grid{grid-template-columns:minmax(0,1fr)}
  .mosaic{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .mosaic .m-wide,.mosaic .m-half{grid-column:span 2}
  .mosaic .m-narrow{grid-column:span 1}
  .foot-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .foot-grid>:first-child{grid-column:span 2}
}
@media (max-width:560px){
  body{font-size:16px}
  .head-in{padding:12px 16px}
  .brand img{width:44px;height:44px}
  .nav{width:100%}
  .nav a{padding:6px 10px;font-size:.88rem}
  .wrap{padding:0 16px}
  .trail::before{left:20px}
  .stop{padding-left:0;padding-top:70px}
  .stop-pin{width:56px;height:56px;left:-6px;border-width:3px}
  .stop-pin b{font-size:.85rem}
  .stop-pin span{font-size:.55rem}
  .stop-body{padding-left:34px}
  .stop{padding-top:66px}
  .ledger{grid-template-columns:minmax(0,1fr)}
  .ledger div+div{padding-left:0;border-left:0}
  .mosaic{grid-template-columns:minmax(0,1fr)}
  .mosaic .m-wide,.mosaic .m-half,.mosaic .m-narrow{grid-column:span 1}
  .foot-grid{grid-template-columns:minmax(0,1fr)}
  .foot-grid>:first-child{grid-column:span 1}
}
