/* ============================================================
   SKY ORCA — Switzerland 2012 / Editorial travel-magazine theme
   ============================================================ */
:root{
  --paper:#faf6ee;          /* cream ground */
  --paper-2:#f2ebdd;        /* panel */
  --ink:#20180f;            /* near-black warm */
  --ink-soft:#574d40;
  --muted:#938876;
  --line:#e4d9c6;
  --line-soft:#efe7d8;
  --accent:#c0562f;         /* terracotta (ties to route map) */
  --accent-deep:#9c4222;
  --sky:#5f7d8c;
  --shadow:0 22px 50px -28px rgba(60,40,20,.45);
  --measure:42rem;
  --wide:70rem;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --mincho:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --sans:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-weight:400;line-height:1.95;
  font-feature-settings:"palt" 1;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
::selection{background:var(--accent);color:#fff}

/* subtle paper grain */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(120,90,50,.05) 1px,transparent 1px);
  background-size:4px 4px;
}

/* ---------- shared layout ---------- */
.container{width:100%;max-width:var(--wide);margin:0 auto;padding:0 clamp(20px,5vw,48px)}
.measure{max-width:var(--measure);margin-inline:auto}
.kicker{
  font-family:var(--serif);font-optical-sizing:auto;
  font-size:.8rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase;
  color:var(--accent);margin:0 0 .5em;display:flex;align-items:center;gap:.7em;
}
.kicker::before{content:"";width:26px;height:1px;background:var(--accent);display:inline-block}

/* ---------- sticky top bar (post pages) ---------- */
.bar{
  position:sticky;top:0;z-index:40;
  display:flex;align-items:center;justify-content:space-between;
  padding:.7rem clamp(20px,5vw,48px);
  background:rgba(250,246,238,.86);
  background:color-mix(in srgb,var(--paper) 82%,transparent);
  -webkit-backdrop-filter:saturate(1.4) blur(10px);
  backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s;
}
.bar.is-stuck{border-color:var(--line);box-shadow:0 10px 30px -24px rgba(60,40,20,.5)}
.bar__brand{font-family:var(--serif);font-weight:600;font-size:1.15rem;letter-spacing:.02em}
.bar__brand b{color:var(--accent)}
.bar__toc{font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);
  font-family:var(--serif);font-weight:500;display:flex;align-items:center;gap:.5em}
.bar__toc:hover{color:var(--accent)}

/* ============================================================
   INDEX
   ============================================================ */
