/* ============================================================
   QUINTERNO & FIDANZA — Brandbook V5
   Navy #1f2133 | Gold #daa83c | Cream #e3dbca
   ============================================================ */

:root {
  --navy: #1f2133;
  --navy-light: #2b3a4d;
  --navy-dark: #161826;
  --slate: #b1b7be;
  --gold: #daa83c;
  --gold-light: #e4ba5a;
  --gold-dark: #7a3a19;
  --cream: #e3dbca;
  --cream-light: #f0ebe1;
  --cream-lighter: #f7f4ef;
  --cream-warm: #f4e4b0;
  --brown: #7a3a19;
  --white: #FFFFFF;
  --black: #000000;
  --text-dark: #1f2133;
  --text-body: #3A3B52;
  --text-muted: #888b8d;
  --text-light: rgba(227,219,202,0.85);
  --border-light: #c8c9c7;

  --font-heading: 'Montserrat', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-body: 'Montserrat', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-ui: 'Montserrat', 'Helvetica Neue', Helvetica, Arial, sans-serif;

  --ease: cubic-bezier(0.25, 0.1, 0.25, 1);
  --transition: 0.4s var(--ease);
  --fast: 0.25s ease;
}

/* ---------- Reset ---------- */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  color-scheme: light;
}

body {
  font-family: var(--font-body);
  font-weight: 400;
  color: var(--text-body);
  background: var(--white);
  line-height: 1.7;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
  text-align: justify;
}

h1, h2, h3, h4, h5, h6,
.section-label-line,
.perfil-title,
.section-heading,
.servicios-header-full,
.navbar-brand,
.btn-hero,
.btn-outline-dark,
.btn-outline-light,
.hero-slide-label,
.hero-slide-title,
.hero-slide-sub,
.contacto-premium-title,
.footer-brand,
.svc-hero-title,
.svc-hero-label,
.svc-hero-sub,
.svc-perfil-title,
.svc-hero-breadcrumb,
.svc-faq-title,
.svc-faq-label,
.svc-panel-title,
.svc-panel-list-label,
.svc-card-title,
.svc-card-sub,
.svc-article-cat,
.svc-article-card-title,
.nav-link,
.submenu-link,
.lang-link,
.servicio-panel-desc,
.servicio-panel-cta {
  text-align: left;
}
.svc-services-header .svc-services-label,
.svc-services-header .svc-services-title {
  text-align: center;
}

::selection { background: var(--gold); color: var(--white); }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }

/* ---------- Home Statement ---------- */
.home-statement {
  background: var(--navy);
  padding: 5rem 5vw;
  text-align: center;
}
.home-statement-inner {
  max-width: 800px;
  margin: 0 auto;
}
.home-statement-label {
  font-family: var(--font-ui);
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
  margin-bottom: 1.8rem;
}
.home-statement-text {
  font-family: var(--font-heading);
  font-size: clamp(1.3rem, 2.5vw, 1.75rem);
  font-weight: 300;
  color: var(--cream);
  line-height: 1.65;
  margin-bottom: 0;
}
.home-statement-line {
  width: 40px;
  height: 1.5px;
  background: var(--gold);
  opacity: .4;
  margin: 1.8rem auto;
}
.home-statement-sub {
  font-family: var(--font-body);
  font-size: .92rem;
  font-weight: 300;
  color: rgba(227,219,202,.45);
  line-height: 1.8;
  max-width: 600px;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .home-statement { padding: 2rem 7vw 1.5rem; }
  .home-statement-text { font-size: 1.05rem; }
  .home-statement-label { margin-bottom: 1.2rem; }
  .home-statement-line { margin: 1.2rem auto; }
  .home-statement-sub { font-size: .82rem; }
}

/* ---------- Home Cifras ---------- */
.home-cifras {
  background: var(--cream);
  padding: 2.5rem 5vw 1.5rem;
}
.cifras-grid {
  max-width: 1000px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 2rem;
  text-align: center;
}
.cifra-item {
  position: relative;
  text-align: center;
}
.cifra-number {
  font-family: var(--font-heading);
  font-size: clamp(2.2rem, 4vw, 3rem);
  font-weight: 300;
  color: var(--navy);
  line-height: 1;
  display: inline;
}
.cifra-suffix {
  font-family: var(--font-heading);
  font-size: clamp(1.4rem, 2.5vw, 1.8rem);
  font-weight: 300;
  color: var(--navy);
  display: inline;
}
.cifra-label {
  font-family: var(--font-ui);
  font-size: .65rem;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--brown);
  margin-top: .7rem;
  display: block;
}
@media (max-width: 767px) {
  .home-cifras { padding: 1.5rem 4vw; }
  .cifras-grid { grid-template-columns: repeat(5, 1fr); gap: .5rem; }
  .cifra-number { font-size: 1.3rem; font-weight: 600; }
  .cifra-suffix { font-size: .85rem; font-weight: 600; }
  .cifra-label { font-size: .42rem; font-weight: 600; letter-spacing: .08em; margin-top: .3rem; }
}

/* ---------- Home Reviews ---------- */
.reviews-wrap {
  max-width: 1000px;
  margin: 0 auto;
  padding-top: 2rem;
  border-top: 1px solid rgba(31,33,51,.08);
  margin-top: 2rem;
  padding-bottom: 1rem;
}
.reviews-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2rem;
}
.reviews-google {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.reviews-google-icon {
  flex-shrink: 0;
}
.reviews-rating {
  display: flex;
  align-items: center;
  gap: .6rem;
}
.reviews-score {
  font-family: var(--font-heading);
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--navy);
}
.reviews-stars {
  display: flex;
  gap: 2px;
  color: var(--gold);
  font-size: .75rem;
}
.reviews-nav {
  display: flex;
  gap: .6rem;
}
.reviews-swiper {
  overflow: hidden;
}
.reviews-swiper .swiper-slide {
  height: auto;
}
.review-card {
  background: var(--white);
  border: 1px solid rgba(31,33,51,.06);
  border-radius: 6px;
  padding: 1.5rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  box-shadow: 0 2px 12px rgba(0,0,0,.04);
}
.review-top {
  display: flex;
  align-items: center;
  gap: .8rem;
  margin-bottom: 1rem;
}
.review-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--gold);
  color: var(--navy);
  font-family: var(--font-ui);
  font-size: .65rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.review-avatar-img {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.reviews-count {
  font-family: var(--font-ui);
  font-size: .75rem;
  font-weight: 400;
  color: var(--slate);
}
.review-name {
  font-family: var(--font-heading);
  font-size: .82rem;
  font-weight: 500;
  color: var(--navy);
}
.review-stars-sm {
  display: flex;
  gap: 1px;
  color: var(--gold);
  font-size: .55rem;
  margin-top: 2px;
}
.review-text {
  font-family: var(--font-body);
  font-size: .82rem;
  font-weight: 300;
  color: var(--navy-light);
  opacity: .7;
  line-height: 1.7;
  flex: 1;
  margin-bottom: .8rem;
  text-align: left;
}
.review-date {
  font-family: var(--font-ui);
  font-size: .6rem;
  color: var(--brown);
  opacity: .45;
}
.reviews-nav .pub-nav-btn {
  border-color: rgba(31,33,51,.15);
  color: var(--navy);
}
.reviews-nav .pub-nav-btn:hover {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--cream);
}
@media (max-width: 767px) {
  .reviews-wrap { padding-top: 1rem; margin-top: 1rem; padding-bottom: .5rem; }
  .reviews-score { font-size: 1rem; }
  .reviews-header { margin-bottom: 1rem; }
  .review-card { padding: 1rem; }
  .review-text { font-size: .72rem; }
}

