/**
 * ASSOJURIS V2 — Components CSS
 * Header, Footer, Ticker, Hero, Benefits, News, Convênios, Chácaras, etc.
 */

/* ============================================================
   TICKER (Notícias Urgentes)
   ============================================================ */
.ticker {
    background: var(--color-primary);
    color: var(--color-white);
    display: flex;
    align-items: center;
    height: 36px;
    overflow: hidden;
    position: relative;
    z-index: 100;
}

.ticker__label {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 var(--spacing-md);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 2px;
    white-space: nowrap;
    background: var(--color-primary-dark);
    height: 100%;
    flex-shrink: 0;
}

.ticker__track {
    flex: 1;
    overflow: hidden;
    position: relative;
}

.ticker__content {
    display: flex;
    white-space: nowrap;
    animation: ticker-scroll 30s linear infinite;
}

.ticker__item {
    display: inline-flex;
    align-items: center;
    padding: 0 var(--spacing-lg);
    font-size: 13px;
    font-weight: 600;
    color: var(--color-white);
}

.ticker__item:hover {
    text-decoration: underline;
    color: var(--color-white);
}

.ticker__sep {
    margin-left: var(--spacing-lg);
}

@keyframes ticker-scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* ============================================================
   HEADER
   ============================================================ */
.site-header {
    position: sticky;
    top: 0;
    z-index: 90;
    background: var(--color-white);
    border-bottom: 1px solid var(--color-gray-200);
}

/* Header Main */
.header__main {
    padding: var(--spacing-md) 0;
}

.header__main .container {
    display: flex;
    align-items: center;
    gap: var(--spacing-xl);
}

.header__logo {
    flex-shrink: 0;
}

.logo-text {
    font-size: 28px;
    font-weight: 900;
    letter-spacing: -2px;
    display: flex;
}

.logo-text__asso {
    color: var(--color-black);
}

.logo-text__juris {
    color: var(--color-primary);
}

.logo-text--footer {
    font-size: 24px;
}

.logo-text--footer .logo-text__asso {
    color: var(--color-white);
}

.header__logo img,
.custom-logo {
    height: 50px;
    width: auto;
}

.header__nav {
    flex: 1;
}

/* Nav Menu */
.nav-menu {
    display: flex;
    align-items: center;
    gap: 0;
}

.nav-menu > li {
    position: relative;
}

.nav-link {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: var(--spacing-md) var(--spacing-md);
    font-size: 14px;
    font-weight: 600;
    color: var(--color-gray-900);
    position: relative;
    white-space: nowrap;
    transition: color var(--transition-fast);
}

.nav-link:hover {
    color: var(--color-primary);
}

/* Motion line underline */
.nav-link__line {
    position: absolute;
    bottom: 0;
    left: var(--spacing-md);
    right: var(--spacing-md);
    height: 2px;
    background: var(--color-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transition-base);
}

.nav-menu > li:hover .nav-link__line,
.nav-menu > li.current-menu-item .nav-link__line {
    transform: scaleX(1);
}

.dropdown-chevron {
    font-size: 14px;
    transition: transform var(--transition-fast);
}

.has-dropdown:hover .dropdown-chevron {
    transform: rotate(180deg);
}

/* Mega Menu */
.mega-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 600px;
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    box-shadow: var(--shadow-lg);
    padding: var(--spacing-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: all var(--transition-base);
    z-index: 100;
}

.has-dropdown:hover > .mega-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.mega-menu__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: var(--spacing-lg);
}

.mega-menu__group {
    break-inside: avoid;
}

.mega-menu__title {
    display: block;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--color-primary);
    padding-bottom: var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
    border-bottom: 1px solid var(--color-gray-200);
}

.mega-menu .sub-menu {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.mega-menu .sub-menu .nav-link {
    padding: 6px 0;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-gray-700);
}

.mega-menu .sub-menu .nav-link:hover {
    color: var(--color-primary);
    padding-left: var(--spacing-sm);
}

/* Header Actions */
.header__actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    flex-shrink: 0;
}

.header__search-toggle {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: var(--color-gray-700);
    transition: color var(--transition-fast);
}

.header__search-toggle:hover {
    color: var(--color-primary);
}

.header__cta {
    font-size: 13px;
    padding: 10px 24px;
}

/* Hamburger */
.header__mobile-toggle {
    display: none;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
}

.hamburger {
    display: flex;
    flex-direction: column;
    gap: 5px;
    width: 22px;
}

.hamburger span {
    display: block;
    height: 2px;
    background: var(--color-black);
    transition: all var(--transition-base);
}

.hamburger.is-active span:nth-child(1) {
    transform: rotate(45deg) translate(5px, 5px);
}

.hamburger.is-active span:nth-child(2) {
    opacity: 0;
}

.hamburger.is-active span:nth-child(3) {
    transform: rotate(-45deg) translate(5px, -5px);
}

/* Search Overlay */
.search-overlay {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--color-white);
    border-bottom: 2px solid var(--color-primary);
    padding: var(--spacing-lg) 0;
    box-shadow: var(--shadow-md);
    z-index: 95;
}

.search-overlay__form {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.search-overlay__icon {
    font-size: 24px;
    color: var(--color-gray-500);
    flex-shrink: 0;
}

.search-overlay__input {
    flex: 1;
    border: none;
    font-size: 18px;
    padding: var(--spacing-sm) 0;
    outline: none;
}

.search-overlay__close {
    font-size: 24px;
    color: var(--color-gray-500);
    padding: var(--spacing-sm);
}

.search-overlay__close:hover {
    color: var(--color-primary);
}

/* Mobile Menu */
.mobile-menu {
    position: fixed;
    top: 0;
    right: -100%;
    width: 100%;
    max-width: 380px;
    height: 100vh;
    background: var(--color-white);
    z-index: 200;
    overflow-y: auto;
    transition: right var(--transition-base);
    box-shadow: var(--shadow-lg);
}

.mobile-menu.is-open {
    right: 0;
}

.mobile-menu__inner {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: var(--spacing-2xl) var(--spacing-lg);
}

.mobile-menu__list {
    display: flex;
    flex-direction: column;
}

.mobile-menu__list li a {
    display: block;
    padding: var(--spacing-md) 0;
    font-size: 16px;
    font-weight: 600;
    border-bottom: 1px solid var(--color-gray-200);
}

.mobile-menu__footer {
    border-top: 1px solid var(--color-gray-200);
    margin-top: auto;
    padding-top: 20px;
}

.mobile-menu__cta { margin: 0 0 18px; }

.mobile-menu__contacts {
    display: grid;
    gap: 9px;
}

.mobile-menu__contacts > strong,
.mobile-menu__socials > span {
    color: var(--color-gray-500);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.mobile-menu__contact-list {
    display: grid;
    gap: 7px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mobile-menu__contact-list > a {
    align-items: center;
    background: var(--color-gray-100);
    border-left: 2px solid transparent;
    color: var(--color-black);
    display: flex;
    gap: 9px;
    min-height: 58px;
    min-width: 0;
    padding: 9px 10px;
    transition: background var(--transition-fast), border-color var(--transition-fast);
}

.mobile-menu__contact-list > a:hover,
.mobile-menu__contact-list > a:focus-visible {
    background: var(--color-white);
    border-left-color: var(--color-primary);
}

.mobile-menu__contact-list > a > i {
    color: var(--color-primary);
    flex: 0 0 auto;
    font-size: 20px;
}

.mobile-menu__contact-list > a span {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
    min-width: 0;
}

.mobile-menu__contact-list > a small {
    color: var(--color-gray-500);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .04em;
    margin-bottom: 2px;
    text-transform: uppercase;
}

.mobile-menu__email {
    grid-column: 1 / -1;
}

.mobile-menu__email span {
    overflow-wrap: anywhere;
}

.mobile-menu__socials {
    align-items: center;
    border-top: 1px solid var(--color-gray-200);
    display: flex;
    gap: 14px;
    justify-content: space-between;
    margin-top: 16px;
    padding-top: 15px;
}

.mobile-menu__social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    justify-content: flex-end;
}

.mobile-menu__social {
    align-items: center;
    border: 1px solid var(--color-gray-300);
    color: var(--color-black);
    display: inline-flex;
    font-size: 21px;
    height: 42px;
    justify-content: center;
    transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
    width: 42px;
}

.mobile-menu__social:hover,
.mobile-menu__social:focus-visible {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-white);
}

/* ============================================================
   HERO SLIDER
   ============================================================ */
.hero-slider {
    position: relative;
    height: 550px;
    background: var(--color-black);
    overflow: hidden;
}

.hero-slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 800ms ease;
}

