@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=DM+Sans:wght@300;400;500&display=swap');

:root {
  --navy:       #0a0f1e;
  --navy-mid:   #111827;
  --navy-light: #1a2540;
  --navy-card:  #162035;
  --gold:       #c9a84c;
  --gold-light: #e8c97a;
  --gold-dim:   rgba(201,168,76,0.15);
  --white:      #ffffff;
  --muted:      #8a9bbf;
  --muted-dark: #5a6a8a;
  --border:     rgba(201,168,76,0.18);
  --border-mid: rgba(201,168,76,0.35);
  --success:    #2ecc71;
  --error:      #e74c3c;
  --font-serif: 'Cormorant Garamond', Georgia, serif;
  --font-sans:  'DM Sans', system-ui, sans-serif;
  --transition: 0.25s cubic-bezier(0.4,0,0.2,1);
  --radius:     2px;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:var(--font-sans); background:var(--navy); color:var(--white); overflow-x:hidden; line-height:1.6; -webkit-font-smoothing:antialiased; }
img  { max-width:100%; display:block; }
a    { text-decoration:none; color:inherit; }
ul   { list-style:none; }
button { font-family:var(--font-sans); cursor:pointer; border:none; background:none; }
input, select, textarea { font-family:var(--font-sans); }

h1,h2,h3 { font-family:var(--font-serif); line-height:1.1; font-weight:600; }
h4,h5,h6 { font-weight:500; line-height:1.3; }

.section-tag { font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); display:flex; align-items:center; gap:10px; margin-bottom:.75rem; }
.section-tag::before { content:''; width:30px; height:1px; background:var(--gold); flex-shrink:0; }
.section-title { font-family:var(--font-serif); font-size:clamp(2rem,4vw,3.2rem); font-weight:600; line-height:1.1; margin-bottom:1rem; }
.section-title em { font-style:normal; color:var(--gold-light); }
.section-sub { color:var(--muted); font-size:1rem; line-height:1.8; max-width:520px; }
section { padding:110px 6%; }

.btn-primary { display:inline-flex; align-items:center; gap:8px; background:var(--gold); color:var(--navy); padding:.85rem 2.2rem; font-size:.88rem; font-weight:500; letter-spacing:.06em; text-transform:uppercase; border-radius:var(--radius); transition:background var(--transition),transform var(--transition); border:none; cursor:pointer; }
.btn-primary:hover { background:var(--gold-light); transform:translateY(-2px); }
.btn-outline { display:inline-flex; align-items:center; gap:8px; border:1px solid var(--border-mid); color:var(--gold-light); padding:.85rem 2.2rem; font-size:.88rem; letter-spacing:.06em; text-transform:uppercase; border-radius:var(--radius); transition:border-color var(--transition),background var(--transition),transform var(--transition); cursor:pointer; background:transparent; }
.btn-outline:hover { border-color:var(--gold); background:var(--gold-dim); transform:translateY(-2px); }

.badge { display:inline-flex; align-items:center; gap:6px; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-light); border:1px solid var(--border); padding:.4rem 1rem; border-radius:var(--radius); }
.badge-dot { width:6px; height:6px; border-radius:50%; background:var(--gold); animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(1.5)} }

.divider { width:60px; height:2px; background:linear-gradient(90deg,var(--gold),transparent); margin:1.5rem 0; }

.form-group { display:flex; flex-direction:column; gap:.45rem; }
.form-group label { font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:500; }
.form-group input, .form-group select, .form-group textarea { background:var(--navy-light); border:1px solid var(--border); color:var(--white); padding:.85rem 1.1rem; font-size:.92rem; border-radius:var(--radius); outline:none; transition:border-color var(--transition); width:100%; }
.form-group input::placeholder, .form-group textarea::placeholder { color:var(--muted-dark); }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--gold); }
.form-group select option { background:var(--navy-light); color:var(--white); }
.form-group textarea { resize:vertical; min-height:130px; }

.alert { padding:.9rem 1.2rem; border-radius:var(--radius); font-size:.9rem; display:none; align-items:center; gap:10px; }
.alert.show { display:flex; }
.alert-success { background:rgba(46,204,113,.12); border:1px solid rgba(46,204,113,.3); color:var(--success); }
.alert-error   { background:rgba(231,76,60,.12);  border:1px solid rgba(231,76,60,.3);  color:var(--error); }

.spinner { width:18px; height:18px; border:2px solid rgba(10,15,30,.3); border-top-color:var(--navy); border-radius:50%; animation:spin .7s linear infinite; display:none; }
.spinner.show { display:block; }
@keyframes spin { to{transform:rotate(360deg)} }

.fade-up { opacity:0; transform:translateY(30px); transition:opacity .6s,transform .6s; }
.fade-up.visible { opacity:1; transform:translateY(0); }

::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-track { background:var(--navy); }
::-webkit-scrollbar-thumb { background:var(--gold); border-radius:3px; }
::selection { background:var(--gold); color:var(--navy); }

/* ── FOOTER ── */
footer { background:var(--navy); border-top:1px solid var(--border); padding:5rem 6% 2.5rem; }
.footer-top { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:3rem; margin-bottom:3.5rem; }
.footer-brand p { color:var(--muted); font-size:.88rem; line-height:1.8; margin-top:1rem; max-width:260px; }
.footer-col h5 { font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); margin-bottom:1.4rem; }
.footer-col ul { display:flex; flex-direction:column; gap:.65rem; }
.footer-col ul li a { color:var(--muted); font-size:.88rem; transition:color var(--transition); }
.footer-col ul li a:hover { color:var(--gold-light); }
.footer-bottom { border-top:1px solid var(--border); padding-top:2rem; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
.footer-bottom p { font-size:.8rem; color:var(--muted-dark); }
.footer-bottom span { color:var(--gold); }

/* ── WHATSAPP FLOAT ── */
.whatsapp-float { position:fixed; bottom:28px; right:28px; z-index:500; width:58px; height:58px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 24px rgba(37,211,102,.35); transition:transform var(--transition); animation:float-wa 3.5s ease-in-out infinite; }
.whatsapp-float:hover { transform:scale(1.1); }
.whatsapp-float svg { width:28px; height:28px; fill:white; }
@keyframes float-wa { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-7px)} }

.back-to-top { position:fixed; bottom:100px; right:32px; z-index:500; width:42px; height:42px; border:1px solid var(--border); background:var(--navy-mid); color:var(--gold); display:flex; align-items:center; justify-content:center; font-size:1.1rem; border-radius:var(--radius); opacity:0; pointer-events:none; transition:opacity var(--transition); cursor:pointer; }
.back-to-top.visible { opacity:1; pointer-events:all; }
