:root {
  --ink: #171323;
  --ink-soft: #241d31;
  --pink: #e5007d;
  --lilac: #c9a7e3;
  --paper: #f8f6fa;
  --muted: #706b79;
  --line: #e9e4ed;
  --white: #fff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: 'DM Sans', sans-serif; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }

.site-header {
  height: 84px; padding: 0 7.2%; display: flex; align-items: center; justify-content: space-between;
  background: rgba(255,255,255,.96); position: sticky; top: 0; z-index: 20; border-bottom: 1px solid #1713230b;
  backdrop-filter: blur(14px);
}
.brand img { display: block; width: 120px; height: 70px; object-fit: contain; }
.nav-links { display: flex; align-items: center; gap: 26px; font-size: 12px; font-weight: 700; }
.nav-links > a:not(.nav-cta) { transition: color .2s ease; }
.nav-links > a:not(.nav-cta):hover { color: var(--pink); }
.nav-cta { padding: 13px 17px; border-radius: 3px; background: var(--ink); color: #fff; }
.nav-cta span { color: #f6a6d2; margin-left: 9px; }
.social-nav,.footer-social { display: inline-flex; align-items: center; gap: 7px; }
.menu-toggle { display: none; border: 0; background: transparent; color: var(--ink); font-size: 25px; cursor: pointer; }

.hero {
  min-height: 620px; padding: 76px 7.2% 70px; display: grid; grid-template-columns: .92fr 1.08fr; gap: 5.5%; align-items: center;
  color: #fff; background: radial-gradient(ellipse at 86% 12%, #45304d 0, transparent 37%), linear-gradient(122deg, #171323 0%, #211a2c 58%, #21182a 100%); position: relative; overflow: hidden;
}
.hero::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .12;
  background-image: linear-gradient(#ffffff 1px, transparent 1px), linear-gradient(90deg, #ffffff 1px, transparent 1px);
  background-size: 54px 54px; mask-image: linear-gradient(90deg, transparent 3%, #000 100%);
}
.hero::after { content: ''; position: absolute; width: 340px; height: 340px; border-radius: 50%; right: -180px; bottom: -200px; border: 1px solid #e5007d66; box-shadow: 0 0 0 25px #e5007d0d, 0 0 0 56px #c9a7e30a; }
.hero-copy { position: relative; z-index: 1; max-width: 510px; }
.eyebrow { display: flex; align-items: center; gap: 10px; color: #e6bfdc; font-size: 9px; font-weight: 700; letter-spacing: 2px; }
.eyebrow-dot,.status-dot { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: var(--pink); box-shadow: 0 0 0 5px #e5007d25; }
.hero h1 { margin: 28px 0 20px; font: 700 clamp(49px, 5.6vw, 76px)/1.02 Manrope, sans-serif; letter-spacing: -4px; }
.hero h1 span { color: var(--lilac); }
.hero-copy > p { max-width: 410px; margin: 0 0 25px; color: #c7c2ce; font-size: 14px; line-height: 1.8; }
.hero-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.button { display: inline-flex; align-items: center; padding: 14px 17px; border-radius: 3px; font-size: 11px; font-weight: 700; transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--pink); color: #fff; box-shadow: 0 8px 24px #e5007d40; }
.button-primary:hover { background: #c9006e; }
.button-primary span { margin-left: 13px; color: #ffd2e9; }
.button-quiet { color: #fff; border: 1px solid #ffffff2b; }
.button-quiet span { margin-left: 12px; color: #e5a8cf; }
.hero-location { margin-top: 35px; color: #aaa4b4; font-size: 10px; }
.pin { margin-right: 7px; color: #f06eae; font-size: 16px; }

.hero-art { min-height: 410px; height: min(43vw, 490px); position: relative; border-radius: 22px 22px 22px 115px; isolation: isolate; }
.hero-art::before { content: ''; position: absolute; z-index: -1; inset: 15px -14px -14px 14px; border: 1px solid #d795ce80; border-radius: inherit; }
.hero-photo { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 58%; border-radius: inherit; box-shadow: 0 28px 70px #0007; }
.hero-art::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(180deg, #17132333 0%, transparent 32%, transparent 53%, #171323b8 100%); pointer-events: none; }
.hero-photo-top { position: absolute; z-index: 2; top: 22px; left: 23px; display: flex; align-items: center; gap: 9px; padding: 10px 13px; border: 1px solid #ffffff40; border-radius: 30px; background: #17132366; color: #fff; font-size: 8px; font-weight: 700; letter-spacing: 1.25px; backdrop-filter: blur(8px); }
.hero-stat { position: absolute; z-index: 2; left: -23px; bottom: 42px; min-width: 190px; padding: 16px 20px 17px; border-left: 3px solid var(--pink); background: #fff; color: var(--ink); box-shadow: 0 16px 45px #0004; }
.hero-stat strong { display: block; font: 800 36px/1 Manrope, sans-serif; letter-spacing: -1.8px; }
.hero-stat strong span { color: var(--pink); font-size: 17px; letter-spacing: 0; }
.hero-stat small { display: block; margin-top: 7px; color: #625c6b; font-size: 10px; font-weight: 700; }
.hero-stat .stat-location { margin-top: 3px; color: #928b9c; font-size: 9px; font-weight: 500; }
.hero-photo-bottom { position: absolute; z-index: 2; right: 23px; bottom: 23px; left: 185px; display: flex; justify-content: space-between; gap: 12px; color: #fff; font-size: 9px; font-weight: 700; }
.hero-photo-bottom span:first-child { padding: 9px 11px; border: 1px solid #ffffff55; border-radius: 2px; background: #17132355; backdrop-filter: blur(8px); }
.hero-photo-bottom span:last-child { align-self: center; color: #f8dfed; }
.hero-photo-bottom b { color: #fff; margin-left: 5px; }
.hero-index { position: absolute; right: 7.2%; bottom: 22px; color: #aaa4b4; font-size: 9px; font-weight: 700; letter-spacing: 1.5px; }
.hero-index span { color: var(--pink); padding: 0 7px; }

.section-pad { padding: 91px 7.2%; }
.services { background: #fff; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 38px; }
.dark-eyebrow { color: var(--pink); }
h2 { margin: 16px 0 0; font: 700 clamp(36px, 4vw, 51px)/1.08 Manrope, sans-serif; letter-spacing: -2.5px; }
h2 span { color: var(--lilac); }
.section-heading > p { max-width: 315px; margin: 0 0 4px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.service-card { min-height: 272px; padding: 20px; display: flex; flex-direction: column; align-items: flex-start; background: var(--paper); border: 1px solid transparent; position: relative; overflow: hidden; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.service-card::after { content: ''; position: absolute; right: -40px; top: -52px; width: 110px; height: 110px; border-radius: 50%; background: #e5007d0a; transition: transform .25s ease; }
.service-card:hover { transform: translateY(-5px); border-color: #e4d8ea; box-shadow: 0 17px 35px #17132312; }
.service-card:hover::after { transform: scale(1.4); }
.card-energy { background: #f8f2fa; }
.card-water { background: #f2f7f9; }
.card-home { background: #fbf2f7; }
.card-security { background: #f4f1f8; }
.card-top { width: 100%; display: flex; align-items: center; justify-content: space-between; position: relative; z-index: 1; }
.service-icon { display: grid; place-items: center; width: 43px; height: 43px; border-radius: 13px; background: #fff; color: var(--pink); font-size: 22px; box-shadow: 0 5px 15px #1713230a; }
.card-number { color: #a9a2b0; font-size: 9px; font-weight: 700; }
.service-card h3 { margin: 26px 0 9px; font: 700 17px/1.25 Manrope, sans-serif; letter-spacing: -.4px; }
.service-card p { margin: 0 0 16px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.service-card > a { margin-top: auto; font-size: 10px; font-weight: 700; }
.service-card > a span { margin-left: 7px; color: var(--pink); }

.projects { background: #f2eef5; }
.project-controls { display: flex; justify-content: center; gap: 9px; margin: -20px 0 17px; }
.project-controls button { width: 38px; height: 38px; border: 1px solid #ddd5e3; border-radius: 50%; background: #fff; color: var(--ink); font-size: 17px; cursor: pointer; transition: background .2s, color .2s, transform .2s; }
.project-controls button:hover { background: var(--ink); color: #fff; transform: translateY(-2px); }
.project-grid { display: flex; max-width: 420px; margin: 0 auto; gap: 14px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 0 0 4px; }
.project-grid::-webkit-scrollbar { display: none; }
.project-card { flex: 0 0 100%; min-width: 100%; padding: 15px; display: flex; flex-direction: column; background: #fff; border: 1px solid #e9e2ed; scroll-snap-align: start; scroll-snap-stop: always; }
.project-link { color: inherit; text-decoration: none; cursor: pointer; transition: border-color .2s, box-shadow .2s; }
.project-link:hover { border-color: #d4bfdc; box-shadow: 0 16px 34px #17132312; }
.project-link:focus-visible { outline: 3px solid var(--pink); outline-offset: 4px; }
.project-image { width: 100%; aspect-ratio: 16/10; overflow: hidden; background: #eee9f2; margin-bottom: 15px; }
.project-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .3s ease; }
.project-link:hover .project-image img { transform: scale(1.035); }
.project-caption { padding: 0 3px 4px; }
.project-caption > span { color: var(--pink); font-size: 8px; font-weight: 700; letter-spacing: 1.25px; }
.project-caption h3 { margin: 9px 0 7px; font: 700 18px/1.2 Manrope, sans-serif; letter-spacing: -.4px; }
.project-caption p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.65; }

.about { min-height: 350px; padding: 78px 12%; display: flex; align-items: center; gap: 8%; overflow: hidden; position: relative; background: var(--ink-soft); color: #fff; }
.about-mark { flex: 0 0 240px; width: 240px; height: 205px; display: grid; place-items: center; position: relative; background: radial-gradient(ellipse, #e5007d20 0%, #c9a7e30c 46%, transparent 74%); }
.about-mark img { width: 225px; height: 195px; object-fit: contain; filter: drop-shadow(0 0 10px #e5007d40) drop-shadow(0 8px 20px #0005); }
.about-copy { position: relative; z-index: 1; max-width: 485px; }
.about-copy h2 { font-size: 45px; }
.about-copy h2 span { color: #d7b4e7; }
.about-copy p { max-width: 440px; margin: 17px 0; color: #c6c0cd; font-size: 12px; line-height: 1.8; }
.text-link { color: #fff; font-size: 11px; font-weight: 700; }
.text-link span { margin-left: 8px; color: #f09bc8; }
.about-decoration { position: absolute; right: 3%; bottom: -70px; color: #ffffff06; font: 800 180px Manrope, sans-serif; letter-spacing: -17px; }

.contact { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; background: #fff; }
.contact-intro h2 { font-size: 47px; }
.contact-intro > p { max-width: 370px; margin: 17px 0 22px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.contact-details { padding-top: 8px; }
.contact-row { display: grid; grid-template-columns: 110px 1fr; padding: 17px 0; border-bottom: 1px solid var(--line); }
.contact-label { padding-top: 3px; color: #928b9b; font-size: 8px; font-weight: 700; letter-spacing: 1.3px; }
.contact-row div { display: flex; flex-direction: column; gap: 6px; font-size: 12px; font-weight: 600; }
.contact-row .contact-emails { align-items: flex-start; gap: 8px; }
.contact-emails a { display: block; max-width: 100%; padding: 7px 11px; border: 1px solid var(--line); border-left: 2px solid var(--pink); border-radius: 0 5px 5px 0; background: #fbf9fc; overflow-wrap: anywhere; transition: border-color .2s, background .2s; }
.contact-emails a:hover { border-color: #d9c6e2; background: #f8f1fa; }
.contact-row a:hover { color: var(--pink); }
.social-links { display: flex; justify-content: center; align-items: center; gap: 11px; padding-top: 19px; }
.instagram-link { display: flex; min-width: 145px; align-items: center; justify-content: center; gap: 8px; padding: 10px; border: 1px solid var(--line); border-radius: 3px; font-size: 10px; font-weight: 700; transition: border-color .2s, background .2s; }
.instagram-link:hover { border-color: #d6bfdc; background: #fbf8fc; }
.instagram-arrow { margin-left: 2px; color: var(--pink); }
.ig-mark { width: 18px; height: 18px; flex: 0 0 18px; fill: none; stroke: currentColor; stroke-width: 2; vertical-align: middle; }
.ig-mark .ig-dot { fill: currentColor; stroke: none; }
.instagram-link .ig-mark { width: 20px; height: 20px; flex-basis: 20px; color: var(--pink); }
.facebook-mark { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: #1877f2; color: #fff; font: bold 16px Arial, sans-serif; }

.site-footer { min-height: 74px; padding: 16px 7.2%; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: var(--ink); color: #aaa4b4; font-size: 9px; }
.footer-brand { color: #fff; font: 800 14px Manrope, sans-serif; }
.footer-brand span { display: block; margin-top: 2px; color: #d4a9d0; font: 700 7px 'DM Sans', sans-serif; letter-spacing: 1px; }
.site-footer a:hover { color: #fff; }
.footer-social .ig-mark { color: #f09bc8; }

@media (max-width: 980px) {
  .site-header { padding: 0 5%; }
  .nav-links { gap: 16px; font-size: 11px; }
  .hero { padding-right: 6%; padding-left: 6%; gap: 4%; }
  .hero h1 { font-size: clamp(48px, 6.1vw, 66px); }
  .hero-art { min-height: 360px; }
  .section-pad { padding-right: 6%; padding-left: 6%; }
  .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about { padding-right: 8%; padding-left: 8%; }
}

@media (max-width: 700px) {
  .site-header { height: 72px; padding: 0 6%; }
  .brand img { width: 105px; height: 62px; }
  .menu-toggle { display: block; }
  .nav-links { display: none; position: absolute; top: 72px; right: 0; left: 0; z-index: 20; padding: 12px 7% 20px; flex-direction: column; align-items: stretch; gap: 0; background: #fff; box-shadow: 0 16px 30px #17132318; }
  .nav-links.open { display: flex; }
  .nav-links > a { padding: 12px 0; }
  .nav-links .nav-cta { margin-top: 7px; padding: 13px; text-align: center; }
  .hero { display: block; padding: 56px 7% 58px; }
  .hero h1 { margin-top: 23px; font-size: clamp(48px, 12vw, 62px); letter-spacing: -3px; }
  .hero-copy > p { font-size: 13px; }
  .hero-location { margin-top: 23px; }
  .hero-art { height: min(82vw, 390px); min-height: 280px; margin: 44px 10px 10px 17px; border-radius: 18px 18px 18px 82px; }
  .hero-art::before { inset: 10px -9px -9px 9px; }
  .hero-photo-top { top: 15px; left: 14px; padding: 8px 10px; font-size: 7px; }
  .hero-stat { left: -16px; bottom: 35px; min-width: 156px; padding: 12px 14px; }
  .hero-stat strong { font-size: 30px; }
  .hero-photo-bottom { right: 12px; bottom: 14px; left: 145px; flex-direction: column; align-items: flex-end; gap: 5px; font-size: 8px; }
  .hero-photo-bottom span:first-child { padding: 7px 9px; }
  .hero-index { right: 7%; bottom: 19px; }
  .section-pad { padding: 68px 7%; }
  .section-heading { display: block; margin-bottom: 27px; }
  .section-heading > p { margin-top: 14px; }
  h2 { font-size: 40px; }
  .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .service-card { min-height: 245px; padding: 15px; }
  .service-card h3 { margin-top: 21px; font-size: 15px; }
  .service-card p { font-size: 10px; }
  .project-controls { margin: -11px 0 14px; }
  .project-grid { max-width: min(100%, 390px); }
  .project-card { padding: 12px; }
  .project-image { margin-bottom: 12px; }
  .project-caption h3 { font-size: 17px; }
  .about { display: block; padding: 61px 8%; text-align: center; }
  .about-mark { width: 202px; height: 176px; margin: 0 auto 28px; }
  .about-mark img { width: 192px; height: 168px; }
  .about-copy .eyebrow { justify-content: center; }
  .about-copy { margin: 0 auto; }
  .about-copy h2 { font-size: 39px; }
  .about-copy p { margin: 16px auto; }
  .about-decoration { right: 0; bottom: -54px; font-size: 130px; }
  .contact { grid-template-columns: 1fr; gap: 34px; }
  .contact-intro h2 { font-size: 42px; }
  .contact-row { grid-template-columns: 88px 1fr; }
  .site-footer { padding: 20px 7%; flex-wrap: wrap; }
  .site-footer > span { order: 5; width: 100%; }
}

@media (max-width: 420px) {
  .hero-actions { gap: 8px; }
  .button { padding: 12px 13px; font-size: 10px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 215px; padding: 17px; }
  .social-links { gap: 7px; }
  .instagram-link { min-width: 0; flex: 1; padding: 9px 6px; font-size: 9px; }
  .contact-row { grid-template-columns: 76px 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
.project-controls{align-items:center;gap:12px}.project-pagination{display:flex;align-items:center;gap:6px}.project-pagination button{width:7px;height:7px;padding:0;border:0;border-radius:9px;background:#c9c1d0;cursor:pointer;transition:width .2s,background .2s}.project-pagination button.active{width:20px;background:var(--pink)}.project-count{min-width:48px;color:#756d7f;font-size:9px;font-weight:700;letter-spacing:.7px}.project-count i{padding:0 3px;color:var(--pink);font-style:normal}.project-controls button[data-project-direction]{display:grid;place-items:center}
.hero-photo{transition:opacity .45s ease,transform .3s ease}.hero-photo.is-fading{opacity:.15}.hero-slider-controls{position:absolute;z-index:4;top:21px;right:20px;display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid #ffffff45;border-radius:30px;background:#17132380;backdrop-filter:blur(10px)}.hero-slider-controls button{width:6px;height:6px;padding:0;border:0;border-radius:8px;background:#ffffff9c;cursor:pointer;transition:width .2s,background .2s}.hero-slider-controls button.active{width:17px;background:#f27ebc}.hero-slider-controls span{margin-left:3px;color:#fff;font-size:8px;font-weight:700;letter-spacing:.7px}@media(max-width:700px){.hero-slider-controls{top:14px;right:13px;padding:7px 8px;gap:5px}.hero-slider-controls button{width:5px;height:5px}.hero-slider-controls button.active{width:14px}}
.service-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.card-fire{background:#fff5f0}.card-fire .service-icon{color:#e36552}.service-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:1100px){.service-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.service-card{grid-column:span 2}.service-card:nth-child(4){grid-column:2/span 2}.service-card:nth-child(5){grid-column:4/span 2}}
@media(max-width:700px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-card,.service-card:nth-child(4),.service-card:nth-child(5){grid-column:auto}.service-card:nth-child(5){grid-column:1/-1;justify-self:center;width:calc(50% - 5px);min-width:0}}
@media(max-width:420px){.service-grid{grid-template-columns:1fr}.service-card:nth-child(5){grid-column:auto;width:100%}}
@media(max-width:700px){html{scroll-padding-top:82px}.section-pad{scroll-margin-top:72px}.project-grid{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}}
.scroll-reveal{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.25,1)}
.scroll-reveal.is-visible{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;transform:none;transition:none}}
.contact-row .hours-list{gap:5px}.hours-list p{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0;font-size:11px}.hours-list p span{color:var(--muted);font-weight:500}.hours-list p strong{color:var(--ink);font-size:11px;white-space:nowrap}
.facebook-nav,.footer-facebook{display:inline-flex;align-items:center;gap:7px}.facebook-nav .facebook-mark{width:17px;height:17px;font-size:13px}.site-footer .facebook-mark{width:16px;height:16px;font-size:12px}
.site-header{background:rgba(23,19,35,.98);border-bottom:0;box-shadow:none}.brand{display:flex;align-items:center;gap:9px;min-width:max-content}.brand img{width:78px;height:70px;object-fit:contain}.brand-copy strong{display:block;color:#fff;font:800 18px/1 Manrope,sans-serif;letter-spacing:-.6px}.brand-copy small{display:block;margin-top:5px;color:#e6bfdc;font-size:7px;font-weight:700;letter-spacing:1.15px;white-space:nowrap}.nav-links>a:not(.nav-cta){color:#f5f1f8}.nav-links>a:not(.nav-cta):hover{color:#f18ac3}.nav-cta{background:var(--pink);box-shadow:0 6px 18px #e5007d36}.nav-cta:hover{background:#c9006e}.menu-toggle{color:#fff}
@media(max-width:700px){.brand{gap:6px}.brand img{width:62px;height:62px}.brand-copy strong{font-size:15px}.brand-copy small{font-size:6px;letter-spacing:.8px}.nav-links{background:#211a2c;box-shadow:0 16px 30px #1713234a}.nav-links>a:not(.nav-cta){color:#f5f1f8}.nav-links>a:not(.nav-cta):hover{color:#f18ac3}.nav-links .nav-cta{background:var(--pink)}}
.site-header .brand img{width:102px;height:80px;filter:drop-shadow(0 0 8px #e5007d55) drop-shadow(0 0 18px #c9a7e326)}
@media(max-width:700px){.site-header .brand img{width:76px;height:68px}}
.scroll-progress{position:fixed;z-index:50;top:0;left:0;width:100%;height:3px;pointer-events:none;background:#ffffff12}
.scroll-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,#e5007d 0%,#f17aba 58%,#c9a7e3 100%);box-shadow:0 0 10px #e5007d70;transition:transform .1s linear}
@media(prefers-reduced-motion:reduce){.scroll-progress span{transition:none}}
.hero-photo{transition:opacity .65s cubic-bezier(.2,.7,.25,1),transform .8s cubic-bezier(.2,.7,.25,1);transform:scale(1)}

/* Scroll choreography: restrained movement, staggered by component group. */
.site-header{transition:height .38s cubic-bezier(.2,.7,.25,1),padding .38s cubic-bezier(.2,.7,.25,1),box-shadow .38s ease,background .38s ease}
.site-header.is-compact{height:70px;padding-top:0;padding-bottom:0;box-shadow:0 10px 32px #100b1c22}
.site-header.is-compact .brand img{height:58px;width:70px;transition:width .38s ease,height .38s ease}
.scroll-reveal{opacity:0;transition-property:opacity,transform;transition-duration:.78s,.9s;transition-timing-function:cubic-bezier(.2,.72,.22,1),cubic-bezier(.2,.72,.22,1);transition-delay:var(--reveal-delay,0ms);will-change:opacity,transform}
.scroll-reveal.reveal-from-bottom{transform:translate3d(0,34px,0)}
.scroll-reveal.reveal-from-left{transform:translate3d(-38px,12px,0)}
.scroll-reveal.reveal-from-right{transform:translate3d(38px,12px,0)}
.scroll-reveal.reveal-zoom{transform:translate3d(0,24px,0) scale(.975)}
.scroll-reveal.reveal-card{transform:translate3d(0,30px,0) scale(.985)}
.scroll-reveal.is-visible{opacity:1;transform:translate3d(0,0,0) scale(1)}
.hero-photo{transform:translate3d(0,var(--photo-drift,0px),0) scale(1.045);transition:opacity .65s cubic-bezier(.2,.7,.25,1),transform .45s cubic-bezier(.2,.7,.25,1)}
.project-image img{transform:scale(1.025);transition:transform .9s cubic-bezier(.2,.72,.22,1),filter .9s ease;filter:saturate(.92)}
.project-card.is-visible .project-image img{transform:scale(1);filter:saturate(1)}
.service-card{transition:transform .42s cubic-bezier(.2,.72,.22,1),box-shadow .42s ease,border-color .3s ease}
.service-card.is-visible:hover{transform:translateY(-6px)}
.section-heading h2{transition:letter-spacing .5s ease}
.section-heading.is-visible h2{letter-spacing:-2.7px}
@media(max-width:700px){
  .site-header.is-compact{height:64px}
  .site-header.is-compact .brand img{width:66px;height:58px}
  .scroll-reveal.reveal-from-left{transform:translate3d(-20px,10px,0)}
  .scroll-reveal.reveal-from-right{transform:translate3d(20px,10px,0)}
  .scroll-reveal.reveal-from-bottom,.scroll-reveal.reveal-card{transform:translate3d(0,22px,0)}
  .scroll-reveal.reveal-zoom{transform:translate3d(0,18px,0) scale(.985)}
}
@media(max-width:700px){.site-header.is-compact .nav-links{top:64px}}
@media(prefers-reduced-motion:reduce){
  .scroll-reveal,.scroll-reveal.is-visible{opacity:1;transform:none;filter:none;transition:none;will-change:auto}
  .site-header,.site-header.is-compact,.site-header.is-compact .brand img{transition:none}
  .hero-photo,.project-image img{transition:none;transform:none;filter:none}
}
.hero-photo.is-fading{opacity:.12;transform:scale(1.035)}
.site-header .brand{gap:2px;align-items:center}
.site-header .brand img{display:block;flex:0 0 auto;object-position:center;transform:translateY(1px)}
.site-header .brand-copy{display:flex;flex-direction:column;justify-content:center;align-self:center;transform:translateY(3px)}
.site-header .brand-copy strong{line-height:1}
.site-header .brand-copy small{line-height:1.15;margin-top:5px}
@media(max-width:700px){.site-header .brand{gap:1px}.site-header .brand-copy{transform:translateY(2px)}}

/* Attestazione SOA */
.soa-section{background:#f6f2f7;overflow:hidden}
.soa-heading{margin-bottom:34px}
.soa-heading h2 span{color:var(--pink)}
.soa-panel{position:relative;display:grid;grid-template-columns:minmax(230px,.78fr) minmax(0,1.5fr);gap:clamp(30px,7vw,94px);align-items:center;max-width:1060px;margin:0 auto;padding:clamp(26px,5vw,58px);border:1px solid #e9e1ec;border-radius:22px;background:linear-gradient(130deg,#fff 0%,#fff 53%,#fbf7fc 100%);box-shadow:0 22px 65px #24152e0d}
.soa-logo-wrap{display:grid;place-items:center;min-height:205px;padding:20px;background:#fff;border:1px solid #eee8f0;border-radius:16px;box-shadow:0 10px 30px #21152d0a}
.soa-logo-wrap img{display:block;width:min(100%,290px);height:auto;object-fit:contain}
.soa-copy{max-width:650px}
.soa-kicker{display:flex;align-items:center;gap:9px;color:#706678;font-size:9px;font-weight:800;letter-spacing:1.5px}
.soa-status-dot{width:8px;height:8px;border-radius:50%;background:#08749a;box-shadow:0 0 0 4px #08749a15}
.soa-copy h3{margin:16px 0 14px;color:var(--ink);font-size:clamp(26px,3.3vw,38px);line-height:1.08;letter-spacing:-1.3px}
.soa-copy h3 span{color:#08749a}
.soa-copy>p{margin:10px 0;color:#625b68;font-size:12px;line-height:1.85}
.soa-copy>p strong{color:var(--ink)}
.soa-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0 17px}
.soa-facts>div{padding:14px 12px;border:1px solid #ece5ef;border-radius:12px;background:#fff}
.soa-facts span{color:#08749a;font-size:9px;font-weight:800;letter-spacing:1px}
.soa-facts p{margin:8px 0 0;color:#393341;font-size:10px;font-weight:650;line-height:1.55}
.soa-note{display:block;color:#817987;font-size:9px;line-height:1.7}
.soa-source{display:inline-flex;align-items:center;gap:9px;margin-top:16px;color:#08749a;font-size:10px;font-weight:750}
.soa-source span{color:var(--pink);transition:transform .2s ease}
.soa-source:hover span{transform:translate(3px,-3px)}
.soa-fact{transition:transform .42s cubic-bezier(.2,.72,.22,1),box-shadow .42s ease,border-color .3s ease}
.soa-fact.is-visible:hover{transform:translateY(-5px);border-color:#d8c6e2;box-shadow:0 12px 26px #24152e10}
.soa-fact span{display:inline-block;transform-origin:center}
.soa-fact.is-visible span{animation:soa-number-pop .62s cubic-bezier(.18,.8,.24,1.25) both;animation-delay:calc(var(--reveal-delay,0ms) + 130ms)}
@keyframes soa-number-pop{0%{opacity:.25;transform:translateY(8px) scale(.58) rotate(-10deg);text-shadow:0 0 0 #08749a00}65%{opacity:1;transform:translateY(-2px) scale(1.14) rotate(2deg);text-shadow:0 0 14px #08749a50}100%{opacity:1;transform:translateY(0) scale(1) rotate(0);text-shadow:0 0 0 #08749a00}}
@media(max-width:760px){.soa-panel{grid-template-columns:1fr;gap:25px;padding:24px}.soa-logo-wrap{min-height:145px}.soa-logo-wrap img{width:min(100%,250px)}.soa-copy{max-width:none}.soa-copy h3{font-size:31px}}
@media(max-width:420px){.soa-panel{padding:18px;border-radius:16px}.soa-facts{grid-template-columns:1fr;gap:8px}.soa-facts>div{display:flex;align-items:center;gap:12px;padding:11px 13px}.soa-facts p{margin:0}}
@media(prefers-reduced-motion:reduce){.soa-fact,.soa-fact.is-visible span{animation:none!important;transition:none!important}}

/* Pagina dedicata alla storia aziendale */
.story-page{background:#fff}
.story-hero{min-height:min(760px,calc(100svh - 76px));display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,7vw,92px);align-items:center;padding:84px 9%;overflow:hidden;background:radial-gradient(ellipse at 12% 15%,#e5007d1a,transparent 35%),linear-gradient(130deg,#171323,#21192e 68%,#2a1b30);color:#fff}
.story-hero-copy{max-width:610px}
.story-hero h1{margin:25px 0 20px;font-size:clamp(44px,6vw,76px);line-height:.99;letter-spacing:-4px}
.story-hero h1 span{color:#d9b5e8}
.story-hero-copy>p{max-width:480px;margin:0 0 26px;color:#d3cbd9;font-size:15px;line-height:1.85}
.story-years{display:flex;align-items:center;gap:15px;margin-top:38px;padding-top:24px;border-top:1px solid #ffffff24}
.story-years strong{font:800 56px/.9 Manrope,sans-serif;letter-spacing:-4px;color:#f07fbd}
.story-years span{color:#d7cede;font-size:11px;font-weight:650;line-height:1.55;letter-spacing:.3px}
.story-hero-visual{position:relative;min-height:400px;height:min(54vw,580px);border:1px solid #ffffff2a;border-radius:24px;overflow:hidden;box-shadow:0 32px 90px #09071077}
.story-hero-visual::after{position:absolute;inset:0;content:"";background:linear-gradient(180deg,#17132305 35%,#171323a6 100%),linear-gradient(90deg,#17132345,transparent 50%);pointer-events:none}
.story-hero-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.82);transform:scale(1.025);transition:opacity .42s ease,transform 1s cubic-bezier(.2,.72,.22,1),filter 1s ease}
.story-hero-visual img.is-changing{opacity:.06;transform:scale(1.045)}
.story-hero-visual.is-visible img{transform:scale(1);filter:saturate(1)}
.story-image-caption{position:absolute;z-index:1;left:22px;top:22px;display:flex;align-items:center;gap:8px;color:#fff;font-size:8px;font-weight:800;letter-spacing:1.2px}
.story-image-mark{position:absolute;z-index:1;left:26px;bottom:25px;color:#fff;font:800 33px/1 Manrope,sans-serif;letter-spacing:-1px}
.story-image-mark span{display:block;margin-top:8px;color:#f4c4e0;font-size:8px;letter-spacing:2px}
.story-timeline{background:#171323;color:#fff}
.story-heading h2{font-size:clamp(36px,5vw,55px);line-height:1.04;letter-spacing:-2.5px}
.story-heading h2 span{color:var(--pink)}
.story-timeline-track{position:relative;max-width:930px;margin:42px auto 0}
.story-timeline-track::before{position:absolute;top:10px;bottom:35px;left:205px;width:1px;content:"";background:linear-gradient(#ffffff22,#e5007d,#ffffff22)}
.story-milestone{display:grid;grid-template-columns:205px 1fr;gap:50px;padding:0 0 48px}
.story-year{text-align:right;padding:3px 0;color:#fff;font:800 30px/1 Manrope,sans-serif;letter-spacing:-1.3px}
.story-year span{display:block;margin-top:9px;color:#e3d8e9;font:800 8px/1.4 "DM Sans",sans-serif;letter-spacing:1.5px}
.story-milestone-copy{position:relative;padding:1px 0 0 27px}
.story-node{position:absolute;top:7px;left:-6px;width:13px;height:13px;border:3px solid #21192e;border-radius:50%;background:var(--pink);box-shadow:0 0 0 1px #e5007d88,0 0 18px #e5007d70}
.story-milestone-copy h3{margin:0 0 11px;color:#fff;font-size:20px;line-height:1.3;letter-spacing:-.5px}
.story-milestone-copy p{max-width:630px;margin:0;color:#d4cbd9;font-size:13px;line-height:1.85}
.story-record-link{display:inline-flex;align-items:center;gap:8px;margin-top:13px;color:#f08bc2;font-size:10px;font-weight:750}
.story-record-link span{color:var(--pink);transition:transform .2s ease}
.story-record-link:hover span{transform:translate(3px,-3px)}
.story-engineering{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(36px,8vw,110px);align-items:center;background:#fff}
.story-engineering-copy{max-width:650px}
.story-engineering-copy h2{margin:18px 0 17px;color:var(--ink);font-size:clamp(36px,4.8vw,52px);line-height:1.05;letter-spacing:-2.5px}
.story-engineering-copy h2 span{color:#a67bc0}
.story-engineering-copy p{margin:12px 0;color:#6f6875;font-size:13px;line-height:1.9}
.story-project-numbers{position:relative;display:grid;gap:13px;padding:22px;border:1px solid #e9e1ec;border-radius:20px;background:linear-gradient(145deg,#f8f4fa,#fff);box-shadow:0 20px 56px #24152e0d}
.story-number-card{padding:20px 22px;border:1px solid #ece5ef;border-radius:13px;background:#fff}
.story-number-card>span{display:block;color:#83798b;font-size:8px;font-weight:800;letter-spacing:1.4px}
.story-number-card strong{display:block;margin:8px 0 3px;color:#171323;font:800 43px/1 Manrope,sans-serif;letter-spacing:-2px}
.story-number-card strong small{font-size:18px;letter-spacing:-.4px}
.story-number-card p{margin:0;color:#726a79;font-size:10px;line-height:1.65}
.story-number-feature{border-color:#e8d8ed;background:linear-gradient(120deg,#fff,#fcf7fd)}
.story-number-feature strong{color:#ad2484}
.story-number-footnote{padding:0 4px;color:#8c8491;font-size:8px;line-height:1.6}
.story-sources{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;padding:22px 7.2%;border-top:1px solid #f0ebf2;background:#fbfafc}
.story-sources>div{flex:1 1 100%;display:flex;align-items:baseline;gap:18px}
.story-sources>div>span{flex:0 0 auto;color:#756b7d;font-size:8px;font-weight:800;letter-spacing:1.25px}
.story-sources>div>p{margin:0;color:#8a828f;font-size:9px;line-height:1.6}
.story-sources>a{color:#08749a;font-size:9px;font-weight:700}
.story-sources>a:hover{color:var(--pink)}
.story-timeline{position:relative;isolation:isolate;background:#171323}
.story-timeline::before{position:absolute;z-index:-1;inset:0;content:"";background:linear-gradient(105deg,#171323dc 0%,#171323c4 48%,#17132391 100%),url("assets/storia-pannelli-fotovoltaici.jpg") center 54%/cover no-repeat}
.story-heading h2{color:#fff}
.story-heading>p{color:#e0d8e5}
.story-founder{position:relative;display:flex;align-items:center;gap:clamp(30px,8vw,108px);padding:78px 12%;overflow:hidden;background:var(--ink-soft);color:#fff}
.story-founder-mark{flex:0 0 225px;width:225px;height:190px;display:grid;place-items:center;background:radial-gradient(ellipse,#e5007d1e 0%,#c9a7e30c 48%,transparent 75%)}
.story-founder-mark img{width:220px;height:185px;object-fit:contain;filter:drop-shadow(0 0 12px #e5007d43)}
.story-founder-copy{z-index:1;max-width:640px}
.story-founder-copy h2{margin:15px 0;color:#fff;font-size:clamp(37px,5vw,55px);line-height:1.03;letter-spacing:-2.5px}
.story-founder-copy h2 span{color:#d9b5e8}
.story-founder-copy p{max-width:620px;margin:15px 0 21px;color:#cbc3d2;font-size:13px;line-height:1.9}
.story-founder-watermark{position:absolute;right:3%;bottom:-78px;color:#ffffff08;font:800 200px/.9 Manrope,sans-serif;letter-spacing:-18px}
.story-end{display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff}
.story-end h2{margin:18px 0 12px;color:var(--ink);font-size:clamp(38px,5.5vw,60px);line-height:1.03;letter-spacing:-3px}
.story-end h2 span{color:#c49bd8}
.story-end>p{margin:0 0 23px;color:var(--muted);font-size:13px}
.story-reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.72,.22,1);transition-delay:var(--story-delay,0ms)}
.story-reveal-later{--story-delay:150ms}
.story-reveal.is-visible{opacity:1;transform:translateY(0)}
.story-page .nav-links>[aria-current="page"]{color:#f18ac3}
@media(max-width:800px){.story-hero{min-height:auto;grid-template-columns:1fr;gap:38px;padding:74px 8% 58px}.story-hero-copy{max-width:680px}.story-hero-visual{height:58vw;min-height:270px;max-height:470px}.story-founder{padding:62px 8%;gap:34px}.story-founder-mark{flex-basis:170px;width:170px;height:160px}.story-founder-mark img{width:175px;height:155px}}
@media(max-width:800px){.story-engineering{grid-template-columns:1fr;gap:34px}}
@media(max-width:600px){.story-hero{padding-top:54px}.story-hero h1{font-size:clamp(42px,12vw,62px);letter-spacing:-2.8px}.story-hero-copy>p{font-size:13px}.story-hero-visual{height:74vw;min-height:250px;border-radius:17px}.story-years{margin-top:28px}.story-timeline-track{margin-top:33px}.story-timeline-track::before{left:12px}.story-milestone{grid-template-columns:1fr;gap:13px;padding-bottom:34px}.story-year{text-align:left;padding-left:36px;font-size:25px}.story-year span{display:inline-block;margin:0 0 0 8px}.story-milestone-copy{padding-left:36px}.story-node{left:6px}.story-milestone-copy h3{font-size:18px}.story-milestone-copy p{font-size:12px}.story-founder{display:block;padding:52px 8%;text-align:center}.story-founder-mark{width:175px;height:145px;margin:0 auto 18px}.story-founder-mark img{width:170px;height:145px}.story-founder-copy .eyebrow{justify-content:center}.story-founder-copy h2{font-size:39px}.story-founder-copy p{font-size:12px}.story-end h2{font-size:39px;letter-spacing:-2px}.story-end>p{max-width:320px;line-height:1.7}.story-engineering-copy h2{font-size:37px;letter-spacing:-1.9px}.story-project-numbers{padding:13px;border-radius:16px}.story-number-card{padding:16px}.story-sources{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:20px 7%}.story-sources>div{grid-column:1/-1;display:block}.story-sources>div>p{margin-top:7px}}
@media(prefers-reduced-motion:reduce){.story-reveal,.story-reveal.is-visible{opacity:1;transform:none;transition:none}.story-hero-visual img{transform:none;transition:none}}

/* Pagina marchi e collaborazioni */
.partners-page{background:#fff;color:var(--ink)}
.partners-hero{min-height:570px;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:50px;padding:80px 10%;overflow:hidden;background:radial-gradient(ellipse at 90% 20%,#e5007d20,transparent 36%),linear-gradient(130deg,#171323,#251a30 72%,#35213b);color:#fff}
.partners-hero-copy{max-width:690px}.partners-hero h1{margin:24px 0 20px;font-size:clamp(46px,6.5vw,78px);line-height:.98;letter-spacing:-4px}.partners-hero h1 span{color:#d9b5e8}.partners-hero-copy>p{max-width:550px;margin:0 0 27px;color:#d5ccdc;font-size:14px;line-height:1.9}
.partners-hero-stamp{width:min(300px,28vw);aspect-ratio:1;border:1px solid #ffffff26;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 45%,#e5007d28,transparent 67%);box-shadow:0 0 90px #e5007d12;text-align:center;transform:rotate(5deg)}.partners-hero-stamp>span{color:#ed9bc9;font-size:8px;font-weight:800;letter-spacing:2.2px}.partners-hero-stamp strong{margin:14px 0;color:#fff;font:800 clamp(30px,4vw,48px)/.98 Manrope,sans-serif;letter-spacing:-2.5px}.partners-hero-stamp i{color:#e5007d;font-size:17px;font-style:normal;letter-spacing:5px}
.partners-section{background:#f8f6fa}.partners-heading h2{font-size:clamp(34px,4.7vw,52px);line-height:1.05;letter-spacing:-2px}.partners-heading h2 span{color:#a67bc0}.partner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.partner-card{min-height:400px;padding:22px;border:1px solid #eae4ed;border-radius:18px;background:#fff;box-shadow:0 18px 48px #21192e0a;transition:transform .35s ease,box-shadow .35s ease}.partner-card:hover{transform:translateY(-6px);box-shadow:0 24px 58px #21192e15}.partner-logo{height:118px;display:grid;place-items:center;margin:-1px -1px 21px;border-radius:12px;background:#fff}.partner-logo img{max-width:100%;width:100%;height:100%;object-fit:contain}.partner-daikin .partner-logo img{max-width:340px}.partner-comelit .partner-logo img{max-width:330px}.partner-rehau .partner-logo img{max-width:280px}.partner-index{display:flex;align-items:center;gap:12px;color:var(--pink);font:800 11px Manrope,sans-serif;letter-spacing:1px}.partner-index span{color:#887d90;font:800 7px "DM Sans",sans-serif;letter-spacing:1.4px}.partner-card h3{margin:13px 0 9px;color:#211a29;font:800 26px Manrope,sans-serif;letter-spacing:-1px}.partner-card p{min-height:126px;margin:0 0 15px;color:#706876;font-size:12px;line-height:1.8}.partner-card>a{display:inline-flex;align-items:center;gap:8px;color:#a21870;font-size:10px;font-weight:800;line-height:1.5}.partner-card>a span{transition:transform .2s}.partner-card>a:hover span{transform:translate(3px,-3px)}
.partners-close{display:flex;flex-direction:column;align-items:center;text-align:center;background:linear-gradient(130deg,#21182c,#171323);color:#fff}.partners-close h2{margin:19px 0 14px;font-size:clamp(40px,5.5vw,62px);line-height:1;letter-spacing:-3px}.partners-close h2 span{color:#d9b5e8}.partners-close>p{max-width:490px;margin:0 0 23px;color:#d2c9da;font-size:13px;line-height:1.8}.partners-close>small{max-width:620px;margin-top:28px;color:#a69aac;font-size:9px;line-height:1.6}.partners-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 7%;background:#12101a;color:#cfc5d5;font-size:10px}.partners-footer .brand img{width:54px;height:48px}.partners-footer .brand-copy strong{font-size:15px}.partners-footer .brand-copy small{font-size:6px}.partners-footer>a:not(.brand){font-weight:800;color:#fff}
@media(max-width:800px){.partners-hero{min-height:auto;grid-template-columns:1fr;gap:35px;padding:70px 8% 55px}.partners-hero-stamp{width:min(220px,55vw);justify-self:center}.partner-grid{grid-template-columns:1fr;gap:14px}.partner-card{min-height:0}.partner-card p{min-height:0}.partners-footer{flex-wrap:wrap;padding:18px 7%}.partners-footer>span{width:100%}}
.partners-hero{position:relative}
.partners-hero-stamp{animation:partner-float 8s ease-in-out infinite}
.partner-card{position:relative;overflow:hidden;transition:transform .38s cubic-bezier(.2,.72,.22,1),box-shadow .38s ease,border-color .38s ease}
.partner-card::before{position:absolute;inset:0 auto auto 0;width:100%;height:3px;content:"";transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#e5007d,#d9b5e8);transition:transform .45s ease}
.partner-card:hover{transform:translateY(-7px);border-color:#e5c5dc;box-shadow:0 24px 58px #21192e18}
.partner-card:hover::before{transform:scaleX(1)}
.partner-logo img{transition:transform .5s cubic-bezier(.2,.72,.22,1),filter .4s ease}
.partner-card:hover .partner-logo img{transform:scale(1.045);filter:saturate(1.08)}
.partner-reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .8s cubic-bezier(.2,.72,.22,1)}
.partner-from-left{transform:translateX(-24px)}
.partner-zoom{transform:scale(.94) rotate(5deg)}
.partner-delay-1{transition-delay:100ms}.partner-delay-2{transition-delay:200ms}
.partner-visible{opacity:1;transform:translate(0) scale(1)}
@keyframes partner-float{0%,100%{transform:rotate(5deg) translateY(0)}50%{transform:rotate(2deg) translateY(-9px)}}
@media(prefers-reduced-motion:reduce){.partner-reveal,.partner-visible{opacity:1;transform:none;transition:none}.partners-hero-stamp{animation:none}.partner-card,.partner-logo img{transition:none}}
