/* =============================================================
   1. TOKENS
   ============================================================= */
:root {
  --bg:          #0b1826;
  --bg-2:        #122035;
  --bg-card:     #0f1e30;
  --bg-card-2:   #152a42;
  --cream:       #f0ead8;
  --cream-2:     #d8cdb0;
  --cream-3:     #9e9180;
  --gold:        #c8a96e;
  --gold-2:      #a88b52;
  --gold-light:  #e0c990;
  --line:        rgba(200, 169, 110, 0.18);
  --line-cream:  rgba(240, 234, 216, 0.1);
  --serif:       'Cormorant Garamond', Georgia, serif;
  --sans:        'Inter', system-ui, -apple-system, sans-serif;
  --container:   1240px;
  --gutter:      clamp(1.25rem, 5vw, 2.5rem);
  --nav-h:       70px;
  --radius:      12px;
  --radius-sm:   6px;
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-soft:   cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --shadow-card: 0 4px 32px rgba(0,0,0,0.35);
  --shadow-gold: 0 0 0 1px var(--line), 0 4px 24px rgba(200,169,110,0.12);
}

/* =============================================================
   2. RESET
   ============================================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-x: clip; }
body {
  font-family: var(--sans); font-size: 16px; line-height: 1.65;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  background: var(--bg); color: var(--cream); overflow-x: clip;
  overscroll-behavior-y: none;
}
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
button { font: inherit; color: inherit; cursor: pointer; border: 0; background: none; }
a { color: inherit; text-decoration: none; }
p { text-wrap: pretty; }
h1,h2,h3,h4 { text-wrap: balance; line-height: 1.08; }
ul,ol { list-style: none; }
::selection { background: var(--gold); color: var(--bg); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 4px; }

/* =============================================================
   3. UTILITIES
   ============================================================= */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:-100px; left:1rem; padding:.6rem 1.2rem; background:var(--cream); color:var(--bg); z-index:9999; border-radius:var(--radius-sm); font-weight:500; font-size:.9rem; transition:top .2s var(--ease-out); }
.skip-link:focus { top:1rem; }
.container { width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }

/* =============================================================
   4. TYPOGRAPHY
   ============================================================= */
.section-kicker {
  font-size:.78rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase;
  color:var(--gold); display:flex; align-items:center; gap:.6rem; margin-bottom:1rem;
}
.section-kicker::before { content:''; display:inline-block; width:24px; height:1px; background:var(--gold); flex-shrink:0; }
.section-title { font-family:var(--serif); font-size:clamp(2rem,3.8vw,3.2rem); font-weight:400; letter-spacing:-.01em; color:var(--cream); line-height:1.1; }
.section-title em { font-style:italic; color:var(--gold-light); }
.section-desc { font-size:1.05rem; color:var(--cream-3); max-width:52ch; line-height:1.7; margin-top:1rem; }
.section-header { margin-bottom:clamp(1.5rem,3vw,2.5rem); }

/* =============================================================
   5. BUTTONS
   ============================================================= */
.btn { display:inline-flex; align-items:center; gap:.5rem; padding:.75rem 1.75rem; border-radius:var(--radius-sm); font-family:var(--sans); font-size:.9rem; font-weight:500; letter-spacing:.02em; transition:all .3s var(--ease-out); cursor:pointer; white-space:nowrap; }
.btn-primary { background:var(--gold); color:var(--bg); border:1.5px solid var(--gold); }
.btn-primary:hover { background:var(--gold-light); border-color:var(--gold-light); transform:translateY(-2px); box-shadow:0 8px 24px rgba(200,169,110,.3); }
.btn-ghost { background:transparent; color:var(--cream); border:1.5px solid var(--line-cream); }
.btn-ghost:hover { border-color:var(--gold); color:var(--gold); transform:translateY(-2px); }
.btn-large { padding:.9rem 2.2rem; font-size:.95rem; }
.btn-small { padding:.5rem 1.1rem; font-size:.82rem; }
.btn-full { width:100%; justify-content:center; }

/* =============================================================
   6. NAV
   ============================================================= */
