/* ==========================================================================
   Gobasco: stylesheet. Rebuilt from the "Wegweiser" design spec:
   stone page, white cards, petrol accent, ochre markers and newsletter band.
   Tiempos Headline (headlines), Tiempos Text (body), Monument Grotesk (UI),
   Monument Mono (dates and figures). Class prefix: gb-
   ========================================================================== */

@font-face { font-family: 'Tiempos Headline'; font-weight: 300; font-display: swap; src: url('fonts/TiemposHeadline-Light.woff') format('woff'); }
@font-face { font-family: 'Tiempos Headline'; font-weight: 400; font-display: swap; src: url('fonts/TiemposHeadline-Regular.woff') format('woff'); }
@font-face { font-family: 'Tiempos Headline'; font-weight: 600; font-display: swap; src: url('fonts/TiemposHeadline-Semibold.woff2') format('woff2'); }
@font-face { font-family: 'Tiempos Text'; font-weight: 400; font-display: swap; src: url('fonts/TiemposText-Regular.woff2') format('woff2'); }
@font-face { font-family: 'Tiempos Text'; font-weight: 600; font-display: swap; src: url('fonts/TiemposText-Semibold.woff2') format('woff2'); }
@font-face { font-family: 'Monument'; font-weight: 400; font-display: swap; ascent-override: 76%; descent-override: 24%; line-gap-override: 0%; src: url('fonts/MonumentGrotesk-Regular.woff2') format('woff2'); }
@font-face { font-family: 'Monument'; font-weight: 500; font-display: swap; ascent-override: 76%; descent-override: 24%; line-gap-override: 0%; src: url('fonts/MonumentGrotesk-Medium.woff2') format('woff2'); }
@font-face { font-family: 'Monument'; font-weight: 700; font-display: swap; ascent-override: 76%; descent-override: 24%; line-gap-override: 0%; src: url('fonts/MonumentGrotesk-Bold.woff2') format('woff2'); }
@font-face { font-family: 'MonumentMono'; font-weight: 400; font-display: swap; ascent-override: 76%; descent-override: 24%; line-gap-override: 0%; src: url('fonts/MonumentGrotesk-Mono.woff2') format('woff2'); }

:root {
  --page: #E4E1D9;
  --stone: #F3F1EC;
  --white: #FFFFFF;
  --ink: #1B2426;
  --body: #3C4648;
  --muted: #5D6668;
  --line: #E2DED5;
  --line-soft: #ECE8E0;
  --rule: #D8D3C8;
  --petrol: #0E4F5C;
  --petrol-dark: #0A3A44;
  --petrol-tint: #E3EEF0;
  --petrol-pale: #D5E4E6;
  --ochre: #D9A441;
  --band: #E8B34B;
  --band-edge: #C9952F;
  --note: #FBF3E2;
  --serif-h: 'Tiempos Headline', Georgia, 'Times New Roman', serif;
  --serif-t: 'Tiempos Text', Georgia, 'Times New Roman', serif;
  --sans: 'Monument', 'Helvetica Neue', Arial, sans-serif;
  --mono: 'MonumentMono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
  --gutter: 48px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--page); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.5; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--petrol); }
