/* Approccio conservativo */
.ap-hero{position:sticky;top:0;z-index:0;min-height:100vh;min-height:100dvh;display:flex;align-items:center;background:var(--o50);padding:128px 0 80px}
.ap-hero>.wrap{width:100%}
@media (min-width:768px){.ap-hero{padding:112px 0 48px}}
.ap-hero-grid{display:grid;gap:40px;align-items:center}
.ap-hero-txt{position:relative}
.ap-hero .eyebrow{font-weight:500;color:var(--o700)}
.ap-hero .lead{margin-top:32px;max-width:620px;font-size:clamp(17px,1.5vw,20px);line-height:1.7;color:rgba(11,20,24,.8);position:relative;z-index:1}
.ap-mono{position:absolute;right:0;top:34%;width:clamp(120px,17vw,240px);opacity:.12;pointer-events:none}
.ap-hero-img{margin:0;box-shadow:0 30px 60px rgba(11,20,24,.15)}
.ap-hero-img img{width:100%;aspect-ratio:4/5;object-fit:cover}
@media (min-width:1024px){.ap-hero-grid{grid-template-columns:1.45fr 1fr;gap:64px}}

.ghost{top:-.45em;left:-.3em}
.ap-etica{padding:clamp(72px,12vw,180px) 0 96px}
.ap-etica-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:48px}
.ap-etica-l{position:relative}
.ap-etica h2,.ap-scala h2,.ap-perc h2{position:relative;font-size:clamp(2.1rem,3.4vw,2.8rem);color:var(--g900)}
.ap-etica h2 em,.ap-scala h2 em,.ap-perc h2 em{color:var(--o600);font-style:normal}
.ap-etica h2 em{font-style:italic;color:var(--o700)}
.ap-etica-l p{margin-top:28px;max-width:540px;font-size:clamp(17px,1.5vw,20.8px);line-height:1.7;color:rgba(11,20,24,.8)}
.ap-etica-l .ap-quote{font-family:var(--serif);font-style:italic;font-weight:500;color:var(--g800)}
.ap-principi{display:grid;gap:48px}
.ap-pc{background:var(--g900);color:var(--paper);border-radius:16px;padding:clamp(32px,4vw,44px) clamp(28px,3vw,42px);box-shadow:0 20px 40px rgba(11,20,24,.12)}
.ap-pc h3{font-size:clamp(1.5rem,2.2vw,1.8rem);line-height:1.5}
.ap-pc p{font-size:16.5px;line-height:1.65;color:rgba(251,250,247,.85)}
.ap-orn{display:block;position:relative;width:116px;height:14px;margin:18px 0 20px;color:var(--o400);background:linear-gradient(currentColor,currentColor) left center/40px 1px no-repeat,linear-gradient(currentColor,currentColor) right center/40px 1px no-repeat}
.ap-orn::after{content:"";position:absolute;left:50%;top:50%;width:13px;height:13px;border:1px solid currentColor;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,currentColor 2.5px,transparent 3px)}
.ap-nav{display:none;justify-content:center;gap:12px;margin-top:20px}
.ap-nav button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;color:var(--g800);font-size:18px}
.ap-nav button:disabled{opacity:.35}
@media (min-width:1024px){
  .ap-etica-grid{grid-template-columns:1fr 1fr;gap:80px}
  .ap-etica-l{position:sticky;top:130px;align-self:start;padding-left:40px}
  .ap-etica-r{padding-top:100px}
}
@media (max-width:1023px){
  .ap-principi,.ap-pgrid{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-inline:calc(var(--pad)*-1);padding:0 var(--pad) 20px;scroll-padding-inline:var(--pad)}
  .ap-principi::-webkit-scrollbar,.ap-pgrid::-webkit-scrollbar{display:none}
  .ap-principi>*{flex:0 0 min(86%,440px);scroll-snap-align:start}
  .ap-pgrid>*{flex:0 0 min(84%,380px);scroll-snap-align:start}
  .ap-nav{display:flex}
  .ap-principi .rv,.ap-pgrid .rv{opacity:1;transform:none}
}

.ap-scala{background:var(--o50);padding:72px 0 clamp(72px,10vw,144px)}
.ap-sh{position:relative;padding-left:clamp(0px,3vw,40px)}
.ap-sub{margin-top:18px;font-family:var(--serif);font-style:italic;font-size:17.6px;color:rgba(11,20,24,.6)}
.ap-steps{margin-top:clamp(48px,10vw,190px);display:grid;gap:20px}
.ap-st{position:relative;overflow:hidden;border-radius:14px;min-height:260px;color:var(--paper);background:var(--g900);box-shadow:0 20px 40px rgba(11,20,24,.12)}
.ap-st img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.ap-st:hover img{transform:scale(1.04)}
.ap-st::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,29,34,.45),rgba(5,29,34,.82))}
.ap-st>div{position:relative;z-index:1;padding:clamp(28px,3vw,42px);max-width:560px}
.ap-st h3{font-size:clamp(1.5rem,2.2vw,1.8rem);color:var(--o200)}
.ap-st p{margin-top:18px;font-size:16px;font-weight:300;line-height:1.7}
@media (min-width:900px){.ap-steps{grid-template-columns:repeat(12,1fr);gap:24px;padding-inline:clamp(0px,6vw,80px)}.ap-st:nth-child(1){grid-column:span 7}.ap-st:nth-child(2){grid-column:span 5}.ap-st:nth-child(3){grid-column:span 5}.ap-st:nth-child(4){grid-column:span 7}.ap-st h3{color:var(--paper)}}