.nav { position:fixed; top:0; left:0; right:0; z-index:100; height:var(--nav-h); transition:background .4s var(--ease-out), box-shadow .4s; }
.nav.is-solid { background:rgba(11,24,38,.97); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); box-shadow:0 1px 0 var(--line); }
.nav-inner { display:flex; align-items:center; height:100%; gap:1.5rem; }

/* Logo */
.nav-logo { display:flex; align-items:center; gap:.65rem; flex-shrink:0; }
.logo-icon { flex-shrink:0; }
.logo-text { display:flex; flex-direction:column; line-height:1; gap:1px; }
.logo-by { font-family:var(--serif); font-size:.9rem; font-weight:600; color:var(--gold); letter-spacing:.12em; }
.logo-torres { font-family:var(--serif); font-size:1.35rem; font-weight:600; color:var(--cream); letter-spacing:.06em; line-height:1; }
.logo-sub { font-size:.58rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-2); font-weight:400; }

/* Nav phone */
.nav-phone { display:none; align-items:center; gap:.4rem; font-size:.82rem; font-weight:500; color:var(--gold); transition:color .2s; white-space:nowrap; }
.nav-phone:hover { color:var(--gold-light); }

/* Hero trust line */
.hero-trust { font-size:.82rem; color:var(--cream-3); display:flex; align-items:center; gap:.5rem; margin-top:1rem; }
.hero-trust svg { color:var(--gold); flex-shrink:0; }
.hero-trust a { color:var(--gold); font-weight:500; transition:color .2s; }
.hero-trust a:hover { color:var(--gold-light); }

/* Valuation extra fields */
.form-valuation { display:flex; flex-direction:column; gap:1.1rem; padding:1.25rem; background:rgba(200,169,110,.05); border:1px solid var(--line); border-radius:var(--radius-sm); }
.form-valuation[hidden] { display:none; }

.nav-logo-img { height: 90px; width: auto; display: block; }
.footer-logo-img { height: 78px; width: auto; display: block; margin-bottom: .875rem; }

.nav-links { display:none; align-items:center; gap:.25rem; margin-left:auto; }
.nav-link { font-size:.88rem; color:var(--cream-2); padding:.4rem .8rem; border-radius:4px; transition:color .25s, background .25s; }
.nav-link:hover { color:var(--gold); background:rgba(200,169,110,.08); }
.nav-cta { display:none; }
.nav-burger { display:flex; flex-direction:column; gap:5px; padding:.4rem; margin-left:auto; }
.nav-burger span { display:block; width:22px; height:2px; background:var(--cream); border-radius:2px; transition:all .3s var(--ease-out); }
.nav-burger.is-open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-burger.is-open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.nav-burger.is-open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

.mobile-menu { position:fixed; inset:var(--nav-h) 0 0 0; background:rgba(11,24,38,.98); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); z-index:99; display:flex; flex-direction:column; justify-content:center; align-items:center; opacity:0; pointer-events:none; transform:translateY(-8px); transition:opacity .35s var(--ease-out), transform .35s var(--ease-out); }
.mobile-menu.is-open { opacity:1; pointer-events:all; transform:translateY(0); }
.mobile-nav { display:flex; flex-direction:column; align-items:center; gap:.25rem; width:100%; padding:2rem; }
.mobile-link { font-family:var(--serif); font-size:clamp(1.5rem,4vw,2rem); color:var(--cream-2); padding:.6rem 1.5rem; transition:color .2s; text-align:center; }
.mobile-link:hover { color:var(--gold); }
.mobile-link-cta { margin-top:1.5rem; background:var(--gold); color:var(--bg); padding:.8rem 2.5rem; border-radius:var(--radius-sm); font-family:var(--sans); font-size:.95rem; font-weight:500; }

/* =============================================================
   7. REVEALS
   ============================================================= */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease-out), transform .7s var(--ease-out); }
.reveal[data-split] { opacity:1; transform:none; }
.reveal.is-visible { opacity:1; transform:translateY(0); }
.delay-1 { transition-delay:.12s; }
.delay-2 { transition-delay:.24s; }
.delay-3 { transition-delay:.36s; }

