/* Consistent type scale and motion for the dedicated product pages. */
.product-portal {
  --portal-body: clamp(1rem, .9vw, 1.125rem);
  --portal-small: clamp(.875rem, .84rem + .1vw, 1rem);
  --portal-caption: clamp(.8125rem, .76rem + .12vw, .9375rem);
  --portal-h1: clamp(2.5rem, 3.55vw, 4.25rem);
  --portal-h2: clamp(2rem, 2.65vw, 3.125rem);
  --portal-h3: clamp(1.5rem, 1.8vw, 2.125rem);
  --portal-h4: clamp(1.25rem, 1.15rem + .35vw, 1.5rem);
  --portal-h5: clamp(1.125rem, 1.08rem + .2vw, 1.25rem);
  --portal-h6: 1rem;
  font-size: var(--portal-body);
  line-height: 1.65;
}

.product-portal .public-brand strong { font-size: 14px; }
.product-portal .public-brand small,
.product-portal .public-header nav a { font-size: var(--portal-caption); }
.product-portal .header-cta,
.product-portal .primary-link,
.product-portal .secondary-link { min-height: 48px; font-size: 14px; }
.product-portal .eyebrow { font-size: var(--portal-caption); line-height: 1.45; letter-spacing: .11em; }

.product-portal .product-hero { gap: clamp(30px, 4vw, 64px); }
.product-portal .product-hero h1 { max-width: 720px; font-size: var(--portal-h1); line-height: 1.06; }
.product-portal .hero-copy .portal-product-name { font-size: clamp(1.125rem, 1.25vw, 1.375rem); }
.product-portal .hero-copy > p { font-size: var(--portal-body); line-height: 1.72; }
.product-portal .hero-copy .portal-purchase-note { font-size: var(--portal-small); line-height: 1.65; }
.product-portal .portal-hero-capture figcaption { font-size: var(--portal-caption); }

.product-portal .proof-strip strong { font-size: clamp(1.125rem, 1.35vw, 1.5rem); }
.product-portal .proof-strip span { font-size: var(--portal-caption); line-height: 1.5; letter-spacing: .045em; }
.product-portal .section-heading h2,
.product-portal .status-intro h2,
.product-portal .faq h2 { font-size: var(--portal-h2); line-height: 1.12; }
.product-portal .section-heading > p,
.product-portal .status-intro > p { max-width: 42rem; font-size: var(--portal-body); line-height: 1.72; }

.product-portal .experience-panel { gap: clamp(24px, 3vw, 42px); }
.product-portal .experience-copy h3 { font-size: var(--portal-h3); line-height: 1.18; }
.product-portal .experience-copy > p { font-size: var(--portal-body); line-height: 1.72; }
.product-portal .experience-feature-label,
.product-portal .experience-copy li { font-size: var(--portal-small); line-height: 1.65; }
.product-portal .product-badge,
.product-portal .capture-proof { font-size: var(--portal-caption); line-height: 1.45; }
.product-portal .gallery-title { font-size: var(--portal-h4); line-height: 1.3; }
.product-portal .gallery-description { min-height: 3.5em; font-size: var(--portal-small); line-height: 1.6; }
.product-portal .capture-enlarge,
.product-portal .gallery-tabs button { min-height: 44px; font-size: var(--portal-small); }
.product-portal .capture-source { font-size: var(--portal-caption); }

.product-portal .module-tab strong { font-size: var(--portal-small); }
.product-portal .module-tab small { font-size: var(--portal-caption); line-height: 1.4; }
.product-portal .real-module-heading small { font-size: var(--portal-caption); }
.product-portal .real-module-heading h3 { font-size: var(--portal-h3); }
.product-portal .real-module-heading p,
.product-portal .module-tools li { font-size: var(--portal-small); line-height: 1.6; }
.product-portal .module-boundary { font-size: var(--portal-caption); line-height: 1.65; }

.product-portal .real-tour-tabs button { min-height: 52px; font-size: var(--portal-small); }
.product-portal .real-tour-detail h3 { font-size: var(--portal-h3); line-height: 1.2; }
.product-portal .real-tour-detail > div > span,
.product-portal .real-tour-detail figcaption { font-size: var(--portal-caption); }
.product-portal .real-tour-detail > div > p,
.product-portal .real-tour-steps p,
.product-portal .real-tour-detail .tour-boundary { font-size: var(--portal-small); line-height: 1.68; }
.product-portal .real-tour-steps strong { font-size: var(--portal-small); line-height: 1.5; }

