/* =============================================
   PRODUCT SINGLE — Figma node 9:206
   Custom WC single-product layout (Satsanga theme)
   ============================================= */

.product-single {
  background: var(--color-bg);
}

/* -----------------------------------------------
   BREADCRUMBS  (Figma 14:467 / 14:469 / 14:470)
   Início › Cosméticos › Essential Oil
   ----------------------------------------------- */
.product-breadcrumbs {
  padding-top: 16px;
  padding-bottom: 24px;
  font-family: var(--font-body);
  font-size: 15px;
  display: flex;
  gap: 8px;
  align-items: center;
  color: rgba(110, 84, 70, 0.63);
}

.product-breadcrumbs__crumb {
  color: rgba(110, 84, 70, 0.63);
  text-decoration: none;
}

.product-breadcrumbs__crumb:hover {
  color: var(--color-brown);
}

.product-breadcrumbs__crumb--current {
  color: var(--color-brown);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.product-breadcrumbs__sep {
  color: rgba(110, 84, 70, 0.45);
}

/* -----------------------------------------------
   HERO  (Figma 14:483 left photo + right details)
   Photo 790×670 radius 25 / details column ~430px wide
   ----------------------------------------------- */
.product-hero {
  padding-bottom: 96px;
}

.product-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
  gap: 64px;
  align-items: start;
}

.product-hero__media {
  position: relative;
  border-radius: 25px;
  overflow: hidden;
  aspect-ratio: 790 / 670;
  background: var(--color-tan-light);
}

.product-hero__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Right column */
.product-hero__details {
  padding-top: 24px;
}

/* Figma 28:963: ESSENTIAL OIL — Gotham Bold 13px, #c8ad8c, uppercase */
.product-hero__category {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #c8ad8c;
  margin: 0 0 12px 0;
}

/* Figma 14:484: LAVENDER — Astralaga Regular 48px */
.product-hero__title {
  font-family: var(--font-display);
  font-size: clamp(32px, 3.4vw, 48px);
  font-weight: 400;
  color: var(--color-brown);
  line-height: 1;
  text-transform: uppercase;
  margin: 0 0 16px 0;
}

/* Figma 14:486: "Óleo essencial - 10ml" — Gotham Book 16/24, #948076 */
.product-hero__subtitle {
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  color: #948076;
  margin: 0 0 32px 0;
}

/* Figma 28:986/28:988: Price 4,00€ — Astralaga 32px, #4f341b, with thin line above */
.product-hero__price {
  font-family: var(--font-display);
  font-size: 32px;
  color: var(--color-dark);
  text-transform: uppercase;
  margin: 0 0 28px 0;
  padding-top: 18px;
  position: relative;
}

.product-hero__price::before {
  content: '';
  position: absolute;
  top: 0;
  left: 4px;
  width: 26px;
  height: 1px;
  background: var(--color-dark);
}

.product-hero__price del {
  color: rgba(79, 52, 27, 0.45);
  margin-right: 8px;
  font-size: 0.7em;
}

.product-hero__price ins {
  text-decoration: none;
}

/* Variations / aroma swatches (Figma 14:488..14:491 + 14:494) */
.product-hero__variations {
  margin: 0 0 28px 0;
}

.product-hero__variations-label {
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 700;
  color: #948076;
  margin: 0 0 12px 0;
  letter-spacing: 0.04em;
}

.product-hero__swatches {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
}

.product-hero__swatch {
  background: rgba(209, 186, 158, 0.55);
  border: 2px solid transparent;
  border-radius: 4px;
  cursor: pointer;
  padding: 6px;
  width: 67px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  transition: border-color .15s ease, background .15s ease;
}

.product-hero__swatch.is-active {
  background: rgba(209, 186, 158, 0.78);
  border-color: rgba(148, 128, 118, 0.35);
}

.product-hero__swatch:hover { border-color: rgba(148, 128, 118, 0.5); }

.product-hero__swatch img {
  width: 44px;
  height: 50px;
  object-fit: cover;
  display: block;
}

/* Figma 28:972 etc: tiny 8px bold caps label below swatch */
.product-hero__swatch-label {
  font-family: var(--font-body);
  font-size: 8px;
  font-weight: 700;
  color: #948076;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-align: center;
}

/* Add to cart form: qty + CTA */
.product-hero__form {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 24px 0;
  flex-wrap: wrap;
}

/* Figma 14:492..14:494 + 33:1001..33:1005 — three small boxes */
.product-hero__qty {
  display: inline-flex;
  align-items: center;
  height: 42px;
}