/* ---------- Home Equipo ---------- */
.home-equipo {
  background: var(--navy-light);
  padding: 4rem 5vw;
}
.home-equipo-inner {
  max-width: 600px;
  margin: 0 auto;
  text-align: center;
}
.home-equipo-label {
  font-family: var(--font-ui);
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
  margin-bottom: 2.5rem;
}
.equipo-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
}
.equipo-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  transition: transform var(--fast);
}
.equipo-card:hover { transform: translateY(-4px); }
.equipo-photo {
  width: 144px;
  height: 144px;
  border-radius: 50%;
  background: rgba(227,219,202,.06);
  border: 2px solid rgba(218,168,60,.2);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: rgba(227,219,202,.15);
  overflow: hidden;
}
.equipo-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.equipo-name {
  font-family: var(--font-heading);
  font-size: .95rem;
  font-weight: 500;
  color: var(--cream);
  margin-bottom: .25rem;
}
.equipo-name-short { display: none; }
.equipo-role {
  font-family: var(--font-ui);
  font-size: .62rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--slate);
  opacity: .65;
}
.equipo-btn {
  margin-top: .7rem;
  background: transparent;
  border: 1px solid rgba(218,168,60,.3);
  color: var(--gold);
  font-family: var(--font-ui);
  font-size: .66rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  padding: .54rem 1.2rem;
  border-radius: 2px;
  cursor: pointer;
  transition: all var(--fast);
}
.equipo-btn:hover {
  background: var(--gold);
  color: var(--navy);
  border-color: var(--gold);
}
@media (max-width: 767px) {
  .home-equipo { padding: 2.5rem 5vw; }
  .home-equipo-label { margin-bottom: 1rem; }
  .equipo-grid { gap: 1.5rem; }
  .equipo-photo { width: 95px; height: 95px; font-size: 1.5rem; margin-bottom: .6rem; }
  .equipo-name { font-size: .72rem; }
  .equipo-name-full { display: none; }
  .equipo-name-short { display: inline; }
  .equipo-role { font-size: .48rem; }
  .equipo-btn { font-size: .54rem; padding: .42rem .96rem; }
}

/* ---------- Perfil Modal ---------- */
.perfil-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(31,33,51,.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease, visibility .35s ease;
  padding: 2rem;
}
.perfil-modal-overlay.active {
  opacity: 1;
  visibility: visible;
}
.perfil-modal {
  background: var(--navy);
  border: 1px solid rgba(218,168,60,.15);
  border-radius: 8px;
  padding: 2.2rem 2.5rem;
  max-width: 540px;
  width: 100%;
  position: relative;
  transform: translateY(20px);
  transition: transform .35s ease;
  max-height: 90vh;
  overflow-y: auto;
}
.perfil-modal-overlay.active .perfil-modal {
  transform: translateY(0);
}
.perfil-modal-close {
  position: absolute;
  top: 1.2rem;
  right: 1.2rem;
  background: none;
  border: none;
  color: var(--slate);
  font-size: 1rem;
  cursor: pointer;
  transition: color var(--fast);
}
.perfil-modal-close:hover { color: var(--gold); }
.perfil-modal-top {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  margin-bottom: 1.2rem;
}
.perfil-modal-photo {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: rgba(227,219,202,.06);
  border: 2px solid rgba(218,168,60,.25);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  color: rgba(227,219,202,.15);
  flex-shrink: 0;
  overflow: hidden;
}
.perfil-modal-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.perfil-modal-name {
  font-family: var(--font-heading);
  font-size: 1.2rem;
  font-weight: 500;
  color: var(--cream);
  margin-bottom: .2rem;
}
.perfil-modal-role {
  font-family: var(--font-ui);
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--gold);
}
.perfil-modal-body p {
  font-family: var(--font-body);
  font-size: .82rem;
  font-weight: 300;
  color: rgba(227,219,202,.6);
  line-height: 1.7;
  margin-bottom: .7rem;
  text-align: left;
}
.perfil-modal-footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-top: 1.2rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(218,168,60,.1);
}
.perfil-modal-meta { flex: 1; }
.perfil-modal-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: .8rem;
  margin-bottom: .8rem;
}
.perfil-tag {
  font-family: var(--font-ui);
  font-size: .55rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--cream-warm);
  background: rgba(218,168,60,.1);
  border: 1px solid rgba(218,168,60,.15);
  padding: .35rem .8rem;
  border-radius: 2px;
}
.perfil-modal-lang {
  font-family: var(--font-ui);
  font-size: .68rem;
  color: var(--slate);
  margin-top: .6rem;
}
.perfil-modal-lang i { color: var(--gold); margin-right: .3rem; }
.perfil-modal-linkedin {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  font-size: 1.2rem;
  color: var(--cream);
  text-decoration: none;
  background: var(--navy-light);
  border: 1px solid rgba(227,219,202,.12);
  border-radius: 6px;
  flex-shrink: 0;
  transition: all var(--fast);
}
.perfil-modal-linkedin:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--navy);
}
@media (max-width: 600px) {
  .perfil-modal { padding: 2rem 1.5rem; }
  .perfil-modal-name { font-size: 1rem; }
  .perfil-modal-body p { font-size: .8rem; }
}

/* ---------- Brochure Lead Modal ---------- */
.brochure-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(31,33,51,.88);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease, visibility .35s ease;
  padding: 2rem;
}
.brochure-modal-overlay.active {
  opacity: 1;
  visibility: visible;
}
.brochure-modal {
  background: var(--navy);
  border: 1px solid rgba(218,168,60,.2);
  border-radius: 8px;
  padding: 2.5rem 2.8rem;
  max-width: 460px;
  width: 100%;
  position: relative;
  transform: translateY(20px);
  transition: transform .35s ease;
}
.brochure-modal-overlay.active .brochure-modal {
  transform: translateY(0);
}
.brochure-modal-close {
  position: absolute;
  top: 1.2rem;
  right: 1.2rem;
  background: none;
  border: none;
  color: var(--slate);
  font-size: 1.1rem;
  cursor: pointer;
  transition: color var(--fast);
}
.brochure-modal-close:hover { color: var(--gold); }
.brochure-modal-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(218,168,60,.1);
  border: 1px solid rgba(218,168,60,.2);
  margin-bottom: 1.2rem;
}
.brochure-modal-icon i {
  font-size: 1.1rem;
  color: var(--gold);
}
.brochure-modal-title {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 400;
  color: var(--cream);
  margin-bottom: .4rem;
}
.brochure-modal-sub {
  font-size: .78rem;
  font-weight: 300;
  color: rgba(227,219,202,.45);
  margin-bottom: 1.5rem;
  line-height: 1.6;
}
.brochure-modal .brochure-field {
  position: relative;
  margin-bottom: 1rem;
}
.brochure-modal .brochure-input {
  width: 100%;
  padding: 12px 14px;
  font-family: var(--font-body);
  font-size: .82rem;
  font-weight: 300;
  color: var(--cream);
  background: rgba(227,219,202,.04);
  border: 1px solid rgba(227,219,202,.12);
  border-radius: 4px;
  outline: none;
  transition: border-color var(--fast);
}
.brochure-modal .brochure-input::placeholder {
  color: rgba(227,219,202,.3);
}
.brochure-modal .brochure-input:focus {
  border-color: rgba(218,168,60,.5);
}
.brochure-modal .btn-brochure-submit {
  width: 100%;
  padding: 13px 20px;
  font-family: var(--font-ui);
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--navy);
  background: var(--gold);
  border: 1.5px solid var(--gold);
  border-radius: 4px;
  cursor: pointer;
  transition: all var(--fast);
  margin-top: .5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
}
.brochure-modal .btn-brochure-submit:hover {
  background: var(--gold-light);
  border-color: var(--gold-light);
}
.brochure-modal .brochure-legal {
  font-size: .65rem;
  font-weight: 300;
  color: rgba(227,219,202,.3);
  margin-top: .8rem;
  line-height: 1.5;
  text-align: center;
}
/* Brochure trigger buttons */
.btn-brochure {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: 12px 28px;
  font-family: var(--font-ui);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--brown);
  border: 1.5px solid rgba(122,58,25,.4);
  background: transparent;
  cursor: pointer;
  transition: all var(--transition);
}
.btn-brochure:hover {
  background: rgba(122,58,25,.08);
  border-color: var(--brown);
}
.btn-brochure--soon {
  opacity: .5;
  cursor: default;
  border-style: dashed;
}
.btn-brochure--soon:hover {
  background: transparent;
  border-color: rgba(122,58,25,.4);
}
.btn-brochure i { font-size: .85rem; }
/* Dark-bg variant (for homepage navy section) */
.btn-brochure--light {
  color: var(--cream);
  border-color: rgba(227,219,202,.25);
}
.btn-brochure--light:hover {
  background: rgba(122,58,25,.15);
  border-color: var(--brown);
  color: var(--cream);
}
/* Button group for perfil sections */
.svc-perfil-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 0;
}
.home-statement-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}
@media (max-width: 767px) {
  .brochure-modal { padding: 2rem 1.5rem; }
  .brochure-modal-title { font-size: 1.05rem; }
  .btn-brochure { padding: 10px 20px; font-size: .68rem; }
  .svc-perfil-actions { flex-direction: column; align-items: flex-start; }
  .home-statement-actions { flex-direction: column; }
}

