/* ─── RESET ─── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ─── CUSTOM PROPERTIES ─── */
:root {
  /* Backgrounds */
  --bg:       #F7F4EF;
  --bg-2:     #EDE9E2;
  --bg-3:     #E3DED6;
  --bg-inv:   #1E2D27;   /* green dark — sezioni inverse */

  /* Text */
  --ink:      #1A1814;
  --ink-2:    #3C3830;
  --ink-inv:  #F7F4EF;   /* testo su fondo scuro */

  /* Accents */
  --green:        #2B4538;
  --green-mid:    #3D6151;
  --green-light:  #5A8470;
  --green-pale:   #D6E4DE;
  --warm:         #9B6B3A;
  --warm-light:   #C4925A;

  /* Neutrals */
  --gray:       #8A8680;
  --gray-2:     #6A6560;
  --gray-3:     #BEBAB4;
  --border:     rgba(26, 24, 20, .10);
  --border-2:   rgba(26, 24, 20, .06);

  /* Typography */
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans:  'Inter', system-ui, sans-serif;
}

/* ─── BASE ─── */
html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
}

::selection { background: var(--green); color: var(--ink-inv); }

::-webkit-scrollbar { width: 3px; }
::-webkit-scrollbar-track { background: var(--bg-2); }
::-webkit-scrollbar-thumb { background: var(--green); }

/* ─── SECTION BASE ─── */
section { padding: 140px 60px; }

.section-tag {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--green);
  margin-bottom: 28px;
}

.section-tag::before {
  content: '';
  width: 28px; height: 1px;
  background: var(--green);
}

.section-title {
  font-family: var(--serif);
  font-size: clamp(2.4rem, 4vw, 4rem);
  font-weight: 300;
  line-height: 1.1;
  margin-bottom: 24px;
  color: var(--ink);
}

.section-title em {
  font-style: italic;
  color: var(--green);
}

.section-body {
  font-size: .92rem;
  font-weight: 400;
  color: var(--gray-2);
  line-height: 1.85;
  max-width: 560px;
}

/* ─── BUTTONS ─── */
.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: .75rem;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-inv);
  background: var(--green);
  padding: 16px 36px;
  text-decoration: none;
  transition: background .3s;
  position: relative;
  overflow: hidden;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--green-mid);
  transform: translateX(-100%);
  transition: transform .3s;
}

.btn-primary:hover::before { transform: translateX(0); }
.btn-primary span { position: relative; z-index: 1; }

.btn-ghost {
  font-size: .75rem;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-2);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 10px;
  transition: color .3s;
  border-bottom: 1px solid var(--border);
  padding-bottom: 4px;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.btn-ghost svg { transition: transform .3s; }
.btn-ghost:hover { color: var(--green); }
.btn-ghost:hover svg { transform: translateX(5px); }

/* ─── REVEAL ANIMATION ─── */
.reveal {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity .75s ease, transform .75s ease;
}

.reveal.visible { opacity: 1; transform: none; }

.reveal-delay-1 { transition-delay: .10s; }
.reveal-delay-2 { transition-delay: .20s; }
.reveal-delay-3 { transition-delay: .30s; }
.reveal-delay-4 { transition-delay: .40s; }

/* ─── KEYFRAMES ─── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes lineGrow { to { height: 100%; } }

@keyframes pulse { 0%,100%{opacity:.3} 50%{opacity:.9} }
