*,
*::before,
*::after{
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
}

#inquiry-form,
#contact,
#panel-configurator,
#tools,
#other-products{
scroll-margin-top:calc(var(--app-bar-height) + var(--space-2));
}

body{
margin:0;
font-family:var(--font-family);
font-size:var(--font-body);
font-weight:400;
line-height:var(--line-height);
color:var(--color-text);
background:var(--color-bg);
-webkit-font-smoothing:antialiased;
}

img{
max-width:100%;
height:auto;
vertical-align:middle;
}

a{
color:inherit;
}

.text-hero{
font-size:var(--font-hero);
font-weight:var(--font-hero-weight);
line-height:1.15;
color:var(--color-dark);
letter-spacing:-0.02em;
}

.section-title{
font-size:var(--font-section);
font-weight:var(--font-section-weight);
line-height:1.25;
color:var(--color-dark);
letter-spacing:-0.035em;
margin:0 0 var(--space-2);
text-align:left;
}

.section-subtitle{
font-size:var(--font-subtitle);
font-weight:500;
line-height:var(--line-height);
color:var(--color-muted);
text-align:left;
max-width:42rem;
margin:0 0 var(--space-4);
}

.text-small{
font-size:var(--font-small);
line-height:var(--line-height);
}

@media(max-width:800px){
.text-hero{
font-size:clamp(28px,6vw,42px);
}
.section-title{
font-size:clamp(26px,5vw,32px);
}
.section-subtitle{
font-size:clamp(18px,3vw,22px);
}
body{
font-size:17px;
}
}

@media (prefers-reduced-motion: reduce){
html{scroll-behavior:auto;}
}
