/* AUREMA DESIGN SYSTEM
 * Portable product styles. Requires tokens.css only.
 * Homepage-specific composition stays in style.css and components.css.
 * Public API: section-title, section-subtitle, component-title, step-number,
 * container, section-shell, section-header, content-split, feature-grid,
 * feature-card, icon-box, button, button-secondary, form-field, faq, media-frame.
 */
:where(.aurema-page){margin:0;background:var(--color-surface);color:var(--color-text);font:400 var(--text-large)/1.5 var(--font-body)}
:where(.aurema-page) *, :where(.aurema-page) *::before, :where(.aurema-page) *::after{box-sizing:border-box}
:where(.container){width:calc(100% - 48px);max-width:var(--container-max);margin-inline:auto}
:where(.section-title){font:var(--weight-heading) var(--section-title-size)/var(--leading-title) var(--font-heading);margin:0 0 var(--space-5)}
:where(.section-subtitle){font:400 var(--section-subtitle-size)/var(--leading-subtitle) var(--font-body);margin:0;max-width:65ch}
:where(.component-title){font:var(--weight-heading) var(--component-title-size)/var(--leading-component-title) var(--font-heading);margin:0 0 var(--space-4)}
:where(.step-number){font:400 var(--step-number-size)/1 var(--font-heading)}
:where(.aurema-page) :focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}
.feature-card .component-title,.icon-box .component-title{font-size:var(--component-title-size)}
.section-header{margin-bottom:var(--space-7)}
.icon-box{display:grid;grid-template-columns:64px minmax(0,1fr);gap:var(--space-5);align-items:start}
.icon-box__icon{display:grid;place-items:center;width:64px;height:64px;padding:var(--space-4);background:var(--color-accent);border-radius:var(--radius-small)}
.icon-box__icon img{display:block;width:100%;height:100%;object-fit:contain}
:where(.button){display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:var(--space-3) var(--space-5);border:1px solid transparent;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-brand);font:500 var(--text-body)/1.3 var(--font-body);text-decoration:none;cursor:pointer}
.section-shell{padding-block:var(--space-9)}
.page-hero{background:var(--blue);color:var(--color-white);padding-block:clamp(3rem,7vw,7rem);border-radius:0 0 var(--radius-section) var(--radius-section)}
.page-hero h1{font:400 clamp(2.5rem,5vw,5rem)/1.08 var(--font-heading);max-width:18ch;margin-bottom:var(--space-5)}
.page-hero p{max-width:60ch}.breadcrumbs{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:var(--text-small);margin-bottom:var(--space-6)}
.content-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);align-items:center}
.media-frame{margin:0;aspect-ratio:1.43;overflow:hidden;border-radius:var(--radius-card);background:var(--color-card)}.media-frame img{width:100%;height:100%;object-fit:cover}
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}
.feature-card{background:var(--color-card);padding:var(--space-6);border-radius:var(--radius-card)}
.button-secondary{background:transparent;color:var(--blue);border:1px solid var(--blue)}
.form-field{display:grid;gap:var(--space-2);font-size:var(--text-body)}
.form-field input,.form-field select,.form-field textarea{padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-small);font:inherit;min-width:0}
.faq details{border-bottom:1px solid var(--line);padding-block:var(--space-5)}.faq summary{font-weight:700;cursor:pointer;min-height:44px}.faq details p{max-width:70ch;margin-top:var(--space-4)}

@media(max-width:760px){
 .aurema-page{font-size:var(--text-body)}
 .content-split,.feature-grid{grid-template-columns:minmax(0,1fr)}
 .section-shell{padding-block:var(--space-8)}
 .section-title,h2.section-title{
  font-size:var(--mobile-section-title);line-height:var(--leading-title);
  font-family:var(--font-heading);font-weight:var(--weight-heading);
 }
 .section-title em{font-size:inherit;line-height:inherit}
 .section-subtitle.section-subtitle,p.section-subtitle{
  font-size:var(--mobile-section-subtitle);line-height:var(--leading-subtitle);
 }
 .component-title,h3.component-title,.feature-card .component-title,.icon-box .component-title{
  font-size:var(--mobile-component-title);line-height:var(--leading-component-title);
  font-family:var(--font-heading);font-weight:var(--weight-heading);
 }
 .step-number,b.step-number{
  font-size:var(--mobile-step-number);line-height:1;font-family:var(--font-heading);
 }
 .why-card .step-number{width:64px;height:64px;top:-18px}
}

