:root {
  --ink: #11100f;
  --muted: #625f58;
  --green: #c70000;
  --green-2: #e21a1a;
  --mint: #f4ded8;
  --cream: #eeeadd;
  --white: #fff;
  --line: #d9d3c5;
  --amber: #d89a2b;
  --danger: #a40000;
  --shadow: 0 20px 55px rgba(25, 18, 12, .12);
  --radius: 16px;
}

body { font-family: 'Archivo', sans-serif; background: #faf8f2; color: var(--ink); }
h1, h2, h3, h4 { font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: -.025em; }
h1 { font-size: clamp(3.6rem, 7.5vw, 7rem); line-height: .95; }
h2 { font-size: clamp(2.7rem, 5vw, 4.7rem); line-height: 1; }
h3 { letter-spacing: -.01em; }
.eyebrow { color: var(--green); letter-spacing: .16em; }

.site-header { height: 102px; background: rgba(250, 248, 242, .95); border-color: var(--line); }
.brand { gap: 12px; font-size: .87rem; text-transform: uppercase; }
.brand-logo { width: 72px; height: 72px; object-fit: cover; object-position: center; border-radius: 3px; background: #080808; padding: 0; box-shadow: 0 7px 18px rgba(0, 0, 0, .14); }
.brand span { display: flex; flex-direction: column; line-height: 1.05; }
.brand strong { font-size: .9rem; letter-spacing: .035em; }
.brand small { color: var(--green); font-weight: 700; font-size: .62rem; letter-spacing: .12em; margin-top: 5px; }
.main-nav { gap: 25px; }
.main-nav > a:not(.btn):hover { color: var(--green); }
.btn { border-radius: 5px; text-transform: uppercase; letter-spacing: .04em; }
.btn-primary { background: var(--green); box-shadow: 0 10px 25px rgba(199, 0, 0, .2); }
.btn-primary:hover { background: #a90000; }
.btn-dark { background: var(--ink); }
.btn-outline { background: transparent; border-color: #aaa398; }

.brand-hero { background: var(--cream); padding: 76px 0 82px; }
.brand-hero .hero-grid { grid-template-columns: 1.05fr .95fr; gap: 65px; }
.brand-hero h1 span { color: var(--green); }
.brand-hero .hero-copy > p { color: #393632; font-size: 1.18rem; max-width: 640px; }
.hero-media { min-height: 570px; position: relative; }
.hero-media > img { width: 100%; height: 100%; min-height: 570px; object-fit: cover; border-radius: 4px; filter: contrast(1.03); }
.hero-media:before { content: ''; position: absolute; z-index: 2; inset: 14px -14px -14px 14px; border: 2px solid var(--green); pointer-events: none; }
.hero-seal { position: absolute; z-index: 3; left: -35px; bottom: 35px; width: 172px; height: 172px; border-radius: 50%; background: var(--green); color: #fff; display: grid; place-content: center; text-align: center; box-shadow: var(--shadow); }
.hero-seal strong { font: 700 3rem/1 'Oswald'; }
.hero-seal span { font-size: .72rem; line-height: 1.2; text-transform: uppercase; font-weight: 700; margin-top: 6px; }
.brand-hero .trust-note b { color: var(--green); }

.brand-stats { background: var(--ink); border: 0; color: #fff; padding: 30px 0; }
.brand-stats .stat { border-color: #44413c; }
.brand-stats .stat strong { font: 700 2.5rem/1 'Oswald'; color: #fff; }
.brand-stats .stat span { color: #bbb6ad; text-transform: uppercase; letter-spacing: .06em; }

.problem-section { background: #fff; }
.problem-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: start; }
.problem-grid .section-head { margin: 0; position: sticky; top: 125px; }
.problem-list { border-top: 1px solid var(--line); }
.problem-list > div { display: grid; grid-template-columns: 65px 1fr; gap: 20px; padding: 25px 0; border-bottom: 1px solid var(--line); align-items: center; }
.problem-list span { font: 700 2rem 'Oswald'; color: var(--green); }
.problem-list p { margin: 0; font-size: 1.15rem; font-weight: 600; }

.section-soft { background: var(--cream); }
.service-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.service-card { grid-column: span 2; background: #fff; border-top: 5px solid var(--ink); padding: 28px; min-height: 245px; }
.service-card:nth-child(4) { grid-column: 2 / span 2; }
.service-card span { font: 700 2.1rem 'Oswald'; color: var(--green); }
.service-card h3 { font-size: 1.65rem; margin-top: 20px; }
.service-card p { color: var(--muted); font-size: .92rem; }

.academy-section { background: #fff; }
.card { border-radius: 4px; border-color: var(--line); }
.course-card { border-radius: 4px; }
.course-cover { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(135deg, #151515, #4a4741); }
.course-cover.premium { background: linear-gradient(135deg, #710000, #d30000); }
.course-cover.download { background: linear-gradient(135deg, #302b28, #8d1e1e); }
.course-cover-image { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(1.1) saturate(1.08); }
.course-cover.has-image:after { content: ''; position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .02), rgba(0, 0, 0, .14)); }
.course-cover.has-image > .pill { max-width: calc(100% - 28px); background: rgba(17, 16, 15, .88); box-shadow: 0 4px 14px rgba(0, 0, 0, .18); }
.course-cover > .pill, .course-cover > h3 { position: relative; z-index: 2; }
.course-cover h3 { font-size: 1.7rem; }
.pill { border-radius: 2px; }
.course-price { font-family: 'Oswald'; }
.admin-course-panel { max-width: 760px; }
.admin-course-fields { grid-template-columns: repeat(2, 1fr); }
.cover-upload-field { padding: 18px; border: 1px solid var(--line); background: #faf8f2; }
.admin-cover-preview { display: block; width: min(100%, 560px); aspect-ratio: 16 / 9; margin: 8px 0 14px; border: 1px solid var(--line); object-fit: cover; background: #171717; }
.cover-upload-field small { display: block; margin-top: 8px; color: var(--muted); }
.course-page-hero.has-cover { display: grid; grid-template-columns: 1fr minmax(340px, .75fr); gap: 55px; align-items: center; }
.course-page-cover { display: block; width: 100%; aspect-ratio: 16 / 9; border: 1px solid var(--line); object-fit: cover; box-shadow: var(--shadow); }

.founder-section { background: var(--ink); color: #fff; overflow: hidden; }
.founder-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 75px; align-items: center; }
.founder-photo { position: relative; }
.founder-photo img { display: block; width: 100%; max-height: 670px; object-fit: cover; object-position: top; filter: saturate(.8); }
.founder-photo:after { content: ''; position: absolute; inset: 18px -18px -18px 18px; border: 2px solid var(--green); z-index: 0; }
.founder-photo span { position: absolute; z-index: 2; left: 0; bottom: 0; background: var(--green); padding: 12px 18px; text-transform: uppercase; font-size: .75rem; font-weight: 700; letter-spacing: .08em; }
.founder-copy .eyebrow { color: #ff6666; }
.founder-copy p { color: #d6d1c9; max-width: 650px; }
.founder-lead { font-size: 1.3rem; color: #fff !important; font-weight: 700; }
.founder-quote { border-left: 4px solid var(--green); padding: 15px 0 15px 24px; font: 600 1.65rem/1.25 'Oswald'; text-transform: uppercase; margin-top: 35px; }

.team-section { background: var(--cream); }
.team-grid { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: minmax(190px, auto); gap: 18px; }
.team-card { display: grid; grid-template-columns: 270px 1fr; align-items: stretch; min-height: 190px; background: #fff; overflow: hidden; }
.team-photo { position: relative; width: 270px; height: 100%; min-height: 190px; overflow: hidden; background: #e3ddd0; }
.team-photo img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; object-fit: contain; object-position: center; transform: none; }
.team-info { padding: 26px; }
.team-card h3 { font-size: 1.35rem; margin-bottom: 4px; }
.team-card span { color: var(--green); font-size: .74rem; text-transform: uppercase; font-weight: 700; }
.team-card p { color: var(--muted); font-size: .85rem; margin: 13px 0 0; }
.team-card:last-child:nth-child(odd) { grid-column: 1 / -1; max-width: none; }

.difference-section { background: #fff; }
.difference-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; }
.difference-grid ol { list-style: none; padding: 0; margin: 0; counter-reset: difference; }
.difference-grid li { counter-increment: difference; display: grid; grid-template-columns: 58px 1fr; padding: 20px 0; border-bottom: 1px solid var(--line); }
.difference-grid li:before { content: '0' counter(difference); font: 700 1.6rem 'Oswald'; color: var(--green); grid-row: span 2; }
.difference-grid strong { font-family: 'Oswald'; text-transform: uppercase; font-size: 1.25rem; }
.difference-grid span { color: var(--muted); font-size: .92rem; }

.clients-section { background: #f7f5ef; }
.clients-frame { width: min(980px, 100%); margin-inline: auto; padding: 0; overflow: hidden; background: #fff; border: 1px solid var(--line); }
.clients-frame img { width: 100%; height: auto; display: block; object-fit: contain; mix-blend-mode: multiply; }

.contact-section { background: #fff; padding-top: 0; }
.contact-card { background: var(--green); color: #fff; padding: 55px; display: grid; grid-template-columns: 1.2fr .8fr; gap: 50px; align-items: center; }
.contact-card .eyebrow { color: #ffd0d0; }
.contact-card h2 { max-width: 720px; }
.contact-card p { max-width: 640px; }
.contact-card > .btn { justify-self: end; }
.contact-details { display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: .78rem; text-transform: uppercase; font-weight: 700; letter-spacing: .04em; }

.lead-cta { background: var(--ink); border-radius: 4px; }
.lead-cta .eyebrow { color: #ff6b6b; }
.lead-cta form { background: #fff; color: var(--ink); padding: 24px; }
.lead-consent { margin: 3px 0 18px; color: var(--muted); font-size: .75rem; line-height: 1.4; }
.lead-consent a { color: var(--green); text-decoration: underline; text-underline-offset: 2px; }
.purchase-consent { margin: 16px 0; color: var(--muted); font-size: .78rem; line-height: 1.45; }

.site-footer { background: #121110; }
.site-footer .brand-logo { width: 94px; height: 94px; background: #080808; box-shadow: none; }
.site-footer .brand small { color: #ff6b6b; }
.dashboard-section-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 55px 0 18px; }
.dashboard-section-head h2 { margin-bottom: 5px; }
.dashboard-section-head p { margin: 0; color: var(--muted); }
.security-setup { max-width: 760px; }
.security-setup ol { padding-left: 22px; }
.security-setup li { margin-bottom: 10px; }
.totp-secret { margin: 20px 0; padding: 18px; border: 2px dashed var(--green); background: #fff7f5; font: 700 1.35rem/1.5 monospace; letter-spacing: .08em; overflow-wrap: anywhere; user-select: all; }
.security-cards { grid-template-columns: 1fr 1fr; }
.recovery-box { margin: 28px 0; padding: 28px; border: 2px solid var(--green); background: #fff; }
.recovery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.recovery-grid code { padding: 10px; background: #f2eee5; text-align: center; font-weight: 700; user-select: all; }
.notification-sent, .notification-logged { background: #dff7ed; color: #075f45; }
.notification-pending { background: #fff2cc; color: #795600; }
.notification-failed { background: #fee4e2; color: #912018; }
.password-panel { max-width: 760px; margin-top: 24px; }
.lead-count { flex: 0 0 auto; padding: 7px 12px; border-radius: 999px; background: var(--mint); color: var(--green); font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.whatsapp-widget { position: fixed; right: 22px; bottom: 22px; z-index: 25; display: flex; flex-direction: column; align-items: flex-end; }
.whatsapp-widget .whatsapp { position: relative; right: auto; bottom: auto; z-index: 2; }
.whatsapp-message { position: relative; width: min(300px, calc(100vw - 44px)); margin-bottom: 14px; padding: 18px 42px 18px 19px; border: 1px solid rgba(17, 16, 15, .1); border-radius: 12px; background: #fff; color: var(--ink); box-shadow: 0 14px 38px rgba(0, 0, 0, .18); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(10px) scale(.96); transform-origin: right bottom; transition: opacity .24s ease, visibility .24s ease, transform .24s ease; }
.whatsapp-message:after { content: ''; position: absolute; right: 22px; bottom: -8px; width: 16px; height: 16px; background: #fff; border-right: 1px solid rgba(17, 16, 15, .1); border-bottom: 1px solid rgba(17, 16, 15, .1); transform: rotate(45deg); }
.whatsapp-message.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0) scale(1); }
.whatsapp-message strong { display: block; margin-bottom: 5px; font: 700 1.05rem/1.2 'Oswald'; text-transform: uppercase; }
.whatsapp-message span { display: block; color: var(--muted); font-size: .84rem; line-height: 1.45; }
.whatsapp-close { position: absolute; top: 8px; right: 9px; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%; background: #f1eee7; color: var(--ink); font: 700 1.1rem/1 Arial, sans-serif; cursor: pointer; }
.whatsapp-close:hover { background: #e4ded3; }
.whatsapp { width: 60px; height: 60px; font-size: 0; transition: transform .2s ease, box-shadow .2s ease; }
.whatsapp:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 12px 30px rgba(0, 0, 0, .28); }
.whatsapp img { width: 32px; height: 32px; display: block; }

.footer-cookie-link { display: block; padding: 0; margin: 0 0 10px; border: 0; background: transparent; color: #aabdb7; font: inherit; font-size: .85rem; text-align: left; cursor: pointer; }
.footer-cookie-link:hover { color: #fff; }
.cookie-banner[hidden], .cookie-modal[hidden] { display: none !important; }

.legal-hero { padding: 74px 0 58px; background: var(--ink); color: #fff; }
.legal-hero h1 { max-width: 980px; margin-bottom: 20px; font-size: clamp(3.2rem, 7vw, 6.3rem); }
.legal-hero p { max-width: 760px; color: #d9d4cc; font-size: 1.08rem; }
.legal-hero .eyebrow { color: #ff6b6b; }
.legal-meta { color: #aaa39a; font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; }
.legal-nav { display: flex; gap: 8px; padding: 22px 0; overflow-x: auto; border-bottom: 1px solid var(--line); }
.legal-nav a { flex: 0 0 auto; padding: 8px 12px; border: 1px solid var(--line); background: #fff; font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.legal-nav a:hover { border-color: var(--green); color: var(--green); }
.legal-section { padding: 58px 0 100px; background: #faf8f2; }
.legal-layout { display: grid; grid-template-columns: 235px minmax(0, 820px); gap: 64px; align-items: start; }
.legal-toc { position: sticky; top: 126px; display: flex; flex-direction: column; padding: 20px; border: 1px solid var(--line); background: #fff; }
.legal-toc strong { margin-bottom: 11px; font: 700 1rem 'Oswald'; text-transform: uppercase; }
.legal-toc a { padding: 7px 0; color: var(--muted); font-size: .8rem; border-bottom: 1px solid #eee9df; }
.legal-toc a:last-child { border: 0; }
.legal-toc a:hover { color: var(--green); }
.legal-content { min-width: 0; }
.legal-content h2 { margin: 54px 0 18px; padding-top: 8px; font-size: clamp(1.65rem, 3vw, 2.35rem); scroll-margin-top: 125px; }
.legal-content h2:first-of-type { margin-top: 35px; }
.legal-content h3 { margin-top: 32px; font-size: 1.2rem; }
.legal-content p, .legal-content li { color: #35322e; font-size: .97rem; }
.legal-content li { margin-bottom: 9px; }
.legal-content a { color: #9e0000; text-decoration: underline; text-underline-offset: 2px; }
.legal-content code { padding: 2px 5px; background: #eee9df; font-size: .86em; }
.legal-alert { padding: 17px 19px; border-left: 4px solid var(--amber); background: #fff3d7; color: #614812; font-size: .88rem; }
.legal-identity { display: grid; grid-template-columns: 190px 1fr; margin: 22px 0; border: 1px solid var(--line); background: #fff; }
.legal-identity dt, .legal-identity dd { margin: 0; padding: 12px 15px; border-bottom: 1px solid var(--line); }
.legal-identity dt { color: var(--muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.legal-identity dd { overflow-wrap: anywhere; }
.legal-identity dt:nth-last-of-type(1), .legal-identity dd:last-child { border-bottom: 0; }
.legal-pending { color: #9b6500; font-weight: 700; }
.legal-table-wrap { overflow-x: auto; margin: 25px 0; border: 1px solid var(--line); }
.legal-table th, .legal-table td { min-width: 170px; padding: 13px 15px; white-space: normal; vertical-align: top; line-height: 1.45; }
.legal-table th { background: var(--ink); color: #fff; }

.cookie-banner { position: fixed; z-index: 100; left: 20px; right: 20px; bottom: 20px; display: flex; align-items: center; justify-content: space-between; gap: 28px; width: min(1120px, calc(100% - 40px)); margin: auto; padding: 20px 22px; border: 1px solid #332f2b; background: #151413; color: #fff; box-shadow: 0 20px 60px rgba(0, 0, 0, .34); }
.cookie-banner-copy { max-width: 650px; }
.cookie-banner-copy strong { display: block; margin-bottom: 4px; font: 700 1.15rem 'Oswald'; text-transform: uppercase; }
.cookie-banner-copy p { margin: 0; color: #d5d0c8; font-size: .84rem; line-height: 1.45; }
.cookie-actions { display: flex; flex: 0 0 auto; gap: 8px; }
.cookie-banner .btn-outline { border-color: #5a554e; background: transparent; color: #fff; }
.cookie-modal { position: fixed; z-index: 120; inset: 0; display: grid; place-items: center; padding: 20px; }
.cookie-modal-backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, .68); backdrop-filter: blur(3px); }
.cookie-dialog { position: relative; z-index: 1; width: min(620px, 100%); max-height: calc(100vh - 40px); overflow-y: auto; padding: 34px; background: #fff; box-shadow: 0 25px 80px rgba(0, 0, 0, .35); outline: none; }
.cookie-dialog h2 { margin-bottom: 12px; font-size: 2.2rem; }
.cookie-dialog > p { color: var(--muted); font-size: .88rem; }
.cookie-dialog-close { position: absolute; top: 12px; right: 14px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: #eee9df; font-size: 1.25rem; cursor: pointer; }
.cookie-option { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 10px 0; padding: 15px; border: 1px solid var(--line); background: #faf8f2; }
.cookie-option span { display: block; }
.cookie-option strong, .cookie-option small { display: block; }
.cookie-option small { margin-top: 3px; color: var(--muted); font-weight: 400; line-height: 1.35; }
.cookie-option input { flex: 0 0 auto; width: 22px; height: 22px; accent-color: var(--green); }
.cookie-more { margin: 16px 0; }
.cookie-more a { color: var(--green); font-weight: 700; text-decoration: underline; }
.cookie-dialog-actions { display: flex; justify-content: flex-end; gap: 9px; }
.cookie-modal-open { overflow: hidden; }

@media (max-width: 900px) {
  .brand-hero .hero-grid, .founder-grid, .problem-grid, .difference-grid, .contact-card, .course-page-hero.has-cover { grid-template-columns: 1fr; }
  .hero-media { min-height: 470px; }
  .hero-media > img { min-height: 470px; }
  .founder-photo { width: min(100%, 360px); margin-inline: auto; }
  .founder-photo img { width: 100%; height: auto; max-height: 460px; aspect-ratio: 3 / 4; object-fit: cover; object-position: center top; }
  .problem-grid .section-head { position: static; }
  .service-grid { grid-template-columns: 1fr 1fr; }
  .service-card, .service-card:nth-child(4) { grid-column: auto; }
  .service-card:last-child { grid-column: 1 / -1; }
  .team-grid { grid-template-columns: 1fr; }
  .team-card:last-child:nth-child(odd) { grid-column: auto; max-width: none; }
  .contact-card > .btn { justify-self: start; }
  .legal-layout { grid-template-columns: 1fr; gap: 28px; }
  .legal-toc { position: static; display: none; }
  .cookie-banner { align-items: stretch; flex-direction: column; gap: 15px; }
  .cookie-actions { flex-wrap: wrap; }
}

@media (max-width: 620px) {
  h1 { font-size: clamp(3.2rem, 16vw, 5rem); }
  .brand span { display: flex; }
  .brand strong { font-size: .68rem; }
  .brand small { font-size: .49rem; }
  .site-header { height: 82px; }
  .brand-logo { width: 58px; height: 58px; }
  .brand-hero { padding-top: 52px; }
  .brand-hero .hero-grid { gap: 38px; }
  .hero-media { width: min(100%, 330px); min-height: 0; margin-inline: auto; }
  .hero-media > img { width: 100%; height: auto; min-height: 0; max-height: 410px; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; }
  .hero-seal { width: 125px; height: 125px; left: -5px; bottom: 15px; }
  .hero-seal strong { font-size: 2.3rem; }
  .service-grid, .team-grid { grid-template-columns: 1fr; }
  .admin-course-fields { grid-template-columns: 1fr; }
  .service-card:last-child, .team-card:last-child:nth-child(odd) { grid-column: auto; max-width: none; }
  .team-card { grid-template-columns: 1fr; min-height: 0; }
  .team-grid { grid-auto-rows: auto; }
  .team-card { height: auto; }
  .team-photo { width: 100%; height: 150px; min-height: 0; aspect-ratio: auto; }
  .team-photo img { object-fit: contain; object-position: center; }
  .team-info { padding: 18px; }
  .founder-grid { gap: 45px; }
  .founder-photo { width: min(100%, 250px); margin-inline: auto; }
  .founder-photo img { width: 100%; height: auto; max-height: 330px; aspect-ratio: 3 / 4; object-fit: cover; object-position: center top; }
  .founder-photo:after { inset: 10px -10px -10px 10px; }
  .course-cover { height: 155px; }
  .course-page-cover, .admin-cover-preview, .course-card-image { width: min(100%, 360px); max-height: 205px; margin-inline: auto; object-fit: cover; }
  .course-buy-card { width: min(100%, 360px); margin-inline: auto; }
  .course-buy-card > img, .course-promo-video { max-height: 205px; }
  .contact-card { padding: 34px 24px; }
  .clients-frame { padding: 0; }
  .dashboard-section-head { align-items: flex-start; flex-direction: column; }
  .security-cards, .recovery-grid { grid-template-columns: 1fr; }
  .whatsapp-widget { right: 14px; bottom: 14px; }
  .whatsapp-message { width: min(280px, calc(100vw - 28px)); }
  .legal-hero { padding: 55px 0 44px; }
  .legal-hero h1 { font-size: clamp(2.8rem, 14vw, 4.4rem); }
  .legal-section { padding: 36px 0 72px; }
  .legal-content h2 { margin-top: 42px; }
  .legal-identity { grid-template-columns: 1fr; }
  .legal-identity dt { padding-bottom: 4px; border-bottom: 0; }
  .legal-identity dd { padding-top: 4px; }
  .cookie-banner { left: 10px; right: 10px; bottom: 10px; width: calc(100% - 20px); padding: 17px; }
  .cookie-actions, .cookie-actions .btn { width: 100%; }
  .cookie-actions .btn { flex: 1 1 100%; }
  .cookie-dialog { padding: 28px 20px 22px; }
  .cookie-dialog-actions { flex-direction: column-reverse; }
  .cookie-dialog-actions .btn { width: 100%; }
}

/* Academia: progreso, evaluaciones, materiales y certificados */
.learning-shell{max-width:1240px}.learning-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:26px;align-items:start}.lesson-main{min-width:0}.course-outline{position:sticky;top:122px}.course-progress-card{display:grid;grid-template-columns:145px 1fr auto;gap:22px;align-items:center;padding:18px 24px;margin-bottom:26px;color:#fff;background:var(--ink);border-left:6px solid var(--green)}.course-progress-card>div:first-child{display:flex;align-items:baseline;gap:8px}.course-progress-card strong{font:700 2rem/1 'Oswald'}.course-progress-card span,.course-progress-card p{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.course-progress-card p{margin:0;color:#d1cec8}.course-progress-card .progress{margin:0;background:#3e3b37}.lesson-content{margin-top:20px}.lesson-heading,.lesson-actions,.note-panel>div{display:flex;align-items:center;justify-content:space-between;gap:18px}.lesson-heading h2{margin-bottom:18px}.lesson-tools{display:flex;gap:7px}.lesson-tools form{margin:0}.icon-button{width:43px;height:43px;border:1px solid var(--line);background:#fff;color:#8b857c;font-size:1.25rem;cursor:pointer}.icon-button.active{border-color:var(--green);color:var(--green);background:#fff0ed}.lesson-actions{padding-top:24px;margin-top:26px;border-top:1px solid var(--line)}.lesson-actions>div{display:flex;gap:8px}.note-panel{margin-top:20px}.note-panel textarea{margin-bottom:10px}.note-panel small{color:var(--muted)}.course-outline h3{margin-bottom:24px}.course-outline h4{margin:22px 0 8px;padding-bottom:7px;color:var(--muted);border-bottom:1px solid var(--line);font-size:.82rem;letter-spacing:.06em}.outline-item{display:grid;grid-template-columns:25px 1fr auto;gap:8px;padding:11px 10px;margin:2px -10px;font-size:.84rem;border-left:3px solid transparent}.outline-item:hover,.outline-item.current{background:#f4f0e8;border-left-color:var(--green)}.outline-item span{color:var(--green);font-weight:800}.outline-item b{font-weight:600}.outline-item em{color:var(--green);font-style:normal}.quiz-link{background:#171615;color:#fff;margin-top:8px}.quiz-link:hover{background:#2b2926}.certificate-button{margin-top:25px}
.learning-summary{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:28px;background:var(--ink);color:#fff}.learning-summary>div{padding:20px 25px;border-right:1px solid #45413c}.learning-summary>div:last-child{border:0}.learning-summary strong{display:block;font:700 2rem/1 'Oswald'}.learning-summary span{color:#c8c3bb;font-size:.78rem;text-transform:uppercase}.quiz-form{display:grid;gap:18px}.quiz-question{margin:0;padding:26px;border:1px solid var(--line);background:#fff}.quiz-question legend{display:flex;align-items:center;gap:12px;padding:0 8px;font:600 1.15rem 'Archivo'}.quiz-question legend span{display:grid;place-items:center;width:32px;height:32px;color:#fff;background:var(--green);font-weight:800}.quiz-option{display:flex;align-items:center;gap:12px;padding:13px 15px;margin:8px 0 0;border:1px solid var(--line);cursor:pointer;font-weight:500}.quiz-option:hover{border-color:var(--green);background:#fff8f6}.quiz-option input{width:auto}.quiz-result{display:grid;grid-template-columns:85px 1fr;gap:24px;align-items:center;padding:28px;margin-bottom:25px;border:1px solid;background:#fff}.quiz-result>span{display:grid;place-items:center;width:70px;height:70px;border-radius:50%;font-size:2rem;font-weight:800}.quiz-result h2{margin:0}.quiz-result p{margin-bottom:12px}.quiz-passed{border-color:#8bc8ac}.quiz-passed>span{background:#dcf6e9;color:#087f5b}.quiz-failed{border-color:#e1b6ae}.quiz-failed>span{background:#f9e4e0;color:var(--green)}
.quiz-review{margin:0 0 28px}.quiz-review h2{font-size:2rem}.quiz-review article{padding:18px 20px;margin-top:10px;border-left:5px solid;background:#fff}.quiz-review article.correct{border-color:#159267}.quiz-review article.incorrect{border-color:var(--green)}.quiz-review p{margin:7px 0;font-size:.9rem}.quiz-review small{display:block;color:var(--muted);margin-top:8px}
.student-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:42px}.student-tools>a,.student-tools>div{display:flex;gap:14px;align-items:center;padding:18px 20px;border:1px solid var(--line);background:#fff}.student-tools>a:hover{border-color:var(--green)}.student-tools span{display:grid;place-items:center;width:40px;height:40px;color:#fff;background:var(--ink);font-size:1.1rem}.student-tools strong,.student-tools small{display:block}.student-tools small{color:var(--muted)}.dashboard-course-grid{align-items:stretch}.learning-card{display:flex;flex-direction:column}.learning-card .pill{color:#fff;background:var(--green)}.learning-card .btn{margin-top:auto}.progress-caption{display:flex;justify-content:space-between;gap:10px;font-size:.8rem}.progress-caption span{color:var(--muted)}.course-status-list{padding:0;margin:18px 0 24px;list-style:none;color:var(--muted);font-size:.85rem}.course-status-list li{padding:5px 0;border-bottom:1px solid #eee9df}.course-status-list span,.course-status-list b{color:var(--ink)}.certificate-card-link{margin-top:8px!important}
.library-course{margin:45px 0}.library-course h2{font-size:2rem}.material-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.material-card{display:grid;grid-template-columns:48px 1fr;gap:16px;padding:22px;border:1px solid var(--line);background:#fff}.material-icon{display:grid;place-items:center;width:48px;height:48px;background:var(--green);color:#fff;font-size:1.35rem}.material-card small{color:var(--green);text-transform:uppercase;font-weight:800}.material-card h3{margin:4px 0 7px}.material-card p{color:var(--muted);font-size:.86rem;margin-bottom:8px}
.certificate-verify-shell{max-width:780px}.certificate-verify-page h1{font-size:clamp(3rem,6vw,5rem)}.certificate-search{padding:25px;margin:30px 0;background:#fff;border:1px solid var(--line)}.certificate-search>div{display:grid;grid-template-columns:1fr auto;gap:10px}.certificate-result{display:grid;grid-template-columns:78px 1fr;gap:22px;padding:28px;border:1px solid;background:#fff}.certificate-result>strong{grid-column:1/-1}.certificate-check{display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:#dff7ed;color:#087f5b;font-size:2rem}.certificate-valid{border-color:#8bc8ac}.certificate-invalid{display:block;border-color:#e1b6ae;color:#8b1711}.certificate-result h2{font-size:2.2rem;margin:0 0 10px}.certificate-result dl{display:grid;grid-template-columns:auto 1fr;gap:7px 20px;margin:15px 0 0}.certificate-result dt{color:var(--muted)}.certificate-result dd{margin:0;font-weight:700}
.admin-learning-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.admin-learning-grid .panel h2{font-size:1.8rem}.admin-material-panel{grid-column:1/-1}.admin-list{display:grid;gap:7px;padding-top:20px;margin-top:22px;border-top:1px solid var(--line)}.admin-list span{padding:9px 11px;background:#f5f1e9;font-size:.82rem}.answer-builder label{display:flex;align-items:center;gap:8px}.answer-builder label input{width:auto}
.saved-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.saved-card small{color:var(--muted);text-transform:uppercase;font-weight:700}.saved-card h2{font-size:1.8rem;margin-top:8px}.saved-tags{display:flex;gap:7px;margin-bottom:16px}.saved-tags span{padding:5px 8px;background:#f4ded8;color:var(--green);font-size:.7rem;font-weight:800;text-transform:uppercase}.saved-card blockquote{margin:18px 0;padding:16px;border-left:4px solid var(--green);background:#f7f3eb;color:var(--muted)}
@media(max-width:900px){.learning-layout,.admin-learning-grid{grid-template-columns:1fr}.course-outline{position:static}.course-progress-card{grid-template-columns:120px 1fr}.course-progress-card p{grid-column:1/-1}.admin-material-panel{grid-column:auto}}
@media(max-width:620px){.student-tools,.learning-summary,.material-grid,.saved-grid{grid-template-columns:1fr}.course-progress-card{grid-template-columns:1fr}.lesson-heading,.lesson-actions,.note-panel>div{align-items:flex-start;flex-direction:column}.lesson-actions>div{width:100%;flex-wrap:wrap}.certificate-search>div{grid-template-columns:1fr}.certificate-result,.quiz-result{grid-template-columns:1fr}.learning-summary>div{border-right:0;border-bottom:1px solid #45413c}}

/* Navegación inferior para móviles */
.mobile-bottom-nav { display: none; }

@media (max-width: 720px) {
  body { padding-bottom: calc(82px + env(safe-area-inset-bottom)); }
  .mobile-bottom-nav {
    position: fixed;
    z-index: 90;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    min-height: calc(76px + env(safe-area-inset-bottom));
    padding: 7px 5px calc(5px + env(safe-area-inset-bottom));
    border-top: 1px solid rgba(17, 16, 15, .1);
    border-radius: 18px 18px 0 0;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 -12px 35px rgba(0, 0, 0, .14);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
  }
  .mobile-bottom-link {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 61px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    border-radius: 12px;
    color: #77716a;
    font-size: .63rem;
    font-weight: 800;
    line-height: 1;
  }
  .mobile-nav-icon {
    display: grid;
    width: 34px;
    height: 30px;
    place-items: center;
    border-radius: 10px;
    transition: color .2s ease, background .2s ease, transform .2s ease;
  }
  .mobile-bottom-link svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .mobile-nav-label { overflow: hidden; max-width: 100%; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-bottom-link.is-active { color: #c90000; }
  .mobile-bottom-link.is-active .mobile-nav-icon { background: #fff0ef; transform: translateY(-1px); }
  .mobile-bottom-whatsapp { padding-top: 26px; color: #087a43; }
  .mobile-whatsapp-icon {
    position: absolute;
    top: -25px;
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    border: 5px solid #fff;
    border-radius: 50%;
    background: #20bd5a;
    color: #fff;
    box-shadow: 0 8px 20px rgba(18, 140, 74, .34);
  }
  .mobile-whatsapp-icon svg { width: 29px; height: 29px; fill: currentColor; stroke: none; }
  .whatsapp-widget { right: 50%; bottom: calc(84px + env(safe-area-inset-bottom)); transform: translateX(50%); align-items: center; }
  .whatsapp-widget .whatsapp { display: none; }
  .whatsapp-message { width: min(310px, calc(100vw - 28px)); margin-bottom: 0; text-align: left; }
  .whatsapp-message:after { right: calc(50% - 8px); }
  .cookie-banner { bottom: calc(86px + env(safe-area-inset-bottom)); }

  /* Estructuras internas: paneles, editores y áreas privadas */
  .dashboard-head {
    width: 100%;
    min-width: 0;
    align-items: stretch;
    flex-direction: column;
  }
  .dashboard-head > * { width: 100%; min-width: 0; }
  .dashboard-head > .admin-actions,
  .admin-course-panel > form > .admin-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: 8px;
  }
  .dashboard-head > .admin-actions > :last-child:nth-child(odd),
  .admin-course-panel > form > .admin-actions > :last-child:nth-child(odd) { grid-column: 1 / -1; }
  .dashboard-head > .admin-actions .btn,
  .admin-course-panel > form > .admin-actions .btn {
    width: 100%;
    min-width: 0;
    height: 100%;
    padding-inline: 11px;
    white-space: normal;
    text-align: center;
    line-height: 1.25;
  }
  .dashboard-section-head {
    width: 100%;
    min-width: 0;
    align-items: stretch;
  }
  .dashboard-section-head > * { width: 100%; min-width: 0; }
  .dashboard-section-head h1 {
    max-width: 100%;
    font-size: clamp(2.25rem, 11vw, 2.8rem);
    overflow-wrap: anywhere;
  }
  .dashboard-section-head form .btn { width: 100%; }
  .section-title-row > * { min-width: 0; }
  .brand-hero .hero-grid,
  .founder-grid,
  .problem-grid,
  .difference-grid,
  .contact-card,
  .course-page-hero.has-cover { grid-template-columns: minmax(0, 1fr); }
  .problem-grid,
  .difference-grid,
  .contact-card { gap: 42px; }
  .problem-grid > *,
  .difference-grid > *,
  .contact-card > * { min-width: 0; }
  .legal-content a {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .table-wrap,
  .legal-table-wrap {
    max-width: 100%;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }
}

@media (max-width: 420px) {
  h1,
  h2 { overflow-wrap: anywhere; }
  h2 { font-size: clamp(2.15rem, 11vw, 2.6rem); }
  .dashboard-head > .admin-actions,
  .admin-course-panel > form > .admin-actions { grid-template-columns: 1fr; }
  .dashboard-head > .admin-actions > *,
  .admin-course-panel > form > .admin-actions > * { grid-column: 1; }
}