.cover{position:relative;min-height:clamp(460px,82vh,860px);display:flex;align-items:flex-end;overflow:hidden}
.cover__media{position:absolute;inset:0}
.cover__media img{width:100%;height:100%;object-fit:cover;filter:saturate(1.02)}
.cover__scrim{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,14,8,.42) 0%,rgba(20,14,8,.10) 28%,rgba(20,14,8,.32) 56%,rgba(20,14,8,.82) 100%)}
.cover__inner{position:relative;width:100%;max-width:var(--wide);margin:0 auto;
  padding:clamp(28px,6vw,72px) clamp(20px,5vw,48px);color:#fff}
.cover__kicker{color:#ffd9c8}
.cover__kicker::before{background:#ffd9c8}
.masthead{font-family:var(--serif);font-optical-sizing:auto;font-weight:600;
  font-size:clamp(3.2rem,13vw,9rem);line-height:.9;letter-spacing:-.02em;margin:.08em 0 .12em;
  text-shadow:0 2px 30px rgba(0,0,0,.35)}
.cover__sub{font-family:var(--mincho);font-size:clamp(1rem,2.2vw,1.35rem);font-weight:500;
  max-width:36rem;line-height:1.9;color:#f6ece2;text-shadow:0 1px 12px rgba(0,0,0,.4)}
.cover__meta{margin-top:1.2rem;font-family:var(--serif);letter-spacing:.2em;font-size:.82rem;
  text-transform:uppercase;color:#f0dccb;opacity:.9}

.section-head{text-align:center;margin:clamp(56px,10vw,110px) 0 clamp(24px,4vw,40px)}
.section-head .kicker{justify-content:center}
.section-head h2{font-family:var(--mincho);font-weight:700;font-size:clamp(1.5rem,4vw,2.3rem);
  margin:.1em 0;letter-spacing:.02em}
.section-head p{color:var(--muted);font-size:.95rem;margin:.4em auto 0;max-width:34rem}

/* route map */
.journey figure{margin:0;max-width:52rem;margin-inline:auto}
.journey img{width:100%;border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);background:#fff}
.journey figcaption{color:var(--muted);font-size:.8rem;text-align:right;margin-top:.7em}

/* contents */
.contents{margin:clamp(30px,5vw,54px) 0 0;border-top:1px solid var(--line)}
.entry{
  display:grid;grid-template-columns:5.4rem 12.5rem 1fr;gap:clamp(16px,3vw,34px);align-items:center;
  padding:clamp(20px,3vw,30px) 0;border-bottom:1px solid var(--line);
  position:relative;transition:background .35s;
}
.entry:hover{background:linear-gradient(90deg,transparent,rgba(192,86,47,.05) 40%,transparent)}
.entry__num{font-family:var(--serif);font-optical-sizing:auto;font-weight:400;
  font-size:clamp(2.4rem,6vw,3.6rem);line-height:1;color:var(--ink);
  font-variant-numeric:oldstyle-nums;letter-spacing:-.02em}
.entry:hover .entry__num{color:var(--accent)}
.entry__num small{display:block;font-family:var(--serif);font-size:.62rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-top:.5em}
.entry__thumb{aspect-ratio:4/3;overflow:hidden;border-radius:10px;background:var(--paper-2);
  border:1px solid var(--line)}
.entry__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.entry:hover .entry__thumb img{transform:scale(1.06)}
.entry__text{display:block;min-width:0}
.entry__meta{display:block;font-family:var(--serif);letter-spacing:.16em;text-transform:uppercase;
  font-size:.74rem;color:var(--muted);margin:0 0 .35em}
.entry__title{display:block;font-family:var(--mincho);font-weight:700;font-size:clamp(1.15rem,2.5vw,1.5rem);
  line-height:1.5;margin:0 0 .35em}
.entry__title .arw{color:var(--accent);opacity:0;margin-left:.3em;transition:opacity .3s,transform .3s;display:inline-block}
.entry:hover .entry__title .arw{opacity:1;transform:translateX(4px)}
.entry__excerpt{color:var(--ink-soft);font-size:.92rem;line-height:1.8;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.entry--prologue .entry__num{font-size:clamp(1.2rem,3vw,1.7rem);font-family:var(--mincho);font-weight:700;color:var(--accent)}

.index-foot{text-align:center;padding:clamp(50px,9vw,100px) 0 clamp(40px,7vw,70px)}
.index-foot .mono{font-family:var(--serif);letter-spacing:.2em;text-transform:uppercase;
  font-size:.75rem;color:var(--muted)}
.index-foot .note{color:var(--muted);font-size:.82rem;margin-top:.8em}

/* ============================================================
   POST
   ============================================================ */
.post{padding-bottom:2rem}
.post__hero{margin:0;position:relative}
.post__hero-media{width:100%;max-height:78vh;overflow:hidden;background:var(--paper-2)}
.post__hero-media img{width:100%;height:100%;max-height:78vh;object-fit:cover}
.post__head{max-width:var(--wide);margin:0 auto;padding:clamp(30px,5vw,60px) clamp(20px,5vw,48px) 0}
.post__head .kicker{font-size:.85rem}
.post__title{font-family:var(--mincho);font-weight:700;
  font-size:clamp(1.7rem,4.6vw,3rem);line-height:1.35;letter-spacing:.01em;margin:.15em 0 .5em;max-width:24ch}
.post__herocap{color:var(--muted);font-size:.82rem;font-style:italic;
  font-family:var(--serif);border-left:2px solid var(--accent);padding-left:.8em;margin:.2em 0 0;max-width:40rem}
.post__body{max-width:var(--measure);margin:clamp(24px,4vw,44px) auto 0;padding:0 clamp(20px,5vw,48px);
  font-size:1.075rem}
.post__body>p{margin:1.35em 0}
.post__body .lead{font-size:1.28rem;line-height:1.9;color:var(--ink);font-weight:500;margin:0 0 1.6em}
.post__body .lead::first-letter{font-family:var(--serif);font-weight:600;font-size:3.4em;
  float:left;line-height:.72;padding:.06em .12em 0 0;color:var(--accent)}
.post__body .note{color:var(--muted);font-size:.8rem;line-height:1.7;
  background:var(--paper-2);border-radius:8px;padding:.8em 1em;margin:1.6em 0}

/* figure (a "plate") — allowed to break out wider than the text measure */
.shot{margin:clamp(34px,6vw,68px) 0;width:100%}
.shot--wide{width:min(var(--wide),94vw);margin-inline:calc(50% - min(var(--wide),94vw)/2)}
.shot img{width:100%;border-radius:8px;box-shadow:var(--shadow);cursor:zoom-in;background:var(--paper-2)}
.shot--multi{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.shot--multi img{margin:0}
.shot--multi figcaption{grid-column:1/-1}
.shot figcaption{margin:.95em auto 0;color:var(--ink-soft);font-size:.92rem;line-height:1.85;
  max-width:var(--measure);position:relative;padding-left:1.1em}
.shot figcaption::before{content:"";position:absolute;left:0;top:.75em;width:.55em;height:1px;background:var(--accent)}

/* itinerary / recovered WP tables */
.post__body .tablewrap{margin:2em 0;overflow-x:auto;-webkit-overflow-scrolling:touch;
  border:1px solid var(--line);border-radius:10px}
.post__body table{border-collapse:collapse;width:100%;font-size:.82rem;line-height:1.7;
  font-family:var(--sans);background:#fff;min-width:520px}
.post__body th,.post__body td{border:1px solid var(--line);padding:.5em .7em;vertical-align:top;text-align:left}
.post__body tr:first-child td,.post__body th{background:var(--paper-2);font-weight:700;color:var(--ink)}
.post__body td[bgcolor]{background:#fff !important}
.post__body td[align="center"]{text-align:center}

/* post navigation */
.post__nav{max-width:var(--wide);margin:clamp(40px,7vw,80px) auto 0;padding:0 clamp(20px,5vw,48px)}
.post__nav-inner{border-top:1px solid var(--line);display:flex;gap:1.5rem;flex-wrap:wrap}
.pnav{flex:1 1 240px;padding:1.6rem 0;min-width:0}
.pnav--next{text-align:right;margin-left:auto}
.pnav small{font-family:var(--serif);letter-spacing:.2em;text-transform:uppercase;font-size:.72rem;color:var(--muted)}
.pnav a{display:block;font-family:var(--mincho);font-weight:700;font-size:1.15rem;line-height:1.5;margin-top:.4em;transition:color .25s}
.pnav a:hover{color:var(--accent)}
.pnav--index{flex:0 0 auto;text-align:center;align-self:center}
.pnav--index a{font-size:.85rem;font-family:var(--serif);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.pnav--index a:hover{color:var(--accent)}

/* footer */
.site-foot{border-top:1px solid var(--line);margin-top:clamp(40px,7vw,70px)}
.site-foot .container{padding-top:clamp(30px,5vw,50px);padding-bottom:clamp(30px,5vw,50px)}
.site-foot__brand{font-family:var(--serif);font-weight:600;font-size:1.4rem}
.site-foot__brand b{color:var(--accent)}
.site-foot p{color:var(--muted);font-size:.8rem;line-height:1.8;margin:.6em 0 0;max-width:44rem}

/* ---------- lightbox ---------- */
.lb{position:fixed;inset:0;z-index:90;display:none;place-items:center;
  background:rgba(24,17,10,.9);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:4vmin;cursor:zoom-out}
.lb.is-open{display:grid;animation:lbfade .3s ease}
.lb img{max-width:96vw;max-height:92vh;width:auto;height:auto;border-radius:6px;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.7);cursor:default}
.lb__cap{position:absolute;left:0;right:0;bottom:2.4vmin;text-align:center;color:#f0e6da;
  font-size:.85rem;padding:0 6vmin;text-shadow:0 1px 6px rgba(0,0,0,.6)}
@keyframes lbfade{from{opacity:0}to{opacity:1}}

/* ---------- reveal on scroll (progressive enhancement: only when JS on) ---------- */
.js [data-reveal]{opacity:0;transform:translateY(22px);
  transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js .cover [data-reveal]{transition-duration:1.1s}

/* ---------- responsive ---------- */
@media(max-width:760px){
  .entry{grid-template-columns:3.2rem 1fr;grid-template-areas:"num title" "num excerpt";row-gap:.3rem}
  .entry__num{grid-area:num}
  .entry__thumb{display:none}
  .entry__meta{grid-column:2}
  .post__body .lead{font-size:1.15rem}
  .shot--wide{width:100%;margin-inline:0}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
  [data-reveal]{opacity:1;transform:none}
}