.product-hero__qty-btn {
  width: 39px;
  height: 42px;
  background: rgba(209, 186, 158, 0.78);
  border: none;
  border-radius: 4px;
  font-size: 18px;
  font-weight: 700;
  color: var(--color-dark);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.product-hero__qty-btn:first-child { border-radius: 4px 0 0 4px; }
.product-hero__qty-btn:last-child  { border-radius: 0 4px 4px 0; }

.product-hero__qty-input {
  width: 51px;
  height: 42px;
  background: rgba(255, 255, 255, 0.78);
  border: none;
  text-align: center;
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 700;
  color: var(--color-dark);
  -moz-appearance: textfield;
}

.product-hero__qty-input::-webkit-outer-spin-button,
.product-hero__qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Figma 33:1007/33:1008: COMPRAR AGORA — brown #6e5446, radius 7, h:42, w:211 */
.product-hero__cta {
  background: var(--color-brown);
  color: var(--color-bg);
  border: none;
  border-radius: 7px;
  height: 42px;
  padding: 0 32px;
  font-family: var(--font-body);
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: background .2s ease;
  min-width: 211px;
}

.product-hero__cta:hover {
  background: var(--color-dark);
}

.product-hero__rating {
  display: flex;
  gap: 4px;
  align-items: center;
  color: var(--color-accent);
  font-size: 12px;
}

.product-hero__star {
  color: rgba(164, 124, 89, 0.28);
  font-size: 14px;
}

.product-hero__star.is-filled {
  color: var(--color-accent);
}

.product-hero__rating-count {
  margin-left: 4px;
  color: rgba(110, 84, 70, 0.55);
  font-size: 12px;
}

@media (max-width: 900px) {
  .product-hero__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .product-hero__media { aspect-ratio: 1 / 1; }
  .product-hero__details { padding-top: 0; }
}

/* -----------------------------------------------
   DESCRIPTION + BENEFITS  (Figma 36:1162 + 35:1072)
   ----------------------------------------------- */
.product-description {
  padding-block: 64px;
}

.product-description__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}

.product-description__title {
  font-family: var(--font-display);
  font-size: clamp(32px, 3.4vw, 48px);
  font-weight: 400;
  color: var(--color-dark);
  margin: 0 0 24px 0;
  line-height: 1;
}

.product-description__subtitle {
  font-family: var(--font-display);
  font-size: 24px;
  color: #b8a083;
  margin: 0 0 24px 0;
}

.product-description__text,
.product-description__benefits {
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 31px;
  color: var(--color-brown);
}

.product-description__text p { margin-block: 0; }

.product-description__benefits {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.product-description__benefits li {
  position: relative;
  padding-left: 20px;
}

.product-description__benefits li::before {
  content: '•';
  position: absolute;
  left: 0;
  color: var(--color-brown);
}

@media (max-width: 768px) {
  .product-description__inner {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

/* -----------------------------------------------
   COFFRET CARD  (Figma 36:1146 dark brown card)
   1442×544px, radius 25, image overlay right
   ----------------------------------------------- */
.product-coffret {
  padding-block: 32px;
}

.product-coffret__card {
  position: relative;
  background: var(--color-brown);
  border-radius: 25px;
  min-height: 544px;
  padding: 80px 64px;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 32px;
  align-items: center;
}

.product-coffret__title {
  font-family: var(--font-display);
  font-size: clamp(32px, 3.4vw, 48px);
  font-weight: 400;
  color: var(--color-bg);
  line-height: 1.05;
  margin: 0 0 32px 0;
}

.product-coffret__body {
  max-width: 540px;
  color: var(--color-bg);
  font-family: var(--font-body);
  margin-bottom: 32px;
}

.product-coffret__intro {
  font-weight: 700;
  font-size: 18px;
  line-height: 31px;
  margin: 0 0 4px 0;
}

.product-coffret__text {
  font-weight: 500;
  font-size: 18px;
  line-height: 31px;
  margin: 0;
}

/* Figma 36:1159: cream-coloured PERSONALIZAR AGORA button */
.product-coffret__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-dark);
  color: #ecddc5;
  text-decoration: none;
  border-radius: 7px;
  height: 42px;
  padding: 0 32px;
  font-family: var(--font-body);
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  min-width: 257px;
  transition: opacity .2s ease;
}

.product-coffret__cta[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: 0.6;
}

.product-coffret__cta:hover:not([aria-disabled="true"]) {
  opacity: 0.88;
}

.product-coffret__media {
  position: relative;
  height: 100%;
  min-height: 380px;
  border-radius: 16px;
  overflow: hidden;
}

.product-coffret__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (max-width: 900px) {
  .product-coffret__card {
    grid-template-columns: 1fr;
    padding: 48px 32px;
  }
  .product-coffret__media {
    min-height: 240px;
    margin-top: 16px;
  }
}

/* -----------------------------------------------
   INGREDIENTS  (Figma 36:1165 / 36:1167)
   Centred title + paragraph, then full-bleed photo
   ----------------------------------------------- */
.product-ingredients {
  padding-top: 64px;
}

.product-ingredients__intro {
  text-align: center;
  max-width: 920px;
  margin-inline: auto;
}

.product-ingredients__title {
  font-family: var(--font-display);
  font-size: clamp(32px, 3.4vw, 48px);
  font-weight: 400;
  color: var(--color-dark);
  margin: 0 0 24px 0;
  line-height: 1;
}

.product-ingredients__text {
  font-family: var(--font-body);
  font-size: 24px;
  color: var(--color-brown);
  line-height: 1.17;
  margin: 0;
}

.product-ingredients__hero {
  margin-top: 64px;
  width: 100%;
  height: 632px;
  overflow: hidden;
  background: var(--color-tan-light);
}

.product-ingredients__hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (max-width: 768px) {
  .product-ingredients__text { font-size: 18px; }
  .product-ingredients__hero { height: 360px; }
}

/* -----------------------------------------------
   USAGE  (Figma 38:1168/38:1169/38:1171)
   Image LEFT + text RIGHT
   ----------------------------------------------- */
.product-usage {
  padding-block: 96px;
}

.product-usage__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 64px;
  align-items: center;
}