.product-portal .download-product-card .platform-tag,
.product-portal .download-product-card .download-status { font-size: var(--portal-caption); line-height: 1.55; }
.product-portal .download-product-card h3,
.product-portal .platform-card h3 { font-size: var(--portal-h4); line-height: 1.3; }
.product-portal .download-product-card p,
.product-portal .platform-card p { font-size: var(--portal-small); line-height: 1.65; }
.product-portal .download-product-card .download-button { min-height: 48px; font-size: var(--portal-small); }
.product-portal .download-security { font-size: var(--portal-caption); line-height: 1.6; }

.product-portal .plan-assurances { gap: 12px; }
.product-portal .plan-assurances span { font-size: var(--portal-caption); line-height: 1.45; }
.product-portal .plans .plan-card { gap: 15px; padding: clamp(22px, 2vw, 30px); }
.product-portal .plans .plan-card .plan-topline { font-size: var(--portal-small); line-height: 1.45; }
.product-portal .plans .plan-card > strong { font-size: clamp(1.5rem, 2.15vw, 2.125rem); line-height: 1.2; }
.product-portal .plans .plan-card > small,
.product-portal .plans .plan-card li { font-size: var(--portal-small); line-height: 1.6; }
.product-portal .plans .plan-card .plan-footer b { font-size: clamp(1.5rem, 2vw, 2rem); }
.product-portal .plans .plan-card .plan-footer em { font-size: var(--portal-caption); }
.product-portal .plan-note,
.product-portal .order-count-note,
.product-portal .price-comparison-heading p,
.product-portal .comparison-caption { font-size: var(--portal-small); line-height: 1.65; }
.product-portal .price-comparison { font-size: var(--portal-caption); }
.product-portal .price-comparison th { font-size: var(--portal-caption); }

.product-portal .purchase-wizard > header h2 { font-size: var(--portal-h2); line-height: 1.14; }
.product-portal .purchase-wizard > header p,
.product-portal .panel-heading > p,
.product-portal .payment-details > p { font-size: var(--portal-small); line-height: 1.68; }
.product-portal .purchase-wizard > header aside small,
.product-portal .purchase-steps li,
.product-portal .purchase-wizard label,
.product-portal .invoice-note small { font-size: var(--portal-small); line-height: 1.5; }
.product-portal .purchase-wizard > header aside strong,
.product-portal .invoice-note strong { font-size: var(--portal-small); }
.product-portal .panel-heading h3 { font-size: var(--portal-h3); line-height: 1.2; }
.product-portal .wizard-actions button { min-height: 48px; font-size: var(--portal-small); }
.product-portal .status-security strong { font-size: var(--portal-small); }
.product-portal .status-security small { font-size: var(--portal-caption); }
.product-portal .status-panel label,
.product-portal .status-result > p { font-size: var(--portal-caption); line-height: 1.6; }
.product-portal .status-panel button[type="submit"] { min-height: 48px; font-size: var(--portal-caption); }
.product-portal .status-result h3 { font-size: var(--portal-h4); }
.product-portal .status-result dl { font-size: var(--portal-caption); }
.product-portal .status-result dt,
.product-portal .status-result dd { font-size: var(--portal-caption); line-height: 1.5; }

.product-portal .faq { max-width: 980px; margin-top: clamp(72px, 7vw, 112px); }
.product-portal .faq > .section-heading { margin-bottom: 28px; }
.product-portal .faq > .section-heading > p { margin-inline: auto; }
.product-portal .faq summary { min-height: 68px; font-size: var(--portal-small); line-height: 1.55; }
.product-portal .faq p { font-size: var(--portal-small); line-height: 1.72; }
.product-portal .site-footer { font-size: var(--portal-caption); }
.product-portal .solutions-section,
.product-portal .modules-section,
.product-portal .integration-section,
.product-portal .downloads-section,
.product-portal .plans-section { margin-block: 0 clamp(76px, 6.2vw, 112px); }
.product-portal .integration-section { margin-top: 0; }
.product-portal .proof-strip { margin-block: 28px clamp(76px, 6.2vw, 112px); }
.product-portal .purchase-wizard { margin-top: 0; }
.product-portal .status-section { margin-top: 0; margin-bottom: clamp(72px, 6vw, 104px); }