/* Use real font outlines and native vector antialiasing, without raster scaling. */
.aurema-page{
 -webkit-font-smoothing:antialiased;
 -moz-osx-font-smoothing:grayscale;
 text-rendering:optimizeLegibility;
 font-kerning:normal;
 font-synthesis:none;
}
.hero h1,.section-title,h2.section-title,.component-title,h3.component-title{
 font-weight:var(--weight-heading);
}
svg{shape-rendering:geometricPrecision;text-rendering:optimizeLegibility}
img[src$=".svg"]{image-rendering:auto}

/* Shared entrance and ambient motion. No layout shifts. */
@media(prefers-reduced-motion:no-preference){
 .reveal-pending{
  opacity:0;transform:translateY(var(--motion-reveal-distance));
  transition:opacity var(--motion-reveal-duration) var(--motion-reveal-easing) var(--reveal-delay,0ms),transform var(--motion-reveal-duration) var(--motion-reveal-easing) var(--reveal-delay,0ms);
 }
 .reveal-pending.is-revealed,.reveal-pending:focus-within{opacity:1;transform:none}
 .header-enter{animation:aurema-header-enter var(--motion-header-duration) var(--motion-reveal-easing) var(--header-delay,0ms) both}
 .header-enter:focus-within{animation:none}
 .floating-point{animation:aurema-float var(--float-duration,6s) ease-in-out var(--float-phase,0s) infinite;animation-play-state:paused}
 .floating-point.is-floating{animation-play-state:running}
 .aurema-page.is-page-hidden .floating-point{animation-play-state:paused}
 .floating-point.one{--float-duration:6.4s;--float-phase:-1s}
 .floating-point.two{--float-duration:7.2s;--float-phase:-3s}
 .floating-point.three{--float-duration:5.8s;--float-phase:-2s}
 @keyframes aurema-header-enter{from{opacity:.15;transform:translateY(8px)}to{opacity:1;transform:none}}
 @keyframes aurema-float{0%,100%{transform:translateY(0)}50%{transform:translateY(calc(-1 * var(--motion-float-distance)))}}
}
@media(prefers-reduced-motion:reduce){.reveal-pending,.header-enter,.floating-point{opacity:1;transform:none;transition:none;animation:none}}
@media print{.reveal-pending,.header-enter,.floating-point{opacity:1;transform:none;transition:none;animation:none}}