.product-usage__media {
  border-radius: 25px;
  overflow: hidden;
  aspect-ratio: 641 / 571;
  background: var(--color-tan-light);
}

.product-usage__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.product-usage__title {
  font-family: var(--font-display);
  font-size: clamp(32px, 3.4vw, 48px);
  font-weight: 400;
  color: var(--color-dark);
  margin: 0 0 32px 0;
  line-height: 1;
}

.product-usage__intro {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 18px;
  line-height: 31px;
  color: var(--color-dark);
  margin: 0 0 8px 0;
}

.product-usage__text {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 18px;
  line-height: 31px;
  color: var(--color-dark);
}

.product-usage__text p { margin-block: 0; }

@media (max-width: 900px) {
  .product-usage__inner {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

/* -----------------------------------------------
   FAQs  (Figma 14:524 + 14:526..14:537)
   ----------------------------------------------- */
.product-faqs {
  padding-block: 64px;
}

.product-faqs__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr);
  gap: 32px;
  align-items: start;
}

.product-faqs__title {
  font-family: var(--font-display);
  font-size: clamp(32px, 3.4vw, 48px);
  font-weight: 400;
  color: var(--color-brown);
  text-transform: uppercase;
  margin: 0;
  line-height: 1;
}

.product-faqs__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.product-faqs__item {
  background: #fefbf8;
  border-radius: 7px;
  padding: 0;
  overflow: hidden;
}

.product-faqs__question {
  list-style: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 22px 24px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 14px;
  line-height: 1.58;
  color: #948076;
}

.product-faqs__question::-webkit-details-marker { display: none; }
.product-faqs__question::marker { content: ''; }

.product-faqs__toggle {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 18px;
  color: var(--color-brown);
  width: 18px;
  text-align: center;
  flex-shrink: 0;
  transition: transform .2s ease;
}

.product-faqs__item[open] .product-faqs__toggle {
  transform: rotate(45deg);
}

.product-faqs__answer {
  padding: 0 24px 24px 24px;
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.58;
  color: var(--color-brown);
}

.product-faqs__answer p { margin-block: 0; }

@media (max-width: 768px) {
  .product-faqs__inner {
    grid-template-columns: 1fr;
  }
}

/* -----------------------------------------------
   RELATED PRODUCTS  (Figma 14:561 + cards)
   ----------------------------------------------- */
.product-related {
  padding-block: 64px 96px;
}

.product-related__title {
  font-family: var(--font-display);
  font-size: clamp(32px, 3.4vw, 48px);
  font-weight: 400;
  color: var(--color-brown);
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 48px 0;
  line-height: 1;
}

.product-related__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

@media (max-width: 900px) {
  .product-related__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
  .product-related__grid { grid-template-columns: 1fr; }
}
