/* =========================================
   MOSS LED SHARED DESIGN SYSTEM
   Loaded on every page. Tokens, font, buttons and kicker use the same
   values as home.css, so the homepage renders exactly as before.
   Interior components are scoped to .ge-page, .ge-prose and the block
   patterns in /patterns.
========================================= */

/* Newsreader, SIL Open Font License 1.1 (see assets/fonts/newsreader/OFL.txt). */
@font-face {
    font-family: "Newsreader";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/newsreader/newsreader-latin-400-normal.woff2") format("woff2");
}

@font-face {
    font-family: "Newsreader";
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/newsreader/newsreader-latin-400-italic.woff2") format("woff2");
}

:root {
    --ge-moss: #0e1612;
    --ge-layer: #131e18;
    --ge-pine: #1e2b24;
    --ge-sage: #3a4a3c;
    --ge-olive: #6b6f54;
    --ge-ember: #7b4a37;
    --ge-sunset: #c9774a;
    --ge-sunset-light: #dd946a;
    --ge-stone: #d8c9b2;
    --ge-bark: #19140f;
    --ge-muted: #b4ab9a;
    --ge-soft: #9a927f;
    --ge-line: rgba(216, 201, 178, 0.12);
    --ge-line-strong: rgba(216, 201, 178, 0.26);
    --ge-display: "Newsreader", Georgia, "Times New Roman", serif;
    --ge-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --ge-gutter: 24px;
    --ge-sticky-top: var(--wp-admin--admin-bar--height, 0px);
}

/* Interior pages: moss behind everything, so no white shows between sections. */
body.ge-interior {
    background: var(--ge-moss);
}

/* =========================================
   SHARED COMPONENTS (same values as home.css)
========================================= */

.ge-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 0 20px;
    border: 1.5px solid transparent;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    transition: background-color 0.15s, border-color 0.15s;
}

.ge-btn--primary {
    background: var(--ge-sunset);
    color: var(--ge-moss);
}

.ge-btn--primary:hover {
    background: var(--ge-sunset-light);
}

.ge-btn--secondary {
    border-color: var(--ge-line-strong);
    color: var(--ge-stone);
}

.ge-btn--secondary:hover {
    border-color: var(--ge-stone);
}

.ge-kicker {
    display: block;
    margin-bottom: 8px;
    font-family: var(--ge-sans);
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ge-sunset-light);
}

.ge-more {
    display: inline-flex;
    align-items: center;
    flex: none;
    gap: 6px;
    min-height: 44px;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ge-stone);
    text-decoration: underline;
    text-decoration-color: var(--ge-sunset);
    text-underline-offset: 5px;
}

.ge-home-icon {
    flex: none;
    width: 20px;
    height: 20px;
}

/* =========================================
   INTERIOR PAGE FRAME
========================================= */

.ge-page {
    display: block;
    padding-bottom: 72px;
    background: var(--ge-moss);
    color: var(--ge-stone);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

:where(.ge-page) h1,
:where(.ge-page) h2,
:where(.ge-page) h3,
:where(.ge-page) h4 {
    font-family: var(--ge-display);
    font-weight: 400;
    letter-spacing: -0.01em;
    text-wrap: balance;
}

:where(.ge-page) a {
    color: inherit;
}

.ge-page a:focus-visible,
.ge-page button:focus-visible,
.ge-page input:focus-visible,
.ge-page textarea:focus-visible {
    outline: 2px solid var(--ge-sunset-light);
    outline-offset: 3px;
}

/* Classic themes wrap Group block contents in an extra div; let the
   children take part in the group's own layout (grid or flex). */
.ge-page .wp-block-group__inner-container {
    display: contents;
}

.ge-page__wrap {
    width: min(100% - 48px, 1248px);
    margin: 0 auto;
}

.ge-page__narrow {
    width: min(100% - 48px, 760px);
    margin: 0 auto;
}

/* Section spacing scale: 48 / 72 / 96 on desktop. */
.ge-band {
    padding: 48px 0;
}

.ge-band--layer {
    background: var(--ge-layer);
    border-top: 1px solid var(--ge-line);
    border-bottom: 1px solid var(--ge-line);
}

.ge-band + .ge-band:not(.ge-band--layer) {
    padding-top: 0;
}

.ge-band__head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: end;
    gap: 6px 20px;
    margin-bottom: 20px;
}

