/* ============================================================
   SALVATORE VAIRA — HOMEPAGE
   TUTTI gli stili sono isolati sotto .sv-site
   ============================================================ */

/* ---------- 01. TOKENS ---------- */
.sv-site{
  --sv-ivory:#F7F4EF;
  --sv-stone:#EFEAE3;
  --sv-beige:#E3DCD1;
  --sv-sand:#D6CCBE;
  --sv-taupe:#9A9187;
  --sv-warmgrey:#6B6660;
  --sv-ink:#1C1A18;
  --sv-charcoal:#141312;
  --sv-bronze:#A98C6B;

  --sv-line:rgba(28,26,24,.14);
  --sv-line-soft:rgba(28,26,24,.08);
  --sv-line-light:rgba(247,244,239,.16);

  --sv-serif:'Cormorant Garamond','Times New Roman',serif;
  --sv-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;

  --sv-ease:cubic-bezier(.2,.7,.2,1);
  --sv-ease-slow:cubic-bezier(.65,0,.2,1);
  --sv-ease-out:cubic-bezier(.16,1,.3,1);

  background:var(--sv-ivory);
  color:var(--sv-ink);
  font-family:var(--sv-sans);
  font-size:16px;
  font-weight:300;
  line-height:1.65;
  letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  position:relative;
}

/* ---------- 02. RESET ---------- */
.sv-site *, .sv-site *::before, .sv-site *::after{box-sizing:border-box;}
.sv-site img{display:block;max-width:100%;}
.sv-site a{color:inherit;text-decoration:none;}
.sv-site button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
.sv-site ul, .sv-site ol{margin:0;padding:0;list-style:none;}
.sv-site h1, .sv-site h2, .sv-site h3, .sv-site h4, .sv-site p{margin:0;}
.sv-site ::selection{background:var(--sv-charcoal);color:var(--sv-ivory);}

.sv-site::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:200;
  opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- 03. LAYOUT ---------- */
.sv-site .sv-container{
  width:100%;
  max-width:1560px;
  margin-inline:auto;
  padding-inline:clamp(20px,4.5vw,84px);
}
.sv-site .sv-section{padding:clamp(92px,13vh,176px) 0;}

.sv-site .sv-display{
  font-family:var(--sv-serif);
  font-weight:300;
  line-height:1.02;
  letter-spacing:-.012em;
}
.sv-site .sv-display em{font-style:italic;font-weight:300;}

.sv-site .sv-label{
  font-family:var(--sv-sans);
  font-size:.6875rem;
  font-weight:400;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--sv-taupe);
  line-height:1.4;
}
.sv-site .sv-label--light{color:rgba(247,244,239,.55);}

/* ---------- 04. MEDIA FRAMES (usano <picture><img>) ---------- */
.sv-site .sv-frame{
  position:relative;
  display:block;
  overflow:hidden;
  aspect-ratio:var(--sv-ar,4/3);
  background:linear-gradient(135deg,var(--sv-beige),var(--sv-sand));
  isolation:isolate;
}

/* NUOVO — il <picture> riempie il frame */
.sv-site .sv-frame__img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  transform:scale(var(--sv-scale,1.001));
  transition:transform 1.15s var(--sv-ease);
  will-change:transform;
}

/* L'<img> dentro il <picture> riempie il picture */
.sv-site .sv-frame__img img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

/* Zoom-in iniziale finché non è visibile */
.sv-site [data-sv-reveal]:not(.sv-visible) .sv-frame__img,
.sv-site [data-sv-mask]:not(.sv-visible) .sv-frame__img{--sv-scale:1.06;}

/* Hover: zoom leggero */
.sv-site .sv-frame:hover .sv-frame__img{--sv-scale:1.055;}

/* ---------- 05. LINK / ARROW ---------- */
.sv-site .sv-link-arrow{
  display:inline-flex;
  align-items:center;
  gap:14px;
  font-size:.6875rem;
  font-weight:400;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:inherit;
  white-space:nowrap;
}
.sv-site .sv-link-arrow .sv-arrow{
  position:relative;
  display:block;
  width:34px;
  height:1px;
  background:currentColor;
  transition:width .55s var(--sv-ease);
}
.sv-site .sv-link-arrow .sv-arrow::after{
  content:"";
  position:absolute;
  right:0;
  top:-3px;
  width:7px;
  height:7px;
  border-top:1px solid currentColor;
  border-right:1px solid currentColor;
  transform:rotate(45deg);
}
.sv-site .sv-link-arrow:hover .sv-arrow{width:54px;}

