/* ============================================================
   Study in Germany — page styles
   Light print-editorial treatment: warm paper canvas, indigo
   ink, gold hairline grid, brand-yellow blocks as punctuation.
   Type-led rather than photo-led — figures sit in exact
   rectangles with numbered captions (Fig. 0X) and generous
   gutters. The feature showcase is two 12-cell walls (services,
   destinations), each led by a 2×2 feature cell and closed by a
   solid yellow index cell so neither wall leaves an orphan tile.
   Closes on one dark full-bleed plate.

   Built on the brand colours and Plus Jakarta Sans only; it
   deliberately borrows no shared component classes from
   theme.css, so everything is scoped under .germany.

   Specificity note: theme.css uses element-qualified resets
   (`p`, `a`, `img`), which are (0,1,1) and would beat any rule
   written as a single class. Every rule here is therefore
   `.germany .gm-x` (0,2,0) so it reliably wins.
   ============================================================ */
.germany{
  --paper:#FDFBF3;
  --paper-2:#F5F1E3;
  --paper-3:#EDE8D6;
  --ink:#120F64;
  --ink-2:#06052B;
  --gold:#CEA800;
  --yellow:#FFE100;
  --copy:#454168;
  --copy-2:#6E6A8C;
  --line:#DFD9C4;
  --line-2:#C9C1A4;
  --gut:clamp(20px,5vw,72px);
  --edge:calc(max((100vw - 1420px) / 2, 0px) + var(--gut));
  background:var(--paper);
  color:var(--copy);
  font-family:var(--font-body);
  display:block;
  overflow-x:clip;
  font-size:16px;
  line-height:1.72;
}
.germany *{box-sizing:border-box}
.germany img{display:block;max-width:100%;border-radius:0}
.germany h1,.germany h2,.germany h3,.germany h4{
  font-family:var(--font-display);color:var(--ink);
  font-weight:800;letter-spacing:-.038em;line-height:1.02;
}
.germany p{margin:0}
.germany a{color:inherit;text-decoration:none}
.germany ul,.germany ol{list-style:none;margin:0;padding:0}

/* ── rhythm ─────────────────────────────────────────────── */
.germany .gm-wrap{max-width:1420px;margin:0 auto;padding:0 var(--gut)}
.germany .gm-full{position:relative;width:100vw;left:50%;transform:translateX(-50%)}
.germany .gm-sec{padding-block:clamp(74px,9.2vw,152px)}
.germany .gm-sec--tight{padding-block:clamp(54px,6.2vw,100px)}

/* ── type atoms ─────────────────────────────────────────── */
.germany .gm-kick{
  font-size:.66rem;font-weight:800;letter-spacing:.34em;text-transform:uppercase;
  color:var(--gold);display:block;line-height:1;
}
.germany .gm-fig{
  font-size:.63rem;font-weight:800;letter-spacing:.26em;text-transform:uppercase;
  color:var(--copy-2);display:block;line-height:1;
}
.germany .gm-d1{font-size:clamp(3rem,8.4vw,7.4rem);letter-spacing:-.055em;line-height:.88}
.germany .gm-h1{font-size:clamp(2.2rem,5.6vw,4.6rem);line-height:1.0}
.germany .gm-h2{font-size:clamp(1.9rem,4.1vw,3.5rem);line-height:1.03}
.germany .gm-h3{font-size:clamp(1.18rem,1.72vw,1.58rem);line-height:1.14;letter-spacing:-.028em}
.germany .gm-h4{font-size:clamp(1rem,1.22vw,1.14rem);line-height:1.22;letter-spacing:-.02em}
.germany .gm-lede{font-size:clamp(1.08rem,1.46vw,1.36rem);line-height:1.6;color:var(--ink)}
.germany .gm-body{font-size:1.005rem;line-height:1.78;color:var(--copy)}
.germany .gm-small{font-size:.88rem;line-height:1.6;color:var(--copy-2)}
.germany .gm-em{color:var(--gold);font-style:normal}
.germany .gm-rule{height:1px;background:var(--line);border:0;width:100%}