/* =============================================================
   8. SECTIONS
   ============================================================= */
.section { padding-block:clamp(3rem,5.5vw,5.25rem); }

/* Separadores entre secciones */
.services    { border-top: 1px solid var(--line); }
.captacion   { border-top: 3px solid rgba(200,169,110,.25); }
.about       { border-top: 1px solid var(--line); }
.legal       { border-top: 3px solid rgba(200,169,110,.25); }
.testimonials{ border-top: 1px solid var(--line); }
.contact-faq { border-top: 1px solid var(--line); }

/* --- HERO --- */
.hero { position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:center; overflow:hidden; padding-top:var(--nav-h); }
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-bg img { width:100%; height:100%; object-fit:cover; }
.hero-tint { position:absolute; inset:0; background:linear-gradient(135deg,rgba(11,24,38,.94) 0%,rgba(11,24,38,.72) 55%,rgba(11,24,38,.9) 100%); }
.hero-mesh { position:absolute; inset:0; z-index:1; background: radial-gradient(ellipse 55% 50% at 15% 65%, rgba(200,169,110,.07) 0%,transparent 70%), radial-gradient(ellipse 40% 60% at 85% 20%, rgba(30,58,95,.45) 0%,transparent 70%); animation:meshPulse 14s ease-in-out infinite; }
@keyframes meshPulse { 0%,100%{opacity:1} 50%{opacity:.65} }
.hero-grain { position:absolute; inset:0; z-index:2; opacity:.04; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); background-size:200px; pointer-events:none; }
.hero-inner { position:relative; z-index:3; width:100%; display:flex; flex-direction:column; gap:2.5rem; padding-block:clamp(2.5rem,6vh,4rem); }
.hero-content { flex:1; max-width:680px; }

/* Hero category label */
.hero-category {
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:1.25rem;
  display:flex;
  align-items:center;
  gap:.5rem;
}
.hero-category::before {
  content:'';
  display:inline-block;
  width:20px; height:1px;
  background:var(--gold);
  flex-shrink:0;
}

/* Hero tabs */
.hero-tabs { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:2.5rem; }
.hero-tab { padding:.5rem 1.25rem; border-radius:99px; font-size:.82rem; font-weight:500; letter-spacing:.04em; border:1.5px solid var(--line-cream); color:var(--cream-3); transition:all .25s var(--ease-out); cursor:pointer; }
.hero-tab:hover { border-color:var(--gold); color:var(--cream); }
.hero-tab.is-active { background:var(--gold); border-color:var(--gold); color:var(--bg); }

.hero-title { font-family:var(--serif); font-size:clamp(2.5rem,5.5vw,5rem); font-weight:400; letter-spacing:-.02em; color:var(--cream); line-height:1.05; margin-bottom:1.25rem; transition:opacity .35s var(--ease-out); }
.hero-title em { font-style:italic; color:var(--gold-light); }
.hero-desc { font-size:clamp(.95rem,1.6vw,1.1rem); color:var(--cream-2); max-width:50ch; line-height:1.7; margin-bottom:2rem; transition:opacity .35s var(--ease-out); }
.hero-actions { display:flex; flex-wrap:wrap; gap:.875rem; }

/* Hero stats sidebar */
.hero-stats-panel { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; width:100%; }
.hero-stat-item { background:rgba(11,24,38,.8); backdrop-filter:blur(8px); padding:1.25rem 1.5rem; display:flex; flex-direction:column; gap:.3rem; }
.hero-stat-num { font-family:var(--serif); font-size:clamp(1.8rem,3vw,2.5rem); font-weight:400; color:var(--gold); letter-spacing:-.03em; line-height:1; }
.hero-stat-label { font-size:.78rem; color:var(--cream-3); letter-spacing:.04em; text-transform:uppercase; line-height:1.35; }

