/* Header aligned to the same shell used by the page content */
.site-modules{display:flex;flex-direction:column}
.site-header{display:block;padding:10px 0 0}
.site-header.is-scrolled{padding:8px 0}
.header-inner{height:100%;display:grid;grid-template-columns:275px minmax(0,1fr) auto auto;align-items:center;gap:1.3rem;position:relative}
.header-inner .brand img{width:258px;height:78px;object-fit:contain}
.header-socials,.socials{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}
.header-socials a,.header-socials .social-placeholder,.socials a,.socials .social-placeholder{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--navy);cursor:pointer;transition:transform .3s cubic-bezier(.22,1,.36,1),color .3s ease,border-color .3s ease,background-color .3s ease,box-shadow .3s ease}
.social-placeholder{opacity:.72}
.header-socials :is(a,.social-placeholder):hover,.header-socials a:focus-visible,.socials :is(a,.social-placeholder):hover,.socials a:focus-visible{transform:translateY(-4px) scale(1.1);color:#fff;border-color:var(--orange);background:linear-gradient(135deg,var(--orange),#ff5a00);box-shadow:0 9px 18px rgba(241,138,6,.32)}
.header-socials :is(a,.social-placeholder):hover svg,.socials :is(a,.social-placeholder):hover svg{transform:scale(1.08)}
.header-socials svg,.socials svg{width:17px;height:17px;transition:transform .3s ease}
.site-footer .socials{margin-top:1rem}
.footer-legal{display:flex;align-items:center;gap:.6rem}.footer-legal a{color:var(--muted);transition:color .2s}.footer-legal a:hover,.footer-legal a:focus-visible{color:var(--cyan)}.footer-legal b{color:var(--line)}
.site-footer .socials a,.site-footer .socials .social-placeholder{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff}
.contact-intro .socials a[data-network="facebook"]{border-color:#1877f2;background:#1877f2;color:#fff}.contact-intro .socials a[data-network="instagram"]{border-color:#d62976;background:linear-gradient(135deg,#833ab4,#fd1d1d 55%,#fcb045);color:#fff}.contact-intro .socials a[data-network="tiktok"]{border-color:#101820;background:#101820;color:#fff}.contact-intro .socials a[data-network="youtube"]{border-color:#f00;background:#f00;color:#fff}.contact-intro .socials a[data-network="linkedin"]{border-color:#0a66c2;background:#0a66c2;color:#fff}

/* Testimonials carousel: three visible reviews with controlled navigation */
.testimonial-heading{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:2rem}
.testimonial-heading>div{max-width:760px}
.testimonial-controls{display:flex;gap:.65rem;padding-bottom:.4rem}
.testimonial-controls button{width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--navy);font-size:1.8rem;line-height:1;cursor:pointer;transition:transform .25s ease,background-color .25s ease,color .25s ease}
.testimonial-controls button:hover,.testimonial-controls button:focus-visible{transform:translateY(-2px);background:var(--orange);color:#fff}
.testimonial-carousel{overflow:hidden;margin-top:2.2rem}
.testimonial-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2.4rem)/3);gap:1.2rem;transition:transform .55s cubic-bezier(.22,1,.36,1)}
.testimonial-track blockquote{min-height:260px;margin:0;padding:1.8rem;display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--line);border-radius:22px}
.testimonial-track blockquote>p{flex:1}
.testimonial-track blockquote footer{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem}
.testimonial-track blockquote footer span{color:var(--muted);font-size:.84rem}