.ge-band__title {
    margin: 0;
    font-size: clamp(1.5rem, 1.2rem + 1vw, 2.1rem);
    line-height: 1.1;
}

.ge-band__copy {
    max-width: 60ch;
    margin: 10px 0 0;
    color: var(--ge-muted);
}

/* =========================================
   COMPACT PAGE INTRODUCTION
   Same proportions as the Contact page introduction.
========================================= */

.ge-pagehead {
    padding: 56px 0 44px;
    background:
        radial-gradient(ellipse 45% 90% at 0% 100%, rgba(123, 74, 55, 0.16), transparent 70%),
        var(--ge-moss);
    border-bottom: 1px solid var(--ge-line);
}

.ge-pagehead__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
    align-items: end;
}

.ge-pagehead--media .ge-pagehead__grid {
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    align-items: center;
}

.ge-pagehead__kicker {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    font-family: var(--ge-sans);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ge-muted);
}

.ge-pagehead__kicker::before {
    content: "";
    flex: none;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--ge-sunset);
}

.ge-pagehead__kicker a {
    color: inherit;
    text-decoration: none;
}

.ge-pagehead__kicker a:hover {
    color: var(--ge-stone);
}

.ge-pagehead__title {
    max-width: 22ch;
    margin: 16px 0 0;
    font-size: clamp(2.05rem, 1.5rem + 2.2vw, 3.5rem);
    line-height: 1.06;
    overflow-wrap: break-word;
}

.ge-pagehead__lead {
    max-width: 52ch;
    margin: 16px 0 0;
    font-size: 17px;
    line-height: 1.55;
    color: var(--ge-muted);
}

.ge-pagehead__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    margin: 16px 0 0;
    font-size: 14px;
    color: var(--ge-muted);
}

.ge-pagehead__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.ge-pagehead__media {
    margin: 0;
}

.ge-pagehead__media img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 16px;
}

.ge-pagehead__media figcaption,
.ge-figure figcaption {
    margin-top: 8px;
    font-size: 13.5px;
    line-height: 1.45;
    color: var(--ge-muted);
}

.ge-pagehead .search-form {
    margin-top: 22px;
}

/* Wide featured image under an article introduction. */
.ge-figure {
    margin: 32px auto 0;
}

.ge-figure img {
    width: 100%;
    max-height: 640px;
    object-fit: cover;
    border-radius: 16px;
}

/* =========================================
   READING COLUMN
   Used for all editor content: guides, articles and pages.
========================================= */

.ge-prose {
    max-width: 720px;
    margin: 0 auto;
    font-size: 18px;
    line-height: 1.7;
    color: var(--ge-stone);
    overflow-wrap: break-word;
}

.ge-prose > :first-child {
    margin-top: 0;
}

.ge-prose > :last-child {
    margin-bottom: 0;
}

.ge-prose p {
    margin: 0 0 1.1em;
}

.ge-prose p,
.ge-prose li {
    font-size: inherit;
    line-height: inherit;
}

.ge-prose li + li {
    margin-top: 0;
}

.ge-prose h1,
.ge-prose h2,
.ge-prose h3,
.ge-prose h4,
.ge-prose h5,
.ge-prose h6 {
    font-family: var(--ge-display);
    font-weight: 400;
    color: #eadfcd;
    letter-spacing: -0.01em;
    text-wrap: balance;
    scroll-margin-top: calc(var(--ge-sticky-top) + var(--ge-nav-h, 0px) + 16px);
}

.ge-prose h1 {
    margin: 1.4em 0 0.5em;
    font-size: clamp(2rem, 1.6rem + 1.6vw, 2.8rem);
    line-height: 1.08;
}

