/* ═══════════════════════════════════════════
   KLYA — Base Styles: reset, typography, layout
   File: assets/css/base.css
   Richiede: variables.css caricato prima
═══════════════════════════════════════════ */

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: var(--font-b);
  background: var(--bg-primary);
  color: var(--text-dark);
  overflow-x: hidden;
}
::selection { background: var(--gold-light); color: var(--text-dark); }
img { display: block; max-width: 100%; object-fit: cover; }
a { text-decoration: none; color: inherit; }

/* ── Scrollbar ── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--bg-secondary); }
::-webkit-scrollbar-thumb { background: var(--gold-light); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--gold); }

/* ── Typography ── */
h1 {
  font-family: var(--font-h);
  font-size: clamp(38px, 5.5vw, 68px);
  line-height: 1.1;
  font-weight: 700;
  letter-spacing: -.5px;
}
h2 {
  font-family: var(--font-h);
  font-size: clamp(28px, 3.8vw, 50px);
  line-height: 1.18;
  font-weight: 600;
}
h3 {
  font-family: var(--font-h);
  font-size: clamp(22px, 2.5vw, 34px);
  line-height: 1.25;
  font-weight: 600;
}
h4 {
  font-family: var(--font-h);
  font-size: clamp(18px, 1.8vw, 24px);
  line-height: 1.3;
  font-weight: 600;
}
p { color: var(--text-mid); line-height: 1.7; }

/* ── Layout ── */
.wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px;
}
.sec  { padding: clamp(60px, 8vw, 130px) 0; }
.sec--alt  { background: var(--bg-secondary); }
.sec--dark { background: var(--bg-dark); }

/* ── Grid utilities ── */
.g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.g3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.g4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }

/* ── Spacing utilities ── */
.mt8  { margin-top: 8px; }  .mt16 { margin-top: 16px; } .mt24 { margin-top: 24px; }
.mt32 { margin-top: 32px; } .mt48 { margin-top: 48px; }
.mb8  { margin-bottom: 8px; }  .mb16 { margin-bottom: 16px; } .mb24 { margin-bottom: 24px; }
.mb32 { margin-bottom: 32px; } .mb48 { margin-bottom: 48px; }
.tc  { text-align: center; }
.mxa { margin: 0 auto; }
.mw700 { max-width: 700px; }
.mw800 { max-width: 800px; }

/* ── Divider ── */
.divider        { width: 60px; height: 2px; background: var(--gold); margin: 20px 0; }
.divider--center { margin: 20px auto; }

/* ── Eyebrow / Badge ── */
.eyebrow {
  font-size: 12px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 2px; color: var(--gold); margin-bottom: 12px; display: block;
}
.badge {
  display: inline-block; background: var(--gold); color: #fff;
  font-size: 11px; font-weight: 700; padding: 4px 14px;
  border-radius: 20px; text-transform: uppercase; letter-spacing: 1px;
}

/* ── Section Header ── */
.sh { text-align: center; margin-bottom: clamp(40px, 5vw, 70px); }
.sh h2 { margin-bottom: 14px; }
.sh p  { max-width: 580px; margin: 0 auto; font-size: clamp(15px, 1.4vw, 18px); }

/* ── Page Hero (inner pages) ── */
.pg-hero {
  background: var(--bg-secondary);
  padding: clamp(80px, 8vw, 120px) 0 clamp(60px, 6vw, 90px);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.pg-hero::before {
  content: '';
  position: absolute; top: -60px; right: -60px;
  width: 320px; height: 320px;
  background: radial-gradient(circle, rgba(201,166,107,.1), transparent 70%);
}
.pg-hero h1 { margin-bottom: 16px; }
.pg-hero p  { font-size: clamp(16px, 1.6vw, 20px); max-width: 640px; margin: 0 auto; }

/* ── CTA Section dark ── */
.cta-sec {
  background: var(--bg-dark);
  text-align: center;
  padding: clamp(80px, 8vw, 130px) 0;
  position: relative;
  overflow: hidden;
}
.cta-glow {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 600px; height: 400px;
  background: radial-gradient(ellipse, rgba(201,166,107,.12) 0%, transparent 70%);
  pointer-events: none;
}
.cta-sec h2   { color: #fff; position: relative; }
.cta-sec p    { color: var(--text-light); font-size: clamp(16px, 1.6vw, 20px); margin: 16px auto 40px; max-width: 560px; position: relative; }
.cta-btns     { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; position: relative; }
.cta-sec .trust { justify-content: center; margin-top: 20px; position: relative; }
.cta-sec .trust-item { color: var(--text-light); }

/* ── Trust items ── */
.trust      { display: flex; gap: 20px; flex-wrap: wrap; }
.trust-item { display: flex; align-items: center; gap: 7px; font-size: 13.5px; color: var(--text-mid); }
.trust-item::before { content: '✓'; color: var(--gold); font-weight: 700; font-size: 14px; }

/* ── Success box ── */
.success-box {
  background: var(--success); border: 1px solid #2ecc71;
  border-radius: var(--r-card); padding: 24px; text-align: center; display: none;
}
.success-box.show { display: block; animation: fadeUp .3s both; }

/* ── Responsive breakpoints ── */
@media (max-width: 960px) {
  .g4 { grid-template-columns: 1fr 1fr; }
  .g3 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .g4, .g3, .g2 { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .wrap { padding: 0 20px; }
}