/* Larimar Miner — "Tide" content-page styles.
   Re-homes the imported content pack (ContentPageController -> content/show.blade.php) onto the Tide design system.
   Reuses the :root tokens defined in tide.css — DO NOT redefine them here and DO NOT edit tide.css. Coastal-editorial
   reading surface: contained ~760px column, Poppins body, Jost/Cormorant display headings (via --display / .t-display),
   square corners, hairline sand borders, gold accents, no shadows on light. Styles every class the block partials and
   the sanitised rich-text HTML emit, plus the sources / related / glossary / hub-children / newsletter / hero partials. */

/* ---- Article shell --------------------------------------------------------------------------- */
.t-article {
    padding: clamp(48px, 7vw, 96px) var(--gutter) clamp(56px, 8vw, 104px);
}
.t-article__inner {
    max-width: 760px;
    margin: 0 auto;
}
.t-article--landing .t-article__inner {
    max-width: 880px;
}
.t-article--learn {
    padding-top: clamp(42px, 6vw, 72px);
}

/* ---- Education panorama -------------------------------------------------------------------- */
.learn-hero {
    position: relative;
    display: flex;
    min-height: clamp(440px, 48vw, 600px);
    align-items: flex-end;
    overflow: hidden;
    background: #f5f5f2;
    border-bottom: 1px solid var(--sand-line-2);
}
.learn-hero__picture {
    position: absolute;
    inset: 0;
    display: block;
}
.learn-hero__image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    object-position: center;
}
.learn-hero__chip {
    position: absolute;
    z-index: 2;
    top: 24px;
    right: 30px;
    padding: 8px 14px;
    color: var(--ink);
    background: rgba(255, 255, 255, .88);
    border: 1px solid rgba(28, 42, 69, .13);
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .1em;
}
.learn-hero__overlay {
    position: relative;
    z-index: 2;
    width: min(690px, calc(100% - (2 * var(--gutter))));
    box-sizing: border-box;
    margin: 0 0 clamp(30px, 5vw, 58px) var(--gutter);
    padding: clamp(22px, 3vw, 32px) clamp(24px, 3.5vw, 40px);
    color: var(--ink);
    background: rgba(253, 252, 249, .94);
    border-left: 3px solid var(--gold);
    backdrop-filter: blur(8px);
}
.learn-hero__eyebrow {
    margin: 0 0 13px;
    color: var(--gold-deep);
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.learn-hero__title {
    margin: 0;
    color: var(--ink);
    font-family: var(--display);
    font-size: clamp(2.5rem, 5vw, 64px);
    font-weight: 500;
    letter-spacing: -.02em;
    line-height: 1.02;
}
.learn-hero__lede {
    max-width: 58ch;
    margin: 17px 0 0;
    color: var(--body);
    font-size: clamp(.98rem, 1.5vw, 1.12rem);
    font-weight: 300;
    line-height: 1.6;
}

/* ---- Article header -------------------------------------------------------------------------- */
.t-article__head {
    margin-bottom: clamp(32px, 5vw, 52px);
    padding-bottom: 28px;
    border-bottom: 1px solid var(--sand-line-2);
}
.t-article__title {
    font-family: var(--display);
    font-weight: 500;
    font-size: clamp(2.2rem, 5vw, 56px);
    line-height: 1.04;
    letter-spacing: -.01em;
    overflow-wrap: break-word;
    color: var(--ink);
    margin: 0;
}
.display-geo .t-article__title {
    font-weight: 600;
    letter-spacing: -.025em;
}
.t-article__lede {
    font-size: clamp(1.05rem, 2.1vw, 1.3rem);
    line-height: 1.6;
    font-weight: 300;
    color: var(--body);
    margin: 22px 0 0;
}
.t-article__byline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 18px;
    margin: 26px 0 0;
    font-family: var(--ui);
    font-size: 12.5px;
    letter-spacing: .04em;
    color: var(--body-2);
}
.t-article__byline > span {
    position: relative;
}
.t-article__byline > span + span::before {
    content: "\00B7";
    position: absolute;
    left: -11px;
    color: var(--gold);
}
.t-article__by {
    color: var(--ink);
    font-weight: 500;
}
.t-article__date,
.t-article__rev {
    font-family: var(--mono);
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: 11px;
    color: var(--mono-muted);
}

