/* One type system across navigation, content and native controls. */
:root { --font-ui: Manrope, Arial, sans-serif; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { font-family: var(--font-ui); font-size: 1rem; }
button, input, select, textarea { font-family: var(--font-ui); }
button, select { touch-action: manipulation; }
h1, h2, h3, h4, .news-title { overflow-wrap: break-word; }
main :where(section, article, figure, div), footer > * { min-width: 0; }
img { max-width: 100%; }
:is(a, button, select, summary):focus-visible { outline: 3px solid #b58c13; outline-offset: 4px; }
.ui-icon { width: 1.25rem; height: 1.25rem; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.topbar nav a, .top-cta { font-size: .9375rem; line-height: 1.45; font-weight: 700; letter-spacing: -.015em; }
.topbar nav { gap: clamp(12px, 1.2vw, 20px); }
.topbar nav a { padding-block: 12px; }
.top-cta { min-height: 44px; display: inline-flex; align-items: center; }
.news-title { font-family: var(--font-ui); font-weight: 800; line-height: 1.16; letter-spacing: -.045em; color: #fff; }
.section-label { line-height: 1.5; }
.section-label .num { flex: 0 0 34px; }
.eyebrow, .section-label, .hero-index, .card-top { font-size: .875rem; }
.section-heading > div { flex: 1 1 0; }
.section-heading > p { flex: 0 1 340px; }
.hero { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
.hero h1 { font-size: clamp(2rem, 4.5vw, 5.25rem); line-height: 1.14; letter-spacing: -.05em; }
.hero-side { padding: clamp(24px, 3vw, 45px); }
.stack-card { gap: 18px; }
.stack-card strong { min-width: 0; overflow-wrap: break-word; }
.ticker { flex-wrap: wrap; white-space: normal; gap: 10px 24px; justify-content: center; overflow: visible; }
.ticker span { white-space: nowrap; }
.ticker i { display: inline; width: auto; height: auto; background: none; transform: none; font-style: normal; }

/* Book covers and labels have separate tracks, including on narrow tablets. */
.level-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.level-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(90px, 38%); grid-template-rows: auto 1fr auto; gap: 12px; padding: clamp(20px, 2vw, 28px); min-height: 245px; }
.level-card .card-top { grid-column: 1 / -1; grid-row: 1; line-height: 1.45; }
.level-card strong, .level-card[data-category="2028-yks"] strong { grid-column: 1; grid-row: 2; max-width: none; margin: 0; align-self: end; font-size: clamp(1.375rem, 1.9vw, 2rem); }
.level-card .level-description { grid-column: 1; grid-row: 3; max-width: none; margin: 0; font-size: .875rem; }
.level-card .level-visual { grid-column: 2; grid-row: 2 / 4; position: relative; right: auto; bottom: auto; align-self: end; width: 100%; height: 155px; max-width: none; }
.level-visual img { height: 145px; }
.cover-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.cover-card { padding: 14px; }
.cover-card img, .cover-open img { height: auto; aspect-ratio: 210 / 297; object-fit: contain; background: transparent; }
.cover-meta { font-size: .875rem; letter-spacing: 0; }
.cover-card strong { font-size: 1.125rem; line-height: 1.4; }
.cover-pages, .cover-spec { font-size: .875rem; line-height: 1.6; }
.cover-link { min-height: 44px; display: flex; align-items: center; font-size: .9375rem; line-height: 1.5; }
.cover-filters button, .set-kinds button, .set-categories button, .schedule-tabs button { min-height: 44px; max-width: 100%; font-size: .9375rem; line-height: 1.5; white-space: normal; }
.cover-filters button { padding: 12px 16px; }
.custom { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.set-grid, .diary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.set-item h3 { line-height: 1.3; }
.set-item p, .set-detail li { font-size: 1rem; line-height: 1.6; }
.set-item small, .diary-grid small { font-size: .9375rem; line-height: 1.5; }
.set-list summary { font-size: 1rem; min-height: 56px; }
.set-detail h4 { font-size: 1rem; line-height: 1.5; }
.set-detail small { white-space: normal; }
.set-showcase-art img { height: auto; max-height: 590px; object-fit: contain; }
.diary-grid img { object-fit: contain; }
.intro .method-grid p, .netron-capabilities p { font-size: 1rem; }
.netron-process { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.netron-process > div { grid-template-columns: auto minmax(0, 1fr); }
.netron-process span, .lab-stats span, .lab-example-grid span { font-size: .9375rem; }
.contact { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); }
.contact .contact-methods :is(a, .contact-email) strong { font-size: 1rem; line-height: 1.5; }
.contact .contact-methods :is(a, .contact-email) { max-width: 100%; }
.dealer-map-title, .dealer-results-heading { flex-wrap: wrap; gap: 10px 20px; }
.dealer-filter select { min-height: 48px; font-size: 1rem; }
.dealer-filter button { min-height: 48px; }
.dealer-filter-controls { min-width: 0; }
.dealer-actions a { min-height: 44px; display: inline-flex; align-items: center; overflow-wrap: anywhere; }
.leaflet-container, .leaflet-popup-content { font-family: var(--font-ui); }
.leaflet-touch .leaflet-bar a { width: 44px; height: 44px; line-height: 44px; }
.schedule-row { grid-template-columns: 170px minmax(0, 1fr) auto; }
.news-slide { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.news-controls { flex-wrap: wrap; }
.news-dots button { width: 44px; height: 44px; }
.news-buttons button { display: inline-flex; align-items: center; justify-content: center; }
#news-pause .play-icon, #news-pause[data-paused="true"] .pause-icon { display: none; }
#news-pause[data-paused="true"] .play-icon { display: block; }
#cover-dialog { width: min(680px, calc(100% - 32px)); max-width: calc(100% - 32px); max-height: calc(100dvh - 32px); padding: 16px; }
#cover-dialog[open] { display: flex; flex-direction: column; gap: 12px; }
#cover-dialog .dialog-close { display: inline-flex; gap: 10px; align-items: center; justify-content: center; flex: none; min-height: 44px; font-size: 1rem; margin: 0 0 0 auto; padding: 10px 14px; }
#cover-dialog img { min-height: 0; max-height: calc(100dvh - 180px); max-width: 100%; flex: 0 1 auto; margin: 0 auto; }
#cover-dialog img[hidden] { display: none; }
#cover-dialog p { flex: none; margin: 0; font-size: .9375rem; overflow-wrap: anywhere; }
footer { flex-wrap: wrap; }
footer a { min-height: 44px; display: inline-flex; align-items: center; }

@media (min-width: 1600px) {
  .cover-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (max-width: 1360px) {
  .topbar nav a { font-size: 1rem; line-height: 1.5; }
  .topbar nav { gap: 0; }
  .set-grid, .diary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .intro { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .method-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  .level-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cover-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .level-card strong { font-size: 1.625rem; }
}
@media (max-width: 1024px) {
  .section { padding: 72px 6vw; }
  .hero { display: block; }
  .hero-main { min-height: 0; padding: 64px 6vw 40px; }
  .hero h1 { font-size: clamp(2rem, 6vw, 4.5rem); }
  .hero-actions { margin-bottom: 32px; }
  .hero-side { min-height: 0; padding: 32px 6vw; }
  .stack-card, .stack-card.stack-four { min-height: 110px; }
  .hero-caption { margin: 12px 0 0; }
  .section-heading { display: block; }
  .section-heading > p { margin-top: 20px; max-width: 680px; }
  .custom, .contact, .set-showcase { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .contact { padding: 64px 6vw; }
  .set-showcase-art img { max-height: 520px; }
  .set-showcase figcaption { padding: 0; }
  .set-list { grid-template-columns: minmax(0, 1fr); }
  .method-grid { grid-template-columns: minmax(0, 1fr); }
  .method-grid > div { min-height: 0; }
  .method-grid h3 { margin-top: 12px; }
  .netron-process { grid-template-columns: minmax(0, 1fr); }
  .netron-process > div { border-right: 0; border-bottom: 1px solid #b59634; }
  .netron-capabilities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lab-intro { grid-template-columns: minmax(0, 1fr); }
  .lab-feature { transform: none; max-width: 660px; width: 100%; }
  .lab-example-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .news-slider { padding-inline: 6vw; }
  .news-slide { grid-template-columns: minmax(0, 1fr); min-height: 0; gap: 28px; padding: 32px 0; }
  .news-copy { padding: 0; max-width: 760px; }
  .news-copy .news-title { font-size: clamp(2rem, 6vw, 3.75rem); margin: 12px 0 20px; }
  .news-copy > p:not(.news-kicker):not(.news-title) { font-size: 1rem; }
  .news-copy .button { margin-top: 8px; }
  .news-art { width: 100%; height: auto; aspect-ratio: 3 / 4; max-height: 520px; }
  .news-art img, .news-art.book img { width: 100%; height: 100%; max-height: 520px; object-fit: contain; filter: none; }
  .news-art.book { padding: 16px; }
  .schedule-row { grid-template-columns: 150px minmax(0, 1fr); gap: 12px 20px; }
  .schedule-status { grid-column: 2; }
}
@media (max-width: 760px) {
  .cover-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .cover-card { padding: 12px; }
  .cover-card strong { font-size: 1rem; }
  .level-card strong { font-size: 1.375rem; }
  .level-card { grid-template-columns: minmax(0, 1fr); }
  .level-card strong, .level-card[data-category="2028-yks"] strong { grid-row: 3; }
  .level-card .level-visual { grid-column: 1; grid-row: 2; width: 130px; justify-self: center; }
  .level-card .level-description { grid-row: 4; }
  .level-card .card-top { font-size: .8125rem; letter-spacing: .06em; }
  .netron-capabilities { grid-template-columns: minmax(0, 1fr); }
  .dealer-filter { flex-direction: column; align-items: stretch; }
  .dealer-filter-controls select { min-width: 0; flex: 1; }
  .dealer-result-grid { grid-template-columns: minmax(0, 1fr); }
  .schedule-row { grid-template-columns: minmax(0, 1fr); }
  .schedule-status { grid-column: 1; }
  .news-controls { gap: 8px; }
  .news-counter { display: none; }
  .news-dots button { width: 44px; }
}
@media (max-width: 550px) {
  .section { padding: 56px 6vw; }
  h2, .contact h2 { font-size: clamp(1.875rem, 7.5vw, 2.5rem); line-height: 1.2; }
  .hero h1 { font-size: clamp(2rem, 8vw, 2.75rem); }
  .hero-main { padding: 48px 6vw 32px; }
  .hero-side { padding: 28px 6vw; }
  .stack-card, .stack-card.stack-four { gap: 12px; padding: 18px; }
  .stack-card strong, .stack-card.stack-four strong { font-size: clamp(1.125rem, 5vw, 1.5rem); }
  .eyebrow, .section-label, .hero-index { letter-spacing: .08em; }
  .level-grid, .set-grid, .diary-grid { grid-template-columns: minmax(0, 1fr); }
  .level-card { grid-template-columns: minmax(0, 1fr) minmax(100px, 38%); min-height: 220px; }
  .level-card strong, .level-card[data-category="2028-yks"] strong { grid-row: 2; font-size: 1.5rem; }
  .level-card .level-visual { grid-column: 2; grid-row: 2 / 4; width: 100%; }
  .level-card .level-description { grid-row: 3; }
  .level-card .card-top { font-size: .875rem; }
  .option { gap: 16px; }
  .set-browser { padding: 20px 16px; }
  .set-list summary { padding: 16px; }
  .set-detail { padding: 0 16px 16px; }
  .set-item { min-height: 240px; }
  .lab-examples { margin-top: 40px; }
  .lab-example-grid { grid-template-columns: minmax(0, 1fr); }
  .contact .contact-methods .whatsapp-contact { width: 100%; }
  footer { gap: 16px; padding-inline: 6vw; }
  footer p { flex-basis: 100%; }
}
@media (max-width: 480px) {
  .news-controls { gap: 4px 12px; }
  .news-counter { display: block; }
  .news-dots { order: 3; flex-basis: 100%; justify-content: center; }
  .dealer-filter-controls { flex-direction: column; }
}
@media (max-width: 420px) {
  .cover-grid { grid-template-columns: minmax(0, 1fr); }
  .cover-card { padding: 18px; }
  .cover-filters button, .set-kinds button { flex: 1 1 100%; }
  .level-card strong, .level-card[data-category="2028-yks"] strong { font-size: 1.375rem; }
}
@media (hover: none) {
  .level-card:hover, .cover-card:hover, .set-item:hover, .stack-card:hover, .diary-grid a:hover, .lab-example-grid a:hover, .calendar-grid a:hover { transform: none; }
}
