*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-base);color:var(--color-text);background:var(--color-bg);line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{color:var(--color-primary)}
h1,h2,h3{line-height:1.2;margin:0 0 .5em}
h1{font-size:clamp(1.9rem,5vw,3rem)}
h2{font-size:clamp(1.4rem,3.5vw,2rem)}
:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}
.container{width:min(100% - 2rem,var(--max-width));margin-inline:auto}
.section{padding:3rem 0}
.muted{color:var(--color-muted)}
.skip{position:absolute;left:-999px;top:0;background:var(--color-primary);color:var(--color-on-primary);padding:.75rem 1rem;z-index:100}
.skip:focus{left:0}

.site-header{position:sticky;top:0;z-index:10;background:var(--color-bg);border-bottom:1px solid var(--color-border)}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:64px}
.brand{font-weight:800;font-size:1.2rem;color:var(--color-primary);text-decoration:none}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:.25rem}
.nav a{display:block;padding:.6rem .9rem;color:var(--color-text);text-decoration:none;border-radius:8px;font-weight:600}
.menu-btn{display:none;min-height:44px;padding:0 1rem;border:2px solid var(--color-primary);background:none;color:var(--color-primary);border-radius:8px;font:inherit;font-weight:700;cursor:pointer}
@media (max-width:719px){
  .js .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:.5rem 1rem 1rem}
  .js .nav.open{display:block}
  .nav ul{flex-direction:column}
  .nav a{padding:.9rem}
}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.6rem 1.4rem;border-radius:999px;border:2px solid var(--color-primary);background:var(--color-primary);color:var(--color-on-primary);font:inherit;font-weight:700;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}
.btn-outline{background:transparent;color:var(--color-primary)}
.btn-outline:hover{color:var(--color-on-primary)}
.btn-disabled{background:var(--color-surface);border-color:var(--color-border);color:var(--color-muted);cursor:not-allowed}
.btn-disabled:hover{background:var(--color-surface);border-color:var(--color-border)}

.eyebrow{font-weight:700;color:var(--color-primary);font-size:.92rem}

.grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.card{display:flex;flex-direction:column;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}
.card-body{display:flex;flex-direction:column;gap:.5rem;padding:1.25rem;flex:1}
.card-body h3{margin:0;font-size:1.15rem}
.cover{aspect-ratio:16/9;display:grid;place-items:center;background:linear-gradient(135deg,var(--color-cover-start),var(--color-cover-end));color:#fff;font-size:3rem;font-weight:800;overflow:hidden}
.cover img{width:100%;height:100%;object-fit:cover}
.price{font-weight:800;font-size:1.1rem}

.about{display:grid;gap:2rem;align-items:center}
.photo{width:180px;aspect-ratio:1;border-radius:50%;background:var(--color-primary);color:var(--color-on-primary);display:grid;place-items:center;font-size:4rem;font-weight:800;overflow:hidden}
.photo img{width:100%;height:100%;object-fit:cover}
@media (min-width:720px){.about{grid-template-columns:200px 1fr}}

.course{display:grid;gap:2rem}
@media (min-width:900px){.course{grid-template-columns:2fr 1fr;align-items:start}}
.buy-box{border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;background:var(--color-surface);display:grid;gap:.75rem}
@media (min-width:900px){.buy-box{position:sticky;top:84px}}
.course ul{padding-left:1.2rem}
.crumb{display:inline-block;margin-bottom:1rem}

.site-footer p{margin:.25rem 0}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

[hidden]{display:none!important}
.filters{display:grid;gap:1rem;margin-bottom:1.5rem;padding:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}
@media (min-width:640px){.filters{grid-template-columns:2fr 1fr}}
.filters label{display:block;font-weight:700;margin-bottom:.25rem}
.filters input,.filters select{width:100%;min-height:44px;padding:.5rem .75rem;font:inherit;color:var(--color-text);background:var(--color-bg);border:2px solid var(--color-border);border-radius:8px}
.more{margin-top:1.5rem;text-align:center}

.header-actions{display:flex;align-items:center;gap:.5rem}
/* Botão de tema: só o ícone (o nome vem do aria-label). Sol e lua se revezam girando. */
.theme-btn{display:none;align-items:center;justify-content:center;flex:none;width:44px;height:44px;padding:0;border:2px solid var(--color-border);background:none;color:var(--color-text);border-radius:50%;cursor:pointer}
.js .theme-btn{display:inline-flex}
.theme-btn:hover{background:var(--color-surface)}
.theme-icon{overflow:visible}
.theme-icon .sun,.theme-icon .moon{transform-origin:12px 12px;transition:transform .5s cubic-bezier(.34,1.56,.64,1),opacity .3s ease}
:root:not([data-theme="dark"]) .theme-icon .moon,
:root[data-theme="dark"] .theme-icon .sun{opacity:0;transform:rotate(-120deg) scale(.4)}

/* Aviso de JavaScript desativado */
.noscript-banner{background:var(--color-notice-bg);color:var(--color-notice-text);border-bottom:2px solid var(--color-focus);padding:1rem;text-align:center;font-weight:600}

/* Esqueletos de carregamento (só aparecem com JavaScript ativo) */
.skeleton-card,.skeleton-block{display:none}
.js .skeleton-card{display:block;border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;background:var(--color-bg)}
.js .skeleton-block{display:block;border-radius:var(--radius)}
.skeleton-card::before{content:"";display:block;aspect-ratio:16/9}
.skeleton-card::after{content:"";display:block;height:150px;margin:1.25rem;border-radius:8px}
.skeleton-card::before,.skeleton-card::after,.skeleton-block{background:linear-gradient(90deg,var(--color-skeleton-base) 25%,var(--color-skeleton-shine) 50%,var(--color-skeleton-base) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}
.sk-main{height:420px}
.sk-aside{height:300px}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
