/* Shared TP ENERGY design contract. Page files retain their content layouts. */
:root {
  --tp-font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --tp-color-blue: #205497;
  --tp-color-blue-hover: #17437c;
  --tp-color-ink: #172833;
  --tp-color-muted: #536573;
  --tp-color-line: #dce4ed;
  --tp-color-surface: #f0f4f8;
  --tp-color-surface-hover: #e3edf7;
  --tp-color-selected: #d1e8f8;
  --tp-color-selected-ink: #174d78;
  --tp-color-filter-ink: #243e53;
  --tp-text-title: 4rem;
  --tp-text-section: 2.25rem;
  --tp-text-lead: 1.3125rem;
  --tp-text-body: 1.0625rem;
  --tp-text-control: 1rem;
  --tp-text-filter: .9375rem;
  --tp-text-meta: .875rem;
  /* Measured from /de/solarmodule, including its compact viewport rules. */
  --tp-text-breadcrumb: .875rem;
  --tp-text-eyebrow: .8125rem;
  --tp-text-field-label: .9375rem;
  --tp-text-copy: 1.0625rem;
  --tp-line-lead: 1.55;
  --tp-weight-heading: 650;
  --tp-control-radius: 8px;
  --tp-control-height: 3.375rem;
  --tp-panel-radius: 18px;
  --tp-space-title: 24px;
  --tp-space-eyebrow: 18px;
  --tp-space-section-title: 14px;
  --tp-space-finder-title: 12px;
  --tp-space-label: 9px;
  --tp-space-breadcrumb: 24px;
  --tp-space-intro-top: 22px;
  --tp-space-intro-bottom: 48px;
  --tp-space-hero-row: 12px;
  --tp-space-hero-column: 64px;
  --tp-space-grid: 18px;
  --tp-space-panel-top: 34px;
  --tp-space-panel-x: 40px;
  --tp-space-panel-bottom: 28px;
  --tp-space-search-row: 14px;
  --tp-space-advice-top: 34px;
  --tp-space-advice-margin: 36px;
  --tp-space-advice-gap: 28px;
}
body, .editor-styles-wrapper {font-family:var(--tp-font);font-size:var(--tp-text-body);line-height:1.6}
body :is(button,input,select,textarea) {font-family:var(--tp-font)}
/* The shared shell also covers the old native product/page fallback templates. */
body .tp-header-inner {min-height:104px!important;max-width:1200px!important;flex-wrap:nowrap!important}
body .tp-header .wp-block-navigation {min-width:auto!important;max-width:none!important}
body .tp-header .wp-block-navigation__container {flex-wrap:nowrap!important}
/* Menu labels keep the same style for current, hovered and focused entries. */
body .tp-header .wp-block-navigation,
body .tp-header .wp-block-navigation * {text-decoration:none!important;text-decoration-line:none!important}
body .tp-header .wp-block-navigation :is(.wp-block-navigation-item__content,.wp-block-navigation-submenu__toggle) {font-weight:500!important}
body .tp-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {font-weight:450!important}
body .tp-header .wp-block-navigation .wp-block-navigation-item__label {font-weight:inherit!important}
body .tp-brand-logo {width:270px}
body .tp-brand-logo>span {font-size:.7625rem!important;font-weight:450;line-height:1.2}
body:not(.tp-selected-home) .tp-header {background:#142f42;border-bottom:0}
body:not(.tp-selected-home) .tp-brand-logo {color:#fff}
body:not(.tp-selected-home) .tp-brand-logo img {filter:brightness(0) invert(1)}
body:not(.tp-selected-home) .tp-header .wp-block-navigation {color:#fff}
body:not(.tp-selected-home) .tp-header .wp-block-navigation-item__content {color:inherit}
body:not(.tp-selected-home) .tp-header-cta .wp-block-button__link {color:#fff;background:transparent;border:1px solid #ffffffb3;border-radius:999px}
body .tp-selected-footer {font-family:var(--tp-font);font-size:.875rem;line-height:1.6;padding-top:48px}
body .tp-selected-footer .tp-selected-frame {width:1200px;max-width:calc(100% - 96px);margin-inline:auto!important}
body .tp-footer-grid {grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.25fr)!important;gap:38px}
body .tp-footer-grid>* {min-width:0;max-width:100%}
body .tp-selected-footer :is(p,a) {min-width:0;max-width:100%;white-space:normal!important;overflow-wrap:anywhere!important}
body .tp-selected-footer h2 {overflow-wrap:anywhere!important}
body .tp-selected-footer h2 {font-size:1rem!important;font-weight:650;line-height:1.4;letter-spacing:0;margin:4px 0 16px}
body .tp-selected-footer .tp-footer-company h2 {font-size:1.375rem!important;letter-spacing:-.025em;margin:0 0 14px}
body .tp-selected-footer p {font-size:.875rem;line-height:1.75}
body .tp-selected-footer a {font-size:.875rem;min-height:40px}
body .tp-footer-legal {margin-top:30px!important;padding-block:18px}
body .tp-footer-legal :is(p,a) {font-size:.8125rem;line-height:1.6}
@media(min-width:801px) and (max-width:1100px) {
  body .tp-footer-grid {grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr)!important}
  body .tp-footer-contact {grid-column:1/-1}
}
@media(min-width:801px) and (max-width:1280px) {
  body .tp-brand-logo {width:250px}
}
/* Title and lead are explicit roles shared by every native page template. */
body main h1 {font-size:var(--tp-text-title)!important;font-weight:var(--tp-weight-heading)!important;line-height:1.08!important;letter-spacing:-.035em!important}
body main :is(h2,h3,h4) {font-weight:var(--tp-weight-heading)!important}
body main :is(h1,h2,h3,h4) {overflow-wrap:anywhere!important}
body main h2:not(.screen-reader-text):not(.tp-contact-office h2) {
  font-family:var(--tp-font)!important;font-size:var(--tp-text-section)!important;line-height:1.15!important;letter-spacing:-.035em!important;font-style:normal;
}
/* Match class tokens even when Gutenberg appends wp-block-paragraph. */
body main p:is(.tp-lead,.tw-lead,[class$="-lead"],[class*="-lead "]) {
  font-family:var(--tp-font)!important;font-size:var(--tp-text-lead)!important;font-weight:400!important;line-height:var(--tp-line-lead)!important;letter-spacing:normal!important;font-style:normal!important;text-transform:none;
}
body main :is(.dl-preview,.tpw,.tp-module-content,.tp-solar-content) {font-family:var(--tp-font);font-size:var(--tp-text-body);font-weight:400;line-height:1.6}
/* Navigation, small headings and body copy use the approved solar text roles. */
body main :is(p,nav,div,ol)[class*="breadcrumb"],
body main :is(p,nav,div,ol)[class*="breadcrumb"] :is(a,span) {
  font-family:var(--tp-font)!important;font-size:var(--tp-text-breadcrumb)!important;font-weight:400!important;line-height:1.6!important;letter-spacing:normal!important;font-style:normal!important;text-transform:none!important;
}
body main :is(p,nav,div,ol)[class*="breadcrumb"] {color:var(--tp-color-muted)}
body main :is(p,nav,div,ol)[class*="breadcrumb"] a {font-weight:600!important;color:var(--tp-color-blue)!important;text-decoration:none}
body main p[class*="eyebrow"] {
  font-family:var(--tp-font)!important;font-size:var(--tp-text-eyebrow)!important;font-weight:650!important;line-height:1.55!important;letter-spacing:.11em!important;font-style:normal!important;text-transform:uppercase!important;
}
body main p:is(.tp-solar-facts,.tp-module-facts,.tp-accessories-facts) {
  font-family:var(--tp-font)!important;font-size:1rem!important;font-weight:400!important;line-height:1.65!important;letter-spacing:normal!important;font-style:normal!important;text-transform:none!important;
}
body main p.wp-block-paragraph:not([class*="breadcrumb"]):not([class*="eyebrow"]):not([class*="lead"]):not([class*="facts"]):not([class*="note"]):not([class*="caption"]):not([class*="version"]):not([class*="quick"]):not([class*="jump"]) {
  font-family:var(--tp-font)!important;font-size:var(--tp-text-copy)!important;font-weight:400!important;line-height:1.65!important;letter-spacing:normal!important;font-style:normal!important;text-transform:none;
}
body main :is(.tp-module-finder>p,.tp-contact-form-intro,.dl-empty>p) {font-size:var(--tp-text-body);line-height:1.6}
/* Same action and field roles across catalogue, service and editorial pages. */
body main :is(.wp-block-button__link,.tp-button,.tw-button,.tp-module-message-link,.dl-contact-request,.dl-open) {
  font-family:var(--tp-font);font-size:var(--tp-text-control)!important;font-weight:600!important;line-height:1.5!important;border-radius:var(--tp-control-radius)!important;min-height:48px;
}
body main button[type="submit"]:not(.dl-sort-form button) {
  font-size:var(--tp-text-control)!important;font-weight:600!important;line-height:1.5!important;border-radius:var(--tp-control-radius)!important;min-height:var(--tp-control-height);
}
body main :is(.tp-search-line,.tp-module-search) button[type="submit"] {margin-top:0;align-self:flex-end}
body main :is(input[type="search"],input[type="text"],input[type="email"],input[type="tel"],select,textarea) {
  font-family:var(--tp-font)!important;font-size:var(--tp-text-control)!important;font-weight:400!important;line-height:1.6!important;letter-spacing:normal!important;font-style:normal!important;border-radius:var(--tp-control-radius)!important;
}
body main :is(.tp-search input[type="search"],.tp-quick-search input[type="search"],.tp-module-search input[type="search"]) {
  min-height:var(--tp-control-height)!important;height:var(--tp-control-height)!important;margin-top:0;
}
body main :is(.tp-search-label,.tp-search-primary>label,.tp-project-filters>label,.dl-label,.tp-module-search label,.tp-contact-form label:not(.tp-checkbox),.dl-product-areas legend) {
  font-family:var(--tp-font)!important;font-size:var(--tp-text-field-label)!important;font-weight:550!important;line-height:1.5!important;letter-spacing:normal!important;font-style:normal!important;text-transform:none;
}
body main :is(.tp-search,.tp-module-finder,.dl-finder) {background:var(--tp-color-surface);border-radius:var(--tp-panel-radius)}
body main .dl-input {border-radius:var(--tp-control-radius);min-height:var(--tp-control-height)}
body main .dl-input input {min-height:calc(var(--tp-control-height) - 2px);border-radius:var(--tp-control-radius)}
body main .dl-primary {background:var(--tp-color-blue);color:#fff;border:1px solid var(--tp-color-blue)}
body main .dl-primary:hover {background:var(--tp-color-blue-hover);border-color:var(--tp-color-blue-hover)}
body main :is(.tp-project-apply,.dl-contact-request,.dl-open) {border-color:var(--tp-color-blue);color:var(--tp-color-blue)}
/* One filter component: Trina series, product scopes and document areas. */
body main :is(.tp-filter-row,.tp-module-series,.dl-product-grid) {gap:12px;align-items:center}
body main :is(.tp-filter-chip,.tp-module-series label) {
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;max-width:100%;min-height:48px;
  padding:11px 18px;border:1px solid transparent;border-radius:999px;background:var(--tp-color-surface);
  color:var(--tp-color-filter-ink);font-family:var(--tp-font);font-size:var(--tp-text-filter);line-height:1.5;font-weight:450;
  text-decoration:none;cursor:pointer;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere;
  transition:background .15s,border-color .15s;
}
body main :is(.tp-filter-chip,.tp-module-series label):hover {background:var(--tp-color-surface-hover);border-color:#c4d5e6;text-decoration:none}
body main :is(.tp-filter-chip[aria-current="true"],.tp-module-series label:has(input:checked),.dl-product-choice:has(input:checked)>.tp-filter-chip) {
  background:var(--tp-color-selected);border-color:#b0d0e8;color:var(--tp-color-selected-ink);font-weight:600;
}
body main :is(.tp-filter-chip[aria-current="true"],.tp-module-series label:has(input:checked),.dl-product-choice:has(input:checked)>.tp-filter-chip):hover {background:#bfdef3;border-color:#95bddb}
body main :is(.tp-filter-chip,.tp-module-series label):active {background:#bdd9ee}
body main :is(.tp-filter-check,.tp-module-series-check) {display:none;align-items:center;justify-content:center;width:17px;height:17px;flex:none}
body main :is(.tp-filter-check,.tp-module-series-check) svg {display:block;width:100%;height:100%}
body main :is(.tp-filter-chip[aria-current="true"] .tp-filter-check,.tp-module-series label:has(input:checked) .tp-module-series-check,.dl-product-choice:has(input:checked) .tp-filter-check) {display:inline-flex}
body main :is(.tp-filter-count,.tp-module-series small) {flex:none;font-size:.75rem;font-weight:450;line-height:1.4;min-width:23px;padding:3px 5px;border-radius:999px;background:#e3ebf3;color:#40596d;text-align:center}
body main :is(.tp-filter-chip[aria-current="true"] .tp-filter-count,.tp-module-series label:has(input:checked) small,.dl-product-choice:has(input:checked) .tp-filter-count) {background:#b8d8ee;color:var(--tp-color-selected-ink)}
body main :is(.tp-filter-chip:focus-visible,.tp-module-series label:has(input:focus-visible),.dl-product-choice:has(input:focus-visible)>.tp-filter-chip) {outline:3px solid var(--tp-color-blue);outline-offset:4px}
body main .tp-filter-hint {font-size:var(--tp-text-meta);line-height:1.6;color:var(--tp-color-muted);margin:8px 0 18px}
body main .dl-product-areas .tp-filter-hint {margin-bottom:0}
body main .dl-product-areas {margin:0 0 22px}
body main .tp-project-scopes {margin-bottom:0}
body main .tp-project-more,body main .tp-project-more>div {display:contents}
body main .tp-project-more:not([open])>div {display:none}
body main :is(.tp-project-more>summary,.dl-product-toggle) {
  order:1;display:inline-flex;align-items:center;justify-content:center;min-height:48px;gap:9px;padding:11px 18px;
  border:1px solid var(--tp-color-line);border-radius:999px;background:var(--tp-color-surface);color:var(--tp-color-blue);
  font-family:var(--tp-font);font-size:var(--tp-text-filter);font-weight:550;line-height:1.5;
}
body main :is(.tp-project-more>summary,.dl-product-toggle):hover {background:var(--tp-color-surface-hover)}
/* The solar spacing scale applies to equivalent content and control roles. */
body main h1 {margin-top:0!important;margin-bottom:var(--tp-space-title)!important}
body main p:is(.tp-lead,.tw-lead,[class$="-lead"],[class*="-lead "]) {margin-top:0!important;margin-bottom:var(--tp-space-title)!important}
body main p[class*="eyebrow"] {margin-top:0!important;margin-bottom:var(--tp-space-eyebrow)!important}
body main h2:not(.screen-reader-text):not(.tp-contact-office h2) {margin-top:0!important;margin-bottom:var(--tp-space-section-title)!important}
body main :is(.tp-selected-finder,.tp-module-finder,.tp-solar-advice,.tp-module-advice,.tw-contact) {--tp-space-section-title:var(--tp-space-finder-title)}
body main :is(.tp-search-label,.tp-search-primary>label,.tp-module-search label,.dl-query-label) {margin-top:0!important;margin-bottom:var(--tp-space-label)!important}
body main :is(.tp-selected-finder,.tp-module-finder,.tp-project-search,.dl-finder) {padding:var(--tp-space-panel-top) var(--tp-space-panel-x) var(--tp-space-panel-bottom)!important}
body main :is(.tp-solar-brand-grid,.tp-module-cards,.tp-catalog-product-grid,.tp-manufacturer-index,.tw-products-grid,.tp-partner-products) {gap:var(--tp-space-grid)!important}
body main :is(.tp-solar-advice,.tp-module-advice,.tp-makers-content .tp-solar-advice) {margin-top:var(--tp-space-advice-margin)!important;padding-top:var(--tp-space-advice-top)!important;gap:var(--tp-space-advice-gap)!important}
body main :is(.tp-search-line,.tp-module-search) {gap:var(--tp-space-search-row)!important}
body main .tp-search-line {margin-top:0!important}
body main :is(.tp-selected-finder,.tp-module-finder)>p {margin-top:0!important;margin-bottom:23px!important}
body main :is(.tp-selected-frame,.tw-frame,.dl-frame,.tp-frame) {width:1200px!important;max-width:calc(100% - 96px)!important;margin-inline:auto!important}
body main :is(p,nav,div,ol)[class*="breadcrumb"] {
  display:flex;align-items:center;flex-wrap:wrap;gap:0 10px!important;min-height:44px!important;margin:0 0 var(--tp-space-breadcrumb)!important;padding:0!important;
}
body main :is(p,nav,div,ol)[class*="breadcrumb"] :is(a,span) {margin:0!important;padding:0!important}
body main :is(p,nav,div,ol)[class*="breadcrumb"] a {min-height:44px;display:inline-flex;align-items:center}
body main :is(.tp-solar-intro,.tp-module-intro)>[class*="breadcrumb"] {margin-bottom:0!important}
body main .tp-legal-intro>.tp-legal-breadcrumb {margin-bottom:var(--tp-space-breadcrumb)!important}
body main :is(.tp-solar-intro,.tp-module-intro) {padding-top:var(--tp-space-intro-top)!important;padding-bottom:var(--tp-space-intro-bottom)!important;row-gap:var(--tp-space-hero-row)!important;column-gap:var(--tp-space-hero-column)!important}
body main :is(.tp-solar-intro,.tp-module-intro):has(>[class*="breadcrumb"]) {grid-template-rows:auto minmax(0,1fr)!important;align-content:start!important}
body main :is(.tp-solar-copy,.tp-module-copy) {padding-top:12px!important;padding-bottom:0!important}
body main .tp-accessories-copy {padding-top:12px!important;padding-bottom:0!important}
body main :is(.tp-about-intro,.tp-values-intro,.tp-career-opening,.tp-contact-intro,.tp-claims-intro,.tp-legal-intro,.tp-impressum-intro,.tp-partner-hero) {padding-top:var(--tp-space-intro-top)!important;padding-bottom:var(--tp-space-intro-bottom)!important}
body main :is(.tw-frame:has(>.tw-breadcrumb),.dl-frame:has(>.dl-breadcrumb)) {padding-top:var(--tp-space-intro-top)!important}
body main :is(.tp-project-intro,.tw-hub-intro,.dl-intro) {padding-top:0!important;padding-bottom:calc(var(--tp-space-intro-bottom) - var(--tp-space-title))!important}
body main .dl-intro {column-gap:var(--tp-space-hero-column)!important;align-items:start}
body main :is(.tp-project-intro,.dl-intro-copy) {display:flow-root}
body main .tw-hero {column-gap:var(--tp-space-hero-column)!important;padding-bottom:var(--tp-space-intro-bottom)!important;align-items:start}
/* Service heroes have the breadcrumb outside, so its top spacing is not repeated. */
body main :is(.tp-claims-hero,.pv-hero,.tp-about-hero,.tp-values-hero,.tp-partner-hero-grid) {align-items:start!important}
body main .pv-hero.tp-module-intro {padding-top:0!important}
body main .tp-contact-intro+.tp-contact {padding-top:0!important}
body main figcaption {font-family:var(--tp-font)!important;font-size:.875rem!important;font-weight:400!important;line-height:1.5!important;letter-spacing:normal!important}
body main.tp-main:not(.tp-home-main) {width:1200px;max-width:calc(100% - 96px);margin-inline:auto!important;padding:var(--tp-space-intro-top) 0 var(--tp-space-intro-bottom)}
body main.tp-main:not(.tp-home-main)>:is(h1,.wp-block-post-content,.wp-block-shortcode) {max-width:100%;margin-inline:0!important}
body main.tp-main>p {margin-inline:0!important}
/* The remaining native templates use the same full-width intro and breadcrumb. */
body main.tp-main>:is(.tp-eyebrow,[class*="breadcrumb"]) {max-width:100%!important;margin-inline:0!important}
body main.tp-production-page>.wp-block-post-content {margin-top:0!important}
body main.tp-production-page .tp-page-intro {max-width:100%!important;margin-inline:0!important}
body main :is(.tp-legal-intro,.tp-impressum-intro,.tp-contact-intro,.dl-intro-copy,.tw-frame,.tp-page-intro)>p[class*="eyebrow"],
body main.tp-main>p[class*="eyebrow"] {color:var(--tp-color-blue)!important}
@media(min-width:801px) {
  /* The manufacturer form includes a hint below its input; align to the field. */
  body main .tp-module-search button[type="submit"] {align-self:flex-start;margin-top:calc(var(--tp-text-field-label) * 1.5 + var(--tp-space-label))}
}
@media(max-width:800px) {
  :root {--tp-text-title:2.375rem;--tp-text-section:1.875rem;--tp-text-lead:1.0625rem;--tp-text-filter:.875rem;--tp-text-breadcrumb:.8125rem;--tp-text-eyebrow:.75rem;--tp-text-field-label:.875rem;--tp-text-copy:1rem;--tp-line-lead:1.6}
  :root {--tp-space-title:18px;--tp-space-breadcrumb:16px;--tp-space-intro-top:18px;--tp-space-intro-bottom:32px;--tp-space-hero-row:16px;--tp-space-grid:14px;--tp-space-panel-top:26px;--tp-space-panel-x:20px;--tp-space-panel-bottom:23px;--tp-space-search-row:11px;--tp-space-advice-top:26px;--tp-space-advice-margin:28px;--tp-space-advice-gap:20px}
  body .tp-header-inner {min-height:90px!important}
  body .tp-brand-logo {width:215px}
  body .tp-brand-logo>span {font-size:11px!important}
  body .tp-selected-footer {padding-top:34px}
  body .tp-selected-footer .tp-selected-frame {width:calc(100% - 44px);max-width:none;margin-inline:22px!important}
  body .tp-footer-grid {grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:28px 24px}
  body :is(.tp-footer-company,.tp-footer-contact) {grid-column:1/-1}
  body .tp-selected-footer a {min-height:44px}
  body .tp-footer-legal {display:block}
  body main :is(.tp-selected-frame,.tw-frame,.dl-frame,.tp-frame) {width:calc(100% - 44px)!important;max-width:none!important;margin-inline:22px!important}
  body main :is(.tp-solar-copy,.tp-module-copy) {padding-top:0!important;padding-bottom:0!important}
  body main .tp-accessories-copy {padding-top:var(--tp-space-breadcrumb)!important}
  body main.tp-main:not(.tp-home-main) {width:calc(100% - 44px);max-width:none;margin-inline:22px!important}
  body main :is(.tp-filter-row,.tp-module-series,.dl-product-grid) {gap:10px}
  body main :is(.tp-filter-chip,.tp-module-series label,.tp-project-more>summary,.dl-product-toggle) {padding-inline:14px;gap:7px}
}
@media(prefers-reduced-motion:reduce) {
  body main :is(.tp-filter-chip,.tp-module-series label) {transition:none}
}