.hero-scroll-hint { position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:.5rem; color:var(--gold); opacity:.5; transition:opacity .3s; }
.hero-scroll-hint:hover { opacity:.9; }
.scroll-line { display:block; width:1px; height:36px; background:var(--gold); animation:scrollLine 2s ease-in-out infinite; transform-origin:top; }
@keyframes scrollLine { 0%{transform:scaleY(0);opacity:0} 50%{transform:scaleY(1);opacity:1} 100%{transform:scaleY(0) translateY(100%);opacity:0} }
.scroll-text { font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; }

/* --- TRUST BAND --- */
.trust-band { background:var(--bg-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding-block:1.1rem; }
.trust-band-inner { display:flex; align-items:center; gap:1.25rem; flex-wrap:wrap; }
.trust-band-label { font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--cream-3); white-space:nowrap; flex-shrink:0; }
.trust-band-items { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; }
.trust-item { font-size:.84rem; color:var(--cream-2); }
.trust-sep { color:var(--line); }

/* --- SERVICES (TABS) --- */
.services { background:var(--bg); }
.service-tabs-nav { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:2rem; border-bottom:1px solid var(--line); padding-bottom:0; }
.svc-tab { display:flex; align-items:center; gap:.5rem; padding:.65rem 1.25rem; font-size:.88rem; font-weight:500; color:var(--cream-3); border-radius:var(--radius-sm) var(--radius-sm) 0 0; transition:all .25s var(--ease-out); position:relative; bottom:-1px; border:1px solid transparent; border-bottom:none; cursor:pointer; }
.svc-tab:hover { color:var(--cream); background:rgba(200,169,110,.06); }
.svc-tab.is-active { color:var(--gold); background:var(--bg-card); border-color:var(--line); border-bottom-color:var(--bg-card); }
.svc-tab svg { flex-shrink:0; }

.service-tab-panels { border:1px solid var(--line); border-radius:0 var(--radius) var(--radius) var(--radius); overflow:hidden; }
.svc-panel { display:none; }
.svc-panel.is-active { display:block; }
.svc-panel-grid { display:grid; grid-template-columns:1fr; gap:0; }
.svc-panel-card { background:var(--bg-card); padding:2rem; border-bottom:1px solid var(--line); transition:background .25s; }
.svc-panel-card:hover { background:var(--bg-card-2); }
.svc-panel-card h3 { font-family:var(--serif); font-size:1.25rem; font-weight:500; color:var(--cream); margin-bottom:.6rem; }
.svc-panel-card p { font-size:1rem; color:var(--cream-3); line-height:1.75; margin-bottom:1.25rem; }
.svc-icon { width:48px; height:48px; background:rgba(200,169,110,.08); border:1px solid var(--line); border-radius:var(--radius-sm); display:flex; align-items:center; justify-content:center; color:var(--gold); margin-bottom:1.1rem; }
.svc-cta { font-size:.82rem; font-weight:500; color:var(--gold); display:inline-flex; align-items:center; gap:.3rem; transition:gap .2s, color .2s; }
.svc-cta:hover { color:var(--gold-light); gap:.6rem; }

.svc-panel-feature { background:linear-gradient(135deg, rgba(200,169,110,.08) 0%, rgba(30,58,95,.3) 100%); padding:2.5rem 2rem; display:flex; flex-direction:column; align-items:flex-start; gap:1rem; justify-content:center; border-top:1px solid var(--line); }
.svc-feature-num { font-family:var(--serif); font-size:clamp(3rem,6vw,4.5rem); font-weight:300; color:var(--gold); letter-spacing:-.04em; line-height:1; }
.svc-feature-label { font-size:.88rem; color:var(--cream-2); max-width:28ch; line-height:1.5; }