.ap-perc{background:var(--o50);padding:clamp(64px,8vw,120px) 0 80px}
.ap-ph{position:relative;text-align:center;margin-bottom:clamp(40px,12vw,190px)}
.ap-ph .ghost{left:50%;transform:translateX(-50%)}
.ap-ph h2{font-size:clamp(2.1rem,3.8vw,3.2rem)}
.ap-ph p{margin-top:16px;font-size:clamp(16px,1.4vw,18.4px);color:rgba(11,20,24,.7)}
@media (max-width:1023px){.ap-ph{text-align:left}.ap-ph .ghost{left:-.3em;transform:none}}
@media (min-width:1024px){.ap-pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:80px}}
.ap-pcard{position:relative;display:flex;align-items:flex-end;min-height:320px;border-radius:14px;overflow:hidden;color:#fff;box-shadow:0 20px 40px rgba(11,20,24,.12)}
.ap-pcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.ap-pcard:hover img{transform:scale(1.05)}
.ap-pcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,29,34,0) 20%,rgba(5,29,34,.75))}
.ap-pcard>div{position:relative;z-index:1;padding:40px}
.ap-pcard h3{font-size:24px}
.ap-pcard p{margin-top:12px;font-size:16px;font-weight:300;line-height:1.55;color:rgba(255,255,255,.9)}
@media (max-width:1100px) and (min-width:1024px){.ap-pgrid{gap:32px}}
@media (max-width:1023px){.ap-pcard>div{padding:28px}}

.ap-cit{background:var(--o50);padding:clamp(64px,10vw,144px) 0}
.ap-card{position:relative;overflow:hidden;margin:0 auto;max-width:960px;background:var(--g900);color:var(--paper);border-radius:22px;padding:clamp(40px,6vw,72px) clamp(24px,6vw,84px);text-align:center;box-shadow:0 30px 60px rgba(11,20,24,.2)}
.ap-wm{position:absolute;right:-20px;bottom:-40px;width:clamp(200px,34vw,360px);opacity:.12;pointer-events:none}
.ap-card blockquote{margin:0;position:relative}
.ap-card blockquote p{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(1.3rem,2.4vw,1.95rem);line-height:1.6}
.ap-card .glow-text span{margin:0 .12em}
.ap-card .glow-text .hl{font-weight:500}
.ap-card .ap-orn{margin:36px auto 18px}
.ap-card figcaption{position:relative;display:flex;flex-direction:column;gap:8px}
.ap-card strong{font-family:var(--serif);font-weight:600;font-size:14px;letter-spacing:.2em;text-transform:uppercase;color:var(--o400)}
.ap-card figcaption span{font-size:11.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:rgba(251,250,247,.45)}
@media (prefers-reduced-motion:reduce){.ap-st img,.ap-pcard img{transition:none}.glow-text span{opacity:1!important}}
.ap-etica,.ap-scala,.ap-perc{overflow-x:clip}
.ap-etica .ghost,.ap-scala .ghost,.ap-perc .ghost{font-size:clamp(3rem,6.4vw,6rem);top:-.35em}

/* ===== animazioni e scene (scritte per questa pagina) ===== */
.ap-hero .eyebrow{margin-bottom:16px}
.ap-h1{font-size:2.8rem;line-height:1.05;letter-spacing:-.02em;font-weight:400;color:var(--g900);position:relative;z-index:1}
.ap-h1 .ap-l{display:flex;flex-wrap:wrap;column-gap:.22em}
.ap-h1 em.ap-l{margin-top:4px;color:var(--o700);font-style:italic;font-weight:400}
.ap-h1 .ap-w{display:inline-block}
@media (min-width:768px){.ap-h1{font-size:3.8rem}}
@media (min-width:1024px){.ap-h1{font-size:4.6rem}}
.ap-hero .lead{margin-top:32px}
.ap-js .ap-h1 .ap-w{opacity:0;filter:blur(6px);transform:translateY(28px);transition:opacity .7s var(--ease),filter .8s var(--ease),transform .9s var(--ease);transition-delay:calc(.15s + var(--i)*.06s)}
.ap-go .ap-h1 .ap-w{opacity:1;filter:none;transform:none}
.ap-js .ap-in{opacity:0;filter:blur(4px);transform:translateY(12px);transition:opacity .8s var(--ease),filter .8s var(--ease),transform .8s var(--ease)}
.ap-js .ap-in-lead{transform:translateY(15px);transition-delay:.75s}
.ap-js .ap-in-img{filter:blur(8px);transform:scale(1.03);transition-duration:1.2s;transition-delay:.35s}
.ap-go .ap-in{opacity:1;filter:none;transform:none}