.ge-prose h2 {
    margin: 1.9em 0 0.5em;
    padding-top: 0.9em;
    border-top: 1px solid var(--ge-line);
    font-size: clamp(1.65rem, 1.35rem + 1.1vw, 2.3rem);
    line-height: 1.12;
}

.ge-prose h3 {
    margin: 1.8em 0 0.45em;
    font-size: clamp(1.35rem, 1.2rem + 0.6vw, 1.65rem);
    line-height: 1.2;
}

.ge-prose h4,
.ge-prose h5,
.ge-prose h6 {
    margin: 1.6em 0 0.4em;
    font-size: 1.2rem;
    line-height: 1.25;
}

.ge-prose [id] {
    scroll-margin-top: calc(var(--ge-sticky-top) + var(--ge-nav-h, 0px) + 16px);
}

.ge-prose a {
    color: var(--ge-stone);
    text-decoration: underline;
    text-decoration-color: var(--ge-sunset);
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
}

.ge-prose a:hover {
    color: var(--ge-sunset-light);
}

.ge-prose strong,
.ge-prose b {
    font-weight: 600;
    color: #eadfcd;
}

.ge-prose ul,
.ge-prose ol {
    margin: 0 0 1.2em;
    padding-left: 1.4em;
}

.ge-prose ul {
    list-style: disc;
}

.ge-prose ol {
    list-style: decimal;
}

.ge-prose li {
    margin: 0 0 0.45em;
    padding-left: 0.2em;
}

.ge-prose li::marker {
    color: var(--ge-sunset);
}

.ge-prose li > ul,
.ge-prose li > ol {
    margin: 0.45em 0 0;
}

.ge-prose blockquote,
.ge-prose .wp-block-quote {
    margin: 1.6em 0;
    padding: 0.2em 0 0.2em 1.2em;
    border-left: 3px solid var(--ge-sunset);
    font-family: var(--ge-display);
    font-size: 1.3em;
    font-style: italic;
    line-height: 1.45;
    color: #eadfcd;
}

.ge-prose blockquote p:last-child {
    margin-bottom: 0;
}

.ge-prose blockquote cite,
.ge-prose .wp-block-quote cite {
    display: block;
    margin-top: 0.6em;
    font-family: var(--ge-sans);
    font-size: 14px;
    font-style: normal;
    color: var(--ge-muted);
}

.ge-prose .wp-block-pullquote {
    margin: 1.8em 0;
    padding: 1.4em 0;
    border-top: 1px solid var(--ge-line-strong);
    border-bottom: 1px solid var(--ge-line-strong);
    text-align: left;
}

.ge-prose .wp-block-pullquote blockquote {
    margin: 0;
    padding: 0;
    border: 0;
}

.ge-prose hr,
.ge-prose .wp-block-separator {
    margin: 2.4em 0;
    border: 0;
    border-top: 1px solid var(--ge-line-strong);
}

.ge-prose figure {
    margin: 1.8em 0;
}

.ge-prose img {
    border-radius: 12px;
}

.ge-prose figcaption,
.ge-prose .wp-element-caption {
    margin-top: 8px;
    font-size: 14px;
    line-height: 1.45;
    color: var(--ge-muted);
    text-align: left;
}

.ge-prose .alignwide,
.ge-prose .alignfull {
    width: min(100vw - 48px, 1000px);
    max-width: none;
    margin-left: 50%;
    transform: translateX(-50%);
}

.ge-prose .alignleft {
    float: left;
    max-width: 50%;
    margin: 0.3em 1.4em 1em 0;
}

.ge-prose .alignright {
    float: right;
    max-width: 50%;
    margin: 0.3em 0 1em 1.4em;
}

.ge-prose .aligncenter {
    margin-left: auto;
    margin-right: auto;
}

.ge-prose::after {
    content: "";
    display: table;
    clear: both;
}

