/*
 * ÉCLORYA — Fiche produit Figue de Barbarie — V2
 * CSS totalement isolé sous .eclorya-product-page.
 *
 * Test typo :
 * --efp-title-font commence par "Moka". Si Moka est installée comme webfont
 * sur le site, elle sera utilisée automatiquement. En attendant, Josefin Sans
 * sert de fallback proche : moderne, fine et chaleureuse.
 */

.eclorya-product-page {
  --efp-paper: #fcfbf8;
  --efp-white: #fffefb;
  --efp-cream: #f5eee3;
  --efp-cream-deep: #eee3d4;
  --efp-ink: #17130f;
  --efp-soft: #65584e;
  --efp-gold: #ae8150;
  --efp-gold-light: #d8b781;
  --efp-copper: #936245;
  --efp-line: rgba(23, 19, 15, 0.12);
  --efp-title-font: "Moka", "Josefin Sans", "Avenir Next", sans-serif;
  --efp-body: "Work Sans", Arial, sans-serif;
  --efp-hand: "La Belle Aurore", cursive;
  --efp-shadow: 0 24px 70px rgba(50, 37, 27, 0.09);

  position: relative;
  overflow: hidden;
  background: var(--efp-paper);
  color: var(--efp-ink);
  font-family: var(--efp-body);
}

.eclorya-product-page *,
.eclorya-product-page *::before,
.eclorya-product-page *::after { box-sizing: border-box; }

.eclorya-product-page img { display: block; max-width: 100%; }
.eclorya-product-page a { color: inherit; text-decoration: none; }
.eclorya-product-page p { color: var(--efp-soft); line-height: 1.7; }

.efp-shell {
  width: min(1320px, calc(100% - 56px));
  margin-inline: auto;
}

/* ---------------- FIRST SCREEN ---------------- */

.efp-top {
  display: grid;
  grid-template-columns: minmax(0, 1.07fr) minmax(430px, .93fr);
  gap: clamp(48px, 6.5vw, 96px);
  padding-top: clamp(42px, 5vw, 74px);
  padding-bottom: clamp(78px, 8vw, 118px);
  align-items: start;
}

.efp-gallery { min-width: 0; }

.efp-main-visual {
  position: relative;
  aspect-ratio: 1.06 / 1;
  overflow: hidden;
  border-radius: 22px;
  background: #e9ddca;
  box-shadow: var(--efp-shadow);
}
.efp-main-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity .25s ease, transform .8s cubic-bezier(.2,.8,.2,1);
}
.efp-main-visual:hover img { transform: scale(1.018); }
.efp-main-visual.is-changing img { opacity: .28; }

.efp-hand-note {
  position: absolute;
  z-index: 2;
  left: clamp(22px, 4vw, 46px);
  top: clamp(24px, 4vw, 48px);
  max-width: 14ch;
  margin: 0 !important;
  font-family: var(--efp-hand);
  font-size: clamp(1.45rem, 2.15vw, 2.05rem);
  line-height: 1.42 !important;
  transform: rotate(-4deg);
  text-shadow: none;
}
.efp-hand-copper { color: var(--efp-copper) !important; }
.efp-hand-gold {
  color: var(--efp-gold-light) !important;
  text-shadow: 0 2px 15px rgba(0,0,0,.28);
}
.efp-hand-ink { color: var(--efp-ink) !important; }

