:root{
  --cream:#f3ece0;
  --paper:#fbf8f2;
  --ink:#2a241d;
  --muted:#6d6254;
  --bronze:#8a6a43;
  --bronze-d:#654a29;
  --line:#dccfba;
  --dark:#2a231c;
  --nav-h:60px;
  --serif:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h)}
body{font-family:var(--sans);font-weight:300;color:var(--ink);background:var(--cream);line-height:1.65;-webkit-font-smoothing:antialiased}
img,svg{display:block}
a{color:inherit}

/* ---------- nav ---------- */
.nav{position:fixed;inset:0 0 auto 0;height:var(--nav-h);z-index:50;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,3vw,44px);
  background:rgba(243,236,224,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(138,106,67,.18)}
.brand{font-family:var(--serif);font-size:1.3rem;font-weight:500;letter-spacing:.04em;text-decoration:none}
.brand span{color:var(--bronze)}
.nav nav{display:flex;gap:clamp(16px,2.6vw,38px)}
.nav nav a{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--muted);transition:color .2s;position:relative;padding:4px 0}
.nav nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--bronze);transition:right .3s}
.nav nav a:hover{color:var(--ink)}
.nav nav a:hover::after{right:0}

/* ---------- tipografia comune ---------- */
.eyebrow{font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--bronze);font-weight:500}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1}
.rule{display:block;width:64px;height:1px;background:var(--bronze);margin:22px 0}
.btn{display:inline-block;padding:13px 28px;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;border:1px solid var(--bronze);transition:.25s}
.btn--solid{background:var(--bronze);color:#fff}
.btn--solid:hover{background:var(--bronze-d);border-color:var(--bronze-d)}
.btn--line{color:var(--bronze-d)}
.btn--line:hover{background:var(--bronze);color:#fff}

/* ---------- 1 · hero ---------- */
.hero{
  --h:calc(100svh - var(--nav-h));
  margin-top:var(--nav-h);
  height:var(--h);min-height:600px;
  display:grid;
  grid-template-columns:min(calc(var(--h)*.5625),34vw) minmax(0,1fr) min(24vw,calc(var(--h)*.5));
  background:var(--cream);overflow:hidden;
}
.hero__themis,.hero__books{position:relative;min-height:0;overflow:hidden}
.hero__themis svg{width:100%;height:100%}
.hero__books img{width:100%;height:100%;object-fit:cover;object-position:30% 50%}
.hero__center{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:0 clamp(24px,4.5vw,84px);min-width:0}
.hero__center h1{font-size:clamp(1.55rem,2.5vw,2.6rem);margin-top:16px;line-height:1.25;letter-spacing:.005em}
.hero__center h1 em{display:block;margin-top:.35em;font-style:normal;font-size:1.3em;color:var(--bronze-d)}
.hero__center .lead{max-width:34em;font-size:1.02rem;color:var(--muted)}
.cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}

/* ---------- 2 · servizi ---------- */
.wrap{width:min(1180px,100% - 2*clamp(20px,5vw,56px));margin:0 auto}
.services{background:var(--paper);padding:clamp(70px,10vw,130px) 0;min-height:100svh;display:flex;align-items:center}
.section-head{text-align:center;display:flex;flex-direction:column;align-items:center;margin-bottom:clamp(40px,6vw,72px)}
.section-head h2{font-size:clamp(2.2rem,4vw,3.4rem);margin-top:12px}
.section-head .sub{max-width:38em;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px)}
.card{background:#fff;border:1px solid var(--line);padding:clamp(26px,3vw,40px);transition:transform .35s,box-shadow .35s,border-color .35s}
.card:hover{transform:translateY(-6px);box-shadow:0 18px 40px -22px rgba(60,40,15,.35);border-color:var(--bronze)}
.icon{width:62px;height:62px;border:1px solid var(--bronze);border-radius:50%;display:grid;place-items:center;color:var(--bronze);margin-bottom:22px;transition:.35s}
.icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.card:hover .icon{background:var(--bronze);color:#fff}
.card{display:flex;align-items:center;gap:20px;padding:clamp(18px,2vw,26px) clamp(20px,2.4vw,30px)}
.card .icon{margin:0;flex:none;width:54px;height:54px}
.card h3{font-size:1.2rem;line-height:1.25;font-weight:600}
.card p{color:var(--muted);font-size:.95rem}

/* ---------- 3 · contatti ---------- */
.contact{background:var(--dark);color:#e9dfcf;padding:clamp(70px,9vw,110px) 0 28px;min-height:100svh;display:flex;align-items:center}
.contact .wrap{width:min(1180px,100% - 2*clamp(20px,5vw,56px))}
.section-head--light h2{color:#f6eedf}
.section-head--light .eyebrow{color:#c9a778}
.section-head--light .rule{background:#c9a778}
.contact__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,36px)}
.block{border:1px solid rgba(201,167,120,.3);padding:clamp(26px,3vw,40px)}
.block h3{font-size:1.7rem;color:#f6eedf;margin-bottom:18px}
.icon--sm{border-color:#c9a778;color:#c9a778}
.hours{list-style:none}
.hours li{display:flex;align-items:baseline;gap:10px;padding:5px 0}
.hours i{flex:1;border-bottom:1px dotted rgba(201,167,120,.5);transform:translateY(-4px)}
.hours b{font-weight:400;color:#f6eedf}
.note{margin-top:14px;font-size:.8rem;color:#a89a84}
address{font-style:normal;font-size:1.05rem;line-height:1.8}
.maplink{display:inline-block;margin-top:18px;color:#c9a778;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid transparent;transition:.2s}
.maplink:hover{border-color:#c9a778}
.contacts{list-style:none;display:grid;gap:14px}
.contacts li{display:flex;align-items:center;gap:12px;font-size:1.02rem}
.contacts svg{width:20px;height:20px;flex:none;fill:none;stroke:#c9a778;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.contacts a{text-decoration:none;border-bottom:1px solid rgba(201,167,120,.35)}
.contacts a:hover{border-color:#c9a778}
.contacts small{color:#a89a84}
.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:clamp(44px,6vw,80px);padding-top:22px;border-top:1px solid rgba(201,167,120,.22);font-size:.8rem;color:#a89a84}
.foot a{text-decoration:none;color:#c9a778}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .grid,.contact__grid{grid-template-columns:repeat(2,1fr)}
  .contact__grid .block:last-child{grid-column:1/-1}
}
@media (max-width:820px){
  .hero{height:auto;min-height:0;grid-template-columns:1fr;grid-template-rows:auto auto auto}
  .hero__themis{height:72svh;order:1}
  .hero__center{order:2;padding:44px 24px 52px;align-items:center;text-align:center}
  .hero__center .rule{margin-left:auto;margin-right:auto}
  .cta{justify-content:center}
  .hero__books{order:3;height:34svh}
  .services,.contact{min-height:0}
}
@media (max-width:620px){
  .grid,.contact__grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.note--strong{color:#f6eedf;font-size:.95rem;margin-top:16px}
.qr{display:flex;align-items:center;gap:16px;margin-top:26px}
.qr img{width:104px;height:104px;border:6px solid #fff;background:#fff;flex:none}
.qr figcaption{font-size:.82rem;color:#a89a84;line-height:1.5}

.nav nav a.lang{border:1px solid var(--bronze);padding:4px 10px;color:var(--bronze-d)}
.nav nav a.lang::after{display:none}
.nav nav a.lang:hover{background:var(--bronze);color:#fff}
.lead--addr{display:flex;align-items:center;gap:12px;color:var(--ink)}
.lead--addr svg{width:22px;height:22px;flex:none;fill:none;stroke:var(--bronze);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:620px){.nav nav a:first-child{display:inline}.nav{padding:0 14px}.nav nav{gap:12px}.brand{font-size:1.05rem}}