/* Tables: scroll inside their own box on narrow screens. */
.ge-prose .wp-block-table,
.ge-prose .ge-table-scroll {
    max-width: 100%;
    margin: 1.6em 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.ge-prose table {
    width: 100%;
    min-width: 0;
    border-collapse: collapse;
    font-size: 15.5px;
    line-height: 1.5;
}

.ge-prose th,
.ge-prose td {
    padding: 11px 14px;
    border: 0;
    border-bottom: 1px solid var(--ge-line);
    background: transparent;
    color: inherit;
    font-weight: 400;
    text-align: left;
    vertical-align: top;
}

.ge-prose th {
    font-weight: 600;
    color: #eadfcd;
}

/* Tables with four or more columns keep a readable width and scroll on phones. */
.ge-prose table:has(tr > :nth-child(4)) {
    min-width: 600px;
}

.ge-prose thead th,
.ge-prose tr:first-child th {
    font-family: var(--ge-sans);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ge-sunset-light);
    border-bottom-color: var(--ge-line-strong);
}

.ge-prose tbody tr:nth-child(even) td {
    background: rgba(216, 201, 178, 0.03);
}

.ge-prose .wp-block-table.is-style-stripes td,
.ge-prose .wp-block-table.is-style-stripes th {
    border-color: var(--ge-line);
}

.ge-prose .wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
    background: rgba(216, 201, 178, 0.04);
}

.ge-prose .wp-block-table thead {
    border-bottom: 0;
}

.ge-prose .wp-block-table tfoot {
    border-top: 1px solid var(--ge-line-strong);
}

/* Core buttons inside content follow the Moss LED buttons. */
.ge-prose .wp-block-button {
    margin: 0;
}

.ge-prose .wp-block-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 1.4em 0;
}

.ge-prose .wp-block-button__link,
.ge-prose .wp-element-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 20px;
    border: 1.5px solid transparent;
    border-radius: 10px;
    background: var(--ge-sunset);
    color: var(--ge-moss);
    font-family: var(--ge-sans);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
}

.ge-prose .wp-block-button__link:hover {
    background: var(--ge-sunset-light);
    color: var(--ge-moss);
}

.ge-prose .is-style-outline .wp-block-button__link {
    background: transparent;
    border-color: var(--ge-line-strong);
    color: var(--ge-stone);
}

.ge-prose .is-style-outline .wp-block-button__link:hover {
    border-color: var(--ge-stone);
    color: var(--ge-stone);
}

/* A button with no link yet (placeholder) must not look clickable. */
.ge-prose .wp-block-button__link:not([href]),
.ge-prose .wp-block-button__link:not([href]):hover {
    background: transparent;
    border: 1.5px dashed var(--ge-line-strong);
    color: var(--ge-muted);
    cursor: default;
}

.ge-prose .is-style-affiliate .wp-block-button__link[href]::after {
    content: "\2197";
    margin-left: 8px;
    font-weight: 400;
}

/* Practical information box (pattern "Guide section"). */
.ge-prose .ge-info,
.ge-prose .is-style-ge-info {
    margin: 1.6em 0;
    padding: 20px 22px;
    background: var(--ge-layer);
    border: 1px solid var(--ge-line);
    border-left: 3px solid var(--ge-sunset);
    border-radius: 12px;
    font-size: 16px;
    line-height: 1.6;
}

.ge-prose .ge-info > :last-child,
.ge-prose .is-style-ge-info > :last-child {
    margin-bottom: 0;
}

.ge-prose .ge-info h3,
.ge-prose .ge-info h4,
.ge-prose .is-style-ge-info h3,
.ge-prose .is-style-ge-info h4 {
    margin: 0 0 0.4em;
    padding: 0;
    border: 0;
    font-family: var(--ge-sans);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ge-sunset-light);
}

.ge-prose .wp-block-embed {
    margin: 1.8em 0;
}

.ge-prose iframe,
.ge-prose video {
    max-width: 100%;
}

.ge-prose code,
.ge-prose kbd {
    padding: 0.1em 0.35em;
    border-radius: 4px;
    background: var(--ge-pine);
    font-size: 0.9em;
}

/* Editor content area under a page introduction. */
.ge-page .ge-editorial {
    padding: 48px 0 24px;
    background: transparent;
    color: inherit;
}

