@font-face{font-family:"Marcellus";src:url(marcellus.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Marcellus";src:url(marcellus-ext.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Work Sans";src:url(worksans.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Work Sans";src:url(worksans-ext.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --calce:#FAFAF7;      /* whitewash */
  --pietra:#ECE7DB;     /* Apulian limestone */
  --pietra-2:#D9D1BF;
  --inchiostro:#1C2B2D; /* ink */
  --ulivo:#5E6B57;      /* olive leaf */
  --adriatico:#1E5866;  /* deep Adriatic */
  --adriatico-2:#16444F;
  --on-accent:#FAFAF7;
  --serif:"Marcellus",Georgia,"Times New Roman",serif;
  --sans:"Work Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --measure:38rem;
  --wide:72rem;
  --gutter:clamp(1rem,4vw,2.5rem);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --calce:#132022;--pietra:#1C2D30;--pietra-2:#2D4246;--inchiostro:#E9E6DD;--ulivo:#A9B7A2;--adriatico:#8CC3CF;--adriatico-2:#B3D9E1;--on-accent:#132022;
  }
}
:root[data-theme="dark"]{--calce:#132022;--pietra:#1C2D30;--pietra-2:#2D4246;--inchiostro:#E9E6DD;--ulivo:#A9B7A2;--adriatico:#8CC3CF;--adriatico-2:#B3D9E1;--on-accent:#132022}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--calce);color:var(--inchiostro);font-family:var(--sans);font-size:1.0625rem;line-height:1.65;font-weight:380;overflow-x:hidden}
img{max-width:100%;height:auto}
a{color:var(--adriatico);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--adriatico-2)}
:focus-visible{outline:2px solid var(--adriatico);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-999px;top:0;background:var(--adriatico);color:var(--on-accent);padding:.5rem 1rem;z-index:10}
.skip:focus{left:var(--gutter)}

h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.15;letter-spacing:.005em;margin:0}
h1{font-size:clamp(2.4rem,6.2vw,4.6rem);letter-spacing:-.005em}
h2{font-size:clamp(1.7rem,3.4vw,2.4rem)}
h3{font-size:1.3rem}
p{margin:0 0 1.1em}
strong{font-weight:560}

.wrap{max-width:var(--wide);margin:0 auto;padding:0 var(--gutter)}
.prose{max-width:var(--measure)}

/* header */
.site-header{border-bottom:1px solid var(--pietra-2)}
.site-header .wrap{display:flex;align-items:center;gap:1.5rem;min-height:4.5rem;flex-wrap:wrap;padding-top:.6rem;padding-bottom:.6rem}
.brand{text-decoration:none;color:var(--inchiostro);display:flex;flex-direction:column;line-height:1.1;margin-right:auto}
.brand b{font-family:var(--serif);font-weight:400;font-size:1.45rem}
.brand span{font-size:.82rem;color:var(--ulivo);letter-spacing:.02em}
.nav{display:flex;gap:1.25rem;flex-wrap:wrap;font-size:.95rem}
.nav a{color:var(--inchiostro);text-decoration:none;padding:.2rem 0;border-bottom:1px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--adriatico)}
.lang{font-size:.9rem}
@media (max-width:760px){.nav{order:3;width:100%;gap:1rem;font-size:.92rem}.btn.header-cta{display:none}}

.btn{display:inline-block;font-family:var(--sans);font-weight:520;font-size:1rem;text-decoration:none;padding:.8rem 1.35rem;border-radius:999px;border:1.5px solid var(--adriatico);background:var(--adriatico);color:var(--on-accent);transition:background .15s}
.btn:hover{background:var(--adriatico-2);border-color:var(--adriatico-2);color:var(--on-accent)}
.btn.ghost{background:transparent;color:var(--adriatico)}
.btn.ghost:hover{background:var(--adriatico);color:var(--on-accent)}
.btn.small{padding:.5rem 1rem;font-size:.9rem}
.actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.75rem}

/* hero */
.hero .wrap{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:end;padding-top:clamp(2.5rem,7vw,5.5rem);padding-bottom:clamp(2.5rem,6vw,4.5rem)}
.hero .lead{font-size:clamp(1.15rem,2vw,1.35rem);max-width:30rem;margin-top:1.25rem;line-height:1.5}
.arch{background:var(--pietra);border-radius:999px 999px 0 0;aspect-ratio:3/4;max-height:30rem;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;padding:3.5rem 1.5rem 2.5rem;text-align:center;position:relative}
.arch::after{content:"";position:absolute;inset:.9rem .9rem 0 .9rem;border:1px solid var(--pietra-2);border-bottom:0;border-radius:999px 999px 0 0;pointer-events:none}
.arch q{font-family:var(--serif);font-size:clamp(1.35rem,2.6vw,1.9rem);quotes:none;line-height:1.2}

