:root{
  --ink:#1F1C19; --bg:#FFFFFF; --bg-2:#F6F4F1; --bg-footer:#F4F1EC;
  --accent:#C4622D; --accent-hover:#AE5424;
  --text-muted:#6E665C; --text-muted-2:#57514A; --text-faint:#8A8175; --text-faint-2:#A89D90;
  --hairline:rgba(31,28,25,0.08);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;
}
::selection{background:rgba(196,98,45,0.18);}
img{display:block; max-width:100%;}
a{color:inherit;}
.ac{color:var(--accent);}
b,strong{font-weight:600; color:var(--ink);}
b.ac,strong.ac{color:var(--accent);}
.wrap{max-width:1440px; margin:0 auto;}
.eyebrow{font-size:13px; font-weight:600; letter-spacing:0.13em; text-transform:uppercase; color:var(--accent);}
.btn{display:inline-block; background:var(--accent); border:none; color:#fff; font-weight:500; letter-spacing:-0.01em; border-radius:980px; cursor:pointer; text-decoration:none; padding:13px 28px; font-size:15px; transition:background .3s ease;}
.btn:hover{background:var(--accent-hover);}
.textlink{color:var(--accent); font-weight:500; letter-spacing:-0.01em; cursor:pointer; text-decoration:none;}

/* ---- NAV ---- */
.nav{position:sticky; top:0; z-index:50; display:flex; align-items:center; justify-content:space-between; padding:18px 56px; background:rgba(255,255,255,0.82); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border-bottom:1px solid rgba(31,28,25,0.07);}
.nav__brand{font-size:17px; font-weight:600; letter-spacing:0.16em; color:var(--ink); text-decoration:none;}
.nav__links{display:flex; gap:38px; align-items:center;}
.nav__links a{font-size:14px; font-weight:400; color:#4A453E; text-decoration:none; white-space:nowrap;}
.nav__links a:hover{color:var(--ink);}
.nav__cta{padding:9px 20px; font-size:13px;}
.nav__links a.nav__cta{color:#fff;}
.nav__brand{display:inline-flex; align-items:center;}
.nav__logo{height:18px; width:auto; display:block;}
.footer__logo{height:22px; width:auto; display:block;}

/* ---- HERO ---- */
.ip-hero{position:relative; overflow:hidden; padding:54px 56px 70px; color:#fff;}
.ip-hero::after{content:""; position:absolute; inset:0; background-image:repeating-linear-gradient(135deg,rgba(255,255,255,0.06) 0,rgba(255,255,255,0.06) 1px,transparent 1px,transparent 12px); pointer-events:none;}
.ip-hero__inner{position:relative; z-index:2; max-width:1000px; margin:0 auto; text-align:center;}
.ip-backbottom{text-align:center; padding:40px 24px 56px; background:var(--bg);}
.ip-backbottom .textlink{font-size:15px; font-weight:500;}
/* ---- buy band (bottom of every non-index page) ---- */
.ip-buy{text-align:center; padding:56px 24px; background:var(--bg-2); border-top:1px solid var(--hairline);}
.ip-buy__title{font-size:24px; font-weight:600; letter-spacing:-0.02em; color:var(--ink); margin-bottom:18px;}
.ip-buy .btn, .ip-home .btn{font-size:16px; padding:15px 34px;}
.ip-home{text-align:center; background:var(--bg); padding:44px 24px 30px;}
.ip-buy__home{background:transparent; color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent);}
.ip-buy__home:hover{background:var(--accent); color:#fff;}
.ip-eyebrow{font-size:13px; font-weight:600; letter-spacing:0.13em; text-transform:uppercase; color:rgba(255,255,255,0.9); margin-bottom:16px;}
.ip-title{font-size:64px; font-weight:600; line-height:1.04; letter-spacing:-0.03em; margin:0;}
.ip-dose{display:inline-block; margin-top:18px; padding:7px 18px; border-radius:980px; background:rgba(255,255,255,0.18); border:1px solid rgba(255,255,255,0.35); font-size:14px; font-weight:600; letter-spacing:-0.01em;}
.ip-tag{font-size:20px; font-weight:400; line-height:1.45; letter-spacing:-0.01em; color:rgba(255,255,255,0.95); margin:20px auto 0; max-width:560px;}

/* ---- MAIN / VIDEO / ARTICLE ---- */
.ip-main{max-width:820px; margin:0 auto; padding:64px 24px 40px;}
.video{position:relative; width:100%; aspect-ratio:16/9; border-radius:20px; overflow:hidden; background:#1F1C19; box-shadow:0 30px 60px rgba(40,28,18,0.18);}
.video iframe, .video #ytplayer{position:absolute; inset:0; width:100%; height:100%; border:0;}
/* minimal play-progress trace (the YT controls are hidden) */
.video__bar{position:absolute; left:0; right:0; bottom:0; height:3px; background:rgba(255,255,255,0.16); opacity:0; transition:opacity .25s ease; pointer-events:none; z-index:2;}
.video__bar.on{opacity:1;}
.video__bar span{display:block; height:100%; width:0; background:var(--accent); transition:width .25s linear;}
/* blog cover over the player — hides the YouTube poster / "Guarda su YouTube" / "Altri video"; shown when not playing */
.video__cover{position:absolute; inset:0; z-index:3; background-size:cover; background-position:center; cursor:pointer; transition:opacity .3s ease;}
.video__cover.hidden{opacity:0; pointer-events:none;}
.video-fallback{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; aspect-ratio:16/9; border-radius:20px; background:var(--bg-2); border:1px solid var(--hairline); text-align:center; padding:30px;}
.video-fallback .vf-t{font-size:18px; font-weight:600; color:var(--ink); max-width:420px;}
.video-cap{text-align:center; font-size:13px; color:var(--text-faint); margin:14px 0 0;}

/* "Cos'è il Movimento Estensione Vita" box — inserted whenever a MEV video is cited */
.mev-box{display:flex; gap:18px; align-items:flex-start; margin:24px 0 0; padding:22px 24px; background:var(--bg-2); border:1px solid var(--hairline); border-left:3px solid var(--accent); border-radius:14px;}
.mev-box__mark{flex:none; width:46px; height:46px; border-radius:12px; background:var(--accent); color:#fff; font-size:13px; font-weight:700; letter-spacing:0.04em; display:flex; align-items:center; justify-content:center;}
.mev-box__title{font-size:17px; font-weight:600; letter-spacing:-0.01em; color:var(--ink); margin-bottom:6px;}
.mev-box__text{font-size:14px; line-height:1.6; color:var(--text-muted-2); margin:0 0 10px;}
.mev-box__cta{font-size:14px; font-weight:600; color:var(--accent); text-decoration:none;}
.mev-box__cta:hover{text-decoration:underline;}

.article{margin-top:54px;}
.article h3{font-size:13px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--accent); margin:38px 0 14px;}
.article h3:first-child{margin-top:0;}
.article p{font-size:18px; font-weight:400; line-height:1.72; letter-spacing:-0.01em; color:#3A352F; margin:0 0 20px;}
.article .note{margin:30px 0 0; padding:22px 24px; background:var(--bg-2); border-left:3px solid var(--accent); border-radius:0 14px 14px 0; font-size:15px; line-height:1.6; color:var(--text-muted-2);}
.article .article-list{margin:8px 0 20px; padding:0; list-style:none;}
.article .article-list li{position:relative; padding:10px 0 10px 28px; border-bottom:1px solid var(--hairline); font-size:17px; line-height:1.6; color:#3A352F;}
.article .article-list li:last-child{border-bottom:0;}
.article .article-list li::before{content:""; position:absolute; left:4px; top:18px; width:7px; height:7px; border-radius:50%; background:var(--accent);}
.article figure{margin:36px 0 8px; background:var(--bg-2); border:1px solid var(--hairline); border-radius:18px; padding:18px;}
.article figure img{display:block; width:100%; height:auto; border-radius:10px; background:#fff;}
.article figure figcaption{margin-top:14px; text-align:center; font-size:13px; line-height:1.5; color:var(--text-faint);}
.article figure.portrait{display:flex; flex-direction:column; align-items:center;}
.article figure.portrait img{width:auto; max-width:300px; box-shadow:0 18px 40px rgba(40,28,18,0.18);}

/* ---- RELATED ("Le altre sostanze") — identical card to the homepage ---- */
.ip-related{background:var(--bg-2); padding:70px 56px 80px; margin-top:64px;}
.ip-related h2{text-align:center; font-size:30px; font-weight:600; letter-spacing:-0.02em; margin:0 0 8px;}
.ip-related .sub{text-align:center; font-size:15px; color:var(--text-faint); margin:0 0 40px;}
.rgrid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; max-width:1180px; margin:0 auto;}

.card{position:relative; background:#fff; border:1px solid var(--hairline); border-radius:20px; overflow:hidden; display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s;}
.card:hover{transform:translateY(-8px); box-shadow:0 30px 55px rgba(60,44,28,0.16);}
.card__swatch{height:200px; position:relative; overflow:hidden;}
.card__swatch::before{content:""; position:absolute; inset:0; background-image:repeating-linear-gradient(135deg,rgba(255,255,255,0.06) 0,rgba(255,255,255,0.06) 1px,transparent 1px,transparent 11px);}
.card__mono{position:absolute; left:16px; bottom:14px; font-family:'SFMono-Regular',ui-monospace,Menlo,monospace; font-size:10px; letter-spacing:0.08em; color:rgba(255,255,255,0.7);}
.card__overlay{position:absolute; inset:0; padding:24px 22px; display:flex; flex-direction:column; justify-content:flex-end; background:rgba(251,248,243,0.82); backdrop-filter:blur(8px) saturate(120%); -webkit-backdrop-filter:blur(8px) saturate(120%); opacity:0; transform:translateY(12px); transition:opacity .45s ease, transform .45s cubic-bezier(.2,.7,.2,1); pointer-events:none;}
.card:hover .card__overlay{opacity:1; transform:translateY(0);}
.card__overlay .eyebrow{font-size:11px; letter-spacing:0.14em; margin-bottom:12px;}
.card__overlay p{font-size:14px; font-weight:400; line-height:1.55; letter-spacing:-0.01em; color:#2A241F; margin:0;}
.card__body{padding:22px 20px 24px; display:flex; flex-direction:column; gap:9px; flex:1;}
.card__meta{display:flex; align-items:center; gap:12px;}
.card__num{font-size:20px; font-weight:600; letter-spacing:-0.02em; color:rgba(196,98,45,0.65); line-height:1;}
.card__rule{height:1px; flex:1; background:rgba(31,28,25,0.1);}
.card__dose{font-size:12px; font-weight:600; letter-spacing:-0.01em; color:var(--accent);}
.card__tag{font-size:10px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-faint-2);}
.card__name{font-size:21px; font-weight:600; letter-spacing:-0.02em; line-height:1.1;}
.card__role{font-size:14px; line-height:1.55; color:var(--text-muted);}
.card__more{margin-top:6px; font-size:13px; font-weight:600; letter-spacing:-0.01em; color:var(--accent); opacity:0; transform:translateY(4px); transition:opacity .35s ease, transform .35s ease;}
.card:hover .card__more{opacity:1; transform:translateY(0);}

/* ---- FOOTER ---- */
.footer{background:var(--bg-footer); padding:60px 56px 44px;}
.footer__top{display:flex; justify-content:space-between; gap:60px; padding-bottom:40px; border-bottom:1px solid rgba(31,28,25,0.1); flex-wrap:wrap;}
.footer__brand{max-width:320px;}
.footer__brand .name{font-size:17px; font-weight:600; letter-spacing:0.16em; margin-bottom:16px;}
.footer__brand p{font-size:14px; line-height:1.7; color:#7A7167; margin:0;}
.footer__cols{display:flex; gap:70px; flex-wrap:wrap;}
.footer__col{display:flex; flex-direction:column; gap:13px;}
.footer__col .h{font-size:12px; font-weight:600; letter-spacing:0.06em; color:var(--text-faint-2); margin-bottom:5px;}
.footer__col a{font-size:14px; color:var(--text-muted-2); text-decoration:none;}
.footer__col a:hover{color:var(--ink);}
.footer__legal{display:flex; justify-content:space-between; align-items:center; padding-top:24px; gap:20px; flex-wrap:wrap;}
.footer__legal .copy{font-size:12px; color:#998F82;}
.footer__legal .fine{font-size:11px; line-height:1.6; color:var(--text-faint-2); max-width:560px; text-align:right;}

.loaderr{background:var(--accent); color:#fff; padding:14px 22px; font-size:14px; line-height:1.5;}

/* ---- DOC / SIMPLE PAGES (privacy, contattaci, 404) ---- */
.doc-hero{position:relative; background:linear-gradient(180deg,#FFFFFF 0%,#F6EEE3 100%); overflow:hidden; padding:76px 56px 56px;}
.doc-hero__glow{position:absolute; left:50%; top:24%; width:900px; height:900px; transform:translateX(-50%); background:radial-gradient(circle,rgba(224,150,98,0.16) 0%,transparent 62%); pointer-events:none;}
.doc-hero__inner{position:relative; z-index:2; max-width:820px; margin:0 auto;}
.doc-hero .eyebrow{margin-bottom:20px;}
.doc-hero h1{font-size:46px; font-weight:600; line-height:1.07; letter-spacing:-0.033em; margin:0;}
.doc-hero p{font-size:18px; line-height:1.55; letter-spacing:-0.01em; color:var(--text-muted); margin:20px 0 0; max-width:620px;}

.doc{max-width:820px; margin:0 auto; padding:56px 24px 80px; font-size:16px; line-height:1.75; color:var(--text-muted-2);}
.doc h2{font-size:24px; font-weight:600; letter-spacing:-0.02em; color:var(--ink); margin:44px 0 14px; line-height:1.2;}
.doc h2:first-child{margin-top:0;}
.doc h3{font-size:17px; font-weight:600; letter-spacing:-0.01em; color:var(--ink); margin:26px 0 8px;}
.doc p{margin:0 0 16px;}
.doc ul{margin:0 0 16px; padding-left:22px;}
.doc li{margin-bottom:8px;}
.doc a{color:var(--accent); text-decoration:none; font-weight:500;}
.doc a:hover{text-decoration:underline;}
.doc__updated{font-size:13px; color:var(--text-faint); margin-bottom:8px;}
.doc__note{background:var(--bg-2); border-left:3px solid var(--accent); border-radius:0 10px 10px 0; padding:16px 20px; font-size:14px; line-height:1.65; margin:0 0 32px; color:var(--text-muted);}
.doc__id{background:var(--bg-2); border-radius:14px; padding:22px 24px; margin:0 0 8px; font-size:14.5px; line-height:1.9;}
.doc__id b{display:inline-block; min-width:132px; color:var(--text-faint); font-weight:500;}

/* ---- CONTACT ---- */
.ct{max-width:960px; margin:0 auto; padding:56px 24px 80px; display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
.ct__aside h2{font-size:22px; font-weight:600; letter-spacing:-0.02em; color:var(--ink); margin:0 0 12px;}
.ct__aside p{font-size:15px; line-height:1.7; color:var(--text-muted); margin:0 0 24px;}
.ct__mail{display:inline-flex; align-items:center; gap:10px; font-size:19px; font-weight:600; letter-spacing:-0.015em; color:var(--accent); text-decoration:none; word-break:break-all;}
.ct__mail:hover{color:var(--accent-hover);}
.ct__meta{margin-top:28px; padding-top:24px; border-top:1px solid var(--hairline); font-size:13.5px; line-height:1.9; color:var(--text-muted);}
.ct__meta b{color:var(--text-faint); font-weight:500; display:inline-block; min-width:104px;}

.ct__form{background:var(--bg-2); border-radius:18px; padding:28px;}
.ct__field{margin-bottom:16px;}
.ct__field label{display:block; font-size:13px; font-weight:600; letter-spacing:-0.01em; color:var(--ink); margin-bottom:7px;}
.ct__field input, .ct__field textarea{
  width:100%; padding:12px 14px; border:1px solid rgba(31,28,25,0.14); border-radius:10px;
  background:#fff; color:var(--ink); font-size:15px; line-height:1.5;
  font-family:inherit; transition:border-color .2s ease, box-shadow .2s ease;
}
.ct__field textarea{min-height:132px; resize:vertical;}
.ct__field input:focus, .ct__field textarea:focus{outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(196,98,45,0.13);}
.ct__form .btn{width:100%; padding:14px; font-size:15px; text-align:center;}
.ct__hint{font-size:12.5px; line-height:1.6; color:var(--text-faint); margin:14px 0 0;}

/* ---- 404 ---- */
.nf{max-width:640px; margin:0 auto; padding:104px 24px 96px; text-align:center;}
.nf__code{font-size:96px; font-weight:600; letter-spacing:-0.04em; line-height:1; color:var(--accent); opacity:.24;}
.nf h1{font-size:38px; font-weight:600; letter-spacing:-0.03em; margin:14px 0 0; line-height:1.1;}
.nf p{font-size:17px; line-height:1.6; color:var(--text-muted); margin:18px auto 0; max-width:440px;}
.nf__actions{margin-top:34px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
.nf__ghost{background:transparent; color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent);}
.nf__ghost:hover{background:var(--accent); color:#fff;}
.nf__links{margin-top:44px; padding-top:28px; border-top:1px solid var(--hairline); font-size:14px; color:var(--text-muted);}
.nf__links a{color:var(--accent); text-decoration:none; margin:0 9px; font-weight:500;}
.nf__links a:hover{text-decoration:underline;}

@media (max-width:768px){
  .doc-hero{padding:40px 22px 32px;} .doc-hero h1{font-size:31px;} .doc-hero p{font-size:15px;}
  .doc{padding:34px 22px 60px; font-size:15px;} .doc h2{font-size:20px; margin-top:34px;}
  .ct{grid-template-columns:1fr; gap:36px; padding:34px 22px 60px;}
  .ct__form{padding:22px;}
  .nf{padding:64px 22px 60px;} .nf__code{font-size:68px;} .nf h1{font-size:27px;}
  .nf__actions .btn{width:100%;}
}

/* ---- RESPONSIVE ---- */
@media (max-width:900px){
  .rgrid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:768px){
  .nav{padding:14px 22px;}
  .nav__links a:not(.nav__cta){display:none;}
  .ip-hero{padding:34px 22px 48px;}
  .ip-title{font-size:40px;}
  .ip-tag{font-size:17px;}
  .ip-main{padding:40px 22px 24px;}
  .article p{font-size:16px;}
  .ip-related{padding:48px 22px 56px;}
  .rgrid{grid-template-columns:1fr;}
  /* touch: no hover -> reveal the mechanism overlay permanently as a dark scrim, like the homepage */
  .card__overlay{opacity:1; transform:none; background:linear-gradient(0deg,rgba(18,10,6,0.88) 0%,rgba(18,10,6,0.42) 50%,rgba(18,10,6,0.04) 100%); backdrop-filter:none; -webkit-backdrop-filter:none; padding:16px;}
  .card__overlay .eyebrow{color:rgba(255,255,255,0.85);}
  .card__overlay p{color:#fff; font-size:13px;}
  .card__swatch{height:200px;}
  .card__more{opacity:1; transform:none;}
  .footer{padding:40px 22px 30px;}
  .footer__top{flex-direction:column; gap:30px;}
  .footer__legal .fine{text-align:left; max-width:none;}
}

/* ---- spec tables (scheda tecnica) ---- */
.article table.spec{width:100%; border-collapse:collapse; margin:6px 0 22px; font-size:16px;}
.article table.spec th, .article table.spec td{text-align:left; padding:13px 16px; border-bottom:1px solid var(--hairline); vertical-align:top; line-height:1.5;}
.article table.spec thead th{font-size:12px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--accent);}
.article table.spec tbody tr:last-child td{border-bottom:0;}
.article table.spec td.k{font-weight:600; color:var(--ink); width:34%;}
.article table.spec td.v{color:#3A352F;}
.article table.spec td.q{white-space:nowrap; font-weight:600; color:var(--accent); width:18%;}
.article table.spec tfoot td{padding-top:14px; font-weight:600; color:var(--ink); border-top:2px solid rgba(31,28,25,0.16);}
@media (max-width:768px){ .article table.spec{font-size:14px;} .article table.spec th, .article table.spec td{padding:10px 10px;} .article table.spec td.k{width:auto;} }