/* Most 14-inch laptops render around 1280–1500 CSS pixels wide. */
@media (min-width: 1200px) and (max-width: 1500px) {
  .product-portal { --portal-body: 1rem; --portal-h1: clamp(2.75rem, 3.55vw, 3.5rem); --portal-h2: clamp(2rem, 2.65vw, 2.625rem); }
}

/* Keep repeated scroll entry and exit motion subtle on the dedicated pages. */
.product-portal.motion-ready .reveal {
  transform: translateY(22px);
  transition-duration: .58s;
}
.product-portal .experience-panel,
.product-portal .module-demo,
.product-portal .real-tour-detail,
.product-portal .product-gallery figure,
.product-portal .plan-card,
.product-portal .purchase-panel,
.product-portal .faq details,
.product-portal .header-cta,
.product-portal .primary-link,
.product-portal .secondary-link,
.product-portal .experience-cta,
.product-portal .download-button,
.product-portal .wizard-actions button {
  transition-timing-function: cubic-bezier(.22, 1, .36, 1);
  transition-duration: .32s;
}
.product-portal .product-gallery figure,
.product-portal .real-tour-detail,
.product-portal .purchase-panel {
  transition: opacity .28s cubic-bezier(.22, 1, .36, 1), transform .28s cubic-bezier(.22, 1, .36, 1);
}
.product-portal .purchase-panel.portal-entering { opacity: 0; transform: translateY(10px); }
.product-portal .purchase-panel.portal-exiting { opacity: 0; transform: translateY(-8px); }
.product-portal .product-gallery.is-switching figure,
.product-portal .real-tour-detail.is-switching,
.product-portal .module-demo.module-exit-to-left,
.product-portal .module-demo.module-exit-to-right {
  opacity: 0;
  transform: translateX(-18px);
}
.product-portal .real-tour-detail.is-switching,
.product-portal .module-demo.module-exit-to-right { transform: translateX(18px); }
.product-portal .module-demo.module-enter-from-left { opacity: 0; transform: translateX(-24px); }
.product-portal .module-demo.module-enter-from-right { opacity: 0; transform: translateX(24px); }
.product-portal .faq details { transition-duration: .35s; }
.product-portal .faq summary::after { transition-duration: .3s; }

@media (max-width: 1100px) {
  .product-portal { --portal-body: 1rem; --portal-h1: clamp(2.5rem, 5vw, 3.5rem); --portal-h2: clamp(1.9rem, 4vw, 2.65rem); }
  .product-portal .public-header nav a { font-size: var(--portal-caption); }
  .product-portal .plans .plan-card { padding: 22px; }
}

@media (max-width: 760px) {
  .product-portal { --portal-body: 1rem; --portal-small: clamp(.875rem, .84rem + .1vw, 1rem); --portal-caption: clamp(.8125rem, .76rem + .12vw, .9375rem); --portal-h1: clamp(2.25rem, 8vw, 3.25rem); --portal-h2: clamp(1.875rem, 6.5vw, 2.5rem); --portal-h3: clamp(1.375rem, 5.5vw, 1.75rem); }
  .product-portal .section-heading { gap: 18px; margin-bottom: 25px; }
  .product-portal .section-heading > p { max-width: none; }
  .product-portal .experience-copy { max-width: none; }
  .product-portal .experience-copy > p,
  .product-portal .experience-copy li { font-size: 1rem; }
  .product-portal .real-module-heading { align-items: start; }
  .product-portal .faq summary { min-height: 64px; }
  .product-portal .portal-hero-capture figcaption { font-size: var(--portal-caption); }
}

@media (max-width: 420px) {
  .product-portal { --portal-h1: 2.25rem; --portal-h2: 1.875rem; }
  .product-portal .product-hero { gap: 24px; }
  .product-portal .proof-strip span { font-size: var(--portal-caption); }
  .product-portal .real-tour-tabs button { text-align: left; }
  .product-portal .status-section { padding: 22px 17px; }
  .product-portal .status-panel { padding: 18px 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .product-portal.motion-ready .reveal { opacity: 1; transform: none; }
  .product-portal .experience-panel,
  .product-portal .module-demo,
  .product-portal .real-tour-detail,
  .product-portal .product-gallery figure,
  .product-portal .plan-card,
  .product-portal .purchase-panel,
  .product-portal .faq details,
  .product-portal .faq summary::after { transition: none !important; }
}
