/*
 * 6.7 Detalhes do produto. Tokens da marca em common.css.
 * Modos (atributo data-mode, definido pelo JS): tabs, stack (colunas) e accordion.
 * Sem JS: todas as seções abertas, uma abaixo da outra, com título.
 */

.apw-details {
	--apw-details-gap: 64px;
	--apw-tabs-width: 260px;
	--apw-tab-color: var(--apw-muted);
	--apw-tab-active-bg: var(--apw-fill);

	font-family: var(--apw-font-text);
	color: var(--apw-dark);
}

.apw-details__sections {
	display: flex;
	flex-direction: column;
	gap: var(--apw-details-gap);
	min-width: 0;
}

.apw-details__section[hidden],
.apw-details__panel[hidden],
.apw-details__heading[hidden],
.apw-details__tablist[hidden] {
	display: none;
}

/* Título da seção: Playfair, como o título do produto (em escala menor). */
.apw-details .apw-details__title {
	margin: 0 0 20px;
	font-family: var(--apw-font-heading);
	font-size: var(--apw-size-heading);
	font-weight: var(--apw-heading-weight);
	line-height: 1.25;
	letter-spacing: var(--apw-heading-tracking);
	text-transform: var(--apw-heading-case);
	color: var(--apw-dark);
}

.apw-details .apw-details__panel {
	max-width: 72ch;
	font-size: 16px;
	line-height: 1.7;
	color: var(--apw-dark);
}

.apw-details__panel > :first-child {
	margin-top: 0;
}

.apw-details__panel p {
	max-width: 62ch;
}

.apw-details__panel > :last-child {
	margin-bottom: 0;
}

.apw-details__panel img {
	max-width: 100%;
	height: auto;
}

/* ---------------------------------------------------------------------
 * Abas verticais (Ref. C)
 * ------------------------------------------------------------------ */

.apw-details[data-mode="tabs"] {
	display: grid;
	grid-template-columns: var(--apw-tabs-width) minmax(0, 1fr);
	gap: var(--apw-details-gap);
	align-items: start;
}

.apw-details[data-mode="tabs"] .apw-details__title {
	display: none;
}

.apw-details__tablist {
	display: flex;
	flex-direction: column;
	gap: 4px;
	position: sticky;
	top: 32px;
}

.apw-details .apw-details__tab {
	display: block;
	width: 100%;
	margin: 0;
	padding: 14px 18px;
	font-family: var(--apw-font-text);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0;
	text-align: left;
	text-transform: none;
	color: var(--apw-tab-color);
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none; /* taste-skill-ignore: neutraliza sombra do tema/Kit */
	cursor: pointer;
	transition: color 0.2s, background-color 0.2s;
}

.apw-details .apw-details__tab:is(:hover, :focus) {
	color: var(--apw-dark);
	background: transparent;
}

.apw-details .apw-details__tab[aria-selected="true"] {
	font-weight: 600;
	color: var(--apw-dark);
	background: var(--apw-tab-active-bg);
}

/* Com o JS: o fundo da aba ativa é um bloco que desliza entre as abas. */
.apw-details__tablist.has-indicator {
	position: relative;
}

.apw-details__indicator {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	background: var(--apw-tab-active-bg);
	transition: transform 0.45s var(--apw-ease-in-out), width 0.45s var(--apw-ease-in-out), height 0.45s var(--apw-ease-in-out);
	pointer-events: none;
}

.apw-details__tablist.has-indicator .apw-details__tab,
.apw-details__tablist.has-indicator .apw-details__tab[aria-selected="true"] {
	position: relative;
	z-index: 1;
	background: transparent;
}

.apw-details__tablist.has-indicator .apw-details__tab[aria-selected="true"] {
	transform: translateX(6px);
}

.apw-details .apw-details__tab {
	transition: color 0.2s, transform 0.35s var(--apw-ease);
}

.apw-details .apw-details__tab:focus-visible,
.apw-details .apw-details__toggle:focus-visible,
.apw-details .apw-details__panel:focus-visible {
	outline: 2px solid var(--apw-dark);
	outline-offset: 2px;
}

/* Na troca de aba as peças do painel entram em cascata (ver "Troca de aba" abaixo). */

/* ---------------------------------------------------------------------
 * Duas colunas (Ref. A): descrição à esquerda, coluna lateral à direita
 * ------------------------------------------------------------------ */

.apw-details--columns .apw-details__sections {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	column-gap: var(--apw-details-gap);
	row-gap: var(--apw-details-gap);
}