/* ── buttons ────────────────────────────────────────────── */
.germany .gm-btn--ink{background:var(--ink);color:var(--paper)}
.germany .gm-btn--yellow{background:var(--yellow);color:var(--ink-2)}
.germany .gm-btn--wire{border-color:var(--ink);color:var(--ink)}
.germany .gm-ctas{display:flex;flex-wrap:wrap;gap:14px}
.germany .gm-cue{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--font-ui);font-size:.665rem;font-weight:800;
  letter-spacing:.2em;text-transform:uppercase;color:var(--ink);line-height:1;
}

/* ══ 01 · COVER — asymmetric split ══════════════════════ */
.germany .gm-cover{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:stretch;background:var(--ink)}
.germany .gm-cover__pane{
  display:flex;flex-direction:column;justify-content:space-between;
  padding:clamp(38px,4.6vw,68px) clamp(30px,4vw,74px) clamp(38px,4.6vw,68px) var(--edge);
  min-height:min(90vh,900px);
}
.germany .gm-cover__top{display:flex;justify-content:space-between;gap:20px;align-items:baseline;flex-wrap:wrap;padding-bottom:24px;border-bottom:1px solid rgba(255,255,255,.2)}
.germany .gm-cover__top .gm-kick{color:var(--yellow)}
.germany .gm-cover__folio{font-size:.63rem;font-weight:800;letter-spacing:.28em;text-transform:uppercase;color:rgba(253,251,243,.6)}
.germany .gm-cover__mid{padding-block:clamp(34px,4vw,56px)}
.germany .gm-cover__mid h1{color:var(--paper)}
.germany .gm-cover__sub{display:block;margin-top:22px;font-size:clamp(.78rem,1.4vw,.98rem);font-weight:800;letter-spacing:.4em;text-transform:uppercase;color:var(--yellow)}
.germany .gm-cover__lede{margin-top:clamp(26px,3vw,38px);font-size:clamp(1.04rem,1.32vw,1.24rem);line-height:1.62;color:rgba(253,251,243,.86);max-width:46ch}
.germany .gm-cover__ctas{margin-top:clamp(28px,3.2vw,40px)}
.germany .gm-cover__figure{position:relative;overflow:hidden;min-height:min(90vh,900px)}
.germany .gm-cover__figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 46%}
.germany .gm-cover__cap{
  position:relative;z-index:1;margin-top:auto;height:100%;display:flex;align-items:flex-end;
  padding:clamp(20px,2.4vw,30px);
  background:linear-gradient(to top,rgba(6,5,43,.82),rgba(6,5,43,0) 42%);
}
.germany .gm-cover__cap span{font-size:.63rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:rgba(253,251,243,.9)}