/* ---------- 06. BUTTON ---------- */
.sv-site .sv-btn{
  display:inline-flex;
  align-items:center;
  gap:16px;
  padding:20px 40px;
  border:1px solid rgba(247,244,239,.5);
  background:transparent;
  color:var(--sv-ivory);
  font-family:var(--sv-sans);
  font-size:.6875rem;
  font-weight:400;
  letter-spacing:.26em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background-color .5s var(--sv-ease),color .5s var(--sv-ease),border-color .5s var(--sv-ease),gap .5s var(--sv-ease);
}
.sv-site .sv-btn:hover{
  background:var(--sv-ivory);
  color:var(--sv-ink);
  border-color:var(--sv-ivory);
  gap:24px;
}
.sv-site .sv-btn .sv-arrow{
  position:relative;
  display:block;
  width:30px;
  height:1px;
  background:currentColor;
  transition:width .5s var(--sv-ease);
}
.sv-site .sv-btn .sv-arrow::after{
  content:"";
  position:absolute;
  right:0;
  top:-3px;
  width:7px;
  height:7px;
  border-top:1px solid currentColor;
  border-right:1px solid currentColor;
  transform:rotate(45deg);
}
.sv-site .sv-btn:hover .sv-arrow{width:44px;}
.sv-site .sv-btn--dark{border-color:var(--sv-charcoal);color:var(--sv-charcoal);}
.sv-site .sv-btn--dark:hover{background:var(--sv-charcoal);color:var(--sv-ivory);border-color:var(--sv-charcoal);}

/* ---------- 07. REVEAL ---------- */
.sv-site [data-sv-reveal]:not([data-sv-split]):not([data-sv-mask]){
  opacity:0;
  transform:translateY(28px);
  transition:opacity 1.15s var(--sv-ease) var(--sv-delay,0s),transform 1.15s var(--sv-ease) var(--sv-delay,0s);
}
.sv-site [data-sv-reveal]:not([data-sv-split]):not([data-sv-mask]).sv-visible{opacity:1;transform:none;}

/* ---------- 07b. MASK REVEAL ---------- */
.sv-site [data-sv-mask]{
  clip-path:inset(0 0 100% 0);
  transition:clip-path 1.5s var(--sv-ease-out) var(--sv-delay,0s);
}
.sv-site [data-sv-mask].sv-visible{clip-path:inset(0 0 0 0);}
.sv-site [data-sv-mask] .sv-frame__img{transition:transform 1.6s var(--sv-ease-out);}

/* ---------- 07c. SPLIT TEXT ---------- */
.sv-site [data-sv-split] .sv-word{
  display:inline-block;
  overflow:hidden;
  vertical-align:top;
  padding-bottom:.14em;
  margin-bottom:-.14em;
  line-height:inherit;
}
.sv-site [data-sv-split] .sv-word-inner{
  display:inline-block;
  transform:translateY(118%);
  transition:transform 1.15s var(--sv-ease-out);
  transition-delay:calc(var(--sv-i,0) * .045s + var(--sv-delay,0s));
  will-change:transform;
}
.sv-site [data-sv-split].sv-visible .sv-word-inner{transform:translateY(0);}

/* ---------- 08. HEADER ---------- */
.sv-site .sv-header{
  position:fixed;
  inset:0 0 auto 0;
  z-index:100;
  padding:clamp(18px,2.4vw,32px) 0;
  color:var(--sv-ivory);
  border-bottom:1px solid transparent;
  transition:padding .7s var(--sv-ease),background-color .7s var(--sv-ease),color .7s var(--sv-ease),border-color .7s var(--sv-ease);
}
.sv-site .sv-header--scrolled{
  padding:15px 0;
  background:rgba(247,244,239,.9);
  -webkit-backdrop-filter:blur(16px) saturate(1.1);
  backdrop-filter:blur(16px) saturate(1.1);
  color:var(--sv-ink);
  border-bottom-color:var(--sv-line-soft);
}
.sv-site .sv-header--scrolled.sv-menu-open{
  background:transparent;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  color:var(--sv-ivory);
  border-bottom-color:transparent;
}
.sv-site .sv-header__inner{display:flex;align-items:center;justify-content:space-between;gap:32px;}
.sv-site .sv-brand{font-size:.8125rem;font-weight:400;letter-spacing:.34em;text-transform:uppercase;line-height:1;white-space:nowrap;}
.sv-site .sv-brand span{display:block;}

.sv-site .sv-nav{display:flex;align-items:center;gap:clamp(24px,3vw,46px);}
.sv-site .sv-nav a{
  position:relative;
  font-size:.6875rem;
  font-weight:400;
  letter-spacing:.2em;
  text-transform:uppercase;
  opacity:.85;
  transition:opacity .45s var(--sv-ease);
}
.sv-site .sv-nav a::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-7px;
  width:100%;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .6s var(--sv-ease);
}
.sv-site .sv-nav a:hover{opacity:1;}
.sv-site .sv-nav a:hover::after{transform:scaleX(1);}

