/* ==========================================================
   Stile "Argilla" — Donatella Mattana, dermatologa
   Carta calda · argilla · inchiostro scuro · Spectral + Hanken Grotesk
   ========================================================== */

:root{
  color-scheme: light;
  --ink:#3a0f17;
  --ink-2:#5c3a3f;
  --ink-3:#7e5f63;
  --ink-hover:#57192a;
  --muted:#9b8285;
  --paper:#fbf5ec;
  --paper-2:#f5eadb;
  --sand:#eddcc8;
  --sand-2:#e3cfb8;
  --sand-deep:#e0b9aa;
  --clay:#a3202f;
  --clay-2:#c0364a;
  --clay-soft:#d98a91;
  --rose-light:#eea1a8;
  --line:rgba(92,22,32,.18);
  --line-2:rgba(92,22,32,.10);
  --line-dark:rgba(251,245,236,.14);
  --ff-disp:"Spectral", Georgia, serif;
  --ff-sans:"Hanken Grotesk", system-ui, -apple-system, sans-serif;
  --maxw:1560px;
  --pad:clamp(20px, 5vw, 88px);
  --header-h:78px;
  --r:2px;
  --radius-img:14px;
  --ease:cubic-bezier(.16,.8,.24,1);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 40px);}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--ff-sans);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
[hidden]{display:none!important;}
a{color:inherit;}
p{margin:0;}
::selection{background:var(--clay); color:var(--paper);}

.wrap{max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad);}
.wrap-narrow{max-width:960px; margin:0 auto; padding-inline:var(--pad);}

h1,h2,h3,h4{
  font-family:var(--ff-disp);
  font-weight:500;
  letter-spacing:-.004em;
  text-wrap:balance;
  margin:0;
}
h1 em,h2 em,h3 em{font-style:italic; color:var(--clay-2);}
.hero h1 em,.on-dark h1 em,.on-dark h2 em,.on-dark h3 em,.cta-band h2 em{color:var(--rose-light);}

.skip{position:absolute; left:-9999px; top:8px; background:var(--ink); color:var(--paper); padding:12px 18px; border-radius:999px; z-index:200;}
.skip:focus{left:16px;}
:focus-visible{outline:2px solid var(--clay); outline-offset:3px;}

