/* Restore / Retouch: layout additions to the original Reglow design system. */
:root { --fat-pink: #aa438c; --fat-ink: #353136; }
[hidden] { display: none !important; }
section[id] { scroll-margin-top: 90px; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 100; padding: 12px 20px; border-radius: 8px; background: #fff; color: var(--fat-pink); }
.skip-link:focus { top: 12px; }
.site-header .site-header-inner { min-width: 0; }
.menu-toggle { display: none; }
.site-header nav a[aria-current="location"] { color: var(--fat-pink) !important; }
.hero .hero-title { max-width: 720px; margin: 0 0 26px; font-size: clamp(3.1rem,4.15vw,4.8rem); font-weight: 300; line-height: 1.02; letter-spacing: -.058em; color: var(--fat-ink) !important; }
.hero .hero-title strong { color: var(--fat-pink) !important; font-weight: 760; }
.hero-content, .fat-technology-grid > *, .fat-overview .pain-intro-grid > *, .milestone-grid > * { min-width: 0; }
#retouch .hero-stats { width: min(760px,100%); }
#retouch .hero-stats strong { font-size: clamp(1.35rem,2.2vw,2rem); }
.product-entry { padding-top: 40px; padding-bottom: 40px; }
.product-entry .entry-grid { max-width: 920px; }
.entry-banner { box-shadow: 0 14px 38px rgba(53,49,54,.06); }

/* The overview occupies the exact video-frame position of the reference. */
.protocol-device-hint::before { content: '↔'; }
.protocol-overview { width: min(900px,100%); display: grid; grid-template-columns: .95fr 1.05fr; aspect-ratio: 16 / 8; gap: 0; background: #fff; border: 1px solid rgba(170,67,140,.16); box-shadow: 0 22px 54px rgba(91,39,89,.10); }
.protocol-overview-visual { height: 100%; width: 100%; min-width: 0; position: relative; display: grid; align-items: center; padding: 35px; background: #fff; }
.protocol-step-image { width: 100%; height: 290px; object-fit: contain; }
.protocol-overview-tag { position: absolute; top: 20px; left: 24px; color: #8e3977; font-size: .65rem; text-transform: uppercase; letter-spacing: .14em; font-weight: 750; }
.protocol-overview-copy { width: 100%; padding: 40px 38px 40px 18px; }
.protocol-step-kicker { margin: 0 0 16px; color: var(--fat-pink); font-weight: 700; font-size: .73rem; line-height: 1.5; }
.protocol-step-copy h3 { margin: 0 0 18px; color: var(--fat-ink); font-size: clamp(1.55rem,2.3vw,2.25rem); font-weight: 700; line-height: 1.12; letter-spacing: -.035em; }
.protocol-step-copy > p:last-child { margin: 0; color: #625b64; font-size: 1rem; line-height: 1.7; }
#restore-protocolo .timeline { margin-top: 44px; }
#restore-protocolo .timeline-trigger { position: relative; border-radius: 12px; padding: 10px 8px; }
#restore-protocolo .timeline-trigger > strong { font-size: .83rem; line-height: 1.35; }
#restore-protocolo .timeline-trigger:hover, #restore-protocolo .timeline-trigger[aria-pressed="true"] { background: rgba(170,67,140,.075); }
#restore-protocolo .timeline-trigger[aria-pressed="true"] > span { box-shadow: 0 0 0 6px rgba(170,67,140,.13); }
#restore-protocolo .timeline-trigger:focus-visible { outline: 3px solid var(--fat-pink); outline-offset: 4px; }
.protocol-source-note { max-width: 750px; margin: 30px auto 0; color: #746d76; font-size: .78rem; line-height: 1.65; text-align: center; }
.protocol-source-note a { color: var(--fat-pink); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
#restore-protocolo .protocol-upgrade { margin-top: 70px; }
.protocol-step-summary { width: min(900px,100%); min-height: 175px; margin: 28px auto 0; padding: 25px 30px; text-align: center; background: #fff; border: 1px solid rgba(170,67,140,.12); border-radius: 20px; }
.protocol-step-summary .protocol-step-kicker { margin-bottom: 10px; }
.protocol-step-summary .protocol-step-copy h3 { margin-bottom: 12px; font-size: 1.5rem; }
.protocol-step-summary .protocol-step-copy > p:last-child { max-width: 730px; margin: 0 auto; font-size: .94rem; line-height: 1.6; }

.fat-overview .pain-intro-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.fat-overview .pain-stat { font-size: clamp(2.2rem,3.5vw,3.7rem); overflow-wrap: anywhere; }
.fat-overview .protocol-pain-heading h2 { max-width: 100%; }
.fat-overview .pain-intro-grid article > strong { font-size: 1rem; }
.fat-technology-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: center; margin-top: 54px; }
.fat-technology-grid figure { margin: 0; }
.fat-technology-grid figure img { width: 100%; height: 460px; object-fit: contain; }
.fat-technology-grid figcaption { margin-top: 12px; color: #807782; font-size: .72rem; text-align: center; }
.fat-technology-points article { display: flex; gap: 20px; padding: 22px 0; border-bottom: 1px solid #e9dfe7; }
.fat-technology-points article > span { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; border-radius: 50%; background: #f7edf4; color: var(--fat-pink); font-size: .75rem; font-weight: 800; }
.fat-technology-points h3 { margin: 0 0 10px; font-size: 1.25rem; font-weight: 700; color: var(--fat-ink); }
.fat-technology-points p { color: #655e67; font-size: .98rem; line-height: 1.7; }
.fat-milestone-number { display: block; margin-bottom: 12px; color: var(--fat-pink); font-size: 6.5rem; font-weight: 800; letter-spacing: -.08em; line-height: .9; }
.fat-comparison .milestone-grid h2 { font-size: clamp(2.2rem,3.6vw,3.8rem); }
.fat-comparison .body-copy { margin-top: 24px; font-size: 1.05rem; }
.fat-comparison .milestone-grid .button { margin-top: 26px; }
.fat-kit-pair { display: flex; align-items: center; gap: 8px; }
.fat-kit-pair img { width: 50%; max-height: 420px; object-fit: contain; }
.fat-comparison-table-wrap { margin-top: 65px; border: 1px solid rgba(170,67,140,.16); background: #fff; border-radius: 24px; overflow: hidden; }
.fat-comparison-table { border-collapse: collapse; width: 100%; table-layout: fixed; }
.fat-comparison-table caption { text-align: left; padding: 26px 28px; font-size: 1.35rem; font-weight: 700; color: var(--fat-ink); }
.fat-comparison-table th, .fat-comparison-table td { padding: 20px 28px; text-align: left; font-size: .94rem; line-height: 1.5; border-top: 1px solid #ede5eb; vertical-align: top; overflow-wrap: break-word; }
.fat-comparison-table thead th { background: #f9f3f7; color: var(--fat-pink); font-weight: 750; }
.fat-comparison-table tbody th { color: #514a53; font-weight: 650; }
.fat-comparison-table tbody td { color: #6c636e; }
.fat-comparison-table thead th:first-child { width: 34%; }

/* Same financial block as the reference, with values supplied by the visitor. */
.technical-downloads { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.technical-downloads > a { min-width: 0; }
.technical-downloads > a strong { font-size: .85rem; line-height: 1.3; }
.technical-downloads .download-image img { width: 100%; height: 150px; object-fit: contain; }
.faq summary { list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq details[open] summary > span { transform: rotate(45deg); }
#case-lightbox { overscroll-behavior: contain; }
body:has(#case-lightbox[open]) { overflow: hidden; }
.exomine-solutions .exomine-solution-visual img { object-fit: contain; }

@media (min-width: 901px) and (max-width: 1200px) {
  .site-header nav { gap: 17px; }
  .site-header nav a { font-size: .75rem; }
  #retouch .hero-content > p { max-width: 50%; }
}
@media (max-width: 1000px) {
  .fat-technology-grid { gap: 35px; }
  .technical-downloads { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  #restore-beneficios .result-card { min-width: 0; width: 100%; }
  #restore-beneficios .case-viewport { overflow: hidden !important; }
  #restore-beneficios .case-arrow-prev { left: 12px !important; }
  #restore-beneficios .case-arrow-next { right: 12px !important; }
  .site-header .site-header-inner { min-height: 72px; }
  .js .site-header .menu-toggle { display: flex; margin-left: auto; align-items: center; gap: 10px; padding: 10px 14px; border: 1px solid #eadce5; border-radius: 8px; color: var(--fat-pink); font-size: .82rem; font-weight: 700; cursor: pointer; }
  .site-header nav { display: flex !important; flex-wrap: wrap; }
  .js .site-header nav { display: none !important; position: absolute; top: calc(100% + 1px); right: 0; width: min(340px,calc(100vw - 32px)); margin: 0; padding: 12px; border: 1px solid #ecdfe8; border-radius: 0 0 18px 18px; background: #fff; box-shadow: 0 18px 34px rgba(53,49,54,.12); }
  .js .site-header nav.is-open { display: flex !important; flex-direction: column; align-items: stretch; gap: 0; }
  .site-header nav a { display: block; padding: 13px 14px; border-radius: 6px; font-size: .86rem; }
  .site-header nav a:hover { background: #fbf4f8; }
  .fat-overview .pain-intro-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
  .fat-technology-grid { grid-template-columns: 1fr; gap: 20px; }
  .fat-technology-grid figure img { height: 340px; }
  .fat-technology-points { max-width: 620px; margin: 0 auto; }
  .fat-comparison .milestone-grid { grid-template-columns: 1fr; }
  .fat-kit-pair { max-width: 650px; margin: 0 auto; }
}
@media (max-width: 680px) {
  section[id] { scroll-margin-top: 25px; }
  .hero .hero-title { max-width: 100%; font-size: clamp(2.05rem,8.8vw,2.65rem); line-height: 1.04; letter-spacing: -.045em; }
  #retouch .hero-content { padding-top: 0 !important; }
  #retouch .hero-stats { margin-top: 30px !important; }
  #retouch .hero-stats strong { font-size: 1.3rem !important; }
  #retouch .hero-background-product { height: 260px; margin: 30px auto 0; }
  .product-entry .entry-grid { max-width: 420px; }
  .protocol-overview { grid-template-columns: 1fr; aspect-ratio: auto; border-radius: 22px; }
  .protocol-overview-visual { padding: 32px 24px 4px; height: 215px; }
  .protocol-step-image { height: 175px; }
  .protocol-overview-tag { top: 16px; left: 20px; font-size: .6rem; }
  .protocol-overview-copy { padding: 18px 24px 28px; min-height: 240px; }
  .protocol-step-kicker { margin-bottom: 12px; font-size: .68rem; }
  .protocol-step-copy h3 { font-size: 1.5rem; margin-bottom: 12px; }
  .protocol-step-copy > p:last-child { font-size: .9rem; line-height: 1.6; }
  .protocol-device-hint { max-width: 100%; font-size: .71rem; padding: 10px 14px; text-align: center; }
  #restore-protocolo .timeline { margin-top: 28px; grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  #restore-protocolo .timeline-trigger { flex-direction: row; padding: 12px !important; min-height: 82px !important; text-align: left; gap: 10px; }
  #restore-protocolo .timeline-trigger > span { flex: 0 0 32px; width: 32px; height: 32px; font-size: .68rem; }
  #restore-protocolo .timeline-trigger > strong { font-size: .72rem !important; }
  .protocol-source-note { margin-top: 22px; font-size: .72rem; }
  .protocol-step-summary { padding: 22px 18px; min-height: 220px; margin-top: 22px; }
  .protocol-step-summary .protocol-step-copy h3 { font-size: 1.3rem; }
  .protocol-step-summary .protocol-step-copy > p:last-child { font-size: .88rem; }
  #restore-protocolo .protocol-upgrade { margin-top: 42px; }
  .fat-overview .pain-intro-grid { gap: 12px; }
  .fat-overview .pain-intro-grid article { padding: 20px 16px; }
  .fat-overview .pain-stat { font-size: clamp(1.65rem,7vw,2.2rem) !important; }
  .fat-overview .pain-intro-grid article > strong { font-size: .88rem; line-height: 1.4; }
  .fat-overview .pain-intro-grid article > p { font-size: .8rem; line-height: 1.5; }
  .fat-technology-grid { margin-top: 28px; }
  .fat-technology-grid figure img { height: 280px; }
  .fat-technology-points article { gap: 14px; padding: 20px 0; }
  .fat-technology-points h3 { font-size: 1.1rem; }
  .fat-technology-points p { font-size: .9rem; }
  .fat-milestone-number { font-size: 5rem; }
  .fat-kit-pair img { max-height: 270px; }
  .fat-comparison-table-wrap { margin-top: 36px; border-radius: 16px; }
  .fat-comparison-table caption { padding: 22px 16px; font-size: 1.1rem; }
  .fat-comparison-table th, .fat-comparison-table td { padding: 16px 10px; font-size: .73rem; }
  .fat-comparison-table thead th:first-child { width: 33%; }
  .technical-downloads { gap: 10px; }
  .technical-downloads .download-image img { height: 130px; }
  .purchase-banner .purchase-banner-button, .protocol-upgrade .upgrade-product-cta { background: #fff !important; color: #96377d !important; }
  .purchase-banner .purchase-banner-button > span, .protocol-upgrade .upgrade-product-cta > span { color: #96377d !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Selected protocol clips follow the reference's loop-on-hover interaction. */
#restore-protocolo .protocol-clips-stage { display: grid; width: min(980px,100%); aspect-ratio: 16/9; opacity: 1 !important; transform: none !important; transition: none !important; }
.protocol-clips-stage.is-empty { background: radial-gradient(circle at 18% 18%,rgba(201,35,141,.08),transparent 38%),linear-gradient(135deg,#fbf8fa,#f3eef4); }
.protocol-clips-stage .protocol-video-card { width: 100%; height: 100%; margin: 0; }
.protocol-clips-stage .protocol-video-card video { width: 100%; height: 100%; max-height: none; object-fit: contain; background: #102642; }
.protocol-clips-stage .protocol-video-card figcaption { bottom: 40px; padding: 28px 24px 8px; }
.protocol-source-note a + a { margin-left: 12px; }
.fat-overview .pain-stat { font-size: clamp(1.4rem,2.2vw,2rem) !important; line-height: 1.15; overflow-wrap: normal; }
.fat-overview .pain-intro-grid article > strong { display: block; margin-top: 20px; font-size: 1rem; line-height: 1.4; }
.fat-overview .pain-intro-grid article > p { font-size: .94rem; line-height: 1.65; }
.fat-opportunity-note { max-width: 870px; margin: 24px auto 0; text-align: center; color: #776e79; font-size: .77rem; line-height: 1.6; }
.fat-opportunity-sources { margin: 12px auto 0; text-align: center; color: #8a7c88; font-size: .72rem; line-height: 1.6; }
.fat-opportunity-sources a { color: #93457e; text-decoration: underline; text-underline-offset: 3px; }
@media(max-width:680px) {
 .protocol-clips-stage .protocol-video-hint { flex-direction: column; gap: 12px; padding: 20px; text-align: center; }
 .protocol-clips-stage .protocol-video-hint > span { width: 42px; height: 42px; font-size: 1rem; }
 .protocol-clips-stage .protocol-video-hint p { font-size: .78rem; line-height: 1.5; }
 .protocol-clips-stage .protocol-video-card figcaption { bottom: 34px; padding: 18px 14px 5px; gap: 8px; font-size: .72rem; }
 .fat-overview .pain-intro-grid { grid-template-columns: 1fr !important; gap: 16px; }
 .fat-overview .pain-intro-grid article { padding: 24px; }
 .fat-overview .pain-stat { font-size: 1.65rem !important; }
 .fat-overview .pain-intro-grid article > strong { margin-top: 12px; }
 .fat-overview .pain-intro-grid article > p { font-size: .9rem; }
}

/* Restore the reference footer and refine only the requested visual elements. */
.closing-cta .closing-whatsapp { width: 82px !important; height: 82px !important; min-width: 0 !important; min-height: 0 !important; padding: 12px !important; border-radius: 8px !important; background: #fff !important; gap: 0 !important; justify-content: center !important; }
.closing-cta .closing-whatsapp .whatsapp-symbol { flex: 0 0 auto !important; width: 52px !important; height: 52px !important; background: transparent !important; border-radius: 50% !important; overflow: hidden; }
.closing-cta .closing-whatsapp .whatsapp-label, .closing-cta .closing-whatsapp .whatsapp-arrow { display: none !important; }
.closing-cta .other-solutions-button { justify-content: center !important; gap: 12px !important; }
.closing-cta .other-solutions-button > span:last-child { color: inherit !important; margin-left: 0 !important; }
#fat-overview-title { max-width: 1100px; margin-inline: auto; font-size: clamp(2.2rem,4.1vw,4.2rem) !important; line-height: 1.08 !important; }
#fat-overview-title .opportunity-title-line { display: block; white-space: nowrap; }
#fat-overview-title > .opportunity-title-line { font-size: .85em; }
@media(min-width:681px) {
 #restore .hero-background-video { -webkit-mask-image: linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 12%,rgba(0,0,0,.62) 30%,#000 57%); mask-image: linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 12%,rgba(0,0,0,.62) 30%,#000 57%); }
 #restore .hero-shade { background: linear-gradient(90deg,#f3f3f5 0%,rgba(243,243,245,.98) 28%,rgba(243,243,245,.86) 43%,rgba(243,243,245,.5) 59%,rgba(243,243,245,.18) 77%,rgba(243,243,245,.06) 100%); }
 #retouch .hero-background-product { width: 36%; height: 62%; right: 7%; top: 19%; object-fit: contain; }
}
@media(max-width:680px) {
 #fat-overview-title { font-size: clamp(1.7rem,7.1vw,2.5rem) !important; }
 #fat-overview-title > .opportunity-title-line { font-size: .76em; }
 #retouch .hero-background-product { width: 68%; height: 210px; margin: 24px auto 0; }
 .closing-cta .closing-whatsapp { width: 68px !important; height: 68px !important; padding: 10px !important; }
 .closing-cta .closing-whatsapp .whatsapp-symbol { width: 46px !important; height: 46px !important; }
}
@media(max-width:360px) {
 #fat-overview-title { font-size: 1.45rem !important; }
 #fat-overview-title > .opportunity-title-line { font-size: .74em; }
}

/* Complete Restore kit: package on the left, all components in the item grid. */
#restore-produtos .kit-component-photo { display: block; width: 100%; height: 100%; overflow: hidden; }

/* Benefits: consistent line icons and a soft highlight travelling around each card. */
@property --benefit-outline-angle { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
.fat-overview .pain-intro-grid article { position: relative; isolation: isolate; border-color: rgba(170,67,140,.26); background: linear-gradient(145deg,#fff,#fcf8fb); transition: opacity .7s ease var(--reveal-delay,0s), transform .85s ease var(--reveal-delay,0s), filter .65s ease var(--reveal-delay,0s), translate .28s ease, box-shadow .28s ease, background .28s ease; }
.fat-overview .pain-intro-grid article:nth-child(2) { --benefit-phase: -2s; }
.fat-overview .pain-intro-grid article:nth-child(3) { --benefit-phase: -4s; }
.fat-overview .pain-intro-grid article:nth-child(4) { --benefit-phase: -6s; }
.fat-overview .pain-intro-grid article > .benefit-icon { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 0 20px; border: 1px solid rgba(170,67,140,.15); border-radius: 16px; background: linear-gradient(145deg,#f9eaf4,#fdf8fb); color: var(--fat-pink); box-shadow: inset 0 1px 0 #fff; }
.benefit-icon svg { width: 29px; height: 29px; transition: transform .28s ease; }
@supports ((mask-composite: exclude) or (-webkit-mask-composite: xor)) {
 .fat-overview .pain-intro-grid article::before { content: ''; position: absolute; z-index: 2; inset: -1px; padding: 1.5px; border-radius: inherit; pointer-events: none; background: conic-gradient(from var(--benefit-outline-angle),rgba(170,67,140,.08) 0deg 210deg,#d386b9 260deg,#aa438c 290deg,#d386b9 310deg,rgba(170,67,140,.08) 350deg); -webkit-mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: benefit-outline-turn 8s linear infinite; animation-delay: var(--benefit-phase,0s); }
 .fat-overview .pain-intro-grid article:not(.is-revealed)::before { animation-play-state: paused; }
}
@keyframes benefit-outline-turn { to { --benefit-outline-angle: 360deg; } }
@media (hover: hover) and (pointer: fine) {
 .fat-overview .pain-intro-grid article:hover { translate: 0 -7px; box-shadow: 0 24px 48px rgba(130,46,107,.14); background: #fff; }
 .fat-overview .pain-intro-grid article:hover .benefit-icon svg { transform: translateY(-2px) rotate(-4deg); }
}
.reglow-kit-items .kit-component-photo { display: block; width: 100%; height: 100%; overflow: hidden; }
#retouch-beneficios .result-card > img { display: block; border-radius: 24px; }
@media(max-width:680px) {
 .fat-overview .pain-intro-grid article > .benefit-icon { width: 46px; height: 46px; border-radius: 14px; margin-bottom: 16px; }
 .benefit-icon svg { width: 26px; height: 26px; }
 #retouch-beneficios .result-card > img { border-radius: 20px; }
}
@media(prefers-reduced-motion:reduce) {
 .fat-overview .pain-intro-grid article::before { animation: none !important; }
 .fat-overview .pain-intro-grid article, .benefit-icon svg { transition: none !important; translate: none !important; transform: none !important; }
}

/* Pink backdrop for the clinical-differential section. */
#diferencial-clinico { background: var(--fat-pink) !important; }
#diferencial-clinico::before { display: none; }
#diferencial-clinico .protocol-pain-heading .eyebrow,
#diferencial-clinico #fat-overview-title,
#diferencial-clinico #fat-overview-title strong,
#diferencial-clinico #fat-overview-title .opportunity-title-line { color: #fff !important; -webkit-text-fill-color: #fff !important; }
#diferencial-clinico .protocol-pain-heading > p:last-child { color: rgba(255,255,255,.92); }
#diferencial-clinico .fat-opportunity-note,
#diferencial-clinico .fat-opportunity-sources { color: rgba(255,255,255,.84); }
#diferencial-clinico .fat-opportunity-sources a { color: #fff; }
#diferencial-clinico .fat-opportunity-cta { background: #fff !important; color: var(--fat-pink) !important; border-color: #fff !important; }
#diferencial-clinico .fat-opportunity-cta > span { color: inherit !important; }

/* Align document captions when file titles occupy two lines. */
.technical-downloads > a strong { display: flex; align-items: center; justify-content: center; min-height: 55px; }