/* --- CAPTACIÓN --- */
.captacion { background:var(--bg-2); position:relative; overflow:hidden; }
.captacion-bg {
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 60% 80% at 0% 50%, rgba(200,169,110,.06) 0%, transparent 60%),
    radial-gradient(ellipse 40% 60% at 100% 20%, rgba(30,58,95,.4) 0%, transparent 60%);
}
.captacion-inner { position:relative; z-index:1; display:grid; grid-template-columns:1fr; gap:3rem; align-items:start; }
.captacion-title { font-family:var(--serif); font-size:clamp(2.4rem,5vw,4.2rem); font-weight:400; color:var(--cream); line-height:1.05; margin:1rem 0 1.25rem; letter-spacing:-.02em; }
.captacion-title em { font-style:italic; color:var(--gold-light); }
.captacion-sub { font-size:1.05rem; color:var(--cream-2); line-height:1.7; max-width:46ch; margin-bottom:2rem; }
.captacion-steps { display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line); }
.captacion-step { display:grid; grid-template-columns:auto 1fr; gap:1.25rem; align-items:start; padding:1.5rem 0; border-bottom:1px solid var(--line); }
.captacion-num { font-family:var(--serif); font-size:2.2rem; font-weight:300; color:rgba(200,169,110,.3); line-height:1; letter-spacing:-.04em; min-width:2.8rem; }
.captacion-step-body strong { display:block; font-size:1rem; font-weight:600; color:var(--cream); margin-bottom:.4rem; }
.captacion-step-body p { font-size:.95rem; color:var(--cream-3); line-height:1.7; margin:0; }

/* --- ABOUT --- */
.about { background:var(--bg-2); }
.about-inner { display:grid; grid-template-columns:1fr; gap:3rem; align-items:start; }
.about-img-frame { position:relative; border-radius:var(--radius); overflow:hidden; aspect-ratio:3/4; max-height:480px; }
.about-img-frame img { width:100%; height:100%; object-fit:cover; object-position:center top; filter:contrast(1.05) saturate(.9); }
.about-img-caption { position:absolute; bottom:0; left:0; right:0; padding:1.25rem 1.5rem; background:linear-gradient(to top, rgba(11,24,38,.95), transparent); display:flex; flex-direction:column; gap:.2rem; }
.caption-name { font-family:var(--serif); font-size:1.15rem; font-weight:500; color:var(--cream); }
.caption-role { font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); }
.about-badges { display:flex; flex-direction:column; gap:.5rem; margin-top:1rem; }
.about-badge { font-size:.92rem; color:var(--cream-2); display:flex; align-items:center; gap:.5rem; }

.about-body { display:flex; flex-direction:column; gap:.875rem; margin-bottom:1.75rem; }
.about-lead { font-family:var(--serif); font-size:clamp(1.15rem,2vw,1.35rem); font-style:italic; color:var(--cream-2); line-height:1.65; }
.about-body p { font-size:1rem; color:var(--cream-3); line-height:1.8; }
.about-body strong { color:var(--cream); font-weight:500; }

/* Interactive value props */
.about-props { display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line); }
.prop-item { border-bottom:1px solid var(--line); }
.prop-btn { width:100%; display:flex; align-items:center; gap:1rem; padding:1rem 0; text-align:left; cursor:pointer; transition:color .2s; }
.prop-btn:hover { color:var(--gold); }
.prop-btn[aria-expanded="true"] { color:var(--gold); }
.prop-num { font-family:var(--serif); font-size:1.2rem; color:rgba(200,169,110,.4); font-weight:300; min-width:2rem; }
.prop-btn[aria-expanded="true"] .prop-num { color:var(--gold); }
.prop-label { flex:1; font-size:.92rem; font-weight:500; }
.prop-btn svg { flex-shrink:0; color:var(--gold); transition:transform .35s var(--ease-out); }
.prop-btn[aria-expanded="true"] svg { transform:rotate(180deg); }
.prop-body { padding:.25rem 0 1.25rem 3rem; }
.prop-body p { font-size:.97rem; color:var(--cream-3); line-height:1.75; }
.prop-body[hidden] { display:none; }