/* ---------- Home Publicaciones ---------- */
.home-publicaciones {
  background: var(--navy);
  padding: 4rem 5vw;
}
.home-pub-inner {
  max-width: 960px;
  margin: 0 auto;
}
.home-pub-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 3.5rem;
}
.home-pub-label {
  font-family: var(--font-ui);
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--gold);
}
.home-pub-right {
  display: flex;
  align-items: center;
  gap: 2rem;
}
.pub-nav {
  display: flex;
  gap: .6rem;
}
.pub-nav-btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid rgba(218,168,60,.25);
  background: transparent;
  color: var(--cream);
  font-size: .8rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--fast);
}
.pub-nav-btn:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--navy);
}
.pub-nav-btn.swiper-button-disabled {
  opacity: .2;
  pointer-events: none;
}
.home-pub-viewall {
  font-family: var(--font-ui);
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(227,219,202,.3);
  text-decoration: none;
  transition: color var(--fast);
}
.home-pub-viewall:hover { color: var(--gold); }
.pub-swiper {
  overflow: hidden;
}
.pub-swiper .swiper-slide {
  height: auto;
}
.pub-card {
  text-decoration: none;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border: 1px solid rgba(31,33,51,.06);
  border-top: 2px solid var(--gold);
  padding: 24px 22px 20px;
  transition: border-color .3s, box-shadow .3s;
  min-height: 200px;
}
.pub-card:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 20px rgba(31,33,51,.06);
}
.pub-card-tag {
  font-family: var(--font-ui);
  font-size: .45rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 14px;
  display: block;
}
.pub-card-title {
  font-family: var(--font-heading);
  font-size: .95rem;
  font-weight: 400;
  color: var(--navy);
  line-height: 1.35;
  transition: color .3s;
  text-align: left;
  flex: 1;
}
.pub-card:hover .pub-card-title { color: var(--gold); }
.pub-card-date {
  font-family: var(--font-ui);
  font-size: .5rem;
  font-weight: 500;
  letter-spacing: .06em;
  color: rgba(31,33,51,.3);
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid rgba(31,33,51,.05);
  display: block;
}
.pub-card-read {
  font-family: var(--font-ui);
  font-size: .48rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--gold);
  margin-top: auto;
  padding-top: 12px;
  display: block;
  transition: opacity .3s;
  opacity: .6;
}
.pub-card:hover .pub-card-read { opacity: 1; }
@media (max-width: 767px) {
  .home-publicaciones { padding: 2.5rem 5vw; }
  .home-pub-header { margin-bottom: 2rem; }
  .home-pub-right { gap: 1rem; }
  .pub-nav-btn { width: 32px; height: 32px; font-size: .7rem; }
}

/* ---------- Preloader ---------- */
#preloader {
  position: fixed; inset: 0;
  background: var(--navy);
  z-index: 99999;
  display: flex; align-items: center; justify-content: center;
  transition: opacity .6s ease, visibility .6s ease;
}
#preloader.loaded { opacity: 0; visibility: hidden; pointer-events: none; }
.preloader-inner { display: flex; align-items: center; justify-content: center; }
.preloader-logo { height: auto; width: min(386px, 69vw); object-fit: contain; opacity: 0; animation: fadeUp .8s ease .2s forwards; }
@keyframes fadeUp { to { opacity: 1; transform: translateY(0); } from { transform: translateY(10px); } }

/* ============================================================
   NAVIGATION (Marval-style: transparent -> solid on scroll)
   ============================================================ */
#mainNav {
  padding: 0; z-index: 1000;
  transition: background var(--transition), box-shadow var(--transition);
}
#mainNav.scrolled {
  background: rgba(0,0,0,.25);
  backdrop-filter: blur(20px);
  box-shadow: none;
}

/* Nav on light (cream/white) background — dynamic switch */
#mainNav .nav-link,
#mainNav .nav-search-btn,
#mainNav .lang-link,
#mainNav .lang-sep { transition: color .45s ease; }
#mainNav .toggler-bar { transition: background .45s ease; }

#mainNav.nav-on-light .nav-link { color: rgba(31,33,51,.5); }
#mainNav.nav-on-light .nav-link:hover,
#mainNav.nav-on-light .nav-link.active { color: var(--navy); }
#mainNav.nav-on-light .toggler-bar { background: var(--navy); }
#mainNav.nav-on-light .nav-search-btn { color: rgba(31,33,51,.5); }
#mainNav.nav-on-light .nav-search-btn:hover { color: var(--navy); }
#mainNav.nav-on-light .lang-link { color: rgba(31,33,51,.35); }
#mainNav.nav-on-light .lang-link.active,
#mainNav.nav-on-light .lang-link:hover { color: var(--navy); }
#mainNav.nav-on-light .lang-sep { color: rgba(31,33,51,.18); }
#mainNav.nav-on-light.scrolled {
  background: rgba(227,219,202,.35);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.nav-container {
  display: flex; align-items: center; justify-content: space-between;
  padding: 11px 5vw;
  transition: padding var(--transition);
}
#mainNav.scrolled .nav-container { padding: 7px 5vw; }

.navbar-brand {
  position: relative;
  width: 283px;
  height: 79px;
  flex-shrink: 0;
  text-decoration: none;
}
.nav-logo {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
  transition: opacity .35s ease;
}
.nav-logo-light { opacity: 1; }
.nav-logo-dark  { opacity: 0; }
#mainNav.nav-on-light .nav-logo-light { opacity: 0; }
#mainNav.nav-on-light .nav-logo-dark  { opacity: 1; }
#mainNav.menu-active .nav-logo-light { opacity: 1 !important; }
#mainNav.menu-active .nav-logo-dark  { opacity: 0 !important; }
@media (min-width: 992px) {
  .navbar-brand { width: 240px; height: 67px; }
}

/* Footer logo */
.footer-logo-img { height: 57px; width: auto; display: block; }

/* Nav menu */
.nav-menu {
  display: flex; align-items: center; gap: 0;
}
.nav-list {
  display: flex; align-items: center; gap: 0;
  list-style: none; margin: 0; padding: 0;
}
.nav-item { position: relative; }
.nav-link {
  display: block; padding: 10px 16px;
  font-family: var(--font-ui);
  font-size: .78rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: rgba(227,219,202,.7);
  transition: color var(--fast);
  cursor: pointer; white-space: nowrap;
}
.nav-link i { font-size: .55rem; margin-left: 3px; transition: transform var(--fast); }
.nav-link:hover, .nav-link.active { color: var(--cream); }
.nav-item.has-submenu:hover .nav-link i { transform: rotate(180deg); }

