:root {
  --forest:       #1c3329;
  --forest-mid:   #264a39;
  --forest-lt:    #2f5c47;
  --accent:       #b8966a;
  --accent-light: #d9c09a;
  --cream:        #f5f3ee;
  --text:         #1e2820;
  --muted:        #5a6b5e;
  --white:        #ffffff;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'DM Sans', sans-serif; color: var(--text); background: var(--cream); font-weight: 400; line-height: 1.75; }

/* ── NAV ── */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  display: flex; justify-content: space-between; align-items: center;
  padding: 1.2rem 6%;
  background: rgba(28,51,41,0.97);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(184,150,106,0.22);
}
.nav-logo { font-family: 'Playfair Display', serif; color: var(--white); font-size: 1.1rem; line-height: 1.25; text-decoration: none; display: block; }
.nav-logo span { color: var(--accent); display: block; font-size: 0.7rem; font-family: 'DM Sans', sans-serif; font-weight: 300; letter-spacing: 0.13em; text-transform: uppercase; }
.nav-links { display: flex; gap: 2rem; list-style: none; }
.nav-links a { color: rgba(255,255,255,0.75); text-decoration: none; font-size: 0.87rem; letter-spacing: 0.03em; transition: color .2s; }
.nav-links a:hover, .nav-links a.active { color: var(--accent); }
.nav-cta { background: var(--accent); color: var(--forest); padding: .5rem 1.3rem; border-radius: 2px; font-size: 0.85rem; font-weight: 500; text-decoration: none; transition: background .2s, transform .2s; white-space: nowrap; }
.nav-cta:hover { background: var(--accent-light); transform: translateY(-1px); }
.nav-hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 4px; }
.nav-hamburger span { width: 24px; height: 2px; background: var(--white); border-radius: 2px; transition: all .3s; }

/* ── TRUST BAR ── */
.trust-bar { background: var(--forest-mid); padding: 1.2rem 6%; display: flex; gap: 2.5rem; flex-wrap: wrap; border-bottom: 1px solid rgba(184,150,106,0.15); }
.trust-item { display: flex; align-items: center; gap: .6rem; color: rgba(255,255,255,0.65); font-size: 0.82rem; }
.trust-icon { color: var(--accent); }

/* ── BREADCRUMB ── */
.breadcrumb { background: var(--white); padding: 1rem 6%; border-bottom: 1px solid rgba(28,51,41,0.07); font-size: 0.8rem; color: var(--muted); margin-top: 64px; }
.breadcrumb a { color: var(--accent); text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }
.breadcrumb span { margin: 0 .4rem; }

/* ── PAGE HERO (non-home) ── */
.page-hero {
  background: var(--forest); padding: 5rem 6% 4rem;
  position: relative; overflow: hidden;
}
.page-hero::after { content: ''; position: absolute; top: -80px; right: -80px; width: 360px; height: 360px; border: 1px solid rgba(184,150,106,0.1); border-radius: 50%; }
.page-hero-inner { position: relative; z-index: 2; max-width: 700px; }
.page-eyebrow { font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); font-weight: 500; margin-bottom: .8rem; }
.page-hero h1 { font-family: 'Playfair Display', serif; font-size: clamp(2rem, 4vw, 3.2rem); color: var(--white); line-height: 1.15; font-weight: 700; margin-bottom: 1.2rem; }
.page-hero h1 em { color: var(--accent); font-style: normal; }
.page-hero p { color: rgba(255,255,255,0.65); font-size: 1rem; font-weight: 300; text-align: justify; }

/* ── COMMON SECTIONS ── */
section { padding: 6rem 6%; }
.section-eyebrow { font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent); font-weight: 500; margin-bottom: .8rem; }
.section-title { font-family: 'Playfair Display', serif; font-size: clamp(1.8rem, 3vw, 2.6rem); color: var(--forest); line-height: 1.2; font-weight: 700; margin-bottom: 1.2rem; }
.section-desc { color: var(--muted); font-size: 1rem; max-width: 640px; text-align: justify; }

/* ── CARDS ── */
.servizio-card { border: 1px solid rgba(28,51,41,0.1); padding: 2.2rem; border-radius: 3px; transition: all .3s; position: relative; overflow: hidden; background: var(--white); }
.servizio-card::before { content: ''; position: absolute; top: 0; left: 0; width: 3px; height: 100%; background: var(--accent); transform: scaleY(0); transform-origin: bottom; transition: transform .3s; }
.servizio-card:hover { box-shadow: 0 12px 40px rgba(28,51,41,0.08); transform: translateY(-3px); }
.servizio-card:hover::before { transform: scaleY(1); }
.serv-icon { font-size: 1.8rem; margin-bottom: 1.2rem; }
.serv-title { font-family: 'Playfair Display', serif; font-size: 1.12rem; color: var(--forest); font-weight: 600; margin-bottom: .7rem; }
.serv-desc { color: var(--muted); font-size: 0.9rem; line-height: 1.7; text-align: justify; }
.serv-link { display: inline-block; margin-top: 1rem; font-size: 0.82rem; color: var(--accent); text-decoration: none; font-weight: 500; letter-spacing: 0.04em; }
.serv-link:hover { text-decoration: underline; }

/* ── BUTTONS ── */
.btn-primary { background: var(--accent); color: var(--forest); padding: .9rem 2.2rem; border-radius: 2px; font-weight: 500; font-size: 0.92rem; text-decoration: none; transition: all .25s; letter-spacing: 0.03em; display: inline-block; }
.btn-primary:hover { background: var(--accent-light); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(184,150,106,0.35); }
.btn-secondary { border: 1px solid rgba(28,51,41,0.25); color: var(--forest); padding: .9rem 2.2rem; border-radius: 2px; font-weight: 400; font-size: 0.92rem; text-decoration: none; transition: all .25s; display: inline-block; }
.btn-secondary:hover { border-color: var(--accent); color: var(--accent); }

/* ── FOOTER ── */
footer { background: var(--forest); color: rgba(255,255,255,0.4); padding: 2.5rem 6%; border-top: 1px solid rgba(184,150,106,0.15); font-size: 0.8rem; }
.footer-inner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; }
.footer-logo { font-family: 'Playfair Display', serif; color: var(--white); font-size: 1rem; }
footer a { color: var(--accent); text-decoration: none; }
.footer-links { display: flex; gap: 1.5rem; flex-wrap: wrap; }

/* ── ANIMATIONS ── */
@keyframes fadeUp { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }

/* ── RESPONSIVE ── */
@media (max-width: 900px) {
  .nav-links { display: none; flex-direction: column; position: absolute; top: 64px; left: 0; right: 0; background: rgba(28,51,41,0.99); padding: 1.5rem 6%; gap: 1rem; }
  .nav-links.open { display: flex; }
  .nav-hamburger { display: flex; }
  section { padding: 4rem 6%; }
  .page-hero { padding: 3.5rem 6% 3rem; }
}
@media (max-width: 600px) {
  nav { padding: 1rem 5%; }
  .trust-bar { gap: 1.2rem; }
  .breadcrumb { font-size: 0.75rem; }
}