/* ---------- eyebrow / kicker ---------- */
.kicker{
  display:block;
  font-size:12px; font-weight:600;
  letter-spacing:.18em; text-transform:uppercase;
  color:var(--clay); margin-bottom:20px;
}
.on-dark .kicker{color:var(--rose-light);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  height:52px; padding:0 28px; border-radius:999px;
  font-family:var(--ff-sans); font-weight:600; font-size:15.5px;
  text-decoration:none; border:1px solid transparent; cursor:pointer;
  white-space:nowrap; transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease);
}
.btn .ar{transition:transform .3s var(--ease);}
.btn:hover .ar{transform:translateX(4px);}
.btn-ink{background:var(--ink); color:var(--paper);}
.btn-ink:hover{background:var(--ink-hover);}
.btn-paper{background:var(--paper); color:var(--ink);}
.btn-paper:hover{background:#fff;}
.btn-line{background:transparent; color:var(--ink); border-color:var(--line);}
.btn-line:hover{border-color:var(--ink);}
.btn-line-light{background:transparent; color:var(--paper); border-color:rgba(251,245,236,.45);}
.btn-line-light:hover{border-color:var(--paper);}
.btn-clay{background:var(--clay); color:#fff;}
.btn-clay:hover{background:#85182a;}
.tlink{
  display:inline-flex; align-items:center; gap:8px;
  font-size:14.5px; color:var(--ink-3); text-decoration:none;
}
.tlink:hover{color:var(--clay);}

/* ---------- header ---------- */
header.site{
  position:fixed; inset:0 0 auto 0; z-index:100;
  height:var(--header-h);
  display:flex; align-items:center;
  transition:background .4s var(--ease), border-color .4s var(--ease), box-shadow .4s var(--ease);
  border-bottom:1px solid transparent;
}
header.site.solid{
  background:rgba(251,245,236,.93);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom-color:var(--line-2);
}
.nav-row{width:100%; display:flex; align-items:center; gap:36px;}
.brand{display:inline-flex; align-items:center; gap:11px; text-decoration:none; color:var(--ink); flex:none;}
.brand .mark{flex:none; height:38px; width:auto;}
.brand .mark-light{display:none;}
.brand-txt{display:block; line-height:1;}
.brand-name{font-family:var(--ff-disp); font-weight:400; font-size:19px; letter-spacing:.17em; text-transform:uppercase;}
.brand-sub{display:block; font-family:var(--ff-disp); font-weight:500; font-size:7.8px; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); margin-top:6px; white-space:nowrap;}
nav.primary{display:flex; align-items:center; gap:30px; font-size:15.5px;}
nav.primary a{text-decoration:none; color:var(--ink-2); padding-block:8px; transition:color .2s ease;}
nav.primary a:hover,nav.primary a[aria-current="page"]{color:var(--ink);}
.nav-right{margin-left:auto; display:flex; align-items:center; gap:22px; font-size:15px;}
.nav-right a:not(.btn){text-decoration:none; color:var(--ink-2);}
.nav-right a:not(.btn):hover{color:var(--ink);}
.nav-right .btn{height:44px; padding:0 24px; font-size:14.5px;}

/* testo chiaro sopra l'hero scuro */
header.site:not(.solid).over-hero .brand,
header.site:not(.solid).over-hero nav.primary a,
header.site:not(.solid).over-hero .nav-right a:not(.btn){color:rgba(251,245,236,.88);}
header.site:not(.solid).over-hero .brand-sub{color:rgba(251,245,236,.6);}
header.site:not(.solid).over-hero nav.primary a:hover{color:#fff;}
header.site:not(.solid).over-hero .mark-dark{display:none;}
header.site:not(.solid).over-hero .mark-light{display:block;}
header.site:not(.solid).over-hero .btn-ink{background:var(--paper); color:var(--ink);}
header.site:not(.solid).over-hero .nav-toggle{color:rgba(251,245,236,.95); border-color:rgba(251,245,236,.45);}
header.site:not(.solid).over-hero .nav-toggle svg *{stroke:currentColor;}

.nav-toggle{
  display:none; width:44px; height:44px; border-radius:999px; flex:none;
  border:1px solid var(--line); background:transparent; cursor:pointer;
  align-items:center; justify-content:center; color:inherit;
}
@media (max-width:1100px){
  nav.primary{display:none;}
  .nav-toggle{display:inline-flex; margin-left:auto;}
  .nav-row{gap:16px;}
  .nav-right{margin-left:0; gap:14px;}
  .nav-right a:not(.btn){display:none;}
}
@media (max-width:560px){
  .nav-row{gap:10px;}
  .brand{gap:9px; min-width:0;}
  .brand .mark{height:32px;}
  .brand-name{font-size:12.5px; letter-spacing:.1em;}
  .brand-sub{display:none;}
  .nav-right .btn{height:40px; padding:0 16px; font-size:13.5px;}
  .nav-toggle{width:40px; height:40px;}
}
@media (max-width:390px){
  .nav-row{gap:8px;}
  .brand{gap:7px;}
  .brand .mark{height:28px;}
  .brand-name{font-size:11px; letter-spacing:.07em;}
  .nav-right .btn{padding:0 13px; font-size:13px;}
}
@media (max-width:340px){ .brand-name{font-size:10px; letter-spacing:.04em;} .brand .mark{height:26px;} }
.mobile-nav{
  position:fixed; inset:var(--header-h) 0 auto 0; z-index:99;
  background:var(--paper); border-bottom:1px solid var(--line-2);
  padding:16px var(--pad) 32px;
  display:none; flex-direction:column;
  box-shadow:0 30px 60px -30px rgba(58,15,23,.3);
}
.mobile-nav.open{display:flex;}
.mobile-nav a{
  text-decoration:none; padding:16px 0; font-size:19px;
  font-family:var(--ff-disp); border-bottom:1px solid var(--line-2);
}
.mobile-nav .btn{margin-top:24px; font-family:var(--ff-sans);}

/* ---------- hero ---------- */
.hero{
  position:relative; min-height:min(92vh,860px);
  display:flex; align-items:center;
  padding-block:calc(var(--header-h) + 80px) 96px;
  background:var(--ink); overflow:hidden; isolation:isolate;
}
.hero-media{position:absolute; inset:0; z-index:-2;}
.hero-media .ph{width:100%; height:100%; border-radius:0; position:absolute; inset:0;}
.hero-video{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:68% center; display:block;
}
.hero::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(100deg, rgba(38,7,13,.92) 0%, rgba(38,7,13,.72) 42%, rgba(58,15,23,.36) 100%);
}
.hero > .wrap{width:100%;}
.hero h1{
  color:var(--paper);
  font-size:clamp(46px,7.4vw,116px);
  line-height:1.0; letter-spacing:-.01em;
  max-width:min(900px,100%);
}
.hero .lede{
  margin-top:30px; max-width:520px;
  font-size:clamp(17px,1.4vw,21px); line-height:1.6;
  color:rgba(251,245,236,.82);
}
.hero-cta{margin-top:40px; display:flex; gap:14px; flex-wrap:wrap;}
.hero-scroll{
  position:absolute; left:var(--pad); bottom:34px;
  display:inline-flex; align-items:center; gap:12px;
  font-size:11.5px; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(251,245,236,.55); text-decoration:none;
}
.hero-scroll i{display:block; width:34px; height:1px; background:currentColor;}
@media (max-width:720px){ .hero-scroll{display:none;} }

/* ---------- placeholder immagini ---------- */
.ph{
  position:relative; overflow:hidden; border-radius:var(--radius-img);
  background:linear-gradient(150deg,var(--sand) 0%,var(--sand-deep) 55%,#cf9f95 100%);
  display:flex; align-items:flex-end; padding:16px;
}
.ph::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(60% 45% at 74% 20%, rgba(255,255,255,.42), transparent 60%),
    repeating-linear-gradient(115deg, rgba(255,255,255,.06) 0 2px, transparent 2px 26px);
}
.ph.dark{background:linear-gradient(150deg,#7a1c2b 0%,#4a1019 60%,#25070c 100%);}
.ph.clay{background:linear-gradient(150deg,#e39aa1 0%,var(--clay) 58%,#5e1420 100%);}
.ph.sage{background:linear-gradient(150deg,#f3d9d3 0%,#dba9a6 58%,#b56b71 100%);}
.ph.has-img::before{display:none;}
.ph.has-img>img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;}
.ph.has-img .tag{display:none;}
.ph .tag{
  position:relative; font-size:11.5px; letter-spacing:.04em;
  background:rgba(58,15,23,.72); color:var(--paper);
  padding:7px 13px; border-radius:999px; backdrop-filter:blur(4px);
}

/* ---------- sezioni ---------- */
section{padding-block:clamp(72px,9vw,128px);}
.on-dark{background:var(--ink); color:var(--paper);}
.on-dark h1,.on-dark h2,.on-dark h3{color:var(--paper);}
.on-sand{background:var(--paper-2);}
.sec-head{max-width:760px;}
.sec-head.center{margin-inline:auto; text-align:center;}
.sec-title{font-size:clamp(34px,4.6vw,62px); line-height:1.06;}
.sec-sub{margin-top:20px; font-size:18px; line-height:1.6; color:var(--ink-3);}
.on-dark .sec-sub{color:rgba(251,245,236,.68);}

/* ---------- barra statistiche ---------- */
.stats{display:grid; grid-template-columns:minmax(260px,.9fr) 1.6fr; gap:clamp(32px,6vw,90px); align-items:center;}
@media (max-width:980px){ .stats{grid-template-columns:1fr;} }
.stats h2{font-size:clamp(28px,3.1vw,42px); line-height:1.14;}
.stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0;}
@media (max-width:820px){ .stat-grid{grid-template-columns:repeat(2,1fr); gap:32px 0;} }
.stat{padding-inline:clamp(16px,2.4vw,34px); border-left:1px solid var(--line-dark);}
.stat:first-child{padding-left:0; border-left:0;}
@media (max-width:820px){ .stat:nth-child(3){padding-left:0; border-left:0;} }
.stat b{display:block; font-family:var(--ff-disp); font-weight:500; font-size:clamp(38px,4.6vw,62px); line-height:1; color:var(--paper);}
.stat span{display:block; margin-top:14px; font-size:13.5px; line-height:1.4; color:rgba(251,245,236,.6);}

/* ---------- ritratto ad arco ---------- */
.portrait-grid{display:grid; grid-template-columns:minmax(300px,.85fr) 1.15fr; gap:clamp(40px,7vw,110px); align-items:center;}
@media (max-width:980px){ .portrait-grid{grid-template-columns:1fr; gap:48px;} }
.portrait{position:relative; padding:18px 0 0 18px;}
.portrait .arc{
  position:absolute; left:0; top:0; width:calc(100% - 26px); height:calc(100% - 44px);
  border:1px solid var(--clay-soft); border-radius:999px 999px var(--radius-img) var(--radius-img);
  pointer-events:none;
}
.portrait .ph{
  aspect-ratio:1/1.24;
  border-radius:999px 999px var(--radius-img) var(--radius-img);
}
.portrait-card{
  position:absolute; right:-8px; bottom:26px;
  background:var(--paper); border:1px solid var(--line-2);
  border-radius:10px; padding:16px 22px;
  box-shadow:0 26px 50px -26px rgba(58,15,23,.4);
}
.portrait-card b{display:block; font-family:var(--ff-disp); font-size:19px; font-weight:500;}
.portrait-card span{display:block; font-size:12.5px; color:var(--muted); margin-top:3px;}
.portrait-body h2{font-size:clamp(38px,5.4vw,78px); line-height:1.04;}
.portrait-body .bio{margin-top:28px; font-size:18px; line-height:1.66; color:var(--ink-2); max-width:56ch;}
.quote{
  margin:34px 0 0; padding-left:26px; border-left:2px solid var(--clay);
  font-family:var(--ff-disp); font-style:italic; font-weight:400;
  font-size:clamp(20px,2vw,26px); line-height:1.44; color:var(--ink);
}
.portrait-body .btn{margin-top:34px;}

/* ---------- storia: colonna fissa + schede ---------- */
.story{display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,7vw,120px); align-items:start;}
@media (max-width:980px){ .story{grid-template-columns:1fr; gap:48px;} }
.story-sticky{position:sticky; top:calc(var(--header-h) + 48px);}
@media (max-width:980px){ .story-sticky{position:static;} }
.story h2{font-size:clamp(34px,4.4vw,58px); line-height:1.08;}
.story .body{margin-top:28px; font-size:17.5px; line-height:1.66; color:rgba(251,245,236,.72); max-width:46ch;}
.story .meta{margin-top:26px; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--rose-light);}
.story .btn{margin-top:32px;}
.story-cards{display:flex; flex-direction:column; gap:22px;}
.story-card{
  border:1px solid var(--line-dark); border-left:2px solid var(--clay);
  border-radius:12px; padding:34px 36px;
  background:linear-gradient(140deg, rgba(251,245,236,.05), rgba(251,245,236,.015));
}
.story-card .k{display:block; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--rose-light); margin-bottom:12px;}
.story-card h3{font-size:clamp(22px,2.2vw,28px); line-height:1.2;}
.story-card p{margin-top:12px; font-size:15.5px; line-height:1.6; color:rgba(251,245,236,.62);}

/* ---------- pilastri: card con foto ---------- */
.pillars{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:64px;}
@media (max-width:1000px){ .pillars{grid-template-columns:repeat(2,1fr);} }
@media (max-width:760px){ .pillars{grid-template-columns:repeat(2,1fr); gap:14px;} }
@media (max-width:460px){ .pillars{grid-template-columns:1fr;} }
.pillar{
  position:relative; display:block; text-decoration:none;
  aspect-ratio:3/4.1; border-radius:var(--radius-img); overflow:hidden;
  color:var(--paper);
}
.pillar .ph{position:absolute; inset:0; border-radius:0; padding:0; transition:transform .8s var(--ease);}
.pillar:hover .ph{transform:scale(1.045);}
.pillar::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(38,7,13,.88) 12%, rgba(38,7,13,.22) 55%, rgba(38,7,13,.06) 100%);
}
.pillar-txt{position:absolute; left:0; right:0; bottom:0; padding:24px 22px; z-index:2;}
.pillar-txt h3{font-size:clamp(21px,1.9vw,27px); color:var(--paper);}
.pillar-txt span{display:block; margin-top:5px; font-size:13.5px; color:rgba(251,245,236,.7);}
.pillar-txt .go{margin-top:14px; display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600;}
.center-cta{margin-top:72px; text-align:center;}
.center-cta h3{font-size:clamp(26px,3vw,40px); margin-bottom:26px;}

/* ---------- percorsi: collage + elenco ---------- */
.journeys{display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(40px,6vw,96px); align-items:center;}
@media (max-width:980px){ .journeys{grid-template-columns:1fr;} }
.collage{position:relative; padding-bottom:40px;}
.collage .a{width:72%; aspect-ratio:3/3.8;}
.collage .b{position:absolute; right:0; bottom:0; width:52%; aspect-ratio:3/3.4; border:8px solid var(--paper);}
.jlist{border-top:1px solid var(--line);}
.jrow{
  display:flex; align-items:flex-start; gap:24px;
  padding:30px 0; border-bottom:1px solid var(--line);
  text-decoration:none; transition:padding-left .35s var(--ease);
}
.jrow:hover{padding-left:10px;}
.jrow-txt{flex:1;}
.jrow h3{font-size:clamp(23px,2.3vw,31px); line-height:1.16;}
.jrow p{margin-top:9px; font-size:15.5px; line-height:1.55; color:var(--ink-3); max-width:52ch;}
.jrow .arrow{flex:none; margin-top:8px; color:var(--clay); transition:transform .35s var(--ease);}
.jrow:hover .arrow{transform:translate(4px,-4px);}

/* ---------- tecnologie: elenco scuro + immagine ---------- */
.tech{display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(40px,6vw,96px); align-items:center;}
@media (max-width:980px){ .tech{grid-template-columns:1fr;} }
.tech-list{border-top:1px solid var(--line-dark);}
.tech-item{
  width:100%; text-align:left; background:none; cursor:pointer;
  border:0; border-bottom:1px solid var(--line-dark);
  padding:22px 0; color:var(--paper); font-family:inherit;
  transition:color .3s ease;
}
.tech-item b{display:block; font-size:17px; font-weight:600; transition:color .3s ease;}
.tech-item span{display:block; margin-top:5px; font-size:14px; color:rgba(251,245,236,.5);}
.tech-item[aria-selected="true"] b{color:var(--rose-light);}
.tech-item:hover b{color:var(--rose-light);}
.tech-media .ph{aspect-ratio:4/3.2;}
.tech-caption{margin-top:20px; text-align:center; font-family:var(--ff-disp); font-style:italic; font-size:20px; color:rgba(251,245,236,.8);}

/* ---------- domande frequenti ---------- */
.faq{max-width:900px; margin:56px auto 0; border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  all:unset; box-sizing:border-box; display:flex; width:100%;
  gap:20px; align-items:baseline; justify-content:space-between;
  padding:26px 0; cursor:pointer;
  font-family:var(--ff-disp); font-size:clamp(19px,1.9vw,25px); line-height:1.3;
}
.faq-q:focus-visible{outline:2px solid var(--clay); outline-offset:4px;}
.faq-q .ic{flex:none; width:22px; height:22px; position:relative; margin-top:6px;}
.faq-q .ic::before,.faq-q .ic::after{
  content:""; position:absolute; inset:50% 0 auto 0; height:1px; background:var(--clay);
  transition:transform .35s var(--ease);
}
.faq-q .ic::after{transform:rotate(90deg);}
.faq-item.open .faq-q .ic::after{transform:rotate(0);}
.faq-a{display:grid; grid-template-rows:0fr; transition:grid-template-rows .45s var(--ease);}
.faq-item.open .faq-a{grid-template-rows:1fr;}
.faq-a > div{overflow:hidden;}
.faq-a p{padding-bottom:28px; font-size:16.5px; line-height:1.65; color:var(--ink-2); max-width:70ch;}

/* ---------- sedi ---------- */
.loc-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:18px; margin-top:64px;}
@media (max-width:1100px){ .loc-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:760px){ .loc-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .loc-grid{grid-template-columns:1fr;} }
.loc{position:relative; display:block; text-decoration:none; color:var(--paper); border-radius:var(--radius-img); overflow:hidden; aspect-ratio:3/3.4;}
.loc .ph{position:absolute; inset:0; border-radius:0; padding:0; transition:transform .8s var(--ease);}
.loc:hover .ph{transform:scale(1.045);}
.loc::after{content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(38,7,13,.86) 10%, rgba(38,7,13,.15) 60%, transparent 100%);}
.loc-txt{position:absolute; inset:auto 0 0 0; padding:24px 22px; z-index:2;}
.loc-txt h3{font-size:clamp(22px,2vw,28px); color:var(--paper);}
.loc-txt span{display:block; margin-top:4px; font-size:13.5px; color:rgba(251,245,236,.72);}
.loc-badge{
  position:absolute; top:16px; left:16px; z-index:2;
  font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  background:rgba(251,245,236,.92); color:var(--ink); padding:6px 12px; border-radius:999px;
}

