/* ============================================================
   TOKENS — direção de arte Uninorte (fonte única, sem duplicidade)
   Verde institucional domina; dourado/verde-lima só como destaque
   pontual (nunca como cor de fundo dominante ou CTA principal).
   ============================================================ */
:root{
  --green-950:#03130D;
  --green-900:#0F3D2E;
  --green-800:#12432F;
  --green-700:#146C43;
  --green-600:#1B8752;
  --green-500:#22A468;
  --green-300:#7CDBA6;
  --green-050:#EAF4EE;
  --lime:#B8E986;
  --gold-500:#D6A63A;
  --gold-600:#BE8E25;
  --ink-900:#16211C;
  --ink-700:#3C4A43;
  --ink-500:#657267;
  --paper:#FBFAF7;
  --paper-alt:#F3F1EA;
  --line:#DDE4DE;
  --line-dark:rgba(124,219,166,.16);
  --white:#FFFFFF;
  --danger:#B3261E;
  --success:#1B8752;
  --radius-sm:10px;
  --radius-md:18px;
  --radius-lg:26px;
  --shadow-sm:0 1px 2px rgba(15,61,46,.06), 0 1px 1px rgba(15,61,46,.04);
  --shadow-md:0 10px 28px rgba(15,61,46,.10);
  --shadow-lg:0 24px 56px rgba(15,61,46,.16);
  --font-display:'Plus Jakarta Sans', 'Manrope', system-ui, sans-serif;
  --font-body:'Inter', system-ui, sans-serif;
  --container:1220px;
  --header-h:72px;
  --topbar-h:38px;
  --ease:cubic-bezier(.16,.84,.44,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + var(--topbar-h) + 16px);}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}
body{
  margin:0; font-family:var(--font-body); color:var(--ink-900); background:var(--paper);
  line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--font-display); line-height:1.15; margin:0; color:var(--green-900);}
p{margin:0;}
button{font-family:inherit; cursor:pointer;}
input,select,textarea{font-family:inherit; font-size:16px;}
ul{list-style:none; margin:0; padding:0;}
.container{max-width:var(--container); margin-inline:auto; padding-inline:20px; position:relative;}
@media (min-width:900px){.container{padding-inline:32px;}}

/* Skip link */
.skip-link{position:absolute; left:12px; top:-60px; background:var(--green-900); color:#fff; padding:12px 18px; border-radius:var(--radius-sm); z-index:1000; transition:top .2s ease; font-weight:600; text-decoration:none;}
.skip-link:focus{top:12px;}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible, [tabindex]:focus-visible{outline:3px solid var(--gold-500); outline-offset:2px; border-radius:6px;}

/* Reveal on scroll (usado pelo motion system no fim do JS) */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .6s var(--ease), transform .6s var(--ease);}
.reveal.is-visible{opacity:1; transform:none;}