/* Centered section introduction and native smooth anchor navigation. */
.section-header--center{text-align:center}
.section-header--center .section-subtitle{margin-inline:auto}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}html.is-wheel-scrolling{scroll-behavior:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Contact form variant: soft translucent fields and compact consent row. */
.contact .contact-form{gap:25px;min-width:0}
.contact .contact-form .contact-field{
 width:100%;min-height:44px;height:44px;border:0;border-radius:18px;
 padding:11px 19px;background:rgba(217,229,239,.76);color:var(--color-brand);
 font:400 .875rem/1.45 var(--font-body);box-shadow:none;backdrop-filter:blur(3px);
}
.contact .contact-form .contact-field::placeholder{color:var(--color-brand);opacity:1}
.contact .contact-form textarea.contact-field{height:140px;min-height:140px;padding-top:18px;resize:vertical}
.contact .contact-form select.contact-field{
 appearance:none;padding-right:46px;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7' viewBox='0 0 10 7'%3E%3Cpath d='M0 1h10L5 7Z' fill='%23123f6c'/%3E%3C/svg%3E");
 background-repeat:no-repeat;background-position:right 22px center;
}
.contact .contact-form .contact-bottom{gap:16px;margin-top:3px;align-items:center}
.contact .contact-form .contact-consent{gap:15px;font:400 .875rem/1.4 var(--font-body);cursor:pointer}
.contact .contact-form .contact-consent input{
 appearance:none;flex:0 0 15px;width:15px;height:15px;min-height:0;margin:0;
 border:1px solid rgba(255,255,255,.85);border-radius:50%;background:transparent;cursor:pointer;
}
.contact .contact-form .contact-consent input:checked{
 background-color:var(--color-accent);border-color:var(--color-accent);
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 8 3 3 5-6' fill='none' stroke='%23123f6c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.contact .privacy-label{text-decoration:underline;text-underline-offset:2px}
.contact .contact-form .contact-bottom .button{min-height:42px;padding:11px 27px;font:700 .875rem/1.4 var(--font-body);border-radius:var(--radius-pill)}
/* Text-entry controls use their field surface instead of the global outline. */
.aurema-page :is(input,select,textarea):focus-visible{outline:none;box-shadow:none}
@media(max-width:380px){
 .contact .contact-form .contact-bottom{flex-wrap:wrap}
 .contact .contact-form .contact-bottom .button{margin-left:auto}
}

/* Service-page sections: reusable additions, shared by every service draft. */
.draft-ribbon{text-align:center;background:var(--color-accent);color:var(--color-brand);font:400 var(--text-small)/1.4 var(--font-body);padding:8px 24px}
.service-hero{background:var(--color-brand);color:var(--color-white);border-radius:0 0 var(--radius-section) var(--radius-section);overflow:hidden}
.service-hero__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:var(--space-8);align-items:center;padding-block:var(--space-7) var(--space-8)}
.service-hero h1{font:var(--weight-heading) clamp(2.7rem,4.5vw,5rem)/1.07 var(--font-heading);margin:0 0 var(--space-5);max-width:18ch}
.service-hero h1 em{font-style:normal;color:var(--color-accent)}
.service-hero__copy>p{max-width:50ch;margin:0 0 var(--space-6)}
.service-hero .breadcrumbs{opacity:.8}
.service-tabs{display:flex;gap:var(--space-3);flex-wrap:wrap;padding-block:var(--space-6);border-bottom:1px solid var(--color-border)}
.service-tabs a{display:inline-flex;align-items:center;min-height:44px;padding:10px 22px;border:1px solid var(--color-border);border-radius:var(--radius-pill);font-size:var(--text-body);text-decoration:none}
.service-tabs a[aria-current=page]{background:var(--color-accent);border-color:var(--color-accent)}
.placeholder-media{margin:0;overflow:hidden;border-radius:var(--radius-card);background:var(--color-card)}
.placeholder-media>img{display:block;width:100%;height:auto;aspect-ratio:1.35;object-fit:cover}
.placeholder-media>figcaption{padding:10px 16px;font:400 var(--text-small)/1.4 var(--font-body);color:var(--color-muted);background:var(--color-card)}
.section-eyebrow{font:400 var(--text-body)/1.45 var(--font-body);color:var(--color-muted);margin:0 0 var(--space-3)}
.section-header .section-title{margin-bottom:var(--space-5)}
.benefit-card{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-7);border-radius:var(--radius-card)}
.benefit-card .component-title{margin:0}.benefit-card p{margin:0}
.solution-highlight{position:relative;padding:var(--space-8);background:var(--color-brand);color:var(--color-white);border-radius:var(--radius-card)}
.solution-highlight__number{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:var(--space-5);border-radius:50%;background:var(--color-accent);color:var(--color-brand);font:var(--weight-heading) 2rem/1 var(--font-heading)}
.solution-highlight .component-title{font:var(--weight-heading) clamp(1.5rem,2.5vw,2.2rem)/1.2 var(--font-heading);margin-bottom:var(--space-5)}
.solution-highlight .text-link{color:var(--color-accent)}
.solution-section{background:var(--color-card);border-radius:var(--radius-section)}
.solution-list{list-style:none;padding:0;margin:var(--space-6) 0 0;display:grid;gap:var(--space-5)}
.solution-list li{display:grid;grid-template-columns:42px minmax(0,1fr);gap:var(--space-4);padding-block:var(--space-4);border-top:1px solid var(--color-border)}
.solution-list__number{font:var(--weight-heading) 1.5rem/1.2 var(--font-heading);color:var(--color-brand)}
.solution-list .component-title{margin:0 0 var(--space-2)}.solution-list p{margin:0}
.project-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-5);list-style:none;padding:0;margin:0}
.project-step{position:relative;min-width:0;padding:var(--space-6);background:var(--color-card);border-radius:var(--radius-card)}
.project-step .step-number{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--color-brand);color:var(--color-accent);font-size:var(--mobile-step-number);margin-bottom:var(--space-5)}
.project-step .component-title{margin-bottom:var(--space-3)}.project-step p{font-size:var(--text-body);margin:0}
.faq-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--space-8);align-items:start}
.faq-layout .faq details:first-child{padding-top:0}
.faq-layout .faq summary{font:var(--weight-heading) var(--component-title-size)/1.3 var(--font-heading)}
.service-cta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);background:var(--color-brand);color:var(--color-white);padding:var(--space-8);border-radius:var(--radius-section);margin-bottom:var(--space-9)}
.service-cta .section-title{margin:0 0 var(--space-5)}.service-cta .section-subtitle{max-width:55ch}
.service-cta .button{flex-shrink:0}
.service-page .section-title{margin-bottom:var(--space-5)}
.service-page .content-split>div>p:not(.section-eyebrow):not(.section-subtitle){margin-bottom:var(--space-4)}
.service-page .footer{margin-top:var(--space-8)}
.service h3 a{text-decoration:none}.service h3 a:hover{text-decoration:underline;text-underline-offset:4px}
@media(min-width:761px) and (max-width:1150px){
 .project-steps{grid-template-columns:repeat(3,minmax(0,1fr))}
 .benefit-card{padding:var(--space-6)}
 .service-hero__grid{gap:var(--space-6)}
}
@media(max-width:760px){
 .service-hero__grid,.faq-layout{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}
 .service-hero__grid{padding-top:var(--space-5)}
 .service-hero h1{font-size:clamp(2.7rem,10vw,3.6rem)}
 .service-tabs{gap:var(--space-2)}.service-tabs a{padding:9px 15px;font-size:var(--text-small)}
 .benefit-card,.solution-highlight{padding:var(--space-6)}
 .project-steps{grid-template-columns:minmax(0,1fr)}
 .project-step{display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:var(--space-5)}
 .project-step .step-number{grid-row:1/3;margin-bottom:0}.project-step p{grid-column:2}
 .service-cta{flex-direction:column;align-items:flex-start;padding:var(--space-6);gap:var(--space-6);border-radius:var(--radius-card);margin-bottom:var(--space-8)}
 .faq-layout .faq summary{font-size:var(--mobile-component-title)}
}

