/* Jardín y Menta · Editorial luminosa. Shared design tokens. */
:root {
    --jm-ink: #172B35; --jm-ink-muted: #4F636D; --jm-petrol: #24656B;
    --jm-link: #0D5E62; --jm-background: #EDF2F4; --jm-surface: #FFFFFF;
    --jm-surface-muted: #D4E1E5; --jm-border: #C4D3D9;
    --jm-mint: #6CD86C; --jm-mint-hover: #77DD77;
    --jm-font-display: "Inter Display", "Inter", system-ui, sans-serif;
    --jm-font-body: "Lato", Arial, sans-serif; --jm-reading-measure: 72ch;
    --ast-global-color-0: var(--jm-petrol); --ast-global-color-1: var(--jm-ink);
    --ast-global-color-2: var(--jm-ink); --ast-global-color-3: var(--jm-ink-muted);
    --ast-global-color-4: var(--jm-background); --ast-global-color-5: var(--jm-surface);
    --ast-global-color-6: var(--jm-surface-muted); --ast-global-color-7: var(--jm-border);
    --ast-global-color-8: var(--jm-petrol);
}
body, button, input, select, textarea, .ast-button, .ast-custom-button {
    font-family: var(--jm-font-body); font-weight: 400;
}
body { color: var(--jm-ink); background: var(--jm-surface); font-size: 18px; line-height: 1.7; }
*, *::before, *::after { box-sizing: border-box; }
img, svg, video { max-width: 100%; }
img { height: auto; }
h1, h2, h3, h4, h5, h6, .entry-title, .wp-block-post-title {
    font-family: var(--jm-font-display); font-variation-settings: "opsz" 32;
    font-weight: 700; color: var(--jm-ink); overflow-wrap: break-word; text-wrap: pretty;
}
h1, .entry-title, .entry-content h1 { font-size: clamp(2.125rem, 1.625rem + 2vw, 3.25rem); line-height: 1.1; }
h2, .entry-content h2 { font-size: clamp(1.75rem, 1.4rem + 1vw, 2.375rem); line-height: 1.2; }
h3, .entry-content h3 { font-size: clamp(1.375rem, 1.2rem + .5vw, 1.75rem); line-height: 1.28; }
h4, .entry-content h4 { font-size: 1.25rem; line-height: 1.3; }
a { color: var(--jm-link); text-underline-offset: .18em; }
a:hover { color: var(--jm-ink); }
.entry-content p a, .entry-content li a, .jym-related a { text-decoration: underline; }
body :is(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid var(--jm-petrol); outline-offset: 4px;
}
button, input[type="submit"], .ast-button, .ast-custom-button,
.entry-content .wp-block-buttons .wp-block-button .wp-block-button__link.wp-element-button,
.wp-block-search .wp-block-search__button {
    min-height: 44px; padding: 12px 22px; border: 2px solid var(--jm-petrol);
    border-radius: 6px; background: var(--jm-mint); color: var(--jm-ink);
    font-family: var(--jm-font-body); font-size: 16px; font-weight: 700;
    line-height: 1.35; letter-spacing: normal; text-transform: none; text-decoration: none;
}
button:hover, input[type="submit"]:hover, .ast-button:hover,
.entry-content .wp-block-buttons .wp-block-button .wp-block-button__link.wp-element-button:hover,
.wp-block-search .wp-block-search__button:hover {
    background: var(--jm-mint-hover); color: var(--jm-ink); border-color: var(--jm-ink);
}
.entry-content .wp-block-buttons .wp-block-button.is-style-outline > .wp-block-button__link {
    background: var(--jm-surface); border: 2px solid var(--jm-petrol); color: var(--jm-petrol);
}
input[type="text"], input[type="search"], input[type="email"], textarea, select {
    min-height: 48px; max-width: 100%; border: 2px solid var(--jm-petrol);
    border-radius: 8px; background: var(--jm-surface); color: var(--jm-ink);
    font-size: 16px; padding: 10px 14px;
}
.search-form { display: flex; flex-wrap: wrap; gap: 12px; }
.search-form label { flex: 1 1 220px; }
.search-form .search-field { width: 100%; }
.wp-block-search__inside-wrapper { display: flex; flex-wrap: wrap; gap: 12px; }
.wp-block-search__input { flex: 1 1 220px; min-width: 0; }
.wp-block-search__button { margin: 0; }
.wp-block-search__label { font-weight: 700; }