/* Section rhythm */
.section{padding-block:64px; position:relative;}
@media (min-width:900px){.section{padding-block:100px;}}
.section--alt{background:var(--green-050);}
.section--dark{background:var(--green-900); color:#EFF6F1;}
.section--dark h2, .section--dark h3{color:#fff;}
.eyebrow{display:inline-flex; align-items:center; gap:8px; font-family:var(--font-display); font-weight:700; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--green-700);}
.section--dark .eyebrow{color:var(--green-300);}
.eyebrow::before{content:""; width:22px; height:2px; background:var(--gold-500); display:inline-block; border-radius:2px;}
.section-head{max-width:640px; margin-bottom:40px;}
.section-head h2{font-size:clamp(1.6rem,3vw,2.35rem); margin-bottom:12px; margin-top:14px;}
.section-head p{color:var(--ink-500); font-size:1.05rem;}
.section--dark .section-head p{color:#BFD3C6;}

/* Buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--font-display); font-weight:700; font-size:.95rem; padding:14px 24px; border-radius:999px; border:2px solid transparent; min-height:48px; text-decoration:none; transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .2s ease, color .2s ease, border-color .2s ease; white-space:nowrap; position:relative; overflow:hidden;}
.btn:active{transform:translateY(1px);}
.btn::after{content:""; position:absolute; inset:-100% -40%; background:linear-gradient(100deg,transparent 38%,rgba(255,255,255,.35),transparent 62%); transform:translateX(-70%); transition:transform .55s ease; pointer-events:none;}
.btn:hover::after{transform:translateX(70%);}
.btn-primary{background:linear-gradient(135deg,var(--green-700),var(--green-600)); color:#fff; box-shadow:0 10px 26px rgba(20,108,67,.28);}
.btn-primary:hover{background:linear-gradient(135deg,var(--green-800),var(--green-700)); box-shadow:0 14px 34px rgba(20,108,67,.36), 0 0 0 3px rgba(214,166,58,.15); transform:translateY(-2px);}
.btn-secondary{background:transparent; border-color:currentColor; color:var(--green-900);}
.btn-secondary:hover{background:var(--green-900); color:#fff; border-color:var(--green-900);}
.section--dark .btn-secondary{color:#fff;}
.section--dark .btn-secondary:hover{background:#fff; color:var(--green-900);}
.btn-whatsapp{background:#1FAA59; color:#fff;}
.btn-whatsapp:hover{background:#178c47; transform:translateY(-2px);}
.btn-ghost{background:transparent; color:var(--green-700); border:2px solid var(--line);}
.btn-ghost:hover{border-color:var(--green-700); transform:translateY(-2px);}
.section--dark .btn-ghost{color:#EFF6F1; border-color:rgba(255,255,255,.22);}
.section--dark .btn-ghost:hover{border-color:var(--green-300); color:var(--green-300);}
.btn-block{width:100%;}
.btn svg{width:18px; height:18px; flex:none;}

/* ============ TOPBAR ============ */
.topbar{background:var(--green-950); color:#DCEAE1; font-size:.82rem; position:relative; z-index:60;}
.topbar-inner{display:flex; align-items:center; justify-content:space-between; gap:16px; height:var(--topbar-h);}
.topbar-links{display:none; align-items:center; gap:22px;}
.topbar-links a{text-decoration:none; opacity:.9; display:flex; align-items:center; gap:6px;}
.topbar-links a:hover{opacity:1; color:var(--gold-500);}
@media (min-width:900px){.topbar-links{display:flex;}}
.topbar-mail{opacity:.85;}
.quick-toggle{background:none; border:none; color:#fff; font-weight:600; font-size:.82rem; display:flex; align-items:center; gap:6px; padding:6px 4px;}
@media (min-width:900px){.quick-toggle{display:none;}}
.quick-panel{display:none; position:absolute; top:100%; left:0; right:0; background:var(--green-800); padding:14px 20px 18px; box-shadow:var(--shadow-md);}
.quick-panel.is-open{display:block;}
.quick-panel ul{display:flex; flex-direction:column; gap:10px;}
.quick-panel a{color:#fff; text-decoration:none; font-size:.92rem; display:flex; gap:8px; align-items:center;}

/* ============ HEADER ============ */
.site-header{position:sticky; top:0; z-index:55; background:rgba(251,250,247,.94); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); box-shadow:0 1px 0 rgba(15,61,46,.02);}
.header-inner{display:flex; align-items:center; justify-content:space-between; height:var(--header-h); gap:20px;}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; flex:none;}
.brand img{height:40px; width:auto;}
.main-nav{display:none;}
@media (min-width:1080px){
  .main-nav{display:flex; align-items:center; gap:26px; margin-inline:auto;}
  .main-nav a{text-decoration:none; font-weight:600; font-size:.92rem; color:var(--ink-700); padding:8px 2px; position:relative;}
  .main-nav a:hover{color:var(--green-700);}
  .main-nav a::after{content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--gold-500); transform:scaleX(0); transition:transform .15s ease;}
  .main-nav a:hover::after{transform:scaleX(1);}
}
.header-actions{display:flex; align-items:center; gap:10px;}
.header-actions .btn{padding:11px 18px; font-size:.86rem;}
.menu-toggle{display:inline-flex; background:none; border:2px solid var(--line); border-radius:var(--radius-sm); width:44px; height:44px; align-items:center; justify-content:center;}
@media (min-width:1080px){.menu-toggle{display:none;}}
.header-actions .btn-secondary.desktop-only{display:none;}
@media (min-width:1080px){.header-actions .btn-secondary.desktop-only{display:inline-flex;}}

/* Mobile nav drawer */
.mobile-nav{display:none; position:fixed; inset:var(--topbar-h) 0 0 0; top:calc(var(--topbar-h) + var(--header-h)); background:var(--paper); z-index:50; overflow-y:auto; border-top:1px solid var(--line);}
.mobile-nav.is-open{display:block;}
@media (min-width:1080px){.mobile-nav{display:none !important;}}
.mobile-nav .container{padding-block:24px;}
.mobile-nav ul{display:flex; flex-direction:column; gap:4px;}
.mobile-nav a{display:block; padding:14px 6px; text-decoration:none; font-weight:600; font-size:1.05rem; color:var(--ink-900); border-bottom:1px solid var(--line);}
.mobile-nav .btn{margin-top:18px;}

/* ============ HERO (zona escura #1) ============ */
.hero{position:relative; overflow:hidden; background:radial-gradient(120% 90% at 78% 15%,rgba(34,164,104,.22),transparent 32%), linear-gradient(150deg,var(--green-950) 0%,var(--green-900) 55%,#0C3327 100%); color:#fff; padding-block:64px 150px;}
@media (min-width:900px){.hero{padding-block:88px 168px;}}
.hero::before{content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(124,219,166,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(124,219,166,.055) 1px,transparent 1px); background-size:64px 64px; -webkit-mask-image:linear-gradient(115deg,transparent 8%,#000 55%,transparent 100%); mask-image:linear-gradient(115deg,transparent 8%,#000 55%,transparent 100%); transform:perspective(560px) rotateX(56deg) scale(1.5); transform-origin:center bottom; opacity:.8; pointer-events:none;}
.hero-route{position:absolute; inset:0; opacity:.4; pointer-events:none;}
.hero-route path{animation:routeFlow 16s linear infinite;}
@keyframes routeFlow{to{stroke-dashoffset:-240;}}
.hero-grid{display:grid; gap:36px; position:relative; z-index:1;}
@media (min-width:960px){.hero-grid{grid-template-columns:1.05fr .95fr; align-items:center; gap:54px;}}
.hero-badge{display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.08); border:1px solid rgba(124,219,166,.22); padding:8px 14px; border-radius:999px; font-size:.82rem; font-weight:600; margin-bottom:18px; color:#DCEAE1; backdrop-filter:blur(8px);}
.hero-badge svg{width:16px; height:16px; color:var(--gold-500);}
.hero h1{font-size:clamp(2.05rem,4.3vw,3.15rem); color:#fff; margin-bottom:18px; max-width:16ch; letter-spacing:-.01em;}
.hero h1 .future{display:inline; color:transparent; background:linear-gradient(92deg,var(--green-300),var(--lime) 65%); -webkit-background-clip:text; background-clip:text;}
.hero p.lead{font-size:1.1rem; color:#D8E6DE; max-width:52ch; margin-bottom:28px; line-height:1.65;}
.hero-ctas{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:26px;}
.hero-trust{display:flex; align-items:center; gap:10px; font-size:.9rem; color:#BFD3C6;}
.hero-trust svg{width:18px; height:18px; color:var(--gold-500); flex:none;}

/* Composição visual do hero — sem foto real disponível: rede orbital + logo */
.hero-media{position:relative; display:flex; align-items:center; justify-content:center; min-height:340px;}
.future-orbit{position:relative; width:min(420px,100%); aspect-ratio:1; border-radius:50%; display:grid; place-items:center;}
.future-orbit::before,.future-orbit::after{content:""; position:absolute; border-radius:50%; border:1px solid rgba(124,219,166,.24); inset:4%;}
.future-orbit::after{inset:16%; border-style:dashed;}
html:not(.reduced-motion) .future-orbit::before{animation:spin 34s linear infinite;}
html:not(.reduced-motion) .future-orbit::after{animation:spin 24s linear infinite reverse;}
@keyframes spin{to{transform:rotate(360deg);}}
.future-core{position:relative; width:56%; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; background:radial-gradient(circle at 35% 30%,rgba(184,233,134,.22),rgba(34,164,104,.10) 40%,rgba(3,19,13,.7) 72%); border:1px solid rgba(124,219,166,.28); box-shadow:inset 0 0 60px rgba(34,164,104,.18), 0 0 60px rgba(34,164,104,.14);}
.future-core img{width:60%; filter:brightness(0) invert(1); opacity:.95;}
.orbit-dot{position:absolute; width:10px; height:10px; border-radius:50%; background:var(--lime); box-shadow:0 0 0 6px rgba(184,233,134,.08), 0 0 18px rgba(184,233,134,.5);}
.orbit-dot.one{top:6%; left:48%;} .orbit-dot.two{right:8%; bottom:30%;} .orbit-dot.three{left:10%; bottom:18%;}
.float-stat{position:absolute; padding:11px 15px; border:1px solid rgba(124,219,166,.22); border-radius:14px; background:rgba(6,31,21,.78); backdrop-filter:blur(14px); color:#EFF9F3; box-shadow:0 14px 34px rgba(0,0,0,.28); font-size:.76rem;}
.float-stat strong{display:block; color:#fff; font-family:var(--font-display); font-size:.98rem;}
.float-stat.a{top:8%; right:-2%;} .float-stat.b{left:-4%; bottom:24%;} .float-stat.c{right:2%; bottom:2%;}
html:not(.reduced-motion) .float-stat{animation:floatY 5.5s ease-in-out infinite;}
html:not(.reduced-motion) .float-stat.b{animation-delay:-1.6s;} html:not(.reduced-motion) .float-stat.c{animation-delay:-3.2s;}
@keyframes floatY{50%{transform:translateY(-9px);}}
@media (max-width:640px){.float-stat{display:none;} .float-stat.a{display:flex; position:static; margin-top:14px;} .future-orbit{width:260px;}}

/* Buscador rápido — glass sobre a borda do hero */
.hero-quickpick{grid-column:1/-1; position:relative; z-index:2; margin-top:-104px; background:rgba(255,255,255,.96); color:var(--ink-900); border-radius:var(--radius-md); box-shadow:var(--shadow-lg); padding:18px; display:grid; gap:12px; border:1px solid rgba(255,255,255,.5);}
@media (min-width:640px){.hero-quickpick{grid-template-columns:1fr 1fr auto; align-items:end;}}
@media (max-width:640px){.hero-quickpick{margin-top:-52px;}}

/* ============ ROTAS RÁPIDAS (journey) — card claro sobre a base do hero ============ */
#journey{position:relative; z-index:3; margin-top:24px; margin-bottom:-8px;}
.journey-shell{display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md);}
.journey-link{position:relative; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:4px; min-height:112px; padding:18px 44px 18px 22px; background:#fff; text-decoration:none; color:var(--ink-900); transition:background .2s ease, transform .2s ease;}
.journey-link:hover{background:var(--green-050); transform:translateY(-2px);}
.journey-number{display:block; font-family:var(--font-display); font-weight:800; font-size:1.3rem; color:var(--green-300); background:linear-gradient(90deg,var(--green-700),var(--green-500)); -webkit-background-clip:text; background-clip:text; color:transparent; opacity:.9;}
.journey-copy{display:flex; flex-direction:column; min-width:0;}
.journey-copy strong{font-family:var(--font-display); font-size:.94rem; color:var(--ink-900);}
.journey-copy span{font-size:.78rem; color:var(--ink-500); line-height:1.4; margin-top:2px;}
.journey-go{position:absolute; right:16px; top:50%; transform:translateY(-50%); color:var(--green-700); font-size:1.1rem; transition:transform .2s ease;}
.journey-link:hover .journey-go{transform:translate(4px,-50%);}
@media (max-width:1000px){.journey-shell{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.journey-shell{grid-template-columns:1fr; border-radius:var(--radius-md);} .journey-link{min-height:96px;}}

/* ============ BUSCADOR ============ */
.buscador-card{background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-md); border:1px solid var(--line); padding:28px 24px;}
.field{display:flex; flex-direction:column; gap:6px;}
.field label{font-size:.82rem; font-weight:700; color:var(--ink-700);}
.field select, .field input{border:1.5px solid var(--line); border-radius:var(--radius-sm); padding:12px 14px; background:var(--paper); min-height:48px;}
.field select:focus, .field input:focus{border-color:var(--green-700);}
.buscador-grid{display:grid; gap:16px;}
@media (min-width:820px){.buscador-grid{grid-template-columns:repeat(3,1fr) auto; align-items:end;}}
.buscador-result{margin-top:18px; font-size:.92rem; color:var(--ink-700); min-height:1.4em;}
.buscador-result[data-state="found"]{color:var(--green-700); font-weight:600;}
.buscador-result[data-state="none"]{color:var(--danger); font-weight:600;}

/* ============ CARDS GERAIS ============ */
.grid{display:grid; gap:22px;}
.grid-3{grid-template-columns:1fr;}
@media (min-width:640px){.grid-3{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1000px){.grid-3{grid-template-columns:repeat(3,1fr);}}
.grid-4{grid-template-columns:1fr;}
@media (min-width:640px){.grid-4{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1100px){.grid-4{grid-template-columns:repeat(4,1fr);}}
.card{background:#fff; border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); transition:box-shadow .25s var(--ease), transform .25s var(--ease), border-color .25s ease; display:flex; flex-direction:column; overflow:hidden;}
.card:hover{box-shadow:var(--shadow-md); transform:translateY(-4px); border-color:rgba(20,108,67,.28);}

/* ---- Curso: card premium com foto grande + faixa de título ---- */
#cursos{background:var(--paper);}
#cursos .grid{align-items:stretch;}
.course-card{border-radius:24px; overflow:hidden;}
.course-visual{position:relative; height:230px; min-height:230px; overflow:hidden; background:var(--green-050);}
.course-visual img{width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .6s var(--ease), filter .3s ease;}
.course-card:hover .course-visual img{transform:scale(1.06);}
.course-visual::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(3,19,13,.02),rgba(3,19,13,.55));}
.course-proof{position:absolute; z-index:2; left:14px; top:14px; display:inline-flex; align-items:center; gap:6px; padding:7px 11px; border-radius:999px; background:rgba(255,255,255,.94); color:var(--green-900); font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.03em; box-shadow:0 6px 18px rgba(0,0,0,.18);}
.course-benefits{position:absolute; z-index:2; left:12px; right:12px; bottom:12px; display:flex; flex-direction:column; align-items:flex-start; gap:6px;}
.course-benefit{display:flex; align-items:center; gap:7px; max-width:94%; padding:7px 10px; border-radius:12px; background:rgba(255,255,255,.95); color:var(--green-900); font-size:.72rem; font-weight:700; line-height:1.15; box-shadow:0 6px 16px rgba(0,0,0,.14); backdrop-filter:blur(6px);}
.course-check{width:17px; height:17px; flex:none; border-radius:50%; display:grid; place-items:center; background:var(--green-600); color:#fff; font-size:.64rem;}
.course-title-band{padding:16px 20px 2px; background:#fff;}
.course-title-band h3{font-size:clamp(1.15rem,2vw,1.35rem); color:var(--green-900);}
.course-title-band span{display:block; color:var(--green-700); font-family:var(--font-display); font-size:.85rem; font-weight:600; margin-top:1px;}
.course-card .body{padding:14px 20px 20px; display:flex; flex-direction:column; gap:12px; flex:1;}
.tag-row{display:flex; gap:8px; flex-wrap:wrap;}
.tag{font-size:.7rem; font-weight:700; letter-spacing:.03em; text-transform:uppercase; padding:5px 10px; border-radius:999px; background:var(--green-050); color:var(--green-700);}
.course-desc{color:var(--ink-500); font-size:.9rem; line-height:1.6; margin:0;}
.course-card .actions{display:flex; flex-direction:column; gap:8px; margin-top:auto; padding-top:4px;}
@media (min-width:1100px){#cursos .grid-4{grid-template-columns:repeat(4,1fr);}}
@media (max-width:640px){.course-visual{height:200px; min-height:200px;}}

/* Ingresso card */
.ingresso-card{padding:24px; gap:12px;}
.ingresso-card .icon{width:48px; height:48px; border-radius:var(--radius-sm); background:var(--green-050); color:var(--green-700); display:flex; align-items:center; justify-content:center; margin-bottom:6px;}
.ingresso-card.is-pending{border-style:dashed;}
.ingresso-card.is-pending .icon{background:#FBF1DC; color:var(--gold-600);}
.ingresso-card h3{font-size:1.05rem;}
.ingresso-card p{color:var(--ink-500); font-size:.92rem;}
.ingresso-card .actions{margin-top:8px;}
#ingresso .grid{align-items:stretch;}

/* ============ DIFERENCIAIS (zona escura #2) ============ */
.diff-item{display:flex; gap:16px; align-items:flex-start; padding:22px; border-radius:var(--radius-md); border:1px solid rgba(124,219,166,.14); background:linear-gradient(150deg,rgba(124,219,166,.05),rgba(255,255,255,.01)); transition:border-color .2s ease, transform .2s ease;}
.diff-item:hover{border-color:rgba(124,219,166,.4); transform:translateY(-3px);}
.diff-item .icon{width:46px; height:46px; border-radius:var(--radius-sm); background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; flex:none; color:var(--gold-500); border:1px solid rgba(255,255,255,.16);}
.diff-item h3{font-size:1.02rem; margin-bottom:4px;}
.diff-item p{font-size:.9rem; color:#C7D9CD;}

/* ============ CAMPI ============ */
.campus-tabs{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px;}
.campus-tab{border:1.5px solid var(--line); background:#fff; border-radius:999px; padding:10px 18px; font-weight:700; font-size:.88rem; color:var(--ink-700); min-height:44px;}
.campus-tab[aria-selected="true"]{background:var(--green-700); border-color:var(--green-700); color:#fff;}
.campus-panel{background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:28px; display:grid; gap:24px;}
@media (min-width:760px){.campus-panel{grid-template-columns:1.1fr .9fr;}}
.campus-panel h3{font-size:1.4rem; margin-bottom:6px;}
.campus-info p{color:var(--ink-500); margin-bottom:4px;}
.campus-phones{display:flex; flex-direction:column; gap:4px; margin:14px 0 20px;}
.campus-phones a{text-decoration:none; color:var(--ink-700); font-weight:600; font-size:.95rem;}
.campus-phones a:hover{color:var(--green-700);}
.campus-actions{display:flex; flex-wrap:wrap; gap:10px;}
.campus-map{border-radius:var(--radius-md); background:linear-gradient(135deg,var(--green-050),#E4F0E8); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; min-height:200px; color:var(--green-700); text-align:center; padding:20px; font-size:.85rem; border:1px dashed var(--green-600);}
.campus-map svg{width:40px; height:40px;}
.campus-map strong{font-family:var(--font-display); color:var(--green-900); font-size:1rem;}
.campus-map span{max-width:28ch; color:var(--ink-500);}

/* ============ PORTAIS ACADÊMICOS ============ */
.portals-grid{display:grid; gap:16px; grid-template-columns:1fr;}
@media (min-width:640px){.portals-grid{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1100px){.portals-grid{grid-template-columns:repeat(4,1fr);}}
.portal-card{position:relative; min-height:180px; padding:24px; border:1px solid var(--line); border-radius:var(--radius-md); background:#fff; color:var(--ink-900); text-decoration:none; overflow:hidden; transition:transform .25s var(--ease), border-color .25s ease, box-shadow .25s ease; box-shadow:var(--shadow-sm);}
.portal-card::before{content:""; position:absolute; width:110px; height:110px; right:-40px; top:-40px; border-radius:50%; background:radial-gradient(circle,rgba(20,108,67,.10),transparent 68%); transition:transform .3s ease;}
.portal-card:hover{transform:translateY(-4px); border-color:rgba(20,108,67,.3); box-shadow:var(--shadow-md);}
.portal-card:hover::before{transform:scale(1.3);}
.portal-icon{width:44px; height:44px; display:grid; place-items:center; border-radius:12px; background:var(--green-050); color:var(--green-700); margin-bottom:20px;}
.portal-icon svg{width:22px; height:22px;}
.portal-card h3{font-size:1.02rem; margin-bottom:8px; color:var(--green-900);}
.portal-card p{font-size:.85rem; color:var(--ink-500); line-height:1.5;}
.portal-arrow{position:absolute; right:20px; bottom:20px; color:var(--green-700); transition:transform .25s ease;}
.portal-card:hover .portal-arrow{transform:translate(3px,-3px);}

/* ============ QUEM SOMOS / INSTITUCIONAL ============ */
.about-section{background:linear-gradient(180deg,#F8FBF9,var(--green-050));}
.about-story{display:grid; grid-template-columns:1fr; gap:22px; margin-bottom:22px;}
@media (min-width:900px){.about-story{grid-template-columns:1.05fr .95fr;}}
.about-visual,.about-copy,.about-video,.about-post{border-radius:26px; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-sm);}
/* about-visual = único painel "spotlight" escuro dentro da seção clara */
.about-visual{position:relative; min-height:420px; margin:0; background:radial-gradient(circle at 20% 15%,rgba(184,233,134,.16),transparent 34%), linear-gradient(150deg,var(--green-950),#0A3322); isolation:isolate;}
.mec-trust{position:relative; z-index:1; width:100%; height:100%; min-height:420px; padding:38px 30px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#dff5e8;}
.mec-trust-logo{width:min(220px,64%); height:auto!important; position:static!important; max-width:100%!important; object-fit:contain!important; filter:brightness(0) invert(1)!important; margin-bottom:22px;}
.mec-trust .eyebrow{color:var(--green-300); margin-bottom:10px;}
.mec-trust h3{color:#fff; font-size:clamp(1.3rem,2.4vw,1.8rem); max-width:18ch; margin-bottom:10px;}
.mec-trust>p{color:#a9c4b3; max-width:40ch; line-height:1.6; margin-bottom:22px;}
.mec-credentials{display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:center; width:min(410px,100%); padding:16px; border:1px solid rgba(124,219,166,.2); border-radius:20px; background:rgba(255,255,255,.06); backdrop-filter:blur(10px);}
.mec-qr{display:block; width:112px; height:112px; padding:7px; border-radius:12px; background:#fff;}
.mec-qr img{position:static!important; width:100%!important; height:100%!important; max-width:100%!important; object-fit:contain!important;}
.mec-copy{text-align:left;}
.mec-copy strong{display:block; color:#fff; font-family:var(--font-display); font-size:.95rem; margin-bottom:6px;}
.mec-copy span{display:block; color:#9ebaa9; font-size:.78rem; line-height:1.45;}
.mec-copy a{display:inline-flex; margin-top:9px; color:var(--green-300); font-size:.78rem; font-weight:700; text-decoration:none;}
.about-copy{padding:36px; background:#fff; color:var(--ink-700); display:flex; flex-direction:column; justify-content:center;}
.about-year{font:800 clamp(3rem,6.5vw,4.5rem)/.9 var(--font-display); color:transparent; -webkit-text-stroke:1.5px rgba(20,108,67,.4); margin-bottom:22px; letter-spacing:-.04em;}
.about-copy h3{color:var(--green-900); font-size:clamp(1.3rem,2.4vw,1.7rem); margin-bottom:14px;}
.about-copy p{line-height:1.7; margin-bottom:14px; color:var(--ink-700);}
.about-values{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px;}
.about-value{padding:14px; border-radius:15px; background:var(--green-050); border:1px solid var(--line);}
.about-value strong{display:block; color:var(--green-900); font-family:var(--font-display); font-size:.86rem;}
.about-value span{display:block; color:var(--ink-500); font-size:.76rem; margin-top:3px;}
.about-posts{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:22px;}
.about-post{position:relative; min-height:230px; background:var(--green-050); color:#fff;}
.about-post img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.about-post::after{content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(3,19,13,.88),rgba(3,19,13,.05) 65%);}
.about-post:hover img{transform:scale(1.04);}
.about-post-copy{position:absolute; z-index:1; left:20px; right:20px; bottom:18px;}
.about-post-copy small{color:var(--green-300); text-transform:uppercase; letter-spacing:.06em; font-weight:700; font-size:.7rem;}
.about-post-copy h3{color:#fff; font-size:1rem; margin-top:6px;}
.about-video{display:grid; grid-template-columns:1fr; background:#fff; color:var(--ink-700);}
@media (min-width:820px){.about-video{grid-template-columns:1fr 1.2fr;}}
.about-video-copy{padding:34px; display:flex; flex-direction:column; justify-content:center;}
.about-video-copy h3{color:var(--green-900); font-size:clamp(1.2rem,2.2vw,1.6rem); margin:8px 0 12px;}
.about-video-copy p{color:var(--ink-500); line-height:1.6; margin-bottom:18px;}
.about-video-frame{position:relative; min-height:260px; background:linear-gradient(150deg,var(--green-050),#E4F0E8); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; padding:24px; border-left:1px solid var(--line);}
.about-video-frame svg{width:38px; height:38px; color:var(--green-600);}
.about-video-frame strong{font-family:var(--font-display); color:var(--green-900); font-size:.95rem;}
.about-video-frame span{color:var(--ink-500); font-size:.8rem; max-width:26ch;}
@media (max-width:900px){.about-story,.about-video{grid-template-columns:1fr;} .about-visual{min-height:360px;} .about-posts{grid-template-columns:1fr 1fr;} .about-post:last-child{grid-column:1/-1;}}
@media (max-width:600px){.about-copy{padding:26px 20px;} .about-posts{grid-template-columns:1fr;} .about-post:last-child{grid-column:auto;} .about-video-copy{padding:26px 20px;} .about-video-frame{min-height:200px; border-left:none; border-top:1px solid var(--line);}}

/* ============ NOTÍCIAS ============
   Sem publicações reais no momento: seção mantida no DOM/JS para
   integração futura (ver UNINORTE_DATA.news no script), mas oculta
   visualmente para não parecer conteúdo publicado real. */
#noticias{display:none;}
.news-card .thumb{aspect-ratio:16/9; background:var(--paper-alt); position:relative;}
.news-card .thumb .badge-demo{position:absolute; top:10px; left:10px; background:var(--gold-500); color:var(--green-900); font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; padding:4px 8px; border-radius:6px;}
.news-card .body{padding:18px; display:flex; flex-direction:column; gap:8px;}
.news-meta{display:flex; gap:10px; font-size:.76rem; color:var(--ink-500); text-transform:uppercase; font-weight:700; letter-spacing:.03em;}
.news-card a.read-more{font-weight:700; color:var(--green-700); text-decoration:none; font-size:.9rem; margin-top:auto;}

/* ============ FAQ ============ */
.faq-list{display:flex; flex-direction:column; gap:12px; max-width:820px;}
.faq-item{border:1px solid var(--line); border-radius:var(--radius-md); background:#fff; overflow:hidden;}
.faq-item summary{list-style:none; cursor:pointer; padding:18px 20px; display:flex; justify-content:space-between; align-items:center; font-weight:700; font-family:var(--font-display); gap:16px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary .chev{transition:transform .2s ease; flex:none; color:var(--green-700);}
.faq-item[open] summary .chev{transform:rotate(180deg);}
.faq-item .faq-body{padding:0 20px 20px; color:var(--ink-700); font-size:.95rem;}

/* ============ CTA FINAL (zona escura #3, junto ao rodapé) ============ */
.cta-final{text-align:center; position:relative; overflow:hidden; background:radial-gradient(70% 100% at 50% 20%,rgba(34,164,104,.28),transparent 60%), linear-gradient(150deg,var(--green-950),var(--green-900));}
.cta-final .section-head{margin-inline:auto; text-align:center;}
.cta-final .btn-row{display:flex; flex-wrap:wrap; justify-content:center; gap:14px; position:relative; z-index:1;}

/* ============ FORM ============ */
#formulario{background:var(--paper);}
.lead-form{background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-md); padding:32px 24px;}
@media (min-width:900px){.lead-form{padding:40px;}}
.lead-form .form-grid{display:grid; gap:18px;}
@media (min-width:640px){.lead-form .form-grid{grid-template-columns:1fr 1fr;}}
.form-grid .full{grid-column:1/-1;}
.field-error{color:var(--danger); font-size:.8rem; min-height:1.1em;}
.field.has-error select, .field.has-error input{border-color:var(--danger);}
.consent-row{display:flex; gap:10px; align-items:flex-start; grid-column:1/-1;}
.consent-row input{margin-top:4px; width:18px; height:18px; flex:none;}
.consent-row label{font-size:.85rem; color:var(--ink-700);}
.form-status{grid-column:1/-1; border-radius:var(--radius-sm); padding:14px 16px; font-size:.9rem; font-weight:600; display:none;}
.form-status.is-visible{display:block;}
.form-status.status-success{background:#E7F6EC; color:var(--success);}
.form-status.status-error{background:#FBEAE9; color:var(--danger);}
.form-status.status-loading{background:var(--paper-alt); color:var(--ink-700);}

/* ============ FOOTER ============ */
.site-footer{background:var(--green-950); color:#CBDDD1; padding-block:56px 28px;}
.footer-top{display:grid; gap:40px;}
@media (min-width:820px){.footer-top{grid-template-columns:1.2fr repeat(4,1fr); gap:24px;}}
.footer-brand img{height:38px; margin-bottom:14px; filter:brightness(0) invert(1);}
.footer-brand p{font-size:.88rem; color:#A9C2B3; max-width:34ch;}
.footer-social{display:flex; gap:10px; margin-top:16px;}
.footer-social a{width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; text-decoration:none; color:#fff;}
.footer-social a:hover{background:var(--gold-500); border-color:var(--gold-500); color:var(--green-900);}
.footer-col h4{color:#fff; font-size:.85rem; text-transform:uppercase; letter-spacing:.05em; margin-bottom:14px;}
.footer-col ul{display:flex; flex-direction:column; gap:9px;}
.footer-col a{color:#CBDDD1; text-decoration:none; font-size:.9rem;}
.footer-col a:hover{color:var(--gold-500);}
.footer-bottom{margin-top:44px; padding-top:22px; border-top:1px solid rgba(255,255,255,.12); display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; font-size:.8rem; color:#94AC9E;}
.footer-legal{display:flex; gap:16px; flex-wrap:wrap;}
.footer-legal a{color:#94AC9E; text-decoration:none;}
.footer-legal a:hover{color:#fff;}

/* ============ WHATSAPP FLUTUANTE ============ */
.wa-float{position:fixed; right:18px; bottom:88px; z-index:70; background:#1FAA59; color:#fff; border:none; width:58px; height:58px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-lg); text-decoration:none;}
.wa-float svg{width:28px; height:28px;}
@media (min-width:820px){.wa-float{bottom:28px;}}

/* Barra inferior mobile */
.mobile-bar{position:fixed; left:0; right:0; bottom:0; z-index:65; display:flex; gap:10px; background:#fff; border-top:1px solid var(--line); padding:10px 14px calc(10px + env(safe-area-inset-bottom)); box-shadow:0 -6px 18px rgba(15,61,46,.08);}
.mobile-bar .btn{flex:1; padding:12px 14px; font-size:.85rem;}
@media (min-width:820px){.mobile-bar{display:none;}}
body{padding-bottom:78px;}
@media (min-width:820px){body{padding-bottom:0;}}

.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.visually-hidden-focusable:not(:focus){position:absolute; width:1px; height:1px; overflow:hidden;}

/* ============ Responsivo — ajustes finos ============ */
@media (max-width:959px){
  .hero{padding-block:56px 132px;}
  .hero-grid{grid-template-columns:1fr!important;}
  .hero h1{font-size:clamp(2.1rem,9vw,3rem);}
}
@media (max-width:760px){
  .hero{padding-top:48px;}
  .section{padding-block:64px;}
}

/* =========================================================
   Página individual de curso — B.13
   ========================================================= */
.course-single{background:#fff;}
.course-single-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 82% 35%,rgba(48,157,102,.34),transparent 30%),linear-gradient(135deg,#031f15 0%,#073b29 58%,#0a4b34 100%);color:#fff;padding:72px 0 76px;}
.course-single-hero.has-image::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,28,19,.98) 0%,rgba(2,28,19,.9) 48%,rgba(2,28,19,.35) 100%),var(--course-hero-image) center/cover no-repeat;opacity:.82;}
.course-single-hero::after{content:"";position:absolute;width:560px;height:560px;border:1px solid rgba(141,231,174,.16);border-radius:50%;right:-120px;top:-180px;box-shadow:0 0 0 70px rgba(141,231,174,.035),0 0 0 140px rgba(141,231,174,.025);}
.course-single-hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr);gap:64px;align-items:center;z-index:1;}
.course-single-copy{position:relative;z-index:2;max-width:760px;}
.course-single-copy .eyebrow{color:#9CEBB4;margin:18px 0 10px;}
.course-single-copy h1{font-size:clamp(2.7rem,6vw,5rem);line-height:.98;color:#fff;margin:0;letter-spacing:-.035em;}
.course-single-lead{font-size:clamp(1.05rem,1.7vw,1.25rem);line-height:1.7;color:#D5E8DC;max-width:690px;margin:24px 0 0;}
.course-single-proof{display:inline-flex;padding:8px 12px;border-radius:999px;background:#fff;color:var(--green-900);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}
.course-single-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px;}
.course-single-tags span{padding:8px 12px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08);backdrop-filter:blur(8px);color:#F3F8F5;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;}
.course-single-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px;}
.course-single-hero .btn-secondary{border-color:rgba(255,255,255,.65);color:#fff;background:rgba(255,255,255,.04);}
.course-single-hero .btn-secondary:hover{background:#fff;color:var(--green-900);}
.course-facts-card{position:relative;z-index:2;border:1px solid rgba(255,255,255,.16);border-radius:26px;background:rgba(5,42,29,.76);box-shadow:0 28px 70px rgba(0,0,0,.25);backdrop-filter:blur(18px);padding:28px;}
.course-facts-kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#9CEBB4;}
.course-facts-card h2{font-size:1.45rem;color:#fff;margin:8px 0 22px;}
.course-facts-card dl{display:grid;gap:0;margin:0 0 22px;}
.course-facts-card dl div{display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.12);padding:13px 0;}
.course-facts-card dt{color:#AFCABD;font-size:.82rem;}
.course-facts-card dd{color:#fff;font-weight:700;text-align:right;margin:0;font-size:.9rem;}
.course-content-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr);gap:70px;align-items:start;}
.course-prose h2{font-size:clamp(1.8rem,3vw,2.55rem);margin:10px 0 22px;max-width:720px;}
.course-editor-content{color:var(--ink-500);font-size:1.03rem;line-height:1.82;}
.course-editor-content p+ p{margin-top:1.2em;}
.course-benefit-panel{border-radius:24px;background:var(--green-050);border:1px solid rgba(20,108,67,.11);padding:30px;position:sticky;top:120px;}
.course-benefit-panel h3{font-size:1.35rem;margin:8px 0 20px;}
.course-benefit-panel ul{list-style:none;padding:0;margin:0;display:grid;gap:12px;}
.course-benefit-panel li{display:flex;align-items:flex-start;gap:10px;color:var(--ink-700);line-height:1.45;}
.course-benefit-panel li span{width:22px;height:22px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--green-700);color:#fff;font-size:.72rem;margin-top:1px;}
.course-career-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.course-info-card{background:#fff;border:1px solid rgba(5,52,36,.1);border-radius:22px;padding:28px;box-shadow:0 10px 32px rgba(8,53,37,.055);}
.course-info-number{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:10px;background:var(--green-050);color:var(--green-700);font-size:.78rem;font-weight:800;}
.course-info-card h3{font-size:1.25rem;margin:18px 0 10px;}
.course-info-card p{color:var(--ink-500);line-height:1.7;margin:0;}
.course-areas-card ul{padding:0;margin:14px 0 0;list-style:none;display:grid;gap:9px;}
.course-areas-card li{position:relative;padding-left:18px;color:var(--ink-500);}
.course-areas-card li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--green-600);}
.course-final-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:50px;}
.course-final-cta h2{font-size:clamp(1.8rem,4vw,3rem);margin:10px 0 12px;color:#fff;}
.course-final-cta p{max-width:720px;color:#BFD3C6;font-size:1.02rem;}
@media (max-width:900px){.course-single-hero{padding:56px 0 62px}.course-single-hero-grid,.course-content-grid{grid-template-columns:1fr;gap:34px}.course-facts-card{max-width:620px}.course-benefit-panel{position:static}.course-career-grid{grid-template-columns:1fr}.course-final-cta-inner{align-items:flex-start;flex-direction:column;gap:24px}}
@media (max-width:640px){.course-single-copy h1{font-size:2.7rem}.course-single-actions{flex-direction:column}.course-single-actions .btn{width:100%}.course-facts-card{padding:22px}.course-final-cta .btn{width:100%}}

/* ============================================================
   Página individual de curso — B.14
   Refinamento visual, ritmo vertical e navegação em páginas internas
   ============================================================ */
.course-single .section{padding-block:72px;}
.course-single-hero{padding:58px 0 64px;}
.course-single-hero-grid{gap:52px;}
.course-single-copy h1{font-size:clamp(2.75rem,5.6vw,4.65rem);max-width:820px;}
.course-single-lead{margin-top:20px;max-width:720px;line-height:1.65;}
.course-single-tags{margin-top:24px;}
.course-single-actions{margin-top:28px;}
.course-facts-card{padding:26px;border-radius:24px;}
.course-facts-card h2{font-size:1.35rem;line-height:1.2;margin-bottom:18px;}
.course-facts-card dl div{padding:12px 0;}

#sobre-curso{background:#fff;}
.course-content-grid{gap:54px;}
.course-prose{max-width:820px;}
.course-prose h2{font-size:clamp(1.9rem,3vw,2.45rem);line-height:1.12;margin-bottom:20px;}
.course-editor-content{max-width:760px;font-size:1rem;line-height:1.75;}
.course-benefit-panel{padding:26px;border-radius:22px;top:calc(var(--header-h) + 24px);box-shadow:0 12px 34px rgba(8,53,37,.06);}
.course-benefit-panel h3{font-size:1.25rem;line-height:1.25;}

.course-career-section{background:linear-gradient(180deg,#EDF6F1 0%,#E7F2EC 100%);}
.course-career-section .section-head{margin-bottom:28px;}
.course-career-section .section-head h2{font-size:clamp(1.8rem,3vw,2.35rem);}
.course-career-grid{gap:18px;align-items:stretch;}
.course-info-card{display:flex;flex-direction:column;min-height:100%;padding:24px;border-radius:18px;box-shadow:0 10px 28px rgba(8,53,37,.06);}
.course-info-number{width:30px;height:30px;border-radius:9px;font-size:.72rem;}
.course-info-card h3{font-size:1.08rem;margin:14px 0 9px;}
.course-info-card p,.course-areas-card li{font-size:.93rem;line-height:1.62;}
.course-areas-card ul{margin-top:8px;gap:7px;}
.course-areas-card li{padding-left:16px;}
.course-areas-card li::before{width:6px;height:6px;top:.64em;}

.course-final-cta{padding-block:58px !important;background:linear-gradient(135deg,#0F3D2E 0%,#124B36 100%);}
.course-final-cta-inner{gap:36px;}
.course-final-cta h2{font-size:clamp(1.8rem,3.6vw,2.65rem);margin-top:8px;}
.course-final-cta p{font-size:.98rem;line-height:1.65;}
.course-final-cta .btn{min-width:190px;}

/* WordPress admin bar: evita sensação de sobreposição ao revisar páginas logado. */
body.admin-bar .site-header{top:32px;}
@media (max-width:782px){body.admin-bar .site-header{top:46px;}}

@media (max-width:900px){
  .course-single .section{padding-block:58px;}
  .course-single-hero{padding:48px 0 54px;}
  .course-single-hero-grid{gap:28px;}
  .course-content-grid{gap:28px;}
  .course-career-section .section-head{margin-bottom:22px;}
}
@media (max-width:640px){
  .course-single .section{padding-block:46px;}
  .course-single-hero{padding:40px 0 46px;}
  .course-single-copy h1{font-size:2.45rem;}
  .course-single-lead{font-size:1rem;}
  .course-single-tags{gap:7px;}
  .course-single-tags span{font-size:.72rem;padding:7px 10px;}
  .course-info-card{padding:20px;}
  .course-final-cta{padding-block:46px !important;}
}

/* ============================================================
   Página individual de curso — B.15
   Estrutura acadêmica dinâmica
   ============================================================ */
.course-academic-section{background:#fff;}
.course-academic-head{max-width:760px;margin-bottom:30px;}
.course-academic-head h2{font-size:clamp(1.9rem,3vw,2.5rem);margin:9px 0 12px;line-height:1.12;}
.course-academic-head p{color:var(--ink-500);font-size:1rem;line-height:1.7;margin:0;}
.course-academic-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px;}
.course-academic-facts article{padding:22px;border:1px solid rgba(5,52,36,.1);border-radius:18px;background:var(--green-050);}
.course-academic-facts span{display:block;color:var(--ink-500);font-size:.78rem;text-transform:uppercase;letter-spacing:.055em;font-weight:700;margin-bottom:8px;}
.course-academic-facts strong{display:block;color:var(--green-900);font-size:1.05rem;line-height:1.3;}
.course-curriculum-panel{display:grid;grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr);gap:44px;padding:30px;border-radius:22px;background:#073b29;color:#fff;align-items:start;}
.course-curriculum-panel .eyebrow{color:#9CEBB4;}
.course-curriculum-panel h3{color:#fff;font-size:1.45rem;line-height:1.2;margin:8px 0 0;}
.course-curriculum-panel ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;}
.course-curriculum-panel li{display:flex;gap:9px;align-items:flex-start;color:#D5E8DC;line-height:1.45;}
.course-curriculum-panel li span{display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:50%;background:#168657;color:#fff;font-size:.7rem;margin-top:1px;}
@media(max-width:900px){.course-academic-facts{grid-template-columns:repeat(2,minmax(0,1fr));}.course-curriculum-panel{grid-template-columns:1fr;gap:24px;}}
@media(max-width:640px){.course-academic-facts{grid-template-columns:1fr 1fr;gap:10px}.course-academic-facts article{padding:18px}.course-curriculum-panel{padding:22px}.course-curriculum-panel ul{grid-template-columns:1fr;}}


/* B.16 — matriz curricular por períodos */
.course-curriculum-accordion{display:grid;grid-template-columns:minmax(240px,.62fr) minmax(0,1.38fr);gap:34px;margin-top:26px;padding:30px;border-radius:24px;background:#073b29;color:#fff;align-items:start}
.course-curriculum-intro .eyebrow{color:#9CEBB4}.course-curriculum-intro h3{color:#fff;font-size:1.55rem;line-height:1.2;margin:8px 0 10px}.course-curriculum-intro p{margin:0;color:#cfe3d7;line-height:1.6}
.course-period-list{display:grid;gap:10px}.course-period{border:1px solid rgba(255,255,255,.14);border-radius:15px;background:rgba(255,255,255,.055);overflow:hidden}.course-period summary{list-style:none;cursor:pointer;padding:17px 19px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-weight:800;color:#fff}.course-period summary::-webkit-details-marker{display:none}.course-period-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#168657;font-size:1.15rem;transition:transform .2s ease}.course-period[open] .course-period-icon{transform:rotate(45deg)}.course-period ul{list-style:none;margin:0;padding:0 19px 18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px}.course-period li{position:relative;padding-left:16px;color:#d9e9df;line-height:1.45}.course-period li:before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:#50c985}
@media(max-width:900px){.course-curriculum-accordion{grid-template-columns:1fr;gap:22px}}@media(max-width:640px){.course-curriculum-accordion{padding:21px}.course-period ul{grid-template-columns:1fr}.course-period summary{padding:15px 16px}}


/* ===== B.17.1 — Matriz curricular refinada ===== */
.course-curriculum-accordion{
  align-items:start;
}
.course-period-list{
  gap:12px;
}
.course-period{
  border-color:rgba(255,255,255,.16);
  background:rgba(255,255,255,.055);
  transition:border-color .22s ease,background-color .22s ease,box-shadow .22s ease,transform .22s ease;
}
.course-period:hover{
  border-color:rgba(80,201,133,.42);
  background:rgba(255,255,255,.075);
}
.course-period[open]{
  border-color:rgba(80,201,133,.38);
  background:rgba(255,255,255,.07);
  box-shadow:0 12px 34px rgba(0,0,0,.10);
}
.course-period summary{
  display:grid;
  grid-template-columns:52px minmax(0,1fr) 34px;
  align-items:center;
  justify-content:initial;
  gap:18px;
  min-height:64px;
  padding:15px 18px;
  user-select:none;
  outline:none;
}
.course-period summary:focus-visible{
  box-shadow:inset 0 0 0 2px #78dfa5;
  border-radius:14px;
}
.course-period-number{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  color:#fff;
  font-size:.94rem;
  font-weight:900;
  font-variant-numeric:tabular-nums;
}
.course-period-title{
  color:#fff;
  font-size:1rem;
  font-weight:850;
  text-align:left;
}
.course-period-icon{
  justify-self:end;
  width:30px;
  height:30px;
  color:#fff;
  font-weight:900;
  line-height:1;
}
.course-period[open] .course-period-icon{
  transform:rotate(45deg);
}
.course-period-content{
  padding:0 18px 19px 88px;
}
.course-period-subjects,
.course-period .course-period-subjects{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 26px;
}
.course-period-subjects li,
.course-period .course-period-subjects li{
  position:relative;
  min-width:0;
  padding-left:17px;
  color:#e0eee5;
  line-height:1.5;
  overflow-wrap:anywhere;
}
.course-period-subjects li::before,
.course-period .course-period-subjects li::before{
  content:"";
  position:absolute;
  left:0;
  top:.65em;
  width:6px;
  height:6px;
  border-radius:999px;
  background:#50c985;
  box-shadow:0 0 0 3px rgba(80,201,133,.08);
}
.course-period.is-closing .course-period-content{
  opacity:.55;
}
@media(max-width:760px){
  .course-period summary{
    grid-template-columns:38px minmax(0,1fr) 30px;
    gap:12px;
    min-height:58px;
    padding:14px 14px;
  }
  .course-period-content{
    padding:0 14px 17px 64px;
  }
  .course-period-subjects,
  .course-period .course-period-subjects{
    grid-template-columns:1fr;
    gap:9px;
  }
  .course-period-title{
    font-size:.96rem;
  }
}
@media(max-width:480px){
  .course-period summary{
    grid-template-columns:32px minmax(0,1fr) 30px;
    gap:9px;
  }
  .course-period-content{
    padding-left:55px;
  }
}


/* ============================================================
   Página individual de curso — B.18
   Diferenciais, infraestrutura e experiências
   ============================================================ */
.course-experience-section{
  background:linear-gradient(180deg,#f7fbf8 0%,#edf7f1 100%);
}
.course-experience-head{
  max-width:780px;
  margin-bottom:30px;
}
.course-experience-head h2{
  font-size:clamp(2rem,3.2vw,2.65rem);
  line-height:1.1;
  margin:9px 0 12px;
  color:var(--green-900);
}
.course-experience-head p{
  max-width:700px;
  margin:0;
  color:var(--ink-500);
  font-size:1rem;
  line-height:1.7;
}
.course-experience-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.course-experience-card{
  position:relative;
  min-height:260px;
  padding:28px;
  border:1px solid rgba(5,52,36,.10);
  border-radius:22px;
  background:#fff;
  box-shadow:0 14px 38px rgba(5,52,36,.055);
}
.course-experience-card::after{
  content:"";
  position:absolute;
  inset:auto 28px 0 28px;
  height:3px;
  border-radius:999px 999px 0 0;
  background:linear-gradient(90deg,#168657,#79d99c);
  opacity:.78;
}
.course-experience-number{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  margin-bottom:18px;
  border-radius:10px;
  background:#e7f4ec;
  color:#067342;
  font-size:.78rem;
  font-weight:900;
}
.course-experience-card h3{
  margin:0 0 11px;
  color:var(--green-900);
  font-size:1.16rem;
  line-height:1.25;
}
.course-experience-card p{
  margin:0;
  color:var(--ink-500);
  font-size:.96rem;
  line-height:1.7;
}
.course-experience-highlights{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:18px 24px;
  align-items:start;
  margin-top:22px;
  padding:22px 24px;
  border:1px solid rgba(5,52,36,.09);
  border-radius:18px;
  background:rgba(255,255,255,.72);
}
.course-experience-highlights-label{
  color:var(--green-900);
  font-size:.82rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.045em;
  padding-top:7px;
}
.course-experience-tags{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
}
.course-experience-tags span{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:8px 13px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(5,52,36,.11);
  color:#0c5138;
  font-size:.84rem;
  font-weight:750;
  line-height:1.3;
}
@media(max-width:900px){
  .course-experience-grid{
    grid-template-columns:1fr;
  }
  .course-experience-card{
    min-height:0;
  }
}
@media(max-width:640px){
  .course-experience-card{
    padding:22px;
    border-radius:18px;
  }
  .course-experience-highlights{
    grid-template-columns:1fr;
    gap:12px;
    padding:19px;
  }
  .course-experience-highlights-label{
    padding-top:0;
  }
}


/* ============================================================
   Página individual de curso — B.19
   Ingresso, investimento e conversão
   ============================================================ */
.course-conversion-section{background:#fff;}
.course-conversion-layout{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(0,1.55fr);gap:46px;align-items:start;}
.course-conversion-copy{position:sticky;top:118px;padding:10px 0;}
.course-conversion-copy h2{margin:10px 0 14px;color:var(--green-900);font-size:clamp(2rem,3.1vw,2.7rem);line-height:1.08;}
.course-conversion-copy>p{max-width:520px;margin:0 0 24px;color:var(--ink-500);font-size:1rem;line-height:1.72;}
.course-conversion-cta{min-width:190px;justify-content:center;}
.course-conversion-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.course-conversion-card{position:relative;min-height:220px;padding:25px;border:1px solid rgba(5,52,36,.10);border-radius:20px;background:linear-gradient(180deg,#fbfdfc 0%,#f3f9f5 100%);box-shadow:0 12px 34px rgba(5,52,36,.045);}
.course-conversion-number{display:grid;place-items:center;width:34px;height:34px;margin-bottom:17px;border-radius:10px;background:#e3f3e9;color:#087745;font-size:.78rem;font-weight:900;}
.course-conversion-card h3{margin:0 0 10px;color:var(--green-900);font-size:1.12rem;line-height:1.25;}
.course-conversion-card p{margin:0;color:var(--ink-500);font-size:.94rem;line-height:1.7;}
@media(max-width:980px){.course-conversion-layout{grid-template-columns:1fr;gap:28px}.course-conversion-copy{position:static}}
@media(max-width:680px){.course-conversion-grid{grid-template-columns:1fr}.course-conversion-card{min-height:0;padding:22px;border-radius:18px}.course-conversion-cta{width:100%}}


/* ============================================================
   Página individual de curso — B.20
   FAQ específico do curso
   ============================================================ */
.course-faq-section{
  background:linear-gradient(180deg,#f5faf7 0%,#ffffff 100%);
}
.course-faq-layout{
  display:grid;
  grid-template-columns:minmax(250px,.72fr) minmax(0,1.5fr);
  gap:48px;
  align-items:start;
}
.course-faq-copy{
  position:sticky;
  top:118px;
  padding:8px 0;
}
.course-faq-copy h2{
  margin:10px 0 14px;
  color:var(--green-900);
  font-size:clamp(2rem,3vw,2.7rem);
  line-height:1.08;
}
.course-faq-copy>p{
  max-width:520px;
  margin:0;
  color:var(--ink-500);
  font-size:1rem;
  line-height:1.72;
}
.course-faq-list{
  display:grid;
  gap:12px;
}
.course-faq-item{
  overflow:hidden;
  border:1px solid rgba(5,52,36,.11);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 28px rgba(5,52,36,.04);
}
.course-faq-item summary{
  list-style:none;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 34px;
  gap:14px;
  align-items:center;
  min-height:76px;
  padding:17px 20px;
  cursor:pointer;
  color:var(--green-900);
}
.course-faq-item summary::-webkit-details-marker{
  display:none;
}
.course-faq-number{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:10px;
  background:#e5f4eb;
  color:#087745;
  font-size:.78rem;
  font-weight:900;
}
.course-faq-question{
  font-size:1.04rem;
  font-weight:820;
  line-height:1.4;
}
.course-faq-icon{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:999px;
  background:#168657;
  color:#fff;
  font-size:1.15rem;
  font-weight:800;
  line-height:1;
  transition:transform .18s ease,background-color .18s ease;
}
.course-faq-item[open] .course-faq-icon{
  transform:rotate(45deg);
  background:#0b7047;
}
.course-faq-answer{
  padding:0 22px 20px 76px;
}
.course-faq-answer p{
  max-width:760px;
  margin:0;
  color:var(--ink-500);
  font-size:.96rem;
  line-height:1.72;
}
.course-faq-item summary:focus-visible{
  outline:3px solid rgba(32,167,96,.28);
  outline-offset:-3px;
}
@media(max-width:980px){
  .course-faq-layout{
    grid-template-columns:1fr;
    gap:26px;
  }
  .course-faq-copy{
    position:static;
  }
}
@media(max-width:640px){
  .course-faq-item summary{
    grid-template-columns:36px minmax(0,1fr) 30px;
    gap:10px;
    min-height:66px;
    padding:14px;
  }
  .course-faq-answer{
    padding:0 15px 17px 60px;
  }
  .course-faq-question{
    font-size:.96rem;
  }
}


/* =========================================================
   B.21 — Unidades e disponibilidade do curso
   ========================================================= */
.course-campuses-section{background:#eef8f2;}
.course-campuses-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.72fr);gap:44px;align-items:end;margin-bottom:30px;}
.course-campuses-head h2{max-width:700px;margin:10px 0 0;color:var(--green-900);font-size:clamp(2rem,3.1vw,2.75rem);line-height:1.08;}
.course-campuses-head>p{margin:0;color:var(--ink-500);font-size:1rem;line-height:1.72;}
.course-campuses-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.course-campus-card{padding:28px;border:1px solid rgba(5,52,36,.11);border-radius:22px;background:#fff;box-shadow:0 14px 38px rgba(5,52,36,.05);}
.course-campus-card-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px;}
.course-campus-number{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#e3f3e9;color:#087745;font-size:.78rem;font-weight:900;}
.course-campus-status{padding:7px 11px;border-radius:999px;background:#f0f8f3;color:#087745;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}
.course-campus-card h3{margin:0 0 12px;color:var(--green-900);font-size:1.45rem;line-height:1.2;}
.course-campus-address{max-width:650px;margin:0;color:var(--ink-500);font-size:.96rem;line-height:1.68;}
.course-campus-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;}
.course-campus-actions .btn{min-width:160px;justify-content:center;}
@media(max-width:900px){.course-campuses-head{grid-template-columns:1fr;gap:14px}.course-campuses-grid{grid-template-columns:1fr}}
@media(max-width:560px){.course-campus-card{padding:22px;border-radius:18px}.course-campus-card-top{align-items:flex-start}.course-campus-actions{display:grid;grid-template-columns:1fr}.course-campus-actions .btn{width:100%}}

/* =========================================================
   B.21.2 — Onde estudar: experiência visual campus + mapa
   ========================================================= */
.course-location-layout{display:grid;grid-template-columns:minmax(260px,.68fr) minmax(0,1.72fr);gap:54px;align-items:start}
.course-location-copy{padding-top:20px;position:sticky;top:120px}
.course-location-copy h2{margin:14px 0 22px;color:var(--green-900);font-size:clamp(2.35rem,4vw,3.65rem);line-height:1.03;letter-spacing:-.035em}
.course-location-copy p{max-width:390px;margin:0;color:var(--ink-500);font-size:1.05rem;line-height:1.75}
.course-location-list{display:grid;gap:24px}
.course-location-card{overflow:hidden;border:1px solid rgba(5,52,36,.11);border-radius:24px;background:#fff;box-shadow:0 18px 45px rgba(5,52,36,.08)}
.course-location-media{display:grid;grid-template-columns:1.12fr .88fr;min-height:280px;background:#eaf4ee}
.course-location-photo,.course-location-map{position:relative;min-width:0;overflow:hidden}
.course-location-photo img{display:block;width:100%;height:100%;min-height:280px;object-fit:cover}
.course-location-photo-placeholder{display:flex;min-height:280px;height:100%;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:30px;text-align:center;background:linear-gradient(145deg,#dceee3,#f5faf7);color:var(--green-900)}
.course-location-photo-placeholder strong{font-size:1.35rem}.course-location-photo-placeholder span{color:var(--ink-500)}
.course-location-map iframe{display:block;width:100%;height:100%;min-height:280px;border:0;filter:saturate(.78) contrast(.96)}
.course-location-expand{position:absolute;right:18px;bottom:18px;padding:12px 16px;border-radius:10px;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(0,0,0,.12);color:var(--green-900);font-size:.88rem;font-weight:800;text-decoration:none}
.course-location-body{padding:28px 30px 30px}
.course-location-body h3{margin:0 0 18px;color:var(--green-900);font-size:clamp(1.55rem,2.3vw,2rem);line-height:1.15}
.course-location-address{display:flex;gap:13px;align-items:flex-start;padding-bottom:22px;border-bottom:1px solid rgba(5,52,36,.11);color:var(--ink-500)}
.course-location-address>span{margin-top:5px;color:#118954;font-size:.72rem}.course-location-address p{margin:0;line-height:1.65}
.course-location-contact{display:flex;align-items:center;gap:13px;padding:20px 0 2px;color:var(--green-900)}
.course-location-contact-icon{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(5,52,36,.18);border-radius:50%;color:#118954;font-weight:900}
.course-location-contact small{display:block;margin-bottom:3px;color:var(--ink-500);font-size:.82rem}.course-location-contact strong{font-size:1.08rem}
.course-location-actions{display:grid;grid-template-columns:minmax(160px,.58fr) minmax(220px,1fr);gap:14px;margin-top:22px}
.course-location-actions .btn{width:100%;justify-content:center}
@media(max-width:980px){.course-location-layout{grid-template-columns:1fr;gap:28px}.course-location-copy{position:static;padding-top:0}.course-location-copy p{max-width:680px}}
@media(max-width:680px){.course-location-media{grid-template-columns:1fr}.course-location-photo img,.course-location-photo-placeholder,.course-location-map iframe{min-height:220px}.course-location-body{padding:24px 22px}.course-location-actions{grid-template-columns:1fr}.course-location-copy h2{font-size:clamp(2rem,10vw,2.7rem)}}


/* ============================================================
   B.21.3 — Onde estudar: layout proporcional com atendimento à esquerda
   ============================================================ */
.course-campuses-section{
  background:linear-gradient(180deg,#eef8f2 0%,#f5fbf7 100%);
}
.course-location-layout--balanced{
  grid-template-columns:minmax(250px,.58fr) minmax(0,1.42fr);
  gap:46px;
  align-items:stretch;
}
.course-location-layout--balanced .course-location-copy{
  position:static;
  padding:28px 0 18px;
  align-self:stretch;
}
.course-location-layout--balanced .course-location-copy h2{
  max-width:440px;
  margin:14px 0 22px;
  font-size:clamp(2.45rem,4.35vw,4rem);
  line-height:1.02;
}
.course-location-layout--balanced .course-location-copy>p{
  max-width:385px;
  font-size:1.02rem;
  line-height:1.78;
}
.course-location-side-info{
  display:grid;
  gap:0;
  max-width:390px;
  margin-top:34px;
  border-top:1px solid rgba(5,52,36,.10);
}
.course-location-side-item{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:15px;
  align-items:center;
  padding:18px 0;
  border-bottom:1px solid rgba(5,52,36,.10);
}
.course-location-side-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border:1.5px solid rgba(9,115,72,.23);
  border-radius:50%;
  color:#087745;
  font-weight:900;
  font-size:1rem;
  background:rgba(255,255,255,.52);
}
.course-location-side-item small{
  display:block;
  margin-bottom:4px;
  color:var(--ink-500);
  font-size:.82rem;
}
.course-location-side-item strong{
  display:block;
  color:var(--green-900);
  font-size:1.02rem;
  line-height:1.4;
}
.course-location-card--visual{
  border-radius:24px;
  box-shadow:0 18px 48px rgba(5,52,36,.08);
}
.course-location-card--visual .course-location-media{
  grid-template-columns:1fr 1fr;
  min-height:350px;
}
.course-location-card--visual .course-location-photo img,
.course-location-card--visual .course-location-photo-placeholder,
.course-location-card--visual .course-location-map iframe{
  min-height:350px;
  height:100%;
}
.course-location-card--visual .course-location-photo img{
  object-position:center 45%;
}
.course-location-photo-link,
.course-location-map-open{
  position:absolute;
  z-index:3;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:12px 16px;
  border-radius:10px;
  text-decoration:none;
  font-size:.86rem;
  font-weight:850;
  box-shadow:0 8px 24px rgba(0,0,0,.13);
}
.course-location-photo-link{
  left:18px;
  bottom:18px;
  background:rgba(4,83,54,.94);
  color:#fff;
}
.course-location-map-open{
  right:18px;
  top:18px;
  background:rgba(255,255,255,.96);
  color:var(--green-900);
}
.course-location-card--visual .course-location-body{
  padding:26px 30px 28px;
}
.course-location-card--visual .course-location-body h3{
  margin-bottom:14px;
}
.course-location-card--visual .course-location-address{
  padding-bottom:18px;
  border-bottom:0;
}
.course-location-card--visual .course-location-actions{
  grid-template-columns:minmax(150px,.7fr) minmax(220px,1fr);
  padding-top:20px;
  margin-top:6px;
  border-top:1px solid rgba(5,52,36,.10);
}
.course-location-card--visual .course-location-actions .btn{
  min-height:54px;
}
@media(max-width:1100px){
  .course-location-layout--balanced{
    grid-template-columns:minmax(230px,.52fr) minmax(0,1.48fr);
    gap:30px;
  }
  .course-location-card--visual .course-location-media{
    min-height:310px;
  }
  .course-location-card--visual .course-location-photo img,
  .course-location-card--visual .course-location-photo-placeholder,
  .course-location-card--visual .course-location-map iframe{
    min-height:310px;
  }
}
@media(max-width:900px){
  .course-location-layout--balanced{
    grid-template-columns:1fr;
    gap:26px;
  }
  .course-location-layout--balanced .course-location-copy{
    padding:0;
  }
  .course-location-side-info{
    grid-template-columns:repeat(3,minmax(0,1fr));
    max-width:none;
    gap:12px;
    border-top:0;
  }
  .course-location-side-item{
    grid-template-columns:38px minmax(0,1fr);
    padding:14px;
    border:1px solid rgba(5,52,36,.10);
    border-radius:14px;
    background:rgba(255,255,255,.6);
  }
  .course-location-side-icon{
    width:36px;
    height:36px;
  }
}
@media(max-width:700px){
  .course-location-card--visual .course-location-media{
    grid-template-columns:1fr;
  }
  .course-location-card--visual .course-location-photo img,
  .course-location-card--visual .course-location-photo-placeholder,
  .course-location-card--visual .course-location-map iframe{
    min-height:240px;
  }
  .course-location-side-info{
    grid-template-columns:1fr;
  }
  .course-location-card--visual .course-location-actions{
    grid-template-columns:1fr;
  }
  .course-location-photo-link,
  .course-location-map-open,
  .course-location-expand{
    font-size:.8rem;
    padding:10px 12px;
  }
}


/* ============================================================
   B.22 — Coordenação e informações oficiais
   ============================================================ */
.course-official-section{background:#fff}
.course-official-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:24px;align-items:stretch}
.course-coordinator-card,.course-documents-card{overflow:hidden;border:1px solid rgba(5,52,36,.11);border-radius:24px;background:#f8fbf9}
.course-coordinator-card{display:grid;grid-template-columns:minmax(180px,.72fr) minmax(0,1.28fr);min-height:390px}
.course-coordinator-media{min-height:100%;background:#e6f2eb}
.course-coordinator-media img{display:block;width:100%;height:100%;min-height:390px;object-fit:cover}
.course-coordinator-placeholder{display:grid;place-items:center;height:100%;min-height:390px;color:#fff;background:linear-gradient(145deg,#0b5038,#168657);font-size:3.2rem;font-weight:900;letter-spacing:-.05em}
.course-coordinator-content{display:flex;flex-direction:column;justify-content:center;padding:34px}
.course-coordinator-content h2,.course-documents-card h2{margin:10px 0 8px;color:var(--green-900);line-height:1.12}
.course-coordinator-content h2{font-size:clamp(1.8rem,2.5vw,2.35rem)}
.course-coordinator-title{margin:0 0 18px;color:#148254;font-size:.95rem;font-weight:800}
.course-coordinator-bio{margin:0;color:var(--ink-500);font-size:.97rem;line-height:1.72}
.course-coordinator-email{display:inline-flex;width:max-content;max-width:100%;margin-top:22px;color:var(--green-900);font-weight:800;text-decoration:none;overflow-wrap:anywhere}
.course-coordinator-email:hover{color:#168657}
.course-documents-card{padding:34px}
.course-documents-card h2{font-size:clamp(1.75rem,2.3vw,2.2rem)}
.course-documents-intro{margin:0 0 20px;color:var(--ink-500);line-height:1.7}
.course-official-note{margin:18px 0 22px;padding:16px 18px;border-left:3px solid #18a667;border-radius:0 12px 12px 0;background:#edf7f1;color:var(--green-900);line-height:1.65}
.course-document-list{display:grid;gap:10px}
.course-document-link{display:grid;grid-template-columns:36px minmax(0,1fr) 24px;gap:12px;align-items:center;min-height:60px;padding:12px 14px;border:1px solid rgba(5,52,36,.11);border-radius:14px;background:#fff;color:var(--green-900);font-weight:800;text-decoration:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.course-document-link:hover{transform:translateY(-1px);border-color:rgba(22,134,87,.35);box-shadow:0 8px 22px rgba(5,52,36,.06)}
.course-document-number{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#e4f4ea;color:#087745;font-size:.75rem;font-weight:900}
.course-document-arrow{color:#168657;font-size:1.1rem}
@media(max-width:980px){.course-official-grid{grid-template-columns:1fr}}
@media(max-width:720px){
  .course-coordinator-card{grid-template-columns:1fr}
  .course-coordinator-media img,.course-coordinator-placeholder{min-height:300px;max-height:420px}
  .course-coordinator-content,.course-documents-card{padding:24px}
}