.hero-slide.is-active {
    opacity: 1;
}

.hero-slide__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.3) 100%);
}

.hero-slide__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
    color: var(--color-white);
    max-width: 600px;
}

.hero-slide__title {
    font-size: 48px;
    font-weight: 900;
    letter-spacing: -2px;
    color: var(--color-white);
    line-height: 1.1;
    margin-bottom: var(--spacing-md);
}

.hero-slide__subtitle {
    font-size: 18px;
    font-weight: 400;
    opacity: 0.9;
    margin-bottom: var(--spacing-lg);
    line-height: 1.5;
}

.hero-slider__nav {
    position: absolute;
    bottom: var(--spacing-xl);
    left: 0;
    right: 0;
    z-index: 3;
}

.hero-slider__nav .container {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.hero-slider__prev,
.hero-slider__next {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,0.3);
    color: var(--color-white);
    font-size: 20px;
    transition: all var(--transition-fast);
}

.hero-slider__prev:hover,
.hero-slider__next:hover {
    background: var(--color-white);
    color: var(--color-black);
}

.hero-slider__dots {
    display: flex;
    gap: var(--spacing-sm);
}

.hero-slider__dot {
    width: 8px;
    height: 8px;
    background: rgba(255,255,255,0.4);
    border-radius: 50%;
    transition: all var(--transition-fast);
}

.hero-slider__dot.is-active {
    background: var(--color-white);
    width: 24px;
    border-radius: var(--radius-pill);
}

.hero-slider__counter {
    color: var(--color-white);
    font-size: 14px;
    font-weight: 700;
    margin-left: auto;
}

.hero-slider__current {
    font-size: 20px;
}

.hero-slider__sep {
    margin: 0 4px;
    opacity: 0.5;
}

/* Static Hero (fallback) */
.hero-static {
    padding: var(--spacing-3xl) 0;
    background: var(--color-black);
    color: var(--color-white);
    text-align: center;
}

.hero-static__title {
    font-size: 48px;
    color: var(--color-white);
    margin-bottom: var(--spacing-md);
}

.hero-static__subtitle {
    font-size: 18px;
    opacity: 0.8;
    max-width: 600px;
    margin: 0 auto var(--spacing-lg);
}

/* ============================================================
   BENEFITS GRID
   ============================================================ */
.benefits-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-lg);
}

.benefit-card {
    display: flex;
    flex-direction: column;
    padding: var(--spacing-xl);
    border: 1px solid var(--color-gray-200);
    transition: all var(--transition-base);
    position: relative;
}

.benefit-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 3px;
    height: 0;
    background: var(--color-primary);
    transition: height var(--transition-base);
}

.benefit-card:hover::before {
    height: 100%;
}

.benefit-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-lift);
    border-color: var(--color-gray-300);
    color: var(--color-gray-900);
}

.benefit-card__icon {
    font-size: 32px;
    color: var(--color-primary);
    margin-bottom: var(--spacing-md);
}

.benefit-card__title {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: var(--spacing-sm);
}

.benefit-card__text {
    font-size: 14px;
    color: var(--color-gray-700);
    flex: 1;
    margin-bottom: var(--spacing-md);
}

.benefit-card__link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: 700;
    color: var(--color-primary);
}

.benefit-card--cta {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-white);
}

.benefit-card--cta .benefit-card__icon,
.benefit-card--cta .benefit-card__link {
    color: var(--color-white);
}

.benefit-card--cta .benefit-card__text {
    color: rgba(255,255,255,0.9);
}

.benefit-card--cta::before {
    background: var(--color-white);
}

.benefit-card--cta:hover {
    background: var(--color-primary-dark);
    color: var(--color-white);
}

/* ============================================================
   NEWS SECTION (Home)
   ============================================================ */
.news-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-xl);
}

.news-featured {
    display: flex;
    flex-direction: column;
}

.news-featured__image {
    display: block;
    overflow: hidden;
    margin-bottom: var(--spacing-lg);
}

.news-featured__image img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    transition: transform var(--transition-slow);
}

.news-featured:hover .news-featured__image img {
    transform: scale(1.03);
}

.news-featured__title {
    font-size: 22px;
    font-weight: 800;
    line-height: 1.3;
    margin-bottom: var(--spacing-sm);
}

.news-featured__title a:hover {
    color: var(--color-primary);
}

.news-featured__excerpt {
    font-size: 14px;
    color: var(--color-gray-700);
    line-height: 1.6;
    margin-bottom: var(--spacing-md);
}

.news-featured__meta {
    display: flex;
    gap: var(--spacing-md);
    font-size: 12px;
    color: var(--color-gray-500);
}

/* News List (numbered) */
.news-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.news-list__item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: var(--spacing-lg) 0;
    border-bottom: 1px solid var(--color-gray-200);
}

.news-list__item:first-child {
    padding-top: 0;
}

.news-list__number {
    font-size: 36px;
    font-weight: 900;
    color: var(--color-gray-200);
    line-height: 1;
    flex-shrink: 0;
    min-width: 50px;
}

.news-list__title {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 4px;
}

.news-list__title a:hover {
    color: var(--color-primary);
}

.news-list__date {
    font-size: 12px;
    color: var(--color-gray-500);
}

/* ============================================================
   CHÁCARAS GRID
   ============================================================ */
.chacaras-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-lg);
}