.sv-site .sv-burger{display:none;position:relative;width:26px;height:16px;z-index:101;}
.sv-site .sv-burger i{
  position:absolute;
  left:0;
  width:100%;
  height:1px;
  background:currentColor;
  transition:transform .55s var(--sv-ease),opacity .35s var(--sv-ease);
}
.sv-site .sv-burger i:nth-child(1){top:0;}
.sv-site .sv-burger i:nth-child(2){bottom:0;}
.sv-site .sv-burger.sv-active i:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.sv-site .sv-burger.sv-active i:nth-child(2){transform:translateY(-7.5px) rotate(-45deg);}

/* ---------- 09. MENU MOBILE ---------- */
.sv-site .sv-menu{
  position:fixed;
  inset:0;
  z-index:99;
  background:var(--sv-charcoal);
  color:var(--sv-ivory);
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:120px clamp(24px,8vw,80px) 60px;
  clip-path:inset(0 0 100% 0);
  transition:clip-path .95s var(--sv-ease-slow);
  visibility:hidden;
}
.sv-site .sv-menu.sv-open{clip-path:inset(0 0 0 0);visibility:visible;}
.sv-site .sv-menu__nav{display:flex;flex-direction:column;gap:clamp(6px,1.6vh,16px);}
.sv-site .sv-menu__nav a{
  font-family:var(--sv-serif);
  font-weight:300;
  font-size:clamp(2.1rem,9vw,3.4rem);
  line-height:1.1;
  letter-spacing:-.01em;
  opacity:0;
  transform:translateY(26px);
  transition:opacity .8s var(--sv-ease),transform .8s var(--sv-ease);
}
.sv-site .sv-menu.sv-open .sv-menu__nav a{opacity:1;transform:none;}
.sv-site .sv-menu.sv-open .sv-menu__nav a:nth-child(1){transition-delay:.22s;}
.sv-site .sv-menu.sv-open .sv-menu__nav a:nth-child(2){transition-delay:.29s;}
.sv-site .sv-menu.sv-open .sv-menu__nav a:nth-child(3){transition-delay:.36s;}
.sv-site .sv-menu.sv-open .sv-menu__nav a:nth-child(4){transition-delay:.43s;}
.sv-site .sv-menu__foot{
  margin-top:clamp(40px,9vh,80px);
  padding-top:28px;
  border-top:1px solid var(--sv-line-light);
  display:flex;
  flex-wrap:wrap;
  gap:14px 34px;
  font-size:.6875rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(247,244,239,.55);
  opacity:0;
  transition:opacity .8s var(--sv-ease) .5s;
}
.sv-site .sv-menu.sv-open .sv-menu__foot{opacity:1;}

/* ---------- 10. HERO ---------- */
.sv-site .sv-hero{
  position:relative;
  min-height:100vh;
  min-height:100svh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:var(--sv-charcoal);
  color:var(--sv-ivory);
}
.sv-site .sv-hero__media{
  position:absolute;
  inset:0;
  height:124%;
  will-change:transform;
  overflow:hidden;
}
.sv-site .sv-hero__video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 45%;
}
.sv-site .sv-hero__poster{
  position:absolute;
  inset:0;
  display:block;
  transition:opacity 1.2s var(--sv-ease);
}
.sv-site .sv-hero__poster img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 45%;
  display:block;
}
.sv-site .sv-hero__poster.sv-hidden{opacity:0;}

.sv-site .sv-hero__scrim{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(12,11,10,.35) 0%,rgba(12,11,10,.12) 30%,rgba(12,11,10,.32) 60%,rgba(12,11,10,.72) 100%),
    linear-gradient(90deg,rgba(12,11,10,.35) 0%,rgba(12,11,10,.12) 40%,rgba(12,11,10,0) 70%);
}
.sv-site .sv-hero__content{
  position:relative;
  z-index:2;
  width:100%;
  padding-top:150px;
  padding-bottom:clamp(38px,6vh,72px);
}
.sv-site .sv-hero__eyebrow{margin-bottom:clamp(22px,3.4vh,44px);color:rgba(247,244,239,.7);}
.sv-site .sv-hero__title{
  font-family:var(--sv-serif);
  font-weight:400;
  font-size:clamp(2.6rem,7.6vw,7.2rem);
  line-height:.98;
  letter-spacing:-.018em;
  max-width:15ch;
  text-shadow:0 2px 24px rgba(12,11,10,.45);
}
.sv-site .sv-hero__title em{font-style:italic;}
.sv-site .sv-hero__eyebrow,
.sv-site .sv-hero__note,
.sv-site .sv-scroll-cue{text-shadow:0 1px 14px rgba(12,11,10,.5);}
.sv-site .sv-hero__foot{
  margin-top:clamp(38px,6.5vh,78px);
  padding-top:clamp(20px,2.6vw,30px);
  border-top:1px solid var(--sv-line-light);
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
}
.sv-site .sv-hero__note{
  display:none;
  max-width:34ch;
  font-size:.8125rem;
  line-height:1.7;
  color:rgba(247,244,239,.6);
}
@media (min-width:1100px){.sv-site .sv-hero__note{display:block;}}