/* ---------- fascia CTA ---------- */
.cta-band{background:var(--ink); color:var(--paper); padding-block:clamp(56px,7vw,96px);}
.cta-inner{display:flex; align-items:center; justify-content:center; gap:clamp(24px,4vw,56px); flex-wrap:wrap; text-align:center;}
.cta-inner h2{font-size:clamp(28px,3.6vw,48px); line-height:1.1; color:var(--paper);}
.cta-inner .sub{margin-top:10px; font-size:14.5px; color:rgba(251,245,236,.55);}

/* ---------- pagine interne ---------- */
.page-hero{padding-block:calc(var(--header-h) + 72px) 64px;}
.crumbs{font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:38px;}
.crumbs a{text-decoration:none; color:var(--muted);}
.crumbs a:hover{color:var(--clay);}
.crumbs i{font-style:normal; color:var(--clay); margin-inline:10px;}
.page-hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(40px,6vw,90px); align-items:center;}
@media (max-width:980px){ .page-hero-grid{grid-template-columns:1fr; gap:44px;} }
.page-hero h1{font-size:clamp(46px,7vw,104px); line-height:1.0;}
.page-hero .lede{margin-top:28px; max-width:46ch; font-size:18px; line-height:1.62; color:var(--ink-2);}
.page-hero .actions{margin-top:36px; display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
.hero-collage{position:relative; padding-bottom:44px;}
.hero-collage .a{width:76%; aspect-ratio:3/3.6;}
.hero-collage .b{position:absolute; right:0; bottom:0; width:50%; aspect-ratio:3/3.3; border:8px solid var(--paper);}

/* barra chip appiccicosa */
.chipbar{
  position:sticky; top:var(--header-h); z-index:40;
  background:rgba(245,234,219,.95); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-block:1px solid var(--line-2);
}
.chipbar-inner{display:flex; gap:10px; overflow-x:auto; padding-block:14px; scrollbar-width:none;}
.chipbar-inner::-webkit-scrollbar{display:none;}
.chip{
  flex:none; display:inline-flex; align-items:center; gap:11px;
  padding:7px 20px 7px 8px; border-radius:999px; border:1px solid transparent;
  text-decoration:none; font-size:15px; color:var(--ink-2);
  transition:background .25s ease, color .25s ease;
}
.chip .dot{
  width:30px; height:30px; border-radius:999px; flex:none;
  background:linear-gradient(150deg,var(--sand),var(--sand-deep));
}
.chip.is-active{background:var(--ink); color:var(--paper);}
.chip.is-active .dot{background:linear-gradient(150deg,var(--clay-soft),var(--clay));}
.chip:hover:not(.is-active){background:rgba(58,15,23,.06);}

/* blocchi documento */
.doc{padding-block:clamp(56px,7vw,104px); border-bottom:1px solid var(--line-2);}
.doc:last-of-type{border-bottom:0;}
.doc-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,420px); gap:clamp(40px,6vw,96px); align-items:start;}
@media (max-width:1040px){ .doc-grid{grid-template-columns:1fr; gap:36px;} }
.doc-num{display:block; font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--clay); margin-bottom:18px;}
.doc h2{font-size:clamp(32px,4.2vw,56px); line-height:1.06;}
.badge-new{
  display:inline-block; vertical-align:middle; margin-left:14px;
  padding:6px 14px; border-radius:999px; background:var(--clay); color:#fff;
  font-family:var(--ff-sans); font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:700;
}
.doc-media{position:sticky; top:max(calc(var(--header-h) + 56px), calc(50vh - 241px)); align-self:start;}
@media (max-width:1040px){ .doc-media{position:static; order:-1;} }
.doc-media .ph{aspect-ratio:4/4.6;}
@media (max-width:1040px){ .doc-media .ph{aspect-ratio:16/9;} }