/* Keep the measured fixed header and its progressive no-JavaScript fallback. */
html:not(.jym-header-measured) #ast-desktop-header { display: block; }
html:not(.jym-header-measured) #ast-mobile-header { display: none; }
html.jym-header-measured {
    scroll-padding-top: calc(var(--jym-header-height) + var(--jym-admin-bar-offset) + 8px);
}
html.jym-header-measured #masthead { min-height: var(--jym-header-height); }
html.jym-header-measured #masthead .main-header-bar {
    position: fixed; top: var(--jym-admin-bar-offset); width: 100%; z-index: 999;
}
.site-header .main-header-bar { background: var(--jm-surface); border-bottom: 1px solid var(--jm-border); }
.site-header .ast-container { max-width: 1280px; padding-inline: clamp(16px, 2.5vw, 32px); }
.custom-logo-link img { width: 148px; height: auto; }
.main-header-menu .menu-link, .ast-builder-menu-mobile .menu-link {
    font-family: var(--jm-font-body); color: var(--jm-ink); font-size: 16px;
    font-weight: 700; line-height: 1.4; min-height: 44px;
}
.main-header-menu > .menu-item > .menu-link { padding-inline: 10px; }
.site-header .menu-item.current-menu-item > .menu-link,
#ast-mobile-popup .menu-item.current-menu-item > .menu-link { color: var(--jm-petrol); text-decoration: underline; }
.ast-search-menu-icon, .menu-toggle { min-width: 44px; min-height: 44px; }
#ast-mobile-popup.active { z-index: 1000000; }
#ast-mobile-popup .ast-mobile-popup-inner { background: var(--jm-surface); color: var(--jm-ink); }
#ast-mobile-popup .menu-link { min-height: 56px; padding: 16px 24px; font-size: 18px; }
#ast-mobile-popup #menu-toggle-close { width: 48px; height: 48px; padding: 10px; color: var(--jm-ink); }
#ast-mobile-popup #menu-toggle-close:focus-visible { outline: 3px solid var(--jm-petrol); outline-offset: -5px; }