.sv-site .sv-scroll-cue{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  font-size:.5625rem;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:rgba(247,244,239,.75);
}
.sv-site .sv-scroll-cue i{
  position:relative;
  display:block;
  width:1px;
  height:54px;
  background:rgba(247,244,239,.22);
  overflow:hidden;
}
.sv-site .sv-scroll-cue i::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--sv-ivory);
  animation:sv-cue 2.8s var(--sv-ease-slow) infinite;
}
@keyframes sv-cue{
  0%{transform:translateY(-100%);}
  55%,100%{transform:translateY(100%);}
}

/* ---------- 11. SECTION HEAD ---------- */
.sv-site .sv-section-head{margin-bottom:clamp(48px,7vw,104px);}
.sv-site .sv-section-head__title{
  margin-top:clamp(18px,2.4vw,28px);
  font-size:clamp(1.9rem,3.7vw,3.5rem);
  max-width:22ch;
}

/* ---------- 12. INTRODUZIONE ---------- */
.sv-site .sv-intro__grid{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);
  gap:clamp(36px,6vw,110px);
  align-items:start;
}
.sv-site .sv-intro__title{margin-top:clamp(22px,3vw,36px);font-size:clamp(2.1rem,4.7vw,4.5rem);}
.sv-site .sv-intro__text{
  font-size:clamp(.95rem,1.05vw,1.0625rem);
  line-height:1.85;
  color:var(--sv-warmgrey);
  max-width:46ch;
}
.sv-site .sv-intro__right{
  display:flex;
  flex-direction:column;
  gap:clamp(28px,3.4vw,44px);
  padding-top:clamp(0px,1.4vw,20px);
}
.sv-site .sv-intro__rule{width:100%;height:1px;background:var(--sv-line-soft);}

/* ---------- 13. SETTORI ---------- */
.sv-site .sv-sector{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:clamp(16px,2.4vw,40px);
  align-items:end;
}
.sv-site .sv-sector + .sv-sector{margin-top:clamp(78px,11vw,168px);}
.sv-site .sv-sector__body{padding-bottom:clamp(6px,1.6vw,28px);}
.sv-site .sv-sector__num{
  display:block;
  font-size:.625rem;
  letter-spacing:.28em;
  color:var(--sv-bronze);
  margin-bottom:clamp(14px,1.6vw,22px);
}
.sv-site .sv-sector__name{font-size:clamp(1.65rem,3.1vw,2.7rem);margin-bottom:clamp(14px,1.6vw,22px);}
.sv-site .sv-sector__desc{
  font-size:.9375rem;
  line-height:1.8;
  color:var(--sv-warmgrey);
  max-width:38ch;
  margin-bottom:clamp(20px,2.4vw,32px);
}
.sv-site .sv-sector--a .sv-sector__frame{grid-column:1 / 8;--sv-ar:4/3;}
.sv-site .sv-sector--a .sv-sector__body{grid-column:9 / 13;}
.sv-site .sv-sector--b .sv-sector__frame{grid-column:6 / 13;--sv-ar:16/10;}
.sv-site .sv-sector--b .sv-sector__body{grid-column:1 / 5;align-self:center;padding-bottom:0;}
.sv-site .sv-sector--c .sv-sector__frame{grid-column:2 / 8;--sv-ar:5/6;}
.sv-site .sv-sector--c .sv-sector__body{grid-column:9 / 13;}
.sv-site .sv-sector--d .sv-sector__frame{grid-column:5 / 13;--sv-ar:16/9;}
.sv-site .sv-sector--d .sv-sector__body{grid-column:1 / 4;align-self:center;padding-bottom:0;}

/* ---------- 14. PROGETTI ---------- */
.sv-site .sv-projects__list{display:flex;flex-direction:column;gap:clamp(64px,9vw,150px);}
.sv-site .sv-project{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:clamp(16px,2.4vw,40px);
  align-items:end;
}
.sv-site .sv-project__frame{--sv-ar:16/10;}
.sv-site .sv-project:nth-child(odd) .sv-project__frame{grid-column:1 / 9;}
.sv-site .sv-project:nth-child(odd) .sv-project__meta{grid-column:9 / 13;}
.sv-site .sv-project:nth-child(even) .sv-project__frame{grid-column:5 / 13;--sv-ar:4/3;}
.sv-site .sv-project:nth-child(even) .sv-project__meta{grid-column:1 / 5;}

.sv-site .sv-project__meta{
  padding-bottom:clamp(6px,1.4vw,24px);
  display:flex;
  flex-direction:column;
  gap:clamp(12px,1.4vw,18px);
}
.sv-site .sv-project__name{
  font-size:clamp(1.5rem,2.7vw,2.4rem);
  transition:letter-spacing .7s var(--sv-ease);
}
.sv-site .sv-project:hover .sv-project__name{letter-spacing:-.002em;}