/* testo lungo */
.prose{margin-top:30px; font-size:17.5px; line-height:1.74; color:var(--ink-2); max-width:70ch;}
.prose p + p{margin-top:1.15em;}
.prose strong{color:var(--ink); font-weight:600;}
.prose em{font-style:italic;}
.prose u{text-decoration-color:var(--clay-soft); text-underline-offset:3px;}
.prose ul{margin:1.3em 0; padding:0; list-style:none;}
.prose ul li{position:relative; padding-left:28px; margin-bottom:.6em;}
.prose ul li::before{content:""; position:absolute; left:3px; top:.75em; width:7px; height:7px; border-radius:999px; background:var(--clay);}
.prose h4{font-family:var(--ff-disp); font-weight:500; font-size:clamp(21px,2vw,27px); color:var(--ink); margin:1.8em 0 .55em;}
.prose .lead{font-family:var(--ff-disp); font-weight:400; font-size:clamp(21px,2.2vw,27px); line-height:1.44; color:var(--ink);}
.prose .note{margin-top:1.6em; padding:22px 26px; border-left:2px solid var(--clay); background:var(--paper-2); border-radius:0 12px 12px 0; font-size:16px;}

.tagcloud{display:flex; flex-wrap:wrap; gap:10px; margin-top:34px;}
.tagcloud span{padding:9px 18px; border:1px solid var(--line); border-radius:999px; font-size:14.5px; color:var(--ink-2);}
.on-dark .tagcloud span{border-color:var(--line-dark); color:rgba(251,245,236,.78);}