/* --- TESTIMONIALS --- */
.testimonials { background:var(--bg); }
.testimonials-grid { display:grid; grid-template-columns:1fr; gap:1.25rem; }
.testimonial-card { background:var(--bg-card); border:1px solid var(--line); border-radius:var(--radius); padding:2rem; transition:border-color .3s, transform .3s var(--ease-out), box-shadow .3s; }
.testimonial-card:hover { border-color:var(--gold-2); transform:translateY(-4px); box-shadow:var(--shadow-card); }
.testimonial-stars { font-size:.85rem; color:var(--gold); letter-spacing:.1em; margin-bottom:.75rem; }
.testimonial-text { font-size:1rem; color:var(--cream-2); line-height:1.8; margin-bottom:1.5rem; font-style:italic; }
.testimonial-footer { display:flex; align-items:center; gap:.875rem; }
.testimonial-photo { width:44px; height:44px; border-radius:50%; object-fit:cover; border:2px solid var(--line); flex-shrink:0; }
.testimonial-name { display:block; font-weight:600; font-size:.88rem; color:var(--cream); font-style:normal; }
.testimonial-role { display:block; font-size:.75rem; color:var(--gold); letter-spacing:.02em; }

/* --- SEGURIDAD JURÍDICA --- */
.legal { background:var(--bg-2); }
.legal-header { max-width:none; }
.legal-intro { font-size:1.05rem; color:var(--cream-2); line-height:1.8; max-width:62ch; margin-top:1.25rem; }
.legal-intro strong { color:var(--cream); font-weight:600; }