/* yellow fact band */
.germany .gm-facts{background:var(--yellow)}
.germany .gm-facts__in{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.germany .gm-facts__i{padding:clamp(24px,2.6vw,34px) 0;border-right:1px solid rgba(6,5,43,.16)}
.germany .gm-facts__i + .gm-facts__i{padding-left:clamp(22px,2.4vw,34px)}
.germany .gm-facts__i:last-child{border-right:0}
.germany .gm-facts__k{display:block;font-size:.6rem;font-weight:800;letter-spacing:.26em;text-transform:uppercase;color:rgba(6,5,43,.6);margin-bottom:10px}
.germany .gm-facts__v{display:block;font-family:var(--font-display);font-size:clamp(1rem,1.4vw,1.22rem);font-weight:800;color:var(--ink-2);letter-spacing:-.025em;line-height:1.2}

/* ══ 02 · LEDE SPREAD ═══════════════════════════════════ */
.germany .gm-spread{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(30px,6vw,100px);align-items:start}
.germany .gm-spread__h{margin-top:26px}
.germany .gm-spread__col > * + *{margin-top:22px}
.germany .gm-spread__first{font-size:clamp(1.14rem,1.6vw,1.42rem);line-height:1.56;color:var(--ink);font-weight:500}
.germany .gm-quote{
  margin-top:clamp(34px,4vw,52px);padding-top:clamp(26px,3vw,38px);border-top:2px solid var(--gold);
  font-family:var(--font-display);font-size:clamp(1.4rem,2.4vw,2.05rem);line-height:1.26;
  letter-spacing:-.032em;color:var(--ink);font-weight:800;
}

/* ══ 03 · FULL-BLEED FIGURE + CAPTION STRIP ═════════════ */
.germany .gm-plate{display:block}
.germany .gm-plate img{width:100%;height:clamp(300px,46vw,620px);object-fit:cover;object-position:50% 48%}
.germany .gm-plate__bar{background:var(--ink);color:var(--paper)}
.germany .gm-plate__barin{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-block:clamp(18px,2vw,26px)}
.germany .gm-plate__barin span{font-size:.68rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase}
.germany .gm-plate__barin span:first-child{color:var(--yellow)}
.germany .gm-plate__barin span:last-child{color:rgba(253,251,243,.74)}

/* ══ 04 · FOUR REASONS — type strip ═════════════════════ */
.germany .gm-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:clamp(34px,4vw,56px);border-top:1px solid var(--line-2)}
.germany .gm-strip__i{padding:clamp(28px,2.8vw,40px) clamp(20px,2.2vw,32px) 0 0;border-right:1px solid var(--line)}
.germany .gm-strip__i + .gm-strip__i{padding-left:clamp(20px,2.2vw,32px)}
.germany .gm-strip__i:last-child{border-right:0}
.germany .gm-strip__n{
  display:block;font-family:var(--font-display);font-size:clamp(2.4rem,4vw,3.6rem);font-weight:800;
  line-height:.9;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px var(--gold);margin-bottom:20px;
}
/* hold a two-line well for the headings so the four body columns share a
   baseline — one heading wraps and the strip reads ragged otherwise */
.germany .gm-strip__i h3{min-height:2.5em}
.germany .gm-strip__i p{margin-top:12px;font-size:.95rem;line-height:1.68;color:var(--copy)}

/* ══ 05 · COMPARE — captioned figure cards ══════════════ */
.germany .gm-cards{display:grid;gap:clamp(22px,2.4vw,38px);margin-top:clamp(34px,4vw,56px)}
.germany .gm-cards--3{grid-template-columns:repeat(3,1fr)}
.germany .gm-cards--2{grid-template-columns:repeat(2,1fr);margin-top:clamp(22px,2.4vw,38px)}
.germany .gm-card{display:flex;flex-direction:column;background:var(--paper-2);border:1px solid var(--line)}
.germany .gm-card__fig{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--paper-3)}
.germany .gm-card__fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.germany .gm-card__in{padding:clamp(22px,2.2vw,32px);display:flex;flex-direction:column;flex:1}
.germany .gm-card__meta{display:flex;justify-content:space-between;gap:14px;align-items:baseline;padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid var(--line-2)}
.germany .gm-card__in p{margin-top:12px;font-size:.95rem;line-height:1.66}
.germany .gm-card--wide{flex-direction:row;align-items:stretch}
.germany .gm-card--wide .gm-card__fig{aspect-ratio:auto;flex:0 0 46%}
.germany .gm-card--wide .gm-card__in{justify-content:center;padding:clamp(26px,3vw,46px)}

/* ══ 06 · DIFFERENT — yellow block ══════════════════════ */
.germany .gm-yellow{background:var(--yellow)}
.germany .gm-yellow .gm-kick{color:rgba(6,5,43,.62)}
.germany .gm-yellow__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(30px,5vw,86px);align-items:start}
.germany .gm-yellow__h{margin-top:22px;color:var(--ink-2)}
.germany .gm-yellow__list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(26px,3vw,48px)}
.germany .gm-yellow__li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;padding-block:20px;border-top:1px solid rgba(6,5,43,.18);align-items:start}
.germany .gm-yellow__li b{font-size:.76rem;font-weight:800;letter-spacing:.14em;color:rgba(6,5,43,.55);line-height:2}
.germany .gm-yellow__li span:last-child{font-size:.97rem;line-height:1.62;color:var(--ink-2)}

