.modulos { padding-bottom: 80px; }

/* Carrossel horizontal */
.carousel { margin-bottom: 30px; }
.carousel__bar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.carousel__hint { display: flex; align-items: center; gap: 8px; font-size: 0.8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--color-text-muted); }
.carousel__hint .ico { color: var(--color-gold); animation: nudge 1.6s ease-in-out infinite; }
@keyframes nudge { 50% { transform: translateX(6px); } }
.carousel__nav { display: flex; gap: 10px; }
.carousel__btn { width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(185,139,87,.5); color: var(--color-gold-light); display: grid; place-items: center; transition: background .3s, color .3s, opacity .3s, transform .3s var(--ease); }
.carousel__btn:first-child .ico { transform: scaleX(-1); }
.carousel__btn:hover:not(:disabled) { background: var(--color-gold); color: #111; transform: scale(1.08); }
.carousel__btn:disabled { opacity: .3; cursor: default; }

.carousel__track { display: flex; align-items: stretch; gap: 14px; overflow-x: auto; padding: 10px 2px 14px 2px; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-overflow-scrolling: touch; cursor: grab; outline: none; mask-image: linear-gradient(90deg, #000 94%, transparent); -webkit-mask-image: linear-gradient(90deg, #000 94%, transparent); }
.carousel__track::-webkit-scrollbar { display: none; }
.carousel__track.is-end { -webkit-mask-image: none; mask-image: none; }
.carousel__track.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.carousel__track.is-dragging .modulo { pointer-events: none; }

.carousel__progress { height: 2px; background: var(--color-border); border-radius: 2px; overflow: hidden; margin-top: 6px; }
.carousel__progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--color-gold), var(--color-gold-light)); border-radius: 2px; transition: transform .15s linear; }

.modulo { display: flex; flex-direction: column; flex: 0 0 300px; scroll-snap-align: start; padding: 22px 20px 20px; transition: transform .5s var(--ease), border-color .4s; }
.modulo:hover { transform: translateY(-6px); }
.modulo__icon { width: 30px; height: 30px; color: var(--color-gold); margin-bottom: 18px; transition: transform .5s var(--ease); }
.modulo:hover .modulo__icon { transform: rotate(-8deg) scale(1.12); }
.modulo__n { display: block; font-size: 0.8rem; opacity: .8; margin-bottom: 3px; }
.modulo h3 { font-family: var(--font-serif); font-weight: 500; font-size: 1.1rem; line-height: 1.3; margin-bottom: 4px; }
.modulo__sub { display: block; font-size: 0.82rem; color: var(--color-gold-light); margin-bottom: 14px; }
.modulo ol { list-style: none; counter-reset: it; display: grid; gap: 7px; margin-top: 12px; }
.modulo li { counter-increment: it; position: relative; padding-left: 22px; font-size: 0.86rem; color: var(--color-text-muted); line-height: 1.5; }
.modulo li::before { content: counter(it) "."; position: absolute; left: 0; color: var(--color-gold); font-size: 0.78rem; font-weight: 500; }
.modulo--intro { flex-basis: 250px; background: linear-gradient(180deg, #1b1a19, var(--color-bg-card)); }
.modulo--intro h3 { font-size: 1rem; margin-bottom: 8px; }

.modulos__end { flex: 0 0 220px; scroll-snap-align: start; align-self: center; display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 28px 20px; border: 1px dashed rgba(185,139,87,.5); border-radius: var(--radius); font-family: var(--font-serif); font-size: 1.15rem; text-align: center; }
.modulos__end span { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--color-gold); color: #1b1710; font-family: var(--font-sans); font-weight: 600; font-size: 0.9rem; }
.modulos__end .ico { width: 20px; height: 20px; }

.modulo__count { margin-top: auto; padding-top: 18px; font-size: 0.78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--color-gold); }
.modulo__count::before { content: ""; display: block; width: 100%; height: 1px; margin-bottom: 14px; background: linear-gradient(90deg, rgba(185,139,87,.45), transparent); }

/* Cards com muitos tópicos: mais largos, lista em duas colunas (mantém as alturas parecidas) */
.modulo--wide { flex-basis: 540px; }
.modulo--wide ol { display: block; columns: 2; column-gap: 28px; }
.modulo--wide li { break-inside: avoid; margin-bottom: 8px; }