/* PDF-led photovoltaic layout and contact-page blocks. */
.page-banner{min-height:clamp(540px,43.5vw,752px);color:var(--color-white);background:linear-gradient(90deg,rgba(18,63,108,.77),rgba(18,63,108,.67)),var(--page-banner-image,url('pv-hero.webp')) center/cover;border-radius:0 0 var(--radius-section) var(--radius-section);overflow:hidden}
.page-banner__content{padding-block:clamp(3rem,5.5vw,6rem)}
.outline-label{display:inline-flex;padding:6px 15px;border:1px solid currentColor;border-radius:var(--radius-pill);font:500 var(--text-small)/1.35 var(--font-body)}
.page-banner h1{font:var(--weight-heading) clamp(3rem,4.6vw,5rem)/1.07 var(--font-heading);margin:var(--space-5) 0 var(--space-7)}
.page-banner__bottom{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:var(--space-7)}
.page-banner__bottom>p{max-width:55ch;margin:0;font-size:var(--text-body)}
.action-row{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-6);flex-wrap:wrap}
.page-banner .text-link{color:var(--color-accent)}
.solar-overview{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-9);align-items:center}
.solar-overview figure{margin:0}.solar-overview img{width:100%;height:auto;display:block}
.solar-overview .section-title{margin:0 0 var(--space-6)}.solar-overview p{max-width:55ch;margin:0}
.configurator-reserve{width:calc(100% - 80px);max-width:1648px;margin:var(--space-6) auto;min-height:clamp(420px,45vw,780px);border-radius:var(--radius-section);background:#f1f2f2;display:grid;place-items:center;padding:var(--space-8)}
.configurator-reserve__slot{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-3);min-height: 50vh}
.configurator-reserve__slot .component-title{margin:0;text-transform:uppercase}.configurator-reserve__slot p{font-size:var(--text-small);color:var(--color-muted);margin:0}
.workflow-rail{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-6);list-style:none;padding:0;margin:0}
.workflow-rail::before{content:'';position:absolute;top:32px;left:0;right:0;height:1px;background:var(--color-border)}
.workflow-rail li{position:relative;text-align:center;min-width:0}.workflow-rail .icon-box__icon{margin:0 auto var(--space-5);position:relative}
.workflow-rail .component-title{font-size:var(--component-title-size);margin:0 0 var(--space-3)}.workflow-rail p{font-size:var(--text-body);line-height:1.45;margin:0}
.promo-panel{display:grid;grid-template-columns:100px 1fr auto;align-items:center;gap:var(--space-6);padding:var(--space-7);background:var(--color-card);border-radius:var(--radius-card);margin-block:var(--space-5) var(--space-6)}
.promo-panel__icon{width:100px;height:100px;border-radius:50%;background:var(--color-border);display:grid;place-items:center}.promo-panel__icon img{width:48px;height:48px}
.promo-panel .outline-label{margin-bottom:var(--space-4)}.promo-panel .component-title{font-size:clamp(1.5rem,2.4vw,2.5rem);margin:0 0 var(--space-2)}.promo-panel p{margin:0;font-size:var(--text-body)}
.button-brand,.button-brand.pill{background:var(--color-brand);color:var(--color-white)}
.solution-tiles{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-7)}
.solution-tile{display:block;position:relative;min-height:350px;border-radius:var(--radius-card);overflow:hidden;text-decoration:none}
.solution-tile>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.solution-tile::before{content:'';position:absolute;inset:0;z-index:1}
.solution-tile--lime{color:var(--color-brand)}.solution-tile--lime::before{background:linear-gradient(115deg,rgba(200,245,30,.94),rgba(200,245,30,.74))}
.solution-tile--blue{color:var(--color-white)}.solution-tile--blue::before{background:linear-gradient(115deg,rgba(18,63,108,.91),rgba(18,63,108,.74))}
.solution-tile>div{position:relative;z-index:2;padding:var(--space-7);display:flex;flex-direction:column;min-height:350px;align-items:flex-start}
.solution-tile .component-title{font-size:clamp(1.5rem,2.6vw,2.75rem);line-height:1.05;margin:0 0 var(--space-5)}.solution-tile--blue .component-title{color:var(--color-accent)}
.solution-tile p{font-size:var(--text-body);line-height:1.45;max-width:45ch;margin:0 0 var(--space-6)}
.solution-tile__action{margin-top:auto;display:inline-flex;padding:8px 14px;font-size:var(--text-small);border-radius:var(--radius-small);background:var(--color-brand);color:var(--color-accent)}
.solution-tile--blue .solution-tile__action{background:var(--color-accent);color:var(--color-brand)}
.service-contact{margin-top:var(--space-7)}
.contacts-hero{background:var(--color-brand);color:var(--color-white);border-radius:0 0 var(--radius-section) var(--radius-section)}
.contacts-hero__content{padding-block:var(--space-7) var(--space-8)}
.contacts-hero h1{font:var(--weight-heading) clamp(2.8rem,4.6vw,5rem)/1.07 var(--font-heading);margin:var(--space-5) 0;max-width:22ch}.contacts-hero__content p{max-width:55ch;margin:0}
.contact-methods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}
.contact-methods .feature-card{padding:var(--space-6);min-width:0}.contact-methods .section-eyebrow{display:block;margin-bottom:var(--space-3)}
.contact-methods .component-title{margin-bottom:var(--space-5)}.contact-methods p{font-size:var(--text-body);margin-top:var(--space-4)}
.contact-detail{font-size:var(--text-large);overflow-wrap:anywhere;display:block;text-decoration:none;margin-bottom:var(--space-4)}
.contacts-page .contact{margin-top:0;margin-bottom:var(--space-7)}
.contacts-page .contact h2 em{display:block}.contacts-page .contact-grid{min-height:0}
.map-reserve{min-height:360px;border-radius:var(--radius-card);background:var(--color-card);display:flex;flex-direction:column;gap:var(--space-3);align-items:center;justify-content:center;text-align:center;padding:var(--space-6)}.map-reserve span{font-size:var(--text-small);color:var(--color-muted)}
@media(min-width:761px) and (max-width:1100px){.solar-overview{gap:var(--space-7)}.promo-panel{grid-template-columns:80px 1fr}.promo-panel>.button{grid-column:2;justify-self:start}.promo-panel__icon{width:80px;height:80px}.solution-tile>div{padding:var(--space-6)}.workflow-rail{gap:var(--space-4)}}
@media(max-width:760px){
 .page-banner{min-height:0}.page-banner__content{padding-block:var(--space-6) var(--space-8)}.page-banner h1{font-size:clamp(2.6rem,10vw,4rem)}
 .page-banner__bottom,.solar-overview,.solution-tiles,.contact-methods{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}
 .action-row{justify-content:flex-start}.solar-overview .section-title br{display:none}.solar-overview .section-title{max-width:18ch}
 .configurator-reserve{width:calc(100% - 24px);padding:var(--space-5);min-height:360px;border-radius:var(--radius-card)}.configurator-reserve__slot{min-height:260px}
 .workflow-rail{grid-template-columns:minmax(0,1fr);gap:var(--space-7)}.workflow-rail::before{display:none}.workflow-rail li{display:grid;grid-template-columns:64px minmax(0,1fr);column-gap:var(--space-5);text-align:left}.workflow-rail .icon-box__icon{grid-row:1/3;margin:0}.workflow-rail p{grid-column:2}.workflow-rail .component-title{font-size:var(--mobile-component-title)}
 .promo-panel{grid-template-columns:1fr;padding:var(--space-6)}.promo-panel__icon{display:none}.promo-panel>.button{justify-self:start}
 .solution-tile,.solution-tile>div{min-height:320px}.solution-tile>div{padding:var(--space-6)}.solution-tile .component-title{font-size:var(--mobile-component-title)}
 .contacts-hero h1{font-size:clamp(2.6rem,10vw,4rem)}.contacts-hero__content{padding-top:var(--space-5)}.map-reserve{min-height:280px}
}