/* ---------- chi siamo: cronologia ---------- */
.timeline{list-style:none; margin:0; padding:0; position:relative;}
.timeline::before,.timeline::after{content:""; position:absolute; left:0; top:6px; bottom:6px; width:1px;}
.timeline::before{background:var(--line);}
.timeline::after{background:var(--clay); transform-origin:50% 0; transform:scaleY(var(--p,1));}
.timeline li{position:relative; padding:0 0 34px 34px;}
.timeline li::before{content:""; position:absolute; left:-4px; top:9px; width:9px; height:9px; border-radius:999px; background:var(--clay);}
.timeline .yr{display:block; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--clay); margin-bottom:7px;}
.timeline .ev{font-family:var(--ff-disp); font-size:clamp(20px,2vw,25px); line-height:1.28;}
.timeline .ev small{display:block; font-family:var(--ff-sans); font-size:15.5px; color:var(--ink-3); margin-top:7px; line-height:1.55;}

/* ---------- prenota ---------- */
.book-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
@media (max-width:900px){ .book-grid{grid-template-columns:1fr;} }
.book-card{
  border-radius:20px; padding:clamp(30px,3.4vw,48px);
  display:flex; flex-direction:column; gap:16px; min-height:290px;
}
.book-card.dark{background:var(--ink); color:var(--paper);}
.book-card.dark h3{color:var(--paper);}
.book-card.sand{background:var(--paper-2); border:1px solid var(--line-2);}
.book-card .plat{font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--rose-light);}
.book-card.sand .plat{color:var(--clay);}
.book-card h3{font-size:clamp(26px,2.8vw,36px); line-height:1.1;}
.book-card p{font-size:16px; line-height:1.6; color:var(--ink-3);}
.book-card.dark p{color:rgba(251,245,236,.66);}
.book-card .btn{align-self:flex-start; margin-top:auto;}
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3vw,48px); margin-top:64px;}
@media (max-width:860px){ .steps{grid-template-columns:1fr;} }
.step{border-top:1px solid var(--ink); padding-top:22px;}
.step .n{font-family:var(--ff-disp); font-style:italic; font-size:42px; line-height:1; color:var(--clay);}
.step h4{font-family:var(--ff-disp); font-weight:500; font-size:23px; margin:14px 0 8px;}
.step p{font-size:15.5px; color:var(--ink-3); line-height:1.6;}

