/* Adesia SRL — shared design system. Editorial / private-bank.
   No external requests: fonts are self-hosted (/fonts), texture is inline SVG. */

:root{
  --paper:#f3eee2;
  --paper-2:#ece4d4;
  --card:#fbf8f1;
  --ink:#1b2a3f;
  --ink-soft:#42546b;
  --muted:#6c7686;
  --line:#dcd2c0;
  --line-soft:#e6ddcd;
  --emerald:#143a30;
  --emerald-2:#0c2a22;
  --brass:#937736;
  --brass-bright:#c79c52;
  --terra:#b3653f;
  --font-display:'Fraunces','Hoefler Text',Georgia,'Times New Roman',serif;
  --font-sans:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --wrap:920px;
  --gutter:clamp(20px,5vw,40px);
}

*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
[id]{scroll-margin-top:88px}
body{
  font-family:var(--font-sans);
  background:var(--paper);
  color:var(--ink);
  line-height:1.65;
  font-size:17px;
  font-weight:400;
  letter-spacing:.002em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  display:flex; flex-direction:column; min-height:100vh;
  overflow-x:hidden;
}
/* paper grain */
body::after{
  content:""; position:fixed; inset:0; z-index:9; pointer-events:none; opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

h1,h2,h3{font-family:var(--font-display);font-optical-sizing:auto;font-weight:430;line-height:1.12;letter-spacing:-.01em}
em{font-style:italic}
a{color:inherit}

/* ---------- Masthead ---------- */
.masthead{
  position:sticky; top:0; z-index:20;
  backdrop-filter:saturate(140%) blur(10px);
  background:color-mix(in srgb, var(--paper) 84%, transparent);
  border-bottom:1px solid var(--line);
}
.masthead-inner{
  max-width:var(--wrap); margin:0 auto; padding:14px var(--gutter);
  display:flex; align-items:baseline; justify-content:space-between; gap:24px;
}
.brand{
  font-family:var(--font-display); font-weight:500; font-size:1.35rem; letter-spacing:.01em;
  color:var(--ink); text-decoration:none;
}
.brand .dot{color:var(--terra)}
.nav{display:flex; gap:clamp(14px,3vw,30px); align-items:baseline}
.nav a{
  font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft);
  text-decoration:none; position:relative; padding-bottom:3px;
}
.nav a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:var(--brass); transform:scaleX(0); transform-origin:left; transition:transform .35s ease;
}
.nav a:hover{color:var(--ink)} .nav a:hover::after{transform:scaleX(1)}

/* ---------- Layout ---------- */
.page{flex:1; width:100%; max-width:var(--wrap); margin:0 auto; padding:clamp(48px,9vh,96px) var(--gutter) 88px}
.section{padding-top:14px}
.rule{border:0; border-top:1px solid var(--line); margin:clamp(44px,7vw,68px) 0}

.kicker{
  font-size:.76rem; letter-spacing:.22em; text-transform:uppercase; color:var(--brass);
  display:flex; align-items:center; gap:12px; font-weight:600;
}
.kicker::before{content:""; width:26px; height:1px; background:var(--brass); display:inline-block}

.label{
  font-family:var(--font-sans); font-weight:600; font-size:.76rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted); margin-bottom:26px;
  display:flex; align-items:baseline; gap:12px;
}
.label .idx{font-family:var(--font-display); font-style:italic; color:var(--brass); font-size:1.05rem; font-weight:500; letter-spacing:0}

/* ---------- Hero ---------- */
.hero{padding:8px 0 4px}
.wordmark{
  font-family:var(--font-display); font-weight:420; font-optical-sizing:auto;
  font-size:clamp(3.4rem,12vw,6.4rem); line-height:.92; letter-spacing:-.02em; margin:20px 0 0;
}
.wordmark .dot{color:var(--terra)}
.display{
  font-size:clamp(1.7rem,4.4vw,2.7rem); font-weight:400; line-height:1.16; max-width:18ch;
  margin-top:26px; color:var(--ink);
}
.display em{color:var(--terra); font-style:italic}
.lead{font-size:clamp(1.08rem,2.2vw,1.26rem); color:var(--ink-soft); max-width:56ch; margin-top:24px; line-height:1.6}
.sub{color:var(--muted); max-width:58ch; margin-top:16px}
.title{font-family:var(--font-display); font-optical-sizing:auto; font-weight:430;
  font-size:clamp(2rem,5.6vw,3rem); line-height:1.08; letter-spacing:-.018em; margin-top:16px}
