/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@16.2.3_@babel+core@7.29.0_@opentelemetry+api@1.9.1_@playwright+test@1.60.0_react-d_3c9dbd29b98aeb2b03fe9964d52501f5/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../../node_modules/.pnpm/next@16.2.3_@babel+core@7.29.0_@opentelemetry+api@1.9.1_@playwright+test@1.60.0_react-d_3c9dbd29b98aeb2b03fe9964d52501f5/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!./src/app/(public)/landing.css ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* ============================================================
   NATHEA — landing pubblica (Simone). Solo CSS-COMPONENTI.
   Token (--green, --grad, --fg*, --n*, --r-*, --sh-*, --glass,
   --font-d/s, --ease, ...) e font sono già in @nathea/tokens
   (ND-122 W1, naming bridge Simone). NON ridefiniti qui.
   ------------------------------------------------------------
   SCOPING (Mike, ND-122 W2): i selettori GLOBALI di Simone
   (body, section, .wrap, h1-h4, .btn*, .eyebrow, .lead, .head,
   .media, modali home) sono scoped sotto `.nth-landing` per non
   spaccare le altre pagine (public) — login, termini/privacy,
   candidatura — che usano <section>/<h1>/Tailwind con i loro
   spazi. La SHELL invece (header/nav, footer, AiBubble, swap
   logo) resta GLOBALE perché Nav+Footer vivono nel layout e
   appaiono su TUTTE le pagine pubbliche.
   ============================================================ */

/* ============================================================
   SHELL — Nav + Footer + AiBubble (layout pubblico)
   ND-122: scoped sotto `.nth-landing` (wrapper sulla shell nel
   layout) per non colare nell'area /admin. Il content era già
   scoped; ora lo è anche la shell.
   ============================================================ */

/* header / nav */
.nth-landing header{position:fixed;top:16px;left:0;right:0;z-index:200;width:fit-content;max-width:calc(100% - 32px);margin:0 auto;border-radius:var(--r-pill);background:rgba(255,255,255,.82);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid var(--line-soft);box-shadow:0 10px 34px rgba(10,11,9,.09)}
.nth-landing .brand img.brand-dark,.nth-landing .foot img.brand-dark{display:none}
.nth-landing .nav{display:flex;align-items:center;gap:46px;height:64px;padding:0 16px 0 30px}
.nth-landing .brand{flex:none}
.nth-landing .brand img{height:25px;width:auto;display:block}
.nth-landing .nav-links{display:flex;gap:34px;font-size:15px;color:var(--fg3);white-space:nowrap}
.nth-landing .nav-links a{transition:color .2s}
.nth-landing .nav-links a:hover{color:var(--fg)}
.nth-landing .nav-cta{flex:none;display:flex;align-items:center;gap:12px}
.nth-landing .icon-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--white);display:grid;place-items:center;color:var(--fg2);cursor:pointer;transition:.2s}
.nth-landing .icon-btn:hover{border-color:var(--green-deep);color:var(--green-deep)}
.nth-landing .icon-btn svg{width:18px;height:18px}
.nth-landing .btn-dark{background:var(--black);color:#fff;border:none;border-radius:var(--r-pill);padding:11px 22px;font-size:14.5px;font-weight:var(--fw-med);cursor:pointer;transition:.22s var(--ease);white-space:nowrap;display:inline-flex;align-items:center;gap:9px}
.nth-landing .btn-dark:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(10,11,9,.24)}
@media(max-width:920px){.nth-landing .nav-links{display:none}.nth-landing .nav{gap:18px}}
@media(max-width:560px){.nth-landing header{left:10px;right:10px;width:auto;max-width:none;margin:0}.nth-landing .nav{height:72px;padding:0 16px 0 20px;gap:12px;justify-content:space-between}.nth-landing .nav-cta{gap:8px}.nth-landing .btn-dark{padding:10px 16px;font-size:14px}}
@media(max-width:420px){.nth-landing .nav{padding:0 12px 0 18px;gap:8px}.nth-landing .brand img{height:22px}.nth-landing .icon-btn{width:36px;height:36px}.nth-landing .btn-dark{padding:9px 13px;font-size:13.5px}}

/* footer */
.nth-landing footer{border-top:1px solid var(--line-soft);padding:44px 0 36px;background:var(--n50)}
.nth-landing .foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px}
.nth-landing .foot img{height:24px}
.nth-landing .foot-links{display:flex;gap:26px;font-size:14px;color:var(--fg3);flex-wrap:wrap}
.nth-landing .foot-links a:hover{color:var(--green-deep)}
.nth-landing .foot-legal{font-size:12.5px;color:var(--fg3);margin-top:18px;text-align:center;padding-top:20px;border-top:1px solid var(--line-soft)}

/* footer/shell .wrap */
.nth-landing footer .wrap{max-width:1180px;margin:0 auto;padding:0 24px}

/* ai bubble (fixed, globale sulla home) */
.nth-landing .ai{position:fixed;right:24px;bottom:24px;z-index:300;display:flex;align-items:center;gap:11px;background:var(--white);color:var(--fg);padding:11px 20px 11px 12px;border-radius:var(--r-pill);box-shadow:var(--sh-lg);cursor:pointer;font-family:inherit;font-weight:var(--fw-med);font-size:14.5px;border:1px solid var(--line-soft)}
.nth-landing .ai .mark{width:34px;height:34px;border-radius:50%;background:var(--grad-soft);display:grid;place-items:center}
.nth-landing .ai .mark img{width:20px;height:20px}