/* ══ 07 · PASSAGE — text left, figure right ═════════════ */
.germany .gm-passage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);align-items:stretch}
.germany .gm-passage__pane{display:flex;flex-direction:column;justify-content:center;padding:clamp(46px,6vw,96px) clamp(30px,5vw,84px) clamp(46px,6vw,96px) var(--edge)}
.germany .gm-passage__pane > * + *{margin-top:22px}
.germany .gm-passage__note{font-family:var(--font-display);font-size:clamp(1.35rem,2.3vw,2rem);line-height:1.22;letter-spacing:-.032em;color:var(--ink);font-weight:800}
.germany .gm-passage__fig{position:relative;overflow:hidden;min-height:clamp(360px,52vh,660px)}
.germany .gm-passage__fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ══ 08 · ROUTE ═════════════════════════════════════════ */
.germany .gm-route{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,2.2vw,34px);margin-top:clamp(34px,4vw,56px)}
.germany .gm-route__i{border-top:2px solid var(--ink);padding-top:clamp(22px,2.4vw,32px)}
.germany .gm-route__n{display:block;font-size:.63rem;font-weight:800;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.germany .gm-route__i p{margin-top:12px;font-size:.95rem;line-height:1.66}

/* ══ 09 · WALLS — 12-cell feature grids ═════════════════ */
.germany .gm-wall{display:grid;gap:1px;background:var(--line-2);border:1px solid var(--line-2);margin-top:clamp(34px,4vw,56px)}
.germany .gm-wall--4{grid-template-columns:repeat(4,1fr)}
.germany .gm-wall--3{grid-template-columns:repeat(3,1fr)}
.germany .gm-cell{display:flex;flex-direction:column;background:var(--paper);min-height:clamp(220px,20vw,270px)}
.germany .gm-cell__fig{position:relative;overflow:hidden;height:clamp(120px,10vw,140px);background:var(--paper-3);flex:none}
.germany .gm-cell__fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.germany .gm-cell__in{padding:clamp(18px,1.8vw,26px);display:flex;flex-direction:column;flex:1}
.germany .gm-cell__n{display:block;font-size:.6rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:12px}
.germany .gm-cell__in p{margin-top:10px;font-size:.885rem;line-height:1.58;color:var(--copy)}
.germany .gm-cell__in .gm-cue{margin-top:auto;padding-top:18px}
/* 2×2 feature cell */
.germany .gm-cell--feature{grid-column:span 2;grid-row:span 2}
.germany .gm-cell--feature .gm-cell__fig{height:auto;flex:1;min-height:clamp(190px,17vw,250px)}
.germany .gm-cell--feature .gm-cell__in{padding:clamp(24px,2.6vw,38px);flex:none}
.germany .gm-cell--feature .gm-cell__in p{font-size:1rem;line-height:1.66;max-width:46ch}
/* solid yellow CTA cell — the wall's colour punctuation */
.germany .gm-cell--cta{background:var(--yellow);justify-content:flex-end}
.germany .gm-cell--cta .gm-cell__in{padding:clamp(22px,2.2vw,32px)}
.germany .gm-cell--cta .gm-cell__n{color:rgba(6,5,43,.55)}
.germany .gm-cell--cta h3{color:var(--ink-2)}
.germany .gm-cell--cta p{color:rgba(6,5,43,.76)}

/* ══ 10 · QUESTIONS ═════════════════════════════════════ */
.germany .gm-q{display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(30px,5vw,84px);margin-top:clamp(30px,3.6vw,50px)}
.germany .gm-q__i{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;padding-block:20px;border-top:1px solid var(--line);align-items:baseline}
.germany .gm-q__n{font-family:var(--font-display);font-size:.82rem;font-weight:800;color:var(--gold);letter-spacing:.1em}
.germany .gm-q__i span:last-child{color:var(--ink);font-size:1rem;line-height:1.6}

/* ══ 11 · CLOSING — one dark plate ══════════════════════ */
.germany .gm-close{position:relative;overflow:hidden;isolation:isolate;background:var(--ink-2)}
.germany .gm-close__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 44%}
.germany .gm-close__veil{position:absolute;inset:0;z-index:1;background:linear-gradient(to right,rgba(6,5,43,.95) 0%,rgba(6,5,43,.84) 48%,rgba(6,5,43,.46) 100%)}
.germany .gm-close__in{position:relative;z-index:2;padding-block:clamp(80px,10vw,164px)}
.germany .gm-close__grid{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(0,1fr);gap:clamp(34px,5vw,80px);align-items:end}
.germany .gm-close__h{color:var(--paper);margin-top:24px}
.germany .gm-close__lede{margin-top:26px;color:rgba(253,251,243,.84);max-width:52ch;font-size:clamp(1.04rem,1.32vw,1.24rem);line-height:1.6}
.germany .gm-close__ctas{margin-top:36px}
.germany .gm-close__steps{display:grid;gap:0}
.germany .gm-close__s{display:flex;justify-content:space-between;gap:18px;padding-block:15px;border-top:1px solid rgba(255,255,255,.18)}
.germany .gm-close__s span:first-child{font-size:.63rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:rgba(253,251,243,.5);padding-top:4px}
.germany .gm-close__s span:last-child{color:var(--paper);font-weight:700;font-size:.94rem;text-align:right}