.arch small{display:block;margin-top:1rem;font-size:.85rem;color:var(--ulivo);max-width:14rem}
@media (prefers-reduced-motion:no-preference){
  .arch q{opacity:0;animation:rise .8s ease forwards}
  .arch q:nth-child(1){animation-delay:.2s}.arch q:nth-child(2){animation-delay:.75s}.arch q:nth-child(3){animation-delay:1.3s}.arch q:nth-child(4){animation-delay:1.85s}
  @keyframes rise{from{opacity:0;transform:translateY(.4rem)}to{opacity:1;transform:none}}
}
@media (max-width:760px){.hero .wrap{grid-template-columns:1fr}.arch{aspect-ratio:auto;max-width:22rem;padding-top:4rem}}

/* sections */
.section{padding:clamp(2.75rem,7vw,5rem) 0;border-top:1px solid var(--pietra-2)}
.section h2{margin-bottom:1.5rem}
.intro p{font-size:clamp(1.15rem,2vw,1.3rem);line-height:1.6;max-width:40rem}
.pairs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 3rem;margin:0;padding:0;list-style:none}
.pairs li{border-top:1.5px solid var(--inchiostro);padding-top:.9rem}
.pairs h3{margin-bottom:.4rem}
.pairs p{margin:0;color:var(--inchiostro)}
@media (max-width:640px){.pairs{grid-template-columns:1fr}}
.steps{list-style:none;counter-reset:s;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}
.steps li{counter-increment:s}
.steps li::before{content:counter(s);display:block;font-family:var(--serif);font-size:2.6rem;line-height:1;color:var(--adriatico);margin-bottom:.6rem}
.steps strong{display:block;font-family:var(--serif);font-weight:400;font-size:1.3rem;margin-bottom:.25rem}
@media (max-width:760px){.steps{grid-template-columns:1fr;gap:1.5rem}}
.band{background:var(--pietra)}
.cta{text-align:left}
.cta .wrap{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end}
.cta p{margin:.75rem 0 0;max-width:34rem}
@media (max-width:760px){.cta .wrap{grid-template-columns:1fr}}

/* inner pages */
.page-head{padding:clamp(2.5rem,6vw,4.5rem) 0 1.5rem}
.page-head h1{font-size:clamp(2.1rem,5vw,3.6rem);max-width:52rem}
.page-head .lead{font-size:1.2rem;max-width:var(--measure);margin-top:1rem}
.meta{color:var(--ulivo);font-size:.92rem;margin-top:1rem}
.article{padding-bottom:3rem}
.article h2{margin:2.5rem 0 .9rem;font-size:clamp(1.5rem,3vw,2rem)}
.article ul,.article ol{padding-left:1.25rem;margin:0 0 1.2em}
.article li{margin-bottom:.45em}
.short{background:var(--pietra);padding:1.25rem 1.4rem;border-left:3px solid var(--adriatico);margin:1rem 0 1.5rem}
.short p{margin:0}
.table-wrap{overflow-x:auto;margin:0 0 1.2em}
table{border-collapse:collapse;width:100%;min-width:34rem;font-size:.97rem}
th,td{text-align:left;vertical-align:top;padding:.7rem .8rem;border-bottom:1px solid var(--pietra-2)}
th{font-weight:560;border-bottom:1.5px solid var(--inchiostro)}
.sources{font-size:.92rem;color:var(--ulivo)}

/* faq */
.faq-group{margin:2.5rem 0 0}
.faq-group h2{font-size:clamp(1.4rem,2.8vw,1.8rem);margin-bottom:.5rem}
details{border-bottom:1px solid var(--pietra-2)}
summary{cursor:pointer;list-style:none;padding:1rem 2rem 1rem 0;position:relative;font-weight:520;font-size:1.06rem}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:.25rem;top:.85rem;font-family:var(--serif);font-size:1.4rem;color:var(--adriatico);line-height:1}
details[open] summary::after{content:"–"}
details .answer{padding:0 0 1.1rem}
details .answer p{margin:0}

/* about */
.howlist{list-style:none;padding:0;margin:0}
.howlist li{padding:.9rem 0;border-bottom:1px solid var(--pietra-2)}
.howlist strong{font-family:var(--serif);font-weight:400;font-size:1.2rem;margin-right:.35rem}

/* footer */
.site-footer{border-top:1px solid var(--pietra-2);padding:2.5rem 0 3rem;font-size:.92rem;color:var(--ulivo)}
.site-footer .wrap{display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:space-between}
.site-footer p{margin:0}
.site-footer a{color:inherit}
.site-footer .who{color:var(--inchiostro)}
