/* Scoped to added integration blocks — historical QA identification marker.
   Portal visual revision: every rule below requires the bridge's SPb opt-in. */
html[data-pp-portal="spb"] .pp-integration {
  box-sizing: border-box;
  width: 100%;
  max-width: 42rem;
  margin: 1.25rem 0;
  padding: 1rem 1.125rem;
  border: 1px solid #d9e1e7;
  border-radius: 1rem;
  background: #fff;
  color: #0b2233;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-align: left;
  overflow-wrap: anywhere;
}
html[data-pp-portal="spb"] .pp-integration .pp-integration__cta {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  max-width: 100%;
  padding: .75rem 1.125rem;
  border: 2px solid transparent;
  border-radius: .75rem;
  background: #ff6b4a;
  color: #0b2233;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
}
html[data-pp-portal="spb"] .pp-integration .pp-integration__cta:hover { background: #ff886e; color: #0b2233; }
html[data-pp-portal="spb"] .pp-integration .pp-integration__cta:focus-visible,
html[data-pp-portal="spb"] .pp-integration .pp-integration__return:focus-visible { outline: 3px solid #164d6b; outline-offset: 4px; }
html[data-pp-portal="spb"] .pp-integration .pp-integration__note { margin: .75rem 0 0; color: #526575; font-size: 1rem; line-height: 1.6; }
html[data-pp-portal="spb"] .pp-integration .pp-integration__return { display: inline-flex; align-items: center; min-height: 44px; padding: .75rem 0; color: #164d6b; text-decoration: underline; font-weight: 700; }
@media (max-width: 480px) {
  html[data-pp-portal="spb"] .pp-integration { padding: 1rem; }
  html[data-pp-portal="spb"] .pp-integration .pp-integration__cta { width: 100%; }
}

/* Shared tokens. Premium templates inherit only the namespaced tokens. */
html[data-pp-portal="spb"] {
  --pp-paper: #f7f8fa;
  --pp-navy: #0b2233;
  --pp-link: #164d6b;
  --pp-coral: #ff6b4a;
  --pp-muted: #526575;
  --pp-line: #d9e1e7;
}
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) {
  --c-surface: #f7f8fa;
  --c-foam: #edf2f6;
  --c-ink: #0b2233;
  --c-muted: #526575;
  --c-ocean: #164d6b;
  --c-display: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --c-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --c-radius: 16px;
  --c-radius-sm: 10px;
  background: var(--pp-paper);
  color: var(--pp-navy);
  font-family: var(--c-body);
  font-size: 16px;
  line-height: 1.6;
}
/* Shared portal chrome, including the separate partner template. */
html[data-pp-portal="spb"] :is(.hdr, .partner-topbar) {
  top: 0;
  width: 100%;
  max-width: none;
  min-height: 76px;
  margin: 0;
  padding-inline: max(24px, calc((100% - 1180px) / 2));
  border: 0;
  border-bottom: 1px solid var(--pp-line);
  border-radius: 0;
  background: #fff;
  color: var(--pp-navy);
  box-shadow: none;
}
html[data-pp-portal="spb"] :is(.hdr .logo, .partner-brand) {
  color: var(--pp-navy);
  font: 800 1.25rem/1.2 system-ui, sans-serif;
  letter-spacing: -.035em;
  min-height: 44px;
}
html[data-pp-portal="spb"] .hdr .logo svg path { stroke: var(--pp-navy); }
html[data-pp-portal="spb"] .hdr .logo svg circle { fill: var(--pp-coral); }
html[data-pp-portal="spb"] :is(.hdr .logo-o, .partner-brand em) { color: #ba3e28; }
html[data-pp-portal="spb"] :is(.nav-link, .partner-back, .city-switcher-btn) {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--pp-navy);
  font-size: .9375rem;
  border-radius: 8px;
}
html[data-pp-portal="spb"] .nav-link { padding: 10px 12px; }
html[data-pp-portal="spb"] :is(.nav-link:hover, .nav-link.is-active, .city-switcher-btn) { background: #edf2f6; color: var(--pp-navy); }
html[data-pp-portal="spb"] :is(.city-switcher-menu, .nav.is-open) { background: #fff; border-color: var(--pp-line); color: var(--pp-navy); }
html[data-pp-portal="spb"] .city-switcher-item { color: var(--pp-navy); min-height: 44px; }
html[data-pp-portal="spb"] .city-switcher-item-count { background: #edf2f6; color: var(--pp-link); }
html[data-pp-portal="spb"] .hdr-burger { min-width: 44px; min-height: 44px; color: var(--pp-navy); }
html[data-pp-portal="spb"] .hdr-burger span { background: var(--pp-navy); }
html[data-pp-portal="spb"] .partner-label { color: var(--pp-muted); }
html[data-pp-portal="spb"] .partner-back { border-color: var(--pp-line); }
html[data-pp-portal="spb"] :is(.hdr a, .hdr button, .partner-topbar a):focus-visible { outline: 3px solid var(--pp-link); outline-offset: 3px; }

/* React home: inline header colors require explicit overrides. */
html[data-pp-portal="spb"][data-pp-page="home"] header.fixed {
  top: 0;
  width: 100%;
  max-width: none;
  border-radius: 0;
  background: #fff !important;
  color: var(--pp-navy);
  box-shadow: none !important;
  border-color: var(--pp-line) !important;
}
html[data-pp-portal="spb"][data-pp-page="home"] header.fixed > div { max-width: 1228px; margin-inline: auto; }
html[data-pp-portal="spb"][data-pp-page="home"] header.fixed :is(a, button) { min-height: 44px; color: var(--pp-navy) !important; }
html[data-pp-portal="spb"][data-pp-page="home"] header.fixed a[aria-label] { display: inline-flex; align-items: center; }
html[data-pp-portal="spb"][data-pp-page="home"] header.fixed button[aria-haspopup] { background: #edf2f6; border-radius: 8px; }
html[data-pp-portal="spb"][data-pp-page="home"] .home-hero { background: var(--pp-paper); }
html[data-pp-portal="spb"][data-pp-page="home"] .home-hero > .pointer-events-none { opacity: .12; }
html[data-pp-portal="spb"][data-pp-page="home"] .home-hero-title { font-family: system-ui, sans-serif; font-size: clamp(2.25rem, 4.5vw, 4rem); line-height: 1.1; letter-spacing: -.04em; color: var(--pp-navy); }
html[data-pp-portal="spb"][data-pp-page="home"] :is(.home-hero-lead, .home-hero-kicker) { color: var(--pp-muted); font-size: 1rem; }
html[data-pp-portal="spb"][data-pp-page="home"] :is(.hero-search-panel, .home-hero-ages a) { border-radius: 12px; }
html[data-pp-portal="spb"][data-pp-page="home"] :is(.home-hero-ages a, .hero-search-cell, .hero-search-submit) { min-height: 48px; }

/* Existing concept stylesheet ships !important white-text contrast guards.
   Override only their light-surface counterparts, never premium headings. */
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.page-hero, .cat-head, .article-head, .detail-hero) :is(h1, h2, .article-title, .detail-title) { color: var(--pp-navy) !important; }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.page-hero, .cat-head, .article-head, .detail-hero) :is(p, .article-meta, .breadcrumb, .kicker) { color: var(--pp-muted) !important; }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.catalog-answer-wrap, .selection-answer-wrap) { background: var(--pp-paper); }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.catalog-answer, .selection-answer) { padding: clamp(20px, 3vw, 32px); }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.article-head, .page-hero, .cat-head) .kicker a { color: var(--pp-link) !important; }

/* Observed legacy templates. Exclude premium hero, imagery and body branding. */
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.concept-atmosphere, .concept-depth-meter) { display: none; }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.page-hero, .cat-head, .article-head, .detail-hero) { background: var(--pp-paper); color: var(--pp-navy); padding-block: clamp(36px, 5vw, 64px); }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.page-hero, .detail-hero)::before { content: none; }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.page-hero h1, .cat-head h1, .article-title, .detail-title) { color: var(--pp-navy); font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.13; letter-spacing: -.035em; }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.page-hero p, .cat-head p, .article-meta, .detail-info, .breadcrumb, .kicker) { color: var(--pp-muted); }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.cat-results, .catalog, .catalog-page, .districts-page, .detail-body, .similar-section, .map-page, .map-block) { background: var(--pp-paper); color: var(--pp-navy); }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.cat-results, .catalog-page, .districts-page, .similar-section, .map-page, .map-block) :is(h1, h2, h3, h4, .results-count, .map-list-title, .map-list-address, .map-list-meta) { color: var(--pp-navy) !important; }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.cat-results, .catalog-page, .districts-page, .similar-section, .map-page, .map-block) :is(p, small, .results-note, .map-list p, .map-list span) { color: var(--pp-muted); }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.cat-results, .catalog-page, .districts-page, .similar-section, .map-page, .map-block) a:not(.card):not(.article-card) { color: var(--pp-link); }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.card, .article-card, .detail-section, .action-card, .article-body, .catalog-answer, .selection-answer, .map-list) { border: 1px solid var(--pp-line); border-radius: 16px; background: #fff; color: var(--pp-navy); box-shadow: 0 4px 20px rgba(11,34,51,.045); }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.card-meta, .card-foot, .article-card-lead) { color: var(--pp-muted) !important; font-size: .9375rem; }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.card-name, .article-card-title) { font-size: 1.25rem; line-height: 1.35; }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.catalog-answer, .selection-answer, .art-answer, .art-method, .verification-note) { background: #edf2f6; border-color: var(--pp-line); border-radius: 12px; }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.catalog-answer-note, .selection-answer-note, .catalog-answer-label, .selection-answer-label, .art-answer-label) { color: var(--pp-muted); font-size: .9375rem; }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.cat-toolbar, .toolbar-in) { background: #fff; color: var(--pp-navy); border-color: var(--pp-line); }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.chip, .chip-mini, .filter-clear, .search-mini input, .tag) { min-height: 44px; border-radius: 8px; background: #fff; border-color: var(--pp-line); color: var(--pp-navy); font-size: .9375rem; }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.chip.is-active, .chip-mini.is-active) { background: var(--pp-navy); color: #fff; }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.btn-pill, .btn-primary, .hero-search-submit, .map-overlay-cta) { min-height: 48px; border-radius: 10px; white-space: normal; background: var(--pp-coral); color: var(--pp-navy); box-shadow: none; font-size: 1rem; font-weight: 700; }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) .btn-pill--light { background: #fff; color: var(--pp-link); border: 1px solid var(--pp-line); }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) .art-cta-card { background: #12314a; border-radius: 16px; }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) .art-cta-card :is(h2, p) { color: #fff; }
html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) .ftr { background: var(--pp-navy); }
html[data-pp-portal="spb"] .ftr :is(.ftr-nav a, .ftr-tag, .ftr-bot) { color: #c3ced7; }

@media (max-width: 1040px) {
  html[data-pp-portal="spb"] .hdr { height: auto; flex-wrap: wrap; gap: 0 12px; padding: 10px 20px 0; }
  html[data-pp-portal="spb"] .hdr .nav,
  html[data-pp-portal="spb"] .hdr .nav.is-open { position: static; display: flex; order: 5; flex: 0 0 100%; width: 100%; min-width: 0; margin: 0; padding: 0; gap: 4px; flex-direction: row; overflow-x: auto; border: 0; border-top: 1px solid var(--pp-line); border-radius: 0; box-shadow: none; background: #fff; }
  html[data-pp-portal="spb"] .hdr .nav-link { flex: 0 0 auto; }
  html[data-pp-portal="spb"] .hdr .hdr-burger { display: none !important; }
  html[data-pp-portal="spb"] .hdr .city-switcher { margin-left: auto; }
}
@media (max-width: 760px) {
  html[data-pp-portal="spb"] .hdr { padding-inline: 16px; }
  html[data-pp-portal="spb"] .hdr .hdr-right { display: none; }
  html[data-pp-portal="spb"] .partner-topbar { padding-inline: 16px; gap: 12px; }
  html[data-pp-portal="spb"] .partner-brand { font-size: 1.125rem; }
  html[data-pp-portal="spb"]:not([data-pp-page="map"]) body:not(.partner-page):not(.page-premium) .container { padding-inline: 16px; }
  html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.cards, .similar-grid) { grid-template-columns: minmax(0, 1fr); }
  html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.article-body, .detail-section) { padding: 24px 20px; }
  html[data-pp-portal="spb"] body:not(.partner-page):not(.page-premium) :is(.page-hero, .cat-head, .detail-hero, .article-head) { padding-block: 32px; }
  html[data-pp-portal="spb"][data-pp-page="home"] header.fixed { height: 112px !important; }
  html[data-pp-portal="spb"][data-pp-page="home"] header.fixed > div { flex-wrap: wrap; gap: 0 12px; padding: 8px 16px 0; }
  html[data-pp-portal="spb"][data-pp-page="home"] header.fixed nav { display: flex; order: 3; width: 100%; gap: 20px; overflow-x: auto; border-top: 1px solid var(--pp-line); }
  html[data-pp-portal="spb"][data-pp-page="home"] header.fixed nav a { flex: 0 0 auto; display: inline-flex; align-items: center; font-size: .9375rem; }
  html[data-pp-portal="spb"][data-pp-page="home"] .home-hero { padding-top: 148px; }
}
