/* ==========================================================================
   בגובה העיניים — main stylesheet
   Accessibility is the design: large type, AAA body contrast, a stored text-size
   switch (html[data-size]), a high-contrast mode (html[data-contrast="high"]),
   a double focus ring, one reading column and no motion. RTL-first, logical props.
   ========================================================================== */

/* ---------- Fonts (self-hosted) ---------- */
@font-face { font-family: "Arimo"; src: url(../fonts/arimo-hebrew.woff2) format("woff2"); font-weight: 400 700; font-display: swap; unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F; }
@font-face { font-family: "Arimo"; src: url(../fonts/arimo-latin.woff2) format("woff2"); font-weight: 400 700; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Varela Round"; src: url(../fonts/varela-round-hebrew.woff2) format("woff2"); font-weight: 400; font-display: swap; unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F; }
@font-face { font-family: "Varela Round"; src: url(../fonts/varela-round-latin.woff2) format("woff2"); font-weight: 400; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "M PLUS Rounded 1c"; src: url(../fonts/mplus-rounded-hebrew-800.woff2) format("woff2"); font-weight: 800; font-display: swap; unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F; }
@font-face { font-family: "M PLUS Rounded 1c"; src: url(../fonts/mplus-rounded-latin-800.woff2) format("woff2"); font-weight: 800; font-display: swap; unicode-range: U+0000-00FF, U+2000-206F; }

/* ---------- Tokens ---------- */
:root {
    --teal: #005F73;          /* brand primary — 7.28:1 with white */
    --teal-deep: #00404D;     /* footer band, hover */
    --teal-tint: #E6F1F3;     /* section tint */
    --amber: #EE9B00;         /* brand secondary — accents, borders, focus halo; NEVER text on light */
    --amber-tint: #FDF1DA;
    --paper: #FBF8F2;         /* page */
    --surface: #FFFFFF;       /* cards */
    --ink: #14242B;           /* body text — 15.0:1 on paper */
    --ink-2: #3F5058;         /* secondary text — 7.9:1 on paper */
    --link: #004E5E;          /* links — 8.8:1 on paper */
    --line: #5E6E75;          /* control borders — 5.0:1 (non-text ≥ 3:1) */
    --rule: #D5DEE0;          /* decorative dividers */
    --btn-bg: var(--teal);
    --btn-fg: #FFFFFF;
    --focus-inner: #14242B;
    --focus-outer: #EE9B00;

    --f-body: "Arimo", "Arial Hebrew", Arial, sans-serif;
    --f-title: "Varela Round", "Arimo", Arial, sans-serif;
    --f-logo: "M PLUS Rounded 1c", "Varela Round", Arial, sans-serif;

    --measure: 46rem;         /* the single reading column (~68ch at body size) */
    --wide: 72rem;
    --gutter: clamp(1rem, 4vw, 2rem);
    --radius: 14px;
    --radius-sm: 10px;
    --tap: 48px;              /* minimum target */

    font-size: 100%;
    color-scheme: light;
}
html[data-size="l"]  { font-size: 115%; }
html[data-size="xl"] { font-size: 130%; }

/* High-contrast mode: black ground, white text, amber/yellow links (amber is 9.3:1 on black). */
html[data-contrast="high"] {
    --teal: #000000;
    --teal-deep: #000000;
    --teal-tint: #000000;
    --amber: #FFD166;
    --amber-tint: #000000;
    --paper: #000000;
    --surface: #000000;
    --ink: #FFFFFF;
    --ink-2: #FFFFFF;
    --link: #FFD166;
    --line: #FFFFFF;
    --rule: #FFFFFF;
    --btn-bg: #FFD166;
    --btn-fg: #000000;
    --focus-inner: #FFFFFF;
    --focus-outer: #FFD166;
    color-scheme: dark;
}
/* Follow the system's "more contrast" request unless the reader chose otherwise. */
@media (prefers-contrast: more) {
    html:not([data-contrast]) {
        --teal: #000000; --teal-deep: #000000; --teal-tint: #000000; --amber: #FFD166; --amber-tint: #000000;
        --paper: #000000; --surface: #000000; --ink: #FFFFFF; --ink-2: #FFFFFF; --link: #FFD166;
        --line: #FFFFFF; --rule: #FFFFFF; --btn-bg: #FFD166; --btn-fg: #000000; --focus-inner: #FFFFFF; --focus-outer: #FFD166;
        color-scheme: dark;
    }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-block-start: 1.5rem; }
/* No motion anywhere: no smooth scrolling, no transitions, no animations. */
*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--f-body);
    font-size: 1.1875rem;      /* 19px at default size */
    line-height: 1.75;
    overflow-wrap: break-word;
}
img, svg { max-inline-size: 100%; block-size: auto; }
img { display: block; }
h1, h2, h3, h4 { font-family: var(--f-title); font-weight: 400; line-height: 1.3; color: var(--ink); margin: 0; text-wrap: balance; }
p { margin: 0; }
a { color: var(--link); text-decoration-thickness: 2px; text-underline-offset: .22em; }
a:hover { text-decoration-thickness: 3px; }
button, input, textarea, select { font: inherit; color: inherit; }
ul[class], ol[class] { list-style: none; margin: 0; padding: 0; }