.sv-site .sv-project__info{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 14px;
  font-size:.625rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--sv-taupe);
}
.sv-site .sv-project__info i{display:block;width:16px;height:1px;background:var(--sv-line);}

.sv-site .sv-project__cta{
  margin-top:clamp(4px,1vw,10px);
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:.625rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--sv-ink);
  opacity:0;
  transform:translateX(-10px);
  transition:opacity .6s var(--sv-ease),transform .6s var(--sv-ease);
}
.sv-site .sv-project__cta .sv-arrow{
  position:relative;
  display:block;
  width:26px;
  height:1px;
  background:currentColor;
}
.sv-site .sv-project__cta .sv-arrow::after{
  content:"";
  position:absolute;
  right:0;
  top:-3px;
  width:7px;
  height:7px;
  border-top:1px solid currentColor;
  border-right:1px solid currentColor;
  transform:rotate(45deg);
}
.sv-site .sv-project:hover .sv-project__cta{opacity:1;transform:none;}

.sv-site .sv-project__frame::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(12,11,10,0) 45%,rgba(12,11,10,.28) 100%);
  opacity:0;
  transition:opacity .8s var(--sv-ease);
  pointer-events:none;
}
.sv-site .sv-project:hover .sv-project__frame::after{opacity:1;}

/* ---------- 15. ARTIGIANALITÀ ---------- */
.sv-site .sv-craft{background:var(--sv-charcoal);color:var(--sv-ivory);}
.sv-site .sv-craft .sv-label{color:rgba(247,244,239,.5);}
.sv-site .sv-craft__title{
  margin-top:clamp(18px,2.4vw,28px);
  font-size:clamp(2rem,4.4vw,4.2rem);
  max-width:16ch;
}
.sv-site .sv-craft__grid{
  margin-top:clamp(52px,8vw,120px);
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:clamp(16px,2.4vw,40px);
  align-items:start;
}
.sv-site .sv-craft .sv-frame{background:linear-gradient(135deg,#242220,#1B1A18);}
.sv-site .sv-craft__m1{grid-column:1 / 5;--sv-ar:4/5;}
.sv-site .sv-craft__m2{grid-column:9 / 13;--sv-ar:4/5;margin-top:clamp(48px,8vw,124px);}
.sv-site .sv-craft__body{grid-column:5 / 9;align-self:center;padding:0 clamp(0px,1vw,14px);}
.sv-site .sv-craft__body p{
  font-size:.9375rem;
  line-height:1.95;
  color:rgba(247,244,239,.68);
  max-width:40ch;
}
.sv-site .sv-craft__quote{
  margin-top:clamp(24px,3vw,38px);
  padding-top:clamp(20px,2.4vw,30px);
  border-top:1px solid var(--sv-line-light);
  font-family:var(--sv-serif);
  font-style:italic;
  font-size:1.125rem;
  line-height:1.5;
  color:rgba(247,244,239,.85);
}

/* ---------- 16. INTERNAZIONALE ---------- */
.sv-site .sv-intl__head{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:clamp(44px,6vw,84px);
}
.sv-site .sv-intl__title{margin-top:clamp(18px,2.4vw,28px);font-size:clamp(1.9rem,3.7vw,3.5rem);max-width:20ch;}
.sv-site .sv-intl__list{border-bottom:1px solid var(--sv-line-soft);}
.sv-site .sv-intl__row{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) auto;
  align-items:baseline;
  gap:20px 32px;
  padding:clamp(20px,2.6vw,34px) 0;
  border-top:1px solid var(--sv-line-soft);
  transition:padding-left .7s var(--sv-ease),border-color .7s var(--sv-ease);
}
.sv-site .sv-intl__row:hover{padding-left:16px;border-top-color:var(--sv-line);}
.sv-site .sv-intl__country{font-size:clamp(1.35rem,2.6vw,2.2rem);line-height:1.1;}
.sv-site .sv-intl__meta{font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sv-taupe);}
.sv-site .sv-intl__count{
  font-size:.625rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--sv-warmgrey);
  opacity:.75;
  text-align:right;
}

/* ---------- 17. CONTACT FORM ---------- */
.sv-site .sv-contact{background:var(--sv-stone);}
.sv-site .sv-contact__grid{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(40px,6vw,110px);
  align-items:start;
}
.sv-site .sv-contact__intro{
  display:flex;
  flex-direction:column;
  gap:clamp(20px,2.4vw,30px);
  padding-top:clamp(0px,1vw,14px);
}
.sv-site .sv-contact__title{margin-top:clamp(18px,2.4vw,28px);font-size:clamp(1.9rem,3.7vw,3.4rem);max-width:18ch;}
.sv-site .sv-contact__text{font-size:.9375rem;line-height:1.85;color:var(--sv-warmgrey);max-width:42ch;}
.sv-site .sv-contact__meta{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:clamp(16px,2vw,26px);
  padding-top:clamp(20px,2.4vw,30px);
  border-top:1px solid var(--sv-line-soft);
}
.sv-site .sv-contact__meta-row{
  display:flex;
  gap:14px;
  font-size:.75rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--sv-warmgrey);
}
.sv-site .sv-contact__meta-row span:first-child{min-width:76px;color:var(--sv-taupe);letter-spacing:.22em;}
.sv-site .sv-contact__meta-row a{transition:color .4s var(--sv-ease);}
.sv-site .sv-contact__meta-row a:hover{color:var(--sv-ink);}