/* ---- Evidence labels ------------------------------------------------------------------------- */
.evidence-labels {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 22px;
    padding: 0;
    list-style: none;
}
.evidence-label {
    font-family: var(--mono);
    font-size: 10.5px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--gold-deep);
    background: var(--sand);
    border: 1px solid var(--sand-line-2);
    padding: 5px 11px;
}

/* ---- Hero image (page-hero) + galleries ------------------------------------------------------ */
.page-hero {
    margin: 0 0 clamp(28px, 4vw, 44px);
}
.page-hero img {
    width: 100%;
    height: auto;
    max-height: 30rem;
    object-fit: cover;
    border: 1px solid var(--sand-line-2);
}
.page-gallery {
    margin: clamp(32px, 5vw, 48px) 0 0;
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.page-gallery__item {
    margin: 0;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--sand);
}
.page-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border: 1px solid var(--sand-line-2);
}

/* ---- Block flow + prose typography ----------------------------------------------------------- */
.content-blocks {
    color: var(--body-subtle);
    font-size: 1.0625rem;
    line-height: 1.8;
    font-weight: 300;
}
.content-blocks > .block { margin: 1.5rem 0; }
.content-blocks > .block:first-child { margin-top: 0; }
.content-blocks > .block:last-child { margin-bottom: 0; }

/* Rich text (rich_text.blade -> .block-text) — sanitiser allows p,h3,h4,h5,ul,ol,li,a,blockquote,code,pre,hr,inline */
.block-text > :first-child { margin-top: 0; }
.block-text > :last-child { margin-bottom: 0; }
.block-text p { margin: 0 0 1.1rem; }
.block-text strong, .block-text b { font-weight: 600; color: var(--body-subtle); }
.block-text em, .block-text i { font-style: italic; }
.block-text a {
    color: var(--gold-deep);
    font-weight: 500;
    border-bottom: 1px solid var(--gold);
    transition: border-color .2s ease, color .2s ease;
}
.block-text a:hover { color: var(--ink); border-bottom-color: var(--ink); }
.block-text :is(ul, ol) { margin: 0 0 1.2rem; padding-left: 1.4rem; }
.block-text li { margin: 0 0 .5rem; }
.block-text li::marker { color: var(--gold-deep); }
.block-text hr { border: 0; border-top: 1px solid var(--sand-line-2); margin: 2.2rem 0; }
.block-text code {
    font-family: var(--mono);
    font-size: .9em;
    background: var(--sand);
    border: 1px solid var(--sand-line);
    padding: 1px 6px;
}
.block-text pre {
    font-family: var(--mono);
    font-size: .9rem;
    background: var(--sand);
    border: 1px solid var(--sand-line-2);
    padding: 16px 18px;
    overflow-x: auto;
    line-height: 1.6;
}
.block-text pre code { background: transparent; border: 0; padding: 0; }

/* Headings inside the article (block-heading partial + h3/h4/h5 in rich text) */
.content-blocks h2,
.content-blocks h3,
.content-blocks h4,
.content-blocks h5,
.block-heading {
    font-family: var(--display);
    color: var(--ink);
    font-weight: 500;
    letter-spacing: -.005em;
    line-height: 1.18;
}
.display-geo .content-blocks h2,
.display-geo .content-blocks h3,
.display-geo .content-blocks h4,
.display-geo .content-blocks h5,
.display-geo .block-heading {
    font-weight: 600;
    letter-spacing: -.02em;
}
.content-blocks h2, h2.block-heading { font-size: clamp(1.6rem, 3vw, 2rem); margin: 2.6rem 0 1rem; }
.content-blocks h3, h3.block-heading { font-size: clamp(1.3rem, 2.4vw, 1.55rem); margin: 2.2rem 0 .85rem; }
.content-blocks h4 { font-size: 1.2rem; margin: 1.9rem 0 .7rem; }
.content-blocks h5 {
    font-family: var(--mono);
    font-size: .8rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--gold-deep);
    margin: 1.8rem 0 .6rem;
}