/* Submenus */
.submenu {
  position: absolute; top: 100%; left: 0;
  min-width: 240px;
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: all .3s ease;
  z-index: 100;
}
.nav-item.has-submenu:hover .submenu {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.submenu-inner {
  background: rgba(0,0,0,.6);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(227,219,202,.1);
  padding: 16px 0; margin-top: 8px;
}
.submenu-link {
  display: block; padding: 10px 28px;
  font-family: var(--font-ui);
  font-size: .75rem; font-weight: 400;
  letter-spacing: .06em; color: rgba(227,219,202,.6);
  transition: all var(--fast);
}
.submenu-link:hover {
  color: var(--cream); background: rgba(218,168,60,.08);
  padding-left: 34px;
}

/* Nav right */
.nav-right { display: flex; align-items: center; gap: 16px; margin-left: 20px; }
.nav-search-btn {
  background: none; border: none; color: rgba(227,219,202,.7);
  font-size: 1rem; cursor: pointer; padding: 8px;
  transition: color var(--fast);
}
.nav-search-btn:hover { color: var(--cream); }
.nav-lang { display: flex; align-items: center; gap: 6px; }
.lang-link {
  font-family: var(--font-ui); font-size: .7rem; font-weight: 500;
  letter-spacing: .1em; color: rgba(227,219,202,.5);
  transition: color var(--fast);
}
.lang-link.active, .lang-link:hover { color: var(--cream); }
.lang-sep { color: rgba(227,219,202,.25); font-size: .7rem; }

/* Hamburger */
.navbar-toggler {
  display: none; background: none; border: none;
  padding: 8px; cursor: pointer; z-index: 1001;
}
.toggler-bar {
  display: block; width: 26px; height: 2px;
  background: var(--cream); margin: 5px 0;
  border-radius: 1px;
  transform-origin: center;
}

/* Body scroll lock when mobile menu open */
body.menu-open {
  overflow: hidden;
}

/* Override nav-on-light when overlay menu is open */
#mainNav.menu-active .toggler-bar { background: var(--cream) !important; }
#mainNav.menu-active {
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
#mainNav.menu-active .nav-link { color: rgba(227,219,202,.85) !important; font-weight: 600 !important; text-shadow: 0 1px 3px rgba(0,0,0,.5); }
#mainNav.menu-active .nav-link:hover,
#mainNav.menu-active .nav-link:focus { color: var(--gold) !important; }
#mainNav.menu-active .submenu-link { color: rgba(227,219,202,.85) !important; font-weight: 300 !important; text-shadow: 0 1px 3px rgba(0,0,0,.5); }
#mainNav.menu-active .submenu-link:hover { color: var(--gold) !important; }
#mainNav.menu-active .submenu-inner { border-left-color: transparent !important; }
#mainNav.menu-active .nav-search-btn { color: rgba(227,219,202,.5) !important; text-shadow: 0 1px 3px rgba(0,0,0,.5); font-weight: 700 !important; }
#mainNav.menu-active .lang-link { color: rgba(227,219,202,.5) !important; text-shadow: 0 1px 3px rgba(0,0,0,.5); font-weight: 700 !important; }
#mainNav.menu-active .lang-link.active { color: var(--cream) !important; text-shadow: 0 1px 3px rgba(0,0,0,.5); font-weight: 700 !important; }
#mainNav.menu-active .lang-sep { color: rgba(227,219,202,.25) !important; }
#mainNav.menu-active .nav-right { border-top-color: rgba(227,219,202,.08) !important; }

/* Search overlay */
.search-overlay {
  position: fixed; inset: 0;
  background: rgba(31,33,51,.25);
  backdrop-filter: blur(30px);
  -webkit-backdrop-filter: blur(30px);
  z-index: 9998;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; visibility: hidden;
  transition: all .4s ease;
}
.search-overlay.active { opacity: 1; visibility: visible; }
.search-close {
  position: absolute; top: 24px; right: 5vw;
  background: none; border: none; color: #fff;
  font-size: 1.5rem; cursor: pointer;
  text-shadow: 0 1px 8px rgba(0,0,0,.4);
}
.search-inner { width: 100%; max-width: 600px; padding: 0 5vw; }
.search-form { display: flex; border-bottom: 2px solid rgba(255,255,255,.35); }
.search-input {
  flex: 1; background: none; border: none; outline: none;
  font-family: var(--font-heading); font-size: 1.8rem; font-weight: 500;
  color: #fff; padding: 12px 0;
  text-shadow: 0 1px 12px rgba(0,0,0,.5), 0 0 4px rgba(0,0,0,.3);
}
.search-input::placeholder { color: rgba(255,255,255,.45); text-shadow: none; }
.search-submit {
  background: none; border: none; color: var(--gold);
  font-size: 1.3rem; cursor: pointer; padding: 12px;
  filter: drop-shadow(0 1px 4px rgba(0,0,0,.3));
}
.search-results {
  margin-top: 24px;
  max-height: 50vh;
  overflow-y: auto;
}
.search-result {
  display: block;
  padding: 14px 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
  text-decoration: none;
  transition: opacity .2s;
}
.search-result:hover { opacity: .7; }
.search-result-title {
  display: block;
  font-family: var(--font-heading);
  font-size: .95rem;
  font-weight: 400;
  color: var(--cream);
  line-height: 1.4;
  margin-bottom: 4px;
}
.search-result-desc {
  display: block;
  font-size: .75rem;
  font-weight: 300;
  color: rgba(255,255,255,.35);
  line-height: 1.5;
}
.search-no-results {
  padding: 20px 0;
  font-size: .85rem;
  font-weight: 300;
  color: rgba(255,255,255,.3);
}

/* ============================================================
   HERO SLIDER (Marval: full-viewport, carousel, indicators right)
   ============================================================ */
.hero-section {
  position: relative; width: 100vw; height: 100vh;
  min-height: 600px; background: var(--black); overflow: hidden;
}

.hero-slider { position: relative; width: 100%; height: 100%; }

.hero-slide {
  position: absolute; inset: 0;
  opacity: 0; z-index: 0;
  will-change: opacity;
  transition: opacity .6s ease;
}
.hero-slide.active { opacity: 1; z-index: 1; }

.hero-slide-bg {
  position: absolute; inset: 0;
}
.hero-slide-bg video {
  width: 100%; height: 100%; object-fit: cover;
}
.hero-slide-bg-gradient {
  width: 100%; height: 100%;
}
.bg-slide-2 { background: linear-gradient(135deg, #1f2133 0%, #2E3A5E 40%, #2b3a4d 100%); }
.bg-slide-3 { background: linear-gradient(135deg, #111228 0%, #1f2133 50%, #3A2A50 100%); }

.hero-slide-overlay {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.55);
  z-index: 1;
}
.hero-slide-overlay::after {
  content: ''; position: absolute; bottom: 0; left: 0;
  width: 100%; height: 35%;
  background: linear-gradient(to top, rgba(0,0,0,.6), transparent);
}

.hero-slide-content {
  position: relative; z-index: 2;
  height: 100%;
  display: flex; flex-direction: column;
  align-items: flex-start; justify-content: center;
  padding: 0 5vw;
}

.hero-slide-title {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 5.5vw, 4.5rem);
  font-weight: 300; line-height: 1.15;
  color: var(--cream); letter-spacing: .02em;
  margin-bottom: 20px;
  opacity: 0; transform: translateY(30px);
  transition: opacity .6s ease, transform .6s ease;
}
.hero-slide.active .hero-slide-title {
  opacity: 1; transform: translateY(0);
  transition-delay: .3s;
}

.hero-slide-sub {
  font-family: var(--font-body);
  font-size: 1.1rem; font-weight: 300;
  color: rgba(227,219,202,.7);
  margin-bottom: 32px; letter-spacing: .02em;
  opacity: 0; transform: translateY(20px);
  transition: opacity .6s ease, transform .6s ease;
}
.hero-slide.active .hero-slide-sub {
  opacity: 1; transform: translateY(0);
  transition-delay: .5s;
}

.btn-hero {
  display: inline-block; padding: 14px 36px;
  font-family: var(--font-ui);
  font-size: .78rem; font-weight: 600;
  letter-spacing: .15em; text-transform: uppercase;
  color: var(--cream);
  border: 1.5px solid rgba(227,219,202,.5);
  background: transparent;
  opacity: 0; transform: translateY(15px);
  transition: opacity .6s ease .7s, transform .6s ease .7s, background .15s ease, border-color .15s ease, color .15s ease;
}
.hero-slide.active .btn-hero {
  opacity: 1; transform: translateY(0);
}
.btn-hero:hover {
  background: var(--gold); border-color: var(--gold);
  color: var(--navy);
}

/* Hero indicators (right-aligned like Marval) */
.hero-indicators {
  position: absolute; bottom: 5vh; right: 5vw;
  z-index: 10;
  display: flex; flex-direction: column; gap: 12px;
}
.hero-dot {
  width: 12px; height: 12px;
  border: 1.5px solid rgba(227,219,202,.5);
  border-radius: 50%; background: transparent;
  cursor: pointer; transition: all var(--fast);
  padding: 0;
}
.hero-dot.active {
  background: var(--gold); border-color: var(--gold);
  transform: scale(1.2);
}
.hero-dot:hover { border-color: var(--cream); }

/* Scroll indicator */
.hero-scroll {
  position: absolute; bottom: 5vh; left: 5vw;
  z-index: 10;
}
.hero-scroll-line {
  width: 1px; height: 60px;
  background: linear-gradient(to bottom, var(--gold), transparent);
  animation: scrollPulse 2s ease-in-out infinite;
}
@keyframes scrollPulse {
  0%,100% { opacity: .3; transform: scaleY(.6); transform-origin: top; }
  50% { opacity: 1; transform: scaleY(1); }
}

/* ============================================================
   PERFIL DEL ESTUDIO (split layout: image left, text right)
   ============================================================ */
.section-perfil {
  width: 100vw;
  display: flex;
  min-height: 600px;
}

.perfil-img {
  flex: 1;
  position: relative;
  overflow: hidden;
}
.perfil-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.perfil-img-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(31,33,51,.55) 0%,
    rgba(31,33,51,.5) 40%,
    rgba(31,33,51,.65) 100%);
  z-index: 1;
}

.perfil-content {
  flex: 1;
  background: var(--cream-light);
  padding: 5rem 5vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.perfil-title {
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2.2rem);
  font-weight: 300;
  color: var(--navy);
  line-height: 1.35;
  margin-bottom: 28px;
  letter-spacing: .01em;
}

.perfil-text {
  font-family: var(--font-body);
  font-size: clamp(.92rem, 1.2vw, 1.05rem);
  font-weight: 400;
  line-height: 1.9;
  color: var(--text-body);
  margin-bottom: 36px;
}

.btn-outline-dark {
  display: inline-block; padding: 14px 40px;
  font-family: var(--font-ui);
  font-size: .78rem; font-weight: 600;
  letter-spacing: .15em; text-transform: uppercase;
  color: var(--navy); border: 1.5px solid var(--navy);
  background: transparent;
  transition: all var(--transition);
  align-self: flex-start;
}
.btn-outline-dark:hover {
  background: var(--gold); border-color: var(--gold);
  color: var(--white);
}

/* Hero slide label */
.hero-slide-label {
  font-family: var(--font-ui);
  font-size: .65rem; font-weight: 600;
  letter-spacing: .25em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 20px;
  display: block;
  opacity: 0; transform: translateY(15px);
  transition: opacity .6s ease, transform .6s ease;
}
.hero-slide.active .hero-slide-label {
  opacity: 1; transform: translateY(0);
  transition-delay: .15s;
}

/* Section label with line */
.section-label-line {
  font-family: var(--font-ui);
  font-size: .65rem; font-weight: 600;
  letter-spacing: .25em; text-transform: uppercase;
  color: var(--gold);
  display: inline-flex; align-items: center; gap: 14px;
  margin-bottom: 12px;
}
.section-label-line::before {
  content: ''; width: 28px; height: 1px; background: var(--gold);
}
.section-label-light { color: var(--gold); }
.section-label-light::before { background: var(--gold); }

/* ============================================================
   SERVICIOS / PRACTICE AREAS (full-width premium panels)
   ============================================================ */
.section-servicios {
  padding: 0;
  background: var(--navy);
}
.servicios-header-full {
  padding: .75rem 5vw .5rem;
}
.servicios-panels {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
}

.servicio-panel {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 340px;
  padding: 0 3vw;
  overflow: hidden;
  text-decoration: none;
  cursor: pointer;
}

.servicio-panel-bg {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform .8s ease;
}
.servicio-panel:hover .servicio-panel-bg {
  transform: scale(1.03);
}

.servicio-panel-overlay {
  position: absolute; inset: 0;
  background: rgba(31,33,51,.82);
  transition: background .5s ease;
}
.servicio-panel:hover .servicio-panel-overlay {
  background: rgba(31,33,51,.68);
}

.servicio-panel-number {
  position: absolute;
  right: 3vw; top: 50%;
  transform: translateY(-50%);
  font-family: var(--font-heading);
  font-size: clamp(5rem, 10vw, 9rem);
  font-weight: 300;
  color: var(--gold);
  opacity: .07;
  line-height: 1;
  pointer-events: none;
  transition: opacity .5s ease;
}
.servicio-panel:hover .servicio-panel-number {
  opacity: .14;
}

.servicio-panel-content {
  position: relative; z-index: 2;
  max-width: 700px;
  padding: 3.5rem 0;
}

.servicio-panel-title {
  font-family: var(--font-heading);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 300;
  color: var(--cream);
  margin-bottom: 12px;
  line-height: 1.3;
  letter-spacing: .02em;
}

.servicio-panel-desc {
  font-size: .95rem;
  color: rgba(227,219,202,.55);
  line-height: 1.7;
  margin-bottom: 20px;
}

.servicio-panel-cta {
  font-family: var(--font-ui);
  font-size: .7rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--gold);
  display: inline-flex; align-items: center; gap: 8px;
  transition: gap .3s ease, color .3s ease;
}
.servicio-panel:hover .servicio-panel-cta {
  gap: 14px; color: var(--gold-light);
}

