:root {
  --navy:     #102540;
  --navy2:    #162e4e;
  --navy3:    #1e3d65;
  --silver:   #bccedd;
  --silver2:  #dce8f2;
  --sky:      #4e9ec8;
  --sky2:     #78bdd8;
  --white:    #ffffff;
  --gold:     #c4921a;
  --gold2:    #d9a820;
  --yellow:   #f5c842;
  --text:     rgba(205,218,230,0.90);
  --muted:    rgba(200,215,228,0.48);
  --divider:  rgba(200,215,228,0.15);
  --divider2: rgba(200,215,228,0.08);
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; color-scheme:dark; background:#102540; }

body {
  font-family:'DM Sans', sans-serif;
  background:var(--navy) !important;
  color:var(--text) !important;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

body::before {
  content:''; position:fixed; inset:0; z-index:0; pointer-events:none;
  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='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  opacity:0.4;
}

/* ══ NAV ══ */
nav { position:fixed; top:0; left:0; right:0; z-index:100; background:rgba(16,37,64,0.97); border-bottom:1px solid var(--divider); backdrop-filter:blur(12px); }
.nav-top { display:flex; align-items:center; justify-content:space-between; padding:10px 20px 10px 18px; gap:12px; }
.nav-brand { display:flex; align-items:center; text-decoration:none; }
.nav-monogram-svg { display:none; }
.nav-logo-wrap { display:none; }
.nav-logo-img { display:none; }
.nav-brand-divider { display:none; }
.nav-brand-text { display:none; }
.nav-brand-name { display:none; }
.nav-brand-rule { display:none; }
.nav-brand-sub { display:none; }
.nav-brand {
  border: 1.5px solid rgba(188,206,221,0.55);
  border-radius: 3px;
  padding: 6px 10px;
  transition: border-color 0.2s;
}
.nav-brand:hover {
  border-color: rgba(188,206,221,0.85);
}
.nav-brand-logo {
  height: 60px;
  width: auto;
  display: block;
  mix-blend-mode: screen;
  opacity: 0.95;
}
.nav-cta { display:flex; align-items:center; gap:6px; font-size:12px; font-weight:700; color:#25D366; text-decoration:none; background:transparent; padding:10px 14px; border-radius:2px; border:1.5px solid #25D366; transition:background 0.2s,color 0.2s; flex-shrink:0; margin-left:auto; white-space:nowrap; }
.nav-cta:hover { background:rgba(37,211,102,0.1); }
.nav-tel { display:flex; align-items:center; gap:6px; font-size:11px; font-weight:700; color:var(--sky2); text-decoration:none; background:transparent; padding:9px 14px; border-radius:2px; border:1px solid var(--sky2); transition:background 0.2s; flex-shrink:0; }
.nav-tel:hover { background:rgba(106,174,212,0.1); }
.nav-menu-wrap { position:relative; border-top:1px solid var(--divider2); }
.nav-menu { display:flex; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.nav-menu::-webkit-scrollbar { display:none; }
.nav-arr { display:flex; align-items:center; position:absolute; top:0; bottom:0; z-index:10; background:linear-gradient(90deg,rgba(16,37,64,0.97) 60%,transparent); border:none; color:var(--muted); font-size:14px; font-weight:700; cursor:pointer; padding:0 10px; transition:color 0.2s; -webkit-tap-highlight-color:transparent; }
.nav-arr:hover { color:var(--silver); }
.nav-arr-l { left:0; background:linear-gradient(90deg,rgba(16,37,64,0.97) 60%,transparent); }
.nav-arr-r { right:0; background:linear-gradient(270deg,rgba(16,37,64,0.97) 60%,transparent); }
.nav-arr.hidden { opacity:0; pointer-events:none; }
.nav-menu a { font-size:11px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--muted); text-decoration:none; padding:10px 18px; white-space:nowrap; flex-shrink:0; border-right:1px solid var(--divider2); position:relative; transition:color 0.2s; }
.nav-menu a::after { content:''; position:absolute; bottom:0; left:18px; right:18px; height:1px; background:var(--sky); transform:scaleX(0); transition:transform 0.25s; }
.nav-menu a:hover { color:var(--silver); }
.nav-menu a.active { color:var(--sky); }
.nav-menu a.active::after { transform:scaleX(1); }

/* ══ MAIN ══ */
main { min-height:100vh; padding-top:140px; position:relative; z-index:1; background:var(--navy); }
.block { background:var(--navy); }

/* ══ HERO ══ */
.hero { padding:60px 24px 56px; position:relative; overflow:hidden; background:linear-gradient(160deg,#0a1f38 0%,var(--navy) 50%,#14304e 100%); border-bottom:1px solid var(--divider); }
.hero::before { content:''; position:absolute; left:0; top:0; bottom:0; width:2px; background:linear-gradient(180deg,transparent 0%,var(--gold) 30%,var(--sky) 70%,transparent 100%); opacity:0.6; }
.hero::after { content:''; position:absolute; right:-120px; top:-80px; width:380px; height:380px; border-radius:50%; background:radial-gradient(circle,rgba(78,158,200,0.10) 0%,transparent 70%); pointer-events:none; }
.hero-tag { display:inline-flex; align-items:center; gap:10px; margin-bottom:28px; opacity:0; animation:fadeUp 0.8s ease forwards 0.1s; }
.hero-tag-line { width:28px; height:1px; background:var(--gold2); }
.hero-tag-text { font-size:9px; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:var(--sky); }
.hero-title { font-family:'Playfair Display',serif; font-size:clamp(30px,8.5vw,50px); font-weight:900; line-height:1.1; color:var(--white); margin-bottom:28px; opacity:0; animation:fadeUp 0.8s ease forwards 0.25s; text-align:center; }
.hero-title .arca { color:var(--sky2); }
.hero-divider { width:48px; height:1px; background:linear-gradient(90deg,var(--gold),transparent); margin-bottom:24px; opacity:0; animation:fadeUp 0.8s ease forwards 0.4s; }
.hero-lead { font-size:15px; font-weight:300; line-height:1.8; color:var(--text); margin-bottom:36px; text-align:justify !important; opacity:0; animation:fadeUp 0.8s ease forwards 0.5s; }
.hero-btns { display:flex; flex-direction:column; gap:12px; opacity:0; animation:fadeUp 0.8s ease forwards 0.6s; }
.btn-primary { display:block; text-align:center; text-decoration:none; background:var(--sky); color:#ffffff; font-size:12px; font-weight:700; letter-spacing:2px; text-transform:uppercase; padding:17px 24px; border-radius:2px; transition:background 0.2s,transform 0.15s,box-shadow 0.2s; box-shadow:0 4px 16px rgba(78,158,200,0.25); }
.btn-primary:hover { background:var(--sky2); transform:translateY(-2px); box-shadow:0 6px 20px rgba(78,158,200,0.35); }
.btn-secondary { display:block; text-align:center; text-decoration:none; background:transparent; color:var(--silver2); font-size:12px; font-weight:400; letter-spacing:1px; padding:16px 24px; border-radius:2px; border:1px solid rgba(200,215,228,0.25); transition:border-color 0.2s,color 0.2s; }
.btn-secondary:hover { border-color:var(--silver); color:var(--white); }

/* ══ ALERTA — negro/amarillo centrado ══ */
.alerta {
  background:#0a0a0a;
  border-top:2px solid var(--yellow);
  border-bottom:2px solid var(--yellow);
  overflow:hidden;
}
.alerta-inner {
  display:flex;
  align-items:stretch;
  height:68px;
  margin:0; padding:0;
}
.alerta-text {
  flex:1;
  display:flex; align-items:center;
  padding:0 16px 0 20px;
  font-size:12px; line-height:1.4;
  color:var(--yellow); letter-spacing:0.3px;
  margin:0;
}
.alerta-text strong { color:#fff; font-weight:700; }
.alerta-cta {
  display:flex; align-items:center; justify-content:center;
  padding:0 20px;
  background:var(--yellow);
  font-size:10px; font-weight:800; letter-spacing:2px;
  text-transform:uppercase; color:#0a0a0a;
  white-space:nowrap; cursor:pointer; text-decoration:none;
  transition:opacity 0.2s; flex-shrink:0;
  min-width:110px;
  align-self:stretch;
}
.alerta-cta:hover { opacity:0.85; }

/* ══ FRANJA ESTADÍSTICAS ══ */
.stats-strip {
  display:flex; align-items:center; justify-content:space-around;
  padding:28px 0 0 0;
  margin-top:32px;
  border-top:1px solid var(--divider);
}
.stat-item {
  display:flex; flex-direction:column; align-items:center; gap:6px;
  flex:1; text-align:center;
}
.stat-num {
  font-family:'Playfair Display', serif;
  font-size:clamp(26px,7vw,40px); font-weight:900;
  color:var(--sky2); line-height:1; letter-spacing:-0.5px;
}
.stat-desc {
  font-size:10px; font-weight:500; letter-spacing:1px;
  text-transform:uppercase; color:var(--muted);
  line-height:1.4; text-align:center;
}
.stat-cargo-ex {
  font-size:9px; font-weight:600; letter-spacing:2px;
  text-transform:uppercase; color:var(--muted);
  display:block; text-align:center;
  margin:0; padding:0; line-height:1.1;
}
.stat-cargo-main {
  font-family:'Playfair Display', serif;
  font-size:clamp(13px,3.5vw,16px); font-weight:700;
  color:var(--sky2); line-height:1.1;
  text-align:center; display:block;
  margin:0; padding:0;
}
.stat-cargo-org {
  font-size:9px; font-weight:600; letter-spacing:2px;
  text-transform:uppercase; color:var(--silver);
  display:block; text-align:center;
  margin:0; padding:0; line-height:1.1;
}
.stat-num-small {
  font-family:'Playfair Display', serif;
  font-size:clamp(13px,3.5vw,17px); font-weight:700;
  color:var(--sky2); line-height:1.2; letter-spacing:0.3px;
  text-align:center; display:block;
}
.stat-sep {
  width:1px; height:40px;
  background:linear-gradient(180deg, transparent, var(--divider), transparent);
  flex-shrink:0;
}

/* ══ STATS ══ */
.hero-stats { padding:36px 24px; background:var(--navy2); border-bottom:1px solid var(--divider); position:relative; }
.hero-stats::before { content:''; position:absolute; left:0; top:0; bottom:0; width:2px; background:linear-gradient(180deg,var(--gold) 0%,transparent 100%); opacity:0.4; }
.stats-label { font-size:9px; font-weight:600; letter-spacing:3px; text-transform:uppercase; color:var(--muted); margin-bottom:20px; display:block; }
.stat-row { display:flex; align-items:stretch; gap:10px; margin-bottom:14px; }
.stat-row:last-child { margin-bottom:0; }
.stat-box { flex:1; padding:16px 12px; border-radius:2px; text-align:center; position:relative; overflow:hidden; }
.stat-box::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(255,255,255,0.02) 0%,transparent 60%); }
.stat-box.from { background:rgba(160,40,40,0.12); border:1px solid rgba(192,57,43,0.25); }
.stat-box.to   { background:rgba(24,100,55,0.12);  border:1px solid rgba(30,122,69,0.25); }
.stat-lbl { font-size:8px; font-weight:700; letter-spacing:2px; text-transform:uppercase; display:block; margin-bottom:8px; }
.stat-box.from .stat-lbl { color:rgba(220,100,100,0.7); }
.stat-box.to   .stat-lbl { color:rgba(80,180,120,0.7); }
.stat-val { font-family:'Playfair Display',serif; font-size:22px; font-weight:700; display:block; line-height:1; }
.stat-box.from .stat-val { color:#d87070; text-decoration:line-through; text-decoration-color:rgba(216,112,112,0.4); }
.stat-box.to   .stat-val { color:#5cba88; }
.stat-arrow { display:flex; align-items:center; justify-content:center; font-size:14px; color:var(--muted); flex-shrink:0; width:24px; }

/* ══ BLOQUES ══ */
.block { padding:56px 24px; border-bottom:1px solid var(--divider); position:relative; }
.block.alt { background:var(--navy2); }
.block:last-child { border-bottom:none; }
.lbl { display:flex; align-items:center; gap:10px; font-size:9px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:var(--sky); margin-bottom:24px; }
.lbl-line { width:20px; height:1px; background:var(--gold2); flex-shrink:0; }

p { font-size:15px; line-height:1.85; color:var(--text); margin-bottom:16px; font-weight:300; text-align:justify; }
p:last-child { margin-bottom:0; }
p strong { color:var(--silver2); font-weight:600; }
p em { color:var(--silver2); font-style:italic; }
.p-sm { font-size:14px; line-height:1.8; }

.sep { display:flex; align-items:center; gap:12px; margin:36px 0; }
.sep-line { flex:1; height:1px; background:var(--divider); }
.sep-dot { width:4px; height:4px; border-radius:50%; background:var(--gold2); flex-shrink:0; }


/* ══ FOTO PERFIL ══ */
.sobre-foto {
  width: 100%;
  max-width: 320px;
  margin: 0 auto 32px auto;
  display: block;
  position: relative;
}
.sobre-foto img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
  border: 1px solid rgba(200,215,228,0.30);
  box-shadow: 0 8px 32px rgba(0,0,0,0.35), 0 0 0 1px rgba(200,215,228,0.12);
}

/* ══ SOBRE MI ══ */
.sobre-highlight { background:rgba(106,174,212,0.05); border:1px solid rgba(106,174,212,0.15); border-left:3px solid var(--sky); border-radius:2px; padding:24px 20px; margin-bottom:32px; }
.sobre-highlight-text { font-family:'Playfair Display',serif; font-size:clamp(16px,4.5vw,21px); font-weight:700; line-height:1.55; color:var(--white); text-align:center; }
.sobre-highlight-text .hl-gold { color:var(--gold2); }
.sobre-highlight-text .hl-sky  { color:var(--sky2); }
.ryasa-link { display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--sky); text-decoration:none; margin-top:32px; padding-bottom:3px; border-bottom:1px solid rgba(106,174,212,0.3); transition:border-color 0.2s,color 0.2s; }
.ryasa-link:hover { border-color:var(--sky); color:var(--sky2); }
.ryasa-link-arrow { font-size:14px; transition:transform 0.2s; }
.ryasa-link:hover .ryasa-link-arrow { transform:translateX(3px); }

/* ══ SERVICIOS ══ */
.serv-block { padding-bottom:40px; }
.serv-block + .serv-block { padding-top:40px; }

/* Título de servicio como bloque destacado con barra celeste */
.serv-title-block {
  background:rgba(106,174,212,0.05);
  border:1px solid rgba(106,174,212,0.15);
  border-left:3px solid var(--sky);
  border-radius:2px;
  padding:18px 20px;
  margin-bottom:24px;
}
.serv-title {
  font-family:'Playfair Display',serif;
  font-size:clamp(20px,5vw,26px); font-weight:700;
  color:var(--white); line-height:1.2; text-align:center;
  margin:0;
}

/* Pull quote */
.pull-quote { margin:28px 0 20px; padding:20px 20px 20px 24px; background:rgba(212,170,74,0.06); border-left:3px solid var(--gold2); border-radius:0 2px 2px 0; }
.pull-quote p { font-family:'Playfair Display',serif; font-size:clamp(15px,4vw,18px); font-weight:700; font-style:italic; color:var(--silver2); line-height:1.5; margin-bottom:0; text-align:left; }

/* CTA inline */
.cta-inline { display:block; text-align:center; text-decoration:none; background:transparent; color:var(--sky); font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; padding:14px 24px; border-radius:1px; margin-top:24px; border:1px solid rgba(106,174,212,0.3); transition:background 0.2s,color 0.2s,border-color 0.2s; }
.cta-inline:hover { background:rgba(106,174,212,0.08); border-color:var(--sky); color:var(--sky2); }

/* ══ EXPERIENCIA pull quote ══ */
.exp-pull { margin-bottom:36px; padding:28px 24px; background:rgba(255,255,255,0.02); border-top:1px solid rgba(106,174,212,0.2); border-bottom:1px solid rgba(106,174,212,0.2); position:relative; overflow:hidden; }
.exp-pull::before { content:'\201C'; position:absolute; top:-10px; left:12px; font-family:'Playfair Display',serif; font-size:100px; font-weight:900; color:rgba(106,174,212,0.08); line-height:1; pointer-events:none; }
.exp-pull-main { font-family:'Playfair Display',serif; font-size:clamp(18px,5vw,24px); font-weight:700; font-style:italic; color:var(--white); line-height:1.4; text-align:center; margin-bottom:12px; }
.exp-pull-main em { color:var(--sky2); font-style:normal; }
.exp-pull-sub { font-size:12px; font-weight:400; font-style:italic; color:var(--muted); text-align:center; line-height:1.6; letter-spacing:0.3px; }

/* ══ CASOS ══ */
.caso-card { background:rgba(255,255,255,0.03); border:1px solid var(--divider); border-radius:3px; padding:28px 22px; margin-bottom:20px; position:relative; overflow:hidden; box-shadow:0 2px 12px rgba(0,0,0,0.2); }
.caso-card::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,var(--gold2),var(--sky),transparent); }
.caso-card:last-of-type { margin-bottom:0; }
.caso-empresa { font-size:9px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:var(--sky); display:block; margin-bottom:3px; }
.caso-impuesto { font-size:11px; color:var(--muted); display:block; margin-bottom:22px; font-style:italic; }
.caso-nums { display:flex; align-items:stretch; gap:10px; margin-bottom:20px; }
.cnum { flex:1; padding:16px 12px; border-radius:2px; text-align:center; position:relative; overflow:hidden; }
.cnum::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(255,255,255,0.025) 0%,transparent 60%); }
.cnum.from { background:rgba(160,40,40,0.1); border:1px solid rgba(192,57,43,0.2); }
.cnum.to   { background:rgba(24,100,55,0.1);  border:1px solid rgba(30,122,69,0.2); }
.cnum-lbl { font-size:8px; font-weight:700; letter-spacing:2px; text-transform:uppercase; display:block; margin-bottom:8px; }
.cnum.from .cnum-lbl { color:rgba(220,100,100,0.65); }
.cnum.to   .cnum-lbl { color:rgba(80,180,120,0.65); }
.cnum-val { font-family:'Playfair Display',serif; font-size:20px; font-weight:700; display:block; line-height:1; }
.cnum.from .cnum-val { color:#c87070; text-decoration:line-through; text-decoration-color:rgba(200,112,112,0.4); }
.cnum.to   .cnum-val { color:#4caa78; }
.cnum-arrow { display:flex; align-items:center; font-size:13px; color:var(--muted); flex-shrink:0; }
.caso-penal { background:rgba(255,255,255,0.02); padding:16px 18px; border-radius:2px; border-left:2px solid var(--gold2); margin-top:16px; }
.caso-penal-tag { font-size:8px; letter-spacing:2.5px; text-transform:uppercase; color:var(--sky); font-weight:700; margin-bottom:6px; display:block; }
.caso-penal p { font-size:13px; line-height:1.7; }
.caso-penal strong { color:var(--silver2); }
.resultado-cero { display:block; text-align:center; font-family:'Playfair Display',serif; font-size:44px; font-weight:900; color:#4caa78; margin:12px 0 8px; letter-spacing:-1px; }
.casos-cierre { margin-top:28px; padding:24px 22px; background:rgba(255,255,255,0.02); border:1px solid var(--divider); border-radius:2px; border-left:2px solid var(--gold2); }
.casos-cierre p { font-size:14px; font-style:italic; line-height:1.8; color:var(--silver); }

/* ══ CONTACTO ══ */
.contacto-hook-block {
  background: rgba(106,174,212,0.05);
  border: 1px solid rgba(106,174,212,0.15);
  border-left: 3px solid var(--sky);
  border-radius: 2px;
  padding: 24px 20px;
  margin-bottom: 28px;
}
.contacto-hook { font-family:'Playfair Display',serif; font-size:clamp(22px,6vw,32px); font-weight:700; line-height:1.2; color:var(--white); margin:0; text-align:center !important; }
.contacto-hook em { color:var(--sky2); font-style:italic; }
.wsp-btn { display:flex; align-items:center; justify-content:center; gap:10px; text-decoration:none; background:transparent; color:#25D366; font-size:12px; font-weight:700; letter-spacing:2px; text-transform:uppercase; padding:19px 24px; border-radius:2px; margin-top:32px; border:1px solid #25D366; transition:background 0.2s,transform 0.15s,box-shadow 0.2s; }
.wsp-btn:hover { background:rgba(37,211,102,0.08); transform:translateY(-2px); box-shadow:0 4px 16px rgba(37,211,102,0.15); }
.contacto-hours { margin-top:16px; padding:18px 20px; background:rgba(106,174,212,0.07); border:1px solid rgba(106,174,212,0.18); border-radius:2px; text-align:center; }
.contacto-hours-text { font-family:'Playfair Display',serif; font-size:16px; font-weight:700; color:var(--sky2); letter-spacing:0.3px; display:block; }
.contacto-hours-sub { font-size:11px; color:var(--muted); margin-top:4px; display:block; letter-spacing:0.5px; }

/* ══ FORMULARIO PROFESIONALES ══ */
.prof-form { margin-top:28px; display:flex; flex-direction:column; gap:16px; }
.prof-form-field { display:flex; flex-direction:column; gap:6px; }
.prof-form-field label { font-size:11px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted); }
.prof-form-optional { font-weight:400; text-transform:none; letter-spacing:0; font-size:10px; opacity:0.7; }
.prof-form-field input,
.prof-form-field select,
.prof-form-field textarea {
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--divider);
  border-radius: 2px;
  padding: 12px 14px;
  color: var(--text);
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  outline: none;
  transition: border-color 0.2s;
  width: 100%;
}
.prof-form-field input::placeholder,
.prof-form-field textarea::placeholder { color: var(--muted); }
.prof-form-field input:focus,
.prof-form-field select:focus,
.prof-form-field textarea:focus { border-color: var(--sky); }
.prof-form-field select { appearance: none; cursor: pointer; }
.prof-form-field textarea { resize: vertical; min-height: 80px; }
.prof-form-btn {
  margin-top: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: transparent;
  color: #25D366;
  font-family: 'DM Sans', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 19px 24px;
  border-radius: 2px;
  border: 1.5px solid #25D366;
  cursor: pointer;
  transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
}
.prof-form-btn:hover { background: rgba(37,211,102,0.08); transform: translateY(-2px); box-shadow: 0 4px 16px rgba(37,211,102,0.15); }

/* ══ FOOTER ══ */
footer { background:#091829; padding:32px 24px; text-align:center; border-top:1px solid var(--divider2); position:relative; }
footer::before { content:''; position:absolute; top:0; left:24px; right:24px; height:1px; background:linear-gradient(90deg,transparent,var(--divider),transparent); }
.footer-name { font-family:'Playfair Display',serif; font-size:14px; font-weight:700; color:rgba(184,200,216,0.35); display:block; margin-bottom:8px; }
footer p { font-size:11px; line-height:2; color:var(--muted); margin-bottom:0; text-align:center; }
footer a { color:var(--sky); text-decoration:none; }

/* ══ REDES SOCIALES ══ */
.social-links { display:flex; justify-content:center; gap:20px; margin-top:20px; margin-bottom:4px; }
.social-icon { color:var(--muted); transition:color 0.2s; display:flex; align-items:center; }
.social-icon:hover { color:var(--sky2); }

/* ══ FADE ══ */
.fade { opacity:0; transform:translateY(18px); transition:opacity 0.7s ease,transform 0.7s ease; }
.fade.on { opacity:1; transform:none; }
.fade-d1 { transition-delay:0.1s; }
.fade-d2 { transition-delay:0.2s; }

@keyframes fadeUp {
  from { opacity:0; transform:translateY(16px); }
  to   { opacity:1; transform:translateY(0); }
}

/* ══ DESKTOP ══════════════════════════════════════ */
@media (min-width: 768px) {

  /* Variable de padding lateral que mantiene el contenido en 860px */
  :root {
    --side: max(40px, calc((100vw - 860px) / 2));
  }

  /* ── NAV ── */
  .nav-top {
    max-width: 860px;
    margin: 0 auto;
    padding: 14px 40px;
  }
  .nav-brand-logo { height: 92px; }
  .nav-cta { font-size: 13px; padding: 13px 20px; gap: 8px; }
  .nav-arr { display: none !important; }
  .nav-menu { justify-content: flex-start; overflow-x: visible; }
  .nav-menu a { padding: 10px 22px; font-size: 11px; }

  /* ── MAIN base ── */
  main { padding-top: 98px; }

  /* ── HERO ── */
  .hero {
    padding: 88px var(--side) 80px;
  }
  .hero-title { font-size: clamp(42px, 5.5vw, 64px); line-height: 1.05; }
  .hero-lead  { font-size: 17px; line-height: 1.9; text-align: justify; }
  .hero-btns  { flex-direction: row; align-items: center; justify-content: center; gap: 16px; }
  .btn-primary  { display: inline-block; width: auto; min-width: 240px; }
  .btn-secondary{ display: inline-block; width: auto; }
  .stats-strip  { padding: 44px 0 8px; }
  .stat-num     { font-size: clamp(30px, 3.5vw, 44px); }

  /* ── ALERTA ── */
  .alerta-inner {
    max-width: 860px;
    margin: 0 auto;
    padding: 0 40px;
  }

  /* ── HERO STATS ── */
  .hero-stats {
    padding: 52px var(--side) 52px;
  }
  .stat-row    { gap: 16px; }
  .stat-val    { font-size: 28px; }
  .stat-box    { padding: 20px 20px; }

  /* ── BLOQUES: mismo fondo que página → se pueden centrar ── */
  .block {
    max-width: 860px;
    margin: 0 auto;
    padding: 72px 40px;
  }

  /* ── PÁRRAFOS en desktop ── */
  p { font-size: 16px; line-height: 1.9; text-align: justify; }

  /* ── SOBRE MÍ: foto + contenido en grid ── */
  .page-sobre .block {
    display: grid;
    grid-template-columns: 210px 1fr;
    column-gap: 44px;
    align-items: start;
  }
  .page-sobre .lbl {
    grid-column: 1 / -1;
  }
  .page-sobre .sobre-foto {
    grid-column: 1;
    grid-row: 2 / span 20;
    float: none;
    width: 100%;
    max-width: none;
    margin: 0;
  }
  .page-sobre .block > *:not(.lbl):not(.sobre-foto) {
    grid-column: 2;
  }
  .page-sobre .ryasa-link {
    display: block;
    width: fit-content;
  }
  .page-sobre .block::after { display: none; }

  /* ── SERVICIOS: dos columnas ── */
  .page-servicios .block {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 52px;
    align-items: start;
  }
  .page-servicios .lbl  { grid-column: 1 / -1; }
  .page-servicios .sep  { display: none; }
  .serv-block      { padding-top: 0 !important; padding-bottom: 0 !important; }
  .serv-title      { font-size: clamp(20px, 2.2vw, 28px); }

  /* ── CASOS ── */
  .exp-pull-main { font-size: clamp(20px, 2.5vw, 28px); }
  .caso-nums     { gap: 14px; }
  .cnum-val      { font-size: 24px; }

  /* ── CONTACTO: botones centrados con ancho automático ── */
  .wsp-btn {
    display: block;
    width: fit-content;
    min-width: 300px;
    margin: 16px auto 0;
  }
  .contacto-hook { font-size: clamp(26px, 3vw, 36px); }

  /* ── FOOTER ── */
  footer { padding: 40px var(--side) 40px; }

}

/* ══ WIDE (≥1100px): ajuste fino ══ */
@media (min-width: 1100px) {
  .hero-lead { font-size: 18px; }
  .block { padding: 80px 40px; }
}

/* ══ SEO: headings visible to crawlers, visually deferred to .lbl ══ */
.visually-hidden-heading {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
/* stats-label promoted to H2 — keep original visual style */
h2.stats-label {
  font-size: 9px; font-weight: 600; letter-spacing: 3px;
  text-transform: uppercase; color: var(--muted);
  margin-bottom: 20px; display: block;
  font-family: inherit;
}
/* intro-summary block */
#intro-summary { border-bottom: 1px solid var(--divider); }
#intro-summary p { text-align: justify; }

/* ══ FAQ ══ */
.faq-item { margin-bottom: 0; }
.faq-question {
  font-family: 'Playfair Display', serif;
  font-size: clamp(17px, 4vw, 22px);
  font-weight: 700;
  color: var(--white);
  line-height: 1.3;
  margin-bottom: 16px;
  background: rgba(78,158,200,0.05);
  border: 1px solid rgba(78,158,200,0.15);
  border-left: 3px solid var(--sky);
  border-radius: 2px;
  padding: 16px 20px;
}
.faq-answer p { text-align: justify; }
