/* The supplied visual system, applied to existing server-rendered controls. */
.site-page { --pv-bg: #080c14; --pv-surface: #0e1520; --pv-border: #1e2a3b; }
.site-page :is(h1, h2, h3, p, a, button, label) { overflow-wrap: break-word; }
.site-page :is(input, select, button) { max-width: 100%; }
.site-page :is(.site-page-title, .page-title, main > h1, .hero h1) {
  font: 400 52px/1.08 var(--pv-font-display); color: var(--pv-text-strong);
  margin: 0 0 14px;
}
.site-page .page-lead { max-width: 740px; color: var(--pv-text-muted); font-size: 17px; line-height: 1.65; margin: 0 0 28px; }
.site-page .pv-h1 { font-size: 64px; }
.site-page .pv-hero__title { font-size: 88px; }
.site-page header.pv-header { position: sticky; z-index: 20; }
.site-page .pv-header__inner { min-height: 76px; }
.site-page .pv-footer { margin: 64px 0 0; padding: 44px 0 24px; text-align: left; font: 14px/1.6 var(--pv-font-body); }
.site-page .pv-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 36px; }
.site-page .pv-footer__grid > * { min-width: 0; }
.site-page .pv-footer__about p { margin: 16px 0 12px; color: var(--pv-text-muted); max-width: 300px; }
.site-page .pv-footer nav { display: flex; flex-direction: column; align-items: flex-start; }
.site-page .pv-footer h2 { font: 700 14px/1.4 var(--pv-font-body); margin: 8px 0 12px; color: var(--pv-text); }
.site-page .pv-footer a:not(.pv-brand) { font-size: 13px; color: var(--pv-text-muted); text-decoration: none; min-height: 36px; }
.site-page .pv-footer a:hover { color: var(--pv-accent); text-decoration: underline; }
.site-page .pv-footer [data-privacy-controls] { display: flex; flex-direction: column; align-items: flex-start; }
.site-page .pv-footer :is(#privacy-options, #ad-preferences-link) { font: inherit !important; font-size: 13px !important; padding: 8px 0 !important; margin: 0 !important; color: var(--pv-text-muted) !important; }
.site-page .pv-footer__bottom { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; border-top: 1px solid var(--pv-border); margin-top: 28px; padding-top: 24px; font-size: 12px; color: var(--pv-text-faint); }
.site-page .pv-footer__bottom > span { color: inherit; }
.site-page .pv-footer .pv-brand { min-height: 44px; }
.site-page :is(.btn, .pv-btn, .btn-toggle, .btn-push) { border-radius: 12px; }
.site-page :is(.btn, .pv-btn, button) { white-space: normal; }
.site-page :is([role='dialog'], .sp-modal, .sl-modal) { max-height: 90dvh; overflow-y: auto; }

.site-products .catalog-heading { display: grid; grid-template-columns: 1fr auto; padding-top: 36px; gap: 12px 24px; }
.site-products .catalog-heading h1 { grid-column: 1 / -1; }
.site-products .catalog-heading h1 span { color: var(--pv-accent); }
.site-products .catalog-heading p { margin: 0; font-size: 18px; line-height: 1.6; max-width: 700px; }
.site-products .catalog-heading a { margin: 0; min-height: 28px; font-size: 13px; }
.site-products .catalog-links { font-size: 13px; }
.site-products .bar { position: static; border: 0; background: transparent; padding: 12px 20px 20px; }
.site-products .bar-inner { gap: 12px; align-items: center; max-width: 1140px; }
.site-products .filter-field { flex: 1 1 145px; min-width: 0; display: grid; gap: 8px; }
.site-products .filter-field label { font-size: 13px; font-weight: 600; }
.site-products .filter-field > :is(select, button) { width: 100%; min-width: 0; min-height: 48px; background: var(--pv-surface-2); border-radius: 12px; }
.site-products .search-wrap { order: -2; }
.site-products .search-input { background: var(--pv-surface); min-height: 52px; border-radius: 14px; }
.site-products .sfb-logo:not([src]), .site-products .sfb-logo[src=''] { display: none; }
.site-products .language-filters { order: -1; flex-basis: 100%; margin: 0; padding-bottom: 6px; }
.site-products .language-filters button { min-height: 38px; min-width: 66px; border-radius: 10px; }
.site-products .bar-inner > :is(select, .set-filter-btn, .store-filter-btn) { min-height: 44px; border-radius: 12px; background: var(--pv-surface); }
.site-products .result-count { order: 1; flex: 1; padding-top: 0; border: 0; min-height: 44px; display: flex; align-items: center; }
.site-products .catalog-stock { order: 2; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; min-height: 44px; }
.site-products .bar-inner::after { content: ''; order: 0; flex-basis: 100%; height: 0; }
.site-products .bar-inner > :is(#pushBtn, #pushHint, .spp-clear) { order: 3; }
.site-products .catalog-stock input { accent-color: var(--pv-accent); width: 18px; height: 18px; }
.site-products .main { padding-top: 12px; }
.site-products .card { border-radius: 14px; }
.site-products .card-img-link { margin: 12px 12px 0; border-radius: 12px; overflow: hidden; }
.site-products .card-img, .site-products .card-img-placeholder { aspect-ratio: 1.15; height: auto; width: 100%; padding: 20px; }
.site-products .card-body { display: contents; }
.site-products .card-name { order: 1; font-size: 16px; line-height: 1.5; padding-right: 0; margin: 16px; }
.site-products .store-rows { order: 2; }
.site-products .watch-btn { order: 3; position: static; width: calc(100% - 24px); min-height: 44px; height: auto; border-radius: 10px; padding: 10px; margin: 4px 12px 12px; gap: 8px; font-size: 13px; font-weight: 600; }
.site-products .watch-btn svg { flex-shrink: 0; }
.site-products .watch-btn .watch-off { display: inline; }
.site-products .watch-btn .watch-on, .site-products .watch-btn.active .watch-off { display: none; }
.site-products .watch-btn.active .watch-on { display: inline; }
.site-products .price-history-btn { order: 4; position: static; align-self: flex-end; width: 44px; height: 44px; margin: -8px 12px 8px; }
.site-products .store-row { border-color: var(--pv-border); border-radius: 8px; }
.site-products .store-row-price { font-size: 20px; }
.site-products .store-row-exp-item { min-height: 44px; }

.site-settings .main { max-width: 1180px; }
.site-settings .account-layout { display: grid; grid-template-columns: 248px minmax(0, 1fr); gap: 32px; }
.site-settings .account-sidebar { align-self: start; position: sticky; top: var(--site-header-offset, 180px); display: flex; flex-direction: column; gap: 4px; border: 1px solid var(--pv-border); border-radius: 14px; background: var(--pv-surface); padding: 12px; }
.site-settings .account-sidebar a { color: var(--pv-text-muted); text-decoration: none; padding: 12px 14px; min-height: 44px; border-radius: 8px; font-size: 14px; }
.site-settings .account-sidebar a:is(:hover, [aria-current]) { color: var(--pv-accent); background: #4fc3f714; }
.site-settings .account-content { min-width: 0; }
.site-settings .section { margin-bottom: 0; padding: 28px 0; scroll-margin-top: 24px; }
.site-settings .section:first-child { padding-top: 4px; }
.site-settings .section-title { font-size: 20px; }
.site-settings .account-email { overflow-wrap: anywhere; margin: 10px 0 14px; color: var(--pv-text-muted); }
.site-settings a.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; text-decoration: none; }
.site-settings #storeList label { min-height: 40px; align-items: center; }
.site-notifications .main { max-width: 1020px; }
.site-notifications .accordion-section { border-radius: 14px; background: var(--pv-surface); }
.site-notifications .accordion-title { font-size: 18px; }
.site-notifications .accordion-summary { min-height: 72px; }
.site-notifications .guide-banner { margin-bottom: 28px; }
.site-feed :is(.page-top, .main) { max-width: 1180px; }
.site-feed .page-top { padding-top: 36px; }
.site-feed .page-sub { font-size: 16px; line-height: 1.65; }
.site-feed .feed-item { border-radius: 14px; }
.site-feed .feed-game-tab { min-height: 44px; border-radius: 10px; }

.site-premium .main { max-width: 1180px; padding: 36px 20px 56px; }
.site-premium .hero { text-align: left; margin-bottom: 20px; padding-bottom: 16px; }
.site-premium .hero-badge { display: none; }
.site-premium .hero p { margin-left: 0; max-width: 700px; }
.site-premium .plans { gap: 18px; }
.site-premium .plan { border-radius: 20px; padding: 24px; }
.site-premium .plan-name { font: 700 22px/1.3 var(--pv-font-body); }
.site-premium .plan-price { margin-bottom: 16px; }
.site-premium .plan-price .amount { font-size: 36px; font-weight: 700; }
.site-premium .trial-plan-label { font-size: 14px; margin: 8px 0; }
.site-premium .trial-plan-terms { margin: 0 0 16px; }
.site-premium .plan-features { gap: 8px; margin-bottom: 20px; }
.site-premium .plan .btn { min-height: 48px; }
.site-premium .plan[style] { background: var(--pv-surface) !important; }
.site-premium .faq { max-width: 840px; margin: 44px auto 0; }
.site-premium .faq-q { display: list-item; cursor: pointer; font-size: 16px; padding: 4px 0; }
.site-premium .faq-a { font-size: 14px; padding-top: 12px; }
.site-premium #trialOffer { scroll-margin-top: 24px; }
.site-product .shell { max-width: 1180px; }
.site-product .detail-panel h1 { font: 400 42px/1.1 var(--pv-font-display); }
.site-product .image-panel { border-radius: 20px; }
.site-product .product-hero { gap: 32px; }
.site-product .panel-title { font-size: 20px; }
.site-product :is(.offers-panel, .history-panel) { border-radius: 14px; }
.site-product .offer-row { min-width: 0; }

.site-info main { max-width: 1180px; padding: 36px 20px 56px; margin: 0 auto; }
.site-info main > :is(p, ul, ol) { max-width: 780px; font-size: 16px; line-height: 1.8; }
.site-info main > p.lead { font-size: 18px; }
.site-info main > .eyebrow { font-size: 12px; }
.site-info main > .byline { font-size: 13px; }
.site-info main h2 { font: 700 22px/1.4 var(--pv-font-body); margin-top: 32px; }
.site-info main h3 { font: 700 18px/1.4 var(--pv-font-body); }
.site-info main section { background: transparent; border: 0; border-bottom: 1px solid var(--pv-border); border-radius: 0; padding: 24px 0; margin: 0; scroll-margin-top: 24px; }
.site-info main section > h2:first-child { margin-top: 0; }
.site-info .byline { color: var(--pv-text-muted); }
.site-info .article-toc { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; border-left: 2px solid var(--pv-accent); padding-left: 20px; margin: 24px 0; }
.site-info .article-toc a { min-height: 36px; display: inline-flex; align-items: center; font-size: 14px; }
.site-page .pv-nav { flex-wrap: nowrap; }
.site-info main a { color: var(--pv-accent); }
.site-info main :is(table, pre) { max-width: 100%; }
.site-info .card { border-radius: 14px; box-shadow: none; background: var(--pv-surface); }
.site-legal main { max-width: 960px; }
.site-legal main > :is(p, ul, ol) { max-width: none; }
.site-legal main h2 { border-top: 1px solid var(--pv-border); padding-top: 24px; }
.site-guide main { max-width: 960px; }
.site-login .box { border-radius: 20px; margin-top: 48px; padding: 32px; background: var(--pv-surface); }
.site-login .box .logo { font: 400 36px/1.2 var(--pv-font-display); }
.site-login .box input { border-radius: 10px; }
.site-page :is(#trialOffer, .section[id], main [id], #hovedinnhold) { scroll-margin-top: var(--site-header-offset, 180px); }

@media (max-width: 960px) {
  .site-page .pv-footer__grid { grid-template-columns: 1.4fr 1fr; gap: 28px; }
  .site-settings .account-layout { grid-template-columns: 200px minmax(0, 1fr); gap: 24px; }
}
@media (max-width: 760px) {
  .site-page .pv-h1 { font-size: 44px; }
  .site-page .pv-hero__title { font-size: 52px; }
  .site-page :is(.site-page-title, .page-title, main > h1, .hero h1) { font-size: 40px; }
  .site-settings .account-layout { display: block; }
  .site-settings .account-sidebar { position: static; display: flex; flex-direction: row; overflow-x: auto; margin-bottom: 28px; border-radius: 12px; }
  .site-settings .account-sidebar a { white-space: nowrap; flex-shrink: 0; }
  .site-premium .plan { padding: 24px; }
  .site-product .detail-panel h1 { font-size: 34px; }
}
@media (max-width: 540px) {
  .site-page .pv-header__inner { min-height: 68px; }
  .site-page .pv-footer__grid { gap: 24px 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-page .pv-footer__about { grid-column: 1 / -1; }
  .site-page .pv-footer { margin-top: 40px; }
  .site-products .catalog-heading { grid-template-columns: 1fr; padding-top: 28px; }
  .site-products .catalog-heading h1 { font-size: 40px; }
  .site-products .catalog-heading p { font-size: 14px; }
  .site-products .bar { padding: 12px; }
  .site-products .language-filters { grid-column: 1 / -1; }
  .site-products .bar-inner .catalog-stock { grid-column: 2; font-size: 12px; }
  .site-products .bar-inner #resultCount { grid-column: 1; font-size: 12px; }
  .site-products .bar-inner::after { display: none; }
  .site-products .card-name { font-size: 14px; margin: 12px; }
  .site-products .watch-btn { font-size: 12px; padding: 8px; }
  .site-products .card-img { padding: 12px; }
  .site-products .store-row-price { font-size: 18px; }
  .site-products .language-filters button { min-width: 0; }
  .site-settings .main, .site-notifications .main { padding: 28px 16px 40px; }
  .site-notifications .accordion-summary { padding: 16px; }
  .site-info main { padding: 28px 20px 40px; }
}
.site-settings .account-request { display: inline-flex; align-items: center; min-height: 44px; }