.efp-thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 14px;
}
.efp-thumb {
  appearance: none;
  border: 1px solid transparent;
  padding: 0;
  border-radius: 13px;
  overflow: hidden;
  aspect-ratio: 1.25 / 1;
  background: #e9dfcf;
  cursor: pointer;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.efp-thumb img { width: 100%; height: 100%; object-fit: cover; }
.efp-thumb:hover { transform: translateY(-3px); }
.efp-thumb.is-active {
  border-color: var(--efp-gold);
  box-shadow: 0 8px 25px rgba(76,55,35,.12);
}

.efp-summary { padding-top: 6px; }

.efp-breadcrumb {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
  margin-bottom: 28px;
  font-size: .69rem;
  color: rgba(23,19,15,.46);
}
.efp-breadcrumb a:hover { color: var(--efp-gold); }

.efp-eyebrow {
  margin: 0 0 13px !important;
  color: var(--efp-gold) !important;
  font-size: .69rem;
  font-weight: 600;
  letter-spacing: .27em;
  text-transform: uppercase;
}

.efp-summary h1,
.efp-manifesto h2,
.efp-sisters h2,
.efp-benefits h2,
.efp-origin h2,
.efp-ritual h2,
.efp-details h2,
.efp-related h2,
.efp-impact-card h3,
.efp-benefit-strip strong {
  font-family: var(--efp-title-font);
  font-weight: 400;
}

.efp-summary h1 {
  margin: 0;
  max-width: 12ch;
  font-size: clamp(2.9rem, 4.35vw, 4.65rem);
  line-height: .98;
  letter-spacing: -.018em;
}

.efp-rating {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 17px 0 0;
  font-size: .77rem;
}
.efp-rating .star-rating { margin: 0; color: var(--efp-gold); }
.efp-rating a { border-bottom: 1px solid rgba(174,129,80,.35); }

.efp-title-divider {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 27px 0 17px;
  color: var(--efp-gold);
}
.efp-title-divider > span {
  width: 112px;
  height: 1px;
  background: currentColor;
  opacity: .78;
}
.efp-title-divider svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.efp-subtitle {
  margin: 0 !important;
  color: #49685b !important;
  font-size: .77rem;
  font-weight: 500;
  letter-spacing: .28em;
  text-transform: uppercase;
}

.efp-intro {
  max-width: 55ch;
  margin: 22px 0 0 !important;
  font-size: .93rem;
  line-height: 1.75 !important;
}

.efp-price-line {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin: 23px 0 4px;
}
.efp-price-line strong {
  font-family: var(--efp-title-font);
  font-size: 1.8rem;
  font-weight: 500;
}
.efp-price-line span { font-size: .76rem; color: var(--efp-soft); }
.efp-stock { margin-bottom: 16px; font-size: .74rem; color: var(--efp-soft); }

/* ---------------- PURCHASE CARDS ---------------- */

.efp-offers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 25px;
}
.efp-offer-card {
  position: relative;
  display: flex;
  min-height: 248px;
  flex-direction: column;
  justify-content: space-between;
  gap: 19px;
  margin: 0;
  padding: 24px;
  border: 1px solid var(--efp-line);
  border-radius: 20px;
  background: rgba(255,255,255,.72);
  transition: transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease, border-color .4s ease;
}
.efp-offer-card:hover {
  transform: translateY(-7px);
  border-color: rgba(174,129,80,.48);
  box-shadow: 0 18px 44px rgba(55,40,28,.10);
}
.efp-offer-duo {
  background: linear-gradient(145deg, #f5ecdd, #fffdf8);
  border-color: rgba(174,129,80,.40);
}
.efp-offer-badge {
  position: absolute;
  right: 16px;
  top: 16px;
  padding: 8px 11px;
  border-radius: 999px;
  background: var(--efp-ink);
  color: var(--efp-gold-light);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
}
.efp-offer-kicker {
  display: inline-block;
  margin-bottom: 8px;
  color: var(--efp-gold);
  font-size: .60rem;
  font-weight: 600;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.efp-offer-card h2 {
  margin: 0;
  font-family: var(--efp-title-font);
  font-size: 1.48rem;
  font-weight: 400;
}
.efp-offer-card p {
  margin: 7px 0 0 !important;
  font-size: .78rem;
  line-height: 1.45 !important;
}
.efp-offer-bottom { display: grid; gap: 12px; }
.efp-offer-bottom strong,
.efp-duo-price strong {
  font-family: var(--efp-title-font);
  font-size: 1.28rem;
  font-weight: 500;
}
.efp-duo-price { display: flex; align-items: baseline; gap: 10px; }
.efp-old-price { text-decoration: line-through; color: rgba(23,19,15,.42); font-size: .78rem; }
.efp-offer-card small {
  display: block;
  margin-top: -12px;
  color: var(--efp-soft);
  font-size: .68rem;
}
.efp-buy-button {
  width: 100%;
  min-height: 49px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 0;
  padding: 0 16px;
  background: var(--efp-ink);
  color: #fff;
  font-family: var(--efp-body);
  font-size: .64rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .3s ease, transform .3s ease;
}
.efp-offer-duo .efp-buy-button { background: var(--efp-gold); }
.efp-buy-button:hover { background: var(--efp-gold); transform: translateY(-1px); }
.efp-offer-duo .efp-buy-button:hover { background: var(--efp-ink); }

.efp-proof-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 27px;
  border-top: 1px solid var(--efp-line);
  border-bottom: 1px solid var(--efp-line);
}
.efp-proof-card {
  min-width: 0;
  text-align: center;
  padding: 24px 12px;
  border-right: 1px solid var(--efp-line);
}
.efp-proof-card:last-child { border-right: 0; }
.efp-proof-icon {
  display: block;
  margin-bottom: 9px;
  color: var(--efp-gold);
  font-size: 1.7rem;
}
.efp-proof-card strong {
  display: block;
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.efp-proof-card small {
  display: block;
  margin-top: 7px;
  color: var(--efp-soft);
  font-size: .70rem;
  line-height: 1.45;
}

/* ---------------- MANIFESTO ---------------- */

.efp-manifesto {
  position: relative;
  padding: clamp(58px, 6.3vw, 88px) 24px;
  text-align: center;
  background: var(--efp-white);
  border-top: 1px solid rgba(23,19,15,.05);
  border-bottom: 1px solid rgba(23,19,15,.05);
}
.efp-manifesto::before,
.efp-manifesto::after {
  content: "";
  position: absolute;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(174,129,80,.09), transparent 68%);
  pointer-events: none;
}
.efp-manifesto::before { left: -35px; top: -55px; }
.efp-manifesto::after { right: -20px; bottom: -65px; }

.efp-manifesto h2 {
  margin: 0;
  font-size: clamp(2.35rem, 4.5vw, 4.2rem);
  line-height: .98;
}
.efp-manifesto > p:last-child {
  max-width: 650px;
  margin: 20px auto 0 !important;
  font-size: .88rem;
}

/* ---------------- SISTERS ---------------- */

.efp-sisters {
  position: relative;
  padding-block: clamp(78px, 8vw, 112px);
}
.efp-sisters::before,
.efp-benefits::before,
.efp-details::before {
  content: "";
  position: absolute;
  inset: 0 calc(50% - 50vw);
  z-index: -1;
}
.efp-sisters::before { background: var(--efp-cream); }

.efp-sisters-heading {
  max-width: 780px;
  margin: 0 auto 44px;
  text-align: center;
}
.efp-sisters-heading h2 {
  margin: 0;
  font-size: clamp(2rem, 3.7vw, 3.15rem);
  line-height: 1.04;
}

.efp-dialogue {
  max-width: 1040px;
  margin: 0 auto;
  display: grid;
  gap: 20px;
}
.efp-sister {
  display: flex;
  align-items: flex-end;
  gap: 19px;
}
.efp-sister img {
  width: 92px;
  height: 122px;
  object-fit: contain;
  opacity: .78;
}
.efp-sister-mimi { justify-content: flex-end; }

.efp-bubble {
  position: relative;
  max-width: 650px;
  padding: 26px 30px 28px;
  border-radius: 28px;
  transition: transform .35s ease, box-shadow .35s ease;
}
.efp-bubble:hover { transform: translateY(-4px); }
.efp-bubble span {
  display: block;
  margin-bottom: 10px;
  font-size: .66rem;
  letter-spacing: .075em;
}
.efp-bubble p {
  margin: 0 !important;
  font-size: 1.04rem;
  line-height: 1.62 !important;
}
.efp-bubble-dark {
  margin-right: 90px;
  background: var(--efp-ink);
  color: var(--efp-gold-light);
  box-shadow: 0 16px 35px rgba(35,26,19,.08);
}
.efp-bubble-dark p { color: #fff !important; }
.efp-bubble-light {
  margin-left: 90px;
  background: var(--efp-white);
  border: 1px solid var(--efp-line);
}
.efp-bubble-dark::after,
.efp-bubble-light::after {
  content: "";
  position: absolute;
  bottom: 12px;
  width: 18px;
  height: 18px;
  transform: rotate(45deg);
}
.efp-bubble-dark::after { left: -8px; background: var(--efp-ink); }
.efp-bubble-light::after {
  right: -8px;
  background: var(--efp-white);
  border-right: 1px solid var(--efp-line);
  border-top: 1px solid var(--efp-line);
}

/* ---------------- IMPACT / BENEFITS ---------------- */

.efp-benefits {
  position: relative;
  padding-top: clamp(82px, 8.5vw, 122px);
  padding-bottom: clamp(86px, 9vw, 130px);
}
.efp-benefits::before { background: var(--efp-white); }

.efp-section-heading {
  max-width: 810px;
  margin: 0 auto 42px;
  text-align: center;
}
.efp-section-heading h2 {
  margin: 0;
  font-size: clamp(2rem, 3.7vw, 3.2rem);
  line-height: 1.02;
}

.efp-impact-grid {
  display: grid;
  grid-template-columns: 1.25fr repeat(3, 1fr);
  gap: 14px;
}
.efp-impact-card {
  position: relative;
  min-height: 270px;
  padding: 30px 28px;
  border: 1px solid var(--efp-line);
  border-radius: 22px;
  background: #fff;
  overflow: hidden;
  transition: transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s ease, border-color .45s ease;
}
.efp-impact-card:hover {
  transform: translateY(-8px);
  border-color: rgba(174,129,80,.4);
  box-shadow: 0 20px 45px rgba(54,39,27,.08);
}
.efp-impact-main {
  background:
    radial-gradient(circle at 80% 20%, rgba(216,183,129,.16), transparent 33%),
    var(--efp-ink);
  color: #fff;
  border-color: var(--efp-ink);
}
.efp-impact-number {
  display: block;
  font-family: var(--efp-title-font);
  font-size: clamp(3.2rem, 5vw, 5.4rem);
  font-weight: 300;
  line-height: .88;
  letter-spacing: -.035em;
  color: var(--efp-gold);
}
.efp-impact-main .efp-impact-number { color: var(--efp-gold-light); }
.efp-impact-prefix {
  display: block;
  min-height: 18px;
  margin-bottom: 7px;
  color: var(--efp-copper);
  font-size: .61rem;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.efp-impact-number-wide {
  white-space: nowrap;
  font-size: clamp(2.75rem, 4.15vw, 4.6rem);
  letter-spacing: -.045em;
}
.efp-impact-unit {
  display: block;
  margin-top: 10px;
  color: var(--efp-copper);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .22em;
}
.efp-impact-main .efp-impact-unit { color: var(--efp-gold-light); }
.efp-impact-card h3 {
  margin: 34px 0 8px;
  font-size: 1.18rem;
  line-height: 1.12;
}

.efp-impact-seeds h3 { margin-top: 22px; }
.efp-impact-card p {
  margin: 0 !important;
  font-size: .78rem;
  line-height: 1.55 !important;
}
.efp-impact-main h3 { color: #fff; }
.efp-impact-main p { color: rgba(255,255,255,.72) !important; }

.efp-benefit-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 30px;
  border-top: 1px solid var(--efp-line);
  border-bottom: 1px solid var(--efp-line);
}
.efp-benefit-strip > div {
  padding: 25px 28px;
  border-right: 1px solid var(--efp-line);
}
.efp-benefit-strip > div:last-child { border-right: 0; }
.efp-benefit-strip strong {
  display: block;
  margin-bottom: 6px;
  font-size: 1.18rem;
}
.efp-benefit-strip span {
  display: block;
  color: #51463e;
  font-size: .83rem;
  line-height: 1.6;
}

/* ---------------- ORIGIN / RITUAL ---------------- */

.efp-origin,
.efp-ritual {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(48px, 7vw, 92px);
  align-items: center;
  padding-top: clamp(88px, 9vw, 130px);
  padding-bottom: clamp(88px, 9vw, 130px);
}
.efp-origin::before {
  content: "";
  position: absolute;
  inset: 0 calc(50% - 50vw);
  z-index: -1;
  background: var(--efp-cream);
}
.efp-ritual::before {
  content: "";
  position: absolute;
  inset: 0 calc(50% - 50vw);
  z-index: -1;
  background: var(--efp-white);
}

.efp-origin-image,
.efp-ritual-image {
  position: relative;
  min-height: 570px;
  overflow: hidden;
  border-radius: 22px;
  background: #e7dcc9;
}
.efp-origin-image img,
.efp-ritual-image img {
  width: 100%;
  height: 100%;
  min-height: 570px;
  object-fit: cover;
}
.efp-hand-note-light {
  top: auto;
  bottom: 36px;
}

.efp-origin-copy h2,
.efp-ritual-copy h2,
.efp-details-heading h2 {
  margin: 0 0 24px;
  font-size: clamp(2rem, 3.7vw, 3.25rem);
  line-height: 1.02;
}
.efp-origin-copy > p:not(.efp-eyebrow) { margin-bottom: 18px !important; }

.efp-origin-facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin-top: 34px;
  border-top: 1px solid var(--efp-line);
  border-left: 1px solid var(--efp-line);
}
.efp-origin-facts div {
  padding: 19px;
  border-right: 1px solid var(--efp-line);
  border-bottom: 1px solid var(--efp-line);
  background: rgba(255,255,255,.25);
}
.efp-origin-facts strong {
  display: block;
  font-family: var(--efp-title-font);
  font-size: 1.32rem;
  font-weight: 500;
}
.efp-origin-facts span { display: block; margin-top: 3px; font-size: .70rem; color: var(--efp-soft); }

.efp-steps { display: grid; gap: 22px; margin-top: 34px; }
.efp-steps > div {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 16px;
  align-items: start;
}
.efp-steps span {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid var(--efp-gold);
  border-radius: 50%;
  color: var(--efp-gold);
  font-family: var(--efp-title-font);
}
.efp-steps p { margin: 5px 0 0 !important; }
.efp-ritual-image .efp-hand-gold {
  top: 22px;
  left: 26px;
  color: #e2bf82 !important;
  text-shadow: 0 2px 18px rgba(0,0,0,.42);
}

/* ---------------- DETAILS ---------------- */

.efp-details {
  position: relative;
  display: grid;
  grid-template-columns: .75fr 1.25fr;
  gap: clamp(48px, 7vw, 92px);
  padding-top: clamp(86px, 9vw, 125px);
  padding-bottom: clamp(86px, 9vw, 125px);
}
.efp-details::before { background: #f8f3eb; }
.efp-details-heading { position: sticky; top: 120px; align-self: start; }
.efp-details-content { display: grid; gap: 32px; }
.efp-skin-targets {
  padding: 22px 24px;
  border: 1px solid var(--efp-line);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.75) 0%, rgba(248,243,235,.95) 100%);
  box-shadow: 0 18px 40px rgba(70, 52, 36, 0.05);
}
.efp-skin-kicker {
  margin: 0 0 10px !important;
  font-size: .75rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--efp-gold);
}
.efp-skin-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.efp-skin-row span {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid rgba(174,129,80,.22);
  background: rgba(255,255,255,.8);
  color: var(--efp-ink);
  font-size: .86rem;
  line-height: 1.2;
}
.efp-skin-note { margin: 14px 0 0 !important; font-size: .82rem; color: var(--efp-soft); }
.efp-accordion { border-top: 1px solid var(--efp-line); }
.efp-accordion strong { color: var(--efp-ink); font-weight: 600; }
.efp-accordion details div ul { margin: 10px 0 0; padding-left: 18px; }
.efp-accordion details div li { color: var(--efp-soft); margin: 0 0 8px; }
.efp-accordion details { border-bottom: 1px solid var(--efp-line); }
.efp-accordion summary {
  list-style: none;
  position: relative;
  padding: 23px 46px 23px 0;
  cursor: pointer;
  font-size: .95rem;
  font-weight: 500;
}
.efp-accordion summary::-webkit-details-marker { display: none; }
.efp-accordion summary::after {
  content: "+";
  position: absolute;
  right: 5px;
  top: 17px;
  color: var(--efp-gold);
  font-size: 1.35rem;
  font-weight: 300;
}
.efp-accordion details[open] summary::after { content: "–"; }
.efp-accordion details div { padding: 0 38px 24px 0; }
.efp-accordion details div p { margin: 0 0 10px !important; font-size: .84rem; }