/* Native editorial compositions: white space and hierarchy, not floating cards. */
.home #content > .ast-container { max-width: none; padding: 0; }
.home #primary { width: 100%; margin: 0; }
.home .ast-article-single { padding: 0; background: transparent; }
.entry-content .jym-home { max-width: 1280px; margin-inline: auto; padding: 0 clamp(16px, 3vw, 40px); }
.jym-home > * { max-width: none; }
.wp-block-columns.jym-hero {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    position: relative; isolation: isolate;
    gap: 0; align-items: center; padding-block: 40px; margin: 0 0 24px;
}
.entry-content .jym-home > .jym-hero { margin-top: 28px; }
.entry-content .jym-hero > .wp-block-column,
.entry-content .jym-featured > .wp-block-column { min-width: 0; margin: 0; }
.entry-content .jym-home .jym-hero h1 { margin-block: 16px 24px; max-width: 16ch; text-wrap: balance; }
.jym-hero > .wp-block-column:first-child { position: relative; z-index: 1; padding-right: 24px; }
.jym-hero .jym-hero-visual { position: absolute; inset: 0 0 0 auto; width: 62%; height: 100%; pointer-events: none; clip-path: inset(0 0 0 19.354839% round 8px); } /* Keep the existing crop; reveal only the image column (50% of the hero). */
.jym-lead { color: var(--jm-ink); font-size: 20px; line-height: 1.6; max-width: 48ch; }
.entry-content .jym-hero-actions { gap: 16px 28px; padding: 0; margin-top: 24px; }
.entry-content .jym-hero-actions p, .jym-hero-actions .wp-block-buttons { margin: 0; }
.entry-content .jym-reading-link a { color: var(--jm-petrol); font-weight: 700; text-decoration: underline; text-decoration-color: var(--jm-mint); text-decoration-thickness: 2px; text-underline-offset: .22em; }
.jym-reading-link a::after { content: ""; display: inline-block; width: 24px; height: 12px; margin-left: 12px; vertical-align: middle; background: currentColor; clip-path: polygon(0 44%, 82% 44%, 62% 8%, 68% 0, 100% 50%, 68% 100%, 62% 92%, 82% 56%, 0 56%); }
.entry-content .jym-hero-actions .wp-block-buttons .wp-block-button .wp-block-button__link.wp-element-button { border-color: transparent; }
.entry-content .jym-hero-actions p a { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 10px 24px; border: 2px solid var(--jm-petrol); border-radius: 6px; color: var(--jm-petrol); background: var(--jm-surface); font-size: 16px; font-weight: 700; text-decoration: none; }
.entry-content .jym-home :is(h2, h3) a { color: var(--jm-ink); text-decoration: none; }
.entry-content .jym-home :is(h2, h3) a:hover { text-decoration: underline; }
.jym-kicker {
    font-family: var(--jm-font-body); font-size: 14px; font-weight: 700;
    line-height: 1.5; letter-spacing: .035em; color: var(--jm-petrol);
}
.entry-content .jym-kicker { margin-block: 0 12px; }
.jym-home .jym-kicker, .single-post .ast-single-entry-banner .jym-kicker { text-transform: uppercase; }
.jym-hero .jym-kicker::after { content: ""; display: block; width: 40px; height: 3px; background: var(--jm-mint); margin-top: 12px; }
.jym-hero-image, .jym-featured-image { margin: 0; }
.jym-hero-image { height: 100%; }
.jym-hero-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; border-radius: 8px; }
.jym-featured-image img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: center 65%; border-radius: 8px; }
.jym-section { margin-block: 0 56px; }
.entry-content .jym-home .jym-section > h2 { margin-block: 0 24px; }
.wp-block-columns.jym-featured {
    display: grid; grid-template-columns: minmax(0, .42fr) minmax(0, .58fr);
    align-items: center; gap: 36px; padding: 32px 0; margin: 0;
}
.entry-content .jym-home .jym-featured h2 { margin-block: 0 16px; font-size: clamp(1.625rem, 1.2rem + 1.2vw, 2rem); }
.jym-featured h2 a { color: var(--jm-ink); text-decoration: none; }
.jym-featured h2 a:hover { text-decoration: underline; }
.jym-featured p:not(.jym-kicker) { max-width: 56ch; }
.entry-content .jym-reading-link { margin-block: 20px 0; }
.wp-block-columns.jym-section-index { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin: 0; }
.entry-content .jym-section-index > .wp-block-column { position: relative; min-width: 0; margin: 0; padding: 0 0 16px; }
.jym-section-image { margin: 0 0 16px; }
.jym-section-image img { display: block; width: 100%; aspect-ratio: 2.2 / 1; object-fit: cover; object-position: center 65%; border-radius: 8px; }
.jym-section-index img.wp-image-2498 { object-position: center; } /* Preserve the tallest sporophytes in this photograph's panoramic crop. */
.jym-section-index img.wp-image-2526 { object-position: center 40%; } /* Keep the romanesco and the main geometric overlay within the panoramic crop. */
.jym-section-index img.wp-image-2500 { object-position: center 15%; } /* Keep both boot toes visible in the shallow mobile crop. */
.jym-section-index > .wp-block-column::after { content: ""; display: block; width: 40px; height: 3px; background: var(--jm-mint); margin-top: 16px; }
.jym-section-index h3 a::after { content: ""; position: absolute; inset: 0; }
.entry-content .jym-section-index h3 a:focus-visible { outline: none; } /* The stretched link receives the full-card ring below. */
.jym-section-index h3 a:focus-visible::after { outline: 3px solid var(--jm-petrol); outline-offset: 4px; }
.entry-content .jym-home .jym-section-index h3 { font-size: 25px; margin-block: 0 12px; line-height: 1.15; }
.jym-section-index h3 a { color: var(--jm-ink); }
.jym-section-index p { font-size: 17px; line-height: 1.65; }
.entry-content .jym-status { color: var(--jm-ink-muted); font-size: 14px; line-height: 1.5; margin-bottom: 0; }
.jym-query { margin-top: 24px; }
body .jym-query .wp-block-post-template { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; margin: 0; padding: 0; }
body .jym-query--1 .wp-block-post-template { grid-template-columns: minmax(0, 1fr); }
.jym-query .wp-block-post { min-width: 0; margin: 0; }
.jym-card { min-width: 0; }
.jym-card .wp-block-post-featured-image { margin: 0; }
.jym-card .wp-block-post-featured-image img { display: block; width: 100%; object-fit: cover; border-radius: 6px; }
.entry-content .jym-card-body { padding: 20px 0 0; margin: 0; }
.jym-card-body > * { margin-top: 0; }
.entry-content .jym-home .jym-card h3 { font-size: 26px; margin-block: 12px; }
.jym-card h3 a { color: var(--jm-ink); text-decoration: none; }
.jym-card h3 a:hover { text-decoration: underline; }
.jym-card .wp-block-post-excerpt { color: var(--jm-ink); font-size: 17px; line-height: 1.65; }
.jym-card .wp-block-post-excerpt__excerpt { margin: 0; }
.jym-card-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; color: var(--jm-ink-muted); font-size: 14px; line-height: 1.5; }
.jym-card-meta > span { color: var(--jm-petrol); font-weight: 700; }
.jym-query--1 .jym-card { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: center; gap: 32px; }
.entry-content .jym-query--1 .jym-card-body { padding: 0; }
.entry-content .jym-notebook { padding: 32px; background: var(--jm-background); }
.entry-content .jym-project-intro { margin-block: 0 48px; padding: 32px clamp(24px, 4vw, 48px); background: #E7F0F0; border-radius: 8px; }
.entry-content .jym-home .jym-project-intro > h2.wp-block-heading { margin: 0 0 8px; font-size: 28px; }
.entry-content .jym-project-intro > p { max-width: 66ch; margin: 0 0 12px; }
.entry-content .jym-project-intro .jym-kicker { margin-bottom: 6px; }
.entry-content .jym-project-intro .jym-reading-link { margin-top: 12px; margin-bottom: 0; }
.jym-empty-note, .site-content .jym-empty-state { padding: 24px; border-left: 3px solid var(--jm-petrol); background: var(--jm-background); color: var(--jm-ink-muted); }

/* Astra native articles and archives retain their markup and content. */
.site #content { background: var(--jm-surface); }
.single-post .ast-single-entry-banner[data-post-type="post"] { background: var(--jm-surface); text-align: left; padding: 0; }
.single-post .ast-single-entry-banner[data-post-type="post"] .ast-container {
    max-width: calc(var(--jm-reading-measure) + 80px);
    padding: 24px clamp(16px, 3vw, 40px) 0;
}
.single-post .ast-single-entry-banner[data-post-type="post"] .entry-title {
    font-size: clamp(2.125rem, 1.625rem + 2vw, 3rem); line-height: 1.12; margin-block: 8px 16px;
}
.single-post .ast-single-entry-banner .jym-kicker { margin-block: 16px 8px; }
.single-post .ast-single-entry-banner .jym-kicker a { color: var(--jm-petrol); text-decoration: none; }
.single-post .ast-single-entry-banner .ast-breadcrumbs-wrapper { font-size: 14px; margin-bottom: 20px; }
.site-content > .ast-container { max-width: 1280px; }
body:not(.home) .site #content > .ast-container { padding-inline: clamp(16px, 3vw, 40px); }
body:not(.home) #primary { margin-block: 32px 48px; padding-block: 0; }
/* Legal pages: a centered reading measure without affecting other templates. */
body:is(.page-id-1927, .page-id-1928, .page-id-1929) .site #content #primary {
    width: 100%; max-width: 840px; min-width: 0; margin: 40px auto 64px; padding: 0;
}
body:is(.page-id-1927, .page-id-1928, .page-id-1929) .entry-header {
    margin: 0 0 28px; padding: 0; text-align: left;
}
body:is(.page-id-1927, .page-id-1928, .page-id-1929) .entry-content {
    text-align: left; overflow-wrap: break-word;
}
body:is(.page-id-1927, .page-id-1928, .page-id-1929) .entry-content h2 {
    font-size: clamp(1.5rem, 1.25rem + 1vw, 1.875rem); line-height: 1.25; margin-block: 32px 16px;
}
body:is(.page-id-1927, .page-id-1928, .page-id-1929) .entry-content h3 {
    font-size: clamp(1.25rem, 1.125rem + .5vw, 1.5rem); margin-block: 24px 12px;
}
body:is(.page-id-1927, .page-id-1928, .page-id-1929) .entry-content > :last-child { margin-bottom: 0; }
body:is(.page-id-1927, .page-id-1928, .page-id-1929) .wp-block-table { max-width: 100%; overflow-x: auto; }
body:is(.page-id-1927, .page-id-1928, .page-id-1929) .wp-block-table table { width: 100%; table-layout: auto; }
body:is(.page-id-1927, .page-id-1928, .page-id-1929) .wp-block-table :is(th, td) {
    padding: 10px 12px; text-align: left; overflow-wrap: anywhere;
}
body:is(.page-id-1927, .page-id-1928, .page-id-1929) .wp-block-table :is(th, code) { white-space: nowrap; }
@media (max-width: 544px) {
    body:is(.page-id-1927, .page-id-1928, .page-id-1929) .wp-block-table { font-size: 14px; }
    body:is(.page-id-1927, .page-id-1928, .page-id-1929) .wp-block-table :is(th, td) { padding: 8px; }
}
.archive #primary, .search #primary { width: 100%; }
.archive #primary .ast-row, .search #primary .ast-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 32px; margin: 0; }
.archive #primary .ast-row::before, .archive #primary .ast-row::after,
.search #primary .ast-row::before, .search #primary .ast-row::after { content: none; }
.archive .ast-article-post, .search .ast-article-post { width: auto; min-width: 0; margin: 0; padding: 0 0 24px; border: 0; border-bottom: 1px solid var(--jm-border); background: transparent; }
.archive .entry-title, .search .entry-title { font-size: 25px; line-height: 1.3; }
.archive .entry-title a, .search .entry-title a { color: var(--jm-ink); }
.archive .post-thumb img, .search .post-thumb img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px; }
:is(.archive, .search) .post-35 .post-thumb img { object-position: 30% center; }
/* Consistent previews; truncation never changes the full article or link text. */
:is(.archive, .search) .blog-layout-6.ast-article-inner { height: 320px; padding: 24px; overflow: hidden; }
:is(.archive, .search) .blog-layout-6 .entry-title { height: 3.9em; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
:is(.archive, .search) .blog-layout-6 .entry-title:is(:hover, :focus-within) { display: block; overflow: visible; -webkit-line-clamp: unset; z-index: 3; }
:is(.archive, .search) .blog-layout-6 .entry-title:is(:hover, :focus-within) a { position: absolute; inset: 0 0 auto; display: block; padding: 8px; border-radius: 4px; background: var(--jm-ink); color: var(--jm-surface); overflow-wrap: anywhere; }
:is(.archive, .search) .blog-layout-6 .entry-title a:focus-visible { outline-color: var(--jm-mint); outline-offset: -3px; }
:is(.archive, .search) .blog-layout-6 .entry-header { margin-bottom: 16px; }
:is(.archive, .search) .blog-layout-6 .ast-excerpt-container p { margin: 0; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.jym-query:not(.jym-query--1) .jym-card .wp-block-post-featured-image img { aspect-ratio: 3 / 2; }
.jym-query:not(.jym-query--1) .jym-card h3 { height: 2.56em; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.jym-query:not(.jym-query--1) .wp-block-post-excerpt__excerpt { height: 4.95em; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.archive .site-content .ast-archive-description,
.search .site-content .ast-archive-description { margin-bottom: 32px; padding: 0; border: 0; background: transparent; }
.ast-archive-description .ast-archive-title { color: var(--jm-ink); font-size: clamp(2rem, 1.5rem + 2vw, 3rem); }
.ast-archive-description p { max-width: 72ch; color: var(--jm-ink-muted); }
.entry-meta, .entry-meta a { color: var(--jm-ink-muted); font-size: 14px; line-height: 1.6; }
.entry-meta .comments-link, .page .entry-meta { display: none; }
.single-post #primary, .page:not(.home) #primary { max-width: var(--jm-reading-measure); margin-inline: auto; float: none; }
.single-post #primary .ast-article-single,
.page:not(.home) #primary .ast-article-single { background: transparent; padding: 0; }
.single-post .entry-content, .page:not(.home) .entry-content { font-size: 18px; line-height: 1.7; }
.single-post .entry-content h2, .page:not(.home) .entry-content h2 { margin-top: 40px; }
.single-post .entry-content h3, .page:not(.home) .entry-content h3 { margin-top: 28px; }
.single-post .post-thumb img, .jym-opening-image img { width: 100%; height: auto; border-radius: 6px; }
.jym-opening-image { margin: 0 0 32px; }
/* Guide presentation uses one real opening figure and an optional native index. */
.single-post.jym-guide #primary { width: 100%; max-width: 1080px; }
.single-post.jym-guide .site-content > .ast-container { max-width: 1160px; }
.single-post.jym-guide .ast-single-entry-banner[data-post-type="post"] .ast-container { max-width: 1160px; }
.jym-guide .entry-title { max-width: 28ch; text-wrap: balance; }
.entry-content .jym-article-opening { display: block; width: 100%; max-width: none; margin: 0 0 32px; }
.entry-content .jym-article-opening img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; object-position: center 70%; border-radius: 8px; }
.jym-article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 220px; grid-template-areas: "text index"; gap: 40px; align-items: start; }
.jym-article-text { grid-area: text; min-width: 0; max-width: var(--jm-reading-measure); }
.jym-article-layout--plain { display: block; }
.jym-article-layout--plain .jym-article-text { margin-inline: auto; }
.jym-article-text > p:first-of-type { font-size: 19px; line-height: 1.7; }
.single-post .jym-article-text h2 { font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem); line-height: 1.18; scroll-margin-top: 8px; }
.jym-article-text h2::after { content: ""; display: block; width: 40px; height: 3px; background: var(--jm-mint); margin-top: 12px; }
.entry-content .jym-article-index { grid-area: index; align-self: start; position: sticky; top: calc(var(--jym-header-height, 96px) + var(--jym-admin-bar-offset, 0px) + 16px); max-height: calc(100dvh - var(--jym-header-height, 96px) - var(--jym-admin-bar-offset, 0px) - 32px); overflow-y: auto; padding: 20px; margin: 0; background: #F0F8F0; border-radius: 8px; font-size: 14px; line-height: 1.5; }
.jym-article-index summary { cursor: pointer; font-family: var(--jm-font-display); font-size: 18px; font-weight: 700; color: var(--jm-ink); }
.jym-article-index summary::marker { color: var(--jm-petrol); }
.jym-article-index summary::after { content: ""; display: block; width: 40px; height: 2px; margin-top: 8px; background: var(--jm-mint); }
.jym-article-index ol { margin: 16px 0 0 20px; }
.jym-article-index ul { list-style: none; margin: 16px 0 0; padding: 0; }
.jym-article-index li { margin-bottom: 12px; }
.jym-article-index li:last-child { margin-bottom: 0; }
.entry-content .jym-article-index nav a { display: block; min-height: 28px; padding-block: 4px; color: var(--jm-ink); text-decoration: none; }
.entry-content .jym-article-index nav a:hover { text-decoration: underline; text-decoration-color: var(--jm-mint); text-decoration-thickness: 2px; }
.jym-article-index summary:focus-visible { outline: 3px solid var(--jm-petrol); outline-offset: 4px; }

.entry-content blockquote { border-left: 3px solid var(--jm-petrol); padding-left: 24px; color: var(--jm-ink); }
.entry-content .wp-block-table { overflow-x: auto; }
.entry-content figcaption { color: var(--jm-ink-muted); font-size: 14px; line-height: 1.5; }
.jym-related { margin-top: 48px; border-top: 1px solid var(--jm-border); padding-top: 24px; }
.jym-related ul { margin-left: 20px; }
.jym-related li { margin-bottom: 16px; }
.jym-empty-state { grid-column: 1 / -1; }

/* Independent footer and Adapta RGPD presentation, without consent changes. */
#colophon.site-footer { color: var(--jm-surface-muted); background: var(--jm-ink); font-size: 15px; }
#colophon .site-above-footer-wrap, #colophon .site-primary-footer-wrap, #colophon .site-below-footer-wrap { background: transparent; }
#colophon .site-above-footer-wrap { min-height: 0; padding-block: 24px 12px; }
#colophon .site-below-footer-wrap { min-height: 0; padding-block: 12px; }
#colophon .ast-builder-grid-row-container-inner, #colophon .ast-builder-grid-row { min-height: 0; }
#colophon .menu-link { display: inline-flex; align-items: center; min-height: 44px; }
#colophon a, #colophon .menu-link { color: var(--jm-surface); font-family: var(--jm-font-body); font-size: 16px; }
#colophon a:hover { color: var(--jm-mint); text-decoration: underline; }
#colophon .ast-footer-copyright, #colophon .ast-footer-copyright p { color: var(--jm-surface-muted); font-size: 14px; }
#colophon .ast-footer-copyright { margin-inline: 0; }
#colophon :focus-visible { outline-color: var(--jm-surface); }
.footer-nav-wrap ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 24px; margin: 0; padding: 0; list-style: none; }
.argpd-footer { padding: 4px 16px 16px; background: var(--jm-ink); color: var(--jm-surface); font-size: 14px; }
.argpd-footer ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; margin: 0; padding: 0; list-style: none; }
.argpd-footer a { display: inline-flex; align-items: center; min-height: 44px; }
.argpd-footer a { color: var(--jm-surface); text-decoration: underline; }
.argpd-footer :focus-visible { outline-color: var(--jm-surface); }
/* Adapta nests More info inside the message; shared grid rows align it with the consent buttons. */
#cookies-eu-banner { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto minmax(44px, auto); gap: 8px; max-height: 100dvh; overflow-y: auto; background: var(--jm-ink); color: var(--jm-surface); font-family: var(--jm-font-body); font-size: 14px; line-height: 1.45; text-align: left; padding: 12px; }
#cookies-eu-banner #cookies-eu-label { display: grid; grid-area: 1 / 1 / 3 / -1; grid-template-columns: minmax(0, 1fr); grid-template-rows: subgrid; min-width: 0; margin: 0; }
#cookies-eu-banner #cookies-eu-buttons { display: grid; grid-area: 2 / 2 / 3 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: inherit; min-width: 0; margin: 0; z-index: 1; }
/* Preserve the existing policy link instead of the separate preferences form. */
#cookies-eu-banner #cookies-eu-buttons form { display: none; }
#cookies-eu-banner :is(button, a) { box-sizing: border-box; min-width: 0; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin: 0; padding: 10px 6px; font-size: 14px; line-height: 20px; white-space: nowrap; border: 1px solid transparent; border-radius: 8px; box-shadow: none; transition: none; animation: none; }
#cookies-eu-banner #cookies-eu-more { grid-row: 2; justify-self: start; width: calc((100% - 16px) / 3); background: transparent; border-color: #9cc6c8; color: var(--jm-surface); text-decoration: none; }
#cookies-eu-banner #cookies-eu-reject { background: var(--jm-petrol); color: var(--jm-surface); }
#cookies-eu-banner :is(button, a) { text-transform: none; letter-spacing: normal; font-weight: 700; }
#cookies-eu-banner #cookies-eu-accept { background: var(--jm-mint); color: var(--jm-ink); border-color: var(--jm-mint); }
#cookies-eu-banner :is(a, button):is(:hover, :focus) { border-width: 1px; }
#cookies-eu-banner :is(a, button):focus-visible { outline: 3px solid var(--jm-surface); outline-offset: 3px; }