/* Project image mosaic: natural proportions, no crops */
.project-gallery{background:var(--bg)}
.mosaic-gallery{columns:4 260px;column-gap:1rem}
.mosaic-item{position:relative;break-inside:avoid;margin:0 0 1rem;overflow:hidden;border-radius:22px;background:#edf3f8;box-shadow:0 9px 28px rgba(8,43,90,.07)}
.gallery-open{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.mosaic-item img{display:block;width:100%;height:auto;object-fit:cover;transition:transform .55s cubic-bezier(.22,1,.36,1)}
.mosaic-item figcaption{position:absolute;left:12px;right:12px;bottom:12px;padding:.65rem .8rem;border-radius:12px;background:rgba(5,30,61,.82);backdrop-filter:blur(8px);color:#fff;font-size:.74rem;font-weight:650;opacity:0;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease}
.mosaic-item:hover img{transform:scale(1.025)}
.mosaic-item:hover figcaption,.mosaic-item:focus-within figcaption{opacity:1;transform:none}
.mosaic-gallery[data-layout="grid"]{columns:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.mosaic-gallery[data-layout="grid"][data-columns="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}
.mosaic-gallery[data-layout="grid"] .mosaic-item{margin:0;min-width:0}
.mosaic-gallery[data-layout="grid"] .gallery-open,.mosaic-gallery[data-layout="grid"] img{height:100%}
.mosaic-gallery[data-layout="grid"][data-ratio="landscape"] .gallery-open{aspect-ratio:4/3}
.mosaic-gallery[data-layout="grid"][data-ratio="square"] .gallery-open{aspect-ratio:1}
.mosaic-gallery[data-layout="grid"][data-ratio="portrait"] .gallery-open{aspect-ratio:3/4}
.gallery-lightbox{width:min(1100px,calc(100vw - 32px));max-width:none;padding:0;border:0;border-radius:22px;background:#061f3f;color:#fff;box-shadow:0 30px 90px rgba(0,0,0,.45)}
.gallery-lightbox::backdrop{background:rgba(1,14,30,.84);backdrop-filter:blur(6px)}
.gallery-lightbox figure{margin:0;display:grid;place-items:center}
.gallery-lightbox img{display:block;max-width:100%;max-height:82vh;object-fit:contain}
.gallery-lightbox figcaption{width:100%;padding:1rem 1.3rem;color:#dce7f4;font-size:.82rem}
.gallery-lightbox-close{position:absolute;z-index:2;top:12px;right:12px;width:42px;height:42px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(5,30,61,.82);color:#fff;font-size:1.7rem;cursor:pointer}

/* Project videos */
.project-videos{background:#eef6fc}
.video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.video-card{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 8px 28px rgba(8,43,90,.06);transition:transform .3s ease,box-shadow .3s ease}
.video-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.video-media{aspect-ratio:16/9;background:#061f3f;display:grid;place-items:center;overflow:hidden}
.video-media iframe,.video-media video{width:100%;height:100%;border:0;object-fit:contain;background:#061f3f}
.video-unavailable{color:#fff;font-size:.82rem}
.video-copy{padding:1.25rem}
.video-copy h3{margin-bottom:.55rem}
.video-copy p{margin:0;color:var(--muted);font-size:.85rem}
.media-empty{padding:2rem;border:1px dashed #b8c7d8;border-radius:22px;background:#fff;color:var(--muted)}
.media-empty strong{display:block;color:var(--navy);margin-bottom:.4rem}
.media-empty p{margin:0}

/* Modules controlled by the visual editor */
.benefits-showcase{background:var(--surface)}
.benefit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.benefit-grid article{padding:1.6rem;border:1px solid var(--line);border-radius:22px;background:var(--bg);transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}
.benefit-grid article:hover{transform:translateY(-5px);border-color:var(--orange);box-shadow:var(--shadow)}
.benefit-grid .icon{width:36px;height:36px;margin-bottom:1.2rem;color:var(--orange)}
.benefit-grid h3{margin:0 0 .55rem;font-size:1.08rem}
.benefit-grid p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.65}
.creative-cta{position:relative;min-height:520px;display:flex;align-items:center;overflow:hidden;color:#fff}
.creative-cta>img,.creative-cta-scrim{position:absolute;inset:0;width:100%;height:100%}
.creative-cta>img{object-fit:cover}
.creative-cta-scrim{background:linear-gradient(90deg,rgba(3,12,26,.94) 0%,rgba(3,18,39,.77) 52%,rgba(3,18,39,.24) 100%)}
.creative-cta .shell{position:relative;z-index:1;width:var(--shell);margin-inline:auto}
.creative-cta h2{max-width:760px;margin:.8rem 0 1rem;font-size:clamp(2.4rem,5vw,5rem);line-height:.98}
.creative-cta .shell>p:not(.eyebrow){max-width:590px;color:#dbe8f7}
.creative-cta .ghost{color:#fff;border-color:rgba(255,255,255,.46)}
.hero .button.primary,.creative-cta .button.primary{color:#fff;background:var(--blue);box-shadow:0 12px 34px rgba(22,119,255,.3)}
.hero .button.primary:hover,.hero .button.primary:focus-visible,.creative-cta .button.primary:hover,.creative-cta .button.primary:focus-visible{background:#0f68e6;box-shadow:0 15px 38px rgba(22,119,255,.38)}
.hero .button.ghost,.creative-cta .button.ghost{color:#fff;border-color:rgba(22,119,255,.72);background:rgba(22,119,255,.12)}
.hero .button.ghost:hover,.hero .button.ghost:focus-visible,.creative-cta .button.ghost:hover,.creative-cta .button.ghost:focus-visible{background:rgba(22,119,255,.24);border-color:var(--blue)}
.project-card>.project-open{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:zoom-in}
.project-card>.project-meta{padding:1.1rem 1.2rem 1.35rem}
.project-visit{display:inline-flex;align-items:center;gap:.5rem;margin-top:.9rem;color:var(--orange);font-size:.78rem;font-weight:800;text-decoration:none;text-transform:uppercase;letter-spacing:.08em}
.project-visit:hover span{transform:translate(3px,-3px)}
.project-visit span{transition:transform .25s ease}
.project-videos{background:var(--surface)}
.video-card{background:var(--bg)}

html[data-theme="dark"] .mosaic-item{background:#0b1b2d}
html[data-theme="dark"] .media-empty{background:#0b1b2d;border-color:#29415d}
html[data-theme="dark"] .video-card{background:#0b1b2d}

@media(max-width:1280px){.header-inner{grid-template-columns:235px minmax(0,1fr) auto}.header-inner .brand img{width:225px}.header-socials{display:none}.video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.header-inner{grid-template-columns:1fr auto auto}.header-inner .brand img{width:210px;height:68px}.header-inner nav{gap:1rem}.header-socials{display:flex}.header-socials a{width:32px;height:32px}.testimonial-track{grid-auto-columns:calc((100% - 1.2rem)/2)}.mosaic-gallery[data-layout="grid"],.mosaic-gallery[data-layout="grid"][data-columns="3"]{grid-template-columns:repeat(2,minmax(0,1fr))}.video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.benefit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.header-inner{grid-template-columns:1fr}.header-inner .brand{justify-self:center}.header-inner .brand img{width:205px}.header-inner .menu-toggle{position:absolute;right:0;top:50%;transform:translateY(-50%)}.header-socials{display:none}.hero-arrow{display:none}.testimonial-heading{align-items:flex-start}.testimonial-heading h2{font-size:2rem}.testimonial-controls{flex:0 0 auto}.testimonial-controls button{width:42px;height:42px}.testimonial-track{grid-auto-columns:100%}.mosaic-gallery{columns:2 140px;column-gap:.7rem}.mosaic-gallery[data-layout="grid"],.mosaic-gallery[data-layout="grid"][data-columns="3"]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.mosaic-item{margin-bottom:.7rem;border-radius:16px}.mosaic-gallery[data-layout="grid"] .mosaic-item{margin:0}.mosaic-item figcaption{position:static;border-radius:0;opacity:1;transform:none;background:var(--navy);font-size:.68rem}.video-grid,.benefit-grid{grid-template-columns:1fr}.creative-cta{min-height:560px}.creative-cta-scrim{background:linear-gradient(0deg,rgba(3,12,26,.96),rgba(3,18,39,.62))}}
@media(prefers-reduced-motion:reduce){.mosaic-item img,.mosaic-item figcaption,.video-card{transition:none!important}}
