@import url("../shared/nioret-theme.css");

.product-hero-grid > *,
.commerce-row > *,
.media-bar > *,
.trust-grid > *,
.section-heading > *,
.problem-proof > *,
.problem-points > *,
.workflow-grid > *,
.gallery-header > *,
.gallery-caption > *,
.benefit-layout > *,
.benefit-list article > *,
.audience-grid > *,
.details-grid > *,
.license-price > *,
.faq-grid > *,
.faq-list summary > *,
.related-card > *,
.final-grid > * { min-width: 0; }

.product-hero p,
.product-hero span,
.trust-grid strong,
.detail-panel,
.faq-list summary,
.related-card { overflow-wrap: anywhere; }

.product-hero { position: relative; isolation: isolate; min-height: 760px; padding: calc(var(--header-height) + 72px) 0 88px; overflow: hidden; background: radial-gradient(circle at 72% 30%, rgba(33, 124, 243, .18), transparent 31%), radial-gradient(circle at 91% 58%, rgba(121, 104, 255, .13), transparent 29%), linear-gradient(135deg, #030810 0%, #061426 62%, #08111f 100%); }
.product-hero::before { position: absolute; z-index: -1; inset: 0; content: ""; opacity: .2; background-image: linear-gradient(rgba(75, 215, 255, .12) 1px, transparent 1px), linear-gradient(90deg, rgba(75, 215, 255, .12) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(90deg, transparent, black 45%, black); }
.product-hero-grid { display: grid; grid-template-columns: minmax(0, .83fr) minmax(520px, 1.17fr); gap: clamp(52px, 7vw, 100px); align-items: center; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 26px; color: #6f879d; font-size: .68rem; font-weight: 730; letter-spacing: .08em; text-transform: uppercase; }
.breadcrumb a { color: #8fb1ce; text-decoration: none; }
.breadcrumb a:hover { color: white; }
.product-identity { display: flex; align-items: center; gap: 18px; margin-bottom: 27px; }
.product-icon { width: 82px; height: 82px; border-radius: 18px; box-shadow: 0 17px 38px rgba(0, 0, 0, .34); }
.product-family { display: grid; grid-template-columns: 48px auto; gap: 12px; align-items: center; }
.product-family img { width: 48px; height: auto; }
.product-family span { display: grid; color: #c2d8eb; font-size: .68rem; font-weight: 780; letter-spacing: .08em; line-height: 1.35; text-transform: uppercase; }
.product-family small { color: #637b91; font-size: .56rem; letter-spacing: .05em; }
.product-hero h1 { max-width: 690px; margin-bottom: 24px; font-size: clamp(3.2rem, 5.3vw, 5.7rem); letter-spacing: -.058em; }
.hero-outcome { max-width: 620px; margin-bottom: 24px; color: #c1d5e8; font-size: clamp(1.14rem, 1.7vw, 1.42rem); line-height: 1.55; }
.hero-fit { max-width: 580px; margin-bottom: 34px; color: #7f97ad; font-size: .92rem; }
.commerce-row { display: flex; align-items: center; flex-wrap: wrap; gap: 22px 30px; margin-bottom: 28px; }
.price-block { display: grid; }
.price-block strong { color: white; font-size: 2.05rem; line-height: 1; }
.price-block span { margin-top: 7px; color: #7f96ac; font-size: .72rem; }
.status-badge { display: inline-flex; align-items: center; gap: 9px; min-height: 35px; padding: 0 12px; border: 1px solid rgba(75, 215, 255, .25); border-radius: 999px; color: #a8dffa; background: rgba(18, 109, 174, .12); font-size: .65rem; font-weight: 790; letter-spacing: .055em; text-transform: uppercase; }
.status-badge::before { width: 7px; height: 7px; content: ""; border-radius: 50%; background: #4bd7ff; box-shadow: 0 0 12px rgba(75, 215, 255, .8); }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; }
.hero-support { min-height: 44px; color: #a7c1d8; font-size: .74rem; font-weight: 730; text-decoration: none; }
.hero-support:hover { color: white; }

.hero-media { position: relative; margin: 0; padding: 30px; border: 1px solid rgba(136, 185, 229, .22); border-radius: 9px; background: linear-gradient(145deg, rgba(13, 34, 59, .82), rgba(4, 12, 23, .88)); box-shadow: 0 38px 80px rgba(0, 0, 0, .38); }
.hero-media::before { position: absolute; inset: -1px; content: ""; pointer-events: none; border-radius: inherit; box-shadow: inset 0 1px rgba(255, 255, 255, .04), 0 0 56px rgba(33, 124, 243, .1); }
.media-bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 19px; color: #8ca6bd; font-size: .61rem; font-weight: 760; letter-spacing: .095em; text-transform: uppercase; }
.media-bar span:first-child::before { display: inline-block; width: 7px; height: 7px; margin-right: 9px; content: ""; border-radius: 50%; background: #48d39a; box-shadow: 0 0 11px rgba(72, 211, 154, .6); }
.media-window { display: grid; min-height: 480px; place-items: center; padding: 24px; overflow: hidden; border: 1px solid rgba(153, 192, 225, .14); border-radius: 5px; background: #e8eef3; }
.media-window img { width: auto; max-height: 610px; object-fit: contain; filter: drop-shadow(0 19px 32px rgba(3, 15, 28, .25)); }
.hero-media-landscape .media-window { min-height: 0; aspect-ratio: 1440 / 906; padding: 18px; }
.hero-media-landscape .media-window img { width: 100%; max-height: none; }
.hero-media-product .media-window { min-height: 0; aspect-ratio: 1200 / 630; padding: 0; background: #f6f3ee; }
.hero-media-product .media-window img { width: 100%; max-height: none; }
.hero-media figcaption { display: flex; justify-content: space-between; gap: 20px; margin-top: 16px; color: #7890a6; font-size: .67rem; }
.hero-media figcaption strong { color: #b9d0e4; }

.trust-strip { background: #081a2f; border-block: 1px solid rgba(151, 188, 224, .15); }
.trust-grid { display: grid; grid-template-columns: repeat(5, 1fr); }
.trust-grid div { min-height: 106px; padding: 24px 20px; border-right: 1px solid rgba(151, 188, 224, .13); }
.trust-grid div:first-child { border-left: 1px solid rgba(151, 188, 224, .13); }
.trust-grid span { display: block; margin-bottom: 7px; color: #637c93; font-size: .58rem; font-weight: 780; letter-spacing: .11em; text-transform: uppercase; }
.trust-grid strong { color: #d9e9f8; font-size: .78rem; }

.light-section { color: var(--nioret-muted); background: var(--nioret-light); }
.light-alt { background: var(--nioret-light-alt); }
.light-section h2, .light-section h3 { color: var(--nioret-ink); }
.section-heading { display: grid; grid-template-columns: minmax(0, .78fr) minmax(360px, 1fr); gap: clamp(45px, 8vw, 120px); align-items: end; margin-bottom: 62px; }
.section-heading h2 { max-width: 720px; margin-bottom: 0; font-size: clamp(2.4rem, 4.4vw, 4.4rem); letter-spacing: -.052em; }
.section-heading > p { max-width: 620px; margin-bottom: 4px; font-size: 1.02rem; }
.problem-proof { display: grid; grid-template-columns: minmax(0, .9fr) minmax(440px, 1.1fr); gap: clamp(54px, 9vw, 130px); align-items: center; }
.problem-copy h2 { margin-bottom: 28px; font-size: clamp(2.3rem, 3.7vw, 3.8rem); letter-spacing: -.045em; }
.problem-copy > p { font-size: 1.04rem; }
.problem-points { display: grid; margin-top: 34px; border-top: 1px solid #c8d5de; }
.problem-points div { display: grid; grid-template-columns: 150px 1fr; gap: 22px; padding: 20px 0; border-bottom: 1px solid #c8d5de; }
.problem-points strong { color: #10283d; font-size: .78rem; }
.problem-points span { color: #667d91; font-size: .81rem; }
.proof-note { margin: 0; padding: 38px; border-radius: 8px; background: #fff; border: 1px solid #d6e0e7; box-shadow: 0 24px 60px rgba(12, 34, 55, .1); }
.proof-note img { width: 100%; max-height: 590px; object-fit: contain; }
.proof-note figcaption { margin-top: 18px; color: #6c8192; font-size: .7rem; }
.proof-checks h3 { margin: 0 0 28px; color: #10283d; font-size: clamp(1.6rem, 2.6vw, 2.35rem); letter-spacing: -.035em; }
.proof-checks ul { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.proof-checks li { padding: 18px 0; border-top: 1px solid #d6e0e7; color: #60788d; font-size: .86rem; }

.workflow-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.workflow-step { position: relative; min-height: 255px; padding: 34px; overflow: hidden; border: 1px solid #cfdae2; border-radius: 7px; background: rgba(255, 255, 255, .62); transition: transform var(--motion-fast), border-color var(--motion-fast), box-shadow var(--motion-fast); }
.workflow-step::before { display: block; width: 44px; height: 3px; margin-bottom: 52px; content: ""; background: linear-gradient(90deg, var(--nioret-blue), var(--nioret-cyan)); }
.workflow-step:hover { transform: translateY(-3px); border-color: #aabfd0; box-shadow: 0 18px 36px rgba(15, 43, 68, .09); }
.workflow-step h3 { margin-bottom: 15px; font-size: 1.25rem; }
.workflow-step p { margin: 0; font-size: .86rem; }

.gallery-section { background: linear-gradient(145deg, #061120, #081b31 66%, #0a1426); }
.gallery-header { display: flex; align-items: end; justify-content: space-between; gap: 34px; margin-bottom: 46px; }
.gallery-header h2 { max-width: 780px; margin-bottom: 0; font-size: clamp(2.4rem, 4.4vw, 4.4rem); letter-spacing: -.052em; }
.gallery-controls { display: flex; gap: 10px; }
.gallery-button { display: grid; width: 48px; height: 48px; place-items: center; border: 1px solid rgba(151, 188, 224, .28); border-radius: 5px; color: white; background: rgba(255, 255, 255, .035); cursor: pointer; }
.gallery-button:hover { border-color: rgba(75, 215, 255, .66); background: rgba(75, 215, 255, .07); }
.gallery-viewport { overflow: hidden; }
.gallery-track { display: flex; transform: translate3d(var(--gallery-offset, 0%), 0, 0); transition: transform 560ms var(--motion-ease); will-change: transform; }
.gallery-slide { min-width: 100%; margin: 0; }
.gallery-slide:not(.is-active) { pointer-events: none; }
.gallery-frame { min-height: 600px; display: grid; place-items: center; padding: clamp(24px, 4vw, 52px); border: 1px solid rgba(151, 188, 224, .2); border-radius: 8px; background: #dfe7ed; }
.gallery-frame img { max-height: 680px; width: auto; object-fit: contain; filter: drop-shadow(0 25px 35px rgba(4, 16, 29, .22)); }
.gallery-caption { display: grid; grid-template-columns: 180px 1fr auto; gap: 24px; padding: 22px 2px 0; color: #7f97ae; font-size: .76rem; }
.gallery-caption strong { color: #d8e7f5; }
.gallery-position { color: #4bd7ff; font-weight: 780; }

.benefit-layout { display: grid; grid-template-columns: minmax(300px, .7fr) minmax(0, 1.3fr); gap: clamp(60px, 10vw, 150px); }
.benefit-intro { position: sticky; top: calc(var(--header-height) + 42px); align-self: start; }
.benefit-intro h2 { font-size: clamp(2.4rem, 4.2vw, 4rem); letter-spacing: -.05em; }
.benefit-list { border-top: 1px solid #c2d0da; }
.benefit-list article { display: grid; grid-template-columns: minmax(170px, .55fr) minmax(0, 1.45fr); gap: 34px; padding: 30px 0; border-bottom: 1px solid #c2d0da; transition: color var(--motion-fast) ease, background var(--motion-fast) ease, box-shadow var(--motion-fast) ease, transform var(--motion-fast) ease; }
.benefit-list h3 { margin: 0; font-size: 1rem; }
.benefit-list p { margin: 0; font-size: .86rem; }
.benefit-list.is-visible article.is-current { background: linear-gradient(90deg, rgba(33, 124, 243, .065), transparent 72%); box-shadow: inset 3px 0 #217cf3; transform: translateX(6px); }
.benefit-list.is-visible article.is-current h3 { color: #0f62b6; }

.audience-section { position: relative; overflow: hidden; background: #061322; }
.audience-section::after { position: absolute; right: -180px; bottom: -230px; width: 560px; height: 560px; content: ""; border-radius: 50%; background: radial-gradient(circle, rgba(121, 104, 255, .19), transparent 67%); }
.audience-grid { position: relative; z-index: 1; display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(55px, 10vw, 150px); align-items: start; }
.audience-grid h2 { font-size: clamp(2.4rem, 4.2vw, 4rem); letter-spacing: -.05em; }
.audience-list { display: grid; gap: 2px; }
.audience-list p { margin: 0; padding: 25px 28px; border-left: 2px solid rgba(75, 215, 255, .55); color: #b7cce0; background: rgba(255, 255, 255, .025); }

.details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.detail-panel { padding: clamp(32px, 4vw, 50px); border: 1px solid #ccd8e0; border-radius: 7px; background: rgba(255, 255, 255, .65); }
.detail-panel h2 { margin-bottom: 28px; font-size: 1.75rem; }
.detail-panel ul { margin: 0; padding: 0; list-style: none; }
.detail-panel li { padding: 13px 0; border-bottom: 1px solid #d6e0e7; font-size: .83rem; }
.detail-panel li:last-child { border-bottom: 0; }
.license-price { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.license-price strong { color: #0b2237; font-size: 2.6rem; line-height: 1; }
.license-price span { color: #667d90; font-size: .72rem; text-align: right; }
.license-note { padding-top: 22px; border-top: 1px solid #d4dfe6; font-size: .84rem; }

.faq-grid { display: grid; grid-template-columns: minmax(260px, .62fr) minmax(0, 1.38fr); gap: clamp(55px, 10vw, 150px); }
.faq-grid h2 { font-size: clamp(2.3rem, 4vw, 3.8rem); letter-spacing: -.05em; }
.faq-list { border-top: 1px solid rgba(151, 188, 224, .2); }
.faq-list details { border-bottom: 1px solid rgba(151, 188, 224, .2); }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 78px; padding: 20px 2px; color: #dceafb; font-weight: 720; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { position: relative; width: 20px; height: 20px; flex: 0 0 auto; }
.faq-list summary span::before, .faq-list summary span::after { position: absolute; top: 9px; left: 2px; width: 16px; height: 2px; content: ""; background: var(--nioret-cyan); transition: transform var(--motion-fast); }
.faq-list summary span::after { transform: rotate(90deg); }
.faq-list details[open] summary span::after { transform: rotate(0); }
.faq-list details p { max-width: 760px; padding: 0 40px 24px 2px; color: #849bb1; }

.related-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.related-card { display: grid; grid-template-columns: 72px 1fr auto; gap: 20px; align-items: center; min-height: 146px; padding: 28px; border: 1px solid #cad6df; border-radius: 7px; color: inherit; background: rgba(255, 255, 255, .7); text-decoration: none; transition: transform var(--motion-fast), border-color var(--motion-fast), box-shadow var(--motion-fast); }
.related-card:hover { transform: translateY(-3px); border-color: #9fb5c7; box-shadow: 0 18px 38px rgba(15, 43, 68, .1); }
.related-card img { width: 72px; height: 72px; border-radius: 15px; }
.related-card h3 { margin: 0 0 7px; font-size: 1.12rem; }
.related-card p { margin: 0; color: #687f91; font-size: .74rem; }
.related-card > span { color: #146fcf; font-size: 1.25rem; }

[data-motion-group].is-visible .workflow-step:hover,
[data-motion-group].is-visible .related-card:hover { transform: translateY(-3px); }

.final-cta { position: relative; overflow: hidden; background: linear-gradient(116deg, #0863d8 0%, #177fdc 52%, #5b57de 100%); }
.final-cta::before { position: absolute; inset: 0; content: ""; opacity: .26; background: radial-gradient(circle at 82% 28%, rgba(75, 215, 255, .58), transparent 27%), linear-gradient(110deg, transparent, rgba(255, 255, 255, .09), transparent); background-size: auto, 220% 100%; animation: nioret-cta-light 12s ease-in-out infinite; }
.final-grid { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 45px; align-items: center; }
.final-grid h2 { max-width: 800px; margin-bottom: 15px; font-size: clamp(2.4rem, 4.7vw, 4.7rem); letter-spacing: -.055em; }
.final-grid p { margin: 0; color: #d8ecff; }
.final-grid .button { color: #0b315a; background: white; box-shadow: 0 17px 40px rgba(4, 34, 81, .22); }
@keyframes nioret-cta-light { 0%, 100% { background-position: 50% 50%, 0 0; } 50% { background-position: 57% 47%, 100% 0; } }

@media (max-width: 1080px) {
  .product-hero-grid { grid-template-columns: 1fr; }
  .product-hero-copy { max-width: 780px; }
  .hero-media { max-width: 840px; }
  .trust-grid { grid-template-columns: repeat(3, 1fr); }
  .trust-grid div:nth-child(4) { border-left: 1px solid rgba(151, 188, 224, .13); }
  .problem-proof, .benefit-layout, .audience-grid { grid-template-columns: 1fr; }
  .benefit-intro { position: static; }
}

@media (max-width: 800px) {
  .section-heading, .faq-grid, .details-grid, .final-grid { grid-template-columns: 1fr; }
  [data-reveal="left"], [data-reveal="right"] { transform: translateY(22px); }
  [data-reveal].is-visible { transform: none; }
  .workflow-grid { grid-template-columns: 1fr; }
  [data-motion-group="deal"] [data-motion-card]:nth-child(n) { --deal-x: 0px; --deal-rotate: 0deg; }
  .workflow-step { min-height: 0; }
  .workflow-step::before { margin-bottom: 32px; }
  .gallery-frame { min-height: 440px; }
  .gallery-caption { grid-template-columns: 1fr auto; }
  .gallery-caption span:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
  .related-grid { grid-template-columns: 1fr; }
  .final-grid .button { justify-self: start; }
}

@media (max-width: 620px) {
  .product-hero { min-height: 0; padding-top: calc(var(--header-height) + 38px); }
  .product-hero-grid { gap: 28px; }
  .breadcrumb { margin-bottom: 18px; }
  .product-identity { align-items: center; gap: 14px; margin-bottom: 20px; }
  .product-icon { width: 64px; height: 64px; border-radius: 15px; }
  .product-family { grid-template-columns: 40px auto; gap: 9px; }
  .product-family img { width: 40px; }
  .product-hero h1 { margin-bottom: 18px; font-size: clamp(2.8rem, 13vw, 3.55rem); }
  .hero-outcome { margin-bottom: 20px; font-size: 1.04rem; }
  .hero-fit { display: none; }
  .commerce-row { gap: 12px 18px; margin-bottom: 22px; }
  .hero-actions .button { width: 100%; }
  .hero-support { display: none; }
  .hero-media { padding: 16px; }
  .media-window { min-height: 340px; padding: 12px; }
  .hero-media-landscape .media-window { min-height: 0; padding: 10px; }
  .hero-media figcaption { flex-direction: column; gap: 3px; }
  .trust-grid { grid-template-columns: 1fr 1fr; }
  .trust-grid div, .trust-grid div:nth-child(4) { border-left: 0; }
  .trust-grid div:nth-child(odd) { border-left: 1px solid rgba(151, 188, 224, .13); }
  .problem-points div, .benefit-list article { grid-template-columns: 1fr; gap: 8px; }
  .proof-note { padding: 20px; }
  .gallery-header { align-items: flex-start; flex-direction: column; }
  .gallery-frame { min-height: 350px; padding: 16px; }
  .gallery-caption { display: flex; flex-wrap: wrap; }
  .gallery-caption span:nth-child(2) { flex-basis: 100%; }
  .related-card { grid-template-columns: 64px 1fr; }
  .related-card > span { display: none; }
  .final-grid .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .gallery-track { transition: none; }
  .final-cta::before { animation: none; }
  .workflow-step:hover, .related-card:hover, .benefit-list.is-visible article.is-current { transform: none; }
}
