    /* ══════════════════════════════════════════
       RESET & BASE
    ══════════════════════════════════════════ */
    *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    img, video { display: block; max-width: 100%; }
    a { text-decoration: none; color: inherit; }
    ul { list-style: none; }

    /* ══════════════════════════════════════════
       DESIGN TOKENS
    ══════════════════════════════════════════ */
    :root {
      --navy:        #0F2341;
      --navy-mid:    #162d52;
      --gold:        #C8A05A;
      --gold-hover:  #d9b47a;
      --warm-white:  #F7F6F2;
      --off-white:   #EEECEA;
      --grey:        #6B7280;
      --grey-light:  #9CA3AF;
      --ease-out:    cubic-bezier(0.25, 0.46, 0.45, 0.94);
      --ease-in-out: cubic-bezier(0.76, 0, 0.24, 1);
      --dur:         0.38s;
    }

    body {
      font-family: 'Inter', sans-serif;
      font-weight: 400;
      background: var(--warm-white);
      color: var(--navy);
      overflow-x: hidden;
      cursor: none;
    }

    /* ══════════════════════════════════════════
       CUSTOM CURSOR
    ══════════════════════════════════════════ */
    #cursor-dot {
      position: fixed;
      width: 6px; height: 6px;
      background: var(--gold);
      border-radius: 50%;
      pointer-events: none;
      z-index: 99999;
      transform: translate(-50%, -50%);
      will-change: transform;
    }

    #cursor-ring {
      position: fixed;
      width: 28px; height: 28px;
      border: 1px solid rgba(200, 160, 90, 0.55);
      border-radius: 50%;
      pointer-events: none;
      z-index: 99998;
      transform: translate(-50%, -50%);
      will-change: transform;
      transition: width .25s var(--ease-out),
                  height .25s var(--ease-out),
                  border-color .25s;
    }

    #cursor-ring.hover {
      width: 46px; height: 46px;
      border-color: rgba(200, 160, 90, 0.85);
    }

    /* ══════════════════════════════════════════
       SCROLL PROGRESS BAR
    ══════════════════════════════════════════ */
    #progress-bar {
      position: fixed;
      top: 0; left: 0;
      height: 2px;
      background: var(--gold);
      z-index: 9999;
      transform-origin: left center;
      transform: scaleX(0);
      will-change: transform;
    }

    /* ══════════════════════════════════════════
       PAGE LOADER
    ══════════════════════════════════════════ */
    #page-loader {
      position: fixed;
      inset: 0;
      background: var(--navy);
      z-index: 99997;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .loader-logo {
      opacity: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 1.5rem;
    }

    .loader-logo-img {
      height: 100px;
      width: auto;
    }

    .loader-bar {
      width: 48px;
      height: 2px;
      background: rgba(200,160,90,0.2);
      border-radius: 1px;
      overflow: hidden;
      position: relative;
    }

    .loader-bar::after {
      content: '';
      position: absolute;
      top: 0; left: -100%;
      width: 100%; height: 100%;
      background: var(--gold);
      border-radius: 1px;
      animation: loaderSweep 1.1s ease-in-out forwards;
    }

    @keyframes loaderSweep {
      0%   { left: -100%; }
      100% { left: 0%; }
    }

    /* ══════════════════════════════════════════
       NAVBAR
    ══════════════════════════════════════════ */
    #navbar {
      position: fixed;
      inset: 0 0 auto 0;
      z-index: 1000;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 1.5rem 3.5rem;
      backdrop-filter: blur(4px);
      -webkit-backdrop-filter: blur(4px);
      transition: padding var(--dur) var(--ease-out),
                  background var(--dur) var(--ease-out),
                  box-shadow var(--dur) var(--ease-out),
                  backdrop-filter var(--dur) var(--ease-out);
    }

    #navbar.scrolled {
      background: rgba(15, 35, 65, 0.92);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      padding: 1rem 3.5rem;
      box-shadow: 0 1px 48px rgba(0, 0, 0, 0.28);
    }

    .nav-logo { display: flex; align-items: center; }

    .nav-logo-img {
      height: 62px;
      width: auto;
      display: block;
      transition: opacity var(--dur);
    }

    .nav-logo-img:hover { opacity: 0.85; }

    /* ── Hamburger button ── */
    .nav-hamburger {
      display: none;
      flex-direction: column;
      justify-content: center;
      gap: 5px;
      width: 40px;
      height: 40px;
      padding: 6px;
      background: none;
      border: none;
      cursor: pointer;
      z-index: 1002;
      position: relative;
    }

    .nav-hamburger span {
      display: block;
      width: 100%;
      height: 1.5px;
      background: rgba(247,246,242,0.85);
      border-radius: 1px;
      transform-origin: center;
      transition: transform .38s var(--ease-out), opacity .25s, width .38s var(--ease-out);
    }

    .nav-hamburger span:nth-child(2) { width: 70%; }

    /* X state */
    body.menu-open .nav-hamburger span:nth-child(1) {
      transform: translateY(6.5px) rotate(45deg);
    }
    body.menu-open .nav-hamburger span:nth-child(2) {
      opacity: 0;
      width: 0;
    }
    body.menu-open .nav-hamburger span:nth-child(3) {
      transform: translateY(-6.5px) rotate(-45deg);
    }

    /* Bloquear scroll cuando el menú está abierto */
    body.menu-open { overflow: hidden; }

    /* ── Backdrop ── */
    #nav-backdrop {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(15,35,65,0.45);
      z-index: 1100;
      opacity: 0;
      backdrop-filter: blur(2px);
      -webkit-backdrop-filter: blur(2px);
      transition: opacity .38s var(--ease-out);
    }

    #nav-backdrop.visible { opacity: 1; }

    /* ── Offset panel ── */
    #nav-offset {
      position: fixed;
      top: 0;
      right: 0;
      width: min(85vw, 380px);
      height: 100dvh;
      background: var(--warm-white);
      z-index: 1200;
      display: flex;
      flex-direction: column;
      padding: 2.5rem 2.5rem 3rem;
      transform: translateX(100%);
      transition: transform .48s cubic-bezier(.76,0,.24,1);
      will-change: transform;
      overflow-y: auto;
    }

    body.menu-open #nav-offset {
      transform: translateX(0);
    }

    .offset-close {
      align-self: flex-end;
      background: none;
      border: none;
      cursor: pointer;
      padding: 4px;
      color: var(--navy);
      opacity: 0.55;
      transition: opacity var(--dur);
      line-height: 1;
      font-size: 1.4rem;
    }

    .offset-close:hover { opacity: 1; }

    .offset-logo {
      margin-top: 2rem;
      margin-bottom: 3rem;
    }

    .offset-logo img {
      height: 72px;
      width: auto;
      display: block;
    }

    .offset-nav {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 0;
      flex: 1;
    }

    .offset-nav li {
      border-bottom: 1px solid rgba(15,35,65,0.07);
    }

    .offset-nav li:first-child {
      border-top: 1px solid rgba(15,35,65,0.07);
    }

    .offset-nav a {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 1.1rem 0;
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.6rem;
      font-weight: 400;
      color: var(--navy);
      transition: color var(--dur), padding-left var(--dur);
    }

    .offset-nav a span {
      font-size: 0.85rem;
      color: rgba(200,160,90,0.55);
      transition: transform .3s var(--ease-out), color var(--dur);
    }

    .offset-nav a:hover {
      color: var(--gold);
      padding-left: .5rem;
    }

    .offset-nav a:hover span {
      transform: translateX(4px);
      color: var(--gold);
    }

    .offset-cta {
      display: block;
      text-align: center;
      font-size: 0.68rem;
      font-weight: 500;
      letter-spacing: 0.13em;
      text-transform: uppercase;
      color: var(--navy);
      background: var(--gold);
      padding: 1rem;
      border-radius: 2px;
      margin-top: 2.5rem;
      transition: background var(--dur), box-shadow var(--dur);
    }

    .offset-cta:hover {
      background: var(--gold-hover);
      box-shadow: 0 4px 20px rgba(200,160,90,0.35);
    }

    .offset-footer {
      margin-top: 2.5rem;
      padding-top: 2rem;
      border-top: 1px solid rgba(15,35,65,0.08);
    }

    .offset-footer-tag {
      font-size: 0.58rem;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(15,35,65,0.35);
      display: block;
      margin-bottom: 1.1rem;
    }

    .offset-socials {
      display: flex;
      gap: 1.1rem;
    }

    .offset-social-link {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 38px;
      height: 38px;
      border: 1px solid rgba(15,35,65,0.14);
      border-radius: 50%;
      color: var(--navy);
      transition: border-color var(--dur), background var(--dur), color var(--dur), transform .3s var(--ease-out);
    }

    .offset-social-link:hover {
      background: var(--navy);
      border-color: var(--navy);
      color: var(--warm-white);
      transform: translateY(-2px);
    }

    .offset-social-link svg {
      width: 16px;
      height: 16px;
      fill: currentColor;
    }

    .offset-address {
      margin-top: 1.5rem;
      font-size: 0.72rem;
      line-height: 1.7;
      color: rgba(15,35,65,0.4);
    }

    /* ── Accordion servicios en offset ── */
    .offset-has-sub {
      border-bottom: 1px solid rgba(15,35,65,0.07);
    }

    .offset-has-sub:first-child { border-top: none; }

    .offset-svc-toggle {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      padding: 1.1rem 0;
      background: none;
      border: none;
      cursor: pointer;
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.6rem;
      font-weight: 400;
      color: var(--navy);
      text-align: left;
      transition: color var(--dur);
    }

    .offset-svc-toggle:hover { color: var(--gold); }

    .offset-toggle-icon {
      width: 14px; height: 14px;
      stroke: currentColor;
      fill: none;
      stroke-width: 2;
      stroke-linecap: round;
      transition: transform .35s var(--ease-out);
      flex-shrink: 0;
    }

    .offset-has-sub.open .offset-toggle-icon {
      transform: rotate(180deg);
    }

    .offset-svc-list {
      list-style: none;
      max-height: 0;
      overflow: hidden;
      transition: max-height .42s var(--ease-out);
    }

    .offset-has-sub.open .offset-svc-list {
      max-height: 400px;
    }

    .offset-svc-link {
      display: block;
      padding: .55rem 0 .55rem 1rem !important;
      font-family: 'Inter', sans-serif !important;
      font-size: 0.82rem !important;
      font-weight: 400 !important;
      color: rgba(15,35,65,0.6) !important;
      letter-spacing: 0.02em !important;
      border-bottom: none !important;
      transition: color var(--dur), padding-left var(--dur) !important;
    }

    .offset-svc-link:hover {
      color: var(--gold) !important;
      padding-left: 1.4rem !important;
    }

    .nav-links {
      display: flex;
      align-items: center;
      gap: 2.5rem;
    }

    .nav-links a {
      font-size: 0.7rem;
      font-weight: 500;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: rgba(247, 246, 242, 0.75);
      position: relative;
      transition: color var(--dur);
    }

    .nav-links a::after {
      content: '';
      position: absolute;
      bottom: -3px; left: 0;
      width: 0; height: 1px;
      background: var(--gold);
      transition: width .35s var(--ease-out);
    }

    .nav-links a:hover { color: #fff; }
    .nav-links a:hover::after { width: 100%; }

    /* ── Nav item con submenú ── */
    .nav-item-has-sub {
      position: relative;
    }

    .nav-item-has-sub > a {
      display: flex;
      align-items: center;
      gap: .3rem;
    }

    .nav-item-has-sub > a svg {
      width: 10px;
      height: 10px;
      fill: none;
      stroke: currentColor;
      stroke-width: 2;
      transition: transform .3s var(--ease-out);
    }

    .nav-item-has-sub:hover > a svg {
      transform: rotate(180deg);
    }

    /* Mega dropdown */
    /* El padding-top crea el puente de hover — el submenu
       empieza en top:100% del li pero tiene padding visual
       que actúa como zona de hover continua sin gap */
    .nav-submenu {
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%) translateY(-6px);
      width: 580px;
      background: rgba(13,28,52,0.97);
      backdrop-filter: blur(24px);
      -webkit-backdrop-filter: blur(24px);
      border: 1px solid rgba(200,160,90,0.14);
      border-radius: 4px;
      /* padding-top mayor = espacio visual entre link y panel */
      padding: 1rem 1.8rem 1.8rem;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: .3rem 1.2rem;
      opacity: 0;
      pointer-events: none;
      transition: opacity .25s var(--ease-out), transform .25s var(--ease-out);
      box-shadow: 0 24px 64px rgba(0,0,0,0.35);
      z-index: 900;
    }

    /* puntita dorada decorativa */
    .nav-submenu::before {
      content: '';
      position: absolute;
      top: -5px;
      left: 50%;
      transform: translateX(-50%);
      width: 10px;
      height: 10px;
      background: rgba(200,160,90,0.5);
      clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
    }

    .nav-item-has-sub:hover .nav-submenu,
    .nav-item-has-sub:focus-within .nav-submenu {
      opacity: 1;
      pointer-events: auto;
      transform: translateX(-50%) translateY(0);
    }

    .nav-sub-link {
      display: flex;
      align-items: center;
      gap: .75rem;
      padding: .7rem .9rem;
      border-radius: 3px;
      text-transform: none !important;
      letter-spacing: 0 !important;
      font-size: 0.82rem !important;
      font-weight: 400 !important;
      color: rgba(247,246,242,0.72) !important;
      transition: background .2s, color .2s, padding-left .2s !important;
    }

    .nav-sub-link::after { display: none !important; }

    .nav-sub-link:hover {
      background: rgba(200,160,90,0.1) !important;
      color: var(--gold) !important;
      padding-left: 1.1rem !important;
    }

    .nav-sub-num {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.1rem;
      font-weight: 300;
      color: rgba(200,160,90,0.4);
      flex-shrink: 0;
      width: 1.6rem;
      line-height: 1;
    }

    .nav-sub-name {
      font-family: 'Inter', sans-serif;
      font-weight: 400;
      line-height: 1.3;
    }

    .btn-nav {
      font-size: 0.68rem;
      font-weight: 500;
      letter-spacing: 0.13em;
      text-transform: uppercase;
      color: var(--navy);
      background: var(--gold);
      padding: .625rem 1.5rem;
      border-radius: 2px;
      transition: background var(--dur), box-shadow var(--dur);
    }

    .btn-nav:hover {
      background: var(--gold-hover);
      box-shadow: 0 4px 20px rgba(200, 160, 90, 0.38);
    }

    /* ══════════════════════════════════════════
       HERO
    ══════════════════════════════════════════ */
    #hero {
      position: relative;
      height: 100vh;
      min-height: 660px;
      display: flex;
      align-items: center;
      overflow: hidden;
    }

    .hero-video {
      position: absolute;
      inset: 0;
      width: 100%; height: 100%;
      object-fit: cover;
      transform: scale(1.06);
      will-change: transform;
    }

    /* Layered gradient overlay — navy left + cinematic vignette */
    .hero-overlay {
      position: absolute;
      inset: 0;
      background:
        linear-gradient(
          108deg,
          rgba(15, 35, 65, 0.92) 0%,
          rgba(15, 35, 65, 0.78) 42%,
          rgba(15, 35, 65, 0.48) 75%,
          rgba(15, 35, 65, 0.28) 100%
        ),
        radial-gradient(ellipse at 80% 50%, transparent 40%, rgba(5, 12, 25, 0.55) 100%);
    }

    /* Subtle grain texture */
    .hero-overlay::after {
      content: '';
      position: absolute;
      inset: 0;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
      opacity: 0.3;
      pointer-events: none;
    }

    .hero-content {
      position: relative;
      z-index: 2;
      width: 100%;
      max-width: 1280px;
      margin: 0 auto;
      padding: 5rem 3.5rem 7rem;   /* top = buffer bajo navbar fijo */
    }

    .hero-tag {
      display: inline-block;
      font-size: 0.67rem;
      font-weight: 500;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 1.6rem;
      opacity: 0;
    }

    .hero-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(2.6rem, 5.2vw, 4.8rem);
      font-weight: 300;
      line-height: 1.1em;
      color: var(--warm-white);
      max-width: clamp(640px, 65vw, 1100px);   /* más ancho en monitores grandes → menos líneas */
      margin-bottom: 1.8rem;
      overflow: hidden;
    }

    /* Each line is a clip container for the word-rise */
    .hero-title .tline {
      display: block;
      overflow: hidden;
    }

    .hero-title .tline-inner {
      display: block;
      transform: translateY(110%);
      text-wrap: balance;   /* balancea renglones, evita huérfanos */
      padding-bottom:3px;
    }

    .hero-sub {
      font-size: 1.05rem;
      font-weight: 300;
      line-height: 1.82;
      color: rgba(247, 246, 242, 0.65);
      max-width: 560px;
      margin-bottom: 1.5rem;
      opacity: 0;
    }

    .hero-tagline {
      display: block;
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.25rem;
      font-style: italic;
      font-weight: 400;
      color: var(--gold);
      margin-bottom: 2.75rem;
      opacity: 0;
    }

    .hero-btns {
      display: flex;
      gap: 1rem;
      opacity: 0;
    }

    /* ── Primary button ── */
    .btn-primary {
      display: inline-flex;
      align-items: center;
      gap: .45rem;
      font-size: 0.7rem;
      font-weight: 500;
      letter-spacing: 0.13em;
      text-transform: uppercase;
      color: var(--navy);
      background: var(--gold);
      padding: .875rem 2.1rem;
      border-radius: 2px;
      position: relative;
      overflow: hidden;
      transition: box-shadow var(--dur);
    }

    .btn-primary::after {
      content: '';
      position: absolute;
      inset: 0;
      background: rgba(255,255,255,0.14);
      transform: scaleX(0);
      transform-origin: left;
      transition: transform .3s var(--ease-out);
    }

    .btn-primary:hover::after { transform: scaleX(1); }
    .btn-primary:hover { box-shadow: 0 8px 28px rgba(200, 160, 90, 0.42); }

    /* ── Ghost button ── */
    .btn-ghost {
      display: inline-flex;
      align-items: center;
      font-size: 0.7rem;
      font-weight: 500;
      letter-spacing: 0.13em;
      text-transform: uppercase;
      color: rgba(247, 246, 242, 0.85);
      background: transparent;
      padding: .875rem 2.1rem;
      border: 1px solid rgba(247, 246, 242, 0.3);
      border-radius: 2px;
      transition: border-color var(--dur), color var(--dur);
    }

    .btn-ghost:hover {
      border-color: var(--gold);
      color: var(--gold);
    }

    /* Scroll cue */
    .hero-scroll-cue {
      position: absolute;
      bottom: 2.5rem;
      left: 50%;
      transform: translateX(-50%);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: .5rem;
      z-index: 2;
      opacity: 0;
    }

    .hero-scroll-cue span {
      font-size: 0.6rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(247, 246, 242, 0.4);
    }

    .scroll-line {
      width: 1px;
      height: 44px;
      background: linear-gradient(to bottom, rgba(200,160,90,0.9), transparent);
      animation: scrollPulse 2.2s ease-in-out infinite;
    }

    @keyframes scrollPulse {
      0%   { transform: scaleY(0); transform-origin: top; opacity: 1; }
      45%  { transform: scaleY(1); transform-origin: top; opacity: 1; }
      46%  { transform: scaleY(1); transform-origin: bottom; opacity: 1; }
      100% { transform: scaleY(0); transform-origin: bottom; opacity: 0; }
    }

    /* ══════════════════════════════════════════
       SECTION COMMONS
    ══════════════════════════════════════════ */
    .section-tag {
      display: block;
      font-size: 0.66rem;
      font-weight: 500;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 1rem;
    }

    .container {
      max-width: 1280px;
      margin: 0 auto;
      padding: 0 3.5rem;
    }

    /* ══════════════════════════════════════════
       NOSOTROS
    ══════════════════════════════════════════ */
    #nosotros {
      background:
        radial-gradient(ellipse 80% 60% at 5% 5%,   rgba(200,160,90,0.08) 0%, transparent 55%),
        radial-gradient(ellipse 55% 45% at 95% 95%,  rgba(15,35,65,0.05)  0%, transparent 55%),
        var(--warm-white);
      padding: 9rem 3.5rem;
      overflow: hidden;
    }

    .nosotros-grid {
      max-width: 1280px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 1.05fr;
      gap: 6rem;
      align-items: center;
    }

    /* Visual card — replace inner content with real photo */
    .nosotros-visual {
      position: relative;
      aspect-ratio: 4 / 5;
      background: var(--navy);
      border-radius: 3px;
      overflow: visible;
    }

    .nosotros-img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center top;
      border-radius: 3px;
    }

    /* Offset gold border */
    .nosotros-visual::before {
      content: '';
      position: absolute;
      top: 1.75rem; left: 1.75rem;
      right: -1.75rem; bottom: -1.75rem;
      border: 1px solid rgba(200, 160, 90, 0.35);
      border-radius: 3px;
      z-index: -1;
      transition: opacity .5s;
    }

    .nosotros-visual-bg {
      position: absolute;
      inset: 0;
      border-radius: 3px;
      background:
        radial-gradient(ellipse at 30% 70%, rgba(200,160,90,0.07) 0%, transparent 60%),
        linear-gradient(160deg, var(--navy-mid) 0%, var(--navy) 100%);
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    /* Subtle grid lines inside the card */
    .nosotros-visual-bg::before {
      content: '';
      position: absolute;
      inset: 0;
      background-image:
        linear-gradient(rgba(200,160,90,0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(200,160,90,0.06) 1px, transparent 1px);
      background-size: 48px 48px;
    }

    .nosotros-monogram {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 1.2rem;
    }

    .nosotros-location {
      font-size: 0.6rem;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(247,246,242,0.35);
      text-align: center;
    }

    /* Text side */
    .nosotros-text .section-tag { margin-bottom: .9rem; }

    .nosotros-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(1.9rem, 2.9vw, 2.75rem);
      font-weight: 400;
      line-height: 1.18;
      color: var(--navy);
      margin-bottom: 2.1rem;
    }

    .nosotros-title em {
      font-style: italic;
      color: var(--gold);
    }

    .nosotros-body p {
      font-size: 1rem;
      line-height: 1.88;
      color: var(--grey);
      margin-bottom: 1.1rem;
    }

    .nosotros-tagline {
      display: block;
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.1rem;
      font-style: italic;
      color: var(--gold);
      margin-top: 1.75rem;
      margin-bottom: 2rem;
    }

    .btn-text-arrow {
      display: inline-flex;
      align-items: center;
      gap: .5rem;
      font-size: 0.7rem;
      font-weight: 500;
      letter-spacing: 0.13em;
      text-transform: uppercase;
      color: var(--navy);
      border-bottom: 1px solid currentColor;
      padding-bottom: 2px;
      transition: color var(--dur), gap var(--dur);
    }

    .btn-text-arrow:hover { color: var(--gold); gap: .75rem; }

    /* ══════════════════════════════════════════
       SERVICIOS — sticky left + scroll panels
    ══════════════════════════════════════════ */
    #servicios {
      background:
        radial-gradient(ellipse 75% 55% at 100% 15%, rgba(200,160,90,0.08) 0%, transparent 58%),
        radial-gradient(ellipse 55% 50% at 2% 85%,   rgba(15,35,65,0.05)  0%, transparent 55%),
        var(--warm-white);
      /* overflow:clip no crea scroll container, no rompe position:sticky */
      overflow: clip;
    }

    .svc-outer {
      max-width: 1280px;
      margin: 0 auto;
      padding: 0 3.5rem;
    }

    .servicios-header {
      padding: 9rem 0 4.5rem;
    }

    .servicios-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(1.9rem, 3vw, 2.8rem);
      font-weight: 400;
      color: var(--navy);
      margin-top: .5rem;
    }

    .servicios-title em {
      font-style: italic;
      color: var(--gold);
    }

    /* Two-column layout */
    .svc-layout {
      display: grid;
      grid-template-columns: 40% 60%;
      align-items: start;
    }

    /* ── LEFT: sticky panel ── */
    .svc-sticky {
      position: sticky;
      top: calc(50vh - 200px);
      padding-right: 5rem;
      padding-bottom: 6rem;
      border-right: 1px solid rgba(200,160,90,0.18);
    }

    .svc-counter {
      font-family: 'Inter', sans-serif;
      font-size: 0.68rem;
      font-weight: 500;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      color: rgba(200,160,90,0.65);
      display: block;
      margin-bottom: 2rem;
      will-change: opacity, transform;
    }

    .svc-sticky-tag {
      font-size: 0.6rem;
      font-weight: 500;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: rgba(200,160,90,0.45);
      display: block;
      margin-bottom: .75rem;
    }

    .svc-sticky-num {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(5.5rem, 9vw, 9.5rem);
      font-weight: 300;
      line-height: .9;
      color: rgba(200,160,90,0.12);
      margin-bottom: .5rem;
      letter-spacing: -.02em;
      will-change: opacity, transform;
    }

    .svc-sticky-name {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(2.4rem, 3.8vw, 3.8rem);
      font-weight: 500;
      line-height: 1.08;
      color: var(--navy);
      margin-bottom: 1.6rem;
      position: relative;
      padding-bottom: 1.4rem;
      will-change: opacity, transform;
    }

    .svc-sticky-name::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      width: 2.5rem;
      height: 2px;
      background: var(--gold);
      border-radius: 1px;
    }

    .svc-sticky-desc {
      font-size: 1.05rem;
      line-height: 1.85;
      color: var(--grey);
      will-change: opacity, transform;
    }

    /* Progress dots */
    .svc-dots {
      display: flex;
      gap: .4rem;
      margin-top: 2.8rem;
    }

    .svc-dot {
      height: 2px;
      width: 16px;
      background: rgba(200,160,90,0.18);
      border-radius: 1px;
      transition: width .4s var(--ease-out), background .4s;
    }

    .svc-dot.active {
      width: 36px;
      background: var(--gold);
    }

    /* ── RIGHT: scrolling panels ── */
    .svc-panels {
      padding-left: 5rem;
      padding-bottom: 28vh;
    }

    .svc-panel {
      height: 80vh;
      display: flex;
      align-items: center;
      padding: 2.5rem 0;
    }

    .svc-panel:last-child {
      margin-bottom: 10vh;
    }

    /* ── La card que flota ── */
    .svc-card {
      width: 100%;
      background: var(--navy);
      border-radius: 3px;
      border-left: 3px solid var(--gold);
      padding: 3rem 3.2rem 3rem 3rem;
      position: relative;
      overflow: hidden;
      box-shadow:
        0 32px 72px rgba(15,35,65,0.22),
        0 8px 24px rgba(15,35,65,0.14);
      /* estado inicial para GSAP */
      opacity: 0;
      transform: translateY(52px) scale(0.97);
      will-change: opacity, transform;
    }

    /* Número watermark dentro de la card */
    .svc-card::before {
      content: attr(data-num);
      position: absolute;
      right: -1.5rem;
      bottom: -2.5rem;
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(9rem, 15vw, 15rem);
      font-weight: 300;
      line-height: 1;
      color: rgba(200,160,90,0.07);
      pointer-events: none;
      letter-spacing: -.04em;
      user-select: none;
    }

    /* Línea de brillo sutil en la parte superior */
    .svc-card::after {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 1px;
      background: linear-gradient(90deg, var(--gold) 0%, transparent 60%);
      opacity: 0.35;
    }

    .svc-card-meta {
      display: flex;
      align-items: center;
      gap: .75rem;
      margin-bottom: 2rem;
      padding-bottom: 1.5rem;
      border-bottom: 1px solid rgba(200,160,90,0.12);
    }

    .svc-card-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--gold);
      flex-shrink: 0;
    }

    .svc-card-label {
      font-size: 0.58rem;
      font-weight: 500;
      letter-spacing: 0.24em;
      text-transform: uppercase;
      color: rgba(200,160,90,0.6);
    }

    .svc-panel-list {
      width: 100%;
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: .2rem 2rem;
    }

    /* Si hay 5 o menos items, una columna */
    .svc-panel-list.single-col {
      grid-template-columns: 1fr;
    }

    .svc-panel-list li {
      font-size: 0.97rem;
      line-height: 1.78;
      color: rgba(247,246,242,0.72);
      padding-left: 1.4rem;
      position: relative;
      margin-bottom: .5rem;
    }

    .svc-panel-list li::before {
      content: '—';
      position: absolute;
      left: 0;
      color: var(--gold);
      font-size: 0.65rem;
      top: 6px;
      opacity: 0.8;
    }

    /* ══════════════════════════════════════════
       DIFERENCIADOR
    ══════════════════════════════════════════ */
    #diferenciador {
      padding: 9rem 3.5rem;
      position: relative;
      overflow: hidden;
      background:
        linear-gradient(
          110deg,
          rgba(15, 35, 65, 0.93) 0%,
          rgba(15, 35, 65, 0.82) 48%,
          rgba(15, 35, 65, 0.68) 100%
        );
    }

    /* imagen de fondo */
    #diferenciador .dif-bg {
      position: absolute;
      inset: 0;
      width: 100%; height: 100%;
      object-fit: cover;
      object-position: center 30%;
      z-index: 0;
      transform: scale(1.04);
    }

    /* overlay encima de la imagen */
    #diferenciador .dif-overlay {
      position: absolute;
      inset: 0;
      z-index: 1;
      background:
        linear-gradient(
          110deg,
          rgba(15, 35, 65, 0.94) 0%,
          rgba(15, 35, 65, 0.82) 50%,
          rgba(15, 35, 65, 0.60) 100%
        );
    }

    /* Ambient glow sutil encima del overlay */
    #diferenciador::before {
      content: '';
      position: absolute;
      top: -180px; right: -180px;
      width: 640px; height: 640px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(200,160,90,.09) 0%, transparent 68%);
      pointer-events: none;
      z-index: 2;
    }

    #diferenciador::after {
      content: '';
      position: absolute;
      bottom: -200px; left: -100px;
      width: 500px; height: 500px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(200,160,90,.05) 0%, transparent 68%);
      pointer-events: none;
      z-index: 2;
    }

    .dif-grid {
      max-width: 1280px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 7rem;
      align-items: center;
      position: relative;
      z-index: 3;
    }

    .dif-left .section-tag { color: rgba(200,160,90,0.8); }

    .dif-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(2rem, 3.5vw, 3.25rem);
      font-weight: 300;
      line-height: 1.12;
      color: var(--warm-white);
    }

    .dif-title em {
      font-style: italic;
      color: var(--gold);
    }

    .dif-tagline {
      display: block;
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.1rem;
      font-style: italic;
      color: rgba(200,160,90,0.75);
      margin-top: 1.6rem;
    }

    .dif-right p {
      font-size: 1rem;
      line-height: 1.88;
      color: rgba(247, 246, 242, 0.6);
      margin-bottom: 1.3rem;
    }

    .btn-gold-outline {
      display: inline-flex;
      align-items: center;
      gap: .5rem;
      font-size: 0.7rem;
      font-weight: 500;
      letter-spacing: 0.13em;
      text-transform: uppercase;
      color: var(--gold);
      border: 1px solid rgba(200,160,90,0.45);
      padding: .875rem 2.1rem;
      border-radius: 2px;
      margin-top: .5rem;
      transition: background var(--dur), border-color var(--dur), color var(--dur), box-shadow var(--dur);
    }

    .btn-gold-outline:hover {
      background: var(--gold);
      border-color: var(--gold);
      color: var(--navy);
      box-shadow: 0 6px 24px rgba(200,160,90,0.3);
    }

    /* ══════════════════════════════════════════
       CONTACTO
    ══════════════════════════════════════════ */
    #contacto {
      background:
        radial-gradient(ellipse 65% 60% at 5% 95%,   rgba(200,160,90,0.09) 0%, transparent 58%),
        radial-gradient(ellipse 55% 45% at 98% 5%,   rgba(15,35,65,0.05)  0%, transparent 55%),
        var(--warm-white);
      padding: 9rem 3.5rem;
      overflow: hidden;
    }

    .contacto-grid {
      max-width: 1280px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 7rem;
      align-items: start;
    }

    .contacto-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(1.9rem, 3vw, 2.75rem);
      font-weight: 400;
      line-height: 1.18;
      color: var(--navy);
      margin-bottom: 2.75rem;
    }

    .contacto-title em {
      font-style: italic;
      color: var(--gold);
    }

    .contact-item {
      display: flex;
      gap: 1.1rem;
      align-items: flex-start;
      margin-bottom: 2rem;
    }

    .contact-icon {
      width: 17px; height: 17px;
      color: var(--gold);
      flex-shrink: 0;
      margin-top: 3px;
    }

    .contact-label {
      font-size: 0.63rem;
      font-weight: 600;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--navy);
      display: block;
      margin-bottom: .35rem;
    }

    .contact-value {
      font-size: 0.97rem;
      line-height: 1.75;
      color: var(--grey);
    }

    .contact-value a {
      color: inherit;
      transition: color var(--dur);
    }

    .contact-value a:hover { color: var(--gold); }

    /* Visual card right */
    .contacto-visual {
      border-radius: 3px;
      overflow: hidden;
      position: relative;
      aspect-ratio: 4 / 3;
      max-height: 420px;
    }

    .contacto-visual-img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      display: block;
    }

    /* overlay sutil encima de la imagen */
    .contacto-visual::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(
        180deg,
        transparent 40%,
        rgba(15,35,65,0.55) 100%
      );
      pointer-events: none;
      border-radius: 3px;
    }

    .contacto-brand {
      position: relative;
      z-index: 1;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 1rem;
      text-align: center;
    }

    .contacto-brand-name {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.05rem;
      letter-spacing: .35em;
      color: rgba(247,246,242,0.9);
      text-transform: uppercase;
    }

    .contacto-brand-sub {
      font-size: 0.58rem;
      letter-spacing: .28em;
      text-transform: uppercase;
      color: rgba(200,160,90,0.7);
    }

    /* ══════════════════════════════════════════
       FOOTER
    ══════════════════════════════════════════ */
    footer {
      background: var(--navy);
      border-top: 1px solid rgba(200,160,90,0.18);
      padding: 2.25rem 3.5rem;
    }

    .footer-inner {
      max-width: 1280px;
      margin: 0 auto;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .footer-copy {
      font-size: 0.7rem;
      color: rgba(247,246,242,0.35);
      letter-spacing: 0.05em;
    }

    .footer-links {
      display: flex;
      gap: 2rem;
    }

    .footer-links a {
      font-size: 0.68rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: rgba(247,246,242,0.35);
      transition: color var(--dur);
    }

    .footer-links a:hover { color: var(--gold); }

    .footer-privacy-btn {
      background: none;
      border: none;
      cursor: pointer;
      font-size: 0.68rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: rgba(247,246,242,0.35);
      transition: color var(--dur);
      padding: 0;
      font-family: inherit;
    }

    .footer-privacy-btn:hover { color: var(--gold); }

    /* ══════════════════════════════════════════
       ANIMATION CLASSES (initial state)
    ══════════════════════════════════════════ */
    .fade-up     { opacity: 0; transform: translateY(48px); }
    .fade-left   { opacity: 0; transform: translateX(-52px); }
    .fade-right  { opacity: 0; transform: translateX(52px); }
    .fade-in     { opacity: 0; }

    /* Fallback accesibilidad: reduce motion */
    @media (prefers-reduced-motion: reduce) {
      .svc-card { opacity: 1 !important; transform: none !important; }
    }

    /* ══════════════════════════════════════════
       FONDOS CON GRADIENTE RADIAL SUTIL
       (rompe la planitud del blanco puro)
    ══════════════════════════════════════════ */
    body {
      background:
        radial-gradient(ellipse 80% 50% at 10% 0%,  rgba(200,160,90,0.055) 0%, transparent 65%),
        radial-gradient(ellipse 60% 40% at 90% 100%, rgba(15,35,65,0.04)   0%, transparent 60%),
        var(--warm-white);
    }

    /* Los gradientes de sección se definen en las reglas originales de cada sección */

    /* ══════════════════════════════════════════
       MODAL AVISO DE PRIVACIDAD
    ══════════════════════════════════════════ */
    #privacy-overlay {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(15,35,65,0.6);
      z-index: 9000;
      opacity: 0;
      backdrop-filter: blur(4px);
      -webkit-backdrop-filter: blur(4px);
      transition: opacity .35s var(--ease-out);
      align-items: center;
      justify-content: center;
    }

    #privacy-overlay.open {
      display: flex;
      opacity: 1;
    }

    .privacy-modal {
      background: var(--warm-white);
      width: min(90vw, 720px);
      max-height: 80vh;
      border-radius: 4px;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      box-shadow: 0 32px 96px rgba(0,0,0,0.3);
      transform: translateY(24px);
      transition: transform .38s var(--ease-out);
    }

    #privacy-overlay.open .privacy-modal {
      transform: translateY(0);
    }

    .privacy-modal-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 1.8rem 2.4rem;
      border-bottom: 1px solid rgba(15,35,65,0.09);
      flex-shrink: 0;
    }

    .privacy-modal-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.5rem;
      font-weight: 500;
      color: var(--navy);
    }

    .privacy-modal-close {
      background: none;
      border: none;
      cursor: pointer;
      font-size: 1.2rem;
      color: rgba(15,35,65,0.4);
      transition: color var(--dur);
      padding: 4px;
      line-height: 1;
    }

    .privacy-modal-close:hover { color: var(--navy); }

    .privacy-modal-body {
      overflow-y: auto;
      padding: 2rem 2.4rem 2.4rem;
      flex: 1;
    }

    .privacy-modal-body h3 {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.05rem;
      font-weight: 500;
      color: var(--navy);
      margin: 1.5rem 0 .5rem;
    }

    .privacy-modal-body h3:first-child { margin-top: 0; }

    .privacy-modal-body p {
      font-size: 0.88rem;
      line-height: 1.82;
      color: var(--grey);
      margin-bottom: .75rem;
    }

    .privacy-modal-body a {
      color: var(--gold);
      text-decoration: underline;
    }

    /* ══════════════════════════════════════════
       SCROLLBAR
    ══════════════════════════════════════════ */
    ::-webkit-scrollbar { width: 5px; }
    ::-webkit-scrollbar-track { background: var(--navy); }
    ::-webkit-scrollbar-thumb { background: var(--gold); border-radius: 3px; }

    /* ══════════════════════════════════════════
       CARRUSEL SERVICIOS (solo móvil)
    ══════════════════════════════════════════ */
    .svc-carousel { display: none; } /* oculto en desktop */

    /* ══════════════════════════════════════════
       RESPONSIVE — tablet breakpoint only
    ══════════════════════════════════════════ */
    @media (max-width: 1024px) {
      #navbar { padding: 1.25rem 2rem; }
      #navbar.scrolled { padding: .875rem 2rem; }
      .hero-content { padding: 0 2rem; padding-top: 6rem; }
      .nosotros-grid { grid-template-columns: 1fr; gap: 2.5rem; }
      .nosotros-visual { aspect-ratio: 3 / 4; max-height: none; order: 2; }
      .nosotros-text  { order: 1; }
      .nosotros-visual::before { display: none; }
      .dif-grid { grid-template-columns: 1fr; gap: 3rem; }
      .contacto-grid { grid-template-columns: 1fr; gap: 3rem; }
      .svc-layout { grid-template-columns: 1fr; }
      .svc-sticky { position: relative; top: auto; border-right: none; border-bottom: 1px solid rgba(200,160,90,0.15); padding-right: 0; padding-bottom: 2.5rem; margin-bottom: 2rem; }
      .svc-panels { padding-left: 0; }
      .svc-outer { padding: 0 2rem; }
      .svc-panel { height: auto; min-height: auto; padding: 1.5rem 0; }
      .svc-card { padding: 2rem 2rem 2rem 1.8rem; }
      .svc-panel-list { grid-template-columns: 1fr; }
      #nosotros, #diferenciador, #contacto { padding: 6rem 2rem; }
    }

    @media (max-width: 860px) {
      .nav-links { display: none; }
      .btn-nav   { display: none; }
      .nav-hamburger { display: flex; }
      #navbar { padding: 1.1rem 1.5rem; }
      #navbar.scrolled { padding: .875rem 1.5rem; }
    }

    @media (max-width: 640px) {
      /* Hero */
      .hero-content { padding: 0 1.5rem; padding-top: 5rem; padding-bottom: 3rem; }
      .hero-title   { font-size: clamp(2rem, 9vw, 3rem); }
      .hero-sub     { font-size: 0.9rem; }
      .hero-btns    { flex-direction: column; gap: .75rem; }
      .hero-btns .btn-primary, .hero-btns .btn-ghost { width: 100%; text-align: center; justify-content: center; }

      /* Nosotros */
      #nosotros     { padding: 5rem 1.5rem; }
      .nosotros-text .section-tag { margin-bottom: .75rem; }

      /* Servicios — ocultar desktop layout, mostrar carrusel */
      .svc-outer        { padding: 0 1.5rem; }
      .servicios-header { padding: 5.5rem 0 2.5rem; }
      .servicios-title  { font-size: 1.6rem; }
      .svc-layout       { display: none !important; }
      .svc-carousel     { display: block; padding-bottom: 5rem; }

      /* Carrusel */
      .svc-car-card {
        background: var(--navy);
        border-left: 3px solid var(--gold);
        border-radius: 3px;
        padding: 2rem 1.8rem 2rem 1.6rem;
        position: relative;
        overflow: hidden;
        box-shadow: 0 16px 48px rgba(15,35,65,0.22), 0 4px 16px rgba(15,35,65,0.14);
        min-height: 320px;
        will-change: opacity, transform;
      }

      .svc-car-card::before {
        content: attr(data-num);
        position: absolute;
        right: -1rem; bottom: -1.5rem;
        font-family: 'Cormorant Garamond', serif;
        font-size: 9rem;
        font-weight: 300;
        line-height: 1;
        color: rgba(200,160,90,0.07);
        pointer-events: none;
        letter-spacing: -.04em;
        user-select: none;
      }

      .svc-car-meta {
        display: flex;
        align-items: center;
        gap: .6rem;
        margin-bottom: 1.4rem;
        padding-bottom: 1.1rem;
        border-bottom: 1px solid rgba(200,160,90,0.12);
      }

      .svc-car-dot-el {
        width: 5px; height: 5px;
        border-radius: 50%;
        background: var(--gold);
        flex-shrink: 0;
      }

      .svc-car-label {
        font-size: 0.58rem;
        font-weight: 500;
        letter-spacing: 0.22em;
        text-transform: uppercase;
        color: rgba(200,160,90,0.65);
      }

      .svc-car-name {
        font-family: 'Cormorant Garamond', serif;
        font-size: clamp(1.6rem, 6vw, 2.2rem);
        font-weight: 500;
        line-height: 1.1;
        color: var(--warm-white);
        margin-bottom: .9rem;
      }

      .svc-car-desc {
        font-size: 0.88rem;
        line-height: 1.72;
        color: rgba(247,246,242,0.55);
        margin-bottom: 1.4rem;
      }

      .svc-car-list {
        list-style: none;
        position: relative;
        z-index: 1;
      }

      .svc-car-list li {
        font-size: 0.9rem;
        line-height: 1.75;
        color: rgba(247,246,242,0.72);
        padding-left: 1.3rem;
        position: relative;
        margin-bottom: .4rem;
      }

      .svc-car-list li::before {
        content: '—';
        position: absolute;
        left: 0;
        color: var(--gold);
        font-size: 0.65rem;
        top: 5px;
        opacity: 0.8;
      }

      /* Barra de navegación — siempre arriba de la card */
      .svc-car-nav {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 1rem;
        padding: 0 .2rem;
      }

      .svc-car-arrow {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px; height: 44px;
        border: 1px solid rgba(15,35,65,0.15);
        border-radius: 50%;
        background: transparent;
        cursor: pointer;
        color: var(--navy);
        transition: background var(--dur), border-color var(--dur), color var(--dur);
        flex-shrink: 0;
      }

      .svc-car-arrow:hover {
        background: var(--navy);
        border-color: var(--navy);
        color: var(--warm-white);
      }

      .svc-car-arrow svg {
        width: 18px; height: 18px;
        stroke: currentColor;
        fill: none;
        stroke-width: 2;
        stroke-linecap: round;
        stroke-linejoin: round;
      }

      .svc-car-progress {
        display: flex;
        align-items: center;
        gap: .5rem;
      }

      .svc-car-pip {
        width: 6px; height: 6px;
        border-radius: 50%;
        background: rgba(15,35,65,0.18);
        transition: background .35s, transform .35s;
        cursor: pointer;
      }

      .svc-car-pip.active {
        background: var(--gold);
        transform: scale(1.3);
      }

      .svc-car-count {
        font-size: 0.65rem;
        font-weight: 500;
        letter-spacing: 0.16em;
        color: rgba(15,35,65,0.4);
        min-width: 3.5rem;
        text-align: center;
      }

      /* Diferenciador */
      #diferenciador { padding: 5rem 1.5rem; }
      .dif-title     { font-size: 1.9rem; }

      /* Contacto */
      #contacto      { padding: 5rem 1.5rem; }
      .contacto-grid { grid-template-columns: 1fr; gap: 3rem; }
      .contacto-form-group { flex-direction: column; gap: 0; }

      /* Footer */
      #footer { padding: 2.5rem 1.5rem; }
      .footer-inner { flex-direction: column; align-items: flex-start; gap: 1rem; }

      /* Diferenciador items */
      .dif-items { grid-template-columns: 1fr; }
    }

    /* ══════════════════════════════════════════
       RESPONSIVE — viewport corto (desktop/laptop)
       Evita que el título quede debajo del navbar
    ══════════════════════════════════════════ */
    @media (max-height: 820px) and (min-width: 1025px) {
      .hero-title {
        font-size: clamp(2.2rem, 3.8vw, 3.6rem);
        line-height: 0.96;
      }
      .hero-content {
        padding-top: 4.5rem;
        padding-bottom: 4.5rem;
      }
      .hero-sub { font-size: 0.95rem; }
    }
@media (max-width: 1400px) and (max-height: 800px) {
  #hero {
    min-height: 760px;
    align-items: center;
  }

  .hero-content {
    padding-top: 9rem;
    padding-bottom: 4rem;
  }

  .hero-title {
    font-size: clamp(2.4rem, 4.6vw, 3.9rem);
    line-height: 1.04;
    max-width: 850px;
    margin-bottom: 1.3rem;
  }

  .hero-sub {
    font-size: 0.95rem;
    line-height: 1.65;
    max-width: 520px;
    margin-bottom: 1rem;
  }

  .hero-tagline {
    margin-bottom: 2rem;
  }

  .nav-logo-img {
    height: 52px;
  }

  #navbar {
    padding: 1.1rem 3rem;
  }

  .hero-scroll-cue {
    display: none;
  }
}