/* ProGEM — sito statico. Blu Estoril #0F4C81 */

@font-face{font-family:"Poppins";font-weight:300;font-style:normal;font-display:swap;src:url(../fonts/poppins-300.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/poppins-500.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/poppins-600.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-weight:200 900;font-style:normal;font-display:swap;src:url(../fonts/source-sans-3.woff2) format("woff2")}

:root{
  --blue:#0F4C81;
  --blue-d:#0A3860;
  --ink:#07182A;
  --paper:#F6F8FA;
  --mist:#E9EFF5;
  --line:#CDD7E2;
  --text:#13283B;
  --muted:#51657A;
  --sky:#9CC3EA;
  --f-head:"Poppins","Segoe UI",system-ui,-apple-system,sans-serif;
  --f-body:"Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif;
  --gut:clamp(20px,4.2vw,64px);
  --max:1280px;
  --head-h:84px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font:400 1.125rem/1.62 var(--f-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{display:block;max-width:100%}
h1,h2,h3{margin:0;font-family:var(--f-head);font-weight:500;letter-spacing:-.02em;line-height:1.12;color:inherit}
p{margin:0 0 1.1em}
a{color:var(--blue)}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
.on-paper :focus-visible,.section :focus-visible{outline-color:var(--blue)}
.skip{position:absolute;left:-9999px;top:8px;background:#fff;color:#000;padding:12px 18px;z-index:100}
.skip:focus{left:8px}

.wrap{width:min(100% - 2*var(--gut),var(--max));margin-inline:auto}
.section{padding-block:clamp(72px,10vw,150px)}
.section--mist{background:var(--mist)}
.section--tight{padding-block:clamp(56px,7vw,96px)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 30px;border:1px solid var(--blue);border-radius:2px;background:var(--blue);color:#fff;font:500 .95rem/1 var(--f-head);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.btn:hover{background:var(--blue-d);border-color:var(--blue-d)}
.btn--light{background:#fff;color:var(--blue);border-color:#fff}
.btn--light:hover{background:var(--mist);border-color:var(--mist);color:var(--blue-d)}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn--ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.btn[disabled]{opacity:.6;cursor:wait}
.link{font:500 .95rem var(--f-head);color:var(--blue);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px}
.link:hover{color:var(--blue-d)}

/* ---------- header ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:60;height:var(--head-h);color:#fff;transition:background-color .3s,box-shadow .3s,color .3s}
.site-header .bar{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:block;line-height:0}
.brand img{height:34px;width:auto}
.brand .on-light{display:none}
.site-header.is-solid{background:rgba(246,248,250,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line);color:var(--blue)}
.site-header.is-solid .brand .on-dark{display:none}
.site-header.is-solid .brand .on-light{display:block}
.site-header.is-open{background:transparent;box-shadow:0 0 0 transparent;-webkit-backdrop-filter:none;backdrop-filter:none;color:#fff}
.site-header.is-open .brand .on-dark{display:block}
.site-header.is-open .brand .on-light{display:none}

.nav ul{display:flex;gap:clamp(24px,3.2vw,48px)}
.nav a{position:relative;display:block;padding:10px 0;color:inherit;font:500 .95rem/1 var(--f-head);text-decoration:none;opacity:.88}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s}
.nav a:hover{opacity:1}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.nav a[aria-current="page"]{opacity:1}

.menu-btn{display:none;width:48px;height:48px;margin-right:-10px;background:none;border:0;color:inherit;cursor:pointer}
.menu-btn span{display:block;width:26px;height:2px;margin:6px auto;background:currentColor;transition:transform .25s,opacity .2s}
.is-open .menu-btn span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.is-open .menu-btn span:nth-child(2){opacity:0}
.is-open .menu-btn span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

.menu{position:fixed;inset:0;z-index:55;background:var(--blue);color:#fff;display:none;flex-direction:column;justify-content:center;padding:calc(var(--head-h) + 24px) var(--gut) 48px}
.menu.is-open{display:flex}
.menu a{display:block;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.2);color:#fff;font:300 clamp(1.9rem,8vw,2.6rem)/1.1 var(--f-head);letter-spacing:-.02em;text-decoration:none}
.menu a[aria-current="page"]{color:var(--sky)}

/* ---------- hero (home) ---------- */
.hero{position:relative;isolation:isolate;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;background:var(--ink);color:#fff;overflow:hidden}
.hero-media{position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 90% at 76% 28%,#145591 0%,#0B3156 46%,#07182A 100%)}
.hero-media>*{position:absolute}
.hero-grid{inset:0;width:100%;height:100%;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:96px 96px;-webkit-mask-image:radial-gradient(80% 75% at 72% 38%,#000,transparent);mask-image:radial-gradient(80% 75% at 72% 38%,#000,transparent)}
.hero-art{right:-2%;top:calc(var(--head-h) + 6vh);width:min(74vw,1080px);height:auto;opacity:.95}
.hero-poster,.hero-video{inset:0;width:100%;height:100%;object-fit:cover}
.hero-video{opacity:0;transition:opacity 1.2s ease}
.hero-video.is-playing{opacity:1}
.hero-shade{inset:0;width:100%;height:100%;background:linear-gradient(180deg,rgba(7,24,42,.5) 0%,rgba(7,24,42,.12) 34%,rgba(7,24,42,.8) 100%),linear-gradient(90deg,rgba(7,24,42,.5),transparent 62%)}
.hero-inner{padding-top:calc(var(--head-h) + 48px);padding-bottom:clamp(32px,5vw,64px)}
.hero h1{font-weight:300;font-size:clamp(3rem,9.6vw,8.4rem);line-height:1.12;letter-spacing:-.04em}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.3em;margin-bottom:-.3em}
.hero h1 .ln>span{display:block}
.hero-foot{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,5fr) auto;gap:clamp(20px,4vw,64px);align-items:end;margin-top:clamp(32px,5vw,64px);padding-top:28px;border-top:1px solid rgba(255,255,255,.3)}
.hero-tag{font:500 clamp(1.15rem,1.7vw,1.5rem)/1.3 var(--f-head);letter-spacing:-.01em;margin:0}
.hero-sub{margin:0;color:rgba(255,255,255,.8);font-size:1.075rem;max-width:44ch}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap}

/* hero: una sola sequenza orchestrata all'apertura */
@media (prefers-reduced-motion:no-preference){
  .hero h1 .ln>span{transform:translateY(105%);animation:rise 1.15s cubic-bezier(.2,.7,.1,1) forwards}
  .hero h1 .ln:nth-child(1)>span{animation-delay:.1s}
  .hero h1 .ln:nth-child(2)>span{animation-delay:.24s}
  .hero h1 .ln:nth-child(3)>span{animation-delay:.38s}
  .hero-foot{opacity:0;animation:fade .9s ease .9s forwards}
  .hero-art .d{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.5s cubic-bezier(.4,.1,.2,1) forwards;animation-delay:var(--d,0s)}
  .hero-art .t{opacity:0;animation:fade .8s ease forwards;animation-delay:var(--d,0s)}
  @keyframes rise{to{transform:none}}
  @keyframes fade{to{opacity:1}}
  @keyframes draw{to{stroke-dashoffset:0}}
}
.hero-art .d{fill:none;stroke:rgba(255,255,255,.7);stroke-width:1.2;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.hero-art .d.thin{stroke:rgba(156,195,234,.55);stroke-width:.9}
.hero-art .d.fill{fill:rgba(255,255,255,.05)}
.hero-art .ax{fill:none;stroke:rgba(156,195,234,.4);stroke-width:.8;stroke-dasharray:6 7;vector-effect:non-scaling-stroke}
.hero-art text{fill:rgba(156,195,234,.85);font:500 12px var(--f-head)}
.hero-art .t{opacity:1}
@media (prefers-reduced-motion:no-preference){.hero-art .t{opacity:0}}

/* ---------- inner page hero ---------- */
.page-hero{position:relative;overflow:hidden;isolation:isolate;background:var(--blue);color:#fff;padding:calc(var(--head-h) + clamp(24px,3.5vw,48px)) 0 clamp(28px,3.5vw,48px)}
.page-hero::after{content:"";position:absolute;z-index:-1;right:-6%;bottom:-24%;width:min(62vw,760px);aspect-ratio:367/288;background:url(../logo/mark-ghost-light.svg) center/contain no-repeat}
.page-hero h1{font-weight:300;font-size:clamp(2.2rem,5.2vw,4.2rem);line-height:1.05;letter-spacing:-.035em}
.page-hero .lead{margin:clamp(12px,1.8vw,20px) 0 0;max-width:40ch;font:300 clamp(1.05rem,1.8vw,1.4rem)/1.35 var(--f-head);color:rgba(255,255,255,.88)}

/* ---------- image slots ---------- */
.slot{position:relative;margin:0;overflow:hidden;background:var(--mist);aspect-ratio:var(--ar,4/3)}
.slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.slot-hint{display:none}
.slot.is-empty img{display:none}
.slot.is-empty{background:linear-gradient(135deg,rgba(15,76,129,.07) 25%,transparent 25% 50%,rgba(15,76,129,.07) 50% 75%,transparent 75%) 0 0/26px 26px,var(--mist);outline:1px dashed rgba(15,76,129,.45);outline-offset:-14px}
.slot.is-empty::before{content:"";position:absolute;inset:0;background:url(../logo/mark-ghost.svg) center/34% no-repeat}
.slot.is-empty .slot-hint{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;padding:30px;color:var(--blue);font:500 .78rem/1.45 var(--f-head)}
.slot-hint strong{font-weight:600;font-size:.85rem}
.slot-hint span{opacity:.8}
.slot--bg{position:absolute;inset:0;z-index:-2;aspect-ratio:auto;background:var(--blue)}
.slot--bg.is-empty{outline:0;background:var(--blue)}
.slot--bg.is-empty::before{background-size:min(52%,640px);background-position:right -4% bottom -30%;opacity:.1;filter:invert(1) brightness(2)}
.slot--bg.is-empty .slot-hint{display:none}

/* ---------- home: intro ---------- */
.intro{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(32px,7vw,120px);align-items:start}
.kicker{margin:0 0 clamp(18px,2.4vw,28px);font:500 .95rem var(--f-head);color:var(--blue)}
.h-xl{font-weight:300;font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.06;letter-spacing:-.03em}
.intro p.body{margin-top:clamp(24px,3vw,40px);max-width:58ch;color:var(--muted);font-size:1.15rem}
.intro .btn{margin-top:12px}

.rail{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:clamp(56px,8vw,112px);counter-reset:r}
.rail li{position:relative;padding-top:34px;padding-right:16px;font:500 1rem/1.3 var(--f-head);color:var(--text)}
.rail li::before{content:"";position:absolute;left:0;top:-7px;width:34px;height:27px;background:url(../logo/symbol-light.svg) left center/contain no-repeat;z-index:1}
.rail li:last-child::before{background-image:url(../logo/symbol-blue.svg)}
.rail li::after{content:"";position:absolute;left:42px;right:0;top:6px;height:1px;background:var(--line)}
.rail li:last-child::after{display:none}

/* ---------- home: servizi ---------- */
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:clamp(32px,5vw,64px)}
.h-lg{font-weight:300;font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.03em}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,32px)}
.card{display:block;color:inherit;text-decoration:none}
.card .slot{--ar:16/9;background:#fff}
.card .slot img{object-fit:contain}
.card h3{margin-top:22px;font-size:1.2rem;line-height:1.25}
.card p{margin:.6em 0 0;color:var(--muted);font-size:1.02rem;line-height:1.5}
.card:hover h3{color:var(--blue)}

/* ---------- cta band ---------- */
.band{position:relative;isolation:isolate;overflow:hidden;background:var(--blue);color:#fff;padding-block:clamp(88px,13vw,200px)}
.band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,56,96,.92) 0%,rgba(15,76,129,.78) 45%,rgba(15,76,129,.5) 100%)}
.band h2{font-weight:300;font-size:clamp(2.6rem,7.5vw,6.4rem);line-height:1;letter-spacing:-.035em;max-width:9em}
.band p{margin:clamp(20px,3vw,32px) 0 clamp(28px,4vw,44px);font:300 clamp(1.2rem,2vw,1.6rem) var(--f-head);color:rgba(255,255,255,.9)}

/* ---------- servizi ---------- */
.svc-layout{display:grid;grid-template-columns:minmax(200px,250px) minmax(0,1fr);gap:clamp(32px,7vw,112px);align-items:start}
.svc-toc{position:sticky;top:calc(var(--head-h) + 32px)}
.svc-toc ol{border-left:1px solid var(--line)}
.svc-toc a{display:block;margin-left:-1px;padding:10px 0 10px 20px;border-left:2px solid transparent;color:var(--muted);font:500 .95rem/1.35 var(--f-head);text-decoration:none}
.svc-toc a:hover{color:var(--blue)}
.svc-toc a.is-active{color:var(--blue);border-left-color:var(--blue)}
.svc{padding-block:clamp(40px,5.5vw,72px);border-top:1px solid var(--line);scroll-margin-top:calc(var(--head-h) + 4px)}
.svc:first-child{border-top:0;padding-top:0}
.svc .slot{--ar:3/2;max-width:600px}
.svc-body{display:grid;grid-template-columns:minmax(0,1fr);max-width:600px;gap:14px;margin-top:clamp(22px,3vw,30px)}
.svc h2{font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.18}
.svc p{margin:0;max-width:60ch;color:var(--muted)}

/* ---------- filosofia ---------- */
.split{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(32px,7vw,120px);align-items:center}
.split .slot{--ar:4/5}
.split h2{margin-bottom:clamp(22px,3vw,36px)}
.split p{max-width:52ch;color:var(--muted)}
.mission{position:relative;isolation:isolate;overflow:hidden;background:var(--blue);color:#fff;padding-block:clamp(32px,3.4vw,52px)}
.mission::after{content:"";position:absolute;z-index:-1;right:-6%;bottom:-40%;width:min(44vw,520px);aspect-ratio:367/288;background:url(../logo/mark-ghost-light.svg) center/contain no-repeat}
.mission h2{font-size:1rem;font-weight:500;margin-bottom:clamp(12px,1.6vw,20px);color:var(--sky)}
.mission blockquote{margin:0;max-width:30ch;font:300 clamp(1.5rem,2.8vw,2.3rem)/1.15 var(--f-head);letter-spacing:-.03em}
.mission p{margin:clamp(14px,1.8vw,22px) 0 0;max-width:60ch;color:rgba(255,255,255,.82);font-size:1rem}
.values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3.4vw,56px)}
.values .slot{--ar:16/9}
.values h3{margin-top:24px;font-size:1.45rem}
.values p{margin:.7em 0 0;color:var(--muted);max-width:36ch}

/* ---------- faq ---------- */
.faq-layout{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,8vw,128px);align-items:start}
.faq-side{position:sticky;top:calc(var(--head-h) + 32px)}
.faq-side p{max-width:30ch;color:var(--muted);margin-bottom:28px}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:28px;padding:26px 0;font:500 clamp(1.1rem,1.6vw,1.3rem)/1.3 var(--f-head);letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:16px;height:16px;margin-top:6px;background:linear-gradient(var(--blue),var(--blue)) center/100% 1.5px no-repeat,linear-gradient(var(--blue),var(--blue)) center/1.5px 100% no-repeat;transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:hover{color:var(--blue)}
.faq details p{max-width:60ch;margin:-6px 0 28px;color:var(--muted)}

/* ---------- contatti ---------- */
.contact{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,8vw,128px);align-items:start}
.contact-copy p{max-width:40ch;color:var(--muted)}
.statement{margin:0 0 clamp(24px,3vw,36px);font:300 clamp(1.7rem,3.2vw,2.6rem)/1.18 var(--f-head);letter-spacing:-.025em;color:var(--text)}
.mail{margin-top:clamp(28px,4vw,48px);padding-top:20px;border-top:1px solid var(--line);font:500 1.05rem var(--f-head);color:var(--text)}
.form{background:#fff;border:1px solid var(--line);padding:clamp(24px,4vw,52px)}
.field{margin-bottom:22px}
.field label{display:block;margin-bottom:8px;font:600 .95rem var(--f-body);color:var(--text)}
.field input,.field textarea{width:100%;padding:14px 16px;font:inherit;color:var(--text);background:var(--paper);border:1px solid #9FB0C0;border-radius:2px;transition:border-color .2s,background-color .2s}
.field textarea{min-height:170px;resize:vertical}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px rgba(15,76,129,.18)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-note{margin:18px 0 0;font-size:.95rem;color:var(--muted)}
#form-status{min-height:1.6em;margin:14px 0 0;font-weight:600}
#form-status.ok{color:var(--blue)}
#form-status.error{color:#A32A2A}

/* ---------- footer ---------- */
.site-footer{position:relative;isolation:isolate;overflow:hidden;background:var(--ink);color:rgba(255,255,255,.72);padding:clamp(64px,8vw,112px) 0 36px}
.site-footer::after{content:"";position:absolute;z-index:-1;right:-6%;bottom:-30%;width:min(50vw,620px);aspect-ratio:367/288;background:url(../logo/mark-ghost-light.svg) center/contain no-repeat;opacity:.7}
.foot-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,3fr) minmax(0,3fr);gap:clamp(32px,5vw,80px)}
.site-footer img{height:38px;width:auto}
.site-footer p{margin:22px 0 0;max-width:34ch}
.site-footer h2{margin:0 0 16px;font:500 .95rem var(--f-head);color:#fff}
.site-footer li+li{margin-top:8px}
.site-footer a{color:rgba(255,255,255,.78);text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.copy{margin-top:clamp(48px,7vw,88px);padding-top:22px;border-top:1px solid rgba(255,255,255,.16);font-size:.95rem}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-foot{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .hero-cta{grid-column:1/-1}
}
@media (max-width:900px){
  .nav{display:none}
  .menu-btn{display:block}
  .intro,.split,.faq-layout,.contact{grid-template-columns:minmax(0,1fr)}
  .intro .slot{max-width:520px}
  .svc-layout{grid-template-columns:minmax(0,1fr)}
  .svc-toc{display:none}
  .faq-side{position:static}
  .values{grid-template-columns:minmax(0,1fr)}
  .values article{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:24px;align-items:center}
  .values h3{margin-top:0}
  .rail{grid-template-columns:minmax(0,1fr);gap:0}
  .rail li{padding:0 0 28px 50px}
  .rail li::before{top:-4px;left:0}
  .rail li::after{left:17px;right:auto;top:26px;bottom:0;width:1px;height:auto}
  .hero-art{width:135vw;right:2vw;top:calc(var(--head-h) + 6vh);opacity:.6}
}
@media (max-width:900px){
  .svc .slot{aspect-ratio:16/10}
  .card .slot{aspect-ratio:2/1}
}
@media (max-width:640px){
  .card{display:grid;grid-template-columns:96px minmax(0,1fr);column-gap:18px;align-items:start}
  .card .slot{grid-row:1/span 2;aspect-ratio:1/1}
  .card h3{margin-top:0;font-size:1.1rem}
  .card p{margin-top:.4em;font-size:.98rem}

  .hero-foot{grid-template-columns:minmax(0,1fr)}
  .cards{grid-template-columns:minmax(0,1fr)}
  .svc-body{grid-template-columns:minmax(0,1fr)}
  .foot-grid{grid-template-columns:minmax(0,1fr)}
  .values article{grid-template-columns:minmax(0,1fr)}
  .sec-head{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* pagina informativa privacy */
.legal{max-width:820px}
.legal h2{font-size:1.25rem;margin:2.2em 0 .6em;color:var(--blue)}
.legal p,.legal li{line-height:1.7}
.legal ul{padding-left:1.2em}
.legal a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.legal-date{color:var(--muted);font-size:.95rem}
.legal-table{width:100%;border-collapse:collapse;margin:1em 0;font-size:.98rem}
.legal-table th,.legal-table td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
.legal-table th{background:var(--mist)}
.site-footer .copy a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.legal ul{list-style:disc}
.legal li::marker{color:var(--blue)}
.site-footer .copy{max-width:none}

/* scheda servizi, solo desktop: immagine e testo della stessa larghezza */
.svc-body p{max-width:none}
@media (min-width:901px){
  .svc .slot,.svc-body{max-width:520px}
}

.contact-lead{margin:0 0 clamp(18px,2.4vw,28px);max-width:40ch;color:var(--muted);font-size:1.1rem}

/* banda "Crafting Spaces" in home, solo desktop */
@media (min-width:901px){
  .band{padding-block:clamp(52px,6vw,96px)}
  .band h2{font-size:clamp(2.4rem,5vw,4.4rem)}
  .band p{margin:clamp(14px,1.8vw,22px) 0 clamp(20px,2.4vw,32px);font-size:clamp(1.1rem,1.5vw,1.35rem)}
}