/* One photo-banner component for all inner pages. */
.page-banner{position:relative;z-index:3;overflow:visible}
.page-banner>header{position:relative;z-index:10}
.page-banner__content{position:relative;z-index:1}
.page-banner--solar{--page-banner-image:url('pv-hero.webp')}
.page-banner--surveillance{--page-banner-image:url('camera.webp')}
.page-banner--alarm{--page-banner-image:url('alarm.webp')}
.page-banner--contacts{--page-banner-image:url('contact.webp')}
.page-banner--about{--page-banner-image:url('pv-business.webp')}
/* Native disclosure: touch, keyboard and desktop hover share the same markup. */
.links{align-items:center}
.nav-services{position:relative;font:500 var(--text-body)/1.4 var(--font-body)}
.nav-services>summary{display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer;min-height:44px;color:var(--color-white)}
.nav-services>summary::-webkit-details-marker{display:none}
.nav-services>summary::after{content:'';width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-4px}
.nav-services[open]>summary::after{transform:rotate(225deg);margin-top:4px}
.nav-services__panel{position:absolute;top:100%;left:-20px;z-index:50;width:270px;padding:10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:0 12px 30px rgba(18,63,108,.16)}
.nav-services:not([open])>.nav-services__panel{display:none}
.nav-services__panel a{display:flex;align-items:center;min-height:44px;padding:10px 14px;color:var(--color-brand);font-size:var(--text-body);text-decoration:none;border-radius:var(--radius-small)}
.nav-services__panel a:hover,.nav-services__panel a[aria-current=page]{background:var(--color-accent);text-decoration:none}
.founder-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
.founder-card{padding:var(--space-6)}.founder-card .component-title{margin:var(--space-5) 0 var(--space-3)}.founder-card p{margin:0;font-size:var(--text-body)}
.founder-initial{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--color-accent);font:var(--weight-heading) 2rem/1 var(--font-heading)}
.project-steps--four{grid-template-columns:repeat(4,minmax(0,1fr))}
.mission-panel{padding:var(--space-8);background:var(--color-brand);color:var(--color-white);border-radius:var(--radius-section);margin-bottom:var(--space-8)}
.mission-panel .section-eyebrow{color:var(--color-accent)}.mission-panel .section-title{margin:0 0 var(--space-5)}
.mission-values{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}.mission-values span{padding:8px 18px;border:1px solid currentColor;border-radius:var(--radius-pill);font-size:var(--text-body)}
@media(max-width:1000px) and (min-width:761px){.links{gap:24px}.project-steps--four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .drawer.open{z-index:50;max-height:70svh;overflow-y:auto}
 .drawer .nav-services>summary{padding:10px;font-weight:700}
 .drawer .nav-services__panel{position:static;width:100%;padding:0 0 8px 12px;background:transparent;border:0;box-shadow:none}
 .drawer .nav-services__panel a{font-weight:400;color:var(--color-white)}
 .drawer .nav-services__panel a:hover,.drawer .nav-services__panel a[aria-current=page]{color:var(--color-brand)}
 .founder-grid{gap:var(--space-3)}.founder-card{padding:var(--space-5)}
 .project-steps--four{grid-template-columns:minmax(0,1fr)}
 .mission-panel{padding:var(--space-6);border-radius:var(--radius-card)}
}

