/* Shared layout and type scale. Keep navigation styles in style.css. */
:root {
  --content-width: 1240px;
  --content-gutter: max(24px, calc((100vw - 1240px) / 2));
  --section-space: clamp(40px, 5vw, 72px);
}
#contenu { font-size: 16px; line-height: 1.7; }
#contenu :where(section, article, aside, figure, div) { min-width: 0; }
#contenu h1 { font-size: clamp(2.125rem, 4.2vw, 3.5rem); line-height: 1.12; letter-spacing: -.025em; max-width: 24ch; text-wrap: balance; }
#contenu h2 { font-size: clamp(1.75rem, 2.8vw, 2.5rem); line-height: 1.18; letter-spacing: -.02em; text-wrap: balance; }
#contenu h3 { font-size: clamp(1.3rem, 1.8vw, 1.6rem); line-height: 1.25; }
#contenu p:not(.kicker):not(.eyebrow):not(.record-kind):not(.guide-byline):not(.guide-correction) { font-size: 1rem !important; line-height: 1.7; }
#contenu .lead { max-width: 68ch; font-size: 1.125rem !important; line-height: 1.7; }
#contenu :is(.kicker, .eyebrow) { font-size: .75rem; line-height: 1.5; letter-spacing: .12em; }
#contenu :is(dd, dt, td, th, small, figcaption, .fineprint, .guide-byline, .record-kind, .record-note, .record-domain) { font-size: .875rem !important; line-height: 1.55; }
#contenu :is(.guide-prose, .learning-prose, .verification-panel, .rule-risk-callout, .signals, .checklist, .learning-intro) li { font-size: 1rem; line-height: 1.7; }
#contenu .application-check li { font-size: .875rem; line-height: 1.6; }
#contenu a { overflow-wrap: anywhere; }
#contenu .text-link { max-width: 100%; white-space: normal; font-size: .875rem; letter-spacing: .035em; line-height: 1.5; }
#contenu .text-link svg { flex-shrink: 0; }
#contenu .button { max-width: 100%; font-size: .875rem; letter-spacing: .045em; line-height: 1.45; white-space: normal; }
#contenu :is(.status, .tags span, .record-kind, .record-kind .department-badge, .department-badge) { font-size: .75rem !important; line-height: 1.5; letter-spacing: .035em; white-space: normal; }
.section, .editorial-feature, .safety-grid, .method-grid, .safety-callout { padding: var(--section-space) var(--content-gutter); }
.section.compact { padding-top: 32px; padding-bottom: 40px; }
.section-head { margin-bottom: 28px; gap: 24px; align-items: flex-start; }
.section-head > div { max-width: 850px; }
.section-head > .text-link { flex-shrink: 0; }
.page-hero { padding: clamp(40px, 5vw, 64px) var(--content-gutter); }
.page-hero::after { font-size: 12rem; right: var(--content-gutter); }
.page-hero h1 { margin-bottom: 20px; }
.page-hero p:last-child { margin-bottom: 0; }
.breadcrumbs { padding: 12px var(--content-gutter); font-size: .875rem; line-height: 1.5; flex-wrap: wrap; }
.breadcrumbs span:last-child { white-space: normal; overflow-wrap: anywhere; }
.hero, .hero-inner, .hero-copy, .hero-art { min-height: 560px; }
.hero-copy { width: min(850px, 72vw); padding: 64px 24px 64px var(--content-gutter); }
.risk-ribbon { font-size: .8125rem; line-height: 1.5; }
.hero-copy::before { margin-bottom: 24px; }
.hero-inner { z-index: auto; }
.hero-art { z-index: 0; }
.hero::after { background: linear-gradient(90deg, rgba(3,16,12,.9) 0%, rgba(3,16,12,.78) 46%, rgba(3,16,12,.25) 78%); }
.editorial-figure img[src*="photos/desk-books"], .guide-cover img[src*="photos/desk-books"] { object-position: center 72%; }
@media(max-width:720px) { .hero::after { background: linear-gradient(180deg,rgba(3,16,12,.75),rgba(3,16,12,.88)); } }
.hero .float-card { display: none; }
.hero h1 { max-width: 23ch; }
.hero .actions { flex-wrap: wrap; }
.freshness, .trust-bar small { font-size: .875rem; line-height: 1.5; }
.editorial-figure { width: calc(100% - 2 * var(--content-gutter)); max-width: var(--content-width); margin: 28px auto; background: var(--paper); border: 1px solid var(--line); }
.editorial-figure img, .editorial-figure img[src*="editorial-directory"], .guide-cover img { display: block; width: 100%; height: clamp(220px, 26vw, 360px); aspect-ratio: auto; object-fit: cover; border: 0; filter: none; }
.editorial-figure figcaption { padding: 12px 18px; color: #4b5b52; background: var(--paper); }
.editorial-feature { gap: 40px; }
.editorial-feature figure { padding: 0; }
.editorial-feature figure::before { display: none; }
.editorial-feature img { height: 340px; border-radius: 4px; filter: none; }
.editorial-copy-grid, .principle-grid, .brand-grid, .job-family-grid, .employment-rules, .job-directory-grid, .destination-grid, .operator-grid { gap: 20px; }
.editorial-copy-grid article, .principle-grid article, .job-family-card, .employment-rules article, .directory-card, .legal-notice article { padding: 24px; }
#contenu :is(.editorial-copy-grid, .game-grid, .legal-grid, .glossary-grid, .guide-card, .destination-card, .operator-card, .country-authority-grid, .job-family-card, .directory-card, .help-action-grid, .principle-grid, .legality-card) :is(h2, h3) { font-size: 1.5rem; line-height: 1.25; }
.destination-card { min-height: 0; box-shadow: none; display: flex; flex-direction: column; }
.destination-visual { height: 220px; flex-shrink: 0; }
.destination-visual > span { font-size: 4rem; bottom: -10px; }
.destination-card > div:last-child { padding: 24px; display: flex; flex-direction: column; flex: 1; }
.destination-card .destination-country-link { margin-top: auto; padding-top: 16px; }
.casino-record, .global-record, .operator-card, .guide-card, .game-grid article, .help-action-grid article, .journey-card, .journey-card__body, .country-authority-grid article, .online-product-card, .directory-card { min-height: 0; }
.global-record, .casino-record { padding: 24px; contain-intrinsic-size: auto 450px; }
.global-record dl div { grid-template-columns: 105px minmax(0, 1fr); font-size: .875rem; }
.global-record footer span, .casino-record footer, .operator-card footer { font-size: .875rem; line-height: 1.5; }
.global-record footer a, .casino-brand-link { font-size: .875rem; line-height: 1.5; }
.global-record header { flex-wrap: wrap; }
.global-directory-toolbar { position: static; box-shadow: none; grid-template-columns: minmax(220px, 1.4fr) repeat(3, minmax(140px, 1fr)); }
.global-directory-toolbar .directory-reset { grid-column: 1 / -1; justify-self: start; }
.directory-toolbar input, .directory-toolbar select, .directory-reset { font-size: 1rem; }
.directory-toolbar label > span { font-size: .875rem; letter-spacing: .025em; }
.directory-jump, .directory-jump-four { gap: 12px; margin-block: 24px; }
.directory-overview, .directory-overview-global { margin-bottom: 32px; }
.directory-overview-global { width: calc(100% - 2 * var(--content-gutter)); }
.directory-overview span { font-size: .875rem; letter-spacing: .025em; }
.home-answer { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; padding: var(--section-space) var(--content-gutter); }
.legality-card { min-height: 0; padding: 24px 24px 24px 80px; }
.legality-card li { font-size: .875rem; }
.journey-grid { gap: 16px; border: 0; background: transparent; }
.journey-card { border: 1px solid var(--line); }
.journey-card__body { padding: 24px; }
.journey-card strong { font-size: .875rem; letter-spacing: .035em; }
.job-hero { grid-template-columns: minmax(0, 1.4fr) minmax(260px, .6fr); gap: 40px; align-items: center; }
.job-hero-facts { color: var(--ink); }
.job-family-card h3 { max-width: 100%; padding-right: 30px; }
.job-family-card__image { height: 240px; aspect-ratio: auto; }
.job-family-card dl > div { grid-template-columns: 100px minmax(0, 1fr); }
.job-jump a, .job-jump strong { font-size: .875rem; line-height: 1.5; }
.training-paths article { grid-template-columns: 55px minmax(0, 1fr); }
.guide-entry-grid { width: calc(100% - 2 * var(--content-gutter)); margin: 40px auto; }
.guide-entry-grid > a { min-height: 320px; }
.guide-entry-grid strong { font-size: 2rem; line-height: 1.2; }
.guide-entry-grid em { font-size: .875rem; letter-spacing: .035em; }
.guide-promo { width: calc(100% - 2 * var(--content-gutter)); margin: 32px auto; padding: 28px; gap: 28px; }
.guide-card { padding-bottom: 24px; }
.guide-card-image { height: 180px; }
.guide-card > :is(.kicker, h2, p, small, .text-link) { margin-left: 24px; margin-right: 24px; }
.guide-card > .text-link { width: auto; }
.guide-card > p:not(.kicker) { display: block; -webkit-line-clamp: unset; overflow: visible; }
.guide-fact-strip, .rule-facts { margin-bottom: 32px; }
.guide-fact-strip article, .rule-facts article { min-height: 0; padding: 20px; }
.guide-fact-strip span, .rule-facts span { font-size: .875rem; letter-spacing: .025em; }
.guide-prose { max-width: 850px; }
.guide-prose > section { padding: 28px 0; }
.guide-prose > section p:not(.kicker) { font-family: var(--sans); }
.rule-sequence, .rule-reference { margin-bottom: 40px; }
.rule-sequence li { grid-template-columns: 50px minmax(0, 1fr); gap: 20px; padding: 24px 0; }
.rule-prose > section:first-of-type { padding-top: 28px; }
.verification-panel, .rule-reference, .rule-risk-callout { padding: 28px; gap: 28px; margin-top: 32px; }
.official-source-panel { margin-top: 40px; padding-top: 28px; }
.official-source-panel a { font-size: 1rem; min-height: 70px; }
.related-guides > .section-head, .related-guides > .related-guide-grid { width: 100%; }
.related-guide-grid a { min-height: 90px; padding: 18px; gap: 12px; }
.related-guide-grid strong { font-size: 1.25rem; }
.prose { margin-top: 32px; }
.prose > h2 { margin-top: 32px; }
.prose > p, .learning-prose p, .learning-next p, .learning-intro > p { max-width: 75ch; }
.learning-prose > section { padding-block: 28px; }
.learning-intro { gap: 32px; }
.learning-table-wrap, .table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.learning-table-wrap th, .learning-table-wrap td, .rule-reference th, .rule-reference td { padding: 16px; font-size: 1rem !important; text-transform: none; letter-spacing: 0; }
.home-faq summary, .editorial-faq summary, .employment-faq summary { font-size: 1.125rem; line-height: 1.45; }
.home-faq details p, .editorial-faq details p { padding: 0 24px 24px; }
.support-number { font-size: clamp(1.6rem, 3vw, 2.5rem); overflow-wrap: anywhere; }
.global-help-inner { width: calc(100% - 2 * var(--content-gutter)); padding-block: 40px; }
.global-help h2 { font-size: clamp(1.75rem, 2.8vw, 2.5rem); line-height: 1.18; }
.global-help-grid article { min-height: 0; padding: 24px; }
.global-help-grid p, .global-help header > p:last-child, .global-help-country { font-size: .9375rem; }
.global-help-grid small, .global-help-grid .help-source { font-size: .875rem; }
.footer-inner { max-width: 1240px; width: calc(100% - 2 * var(--content-gutter)); }
.footer-grid { grid-template-columns: 1.2fr 1fr 1fr; gap: 40px; }
.footer-grid > div:first-child { grid-column: auto; }
.footer-grid > div > p, .footer-grid > div:not(:first-child) a { font-size: .9375rem; line-height: 1.65; }
.footer-grid h2, .footer-bottom { font-size: .875rem; line-height: 1.6; }
.site-header .header-inner[data-logo-host], .site-header .header-inner[data-logo-wrap] { flex-wrap: nowrap !important; }
.page-a-propos .editorial-copy-grid::before, section.section.compact.prose:has(a[href*="methodologie"]) + .section .editorial-copy-grid::before { display: none; }
@media (max-width: 1100px) {
  .job-hero, .home-answer, .editorial-feature, .safety-grid, .method-grid, .safety-callout { grid-template-columns: 1fr; gap: 32px; }
  .home-legality-map { grid-template-columns: 1fr; }
  .legality-symbol { top: 24px; }
  .global-directory-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .global-record-grid, .casino-record-grid, .guide-card-grid, .guide-card-grid:not(.game-guide-grid), .game-guide-grid, .journey-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  :root { --content-gutter: 20px; --section-space: 40px; }
  #contenu h1 { font-size: clamp(2rem, 8.5vw, 2.625rem); }
  #contenu h2 { font-size: 1.75rem; }
  #contenu .lead { font-size: 1.0625rem !important; }
  .hero, .hero-inner, .hero-copy, .hero-art { min-height: 0; }
  .hero-copy { width: 100%; max-width: none; padding: 48px 20px; justify-content: center; }
  .hero-art { height: 100%; }
  .hero h1 > span { font-size: .75rem; }
  .editorial-figure { margin-block: 24px; }
  .editorial-figure img, .editorial-figure img[src*="editorial-directory"], .guide-cover img { height: 220px; }
  .editorial-feature img { height: 260px; }
  .page-hero { padding-block: 36px; }
  .section.compact { padding-block: 28px; }
  .section-head { flex-direction: column; margin-bottom: 24px; gap: 16px; }
  .destination-visual { height: 210px; }
  .destination-card > div:last-child, .editorial-copy-grid article, .job-family-card, .casino-record, .global-record { padding: 20px; }
  .global-directory-toolbar, .directory-toolbar, .destination-toolbar, .guide-card-grid, .guide-card-grid:not(.game-guide-grid), .game-guide-grid, .global-record-grid, .casino-record-grid, .journey-grid, .directory-jump-four, .directory-jump, .guide-entry-grid, .help-action-grid, .footer-grid, .related-guide-grid, .country-authority-grid { grid-template-columns: minmax(0, 1fr); }
  .global-directory-toolbar .directory-reset { justify-self: stretch; }
  .global-record dl div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .global-record dd { text-align: left; }
  .guide-entry-grid > a { min-height: 280px; }
  .guide-promo { grid-template-columns: 1fr; padding: 24px 20px; }
  .guide-fact-strip, .rule-facts { grid-template-columns: minmax(0, 1fr); margin-bottom: 28px; }
  .guide-fact-strip article, .rule-facts article { min-height: 0; padding: 16px; }
  .guide-toc ul { gap: 0; }
  .rule-reference, .verification-panel, .rule-risk-callout { padding: 24px 20px; }
  .rule-sequence li { grid-template-columns: 36px minmax(0, 1fr); gap: 12px; }
  .job-family-card__image { height: 200px; }
  .job-family-card dl > div { grid-template-columns: 1fr; gap: 4px; }
  .job-family-card h3 { padding-right: 0; }
  .job-family-index { display: none; }
  .training-paths article { grid-template-columns: 1fr; }
  .global-help-grid { grid-template-columns: minmax(0, 1fr); }
  .footer-grid > div:first-child { grid-column: auto; }
  .home-answer-actions, .actions, .support-actions { flex-wrap: wrap; }
}
@media (max-width: 480px) {
  .site-header .logo small[data-logo-line] { display: none !important; }
  .site-header .logo[data-logo-balanced] { min-width: 0 !important; }
}
.photo-credit{display:inline;font-size:14px;line-height:1.6}.photo-credit a{color:inherit;text-underline-offset:3px}.photo-library{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.photo-library-card{border:1px solid var(--line);background:var(--paper);overflow:hidden;border-radius:12px}.photo-library-card>img{width:100%;height:210px;object-fit:cover}.photo-library-card>div{padding:20px}.photo-library-card h2{font-size:22px!important}.photo-library-card p{margin:12px 0}.glossary-intro,.country-verification-panel,.rule-callout{background-image:none!important}@media(max-width:1000px){.photo-library{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.photo-library{grid-template-columns:1fr}}
.practical-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.practical-guide-card{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.practical-guide-card>img{width:100%;height:210px;object-fit:cover}.practical-guide-card>div{padding:24px}.practical-guide-card h3{font-size:23px;line-height:1.3;margin:0 0 16px}.practical-guide-card h3 a{color:inherit;text-decoration:none}.practical-guide-card h3 a:hover{text-decoration:underline}.practical-guide-card p{margin:0 0 20px}.destination-country-link{display:block;margin-top:12px}@media(max-width:1000px){.practical-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.practical-guide-grid{grid-template-columns:1fr}}
.journey-card__media,.journey-card__media img,.journey-card-media,.journey-card-media img{height:200px!important;aspect-ratio:auto!important;object-fit:cover}.learning-intro{display:block!important}.learning-intro nav{max-width:1000px}.learning-intro ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 32px;padding-left:24px}#contenu .job-application li{font-size:14px!important}@media(max-width:700px){.learning-intro ol{grid-template-columns:1fr}}