.apw-details--columns .apw-details__section {
	grid-column: 1 / -1;
}

.apw-details--columns .apw-details__section--description {
	grid-column: 1;
	grid-row: 1;
}

.apw-details--columns .apw-details__section.is-aside {
	grid-column: 2;
	grid-row: 1;
}

.apw-details .is-aside .apw-details__title {
	font-family: var(--apw-font-text);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0;
}

.apw-details .is-aside .apw-details__panel {
	font-size: 16px;
	color: var(--apw-muted);
}

/* ---------------------------------------------------------------------
 * Sanfona (celular): cada seção num bloco preenchido
 * ------------------------------------------------------------------ */

.apw-details[data-mode="accordion"] .apw-details__sections {
	display: flex;
	gap: 8px;
}

.apw-details[data-mode="accordion"] .apw-details__section {
	background: var(--apw-surface);
}


.apw-details .apw-details__toggle:active {
	transform: scale(0.98);
}

.apw-details[data-mode="accordion"] .apw-details__title {
	display: none;
}

.apw-details .apw-details__heading {
	margin: 0;
	font: inherit;
}

.apw-details .apw-details__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	min-height: 56px;
	margin: 0;
	padding: 16px 20px;
	font-family: var(--apw-font-text);
	font-size: var(--apw-label-size);
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: var(--apw-label-tracking);
	text-align: left;
	text-transform: uppercase; /* taste-skill-ignore: padrão de rótulo do site da marca */
	color: var(--apw-dark);
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none; /* taste-skill-ignore: neutraliza sombra do tema/Kit */
	cursor: pointer;
	transition: transform 0.16s var(--apw-ease);
}

.apw-details .apw-details__toggle:is(:hover, :focus) {
	color: var(--apw-dark);
	background: transparent;
}

.apw-details__toggle svg {
	flex: 0 0 auto;
	width: 14px;
	height: 14px;
	transition: transform 0.25s var(--apw-ease);
}

.apw-details__toggle[aria-expanded="true"] svg {
	transform: rotate(45deg);
}

.apw-details[data-mode="accordion"] .apw-details__panel {
	padding: 0 20px 24px;
	font-size: 16px;
}

/* ---------------------------------------------------------------------
 * Informações adicionais (tabela do WooCommerce): faixas de tom, sem linhas
 * ------------------------------------------------------------------ */

.apw-details table.shop_attributes {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
}

.apw-details table.shop_attributes :is(th, td) {
	padding: 14px 16px;
	font-size: 16px;
	font-style: normal;
	line-height: 1.5;
	text-align: left;
	vertical-align: top;
	background: transparent;
	border: 0;
}

.apw-details table.shop_attributes th {
	width: 35%;
	font-weight: 600;
}

.apw-details table.shop_attributes tr:nth-child(odd) :is(th, td) {
	background: var(--apw-fill);
}

.apw-details table.shop_attributes td p {
	margin: 0;
	padding: 0;
}

/* ---------------------------------------------------------------------
 * Avaliações (template do WooCommerce)
 * ------------------------------------------------------------------ */

.apw-details #reviews :is(h2, .woocommerce-Reviews-title, #reply-title) {
	margin: 0 0 20px;
	font-family: var(--apw-font-text);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	color: var(--apw-dark);
}

.apw-details #reviews ol.commentlist {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0 0 40px;
	padding: 0;
	list-style: none;
}

.apw-details #reviews ol.commentlist li {
	margin: 0;
	padding: 20px;
	background: var(--apw-fill);
}

.apw-details #reviews ol.commentlist li .comment_container {
	display: flex;
	gap: 16px;
}

.apw-details #reviews ol.commentlist li img.avatar {
	position: static;
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
}

.apw-details #reviews ol.commentlist li .comment-text {
	flex: 1;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
}

.apw-details #reviews .meta {
	margin: 0 0 8px;
	font-size: 14px;
	color: var(--apw-muted);
}

.apw-details #reviews .woocommerce-review__author {
	font-weight: 600;
	color: var(--apw-dark);
}

.apw-details #reviews .star-rating {
	float: none;
	margin: 0 0 8px;
	color: var(--apw-dark);
}

/* Formulário: campos preenchidos, botão em tinta. Os campos mantêm o padrão de formulário. */
.apw-details #review_form :is(input[type="text"], input[type="email"], textarea, select) {
	width: 100%;
	padding: 12px 14px;
	font: inherit;
	font-size: 16px;
	color: var(--apw-dark);
	background: var(--apw-fill);
	border: 0;
	border-radius: 0;
	box-shadow: none; /* taste-skill-ignore: neutraliza sombra do tema/Kit */
}