/* Photovoltaic composition shared by all three service pages. */
.service-overview figure{overflow:hidden;border-radius:var(--radius-card)}
.service-overview .placeholder-media>img{aspect-ratio:1.35;object-fit:cover}
.service-overview p+p{margin-top:var(--space-4)}
.service-overview .section-eyebrow{margin-bottom:var(--space-3)}
.service-catalog .footer{margin-top:var(--space-8)}
.service-reference__number{color:var(--color-brand);font:var(--weight-heading) var(--step-number-size)/1 var(--font-heading)}
.service-reference .component-title{font-size:var(--component-title-size)}
.workflow-rail__number{display:block;font:var(--weight-heading) var(--mobile-step-number)/1 var(--font-heading);color:var(--color-brand);margin-bottom:var(--space-3)}
.service-benefit-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
.service-benefit-tiles .solution-tile,.service-benefit-tiles .solution-tile>div{min-height:320px}
.service-benefit-tiles .icon-box__icon{margin-bottom:var(--space-5)}
.service-component-tiles .solution-list__number{color:inherit;margin-bottom:var(--space-5);font-size:var(--mobile-step-number)}
.service-component-tiles .solution-tile:last-child:nth-child(odd){grid-column:1/-1}
.service-component-tiles .solution-tile:last-child:nth-child(odd) p{max-width:65ch}
.service-catalog .service-cta{background:linear-gradient(100deg,rgba(18,63,108,.9),rgba(18,63,108,.76)),url('contact.webp') center/cover}
@media(min-width:761px) and (max-width:1100px){
 .service-benefit-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
 .service-benefit-tiles .solution-tile:last-child{grid-column:1/-1}
}
@media(max-width:760px){
 .service-overview .section-title{max-width:none}
 .service-overview .section-title br{display:none}
 .service-benefit-tiles{grid-template-columns:minmax(0,1fr)}
 .service-benefit-tiles .solution-tile,.service-benefit-tiles .solution-tile>div{min-height:0}
 .service-catalog .workflow-rail li:has(.workflow-rail__number){grid-template-columns:64px minmax(0,1fr)}
 .service-catalog .workflow-rail li:has(.workflow-rail__number) .icon-box__icon{grid-row:1/4}
 .service-catalog .workflow-rail__number{grid-column:2;margin-bottom:var(--space-2)}
 .service-catalog .workflow-rail li:has(.workflow-rail__number) .component-title{grid-column:2}
 .service-reference .component-title{font-size:var(--mobile-component-title)}
}