.ge-page .ge-editorial__inner {
    width: min(100% - 48px, 760px);
    margin: 0 auto;
}

/* =========================================
   SECTION NAVIGATION
   Built by theme.js from the headings in the content.
========================================= */

.ge-page .ge-article-nav {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 2em;
    padding: 12px 0;
    border: 0;
    border-top: 1px solid var(--ge-line);
    border-bottom: 1px solid var(--ge-line);
    background: var(--ge-moss);
    font-family: var(--ge-sans);
}

.ge-page .ge-article-nav.is-sticky {
    position: sticky;
    top: var(--ge-sticky-top);
    z-index: 5;
}

.ge-page .ge-article-nav::before {
    content: attr(aria-label);
    flex: none;
    align-self: center;
    padding-right: 6px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ge-soft);
}

/* The pills scroll sideways inside this track when they do not fit.
   No visible scrollbar: a soft fade (and, with a mouse, an arrow) shows more. */
.ge-page .ge-article-nav__track {
    display: flex;
    flex: 1 1 auto;
    gap: 8px;
    min-width: 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-padding-inline: 40px;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.ge-page .ge-article-nav__track::-webkit-scrollbar {
    display: none;
}

.ge-page .ge-article-nav.can-scroll-start .ge-article-nav__track {
    -webkit-mask-image: linear-gradient(to right, transparent, #000 40px);
    mask-image: linear-gradient(to right, transparent, #000 40px);
}

.ge-page .ge-article-nav.can-scroll-end .ge-article-nav__track {
    -webkit-mask-image: linear-gradient(to left, transparent, #000 40px);
    mask-image: linear-gradient(to left, transparent, #000 40px);
}

.ge-page .ge-article-nav.can-scroll-start.can-scroll-end .ge-article-nav__track {
    -webkit-mask-image: linear-gradient(to right, transparent, #000 40px, #000 calc(100% - 40px), transparent);
    mask-image: linear-gradient(to right, transparent, #000 40px, #000 calc(100% - 40px), transparent);
}

.ge-page .ge-article-nav a {
    display: inline-flex;
    flex: none;
    align-items: center;
    min-height: 40px;
    padding: 0 14px;
    border: 1px solid var(--ge-line-strong);
    border-radius: 999px;
    background: transparent;
    color: var(--ge-stone);
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.2;
    text-decoration: none;
    text-transform: none;
    white-space: nowrap;
}

.ge-page .ge-article-nav a:hover {
    border-color: var(--ge-stone);
    background: transparent;
    color: var(--ge-stone);
}

.ge-page .ge-article-nav a[aria-current="true"] {
    border-color: var(--ge-sunset);
    background: var(--ge-sunset);
    color: var(--ge-moss);
}

.ge-page .ge-article-nav a:focus-visible {
    outline-offset: -2px;
}

/* Arrow buttons for mouse users; touch users swipe and keyboard users Tab. */
.ge-page .ge-article-nav__more {
    display: none;
    position: absolute;
    top: 50%;
    z-index: 1;
    width: 32px;
    height: 32px;
    margin-top: -16px;
    padding: 0;
    border: 1px solid var(--ge-line-strong);
    border-radius: 50%;
    background: var(--ge-moss);
    color: var(--ge-stone);
    font: 600 16px/1 var(--ge-sans);
    cursor: pointer;
}

.ge-page .ge-article-nav__more:hover {
    border-color: var(--ge-stone);
}

.ge-page .ge-article-nav__more--prev {
    left: var(--ge-nav-track-left, 0px);
}

.ge-page .ge-article-nav__more--next {
    right: 0;
}

@media (hover: hover) and (pointer: fine) {
    .ge-page .ge-article-nav.can-scroll-start .ge-article-nav__more--prev,
    .ge-page .ge-article-nav.can-scroll-end .ge-article-nav__more--next {
        display: block;
    }
}

/* Wide screens: the bar may run wider than the reading column so every pill fits. */
/* Below 1024px the "Article sections" label gives its room to the pills. */
@media (max-width: 1023px) {
    .ge-page .ge-article-nav::before {
        display: none;
    }
}

@media (min-width: 1024px) {
    .ge-page .ge-article-nav {
        width: min(100vw - 64px, 1000px);
        max-width: none;
        margin-inline: calc((100% - min(100vw - 64px, 1000px)) / 2);
        padding-inline: 16px;
    }

    .ge-page .ge-article-nav.fits .ge-article-nav__track {
        justify-content: center;
    }
}

/* =========================================
   CARDS
   One card for articles, resources, collections and products.
========================================= */

.ge-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ge-cards--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ge-cards--four {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ge-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    background: var(--ge-pine);
    border: 1px solid var(--ge-line);
    border-radius: 16px;
    color: var(--ge-stone);
    transition: border-color 0.2s;
}

.ge-card.is-linked:hover,
.ge-card.is-linked:focus-within {
    border-color: rgba(221, 148, 106, 0.6);
}

.ge-card__media {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: linear-gradient(160deg, #46574a, #24302a);
    color: rgba(216, 201, 178, 0.45);
}

.ge-card__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
}

.ge-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 18px 20px 20px;
}

.ge-card__kicker {
    font-family: var(--ge-sans);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ge-muted);
}

.ge-card__title {
    margin: 0;
    font-family: var(--ge-display);
    font-size: 22px;
    font-weight: 400;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.ge-card__title a {
    color: inherit;
    text-decoration: none;
}

/* The whole card is the link target; the title link stretches over it. */
.ge-card__title a::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
}

.ge-card.is-linked:hover .ge-card__title a {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-decoration-color: var(--ge-sunset);
    text-underline-offset: 4px;
}

.ge-card__text {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    color: var(--ge-muted);
}

.ge-card__meta {
    margin: 0;
    font-size: 13px;
    color: var(--ge-soft);
}

.ge-card__go {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    padding-top: 8px;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1;
    color: var(--ge-sunset-light);
}

.ge-card__go .ge-home-icon {
    transition: transform 0.2s;
}

.ge-card.is-linked:hover .ge-card__go .ge-home-icon {
    transform: translateX(3px);
}

/* Text-only cards (Resources): no image, a little more room. */
.ge-card--text .ge-card__body {
    padding: 22px 22px 24px;
}

/* Pagination */
.ge-page .navigation.pagination,
.ge-page .navigation.posts-navigation {
    margin-top: 36px;
}

.ge-page .nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    font-family: var(--ge-sans);
}

.ge-page .page-numbers,
.ge-page .nav-previous a,
.ge-page .nav-next a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid var(--ge-line-strong);
    border-radius: 10px;
    color: var(--ge-stone);
    font-size: 14.5px;
    font-weight: 600;
    text-decoration: none;
}

.ge-page .page-numbers.current {
    background: var(--ge-sunset);
    border-color: var(--ge-sunset);
    color: var(--ge-moss);
}

.ge-page .page-numbers.dots {
    border-color: transparent;
}

/* Search form inside pages (core form, same look as the header search panel) */
.ge-page .search-form {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    max-width: 560px;
}

.ge-page .search-form label {
    flex: 1 1 220px;
    min-width: 0;
}

.ge-page .search-field {
    width: 100%;
    height: 48px;
    padding: 0 16px;
    border: 1px solid var(--ge-line-strong);
    border-radius: 10px;
    background: var(--ge-layer);
    color: var(--ge-stone);
    font: inherit;
    font-size: 1rem;
}

.ge-page .search-field::placeholder {
    color: var(--ge-muted);
}

.ge-page .search-submit {
    flex: none;
    height: 48px;
    padding: 0 20px;
    border: 0;
    border-radius: 10px;
    background: var(--ge-sunset);
    color: var(--ge-moss);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.ge-page .search-submit:hover {
    background: var(--ge-sunset-light);
}

.ge-page .screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Link lists (empty search, 404, "keep planning") */
.ge-linkrow {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ge-linkrow a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid var(--ge-line-strong);
    border-radius: 10px;
    color: var(--ge-stone);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
}

.ge-linkrow a:hover {
    border-color: var(--ge-stone);
}

.ge-empty {
    max-width: 60ch;
    color: var(--ge-muted);
}

.ge-empty p {
    margin: 0 0 18px;
}

/* =========================================
   PRODUCT PATTERNS (Shop collections, buying guides)
========================================= */

.ge-prose .ge-product {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    margin: 1.6em 0;
    padding: 20px;
    background: var(--ge-pine);
    border: 1px solid var(--ge-line);
    border-radius: 16px;
}

.ge-prose .ge-product:has(.wp-block-image) {
    grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
}

.ge-prose .ge-product > * {
    min-width: 0;
}

.ge-prose .ge-product .wp-block-column {
    min-width: 0;
}

.ge-prose .ge-product figure,
.ge-prose .ge-product .wp-block-image {
    margin: 0;
}

.ge-prose .ge-product img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 12px;
}

.ge-prose .ge-product h2,
.ge-prose .ge-product h3 {
    margin: 0 0 0.3em;
    padding: 0;
    border: 0;
    font-size: 1.5rem;
}

.ge-prose .ge-product p {
    font-size: 16px;
    line-height: 1.6;
    color: var(--ge-muted);
}

.ge-prose .ge-product ul {
    font-size: 15.5px;
}

.ge-prose .ge-product .wp-block-buttons {
    margin: 0.8em 0 0;
}

.ge-prose .ge-product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
    gap: 16px;
    margin: 1.6em 0;
}

.ge-prose .ge-product-grid .ge-product,
.ge-prose .ge-product-grid .ge-product:has(.wp-block-image) {
    grid-template-columns: minmax(0, 1fr);
    margin: 0;
}

.ge-disclosure {
    margin: 0 0 24px;
    padding: 12px 16px;
    border: 1px dashed var(--ge-line-strong);
    border-radius: 10px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--ge-muted);
}

/* =========================================
   ARTICLES AND COMMENTS
========================================= */

.ge-article__content {
    padding: 40px 0 24px;
}

.ge-figure + .ge-article__content {
    padding-top: 36px;
}

.ge-article__pages {
    margin-top: 28px;
}

.ge-plan .ge-plan__title {
    margin-bottom: 16px;
}

.ge-article__comments {
    padding: 8px 0 24px;
}

.ge-comments {
    padding-top: 28px;
    border-top: 1px solid var(--ge-line);
    font-size: 16px;
}

.ge-comments__title,
.ge-comments .comment-reply-title {
    margin: 0 0 16px;
    font-size: 1.6rem;
    line-height: 1.15;
}

.ge-comments__list,
.ge-comments__list .children {
    margin: 0 0 28px;
    padding: 0;
    list-style: none;
}

.ge-comments__list .children {
    margin: 16px 0 0 20px;
}

.ge-comments .comment-body {
    padding: 16px 0;
    border-bottom: 1px solid var(--ge-line);
}

.ge-comments .comment-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    font-size: 13.5px;
    color: var(--ge-muted);
}