.servicio-panel-line {
  position: absolute; bottom: 0; left: 5vw; right: 5vw;
  height: 1px;
  background: linear-gradient(to right, rgba(218,168,60,.3), rgba(218,168,60,.05));
}

/* ============================================================
   CLIENTES SECTION
   ============================================================ */
.section-clientes {
  padding: 6rem 5vw;
  background: var(--navy);
}
.clientes-container {
  display: flex; gap: 5rem; align-items: flex-start;
}
.clientes-left { flex: 0 0 300px; }
.clientes-right { flex: 1; }
.clientes-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px; margin-bottom: 32px;
}
.cliente-item {
  display: flex; align-items: center; gap: 12px;
  padding: 18px 20px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(227,219,202,.06);
  border-radius: 4px;
  transition: all var(--transition);
}
.cliente-item:hover {
  background: rgba(218,168,60,.06);
  border-color: rgba(218,168,60,.15);
}
.cliente-item i {
  font-size: 1.1rem; color: var(--gold); opacity: .7;
}
.cliente-item span {
  font-family: var(--font-ui);
  font-size: .78rem; font-weight: 500;
  color: var(--cream); letter-spacing: .02em;
}
.clientes-note {
  font-size: .88rem; color: rgba(227,219,202,.45);
  font-style: italic;
}

/* ============================================================
   DESTACADOS (Marval: large featured items, alternating layout)
   ============================================================ */
.section-destacados {
  padding: 4rem 5vw;
  background: var(--white);
}
.destacados-container {
  display: flex; flex-direction: column; gap: 4rem;
}
.destacado-item {
  display: flex; gap: 4rem; align-items: center;
}
.destacado-reverse { flex-direction: row-reverse; }

.destacado-img {
  flex: 1.2; min-width: 0;
}
.destacado-img-placeholder {
  width: 100%; aspect-ratio: 16/9;
  background: linear-gradient(135deg, var(--cream) 0%, var(--cream-light) 100%);
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-ui); font-size: .8rem;
  color: var(--text-muted); letter-spacing: .05em;
  overflow: hidden;
}

.destacado-info { flex: 1; }
.destacado-tag {
  display: inline-block;
  font-family: var(--font-ui);
  font-size: .65rem; font-weight: 600;
  letter-spacing: .15em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 16px;
}
.destacado-title {
  font-family: var(--font-heading);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 400; color: var(--navy);
  line-height: 1.3; margin-bottom: 16px;
}
.destacado-excerpt {
  font-size: .95rem; color: var(--text-muted);
  line-height: 1.7; margin-bottom: 24px;
}

.btn-text-arrow {
  font-family: var(--font-ui);
  font-size: .75rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--gold);
  display: inline-flex; align-items: center; gap: 8px;
  transition: gap var(--fast), color var(--fast);
}
.btn-text-arrow:hover { gap: 14px; color: var(--gold-dark); }

/* ============================================================
   PUBLICACIONES CAROUSEL (Marval: Swiper, coverflow-like)
   ============================================================ */
