/* Identità condivisa Training On For Life: pagina iniziale e ambienti di studio. */
:root {
  --tfl-ivory: #f7f1e7;
  --tfl-paper: #fcf9f3;
  --tfl-sand: #e8dbc9;
  --tfl-ink: #2e302e;
  --tfl-muted: #747169;
  --tfl-plum: #4f293d;
  --tfl-plum-dark: #39202d;
  --tfl-copper: #a47146;
  --tfl-line: #e5ddcf;
  --tfl-serif: Georgia, "Times New Roman", serif;
  --tfl-header-height: 96px;
}

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--tfl-header-height) + 25px); }
.tfl-platform { margin: 0; min-width: 320px; color: var(--tfl-ink); background: var(--tfl-ivory); font-family: Arial, Helvetica, sans-serif; font-size: 16px; line-height: 1.6; }
.tfl-platform *, .tfl-header *, .tfl-footer * { box-sizing: border-box; }
.tfl-platform [hidden] { display: none !important; }
.tfl-platform a { color: inherit; }
.tfl-platform img { display: block; max-width: 100%; }
.tfl-platform h1, .tfl-platform h2, .tfl-platform h3 { font-family: var(--tfl-serif); font-weight: 400; line-height: 1.16; }
.tfl-platform h2 { margin: 12px 0 20px; font-size: clamp(31px, 3.2vw, 46px); letter-spacing: -.035em; }
.tfl-platform h3 { letter-spacing: -.025em; }
.tfl-platform em { font-weight: 400; }
.tfl-platform button, .tfl-platform input, .tfl-platform select { font: inherit; }
.tfl-platform a:focus-visible, .tfl-header a:focus-visible, .tfl-header button:focus-visible, .tfl-footer a:focus-visible { outline: 2px solid var(--tfl-copper); outline-offset: 6px; }
.tfl-skip-link { position: fixed; top: -80px; left: 20px; z-index: 250; padding: 12px 20px; border-radius: 6px; color: white !important; background: var(--tfl-plum); }
.tfl-skip-link:focus { top: 12px; }
.tfl-container { width: min(1240px, calc(100% - 104px)); margin-inline: auto; }
[data-platform-header] { position: sticky; top: 0; z-index: 100; }
.tfl-header { position: sticky; top: 0; z-index: 100; width: 100%; background: rgba(247,241,231,.97); border-bottom: 1px solid rgba(151,125,90,.12); color: var(--tfl-ink); font-family: Arial, Helvetica, sans-serif; }
.tfl-header-inner { height: var(--tfl-header-height); display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.tfl-brand { display: inline-flex; align-items: center; flex-shrink: 0; text-decoration: none; }
.tfl-brand img { display: block; width: 239px; height: auto; mix-blend-mode: darken; }
.tfl-navigation { display: flex; align-items: center; justify-content: flex-end; gap: 30px; margin-left: auto; }
.tfl-navigation a { color: var(--tfl-ink); text-decoration: none; text-transform: uppercase; font-size: 11px; letter-spacing: .11em; font-weight: 500; white-space: nowrap; padding: 14px 0; position: relative; }
.tfl-navigation a::after { content: ""; position: absolute; height: 1px; background: var(--tfl-plum); left: 0; right: 100%; bottom: 6px; transition: right .18s ease; }
.tfl-navigation a:hover::after, .tfl-navigation a[aria-current]::after { right: 0; }
.tfl-study-link { display: flex; align-items: center; gap: 12px; border: 1px solid #ccbcad; border-radius: 24px; padding: 10px 17px; font-size: 11px; letter-spacing: .02em; text-decoration: none; color: var(--tfl-plum) !important; white-space: nowrap; }
.tfl-study-link:hover { background: #f0e5d8; }
.tfl-menu-toggle { display: none; }
.tfl-home-hero { position: relative; min-height: 628px; isolation: isolate; overflow: hidden; background: radial-gradient(ellipse at 12% 20%, #fffaf2, transparent 64%), var(--tfl-ivory); }
.tfl-hero-content { position: relative; z-index: 2; padding-block: 65px 72px; pointer-events: none; }
.tfl-hero-content a { pointer-events: auto; }
.tfl-eyebrow { text-transform: uppercase; font-family: Arial, Helvetica, sans-serif; font-size: 10px; font-weight: 500; letter-spacing: .17em; color: var(--tfl-copper); line-height: 1.7; margin: 0 0 16px; }
.tfl-home-hero h1 { font-size: clamp(48px, 5vw, 72px); letter-spacing: -.044em; line-height: 1.04; margin: 0 0 26px; max-width: 700px; color: #2e302e; }
.tfl-home-hero h1 em { font-style: normal; }
.tfl-hero-description { color: #736c62; font-size: 14px; line-height: 1.85; margin-bottom: 28px; max-width: 500px; }
.tfl-button { display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 44px; padding: 12px 24px; border-radius: 28px; background: var(--tfl-plum); color: #fffaf2 !important; text-decoration: none; font-size: 12px; letter-spacing: .025em; border: 1px solid transparent; transition: background .18s ease, transform .18s ease; }
.tfl-button:hover { background: var(--tfl-plum-dark); transform: translateY(-2px); }
.tfl-button span { font-size: 20px; font-weight: 300; line-height: 1; }
.tfl-hero-art { position: absolute; z-index: 0; inset: 0 0 0 42%; background: linear-gradient(140deg, #aa9076 0%, #dac6a9 35%, #eadfca 68%, #c6ae90 100%); clip-path: polygon(35% 0, 100% 0, 100% 100%, 0 100%); }
.tfl-architecture { position: absolute; inset: 0; overflow: hidden; background: radial-gradient(ellipse at 68% 50%, #fbf4df77, transparent 65%); }
.tfl-arch { position: absolute; width: 42%; height: 66%; right: 7%; bottom: 9%; border: 13px solid #f8f0dc; border-bottom-width: 0; border-radius: 250px 250px 0 0; background: linear-gradient(180deg, #eee2cc 0%, #faf0d9 49%, #d8c7ad 50%, #b5a189 63%, #f0e5d0 64%, #eee1ca 100%); box-shadow: 16px 9px 30px #6e553126, inset 7px 3px 18px #96764529; }
.tfl-arch::before { content: ""; position: absolute; width: 150%; height: 27%; bottom: 24%; left: -20%; background: #b6a38b; clip-path: polygon(0 80%, 28% 50%, 46% 69%, 65% 0, 100% 44%, 100% 100%, 0 100%); opacity: .65; }
.tfl-column { position: absolute; height: 45%; width: 20px; bottom: 11%; left: 31%; background: linear-gradient(90deg, #c4af90, #f5ebd5 48%, #e5d5b9); box-shadow: 34px 0 0 #e5d5ba, 68px 0 0 #d9c6a8; opacity: .85; }
.tfl-floor { position: absolute; bottom: -45px; width: 110%; height: 150px; background: repeating-linear-gradient(0deg, #bba38244 0 2px, transparent 2px 36px), linear-gradient(180deg, #f2e7d2bb, #a68d6d44); transform: perspective(220px) rotateX(40deg); transform-origin: bottom; }
.tfl-hero-emblem { position: absolute; width: min(470px, 63%); aspect-ratio: 1.28; top: 8%; right: 12%; overflow: hidden; z-index: 2; mix-blend-mode: darken; }
.tfl-hero-emblem img { position: absolute; width: 190%; max-width: none; height: auto; left: -45%; top: -3%; }
.tfl-hero-caption { position: absolute; z-index: 2; bottom: 26px; right: max(52px, calc((100vw - 1240px)/2)); font-size: 9px; color: #594735; letter-spacing: .12em; text-transform: uppercase; }
.tfl-introduction { display: grid; grid-template-columns: 1.25fr 1fr; gap: 80px; align-items: center; padding-block: 93px 48px; }
.tfl-introduction > p { margin: 24px 0 0; font-size: 14px; color: var(--tfl-muted); line-height: 1.95; max-width: 500px; }
.tfl-introduction h2 { font-size: clamp(30px, 3vw, 42px); }
.tfl-method { display: grid; grid-template-columns: repeat(3, 1fr); gap: 52px; padding-block: 10px 90px; }
.tfl-method article { position: relative; border-top: 1px solid #cdbda8; padding: 28px 0 0; }
.tfl-step-number { font-family: var(--tfl-serif); font-size: 18px; color: #ac9071; }
.tfl-method h3 { font-size: 28px; margin: 10px 0 14px; }
.tfl-method p { font-size: 13px; line-height: 1.9; color: var(--tfl-muted); max-width: 320px; }
.tfl-method-word { font-size: 9px; color: var(--tfl-copper); text-transform: uppercase; letter-spacing: .18em; }
.tfl-course-section { padding-block: 80px 90px; background: #eee5d8; border-block: 1px solid #e5d9c7; }
.tfl-section-heading { display: flex; justify-content: space-between; gap: 40px; align-items: end; margin-bottom: 35px; }
.tfl-section-heading h2 { margin-bottom: 0; }
.tfl-section-heading > p { color: var(--tfl-muted); font-size: 13px; line-height: 1.85; margin: 0 0 5px; }
.tfl-featured-course { display: grid; grid-template-columns: 1fr 1fr; background: var(--tfl-paper); border: 1px solid #e3d7c5; overflow: hidden; }
.tfl-course-art { min-height: 470px; display: block; position: relative; overflow: hidden; background: radial-gradient(ellipse at 40% 20%, #eee3cd, transparent 70%), #bfaa8c; }
.tfl-course-arch { position: absolute; width: 73%; height: 86%; left: 13%; bottom: -12%; border-radius: 240px 240px 0 0; border: 2px solid #f4ecd580; background: linear-gradient(160deg, #ddcdb1, #d4bfa0 60%, #a28b70); box-shadow: 0 0 0 13px #f6ecd533; }
.tfl-course-card { position: absolute; width: 28%; height: auto; max-height: 290px; object-fit: contain; filter: drop-shadow(0 15px 14px #493d3160); top: 19%; transition: transform .25s ease; }
.tfl-card-left { left: 23%; transform: rotate(-13deg); }
.tfl-card-right { left: 48%; transform: rotate(10deg); }
.tfl-course-art:hover .tfl-card-left { transform: rotate(-17deg) translateY(-7px); }
.tfl-course-art:hover .tfl-card-right { transform: rotate(14deg) translateY(-7px); }
.tfl-art-label { position: absolute; bottom: 30px; left: 0; right: 0; text-align: center; font-size: 9px; letter-spacing: .18em; text-transform: uppercase; color: #4e4337; }
.tfl-course-copy { padding: 52px 50px; align-self: center; }
.tfl-course-copy h3 { font-size: clamp(36px, 3.5vw, 49px); margin: 10px 0 22px; }
.tfl-course-copy > p:not(.tfl-eyebrow) { color: var(--tfl-muted); font-size: 14px; line-height: 1.9; }
.tfl-course-facts { display: flex; flex-wrap: wrap; list-style: none; padding: 0; margin: 25px 0; gap: 9px 18px; font-size: 10px; letter-spacing: .04em; color: #706457; }
.tfl-course-facts li:not(:last-child)::after { content: "·"; padding-left: 18px; color: #a98b64; }
.tfl-text-link { display: inline-block; text-decoration: none; color: var(--tfl-plum) !important; border-bottom: 1px solid #b9a395; font-size: 12px; padding-bottom: 4px; line-height: 1.7; }
.tfl-text-link span { margin-left: 12px; }
.tfl-course-copy .tfl-text-link { display: table; margin-top: 22px; }
.tfl-resources { padding-block: 88px 92px; }
.tfl-resource-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.tfl-resource { display: flex; flex-direction: column; text-decoration: none; border: 1px solid #dfd4c4; padding: 29px 26px; min-height: 260px; background: #fbf7ef; transition: border-color .2s ease, transform .2s ease; }
.tfl-resource:hover { border-color: var(--tfl-copper); transform: translateY(-4px); }
.tfl-resource-type { font-size: 9px; text-transform: uppercase; letter-spacing: .1em; color: var(--tfl-copper); }
.tfl-resource h3 { font-size: 26px; margin: 24px 0 12px; }
.tfl-resource p { font-size: 13px; color: var(--tfl-muted); line-height: 1.9; margin-bottom: 28px; }
.tfl-resource-action { display: flex; justify-content: space-between; margin-top: auto; font-size: 11px; color: var(--tfl-plum); }
.tfl-about { background: #efe6d9; padding-block: 70px; }
.tfl-about-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 100px; align-items: center; }
.tfl-about-brand img { width: 100%; height: auto; mix-blend-mode: multiply; }
.tfl-about p:not(.tfl-eyebrow) { max-width: 500px; font-size: 14px; line-height: 1.95; color: var(--tfl-muted); }
.tfl-about .tfl-text-link { margin-top: 15px; }
.tfl-footer { color: #655c54; background: #f8f2e8; border-top: 1px solid #e0d3c0; font-family: Arial, Helvetica, sans-serif; }
.tfl-footer-main { display: grid; grid-template-columns: 1.4fr .7fr 1fr; gap: 65px; padding-block: 55px 45px; }
.tfl-footer-main .tfl-brand img { width: 245px; }
.tfl-footer p { font-size: 12px; line-height: 1.9; margin-top: 16px; }
.tfl-footer .tfl-footer-label { font-size: 10px; color: var(--tfl-plum); text-transform: uppercase; letter-spacing: .12em; margin-top: 10px; margin-bottom: 20px; }
.tfl-footer nav a { display: table; margin: 9px 0; font-size: 12px; }
.tfl-footer a { color: #655c54; text-decoration: none; }
.tfl-footer a:hover { color: var(--tfl-plum); }
.tfl-footer-main > div > a:not(.tfl-brand) { font-size: 13px; }
.tfl-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid #e4d9c7; padding-block: 20px; font-size: 9px; letter-spacing: .08em; }
.tfl-resource-hero { padding-block: 55px 45px; border-bottom: 1px solid var(--tfl-line); background: linear-gradient(120deg, #fbf7ef, #eaddc8); }
.tfl-resource-hero h1 { font-size: clamp(38px, 4vw, 58px); margin: 14px 0 20px; letter-spacing: -.04em; }
.tfl-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; font-size: 11px; color: var(--tfl-muted); }
.tfl-breadcrumb a { text-decoration: none; }
.tfl-resource-actions { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; }
.tfl-document { max-width: 900px; padding-block: 45px 70px; }
.tfl-document h2 { font-size: 32px; padding-top: 16px; margin-top: 24px; }
.tfl-document h3 { font-size: 25px; margin-top: 28px; }
.tfl-document p, .tfl-document li { font-size: 15px; line-height: 1.95; }
.tfl-document li { padding-bottom: 6px; }
.tfl-document a { color: var(--tfl-plum); text-underline-offset: 4px; }
.tfl-document pre { overflow: auto; padding: 22px; background: #eee5d6; border: 1px solid var(--tfl-line); font-size: 12px; line-height: 1.9; }
.tfl-document code { font-size: .87em; overflow-wrap: anywhere; }
.tfl-document img { max-height: 340px; object-fit: contain; margin-block: 20px; }
.tfl-table-wrap { overflow-x: auto; margin: 20px 0; }
.tfl-document table { width: 100%; min-width: 550px; border-collapse: collapse; text-align: left; font-size: 13px; line-height: 1.7; }
.tfl-document th { background: #ece1d0; font-weight: 600; }
.tfl-document td, .tfl-document th { border: 1px solid #e0d3bf; padding: 12px 14px; vertical-align: top; }

/* La stessa identità si estende all'app didattica, senza cambiare contenuti o progressi. */
body[data-platform-page="course"] { --paper: var(--tfl-ivory); --panel: var(--tfl-paper); --ink: var(--tfl-ink); --muted: var(--tfl-muted); --line: var(--tfl-line); --teal: var(--tfl-plum); --gold: var(--tfl-copper); background: var(--tfl-ivory); }
body[data-platform-page="course"] > [data-platform-header] { position: sticky; top: 0; z-index: 100; }
body[data-platform-page="course"] .app-shell { min-height: calc(100vh - var(--tfl-header-height)); }
body[data-platform-page="course"] .sidebar { top: var(--tfl-header-height); height: calc(100vh - var(--tfl-header-height)); background: #f0e9dd; border-color: #e4d8c7; }
body[data-platform-page="course"] .brand-mark { background: transparent; border-radius: 0; }
body[data-platform-page="course"] .brand-mark img { width: 40px; height: 40px; object-fit: contain; }
body[data-platform-page="course"] .brand span { color: #897560; }
body[data-platform-page="course"] .topbar { top: var(--tfl-header-height); background: rgba(250,246,238,.98); border-color: #e2d7c7; }
body[data-platform-page="course"] .module-button.is-active { border-color: #c9b7b9; background: #fcf8f1; }
body[data-platform-page="course"] .primary-action { background: var(--tfl-plum); border-color: var(--tfl-plum); border-radius: 24px; }
body[data-platform-page="course"] .primary-action:hover { background: var(--tfl-plum-dark); }
body[data-platform-page="course"] .secondary-action { border-radius: 24px; background: #fcf8f1; }
body[data-platform-page="course"] .secondary-action:hover { background: #f1e7db; border-color: #c5afa2; }
body[data-platform-page="course"] .hero-panel { position: relative; isolation: isolate; overflow: hidden; grid-template-columns: minmax(0,1fr) 125px; background: #eee0cd; border: 1px solid #e4d4bf; border-radius: 2px; padding: 36px; gap: 30px; }
body[data-platform-page="course"] .hero-panel::before { content: ""; position: absolute; z-index: -1; inset: 0; background: #f9f3e9; clip-path: polygon(0 0, 85% 0, 54% 100%, 0 100%); }
body[data-platform-page="course"] .hero-copy { grid-column: 1; grid-row: 1; }
body[data-platform-page="course"] .hero-panel > img { grid-column: 2; grid-row: 1; width: 100px; height: 165px; filter: drop-shadow(0 9px 12px #7d654b35); justify-self: center; transform: rotate(5deg); }
body[data-platform-page="course"] .hero-copy h1 { color: var(--tfl-ink); font-size: clamp(2rem, 3.2vw, 3.2rem); letter-spacing: -.025em; }
body[data-platform-page="course"] .hero-copy .eyebrow { color: var(--tfl-copper); }
body[data-platform-page="course"] .hero-copy p:last-child { color: #766858; }
body[data-platform-page="course"] .path-practice-card { background: #eee1d7; }
body[data-platform-page="course"] .resume-card, body[data-platform-page="course"] .path-practice-card, body[data-platform-page="course"] .path-review, body[data-platform-page="course"] .path-module { border-radius: 4px; box-shadow: none; }
body[data-platform-page="course"] .study-panel { background: #f0e7db; border-radius: 4px; }
body[data-platform-page="course"] .lesson-pane, body[data-platform-page="course"] .practice-box { border-radius: 4px; box-shadow: 0 4px 20px #634f3706; }
body[data-platform-page="course"] .teaching-grid section { background: #f3ecdf; }
body[data-platform-page="course"] .case-question { background: #f4eadb; }
body[data-platform-page="course"] .spread-conclusion { background: #f1e7df; border-left-color: var(--tfl-plum); border-radius: 3px; }
body[data-platform-page="course"] .lab-combination strong { color: var(--tfl-plum); }
body[data-platform-page="course"] .path-module-progress progress { background: #e7ddce; }
body[data-platform-page="course"] .empty-state { background: #f3ecdf; }
body[data-platform-page="course"] .journal-panel, body[data-platform-page="course"] .memory-disclosure { border-radius: 4px; }

@media (min-width: 1600px) {
  .tfl-home-hero { min-height: 700px; }
  .tfl-hero-content { padding-block: 85px; }
  .tfl-hero-emblem { width: 520px; right: 18%; }
}
@media (max-width: 1100px) {
  .tfl-container { width: calc(100% - 64px); }
  .tfl-header-inner { gap: 22px; }
  .tfl-brand img { width: 210px; }
  .tfl-navigation { gap: 21px; }
  .tfl-home-hero { min-height: 600px; }
  .tfl-home-hero h1 { font-size: 57px; }
  .tfl-hero-emblem { width: 84%; right: 2%; top: 17%; }
  .tfl-hero-description { max-width: 390px; }
  .tfl-hero-caption { right: 32px; font-size: 8px; }
  .tfl-introduction { gap: 45px; }
  .tfl-course-copy { padding: 35px; }
  .tfl-about-grid { gap: 55px; }
}
@media (max-width: 900px) {
  :root { --tfl-header-height: 80px; }
  .tfl-header-inner { gap: 20px; }
  .tfl-brand img { width: 195px; }
  .tfl-navigation { display: none; position: absolute; top: 100%; left: 0; right: 0; margin: 0; padding: 20px 32px 26px; background: var(--tfl-ivory); border-bottom: 1px solid var(--tfl-line); box-shadow: 0 12px 20px #60483312; }
  .tfl-navigation.is-open { display: grid; gap: 5px; }
  .tfl-navigation a { font-size: 12px; padding: 12px 0; }
  .tfl-menu-toggle { display: flex; align-items: center; gap: 12px; background: transparent; border: 0; color: var(--tfl-ink); font: 11px Arial, sans-serif; cursor: pointer; padding: 12px 0 12px 12px; }
  .tfl-menu-icon { display: grid; gap: 5px; width: 21px; }
  .tfl-menu-icon i { display: block; height: 1px; width: 21px; background: var(--tfl-plum); transition: transform .2s ease; }
  .tfl-menu-toggle[aria-expanded="true"] i:first-child { transform: translateY(3px) rotate(45deg); }
  .tfl-menu-toggle[aria-expanded="true"] i:last-child { transform: translateY(-3px) rotate(-45deg); }
  .tfl-study-link { margin-left: auto; }
  .tfl-home-hero h1 { font-size: 51px; }
  .tfl-home-hero { min-height: 565px; }
  .tfl-hero-description { max-width: 345px; font-size: 13px; }
  .tfl-desktop-break { display: none; }
  .tfl-hero-art { left: 40%; clip-path: polygon(50% 0, 100% 0, 100% 100%, 0 100%); }
  .tfl-hero-emblem { width: 90%; top: 29%; right: -5%; }
  .tfl-hero-caption { display: none; }
  .tfl-method { gap: 30px; }
  .tfl-introduction { grid-template-columns: 1fr; gap: 0; padding-block: 65px 40px; }
  .tfl-introduction > p { max-width: 600px; margin-top: 0; }
  .tfl-featured-course { grid-template-columns: 1fr 1fr; }
  .tfl-course-copy { padding: 30px 25px; }
  .tfl-course-copy h3 { font-size: 37px; }
  .tfl-course-art { min-height: 440px; }
  .tfl-course-card { width: 35%; top: 26%; }
  .tfl-card-left { left: 14%; }
  .tfl-card-right { left: 47%; }
  .tfl-resource-grid { gap: 15px; }
  .tfl-resource { padding: 24px 20px; }
  .tfl-resource h3 { font-size: 23px; }
  .tfl-footer-main { gap: 30px; }
}
@media (max-width: 600px) {
  .tfl-container { width: calc(100% - 40px); }
  .tfl-header .tfl-study-link { display: none; }
  .tfl-header-inner { gap: 14px; }
  .tfl-header .tfl-brand img { width: 186px; }
  .tfl-home-hero { min-height: 0; padding-bottom: 300px; }
  .tfl-hero-content { padding-block: 42px 20px; }
  .tfl-home-hero h1 { font-size: clamp(43px, 9.8vw, 57px); max-width: 440px; }
  .tfl-home-hero .tfl-eyebrow { font-size: 8px; letter-spacing: .12em; }
  .tfl-hero-description { max-width: 340px; font-size: 13px; margin-bottom: 22px; }
  .tfl-hero-art { top: auto; left: 0; height: 335px; clip-path: polygon(40% 0, 100% 0, 100% 100%, 0 100%, 0 65%); }
  .tfl-hero-emblem { width: 260px; top: 14px; right: 10%; }
  .tfl-arch { width: 38%; height: 79%; right: 6%; bottom: 5%; border-width: 9px; }
  .tfl-column { left: 35%; bottom: 8%; height: 54%; width: 12px; box-shadow: 24px 0 0 #e5d5ba, 48px 0 0 #d9c6a8; }
  .tfl-floor { height: 90px; bottom: -15px; }
  .tfl-introduction { padding-block: 52px 32px; }
  .tfl-introduction h2 { font-size: 34px; }
  .tfl-method { grid-template-columns: 1fr; gap: 28px; padding-bottom: 55px; }
  .tfl-method article { display: grid; grid-template-columns: 38px 1fr; column-gap: 12px; padding-top: 22px; }
  .tfl-step-number { grid-row: span 3; padding-top: 5px; }
  .tfl-method h3 { margin-top: 0; }
  .tfl-method p { margin-top: 0; max-width: none; }
  .tfl-course-section { padding-block: 53px; }
  .tfl-section-heading { display: block; margin-bottom: 28px; }
  .tfl-section-heading > p { margin-top: 20px; }
  .tfl-featured-course { grid-template-columns: 1fr; }
  .tfl-course-art { min-height: 340px; }
  .tfl-course-card { width: 26%; height: 220px; top: 15%; }
  .tfl-card-left { left: 26%; }
  .tfl-card-right { left: 48%; }
  .tfl-course-copy { padding: 32px 27px; }
  .tfl-resources { padding-block: 54px; }
  .tfl-resource-grid { grid-template-columns: 1fr; gap: 17px; }
  .tfl-resource { min-height: 220px; padding: 26px; }
  .tfl-resource h3 { font-size: 28px; margin-top: 18px; }
  .tfl-about { padding-block: 45px; }
  .tfl-about-grid { grid-template-columns: 1fr; gap: 28px; }
  .tfl-about-brand { max-width: 300px; margin-inline: auto; }
  .tfl-footer-main { grid-template-columns: 1fr 1fr; gap: 24px; padding-block: 35px; }
  .tfl-footer-main > div:first-child { grid-column: 1 / -1; }
  .tfl-footer-bottom { align-items: start; flex-direction: column; gap: 5px; }
  body[data-platform-page="course"] .hero-panel { grid-template-columns: minmax(0,1fr); padding: 25px; }
  body[data-platform-page="course"] .hero-copy h1 { font-size: 2.1rem; }
}
@media (max-width: 1050px) {
  body[data-platform-page="course"] .sidebar { inset: var(--tfl-header-height) auto 0 0; height: calc(100dvh - var(--tfl-header-height)); z-index: 90; }
  body[data-platform-page="course"] .nav-scrim { top: var(--tfl-header-height); height: calc(100% - var(--tfl-header-height)); z-index: 80; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .tfl-button, .tfl-resource, .tfl-course-card, .tfl-navigation a::after, .tfl-menu-icon i { transition: none; }
}

/* Selettore di lingua */
.tfl-lang { position: relative; }
.tfl-lang summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; padding: 14px 0; font-size: 11px; letter-spacing: .11em; font-weight: 500; color: var(--tfl-plum); }
.tfl-lang summary::-webkit-details-marker { display: none; }
.tfl-lang summary::after { content: ""; width: 5px; height: 5px; border: solid currentColor; border-width: 0 1px 1px 0; transform: translateY(-2px) rotate(45deg); }
.tfl-lang[open] summary::after { transform: translateY(1px) rotate(225deg); }
.tfl-lang-list { position: absolute; top: 100%; right: 0; display: grid; min-width: 150px; padding: 8px 18px; background: var(--tfl-ivory); border: 1px solid var(--tfl-line); box-shadow: 0 12px 20px #60483312; }
.tfl-navigation .tfl-lang-list a { padding: 9px 0; text-transform: none; letter-spacing: .02em; font-size: 13px; }
.tfl-navigation .tfl-lang-list a::after { display: none; }
.tfl-lang-list a[aria-current] { color: var(--tfl-plum); font-weight: 700; }
.tfl-footer-bottom { flex-wrap: wrap; }
.tfl-footer-langs { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 11px; letter-spacing: .04em; }
.tfl-footer-langs a[aria-current] { color: var(--tfl-plum); font-weight: 700; }
@media (max-width: 900px) {
  .tfl-lang-list { position: static; box-shadow: none; border: 0; border-top: 1px solid var(--tfl-line); padding: 4px 0 0; margin-top: 4px; }
}