.ge-comments .comment-author img {
    display: inline-block;
    margin-right: 8px;
    border-radius: 50%;
    vertical-align: middle;
}

.ge-comments .comment-author .fn {
    font-style: normal;
    color: var(--ge-stone);
}

.ge-comments a {
    color: var(--ge-stone);
    text-decoration-color: var(--ge-sunset);
    text-underline-offset: 3px;
}

.ge-comments .comment-content {
    margin-top: 8px;
}

.ge-comments .comment-form {
    display: grid;
    gap: 14px;
}

.ge-comments .comment-form p {
    margin: 0;
}

.ge-comments label {
    display: block;
    margin-bottom: 6px;
    font-size: 14px;
    font-weight: 600;
}

.ge-comments input[type="text"],
.ge-comments input[type="email"],
.ge-comments input[type="url"],
.ge-comments textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--ge-line-strong);
    border-radius: 10px;
    background: var(--ge-layer);
    color: var(--ge-stone);
    font: inherit;
}

.ge-comments .comment-form-cookies-consent {
    display: flex;
    gap: 10px;
    align-items: start;
}

.ge-comments .comment-form-cookies-consent label {
    font-weight: 400;
}

.ge-comments .submit {
    min-height: 48px;
    padding: 0 22px;
    border: 0;
    border-radius: 10px;
    background: var(--ge-sunset);
    color: var(--ge-moss);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.ge-comments .submit:hover {
    background: var(--ge-sunset-light);
}

.ge-comments__closed,
.ge-comments .comment-notes,
.ge-comments .logged-in-as {
    font-size: 14px;
    color: var(--ge-muted);
}

/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 1099px) {
    .ge-cards--four {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .ge-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ge-pagehead--media .ge-pagehead__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }
}