.sv-site .sv-form{display:flex;flex-direction:column;gap:clamp(20px,2.4vw,30px);}
.sv-site .sv-form__row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.4vw,30px);}

.sv-site .sv-field{position:relative;display:flex;flex-direction:column-reverse;gap:10px;}
.sv-site .sv-field label{
  font-size:.625rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--sv-taupe);
  transition:color .4s var(--sv-ease);
}
.sv-site .sv-field input,
.sv-site .sv-field select,
.sv-site .sv-field textarea{
  width:100%;
  padding:12px 0 14px;
  border:0;
  border-bottom:1px solid var(--sv-line);
  background:transparent;
  color:var(--sv-ink);
  font-family:var(--sv-sans);
  font-size:.9375rem;
  font-weight:300;
  letter-spacing:.01em;
  border-radius:0;
  outline:none;
  transition:border-color .5s var(--sv-ease),color .5s var(--sv-ease);
  -webkit-appearance:none;
  appearance:none;
}
.sv-site .sv-field textarea{min-height:110px;resize:vertical;line-height:1.65;}
.sv-site .sv-field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='%239A9187' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 2px center;
  padding-right:24px;
  cursor:pointer;
}
.sv-site .sv-field select:invalid{color:var(--sv-taupe);}
.sv-site .sv-field select option{color:var(--sv-ink);}
.sv-site .sv-field input:focus,
.sv-site .sv-field select:focus,
.sv-site .sv-field textarea:focus{border-bottom-color:var(--sv-ink);}
.sv-site .sv-field input:focus + label,
.sv-site .sv-field select:focus + label,
.sv-site .sv-field textarea:focus + label{color:var(--sv-ink);}

.sv-site .sv-check{
  display:flex;
  align-items:flex-start;
  gap:14px;
  font-size:.75rem;
  line-height:1.65;
  color:var(--sv-warmgrey);
  cursor:pointer;
  letter-spacing:.01em;
  position:relative;
}
.sv-site .sv-check input{position:absolute;opacity:0;pointer-events:none;}
.sv-site .sv-check__box{
  position:relative;
  flex-shrink:0;
  width:16px;
  height:16px;
  margin-top:4px;
  border:1px solid var(--sv-line);
  background:transparent;
  transition:border-color .4s var(--sv-ease),background-color .4s var(--sv-ease);
}
.sv-site .sv-check__box::after{
  content:"";
  position:absolute;
  left:5px;
  top:1px;
  width:5px;
  height:10px;
  border-right:1.5px solid var(--sv-ivory);
  border-bottom:1.5px solid var(--sv-ivory);
  transform:rotate(45deg) scale(0);
  transform-origin:center;
  transition:transform .35s var(--sv-ease);
}
.sv-site .sv-check input:checked + .sv-check__box{background:var(--sv-charcoal);border-color:var(--sv-charcoal);}
.sv-site .sv-check input:checked + .sv-check__box::after{transform:rotate(45deg) scale(1);}
.sv-site .sv-check a{color:var(--sv-ink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}

.sv-site .sv-form__actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px 28px;margin-top:clamp(6px,1vw,14px);}
.sv-site .sv-form__note{
  font-size:.6875rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--sv-taupe);
  max-width:30ch;
}
.sv-site .sv-field.sv-error input,
.sv-site .sv-field.sv-error select,
.sv-site .sv-field.sv-error textarea{border-bottom-color:#B54A32;}
.sv-site .sv-field.sv-error label{color:#B54A32;}
.sv-site .sv-form__status{
  margin-top:8px;
  font-size:.75rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--sv-bronze);
  opacity:0;
  transform:translateY(-4px);
  transition:opacity .5s var(--sv-ease),transform .5s var(--sv-ease);
}
.sv-site .sv-form__status.sv-show{opacity:1;transform:none;}

/* ---------- 18. CTA ---------- */
.sv-site .sv-cta{
  position:relative;
  overflow:hidden;
  background:var(--sv-charcoal);
  color:var(--sv-ivory);
  display:flex;
  align-items:center;
  min-height:min(88vh,820px);
  padding:clamp(96px,16vh,180px) 0;
}
.sv-site .sv-cta__bg{
  position:absolute;
  inset:0;
  overflow:hidden;
  transform:scale(1.02);
}
.sv-site .sv-cta__bg picture{
  position:absolute;
  inset:0;
  display:block;
}
.sv-site .sv-cta__bg img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.sv-site .sv-cta__scrim{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(12,11,10,.72) 0%,rgba(12,11,10,.6) 45%,rgba(12,11,10,.82) 100%);
}
.sv-site .sv-cta__content{position:relative;z-index:2;width:100%;}
.sv-site .sv-cta__title{
  margin-top:clamp(22px,3vw,34px);
  font-size:clamp(2.2rem,5.6vw,5.2rem);
  max-width:18ch;
}
.sv-site .sv-cta__action{margin-top:clamp(38px,5.5vw,64px);}