/* ---- CTA block (cta.blade -> .block-cta .btn) ------------------------------------------------ */
.block-cta { margin: 2rem 0; }
.block-cta .btn,
.block .btn {
    display: inline-block;
    background: var(--ink);
    color: #fff;
    font-family: var(--ui);
    font-size: 13px;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 14px 28px;
    border: 0;
    cursor: pointer;
    transition: background .2s ease;
}
.block-cta .btn:hover,
.block .btn:hover { background: #28344f; color: #fff; }
.block .btn.btn--ghost {
    background: transparent;
    color: var(--ink);
    border: 1px solid var(--card-border);
}
.block .btn.btn--ghost:hover { background: transparent; border-color: var(--ink); color: var(--ink); }

/* ---- Related (related_content.blade -> .block-related .related) ------------------------------ */
.related {
    margin: 2.4rem 0 0;
    padding-top: 1.4rem;
    border-top: 1px solid var(--sand-line-2);
    font-family: var(--ui);
    font-size: 14px;
    color: var(--body-2);
    line-height: 1.9;
}
.related__label {
    font-family: var(--mono);
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: 11px;
    color: var(--mono-muted);
    margin-right: .35rem;
}
.related a {
    color: var(--gold-deep);
    border-bottom: 1px solid var(--gold);
    padding-bottom: 1px;
    transition: border-color .2s ease, color .2s ease;
}
.related a:hover { color: var(--ink); border-bottom-color: var(--ink); }

/* ---- Empty / placeholder collections (dynamic_collection.blade -> .block-empty .empty-state) - */
.empty-state {
    border: 1px dashed var(--card-border);
    background: var(--sand);
    color: var(--body-2);
    font-style: italic;
    padding: 1.4rem 1.6rem;
    text-align: center;
}

/* ---- Hub children (hub-children.blade -> .card-grid .card) ----------------------------------- */
.card-grid {
    list-style: none;
    margin: 2.6rem 0 0;
    padding: 0;
    display: grid;
    gap: 1px;
    background: var(--sand-line-2);
    border: 1px solid var(--sand-line-2);
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
}
.card {
    background: var(--paper);
    padding: 1.4rem 1.5rem;
    transition: background .2s ease;
}
.card:hover { background: var(--sand); }
.card a {
    font-family: var(--display);
    font-weight: 500;
    font-size: 1.25rem;
    color: var(--ink);
    line-height: 1.25;
}
.display-geo .card a { font-weight: 600; letter-spacing: -.01em; }
.card a:hover { color: var(--gold-deep); }
.card p {
    margin: .55rem 0 0;
    font-size: .95rem;
    line-height: 1.6;
    color: var(--body-2);
    font-weight: 300;
}

/* ---- Sources / citations (sources.blade -> .sources) ----------------------------------------- */
.sources {
    margin-top: clamp(40px, 6vw, 64px);
    border-top: 1px solid var(--sand-line-2);
    padding-top: 1.8rem;
    font-size: .92rem;
    line-height: 1.7;
    color: var(--body-2);
}
.sources h2 {
    font-family: var(--mono);
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .8rem;
    color: var(--gold-deep);
    margin: 0 0 1.1rem;
}
.sources ol { margin: 0; padding-left: 1.3rem; }
.sources li { margin: 0 0 .65rem; }
.sources li::marker { color: var(--mono-muted); }
.sources a {
    color: var(--gold-deep);
    border-bottom: 1px solid var(--gold);
    transition: border-color .2s ease, color .2s ease;
}
.sources a:hover { color: var(--ink); border-bottom-color: var(--ink); }

/* ---- Glossary (glossary.blade -> dl.glossary) ------------------------------------------------ */
.glossary { margin-top: clamp(32px, 5vw, 48px); }
.glossary dt {
    font-family: var(--display);
    font-weight: 600;
    font-size: 1.2rem;
    color: var(--ink);
    margin-top: 1.6rem;
    padding-top: 1.2rem;
    border-top: 1px solid var(--sand-line);
    scroll-margin-top: 90px;
}
.display-geo .glossary dt { letter-spacing: -.01em; }
.glossary dt:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.glossary dd {
    margin: .5rem 0 0;
    color: var(--body-subtle);
    font-weight: 300;
    line-height: 1.7;
}
.glossary__link {
    margin-left: .5rem;
    font-family: var(--ui);
    font-size: .85rem;
    color: var(--gold-deep);
    border-bottom: 1px solid var(--gold);
    white-space: nowrap;
}
.glossary__link:hover { color: var(--ink); border-bottom-color: var(--ink); }

/* ---- Landing hero block (hero.blade -> section.hero) ----------------------------------------- */
.t-article + .hero, .hero {
    background: var(--sand);
    border-bottom: 1px solid var(--sand-line-2);
}
.hero__inner {
    max-width: var(--maxw);
    margin: 0 auto;
    padding: clamp(56px, 8vw, 96px) var(--gutter);
    text-align: center;
}
.hero h1 {
    font-family: var(--display);
    font-weight: 500;
    font-size: clamp(2.4rem, 6vw, 64px);
    line-height: 1.02;
    letter-spacing: -.01em;
    color: var(--ink);
    margin: 0;
}
.display-geo .hero h1 { font-weight: 600; letter-spacing: -.025em; }
.hero__eyebrow {
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--gold-deep);
    margin: 0 0 18px;
}
.hero__lede {
    font-size: clamp(1.05rem, 2vw, 1.3rem);
    line-height: 1.6;
    font-weight: 300;
    color: var(--body);
    max-width: 56ch;
    margin: 22px auto 0;
}
.hero__cta {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    justify-content: center;
    margin: 32px 0 0;
}