@media (max-width: 767px) {
    .ge-page__wrap,
    .ge-page__narrow,
    .ge-page .ge-editorial__inner {
        width: min(100% - 32px, 1248px);
    }

    .ge-page {
        padding-bottom: 48px;
    }

    .ge-band {
        padding: 32px 0;
    }

    .ge-band__head {
        margin-bottom: 14px;
    }

    .ge-pagehead {
        padding: 36px 0 28px;
    }

    .ge-pagehead__title {
        margin-top: 12px;
    }

    .ge-pagehead__lead {
        font-size: 15.5px;
    }

    .ge-page .ge-editorial {
        padding: 32px 0 16px;
    }

    .ge-prose {
        font-size: 17px;
        line-height: 1.65;
    }

    .ge-prose h2 {
        margin-top: 1.9em;
    }

    .ge-prose table {
        font-size: 14.5px;
    }

    .ge-prose th,
    .ge-prose td {
        padding: 9px 10px;
    }

    .ge-prose .alignwide,
    .ge-prose .alignfull {
        width: calc(100vw - 32px);
    }

    .ge-prose .alignleft,
    .ge-prose .alignright {
        float: none;
        max-width: 100%;
        margin: 1.4em 0;
    }

    .ge-cards,
    .ge-cards--two,
    .ge-cards--four {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }

    .ge-card__title {
        font-size: 20px;
    }

    .ge-card__body {
        padding: 16px 16px 18px;
    }

    .ge-page .ge-article-nav::before {
        display: none;
    }

    .ge-prose .ge-product,
    .ge-prose .ge-product:has(.wp-block-image) {
        grid-template-columns: minmax(0, 1fr);
        padding: 16px;
    }

    .ge-pagehead__actions .ge-btn {
        flex: 1 1 auto;
    }

    .ge-figure {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ge-page *,
    .ge-page *::before,
    .ge-page *::after {
        transition: none !important;
        scroll-behavior: auto !important;
    }
}

/* =========================================
   STAY PAGE: THE TWO KALGA STAYS
========================================= */

.ge-staycard__media {
    aspect-ratio: 16 / 9;
}

.ge-staylist__grid li:nth-child(2) .ge-staycard__media {
    background: linear-gradient(170deg, #5a5340, #2c2b22);
}

.ge-staycard__nophoto {
    display: grid;
    justify-items: center;
    gap: 8px;
    font-size: 13px;
    color: rgba(216, 201, 178, 0.6);
}

.ge-staycard .ge-card__title {
    font-size: 26px;
}

.ge-staycard.is-pending .ge-card__title {
    color: var(--ge-muted);
}

.ge-staycard__highlights {
    display: grid;
    gap: 6px;
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
    font-size: 15px;
    line-height: 1.45;
}

.ge-staycard__highlights li {
    position: relative;
    padding-left: 18px;
}

.ge-staycard__highlights li::before {
    content: "";
    position: absolute;
    top: 0.55em;
    left: 2px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ge-sunset);
}

.ge-staycard__btn {
    margin-top: auto;
}

.ge-staycard .ge-card__body > .ge-staycard__btn {
    margin-top: 12px;
}

@media (max-width: 767px) {
    .ge-staycard .ge-card__title {
        font-size: 22px;
    }

    .ge-staycard__btn {
        align-self: stretch;
    }
}