/* ---------------- RELATED ---------------- */

.efp-related {
  padding-top: clamp(82px, 8vw, 112px);
  padding-bottom: clamp(88px, 9vw, 130px);
}
.efp-related-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  max-width: 940px;
  margin-inline: auto;
}
.efp-related-card {
  position: relative;
  display: grid;
  grid-template-columns: 155px 1fr 38px;
  align-items: center;
  gap: 20px;
  min-height: 160px;
  padding: 14px;
  border: 1px solid var(--efp-line);
  border-radius: 20px;
  background: #fff;
  transition: transform .4s ease, box-shadow .4s ease;
}
.efp-related-card:hover { transform: translateY(-7px); box-shadow: 0 18px 42px rgba(50,36,25,.08); }
.efp-related-image { height: 132px; overflow: hidden; border-radius: 14px; background: #eee3d1; }
.efp-related-image img { width: 100%; height: 100%; object-fit: cover; }
.efp-related-card h3 {
  margin: 0 0 8px;
  font-family: var(--efp-title-font);
  font-size: 1.18rem;
  font-weight: 400;
  line-height: 1.15;
}
.efp-related-card span { font-size: .78rem; color: var(--efp-soft); }
.efp-related-card b {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(174,129,80,.5);
  border-radius: 50%;
  color: var(--efp-gold);
  font-weight: 400;
}

/* ---------------- FAMILY NOTE ---------------- */

.efp-family-note {
  padding: 58px 0 64px;
  border-top: 1px solid var(--efp-line);
  background: var(--efp-cream-deep);
}
.efp-family-note .efp-shell { max-width: 950px; }
.efp-hand-family {
  margin: 0 0 12px !important;
  color: var(--efp-copper) !important;
  font-family: var(--efp-hand);
  font-size: 1.68rem;
}
.efp-footnote {
  margin: 0 !important;
  font-size: .74rem;
  line-height: 1.75 !important;
  color: rgba(23,19,15,.66) !important;
}

/* ---------------- REVEAL ---------------- */

.efp-js .efp-reveal {
  opacity: 0;
  transform: translateY(23px);
  transition: opacity .75s ease, transform .75s cubic-bezier(.2,.8,.2,1);
}
.efp-js .efp-reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1120px) {
  .efp-top { grid-template-columns: 1fr; }
  .efp-gallery,
  .efp-summary { max-width: 820px; margin-inline: auto; width: 100%; }
  .efp-impact-grid { grid-template-columns: repeat(2, 1fr); }
  .efp-origin,
  .efp-ritual { grid-template-columns: 1fr; }
  .efp-origin-image,
  .efp-ritual-image,
  .efp-origin-image img,
  .efp-ritual-image img { min-height: 500px; }
  .efp-details { grid-template-columns: 1fr; }
  .efp-details-heading { position: static; }
  .efp-skin-targets { padding: 20px 18px; }
}