.apw-details #review_form label {
	display: block;
	margin-bottom: 6px;
	font-size: 14px;
	font-weight: 600;
}

.apw-details #review_form p.stars a {
	color: var(--apw-dark);
}

.apw-details #review_form #respond input#submit,
.apw-details #review_form .form-submit input[type="submit"] {
	min-height: 52px;
	padding: 0 32px;
	font-family: var(--apw-font-text);
	font-size: 16px;
	font-weight: 600;
	color: var(--apw-white);
	background: var(--apw-dark);
	border: 0;
	border-radius: 0;
	cursor: pointer;
	transition: background-color 0.2s;
}

.apw-details #review_form #respond input#submit:is(:hover, :focus),
.apw-details #review_form .form-submit input[type="submit"]:is(:hover, :focus) {
	background: var(--apw-brand);
}

/* ---------------------------------------------------------------------
 * Editorial: abas em linha no estilo dos botões do site (Montserrat, caixa alta,
 * espaçada), barra cobre que desliza até a aba, texto em corpo normal e a ficha
 * "Em resumo" numa faixa cobre ao lado
 * ------------------------------------------------------------------ */

.apw-details--editorial {
	--apw-details-gap: clamp(40px, 5vw, 88px);
}

.apw-details--editorial[data-mode="tabs"] {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: clamp(32px, 3.5vw, 48px);
}

.apw-details--editorial .apw-details__tablist {
	position: relative;
	top: auto;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 8px clamp(28px, 3.5vw, 48px);
	padding-bottom: 10px;
}

.apw-details--editorial .apw-details__tab {
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	width: auto;
	padding: 8px 0;
	font-family: var(--apw-font-text);
	font-size: var(--apw-label-size);
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: var(--apw-label-tracking);
	text-transform: uppercase; /* taste-skill-ignore: abas no padrão dos botões do site da marca */
	color: var(--apw-tab-color);
	background: transparent;
	transition: color 0.2s ease, transform 0.16s var(--apw-ease);
}

.apw-details--editorial .apw-details__tab-num {
	font-variant-numeric: tabular-nums;
	color: var(--apw-brand);
}

.apw-details--editorial .apw-details__tab[aria-selected="true"],
.apw-details--editorial .apw-details__tablist.has-indicator .apw-details__tab[aria-selected="true"] {
	font-weight: 600;
	color: var(--apw-dark);
	background: transparent;
	transform: none;
}

/* Clique: a aba afunda um pouco, a barra desliza até ela. */
.apw-details--editorial .apw-details__tab:active,
.apw-details--editorial .apw-details__tablist.has-indicator .apw-details__tab:active {
	transform: scale(0.97);
}

.apw-details--editorial .apw-details__indicator {
	top: auto;
	bottom: 0;
	height: 2px;
	background: var(--apw-brand);
	transition: transform 0.5s var(--apw-ease-in-out), width 0.5s var(--apw-ease-in-out);
}

.apw-details--editorial .apw-details__panel {
	max-width: none;
	font-size: 16px;
	line-height: 1.85;
}

.apw-details--editorial .apw-details__panel strong {
	font-weight: 600;
	color: var(--apw-dark);
}

/* Descrição + ficha lado a lado. */
.apw-details--editorial .apw-details__section--description .apw-details__panel:has(.apw-facts) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
	gap: var(--apw-details-gap);
	align-items: start;
}

.apw-details--editorial .apw-details__text p {
	max-width: 68ch;
}

.apw-details--editorial .apw-details__text > :first-child {
	margin-top: 0;
}

.apw-details--editorial .apw-details__text > :last-child {
	margin-bottom: 0;
}

.apw-details.has-drop-cap .apw-details__text > p:first-of-type::first-letter {
	float: left;
	margin: 0.08em 0.1em 0 0;
	font-family: var(--apw-font-heading);
	font-size: 3.2em;
	font-weight: 600;
	line-height: 0.8;
	color: var(--apw-brand);
}

/* Ficha "Em resumo": faixa cobre com texto branco, como as seções do site. */
.apw-facts {
	position: sticky;
	top: 120px;
	display: flex;
	flex-direction: column;
	gap: 22px;
	padding: clamp(28px, 3vw, 40px);
	color: var(--apw-white);
	background: var(--apw-brand);
}