/* ---------- contatti ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,5vw,80px); align-items:start;}
@media (max-width:980px){ .contact-grid{grid-template-columns:1fr;} }
.form-card{background:var(--paper-2); border:1px solid var(--line-2); border-radius:22px; padding:clamp(28px,3.4vw,52px);}
.phone-cta{
  display:flex; align-items:center; justify-content:center; gap:14px;
  height:62px; border-radius:14px; background:var(--ink); color:var(--paper);
  text-decoration:none; font-family:var(--ff-disp); font-size:25px; margin-bottom:32px;
}
.phone-cta:hover{background:var(--ink-hover);}
.form-card h2{font-size:clamp(26px,2.8vw,36px);}
.form-card .sub{margin:10px 0 28px; font-size:15.5px; color:var(--ink-3);}
.fgrid{display:grid; grid-template-columns:1fr 1fr; gap:0 18px;}
@media (max-width:600px){ .fgrid{grid-template-columns:1fr;} }
.field{display:flex; flex-direction:column; gap:8px; margin-bottom:18px;}
.field.full{grid-column:1/-1;}
.field label{font-size:12.5px; letter-spacing:.06em; font-weight:600; color:var(--ink-2);}
.field input,.field textarea{
  width:100%; border:1px solid var(--line); border-radius:10px;
  padding:14px 16px; background:var(--paper); color:var(--ink);
  font-family:var(--ff-sans); font-size:16px;
}
.field input:focus,.field textarea:focus{outline:2px solid var(--clay); outline-offset:1px; border-color:var(--clay);}
.field textarea{resize:vertical; min-height:140px;}
.consent{display:flex; gap:13px; align-items:flex-start; font-size:13.5px; line-height:1.55; color:var(--ink-3); margin:4px 0 24px;}
.consent input{flex:none; width:19px; height:19px; margin-top:3px; accent-color:var(--clay);}
.form-msg{margin-top:18px; padding:15px 20px; border-radius:12px; font-size:15px; display:none;}
.form-msg.show{display:block;}
.form-msg.ok{background:#e6ebdf; color:#33502f;}
.form-msg.err{background:#f6dcd8; color:#8a1f2b;}
.contact-side{display:flex; flex-direction:column; gap:22px;}
.info-row{display:flex; gap:18px; padding:24px 0; border-bottom:1px solid var(--line-2);}
.info-row:first-child{border-top:1px solid var(--line-2);}
.info-row svg{flex:none; color:var(--clay); margin-top:3px;}
.info-row b{display:block; font-family:var(--ff-disp); font-size:20px; font-weight:500;}
.info-row span{display:block; font-size:15.5px; color:var(--ink-3); margin-top:4px; line-height:1.55;}
.info-row a{color:var(--clay); text-decoration:none;}
.map-card{border:1px solid var(--line-2); border-radius:18px; overflow:hidden;}
.map-frame{position:relative; aspect-ratio:16/9; background:linear-gradient(150deg,var(--sand),var(--sand-deep)); display:flex; align-items:center; justify-content:center;}
.map-frame iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
.map-info{padding:20px 24px; display:flex; justify-content:space-between; gap:16px; align-items:center; flex-wrap:wrap; background:var(--paper);}
.map-info b{font-family:var(--ff-disp); font-size:19px; font-weight:500; display:block;}
.map-info span{font-size:14.5px; color:var(--ink-3);}

/* ---------- footer ---------- */
footer.site{background:var(--ink); color:var(--paper); padding-block:clamp(56px,6vw,88px) 32px;}
.foot-grid{display:grid; grid-template-columns:repeat(4,1fr) 1.3fr; gap:clamp(28px,3vw,48px);}
@media (max-width:1100px){ .foot-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .foot-grid{grid-template-columns:1fr;} }
footer.site h5{margin:0 0 20px; font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--rose-light); font-weight:600;}
footer.site ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:13px; font-size:15.5px;}
footer.site a{text-decoration:none; color:rgba(251,245,236,.82);}
footer.site a:hover{color:var(--rose-light);}
.foot-note{font-size:15px; color:rgba(251,245,236,.6); line-height:1.6;}
.foot-book{display:flex; flex-direction:column; gap:12px; margin-top:20px;}
.foot-bottom{
  margin-top:clamp(48px,5vw,72px); padding-top:26px; border-top:1px solid var(--line-dark);
  display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap;
  font-size:13.5px; color:rgba(251,245,236,.55);
}
.foot-bottom nav{display:flex; gap:24px;}
.foot-bottom a{color:rgba(251,245,236,.55);}
.foot-social{display:flex; gap:20px; align-items:center;}
.foot-social a{display:inline-flex; align-items:center; gap:8px; font-size:13.5px;}