@media (max-width: 760px) {
  .efp-shell { width: min(100% - 28px, 1320px); }
  .efp-top { padding-top: 24px; gap: 31px; }
  .efp-main-visual { border-radius: 16px; }
  .efp-hand-note { font-size: 1.28rem; max-width: 12ch; }
  .efp-summary h1 { font-size: clamp(2.45rem, 11vw, 3.6rem); max-width: none; }
  .efp-title-divider > span { width: 78px; }
  .efp-subtitle { letter-spacing: .17em; line-height: 1.6; }
  .efp-offers { grid-template-columns: 1fr; }
  .efp-offer-card { min-height: auto; }
  .efp-proof-grid { grid-template-columns: 1fr; }
  .efp-proof-card { border-right: 0; border-bottom: 1px solid var(--efp-line); }
  .efp-proof-card:last-child { border-bottom: 0; }
  .efp-sister img { width: 65px; height: 86px; }
  .efp-bubble-dark { margin-right: 16px; }
  .efp-bubble-light { margin-left: 16px; }
  .efp-impact-grid { grid-template-columns: 1fr 1fr; }
  .efp-benefit-strip { grid-template-columns: 1fr; }
  .efp-benefit-strip > div { border-right: 0; border-bottom: 1px solid var(--efp-line); }
  .efp-benefit-strip > div:last-child { border-bottom: 0; }
  .efp-origin-image,
  .efp-ritual-image,
  .efp-origin-image img,
  .efp-ritual-image img { min-height: 390px; }
  .efp-related-grid { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .efp-thumbs { grid-template-columns: repeat(3, 1fr); }
  .efp-thumbs .efp-thumb:nth-child(n+4) { display: none; }
  .efp-breadcrumb { font-size: .63rem; }
  .efp-sister { align-items: center; }
  .efp-sister img { display: none; }
  .efp-bubble { width: 100%; max-width: none; margin-left: 0; margin-right: 0; padding: 21px 22px; }
  .efp-bubble::after { display: none; }
  .efp-impact-grid { grid-template-columns: 1fr; }
  .efp-impact-card { min-height: 220px; }
  .efp-impact-number-wide { font-size: clamp(3rem, 16vw, 4.6rem); }
  .efp-origin-facts { grid-template-columns: 1fr; }
  .efp-related-card { grid-template-columns: 112px 1fr 34px; }
}

@media (prefers-reduced-motion: reduce) {
  .eclorya-product-page *,
  .eclorya-product-page *::before,
  .eclorya-product-page *::after {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }
  .efp-js .efp-reveal { opacity: 1; transform: none; }
}
