/* FIORAFIT V20 — Página de produto / editorial commerce */
.product-page { background: var(--ivory); color: var(--espresso); }
.product-page .site-header { color: var(--espresso); }
.product-main { padding-top: 80px; }
.product-breadcrumb { padding: 20px 4.5vw 18px; display:flex; align-items:center; gap:9px; flex-wrap:wrap; font-size:7px; letter-spacing:.19em; color:rgba(73,60,52,.55); }
.product-breadcrumb strong { font-weight:600; color:var(--espresso); }
.product-layout { display:grid; grid-template-columns:minmax(0, 1.42fr) minmax(330px, .88fr); gap:clamp(36px,5vw,88px); padding:0 4.5vw 46px; align-items:start; }
.product-gallery { display:grid; grid-template-columns:70px minmax(0,1fr); gap:20px; min-width:0; }
.product-thumbs { display:flex; flex-direction:column; gap:7px; }
.product-thumb { border:0; padding:0; background:transparent; cursor:pointer; position:relative; aspect-ratio:3/4; overflow:hidden; opacity:.68; transition:opacity .2s ease, box-shadow .2s ease; }
.product-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.product-thumb.active { opacity:1; box-shadow:inset 0 0 0 1px rgba(73,60,52,.5); }
.product-thumb-video .video-play { position:absolute; inset:50% auto auto 50%; width:28px; height:28px; border:1px solid rgba(255,255,255,.9); border-radius:50%; transform:translate(-50%,-50%); background:rgba(73,60,52,.12); backdrop-filter:blur(4px); }
.product-thumb-video .video-play:after { content:""; position:absolute; left:11px; top:8px; border-left:7px solid #fff; border-top:5px solid transparent; border-bottom:5px solid transparent; }
.product-stage { background:#D8C8BA; min-height:650px; max-height:calc(100vh - 132px); position:sticky; top:98px; overflow:hidden; }
.product-stage img, .product-stage video { width:100%; height:100%; min-height:650px; max-height:calc(100vh - 132px); object-fit:cover; display:block; }
.product-info { padding-top:4px; position:sticky; top:104px; }
.product-collection { display:block; font-size:8px; letter-spacing:.23em; margin-bottom:16px; opacity:.55; }
.product-info h1 { font-family:var(--serif); font-size:clamp(42px,3.6vw,62px); line-height:.92; font-weight:400; margin:0; letter-spacing:-.02em; }
.product-subtitle { margin:16px 0 0; font-size:8px; line-height:1.9; letter-spacing:.18em; text-transform:uppercase; color:rgba(73,60,52,.63); }
.product-pricing { padding:27px 0 28px; border-bottom:1px solid rgba(73,60,52,.12); }
.member-price-row { display:flex; align-items:center; gap:11px; color:var(--magenta); }
.club-heart { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.6; }
.member-price-row strong { font-size:26px; font-weight:500; letter-spacing:.03em; }
.member-price-row > span { margin-left:5px; padding:7px 11px 6px; border-radius:999px; color:#fff; background:var(--magenta); font-size:7px; letter-spacing:.17em; }
.normal-price-row { display:flex; align-items:baseline; gap:24px; margin-top:12px; }
.normal-price-row strong { font-family:var(--serif); font-size:25px; font-weight:400; }
.normal-price-row span { font-size:8px; opacity:.55; }
.product-pricing small { display:block; margin-top:12px; font-size:8px; letter-spacing:.06em; opacity:.65; }
.club-link { display:inline-flex; gap:10px; margin-top:19px; padding-bottom:3px; border-bottom:1px solid currentColor; color:var(--magenta); font-family:var(--serif); font-size:17px; }
.product-option { padding-top:27px; }
.option-heading { display:flex; align-items:center; gap:10px; margin-bottom:17px; font-size:8px; letter-spacing:.16em; }
.option-heading strong { font-weight:600; }
.option-heading > span:before { content:"/"; margin-right:10px; opacity:.35; }
.size-heading { justify-content:space-between; }
.size-heading a { font-size:8px; letter-spacing:0; text-decoration:underline; text-underline-offset:3px; font-weight:400; }
.color-options { display:flex; gap:15px; }
.color-dot { --swatch:#888; width:36px; height:36px; border:1px solid transparent; border-radius:50%; padding:4px; background:transparent; cursor:pointer; position:relative; }
.color-dot:after { content:""; position:absolute; inset:5px; border-radius:50%; background:var(--swatch); }
.color-dot.selected { border-color:rgba(73,60,52,.65); }
.size-options { display:grid; grid-template-columns:repeat(5, 48px); gap:10px; }
.size-options button { height:48px; border:1px solid rgba(73,60,52,.15); background:transparent; color:var(--espresso); cursor:pointer; font-size:10px; transition:all .2s ease; }
.size-options button.selected { background:var(--espresso); color:var(--ivory); border-color:var(--espresso); }
.buy-row { display:grid; grid-template-columns:1fr 52px; gap:10px; margin-top:30px; }
.add-to-bag { min-height:52px; border:1px solid var(--espresso); background:var(--espresso); color:var(--ivory); font-size:8px; letter-spacing:.19em; cursor:pointer; transition:opacity .2s ease; }
.add-to-bag:hover { opacity:.9; }
.wishlist { border:1px solid rgba(73,60,52,.45); background:transparent; display:grid; place-items:center; cursor:pointer; color:var(--espresso); }
.wishlist svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.4; }
.wishlist.active { color:var(--magenta); border-color:rgba(163,1,103,.35); }
.wishlist.active svg { fill:rgba(163,1,103,.08); }
.size-message { min-height:16px; margin:8px 0 0; color:var(--magenta); font-size:8px; }
.service-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:14px 0 28px; padding:18px 0 0; font-size:7px; line-height:1.45; color:rgba(73,60,52,.6); }
.service-strip span { padding-left:15px; position:relative; }
.service-strip span:before { content:""; width:4px; height:4px; border:1px solid currentColor; border-radius:50%; position:absolute; left:0; top:3px; }
.product-accordions { border-top:1px solid rgba(73,60,52,.15); }
.product-accordions details { border-bottom:1px solid rgba(73,60,52,.15); }
.product-accordions summary { list-style:none; cursor:pointer; min-height:54px; display:flex; align-items:center; justify-content:space-between; font-size:8px; letter-spacing:.16em; }
.product-accordions summary::-webkit-details-marker { display:none; }
.product-accordions summary span { font-size:15px; font-weight:300; transition:transform .2s ease; }
.product-accordions details[open] summary span { transform:rotate(45deg); }
.product-accordions details p { margin:0 0 20px; max-width:95%; font-family:var(--serif); font-size:17px; line-height:1.5; color:rgba(73,60,52,.78); }
.product-manifesto { min-height:320px; margin:32px 4.5vw 72px; padding:66px 0 40px; display:grid; grid-template-columns:minmax(260px,1fr) 1px minmax(180px,.65fr); align-items:center; gap:70px; border-top:1px solid rgba(73,60,52,.08); }
.product-manifesto h2 { font-family:var(--serif); font-weight:400; font-size:clamp(48px,5vw,76px); line-height:.82; margin:0; }
.manifesto-line { height:94px; width:1px; background:rgba(73,60,52,.35); transform:rotate(24deg); }
.product-manifesto p { font-size:8px; line-height:1.75; letter-spacing:.22em; margin:0; }
.product-related { padding:0 4.5vw 84px; }
.related-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:18px; }
.related-heading h2 { font-family:var(--serif); font-size:23px; font-weight:400; margin:0; }
.related-heading a { font-size:8px; letter-spacing:.15em; }
.related-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.related-image { display:block; aspect-ratio:3/4; overflow:hidden; background:#d9c9bb; }
.related-image img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.related-card:hover img { transform:scale(1.02); }
.related-card h3 { font-size:9px; letter-spacing:.12em; margin:13px 0 7px; font-weight:600; }
.related-prices { display:flex; gap:15px; align-items:center; font-size:9px; }
.related-prices > span { opacity:.75; }
.related-prices strong { color:var(--magenta); font-weight:500; display:flex; align-items:center; gap:5px; }
.related-prices svg { width:11px; height:11px; fill:currentColor; stroke:currentColor; }

/* card de produto na página da coleção */
.collection-products-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:44px; }
.collection-product-card a { display:block; }
.collection-product-image { aspect-ratio:3/4; overflow:hidden; background:#d7c8bb; }
.collection-product-image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.collection-product-card:hover img { transform:scale(1.02); }
.collection-product-card h3 { margin:13px 0 7px; font-size:9px; letter-spacing:.14em; }
.collection-product-prices { display:flex; gap:15px; align-items:center; font-size:9px; }
.collection-product-prices .member { color:var(--magenta); display:flex; align-items:center; gap:5px; font-weight:500; }
.collection-product-prices .member:before { content:"♥"; font-size:9px; }

@media (max-width: 980px) {
  .product-layout { grid-template-columns:1fr 390px; gap:34px; }
  .product-gallery { grid-template-columns:58px 1fr; gap:12px; }
  .product-stage, .product-stage img, .product-stage video { min-height:560px; }
}

@media (max-width: 760px) {
  .product-main { padding-top:72px; }
  .product-breadcrumb { padding:15px 18px 14px; font-size:6px; gap:6px; }
  .product-layout { display:block; padding:0 18px 28px; }
  .product-gallery { display:flex; flex-direction:column-reverse; gap:10px; }
  .product-thumbs { flex-direction:row; overflow-x:auto; gap:7px; padding-bottom:2px; scrollbar-width:none; }
  .product-thumbs::-webkit-scrollbar { display:none; }
  .product-thumb { flex:0 0 58px; width:58px; }
  .product-stage { position:relative; top:auto; min-height:0; max-height:none; aspect-ratio:4/5; }
  .product-stage img, .product-stage video { min-height:0; max-height:none; height:100%; }
  .product-info { position:relative; top:auto; padding:38px 2px 0; }
  .product-info h1 { font-size:50px; }
  .member-price-row { flex-wrap:wrap; gap:9px; }
  .member-price-row strong { font-size:24px; }
  .member-price-row > span { font-size:6px; }
  .size-options { grid-template-columns:repeat(5,1fr); gap:7px; }
  .service-strip { font-size:6px; gap:6px; }
  .product-manifesto { margin:26px 18px 55px; padding:50px 0 28px; min-height:250px; grid-template-columns:1fr 1px .7fr; gap:25px; }
  .product-manifesto h2 { font-size:42px; }
  .manifesto-line { height:74px; }
  .product-manifesto p { font-size:6px; }
  .product-related { padding:0 18px 60px; }
  .related-heading h2 { font-size:19px; }
  .related-grid { grid-template-columns:repeat(2,1fr); gap:22px 8px; }
  .related-card h3 { font-size:8px; }
  .related-prices { font-size:8px; display:block; }
  .related-prices strong { margin-top:4px; }
  .collection-products-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
}

@media (max-width: 420px) {
  .product-info h1 { font-size:46px; }
  .product-manifesto { grid-template-columns:1fr; gap:24px; }
  .manifesto-line { display:none; }
  .product-manifesto p { font-size:7px; }
}


/* =========================================================
   FIORAFIT V21 — DELICADA, MAS LEGÍVEL
   Montserrat na interface comercial + vídeo em destaque
   ========================================================= */

.product-page { --product-sans: "Montserrat", "Manrope", sans-serif; }

.product-page .product-breadcrumb,
.product-page .product-info,
.product-page .product-related,
.product-page .collection-products-grid,
.product-page button,
.product-page input,
.product-page select {
  font-family: var(--product-sans);
}

.product-info h1 {
  font-family: var(--product-sans);
  font-size: clamp(36px, 3.1vw, 54px);
  line-height: 1.02;
  font-weight: 400;
  letter-spacing: -.035em;
}

.product-collection {
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .22em;
  opacity: .72;
}

.product-subtitle {
  font-size: 10px;
  line-height: 1.65;
  letter-spacing: .105em;
  font-weight: 400;
  color: rgba(73,60,52,.72);
}

.product-breadcrumb {
  font-size: 9px;
  line-height: 1.5;
  color: rgba(73,60,52,.68);
}

.member-price-row strong {
  font-family: var(--product-sans);
  font-size: 27px;
  font-weight: 500;
  letter-spacing: -.02em;
}

.member-price-row > span {
  font-family: var(--product-sans);
  font-size: 8px;
  font-weight: 600;
  letter-spacing: .12em;
}

.normal-price-row { gap: 20px; }

.normal-price-row strong {
  font-family: var(--product-sans);
  font-size: 22px;
  font-weight: 400;
  letter-spacing: -.02em;
}

.normal-price-row span,
.product-pricing small {
  font-family: var(--product-sans);
  font-size: 10px;
  font-weight: 400;
  color: rgba(73,60,52,.68);
  opacity: 1;
}

.club-link {
  font-family: var(--product-sans);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: -.01em;
}

.option-heading,
.size-heading a {
  font-family: var(--product-sans);
  font-size: 10px;
  color: rgba(73,60,52,.86);
}

.option-heading strong { font-weight: 600; }

.size-options button {
  font-family: var(--product-sans);
  font-size: 11px;
  font-weight: 400;
}

.add-to-bag {
  font-family: var(--product-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .13em;
}

.size-message {
  font-family: var(--product-sans);
  font-size: 10px;
}

.service-strip {
  font-family: var(--product-sans);
  font-size: 9px;
  line-height: 1.5;
  color: rgba(73,60,52,.72);
}

.product-accordions summary {
  font-family: var(--product-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .105em;
}

.product-accordions details p {
  font-family: var(--product-sans);
  font-size: 12px;
  line-height: 1.75;
  font-weight: 400;
  color: rgba(73,60,52,.78);
}

.product-manifesto h2 { font-family: var(--serif); }

.product-manifesto p {
  font-family: var(--product-sans);
  font-size: 9px;
  line-height: 1.75;
  letter-spacing: .16em;
  color: rgba(73,60,52,.76);
}

.related-heading h2 {
  font-family: var(--product-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .09em;
}

.related-heading a {
  font-family: var(--product-sans);
  font-size: 9px;
  font-weight: 500;
}

.related-card h3,
.collection-product-card h3 {
  font-family: var(--product-sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .08em;
}

.related-prices,
.collection-product-prices {
  font-family: var(--product-sans);
  font-size: 10px;
  color: rgba(73,60,52,.82);
}

/* Vídeo destacado, mas delicado */
.product-thumb-video {
  opacity: 1;
  background: #4c392f;
  isolation: isolate;
}

.product-thumb-video img {
  filter: saturate(.82) brightness(.68);
}

.video-thumb-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(35,24,19,.08), rgba(35,24,19,.48));
}

.product-thumb-video .video-play {
  z-index: 2;
  top: 38%;
  width: 32px;
  height: 32px;
  background: rgba(248,244,239,.08);
  border: 1px solid rgba(248,244,239,.95);
  backdrop-filter: blur(5px);
}

.product-thumb-video .video-play:after {
  left: 12px;
  top: 9px;
  border-left-width: 8px;
  border-top-width: 6px;
  border-bottom-width: 6px;
}

.video-thumb-label {
  position: absolute;
  z-index: 3;
  left: 6px;
  right: 6px;
  bottom: 8px;
  font-family: var(--product-sans);
  font-size: 7px;
  line-height: 1.35;
  font-weight: 500;
  letter-spacing: .10em;
  color: #fff;
  text-align: center;
}

.product-thumb-video::after {
  content: "";
  position: absolute;
  z-index: 4;
  left: 50%;
  bottom: 3px;
  width: 20px;
  height: 1px;
  transform: translateX(-50%);
  background: var(--magenta);
}

.product-thumb-video.active {
  box-shadow: inset 0 0 0 1px var(--magenta);
}

@media (max-width: 760px) {
  .product-breadcrumb { font-size: 8px; }
  .product-info h1 { font-size: 36px; line-height: 1.05; }
  .product-collection { font-size: 9px; }
  .product-subtitle { font-size: 9px; }
  .member-price-row strong { font-size: 24px; }
  .member-price-row > span { font-size: 7px; }
  .normal-price-row strong { font-size: 19px; }

  .normal-price-row span,
  .product-pricing small,
  .option-heading,
  .size-heading a { font-size: 9px; }

  .service-strip { font-size: 8px; }
  .product-accordions summary { font-size: 9px; }
  .product-accordions details p { font-size: 12px; }
  .video-thumb-label { font-size: 6px; }
  .related-heading h2 { font-size: 11px; }
  .related-card h3 { font-size: 9px; }
  .related-prices { font-size: 9px; }
}