/* Focus: a dark inner ring + an amber halo — visible on every background. */
:focus { outline: none; }
:focus-visible {
    outline: 3px solid var(--focus-inner);
    outline-offset: 2px;
    box-shadow: 0 0 0 7px var(--focus-outer);
    border-radius: 6px;
}
.gv-main:focus { box-shadow: none; outline: none; }
@media (forced-colors: active) {
    :focus-visible { outline: 3px solid CanvasText; box-shadow: none; }
    .gv-task, .gv-topic__link, .gv-btn, .gv-tools__btn { border: 2px solid ButtonText; }
}

.gv-sr { position: absolute !important; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.gv-icon { flex: none; display: inline-block; vertical-align: middle; }

.gv-skip {
    position: absolute; inset-inline-start: 1rem; inset-block-start: -10rem; z-index: 100;
    background: var(--ink); color: var(--paper); padding: .9rem 1.4rem; border-radius: var(--radius-sm);
    font-weight: 700; text-decoration: none;
}
.gv-skip:focus { inset-block-start: 1rem; }

.gv-wrap { inline-size: 100%; max-inline-size: calc(var(--measure) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.gv-wrap--wide { max-inline-size: calc(var(--wide) + 2 * var(--gutter)); }

/* ---------- Buttons ---------- */
.gv-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
    min-block-size: var(--tap); padding: .6rem 1.35rem;
    border: 2px solid transparent; border-radius: 999px;
    font-weight: 700; line-height: 1.2; text-decoration: none; cursor: pointer;
}
.gv-btn--primary { background: var(--btn-bg); color: var(--btn-fg); }
.gv-btn--primary:hover { background: var(--teal-deep); text-decoration: underline; }
html[data-contrast="high"] .gv-btn--primary:hover { background: #FFFFFF; }
.gv-btn--ghost { background: transparent; color: var(--link); border-color: currentColor; }
.gv-btn--ghost:hover { background: var(--teal-tint); text-decoration: underline; }
.gv-btn--quiet { background: transparent; color: var(--ink); border-color: var(--line); }
.gv-btn--quiet:hover, .gv-btn--quiet[aria-expanded="true"] { background: var(--ink); color: var(--paper); border-color: var(--ink); }

/* ---------- Display-settings bar ---------- */
.gv-tools { background: #14242B; color: #FFFFFF; }
html[data-contrast="high"] .gv-tools { background: #000000; border-block-end: 2px solid #FFFFFF; }
.gv-tools__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.25rem; padding-block: .45rem; }
.gv-tools__group { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; }
.gv-tools__label { display: inline-flex; align-items: center; gap: .45rem; font-size: 1rem; margin-inline-end: .35rem; }
.gv-tools__btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
    min-inline-size: var(--tap); min-block-size: 44px; padding: .25rem .8rem;
    background: transparent; color: #FFFFFF;
    border: 2px solid #8FA6AD; border-radius: var(--radius-sm);
    font-family: var(--f-title); font-size: 1.05rem; line-height: 1; cursor: pointer;
}
html[data-contrast="high"] .gv-tools__btn { border-color: #FFFFFF; }
.gv-tools__btn--l { font-size: 1.25rem; }
.gv-tools__btn--xl { font-size: 1.45rem; }
.gv-tools__btn:hover { border-color: var(--amber); }
.gv-tools__btn[aria-pressed="true"] { background: var(--amber); border-color: var(--amber); color: #000000; }
.gv-tools__contrast { font-family: var(--f-body); font-size: 1rem; font-weight: 700; }
.gv-tools :focus-visible { outline-color: #FFFFFF; }

/* ---------- Header ---------- */
.gv-header { background: var(--surface); border-block-end: 4px solid var(--teal); }
html[data-contrast="high"] .gv-header { border-block-end-color: #FFFFFF; }
.gv-header__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1rem; }
.gv-brand { display: inline-flex; align-items: center; gap: .8rem; color: var(--ink); text-decoration: none; min-block-size: var(--tap); }
.gv-brand:hover .gv-brand__name { text-decoration: underline; text-decoration-thickness: 3px; text-decoration-color: var(--amber); }
.gv-brand__name { font-family: var(--f-logo); font-weight: 800; font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.05rem); line-height: 1.1; color: var(--teal); white-space: nowrap; letter-spacing: -.01em; }
html[data-contrast="high"] .gv-brand__name { color: #FFFFFF; }
.gv-mark { flex: none; display: block; }
.gv-header__actions { display: flex; gap: .6rem; }
.gv-header__toggle { padding-inline: 1rem; }
.gv-header__menu-btn { display: none; }

.gv-search-panel { background: var(--teal-tint); border-block-start: 1px solid var(--rule); padding-block: 1.25rem; }
html[data-contrast="high"] .gv-search-panel { border-block: 2px solid #FFFFFF; }

.gv-nav { border-block-start: 1px solid var(--rule); }
.gv-nav .gv-wrap { display: flex; align-items: center; justify-content: space-between; gap: .5rem 1rem; flex-wrap: wrap; padding-block: .6rem; }
.gv-nav__list { display: flex; flex-wrap: wrap; gap: .25rem; }
.gv-nav__list a {
    display: flex; align-items: center; min-block-size: var(--tap); padding: .35rem .75rem;
    border-radius: var(--radius-sm); color: var(--ink); font-weight: 700; text-decoration: none;
}
.gv-nav__list a:hover { background: var(--teal-tint); text-decoration: underline; }
.gv-nav__list .current-menu-item > a, .gv-nav__list a[aria-current="page"] { background: var(--teal); color: #FFFFFF; }
html[data-contrast="high"] .gv-nav__list .current-menu-item > a { background: #FFD166; color: #000000; }
.gv-nav__all a { display: inline-flex; align-items: center; gap: .4rem; min-block-size: var(--tap); padding-inline: .5rem; font-weight: 700; }

@media (max-width: 59.99rem) {
    .gv-header__menu-btn { display: inline-flex; }
    .gv-header__toggle span { font-size: 1rem; }
    .gv-nav[data-collapsed] { display: none; }
    .gv-nav .gv-wrap { display: block; padding-block: .75rem 1rem; }
    .gv-nav__list { flex-direction: column; gap: .25rem; }
    .gv-nav__list a { border: 2px solid var(--rule); background: var(--surface); }
    .gv-nav__all { margin-block-start: .5rem; }
}
@media (max-width: 30rem) {
    .gv-header__bar { flex-wrap: wrap; }
    .gv-header__actions { inline-size: 100%; }
    .gv-header__actions .gv-btn { flex: 1; }
    .gv-mark { inline-size: 44px; block-size: 44px; }
}

/* ---------- Search form ---------- */
.gv-searchform__label { display: block; font-weight: 700; margin-block-end: .4rem; }
.gv-searchform__row { display: flex; gap: .6rem; flex-wrap: wrap; }
.gv-input {
    flex: 1 1 14rem; min-block-size: 52px; padding: .55rem 1rem;
    background: var(--surface); color: var(--ink);
    border: 2px solid var(--line); border-radius: var(--radius-sm);
}
.gv-input::placeholder { color: var(--ink-2); opacity: 1; }

/* ---------- Page heads ---------- */
.gv-main { display: block; }
.gv-head { padding-block: clamp(1.5rem, 4vw, 3rem) 1.75rem; }
.gv-head__title { font-size: clamp(2rem, 1.4rem + 2.4vw, 2.85rem); line-height: 1.22; }
.gv-head__lead { margin-block-start: .9rem; font-size: 1.2rem; color: var(--ink-2); }
.gv-kicker { font-weight: 700; color: var(--ink-2); margin-block-end: .35rem; }
.gv-head__topic { display: flex; align-items: center; gap: 1rem; }
.gv-head__icon { display: grid; place-items: center; inline-size: 4.25rem; block-size: 4.25rem; flex: none; border-radius: var(--radius); background: var(--teal); color: #FFFFFF; }
html[data-contrast="high"] .gv-head__icon { border: 2px solid #FFFFFF; }
.gv-head__desc { margin-block-start: 1.25rem; padding: 1.25rem 1.4rem; background: var(--surface); border: 2px solid var(--rule); border-inline-start: 6px solid var(--amber); border-radius: var(--radius); }

.gv-crumbs { font-size: 1rem; color: var(--ink-2); margin-block-end: 1rem; }
.gv-crumbs a { display: inline-block; padding-block: .3rem; }
.gv-crumbs .breadcrumb_last { font-weight: 700; }

/* ---------- Homepage ---------- */
.gv-hero { background: var(--surface); padding-block: clamp(2rem, 5vw, 3.75rem) clamp(2rem, 4vw, 3rem); }
.gv-hero__title { display: flex; flex-direction: column; gap: .5rem; }
.gv-hero__main { font-size: clamp(2.3rem, 1.5rem + 3.4vw, 3.5rem); line-height: 1.15; color: var(--teal); }
html[data-contrast="high"] .gv-hero__main { color: #FFFFFF; }
.gv-hero__sub { font-size: clamp(1.25rem, 1.05rem + .8vw, 1.6rem); line-height: 1.4; color: var(--ink); }

/* The "eye level" line: a level rule with a centred amber bubble. */
.gv-level { position: relative; block-size: 6px; margin-block: 1.6rem 1.5rem; background: var(--teal); border-radius: 3px; }
.gv-level span { position: absolute; inset-block-start: 50%; inset-inline-start: 50%; inline-size: 3.25rem; block-size: 1.15rem; transform: translate(50%, -50%); background: var(--amber); border: 3px solid var(--teal); border-radius: 999px; }
html[data-contrast="high"] .gv-level { background: #FFFFFF; }
html[data-contrast="high"] .gv-level span { border-color: #FFFFFF; }
.gv-hero__lead { font-size: 1.25rem; }
.gv-hero__search { margin-block-start: 1.75rem; padding: 1.25rem; background: var(--teal-tint); border-radius: var(--radius); }
html[data-contrast="high"] .gv-hero__search { border: 2px solid #FFFFFF; }

.gv-section { padding-block: clamp(2.25rem, 5vw, 3.75rem); }
.gv-section--tint { background: var(--teal-tint); }
.gv-section--paper { background: var(--paper); }
html[data-contrast="high"] .gv-section { border-block-start: 2px solid #FFFFFF; }
.gv-section__head { margin-block-end: 1.5rem; max-inline-size: var(--measure); }
.gv-section__title { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.2rem); }
.gv-section__title::after { content: ""; display: block; inline-size: 4.5rem; block-size: 6px; margin-block-start: .6rem; background: var(--amber); border-radius: 3px; }
.gv-section__lead { margin-block-start: .75rem; color: var(--ink-2); }
.gv-section__lead p + p { margin-block-start: .6rem; }

/* Task grid: big buttons, each one difficulty → the guide to read first. */
.gv-tasks__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 30rem), 1fr)); gap: 1rem; }
.gv-task {
    position: relative; display: grid; grid-template-columns: 1fr auto; grid-template-areas: "need go" "guide go";
    align-items: center; gap: .35rem 1rem; block-size: 100%;
    min-block-size: 6rem; padding: 1.15rem 1.35rem;
    background: var(--surface); color: var(--ink); text-decoration: none;
    border: 2px solid var(--line); border-inline-start: 8px solid var(--teal); border-radius: var(--radius);
}
.gv-task:hover { border-color: var(--teal); border-inline-start-color: var(--amber); background: var(--amber-tint); }
html[data-contrast="high"] .gv-task { border-color: #FFFFFF; }
html[data-contrast="high"] .gv-task:hover { border-inline-start-color: #FFD166; }
.gv-task__need { grid-area: need; font-family: var(--f-title); font-size: 1.3rem; line-height: 1.35; }
.gv-task__guide { grid-area: guide; }
.gv-task__title { color: var(--link); font-weight: 700; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .22em; }
.gv-task:hover .gv-task__title { text-decoration-thickness: 3px; }
.gv-task__label { color: var(--ink-2); font-weight: 400; text-decoration: none; display: block; }
.gv-task__go { grid-area: go; display: grid; place-items: center; inline-size: 2.5rem; block-size: 2.5rem; border-radius: 50%; background: var(--teal); color: #FFFFFF; }
html[data-contrast="high"] .gv-task__go { background: #FFD166; color: #000000; }

/* Topic buttons */
.gv-topics { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 24rem), 1fr)); gap: 1rem; }
.gv-topic__link {
    display: flex; align-items: center; gap: 1rem; block-size: 100%; min-block-size: 5.5rem; padding: 1rem 1.2rem;
    background: var(--surface); color: var(--ink); text-decoration: none;
    border: 2px solid var(--line); border-radius: var(--radius);
}
.gv-topic__link:hover { border-color: var(--teal); background: var(--amber-tint); }
.gv-topic__link:hover .gv-topic__name { text-decoration: underline; }
html[data-contrast="high"] .gv-topic__link { border-color: #FFFFFF; }
.gv-topic__icon { display: grid; place-items: center; inline-size: 3.5rem; block-size: 3.5rem; flex: none; border-radius: 12px; background: var(--teal); color: #FFFFFF; }
html[data-contrast="high"] .gv-topic__icon { background: #000000; border: 2px solid #FFD166; color: #FFD166; }
.gv-topic__text { flex: 1; display: flex; flex-direction: column; gap: .1rem; }
.gv-topic__name { font-size: 1.3rem; }
.gv-topic__count { color: var(--ink-2); font-size: 1rem; }
.gv-topic__go { color: var(--teal); }
html[data-contrast="high"] .gv-topic__go { color: #FFD166; }
.gv-topics--compact { margin-block-end: 2rem; }

/* Guide rows: one column, image beside text on wider screens. */
.gv-rows { display: flex; flex-direction: column; gap: 1rem; }
.gv-row {
    position: relative; display: grid; grid-template-columns: 1fr; gap: 0;
    background: var(--surface); border: 2px solid var(--rule); border-radius: var(--radius); overflow: hidden;
}
.gv-row:hover { border-color: var(--teal); }
.gv-row:focus-within { border-color: var(--teal); }
html[data-contrast="high"] .gv-row { border-color: #FFFFFF; }
.gv-row__media { aspect-ratio: 16 / 10; background: var(--teal-tint); }
.gv-row__media img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.gv-row__body { padding: 1.1rem 1.25rem 1.25rem; display: flex; flex-direction: column; gap: .45rem; }
.gv-row__topic { display: inline-flex; align-items: center; gap: .4rem; font-size: 1rem; font-weight: 700; color: var(--ink-2); }
.gv-row__title { font-size: 1.4rem; line-height: 1.35; }
.gv-row__title a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--rule); text-decoration-thickness: 2px; }
.gv-row__title a:hover { text-decoration-color: var(--amber); text-decoration-thickness: 3px; }
html[data-contrast="high"] .gv-row__title a { color: #FFD166; text-decoration-color: #FFD166; }
/* Whole row clickable through the title link (one tab stop per row). */
.gv-row__title a::after { content: ""; position: absolute; inset: 0; }
.gv-row__title a:focus-visible { box-shadow: none; outline: none; }
.gv-row:has(.gv-row__title a:focus-visible) { outline: 3px solid var(--focus-inner); outline-offset: 2px; box-shadow: 0 0 0 7px var(--focus-outer); }
.gv-row__excerpt { color: var(--ink-2); }
.gv-row__meta { font-size: 1rem; color: var(--ink-2); }
@media (min-width: 40rem) {
    .gv-row { grid-template-columns: 15rem 1fr; }
    .gv-row__media { aspect-ratio: auto; min-block-size: 100%; }
    .gv-row--page { grid-template-columns: 1fr; }
}

.gv-more { margin-block-start: 1.75rem; }
.gv-empty { padding: 1.5rem; background: var(--surface); border: 2px dashed var(--line); border-radius: var(--radius); margin-block: 1rem; }
.gv-boxed { padding: 1.25rem; background: var(--teal-tint); border-radius: var(--radius); margin-block-end: 2rem; }
html[data-contrast="high"] .gv-boxed { border: 2px solid #FFFFFF; }
.gv-list-title { font-size: 1.6rem; margin-block: 2rem 1rem; }

/* Writers */
.gv-writers { display: flex; flex-direction: column; gap: 1rem; }
.gv-writer { display: flex; gap: 1.1rem; align-items: flex-start; padding: 1.25rem; background: var(--surface); border: 2px solid var(--rule); border-radius: var(--radius); }
html[data-contrast="high"] .gv-writer { border-color: #FFFFFF; }
.gv-writer__name { font-size: 1.35rem; }
.gv-writer__count { color: var(--ink-2); font-size: 1rem; }
.gv-writer__bio { margin-block-start: .5rem; }

.gv-avatar {
    display: inline-grid; place-items: center; flex: none;
    inline-size: 3.25rem; block-size: 3.25rem; border-radius: 50%;
    background: var(--amber); color: #000000; font-family: var(--f-title); font-size: 1.2rem;
    border: 3px solid var(--teal);
}
.gv-avatar--lg { inline-size: 4.25rem; block-size: 4.25rem; font-size: 1.5rem; }
html[data-contrast="high"] .gv-avatar { border-color: #FFFFFF; }

/* Chips (posts page topic shortcuts) */
.gv-chips { margin-block-end: 2rem; }
.gv-chips ul { display: flex; flex-wrap: wrap; gap: .5rem; }
.gv-chip { display: inline-flex; align-items: center; gap: .45rem; min-block-size: var(--tap); padding: .35rem 1rem; border: 2px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--ink); font-weight: 700; text-decoration: none; }
.gv-chip:hover { border-color: var(--teal); background: var(--amber-tint); text-decoration: underline; }
html[data-contrast="high"] .gv-chip { border-color: #FFFFFF; }

/* Pagination */
.gv-pagination { margin-block-start: 2rem; }
.gv-pagination .nav-links { display: flex; flex-wrap: wrap; gap: .5rem; }
.gv-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; gap: .3rem; min-inline-size: var(--tap); min-block-size: var(--tap); padding-inline: .9rem; border: 2px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); color: var(--link); font-weight: 700; text-decoration: none; }
.gv-pagination a.page-numbers:hover { border-color: var(--teal); text-decoration: underline; }
.gv-pagination .current { background: var(--btn-bg); color: var(--btn-fg); border-color: var(--btn-bg); }
.gv-pagination .dots { border-color: transparent; background: none; }

/* ---------- Article ---------- */
.gv-head--article { background: var(--surface); border-block-end: 2px solid var(--rule); }
html[data-contrast="high"] .gv-head--article { border-color: #FFFFFF; }
.gv-article__topic { margin-block-end: .75rem; }
.gv-article__topic a { display: inline-flex; align-items: center; gap: .45rem; min-block-size: 44px; padding: .25rem .9rem .25rem 1rem; border-radius: 999px; background: var(--teal-tint); color: var(--link); font-weight: 700; text-decoration: none; }
.gv-article__topic a:hover { text-decoration: underline; }
html[data-contrast="high"] .gv-article__topic a { border: 2px solid #FFD166; }
.gv-byline { display: flex; align-items: center; gap: .9rem; margin-block-start: 1.25rem; }
.gv-byline__name { font-weight: 700; }
.gv-byline__meta { display: flex; flex-wrap: wrap; gap: .25rem 1.1rem; color: var(--ink-2); font-size: 1rem; }
.gv-byline__meta span { display: inline-flex; align-items: center; gap: .35rem; }
.gv-article__body { padding-block: 2rem 1rem; }
.gv-article__media { margin: 0 0 2rem; border-radius: var(--radius); overflow: hidden; aspect-ratio: 3 / 2; background: var(--teal-tint); }
.gv-article__media img { inline-size: 100%; block-size: 100%; object-fit: cover; }

.gv-toc { margin-block-end: 2.25rem; padding: 1.25rem 1.4rem; background: var(--teal-tint); border-radius: var(--radius); border-inline-start: 8px solid var(--teal); }
html[data-contrast="high"] .gv-toc { border: 2px solid #FFFFFF; border-inline-start-width: 8px; }
.gv-toc__title { display: flex; align-items: center; gap: .5rem; font-size: 1.35rem; margin-block-end: .6rem; }
.gv-toc__list { counter-reset: toc; columns: 1; }
.gv-toc__list li { counter-increment: toc; break-inside: avoid; }
.gv-toc__list li { display: flex; gap: .65rem; align-items: baseline; }
.gv-toc__list li::before { content: counter(toc) "."; color: var(--ink-2); min-inline-size: 1.6rem; flex: none; }
.gv-toc__list a { display: inline-block; padding-block: .4rem; font-weight: 700; }

.gv-authorbox { display: flex; gap: 1.1rem; align-items: flex-start; margin-block: 2.5rem 1rem; padding: 1.5rem; background: var(--surface); border: 2px solid var(--rule); border-block-start: 6px solid var(--teal); border-radius: var(--radius); }
html[data-contrast="high"] .gv-authorbox { border-color: #FFFFFF; }
.gv-authorbox__label { color: var(--ink-2); font-size: 1rem; }
.gv-authorbox__name { font-size: 1.4rem; margin-block-end: .4rem; }

.gv-page { padding-block: .5rem 3rem; }

/* ---------- Prose ---------- */
.gv-prose > * + * { margin-block-start: 1.1em; }
.gv-prose h2 { font-size: clamp(1.6rem, 1.35rem + 1vw, 2rem); margin-block-start: 2.2em; padding-block-start: .2em; }
.gv-prose h2::after { content: ""; display: block; inline-size: 3.5rem; block-size: 5px; margin-block-start: .45rem; background: var(--amber); border-radius: 3px; }
.gv-prose h3 { font-size: 1.4rem; margin-block-start: 1.8em; }
.gv-prose h2 + *, .gv-prose h3 + * { margin-block-start: .7em; }
.gv-prose ul, .gv-prose ol { padding-inline-start: 1.6rem; }
.gv-prose li + li { margin-block-start: .5em; }
.gv-prose li::marker { color: var(--teal); font-weight: 700; }
html[data-contrast="high"] .gv-prose li::marker { color: #FFD166; }
.gv-prose strong { font-weight: 700; }
.gv-prose blockquote { margin-inline: 0; padding: 1rem 1.25rem; border-inline-start: 6px solid var(--amber); background: var(--surface); border-radius: var(--radius-sm); }
.gv-prose img { border-radius: var(--radius-sm); }
.gv-prose--home > :first-child { margin-block-start: 0; }

/* Numbered "rules" lists become big numbered steps. */
.gv-prose ol { list-style: none; padding: 0; counter-reset: step; }
.gv-prose ol > li { counter-increment: step; position: relative; padding: 1rem 1.25rem; padding-inline-start: 4.25rem; background: var(--surface); border: 2px solid var(--rule); border-radius: var(--radius); }
.gv-prose ol > li::before { content: counter(step); position: absolute; inset-inline-start: 1rem; inset-block-start: .9rem; display: grid; place-items: center; inline-size: 2.3rem; block-size: 2.3rem; border-radius: 50%; background: var(--teal); color: #FFFFFF; font-family: var(--f-title); font-size: 1.15rem; line-height: 1; }
html[data-contrast="high"] .gv-prose ol > li { border-color: #FFFFFF; }
html[data-contrast="high"] .gv-prose ol > li::before { background: #FFD166; color: #000000; }

/* Tables: scroll inside a focusable region. */
.gv-table { overflow-x: auto; border: 2px solid var(--rule); border-radius: var(--radius); background: var(--surface); }
html[data-contrast="high"] .gv-table { border-color: #FFFFFF; }
.gv-table table { inline-size: 100%; border-collapse: collapse; font-size: 1.05rem; min-inline-size: 30rem; }
.gv-table th, .gv-table td { padding: .75rem 1rem; text-align: start; vertical-align: top; border-block-end: 1px solid var(--rule); }
.gv-table th { background: var(--teal); color: #FFFFFF; font-weight: 700; }
html[data-contrast="high"] .gv-table th { background: #FFFFFF; color: #000000; }
.gv-table tr:last-child td { border-block-end: 0; }
.gv-table tbody tr:nth-child(even) td { background: var(--paper); }

/* Closing general-information note */
.gv-note { margin-block-start: 2.25rem; padding: 1.25rem 1.4rem; background: var(--amber-tint); border: 2px solid var(--amber); border-inline-start-width: 8px; border-radius: var(--radius); }
html[data-contrast="high"] .gv-note { border-color: #FFD166; }
.gv-note__title { display: flex; align-items: center; gap: .5rem; font-family: var(--f-title); font-size: 1.25rem; margin-block-end: .4rem; }
.gv-note p:last-child { font-style: normal; }
.gv-readalso { padding: 1rem 1.25rem; background: var(--teal-tint); border-radius: var(--radius); }
html[data-contrast="high"] .gv-readalso { border: 2px solid #FFFFFF; }

/* Contact form (ADX plugin). The plugin prints its own inline CSS (.adxc …, blue accent,
   outline:none on focus, low-contrast status colours); these rules out-rank it. */
.gv-prose .adxc {
    --adxc-accent: var(--teal); --adxc-bg: var(--surface); --adxc-fg: var(--ink);
    --adxc-input-bg: var(--surface); --adxc-input-fg: var(--ink); --adxc-border: var(--line);
    --adxc-btn-fg: var(--btn-fg); --adxc-radius: var(--radius);
    max-inline-size: none; margin-block: 1.5rem 0;
}
.gv-prose .adxc .adxc-form { display: flex; flex-direction: column; gap: 1.1rem; padding: 1.5rem; border: 2px solid var(--rule); }
html[data-contrast="high"] .gv-prose .adxc .adxc-form { border-color: #FFFFFF; }
.gv-prose .adxc .adxc-field { margin: 0; }
.gv-prose .adxc .adxc-field label { font-size: 1.1rem; font-weight: 700; margin-block-end: .35rem; }
.gv-prose .adxc .adxc-field input, .gv-prose .adxc .adxc-field textarea { min-block-size: 52px; padding: .6rem 1rem; font-size: 1.1rem; border: 2px solid var(--line); border-radius: var(--radius-sm); }
.gv-prose .adxc .adxc-field textarea { min-block-size: 9rem; }
.gv-prose .adxc .adxc-field input:focus-visible, .gv-prose .adxc .adxc-field textarea:focus-visible,
.gv-prose .adxc .adxc-field input:focus, .gv-prose .adxc .adxc-field textarea:focus {
    outline: 3px solid var(--focus-inner); outline-offset: 2px; box-shadow: 0 0 0 7px var(--focus-outer); border-color: var(--line);
}
.gv-prose .adxc .adxc-submit { display: inline-flex; align-items: center; justify-content: center; min-block-size: var(--tap); min-inline-size: 9rem; padding: .6rem 1.5rem; border-radius: 999px; background: var(--btn-bg); color: var(--btn-fg); font-size: 1.1rem; font-weight: 700; }
.gv-prose .adxc .adxc-submit:hover { filter: none; background: var(--teal-deep); text-decoration: underline; }
html[data-contrast="high"] .gv-prose .adxc .adxc-submit:hover { background: #FFFFFF; }
.gv-prose .adxc .adxc-submit:focus-visible { outline: 3px solid var(--focus-inner); outline-offset: 2px; box-shadow: 0 0 0 7px var(--focus-outer); }
.gv-prose .adxc .adxc-msg { font-size: 1.1rem; font-weight: 700; }
.gv-prose .adxc.adxc-state-ok .adxc-msg, .gv-prose .adxc.adxc-state-err .adxc-msg { padding: .9rem 1.1rem; border: 2px solid currentColor; border-radius: var(--radius-sm); }
.gv-prose .adxc.adxc-state-ok .adxc-msg { color: var(--ink); background: var(--teal-tint); }
.gv-prose .adxc.adxc-state-err .adxc-msg { color: #9B1C2C; background: #FDECEE; }   /* 7.1:1 */
html[data-contrast="high"] .gv-prose .adxc.adxc-state-err .adxc-msg { color: #FFD166; background: #000000; }

/* ---------- Footer ---------- */
.gv-main > .gv-wrap:last-child, .gv-main > .gv-page:last-child { padding-block-end: 3.5rem; }
.gv-footer { margin-block-start: 0; background: var(--teal-deep); color: #FFFFFF; --focus-inner: #FFFFFF; }
html[data-contrast="high"] .gv-footer { border-block-start: 4px solid #FFFFFF; }
.gv-footer a { color: #FFFFFF; }
.gv-footer__grid { display: grid; grid-template-columns: 1fr; gap: 2rem; padding-block: 2.75rem 2rem; }
@media (min-width: 52rem) { .gv-footer__grid { grid-template-columns: 1.4fr 1fr 1fr; } }
.gv-brand--footer { color: #FFFFFF; text-decoration: none; }
.gv-brand--footer .gv-brand__name { color: #FFFFFF; font-size: 1.7rem; }
.gv-brand--footer .gv-mark { border-radius: 11px; box-shadow: 0 0 0 2px #FBF8F2; }
.gv-footer__tagline { margin-block-start: .9rem; color: #D7E3E6; }
.gv-footer__note { display: flex; gap: .55rem; align-items: flex-start; margin-block-start: 1rem; padding: .9rem 1rem; border: 2px solid var(--amber); border-radius: var(--radius-sm); color: #FFFFFF; font-size: 1rem; }
.gv-footer__note .gv-icon { color: var(--amber); margin-block-start: .15rem; }
.gv-footer__title { font-size: 1.3rem; color: #FFFFFF; margin-block-end: .6rem; }
.gv-footer__list li a { display: inline-flex; align-items: center; min-block-size: 44px; }
.gv-footer__base { border-block-start: 1px solid #3E6F79; padding-block: 1rem; font-size: 1rem; color: #D7E3E6; }
html[data-contrast="high"] .gv-footer__base { border-color: #FFFFFF; color: #FFFFFF; }

/* ---------- Print ---------- */
@media print {
    .gv-tools, .gv-header__actions, .gv-nav, .gv-search-panel, .gv-footer, .gv-skip, .gv-more { display: none !important; }
    body { background: #FFFFFF; color: #000000; font-size: 12pt; }
    .gv-row, .gv-toc, .gv-note { break-inside: avoid; }
}
