/*
 * utilities.css
 * Classes auxiliares: grid, flex, gap, height, visibilidade e tipografia.
 *
 * Largura máx. de header/items (section_class na .jrx-section):
 *   jrx-section-header-90 … 10 | jrx-section-items-90 … 10
 *   Aplica-se a itens na coluna principal ou na coluna da mídia (__media-column).
 *   Em mobile (≤767px) voltam a 100%.
 * Ordem na content_section (section_class na .jrx-section):
 *   jrx-section-main-order-0 … 2 | jrx-section-media-order-0 … 2 (coluna __media-column)
 *   jrx-section-header-order-0 … 2 | jrx-section-items-order-0 … 2 | jrx-section-actions-order-0 … 2
 *   Variantes mobile: *-order-sm-0 … 2 (≤767px)
 * Split main/mídia (proporção de colunas no grid): ver section-content.css
 *   jrx-section-split-main-60 | jrx-section-split-media-40 (presets split_, desktop ≥992px)
 *
 * Tipografia (campo "Classes extras" da seção ou do card):
 *   Seção — título: jrx-sec-title-sm … jrx-sec-title-2xl | peso: jrx-sec-title-normal … bold
 *           descrição: jrx-sec-desc-sm … lg | kicker: jrx-sec-kicker-sm … lg
 *           todos os cards: jrx-sec-cards-title-* | jrx-sec-cards-text-*
 *   Card — título: jrx-card-title-sm … xl | peso: jrx-card-title-normal … bold
 *          texto: jrx-card-text-xs … lg
 */

/* ---------- Grid ----------------------------------------------------------- */
.jrx-grid {
	display: grid;
	gap: var(--jrx-grid-gap);
}
.jrx-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jrx-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.jrx-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.jrx-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.jrx-grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