/* ══ RESPONSIVE ═════════════════════════════════════════ */
@media (max-width:1080px){
  .germany .gm-cover{grid-template-columns:1fr}
  .germany .gm-cover__pane{min-height:auto;padding:clamp(46px,8vw,72px) var(--gut)}
  .germany .gm-cover__figure{min-height:clamp(320px,46vh,480px)}
  .germany .gm-facts__in{grid-template-columns:repeat(2,1fr)}
  .germany .gm-facts__i:nth-child(2){border-right:0}
  .germany .gm-facts__i:nth-child(3){padding-left:0;border-top:1px solid rgba(6,5,43,.16)}
  .germany .gm-facts__i:nth-child(4){border-top:1px solid rgba(6,5,43,.16)}
  .germany .gm-spread{grid-template-columns:1fr;gap:30px}
  .germany .gm-strip{grid-template-columns:repeat(2,1fr)}
  .germany .gm-strip__i:nth-child(2){border-right:0}
  .germany .gm-strip__i:nth-child(3){padding-left:0;border-top:1px solid var(--line)}
  .germany .gm-strip__i:nth-child(4){border-top:1px solid var(--line)}
  .germany .gm-cards--3{grid-template-columns:repeat(2,1fr)}
  .germany .gm-yellow__grid{grid-template-columns:1fr;gap:32px}
  .germany .gm-passage{grid-template-columns:1fr}
  .germany .gm-passage__pane{padding:clamp(44px,7vw,72px) var(--gut)}
  .germany .gm-passage__fig{min-height:clamp(320px,44vh,460px)}
  .germany .gm-route{grid-template-columns:repeat(2,1fr)}
  .germany .gm-wall--4,.germany .gm-wall--3{grid-template-columns:repeat(2,1fr)}
  .germany .gm-close__grid{grid-template-columns:1fr;gap:38px}
}
@media (max-width:720px){
  .germany .gm-cards--3,.germany .gm-cards--2{grid-template-columns:1fr}
  .germany .gm-card--wide{flex-direction:column}
  .germany .gm-card--wide .gm-card__fig{flex:none;aspect-ratio:4/3}
  .germany .gm-strip,.germany .gm-route{grid-template-columns:1fr}
  .germany .gm-strip__i{border-right:0;border-top:1px solid var(--line);padding-left:0 !important}
  .germany .gm-facts__in{grid-template-columns:1fr}
  .germany .gm-facts__i{border-right:0;padding-left:0 !important;border-top:1px solid rgba(6,5,43,.16)}
  .germany .gm-wall--4,.germany .gm-wall--3{grid-template-columns:1fr}
  .germany .gm-cell--feature{grid-column:span 1;grid-row:span 1}
  .germany .gm-yellow__list,.germany .gm-q{grid-template-columns:1fr}
}