/* ---------- avviso cookie ---------- */
.cookie{
  position:fixed; left:20px; bottom:20px; z-index:120;
  max-width:420px; background:var(--ink); color:var(--paper);
  border-radius:16px; padding:20px 22px;
  box-shadow:0 30px 60px -24px rgba(58,15,23,.5);
  display:flex; gap:18px; align-items:center; flex-wrap:wrap;
}
.cookie p{flex:1 1 210px; font-size:14px; line-height:1.5; color:rgba(251,245,236,.72);}
.cookie a{color:var(--rose-light);}
.cookie .row{display:flex; gap:10px;}
.cookie .btn{height:40px; padding:0 18px; font-size:13.5px;}
@media (max-width:520px){ .cookie{left:12px; right:12px; bottom:12px;} }

/* ---------- animazioni ---------- */
.progress{position:fixed; top:0; left:0; right:0; height:2px; background:var(--clay); transform-origin:0 50%; transform:scaleX(var(--p,0)); z-index:130; pointer-events:none;}

.js-anim [data-reveal]{
  opacity:0;
  transition:opacity 1s var(--ease), transform 1s var(--ease), clip-path 1.25s var(--ease);
  transition-delay:var(--d,0ms);
  will-change:opacity,transform;
}
.js-anim [data-reveal="up"]{transform:translate3d(0,32px,0);}
.js-anim [data-reveal="left"]{transform:translate3d(-44px,0,0);}
.js-anim [data-reveal="right"]{transform:translate3d(44px,0,0);}
.js-anim [data-reveal="scale"]{transform:scale(.96);}
.js-anim [data-reveal="pop"]{transform:scale(.8); transition-duration:.65s;}
.js-anim [data-reveal="img"]{opacity:1; clip-path:inset(0 0 100% 0);}
.js-anim [data-reveal].is-visible{opacity:1; transform:none;}
.js-anim [data-reveal="img"].is-visible{clip-path:inset(0 0 0 0);}

.w{display:inline-block; overflow:hidden; vertical-align:top; padding:.1em .06em .2em; margin:-.1em -.06em -.2em;}
.w > span{display:inline-block;}
.js-anim [data-words] .w > span{
  transform:translate3d(0,115%,0);
  transition:transform 1.05s var(--ease);
  transition-delay:calc(var(--wd,0ms) + var(--k,0) * 58ms);
}
.js-anim [data-words].is-visible .w > span{transform:none;}

@keyframes floaty{0%,100%{translate:0 0;} 50%{translate:0 -10px;}}
.portrait-card{animation:floaty 8s ease-in-out 1.5s infinite;}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{transition:none!important; animation:none!important;}
  .progress{display:none;}
}

