/*
Theme Name: AldaUniform Astra Child
Theme URI: https://aldauniform.it/
Description: Child theme di Astra per AldaUniform. Mantiene il design editoriale, il responsive, le animazioni e il pannello contenuti del tema personalizzato.
Author: Jaam Studio
Author URI: https://aldauniform.it/
Template: astra
Version: 1.6.0
Text Domain: aldauniform-astra-child
Requires at least: 6.4
Requires PHP: 8.0
*/

:root{
  --ink:#050505;
  --navy:#061629;
  --navy-2:#0b223b;
  --navy-3:#123453;
  --paper:#f4f4f1;
  --white:#fff;
  --muted:#a8afb7;
  --muted-dark:#545b63;
  --line:rgba(7,22,41,.18);
  --line-light:rgba(255,255,255,.24);
  --pad:clamp(20px,5vw,88px);
  --page:1540px;

  --step--1:clamp(.8125rem,.77rem + .18vw,.9375rem);
  --step-0:clamp(1rem,.95rem + .22vw,1.125rem);
  --step-1:clamp(1.25rem,1.1rem + .55vw,1.65rem);
  --step-2:clamp(1.75rem,1.45rem + 1.2vw,2.75rem);
  --step-3:clamp(2.65rem,2rem + 2.6vw,5.2rem);
  --step-4:clamp(3.2rem,2.2rem + 4.8vw,8.2rem);
  --step-hero:clamp(4.5rem,2.5rem + 10vw,13.125rem);

  --space-xs:clamp(.5rem,.45rem + .2vw,.75rem);
  --space-sm:clamp(.9rem,.8rem + .4vw,1.25rem);
  --space-md:clamp(1.35rem,1.1rem + .9vw,2rem);
  --space-lg:clamp(2.1rem,1.6rem + 2vw,3.75rem);
  --space-xl:clamp(3.5rem,2.5rem + 4vw,7rem);
  --space-2xl:clamp(5rem,3.2rem + 7vw,11.25rem);

  --ease:cubic-bezier(.2,.7,.2,1);
  --radius:2px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;font-size:var(--step-0);line-height:1.62;overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.menu-open{position:fixed;left:0;right:0;top:var(--menu-scroll-lock,0px);width:100%;overflow:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
button{color:inherit}
::selection{background:#102c4b;color:#fff}

:focus-visible{outline:3px solid #76a6d6;outline-offset:4px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;top:10px;left:10px;z-index:9999;background:#fff;color:#000;padding:11px 15px;transform:translateY(-160%);transition:transform .2s}
.skip-link:focus{transform:none}
.page-width{width:min(var(--page),100%);margin-inline:auto;padding-inline:var(--pad)}
.section{padding-block:var(--space-2xl)}

.eyebrow{margin:0 0 var(--space-md);font:700 var(--step--1)/1 "Manrope",sans-serif;letter-spacing:.22em;text-transform:uppercase}
.eyebrow.light{color:#d9e0e7}
.section-heading{display:grid;grid-template-columns:minmax(170px,.4fr) minmax(0,1.6fr);align-items:start;gap:var(--space-lg);margin-bottom:var(--space-xl)}
.section-heading h2,.process h2,.services h2,.craft h2,.faq h2,.contact h2{margin:0;font-family:"Manrope",sans-serif;font-size:var(--step-4);line-height:.91;letter-spacing:-.065em;text-wrap:balance}


/* Scroll-reading highlight
   Usato solo sulla frase manifesto principale della sezione Chi siamo.
   Le parole passano da attenuate a pienamente leggibili seguendo lo scroll. */
.reading-highlight .reading-word{
  --word-progress:0;
  opacity:calc(.14 + (var(--word-progress) * .86));
  filter:none;
  transition:opacity .045s linear;
  will-change:opacity;
}


/* Astra child compatibility
   Il parent Astra resta installato e aggiornabile, mentre questa landing usa i propri template. */
body.aldauniform-astra-child,
body.aldauniform-astra-child #page,
body.aldauniform-astra-child .site-content,
body.aldauniform-astra-child .ast-container{
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
  background:transparent;
}
body.aldauniform-astra-child #primary{
  width:100%;
  margin:0;
  padding:0;
}

/* Header */
.site-header{position:fixed;left:0;right:0;top:0;z-index:50;height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);transition:background .3s,height .3s,backdrop-filter .3s,border-color .3s}
.site-header.scrolled{height:72px;background:rgba(6,22,41,.9);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.12)}
.brand{display:inline-flex;align-items:center;position:relative;z-index:2}
.brand img{width:150px;height:48px;object-fit:contain;object-position:left center}
.main-nav{display:flex;align-items:center;gap:clamp(18px,2.4vw,42px);color:#fff;font-size:13px;font-weight:600}
.main-nav a{position:relative;isolation:isolate;padding-block:7px}
.main-nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:100%;bottom:1px;height:1px;background:#fff;transition:right .28s var(--ease)}
.main-nav a:not(.nav-cta):hover::after,.main-nav a:not(.nav-cta):focus-visible::after,.main-nav a.active::after{right:0}
.main-nav a.active{color:#fff}
.nav-cta{border:1px solid rgba(255,255,255,.75);border-radius:99px;padding:11px 20px;transition:background .25s,color .25s,transform .25s}
.nav-cta:hover,.nav-cta:focus-visible,.nav-cta.active{background:#fff;color:var(--navy);transform:translateY(-1px)}
.menu-toggle{display:none;background:none;border:0;padding:12px;position:relative;z-index:3;cursor:pointer}
.menu-toggle span{display:block;width:27px;height:1px;background:#fff;margin:7px 0;transition:transform .28s var(--ease),opacity .2s}

/* Hero */
.hero{position:relative;min-height:100svh;background:var(--navy);color:#fff;display:flex;align-items:flex-end;overflow:hidden}
.hero-media{position:absolute;inset:-5%;background:url('assets/hero.webp') center 54%/cover no-repeat;will-change:transform;transform:scale(1.04)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,8,15,.9) 0%,rgba(2,8,15,.44) 52%,rgba(2,8,15,.64) 100%),linear-gradient(0deg,rgba(2,8,15,.66),transparent 58%)}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.6fr);gap:clamp(48px,7vw,130px);align-items:end;padding-top:160px;padding-bottom:clamp(70px,8vw,130px)}
.hero h1{margin:0 0 var(--space-lg);font-family:"Manrope",sans-serif;font-size:var(--step-hero);line-height:.78;letter-spacing:-.085em;text-transform:uppercase;text-wrap:balance}
.hero-outline{color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.94);paint-order:stroke fill}
.hero-card{padding-bottom:10px;max-width:430px}
.hero-card .rule{display:block;width:64px;height:2px;background:#fff;margin-bottom:26px}
.hero-card h2{font:700 clamp(1.45rem,1.05rem + 1.7vw,2.4rem)/1.08 "Manrope",sans-serif;margin:0 0 20px;letter-spacing:-.04em;text-wrap:balance}
.hero-card p{margin:0;color:#d9e0e7;font-size:var(--step--1);max-width:46ch}

/* Text hover effects */
.text-link{display:inline-flex;align-items:center;gap:18px;font-weight:700;font-size:14px;border-bottom:1px solid currentColor;padding-bottom:8px;position:relative}
.text-link>span{font-size:20px;transition:transform .25s var(--ease)}
.text-link:hover>span,.text-link:focus-visible>span{transform:translate(4px,4px)}
.text-highlight{position:relative;isolation:isolate}
.text-highlight::before{content:"";position:absolute;z-index:-1;left:-.12em;right:-.12em;bottom:.08em;height:.42em;background:currentColor;opacity:.14;transform:scaleX(0);transform-origin:left center;transition:transform .32s var(--ease)}
.text-highlight:hover::before,.text-highlight:focus-visible::before{transform:scaleX(1)}
.scroll-note{position:absolute;right:max(22px,var(--pad));bottom:clamp(28px,4vw,54px);z-index:3;font-size:10px;letter-spacing:.22em;text-transform:uppercase;writing-mode:vertical-rl;color:#d4dbe3;opacity:.92;user-select:none;pointer-events:none}
/* Hero title: lights up only when the pointer is directly over “per te.” */
.hero-glow{
  position:relative;
  display:inline-block;
  color:transparent;
  -webkit-text-stroke:2px rgba(255,255,255,.94);
  paint-order:stroke fill;
  text-shadow:0 0 0 rgba(255,255,255,0);
  filter:brightness(1);
  transition:
    color .32s var(--ease),
    -webkit-text-stroke-color .32s var(--ease),
    text-shadow .42s var(--ease),
    filter .42s var(--ease);
}
.hero-glow:hover{
  color:#fff;
  -webkit-text-stroke-color:#fff;
  text-shadow:
    0 0 .10em rgba(255,255,255,.78),
    0 0 .30em rgba(255,255,255,.38),
    0 0 .62em rgba(118,166,214,.32);
  filter:brightness(1.16);
}

/* Marquee */
.word-marquee{background:#fff;overflow:hidden;border-bottom:1px solid var(--line);padding:28px 0}
.marquee-track{display:flex;width:max-content;align-items:center;gap:34px;animation:marquee 32s linear infinite;font:800 clamp(1.75rem,1.15rem + 2.4vw,3.125rem)/1 "Manrope";letter-spacing:-.04em;text-transform:uppercase}
.marquee-track span{position:relative;z-index:0;padding:.13em .08em;transition:color .25s}
.marquee-track span::after{content:"";position:absolute;z-index:-1;inset:0 -.08em;background:var(--navy);transform:scaleX(0);transform-origin:left;transition:transform .32s var(--ease)}
.marquee-track span:hover{color:#fff}
.marquee-track span:hover::after{transform:scaleX(1)}
.marquee-track i{font-style:normal;color:var(--navy);font-size:.45em}
.word-marquee:hover .marquee-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}

/* About */
.about{background:#fff}
.about-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(50px,9vw,145px);align-items:center}
.image-frame{margin:0;position:relative;overflow:hidden;background:#ddd}
.image-frame.tall{aspect-ratio:4/5}
.image-frame img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);will-change:transform}
.image-frame:hover img{transform:scale(1.035)}
.image-frame figcaption{position:absolute;left:22px;bottom:20px;background:rgba(255,255,255,.92);padding:9px 13px;font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.about-copy{max-width:650px}
.about-copy p{font-size:clamp(1rem,.94rem + .4vw,1.42rem);color:#4a4e53;margin:0 0 var(--space-md);max-width:62ch}
.about-copy .lead{font:600 clamp(1.6rem,1.05rem + 2.1vw,3rem)/1.14 "Manrope";letter-spacing:-.045em;color:var(--ink);margin-bottom:var(--space-lg);max-width:34ch}
.about-copy .text-link{margin-top:18px}

/* Process */
.process{background:var(--navy);color:#fff}
.process-head{display:grid;grid-template-columns:minmax(170px,.4fr) minmax(0,1.6fr);gap:var(--space-lg);margin-bottom:var(--space-xl)}
.process-list{border-top:1px solid var(--line-light)}
.process-item{display:grid;grid-template-columns:100px minmax(220px,.8fr) minmax(0,1fr);gap:34px;align-items:start;padding:38px 0;border-bottom:1px solid var(--line-light);transition:background .3s,padding-inline .3s}
.process-item:hover{background:rgba(255,255,255,.035);padding-inline:16px}
.process-item span{font-size:13px;color:#8fa3b7}
.process-item h3{margin:0;font:700 clamp(1.75rem,1.2rem + 2.1vw,3.4rem)/1 "Manrope";letter-spacing:-.04em}
.process-item p{margin:0;color:#c5cfda;max-width:58ch}

/* Services */
.services{background:var(--paper)}
.services-layout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:clamp(55px,8vw,130px);align-items:start}
.services-sticky{position:sticky;top:110px}
.service-photo{margin:55px 0 0;aspect-ratio:4/3;overflow:hidden;background:#ddd}
.service-photo img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);will-change:transform}
.service-photo:hover img{transform:scale(1.03)}
.services-list{border-top:1px solid var(--line)}
.service-row{display:grid;grid-template-columns:75px minmax(0,1fr);gap:25px;padding:38px 0 48px;border-bottom:1px solid var(--line);position:relative;isolation:isolate;transition:padding-left .3s var(--ease),color .3s}
.service-row::before{content:"";position:absolute;z-index:-1;inset:0;background:var(--navy);transform:scaleX(0);transform-origin:left;transition:transform .42s var(--ease)}
.service-row:hover,.service-row:focus-within{padding-left:18px;color:#fff}
.service-row:hover::before,.service-row:focus-within::before{transform:scaleX(1)}
.service-row>span{font-size:13px;color:#69717a;transition:color .3s}
.service-row h3{margin:0 0 14px;font:700 clamp(1.75rem,1.2rem + 2vw,3.25rem)/1.05 "Manrope";letter-spacing:-.045em;text-wrap:balance}
.service-row p{margin:0;color:#555c63;font-size:var(--step-0);max-width:62ch;transition:color .3s}
.service-row:hover>span,.service-row:hover p{color:#cbd4de}

/* Craft */
.craft{background:#050505;color:#fff}
.craft-title{display:grid;grid-template-columns:minmax(170px,.4fr) minmax(0,1.6fr);gap:var(--space-lg);margin-bottom:var(--space-xl)}
.gallery-grid{display:grid;grid-template-columns:1.15fr .8fr .8fr;grid-template-rows:420px 360px;gap:18px}
.gallery-grid figure{margin:0;position:relative;overflow:hidden;background:#111}
.gallery-grid img{width:100%;height:100%;object-fit:cover;filter:saturate(.74);transition:transform .75s var(--ease),filter .4s}
.gallery-grid figure:hover img,.gallery-grid figure:focus-within img{transform:scale(1.045);filter:saturate(1)}
.gallery-grid figcaption{position:absolute;left:18px;bottom:16px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;background:rgba(0,0,0,.68);padding:8px 10px}
.g1{grid-row:1/3}.g2{grid-column:2/4}.g3{grid-column:2}.g4{grid-column:3}.g5{display:none}

/* Sectors / collaborations */
.sectors{background:#fff;padding-block:clamp(72px,8vw,128px)}
.sectors .section-heading{margin-bottom:clamp(42px,5vw,72px)}
.sectors .section-heading h2{max-width:14ch}
.sector-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.sector{min-height:220px;padding:28px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;position:relative;isolation:isolate;overflow:hidden;transition:color .3s,transform .3s var(--ease)}
.sector::before{content:"";position:absolute;z-index:-1;inset:0;background:var(--navy);transform:translateY(101%);transition:transform .42s var(--ease)}
.sector:hover,.sector:focus-visible{color:#fff;transform:translateY(-3px);outline-offset:-3px}
.sector:hover::before,.sector:focus-visible::before{transform:none}
.sector span{font-size:12px;color:#7b8188;transition:color .3s}
.sector:hover span,.sector:focus-visible span{color:#aebdcb}
.sector h3{margin:0;font:700 clamp(1.9rem,1.25rem + 2.6vw,3.65rem)/1 "Manrope";letter-spacing:-.045em;text-wrap:balance}

/* FAQ */
.faq{background:#050505;color:#fff}
/* FAQ — gerarchia editoriale in due tempi: titolo, poi contenuto */
.faq-heading{display:grid;grid-template-columns:minmax(170px,.38fr) minmax(0,1.62fr);align-items:start;gap:var(--space-lg);margin-bottom:clamp(52px,6vw,92px)}
.faq-heading .eyebrow{margin-top:.6em}
.faq-heading h2{margin:0;max-width:12ch;font-family:"Manrope",sans-serif;font-size:clamp(4rem,6.7vw,7.8rem);line-height:.88;letter-spacing:-.068em;text-wrap:balance}
.faq-body{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);gap:clamp(52px,7vw,110px);align-items:start}
.faq-media{margin:0;overflow:hidden;background:#101010;box-shadow:0 28px 70px rgba(0,0,0,.22)}
.faq-media img{width:100%;height:clamp(420px,33vw,520px);object-fit:cover;object-position:center 36%;filter:saturate(.58);transition:filter .4s,transform .65s var(--ease)}
.faq-media:hover img{filter:saturate(.86);transform:scale(1.018)}
.accordion{border-top:1px solid var(--line-light);padding-top:2px}
details{border-bottom:1px solid var(--line-light)}
summary{list-style:none;display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:18px;padding:24px 0;cursor:pointer;font:600 clamp(1.08rem,.96rem + .55vw,1.55rem)/1.22 "Manrope";transition:padding-left .25s,color .25s}
summary:hover,summary:focus-visible{padding-left:10px;color:#c7dcf0}
summary::-webkit-details-marker{display:none}
summary span{font:500 12px/1 "DM Sans";color:#94a3b3}
summary b{font-weight:400;font-size:26px;transition:transform .25s}
details[open] summary b{transform:rotate(45deg)}
details p{margin:0 54px 25px 70px;color:#c4ccd5;max-width:64ch;line-height:1.62}

/* Contact */
.contact{position:relative;overflow:hidden;background:var(--navy);color:#fff}
.contact::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(6,22,41,.93),rgba(6,22,41,.78)),url("assets/patterns.webp") center/cover no-repeat;opacity:.58;pointer-events:none}
.contact::after{content:"";position:absolute;right:-12vw;bottom:-20vw;width:min(70vw,1100px);height:min(70vw,1100px);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.09),rgba(255,255,255,0) 64%);pointer-events:none}
.contact-shell{position:relative;z-index:1}
.contact-intro{margin-bottom:clamp(64px,8vw,118px)}
.contact-intro>.eyebrow{margin-bottom:clamp(28px,4vw,56px)}
.contact-intro-grid{display:grid;grid-template-columns:minmax(0,1.34fr) minmax(290px,.66fr);gap:clamp(42px,7vw,110px);align-items:end}
.contact-intro h2{margin:0;font-family:"Manrope",sans-serif;font-size:clamp(4.8rem,8.7vw,10.4rem);line-height:.84;letter-spacing:-.075em;text-wrap:initial}
.contact-intro h2 span{display:block;white-space:nowrap}
.contact-lead{max-width:34ch;margin:0 0 .55em;color:#e0e7ef;font-size:clamp(1.08rem,.96rem + .55vw,1.45rem);line-height:1.55}
.contact-content-grid{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);gap:clamp(54px,8vw,130px);align-items:start}
.contact-meta{padding-top:28px;border-top:1px solid rgba(255,255,255,.2)}
.contact-meta-label{margin:0 0 22px;color:#b8c5d2;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.contact-mail{display:inline-block;margin:0 0 46px;font:600 clamp(1.45rem,1.05rem + 1.8vw,2.65rem)/1 "Manrope";border-bottom:1px solid rgba(255,255,255,.8);padding-bottom:10px}
.contact-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;color:#d5dce4;padding-top:26px;border-top:1px solid rgba(255,255,255,.14)}
.contact-details div{display:flex;flex-direction:column;gap:10px}
.contact-details strong{font-size:11px;letter-spacing:.15em;text-transform:uppercase}
.contact-details span{font-size:15px}
.contact-form{background:rgba(255,255,255,.985);color:var(--ink);padding:clamp(28px,4vw,62px);box-shadow:0 34px 95px rgba(0,0,0,.24);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.field{display:flex;flex-direction:column;margin-bottom:26px}
.field label{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px}
.field input,.field textarea{border:0;border-bottom:1px solid #c9cdd1;background:transparent;border-radius:0;padding:12px 0;outline:0;transition:border-color .2s,box-shadow .2s}
.field textarea{resize:vertical;min-height:130px}
.field input:focus,.field textarea:focus{border-color:var(--navy);box-shadow:0 1px 0 var(--navy)}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:#a82424}
.field-error{display:block;min-height:1.1em;margin-top:7px;color:#a82424;font-size:12px}
.consent{display:flex;gap:11px;align-items:flex-start;font-size:12px;color:#5c6268;margin:6px 0 4px}
.consent input{margin-top:4px;min-width:18px;min-height:18px;accent-color:var(--navy)}
.consent a{text-decoration:underline;text-underline-offset:3px}
.consent-error{margin-bottom:18px}
.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.button{border:0;background:var(--navy);color:#fff;min-height:50px;padding:16px 22px;font-weight:700;display:inline-flex;gap:28px;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden;transition:background .25s,transform .25s,opacity .25s}
.button::before{content:"";position:absolute;inset:0;background:#174569;transform:translateX(-101%);transition:transform .34s var(--ease)}
.button>*{position:relative;z-index:1}
.button:hover::before,.button:focus-visible::before{transform:none}
.button:hover,.button:focus-visible{transform:translateY(-2px)}
.button:disabled{cursor:wait;opacity:.7;transform:none}
.form-status{min-height:1.5em;margin:16px 0 0;color:#48515a;font-size:13px}

/* Footer */
.site-footer{background:#050505;color:#fff;padding:var(--space-2xl) 0 35px}
.footer-statement{font:700 clamp(3.25rem,1.9rem + 6.7vw,9.1rem)/.89 "Manrope";letter-spacing:-.07em;margin-bottom:clamp(70px,8vw,110px);text-wrap:balance}
.footer-bottom{border-top:1px solid var(--line-light);padding-top:28px;display:grid;grid-template-columns:190px minmax(0,1fr) auto;gap:40px;align-items:end;color:#aeb8c2;font-size:11px;line-height:1.7}
.footer-bottom img{width:165px;height:auto}
.footer-copy{text-align:right}


/* Back to top */
.back-to-top{position:fixed;right:max(20px,calc(env(safe-area-inset-right) + 20px));bottom:max(20px,calc(env(safe-area-inset-bottom) + 20px));z-index:55;appearance:none;border:1px solid rgba(255,255,255,.18);background:rgba(8,18,32,.78);color:#fff;padding:14px 18px;border-radius:999px;font:600 13px/1 "DM Sans",sans-serif;letter-spacing:.06em;text-transform:uppercase;opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(0,10px,0);box-shadow:0 12px 30px rgba(0,0,0,.18);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:opacity .25s ease,visibility 0s .25s,transform .3s var(--ease),background .25s,border-color .25s,color .25s}
.back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translate3d(0,0,0);transition:opacity .25s ease,visibility 0s,transform .3s var(--ease),background .25s,border-color .25s,color .25s}
.back-to-top:hover,.back-to-top:focus-visible{background:#fff;color:var(--navy);border-color:#fff;transform:translate3d(0,-3px,0)}
body.menu-open .back-to-top{opacity:0;visibility:hidden;pointer-events:none}
#ast-scroll-top,.ast-scroll-top-icon{display:none!important;visibility:hidden!important;pointer-events:none!important}
@media(max-width:767px){.back-to-top{right:max(14px,calc(env(safe-area-inset-right) + 14px));bottom:max(14px,calc(env(safe-area-inset-bottom) + 14px));padding:12px 14px;font-size:11px}}

/* Reveal: ingresso dal basso, più leggibile ma ancora discreto. */
.js .reveal{
  opacity:.38;
  transform:translate3d(0,20px,0);
  filter:blur(1.2px);
  transition:opacity .72s var(--ease),transform .72s var(--ease),filter .72s var(--ease);
  will-change:opacity,transform,filter;
}
.js .reveal.in{opacity:1;transform:translate3d(0,0,0);filter:blur(0);will-change:auto}
.delay-1{transition-delay:.13s}

/* Large desktop */
@media (min-width:1920px){
  :root{--page:1740px;--pad:clamp(72px,5vw,120px)}
  .hero-grid{padding-bottom:150px}
  .gallery-grid{grid-template-rows:500px 420px}
}

@media (min-width:1440px) and (max-width:1919px){
  :root{--page:1580px}
}

/* Laptop / small desktop */
@media (max-width:1199px){
  .hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:48px}
  .services-layout{gap:70px}
  .gallery-grid{grid-template-rows:390px 330px}
}

/* Tablet landscape */
@media (max-width:1023px){
  .site-header{height:76px}
  .brand img{width:125px}
  .menu-toggle{display:block}

  /* Il menu usa l'intero header come overlay: evita il clipping di Safari/iOS
     causato dai fixed annidati insieme a backdrop-filter. */
  body.menu-open .site-header{
    height:100dvh;
    min-height:100svh;
    align-items:flex-start;
    padding-top:calc(14px + env(safe-area-inset-top));
    background:var(--navy);
    border-bottom:0;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .main-nav{
    position:absolute;
    inset:0;
    z-index:1;
    min-height:100%;
    height:100%;
    background:var(--navy);
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    align-items:flex-start;
    padding:clamp(145px,18svh,190px) var(--pad) calc(42px + env(safe-area-inset-bottom));
    gap:clamp(10px,2.4svh,22px);
    font:700 clamp(2.05rem,9.2vw,3.4rem)/.94 "Manrope",sans-serif;
    letter-spacing:-.045em;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    transform:translate3d(100%,0,0);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:transform .38s var(--ease),opacity .25s ease,visibility 0s linear .38s;
  }
  .main-nav.open{
    transform:translate3d(0,0,0);
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition:transform .38s var(--ease),opacity .25s ease,visibility 0s;
  }
  .main-nav a{width:100%;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.24)}
  .main-nav a:not(.nav-cta)::after{display:none}
  .nav-cta{width:auto!important;font-size:18px;letter-spacing:0;margin-top:12px;padding:14px 24px!important;border-bottom:1px solid rgba(255,255,255,.75)!important}
  .menu-toggle.open span:first-child{transform:translateY(4px) rotate(45deg)}
  .menu-toggle.open span:last-child{transform:translateY(-4px) rotate(-45deg)}

  .hero-grid{grid-template-columns:1fr;align-content:end}
  .hero-card{justify-self:end;width:min(55%,430px)}
  .section-heading,.process-head,.craft-title{grid-template-columns:1fr;gap:25px}
    .about-grid{gap:60px}
  .services-sticky{position:static}
  .service-photo{max-width:650px}
  .process-item{grid-template-columns:60px minmax(180px,.75fr) minmax(0,1fr)}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:520px 300px 300px}
  .g1{grid-row:1}.g2{grid-column:2;grid-row:1}.g3{grid-column:1;grid-row:2}.g4{grid-column:2;grid-row:2}.g5{display:block;grid-column:1/3;grid-row:3}
  .sector-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .contact-form{max-width:780px}
}


@media (max-width:1023px){
  .faq-heading{grid-template-columns:1fr;gap:18px;margin-bottom:48px}
  .faq-heading .eyebrow{margin-top:0;margin-bottom:0}
  .faq-heading h2{max-width:10ch;font-size:clamp(3.8rem,10vw,6.6rem)}
  .faq-body{grid-template-columns:1fr;gap:42px}
  .faq-media{width:min(680px,100%)}
  .faq-media img{height:360px;object-position:center 32%}
}

/* Tablet portrait */
@media (max-width:899px){
  .hero{min-height:900px}
  .hero-card{width:min(68%,520px)}
  .process-item{grid-template-columns:52px minmax(180px,.7fr) minmax(0,1fr);gap:24px}
}

/* Mobile / large phone */
@media (max-width:767px){
  :root{--pad:clamp(20px,5vw,32px)}
  html{scroll-padding-top:76px}
  .section{padding-block:clamp(74px,18vw,105px)}
  .hero{min-height:max(760px,100svh)}
  .hero-media{background-position:60% center}
  .hero-shade{background:linear-gradient(0deg,rgba(2,8,15,.93),rgba(2,8,15,.28) 88%),linear-gradient(90deg,rgba(2,8,15,.46),transparent 75%)}
  .hero-grid{padding-top:120px;padding-bottom:68px;align-content:end;gap:34px}
  .hero h1{font-size:clamp(4.15rem,20vw,7.2rem);margin-bottom:28px;line-height:.8}
  .hero-outline,.hero-glow{-webkit-text-stroke-width:1.2px}
  .hero-card{width:100%;justify-self:auto;margin-top:8px}
  .hero-card .rule{margin-bottom:18px}
  .word-marquee{padding:22px 0}
  .section-heading h2,.process h2,.services h2,.craft h2,.faq h2,.contact h2{font-size:clamp(2.7rem,13.5vw,4.6rem)}
  .about-grid{gap:45px}
  .about-copy .lead{font-size:clamp(1.65rem,7vw,2.2rem)}
  .process-item{grid-template-columns:38px minmax(0,1fr);gap:12px 18px;padding:28px 0}
  .process-item p{grid-column:2}
  .process-item h3{font-size:clamp(1.8rem,8vw,2.35rem)}
  .service-row{grid-template-columns:45px minmax(0,1fr);padding:28px 0}
  .service-row:hover{padding-left:0}
  .service-row::before{display:none}
  .service-row:hover,.service-row:focus-within{color:inherit}
  .service-row:hover>span{color:#69717a}.service-row:hover p{color:#555c63}
  .service-row h3{font-size:clamp(1.8rem,8vw,2.35rem)}
  .gallery-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;gap:12px;padding-bottom:12px;scrollbar-width:thin}
  .gallery-grid figure{min-width:min(82vw,520px);height:460px;scroll-snap-align:start}
  .gallery-grid .g5{display:block}

  .faq-heading{margin-bottom:34px}
  .faq-heading h2{max-width:9ch;font-size:clamp(3.2rem,15vw,5rem);line-height:.9}
  .faq-body{gap:30px}
  .faq-media img{height:250px;object-position:center 30%}
  .accordion{border-top-color:rgba(255,255,255,.28)}
  .sector-grid{grid-template-columns:1fr}
  .sector{min-height:150px}
  .sector h3{font-size:clamp(2.3rem,11vw,3.3rem)}
  summary{grid-template-columns:32px minmax(0,1fr) auto;padding:22px 0;font-size:18px}
  details p{margin:0 0 24px 50px}
  .contact-form{padding:32px 22px}
  .footer-statement{font-size:clamp(3rem,14vw,5rem);margin-bottom:75px}
  .scroll-note{display:none}
  .footer-bottom{grid-template-columns:1fr;align-items:start}
  .footer-copy{text-align:left}
}

/* Small phone */
@media (max-width:479px){
  .site-header{padding-inline:18px}
  .brand img{width:112px}
  .hero{min-height:max(710px,100svh)}
  .hero-grid{padding-top:105px;padding-bottom:48px}
  .hero h1{font-size:clamp(3.65rem,19vw,5.5rem);letter-spacing:-.08em}
  .hero-card h2{font-size:1.45rem}
  .hero-card p{font-size:.94rem}
  .eyebrow{letter-spacing:.17em}
  .gallery-grid figure{min-width:86vw;height:400px}
  .sector{padding:22px}
  .contact-form{margin-inline:-4px;padding:28px 18px}
  .button{width:100%}
  .footer-bottom img{width:145px}
}

/* Very small phone */
@media (max-width:374px){
  :root{--pad:18px}
  .hero h1{font-size:3.55rem}
  .main-nav{font-size:clamp(1.9rem,9.6vw,2.45rem)}
  .process-item,.service-row{grid-template-columns:32px minmax(0,1fr);gap:10px 12px}
  .gallery-grid figure{min-width:88vw;height:370px}
  details p{margin-left:42px}
  .contact-mail{font-size:1.28rem}
}

/* Landscape phones */
@media (max-height:540px) and (orientation:landscape) and (max-width:899px){
  .hero{min-height:680px}
  .hero-grid{padding-top:100px;padding-bottom:48px;grid-template-columns:1.2fr .8fr;align-items:end}
  .hero h1{font-size:clamp(4rem,13vw,7rem)}
  .hero-card{width:100%}
  .main-nav{padding-top:78px;padding-bottom:20px;gap:4px;font-size:clamp(1.55rem,5.2vw,1.9rem)}
  .main-nav a{padding:6px 0}
  .nav-cta{margin-top:4px;padding:10px 20px!important;font-size:15px}
}

@media (max-width:1199px){
  .contact-intro-grid{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:50px}
  .contact-intro h2{font-size:clamp(4.6rem,8.1vw,8rem)}
  .contact-content-grid{grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr);gap:60px}
}

@media (max-width:1023px){
  .contact-intro-grid,.contact-content-grid{grid-template-columns:1fr}
  .contact-intro-grid{gap:30px}
  .contact-intro h2{font-size:clamp(4.5rem,11vw,7.5rem)}
  .contact-lead{max-width:48ch}
  .contact-content-grid{gap:48px}
  .contact-meta{display:grid;grid-template-columns:1fr 1fr;gap:36px}
  .contact-meta-label,.contact-mail{grid-column:1/-1}
  .contact-details{grid-column:1/-1}
  .contact-form{max-width:780px;width:100%}
}

@media (max-width:767px){
  .contact-intro{margin-bottom:58px}
  .contact-intro>.eyebrow{margin-bottom:26px}
  .contact-intro h2{font-size:clamp(3.35rem,15.3vw,5.3rem);line-height:.86;letter-spacing:-.07em}
  .contact-intro h2 span{white-space:nowrap}
  .contact-lead{max-width:100%;font-size:1rem;color:#e2e9f0}
  .contact-meta{display:block;padding-top:24px}
  .contact-mail{margin-bottom:34px}
  .contact-details{grid-template-columns:1fr;gap:24px}
  .contact-form{padding:30px 22px}
}

@media (max-width:479px){
  .contact-intro h2{font-size:clamp(3rem,14.5vw,4.35rem)}
  .contact-intro h2 span{white-space:normal}
  .contact-form{margin-inline:-4px;padding:28px 18px}
  .contact-mail{font-size:1.28rem}
}

@media (hover:none){
  .marquee-track span::after{display:none}
  .hero-glow{transition:none}
  .word-marquee:hover .marquee-track{animation-play-state:running}
  .sector:hover,.service-row:hover{transform:none}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .marquee-track{animation:none}
  .js .reveal{opacity:1;transform:none;filter:none}
  .reading-highlight .reading-word{opacity:1!important;filter:none!important}
  .hero-media,.image-parallax img{transform:none!important}
}


/* WordPress admin bar compatibility */
.admin-bar .site-header{top:32px}
@media(max-width:782px){.admin-bar .site-header{top:46px}.admin-bar.menu-open .site-header{height:calc(100dvh - 46px);min-height:calc(100svh - 46px)}}


/* Standard and legal pages */
.site-page{
  min-height:100vh;
  padding-top:clamp(132px,12vw,180px);
  padding-bottom:var(--space-2xl);
}
.site-page article{
  width:min(920px,100%);
  margin-inline:auto;
}
.site-page article>h1{
  margin:0 0 var(--space-xl);
  font-family:"Manrope",sans-serif;
  font-size:clamp(3.2rem,8vw,7.4rem);
  line-height:.88;
  letter-spacing:-.065em;
  text-wrap:balance;
}
.site-page .entry-content{
  color:#252a30;
  font-size:clamp(1rem,.96rem + .18vw,1.12rem);
  line-height:1.72;
}
.site-page .entry-content h2{
  margin:var(--space-xl) 0 var(--space-md);
  color:var(--navy);
  font-family:"Manrope",sans-serif;
  font-size:clamp(1.8rem,3.6vw,2.8rem);
  line-height:1.06;
  letter-spacing:-.035em;
}
.site-page .entry-content h3{
  margin:var(--space-lg) 0 var(--space-sm);
  font-family:"Manrope",sans-serif;
  font-size:clamp(1.25rem,2.2vw,1.65rem);
  line-height:1.2;
}
.site-page .entry-content p,
.site-page .entry-content ul{max-width:72ch}
.site-page .entry-content ul{padding-left:1.2em}
.site-page .entry-content li+li{margin-top:.35em}
.site-page .entry-content a{
  color:var(--navy-3);
  text-decoration:underline;
  text-decoration-thickness:.08em;
  text-underline-offset:.18em;
}
.site-page .entry-content strong{color:var(--ink)}
.site-page .entry-content hr{
  border:0;
  border-top:1px solid var(--line);
  margin:var(--space-xl) 0;
}
@media (max-width:767px){
  .site-page{padding-top:110px}
  .site-page article>h1{font-size:clamp(2.9rem,15vw,4.6rem)}
}


/* Thank-you page */
.thanks-page{min-height:100svh;background:var(--navy);color:#fff;display:grid;place-items:center;padding:140px var(--pad) 80px;text-align:center}
.thanks-inner{width:min(900px,100%);margin-inline:auto}
.thanks-page .eyebrow{color:#c8d2dc}
.thanks-page h1{margin:0 0 var(--space-lg);font-family:"Manrope",sans-serif;font-size:clamp(3.6rem,9vw,9rem);line-height:.88;letter-spacing:-.075em;text-transform:uppercase}
.thanks-page p{max-width:54ch;margin:0 auto var(--space-lg);color:#d7dee6;font-size:clamp(1rem,.95rem + .35vw,1.25rem)}
.thanks-page .button{display:inline-flex}
@media(max-width:767px){.thanks-page{padding-top:120px}.thanks-page h1{font-size:clamp(3.1rem,18vw,5.6rem)}}

@media (max-width:767px){
    .accordion{padding-top:0}
}

@media (min-width:1024px){

/* ---------------------------------------------------------
   Textile custom cursor — desktop / precise pointers only
   An embroidery-hoop halo, a diagonal needle and a short
   thread trail. Native cursors remain on form fields.
---------------------------------------------------------- */
.alda-cursor-dot,
.alda-cursor-hoop,
.alda-cursor-thread{
  position:fixed;
  top:0;
  left:0;
  z-index:10050;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  color:#fff;
  mix-blend-mode:difference;
  will-change:transform,opacity;
}
.alda-cursor-dot{
  width:5px;
  height:5px;
  border-radius:50%;
  background:currentColor;
  transform:translate3d(-50%,-50%,0);
  transition:width .18s var(--ease),height .18s var(--ease),opacity .18s ease;
}
.alda-cursor-hoop{
  width:46px;
  height:46px;
  transform-origin:center;
  transition:width .28s var(--ease),height .28s var(--ease),opacity .2s ease,filter .28s ease;
  filter:drop-shadow(0 0 7px rgba(255,255,255,.22));
}
.alda-cursor-hoop svg{display:block;width:100%;height:100%;overflow:visible}
.alda-cursor-hoop .cursor-hoop-ring{fill:none;stroke:currentColor;stroke-width:1.15;opacity:.82;transition:stroke-width .25s var(--ease),opacity .25s ease,fill .25s ease}
.alda-cursor-hoop .cursor-needle{fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;opacity:.95}
.alda-cursor-hoop .cursor-thread-path{fill:none;stroke:currentColor;stroke-width:.9;stroke-linecap:round;opacity:.6}
.alda-cursor-thread{
  width:42px;
  height:1px;
  transform-origin:100% 50%;
  background:linear-gradient(90deg,transparent,currentColor 78%,currentColor);
  opacity:0;
}
.custom-cursor-enabled.cursor-ready .alda-cursor-dot,
.custom-cursor-enabled.cursor-ready .alda-cursor-hoop,
.custom-cursor-enabled.cursor-ready .alda-cursor-thread{
  visibility:visible;
}
.custom-cursor-enabled.cursor-ready .alda-cursor-dot,
.custom-cursor-enabled.cursor-ready .alda-cursor-hoop{opacity:1}
.custom-cursor-enabled.cursor-hover .alda-cursor-hoop{
  width:64px;
  height:64px;
  filter:drop-shadow(0 0 13px rgba(255,255,255,.48));
}
.custom-cursor-enabled.cursor-hover .alda-cursor-hoop .cursor-hoop-ring{
  stroke-width:1.6;
  opacity:1;
  fill:rgba(255,255,255,.08);
}
.custom-cursor-enabled.cursor-hover .alda-cursor-dot{width:7px;height:7px}
.custom-cursor-enabled.cursor-media .alda-cursor-hoop{width:72px;height:72px}
.custom-cursor-enabled.cursor-down .alda-cursor-hoop{width:38px;height:38px;filter:drop-shadow(0 0 16px rgba(255,255,255,.62))}
.custom-cursor-enabled.cursor-native .alda-cursor-dot,
.custom-cursor-enabled.cursor-native .alda-cursor-hoop,
.custom-cursor-enabled.cursor-native .alda-cursor-thread{opacity:0!important}
.cursor-stitch-burst{
  position:fixed;
  left:0;
  top:0;
  z-index:10049;
  width:2px;
  height:13px;
  border-radius:2px;
  background:#fff;
  pointer-events:none;
  mix-blend-mode:difference;
  transform-origin:50% 24px;
  animation:cursor-stitch-pop .48s var(--ease) forwards;
}
@keyframes cursor-stitch-pop{
  0%{opacity:.9;transform:translate3d(-50%,-50%,0) rotate(var(--burst-angle)) translateY(-8px) scaleY(.4)}
  100%{opacity:0;transform:translate3d(-50%,-50%,0) rotate(var(--burst-angle)) translateY(-30px) scaleY(1)}
}
@media (hover:hover) and (pointer:fine){
  html.custom-cursor-enabled body,
  html.custom-cursor-enabled a,
  html.custom-cursor-enabled button,
  html.custom-cursor-enabled summary,
  html.custom-cursor-enabled [role="button"],
  html.custom-cursor-enabled .sector,
  html.custom-cursor-enabled .service-row,
  html.custom-cursor-enabled figure{cursor:none!important}
  html.custom-cursor-enabled input:not([type="checkbox"]):not([type="radio"]),
  html.custom-cursor-enabled textarea,
  html.custom-cursor-enabled select,
  html.custom-cursor-enabled [contenteditable="true"]{cursor:text!important}
  html.custom-cursor-enabled input[type="checkbox"],
  html.custom-cursor-enabled input[type="radio"]{cursor:pointer!important}
}
@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){
  .alda-cursor-dot,.alda-cursor-hoop,.alda-cursor-thread,.cursor-stitch-burst{display:none!important}
}