.apw-details .apw-facts__title {
	margin: 0;
	font-family: var(--apw-font-heading);
	font-size: 18px;
	font-weight: var(--apw-heading-weight);
	line-height: 1.3;
	letter-spacing: var(--apw-heading-tracking);
	text-transform: var(--apw-heading-case);
	color: var(--apw-white);
}

.apw-facts__list {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin: 0;
}

.apw-facts__row {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
}

.apw-details .apw-facts__label {
	font-size: 12px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: var(--apw-label-tracking);
	text-transform: uppercase; /* taste-skill-ignore: rótulos no padrão do site da marca */
	color: rgba(255, 255, 255, 0.82);
}

.apw-details .apw-facts__value {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	margin: 0;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--apw-white);
}

.apw-facts__value p {
	margin: 0;
}

.apw-facts__chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.apw-facts__dot {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: var(--apw-swatch-color, #d9d9d9);
	box-shadow: 0 0 0 1.5px var(--apw-white); /* taste-skill-ignore: anel branco da bolinha sobre o cobre */
}

.apw-details .apw-facts__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	align-self: flex-start;
	margin-top: 4px;
	font-size: 12px;
	white-space: nowrap;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: var(--apw-label-tracking);
	text-transform: uppercase; /* taste-skill-ignore: link no padrão dos botões do site */
	color: var(--apw-white);
	text-decoration: none;
	transition: transform 0.16s var(--apw-ease);
}

.apw-facts__link[hidden] {
	display: none;
}

.apw-facts__link svg {
	width: 16px;
	height: 16px;
	transition: transform 0.25s var(--apw-ease);
}

.apw-details .apw-facts__link:is(:hover, :focus) {
	color: var(--apw-white);
}

.apw-facts__link:is(:hover, :focus-visible) svg {
	transform: translateY(3px);
}

.apw-facts__link:active {
	transform: scale(0.97);
}

.apw-details .apw-facts__link:focus-visible {
	outline: 2px solid var(--apw-white);
	outline-offset: 3px;
}

/* Informações adicionais em cartões (no lugar da tabela). */
.apw-details--editorial table.shop_attributes,
.apw-details--editorial table.shop_attributes tbody {
	display: block;
}

.apw-details--editorial table.shop_attributes tbody {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 12px;
}

.apw-details--editorial table.shop_attributes tr {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 24px;
	background: var(--apw-surface);
}

.apw-details--editorial table.shop_attributes tr:nth-child(n) :is(th, td) {
	display: block;
	width: auto;
	padding: 0;
	background: none;
}

.apw-details--editorial table.shop_attributes th {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: var(--apw-label-tracking);
	text-transform: uppercase; /* taste-skill-ignore: rótulos no padrão do site da marca */
	color: var(--apw-muted);
}

.apw-details--editorial table.shop_attributes td {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--apw-dark);
}

/* Troca de aba / abrir na sanfona: as peças entram em cascata, saindo de um leve desfoque. */
@keyframes apw-piece-in {
	from {
		opacity: 0;
		transform: translateY(14px);
		filter: blur(6px);
	}
}

@keyframes apw-fade-in {
	from {
		opacity: 0;
	}
}

.apw-details .apw-details__section.is-entering :is(.apw-details__panel > :not(.apw-details__text, .apw-facts), .apw-details__text > *, .apw-facts__row, .shop_attributes tr) {
	animation: apw-piece-in 0.6s var(--apw-ease) both;
	animation-delay: calc(var(--apw-i, 0) * 60ms);
}

.apw-details .apw-details__section.is-entering .apw-facts {
	animation: apw-fade-in 0.5s ease both;
}

/* Tablet: abas em cima, em linha; colunas viram uma. */
@media (max-width: 1024px) {
	.apw-details[data-mode="tabs"] {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	.apw-details[data-mode="tabs"] .apw-details__tablist {
		position: static;
		flex-direction: row;
		flex-wrap: wrap;
	}

	.apw-details .apw-details__tab {
		width: auto;
	}

	.apw-details--columns .apw-details__sections {
		grid-template-columns: minmax(0, 1fr);
	}

	.apw-details--columns .apw-details__section.is-aside {
		grid-column: 1;
		grid-row: auto;
	}

	.apw-details--editorial .apw-details__section--description .apw-details__panel:has(.apw-facts) {
		grid-template-columns: minmax(0, 1fr);
		gap: 40px;
	}

	.apw-facts {
		position: static;
	}
}

@media (prefers-reduced-motion: reduce) {
	.apw-details__indicator,
	.apw-details *,
	.apw-details .apw-details__section.is-entering * {
		transition: none;
		animation: none;
	}
}
