:root { --navy:#071c2f; --blue:#0f3563; --paper:#f4f5f1; --mist:#dce7ef; --gold:#e9bd45; --coral:#c6402e; --coral-dark:#952c20; --muted:#4f606c; --line:#ccd2d3; --white:#fff; --display:"League Spartan",Arial,sans-serif; --body:"Source Serif 4",Georgia,serif; --mono:"IBM Plex Mono",monospace; }
* { box-sizing:border-box; }
html { scroll-padding-top:88px; }
body { margin:0; color:var(--navy); background:var(--paper); font:400 17px/1.6 var(--body); }
a { color:inherit; text-decoration:none; }
button { font:inherit; cursor:pointer; }
a,button,summary { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
img { display:block; max-width:100%; height:auto; }
h1,h2,h3,h4,p { margin:0; }
h1,h2,h3,h4 { font-family:var(--display); font-weight:600; text-wrap:balance; }
h1,h2 { letter-spacing:-.035em; line-height:1.08; }
h2 { font-size:36px; }
h1 em,h2 em { font-family:var(--body); font-weight:400; letter-spacing:-.05em; }
ul,ol { margin:0; padding:0; list-style:none; }
[hidden] { display:none!important; }
:is(a,button,summary,[tabindex="0"]):focus-visible { outline:3px solid var(--blue); outline-offset:5px; }
.button:focus-visible,.header :is(a,button,summary,[tabindex="0"]):focus-visible,.hero :is(a,button,summary,[tabindex="0"]):focus-visible,.offer-section :is(a,button,summary,[tabindex="0"]):focus-visible,.footer :is(a,button,summary,[tabindex="0"]):focus-visible,.last-call :is(a,button,summary,[tabindex="0"]):focus-visible { outline-color:var(--gold); box-shadow:0 0 0 6px var(--navy); }
.shell { width:min(1160px,calc(100% - 32px)); margin-inline:auto; }
.section { padding-block:56px; }
.eyebrow { margin-bottom:14px; color:var(--coral-dark); font:500 11px/1.6 var(--mono); letter-spacing:.055em; }
.section-intro { margin-bottom:28px; }
.section-lead,.intro-aside { color:var(--muted); }
.section-lead { margin-top:20px; }
.button { display:inline-flex; justify-content:center; align-items:center; gap:18px; min-height:52px; padding:16px 20px; border:0; border-radius:4px; color:white; background:var(--coral); font:600 18px/1.2 var(--display); text-align:center; transition:background .18s; }
.button:hover { background:var(--coral-dark); }
.button span[aria-hidden] { flex-shrink:0; font-size:21px; }
.button-small { min-height:44px; padding:12px 14px; font-size:16px; }
.button:disabled { color:var(--muted); background:var(--mist); cursor:not-allowed; }
.text-link { display:inline-flex; align-items:center; gap:12px; min-height:44px; font:500 18px/1.3 var(--display); text-decoration:underline; text-underline-offset:5px; }
.text-link:hover { color:var(--coral-dark); }
.skip-link { position:fixed; top:-100px; left:16px; z-index:1001; padding:12px 20px; background:var(--gold); }
.skip-link:focus { top:12px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
/* Base mobile. Colunas entram apenas quando há espaço para o conteúdo. */
.header { position:sticky; top:0; z-index:100; color:var(--paper); border-bottom:1px solid #ffffff24; background:var(--navy); }
.header .brand img { filter:brightness(0) invert(1); }
.header-inner { min-height:68px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.brand { display:inline-flex; align-items:center; gap:8px; min-height:44px; flex-shrink:0; }
.brand img { width:29px; height:32px; object-fit:contain; }
.brand span { font:500 9px/1.4 var(--mono); letter-spacing:.02em; }
.brand strong { display:block; font:700 13px/1.4 var(--display); letter-spacing:.01em; }
.nav-label-full { display:none; }
.nav-cta { gap:8px; }
.hero { color:var(--paper); background:var(--blue); }
.hero .eyebrow { color:var(--gold); }
.hero-grid { display:grid; gap:20px; padding-block:28px 24px; }
.hero-copy,.hero-visual { min-width:0; }
.hero h1 { font-size:clamp(39px,10.6vw,48px); }
.hero h1 em { color:var(--gold); }
.hero-description { margin-top:18px; color:var(--mist); font-size:17px; line-height:1.5; }
.hero-audience { margin-top:14px; font:400 15px/1.4 var(--display); }
.hero-meta { display:flex; flex-wrap:wrap; gap:6px 18px; margin-top:14px; font:500 11px/1.5 var(--mono); }
.hero-meta li { display:flex; align-items:center; gap:7px; }
.hero-meta li::before { content:''; width:4px; height:4px; border-radius:50%; background:var(--gold); }
.hero-actions { display:grid; gap:8px; margin-top:22px; }
.hero-price-link { display:inline-flex; min-height:32px; align-items:center; justify-content:center; font:400 15px/1.4 var(--display); text-decoration:underline; text-underline-offset:4px; }
.visual-caption { margin-bottom:10px; color:var(--mist); font:400 10px/1.4 var(--mono); letter-spacing:.02em; }
.book-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.course-book { color:var(--navy); position:relative; display:flex; flex-direction:column; justify-content:space-between; min-width:0; min-height:82px; padding:12px; border-radius:3px; border:1px solid transparent; transition:border-color .18s,transform .18s; }
.course-book:hover { transform:translateY(-2px); border-color:currentColor; }
.book-gold { background:var(--gold); }
.book-mist { background:var(--mist); }
.book-coral { color:white; background:var(--coral); }
.book-paper { background:white; border-color:var(--line); }
.book-top { display:flex; justify-content:space-between; font:500 10px/1 var(--mono); }
.book-bottom { padding-top:10px; }
.book-bottom strong { display:block; font:600 clamp(20px,5.5vw,26px)/1.05 var(--display); letter-spacing:-.03em; }
.book-bottom>span { display:none; margin-top:5px; padding-right:8px; font:400 12px/1.2 var(--display); }
.book-arrow { position:absolute; right:9px; bottom:10px; font:400 17px/1 var(--display); }
.visual-footnote { margin-top:10px; color:var(--mist); font:italic 14px/1.4 var(--body); }
.questions-section { color:var(--navy); background:var(--paper); }
.questions-layout { display:grid; gap:30px; }
.questions-section .eyebrow { color:var(--coral-dark); }
.questions-section h2 em { color:var(--coral-dark); }
.questions-section .section-lead { color:var(--muted); }
.questions-prompt { color:var(--muted); font:400 15px/1.5 var(--display); margin-bottom:6px; }
.question-grid article { display:flex; align-items:start; gap:16px; padding-block:17px; border-bottom:1px solid var(--line); }
.question-grid article>span { margin-top:2px; color:var(--blue); font:400 11px/1.5 var(--mono); }
.question-grid h3 { font-size:22px; line-height:1.25; font-weight:500; text-wrap:pretty; }
.questions-conclusion { margin-top:22px; color:var(--muted); font-size:16px; }
.curriculum { background:var(--mist); }
.curriculum-intro { display:grid; gap:20px; }
.curriculum-intro h2 em { color:var(--blue); }
.intro-aside { max-width:52ch; }
.course-list { display:grid; gap:16px; }
.course-detail { min-width:0; background:white; border:1px solid var(--line); border-top:4px solid var(--gold); border-radius:5px; align-self:start; }
.course-mist { border-top-color:#a3bcca; }
.course-coral { border-top-color:var(--coral); }
.course-paper { border-top-color:var(--blue); }
summary { cursor:pointer; list-style:none; }
summary::-webkit-details-marker { display:none; }
.course-detail>summary { padding:20px; display:flex; flex-direction:column; gap:12px; }
.course-label { display:flex; align-items:center; gap:9px; }
.course-index { font:400 11px/1.5 var(--mono); color:var(--muted); }
.course-verb { font:600 20px/1.2 var(--display); }
.course-hours { margin-left:auto; color:var(--muted); font:500 12px/1.5 var(--mono); }
.course-title { display:block; font:600 26px/1.08 var(--display); letter-spacing:-.025em; text-wrap:balance; }
.course-benefit { color:var(--muted); font-size:16px; line-height:1.5; }
.course-byline { display:flex; flex-wrap:wrap; gap:5px 16px; align-items:baseline; justify-content:space-between; font:400 14px/1.4 var(--display); }
.course-date { font:500 11px/1.5 var(--mono); white-space:nowrap; }
.course-toggle { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; margin-top:2px; padding-top:12px; border-top:1px solid var(--line); color:var(--blue); font:500 16px/1.3 var(--display); }
.expand-icon { display:grid; place-items:center; width:28px; height:28px; color:var(--navy); background:var(--paper); border-radius:50%; font-size:22px; transition:transform .18s; }
.toggle-open { display:none; }
.course-detail[open] .toggle-closed { display:none; }
.course-detail[open] .toggle-open { display:inline; }
.course-detail[open] .expand-icon { transform:rotate(45deg); }
.course-content { padding:0 20px 24px; }
.course-question { margin:0 0 20px; padding:16px; color:var(--blue); background:var(--mist); border-radius:3px; }
.course-question>span { font:500 10px/1.5 var(--mono); letter-spacing:.02em; }
.course-question p { margin-top:8px; font:italic 18px/1.45 var(--body); }
.course-schedule { margin-bottom:22px; font:400 15px/1.5 var(--display); }
.course-schedule strong { display:block; margin-bottom:6px; font:500 10px/1.5 var(--mono); }
.course-program h4 { font-size:20px; margin-bottom:12px; }
.learning-list { list-style:disc; padding-left:18px; font-size:16px; line-height:1.5; }
.learning-list li+li { margin-top:10px; }
.curriculum-footer { margin-top:22px; text-align:center; }
.teachers { background:var(--gold); }
.teachers > .shell > .section-intro > .eyebrow { color:var(--navy); }
.teacher-grid { display:grid; gap:16px; }
.teacher-card { min-width:0; display:grid; grid-template-columns:88px minmax(0,1fr); column-gap:18px; align-items:center; padding:20px; border:1px solid var(--line); border-radius:4px; background:var(--paper); }
.teacher-portrait { align-self:start; height:106px; overflow:hidden; background:var(--mist); border-radius:3px; }
.teacher-portrait img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.teacher-heading { min-width:0; }
.teacher-subject { margin-bottom:7px; color:var(--muted); font-size:9px; }
.teacher-heading h3 { font-size:23px; line-height:1.1; text-wrap:pretty; }
.teacher-crp { grid-column:2; align-self:start; margin-top:5px; color:var(--muted); font:400 10px/1.5 var(--mono); }
.teacher-background { grid-column:1/-1; grid-row:3; margin-top:15px; border-top:1px solid var(--line); }
.teacher-background summary { display:flex; justify-content:space-between; align-items:center; min-height:44px; color:var(--blue); font:400 16px/1.4 var(--display); }
.teacher-background summary>span { font-size:22px; }
.teacher-background[open] summary>span { transform:rotate(45deg); }
.teacher-biography { font-size:16px; line-height:1.5; padding-block:8px; }
.portrait-placeholder { display:grid; place-items:center; height:100%; font-family:var(--display); }
.portrait-placeholder small { font-size:10px; }
.certificates { color:var(--paper); background:var(--navy); }
.certificate-grid { display:grid; gap:30px; }
.certificate-tag { color:var(--gold); }
.certificates h2 em { color:var(--gold); }
.certificate-types { display:grid; gap:20px; }
.certificate-card h3 { display:flex; gap:18px; align-items:center; font-size:22px; line-height:1.15; font-weight:500; }
.certificate-count { color:var(--gold); font:400 52px/1 var(--body); }
.certificate-card+.certificate-card { padding-top:20px; border-top:1px solid #ffffff40; }
.certificate-card p { margin-top:12px; color:var(--mist); font-size:15px; }
.community-section { padding-block:56px; }
.community-heading { margin-bottom:24px; }
.community-copy { max-width:740px; }
.community-copy h2 { max-width:22ch; }
.community-copy>p:not(.eyebrow) { margin-top:18px; color:var(--muted); }
.community-copy .community-address { font:400 14px/1.5 var(--display); }
.community-gallery { display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:0; padding-bottom:14px; scrollbar-width:thin; scrollbar-color:var(--blue) var(--mist); }
.community-photo { flex:0 0 85%; scroll-snap-align:start; border-radius:4px; overflow:hidden; }
.community-photo img { width:100%; height:220px; object-fit:cover; }
.community-gallery-caption { margin-top:10px; color:var(--muted); font:400 9px/1.6 var(--mono); letter-spacing:.035em; }
.offer-section { color:var(--paper); background:var(--navy); }
.offer-section .eyebrow { color:var(--gold); }
.offer-section h2 { max-width:25ch; }
.offer-section h2 em { color:var(--gold); }
.offer-lead { margin-top:16px; color:var(--mist); }
.offer-panel { display:grid; color:var(--navy); background:var(--paper); border-radius:5px; overflow:hidden; }
.offer-summary { padding:24px; }
.offer-summary h3 { font-size:26px; }
.offer-includes { display:grid; gap:10px; margin-top:18px; font:400 16px/1.4 var(--display); }
.offer-includes li { position:relative; padding-left:21px; }
.offer-includes li::before { content:'✓'; position:absolute; left:0; color:var(--blue); }
.agenda-label { margin-top:26px; color:var(--muted); font:500 10px/1.5 var(--mono); }
.offer-agenda { margin-top:6px; }
.offer-agenda li { display:flex; gap:18px; align-items:start; padding-block:13px; border-bottom:1px solid var(--line); }
.offer-agenda strong { min-width:48px; color:var(--blue); font:500 13px/1.5 var(--mono); }
.offer-agenda li>span { font:600 19px/1.2 var(--display); }
.offer-agenda small { display:block; margin-top:5px; color:var(--muted); font:400 14px/1.3 var(--display); }
.offer-certificate-note { margin-top:18px; color:var(--muted); font-size:14px; line-height:1.5; }
.offer-conversion { padding:24px; border-top:1px solid var(--line); background:white; }
.offer-capacity { display:inline-block; margin-bottom:24px; color:var(--blue); font:400 14px/1.4 var(--display); }
.offer-capacity strong { font-weight:600; }
.offer-price-anchor { color:var(--muted); font:400 15px/1.4 var(--display); }
.offer-price-anchor>span { white-space:nowrap; }
.offer-price-block { margin-block:14px 24px; }
.main-price { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; color:var(--blue); font:400 19px/1.1 var(--display); }
.main-price strong { font:600 clamp(60px,17vw,82px)/1 var(--display); letter-spacing:-.055em; }
.main-price>span:last-child { font-size:16px; }
.price-savings-copy { margin-top:8px; font:400 15px/1.5 var(--display); }
.price-savings-copy strong { font-weight:600; }
.checkout-cta { width:100%; }
.offer-payment { margin-top:16px; text-align:center; }
.installments { font:400 18px/1.5 var(--display); }
.installment-total { color:var(--muted); font:400 13px/1.6 var(--display); }
.checkout-note { margin-top:18px; font-size:14px; }
.offer-credentials { grid-column:1/-1; padding:16px 24px; color:var(--muted); border-top:1px solid var(--line); font:400 12px/1.6 var(--display); }
.faq-section { background:var(--mist); }
.faq-grid { display:grid; gap:28px; }
.faq-grid>div:first-child>p:not(.eyebrow) { margin-top:18px; color:var(--muted); }
.faq-grid .text-link { margin-top:12px; }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list details:first-child { border-top:1px solid var(--line); }
.faq-list summary { display:flex; justify-content:space-between; align-items:start; gap:16px; min-height:62px; padding-block:20px; font:500 20px/1.25 var(--display); }
.faq-list summary>span[aria-hidden] { flex-shrink:0; font-size:24px; line-height:1; transition:transform .18s; }
.faq-list details[open] summary>span[aria-hidden] { transform:rotate(45deg); }
.faq-list details>p,.faq-list details>div { padding-bottom:22px; color:var(--muted); font-size:16px; line-height:1.6; }
.faq-list details>div p+p { margin-top:12px; }
.last-call { padding-block:48px; color:var(--paper); background:var(--blue); }
.last-call h2 { max-width:24ch; }
.last-call h2 em { color:var(--gold); }
.closing-support { max-width:54ch; margin-top:20px; color:var(--mist); }
.closing-action { display:grid; gap:16px; margin-top:26px; }
.closing-capacity { font:400 15px/1.4 var(--display); color:var(--mist); }
.closing-cta { width:100%; }
.closing-note { font-size:14px; }
.footer { color:var(--mist); background:#04131f; padding-block:32px 24px; }
.footer-grid { display:grid; gap:24px; }
.footer .brand img { background:var(--paper); border-radius:2px; padding:3px; }
.footer .brand { color:var(--paper); }
.footer p { font-size:15px; }
.footer-grid>div { display:grid; gap:4px; }
.footer-grid>div a { width:fit-content; min-height:36px; display:flex; align-items:center; font:400 15px/1.4 var(--display); overflow-wrap:anywhere; }
.footer-note { margin-top:26px; padding-top:18px; border-top:1px solid #ffffff30; font:400 11px/1.5 var(--mono); }
@media(min-width:600px) {
 .shell { width:min(1160px,calc(100% - 64px)); }
 .section,.community-section { padding-block:72px; }
 h2 { font-size:42px; }
 .brand img { width:34px; height:36px; }
 .brand span { font-size:10px; }
 .brand strong { font-size:15px; }
 .nav-label-full { display:inline; }
 .nav-label-compact { display:none; }
 .hero-grid { padding-block:48px; }
 .hero h1 { max-width:20ch; font-size:58px; }
 .hero-description { max-width:49ch; font-size:19px; }
 .hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px; }
 .course-book { min-height:140px; padding:20px; }
 .book-bottom strong { font-size:30px; }
 .book-bottom>span { display:block; font-size:15px; }
 .book-arrow { right:16px; bottom:16px; font-size:22px; }
 .book-top { font-size:11px; }
 .teacher-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .teacher-heading h3 { font-size:24px; }
 .certificate-types { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
 .certificate-card+.certificate-card { border-top:0; border-left:1px solid #ffffff40; padding-top:0; padding-left:32px; }
 .community-photo { flex-basis:46%; }
 .community-photo img { height:240px; }
 .offer-summary,.offer-conversion { padding:32px; }
 .offer-credentials { padding-inline:32px; }
 .closing-cta { width:fit-content; }
 .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(min-width:900px) {
 html { scroll-padding-top:100px; }
 .header-inner { min-height:80px; }
 .section,.community-section { padding-block:88px; }
 h2 { font-size:48px; }
 .hero-grid { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:48px; align-items:center; padding-block:64px; }
 .hero h1 { font-size:clamp(58px,5.2vw,72px); max-width:16ch; }
 .hero-description { font-size:20px; }
 .hero-audience { font-size:16px; }
 .hero-meta { font-size:12px; gap:18px; }
 .hero-actions { align-items:start; flex-direction:column; gap:7px; }
 .hero-price-link { justify-content:start; }
 .hero-visual { padding-block:16px; }
 .visual-caption { margin-bottom:16px; font-size:11px; }
 .book-grid { gap:14px; }
 .course-book { min-height:178px; padding:18px; box-shadow:4px 4px 0 #071c2f15; }
 .book-bottom strong { font-size:clamp(27px,2.45vw,35px); }
 .book-bottom>span { max-width:18ch; font-family:var(--body); font-size:15px; line-height:1.35; padding-right:14px; }
 .visual-footnote { margin-top:18px; text-align:right; font-size:15px; }
 .questions-layout { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:80px; align-items:center; }
 .questions-copy { max-width:460px; }
 .questions-conclusion { max-width:50ch; }
 .curriculum-intro { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); align-items:end; gap:64px; }
 .course-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
 .course-detail>summary { padding:26px; gap:14px; }
 .course-title { font-size:30px; }
 .course-content { padding:0 26px 28px; }
 .curriculum-footer { margin-top:28px; }
 .certificate-grid { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); align-items:center; gap:80px; }
 .community-heading { margin-bottom:32px; }
 .community-copy { max-width:720px; }
 .community-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; overflow:visible; padding-bottom:0; }
 .community-photo { min-width:0; }
 .community-photo img { height:220px; }
 .offer-panel { grid-template-columns:1.12fr 1fr; }
 .offer-summary,.offer-conversion { padding:40px; }
 .offer-conversion { border-top:0; border-left:1px solid var(--line); align-content:center; }
 .offer-summary h3 { font-size:30px; }
 .main-price strong { font-size:88px; }
 .offer-capacity { margin-bottom:28px; }
 .offer-credentials { padding-inline:40px; }
 .faq-grid { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:80px; }
 .faq-list summary { padding-block:22px; }
 .last-call { padding-block:64px; }
 .last-call .shell { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); column-gap:60px; align-items:center; }
 .closing-support { grid-column:1; }
 .closing-action { grid-column:2; grid-row:1/3; justify-items:start; margin-top:0; }
 .footer-grid { grid-template-columns:1fr 1fr 1fr; gap:40px; }
}
@media(min-width:1100px) {
 .hero-grid { gap:76px; padding-block:72px; }
 .teacher-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
 .teacher-card { display:flex; flex-direction:column; align-items:stretch; padding:18px; }
 .teacher-portrait { align-self:stretch; height:198px; }
 .teacher-heading { margin-top:18px; }
 .teacher-heading h3 { min-height:53px; }
 .teacher-subject { min-height:28px; }
 .teacher-crp { order:1; margin-top:8px; }
 .teacher-background { order:2; margin-top:16px; }
}
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
/* A condição de inscrição precede a agenda extensa no celular. */
.offer-schedule { padding:0 24px 24px; border-top:1px solid var(--line); }
.offer-schedule .agenda-label { margin-top:24px; }
@media(min-width:600px) { .offer-schedule { padding:0 32px 32px; } }
@media(min-width:900px) {
 .offer-summary { grid-column:1; grid-row:1; padding-bottom:0; }
 .offer-conversion { grid-column:2; grid-row:1/3; }
 .offer-schedule { grid-column:1; grid-row:2; padding:0 40px 40px; border-top:0; }
 .offer-schedule .agenda-label { margin-top:24px; }
 .offer-credentials { grid-row:3; }
}
/* Âncoras recebem foco para leitura; o contorno pertence aos controles interativos. */
:is(h1,h2,h3,main)[tabindex="-1"]:focus { outline:none; }