/* le sezioni dopo la testata le scorrono sopra */
.ap-etica,.ap-scala,.ap-perc,.ap-cit{position:relative;z-index:10}
.ap-etica{background:var(--paper);box-shadow:0 -20px 50px rgba(8,50,58,.08)}

/* principi: card */
.ap-pc{position:relative;overflow:hidden;border:1px solid rgba(103,86,65,.2);transition:transform .5s var(--ease),border-color .5s,box-shadow .5s}
.ap-bar{position:absolute;left:0;top:50%;width:4px;height:0;transform:translateY(-50%);background:var(--o400);box-shadow:0 0 8px 2px rgba(201,177,145,.4);transition:height .5s var(--ease)}
.ap-pc h3,.ap-pc .ap-orn,.ap-pc p{position:relative;transition:opacity .7s var(--ease),filter .7s var(--ease),transform .5s var(--ease),color .5s}
.ap-pc.rv h3{opacity:0;filter:blur(4px);transform:translateX(-20px)}
.ap-pc.rv .ap-orn{opacity:0;transform:scale(.9);transform-origin:left}
.ap-pc.rv p{opacity:0;transform:translateY(12px)}
.ap-pc.rv.in h3{opacity:1;filter:none;transform:none;transition-delay:.15s,.15s,.15s,0s}
.ap-pc.rv.in .ap-orn{opacity:1;transform:none;transition-delay:.25s}
.ap-pc.rv.in p{opacity:1;transform:none;transition-delay:.35s}
@media (hover:hover){
  .ap-pc:hover{transform:translateY(-6px);border-color:rgba(133,111,84,.5);box-shadow:0 20px 50px rgba(201,177,145,.15)}
  .ap-pc:hover .ap-bar{height:100%}
  .ap-pc:hover h3{color:var(--o400);transform:translateX(6px)}
  .ap-pc:hover .ap-orn,.ap-pc:hover p{transform:translateX(6px)}
  .ap-st{transition:transform .5s var(--ease),box-shadow .5s}
  .ap-st:hover{transform:translateY(-4px);box-shadow:0 26px 54px rgba(11,20,24,.2)}
  .ap-st:hover h3{color:var(--o300)}
  .ap-pcard{transition:transform .5s var(--ease),box-shadow .5s}
  .ap-pcard:hover h3{color:var(--o300)}
  .ap-pcard h3{transition:color .3s}
}
@media (max-width:1023px){.ap-principi .rv h3,.ap-principi .rv .ap-orn,.ap-principi .rv p{opacity:1;filter:none;transform:none}}

@media (min-width:1024px){
  /* etica: colonna sinistra ferma al centro dello schermo, card che scorrono */
  .ap-etica{padding:0 0 96px}
  .ap-etica-l{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;padding-top:40px}
  .ap-etica-l .ghost{top:auto;bottom:calc(50% + 150px)}
  .ap-etica-r{padding-top:35vh;padding-bottom:8vh}
  /* scala: intestazione ferma sotto l'header */
  .ap-scala{padding-top:0}
  .ap-sh{position:sticky;top:80px;z-index:30;padding-top:24px;padding-bottom:32px}
  .ap-sh::before{content:"";position:absolute;inset:0 -50vw;z-index:-1;background:rgba(248,245,241,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
  .ap-steps{margin-top:64px}
  /* percorsi: pannello fermo per 500vh, la citazione ci sale sopra */
  .ap-perc{height:500vh;padding:0;overflow-x:visible}
  .ap-pin{position:sticky;top:0;min-height:100vh;padding:120px 0 80px;background:var(--o50);overflow:hidden}
  .ap-ph{margin-bottom:32px}
  .ap-ph .ghost{display:none}
  .ap-pcard{will-change:transform;transform:translateY(80px);opacity:.4}
  .ap-cit{z-index:20;background:none;pointer-events:none;margin-top:-270vh;margin-bottom:170vh;padding:144px 0}
  .ap-cit .ap-card{pointer-events:auto}
}
.ap-card{border:1px solid rgba(103,86,65,.2);box-shadow:0 20px 50px rgba(8,50,58,.3)}
.ap-js .ap-card{opacity:0;transform:translateY(120px);transition:opacity 1s var(--ease),transform 1.2s var(--ease)}
.ap-js .ap-card.in{opacity:1;transform:none}
.ap-glow{display:flex;flex-wrap:wrap;justify-content:center}
.ap-glow span{display:inline-block;margin:0 .15em;color:rgba(248,245,241,.9);opacity:.35}
.ap-glow .hl{color:var(--o300);font-weight:500;text-shadow:0 4px 3px rgba(0,0,0,.07)}
@media (max-width:1023px){.ap-cit{padding:40px 0 10vh}}
@media (prefers-reduced-motion:reduce){
  .ap-js .ap-h1 .ap-w,.ap-js .ap-in,.ap-js .ap-card,.ap-pc.rv h3,.ap-pc.rv .ap-orn,.ap-pc.rv p{opacity:1!important;filter:none!important;transform:none!important;transition:none!important}
  .ap-pcard{transform:none!important;opacity:1!important}
  .ap-glow span{opacity:1!important}
}