.directory-city-filter{align-items:end;border-block:1px solid var(--color-border,#dedede);display:grid;gap:12px;grid-template-columns:minmax(190px,1fr) minmax(220px,1.4fr) auto auto;margin:0 0 28px;padding:16px 0}.directory-city-filter label{align-items:center;display:flex;font-size:12px;font-weight:800;gap:7px;letter-spacing:.06em;text-transform:uppercase}.directory-city-filter label i{color:var(--color-primary,#cb2023);font-size:19px}.directory-city-filter select{background:#fff;border:1px solid var(--color-border,#d8d8d8);border-radius:0;min-height:44px;padding:0 38px 0 12px;width:100%}.directory-city-filter .btn{border-radius:0;min-height:44px}.directory-city-filter>a{align-items:center;color:var(--color-primary,#cb2023);display:flex;font-size:12px;font-weight:800;min-height:44px;text-decoration:none}.page-header__location{align-items:center;display:flex;gap:7px;margin:14px 0 0}.page-header__location i{color:var(--color-primary,#cb2023);font-size:20px}

@media(max-width:700px){.directory-city-filter{align-items:stretch;grid-template-columns:1fr}.directory-city-filter .btn{width:100%}}

.chacara-card {
    display: block;
    position: relative;
    overflow: hidden;
    height: 300px;
}

.chacara-card--large {
    height: 360px;
}

.chacara-card__image {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform var(--transition-slow);
}

.chacara-card:hover .chacara-card__image {
    transform: scale(1.05);
}

.chacara-card__content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: var(--spacing-lg);
    background: linear-gradient(transparent, rgba(0,0,0,0.8));
    color: var(--color-white);
}

.chacara-card__pin {
    font-size: 16px;
    margin-bottom: var(--spacing-xs);
    opacity: 0.8;
}

.chacara-card__title {
    font-size: 18px;
    color: var(--color-white);
    margin-bottom: 4px;
}

.chacara-card__city {
    font-size: 13px;
    opacity: 0.8;
}

.chacara-card__link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: 700;
    margin-top: var(--spacing-sm);
    opacity: 0;
    transition: opacity var(--transition-fast);
}

.chacara-card:hover .chacara-card__link {
    opacity: 1;
}

/* ============================================================
   QUICK LINKS
   ============================================================ */
.quicklinks-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: var(--color-gray-200);
    border: 1px solid var(--color-gray-200);
}

.quicklink {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: var(--color-white);
    font-weight: 600;
    font-size: 14px;
    transition: all var(--transition-fast);
}

.quicklink i:first-child {
    font-size: 24px;
    color: var(--color-primary);
    flex-shrink: 0;
}

.quicklink:hover {
    background: var(--color-primary-tint);
    color: var(--color-primary);
}

.quicklink__external {
    margin-left: auto;
    font-size: 14px;
    opacity: 0.3;
}

/* ============================================================
   CONVÊNIO CARD
   ============================================================ */
.convenios-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    background: var(--color-gray-200);
    border: 1px solid var(--color-gray-200);
}

.convenio-card__inner {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: var(--color-white);
    transition: all var(--transition-fast);
}

.convenio-card__inner:hover {
    background: var(--color-primary-tint);
}

.convenio-card__logo {
    width: 60px;
    height: 60px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.convenio-card__logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.convenio-card__logo--placeholder {
    background: var(--color-gray-100);
    font-size: 24px;
    color: var(--color-gray-500);
}

.convenio-card__info {
    flex: 1;
    min-width: 0;
}

.convenio-card__title {
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 2px;
}

.convenio-card__city {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: var(--color-gray-500);
}

.convenio-card__desconto {
    display: inline-block;
    margin-top: 4px;
    font-size: 11px;
    font-weight: 700;
    color: var(--color-primary);
    background: var(--color-primary-tint);
    padding: 2px 8px;
    border-radius: var(--radius-pill);
}

.convenio-card__arrow {
    font-size: 18px;
    color: var(--color-gray-300);
    transition: color var(--transition-fast);
    flex-shrink: 0;
}

.convenio-card__inner:hover .convenio-card__arrow {
    color: var(--color-primary);
}

/* ============================================================
   FILTER BAR (Convênios)
   ============================================================ */
.filter-bar {
    margin-bottom: var(--spacing-xl);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.filter-group {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    overflow-x: auto;
}

.filter-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--color-gray-500);
    flex-shrink: 0;
}

.filter-tabs {
    display: flex;
    gap: var(--spacing-xs);
}

.filter-tab {
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 600;
    border: 1px solid var(--color-gray-200);
    background: var(--color-white);
    white-space: nowrap;
    transition: all var(--transition-fast);
}

.filter-tab:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.filter-tab.is-active {
    background: var(--color-primary);
    color: var(--color-white);
    border-color: var(--color-primary);
}

/* ============================================================
   SINGLE CPT LAYOUT (Convênio, Dept, Clínica)
   ============================================================ */
.single-cpt__grid {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: var(--spacing-xl);
    align-items: start;
}

.single-cpt__image {
    margin-bottom: var(--spacing-lg);
}

.single-cpt__image img {
    display: block;
    width: 100%;
}

.single-cpt__image--logo {
    align-items: center;
    background: #f7f7f7;
    border: 1px solid var(--color-gray-200);
    display: flex;
    justify-content: center;
    min-height: clamp(220px, 32vw, 360px);
    padding: clamp(30px, 6vw, 72px);
}

.single-cpt__image--logo img {
    height: clamp(120px, 18vw, 220px);
    object-fit: contain;
}

.legacy-contact-list {
    display: grid;
    gap: 10px;
    list-style: none;
    margin: 16px 0 28px;
    padding: 0;
}

.legacy-contact-list li {
    border-bottom: 1px solid var(--color-gray-200);
    padding: 10px 0;
}

.discount-banner {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-md) var(--spacing-lg);
    background: var(--color-primary-tint);
    border-left: 3px solid var(--color-primary);
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: var(--spacing-lg);
    font-size: 15px;
}

/* Contact Box (sidebar) */
.contact-box {
    border: 1px solid var(--color-gray-200);
    padding: var(--spacing-lg);
    position: sticky;
    top: 120px;
}

.contact-box__title {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: 16px;
    font-weight: 800;
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md);
    border-bottom: 1px solid var(--color-gray-200);
}

.contact-box__item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) 0;
    font-size: 14px;
}

.contact-box__item i {
    color: var(--color-primary);
    font-size: 18px;
    flex-shrink: 0;
    margin-top: 2px;
}

.contact-box__item a:hover {
    color: var(--color-primary);
}

.contact-box .btn {
    margin-top: var(--spacing-lg);
}

/* ============================================================
   CHÁCARA — Tabs & Gallery
   ============================================================ */
.chacara-gallery__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 4px;
}

.chacara-gallery__item img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
}

.tabs__nav {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--color-gray-200);
    margin-bottom: var(--spacing-xl);
}

.tabs__btn {
    padding: var(--spacing-md) var(--spacing-lg);
    font-weight: 700;
    font-size: 14px;
    position: relative;
    color: var(--color-gray-500);
    transition: color var(--transition-fast);
}

.tabs__btn.is-active {
    color: var(--color-primary);
}

.tabs__btn.is-active::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--color-primary);
}