.title em{color:var(--terra); font-style:italic}
.updated{color:var(--muted); font-size:.9rem; margin-top:12px}
.prose p{margin-top:14px; color:var(--ink-soft); max-width:64ch}
.prose p:first-of-type{margin-top:0}
.prose strong{color:var(--ink); font-weight:600}

/* ---------- Cosa facciamo (numbered cols) ---------- */
.cols{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,40px)}
.item .num{
  font-family:var(--font-display); font-style:italic; font-weight:430; font-size:1.5rem; color:var(--brass);
  display:block; padding-bottom:14px; margin-bottom:14px; border-bottom:1px solid var(--line);
}
.item h3{font-size:1.18rem; font-weight:480; margin-bottom:9px}
.item p{font-size:.97rem; color:var(--ink-soft)}

/* ---------- Prodotti feature panel ---------- */
.product-panel{
  position:relative; display:grid; grid-template-columns:1fr auto; gap:clamp(24px,4vw,44px); align-items:center;
  background:radial-gradient(120% 140% at 0% 0%, #18483b 0%, var(--emerald) 42%, var(--emerald-2) 100%);
  color:#e9e3d4; border-radius:18px; padding:clamp(28px,4vw,42px); overflow:hidden;
  box-shadow:0 34px 70px -36px rgba(12,42,34,.7);
}
.product-panel::before{
  content:""; position:absolute; inset:11px; border:1px solid rgba(199,156,82,.3); border-radius:11px; pointer-events:none;
}
.product-panel .kicker{color:var(--brass-bright)}
.product-panel .kicker::before{background:var(--brass-bright)}
.product-panel h3{font-size:clamp(1.6rem,3.2vw,2.1rem); color:#fff; font-weight:430; margin-top:16px}
.product-panel p{color:#c4d0c5; max-width:42ch; margin-top:12px; font-size:1rem}
.product-shot{flex-shrink:0; line-height:0}
.product-shot img{
  width:clamp(120px,18vw,168px); height:auto; border-radius:22px; border:1px solid rgba(255,255,255,.14);
  box-shadow:0 26px 50px -20px rgba(0,0,0,.55); transform:rotate(2.2deg); transition:transform .5s ease;
}
.product-panel:hover .product-shot img{transform:rotate(0) translateY(-4px)}

.more{
  display:inline-flex; align-items:center; gap:.5em; margin-top:22px;
  font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600;
  color:var(--brass); text-decoration:none;
}
.more .arr{transition:transform .35s ease}
.more:hover .arr{transform:translateX(5px)}
.product-panel .more{color:var(--brass-bright)}

/* ---------- Data list (financial document) ---------- */
.data{margin-top:4px}
.data .row{
  display:flex; align-items:baseline; justify-content:space-between; gap:20px;
  padding:15px 2px; border-top:1px solid var(--line);
}
.data .row:first-child{border-top:0}
.data dt{font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); white-space:nowrap}
.data dd{font-size:1.02rem; text-align:right; color:var(--ink)}
.data dd a{color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line)}
.data dd a:hover{border-color:var(--terra)}

/* ---------- Contatti / link rows ---------- */
.contact p{font-size:1.04rem; margin-top:8px}
.contact p:first-child{margin-top:0}
.linkline{color:var(--ink); text-decoration:none; background-image:linear-gradient(var(--terra),var(--terra));
  background-size:0% 1px; background-repeat:no-repeat; background-position:0 1.15em; transition:background-size .35s ease}
.linkline:hover{background-size:100% 1px}
.links{display:flex; flex-wrap:wrap; gap:10px 28px; margin-top:4px}

/* ---------- Product page bits ---------- */
.badge{
  display:inline-flex; align-items:center; gap:9px; margin-top:24px;
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600; color:var(--brass);
  border:1px solid var(--line); border-radius:999px; padding:8px 16px; background:var(--card);
}
.badge::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--terra)}
.shots{display:flex; gap:18px; overflow-x:auto; margin-top:38px; padding:6px 2px 16px; scroll-snap-type:x mandatory}
.shots img{
  flex:0 0 auto; width:clamp(200px,42vw,236px); height:auto; border-radius:26px; scroll-snap-align:start;
  border:1px solid var(--line); background:#fff; box-shadow:0 24px 44px -26px rgba(27,42,63,.4);
}
.feat{list-style:none; max-width:60ch}
.feat li{position:relative; padding-left:26px; margin-top:13px; color:var(--ink-soft)}
.feat li:first-child{margin-top:0}
.feat li::before{content:""; position:absolute; left:2px; top:.62em; width:11px; height:1px; background:var(--brass)}
.feat li strong{color:var(--ink); font-weight:600}
.note{color:var(--muted); font-size:.92rem; margin-top:34px; max-width:64ch; font-style:italic}