/* ---------- 19. FOOTER ---------- */
.sv-site .sv-footer{
  background:var(--sv-charcoal);
  color:var(--sv-ivory);
  border-top:1px solid var(--sv-line-light);
  padding:clamp(64px,9vw,116px) 0 clamp(28px,3vw,40px);
}
.sv-site .sv-footer__top{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));
  gap:clamp(36px,5vw,72px);
  padding-bottom:clamp(48px,7vw,88px);
}
.sv-site .sv-footer__logo{font-size:.875rem;letter-spacing:.32em;text-transform:uppercase;line-height:1.6;}
.sv-site .sv-footer__tag{
  margin-top:18px;
  font-family:var(--sv-serif);
  font-style:italic;
  font-size:1.0625rem;
  color:rgba(247,244,239,.55);
}
.sv-site .sv-footer__col-title{
  font-size:.625rem;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:rgba(247,244,239,.4);
  margin-bottom:clamp(18px,2vw,26px);
}
.sv-site .sv-footer__col ul{display:flex;flex-direction:column;gap:12px;}
.sv-site .sv-footer__col a,
.sv-site .sv-footer__col p{
  font-size:.8125rem;
  line-height:1.7;
  color:rgba(247,244,239,.72);
  transition:color .45s var(--sv-ease);
}
.sv-site .sv-footer__col a:hover{color:var(--sv-ivory);}
.sv-site .sv-footer__bottom{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:16px 32px;
  padding-top:clamp(24px,3vw,36px);
  border-top:1px solid var(--sv-line-light);
  font-size:.625rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(247,244,239,.38);
}
.sv-site .sv-footer__legal{display:flex;gap:26px;}

/* ---------- 20. BACK TO TOP ---------- */
.sv-site .sv-to-top{
  position:fixed;
  right:clamp(18px,3vw,38px);
  bottom:clamp(18px,3vw,38px);
  z-index:90;
  width:52px;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--sv-line);
  border-radius:50%;
  background:rgba(247,244,239,.85);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  color:var(--sv-ink);
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(14px);
  transition:opacity .55s var(--sv-ease),transform .55s var(--sv-ease),visibility .55s var(--sv-ease),background-color .45s var(--sv-ease),color .45s var(--sv-ease),border-color .45s var(--sv-ease);
}
.sv-site .sv-to-top.sv-visible{opacity:1;visibility:visible;transform:none;}
.sv-site .sv-to-top:hover{background:var(--sv-charcoal);color:var(--sv-ivory);border-color:var(--sv-charcoal);}
.sv-site .sv-to-top svg{width:14px;height:14px;transition:transform .5s var(--sv-ease);}
.sv-site .sv-to-top:hover svg{transform:translateY(-3px);}
.sv-site .sv-to-top.sv-on-dark{
  background:rgba(20,19,18,.55);
  color:var(--sv-ivory);
  border-color:var(--sv-line-light);
}
.sv-site .sv-to-top.sv-on-dark:hover{background:var(--sv-ivory);color:var(--sv-ink);border-color:var(--sv-ivory);}