.section-publicaciones {
  padding: 6rem 0 6rem;
  background: var(--cream-light);
}
.publicaciones-header {
  padding: 0 5vw; margin-bottom: 3rem;
}
.section-heading {
  font-family: var(--font-heading);
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 300; color: var(--navy);
}
.section-heading-light { color: var(--cream); }


/* ============================================================
   EVENTOS (Marval: event card grid, images + info)
   ============================================================ */
.section-eventos {
  padding: 4rem 5vw 6rem;
  background: var(--cream-lighter);
}
.eventos-container { }
.eventos-container .section-heading { margin-bottom: 3rem; }

.eventos-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3rem;
}

.evento-card {
  display: flex; flex-direction: column;
  overflow: hidden;
}
.evento-img { }
.evento-img-placeholder {
  width: 100%; aspect-ratio: 3/2;
  background: linear-gradient(135deg, var(--cream) 0%, var(--cream-light) 100%);
  border-radius: 7px;
}
.evento-info { padding: 1.5rem 0; }
.evento-date-badge {
  display: inline-block;
  font-family: var(--font-ui);
  font-size: .65rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--white); background: var(--navy);
  padding: 5px 14px; margin-bottom: 14px;
  border-radius: 2px;
}
.evento-title {
  font-family: var(--font-heading);
  font-size: 1.2rem; font-weight: 400;
  color: var(--navy); line-height: 1.35;
  margin-bottom: 12px;
}
.evento-body {
  font-size: .92rem; color: var(--text-muted);
  line-height: 1.7; margin-bottom: 18px;
}

/* ============================================================
   PANEL INSTITUCIONAL (Marval: horizontal scroll, pinned)
   ============================================================ */
.section-institucional {
  position: relative; overflow: hidden;
  height: 100vh; /* will be controlled by GSAP */
}
.institucional-container {
  width: 100%; height: 100vh;
  overflow: hidden; position: relative;
}
.institucional-track {
  display: flex; flex-wrap: nowrap;
  height: 100%;
}
.institucional-slide {
  min-width: 100vw; height: 100%;
  position: relative;
  display: flex; align-items: center; justify-content: center;
}
.institucional-slide-bg {
  position: absolute; inset: 0;
}
.inst-bg-1 { background: url('../assets/img/inst-slide1.webp') center/cover no-repeat; }
.inst-bg-2 { background: url('../assets/img/inst-slide2.webp') center/cover no-repeat; }
.inst-bg-3 { background: url('../assets/img/inst-slide3.webp') center/cover no-repeat; }

.institucional-slide-overlay {
  position: absolute; inset: 0;
  background: rgba(31,33,51,.72);
}
.institucional-slide-content {
  position: relative; z-index: 2;
  text-align: center; max-width: 600px;
  padding: 0 5vw;
}
.inst-label {
  font-family: var(--font-ui);
  font-size: .65rem; font-weight: 600;
  letter-spacing: .3em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 20px;
  display: block;
}
.inst-title {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 300; color: var(--cream);
  margin-bottom: 24px; letter-spacing: .03em;
}
.inst-text {
  font-size: 1.05rem; color: rgba(227,219,202,.75);
  line-height: 1.8;
}

/* ============================================================
   NOVEDADES (Marval: card grid)
   ============================================================ */
.section-novedades {
  padding: 6rem 5vw;
  background: var(--white);
}
.novedades-container .section-heading { margin-bottom: 3rem; }

.novedades-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}
.novedad-card {
  display: block; border-radius: 8px;
  overflow: hidden; background: var(--white);
  box-shadow: 0 2px 16px rgba(0,0,0,.04);
  transition: transform var(--transition), box-shadow var(--transition);
}
.novedad-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 35px rgba(0,0,0,.1);
}
.novedad-img { }
.novedad-img-placeholder {
  width: 100%; height: 200px;
  background: linear-gradient(135deg, var(--cream), var(--cream-light));
  transition: transform .4s ease;
}
.novedad-card:hover .novedad-img-placeholder { transform: scale(1.03); }

.novedad-detail { padding: 20px; }
.novedad-cat {
  font-family: var(--font-ui);
  font-size: .6rem; font-weight: 600;
  letter-spacing: .15em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 8px; display: block;
}
.novedad-title {
  font-family: var(--font-heading);
  font-size: 1rem; font-weight: 400;
  color: var(--navy); line-height: 1.4;
  margin-bottom: 10px;
}
.novedad-date {
  font-family: var(--font-ui);
  font-size: .7rem; color: var(--text-muted);
}

/* ============================================================
   EQUIPO (dark section, minimal cards)
   ============================================================ */
.section-equipo {
  padding: 6rem 5vw;
  background: var(--navy);
}
.equipo-container .section-heading { margin-bottom: 3rem; }



/* ============================================================
   BANNER CTA (Marval: full-width bg image, overlay, CTA)
   ============================================================ */
.section-banner {
  position: relative; width: 100vw;
  padding: 100px 5vw;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.banner-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, var(--navy) 0%, #2E3A5E 50%, var(--navy-dark) 100%);
}
.banner-overlay {
  position: absolute; inset: 0;
  background: rgba(0,0,0,.3);
}
.banner-content {
  position: relative; z-index: 2;
  text-align: center; max-width: 650px;
}
.banner-title {
  font-family: var(--font-heading);
  font-size: clamp(1.6rem, 3vw, 2.5rem);
  font-weight: 300; color: var(--cream);
  margin-bottom: 16px;
}
.banner-text {
  font-size: 1rem; color: rgba(227,219,202,.7);
  margin-bottom: 32px; line-height: 1.7;
}

/* ============================================================
   CONTACTO PREMIUM (unified CTA + form, dark bg with image)
   ============================================================ */
.section-contacto-premium {
  position: relative;
  padding: 6rem 5vw;
  overflow: hidden;
}
.contacto-premium-bg {
  display: none;
}
.contacto-premium-overlay {
  position: absolute; inset: 0;
  background: var(--cream);
}
.contacto-premium-inner {
  position: relative; z-index: 2;
  display: flex; align-items: center; gap: 5rem;
  max-width: 1200px;
  margin: 0 auto;
}
.contacto-premium-left {
  flex: 0 0 420px;
}
.contacto-premium-right {
  flex: 1;
}
.contacto-mobile-info {
  display: none;
}
.contacto-premium-title {
  font-family: var(--font-heading);
  font-size: clamp(1.6rem, 2.5vw, 2.4rem);
  font-weight: 300;
  color: var(--navy);
  line-height: 1.3;
  margin-bottom: 16px;
}
.contacto-premium-text {
  font-size: .92rem;
  color: var(--navy-light);
  opacity: .7;
  line-height: 1.8;
  margin-bottom: 0;
}
.contacto-premium-divider {
  width: 40px;
  height: 1px;
  background: var(--brown);
  margin: 24px 0;
  opacity: .35;
}
.contacto-premium-info {
  display: flex; flex-direction: column; gap: 20px;
}
.contacto-premium-item {
  display: flex; align-items: flex-start; gap: 14px;
}
.contacto-premium-item i {
  font-size: .95rem; color: var(--brown); margin-top: 3px;
  width: 18px; text-align: center;
}
.contacto-item-label {
  display: block;
  font-family: var(--font-ui);
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--brown);
  margin-bottom: 2px;
}
.contacto-premium-item p {
  font-size: .88rem; color: var(--navy);
  opacity: .6;
  margin: 0; line-height: 1.5;
}
.contacto-social {
  display: flex; align-items: center; gap: 16px;
}
.contacto-social-label {
  font-family: var(--font-ui);
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.contacto-social-icons {
  display: flex; gap: 12px;
}
.contacto-social-icons a {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  border: 1px solid rgba(31,33,51,.15);
  border-radius: 50%;
  color: var(--navy);
  font-size: .85rem;
  transition: all .3s ease;
}
.contacto-social-icons a:hover {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--cream);
}
.contacto-whatsapp-btn {
  display: inline-flex; align-items: center; gap: 10px;
  margin-top: 12px;
  padding: 14px 28px;
  background: var(--navy);
  color: var(--cream);
  font-family: var(--font-ui);
  font-size: .8rem; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  text-decoration: none;
  border-radius: 4px;
  border: 1.5px solid var(--navy);
  transition: all .3s ease;
}
.contacto-whatsapp-btn:hover { background: var(--gold); border-color: var(--gold); color: var(--white); }
.contacto-whatsapp-btn i { font-size: 1.1rem; }