@media print{
  header.site,.chipbar,.cookie,.progress,footer.site .foot-social{display:none!important;}
  body{background:#fff;}
}

/* ---- pagine singole: FAQ e correlati ---- */
.faq-sec{padding-block:clamp(48px,6vw,88px);}
.faq-sec h2{font-size:clamp(30px,4vw,52px); max-width:900px; margin-inline:auto;}
.faq-sec .faq{margin-top:32px;}
.note-med{max-width:900px; margin:28px auto 0; font-size:14.5px; color:var(--muted); line-height:1.6;}
.related{padding-block:clamp(32px,4vw,56px) clamp(56px,7vw,96px); border-top:1px solid var(--line);}
.related h2{font-size:clamp(22px,2.4vw,30px); margin-bottom:18px;}
.related ul{list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:14px 32px;}

.map-note{margin-top:10px; font-size:13px; line-height:1.5; color:var(--muted); max-width:46ch;}

/* ---- 404 ---- */
.nf-grid{display:grid; grid-template-columns:auto 1fr; gap:clamp(32px,6vw,96px); align-items:center;}
@media (max-width:820px){ .nf-grid{grid-template-columns:1fr;} }
.nf-num{font-family:var(--ff-disp); font-style:italic; font-weight:400; font-size:clamp(120px,20vw,280px); line-height:.9; color:var(--clay); display:flex; align-items:center; gap:.04em;}
.nf-o{display:inline-block; width:.78em; height:.78em; color:var(--ink);}
.nf-o svg{width:100%; height:100%; display:block;}
.nf-links{list-style:none; padding:0; margin-top:32px; display:flex; flex-wrap:wrap; gap:12px 28px;}

.foot-brand{display:flex; align-items:center; gap:14px; margin-bottom:clamp(32px,4vw,52px); padding-bottom:clamp(24px,3vw,36px); border-bottom:1px solid var(--line-dark);}
.foot-brand img{height:38px; width:auto;}
.foot-brand span{font-family:var(--ff-disp); font-weight:400; font-size:19px; letter-spacing:.17em; text-transform:uppercase; line-height:1.1;}
.foot-brand small{display:block; margin-top:7px; font-family:var(--ff-disp); font-weight:500; font-size:8.5px; letter-spacing:.2em; color:rgba(251,245,236,.6);}

.rev-med{margin:10px 0 0; font-size:13px; line-height:1.5; color:var(--muted);}
.rev-med time{white-space:nowrap;}

.loc-txt .loc-when{display:block; margin-top:4px; font-size:.92em; opacity:.8;}
.ambiti{padding-block:clamp(40px,5vw,72px) 0;}
.ambiti h2{margin:0 0 28px;}
.ambiti-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); gap:0 clamp(24px,4vw,64px);}
.ambiti-list li{padding:18px 0; border-top:1px solid var(--line);}
.ambiti-list b{display:block; font-weight:600; color:var(--ink);}
.ambiti-list span{display:block; margin-top:5px; font-size:15px; color:var(--ink-2);}
.ambiti-list a{color:var(--clay);}
@media (max-width:700px){ .ambiti-list{grid-template-columns:1fr;} }

.loc-txt{text-shadow:0 1px 10px rgba(40,10,15,.6);}

@media (max-width:560px){ .loc{aspect-ratio:4/3;} .foot-brand span{font-size:16px; letter-spacing:.13em;} .foot-brand small{font-size:7.5px; letter-spacing:.14em;} }

/* selettore lingua */
.lang-switch{display:inline-flex; align-items:center; gap:2px; font-family:var(--ff-sans); font-size:12px; font-weight:600; letter-spacing:.14em; line-height:1;}
.lang-switch a,.lang-switch [aria-current]{padding:7px 8px; border-radius:999px; text-decoration:none;}
.lang-switch a{color:var(--ink-2); opacity:.75; transition:opacity .2s ease;}
.lang-switch a:hover{opacity:1;}
.lang-switch [aria-current]{background:var(--ink); color:var(--paper);}
header.site:not(.solid).over-hero .lang-switch a{color:rgba(251,245,236,.9);}
header.site:not(.solid).over-hero .lang-switch [aria-current]{background:rgba(251,245,236,.92); color:var(--ink);}
.lang-switch-m{display:none;}
@media (max-width:1100px){
  .nav-right .lang-switch{display:none;}
  .mobile-nav .lang-switch-m{display:inline-flex; align-self:flex-start; margin-top:18px; padding-top:18px; border-top:1px solid var(--line);}
  .mobile-nav .lang-switch-m a,.mobile-nav .lang-switch-m [aria-current]{padding:9px 12px; font-size:13px;}
}
.mobile-nav .lang-switch-m a,.mobile-nav .lang-switch-m [aria-current]{font-family:var(--ff-sans); font-size:13px; font-weight:600; letter-spacing:.14em; border:0; opacity:1;}
.mobile-nav .lang-switch-m a{color:var(--ink-2);}

/* calendario di prenotazione */
.booking-widget{margin-top:28px; padding:clamp(22px,3vw,36px); background:var(--sand); border-radius:var(--r, 18px);}
.booking-widget h3{font-family:var(--ff-disp); font-weight:400; font-size:clamp(24px,2.6vw,32px); line-height:1.15; margin:0 0 8px;}
.booking-widget h3 em{font-style:italic;}
.booking-widget > p{margin:0 0 18px; max-width:56ch;}
.booking-widget .bw-slot{margin-top:6px; min-height:0;}
.booking-widget .bw-slot a.zl-url{color:var(--ink);}