/* ---------- 21. RESPONSIVE ---------- */
@media (max-width:1080px){
  .sv-site .sv-footer__top{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .sv-site .sv-footer__brand{grid-column:1 / -1;}
}

@media (max-width:940px){
  .sv-site .sv-nav{display:none;}
  .sv-site .sv-burger{display:block;}
  .sv-site .sv-brand{letter-spacing:.24em;font-size:.75rem;}

  .sv-site .sv-intro__grid{grid-template-columns:1fr;gap:clamp(32px,6vw,48px);}

  .sv-site .sv-sector{grid-template-columns:1fr;gap:clamp(22px,4vw,32px);}
  .sv-site .sv-sector--a .sv-sector__frame,
  .sv-site .sv-sector--b .sv-sector__frame,
  .sv-site .sv-sector--c .sv-sector__frame,
  .sv-site .sv-sector--d .sv-sector__frame{grid-column:1 / -1;--sv-ar:4/3;}
  .sv-site .sv-sector--a .sv-sector__body,
  .sv-site .sv-sector--b .sv-sector__body,
  .sv-site .sv-sector--c .sv-sector__body,
  .sv-site .sv-sector--d .sv-sector__body{grid-column:1 / -1;align-self:start;padding-bottom:0;}

  .sv-site .sv-project{grid-template-columns:1fr;gap:clamp(20px,4vw,28px);}
  .sv-site .sv-project:nth-child(odd) .sv-project__frame,
  .sv-site .sv-project:nth-child(even) .sv-project__frame{grid-column:1 / -1;--sv-ar:4/3;}
  .sv-site .sv-project:nth-child(odd) .sv-project__meta,
  .sv-site .sv-project:nth-child(even) .sv-project__meta{grid-column:1 / -1;}
  .sv-site .sv-project__cta{opacity:1;transform:none;}

  .sv-site .sv-craft__grid{grid-template-columns:1fr;gap:clamp(24px,4vw,36px);}
  .sv-site .sv-craft__m1,
  .sv-site .sv-craft__m2,
  .sv-site .sv-craft__body{grid-column:1 / -1;}
  .sv-site .sv-craft__m1{--sv-ar:4/3;}
  .sv-site .sv-craft__m2{--sv-ar:4/3;margin-top:0;}
  .sv-site .sv-craft__body{padding:0;}

  .sv-site .sv-intl__row{grid-template-columns:1fr auto;gap:8px 20px;}
  .sv-site .sv-intl__meta{grid-column:1 / -1;order:3;}

  .sv-site .sv-contact__grid{grid-template-columns:1fr;gap:clamp(40px,6vw,60px);}
  .sv-site .sv-form__row{grid-template-columns:1fr;gap:clamp(20px,2.4vw,30px);}
}

@media (max-width:640px){
  .sv-site .sv-hero{min-height:92vh;min-height:92svh;}
  .sv-site .sv-hero__title{font-size:clamp(2.35rem,11vw,3.2rem);}
  .sv-site .sv-hero__foot{flex-direction:column;align-items:flex-start;gap:28px;}
  .sv-site .sv-scroll-cue{align-self:flex-end;flex-direction:row;gap:14px;}
  .sv-site .sv-scroll-cue i{width:44px;height:1px;background:rgba(247,244,239,.24);}
  .sv-site .sv-scroll-cue i::after{width:44px;height:1px;animation:sv-cue-x 2.8s var(--sv-ease-slow) infinite;}
  @keyframes sv-cue-x{
    0%{transform:translateX(-100%);}
    55%,100%{transform:translateX(100%);}
  }

  .sv-site .sv-footer__top{grid-template-columns:1fr;gap:40px;}
  .sv-site .sv-footer__bottom{flex-direction:column;align-items:flex-start;}

  .sv-site .sv-to-top{width:44px;height:44px;}
  .sv-site .sv-btn{padding:16px 28px;font-size:.625rem;letter-spacing:.22em;}
}

/* ---------- 22. REDUCED MOTION ---------- */
@media (prefers-reduced-motion: reduce){
  .sv-site *, .sv-site *::before, .sv-site *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .sv-site [data-sv-reveal]{opacity:1 !important;transform:none !important;}
  .sv-site [data-sv-mask]{clip-path:none !important;}
  .sv-site [data-sv-split] .sv-word-inner{transform:none !important;}
  .sv-site [data-sv-reveal]:not(.sv-visible) .sv-frame__img,
  .sv-site [data-sv-mask]:not(.sv-visible) .sv-frame__img{--sv-scale:1.001;}
  .sv-site .sv-hero__video{display:none;}
}

/* ---------- 23. CUSTOM CURSOR ---------- */
@media (hover: hover) and (pointer: fine){
  .sv-site, .sv-site *{cursor:none;}

  .sv-cursor{
    position:fixed;
    top:0;
    left:0;
    width:36px;
    height:36px;
    border:1px solid var(--sv-ink);
    border-radius:50%;
    pointer-events:none;
    z-index:9999;
    transform:translate(-50%,-50%);
    transition:width .35s var(--sv-ease),height .35s var(--sv-ease),background-color .35s var(--sv-ease),border-color .35s var(--sv-ease),opacity .35s var(--sv-ease);
    will-change:transform;
    mix-blend-mode:difference;
  }
  .sv-cursor::after{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:3px;
    height:3px;
    background:currentColor;
    border-radius:50%;
    transform:translate(-50%,-50%);
    transition:opacity .35s var(--sv-ease);
    opacity:.9;
  }
  .sv-cursor.sv-cursor--hover{width:64px;height:64px;background:rgba(28,26,24,.06);}
  .sv-cursor.sv-cursor--hover::after{opacity:1;}
  .sv-cursor.sv-cursor--down{width:28px;height:28px;}
  .sv-cursor.sv-cursor--light{border-color:var(--sv-ivory);color:var(--sv-ivory);}
  .sv-cursor.sv-cursor--hidden{opacity:0;}
}

@media (hover: none), (pointer: coarse){
  .sv-cursor{display:none;}
}