/*
Theme Name: HELIOVA
Description: Solar im Tageslauf verstehen. Naturnahes Child-Theme für Solar Studio.
Author: Designstudio
Template: solar-studio
Version: 1.2.0
Requires at least: 6.9
Requires PHP: 8.0
Text Domain: heliova
*/

/* Lokal bereitgestellte Latin-WOFF2; Quellen und OFL: FONT-LIZENZEN.md. */
@font-face {
  font-family: 'Lora';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/lora-latin-italic-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Lora';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(assets/fonts/lora-latin-normal-variable.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Nunito Sans';
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(assets/fonts/nunitosans-latin-normal-variable.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* Trends 4/7/9: an original vector scene explains the day without autoplay. */
.heliova {
  --ss-bg: #f0eee4;
  --ss-text: #263b30;
  --ss-primary: #3b5a42;
  --ss-on-primary: #fff;
  --ss-border: #b4beaa;
  --ss-font: "Nunito Sans",-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ss-heading: "Lora",Georgia, 'Times New Roman', serif;
  --ss-ink: #263b30;
  --ss-muted: #536453;
  --ss-accent: #3b5a42;
  --ss-accent-text: #fff;
  --ss-line: #b4beaa;
  --ss-surface: #faf9f3;
  --ss-radius: 14px;
  color: #263b30;
  background: #f0eee4;
  font-family: "Nunito Sans",-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.heliova :is(h1,h2,h3,h4) { color: #263b30; font-family: "Lora",Georgia,'Times New Roman',serif; font-weight: 400; letter-spacing: -.045em; }
.heliova :is(a,button,input,select,textarea):focus-visible { outline: 3px solid #263b30; outline-offset: 4px; }
.heliova .ss-header { background: #f0eee4; border-bottom: 1px solid #b4beaa; box-shadow: none; }
.heliova .ss-brand { display: inline-flex; gap: 12px; align-items: center; font-family: "Lora",Georgia,'Times New Roman',serif; font-size: 27px; font-weight: 400; letter-spacing: .08em; }
.heliova .ss-brand::before { content: ''; display: inline-block; width: 19px; height: 19px; border: 2px solid #3b5a42; border-radius: 50%; outline: 1px solid #3b5a42; outline-offset: 4px; margin-inline: 4px; }
.heliova .ss-brand-mark { display: none; }
.heliova .ss-nav { font-size: 13px; font-weight: 500; }
.heliova .ss-nav a { padding-block: 12px; }
.heliova .ss-cart-link { border: 1px solid #3b5a42; border-radius: 999px; padding: 10px 18px; }
.heliova .ss-footer { background: #263b30; color: #faf9f3; border: 0; }
.heliova .ss-footer :is(a,h2,h3,p) { color: #faf9f3; }
.heliova .ss-footer a:focus-visible { outline-color: #d6b875; }
.hv-wrap { width: min(1220px,calc(100% - 80px)); margin-inline: auto; }
.hv-home .ss-container { width: 100%; max-width: none; padding-inline: 0; }
.hv-home .ss-section { padding-block: 0; }
.hv-hero { padding-top: 43px; padding-bottom: 28px; }
.hv-eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 23px; font-size: 11px; font-weight: 500; line-height: 1.6; letter-spacing: .07em; text-transform: uppercase; color: #3b5a42; }
.hv-sunmark { display: inline-block; font-size: 24px; font-weight: 400; line-height: 1; }
.hv-hero-heading { display: grid; grid-template-columns: 1.3fr .8fr; gap: 65px; align-items: end; margin-bottom: 38px; }
.hv-hero h1 { font-size: clamp(47px,5.9vw,83px); line-height: 1.04; margin: 0; }
.hv-hero h1 em { color: #3b5a42; font-weight: 400; }
.hv-hero-copy p { margin: 0 0 25px; font-size: 15px; line-height: 1.8; }
.hv-button,.heliova .ss-button,.heliova .woocommerce a.button,.heliova .woocommerce button.button,.heliova .woocommerce input.button,.heliova .woocommerce #respond input#submit { display: inline-flex; justify-content: center; align-items: center; gap: 24px; min-height: 48px; padding: 14px 23px; border: 1px solid #3b5a42; border-radius: 999px; background: #3b5a42; color: #fff; font: 500 13px/1.5 "Nunito Sans",-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; text-decoration: none; box-shadow: none; transition: background-color 160ms ease,border-color 160ms ease; }
.hv-button:hover,.heliova .ss-button:hover,.heliova .woocommerce :is(a.button,button.button,input.button):hover { color: #fff; background: #263b30; border-color: #263b30; }
.hv-button span { font-size: 21px; line-height: 1; }
.hv-daylight { background: #dce6d9; border-radius: 16px; overflow: hidden; border: 1px solid #a4b69a; }
.hv-scene-controls { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 19px 26px 0; }
.hv-scene-controls > p { margin: 0; font-size: 12px; font-weight: 500; }
.hv-switch { display: inline-flex; background: #faf9f3; padding: 4px; border: 1px solid #b4beaa; border-radius: 999px; }
.hv-switch button { min-width: 73px; min-height: 40px; padding: 8px 14px; border: 0; border-radius: 999px; font: 500 12px/1.5 "Nunito Sans",-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; background: transparent; color: #263b30; cursor: pointer; }
.hv-switch button[aria-pressed='true'] { background: #3b5a42; color: #fff; }
.hv-switch button:focus-visible { outline-offset: 1px; }
.hv-house-scene { display: block; width: 100%; height: auto; margin-top: -26px; }
.hv-scene-moon,.hv-evening-flow { opacity: 0; }
.hv-sky,.hv-window,.hv-scene-sun,.hv-scene-moon,.hv-evening-flow,.hv-day-flow { transition: fill 200ms ease,opacity 200ms ease; }
.hv-daylight[data-state='evening'] { background: #263e43; }
.hv-daylight[data-state='evening'] .hv-scene-controls > p { color: #faf9f3; }
.hv-daylight[data-state='evening'] .hv-sky { fill: #263e43; }
.hv-daylight[data-state='evening'] .hv-scene-sun,.hv-daylight[data-state='evening'] .hv-day-flow { opacity: 0; }
.hv-daylight[data-state='evening'] .hv-scene-moon,.hv-daylight[data-state='evening'] .hv-evening-flow { opacity: 1; }
.hv-daylight[data-state='evening'] .hv-window { fill: #e6ca88; }
.hv-flow-explanation { position: relative; min-height: 84px; display: flex; align-items: center; padding: 18px 28px; background: #faf9f3; border-top: 1px solid #a4b69a; }
.hv-flow-explanation p { margin: 0; max-width: 880px; font-size: 14px; line-height: 1.8; }
.hv-flow-explanation p[hidden] { display: none; }
.hv-flow-explanation strong { font-weight: 650; }
.hv-scene-footnote { margin: 0; padding: 0 28px 17px; color: #536453; background: #faf9f3; font-size: 10px; }
.hv-section { padding-block: 68px; }
.hv-section-heading { max-width: 680px; margin-bottom: 34px; }
.hv-section-heading h2 { font-size: clamp(35px,4.4vw,56px); line-height: 1.1; margin: 0 0 22px; }
.hv-section-heading > p:last-child { max-width: 580px; margin: 0; font-size: 14px; line-height: 1.8; }
.heliova .ss-kicker { color: #536453; font-size: 10px; font-weight: 500; letter-spacing: .07em; text-transform: uppercase; }
.heliova .ss-card { border: 1px solid #b4beaa; border-radius: 10px; background: #faf9f3; box-shadow: none; }
.heliova .ss-section-heading h2 { font-size: 30px; }
.heliova .ss-entrances .ss-card { border: 0; border-top: 1px solid #a0b096; border-radius: 0; background: transparent; padding: 26px 0; }
.heliova .ss-entrances :is(h3,h4) { font-size: 27px; }
/* Trends 1/2/8: real product groups and a labeled native Woo search. */
.hv-catalog-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 18px 32px; }
.hv-catalog-entry { grid-column: span 2; min-width: 0; }
.hv-catalog-entry:nth-child(-n+2) { grid-column: span 3; }
.hv-catalog-entry h3 { overflow-wrap: anywhere; }
.heliova .hv-catalog-entry h3 span { font-size: 20px; color: #3b5a42; }
.heliova .hv-catalog-entry > span { max-width: 38ch; font-size: 14px; line-height: 1.7; }
.hv-catalog-entry:hover h3 { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.hv-finder { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr) auto; align-items: start; gap: 18px; padding: 26px; margin-top: 26px; border: 1px solid #a4b69a; border-radius: 12px; background: #faf9f3; }
.hv-finder > div { min-width: 0; }
.hv-finder label { display: block; font-size: 14px; font-weight: 650; margin-bottom: 7px; }
.hv-finder :is(input[type='search'],select) { display: block; width: 100%; min-height: 48px; padding: 11px 13px; font: inherit; font-size: 16px; border: 1px solid #91a388; border-radius: 8px; color: #263b30; background: #f0eee4; }
.hv-finder input::placeholder { color: #536453; opacity: 1; }
.hv-finder span[id] { display: block; font-size: 12px; color: #536453; margin-top: 7px; }
.hv-finder .hv-button { margin-top: 29px; white-space: nowrap; }
.hv-sets-section { background: #e3e8da; border-block: 1px solid #b4beaa; }
.hv-home .ss-product-grid { display: grid; grid-template-columns: 1fr; gap: 30px; }
.hv-home :is(.ss-products,.ss-comparison,.ss-entrances) > .ss-container > .ss-section-heading { display: none; }
.hv-home .ss-journey > .ss-container > :is(h2,.ss-kicker) { display: none; }
.hv-home .ss-product-card { display: grid; grid-template-columns: .85fr 1.15fr; align-items: stretch; border: 1px solid #b4beaa; background: #faf9f3; border-radius: 12px; box-shadow: none; overflow: hidden; }
.heliova .ss-product-media { display: grid; place-items: center; background: #d2ddc7; padding: 35px; }
.hv-home .ss-product-media { min-height: 320px; }
.heliova .ss-product-media :is(img,svg) { width: 100%; height: 260px; object-fit: contain; }
.heliova .ss-product-body { padding: 34px; }
.heliova .ss-product-body h3 { font-size: 34px; line-height: 1.1; margin: 9px 0 17px; }
.hv-home .ss-product-body { min-width: 0; }
.hv-home .ss-product-body h3 { overflow-wrap: anywhere; }
.heliova .ss-product-body h3 a { color: #263b30; text-decoration: none; }
.heliova .ss-product-body > p { font-size: 13px; line-height: 1.8; }
.hv-home .ss-product-card:nth-child(even) { grid-template-columns: 1.15fr .85fr; }
.hv-home .ss-product-card:nth-child(even) .ss-product-media { grid-column: 2; grid-row: 1; background: #d9cfb6; }
.hv-home .ss-product-card:nth-child(even) .ss-product-body { grid-column: 1; grid-row: 1; }
.heliova .ss-product-meta { display: flex; flex-wrap: wrap; gap: 20px; margin-block: 20px; padding-block: 16px; border-block: 1px solid #b4beaa; font-size: 12px; }
.heliova .ss-product-meta > div { flex: 1 1 100px; }
.heliova .ss-product-meta dt { color: #536453; font-size: 10px; margin-bottom: 3px; }
.heliova .ss-product-meta dd { margin: 0; font-weight: 600; }
.heliova .ss-product-price { font-family: "Lora",Georgia,'Times New Roman',serif; font-size: 29px; font-variant-numeric: lining-nums tabular-nums; margin-block: 18px; }
.hv-textlink { display: inline-flex; align-items: center; gap: 25px; min-height: 44px; margin-top: 28px; color: #263b30; text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; font-size: 13px; font-weight: 500; }
.heliova .ss-comparison { overflow-x: auto; }
.heliova .ss-comparison table { width: 100%; border-collapse: collapse; border: 1px solid #b4beaa; border-radius: 8px; background: #faf9f3; font-size: 13px; }
.heliova .ss-comparison :is(th,td) { border-bottom: 1px solid #b4beaa; padding: 19px; text-align: left; }
.heliova .ss-comparison thead { background: #dce3d3; }
.heliova .ss-comparison tbody th { font-weight: 500; color: #536453; }
/* Actual attributes remain a semantic table; a narrow viewport can scroll it. */
.hv-comparison-scroll { max-width: 100%; overflow-x: auto; border: 1px solid #b4beaa; border-radius: 10px; background: #faf9f3; margin-bottom: 18px; }
.hv-comparison-scroll:focus-visible { outline: 3px solid #263b30; outline-offset: 4px; }
.hv-catalog-comparison { width: 100%; min-width: 740px; border-collapse: collapse; font-size: 14px; }
.hv-catalog-comparison caption { padding: 18px; text-align: left; font-size: 13px; color: #536453; }
.hv-catalog-comparison :is(th,td) { padding: 20px; text-align: left; vertical-align: top; border-top: 1px solid #b4beaa; overflow-wrap: anywhere; }
.hv-catalog-comparison thead { background: #dce3d3; }
.hv-catalog-comparison tbody th { width: 30%; font-weight: 650; }
.hv-catalog-comparison td:nth-child(2) { width: 32%; }
.hv-catalog-comparison .hv-textlink { margin-top: 0; gap: 12px; }
.hv-comparison-attributes { margin: 0; }
.hv-comparison-attributes > div + div { margin-top: 12px; }
.hv-comparison-attributes dt { color: #536453; font-size: 12px; }
.hv-comparison-attributes dd { margin: 3px 0 0; }
.hv-storage-section { background: #d5dfcc; border-block: 1px solid #b4beaa; }
.hv-storage-section .hv-section { display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; align-items: center; }
.hv-storage-section .hv-section-heading { margin-bottom: 0; }
.heliova .ss-storage { background: #faf9f3; border: 1px solid #a4b69a; border-radius: 120px 120px 12px 12px; padding: 60px 38px 35px; }
.hv-storage-section .ss-storage .ss-container { display: block; }
.hv-storage-section .ss-storage img { max-height: 240px; }
.heliova .ss-storage h2 { font-size: 31px; }
.heliova .ss-journey .ss-card { border: 0; border-top: 1px solid #a0b096; border-radius: 0; background: transparent; padding: 26px 0; }
.heliova .ss-journey h3 { font-size: 27px; }
.hv-payment-section { padding-block: 15px 70px; }
.heliova .ss-payment { padding: 34px; border: 1px solid #a4b69a; border-radius: 12px; background: #faf9f3; }
.heliova .ss-payment h2 { font-size: 30px; }
.hv-local-test { grid-column: 1 / -1; margin: 0; font-size: 12px; color: #536453; }
/* The native Woo forms remain in control of checkout state and validation. */
.heliova.hv-static-gallery .woocommerce-product-gallery { opacity: 1 !important; transition: none !important; }
.heliova .woocommerce { color: #263b30; }
.heliova .woocommerce :is(input.input-text,textarea,select) { min-height: 48px; padding: 11px 14px; border: 1px solid #91a388; border-radius: 8px; background: #faf9f3; color: #263b30; font: inherit; }
.heliova .woocommerce .form-row label { color: #263b30; font-size: 14px; line-height: 1.6; font-weight: 500; margin-bottom: 5px; }
.heliova .woocommerce ul.products { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 38px; }
.heliova .woocommerce ul.products::before,.heliova .woocommerce ul.products::after { display: none; }
.heliova .woocommerce ul.products li.product { width: auto; float: none; margin: 0; padding: 28px; background: #faf9f3; border: 1px solid #b4beaa; border-radius: 14px; }
.heliova .woocommerce ul.products li.product a img { background: #e3e8da; border-radius: 120px 120px 4px 4px; }
.heliova .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 28px; line-height: 1.2; }
.heliova .woocommerce ul.products li.product .price { color: #263b30; font-size: 23px; font-weight: 500; }
.heliova .woocommerce div.product .summary { padding: 30px; background: #faf9f3; border: 1px solid #b4beaa; border-radius: 14px; }
.heliova .woocommerce div.product .product_title { font-size: clamp(35px,3.9vw,51px); line-height: 1.08; }
.heliova .woocommerce div.product :is(p.price,span.price) { color: #263b30; font-family: "Lora",Georgia,'Times New Roman',serif; font-size: 31px; }
.heliova .woocommerce div.product .woocommerce-tabs ul.tabs li { border-radius: 12px 12px 0 0; }
.heliova .woocommerce table.shop_table { background: #faf9f3; border: 1px solid #b4beaa; border-radius: 10px; font-size: 14px; }
.heliova .woocommerce table.shop_table :is(th,td) { border-color: #b4beaa; padding: 18px; }
.heliova .woocommerce small.includes_tax,
.heliova .woocommerce small.includes_tax .amount { color: #707070; }
/* Native Woo cart totals also contain unclassed small notes. */
.heliova.woocommerce-cart .cart-collaterals .cart_totals :is(p,table) small { color: #707070; }
.heliova .woocommerce :is(.woocommerce-info,.woocommerce-message,.woocommerce-error) { background: #faf9f3; border-top-color: #3b5a42; color: #263b30; }
.heliova .woocommerce :is(.woocommerce-info,.woocommerce-message)::before { color: #3b5a42; }
.heliova.woocommerce-cart .woocommerce { max-width: 960px; margin-inline: auto; }
.heliova .woocommerce .cart-collaterals .cart_totals { width: 100%; float: none; }
.heliova.woocommerce-checkout .woocommerce { max-width: 820px; margin-inline: auto; }
.heliova.woocommerce-checkout form.checkout { display: block; }
.heliova.woocommerce-checkout :is(#customer_details,#order_review,#order_review_heading) { width: 100%; float: none; }
.heliova.woocommerce-checkout #customer_details :is(.col-1,.col-2) { width: 100%; float: none; }
.heliova.woocommerce-checkout h3 { font-size: 30px; border-top: 1px solid #b4beaa; padding-top: 25px; }
.heliova .woocommerce #payment { background: #dce3d3; border: 1px solid #a4b69a; border-radius: 10px; }
.heliova .woocommerce #payment div.payment_box { color: #263b30; background: #faf9f3; }
.heliova .woocommerce #payment div.payment_box::before { border-bottom-color: #faf9f3; }
.heliova .woocommerce .quantity .qty { width: 80px; min-height: 48px; border-radius: 8px; }
@media (max-width: 1000px) {
  .hv-wrap { width: calc(100% - 48px); }
  .hv-hero-heading { gap: 35px; }
  .hv-hero h1 { font-size: clamp(47px,6.1vw,65px); }
  .hv-hero-copy p { font-size: 14px; }
  .hv-home .ss-product-media { min-height: 290px; padding: 24px; }
  .heliova .ss-product-body { padding: 26px; }
  .hv-storage-section .hv-section { gap: 35px; }
  .hv-finder { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .hv-finder .hv-button { margin-top: 0; grid-column: 1 / -1; justify-self: start; }
}
@media (max-width: 760px) {
  .hv-wrap { width: calc(100% - 36px); }
  .hv-hero { padding-top: 29px; }
  .hv-hero-heading { display: block; margin-bottom: 25px; }
  .hv-hero h1 { font-size: clamp(43px,10.8vw,64px); }
  .hv-hero-copy { margin-top: 22px; }
  .hv-hero-copy p { font-size: 15px; }
  .hv-button { width: 100%; justify-content: space-between; }
  .hv-scene-controls { padding: 15px 15px 0; gap: 8px; }
  .hv-scene-controls > p { font-size: 10px; }
  .hv-switch button { min-width: 58px; padding-inline: 10px; font-size: 11px; }
  .hv-house-scene { width: 160%; max-width: none; margin-left: -32%; margin-top: 2px; }
  .hv-flow-explanation { padding: 18px; min-height: 145px; align-items: flex-start; }
  .hv-flow-explanation p { font-size: 13px; line-height: 1.7; }
  .hv-scene-footnote { padding: 0 18px 18px; font-size: 10px; }
  .hv-section { padding-block: 43px; }
  .hv-section-heading { margin-bottom: 26px; }
  .hv-section-heading h2 { font-size: clamp(34px,8.9vw,46px); }
  .hv-eyebrow { font-size: 10px; margin-bottom: 18px; }
  .hv-catalog-grid { grid-template-columns: 1fr; gap: 0; }
  .hv-catalog-entry,.hv-catalog-entry:nth-child(-n+2) { grid-column: auto; }
  .heliova .hv-catalog-entry { min-height: 145px; padding-block: 22px; }
  .hv-finder { grid-template-columns: minmax(0,1fr); padding: 20px; gap: 19px; }
  .hv-finder .hv-button { grid-column: auto; justify-self: stretch; }
  .hv-home .ss-product-card,.hv-home .ss-product-card:nth-child(even) { grid-template-columns: 1fr; }
  .hv-home .ss-product-card:nth-child(even) :is(.ss-product-media,.ss-product-body) { grid-column: auto; grid-row: auto; }
  .hv-home .ss-product-media { min-height: 230px; padding: 23px; }
  .heliova .ss-product-media :is(img,svg) { height: 210px; }
  .heliova .ss-product-body { padding: 24px; }
  .heliova .ss-product-body h3 { font-size: 31px; }
  .heliova .ss-product-meta { gap: 14px; }
  .heliova .ss-product-meta > div { flex-basis: calc(50% - 14px); }
  .heliova .ss-comparison table { min-width: 0; }
  .heliova .ss-comparison :is(th,td) { padding: 14px 11px; font-size: 12px; }
  .hv-storage-section .hv-section { display: block; }
  .hv-storage-section .hv-section-heading { margin-bottom: 26px; }
  .hv-journey-section .ss-journey ol { grid-template-columns: 1fr; }
  .heliova .ss-storage { padding: 45px 25px 25px; border-radius: 80px 80px 12px 12px; }
  .hv-payment-section { padding-block: 10px 45px; }
  .heliova .ss-payment { padding: 25px; }
  .heliova .woocommerce ul.products { grid-template-columns: 1fr; gap: 24px; }
  .heliova .woocommerce ul.products li.product { padding: 23px; }
  .heliova .woocommerce div.product .summary { padding: 24px; }
  .heliova .woocommerce table.shop_table :is(th,td) { padding: 13px; }
}
.heliova.woocommerce div.product .stock { color: var(--ss-primary); }
@media (prefers-reduced-motion: reduce) {
  .heliova *, .heliova *::before, .heliova *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