.chacara-info-grid {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xl);
}

.chacara-details {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-md);
}

.chacara-detail {
    display: flex;
    gap: var(--spacing-md);
    padding: var(--spacing-md);
    background: var(--color-gray-100);
}

.chacara-detail i {
    font-size: 24px;
    color: var(--color-primary);
    flex-shrink: 0;
}

.chacara-detail strong {
    display: block;
    font-size: 13px;
    margin-bottom: 2px;
}

.chacara-detail p {
    font-size: 14px;
    color: var(--color-gray-700);
}

.infra-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-sm);
}

.infra-list li {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: 14px;
}

.infra-list i {
    color: var(--color-success);
    font-size: 16px;
}

.chacara-actions {
    display: flex;
    gap: var(--spacing-md);
    margin-top: var(--spacing-xl);
    padding-top: var(--spacing-xl);
    border-top: 1px solid var(--color-gray-200);
}

.chacara-map iframe {
    width: 100%;
    height: 450px;
    border: 0;
}

/* ============================================================
   COOP CAROUSEL
   ============================================================ */
.coop-carousel {
    position: relative;
    overflow: hidden;
}

.coop-carousel__track {
    display: flex;
    gap: var(--spacing-lg);
    transition: transform var(--transition-base);
}

.coop-carousel__item {
    flex: 0 0 calc(20% - var(--spacing-md));
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100px;
    padding: var(--spacing-md);
    border: 1px solid var(--color-gray-200);
    background: var(--color-white);
    transition: all var(--transition-fast);
}

.coop-carousel__item:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
}

.coop-carousel__item img {
    max-height: 60px;
    max-width: 100%;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.7;
    transition: all var(--transition-fast);
}

.coop-carousel__item:hover img {
    filter: grayscale(0);
    opacity: 1;
}

.coop-carousel__name {
    font-size: 13px;
    font-weight: 600;
    text-align: center;
}

.coop-carousel__prev,
.coop-carousel__next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    font-size: 18px;
    z-index: 2;
    transition: all var(--transition-fast);
}

.coop-carousel__prev { left: 0; }
.coop-carousel__next { right: 0; }

.coop-carousel__prev:hover,
.coop-carousel__next:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

/* ============================================================
   SHARE BUTTONS
   ============================================================ */
.share-buttons {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-lg) 0;
    border-top: 1px solid var(--color-gray-200);
    margin-top: var(--spacing-xl);
}

.share-label {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--color-gray-500);
    margin-right: var(--spacing-sm);
}

.share-btn {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-gray-200);
    font-size: 16px;
    color: var(--color-gray-700);
    transition: all var(--transition-fast);
}

.share-btn:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
    background: var(--color-primary-tint);
}

/* ============================================================
   SINGLE POST
   ============================================================ */
.single-post__header {
    padding: var(--spacing-3xl) 0 var(--spacing-xl);
    background: var(--color-gray-100);
}

.single-post__meta-top {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.single-post__reading {
    font-size: 12px;
    color: var(--color-gray-500);
    display: flex;
    align-items: center;
    gap: 4px;
}

.single-post__title {
    font-size: 36px;
    font-weight: 900;
    letter-spacing: -1.5px;
    line-height: 1.15;
    max-width: 800px;
}

.single-post__meta {
    margin-top: var(--spacing-md);
    font-size: 13px;
    color: var(--color-gray-500);
    display: flex;
    align-items: center;
    gap: 4px;
}

.single-post__image {
    margin-top: calc(-1 * var(--spacing-xl));
    margin-bottom: var(--spacing-xl);
}

.single-post__image img {
    width: 100%;
    max-height: 500px;
    object-fit: cover;
}

.single-post__body {
    padding: var(--spacing-xl) 0 var(--spacing-3xl);
}

.single-post__footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--spacing-md);
}

.single-post__back {
    margin-top: 0;
}

/* ============================================================
   SEARCH RESULTS
   ============================================================ */
.search-results {
    display: grid;
    gap: 14px;
}

.search-result {
    background: var(--color-white);
    border: 1px solid var(--color-gray-200);
    display: grid;
    grid-template-columns: clamp(170px, 22vw, 250px) minmax(0, 1fr);
    min-height: 190px;
    overflow: hidden;
}

.search-result__thumb {
    background: var(--color-gray-200);
    display: block;
    min-height: 100%;
    overflow: hidden;
}

.search-result__thumb img {
    display: block;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-base);
    width: 100%;
}

.search-result:hover .search-result__thumb img { transform: scale(1.035); }

.search-result__thumb > span {
    align-items: center;
    color: var(--color-gray-400);
    display: flex;
    font-size: 42px;
    height: 100%;
    justify-content: center;
    min-height: 190px;
}

.search-result__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 25px 28px;
}

.search-result__type {
    display: inline-block;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--color-primary);
    margin-bottom: var(--spacing-xs);
}

.search-result__title {
    font-size: clamp(19px, 2.2vw, 25px);
    line-height: 1.12;
    margin: 2px 0 8px;
}

.search-result__title a:hover {
    color: var(--color-primary);
}

.search-result__excerpt {
    font-size: 14px;
    color: var(--color-gray-700);
    line-height: 1.55;
    margin-bottom: 14px;
}

.search-result__meta {
    align-items: center;
    display: flex;
    gap: 18px;
    justify-content: space-between;
    margin-top: auto;
}

.search-result__meta time {
    font-size: 12px;
    color: var(--color-gray-500);
}

.search-result__meta a {
    align-items: center;
    color: var(--color-primary);
    display: inline-flex;
    font-size: 11px;
    font-weight: 850;
    gap: 6px;
    text-transform: uppercase;
}

.search-no-results {
    padding: 60px 20px;
    text-align: center;
}

.search-no-results > i { color: var(--color-primary); font-size: 48px; }
.search-no-results h2 { font-size: 24px; margin: 12px 0 6px; }
.search-no-results p { color: var(--color-gray-600); margin-bottom: 20px; }

/* ============================================================
   AREAS DE ATUAÇÃO (Dept Jurídico)
   ============================================================ */
.areas-atuacao {
    margin-top: var(--spacing-xl);
    padding: var(--spacing-lg);
    background: var(--color-gray-100);
}

.areas-atuacao h3 {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-md);
    color: var(--color-primary);
}

/* ============================================================
   FOOTER
   ============================================================ */
.footer-contact {
    background: var(--color-gray-100);
    padding: var(--spacing-3xl) 0;
}

.footer-contact__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-2xl);
    align-items: start;
}

.footer-contact__title {
    font-size: 28px;
    margin-bottom: var(--spacing-md);
}

.footer-contact__text {
    color: var(--color-gray-700);
    margin-bottom: var(--spacing-xl);
}

.footer-contact__details {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

.contact-detail {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    font-size: 14px;
}

.contact-detail i {
    color: var(--color-primary);
    font-size: 18px;
    flex-shrink: 0;
    margin-top: 2px;
}

.contact-form .btn {
    margin-top: var(--spacing-sm);
}

/* Footer Main */
.footer-main {
    background: var(--color-black);
    color: var(--color-white);
    padding: var(--spacing-2xl) 0;
}

.footer-main__grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: var(--spacing-xl);
}