@media (min-width: 768px) {
    #cookies-eu-banner { grid-template-columns: minmax(0, 1fr) repeat(3, 160px); gap: 12px; padding-inline: 24px; }
    #cookies-eu-banner #cookies-eu-buttons { grid-column: 3 / -1; }
    #cookies-eu-banner #cookies-eu-more { justify-self: end; width: 160px; margin-inline-end: 344px; }
}

@media (max-width: 1100px) {
    .archive #primary .ast-row, .search #primary .ast-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
    .single-post .site #content { display: flow-root; } /* Keep article margins inside its white surface. */
}
@media (max-width: 1023px) {
    .jym-article-layout { display: flex; flex-direction: column; gap: 28px; }
    .entry-content .jym-article-index { position: static; width: 100%; max-height: none; }
    .jym-article-text { width: 100%; margin-inline: auto; }
}
@media (max-width: 921.99px) {
    html:not(.jym-header-measured) #ast-desktop-header { display: none; }
    html:not(.jym-header-measured) #ast-mobile-header { display: block; }
    .wp-block-columns.jym-hero, .wp-block-columns.jym-featured { gap: 28px; }
}
@media (max-width: 781px) {
    .wp-block-columns.jym-hero, .wp-block-columns.jym-featured,
    .jym-query--1 .jym-card { grid-template-columns: minmax(0, 1fr); }
    .wp-block-columns.jym-hero { gap: 20px; padding-block: 28px 16px; }
    .jym-hero .jym-hero-visual { display: block; position: relative; inset: auto; width: 100%; height: auto; aspect-ratio: 2 / 1; clip-path: none; }
    .jym-hero-image { height: auto; }
    .jym-hero-image img { height: auto; aspect-ratio: 2 / 1; object-position: 75% 55%; }
    .jym-hero > .wp-block-column:first-child { padding-right: 0; }
    .entry-content .jym-home .jym-hero h1 { max-width: 23ch; }
    .jym-lead { font-size: 18px; }
    .jym-section { margin-bottom: 40px; }
    .entry-content .jym-notebook { padding: 24px; }
    .jym-query--1 .jym-card { gap: 20px; }
    .wp-block-columns.jym-section-index { gap: 20px; }
    .entry-content .jym-home .jym-section-index h3 { font-size: 22px; }
}
@media (600px < width <= 781px) {
    .jym-hero > .wp-block-column:first-child { position: static; }
    .entry-content .jym-hero-actions { position: absolute; left: 0; bottom: 16px; z-index: 2; display: flex; flex-wrap: nowrap; align-items: center; max-width: 50%; gap: 12px; margin: 0; padding: 12px; border-radius: 0 0 0 8px; background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .7)); }
    .jym-hero-actions > * { flex: 0 0 auto; }
    .entry-content .jym-hero .jym-hero-actions .wp-block-buttons .wp-block-button .wp-block-button__link.wp-element-button,
    .entry-content .jym-hero-actions p a { min-height: 44px; padding: 10px; font-size: 14px; line-height: 1.25; }
    .entry-content .jym-home .jym-hero .jym-hero-actions a:focus-visible { outline: 3px solid var(--jm-surface); outline-offset: 3px; }
    .wp-block-columns.jym-featured { grid-template-columns: minmax(0, .35fr) minmax(0, .65fr); gap: 24px; }
    .jym-featured-image img { aspect-ratio: 3 / 2; object-fit: contain; object-position: center; }
    .entry-content .jym-home .jym-featured h2.wp-block-heading { margin: 0 0 12px; font-size: 26px; }
    .jym-featured p:not(.jym-kicker) { font-size: 16px; }
    .jym-featured .jym-reading-link a { display: inline-flex; align-items: center; min-height: 44px; }
}
@media (max-width: 600px) {
    body { font-size: 17px; }
    .site-header .custom-logo-link img { width: 132px; }
    body .jym-query .wp-block-post-template,
    .wp-block-columns.jym-section-index,
    .archive #primary .ast-row, .search #primary .ast-row { grid-template-columns: minmax(0, 1fr); }
    .entry-content .jym-home .jym-card h3 { font-size: 24px; }
    .entry-content .jym-hero-actions { display: flex; align-items: center; gap: 12px; }
    .jym-hero-actions p, .entry-content .jym-hero-actions p a { width: 100%; }
    .jym-hero-actions .wp-block-buttons, .jym-hero-actions .wp-block-button,
    .jym-hero-actions .wp-block-button__link { width: 100%; }
    .jym-hero-actions .wp-block-button__link { text-align: center; }
    /* Mobile composition trial: controls stay in the photograph's quiet left side. */
    .jym-hero > .wp-block-column:first-child { position: static; }
    .entry-content .jym-hero-actions { position: absolute; left: 0; bottom: 16px; z-index: 2; width: 50%; max-width: 180px; gap: 8px; margin: 0; padding: 12px; border-radius: 0 0 0 8px; background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .7)); }
    .entry-content .jym-hero .jym-hero-actions .wp-block-buttons .wp-block-button .wp-block-button__link.wp-element-button,
    .entry-content .jym-hero-actions p a { min-height: 44px; padding: 8px; font-size: 14px; line-height: 1.25; }
    .entry-content .jym-home .jym-hero .jym-hero-actions a:focus-visible { outline: 3px solid var(--jm-surface); outline-offset: 3px; }
    .wp-block-columns.jym-featured { gap: 20px; padding-block: 24px; }
    .wp-block-columns.jym-featured { grid-template-columns: minmax(0, .35fr) minmax(0, .65fr); gap: 16px; align-items: start; }
    .jym-featured-image img { aspect-ratio: 3 / 2; object-fit: contain; object-position: center; }
    .entry-content .jym-home .jym-featured h2.wp-block-heading { margin: 0 0 8px; font-size: 20px; line-height: 1.2; }
    .entry-content .jym-featured .jym-kicker { margin-bottom: 8px; font-size: 12px; line-height: 1.4; }
    .jym-featured > .wp-block-column:last-child > p:not(.jym-kicker):not(.jym-reading-link) { display: none; }
    .entry-content .jym-featured .jym-reading-link { margin-top: 4px; font-size: 14px; }
    .jym-featured .jym-reading-link a { display: inline-flex; align-items: center; min-height: 44px; }
    .entry-content .jym-section-index > .wp-block-column { display: grid; grid-template-areas: "section"; min-height: 132px; padding: 0; isolation: isolate; border-radius: 8px; }
    .jym-section-index > .wp-block-column::after { display: none; }
    .jym-section-index .jym-section-image { grid-area: section; margin: 0; }
    .jym-section-index .jym-section-image img { height: 132px; aspect-ratio: auto; filter: brightness(.48); }
    .entry-content .jym-home .jym-section-index h3 { grid-area: section; align-self: center; z-index: 1; margin: 0; padding: 16px 20px; max-width: 25ch; }
    .entry-content .jym-home .jym-section-index h3 a { color: var(--jm-surface); }
    .jym-section-index h3 a:focus-visible::after { outline-color: var(--jm-surface); outline-offset: -5px; }
    .jym-section-index p:not(.jym-status) { display: none; }
    .entry-content .jym-section-index .jym-status { grid-area: section; align-self: end; z-index: 1; margin: 0; padding: 0 20px 12px; color: var(--jm-surface); font-size: 14px; }
    .jym-article-text > p:first-of-type { font-size: 18px; }
    .entry-content .jym-article-index { padding: 18px; }
    .entry-content .jym-project-intro { margin-bottom: 32px; padding: 24px; }
    .entry-content .jym-notebook { padding: 20px 16px; }
    body:not(.home) #primary { margin-block: 24px 32px; }
    .single-post .entry-content, .page:not(.home) .entry-content { font-size: 17px; }
    .single-post .ast-single-entry-banner[data-post-type="post"] .ast-container { padding-top: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .jym-home *, .site-header *, #ast-mobile-popup * { transition-duration: 0s; animation-duration: 0s; }
}