/* ---- Newsletter band (newsletter.blade -> section.newsletter-band) --------------------------- */
.newsletter-band {
    background: var(--ink);
    color: var(--cream);
    border-top: 1px solid var(--foot-line);
}
.newsletter-band__inner {
    max-width: 640px;
    margin: 0 auto;
    padding: clamp(48px, 7vw, 80px) var(--gutter);
    text-align: center;
}
.newsletter-band h2 {
    font-family: var(--display);
    font-weight: 500;
    font-size: clamp(1.8rem, 4vw, 40px);
    line-height: 1.1;
    color: #fff;
    margin: 0 0 14px;
}
.display-geo .newsletter-band h2 { font-weight: 600; letter-spacing: -.02em; }
.newsletter-band p {
    font-size: 15px;
    line-height: 1.7;
    font-weight: 300;
    color: var(--foot-muted);
    margin: 0 0 26px;
}
.newsletter-form {
    display: flex;
    max-width: 420px;
    margin: 0 auto;
    border: 1px solid #3a4866;
}
.newsletter-form input {
    flex: 1;
    padding: 13px 16px;
    font-family: var(--body-font);
    font-size: 14px;
    color: #fff;
    background: transparent;
    border: 0;
}
.newsletter-form input::placeholder { color: #7f889c; }
.newsletter-form .btn {
    background: var(--gold);
    color: var(--ink);
    border: 0;
    padding: 13px 22px;
    font-family: var(--ui);
    font-size: 13px;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .2s ease;
}
.newsletter-form .btn:hover { background: var(--gold-deep); color: #fff; }
.sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ---- Legacy / embedded block classes --------------------------------------------------------- */
/* These may appear if a rich-text block embeds them, or if a future partial emits one of the 15 block types
   without a Tide-specific rule. Styled defensively under Tide tokens so nothing renders as raw browser default. */
.block-quote {
    border-left: 3px solid var(--gold);
    padding: .25rem 0 .25rem 1.4rem;
    margin: 2rem 0;
}
.block-quote blockquote {
    margin: 0;
    font-family: var(--display);
    font-weight: 500;
    font-style: italic;
    font-size: clamp(1.3rem, 2.6vw, 1.55rem);
    line-height: 1.4;
    color: var(--ink);
}
.display-geo .block-quote blockquote { font-style: normal; font-weight: 600; }
.block-quote figcaption {
    margin-top: .7rem;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--mono-muted);
}
/* Bare blockquote inside sanitised rich text */
.block-text blockquote {
    border-left: 3px solid var(--gold);
    margin: 1.6rem 0;
    padding: .25rem 0 .25rem 1.4rem;
    font-family: var(--display);
    font-style: italic;
    font-size: 1.3rem;
    line-height: 1.45;
    color: var(--ink);
}
.display-geo .block-text blockquote { font-style: normal; font-weight: 600; }

.block-callout {
    border: 1px solid var(--sand-line-2);
    border-left: 3px solid var(--gold);
    background: var(--sand);
    padding: 1.2rem 1.4rem;
    margin: 2rem 0;
}
.block-callout > :first-child { margin-top: 0; }
.block-callout > :last-child { margin-bottom: 0; }
.block-callout.callout-warning { border-left-color: var(--gold-deep); background: var(--cream-2); }
.block-callout.callout-tip { border-left-color: var(--gold-deep); }
.block-callout.callout-note { border-left-color: var(--gold); }

.block-table table,
.block-comparison table {
    width: 100%;
    border-collapse: collapse;
    font-size: .95rem;
    margin: 1.6rem 0;
}
.block-table th, .block-table td,
.block-comparison th, .block-comparison td {
    border: 1px solid var(--sand-line-2);
    padding: 10px 14px;
    text-align: left;
    vertical-align: top;
}
.block-table thead th,
.block-comparison thead th {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gold-deep);
    background: var(--sand);
    font-weight: 400;
}