@media (max-width: 991px) {
	.jrx-grid { grid-template-columns: repeat(var(--jrx-grid-cols-tablet, 2), minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.jrx-grid { grid-template-columns: repeat(var(--jrx-grid-cols-mobile, 1), minmax(0, 1fr)); }
}

/* ---------- Flex ----------------------------------------------------------- */
.jrx-flex { display: flex; }
.jrx-flex-col { display: flex; flex-direction: column; }
.jrx-flex-wrap { flex-wrap: wrap; }
.jrx-items-center { align-items: center; }
.jrx-justify-center { justify-content: center; }
.jrx-justify-between { justify-content: space-between; }

/* ---------- Gap ------------------------------------------------------------ */
.jrx-gap-sm { gap: 0.5rem; }
.jrx-gap-md { gap: var(--jrx-grid-gap, 1.5rem); }
.jrx-gap-lg { gap: clamp(1.5rem, 3vw, 2.5rem); }

/* ---------- Height --------------------------------------------------------- */
.jrx-h-100 { height: 100%; }
.jrx-min-h-100 { min-height: 100%; }
.jrx-h-100vh { min-height: 100vh; }
.jrx-h-75vh { min-height: 75vh; }
.jrx-h-50vh { min-height: 50vh; }

/* ---------- Width --------------------------------------------------------- */
.jrx-w-full { width: 100%; }
.jrx-min-w-full { min-width: 100%; }
.jrx-w-100 { width: 100%; }
.jrx-w-90 { width: 90%; }
.jrx-w-80 { width: 80%; }
.jrx-w-75 { width: 75%; }
.jrx-w-60 { width: 60%; }
.jrx-w-50 { width: 50%; }
.jrx-w-40 { width: 40%; }
.jrx-w-30 { width: 30%; }
.jrx-w-25 { width: 25%; }
.jrx-w-20 { width: 20%; }
.jrx-w-10 { width: 10%; }

/* ---------- Max Width --------------------------------------------------------- */
.jrx-max-w-full { max-width: 100%; }
.jrx-max-w-100vw { max-width: 100vw; }
.jrx-max-w-75vw { max-width: 75vw; }
.jrx-max-w-50vw { max-width: 50vw; }

/* ---------- Max Height --------------------------------------------------------- */
.jrx-max-h-full { max-height: 100%; }
.jrx-max-h-100vh { max-height: 100vh; }
.jrx-max-h-75vh { max-height: 75vh; }
.jrx-max-h-50vh { max-height: 50vh; }

@media (max-width: 767px) {
	.jrx-w-90 { width: 100%; }
	.jrx-w-80 { width: 100%; }
	.jrx-w-75 { width: 100%; }
	.jrx-w-60 { width: 100%; }
	.jrx-w-50 { width: 100%; }
	.jrx-w-40 { width: 100%; }
	.jrx-w-30 { width: 100%; }
	.jrx-w-25 { width: 100%; }
	.jrx-w-20 { width: 100%; }
	.jrx-w-10 { width: 100%; }
}


/* content_section — max-width de header/items (section_class na .jrx-section) */
.jrx-section.jrx-section-header-90 .jrx-content-section__header,
.jrx-section.jrx-section-items-90 .jrx-content-section__items,
.jrx-section.jrx-section-items-90 .jrx-content-section__media-column .jrx-content-section__items { max-width: 90%; }

.jrx-section.jrx-section-header-80 .jrx-content-section__header,
.jrx-section.jrx-section-items-80 .jrx-content-section__items,
.jrx-section.jrx-section-items-80 .jrx-content-section__media-column .jrx-content-section__items { max-width: 80%; }

.jrx-section.jrx-section-header-75 .jrx-content-section__header,
.jrx-section.jrx-section-items-75 .jrx-content-section__items,
.jrx-section.jrx-section-items-75 .jrx-content-section__media-column .jrx-content-section__items { max-width: 75%; }

.jrx-section.jrx-section-header-60 .jrx-content-section__header,
.jrx-section.jrx-section-items-60 .jrx-content-section__items,
.jrx-section.jrx-section-items-60 .jrx-content-section__media-column .jrx-content-section__items { max-width: 60%; }

.jrx-section.jrx-section-header-50 .jrx-content-section__header,
.jrx-section.jrx-section-items-50 .jrx-content-section__items,
.jrx-section.jrx-section-items-50 .jrx-content-section__media-column .jrx-content-section__items { max-width: 50%; }

.jrx-section.jrx-section-header-40 .jrx-content-section__header,
.jrx-section.jrx-section-items-40 .jrx-content-section__items,
.jrx-section.jrx-section-items-40 .jrx-content-section__media-column .jrx-content-section__items { max-width: 40%; }

.jrx-section.jrx-section-header-30 .jrx-content-section__header,
.jrx-section.jrx-section-items-30 .jrx-content-section__items,
.jrx-section.jrx-section-items-30 .jrx-content-section__media-column .jrx-content-section__items { max-width: 30%; }

.jrx-section.jrx-section-header-25 .jrx-content-section__header,
.jrx-section.jrx-section-items-25 .jrx-content-section__items,
.jrx-section.jrx-section-items-25 .jrx-content-section__media-column .jrx-content-section__items { max-width: 25%; }

.jrx-section.jrx-section-header-20 .jrx-content-section__header,
.jrx-section.jrx-section-items-20 .jrx-content-section__items,
.jrx-section.jrx-section-items-20 .jrx-content-section__media-column .jrx-content-section__items { max-width: 20%; }

.jrx-section.jrx-section-header-10 .jrx-content-section__header,
.jrx-section.jrx-section-items-10 .jrx-content-section__items,
.jrx-section.jrx-section-items-10 .jrx-content-section__media-column .jrx-content-section__items { max-width: 10%; }

@media screen and (max-width: 767px) {
	.jrx-section.jrx-section-header-90 .jrx-content-section__header,
	.jrx-section.jrx-section-header-80 .jrx-content-section__header,
	.jrx-section.jrx-section-header-75 .jrx-content-section__header,
	.jrx-section.jrx-section-header-60 .jrx-content-section__header,
	.jrx-section.jrx-section-header-50 .jrx-content-section__header,
	.jrx-section.jrx-section-header-40 .jrx-content-section__header,
	.jrx-section.jrx-section-header-30 .jrx-content-section__header,
	.jrx-section.jrx-section-header-25 .jrx-content-section__header,
	.jrx-section.jrx-section-header-20 .jrx-content-section__header,
	.jrx-section.jrx-section-header-10 .jrx-content-section__header,
	.jrx-section.jrx-section-items-90 .jrx-content-section__items,
	.jrx-section.jrx-section-items-80 .jrx-content-section__items,
	.jrx-section.jrx-section-items-75 .jrx-content-section__items,
	.jrx-section.jrx-section-items-60 .jrx-content-section__items,
	.jrx-section.jrx-section-items-50 .jrx-content-section__items,
	.jrx-section.jrx-section-items-40 .jrx-content-section__items,
	.jrx-section.jrx-section-items-30 .jrx-content-section__items,
	.jrx-section.jrx-section-items-25 .jrx-content-section__items,
	.jrx-section.jrx-section-items-20 .jrx-content-section__items,
	.jrx-section.jrx-section-items-10 .jrx-content-section__items,
	.jrx-section.jrx-section-items-90 .jrx-content-section__media-column .jrx-content-section__items,
	.jrx-section.jrx-section-items-80 .jrx-content-section__media-column .jrx-content-section__items,
	.jrx-section.jrx-section-items-75 .jrx-content-section__media-column .jrx-content-section__items,
	.jrx-section.jrx-section-items-60 .jrx-content-section__media-column .jrx-content-section__items,
	.jrx-section.jrx-section-items-50 .jrx-content-section__media-column .jrx-content-section__items,
	.jrx-section.jrx-section-items-40 .jrx-content-section__media-column .jrx-content-section__items,
	.jrx-section.jrx-section-items-30 .jrx-content-section__media-column .jrx-content-section__items,
	.jrx-section.jrx-section-items-25 .jrx-content-section__media-column .jrx-content-section__items,
	.jrx-section.jrx-section-items-20 .jrx-content-section__media-column .jrx-content-section__items,
	.jrx-section.jrx-section-items-10 .jrx-content-section__media-column .jrx-content-section__items { max-width: 100%; }
}

/* ---------- Visibilidade responsiva ---------------------------------------- */
@media (max-width: 767px)  { .jrx-section.is-hidden-mobile  { display: none !important; } }
@media (min-width: 768px) and (max-width: 991px) { .jrx-section.is-hidden-tablet  { display: none !important; } }
@media (min-width: 992px) { .jrx-section.is-hidden-desktop { display: none !important; } }


.jrx-section-main-order-0 .jrx-content-section__main{ order: 0; }
.jrx-section-main-order-1 .jrx-content-section__main{ order: 1; }
.jrx-section-main-order-2 .jrx-content-section__main{ order: 2; }

.jrx-section-media-order-0 .jrx-content-section__media-slot,
.jrx-section-media-order-0 .jrx-content-section__media-column { order: 0; }
.jrx-section-media-order-1 .jrx-content-section__media-slot,
.jrx-section-media-order-1 .jrx-content-section__media-column { order: 1; }
.jrx-section-media-order-2 .jrx-content-section__media-slot,
.jrx-section-media-order-2 .jrx-content-section__media-column { order: 2; }

.jrx-section-header-order-0 .jrx-content-section__header{ order: 0; }
.jrx-section-header-order-1 .jrx-content-section__header{ order: 1; }
.jrx-section-header-order-2 .jrx-content-section__header{ order: 2; }

.jrx-section-items-order-0 .jrx-content-section__items{ order: 0; }
.jrx-section-items-order-1 .jrx-content-section__items{ order: 1; }
.jrx-section-items-order-2 .jrx-content-section__items{ order: 2; }

.jrx-section-actions-order-0 .jrx-content-section__actions{ order: 0; }
.jrx-section-actions-order-1 .jrx-content-section__actions{ order: 1; }
.jrx-section-actions-order-2 .jrx-content-section__actions{ order: 2; }

@media (max-width: 767px) {
	.jrx-section-main-order-sm-0 .jrx-content-section__main { order: 0 !important; }
	.jrx-section-main-order-sm-1 .jrx-content-section__main { order: 1 !important; }
	.jrx-section-main-order-sm-2 .jrx-content-section__main { order: 2 !important; }

	.jrx-section-media-order-sm-0 .jrx-content-section__media-slot,
	.jrx-section-media-order-sm-0 .jrx-content-section__media-column { order: 0 !important; }
	.jrx-section-media-order-sm-1 .jrx-content-section__media-slot,
	.jrx-section-media-order-sm-1 .jrx-content-section__media-column { order: 1 !important; }
	.jrx-section-media-order-sm-2 .jrx-content-section__media-slot,
	.jrx-section-media-order-sm-2 .jrx-content-section__media-column { order: 2 !important; }

	.jrx-section-header-order-sm-0 .jrx-content-section__header{ order: 0 !important; }
	.jrx-section-header-order-sm-1 .jrx-content-section__header{ order: 1 !important; }
	.jrx-section-header-order-sm-2 .jrx-content-section__header{ order: 2 !important; }
	
	.jrx-section-items-order-sm-0 .jrx-content-section__items{ order: 0 !important; }
	.jrx-section-items-order-sm-1 .jrx-content-section__items{ order: 1 !important; }
	.jrx-section-items-order-sm-2 .jrx-content-section__items{ order: 2 !important; }

	.jrx-section-actions-order-sm-0 .jrx-content-section__actions{ order: 0 !important; }
	.jrx-section-actions-order-sm-1 .jrx-content-section__actions{ order: 1 !important; }
	.jrx-section-actions-order-sm-2 .jrx-content-section__actions{ order: 2 !important; }
}


/* ---------- Tipografia — escala ---------------------------------------------- */
:root {
	--jrx-sec-title-sm: clamp(1.25rem, 2.2vw, 1.5rem);
	--jrx-sec-title-md: clamp(1.5rem, 2.8vw, 2rem);
	--jrx-sec-title-lg: clamp(1.75rem, 3.2vw, 2.5rem);
	--jrx-sec-title-xl: clamp(2rem, 3.8vw, 3rem);
	--jrx-sec-title-2xl: clamp(2.25rem, 4.5vw, 3.5rem);

	--jrx-sec-desc-sm: 0.9375rem;
	--jrx-sec-desc-md: 1.0625rem;
	--jrx-sec-desc-lg: 1.1875rem;

	--jrx-sec-kicker-sm: 0.6875rem;
	--jrx-sec-kicker-md: 0.75rem;
	--jrx-sec-kicker-lg: 0.8125rem;

	--jrx-card-title-xs: 0.9375rem;
	--jrx-card-title-sm: 1rem;
	--jrx-card-title-md: 1.125rem;
	--jrx-card-title-lg: 1.5rem;
	--jrx-card-title-xl: 2rem;

	--jrx-card-text-xs: 0.8125rem;
	--jrx-card-text-sm: 0.875rem;
	--jrx-card-text-md: 1rem;
	--jrx-card-text-lg: 1.0625rem;
}

/* ---------- Tipografia — título da seção (.jrx-section-header__title) -------- */
.jrx-section.jrx-sec-title-sm .jrx-section-header__title { font-size: var(--jrx-sec-title-sm); line-height: 1.25; }
.jrx-section.jrx-sec-title-md .jrx-section-header__title { font-size: var(--jrx-sec-title-md); line-height: 1.2; }
.jrx-section.jrx-sec-title-lg .jrx-section-header__title { font-size: var(--jrx-sec-title-lg); line-height: 1.15; }
.jrx-section.jrx-sec-title-xl .jrx-section-header__title { font-size: var(--jrx-sec-title-xl); line-height: 1.1; }
.jrx-section.jrx-sec-title-2xl .jrx-section-header__title { font-size: var(--jrx-sec-title-2xl); line-height: 1.08; }

.jrx-section.jrx-sec-title-normal .jrx-section-header__title { font-weight: 400; }
.jrx-section.jrx-sec-title-medium .jrx-section-header__title { font-weight: 500; }
.jrx-section.jrx-sec-title-semibold .jrx-section-header__title { font-weight: 600; }
.jrx-section.jrx-sec-title-bold .jrx-section-header__title { font-weight: 700; }
.jrx-section.jrx-sec-title-extrabold .jrx-section-header__title { font-weight: 800; }

/* ---------- Tipografia — descrição e kicker da seção ----------------------- */
.jrx-section.jrx-sec-desc-sm .jrx-section-header__description { font-size: var(--jrx-sec-desc-sm); line-height: 1.55; }
.jrx-section.jrx-sec-desc-md .jrx-section-header__description { font-size: var(--jrx-sec-desc-md); line-height: 1.55; }
.jrx-section.jrx-sec-desc-lg .jrx-section-header__description { font-size: var(--jrx-sec-desc-lg); line-height: 1.5; }

.jrx-section.jrx-sec-kicker-sm .jrx-section-header__kicker { font-size: var(--jrx-sec-kicker-sm); }
.jrx-section.jrx-sec-kicker-md .jrx-section-header__kicker { font-size: var(--jrx-sec-kicker-md); }
.jrx-section.jrx-sec-kicker-lg .jrx-section-header__kicker { font-size: var(--jrx-sec-kicker-lg); }

/* ---------- Tipografia — cards em lote (classe na seção) ------------------- */
.jrx-section.jrx-sec-cards-title-xs .jrx-card__title,
.jrx-section.jrx-sec-cards-title-xs .jrx-card--accordion__label { font-size: var(--jrx-card-title-xs); line-height: 1.35; }
.jrx-section.jrx-sec-cards-title-sm .jrx-card__title,
.jrx-section.jrx-sec-cards-title-sm .jrx-card--accordion__label { font-size: var(--jrx-card-title-sm); line-height: 1.35; }
.jrx-section.jrx-sec-cards-title-md .jrx-card__title,
.jrx-section.jrx-sec-cards-title-md .jrx-card--accordion__label { font-size: var(--jrx-card-title-md); line-height: 1.3; }
.jrx-section.jrx-sec-cards-title-lg .jrx-card__title,
.jrx-section.jrx-sec-cards-title-lg .jrx-card--accordion__label { font-size: var(--jrx-card-title-lg); line-height: 1.3; }
.jrx-section.jrx-sec-cards-title-xl .jrx-card__title,
.jrx-section.jrx-sec-cards-title-xl .jrx-card--accordion__label { font-size: var(--jrx-card-title-xl); line-height: 1.25; }

.jrx-section.jrx-sec-cards-title-normal .jrx-card__title,
.jrx-section.jrx-sec-cards-title-normal .jrx-card--accordion__label { font-weight: 400; }
.jrx-section.jrx-sec-cards-title-medium .jrx-card__title,
.jrx-section.jrx-sec-cards-title-medium .jrx-card--accordion__label { font-weight: 500; }
.jrx-section.jrx-sec-cards-title-semibold .jrx-card__title,
.jrx-section.jrx-sec-cards-title-semibold .jrx-card--accordion__label { font-weight: 600; }
.jrx-section.jrx-sec-cards-title-bold .jrx-card__title,
.jrx-section.jrx-sec-cards-title-bold .jrx-card--accordion__label { font-weight: 700; }

.jrx-section.jrx-sec-cards-text-xs .jrx-card__text,
.jrx-section.jrx-sec-cards-text-xs .jrx-faq__panel-inner { font-size: var(--jrx-card-text-xs); line-height: 1.5; }
.jrx-section.jrx-sec-cards-text-sm .jrx-card__text,
.jrx-section.jrx-sec-cards-text-sm .jrx-faq__panel-inner { font-size: var(--jrx-card-text-sm); line-height: 1.55; }
.jrx-section.jrx-sec-cards-text-md .jrx-card__text,
.jrx-section.jrx-sec-cards-text-md .jrx-faq__panel-inner { font-size: var(--jrx-card-text-md); line-height: 1.6; }
.jrx-section.jrx-sec-cards-text-lg .jrx-card__text,
.jrx-section.jrx-sec-cards-text-lg .jrx-faq__panel-inner { font-size: var(--jrx-card-text-lg); line-height: 1.6; }

/* ---------- Tipografia — card individual (.jrx-card) ------------------------- */
.jrx-card.jrx-card-title-xs .jrx-card__title,
.jrx-card.jrx-card-title-xs .jrx-card--accordion__label { font-size: var(--jrx-card-title-xs); line-height: 1.35; }
.jrx-card.jrx-card-title-sm .jrx-card__title,
.jrx-card.jrx-card-title-sm .jrx-card--accordion__label { font-size: var(--jrx-card-title-sm); line-height: 1.35; }
.jrx-card.jrx-card-title-md .jrx-card__title,
.jrx-card.jrx-card-title-md .jrx-card--accordion__label { font-size: var(--jrx-card-title-md); line-height: 1.3; }
.jrx-card.jrx-card-title-lg .jrx-card__title,
.jrx-card.jrx-card-title-lg .jrx-card--accordion__label { font-size: var(--jrx-card-title-lg); line-height: 1.3; }
.jrx-card.jrx-card-title-xl .jrx-card__title,
.jrx-card.jrx-card-title-xl .jrx-card--accordion__label { font-size: var(--jrx-card-title-xl); line-height: 1.25; }

.jrx-card.jrx-card-title-normal .jrx-card__title,
.jrx-card.jrx-card-title-normal .jrx-card--accordion__label { font-weight: 400; }
.jrx-card.jrx-card-title-medium .jrx-card__title,
.jrx-card.jrx-card-title-medium .jrx-card--accordion__label { font-weight: 500; }
.jrx-card.jrx-card-title-semibold .jrx-card__title,
.jrx-card.jrx-card-title-semibold .jrx-card--accordion__label { font-weight: 600; }
.jrx-card.jrx-card-title-bold .jrx-card__title,
.jrx-card.jrx-card-title-bold .jrx-card--accordion__label { font-weight: 700; }

.jrx-card.jrx-card-text-xs .jrx-card__text,
.jrx-card.jrx-card-text-xs .jrx-faq__panel-inner { font-size: var(--jrx-card-text-xs); line-height: 1.5; }
.jrx-card.jrx-card-text-sm .jrx-card__text,
.jrx-card.jrx-card-text-sm .jrx-faq__panel-inner { font-size: var(--jrx-card-text-sm); line-height: 1.55; }
.jrx-card.jrx-card-text-md .jrx-card__text,
.jrx-card.jrx-card-text-md .jrx-faq__panel-inner { font-size: var(--jrx-card-text-md); line-height: 1.6; }
.jrx-card.jrx-card-text-lg .jrx-card__text,
.jrx-card.jrx-card-text-lg .jrx-faq__panel-inner { font-size: var(--jrx-card-text-lg); line-height: 1.6; }