.footer-about {
    font-size: 14px;
    color: rgba(255,255,255,0.6);
    margin: var(--spacing-md) 0;
    line-height: 1.6;
}

.footer-socials {
    display: flex;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-md);
}

.footer-social {
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,0.2);
    color: rgba(255,255,255,0.6);
    transition: all var(--transition-fast);
}

.footer-social i {
    font-size: 24px;
}

.footer-social:hover {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: var(--color-white);
}

.footer-col__title {
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--color-white);
    margin-bottom: var(--spacing-lg);
}

.footer-links {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.footer-links a,
.footer-links li {
    font-size: 14px;
    color: rgba(255,255,255,0.6);
    transition: color var(--transition-fast);
}

.footer-links a:hover {
    color: var(--color-white);
}

.footer-links--contact li {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    font-size: 13px;
}

.footer-links--contact i {
    color: var(--color-primary);
    flex-shrink: 0;
    margin-top: 2px;
}

/* Footer Copyright */
.footer-copyright {
    background: var(--color-soft-black);
    padding: var(--spacing-md) 0;
    border-top: 1px solid rgba(255,255,255,0.1);
}

.footer-copyright .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.footer-copyright p {
    font-size: 12px;
    color: rgba(255,255,255,0.4);
}

.footer-copyright a {
    color: rgba(255,255,255,0.4);
}

.footer-copyright a:hover {
    color: var(--color-white);
}

/* Páginas legais: leitura longa, hierarquia direta e sem elementos decorativos. */
.assojuris-legal-content { color: #45474d; font-size: 17px; line-height: 1.82; }
.assojuris-legal-content__intro { border-left: 4px solid var(--color-primary); color: #17181c; font-size: 21px; font-weight: 700; margin: 0 0 12px; padding: 4px 0 4px 20px; }
.assojuris-legal-content__updated { color: #858890; font-size: 10px; font-weight: 900; letter-spacing: .11em; margin-bottom: 44px; text-transform: uppercase; }
.assojuris-legal-content section { border-top: 1px solid #dedfe3; padding: 30px 0 16px; }
.assojuris-legal-content section h2 { color: #17181c; font-size: clamp(23px, 3vw, 31px); letter-spacing: -.035em; margin: 0 0 12px; }
.assojuris-legal-content section p { margin: 0; }
.assojuris-legal-content a { color: var(--color-primary); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }

/* ============================================================
   ERROR 404
   ============================================================ */
.error-404__title {
    font-size: 120px;
    font-weight: 900;
    color: var(--color-gray-200);
    line-height: 1;
    margin: var(--spacing-md) 0;
}

.error-404__text {
    font-size: 18px;
    color: var(--color-gray-700);
    margin-bottom: var(--spacing-xl);
}

/* Canais institucionais configuráveis */
.footer-links--contact li>span{display:flex;flex-direction:column;gap:2px}.footer-links--contact li>span small{color:rgba(255,255,255,.38);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}

/* ============================================================
   BLOCOS DO ESTÚDIO DE CONTEÚDO (canvas -> site)
   Espelho de assets/css/admin-studio-v3.css. Se mudar lá, mude aqui.
   ============================================================ */

/* Botões dentro do conteúdo: `.entry-content a` pintava o texto de vermelho
   por cima do fundo vermelho do `.btn--primary`. */
.entry-content a.btn,.entry-content .btn{text-decoration:none}
.entry-content a.btn--primary,.entry-content a.btn--primary:hover{color:var(--color-white)}
.entry-content a.btn--outline{color:var(--color-black)}
.entry-content a.btn--outline:hover{color:var(--color-primary)}
.entry-content a.btn--white,.entry-content a.btn--white:hover{color:var(--color-black)}
.entry-content .content-buttons{margin:1.5em 0}
.entry-content .content-buttons .btn{margin:0 8px 8px 0}
.content-buttons .content-download:before{content:'↓';display:inline-block;font-size:1.15em;font-weight:700;line-height:1;margin-right:.55em;vertical-align:-.03em}

/* Figuras e legendas */
.entry-content figure{margin:1.5em 0}
.entry-content figure img{margin:0}
.entry-content figcaption{color:var(--color-gray-700);font-size:13px;margin-top:8px}
.entry-content figure.alignleft{float:left;margin:.5em 1.5em 1em 0}
.entry-content figure.alignright{float:right;margin:.5em 0 1em 1.5em}
.entry-content figure.aligncenter{margin-left:auto;margin-right:auto}
.entry-content figure.alignnone{clear:both}
.entry-content blockquote cite{color:var(--color-gray-700);display:block;font-size:13px;font-style:normal;font-weight:700;margin-top:10px}
.entry-content pre{background:var(--color-black);color:#f5f5f5;font-family:SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:13px;line-height:1.55;margin:1.5em 0;overflow:auto;padding:18px 20px;white-space:pre-wrap}
.entry-content code{font-family:SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:.92em}
.entry-content :not(pre)>code{background:var(--color-gray-100);border:1px solid var(--color-gray-200);padding:1px 5px}
.entry-content hr{border:0;border-top:1px solid var(--color-gray-200);margin:2em 0}

/* Seção destacada */
.content-section{border-left:3px solid var(--color-primary,#cb2023);margin:1.8em 0;padding:6px 0 6px 22px}
.content-section>:first-child{margin-top:0}

/* Colunas */
.content-columns{display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr));margin:1.8em 0}
.content-columns--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.content-columns>div>:first-child{margin-top:0}

/* Galeria simples */
.content-gallery{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));margin:1.8em 0}
.entry-content .content-gallery figure{margin:0}
.entry-content .content-gallery img{aspect-ratio:1;margin:0;object-fit:cover;width:100%}

/* Vídeo */
.content-video{background:var(--color-black,#0e0e0e);margin:1.8em 0;position:relative}
.content-video.is-embed{aspect-ratio:16/9}
.content-video.is-embed iframe{border:0;display:block;height:100%;left:0;position:absolute;top:0;width:100%}
.entry-content .content-video video{display:block;margin:0;width:100%}
.content-video__poster{aspect-ratio:16/9;display:block;overflow:hidden;position:relative;text-decoration:none!important}
.entry-content .content-video__poster img{height:100%;margin:0;object-fit:cover;width:100%}
.content-video__play{align-items:center;background:var(--color-primary,#cb2023);border-radius:50%;display:flex;height:62px;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:62px}
.content-video__play:after{border-bottom:11px solid transparent;border-left:18px solid #fff;border-top:11px solid transparent;content:"";display:block;margin-left:5px}
.content-video__label{background:rgba(14,14,14,.8);bottom:0;color:#fff;font-size:11px;font-weight:800;left:0;letter-spacing:.08em;padding:9px 13px;position:absolute;right:0;text-transform:uppercase}

/* Avisos */
.content-callout{align-items:flex-start;border-left:4px solid;display:flex;gap:14px;margin:1.8em 0;padding:18px 20px}
.content-callout__icon{flex:0 0 auto;line-height:1}
.content-callout i{flex:0 0 auto;font-size:26px;line-height:1.1}
.content-callout__body{min-width:0}
.content-callout__body p{margin:0 0 .4em}
.content-callout__body p:last-child{margin-bottom:0}
.content-callout--info{background:#eef5fb;border-color:var(--color-info,#0c71c3);color:#123c5c}
.content-callout--info i{color:var(--color-info,#0c71c3)}
.content-callout--warning{background:#fdf6e6;border-color:var(--color-warning,#e09900);color:#5c4310}
.content-callout--warning i{color:var(--color-warning,#e09900)}
.content-callout--success{background:#eaf6f2;border-color:var(--color-success,#0e6655);color:#0f4a3e}
.content-callout--success i{color:var(--color-success,#0e6655)}
.content-callout--primary{background:var(--color-primary-tint,rgba(203,32,35,.05));border-color:var(--color-primary,#cb2023);color:#5c1214}
.content-callout--primary i{color:var(--color-primary,#cb2023)}

/* Lista com ícones */
.entry-content .content-icon-list{display:grid;gap:10px;list-style:none;margin:1.5em 0;padding-left:0}
.entry-content .content-icon-list li{align-items:flex-start;display:flex;gap:11px;margin:0}
.entry-content .content-icon-list i{color:var(--color-primary,#cb2023);flex:0 0 auto;font-size:21px;line-height:1.35}

/* Perguntas frequentes */
.content-faq{border-top:1px solid var(--color-gray-200,#e5e5e5);margin:1.8em 0}
.content-faq__item{border-bottom:1px solid var(--color-gray-200,#e5e5e5)}
.content-faq__item>summary{align-items:center;cursor:pointer;display:flex;font-weight:800;gap:12px;justify-content:space-between;list-style:none;padding:16px 0}
.content-faq__item>summary::-webkit-details-marker{display:none}
.content-faq__item>summary:after{color:var(--color-primary,#cb2023);content:"+";font-size:22px;font-weight:700;line-height:1}
.content-faq__item[open]>summary:after{content:"–"}
.content-faq__answer{padding:0 0 18px}
.content-faq__answer p:last-child{margin-bottom:0}

/* Tabela */
.content-table{border-collapse:collapse;margin:1.8em 0;width:100%}
.content-table th,.content-table td{border:1px solid var(--color-gray-200,#e5e5e5);font-size:14px;padding:11px 14px;text-align:left;vertical-align:top}
.content-table thead th{background:var(--color-primary,#cb2023);border-color:var(--color-primary,#cb2023);color:#fff;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.content-table tbody tr:nth-child(2n){background:#fafafa}

/* Destaque */
.content-highlight{background:var(--color-gray-100,#f5f5f5);border-top:4px solid var(--color-primary,#cb2023);margin:1.8em 0;padding:26px 28px}
.content-highlight>:first-child{margin-top:0}
.content-highlight>:last-child{margin-bottom:0}

/* Imagem com texto ao lado */
.content-media-text{align-items:center;display:grid;gap:28px;grid-template-columns:repeat(2,minmax(0,1fr));margin:1.8em 0}
.entry-content .content-media-text figure{margin:0}
.entry-content .content-media-text img{display:block;margin:0;width:100%}
.content-media-text--reverse figure{order:2}
.content-media-text__body>:first-child{margin-top:0}

/* Espaçador */
.content-spacer{width:100%}

@media(max-width:768px){
    .content-columns,.content-columns--3,.content-media-text{grid-template-columns:1fr}
    .content-media-text--reverse figure{order:0}
    .content-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
    .content-table{display:block;overflow-x:auto}
}

/* Miniatura da segunda notícia da home. Ocupa a mesma coluna do número para
   que os títulos da lista continuem alinhados entre si. */
.news-list__number { min-width: 54px; width: 54px; }
.news-list__thumb { min-width: 160px; width: 160px; }
/* A lista distribui a sobra para fechar na mesma altura do destaque ao lado. */
.news-grid .news-list { justify-content: space-between; }
.news-list__thumb {
    /* 20/13 é a proporção exata do recorte card-thumb (400x260): a imagem
       entra inteira, sem corte extra e sem reescalonar para cima. */
    align-self: flex-start; aspect-ratio: 20 / 13; background: var(--color-gray-200);
    display: block; flex-shrink: 0; overflow: hidden;
}
.news-list__thumb img,
.news-list__thumb video { display: block; height: 100%; object-fit: cover; transition: transform .5s ease; width: 100%; }
.news-list__thumb picture { display: block; height: 100%; width: 100%; }
.news-list__item:not(.news-list__item--desktop-thumb) .news-list__thumb { display: none; }
.news-list__item--desktop-thumb .news-list__number { display: none; }
.news-list__item--desktop-thumb:hover .news-list__thumb img { transform: scale(1.06); }

/* Imagem inteira nos cards de notícia da home.
   As capas são peças gráficas com texto: recortar com `cover` comia parte do
   conteúdo. Com `contain` a arte aparece completa, e o fundo igual ao da seção
   (--color-gray-100) faz a sobra desaparecer — a caixa e o espaçamento não mudam. */
.news-featured__image { background: var(--color-gray-100); }
.news-featured__image img { object-fit: contain; }
.news-list__thumb { background: var(--color-gray-100); }
.news-list__thumb img { object-fit: contain; }

/* ============================================================
   ESTÚDIO — VARIANTES DE BLOCO (atributos do painel de configuração)
   O render server-side emite:
     <div class="content-block content-block--{tipo} is-w-50 is-align-center">
   Espelho em assets/css/admin-studio-v3.css, com o prefixo
   `.studio-block__content`. Se mudar aqui, mude lá.
   ============================================================ */

/* --- Escala de espaçamento compartilhada -------------------- */
.content-block { --block-gap: 20px; }
.content-block.is-gap-sm { --block-gap: 8px; }
.content-block.is-gap-md { --block-gap: 20px; }
.content-block.is-gap-lg { --block-gap: 36px; }

/* --- Largura e alinhamento (qualquer bloco) ----------------- */
.content-block { max-width: 100%; }
.content-block.is-w-25 { width: 25%; }
.content-block.is-w-50 { width: 50%; }
.content-block.is-w-75 { width: 75%; }
.content-block.is-w-100 { width: 100%; }
.content-block.is-align-left { margin-left: 0; margin-right: auto; }
.content-block.is-align-center { margin-left: auto; margin-right: auto; }
.content-block.is-align-right { margin-left: auto; margin-right: 0; }
/* Blocos de conteúdo em linha alinham o próprio miolo, não a caixa. */
.content-buttons.is-align-left,.content-icon-list.is-align-left,.content-quote.is-align-left { text-align: left; }
.content-buttons.is-align-center,.content-icon-list.is-align-center,.content-quote.is-align-center { text-align: center; }
.content-buttons.is-align-right,.content-icon-list.is-align-right,.content-quote.is-align-right { text-align: right; }

/* --- Galeria ------------------------------------------------ */
.content-gallery { --block-gap: 10px; --gallery-cols: 3; gap: var(--block-gap); }
.content-gallery.is-cols-2 { --gallery-cols: 2; }
.content-gallery.is-cols-3 { --gallery-cols: 3; }
.content-gallery.is-cols-4 { --gallery-cols: 4; }
.content-gallery.is-cols-5 { --gallery-cols: 5; }
.content-gallery.is-layout-grid { display: grid; grid-template-columns: repeat(var(--gallery-cols), minmax(0, 1fr)); }
/* Mosaico: colunas CSS, altura livre — a imagem não é recortada. */
.content-gallery.is-layout-masonry { columns: var(--gallery-cols); column-gap: var(--block-gap); display: block; }
.content-gallery.is-layout-masonry figure { break-inside: avoid; margin: 0 0 var(--block-gap); }
.entry-content .content-gallery.is-layout-masonry img { aspect-ratio: auto; height: auto; }
/* Carrossel/slider: rolagem horizontal com scroll-snap. Mesmo desenho de
   controles do `.contact-carousel` (contact-page.css). */
.content-gallery.is-layout-carousel,
.content-gallery.is-layout-slider {
    -ms-overflow-style: none;
    display: flex;
    gap: var(--block-gap);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    touch-action: pan-y;
}
.content-gallery.is-layout-carousel::-webkit-scrollbar,
.content-gallery.is-layout-slider::-webkit-scrollbar { display: none; }
.content-gallery.is-layout-carousel > * {
    flex: 0 0 calc((100% - (var(--gallery-cols) - 1) * var(--block-gap)) / var(--gallery-cols));
    scroll-snap-align: start;
}
.content-gallery.is-layout-slider > * { flex: 0 0 100%; scroll-snap-align: center; }
.entry-content .content-gallery.is-layout-slider img { aspect-ratio: 16 / 9; }
.entry-content .content-gallery.is-crop-landscape img { aspect-ratio: 4 / 3; object-fit: cover; }
.entry-content .content-gallery.is-crop-portrait img { aspect-ratio: 3 / 4; object-fit: cover; }
.entry-content .content-gallery.is-crop-none img { aspect-ratio: auto; height: auto; object-fit: contain; }
.content-gallery a[data-gallery-link] { display: block; }
.content-gallery__controls { align-items: center; display: flex; gap: 18px; margin-top: 22px; }
.content-gallery__controls > button { align-items: center; background: transparent; border: 1px solid var(--color-gray-300, #ccc); border-radius: 0; color: var(--color-black, #171717); cursor: pointer; display: flex; height: 46px; justify-content: center; transition: background .2s, color .2s, border-color .2s; width: 46px; }
.content-gallery__controls > button:hover,
.content-gallery__controls > button:focus-visible { background: var(--color-black, #171717); border-color: var(--color-black, #171717); color: #fff; }
.content-gallery__controls > button[hidden],
.content-gallery__controls > button:disabled { opacity: .35; pointer-events: none; }
.content-gallery__progress { background: var(--color-gray-200, #e5e5e5); flex: 1; height: 2px; overflow: hidden; }
.content-gallery__progress i { background: var(--color-primary, #cb2023); display: block; height: 100%; transform: scaleX(.2); transform-origin: left; transition: transform .5s ease; width: 100%; }
.content-gallery__controls > span { color: var(--color-gray-500, #888); font-size: 12px; letter-spacing: .08em; min-width: 54px; }
.content-gallery__controls > span b { color: var(--color-black, #171717); }

/* --- Divisor ------------------------------------------------ */
.content-separator { background: none; border: 0; border-top: 1px solid var(--color-gray-300, #ccc); height: 0; margin: 2em 0; width: 100%; }
.content-separator.is-sep-line { border-top-style: solid; border-top-width: 1px; }
.content-separator.is-sep-dotted { border-top-style: dotted; border-top-width: 2px; }
.content-separator.is-sep-dashed { border-top-style: dashed; border-top-width: 2px; }
.content-separator.is-sep-thick { border-top-color: var(--color-primary, #cb2023); border-top-style: solid; border-top-width: 4px; }
/* Ornamento: dois filetes e um losango vermelho ao centro. */
.content-separator.is-sep-ornament {
    align-items: center;
    background: center / 10px 10px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M5 0 10 5 5 10 0 5Z' fill='%23cb2023'/%3E%3C/svg%3E");
    border: 0;
    display: flex;
    gap: 26px;
    height: auto;
    justify-content: center;
    overflow: visible;
}
.content-separator.is-sep-ornament:before,
.content-separator.is-sep-ornament:after { background: var(--color-gray-200, #e5e5e5); content: ""; flex: 1 1 auto; height: 1px; max-width: 130px; }
.content-separator.is-short { width: 80px; }
.content-separator.is-medium { width: 280px; }
.content-separator.is-full { width: 100%; }

/* --- Espaçador ---------------------------------------------- */
/* No site é invisível: a altura vem por style inline. */
.content-spacer { display: block; width: 100%; }

/* --- Vídeo -------------------------------------------------- */
.content-video.is-ratio-16-9,.content-video.is-ratio-16-9 .content-video__frame { aspect-ratio: 16 / 9; }
.content-video.is-ratio-4-3,.content-video.is-ratio-4-3 .content-video__frame { aspect-ratio: 4 / 3; }
.content-video.is-ratio-1-1,.content-video.is-ratio-1-1 .content-video__frame { aspect-ratio: 1; }
.content-video__frame { display: block; overflow: hidden; position: relative; width: 100%; }
.content-video[class*="is-ratio-"] iframe,
.content-video__frame iframe { border: 0; display: block; height: 100%; left: 0; position: absolute; top: 0; width: 100%; }
.content-video[class*="is-ratio-"] video,
.content-video__frame video { display: block; height: 100%; object-fit: cover; width: 100%; }
/* Com legenda a caixa preta é só o quadro; a razão vai para o `__frame`. */
.content-video:has(.content-video__caption) { aspect-ratio: auto; background: none; }
.content-video__caption { color: var(--color-gray-700, #555); font-size: 13px; margin-top: 8px; }
.entry-content .content-figure.is-ratio-16-9 img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
.entry-content .content-figure.is-ratio-4-3 img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.entry-content .content-figure.is-ratio-1-1 img { aspect-ratio: 1; object-fit: cover; width: 100%; }
.entry-content .content-figure.is-ratio-3-4 img { aspect-ratio: 3 / 4; object-fit: cover; width: 100%; }
.content-video.is-ratio-4-3 .content-video__poster { aspect-ratio: 4 / 3; }
.content-video.is-ratio-1-1 .content-video__poster { aspect-ratio: 1; }

/* --- Colunas ------------------------------------------------ */
.content-columns { gap: var(--block-gap, 24px); }
.content-columns.is-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.content-columns.is-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.content-columns.is-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.content-columns.is-ratio-50-50 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.content-columns.is-ratio-60-40 { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
.content-columns.is-ratio-40-60 { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
.content-columns.is-ratio-33-33-33 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.content-columns.is-ratio-25-50-25 { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr); }
.content-columns[style*="--columns-template"] { grid-template-columns: var(--columns-template); }
.content-columns.is-valign-top { align-items: start; }
.content-columns.is-valign-center { align-items: center; }
.content-columns.is-valign-bottom { align-items: end; }
.content-columns > div > :first-child { margin-top: 0; }
.content-columns > div > :last-child { margin-bottom: 0; }

/* --- Lista de ícones ---------------------------------------- */
.entry-content .content-icon-list.is-cols-1 { grid-template-columns: 1fr; }
.entry-content .content-icon-list.is-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.entry-content .content-icon-list.is-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.entry-content .content-icon-list { gap: var(--block-gap, 10px); }
.content-icon-list.is-align-center li { justify-content: center; text-align: left; }
.content-icon-list.is-align-right li { justify-content: flex-end; text-align: left; }

/* --- FAQ ---------------------------------------------------- */
/* Cantos retos e seta que gira (substitui o "+/–" anterior). */
.content-faq__item > summary { border-radius: 0; }
.content-faq__item > summary:after {
    border-bottom: 2px solid var(--color-primary, #cb2023);
    border-right: 2px solid var(--color-primary, #cb2023);
    content: "";
    flex: 0 0 auto;
    height: 9px;
    margin: -4px 4px 0 0;
    transform: rotate(45deg);
    transition: transform .22s ease;
    width: 9px;
}
.content-faq__item[open] > summary:after { content: ""; margin-top: 2px; transform: rotate(-135deg); }
.content-faq__item > summary:focus-visible { outline: 2px solid var(--color-primary, #cb2023); outline-offset: 2px; }

/* --- Tabela ------------------------------------------------- */
/* A rolagem fica no invólucro; a tabela nunca estoura a página. */
.content-block--table,.content-table__scroll { -webkit-overflow-scrolling: touch; max-width: 100%; overflow-x: auto; }
.content-table.is-striped tbody tr:nth-child(2n) { background: var(--color-gray-100, #f5f5f5); }
.content-table:not(.is-striped) tbody tr:nth-child(2n) { background: transparent; }
.content-table.is-compact th,.content-table.is-compact td { font-size: 13px; padding: 7px 10px; }
.content-table th.is-col-center,.content-table td.is-col-center,.content-table [data-align="center"] { text-align: center; }
.content-table th.is-col-right,.content-table td.is-col-right,.content-table [data-align="right"] { text-align: right; }
.content-table th.is-col-left,.content-table td.is-col-left,.content-table [data-align="left"] { text-align: left; }

/* --- Citação ------------------------------------------------ */
.content-quote { margin: 1.8em 0; }
.content-quote > :first-child { margin-top: 0; }
.content-quote > :last-child { margin-bottom: 0; }
.content-quote.is-variant-default { border-left: 3px solid var(--color-primary, #cb2023); font-style: italic; padding: 6px 0 6px 22px; }
.content-quote.is-variant-feature { background: var(--color-gray-100, #f5f5f5); border-top: 4px solid var(--color-primary, #cb2023); font-size: 22px; font-weight: 800; letter-spacing: -.01em; line-height: 1.35; padding: 30px 32px; }
.content-quote.is-variant-testimonial { align-items: center; background: var(--color-gray-100, #f5f5f5); display: grid; gap: 22px; grid-template-columns: auto minmax(0, 1fr); padding: 26px 28px; }
.entry-content .content-quote__avatar { border-radius: 50%; flex: 0 0 auto; height: 72px; margin: 0; object-fit: cover; width: 72px; }
.content-quote__body > :first-child { margin-top: 0; }
.content-quote__author { display: block; font-weight: 800; margin-top: 10px; }
.content-quote__role { color: var(--color-gray-700, #555); display: block; font-size: 13px; }

/* --- Destaque / Callout ------------------------------------- */
.content-highlight.is-variant-info,.content-callout.is-variant-info { background: #eef5fb; border-left: 4px solid var(--color-info, #0c71c3); border-top: 0; color: #123c5c; }
.content-highlight.is-variant-info i,.content-callout.is-variant-info i { color: var(--color-info, #0c71c3); }
.content-highlight.is-variant-warning,.content-callout.is-variant-warning { background: #fdf6e6; border-left: 4px solid var(--color-warning, #e09900); border-top: 0; color: #5c4310; }
.content-highlight.is-variant-warning i,.content-callout.is-variant-warning i { color: var(--color-warning, #e09900); }
.content-highlight.is-variant-success,.content-callout.is-variant-success { background: #eaf6f2; border-left: 4px solid var(--color-success, #0e6655); border-top: 0; color: #0f4a3e; }
.content-highlight.is-variant-success i,.content-callout.is-variant-success i { color: var(--color-success, #0e6655); }
.content-highlight.is-variant-cta,.content-callout.is-variant-cta { background: var(--color-primary, #cb2023); border-left: 4px solid #8a1517; border-top: 0; color: #fff; }
.content-highlight.is-variant-cta i,.content-callout.is-variant-cta i { color: #fff; }
.content-highlight.is-variant-cta a:not(.btn),.content-callout.is-variant-cta a:not(.btn) { color: #fff; text-decoration: underline; }
.entry-content .content-highlight.is-variant-cta :is(h1,h2,h3,h4,h5,h6,strong) { color: #fff; }

/* --- Botões ------------------------------------------------- */
.content-buttons.is-size-sm .btn { font-size: 12px; gap: 6px; padding: 8px 18px; }
.content-buttons.is-size-md .btn { font-size: 14px; gap: 8px; padding: 12px 28px; }
.content-buttons.is-size-lg .btn { font-size: 16px; gap: 10px; padding: 16px 38px; }
/* Largura total de verdade: a margem lateral herdada de `.content-buttons .btn`
   fazia o botão vazar do container. */
.entry-content .content-buttons .btn--full,
.content-buttons .btn--full { display: flex; justify-content: center; margin-left: 0; margin-right: 0; width: 100%; }

/* --- Bloco HTML livre --------------------------------------- */
.content-block--html { max-width: 100%; overflow-x: auto; }

@media (max-width: 768px) {
    .entry-content .content-figure[style],.entry-content .content-video[style] { width: 100% !important; }
    .content-block[class*="is-w-"] { width: 100%; }
    .content-columns.is-cols-2,
    .content-columns.is-cols-3,
    .content-columns.is-cols-4,
    .content-columns[class*="is-ratio-"] { grid-template-columns: 1fr; }
    .entry-content .content-icon-list.is-cols-2,
    .entry-content .content-icon-list.is-cols-3 { grid-template-columns: 1fr; }
    .content-gallery.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .content-gallery.is-layout-masonry { columns: 2; }
    .content-gallery.is-layout-carousel > * { flex-basis: 78%; }
    .content-quote.is-variant-testimonial { grid-template-columns: 1fr; justify-items: start; }
    .content-quote.is-variant-feature { font-size: 18px; padding: 22px 20px; }
    /* A tabela rola dentro do invólucro; `display:block` aqui quebrava a grade. */
    .content-block--table .content-table,.content-table__scroll .content-table { display: table; }
    .content-separator.is-medium { width: min(280px, 100%); }
}