.block-faq details {
    border-top: 1px solid var(--sand-line-2);
    padding: .2rem 0;
}
.block-faq details:last-of-type { border-bottom: 1px solid var(--sand-line-2); }
.block-faq summary {
    font-family: var(--ui);
    font-weight: 600;
    font-size: 1.05rem;
    color: var(--ink);
    cursor: pointer;
    padding: 1rem 0;
    list-style: none;
}
.block-faq summary::-webkit-details-marker { display: none; }
.block-faq summary::after { content: "+"; float: right; color: var(--gold-deep); font-weight: 400; }
.block-faq details[open] summary::after { content: "\2212"; }
.block-faq details[open] summary { color: var(--gold-deep); }

.block-citation {
    display: block;
    color: var(--body-2);
    font-size: .9rem;
    border-left: 2px solid var(--sand-line-2);
    padding-left: 1rem;
    margin: 1.6rem 0;
}

.block-image, .block-gallery figure { margin: 1.8rem 0; }
.block-image img, .block-gallery img {
    width: 100%;
    height: auto;
    display: block;
    border: 1px solid var(--sand-line-2);
}
.block-image figcaption, .block-gallery figcaption {
    margin-top: .6rem;
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--mono-muted);
}
.block-gallery {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
}

/* ---- Learn library / lesson path ----------------------------------------------------------- */
.learn-trail {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: stretch;
    margin: 0 0 clamp(34px, 5vw, 52px);
    border: 1px solid var(--sand-line-2);
    background: var(--paper);
}
.learn-trail a { color: var(--ink); }
.learn-trail__side {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    padding: 14px 16px;
    transition: background .2s ease;
}
.learn-trail__side:hover { background: var(--sand); }
.learn-trail__side > span:last-child,
.learn-trail__side--next > span:first-child { min-width: 0; }
.learn-trail__side small,
.learn-card__copy small,
.learn-library summary small {
    display: block;
    margin-bottom: 4px;
    font-family: var(--mono);
    font-size: 9.5px;
    font-weight: 400;
    letter-spacing: .12em;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--mono-muted);
}
.learn-trail__side strong {
    display: block;
    overflow: hidden;
    font-family: var(--ui);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.learn-trail__side--next { justify-content: flex-end; text-align: right; }
.learn-trail__position {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 112px;
    padding: 10px 16px;
    text-align: center;
    border-right: 1px solid var(--sand-line-2);
    border-left: 1px solid var(--sand-line-2);
}
.learn-trail__position span {
    font-family: var(--mono);
    font-size: 9px;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: var(--mono-muted);
}
.learn-trail__position strong { font-family: var(--ui); font-size: 14px; font-weight: 600; }

.learn-library { margin-top: clamp(42px, 7vw, 72px); }
.learn-library__head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 24px;
}
.learn-library__head .t-eyebrow { margin: 0 0 9px; }
.learn-library__head h2 {
    margin: 0;
    font-size: clamp(1.75rem, 3.4vw, 2.6rem);
    line-height: 1.08;
    color: var(--ink);
}
.learn-library__progress { width: min(210px, 32vw); }
.learn-library__progress span {
    display: block;
    margin-bottom: 7px;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .1em;
    text-align: right;
    text-transform: uppercase;
    color: var(--mono-muted);
}
.learn-library__progress b { color: var(--ink); font-weight: 500; }
.learn-library__progress progress {
    display: block;
    width: 100%;
    height: 4px;
    border: 0;
    background: var(--sand-line-2);
    accent-color: var(--ink);
}
.learn-library__progress progress::-webkit-progress-bar { background: var(--sand-line-2); }
.learn-library__progress progress::-webkit-progress-value { background: var(--ink); }
.learn-library__progress progress::-moz-progress-bar { background: var(--ink); }
.learn-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin: 0;
    padding: 1px;
    list-style: none;
    background: var(--sand-line-2);
}
.learn-grid > li { display: flex; min-width: 0; }
.learn-card {
    position: relative;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 15px;
    align-items: center;
    min-height: 126px;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    padding: 20px 42px 20px 20px;
    color: var(--ink);
    background: var(--paper);
    transition: background .2s ease, color .2s ease;
}
.learn-card:hover { background: var(--sand); }
.learn-card.is-current { box-shadow: inset 0 3px 0 var(--gold-deep); background: var(--cream-2); }
.learn-card__icon {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    color: var(--gold-deep);
    border: 1px solid var(--sand-line-2);
    background: var(--cream-2);
}
.learn-icon {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.45;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.learn-card__copy strong {
    display: block;
    font-family: var(--display);
    font-size: 1.12rem;
    font-weight: 600;
    line-height: 1.25;
}
.learn-card__status {
    position: absolute;
    top: 12px;
    right: 12px;
    display: grid;
    place-items: center;
    width: 23px;
    height: 23px;
    font-family: var(--mono);
    font-size: 9px;
    color: var(--mono-muted);
    border: 1px solid transparent;
}
.learn-card.is-visited .learn-card__status {
    color: #fff;
    background: var(--ink);
    border-color: var(--ink);
}
.learn-library--compact {
    margin-top: clamp(46px, 7vw, 72px);
    border: 1px solid var(--sand-line-2);
    background: var(--paper);
}
.learn-library--compact > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 20px;
    color: var(--ink);
    cursor: pointer;
    list-style: none;
}
.learn-library--compact > summary::-webkit-details-marker { display: none; }
.learn-library--compact > summary::after {
    content: "+";
    order: 3;
    font-family: var(--ui);
    font-size: 24px;
    font-weight: 300;
    color: var(--gold-deep);
}
.learn-library--compact[open] > summary::after { content: "\2212"; }
.learn-library--compact summary strong { font-family: var(--ui); font-size: 14px; font-weight: 600; }
.learn-library__summary-progress {
    margin-left: auto;
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--mono-muted);
}
.learn-library--compact .learn-library__body { border-top: 1px solid var(--sand-line-2); }
.learn-library--compact .learn-card { min-height: 105px; padding: 16px 36px 16px 16px; }
.learn-library--compact .learn-card__copy strong { font-size: 1rem; }