:focus-visible { outline: 2px solid var(--petrol); outline-offset: 2px; }
.gb-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.gb-skip { position: absolute; left: -9999px; top: 0; background: var(--petrol); color: #fff; padding: 10px 16px; z-index: 50; }
.gb-skip:focus { left: 12px; top: 12px; color: #fff; }
.gb-mono { font-family: var(--mono); }

.gb-shell { max-width: 1280px; margin: 0 auto; background: var(--stone); min-height: 100vh; overflow-x: clip; }

/* ---------- Top bar (disclosure) ---------- */
.gb-topbar { min-height: 34px; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 8px var(--gutter); background: var(--petrol); color: var(--petrol-pale); font-size: 12.5px; line-height: 1.3; }
.gb-topbar p { margin: 0; }
.gb-topbar__ad { color: #FFFFFF; font-weight: 500; }
.gb-topbar__meta { display: flex; gap: 14px; align-items: center; }
.gb-topbar__meta .gb-mono { font-size: 11.5px; }

/* ---------- Header ---------- */
.gb-header { background: var(--white); border-bottom: 1px solid var(--line); }
.gb-header__in { min-height: 84px; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 0 var(--gutter); }
.gb-brand { display: flex; align-items: baseline; gap: 10px; color: var(--petrol); }
.gb-brand:hover { color: var(--petrol); }
.gb-brand__name { font-family: var(--serif-h); font-size: 31px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.1; }
.gb-brand__dot { color: var(--ochre); }
.gb-brand__tag { font-size: 13px; color: var(--muted); }
.gb-nav { display: flex; align-items: center; gap: 26px; font-size: 15px; font-weight: 500; line-height: 1; }
.gb-nav__link { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 2px solid transparent; }
.gb-nav__link img { width: 18px; height: 18px; }
.gb-nav__link[aria-current="page"] { color: var(--petrol); border-bottom-color: var(--ochre); }
.gb-menu { display: none; }

/* ---------- Buttons ---------- */
.gb-btn { height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 22px; font-family: var(--sans); font-size: 15px; font-weight: 500; line-height: 1; border: 0; border-radius: 6px; background: var(--petrol); color: #FFFFFF; cursor: pointer; white-space: nowrap; }
.gb-btn:hover { background: var(--petrol-dark); color: #FFFFFF; }
.gb-btn--nav { height: 42px; padding: 0 18px; }
.gb-btn--nav img { width: 16px; height: 16px; }
.gb-btn--nav[aria-current="page"] { background: var(--petrol-dark); }
.gb-btn--ochre { background: var(--band); color: var(--ink); }
.gb-btn--ochre:hover { background: #F2C566; color: var(--ink); }
.gb-btn--ghost { background: transparent; color: var(--petrol); box-shadow: inset 0 0 0 1px var(--petrol); }
.gb-btn--ghost:hover { background: var(--petrol-tint); color: var(--petrol); }
.gb-btn--block { display: flex; width: 100%; height: 44px; font-size: 14.5px; margin-top: 14px; }

/* ---------- Generic pieces ---------- */
.gb-main { display: block; padding-bottom: 64px; }
.gb-img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; background: var(--line); filter: saturate(.92) contrast(1.02); }
.gb-chip { display: inline-flex; align-items: center; gap: 7px; height: 26px; padding: 0 10px; border-radius: 4px; background: var(--petrol-tint); color: var(--petrol); font-size: 12.5px; font-weight: 500; line-height: 1; }
.gb-chip img { width: 14px; height: 14px; }
.gb-chip:hover { background: #D4E5E8; }
.gb-section { padding: 56px var(--gutter) 0; }
.gb-sechead { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.gb-sechead__h { margin: 0; font-family: var(--serif-h); font-size: 30px; font-weight: 400; line-height: 1.15; }
.gb-more { font-size: 14px; font-weight: 500; color: var(--petrol); }
.gb-panel { background: var(--white); margin: 0; padding: 36px var(--gutter) 56px; }
.gb-crumbs { margin: 0; font-size: 13.5px; color: var(--muted); }
.gb-crumbs a:hover { color: var(--petrol); }
.gb-crumbs__here { color: var(--ink); }

/* ---------- Homepage: lead ---------- */
.gb-lead { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 40px; padding: 40px var(--gutter) 0; align-items: start; }
.gb-lead__img { height: 440px; aspect-ratio: auto; }
.gb-lead__card { position: relative; margin: -110px 32px 0; max-width: 680px; background: var(--white); border-radius: 10px; padding: 26px 30px; box-shadow: 0 1px 0 var(--line); }
.gb-lead__ad { margin: 14px 0 0; font-size: 12.5px; font-weight: 500; color: var(--muted); letter-spacing: .01em; }
.gb-lead__h { margin: 8px 0 0; font-family: var(--serif-h); font-size: 40px; font-weight: 400; line-height: 1.12; letter-spacing: -0.01em; text-wrap: pretty; }
.gb-lead__p { margin: 12px 0 0; font-family: var(--serif-t); font-size: 18px; line-height: 1.55; color: var(--body); }
.gb-lead__meta { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; font-family: var(--mono); font-size: 11.5px; color: var(--muted); }
.gb-lead__cta { margin-top: 18px; }

.gb-weekly { background: var(--white); border-radius: 10px; padding: 24px 26px; }
.gb-weekly__h { margin: 0; font-family: var(--serif-h); font-size: 23px; font-weight: 600; line-height: 1.2; }
.gb-weekly ol { list-style: none; margin: 10px 0 0; padding: 0; }
.gb-weekly li a { display: grid; grid-template-columns: 34px 1fr; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line-soft); align-items: start; }
.gb-weekly li:last-child a { border-bottom: 0; padding-bottom: 4px; }
.gb-num { width: 28px; height: 28px; border-radius: 50%; background: var(--ochre); color: var(--ink); display: flex; align-items: center; justify-content: center; font-size: 13.5px; font-weight: 700; line-height: 1; }
.gb-weekly__t { font-size: 15.5px; line-height: 1.4; font-weight: 500; }
.gb-weekly__note { margin: 14px 0 0; font-size: 12.5px; color: var(--muted); line-height: 1.45; }

/* ---------- Homepage: topic tiles ---------- */
.gb-tiles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
.gb-tile { display: block; background: var(--white); border: 1px solid var(--line); border-radius: 10px; padding: 22px 20px; }
.gb-tile:hover { border-color: var(--petrol); color: var(--ink); }
.gb-tile__icon { width: 56px; height: 56px; border-radius: 50%; background: var(--petrol-tint); display: flex; align-items: center; justify-content: center; }
.gb-tile__icon img { width: 28px; height: 28px; }
.gb-tile__t, .gb-tile__p, .gb-tile__n { display: block; }
.gb-tile__t { margin-top: 16px; font-family: var(--serif-h); font-size: 21px; font-weight: 600; line-height: 1.2; }
.gb-tile__p { margin-top: 6px; font-size: 13.5px; line-height: 1.45; color: var(--muted); }
.gb-tile__n { margin-top: 14px; font-family: var(--mono); font-size: 11.5px; color: var(--petrol); }

/* ---------- Cards ---------- */
.gb-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-top: 20px; }
.gb-card { display: block; }
.gb-card:hover { color: var(--ink); }
.gb-card:hover .gb-card__t { color: var(--petrol); }
.gb-card__img { aspect-ratio: 16 / 10; border-radius: 8px; }
.gb-card__cat { margin-top: 14px; display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 500; color: var(--petrol); line-height: 1; }
.gb-card__cat img { width: 14px; height: 14px; }
.gb-card__t { display: block; margin-top: 8px; font-family: var(--serif-h); font-size: 23px; line-height: 1.2; }
.gb-card__p { display: block; margin-top: 8px; font-family: var(--serif-t); font-size: 16px; line-height: 1.5; color: var(--body); }
.gb-card__meta { display: block; margin-top: 10px; font-size: 11.5px; color: var(--muted); }
.gb-card__ad { display: block; margin-top: 8px; font-size: 12px; color: var(--muted); }

/* ---------- Homepage: all guides list ---------- */
.gb-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; margin-top: 20px; background: var(--white); border-radius: 10px; padding: 8px 30px; }
.gb-list a { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 18px; padding: 18px 0; border-bottom: 1px solid var(--line-soft); align-items: start; }
.gb-list a:hover { color: var(--ink); }
.gb-list a:hover .gb-list__t { color: var(--petrol); }
.gb-list__img { aspect-ratio: 4 / 3; border-radius: 6px; }
.gb-list__cat { display: block; font-size: 12.5px; font-weight: 500; color: var(--petrol); }
.gb-list__t { display: block; margin-top: 6px; font-family: var(--serif-h); font-size: 19px; line-height: 1.25; }
.gb-list__meta { display: block; margin-top: 6px; font-family: var(--mono); font-size: 11.5px; color: var(--muted); }

/* ---------- Newsletter ---------- */
.gb-optin { border-radius: 12px; }
.gb-optin--band { margin: 60px var(--gutter) 0; background: var(--band); padding: 40px 44px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 470px); gap: 48px; align-items: center; }
.gb-optin__kicker { margin: 0; display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 500; color: var(--petrol); line-height: 1.2; }
.gb-optin__kicker img { width: 16px; height: 16px; }
.gb-optin__t { margin: 12px 0 0; font-family: var(--serif-h); font-size: 36px; font-weight: 400; line-height: 1.12; color: var(--ink); }
.gb-optin__p { margin: 12px 0 0; font-size: 15px; line-height: 1.55; color: #2B3436; }
.gb-optin__facts { margin: 14px 0 0; display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 14.5px; color: #2B3436; }
.gb-form { display: flex; gap: 8px; }
.gb-field { flex: 1; min-width: 0; height: 52px; padding: 0 16px; font-family: var(--sans); font-size: 15.5px; border: 1px solid var(--band-edge); border-radius: 6px; background: #FFFFFF; color: var(--ink); outline: none; }
.gb-field:focus { border-color: var(--petrol); box-shadow: 0 0 0 2px rgba(14, 79, 92, .25); }
.gb-form .gb-btn { height: 52px; }
.gb-consent { display: grid; grid-template-columns: 20px 1fr; gap: 10px; margin-top: 12px; font-size: 13px; line-height: 1.45; color: #3A3220; cursor: pointer; }
.gb-consent input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--petrol); }
.gb-consent a { text-decoration: underline; }
.gb-msg { margin: 8px 0 0; min-height: 0; font-size: 13.5px; font-weight: 500; }
.gb-msg:empty { display: none; }
.gb-msg[data-state="err"] { color: #8A1F11; }
.gb-msg[data-state="ok"] { color: var(--petrol); }
.gb-optin__note { margin: 8px 0 0; font-size: 12px; line-height: 1.5; color: #3A3220; }

.gb-optin--inline { margin-top: 36px; background: var(--petrol); padding: 26px 28px; color: #FFFFFF; }
.gb-optin--inline .gb-optin__kicker { color: var(--petrol-pale); }
.gb-optin--inline .gb-optin__t { margin-top: 10px; font-size: 25px; line-height: 1.2; color: #FFFFFF; }
.gb-optin--inline .gb-optin__p { margin-top: 6px; color: var(--petrol-pale); }
.gb-optin--inline .gb-optin__form { margin-top: 16px; }
.gb-optin--inline .gb-field { height: 50px; border: 0; }
.gb-optin--inline .gb-form .gb-btn { height: 50px; }
.gb-optin--inline .gb-consent, .gb-optin--inline .gb-optin__note { color: var(--petrol-pale); }
.gb-optin--inline .gb-msg[data-state="err"] { color: #FFD9B0; }
.gb-optin--inline .gb-msg[data-state="ok"] { color: #FFFFFF; }

.gb-optin--box { background: var(--white); border: 1px solid var(--line); padding: 26px 28px; }
.gb-optin--box .gb-optin__t { font-size: 25px; line-height: 1.2; }
.gb-optin--box .gb-optin__form { margin-top: 16px; }
.gb-optin--box .gb-field { border-color: var(--line); }
.gb-optin--box .gb-consent, .gb-optin--box .gb-optin__note { color: var(--body); }

/* ---------- FAQ ---------- */
.gb-faq { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 48px; }
.gb-faq__h { margin: 0; font-family: var(--serif-h); font-size: 30px; font-weight: 400; line-height: 1.15; }
.gb-faq__intro { margin: 12px 0 0; font-size: 14.5px; line-height: 1.55; color: var(--muted); }
.gb-faq__list { background: var(--white); border-radius: 10px; padding: 0 26px; }
.gb-faq details { border-bottom: 1px solid var(--line-soft); }
.gb-faq details:last-child { border-bottom: 0; }
.gb-faq summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 0; cursor: pointer; list-style: none; font-size: 17px; font-weight: 500; line-height: 1.35; }
.gb-faq summary::-webkit-details-marker { display: none; }
.gb-faq summary::after { content: '+'; width: 30px; height: 30px; flex: none; border-radius: 50%; border: 1px solid var(--petrol); color: var(--petrol); display: flex; align-items: center; justify-content: center; font-size: 18px; line-height: 1; }
.gb-faq details[open] summary::after { content: '\2212'; background: var(--petrol); color: #FFFFFF; }
.gb-faq__a { padding: 0 0 20px; font-family: var(--serif-t); font-size: 16.5px; line-height: 1.6; color: var(--body); }
.gb-faq__a p { margin: 0 0 10px; }
.gb-faq__a a { color: var(--petrol); text-decoration: underline; text-underline-offset: 2px; }

/* ---------- Article page ---------- */
.gb-artgrid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; margin-top: 22px; align-items: start; }
.gb-article { min-width: 0; }
.gb-adlabel { margin: 16px 0 0; display: inline-block; padding: 6px 10px; border: 1px solid var(--line); border-radius: 4px; background: var(--stone); font-size: 13px; font-weight: 500; color: var(--body); line-height: 1.35; }
.gb-article__h1 { margin: 14px 0 0; font-family: var(--serif-h); font-size: 46px; font-weight: 400; line-height: 1.1; letter-spacing: -0.01em; text-wrap: pretty; }
.gb-article__dek { margin: 16px 0 0; font-family: var(--serif-t); font-size: 20px; line-height: 1.55; color: var(--body); }
.gb-article__dek--strong { font-weight: 600; color: var(--ink); font-size: 19px; }
.gb-byline { display: flex; align-items: center; gap: 14px; margin-top: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--line-soft); }
.gb-mono-avatar { width: 44px; height: 44px; flex: none; border-radius: 50%; background: var(--petrol); color: #FFFFFF; display: flex; align-items: center; justify-content: center; font-family: var(--serif-h); font-size: 21px; font-weight: 600; line-height: 1; }
.gb-mono-avatar--lg { width: 72px; height: 72px; font-size: 32px; }
.gb-byline__txt { font-size: 14px; line-height: 1.45; }
.gb-byline__name { font-weight: 500; }
.gb-byline__sub { color: var(--muted); }

.gb-brief { margin-top: 26px; border: 1px solid var(--petrol); border-radius: 10px; overflow: hidden; }
.gb-brief__h { margin: 0; min-height: 42px; display: flex; align-items: center; padding: 10px 20px; background: var(--petrol); color: #FFFFFF; font-size: 14px; font-weight: 500; line-height: 1.2; }
.gb-brief ul { list-style: none; margin: 0; padding: 18px 22px; display: flex; flex-direction: column; gap: 10px; font-family: var(--serif-t); font-size: 17px; line-height: 1.5; }
.gb-brief li { display: grid; grid-template-columns: 18px 1fr; gap: 10px; }
.gb-brief li::before { content: ''; width: 7px; height: 7px; margin-top: 9px; background: var(--ochre); border-radius: 50%; }

.gb-figure { margin: 28px 0 0; }
.gb-figure figcaption { margin-top: 8px; font-size: 12.5px; line-height: 1.45; color: var(--muted); }
.gb-figure--hero .gb-img { max-height: 440px; }

.gb-prose { font-family: var(--serif-t); font-size: 19px; line-height: 1.7; color: var(--ink); }
.gb-prose > :first-child { margin-top: 28px; }
.gb-prose--intro > :first-child { margin-top: 22px; }
.gb-prose p { margin: 18px 0 0; }
.gb-prose h2 { margin: 40px 0 0; font-family: var(--serif-h); font-size: 28px; font-weight: 600; line-height: 1.2; scroll-margin-top: 20px; }
.gb-prose h3 { margin: 30px 0 0; font-family: var(--serif-h); font-size: 22px; font-weight: 600; line-height: 1.25; }
.gb-prose a { color: var(--petrol); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.gb-prose a:hover { color: var(--petrol-dark); }
.gb-prose strong { font-weight: 600; }
.gb-prose ul, .gb-prose ol { margin: 16px 0 0; padding-left: 1.3em; }
.gb-prose li { margin: 8px 0 0; padding-left: 4px; }
.gb-prose ul li::marker { color: var(--ochre); }
.gb-prose blockquote { margin: 32px 0 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--ochre); font-family: var(--serif-h); font-size: 25px; line-height: 1.35; color: var(--petrol); }
.gb-prose blockquote p { margin: 0; }
.gb-prose .gb-figure { margin-top: 30px; }

.gb-table { margin-top: 20px; border: 1px solid var(--line); border-radius: 10px; overflow-x: auto; font-family: var(--sans); font-size: 15.5px; line-height: 1.45; }
.gb-table table { width: 100%; border-collapse: collapse; min-width: 480px; }
.gb-table caption { caption-side: top; text-align: left; padding: 12px 20px 0; font-size: 13px; font-weight: 500; color: var(--muted); background: var(--stone); }
.gb-table th, .gb-table td { padding: 12px 20px; text-align: left; vertical-align: top; }
.gb-table thead th { background: var(--stone); font-weight: 500; }
.gb-table tbody tr { border-top: 1px solid var(--line-soft); }
.gb-table .num { text-align: right; font-family: var(--mono); font-size: 14.5px; white-space: nowrap; }
.gb-table tr.gb-total { border-top: 1px solid var(--petrol); font-weight: 700; color: var(--petrol); }
.gb-tnote { margin: 10px 0 0 !important; font-family: var(--sans); font-size: 13.5px !important; line-height: 1.5 !important; color: var(--muted); }

.gb-note { margin-top: 28px; background: var(--note); border-radius: 10px; padding: 20px 22px; display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; }
.gb-note__icon { width: 40px; height: 40px; border-radius: 50%; background: var(--band); display: flex; align-items: center; justify-content: center; }
.gb-note__icon img { width: 20px; height: 20px; }
.gb-note__t { margin: 0 !important; font-family: var(--sans); font-size: 15px; font-weight: 700; line-height: 1.3; }
.gb-note__p { margin: 6px 0 0 !important; font-family: var(--serif-t); font-size: 17px; line-height: 1.55; }

.gb-checks { list-style: none; padding-left: 0 !important; }
.gb-checks li { position: relative; padding-left: 30px !important; }
.gb-checks li::before { content: ''; position: absolute; left: 2px; top: .45em; width: 16px; height: 16px; border-radius: 4px; background: var(--petrol-tint); box-shadow: inset 0 0 0 1px var(--petrol); }
.gb-checks li::after { content: ''; position: absolute; left: 7px; top: calc(.45em + 3px); width: 5px; height: 8px; border: solid var(--petrol); border-width: 0 2px 2px 0; transform: rotate(45deg); }

.gb-sources { margin-top: 40px; padding-top: 22px; border-top: 1px solid var(--line-soft); }
.gb-sources__h { margin: 0; font-size: 13px; font-weight: 700; color: var(--petrol); }
.gb-sources ol { margin: 12px 0 0; padding-left: 1.3em; font-size: 14.5px; line-height: 1.55; color: var(--body); }
.gb-sources li { margin-top: 8px; }
.gb-sources a { color: var(--petrol); text-decoration: underline; text-underline-offset: 2px; word-break: break-word; }

.gb-disclaimer { margin-top: 28px; background: var(--stone); border-radius: 10px; padding: 20px 22px; font-size: 14px; line-height: 1.6; color: var(--body); }
.gb-disclaimer__h { margin: 0; font-size: 13px; font-weight: 700; color: var(--ink); }
.gb-disclaimer p { margin: 8px 0 0; }
.gb-disclaimer a { color: var(--petrol); text-decoration: underline; }

.gb-editbox { margin-top: 36px; display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 18px; padding: 22px; border: 1px solid var(--line); border-radius: 10px; }
.gb-editbox__name { margin: 0; font-size: 16px; font-weight: 700; }
.gb-editbox__p { margin: 4px 0 0; font-size: 14.5px; line-height: 1.55; color: var(--body); }
.gb-editbox__p a { color: var(--petrol); text-decoration: underline; }

/* Sidebar: the whole aside is sticky, it is short, and nothing follows it. */
.gb-aside { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 20px; max-height: calc(100vh - 48px); overflow-y: auto; }
.gb-toc { background: var(--stone); border-radius: 10px; padding: 20px 22px; }
.gb-toc__h { margin: 0; font-size: 13px; font-weight: 700; color: var(--petrol); }
.gb-toc ol { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 12px; font-size: 14.5px; line-height: 1.35; }
.gb-toc a { display: grid; grid-template-columns: 24px 1fr; }
.gb-toc a.is-active { color: var(--petrol); font-weight: 500; }
.gb-asidebox { background: var(--white); border: 1px solid var(--line); border-radius: 10px; padding: 20px 22px; }
.gb-asidebox__h { margin: 0; display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; line-height: 1; }
.gb-asidebox__h img { width: 15px; height: 15px; }
.gb-asidebox__p { margin: 10px 0 0; font-size: 14px; line-height: 1.5; color: var(--body); }

/* ---------- Category & simple pages ---------- */
.gb-pagehead { padding: 44px var(--gutter) 0; }
.gb-pagehead__k { margin: 0; display: flex; align-items: center; gap: 10px; }
.gb-pagehead__h1 { margin: 14px 0 0; font-family: var(--serif-h); font-size: 46px; font-weight: 400; line-height: 1.1; letter-spacing: -0.01em; }
.gb-pagehead__p { margin: 14px 0 0; max-width: 760px; font-family: var(--serif-t); font-size: 19px; line-height: 1.6; color: var(--body); }
.gb-catlead { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 40px; align-items: center; margin: 32px var(--gutter) 0; background: var(--white); border-radius: 10px; padding: 28px; }
.gb-catlead__h { margin: 12px 0 0; font-family: var(--serif-h); font-size: 32px; font-weight: 400; line-height: 1.15; }
.gb-catlead__p { margin: 12px 0 0; font-family: var(--serif-t); font-size: 17px; line-height: 1.55; color: var(--body); }
.gb-catlead .gb-card__meta { margin-top: 14px; }
.gb-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.gb-others { background: var(--white); border-radius: 10px; padding: 8px 26px; }
.gb-others a { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--line-soft); }
.gb-others a:last-child { border-bottom: 0; }
.gb-others__t { display: flex; align-items: center; gap: 12px; font-family: var(--serif-h); font-size: 21px; font-weight: 600; }
.gb-others__t img { width: 22px; height: 22px; }
.gb-others__n { font-family: var(--mono); font-size: 11.5px; color: var(--petrol); white-space: nowrap; }
.gb-label { margin: 0 0 14px; font-size: 13px; font-weight: 700; color: var(--petrol); }

.gb-doc { max-width: 860px; }
.gb-doc .gb-prose > :first-child { margin-top: 0; }
.gb-doc .gb-prose h2 { font-size: 25px; }
.gb-doc .gb-prose { font-size: 18px; }
.gb-doc-wrap { margin: 32px var(--gutter) 0; background: var(--white); border-radius: 10px; padding: 40px 48px 48px; }

.gb-idbox { margin: 0 0 8px; border: 1px solid var(--line); border-left: 4px solid var(--petrol); border-radius: 10px; padding: 22px 26px; background: var(--white); font-family: var(--sans); }
.gb-idbox p { margin: 0; }
.gb-idbox__name { font-family: var(--serif-h); font-size: 26px; font-weight: 600; line-height: 1.2; }
.gb-idbox__vat { margin-top: 14px; display: inline-block; background: var(--note); border: 1px solid var(--band-edge); border-radius: 8px; padding: 12px 18px; }
.gb-idbox__label { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.gb-idbox__val { margin-top: 4px !important; font-family: var(--mono); font-size: 26px; color: var(--petrol); line-height: 1.2; }
.gb-idbox__reg { margin-top: 12px !important; font-size: 16px; }
.gb-idbox__sub { margin-top: 12px !important; font-size: 15px; line-height: 1.65; color: var(--body); }
.gb-idbox a { color: var(--petrol); text-decoration: underline; }

.gb-contact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.gb-contact__c { background: var(--stone); border-radius: 10px; padding: 20px 22px; font-family: var(--sans); }
.gb-contact__c p { margin: 0; }
.gb-contact__h { font-size: 13px; font-weight: 700; color: var(--petrol); }
.gb-contact__v { margin-top: 8px !important; font-size: 16px; word-break: break-word; }
.gb-contact__v a { color: var(--ink); text-decoration: underline; }
.gb-contact__s { margin-top: 6px !important; font-size: 13.5px; color: var(--muted); line-height: 1.45; }

.gb-thanks { margin: 40px var(--gutter) 0; background: var(--white); border-radius: 10px; padding: 48px; max-width: 860px; }

/* ---------- Footer ---------- */
.gb-footer { background: var(--petrol-dark); color: #BFD3D6; padding: 36px var(--gutter) 28px; }
.gb-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 36px; padding-bottom: 24px; border-bottom: 1px solid #1F5561; }
.gb-footer__brand { margin: 0; font-family: var(--serif-h); font-size: 25px; font-weight: 600; color: #FFFFFF; line-height: 1.2; }
.gb-footer__about { margin: 8px 0 0; font-size: 13.5px; line-height: 1.55; }
.gb-footer__col { display: flex; flex-direction: column; gap: 9px; font-size: 14px; }
.gb-footer__h { margin: 0; color: #FFFFFF; font-weight: 500; }
.gb-footer a:hover { color: #FFFFFF; text-decoration: underline; }
.gb-footer__legal { padding: 18px 0; border-bottom: 1px solid #1F5561; font-size: 13px; line-height: 1.6; }
.gb-footer__legal p { margin: 0 0 8px; }
.gb-footer__legal strong { color: #FFFFFF; }
.gb-footer__copy { margin: 0; padding-top: 16px; font-size: 11.5px; }

/* ---------- Cookie banner ---------- */
.gb-cookie { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 40; max-width: 560px; margin-left: auto; background: var(--white); border: 1px solid var(--line); border-top: 4px solid var(--petrol); border-radius: 10px; padding: 20px 22px; box-shadow: 0 10px 30px rgba(27, 36, 38, .18); font-size: 14px; line-height: 1.5; color: var(--body); }
.gb-cookie[hidden] { display: none; }
.gb-cookie p { margin: 0 0 8px; }
.gb-cookie a { color: var(--petrol); text-decoration: underline; }
.gb-cookie__t { font-family: var(--serif-h); font-size: 20px; font-weight: 600; color: var(--ink); }
.gb-cookie__row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.gb-cookie__row .gb-btn { height: 44px; }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
  .gb-nav { gap: 18px; font-size: 14px; }
  .gb-brand__tag { display: none; }
  .gb-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1080px) {
  :root { --gutter: 36px; }
  .gb-lead { grid-template-columns: minmax(0, 1fr); }
  .gb-artgrid { grid-template-columns: minmax(0, 1fr) 260px; gap: 40px; }
  .gb-faq { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}
@media (max-width: 960px) {
  .gb-menu { display: inline-flex; align-items: center; height: 40px; padding: 0 14px; border: 1px solid var(--line); border-radius: 6px; background: var(--white); font-family: var(--sans); font-size: 14px; font-weight: 500; color: var(--petrol); cursor: pointer; }
  .gb-header__in { flex-wrap: wrap; min-height: 72px; padding-top: 12px; padding-bottom: 12px; }
  .gb-nav { display: none; width: 100%; flex-direction: column; align-items: stretch; gap: 0; padding: 8px 0 4px; }
  .gb-nav[data-open="1"] { display: flex; }
  .gb-nav__link { padding: 14px 0; border-bottom: 1px solid var(--line-soft); }
  .gb-nav__link[aria-current="page"] { border-bottom-color: var(--line-soft); }
  .gb-btn--nav { margin-top: 12px; height: 46px; }
  .gb-artgrid { grid-template-columns: minmax(0, 1fr); }
  .gb-aside { position: static; max-height: none; overflow: visible; }
  .gb-toc { display: none; }
  .gb-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gb-list { grid-template-columns: minmax(0, 1fr); }
  .gb-optin--band { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .gb-catlead { grid-template-columns: minmax(0, 1fr); }
  .gb-catlead > a { order: -1; }
  .gb-two { grid-template-columns: minmax(0, 1fr); }
  .gb-footer__grid { grid-template-columns: 1fr 1fr; }
  .gb-contact { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  :root { --gutter: 18px; }
  body { font-size: 15.5px; }
  .gb-topbar { flex-direction: column; align-items: flex-start; gap: 4px; padding: 8px var(--gutter); }
  .gb-topbar__ind { display: none; }
  .gb-brand__name { font-size: 27px; }
  .gb-lead { padding-top: 20px; gap: 24px; }
  .gb-lead__img { height: auto; aspect-ratio: 16 / 10; }
  .gb-lead__card { margin: -40px 10px 0; padding: 20px 18px; }
  .gb-lead__h { font-size: 29px; line-height: 1.15; }
  .gb-lead__p { font-size: 17px; }
  .gb-weekly { padding: 20px 18px; }
  .gb-section { padding-top: 44px; }
  .gb-sechead__h, .gb-faq__h { font-size: 26px; }
  .gb-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .gb-tile { padding: 18px 16px; }
  .gb-tile__t { font-size: 19px; }
  .gb-cards { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .gb-list { padding: 4px 18px; }
  .gb-list a { grid-template-columns: 96px minmax(0, 1fr); gap: 14px; }
  .gb-list__t { font-size: 17px; }
  .gb-optin--band { margin-top: 44px; padding: 28px 20px; }
  .gb-optin__t { font-size: 28px; }
  .gb-optin--inline { padding: 22px 18px; }
  .gb-optin--box { padding: 22px 18px; }
  .gb-form { flex-direction: column; }
  .gb-form .gb-btn { width: 100%; }
  .gb-faq__list { padding: 0 18px; }
  .gb-faq summary { font-size: 16px; }
  .gb-panel { padding: 24px var(--gutter) 40px; }
  .gb-article__h1 { font-size: 31px; line-height: 1.15; }
  .gb-article__dek { font-size: 18px; }
  .gb-article__dek--strong { font-size: 17px; }
  .gb-prose { font-size: 17.5px; line-height: 1.68; }
  .gb-prose h2 { font-size: 24px; margin-top: 34px; }
  .gb-prose blockquote { font-size: 21px; padding-left: 18px; }
  .gb-brief ul { padding: 16px 18px; font-size: 16.5px; }
  .gb-note { grid-template-columns: minmax(0, 1fr); padding: 18px; }
  .gb-table th, .gb-table td { padding: 10px 14px; }
  .gb-editbox { grid-template-columns: minmax(0, 1fr); padding: 18px; }
  .gb-pagehead { padding-top: 30px; }
  .gb-pagehead__h1 { font-size: 34px; line-height: 1.12; }
  .gb-pagehead__p { font-size: 17px; }
  .gb-catlead { padding: 18px; gap: 18px; }
  .gb-catlead__h { font-size: 26px; }
  .gb-doc-wrap { padding: 26px 18px 32px; }
  .gb-thanks { padding: 28px 18px; }
  .gb-idbox { padding: 18px; }
  .gb-idbox__val { font-size: 22px; }
  .gb-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .gb-cookie { left: 10px; right: 10px; bottom: 10px; padding: 16px 16px; }
}
.gb-pagehead__count { margin-top: 16px; }
.gb-catlead .gb-lead__ad, .gb-catlead .gb-card__cat { margin: 0; }