/* ---------- Supporto / cards ---------- */
.panel{border:1px solid var(--line); border-radius:14px; background:var(--card); padding:24px 26px; margin-top:22px}
.panel p{margin-top:8px} .panel p:first-child{margin-top:0}
.faq{border-top:1px solid var(--line); padding-top:18px; margin-top:18px}
.faq:first-of-type{border-top:0; padding-top:0; margin-top:6px}
.faq h3{font-size:1.12rem; font-weight:480}
.faq p{margin-top:8px; color:var(--ink-soft)}

/* ---------- Footer ---------- */
.site-footer{position:relative; z-index:11; background:linear-gradient(180deg,var(--emerald),var(--emerald-2)); color:#cdd6cb}
.site-footer .inner{
  max-width:var(--wrap); margin:0 auto; padding:34px var(--gutter);
  display:flex; flex-wrap:wrap; gap:14px 28px; align-items:baseline; justify-content:space-between;
  font-size:.85rem; line-height:1.7;
}
.site-footer .fbrand{font-family:var(--font-display); font-size:1.2rem; color:#fff; font-weight:500}
.site-footer .fbrand .dot{color:var(--brass-bright)}
.site-footer a{color:#e7e1d2; text-decoration:none; border-bottom:1px solid rgba(199,156,82,.4)}
.site-footer a:hover{border-color:var(--brass-bright)}
.site-footer .fmeta{color:#9fb0a4}

/* ---------- Focus ---------- */
a:focus-visible, button:focus-visible{outline:2px solid var(--brass); outline-offset:3px; border-radius:2px}

/* ---------- Motion ---------- */
@keyframes rise{from{opacity:0; transform:translateY(14px)} to{opacity:1; transform:none}}
.reveal{opacity:0; animation:rise .8s cubic-bezier(.2,.7,.2,1) forwards}
.d1{animation-delay:.05s}.d2{animation-delay:.16s}.d3{animation-delay:.27s}
.d4{animation-delay:.38s}.d5{animation-delay:.5s}.d6{animation-delay:.62s}
@media (prefers-reduced-motion:reduce){
  .reveal{animation:none; opacity:1; transform:none}
  *{scroll-behavior:auto}
  .more .arr,.product-shot img,.nav a::after,.linkline{transition:none}
}

/* ---------- Responsive ---------- */
@media (max-width:760px){
  .cols{grid-template-columns:1fr; gap:30px}
  .product-panel{grid-template-columns:1fr}
  .product-shot{display:none}
}
@media (max-width:540px){
  body{font-size:16px}
  .nav{gap:16px}
  .nav a.hideable{display:none}
  .data .row{flex-direction:column; gap:3px} .data dd{text-align:left}
}
