/* Jurídico Virtual · Edición visual 2026
   Capa de presentación. No modifica contenidos, rutas ni comportamiento.
   Fuentes locales con licencia SIL Open Font License en /fonts/. */
@font-face { font-family: 'JV Display'; src: url('../fonts/BebasNeue-Regular.ttf') format('truetype'); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: 'JV Sans'; src: url('../fonts/Manrope-Variable.ttf') format('truetype'); font-style: normal; font-weight: 200 800; font-display: swap; }

:root {
  --jv-ink: #132a36;
  --jv-night: #101f29;
  --jv-paper: #f7f5ef;
  --jv-sand: #eeebe3;
  --jv-gold: #c3a774;
  --jv-bronze: #78603a;
  --jv-text: #4c5a60;
  --jv-line: #d8d8ce;
  --azul: var(--jv-ink); --azul-dark: var(--jv-night); --azul-light: #27414c;
  --dorado: var(--jv-bronze); --dorado-light: var(--jv-gold);
  --crema: var(--jv-sand); --gris: var(--jv-text); --gris-claro: var(--jv-line);
  --ink: var(--jv-ink); --muted: var(--jv-text); --surface: var(--jv-paper);
  --accent: var(--jv-bronze); --accent-dark: #645031; --accent-soft: #ece5d7;
  --line: var(--jv-line); --editorial-line: var(--jv-line); --editorial-accent: var(--jv-bronze);
  --font-display: 'JV Display', 'Arial Narrow', Impact, sans-serif;
  --font-body: 'JV Sans', 'Manrope', Arial, sans-serif;
  --radius: 5px; --radius-lg: 8px;
  --shadow-sm: 0 8px 24px rgba(16,31,41,.04);
  --shadow-md: 0 24px 50px rgba(16,31,41,.08);
}
html { scroll-padding-top: 100px; background: var(--jv-paper); }
body { background: var(--jv-paper); color: var(--jv-ink); font-family: var(--font-body); line-height: 1.75; }
::selection { background: #d8c5a2; color: #101f29; }
h1,h2,h3,h4,h5,h6,.hero-title,.section-title,.page-hero h1 {
  font-family: var(--font-display) !important;
  font-weight: 400 !important; letter-spacing: .012em !important;
  font-style: normal !important;
}
h1 em,h2 em,h3 em { font-style: normal !important; }
p,li { overflow-wrap: break-word; }
a,button,input,select,textarea,summary { -webkit-tap-highlight-color: transparent; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline: 3px solid #a07e43 !important; outline-offset: 5px; }
input:focus-visible,select:focus-visible,textarea:focus-visible { outline: 2px solid #a07e43 !important; outline-offset: 3px; }
.container { width: min(1240px, calc(100% - 72px)); }
.section { padding: 96px 0; }

/* Identidad y navegación */
#main-header,#main-header.scrolled {
  background: rgba(250,249,245,.98) !important;
  border-bottom: 1px solid #dcded6 !important;
  box-shadow: none !important; backdrop-filter: blur(16px);
}
#main-header .navbar { max-width: 1480px; min-height: 88px; padding: 12px 32px; gap: 20px; }
.logo { min-width: 204px; gap: 13px; }
.logo::after { font-size: .72rem !important; letter-spacing: .11em !important; color: var(--jv-ink) !important; }
.logo img { width: 39px !important; height: 56px !important; }
#main-header .nav-links { gap: 0; }
#main-header .nav-links li a { padding: 12px 10px; font-size: .73rem; font-weight: 700; color: var(--jv-ink); border-radius: 3px; }
#main-header .nav-links li a:hover,#main-header .nav-links li a.active { background: #eeebe3; color: var(--jv-ink); box-shadow: none; }
#main-header .nav-links li a:not(.nav-cta)::after { background: var(--jv-bronze); height: 2px; }
#main-header .nav-links li a.nav-cta,
#main-header .nav-links li a.nav-cta:visited,
#main-header .nav-links li a.nav-cta.active {
  background: var(--jv-ink) !important; border-color: var(--jv-ink) !important;
  color: #fff !important; -webkit-text-fill-color: #fff; box-shadow: none !important;
  padding: 12px 19px; border-radius: 3px;
}
#main-header .nav-links li a.nav-cta:hover { background: #314b57 !important; border-color: #314b57 !important; }
.nav-social > a:first-child,.nav-wa { border-radius: 3px !important; }
.nav-wa { background: transparent !important; border: 1px solid #c7cec4 !important; color: #285747 !important; }

/* Acciones: contraste, foco y objetivos cómodos para tocar */
.btn { min-height: 52px; padding: 15px 24px; border-radius: 4px !important; font-size: .76rem; font-weight: 800; letter-spacing: .055em; box-shadow: none !important; }
.btn-primary { background: var(--jv-ink) !important; border-color: var(--jv-ink) !important; color: #fff !important; }
.btn-primary:hover { background: #314b57 !important; border-color: #314b57 !important; transform: translateY(-2px); }
.btn-outline { border-color: #89999f !important; color: var(--jv-ink) !important; background: transparent !important; }
.btn-outline:hover { background: var(--jv-sand) !important; }
.btn-wa,.wa-btn-lg { background: #245b48 !important; border-color: #245b48 !important; color: #fff !important; border-radius: 4px !important; box-shadow: none !important; }
.btn-wa:hover,.wa-btn-lg:hover { background: #174634 !important; border-color: #174634 !important; }
.btn-outline-light { border-color: #8f9b9e !important; border-radius: 4px !important; color: #fff !important; background: transparent !important; }
.btn-outline-light:hover { background: #ffffff12 !important; }
.btn:disabled { opacity: .65; cursor: wait; transform: none; }
.whatsapp-float { bottom: 24px; right: 24px; width: 54px; height: 54px; border-radius: 50% !important; background: #245b48 !important; box-shadow: 0 6px 22px #101f2929 !important; border: 1px solid #ffffff55; animation: none !important; }

/* Portada: tipografía editorial sobre azul tinta */
.hero { padding: 148px 0 64px !important; background: var(--jv-night) !important; color: #f7f5ef; min-height: auto !important; }
.hero-bg { display: block !important; opacity: .045 !important; filter: grayscale(1) !important; }
.hero-overlay { background: linear-gradient(90deg,rgba(16,31,41,.45),rgba(16,31,41,.1)) !important; }
.hero-inner { width: min(1320px,calc(100% - 72px)) !important; grid-template-columns: minmax(0,1.2fr) minmax(0,.9fr) !important; gap: clamp(32px,5vw,80px) !important; align-items: center; }
.hero-content { padding-top: 0 !important; min-width: 0; }
.hero-signature { color: #d4c3a6 !important; font-size: .67rem; letter-spacing: .14em; margin-bottom: 25px; grid-template-columns: 28px auto; }
.hero-signature::before { background: var(--jv-gold); height: 2px; }
.hero-signature::after { display: none; }
.hero-title {
  font-size: clamp(4.5rem,7.25vw,6.9rem) !important;
  line-height: .98 !important; letter-spacing: .005em !important;
  color: #f7f5ef !important; margin: 0 0 25px !important;
  max-width: 100%; text-wrap: initial; text-shadow: none !important;
}
.hero-title em { display: block; color: var(--jv-gold) !important; background: none !important; -webkit-text-fill-color: var(--jv-gold) !important; }
.hero-divider { margin: 0 0 20px; opacity: .65; }
.hero-divider span { background: #c3a77455 !important; }
.hero-divider i { color: var(--jv-gold) !important; }
.hero-subtitle { color: #c8d0d0 !important; font-size: 1rem !important; line-height: 1.8 !important; max-width: 54ch; margin-bottom: 26px !important; }
.hero-actions { gap: 12px !important; margin-bottom: 32px !important; }
.hero .btn-primary { background: #d1b781 !important; border-color: #d1b781 !important; color: #132a36 !important; }
.hero .btn-primary:hover { background: #e0cba3 !important; border-color: #e0cba3 !important; }
.hero .btn-outline { color: #f7f5ef !important; border-color: #75828a !important; }
.hero .btn-outline:hover { background: #ffffff12 !important; }
.hero-stats { background: transparent !important; border: 0 !important; border-top: 1px solid #ffffff26 !important; border-radius: 0 !important; padding: 24px 0 0 !important; gap: 22px !important; box-shadow: none !important; backdrop-filter: none; }
.hero-stats .stat { display: grid; grid-template-columns: 1fr; grid-template-rows: auto 1fr; background: none !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; box-shadow: none !important; transform: none !important; min-height: auto; gap: 5px; overflow: visible; }
.hero-stats .stat::after { content: none; }
.hero-stats .stat-icon { display: none; }
.hero-stats .stat-number,.hero-stats .stat-plus { font-family: var(--font-display); font-weight: 400; font-size: 2.7rem; color: #f7f5ef !important; letter-spacing: .015em; }
.hero-stats .stat-plus { color: var(--jv-gold) !important; font-size: 1.9rem; }
.hero-stats .stat-label { color: #bac6ca !important; font-size: .68rem !important; line-height: 1.5; text-wrap: initial; font-weight: 500; letter-spacing: 0; }
.hero-img-col { min-width: 0; width: 100%; }
.hero-img-frame { padding: 0 !important; box-shadow: none !important; background: none !important; }
.hero-desktop-preview-stage { height: clamp(510px,44vw,590px); border: 1px solid #ffffff26; border-radius: 3px 60px 3px 3px; background: #1c333d; }
.hero-topic-preview::before,.hero-topic-preview::after { display: none; }
.hero-topic-overlay { background: linear-gradient(180deg,#101f2900 0%,#101f2955 28%,#101f29eb 75%,#101f29 100%); }
.hero-topic-services { background: linear-gradient(150deg,#2f4650,#162c37); }
.hero-topic-sites { background: linear-gradient(150deg,#3a4a48,#172e35); }
.hero-topic-facebook { background: linear-gradient(150deg,#304858,#142c3c); }
.hero-topic-content { left: 34px; right: 34px; bottom: 38px; }
.hero-topic-icon { width: 43px; height: 43px; border-radius: 3px; margin-bottom: 18px; background: #ffffff0a; color: #dcc8a3; box-shadow: none; }
.hero-topic-content small { color: #e0cba3; font-size: .65rem; letter-spacing: .16em; }
.hero-topic-content strong { font-family: var(--font-display); font-weight: 400; font-size: clamp(2rem,3.25vw,3.2rem); line-height: 1.06; letter-spacing: .018em; max-width: 20ch; }
.hero-topic-content > span:not(.hero-topic-icon) { color: #d0d7d6; font-size: .85rem; }
.hero-topic-content b { font-size: .7rem; margin-top: 20px; color: #eadabd; border-color: #c3a77477; }
.hero-preview-controls-desktop { top: 16px; left: 16px; right: auto; background: #101f29cf; border-radius: 3px; padding: 3px; box-shadow: none; gap: 1px; }
.hero-preview-control { width: 38px; height: 38px; border-radius: 3px; }
.hero-preview-dots { gap: 0; }
.hero-preview-dots button { width: 22px; height: 38px; border-radius: 0; background: radial-gradient(circle,currentColor 2.5px,transparent 3px); }
.hero-preview-dots button[aria-current="true"] { width: 22px; color: var(--jv-gold); background: radial-gradient(circle,currentColor 4px,transparent 4.5px); }
.hero-site-logo-trio { top: 85px; }

/* Ritmo de lectura y secciones */
.section-header { text-align: left !important; max-width: none; margin-bottom: 44px !important; }
.section-eyebrow { color: var(--jv-bronze) !important; font-size: .7rem !important; letter-spacing: .17em !important; font-weight: 800; }
.section-eyebrow::before,.section-eyebrow::after { background: var(--jv-gold) !important; }
.section-title { font-size: clamp(2.8rem,4.5vw,4.5rem) !important; line-height: 1.04 !important; max-width: 25ch; margin: 12px 0 20px !important; color: var(--jv-ink) !important; text-wrap: balance; }
.section-title em { color: var(--jv-bronze) !important; }
.section-desc { max-width: 76ch !important; margin-inline: 0 !important; color: var(--jv-text) !important; font-size: .97rem !important; line-height: 1.8 !important; }
.noticias-section { background: var(--jv-paper) !important; }
.servicios-section { background: var(--jv-sand) !important; }
.about-section { background: var(--jv-paper) !important; }
.clientes-section { background: #fff !important; border-bottom: 1px solid var(--jv-line); padding: 30px 0 !important; }
.clientes-title { color: #59645f !important; font-size: .65rem; letter-spacing: .17em; }
.cliente-logo { border: 0 !important; border-radius: 0 !important; background: #fff !important; box-shadow: none !important; }

/* Actualidad */
.news-grid { gap: 26px; }
.news-card { border: 1px solid var(--jv-line) !important; border-radius: 5px !important; background: #fdfcf9 !important; box-shadow: none !important; }
.news-card:hover { border-color: #9ba79f !important; box-shadow: 0 16px 30px #102a3810 !important; transform: translateY(-4px); }
.news-card-img { border-radius: 0 !important; overflow: hidden; }
.news-card-img::after { background: none !important; }
.news-card-img img,.news-card-img .news-image { height: 230px !important; }
.news-tag { background: #132a36 !important; color: #f7f5ef !important; border-radius: 2px !important; font-size: .64rem; font-weight: 700; padding: 7px 11px; letter-spacing: .08em; }
.news-card-body { padding: 27px !important; }
.news-card-body h3 { font-size: 1.9rem !important; line-height: 1.15 !important; color: var(--jv-ink) !important; text-wrap: initial; }
.news-card-body p,.news-card-body .news-summary { color: var(--jv-text) !important; font-size: .88rem !important; line-height: 1.8 !important; }
.news-link,.servicio-link { color: var(--jv-bronze) !important; font-size: .7rem; letter-spacing: .08em; }
.news-fb-cta { background: #ebe9e0 !important; border: 1px solid #d8d8ce !important; border-radius: 4px !important; padding: 24px 28px !important; }
.news-fb-cta,.news-fb-cta p,.news-fb-cta p strong { color: var(--jv-ink) !important; }
.news-fb-cta > i { color: var(--jv-ink) !important; }
.news-fb-cta .btn-sm { color: var(--jv-ink) !important; border-color: #a9b1a7 !important; background: transparent !important; border-radius: 3px !important; }
.news-fb-cta .btn-sm:hover { background: var(--jv-ink) !important; color: #fff !important; }

/* Servicios: mismos directorios y desplegables */
.servicios-grid { gap: 20px; }
.servicio-card,.servicios-home-grid .servicio-card { background: #faf9f5 !important; border: 1px solid #d4d7cc !important; border-radius: 4px !important; padding: 28px 23px !important; box-shadow: none !important; }
.servicio-card::before { background: var(--jv-gold) !important; height: 3px; }
.servicio-card:hover { border-color: #a99a7a !important; transform: translateY(-4px); }
.servicio-icon,.servicio-card .servicio-icon { width: 54px !important; height: 54px !important; flex-basis: 54px !important; border-radius: 3px !important; border: 1px solid #d9ceb9 !important; background: #eee8db !important; color: #76603d !important; margin-bottom: 25px; box-shadow: none !important; }
.servicio-icon i { color: #76603d !important; font-size: 1.25rem !important; }
.servicio-card h3,.servicios-home-grid .servicio-card h3 { font-size: 1.8rem !important; line-height: 1.13 !important; color: var(--jv-ink) !important; }
.servicio-card p { color: var(--jv-text) !important; font-size: .86rem !important; line-height: 1.8 !important; }
.service-dossier { padding: 30px; background: #fdfcf9; border-color: var(--jv-line); border-radius: 5px; box-shadow: none; }
.service-dossier::before { width: 3px; background: var(--jv-gold); }
.service-dossier:hover { border-color: #a99a7a; box-shadow: 0 10px 30px #101f2908; }
.service-number { color: var(--jv-bronze); font-size: .67rem; letter-spacing: .14em; }
.service-dossier h3 { font-size: 2rem; line-height: 1.12; }
.service-dossier-lead,.service-dossier-detail p,.service-dossier-detail li { color: var(--jv-text); }
.service-dossier details { border-color: var(--jv-line); }
.service-dossier summary { color: var(--jv-ink); min-height: 52px; font-size: .78rem; }
.service-dossier summary::after { border-color: #baaa8e; color: var(--jv-bronze); border-radius: 2px; }
.service-dossier-detail li i { color: var(--jv-bronze); }

/* Firma y oficinas */
.about-text .about-lead { font-size: 1.08rem !important; color: var(--jv-ink) !important; }
.about-text > p:not(.about-lead),.pillar span { color: var(--jv-text) !important; }
.about-img-wrap { border-radius: 5px 54px 5px 5px !important; box-shadow: none !important; }
.about-inset-photo { border-radius: 3px; }
.about-stats-card { background: var(--jv-ink) !important; border-radius: 4px !important; border-color: var(--jv-ink) !important; box-shadow: 0 16px 35px #101f2920 !important; }
.about-stat strong { font-family: var(--font-display); font-weight: 400; font-size: 3rem !important; color: #e1c99b !important; }
.about-stat span { color: #e4e7e3 !important; font-size: .74rem; }
.about-stat-sep { background: #ffffff30 !important; }
.pillar > i,.login-feature > i { background: #eee8db !important; color: var(--jv-bronze) !important; border: 1px solid #d9ceb9; border-radius: 3px !important; box-shadow: none !important; }
.pillar strong { color: var(--jv-ink); }
.office-card { background: #fff !important; border-color: var(--jv-line) !important; border-radius: 5px !important; box-shadow: none !important; }
.office-card h3 { font-size: 2.4rem !important; color: var(--jv-ink) !important; }
.office-card .office-photo { border-radius: 4px !important; }

/* Portadas interiores */
.page-hero { min-height: 350px; padding: 148px 0 64px !important; background-image: linear-gradient(90deg,#101f29f5 0%,#101f29cc 50%,#101f294a 100%),var(--page-hero-image) !important; }
.page-hero h1 { font-size: clamp(3.4rem,6.5vw,6rem) !important; line-height: 1.02 !important; max-width: 24ch; margin-bottom: 17px; text-shadow: none; }
.page-hero p { color: #e1e4dc !important; font-size: 1rem; line-height: 1.8; max-width: 67ch; }

/* Recursos y filtros */
.filtros { gap: 9px !important; padding-bottom: 25px; }
.filtro-btn { min-height: 44px; border: 1px solid #c9cec4 !important; border-radius: 3px !important; background: #fff !important; color: var(--jv-text) !important; padding: 11px 17px !important; font: 700 .76rem var(--font-body); box-shadow: none !important; }
.filtro-btn.active,.filtro-btn:hover { background: var(--jv-ink) !important; border-color: var(--jv-ink) !important; color: #fff !important; }
.grupo-header { border-color: #cbd0c7 !important; }
.grupo-header h2 { font-size: 2.6rem !important; color: var(--jv-ink) !important; }
.grupo-header h2 span,.grupo-header h2 small { font-family: var(--font-body); font-size: .67rem; color: var(--jv-bronze); }
.grupo-icon { background: #eae4d6 !important; color: var(--jv-bronze) !important; border: 1px solid #d9ceb9; border-radius: 3px !important; box-shadow: none !important; }
.sitio-card { border-color: var(--jv-line) !important; border-radius: 5px !important; background: #fff !important; box-shadow: none !important; }
.sitio-card:hover { border-color: #a99a7a !important; box-shadow: 0 10px 25px #132a360d !important; }
.sitio-img-icon { background: #fff !important; border-bottom: 1px solid #e4e4da; }
.sitio-img-icon img { mix-blend-mode: normal; }
.sitio-body { padding: 23px !important; }
.sitio-body h3 { font-size: 1.65rem !important; line-height: 1.15 !important; color: var(--jv-ink) !important; }
.sitio-body p { color: var(--jv-text) !important; }
.sitio-tag { color: var(--jv-bronze) !important; background: #f3efe5 !important; border-radius: 2px !important; }
.sitio-link-badge { border-radius: 3px !important; color: var(--jv-ink) !important; background: #ebece5 !important; min-height: 44px; }
.sitios-cta-mid,.sitios-cta-mid[style] { background: var(--jv-ink) !important; border: 0; border-top: 3px solid var(--jv-gold); border-radius: 5px !important; padding: 42px !important; }
.sitios-cta-mid h3 { font-size: clamp(2rem,3.5vw,3rem) !important; letter-spacing: .015em; }
.sitios-cta-mid h3 em { color: #d5bd91 !important; }

/* Formularios y acceso */
.contact-section,.login-section { background: var(--jv-paper) !important; padding: 80px 0; }
.contact-info h2,.contact-form-wrap h2,.login-info h2 { font-size: clamp(2.4rem,3.5vw,3.6rem) !important; line-height: 1.08 !important; color: var(--jv-ink) !important; }
.contact-info > p,.contact-detail-text span,.contact-detail-text a,.login-info > p,.login-card-header p,.login-contact-note { color: var(--jv-text) !important; }
.contact-form-wrap,.login-card { background: #fff !important; border: 1px solid var(--jv-line) !important; border-top: 3px solid #b49764 !important; border-radius: 5px !important; box-shadow: 0 18px 50px #132a3608 !important; }
.contact-detail { border-color: var(--jv-line) !important; }
.contact-detail-icon,.lock-icon { background: #eee8db !important; color: var(--jv-bronze) !important; border-radius: 3px !important; box-shadow: none !important; }
.contact-photo,.map-wrap { border-radius: 4px !important; border-color: var(--jv-line) !important; box-shadow: none !important; }
.form-group label { color: var(--jv-ink) !important; font-size: .82rem; font-weight: 700; letter-spacing: .01em; }
.form-group input:not([type=checkbox]):not([type=hidden]),.form-group textarea,.form-group select {
  background: #fafaf7 !important; border: 1px solid #aebbb6; border-radius: 3px !important;
  color: var(--jv-ink) !important; min-height: 51px; font-family: var(--font-body); font-size: 1rem;
}
.form-group input::placeholder,.form-group textarea::placeholder { color: #727d7e !important; opacity: 1; }
.form-group input:focus,.form-group textarea:focus,.form-group select:focus { border-color: #917547 !important; background: #fff !important; box-shadow: none !important; }
.form-group .field-error { border-color: #b42318 !important; }
.privacy-consent { border-color: #d6cdbb; border-radius: 3px; background: #f5f1e7; }
.privacy-consent input { accent-color: #78603a; width: 22px; height: 22px; }
.privacy-consent label,.privacy-summary,.form-security-note { color: #53605f; }
.privacy-consent a,.login-contact-note a,.forgot a { color: #71572d !important; text-underline-offset: 3px; }
.form-security-note i { color: var(--jv-bronze); }
.login-card-header h3 { font-size: 2.4rem !important; }
.login-feature span { color: var(--jv-text); }
.login-divider::before,.login-divider::after { background: var(--jv-line); }

/* Artículos y aviso: medida de línea cómoda */
.article-page,.privacy-page { background: var(--jv-paper); }
.article-hero { min-height: 480px; padding: 154px 0 60px; }
.article-hero::after { background: linear-gradient(90deg,#101f29f2,#101f29b8 62%,#101f2944); }
.article-hero h1 { font-size: clamp(3rem,5.2vw,5.2rem); line-height: 1.04; max-width: 24ch; }
.article-hero p { color: #e1e4dc; }
.article-kicker { color: #dfc494; }
.article-kicker::before { background: var(--jv-gold); border-radius: 0; width: 24px; height: 2px; }
.article-body,.article-aside,.privacy-document { background: #fdfcf9; border-color: var(--jv-line); border-radius: 5px; box-shadow: none; }
.article-body h2,.privacy-document h2 { font-size: 2rem; line-height: 1.13; color: var(--jv-ink); }
.article-body p,.article-body li,.privacy-document p,.privacy-document li { color: var(--jv-text); }
.article-lead { color: var(--jv-ink) !important; }
.article-aside { border-top: 3px solid var(--jv-gold); }
.article-aside h2 { color: var(--jv-ink); font-size: 2rem; }
.article-aside p { color: var(--jv-text); }
.article-feature-image img { border-radius: 3px; box-shadow: none; }
.article-back,.privacy-document a { color: var(--jv-bronze); }
.privacy-document .privacy-updated { color: var(--jv-bronze); }
.privacy-contact-box { border-color: #d9ceb9; background: #f1eadc; border-radius: 3px; }
.privacy-contact-box > i { color: var(--jv-bronze); }

/* Cierre de página */
.cta-section { background: var(--jv-ink) !important; border-top: 1px solid #ffffff22; padding: 70px 0 !important; }
.cta-bg-overlay { background: linear-gradient(100deg,#132a36f5,#132a36e0) !important; }
.cta-content { gap: 48px; }
.cta-text h2 { font-size: clamp(2.4rem,3.5vw,3.7rem) !important; line-height: 1.08 !important; color: #f7f5ef !important; max-width: 28ch; }
.cta-text p { color: #cbd3d3 !important; }
.cta-actions { flex-shrink: 0; }
#footer { background: var(--jv-night) !important; color: #c5cdca; padding-top: 65px; }
.footer-grid { gap: 38px; }
#footer h4 { color: #d6bc8b !important; font-size: 1.65rem; letter-spacing: .05em !important; }
#footer h5 { color: #d6bc8b; font-size: 1.2rem; }
.footer-brand p,.footer-nav a,.oficina span,.footer-contacto a,.footer-horario p { color: #c5cdca !important; font-size: .81rem; line-height: 1.8; }
.footer-brand::after { letter-spacing: .1em; font-size: .78rem; }
.footer-nav a:hover,.footer-contacto a:hover { color: #eadabd !important; }
.oficina i,.footer-contacto li > i { color: #bea577 !important; }
.footer-social a { border-color: #ffffff35 !important; color: #e6e4da !important; border-radius: 3px !important; }
.footer-bottom { border-top: 1px solid #ffffff21; color: #aebbbd !important; padding: 24px 30px; }
.footer-bottom p,.footer-bottom a { color: #aebbbd !important; }

/* Tarjetas digitales: conservar identidad, QR, descarga y acciones */
body[data-profile] { --accent: #c3a774; --accent-rgb: 195,167,116; --accent-contrast: #132a36; --blue: #78603a; --blue-bright: #78603a; --paper: #faf9f5; --mist: #eeebe3; --radius-xl: 8px; --radius-lg: 5px; --radius-md: 4px; background: #eeebe3; }
.page .ambient { border-color: #bda77f55; animation: none; }
.card-shell { border: 1px solid #d0d2c8; border-radius: 8px; background: #faf9f5; box-shadow: 0 24px 70px #132a3618; }
.identity-panel { background: linear-gradient(160deg,#233b46,#101f29) !important; border-right: 1px solid #ffffff18; }
.profile-name { font-size: clamp(2.7rem,4.2vw,4.3rem) !important; line-height: 1.03 !important; color: var(--jv-ink); }
.profile-eyebrow { color: #78603a !important; letter-spacing: .16em; }
.profile-summary { color: #4c5a60; font-size: .92rem; line-height: 1.8; }
.action { border-radius: 3px; min-height: 48px; }
.action--primary { background: var(--jv-ink); color: #fff; }
.action--soft { background: #ece8de; border-color: #d8d2c4; color: var(--jv-ink); }
.detail__icon { background: #eee8db; color: #78603a; border-radius: 3px; }
.detail { border-color: #d8d8ce; }
.icon-button,.detail__action { border-radius: 3px; border-color: #d8d8ce; }
.qr-card,.save-card { border-radius: 4px; background: #fff; border-color: #d8d8ce; }
.save-card__link { color: #78603a; }
.identity-quote { line-height: 1.6; }

/* Adaptación sin alterar el orden de las secciones */
@media (min-width:921px) and (max-width:1180px) {
  #main-header .navbar { padding-inline: 22px; gap: 10px; }
  .logo { min-width: 184px; gap: 9px; }
  .logo::after { font-size: .66rem !important; }
  #main-header .nav-links li a { padding: 12px 7px; font-size: .68rem; }
  #main-header .nav-links li a.nav-cta { padding-inline: 12px; }
  .nav-social { gap: 4px; }
  .nav-wa { padding-inline: 8px !important; font-size: .65rem !important; }
  .hero-title { font-size: 5.1rem !important; }
  .hero-inner { gap: 32px !important; }
  .hero-topic-content { left: 26px; right: 26px; }
}
/* La navegación original colapsa a 1100 px; mantener ese umbral. */
@media (min-width:921px) and (max-width:1100px) {
  #main-header .navbar { min-height: 76px !important; padding: 10px 24px !important; }
  #main-header .logo,#main-header .nav-toggle { position: relative; z-index: 1004; }
  #main-header .nav-toggle,#main-header .nav-toggle.open { width: 46px; height: 46px; align-items: center; justify-content: center; border: 1px solid #c9cbbb !important; background: transparent !important; border-radius: 3px !important; }
  #main-header .nav-toggle span,#main-header .nav-toggle.open span { background: var(--jv-ink) !important; }
  #main-header .nav-links#nav-menu { position: fixed; inset: 76px 0 0; width: 100%; height: calc(100dvh - 76px); margin: 0; padding: 24px !important; background: var(--jv-night) !important; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 6px; z-index: 1001; overflow-y: auto; }
  #main-header .nav-links#nav-menu li { width: 100%; text-align: left; }
  #main-header .nav-links#nav-menu li a,#main-header .nav-links#nav-menu li a:hover,#main-header .nav-links#nav-menu li a.active { display: flex; align-items: center; min-height: 58px !important; padding: 13px 16px !important; font-size: 1rem !important; border: 1px solid transparent; border-bottom-color: #ffffff21; border-radius: 3px !important; color: #f7f5ef !important; }
  #main-header .nav-links#nav-menu li a.active { background: #ffffff0d !important; border-color: #c3a77455 !important; }
  #main-header .nav-links#nav-menu li a:not(.nav-cta)::after { display: none; }
  #main-header .nav-links#nav-menu li a.nav-cta,#main-header .nav-links#nav-menu li a.nav-cta:hover { justify-content: center; margin-left: 0; background: #d1b781 !important; border-color: #d1b781 !important; color: #132a36 !important; -webkit-text-fill-color: #132a36; }
}
@media (max-width:920px) {
  .container { width: calc(100% - 48px); }
  #main-header,#main-header.scrolled { background: #faf9f5 !important; }
  #main-header .navbar { min-height: 76px !important; padding: 10px 24px !important; }
  #main-header .nav-toggle,#main-header .nav-toggle.open { border-color: #c9cbbb !important; background: transparent !important; border-radius: 3px !important; }
  #main-header .nav-toggle span,#main-header .nav-toggle.open span { background: var(--jv-ink) !important; }
  #main-header .nav-links#nav-menu { background: var(--jv-night) !important; padding: 24px !important; }
  #main-header .nav-links#nav-menu li a,#main-header .nav-links#nav-menu li a:hover,#main-header .nav-links#nav-menu li a.active { min-height: 58px !important; padding: 13px 16px !important; font-size: 1rem !important; border-radius: 3px !important; color: #f7f5ef !important; }
  #main-header .nav-links#nav-menu li a.active { background: #ffffff0d !important; border-color: #c3a77455 !important; }
  #main-header .nav-links#nav-menu li a.nav-cta,#main-header .nav-links#nav-menu li a.nav-cta:hover { background: #d1b781 !important; border-color: #d1b781 !important; color: #132a36 !important; -webkit-text-fill-color: #132a36; }
  .hero { padding: 116px 0 46px !important; }
  .hero-inner { width: calc(100% - 48px) !important; gap: 0 !important; }
  .hero-content { width: 100%; max-width: 700px !important; margin: 0 auto; }
  .hero-title { font-size: clamp(4.2rem,9.5vw,6rem) !important; max-width: 100%; }
  .hero-subtitle { max-width: 60ch; }
  .hero-mobile-previews { background: #ffffff05; border: 1px solid #ffffff25; border-radius: 4px; padding: 8px; box-shadow: none; backdrop-filter: none; }
  .hero-mobile-preview-stage { min-height: 184px; border-radius: 3px; }
  .hero-mobile-stats { height: 184px; border: 0 !important; padding: 12px 10px !important; gap: 20px !important; }
  .hero-mobile-stats .stat { justify-content: flex-start; text-align: left; }
  .hero-mobile-stats .stat-label { font-size: .71rem !important; }
  .hero-mobile-previews .hero-preview-controls { color: #d2bb91; min-height: 44px; border-top: 1px solid #ffffff18; padding-top: 5px; }
  .hero-mobile-previews .hero-preview-control { width: 38px; height: 38px; }
  .hero-mobile-previews .hero-preview-dots button { color: #71818a; }
  .hero-mobile-previews .hero-preview-dots button[aria-current="true"] { color: #d2bb91; }
  .hero-brief-preview { border-radius: 3px; background: #1b323e; border: 0; color: #f7f5ef; padding: 22px; }
  .hero-brief-icon { background: #c3a774; color: #132a36; border-radius: 3px; box-shadow: none; }
  .hero-brief-copy small { color: #d2bb91; }
  .hero-brief-copy strong { color: #f7f5ef; font-family: var(--font-display); font-weight: 400; font-size: 1.65rem; letter-spacing: .02em; }
  .hero-brief-copy > span { color: #c4cfd2; font-size: .8rem; }
  .hero-brief-action { color: #e1c99b; font-size: .66rem; }
  .hero-brief-sites { background: #1b323e; }
  .section { padding: 68px 0; }
  .section-title { font-size: 3.5rem !important; }
  .page-hero { min-height: 300px; padding: 126px 0 46px !important; }
  .cta-content { gap: 30px; }
  .footer-grid { gap: 36px; }
  .contact-section,.login-section { padding: 60px 0; }
}
@media (max-width:640px) {
  .container { width: calc(100% - 36px); }
  #main-header .navbar { padding-inline: 18px !important; }
  .logo { min-width: 185px; gap: 11px; }
  .logo img { width: 33px !important; height: 49px !important; }
  .logo::after { font-size: .68rem !important; }
  .hero { padding: 111px 0 36px !important; }
  .hero-inner { width: calc(100% - 36px) !important; }
  .hero-signature { font-size: .58rem; gap: 9px; line-height: 1.7; margin-bottom: 21px; grid-template-columns: 18px auto; }
  .hero-signature::before { width: 18px; }
  .hero-title { font-size: clamp(3.7rem,12.9vw,5.3rem) !important; line-height: .99 !important; max-width: 100%; margin-bottom: 20px !important; text-wrap: initial; }
  .hero-title em { display: block; }
  .hero-subtitle { font-size: .93rem !important; line-height: 1.8 !important; max-width: 44ch; }
  .hero-actions { gap: 9px !important; margin-bottom: 27px !important; }
  .hero-actions .btn { min-height: 50px; padding: 13px 15px; font-size: .66rem; flex: 1 1 auto; }
  .hero-mobile-preview-stage { min-height: 194px; }
  .hero-mobile-stats { height: 194px; padding: 14px 7px !important; gap: 13px !important; }
  .hero-mobile-stats .stat { display: flex; flex-direction: column; align-items: flex-start; min-height: auto; gap: 6px; }
  .hero-mobile-stats .stat-number { font-size: 2.4rem; }
  .hero-mobile-stats .stat-label { font-size: .66rem !important; line-height: 1.5; font-weight: 500; }
  .hero-brief-preview { grid-template-columns: 42px minmax(0,1fr); padding: 14px 12px; gap: 8px 12px; }
  .hero-brief-icon { width: 42px; height: 42px; border-radius: 3px; }
  .hero-brief-copy strong { font-size: 1.5rem; }
  .hero-brief-copy > span { font-size: .74rem; line-height: 1.6; }
  .hero-brief-action { font-size: .61rem; line-height: 1.5; }
  .hero-brief-sites { grid-template-columns: 64px minmax(0,1fr); }
  .section { padding: 56px 0; }
  .section-header { margin-bottom: 30px !important; }
  .section-title { font-size: 2.8rem !important; line-height: 1.08 !important; max-width: 100%; margin: 10px 0 18px !important; }
  .section-desc { font-size: .92rem !important; }
  .section-eyebrow { font-size: .64rem !important; }
  .clientes-section { padding: 24px 0 !important; }
  .clientes-title { font-size: .58rem; letter-spacing: .11em; padding-inline: 25px; line-height: 1.8; }
  .news-card-body { padding: 24px !important; }
  .news-card-body h3 { font-size: 1.95rem !important; }
  .news-card-img img,.news-card-img .news-image,.noticias-section .news-grid-four .news-card-img img { height: 215px !important; }
  .news-fb-cta { padding: 24px !important; }
  .servicios-home-grid { gap: 15px !important; }
  .servicios-home-grid .servicio-card { padding: 26px !important; }
  .servicio-card h3,.servicios-home-grid .servicio-card h3 { font-size: 2rem !important; }
  .service-dossier { padding: 25px 21px; }
  .service-dossier-head { grid-template-columns: 48px minmax(0,1fr); gap: 13px; }
  .service-dossier .servicio-icon { width: 48px !important; height: 48px !important; flex-basis: 48px !important; }
  .service-dossier h3 { font-size: 1.8rem; }
  .service-dossier-lead { font-size: .92rem; }
  .page-hero { padding: 122px 0 42px !important; min-height: 280px !important; }
  .page-hero h1 { font-size: 3.6rem !important; max-width: 100%; line-height: 1.03 !important; }
  .page-hero p { font-size: .94rem; line-height: 1.7; max-width: 100%; }
  .grupo-header h2 { font-size: 2.25rem !important; }
  .filtro-btn { flex: 1 1 auto; padding: 11px 13px !important; font-size: .71rem; }
  .sitios-cta-mid,.sitios-cta-mid[style] { padding: 30px 22px !important; }
  .contact-form-wrap,.login-card { padding: 26px 21px !important; }
  .contact-info h2,.contact-form-wrap h2,.login-info h2 { font-size: 2.65rem !important; }
  .contact-grid,.login-wrap { gap: 38px; }
  .privacy-consent { padding: 13px; }
  .privacy-consent label { font-size: .8rem; }
  .form-security-note { align-items: flex-start; }
  .article-hero { padding: 122px 0 42px; min-height: 420px; }
  .article-hero h1 { font-size: 3rem; max-width: 100%; }
  .article-hero p { font-size: .93rem; }
  .article-body { padding: 25px 20px; }
  .article-body h2,.privacy-document h2 { font-size: 1.9rem; }
  .cta-section { padding: 48px 0 !important; }
  .cta-text h2 { font-size: 2.65rem !important; }
  .cta-actions { width: 100%; }
  .cta-actions .btn { width: 100%; }
  #footer { padding-top: 48px; }
  .footer-bottom { padding: 24px 24px 90px; }
  .whatsapp-float { right: 16px; bottom: 16px; width: 51px; height: 51px; }
  .page { padding: 16px; }
  .card-shell { border-radius: 5px; }
  .profile-name { font-size: 3rem !important; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  [data-aos] { opacity: 1 !important; transform: none !important; }
}
@media print {
  #main-header,.whatsapp-float,.cta-section,.hero-preview-controls { display:none !important; }
  .page-hero,.article-hero { padding-top:30px !important; }
  .article-body,.privacy-document { box-shadow:none; border:0; }
}
