:root { --safe-top: env(safe-area-inset-top, 0px); --safe-bottom: env(safe-area-inset-bottom, 0px); --gutter-left: max(5%, env(safe-area-inset-left, 0px)); --gutter-right: max(5%, env(safe-area-inset-right, 0px)); }
html { touch-action: pan-x pan-y; scroll-padding-top: calc(100px + var(--safe-top)); }
body { min-height: 100vh; min-height: 100dvh; }
img, video { max-width: 100%; }
button, input, textarea, select { font: inherit; }
button, .btn, .social-links a, .menu-toggle { min-height: 44px; }
button:focus-visible, a:focus-visible { outline: 2px solid var(--gold-light); outline-offset: 4px; }
[hidden] { display: none !important; }
header, header.scrolled { padding: calc(1rem + var(--safe-top)) var(--gutter-right) 1rem var(--gutter-left); }
section, .about-section, .mision-section, .actividades-section, footer, .stats-banner-container { padding-left: var(--gutter-left); padding-right: var(--gutter-right); }
section[id] { scroll-margin-top: calc(100px + var(--safe-top)); }
.hero { height: auto; min-height: 100vh; min-height: 100svh; padding-top: calc(120px + var(--safe-top)); padding-bottom: calc(40px + var(--safe-bottom)); background: #050505 url('../images/hero_bg_1777650457853.png') center/cover; }
.hero-content { width: 100%; padding-top: 0; }
.hero h1, .hero-slide h1 { font-size: clamp(1.8rem, 4.2vw, 3.8rem); }
.hero-slider { display: grid; }
.hero-slide { position: relative; grid-area: 1 / 1; visibility: hidden; }
.hero-slide.active { visibility: visible; }
#hero-video { width: 100%; height: 100%; max-width: none; }
.contact-grid > *, .info-item > *, .footer-grid > *, .actividad-item > * { min-width: 0; }
.info-item p, .footer-grid a { overflow-wrap: anywhere; }
.btn { white-space: normal; text-align: center; }
footer { padding-bottom: calc(2rem + var(--safe-bottom)); }
.app-tools { padding: 1rem var(--gutter-right) calc(1rem + var(--safe-bottom)) var(--gutter-left); display: flex; flex-wrap: wrap; gap: 1rem; background: #050505; }
#app-status { flex-basis: 100%; color: var(--gold-light); font-size: .9rem; }
#app-status:empty { display: none; }
@media (min-width: 1600px) { :root { --gutter-left: max(calc((100vw - 1440px) / 2), env(safe-area-inset-left)); --gutter-right: max(calc((100vw - 1440px) / 2), env(safe-area-inset-right)); } }
@media (min-width: 901px) and (max-width: 1100px) { header > .btn-primary { display: none; } .nav-links { gap: 1.2rem; } }
@media (max-width: 1023px), (max-height: 600px) {
 .hero-scroll-wrapper { height: auto !important; }
 .hero { position: relative; }
 #hero-video { display: none; }
}
@media (max-width: 900px) {
 section, .about-section, .mision-section, .actividades-section { padding-top: 4rem; padding-bottom: 4rem; }
 .hero { padding-top: calc(110px + var(--safe-top)); padding-bottom: calc(32px + var(--safe-bottom)); }
 .hero-slider { margin-bottom: 1.5rem; }
 .hero-slide .subtitle { font-size: .68rem; letter-spacing: 1.5px; }
 .about-content, .contact-grid, .mvv-card, .service-card, .fortalezas-strip, .actividad-item { padding: clamp(1.25rem, 5vw, 2rem); }
 .about-content h2, .section-title h2 { font-size: clamp(1.7rem, 6vw, 2.3rem); }
 .contact-grid { gap: 2rem; }
 .actividad-item { gap: 1rem; }
 .values-list { grid-template-columns: 1fr; }
 .sector-badges { margin-bottom: 2rem; }
 .sector-badge { padding: .75rem 1rem; letter-spacing: 1px; }
 .menu-toggle { min-width: 44px; }
 header:has(.nav-links.active) { backdrop-filter: none; -webkit-backdrop-filter: none; }
 .nav-links { height: 100vh; height: 100dvh; padding: calc(100px + var(--safe-top)) var(--gutter-right) calc(24px + var(--safe-bottom)) var(--gutter-left); overflow-y: auto; gap: 1rem; justify-content: flex-start; visibility: hidden; }
 .nav-links.active { visibility: visible; }
 .mobile-logo { margin-bottom: .5rem; }
 .mobile-logo img { width: 55px; }
 .form-control { font-size: 16px; }
 .dot { width: 44px; height: 44px; background: radial-gradient(circle, var(--gold-base) 0 4px, transparent 5px); border: 0; }
 .dot.active { transform: none; background: radial-gradient(circle, var(--gold-light) 0 5px, transparent 6px); box-shadow: none; }
}

/* Mobile navigation: full viewport, safe controls, scrollable on short screens. */
@media (max-width: 900px) {
 body.menu-open { position: fixed; width: 100%; overflow: hidden; }
 .menu-toggle { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 1px solid rgba(226,192,120,.3); border-radius: 50%; background: #0e0e0e; }
 .nav-links { padding-top: calc(88px + var(--safe-top)); padding-bottom: calc(32px + var(--safe-bottom)); gap: .4rem; overscroll-behavior: contain; background: radial-gradient(ellipse at 50% 35%, #171307, #050505 75%); }
 .nav-links li { flex-shrink: 0; width: min(100%, 360px); text-align: center; }
 .nav-links .mobile-logo { margin-top: auto; margin-bottom: clamp(1rem, 4vh, 2rem); }
 .nav-links li:last-child { margin-bottom: auto; }
 .mobile-logo img { width: clamp(56px, 9vh, 80px); }
 .nav-links a { display: flex; align-items: center; justify-content: center; min-height: 54px; padding: .85rem 1rem; font-size: clamp(1rem, 3.8vw, 1.35rem); letter-spacing: 2px; border-radius: 6px; }
 .nav-links a:hover, .nav-links a:active, .nav-links a:focus-visible { letter-spacing: 2px; background: rgba(226,192,120,.07); color: var(--gold-light); }
 .nav-links a::after { display: none; }
}
@media (max-width: 900px) and (max-height: 500px) {
 .nav-links { gap: 0; padding-top: calc(76px + var(--safe-top)); }
 .nav-links .mobile-logo { display: none; }
 .nav-links a { min-height: 44px; padding: .5rem 1rem; }
}

/* Matte surfaces and compact editorial iconography. */
header, header.scrolled { background: #080808; box-shadow: none; }
body::before, body::after { display: none; }
.stats-banner, .about-content, .service-card, .practice-card, .mvv-card,
.contact-grid, .fortalezas-strip, .sector-badge, .actividad-item { background: #0e0e0e; box-shadow: none; }
.stats-banner:hover, .about-content:hover, .service-card:hover, .practice-card:hover,
.mvv-card:hover, .contact-grid:hover, .fortalezas-strip:hover, .sector-badge:hover,
.actividad-item:hover { background: #111110; box-shadow: none; }
.service-card::before, .team-card::after { display: none; }
.ph-light { display: inline-flex; align-items: center; justify-content: center; font-size: 20px; width: 20px; height: 20px; flex-shrink: 0; vertical-align: middle; }
.service-icon, .mvv-icon, .info-item-icon { width: 30px; height: 30px; border: 0; border-radius: 0; background: none; box-shadow: none; color: var(--gold-light); }
.service-icon { margin-bottom: 1.5rem; }
.mvv-icon { margin-bottom: 1.25rem; }
.service-card:hover .service-icon, .mvv-card:hover .mvv-icon, .info-item:hover .info-item-icon { background: none; box-shadow: none; transform: none; }
.stat-item i, .practice-card i, .fortalezas-inner > i { width: 22px; height: 22px; font-size: 22px; }
.sector-badge i, .btn i, .social-links i { width: 16px; height: 16px; font-size: 16px; }
.info-item { gap: 1rem; }
.info-item h4 { margin-top: 2px; }
.mobile-logo img { filter: none; }

/* A precise inset rule and short press replace the sweeping shine. */
.btn { border: 1px solid transparent; border-radius: 0; transition: background-color .22s ease, color .22s ease, border-color .22s ease, transform .16s ease; }
.btn::before { display: none; }
.btn::after { content: ''; position: absolute; inset: 4px; border: 1px solid currentColor; opacity: 0; transform: scale(.97); pointer-events: none; transition: opacity .22s ease, transform .22s ease; }
.btn-primary { background: #b99a54; color: #080808; }
.btn-outline { background: transparent; color: #d8bd80; border-color: #806d42; }
.btn:hover, .btn:focus-visible { transform: none; box-shadow: none; }
.btn-primary:hover, .btn-primary:focus-visible { background: #d0b474; }
.btn-outline:hover, .btn-outline:focus-visible { background: #18160f; border-color: #d8bd80; }
.btn:hover::after, .btn:focus-visible::after { opacity: .45; transform: scale(1); }
.btn:hover i { transform: translateX(2px); }
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: .6; cursor: wait; transform: none; }
.btn:disabled::after { opacity: 0; }
.social-links a { border-radius: 2px; transition: background-color .2s ease, border-color .2s ease; }
.social-links a:hover { background: #17150f; color: var(--gold-light); border-color: #b99a54; transform: none; box-shadow: none; }
.social-links a:active { transform: translateY(1px); }
.menu-toggle { transition: background-color .2s ease, border-color .2s ease, transform .16s ease; }
.menu-toggle:hover { background: #1b180f; border-color: #b99a54; }
.menu-toggle:active { transform: scale(.96); }
.dot { transition: background-color .2s ease, transform .16s ease; }
.dot:active { transform: scale(.9); }
@media (max-width: 900px) {
 .nav-links { background: #080808; }
 .nav-links a:hover, .nav-links a:active { text-shadow: none; }
}