/* ---- Legal pages --------------------------------------------------------------------------- */
.t-legal .t-article__inner { max-width: 980px; }
.t-legal .t-article__head { max-width: 760px; }
.t-legal__nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin: 0 0 clamp(42px, 6vw, 64px);
    padding: 1px;
    background: var(--sand-line-2);
}
.t-legal__nav a {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 118px;
    padding: 18px 20px;
    color: var(--ink);
    background: var(--paper);
    transition: background .2s ease;
}
.t-legal__nav a:hover { background: var(--sand); }
.t-legal__nav a.is-current { color: #fff; background: var(--ink); }
.t-legal__nav span {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: .12em;
    color: var(--mono-muted);
}
.t-legal__nav a.is-current span { color: var(--gold); }
.t-legal__nav strong {
    font-family: var(--display);
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.25;
}
.t-legal__content {
    max-width: 760px;
    padding-left: clamp(20px, 4vw, 42px);
    border-left: 2px solid var(--gold);
}
.t-legal__content > h2:first-child { margin-top: 0; }
.t-legal__content p { margin: 0 0 1.25rem; }
.t-legal__content a {
    color: var(--gold-deep);
    font-weight: 500;
    border-bottom: 1px solid var(--gold);
}
.t-legal__contact {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px 36px;
    align-items: end;
    max-width: 760px;
    margin-top: clamp(42px, 6vw, 64px);
    padding: 24px 26px;
    color: var(--body-subtle);
    border: 1px solid var(--sand-line-2);
    background: var(--sand);
}
.t-legal__contact .t-eyebrow { grid-column: 1 / -1; margin: 0; }
.t-legal__contact p { margin: 0; font-size: .95rem; line-height: 1.65; }
.t-legal__contact a { color: var(--ink); font-family: var(--ui); font-size: 13px; font-weight: 600; white-space: nowrap; }

/* ---- Responsive ------------------------------------------------------------------------------ */
@media (max-width: 760px) {
    .learn-hero {
        min-height: 520px;
    }
    .learn-hero__chip {
        top: 18px;
        right: 18px;
    }
    .learn-hero__overlay {
        width: calc(100% - 36px);
        margin: 0 18px 18px;
    }
    .page-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .learn-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .learn-trail { grid-template-columns: 1fr 1fr; }
    .learn-trail__position { grid-column: 1 / -1; grid-row: 1; border: 0; border-bottom: 1px solid var(--sand-line-2); }
    .learn-trail__side--next { border-left: 1px solid var(--sand-line-2); }
    .learn-library__head { align-items: start; flex-direction: column; }
    .learn-library__progress { width: 100%; }
    .learn-library__progress span { text-align: left; }
    .t-legal__nav { grid-template-columns: 1fr; }
    .t-legal__nav a { min-height: 84px; }
    .t-legal__contact { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .learn-hero {
        min-height: 500px;
    }
    .learn-hero__image {
        object-position: center 32%;
    }
    .learn-hero__chip {
        display: none;
    }
    .learn-hero__overlay {
        padding: 20px 22px;
    }
    .learn-hero__lede {
        font-size: .95rem;
    }
    .page-gallery { grid-template-columns: 1fr; }
    .card-grid { grid-template-columns: 1fr; }
    .block-text pre { font-size: .82rem; }
    .learn-grid { grid-template-columns: 1fr; }
    .learn-card { min-height: 104px; }
    .learn-trail__side strong { display: none; }
    .learn-library__summary-progress { display: none; }
    .t-legal .t-article__title { font-size: clamp(1.875rem, 9.25vw, 2.2rem); }
    .t-legal__content { padding-left: 18px; }
}