/* Form on navy bg */
.contacto-premium-form {
  background: var(--white);
  padding: 40px;
  border: 2.5px solid var(--gold);
  border-radius: 4px;
  box-shadow: 0 4px 30px rgba(0,0,0,.15);
}

.btn-submit-light {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 36px;
  font-family: var(--font-ui);
  font-size: .75rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--white); background: var(--navy);
  border: 1.5px solid var(--navy);
  cursor: pointer; transition: all var(--transition);
}
.btn-submit-light:hover {
  background: var(--gold); border-color: var(--gold);
}
.btn-submit-light i { transition: transform var(--fast); }
.btn-submit-light:hover i { transform: translateX(4px); }
.form-row { display: flex; gap: 20px; margin-bottom: 16px; }
.form-row .form-group { flex: 1; }
.form-group { position: relative; margin-bottom: 16px; }

.form-input {
  width: 100%; padding: 16px 0 8px;
  font-family: var(--font-body); font-size: .92rem;
  color: var(--navy); background: transparent;
  border: none; border-bottom: 1px solid var(--border-light);
  outline: none; transition: border-color var(--fast);
  -webkit-appearance: none; border-radius: 0;
}
.form-input:focus { border-color: var(--gold); }

.form-label-float {
  position: absolute; top: 16px; left: 0;
  font-family: var(--font-ui); font-size: .82rem;
  color: var(--text-muted); pointer-events: none;
  transition: all var(--fast);
}
.form-input:focus ~ .form-label-float,
.form-input:not(:placeholder-shown) ~ .form-label-float {
  top: 0; font-size: .6rem;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--gold);
}
select.form-input { cursor: pointer; }
textarea.form-input { resize: vertical; min-height: 100px; }

.btn-submit {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 36px;
  font-family: var(--font-ui);
  font-size: .75rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--white); background: var(--navy);
  border: 1.5px solid var(--navy);
  cursor: pointer; transition: all var(--transition);
}
.btn-submit:hover {
  background: var(--gold); border-color: var(--gold);
}
.btn-submit i { transition: transform var(--fast); }
.btn-submit:hover i { transform: translateX(4px); }

/* ============================================================
   WHATSAPP FLOATING BUTTON
   ============================================================ */
.whatsapp-float-wrap {
  position: static;
}
.btn-whatsapp-float {
  position: fixed;
  bottom: 32px;
  right: 32px;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  background: var(--navy);
  border: none;
  border-radius: 50%;
  color: var(--cream);
  font-size: 1.6rem;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(0,0,0,.25), 0 0 0 2px rgba(218,168,60,.3);
  transition: all .3s ease;
  text-decoration: none;
}
.btn-whatsapp-float:hover {
  background: var(--gold);
  color: var(--white);
  box-shadow: 0 6px 24px rgba(218,168,60,.35), 0 0 0 2px rgba(218,168,60,.3);
  transform: scale(1.08);
}
.whatsapp-float-label {
  position: fixed;
  bottom: 50px;
  right: 108px;
  z-index: 9999;
  background: var(--navy);
  color: var(--cream);
  font-family: var(--font-ui);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .03em;
  padding: 10px 18px;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0,0,0,.2);
  white-space: nowrap;
  opacity: 0;
  transform: translateX(10px);
  transition: all .3s ease;
  pointer-events: none;
}
.whatsapp-float-label::after {
  content: '';
  position: absolute;
  top: 50%;
  right: -6px;
  transform: translateY(-50%);
  border: 6px solid transparent;
  border-left-color: var(--navy);
  border-right: none;
}
.btn-whatsapp-float:hover + .whatsapp-float-label,
.whatsapp-float-wrap:hover .whatsapp-float-label,
.whatsapp-float-wrap.show-label .whatsapp-float-label {
  opacity: 1;
  transform: translateX(0);
}
@media (max-width: 767px) {
  .btn-whatsapp-float { bottom: 20px; right: 20px; width: 56px; height: 56px; font-size: 1.4rem; }
  .whatsapp-float-label { bottom: 36px; right: 88px; }
}

/* ============================================================
   FOOTER (Marval: dark, multi-column)
   ============================================================ */
.site-footer {
  background: var(--navy-dark);
  color: rgba(227,219,202,.5);
}
.footer-top {
  display: flex; align-items: center; justify-content: space-between;
  padding: 40px 5vw;
}
.footer-logo {
  display: flex; align-items: center;
}
.footer-social {
  display: flex; align-items: center;
  gap: 16px;
}
.footer-social a {
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(227,219,202,.12);
  border-radius: 50%; font-size: .9rem;
  color: rgba(227,219,202,.5);
  transition: all var(--fast);
}
.footer-social a:hover { border-color: var(--gold); color: var(--gold); }

.footer-menu {
  display: flex; flex-wrap: wrap; gap: 3rem;
  padding: 32px 5vw 40px;
  border-top: 1px solid rgba(255,255,255,.08);
}
.footer-col { min-width: 180px; }
.footer-col h5 {
  font-family: var(--font-ui);
  font-size: .7rem; font-weight: 600;
  letter-spacing: .15em; text-transform: uppercase;
  color: rgba(227,219,202,.7);
  margin-bottom: 16px;
}
.footer-col a, .footer-col p {
  display: block; font-size: .85rem;
  color: rgba(227,219,202,.4);
  margin-bottom: 8px; transition: color var(--fast);
}
.footer-col a:hover { color: var(--gold); }

.footer-bottom {
  padding: 20px 5vw;
  border-top: 1px solid rgba(255,255,255,.05);
  text-align: center;
}
.footer-bottom p {
  font-family: var(--font-ui);
  font-size: .68rem; letter-spacing: .06em;
  color: rgba(227,219,202,.25); margin: 0;
}

/* Scroll to top */
.btn-scroll-top {
  position: fixed; bottom: 108px; right: 42px;
  width: 44px; height: 44px;
  background: var(--navy); color: var(--cream);
  border: none; border-radius: 50%;
  font-size: 1.1rem; cursor: pointer;
  opacity: 0; visibility: hidden;
  transition: all var(--transition);
  z-index: 9000;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 12px rgba(0,0,0,.2), 0 0 0 2px rgba(218,168,60,.3);
}
.btn-scroll-top.visible { opacity: 1 !important; visibility: visible !important; }
.btn-scroll-top:hover { background: var(--gold); box-shadow: 0 2px 12px rgba(0,0,0,.2), 0 0 0 2px rgba(218,168,60,.3); }

/* ============================================================
   RESPONSIVE
   ============================================================ */