.legal-grid { display:grid; grid-template-columns:1fr; gap:1.25rem; margin-top:1rem; }
.legal-card {
  background:var(--bg-card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:2rem 1.75rem;
  transition:border-color .3s, transform .3s var(--ease-out), box-shadow .3s;
}
.legal-card:hover { border-color:var(--gold-2); transform:translateY(-4px); box-shadow:var(--shadow-card); }
.legal-icon {
  width:52px; height:52px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  background:rgba(200,169,110,.1);
  border:1px solid var(--line);
  color:var(--gold-light);
  margin-bottom:1.25rem;
}
.legal-card h3 { font-family:var(--serif); font-size:1.3rem; font-weight:500; color:var(--cream); margin-bottom:.6rem; line-height:1.2; }
.legal-card p { font-size:.92rem; color:var(--cream-3); line-height:1.7; margin:0; }

.legal-assurance {
  display:flex; align-items:flex-start; gap:.9rem;
  margin-top:2.5rem;
  padding:1.5rem 1.75rem;
  background:rgba(200,169,110,.06);
  border:1px solid var(--line);
  border-left:3px solid var(--gold);
  border-radius:var(--radius-sm);
}
.legal-assurance svg { color:var(--gold); flex-shrink:0; margin-top:.15rem; }
.legal-assurance p { font-size:.98rem; color:var(--cream-2); line-height:1.7; margin:0; }
.legal-assurance strong { color:var(--gold-light); font-weight:600; }

/* --- CONTACT + FAQ --- */

.contact-faq { background:var(--bg-2); }
.contact-faq-inner { display:grid; grid-template-columns:1fr; gap:3.5rem; align-items:start; }
.contact-intro { font-size:1rem; color:var(--cream-3); margin-bottom:1.75rem; margin-top:.75rem; line-height:1.7; }

/* Form */
.contact-form { display:flex; flex-direction:column; gap:1.1rem; }
.form-row { display:grid; grid-template-columns:1fr; gap:1.1rem; }
.form-group { display:flex; flex-direction:column; gap:.35rem; }
.form-label { font-size:.8rem; font-weight:500; color:var(--cream-2); letter-spacing:.02em; }
.required { color:var(--gold); }
.form-input { background:rgba(255,255,255,.04); border:1.5px solid var(--line-cream); border-radius:var(--radius-sm); padding:.72rem 1rem; color:var(--cream); font-family:var(--sans); font-size:.92rem; transition:border-color .25s, background .25s; width:100%; -webkit-appearance:none; appearance:none; }
.form-input::placeholder { color:var(--cream-3); }
.form-input:focus { outline:none; border-color:var(--gold); background:rgba(200,169,110,.04); }
.form-input.is-error { border-color:#e05252; }
select.form-input { cursor:pointer; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239e9180' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; color:var(--cream); }
select.form-input option { background:var(--bg-2); color:var(--cream); }
.form-textarea { resize:vertical; min-height:90px; }
.form-group--check { flex-direction:row; align-items:flex-start; }
.form-check-label { display:flex; align-items:flex-start; gap:.65rem; font-size:.83rem; color:var(--cream-3); cursor:pointer; flex:1; }
.form-check-label a { color:var(--gold); text-decoration:underline; }
.form-check-input { width:17px; height:17px; min-width:17px; border:1.5px solid var(--line-cream); border-radius:3px; background:transparent; cursor:pointer; accent-color:var(--gold); margin-top:.1rem; }
.field-error { font-size:.75rem; color:#e05252; min-height:1em; display:block; }
#submit-btn { position:relative; overflow:hidden; }
#submit-btn .btn-sending { display:none; position:absolute; inset:0; align-items:center; justify-content:center; background:var(--gold-2); font-size:.9rem; }
#submit-btn.is-sending .btn-text { opacity:0; }
#submit-btn.is-sending .btn-sending { display:flex; }
#submit-btn.is-sending { pointer-events:none; }
.form-success { display:flex; align-items:center; gap:1rem; background:rgba(80,180,120,.1); border:1px solid rgba(80,180,120,.3); border-radius:var(--radius-sm); padding:1.1rem 1.4rem; }
.form-success[aria-hidden="true"] { display:none; }
.form-success svg { color:#4ab87d; flex-shrink:0; }
.form-success strong { display:block; margin-bottom:.2rem; font-size:.92rem; }
.form-success p { font-size:.83rem; color:var(--cream-3); margin:0; }

.contact-direct { display:flex; flex-direction:column; gap:.6rem; margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.direct-link { display:flex; align-items:center; gap:.6rem; font-size:.9rem; color:var(--cream-2); transition:color .2s; }
.direct-link svg { color:var(--gold); flex-shrink:0; }
.direct-link:hover { color:var(--gold); }

/* FAQ side */
.faq-side-title { font-family:var(--serif); font-size:clamp(1.8rem,3vw,2.6rem); font-weight:400; color:var(--cream); line-height:1.1; margin-bottom:2rem; }
.faq-side-title em { font-style:italic; color:var(--gold-light); }
.faq-list { border-top:1px solid var(--line); }
.faq-item { border-bottom:1px solid var(--line); }
.faq-question { width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.15rem 0; text-align:left; font-size:.95rem; font-weight:500; color:var(--cream); transition:color .25s; cursor:pointer; }
.faq-question:hover { color:var(--gold); }
.faq-question[aria-expanded="true"] { color:var(--gold); }
.faq-icon { flex-shrink:0; color:var(--gold); transition:transform .35s var(--ease-out); }
.faq-question[aria-expanded="true"] .faq-icon { transform:rotate(180deg); }
.faq-answer { padding-bottom:1.25rem; }
.faq-answer p { font-size:.97rem; color:var(--cream-3); line-height:1.8; max-width:58ch; }
.faq-answer[hidden] { display:none; }

/* --- FOOTER --- */
.footer { background:var(--bg-2); border-top:1px solid var(--line); padding-top:3.5rem; }
.footer-inner { display:grid; grid-template-columns:1fr; gap:2.5rem; padding-bottom:2.5rem; border-bottom:1px solid var(--line); }
.footer-logo-link { margin-bottom:.875rem; }
.footer-tagline { font-size:.85rem; color:var(--cream-3); line-height:1.6; margin-bottom:1.1rem; }
.footer-social { display:inline-flex; align-items:center; gap:.5rem; font-size:.8rem; color:var(--gold); transition:color .25s; }
.footer-social:hover { color:var(--gold-light); }
.footer-nav { display:grid; grid-template-columns:repeat(2,1fr); gap:1.75rem; }
.footer-nav-col { display:flex; flex-direction:column; gap:.5rem; }
.footer-nav-title { font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); font-weight:500; margin-bottom:.2rem; }
.footer-link { font-size:.83rem; color:var(--cream-3); transition:color .2s; }
.footer-link:hover { color:var(--cream); }
.footer-bottom { display:flex; flex-direction:column; gap:.2rem; padding-block:1.1rem; text-align:center; }
.footer-copy, .footer-made { font-size:.75rem; color:var(--cream-3); }

/* --- WHATSAPP --- */
.whatsapp-float { position:fixed; bottom:1.75rem; right:1.75rem; z-index:90; width:56px; height:56px; background:#25d366; color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 20px rgba(37,211,102,.4); transition:transform .3s var(--ease-out), box-shadow .3s; }
.whatsapp-float:hover { transform:scale(1.1) translateY(-3px); box-shadow:0 8px 32px rgba(37,211,102,.5); }
.whatsapp-tooltip { position:absolute; right:calc(100% + .8rem); top:50%; transform:translateY(-50%); background:var(--bg-card); color:var(--cream); font-size:.78rem; font-weight:500; padding:.4rem .75rem; border-radius:var(--radius-sm); border:1px solid var(--line); white-space:nowrap; pointer-events:none; opacity:0; transition:opacity .25s; }
.whatsapp-float:hover .whatsapp-tooltip { opacity:1; }

/* --- COOKIE BANNER --- */
.cookie-banner { position:fixed; bottom:0; left:0; right:0; z-index:95; background:rgba(15,30,48,.98); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-top:1px solid var(--line); padding:1.1rem var(--gutter); transform:translateY(100%); transition:transform .4s var(--ease-out); }
.cookie-banner.is-visible { transform:translateY(0); }
.cookie-banner-inner { max-width:var(--container); margin-inline:auto; display:flex; flex-direction:column; gap:.875rem; align-items:flex-start; }
.cookie-text { font-size:.83rem; color:var(--cream-2); line-height:1.6; }
.cookie-link { color:var(--gold); text-decoration:underline; }
.cookie-actions { display:flex; gap:.75rem; flex-wrap:wrap; }

/* Scroll progress */
.scroll-progress { position:fixed; top:0; left:0; width:0%; height:2px; background:var(--gold); z-index:200; transition:width .1s linear; }

/* =============================================================
   9. RESPONSIVE
   ============================================================= */
@media (min-width:540px) {
  .form-row { grid-template-columns:repeat(2,1fr); }
  .cookie-banner-inner { flex-direction:row; align-items:center; justify-content:space-between; }
  .legal-grid { grid-template-columns:repeat(2,1fr); }
}

@media (min-width:720px) {
  .captacion-inner { grid-template-columns:1fr 1fr; gap:5rem; }
  .nav-phone { display:flex; }

  .nav-links { display:flex; }
  .nav-cta { display:inline-flex; }
  .nav-burger { display:none; }

  .hero-inner { flex-direction:row; align-items:center; }
  .hero-stats-panel { width:260px; flex-shrink:0; grid-template-columns:1fr; }
  .hero-stat-item { border-top:1px solid var(--line); }
  .hero-stat-item:first-child { border-top:none; }

  .svc-panel-grid { grid-template-columns:repeat(2,1fr); }
  .svc-panel-feature { border-top:none; border-left:1px solid var(--line); }

  .about-inner { grid-template-columns:1fr 1.4fr; gap:4rem; }
  .about-image-col { position:sticky; top:calc(var(--nav-h) + 2rem); }

  .testimonials-grid { grid-template-columns:repeat(3,1fr); }

  .contact-faq-inner { grid-template-columns:1.1fr 1fr; gap:4rem; }

  .footer-inner { grid-template-columns:1fr 2fr; }
  .footer-nav { grid-template-columns:repeat(3,1fr); }
  .footer-bottom { flex-direction:row; justify-content:space-between; text-align:left; }
}

@media (min-width:960px) {
  .svc-panel-grid { grid-template-columns:1fr 1fr 320px; }
  .svc-panel-card:last-of-type { border-bottom:none; }
  .svc-panel-feature { border-left:1px solid var(--line); border-top:none; }
  .legal-grid { grid-template-columns:repeat(4,1fr); }
}

@media (min-width:1280px) {
  .hero-stats-panel { width:300px; }
}

/* =============================================================
   10. REDUCED MOTION (intrusive only)
   ============================================================= */
@media (prefers-reduced-motion:reduce) {
  .hero-mesh { animation:none; }
  .scroll-line { animation:none; opacity:.4; }
}