/* swap logo chiaro/scuro (shell) */
[data-theme="dark"] .nth-landing header{background:rgba(18,21,14,.72);border-color:var(--line-soft)}
[data-theme="dark"] .nth-landing .btn-dark{background:#f3f5ef;color:#0a0b09}
[data-theme="dark"] .nth-landing .btn-dark:hover{box-shadow:0 10px 22px rgba(0,0,0,.5)}
[data-theme="dark"] .nth-landing .brand img.brand-light,[data-theme="dark"] .nth-landing .foot img.brand-light{display:none}
[data-theme="dark"] .nth-landing .brand img.brand-dark,[data-theme="dark"] .nth-landing .foot img.brand-dark{display:block}

/* ============================================================
   LANDING — scoped sotto .nth-landing (home page)
   ============================================================ */
.nth-landing{font-family:var(--font-s);font-weight:var(--fw);color:var(--fg);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.nth-landing *{box-sizing:border-box}
.nth-landing img{max-width:100%;display:block}
.nth-landing a{color:inherit;text-decoration:none}
.nth-landing button{font-family:inherit}
.nth-landing .wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.nth-landing section{padding:104px 0}
.nth-landing section[id]{scroll-margin-top:100px}
/* Mobile (≤sm): gutter laterale più contenuto ma sempre presente (~14px),
   coerente con l'header (left/right:10px). Su schermi stretti i 24px desktop
   stringono troppo i contenuti; qui garantiamo ordine senza far toccare i bordi.
   Si applica a .wrap della home E alle pagine pubbliche (catalogo/mutuo/...) che
   riusano lo stesso .wrap (footer incluso). Desktop invariato. */
@media (max-width: 560px) {
  .nth-landing .wrap,
  .nth-landing footer .wrap {
    padding-left: 14px;
    padding-right: 14px;
  }
}

.nth-landing h1,.nth-landing h2,.nth-landing h3,.nth-landing h4{font-family:var(--font-d);font-weight:var(--fw-med);letter-spacing:-.025em;line-height:1.08}
.nth-landing .eyebrow{font-family:var(--font-s);font-weight:var(--fw-med);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--green-deep)}
.nth-landing h2.section{font-size:clamp(30px,4.4vw,52px);margin:14px 0 10px}
.nth-landing .lead{font-weight:var(--fw);color:var(--fg3);font-size:clamp(17px,1.5vw,19px);line-height:1.6;max-width:600px}
.nth-landing .grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.nth-landing .head{max-width:680px}

.nth-landing .btn{display:inline-flex;align-items:center;gap:9px;border:none;border-radius:var(--r-pill);padding:14px 26px;font-size:15px;font-weight:var(--fw-med);cursor:pointer;transition:.22s var(--ease);white-space:nowrap}
.nth-landing .btn svg{width:17px;height:17px}
.nth-landing .btn-o{background:transparent;color:var(--green-deep);border:1.5px solid rgba(61,145,0,.4)}
.nth-landing .btn-o:hover{background:var(--grad-soft);border-color:var(--green-deep)}
.nth-landing .btn-ghost{background:var(--white);color:var(--fg);border:1.5px solid var(--line)}
.nth-landing .btn-ghost:hover{border-color:var(--green-deep)}
.nth-landing .btn-black{background:var(--black);color:#fff}
.nth-landing .btn-black:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(10,11,9,.28)}
[data-theme="dark"] .nth-landing .btn-black{background:#f3f5ef;color:#0a0b09}
[data-theme="dark"] .nth-landing .btn-ghost{background:transparent}

/* media slots */
.nth-landing .media{position:relative;overflow:hidden;background:var(--img,linear-gradient(150deg,#eef6df 0%,#cfe9a6 45%,#9fd060 100%));background-size:cover;background-position:center}
.nth-landing .media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(10,11,9,.18))}

/* hero */
.nth-landing .hero{position:relative;padding:140px 0 40px;overflow:hidden}
.nth-landing .hero>.wrap{position:relative;z-index:2}
.nth-landing .hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
/* ND-122 (Eleven 2026-06-11): blob/cursor-glow montato UNA volta nel layout
   (public). Confinato alla FASCIA ALTA come l'originale Simone (hero-bound):
   absolute ancorato in cima al contenuto → scrolla via con la pagina (NON
   fixed a tutto viewport), altezza limitata, mask verticale che lo sfuma in
   basso. Il mouse-follow agisce solo dentro questa fascia (il ref misura la
   banda alta), quindi scrollando in basso il blob non è più visibile né segue
   il cursore. Non cattura click. */
.nth-public-bg{position:absolute;top:0;left:0;right:0;height:min(100vh,820px);z-index:0;pointer-events:none;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 58%,transparent 100%);mask-image:linear-gradient(180deg,#000 0%,#000 58%,transparent 100%)}
.nth-public-bg .hero-bg{position:absolute;inset:0}
.nth-landing .grid-svg{position:absolute;inset:0;width:100%;height:100%;color:var(--green-deep)}
.nth-landing .grid-svg.base{opacity:.045}
.nth-landing .grid-svg.glow{opacity:.72;color:var(--fg)}
.nth-landing .cursor-glow{position:absolute;top:0;left:0;border-radius:50%;pointer-events:none;will-change:transform;background:radial-gradient(circle,rgba(108,187,0,.28),rgba(171,228,0,.12) 45%,transparent 68%);filter:blur(36px)}
.nth-landing .orb{position:absolute;border-radius:50%;filter:blur(90px);will-change:transform}
.nth-landing .orb-1{width:44%;aspect-ratio:1;right:-12%;top:-16%;opacity:.5;background:radial-gradient(circle,#abe400,transparent 70%)}
.nth-landing .orb-2{width:26%;aspect-ratio:1;left:6%;top:-10%;opacity:.32;background:radial-gradient(circle,#3d9100,transparent 70%)}
.nth-landing .orb-3{width:40%;aspect-ratio:1;left:-14%;bottom:-26%;opacity:.4;background:radial-gradient(circle,#6cbb00,transparent 70%)}
.nth-landing .hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:56px;align-items:center}
.nth-landing .hero h1{font-size:clamp(38px,5.6vw,66px);letter-spacing:-.035em;line-height:1.02}
.nth-landing .hero .sub{font-size:clamp(17px,1.6vw,20px);color:var(--fg3);margin:24px 0 32px;max-width:520px;line-height:1.55}
.nth-landing .hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.nth-landing .hero-trust{display:flex;align-items:center;gap:14px;margin-top:26px;font-size:13.5px;color:var(--fg3);flex-wrap:wrap}
.nth-landing .hero-trust .dot{width:5px;height:5px;border-radius:50%;background:var(--green-deep)}
.nth-landing .hero-art{position:relative}
.nth-landing .hero-art .media{aspect-ratio:4/4.5;border-radius:var(--r-xl);box-shadow:0 14px 30px -22px rgba(10,11,9,.22)}
.nth-landing .hero-art .media::after{content:none}
.nth-landing .hero-art .media .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.nth-landing .hero-art .scene{position:absolute;inset:0;display:grid;place-items:center}
.nth-landing .hero-art .scene svg{width:64%;filter:drop-shadow(0 20px 30px rgba(10,30,5,.22))}
.nth-landing .float-card{position:absolute;left:-22px;bottom:34px;background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid rgba(255,255,255,.6);border-radius:var(--r-md);padding:16px 20px;box-shadow:var(--sh-md);display:flex;align-items:center;gap:14px}
.nth-landing .float-card .ring{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--grad);color:#fff;flex-shrink:0}
.nth-landing .float-card .ring svg{width:22px;height:22px}
.nth-landing .float-card b{font-family:var(--font-d);font-weight:var(--fw-med);font-size:18px;display:block;line-height:1.1}
.nth-landing .float-card span{font-size:12.5px;color:var(--fg3)}
.nth-landing .float-card.top{left:auto;right:-18px;bottom:auto;top:30px}
@media(max-width:920px){.nth-landing .hero-grid{grid-template-columns:1fr;gap:36px}.nth-landing .hero-art{order:-1}.nth-landing .float-card{left:14px}.nth-landing .float-card.top{right:14px}}

/* value strip */
.nth-landing .value{background:var(--black);color:#fff;border-radius:var(--r-lg);margin-top:46px;display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden}
.nth-landing .value .v{padding:30px 24px;text-align:center;border-right:1px solid rgba(255,255,255,.08)}
.nth-landing .value .v:last-child{border-right:none}
.nth-landing .value .n{font-family:var(--font-d);font-weight:var(--fw-med);font-size:clamp(26px,3vw,34px);letter-spacing:-.02em;background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.nth-landing .value .l{font-size:13px;color:#c9cdc2;margin-top:6px}
@media(max-width:680px){.nth-landing .value{grid-template-columns:repeat(2,1fr)}.nth-landing .value .v:nth-child(2){border-right:none}.nth-landing .value .v:nth-child(1),.nth-landing .value .v:nth-child(2){border-bottom:1px solid rgba(255,255,255,.08)}}
[data-theme="dark"] .nth-landing .value{background:#1b1f15;border:1px solid var(--line-soft)}

/* steps */
.nth-landing .steps{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:54px}
.nth-landing .track{position:absolute;left:0;right:0;top:45px;height:2px;background:var(--n200);border-radius:2px;z-index:0}
.nth-landing .track-fill{position:absolute;inset:0;background:var(--grad);border-radius:2px;transform-origin:left center}
.nth-landing .step{position:relative;z-index:1;background:var(--white);border:1px solid var(--line-soft);border-radius:var(--r-md);padding:26px 22px;height:100%;transition:border-color .25s ease}
/* ND-160 — feedback bordo hover via CSS (non più borderColor inline da framer,
   che lasciava residui incoerenti). Neutro più marcato (--line), NON verde
   (direttiva B&W ND-157). Escluso .step--finish: il suo bordo verde resta. */
.nth-landing .step:not(.step--finish):hover{border-color:var(--line)}
.nth-landing .step .num{position:relative;overflow:hidden;width:38px;height:38px;border-radius:12px;background:var(--grad-soft);color:var(--green-deep);font-family:var(--font-d);font-weight:var(--fw-med);display:grid;place-items:center;font-size:16px;margin-bottom:18px}
.nth-landing .step .num .num-on{position:absolute;inset:0;display:grid;place-items:center;border-radius:12px;background:var(--grad);color:#fff;box-shadow:var(--sh-brand)}
@media(max-width:920px){.nth-landing .track{display:none}}
.nth-landing .step h4{font-size:17px;margin-bottom:7px}
.nth-landing .step p{font-size:13.5px;color:var(--fg3);line-height:1.55}
@media(max-width:920px){.nth-landing .steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.nth-landing .steps{grid-template-columns:1fr}}
.nth-landing .step--finish{--checker:rgba(10,11,9,.07);overflow:hidden;border-color:rgba(61,145,0,.3)}
.nth-landing .step--finish::before{content:"";position:absolute;inset:0;z-index:0;
  background-image:
    linear-gradient(45deg,var(--checker) 25%,transparent 25%,transparent 75%,var(--checker) 75%),
    linear-gradient(45deg,var(--checker) 25%,transparent 25%,transparent 75%,var(--checker) 75%);
  background-size:16px 16px;background-position:0 0,8px 8px;
  -webkit-mask-image:linear-gradient(155deg,#000 0%,transparent 62%);mask-image:linear-gradient(155deg,#000 0%,transparent 62%);
  pointer-events:none}
.nth-landing .step--finish>*{position:relative;z-index:1}
.nth-landing .step--finish .num,.nth-landing .step--finish .num .num-on{background:var(--grad);color:#fff}
.nth-landing .step--finish .flag{position:absolute;top:18px;right:18px;z-index:1;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--white);border:1px solid var(--line);color:var(--green-deep)}
.nth-landing .step--finish .flag svg{width:16px;height:16px}
[data-theme="dark"] .nth-landing .step--finish{--checker:rgba(255,255,255,.09)}
.nth-landing .how-cta{text-align:center;margin-top:46px}

/* features */
.nth-landing .feats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:54px}
.nth-landing .feat{position:relative;background:var(--white);border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:32px;cursor:pointer;overflow:hidden;height:100%;box-shadow:var(--sh-md);transition:border-color .25s ease}
/* ND-160 — bordo hover neutro via CSS (vedi nota .step). */
.nth-landing .feat:hover{border-color:var(--line)}
.nth-landing .feat .ic{width:52px;height:52px;border-radius:14px;background:var(--grad);display:grid;place-items:center;color:#fff;margin-bottom:20px;box-shadow:var(--sh-brand)}
.nth-landing .feat .ic svg{width:26px;height:26px}
.nth-landing .feat .kick{font-size:12px;font-weight:var(--fw-med);letter-spacing:.08em;text-transform:uppercase;color:var(--green-deep)}
.nth-landing .feat h4{font-size:22px;margin:8px 0 10px}
.nth-landing .feat p{font-size:15px;color:var(--fg3)}
.nth-landing .feat .more{margin-top:18px;font-weight:var(--fw-med);color:var(--green-deep);font-size:14.5px;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.nth-landing .feat .more svg{width:16px;height:16px;flex:none}
@media(max-width:680px){.nth-landing .feats{grid-template-columns:1fr}}
.nth-landing .feats-dark{background:#0a0b09;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06)}
.nth-landing .feats-dark .eyebrow{color:#abe400}
.nth-landing .feats-dark h2.section{color:#f4f5ef}
.nth-landing .feats-dark .lead{color:#b9beb0}
.nth-landing .feats-dark .feat{background:#15180f;border-color:rgba(255,255,255,.09);box-shadow:0 18px 46px rgba(0,0,0,.5)}
.nth-landing .feats-dark .feat h4{color:#f4f5ef}
.nth-landing .feats-dark .feat p{color:#9da393}
.nth-landing .feats-dark .feat .kick{color:#abe400}
.nth-landing .feats-dark .feat .more{color:#abe400}

/* catalog */
.nth-landing .cat{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:54px}
.nth-landing .house{background:var(--white);border:1px solid var(--line-soft);border-radius:var(--r-lg);overflow:hidden;height:100%;cursor:pointer;transition:border-color .25s ease}
/* ND-160 — bordo hover neutro via CSS (vedi nota .step). */
.nth-landing .house:hover{border-color:var(--line)}
.nth-landing .house:focus-visible{outline:2px solid var(--green-deep);outline-offset:3px}
.nth-landing .house .media{aspect-ratio:16/11;display:grid;place-items:center}
.nth-landing .house .media svg{width:46%;opacity:.95;filter:drop-shadow(0 10px 18px rgba(10,30,5,.18));position:relative;z-index:1}
.nth-landing .house .media .ph-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;transition:opacity .5s var(--ease),transform .7s var(--ease)}
.nth-landing .house .media .ph-hover{opacity:0;z-index:2}
.nth-landing .house:hover .media .ph-hover{opacity:1}
.nth-landing .house:hover .media .ph-img{transform:scale(1.05)}
.nth-landing .house .media::after{z-index:3}
.nth-landing .house .badge{position:absolute;top:14px;left:14px;z-index:4;background:var(--glass);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);color:var(--green-deep);font-size:11.5px;font-weight:var(--fw-med);padding:6px 13px;border-radius:var(--r-pill)}
.nth-landing .house .body{padding:22px}
.nth-landing .house h4{font-size:19px;margin-bottom:4px}
.nth-landing .house .price{font-family:var(--font-d);font-weight:var(--fw-med);font-size:22px;color:var(--green-deep);margin:8px 0}
.nth-landing .house .specs{font-size:13px;color:var(--fg3);display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.nth-landing .house .specs span{background:var(--n100);padding:4px 11px;border-radius:var(--r-pill)}
@media(max-width:820px){.nth-landing .cat{grid-template-columns:1fr;max-width:420px;margin-left:auto;margin-right:auto}}
[data-theme="dark"] .nth-landing .house .media svg [fill="#fff"]{fill:#e8efe0}
[data-theme="dark"] .nth-landing .house .badge{background:rgba(255,255,255,.88);color:var(--green-deep);border:1px solid rgba(255,255,255,.5)}

/* network */
.nth-landing .net{background:var(--grad-soft);border:1px solid rgba(61,145,0,.12);border-radius:var(--r-xl);padding:48px;margin-top:46px;display:grid;grid-template-columns:1fr 1.1fr;gap:44px;align-items:center}
.nth-landing .net-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.nth-landing .metric{background:var(--white);border-radius:var(--r-md);padding:22px;box-shadow:var(--sh-sm)}
.nth-landing .metric .n{font-family:var(--font-d);font-weight:var(--fw-med);font-size:clamp(28px,3.4vw,36px);color:var(--green-deep);line-height:1;letter-spacing:-.02em}
.nth-landing .metric .l{font-size:13px;color:var(--fg3);margin-top:8px}
.nth-landing .chart-box{background:var(--white);border-radius:var(--r-lg);padding:26px;box-shadow:var(--sh-sm)}
.nth-landing .chart-box h4{font-size:16px;margin-bottom:4px}
.nth-landing .chart-box .cap{font-size:12.5px;color:var(--fg3);margin-bottom:18px}
.nth-landing .bars{display:flex;flex-direction:column;gap:16px}
.nth-landing .bar-row{display:grid;grid-template-columns:96px 1fr 34px;align-items:center;gap:12px;font-size:13px}
.nth-landing .bar-track{height:12px;border-radius:var(--r-pill);background:var(--n100);overflow:hidden}
.nth-landing .bar-fill{height:100%;border-radius:var(--r-pill);background:var(--grad)}
.nth-landing .bar-row .val{font-family:var(--font-d);font-weight:var(--fw-med);color:var(--green-deep);text-align:right}
@media(max-width:920px){.nth-landing .net{grid-template-columns:1fr;padding:30px}}

/* testimonials */
.nth-landing .tst{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:54px}
.nth-landing .quote{background:var(--white);border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:30px;display:flex;flex-direction:column;height:100%}
/* ND-129: stelle delle card recensioni in nero (era --green-deep). */
.nth-landing .quote .stars{color:var(--fg);font-size:14px;letter-spacing:3px;margin-bottom:14px}
.nth-landing .quote p{font-size:15px;color:var(--fg2);line-height:1.6;flex:1}
.nth-landing .quote .who{display:flex;align-items:center;gap:13px;margin-top:22px}
.nth-landing .quote .av{width:46px;height:46px;border-radius:50%;background:var(--grad);color:#fff;font-family:var(--font-d);font-weight:var(--fw-med);display:grid;place-items:center;font-size:15px;flex-shrink:0}
.nth-landing .quote .who b{font-family:var(--font-d);font-weight:var(--fw-med);font-size:14.5px}
.nth-landing .quote .who span{font-size:12.5px;color:var(--fg3);display:block}
@media(max-width:820px){.nth-landing .tst{grid-template-columns:1fr;max-width:440px;margin-left:auto;margin-right:auto}}

.nth-landing .rev-banner{width:fit-content;max-width:100%;background:var(--grad);border-radius:var(--r-xl);padding:24px 36px;margin:48px auto 0;display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap;text-align:center;color:#fff;box-shadow:var(--sh-brand)}
.nth-landing .rev-score{font-family:var(--font-d);font-weight:var(--fw-med);font-size:clamp(40px,5vw,56px);letter-spacing:-.02em;line-height:1;color:#fff}
.nth-landing .rev-score .cnt{font-family:var(--font-s);font-weight:var(--fw);font-size:.4em;color:rgba(255,255,255,.85)}
.nth-landing .rev-div{width:1px;height:58px;background:rgba(255,255,255,.35)}
.nth-landing .rev-bd{text-align:left}
.nth-landing .rev-stars{display:flex;gap:7px;color:#fff}
.nth-landing .rev-stars svg{width:22px;height:22px}
.nth-landing .rev-sub{color:rgba(255,255,255,.92);margin-top:8px;font-size:14.5px;max-width:340px}
@media(max-width:560px){.nth-landing .rev-div{display:none}.nth-landing .rev-bd{text-align:center}.nth-landing .rev-stars{justify-content:center}}

.nth-landing .rev-cols{display:flex;justify-content:center;gap:22px;margin-top:34px;max-height:560px;overflow:hidden;
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 10%,#000 90%,transparent);
  mask-image:linear-gradient(to bottom,transparent,#000 10%,#000 90%,transparent)}
.nth-landing .mcol{flex:1 1 0;min-width:0;max-width:360px}
.nth-landing .mcol ul{list-style:none;display:flex;flex-direction:column;gap:18px;padding:0 2px 18px;margin:0}
.nth-landing .mcol li{cursor:default}
.nth-landing .mcol .quote{margin:0}
@media(max-width:1040px){.nth-landing .m-lg{display:none}}
@media(max-width:760px){.nth-landing .m-md{display:none}.nth-landing .rev-cols{max-height:600px}}

/* pro */
/* Glow verde in alto a dx dipinto DENTRO il box come radial-gradient sul
   background del .pro stesso (base scura + alone verde brand a bassa opacità che
   sfuma a trasparente). Sostituisce il vecchio ::before con filter:blur, che su
   Safari iOS veniva compositato come layer separato e "scappava" dall'angolo
   arrotondato (angolino verde fuori dal radius in alto a dx) nonostante
   overflow:hidden + translateZ + isolation. Un background-image è pittura interna
   alla painting area del box → clippata al 100% dal border-radius, nessun layer
   blurato a parte: robusto cross-browser, iOS Safari incluso. */
.nth-landing .pro{position:relative;color:#fff;border-radius:var(--r-xl);padding:54px;display:flex;justify-content:space-between;align-items:center;gap:34px;flex-wrap:wrap;overflow:hidden;
  background:
    radial-gradient(120% 120% at 100% 0%,rgba(108,187,0,.24),rgba(108,187,0,.08) 38%,transparent 64%),
    var(--black)}
.nth-landing .pro>*{position:relative}
.nth-landing .pro h3{font-size:clamp(24px,3vw,32px)}
.nth-landing .pro p{color:#c9cdc2;font-size:16px;max-width:560px;margin-top:12px}
/* Banda "pro" su fondo NERO: il primario nero non si leggerebbe → variante
   chiara (bianco su scuro), coerente col linguaggio Simone sui fondi scuri. */
.nth-landing .pro .btn-black{background:#f3f5ef;color:#0a0b09}
.nth-landing .pro .btn-black:hover{box-shadow:0 12px 28px rgba(0,0,0,.32)}
.nth-landing .pro .btn-o{color:#fff;border-color:rgba(255,255,255,.35)}
.nth-landing .pro .btn-o:hover{background:rgba(255,255,255,.08)}
[data-theme="dark"] .nth-landing .pro{border:1px solid var(--line-soft);
  background:
    radial-gradient(120% 120% at 100% 0%,rgba(108,187,0,.30),rgba(108,187,0,.10) 38%,transparent 64%),
    #1b1f15}

/* modal (features + house) */
.nth-landing .ov{position:fixed;inset:0;background:rgba(10,11,9,.5);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:900;padding:20px;font-family:var(--font-s);color:var(--fg);overflow-y:auto}
.nth-landing .modal{background:var(--white);border-radius:var(--r-xl);max-width:580px;width:100%;max-height:calc(100dvh - 40px);overflow:hidden auto;box-shadow:0 40px 100px rgba(0,0,0,.34)}
.nth-landing .modal h3,.nth-landing .modal h4{font-family:var(--font-d);font-weight:var(--fw-med);letter-spacing:-.025em}
.nth-landing .modal .mh{position:relative;aspect-ratio:16/8;display:grid;place-items:center;background:var(--img,linear-gradient(150deg,#eef6df 0%,#cfe9a6 45%,#9fd060 100%));background-size:cover;background-position:center}
.nth-landing .modal .mh.media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(10,11,9,.18))}
.nth-landing .modal .mh.media .modal-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.nth-landing .modal .mh .play{width:70px;height:70px;border-radius:50%;background:var(--glass);backdrop-filter:var(--blur);display:grid;place-items:center;color:var(--green-deep);cursor:pointer;box-shadow:var(--sh-md);z-index:1}
.nth-landing .modal .mh .play svg{width:26px;height:26px;margin-left:3px}
.nth-landing .modal .mh .lab{position:absolute;bottom:14px;left:16px;z-index:1;background:var(--glass);backdrop-filter:var(--blur);font-size:12px;font-weight:var(--fw-med);color:var(--green-deep);padding:5px 12px;border-radius:var(--r-pill)}
.nth-landing .modal .x{position:absolute;top:14px;right:16px;z-index:2;width:36px;height:36px;border-radius:50%;background:var(--glass);backdrop-filter:var(--blur);border:none;cursor:pointer;color:var(--fg);display:grid;place-items:center}
.nth-landing .modal .mb{padding:30px 32px 32px}
.nth-landing .modal .free{display:inline-flex;align-items:center;gap:7px;background:var(--grad-soft);color:var(--green-deep);font-size:12px;font-weight:var(--fw-med);padding:6px 13px;border-radius:var(--r-pill);margin-bottom:16px}
.nth-landing .modal .free svg{width:14px;height:14px}
.nth-landing .modal h3{font-size:24px;margin-bottom:10px}
.nth-landing .modal .mb>p{font-size:15px;color:var(--fg3)}
.nth-landing .modal ul{margin:18px 0 4px;padding:0;list-style:none}
.nth-landing .modal li{font-size:14.5px;color:var(--fg2);padding-left:28px;position:relative;margin-bottom:11px}
.nth-landing .modal li::before{content:"";position:absolute;left:0;top:2px;width:18px;height:18px;border-radius:50%;background:var(--grad-soft)}
.nth-landing .modal li::after{content:"";position:absolute;left:5px;top:7px;width:7px;height:4px;border-left:1.6px solid var(--green-deep);border-bottom:1.6px solid var(--green-deep);transform:rotate(-45deg)}
.nth-landing .modal .mf{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}
.nth-landing .modal .btn{display:inline-flex;align-items:center;gap:9px;border:none;border-radius:var(--r-pill);padding:14px 26px;font-size:15px;font-weight:var(--fw-med);cursor:pointer;transition:.22s var(--ease);white-space:nowrap}
.nth-landing .modal .btn svg{width:17px;height:17px}
.nth-landing .modal .btn-o{background:transparent;color:var(--green-deep);border:1.5px solid rgba(61,145,0,.4)}
.nth-landing .modal .btn-o:hover{background:var(--grad-soft);border-color:var(--green-deep)}
.nth-landing .modal .btn-black{background:var(--black);color:#fff}
.nth-landing .modal .btn-black:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(10,11,9,.28)}
.nth-landing .modal .btn-ghost{background:var(--white);color:var(--fg);border:1.5px solid var(--line)}
.nth-landing .modal .btn-ghost:hover{border-color:var(--green-deep)}
.nth-landing .modal .house-price{font-family:var(--font-d);font-weight:var(--fw-med);font-size:26px;color:var(--green-deep);margin:4px 0 14px;letter-spacing:-.02em}
.nth-landing .modal .house-price span{font-family:var(--font-s);font-weight:var(--fw);font-size:13px;color:var(--fg3);letter-spacing:0}
.nth-landing .modal .house-specs-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;margin-top:18px;border-top:1px solid var(--line-soft)}
.nth-landing .modal .hs-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:14px}
.nth-landing .modal .hs-k{color:var(--fg3)}
.nth-landing .modal .hs-v{color:var(--fg);font-weight:var(--fw-med);text-align:right}
@media(max-width:560px){.nth-landing .modal .house-specs-grid{grid-template-columns:1fr}}
[data-theme="dark"] .nth-landing .modal .mh .lab{background:rgba(255,255,255,.88);color:var(--green-deep);border:1px solid rgba(255,255,255,.5)}
[data-theme="dark"] .nth-landing .modal .btn-black{background:#f3f5ef;color:#0a0b09}
[data-theme="dark"] .nth-landing .modal .btn-ghost{background:transparent}

/* ============================================================
   AREA CALCOLI (debug) — DebugCalcoli (Eleven 2026-06-12, ND).
   Easter egg 7 click in /configura + DEBUG_PREVENTIVO in
   /preventivo-ai. Carta morbida nel linguaggio landing (token
   globali: --white, --green-deep, --line-soft, raggi e ombre),
   light+dark. Non scoped a .nth-landing per funzionare anche
   nella aside Tailwind di /preventivo-ai (è comunque wrappata
   in .nth-landing nei due punti di render). IT-only.
   ============================================================ */
.nth-dbg{position:relative;background:var(--white);border:1px solid var(--line-soft);border-radius:var(--r-lg);box-shadow:var(--sh-md);padding:26px 28px;max-width:1180px;margin:0 auto}
.nth-dbg-close{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--white);color:var(--fg3);display:grid;place-items:center;cursor:pointer;transition:.2s}
.nth-dbg-close:hover{border-color:var(--green-deep);color:var(--green-deep)}
.nth-dbg-close:focus-visible{outline:2px solid var(--green-deep);outline-offset:2px}
.nth-dbg-eyebrow{display:block;font-family:var(--font-s);font-weight:var(--fw-med);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--green-deep);padding-right:40px}
.nth-dbg-lead{margin:6px 0 20px;font-size:13.5px;line-height:1.55;color:var(--fg3);max-width:60ch}
.nth-dbg-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.nth-dbg-step{background:var(--n50);border:1px solid var(--line-soft);border-radius:var(--r-md);padding:16px 18px}
.nth-dbg-step-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}
.nth-dbg-step-title{display:flex;align-items:center;gap:10px;min-width:0}
.nth-dbg-ord{flex:0 0 auto;width:24px;height:24px;border-radius:8px;background:var(--grad-soft);color:var(--green-deep);font-family:var(--font-d);font-weight:var(--fw-med);font-size:12.5px;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.nth-dbg-step-title h3{margin:0;font-family:var(--font-d);font-weight:var(--fw-med);font-size:14.5px;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nth-dbg-res{flex:0 0 auto;font-family:var(--font-d);font-weight:var(--fw-med);font-size:14.5px;color:var(--green-deep);font-variant-numeric:tabular-nums}
.nth-dbg-formula{display:flex;flex-wrap:wrap;align-items:center;gap:7px;font-size:13px;line-height:1.7;color:var(--fg2)}
.nth-dbg-op{font-family:var(--font-mono);white-space:pre;color:var(--fg3)}
.nth-dbg-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--r-pill);font-size:12.5px;font-weight:var(--fw-med);border:1px solid transparent;transition:.18s;cursor:default}
.nth-dbg-pill.is-calc{background:var(--n100);color:var(--fg2);border-color:var(--line-soft)}
.nth-dbg-pill.is-source{background:var(--grad-soft);color:var(--green-deep);border-color:rgba(61,145,0,.18)}
.nth-dbg-pill.is-link{cursor:pointer}
.nth-dbg-pill.is-link:hover{border-color:var(--green-deep);transform:translateY(-1px);box-shadow:0 4px 12px -6px rgba(61,145,0,.5)}
.nth-dbg-pill.is-link:focus-visible{outline:2px solid var(--green-deep);outline-offset:2px}
.nth-dbg-pill-raw{font-family:var(--font-mono);background:var(--n100);color:var(--fg3)}
.nth-dbg-note{margin:10px 0 0;font-size:12px;font-style:italic;line-height:1.55;color:var(--fg3)}
@media(max-width:560px){.nth-dbg{padding:22px 18px}.nth-dbg-step-title h3{white-space:normal}}
[data-theme="dark"] .nth-dbg{background:#1b1f15;border-color:var(--line-soft)}
[data-theme="dark"] .nth-dbg-close{background:transparent;border-color:var(--line)}
[data-theme="dark"] .nth-dbg-step{background:rgba(255,255,255,.03);border-color:var(--line-soft)}
[data-theme="dark"] .nth-dbg-pill.is-calc{background:rgba(255,255,255,.06);color:var(--fg2)}

/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@16.2.3_@babel+core@7.29.0_@opentelemetry+api@1.9.1_@playwright+test@1.60.0_react-d_3c9dbd29b98aeb2b03fe9964d52501f5/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../../node_modules/.pnpm/next@16.2.3_@babel+core@7.29.0_@opentelemetry+api@1.9.1_@playwright+test@1.60.0_react-d_3c9dbd29b98aeb2b03fe9964d52501f5/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!./src/components/landing/public-page-title.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* ============================================================
   NATHEA — PublicPageTitle (intestazione pagine pubbliche, ND-122).
   Replica 1:1 il trattamento titolo di /mutuo (.cfg-hero + .cat-back),
   ma con classi proprie `.ppt-*` così è riusabile ovunque sotto
   `.nth-landing` senza dipendere dal CSS di una singola pagina.

   Token (--green*, --grad, --fg*, --r-*, --sh-*, --glass, --blur,
   --ease, --fw*, --line*) già in @nathea/tokens. NON ridefiniti.
   eyebrow/lead/grad-text/h2.section ereditati da landing.css.
   ============================================================ */

/* Riga del back-link. Base = CENTRATA: resta solo come override esplicito
   (backAlign="center"). Storia: ND-122 centrava di default, ND-137 portava
   /login a sinistra. */
.nth-landing .ppt-back-row {
  display: flex;
  justify-content: center;
}

/* ND-154 (Pier/Simone): TUTTI i pulsanti di ritorno/home vanno allineati a
   SINISTRA, coerenti ovunque. Questo è ora il default del componente
   (backAlign="start"); il modifier è quindi la regola applicata di norma. */
.nth-landing .ppt-back-row--start {
  justify-content: flex-start;
}

/* Back-link pill — identico a .cat-back di /mutuo. */
.nth-landing .ppt-back {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 14px;
  font-weight: var(--fw-med);
  color: var(--fg2);
  cursor: pointer;
  text-decoration: none;
  padding: 9px 17px;
  border-radius: var(--r-pill);
  background: var(--glass);
  backdrop-filter: var(--blur);
  -webkit-backdrop-filter: var(--blur);
  border: 1px solid rgba(255, 255, 255, 0.5);
  box-shadow: var(--sh-sm), inset 0 1px 0 rgba(255, 255, 255, 0.55);
  transition: 0.2s var(--ease);
}
.nth-landing .ppt-back:hover {
  color: var(--green-deep);
  transform: translateY(-1px);
  box-shadow: var(--sh-md), inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

/* Hero centrato — identico a .cfg-hero di /mutuo: text-align center,
   max-width contenuta, NIENTE orbs/backdrop dietro al testo. */
.nth-landing .ppt-hero {
  text-align: center;
  max-width: 680px;
  margin: 16px auto 0;
  padding-bottom: 6px;
}
.nth-landing .ppt-hero .eyebrow {
  display: block;
}
.nth-landing .ppt-hero .lead {
  margin-inline: auto;
}

[data-theme="dark"] .nth-landing .ppt-back {
  background: rgba(255, 255, 255, 0.06);
  border-color: var(--line-soft);
}

/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/next@16.2.3_@babel+core@7.29.0_@opentelemetry+api@1.9.1_@playwright+test@1.60.0_react-d_3c9dbd29b98aeb2b03fe9964d52501f5/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[2]!../../node_modules/.pnpm/next@16.2.3_@babel+core@7.29.0_@opentelemetry+api@1.9.1_@playwright+test@1.60.0_react-d_3c9dbd29b98aeb2b03fe9964d52501f5/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[15].oneOf[10].use[3]!./src/components/landing/public-page-shell.css ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* ============================================================
   NATHEA — PublicPageShell (template pagine pubbliche, ND-122).
   Solo CSS-COMPONENTI. Token (--green*, --grad, --grad-soft, --fg*,
   --n*, --r-*, --sh-*, --white, --fw*) già in @nathea/tokens. NON
   ridefiniti qui.

   Scope sotto `.nth-landing` come landing.css/mutuo.css. L'intestazione
   (eyebrow + titolo + lead + back-link) è renderizzata da PublicPageTitle
   (vedi public-page-title.css) — qui solo il layout di pagina: padding
   arioso sotto la navbar (come /mutuo) + card morbida SENZA bordo.
   ============================================================ */

/* Padding allineato a /mutuo (.config-page: 120px 0 90px) → respiro
   corretto sotto la navbar fissa, NIENTE sticky/overlap. */
.nth-landing .pps-page {
  position: relative;
  z-index: 1; /* sopra il blob globale (.nth-public-bg, fixed z-index:0) */
  padding: 120px 0 90px;
}
/* Pagine senza navbar (es. /login): niente clearance navbar in alto.
   ND-127 (Pier): il blocco "Accedi" (back-link + intestazione) restava
   troppo a ridosso del bordo superiore e si accavallava con il chrome.
   Clearance adeguata in alto così back-link e intestazione hanno respiro
   netto a ogni larghezza, senza overlap. */
.nth-landing .pps-page--compact {
  padding-top: 72px;
}

.nth-landing .pps-inner {
  margin: 0 auto;
}

/* Spazio tra l'intestazione (PublicPageTitle) e il contenuto. */
.nth-landing .pps-body {
  margin-top: 40px;
}

/* Card morbida SENZA bordo: soft shadow + superficie. Chi consuma lo
   shell mette il proprio contenuto in `.pps-card`. */
.nth-landing .pps-card {
  position: relative;
  background: var(--white);
  border-radius: var(--r-xl);
  padding: 36px 40px 40px;
  box-shadow: var(--sh-lg);
}

/* Variante "tight": card con contenuto corto (es. /configura-2fa: 1 paragrafo
   + 1 bottone). Il padding pieno di .pps-card fa "galleggiare" il contenuto e
   lascia troppo vuoto verticale. Additiva — non tocca il default delle altre
   pagine (login, candidatura, mutuo) che riempiono di più la card. */
.nth-landing .pps-card.pps-card--tight {
  padding-top: 28px;
  padding-bottom: 28px;
}

/* Footer centrato (es. "Hai già un account? Accedi"). */
.nth-landing .pps-foot {
  text-align: center;
  font-size: 13px;
  color: var(--fg3);
  margin-top: 28px;
}
.nth-landing .pps-foot a {
  color: var(--green-deep);
  font-weight: var(--fw-med);
}
.nth-landing .pps-foot a:hover {
  text-decoration: underline;
}

@media (max-width: 560px) {
  .nth-landing .pps-page {
    padding: 104px 0 72px;
  }
  /* /login (compact) su mobile: niente navbar → clearance ridotta ma con
     respiro netto sopra il back-link (ND-127). */
  .nth-landing .pps-page--compact {
    padding-top: 64px;
  }
  .nth-landing .pps-body {
    margin-top: 32px;
  }
  .nth-landing .pps-card {
    padding: 22px 18px 26px;
    border-radius: var(--r-lg);
  }
  .nth-landing .pps-card.pps-card--tight {
    padding-top: 20px;
    padding-bottom: 20px;
  }
}

/* Dark: superficie scura, niente bordo (solo shadow profonda). */
[data-theme="dark"] .nth-landing .pps-card {
  background: #15180f;
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.5);
}