/* ---------- Tablet (max 991px) ---------- */
@media (max-width: 991px) {
  .navbar-toggler { display: block; }

  /* ---- Full-screen overlay nav ---- */
  .nav-menu {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    background: rgba(31,33,51,.35);
    backdrop-filter: blur(30px);
    -webkit-backdrop-filter: blur(30px);
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 100px 12vw 60px;
    z-index: 1000;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  .nav-menu.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  /* Gold accent line — vertical, left edge */
  .nav-menu::before {
    content: '';
    position: absolute;
    top: 15%;
    left: 8vw;
    width: 1px;
    height: 0;
    background: linear-gradient(to bottom, transparent, var(--gold) 20%, var(--gold) 80%, transparent);
    opacity: 0.4;
    transition: height 0.8s cubic-bezier(0.25, 0.1, 0.25, 1) 0.2s;
  }
  .nav-menu.open::before {
    height: 70%;
  }

  /* ---- Nav list layout ---- */
  .nav-list {
    flex-direction: column;
    width: 100%;
    gap: 0;
    padding-left: 0;
    text-align: center;
  }

  .nav-item { overflow: hidden; }

  /* ---- Nav link typography (refined, not oversized) ---- */
  .nav-link {
    padding: 16px 0;
    font-size: 1.3rem;
    font-weight: 400;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(227, 219, 202, 0.85);
    transition: color 0.3s ease;
    display: block;
    text-shadow: 0 1px 10px rgba(31,33,51,.7), 0 0 3px rgba(31,33,51,.5);
  }
  .nav-link:hover,
  .nav-link:focus {
    color: var(--gold);
  }

  /* ---- Submenu (Servicios) ---- */
  .submenu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    display: none;
    overflow: hidden;
  }
  .nav-item.has-submenu.sub-open .submenu {
    display: block;
  }
  .submenu-inner {
    background: transparent;
    backdrop-filter: none;
    border: none;
    padding: 0;
    margin: 0;
  }
  .submenu-link {
    padding: 12px 0;
    font-size: 0.85rem;
    font-weight: 300;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(227, 219, 202, 0.85);
    transition: color 0.3s ease;
    text-shadow: 0 1px 10px rgba(31,33,51,.7), 0 0 3px rgba(31,33,51,.5);
    display: block;
    text-align: center;
  }
  .submenu-link:hover {
    color: var(--gold);
    padding-left: 0;
  }

  /* ---- Nav right section (search + lang) ---- */
  .nav-right {
    margin-left: 0;
    margin-top: 32px;
    padding-top: 24px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    border-top: 1px solid rgba(227, 219, 202, 0.08);
  }
  .nav-right .lang-link,
  .nav-right .lang-sep,
  .nav-right .nav-search-btn {
    text-shadow: 0 1px 10px rgba(31,33,51,.7), 0 0 3px rgba(31,33,51,.5);
  }

  /* Perfil: hide image, full-width text on mobile */
  .section-perfil { flex-direction: column; min-height: auto; }
  .perfil-img { display: none; }
  .perfil-content { padding: 3.5rem 5vw; }

  /* Hero adjustments */
  .hero-section { min-height: 500px; }
  .hero-slide-title { font-size: clamp(2rem, 5vw, 3rem); }
  .hero-slide-sub { font-size: 1rem; }

  /* Servicios panels */
  .servicios-panels { grid-template-columns: 1fr; }
  .servicio-panel { min-height: 220px; padding: 0 5vw; }
  .servicio-panel-number { font-size: 5rem; right: 5vw; }

  /* Sections */
  .destacado-item, .destacado-reverse { flex-direction: column; gap: 2rem; }
  .eventos-grid { grid-template-columns: 1fr; }
  .contacto-premium-inner { flex-direction: column; gap: 2rem; }
  .contacto-premium-left { flex: auto; text-align: center; order: 1; }
  .contacto-premium-right { order: 2; }
  .contacto-desktop-info { display: none; }
  .contacto-mobile-info { display: block; order: 3; text-align: center; }
  .contacto-mobile-info .contacto-premium-divider { margin: 20px auto; }
  .contacto-mobile-info .contacto-premium-info { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; justify-items: center; }
  .contacto-mobile-info .contacto-premium-item { flex-direction: column; align-items: center; gap: 4px; min-width: 0; max-width: 100%; overflow: hidden; }
  .contacto-mobile-info .contacto-premium-item i { margin-top: 0; }
  .contacto-mobile-info .contacto-premium-item div { text-align: center; min-width: 0; max-width: 100%; }
  .contacto-mobile-info .contacto-premium-item p { font-size: .65rem; word-break: break-word; overflow-wrap: break-word; }
  .contacto-mobile-info .contacto-item-label { font-size: .55rem; }
  .contacto-mobile-info .contacto-social { justify-content: center; }
  .contacto-premium-form { padding: 32px 24px; width: 100%; }

  /* Institucional: vertical stack on tablet */
  .section-institucional { height: auto !important; }
  .institucional-container { height: auto; }
  .institucional-track { flex-direction: column; }
  .institucional-slide { min-width: 100%; min-height: 70vh; }
}

/* ---------- Mobile (max 767px) ---------- */
@media (max-width: 767px) {
  /* Hero: ensure videos fill and are visible */
  .hero-section { height: 100vh; height: 100svh; min-height: 480px; }
  .hero-slide-bg video { width: 100%; height: 100%; object-fit: cover; }
  .hero-slide-content { padding: 0 7vw; }
  .hero-slide-title { font-size: clamp(2.2rem, 9vw, 3rem); font-weight: 400; }
  .hero-slide-sub { font-size: 1.05rem; font-weight: 400; line-height: 1.7; }
  .hero-slide-label { font-size: .7rem; letter-spacing: .3em; margin-bottom: 1.2rem; }
  .btn-hero { padding: 12px 28px; font-size: .72rem; }
  .hero-indicators { bottom: 3vh; right: 7vw; gap: 10px; }
  .hero-dot { width: 10px; height: 10px; }
  .hero-scroll { bottom: 3vh; left: 7vw; }

  /* Perfil */
  .section-perfil { padding: 15% 7vw 10%; background: var(--cream-light); }
  .perfil-text { font-size: 1rem; line-height: 1.8; }

  /* Servicios */
  .servicios-header-full { padding: .5rem 5vw .3rem; }
  .servicio-panel { min-height: 200px; }
  .servicio-panel-content { padding: 2.5rem 0; }
  .servicio-panel-title { font-size: 1.2rem; }
  .servicio-panel-desc { font-size: .88rem; }
  .servicio-panel-number { font-size: 4rem; right: 7vw; }

  /* Clientes */
  .clientes-grid { grid-template-columns: 1fr; }

  /* Destacados */
  .section-destacados { padding: 3rem 5vw; }

  /* Publicaciones */
  .publicaciones-swiper { padding: 0 5vw; }

  /* Institucional: vertical stack */
  .section-institucional { height: auto !important; }
  .institucional-container { height: auto; }
  .institucional-track { flex-direction: column; }
  .institucional-slide { min-width: 100%; min-height: 60vh; }
  .inst-title { font-size: clamp(1.8rem, 6vw, 2.5rem); }
  .inst-text { font-size: .95rem; }
  .institucional-slide-content { max-width: 100%; padding: 0 7vw; }

  /* Novedades */
  .novedades-grid { grid-template-columns: 1fr; }


  /* Banner */
  .section-banner { padding: 70px 7vw; }
  .banner-title { font-size: clamp(1.4rem, 5vw, 2rem); }

  /* Contacto */
  .section-contacto-premium { padding: 2.5rem 0; }
  .contacto-premium-inner { padding: 0 3vw; }
  .contacto-premium-left { padding: 0 4vw; }
  .contacto-premium-right { width: 90%; margin: 0 auto; padding: 0; }
  .contacto-premium-form { padding: 28px 6vw; width: 100%; border: 2.5px solid var(--gold); border-radius: 4px; text-align: center; }
  .contacto-premium-form .form-row { flex-direction: column; gap: 0; }
  .contacto-premium-title { font-size: 1.3rem; text-align: center; }
  .contacto-premium-text { text-align: center; }
  .btn-submit-light { width: 100%; justify-content: center; }

  /* Footer */
  .footer-menu { flex-direction: column; gap: 2rem; }
  .footer-top { flex-direction: column; align-items: center; gap: 24px; text-align: center; }
  .footer-logo { justify-content: center; }
  .footer-social { justify-content: center; }

  /* Float buttons */
  .btn-scroll-top { bottom: 88px; right: 26px; }
}

/* ---------- Small phones (max 480px) ---------- */
@media (max-width: 480px) {
  .hero-section { min-height: 400px; }
  .hero-slide-title { font-size: clamp(1.9rem, 8.5vw, 2.4rem); font-weight: 400; }
  .hero-slide-label { font-size: .6rem; }
  .nav-container { padding: 14px 4vw; }
  .navbar-brand { width: 219px; height: 61px; }
  .servicios-header-full { padding: .3rem 5vw .2rem; }
  .servicio-panel { min-height: 180px; }
  .servicio-panel-number { display: none; }
  .institucional-slide { min-height: 50vh; }
  .inst-title { font-size: 1.5rem; }
  .section-heading { font-size: clamp(1.4rem, 5vw, 2rem); }
  .contacto-form { padding: 24px 16px; }
  .footer-menu { padding: 24px 4vw 32px; }
}

/* ---------- Service perfil: min-height for large screens ---------- */
@media (min-width: 992px) {
  .svc-perfil { min-height: max(440px, 36vh); }
}

/* Custom scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--navy-dark); }
::-webkit-scrollbar-thumb { background: var(--slate); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--gold); }
