:root {
      --navy:      #0d1e35;
      --navy-mid:  #162a47;
      --gold:      #c9a84c;
      --gold-lt:   #e8c96a;
      --cream:     #f5f0e8;
      --white:     #ffffff;
      --muted:     #b0bec5;
      --font-serif: 'Playfair Display', Georgia, serif;
      --font-sans:  'Montserrat', system-ui, sans-serif;
      --section-pad: 100px 60px;
    }
    *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
    html  { scroll-behavior: smooth; }
    body  { font-family: var(--font-sans); background: var(--navy); color: var(--white); overflow-x: hidden; }
    :focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
    @media (prefers-reduced-motion: reduce) {
      .wave, .splash-wave { animation: none; }
      .reveal { opacity: 1; transform: none; }
    }

    /* SPLASH */
    #lang-splash {
      position: fixed; inset: 0; z-index: 9999;
      background: var(--navy);
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      gap: 40px; padding: 24px;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      height: 100vh; height: 100dvh;
      transition: opacity .5s ease, visibility .5s;
    }
    #lang-splash.hidden { opacity: 0; visibility: hidden; pointer-events: none; }
    .splash-logo {
      font-family: var(--font-serif); font-size: 2rem; letter-spacing: .2em;
      text-transform: uppercase; color: var(--gold); text-align: center;
    }
    .splash-logo span { color: var(--white); }
    .splash-prompt { font-size: .68rem; font-weight: 500; letter-spacing: .3em; text-transform: uppercase; color: var(--muted); text-align: center; }
    .splash-search-wrap { position: relative; width: 100%; max-width: 340px; }
    .splash-search {
      width: 100%; background: rgba(255,255,255,.05); border: 1px solid rgba(201,168,76,.35);
      color: var(--white); font-family: var(--font-sans); font-size: .82rem;
      padding: 12px 16px 12px 40px; outline: none; letter-spacing: .05em; transition: border-color .2s;
    }
    .splash-search::placeholder { color: rgba(255,255,255,.3); }
    .splash-search:focus { border-color: var(--gold); }
    .splash-search-icon { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: rgba(201,168,76,.6); pointer-events: none; }
    .lang-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; width: 100%; max-width: 640px; max-height: 340px; overflow-y: auto; padding-right: 4px; margin-bottom: 8px; }
    .lang-grid::-webkit-scrollbar { width: 4px; }
    .lang-grid::-webkit-scrollbar-track { background: transparent; }
    .lang-grid::-webkit-scrollbar-thumb { background: rgba(201,168,76,.3); border-radius: 2px; }
    .lang-tile {
      border: 1px solid rgba(201,168,76,.2); background: rgba(255,255,255,.02);
      color: var(--white); font-family: var(--font-sans); font-size: .72rem; font-weight: 500;
      letter-spacing: .08em; cursor: pointer;
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      gap: 7px; padding: 14px 8px 12px; text-align: center; line-height: 1.3;
      transition: background .2s, border-color .2s, color .2s, transform .2s;
    }
    .lang-tile:hover { background: rgba(201,168,76,.1); border-color: var(--gold); color: var(--gold); transform: translateY(-2px); }
    .lang-tile .flag { font-size: 1.8rem; line-height: 1; }
    .lang-tile .lang-name { font-size: .75rem; font-weight: 600; }
    .lang-tile .lang-native { font-size: .62rem; font-weight: 300; color: var(--muted); letter-spacing: .04em; }
    .lang-tile:hover .lang-native { color: rgba(201,168,76,.7); }
    .hidden-tile { display: none !important; }
    .splash-waves { position: absolute; bottom: 0; left: 0; right: 0; height: 120px; overflow: hidden; opacity: .2; pointer-events: none; }
    .splash-wave {
      position: absolute; bottom: 0; width: 200%; height: 100%;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120'%3E%3Cpath fill='%23c9a84c' d='M0,60 C360,110 720,10 1080,60 C1260,85 1350,30 1440,60 L1440,120 L0,120 Z'/%3E%3C/svg%3E") repeat-x bottom;
      background-size: 50% 100%; animation: wave 8s linear infinite;
    }
    .splash-wave:nth-child(2) { animation-duration: 12s; animation-delay: -4s; opacity: .5; }

    /* NAV DROPDOWN */
    .lang-dropdown-wrap { position: relative; }
    .lang-dropdown-btn {
      display: flex; align-items: center; gap: 8px; background: transparent;
      border: 1.5px solid rgba(201,168,76,.35); color: var(--gold);
      font-family: var(--font-sans); font-size: .7rem; font-weight: 600;
      letter-spacing: .1em; text-transform: uppercase;
      padding: 8px 14px; height: 34px; cursor: pointer; white-space: nowrap; transition: background .2s;
    }
    .lang-dropdown-btn:hover { background: rgba(201,168,76,.1); }
    .lang-dropdown-btn .arrow { font-size: .55rem; opacity: .7; transition: transform .2s; }
    .lang-dropdown-btn.open .arrow { transform: rotate(180deg); }
    .lang-dropdown-panel {
      position: absolute; top: calc(100% + 8px); right: 0; width: 420px;
      background: var(--navy); border: 1px solid rgba(201,168,76,.25);
      padding: 16px; box-shadow: 0 20px 60px rgba(0,0,0,.5); z-index: 200;
      opacity: 0; visibility: hidden; transform: translateY(-8px);
      transition: opacity .2s, visibility .2s, transform .2s;
    }
    .lang-dropdown-panel.open { opacity: 1; visibility: visible; transform: translateY(0); }
    .dropdown-search-wrap { position: relative; margin-bottom: 12px; }
    .dropdown-search {
      width: 100%; background: rgba(255,255,255,.05); border: 1px solid rgba(201,168,76,.25);
      color: var(--white); font-family: var(--font-sans); font-size: .75rem;
      padding: 9px 12px 9px 34px; outline: none; transition: border-color .2s;
    }
    .dropdown-search::placeholder { color: rgba(255,255,255,.3); }
    .dropdown-search:focus { border-color: var(--gold); }
    .dropdown-search-icon { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: rgba(201,168,76,.5); font-size: 14px; pointer-events: none; }
    .dropdown-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; max-height: 260px; overflow-y: auto; }
    .dropdown-grid::-webkit-scrollbar { width: 4px; }
    .dropdown-grid::-webkit-scrollbar-track { background: transparent; }
    .dropdown-grid::-webkit-scrollbar-thumb { background: rgba(201,168,76,.3); }
    .dropdown-tile {
      border: 1px solid rgba(201,168,76,.15); background: rgba(255,255,255,.02);
      color: var(--white); font-family: var(--font-sans); font-size: .65rem; cursor: pointer;
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      gap: 4px; padding: 10px 4px 8px; text-align: center;
      transition: background .15s, border-color .15s, color .15s;
    }
    .dropdown-tile:hover { background: rgba(201,168,76,.1); border-color: var(--gold); color: var(--gold); }
    .dropdown-tile.active-lang { background: rgba(201,168,76,.15); border-color: var(--gold); color: var(--gold); }
    .dropdown-tile .dflag { font-size: 1.3rem; line-height: 1; }
    .dropdown-tile .dname { font-weight: 600; font-size: .65rem; }
    .dropdown-tile .dnative { font-size: .58rem; color: var(--muted); font-weight: 300; }

    /* NAV */
    nav {
      position: fixed; top: 0; left: 0; right: 0; z-index: 100;
      display: flex; align-items: center; justify-content: space-between;
      padding: 12px 60px; gap: 20px;
      background: rgba(13,30,53,.92); backdrop-filter: blur(12px);
      border-bottom: 1px solid rgba(201,168,76,.2);
    }
    .nav-logo {
      font-family: var(--font-serif); font-size: 1.3rem; letter-spacing: .15em;
      color: var(--gold); text-transform: uppercase; flex-shrink: 0;
      display: flex; align-items: center; text-decoration: none;
    }
    .nav-logo img { height: 52px; width: auto; object-fit: contain; display: block; }
    .nav-logo span { color: var(--white); }
    .nav-links { display: flex; gap: 30px; list-style: none; }
    .nav-links a { color: var(--cream); text-decoration: none; font-size: .75rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; transition: color .3s; }
    .nav-links a:hover { color: var(--gold); }
    .nav-right { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
    .nav-cta {
      background: transparent; border: 1.5px solid var(--gold); color: var(--gold);
      padding: 10px 26px; font-family: var(--font-sans); font-size: .72rem;
      letter-spacing: .12em; text-transform: uppercase; cursor: pointer;
      text-decoration: none; transition: background .3s, color .3s;
    }
    .nav-cta:hover { background: var(--gold); color: var(--navy); }

    /* LIGHT MODE TOGGLE */
    .theme-btn {
      width: 34px; height: 34px;
      background: transparent;
      border: 1.5px solid rgba(201,168,76,.35);
      color: var(--gold);
      cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      transition: background .2s, border-color .2s, transform .3s;
    }
    .theme-btn:hover { background: rgba(201,168,76,.1); border-color: var(--gold); }
    .theme-btn svg { width: 16px; height: 16px; transition: transform .4s; }
    .theme-btn:hover svg { transform: rotate(20deg); }

    /* LIGHT MODE - now default */
    body {
      --navy:     #b8cfe0;
      --navy-mid: #a8c2d8;
      background: var(--navy);
    }

    body,
    body .section-title,
    body .exp-name,
    body .activity-name,
    body .horario-info strong,
    body .contacto-title,
    body .footer-logo,
    body .nav-links a,
    body .channel-value,
    body .channel-value a,
    body .price-main,
    body .activity-price-num,
    body .price-enquire,
    body .stat-badge-num,
    body .horario-time { color: #07131f; }

    body .section-desc,
    body .exp-desc,
    body .activity-desc,
    body .horario-info p,
    body .contacto-sub,
    body .price-note,
    body .activity-price-suffix,
    body .price-suffix,
    body .footer-text,
    body .channel-label,
    body .stat-badge-label,
    body .lang-tile .lang-native,
    body .dropdown-tile .dnative { color: #1a3a55; }

    body .hero-title,
    body .hero-sub,
    body .hero-eyebrow::before,
    body .hero-eyebrow::after { color: #ffffff; }
    body .hero-eyebrow { color: var(--gold-lt); }
    body .hero-sub { color: rgba(255,255,255,.9); }
    body .hero-location { color: var(--gold-lt); }
    body .hero-bg-overlay {
      background: linear-gradient(160deg, rgba(10,24,40,0.60) 0%, rgba(13,34,53,0.50) 40%, rgba(10,30,45,0.58) 100%);
    }

    body nav {
      background: rgba(165,195,215,.97);
      border-bottom-color: rgba(201,168,76,.4);
    }
    body .nav-links a { color: #07131f; }
    body .nav-links a:hover { color: #6b4a10; }
    body .nav-cta { color: #6b4a10; border-color: #8a6520; }
    body .nav-cta:hover { background: #8a6520; color: #fff; }
    body .lang-dropdown-btn { color: #6b4a10; border-color: rgba(138,101,32,.5); }
    body #nav-lang-code { color: #6b4a10; }

    body .exp-card,
    body .activity-card { background: #cce0f0; border-color: rgba(201,168,76,.35); }
    body .stat-badge { background: #cce0f0; }
    body footer { background: #7a9db8; }
    body .footer-tagline { color: #5a3d08; }
    body .footer-text { color: #07131f; }
    body .footer-logo { color: #8a6520; }
    body .lang-dropdown-panel { background: #b8cfe0; }
    body #lang-splash { background: #b8cfe0; }
    body .lang-tile,
    body .dropdown-tile { color: #07131f; border-color: rgba(100,80,20,.25); }
    body .horario-card { border-color: rgba(7,19,31,.2); }
    body .horario-card:hover { background: rgba(7,19,31,.06); }
    body .amenity-text strong { color: #07131f; }
    body .exp-type,
    body .activity-tag { color: #6b4a10; }
    body .activity-badge { color: #c9a84c; }
    body .section-label { color: #7a5210; }
    body .wave {
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180'%3E%3Cpath fill='%23b8cfe0' fill-opacity='0.9' d='M0,80 C360,160 720,0 1080,80 C1260,120 1350,40 1440,80 L1440,180 L0,180 Z'/%3E%3C/svg%3E") repeat-x bottom;
      background-size: 50% 100%;
    }
    body .strip { background: #8a6520; }
    body .strip-item { color: #fff; }
    body .theme-btn { color: #6b4a10; border-color: rgba(107,74,16,.4); }
    body .theme-btn:hover { background: rgba(201,168,76,.15); border-color: #8a6520; }

    /* DARK MODE (toggled) */
    body.dark-mode {
      --navy:      #0d1e35;
      --navy-mid:  #162a47;
      background: var(--navy);
      color: var(--white);
    }
    body.dark-mode .section-title,
    body.dark-mode .exp-name,
    body.dark-mode .activity-name,
    body.dark-mode .horario-info strong,
    body.dark-mode .contacto-title,
    body.dark-mode .footer-logo,
    body.dark-mode .stat-badge-num,
    body.dark-mode .horario-time,
    body.dark-mode .price-main,
    body.dark-mode .activity-price-num,
    body.dark-mode .price-enquire { color: var(--white); }

    body.dark-mode .section-desc,
    body.dark-mode .exp-desc,
    body.dark-mode .activity-desc,
    body.dark-mode .horario-info p,
    body.dark-mode .contacto-sub,
    body.dark-mode .price-note,
    body.dark-mode .activity-price-suffix,
    body.dark-mode .price-suffix,
    body.dark-mode .footer-text,
    body.dark-mode .channel-label,
    body.dark-mode .stat-badge-label,
    body.dark-mode .lang-tile .lang-native,
    body.dark-mode .dropdown-tile .dnative { color: var(--muted); }

    body.dark-mode .channel-value,
    body.dark-mode .channel-value a { color: var(--white); }

    body.dark-mode nav {
      background: rgba(13,30,53,.92);
      border-bottom-color: rgba(201,168,76,.2);
    }
    body.dark-mode .nav-links a { color: var(--cream); }
    body.dark-mode .nav-links a:hover { color: var(--gold); }
    body.dark-mode .nav-cta { color: var(--gold); border-color: var(--gold); }
    body.dark-mode .nav-cta:hover { background: var(--gold); color: var(--navy); }
    body.dark-mode .lang-dropdown-btn { color: var(--gold); border-color: rgba(201,168,76,.35); }
    body.dark-mode #nav-lang-code { color: var(--gold); }
    body.dark-mode .exp-card,
    body.dark-mode .activity-card { background: var(--navy); border-color: rgba(201,168,76,.15); }
    body.dark-mode .stat-badge { background: var(--navy); }
    body.dark-mode footer { background: #070f1c; }
    body.dark-mode .footer-tagline { color: rgba(201,168,76,.5); }
    body.dark-mode .footer-text { color: rgba(255,255,255,.3); }
    body.dark-mode .footer-logo { color: var(--gold); }
    body.dark-mode .lang-dropdown-panel { background: var(--navy); }
    body.dark-mode #lang-splash { background: var(--navy); }
    body.dark-mode .lang-tile,
    body.dark-mode .dropdown-tile { color: var(--white); border-color: rgba(201,168,76,.2); }
    body.dark-mode .horario-card { border-color: rgba(201,168,76,.2); }
    body.dark-mode .horario-card:hover { background: rgba(201,168,76,.04); }
    body.dark-mode .amenity-text strong { color: var(--white); }
    body.dark-mode .exp-type,
    body.dark-mode .activity-tag { color: var(--gold-lt); }
    body.dark-mode .activity-badge { color: var(--gold); }
    body.dark-mode .section-label { color: var(--gold); }
    body.dark-mode .wave {
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180'%3E%3Cpath fill='%230d1e35' fill-opacity='0.7' d='M0,80 C360,160 720,0 1080,80 C1260,120 1350,40 1440,80 L1440,180 L0,180 Z'/%3E%3C/svg%3E") repeat-x bottom;
      background-size: 50% 100%;
    }
    body.dark-mode .strip { background: var(--gold); }
    body.dark-mode .strip-item { color: var(--navy); }
    body.dark-mode .theme-btn { color: var(--gold); border-color: rgba(201,168,76,.35); }

    /* HERO */
    .hero {
      min-height: 100vh; display: flex; align-items: center; justify-content: center;
      position: relative; overflow: hidden; padding-top: 80px;
    }
    .hero-bg-photo {
      position: absolute; inset: 0; z-index: 0;
      background-image: url('banner.jpeg');
      background-size: cover; background-position: center; background-repeat: no-repeat;
    }
    .hero-bg-overlay {
      position: absolute; inset: 0; z-index: 1;
      background: linear-gradient(160deg, rgba(10,24,40,0.60) 0%, rgba(13,34,53,0.50) 40%, rgba(10,30,45,0.58) 100%);
    }
    .hero-ocean { position: absolute; inset: 0; z-index: 2;
      background:
        radial-gradient(ellipse 80% 60% at 70% 60%, rgba(22,60,100,.35) 0%, transparent 70%),
        radial-gradient(ellipse 50% 80% at 10% 80%, rgba(10,40,70,.3) 0%, transparent 60%);
      pointer-events: none;
    }
    .waves { position: absolute; bottom: 0; left: 0; right: 0; height: 180px; overflow: hidden; pointer-events: none; z-index: 3; }
    .wave {
      position: absolute; bottom: 0; width: 200%; height: 100%;
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180'%3E%3Cpath fill='%23b8cfe0' fill-opacity='0.9' d='M0,80 C360,160 720,0 1080,80 C1260,120 1350,40 1440,80 L1440,180 L0,180 Z'/%3E%3C/svg%3E") repeat-x bottom;
      background-size: 50% 100%; animation: wave 8s linear infinite; opacity: .5;
    }
    .wave:nth-child(2) { animation-duration: 12s; animation-delay: -4s; opacity: .3; bottom: -10px; }
    body.dark-mode .wave {
      background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 180'%3E%3Cpath fill='%230d1e35' fill-opacity='0.7' d='M0,80 C360,160 720,0 1080,80 C1260,120 1350,40 1440,80 L1440,180 L0,180 Z'/%3E%3C/svg%3E") repeat-x bottom;
      background-size: 50% 100%;
    }
    @keyframes wave { from { transform: translateX(0); } to { transform: translateX(-50%); } }
    .hero-content { position: relative; z-index: 4; text-align: center; max-width: 860px; padding: 0 24px; }
    .hero-eyebrow {
      font-size: .72rem; font-weight: 500; letter-spacing: .3em; text-transform: uppercase;
      color: var(--gold); margin-bottom: 20px; display: flex; align-items: center; justify-content: center; gap: 14px;
    }
    .hero-eyebrow::before, .hero-eyebrow::after { content: ''; width: 40px; height: 1px; background: var(--gold); opacity: .6; }
    .hero-title { font-family: var(--font-serif); font-size: clamp(3rem, 8vw, 6rem); font-weight: 900; line-height: 1.05; color: var(--white); margin-bottom: 12px; }
    .hero-title em { font-style: italic; color: var(--gold); }
    .hero-sub { font-size: 1rem; font-weight: 300; letter-spacing: .08em; color: var(--cream); margin-bottom: 48px; opacity: .85; }
    .hero-location { display: inline-flex; align-items: center; gap: 8px; font-size: .8rem; letter-spacing: .15em; text-transform: uppercase; color: var(--gold-lt); margin-bottom: 48px; }
    .hero-buttons { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; }

    /* BUTTONS */
    .btn-primary {
      background: var(--gold); color: var(--navy); border: none; padding: 16px 42px;
      font-family: var(--font-sans); font-size: .78rem; font-weight: 600;
      letter-spacing: .15em; text-transform: uppercase; cursor: pointer;
      text-decoration: none; display: inline-block; transition: background .3s, transform .3s;
    }
    .btn-primary:hover { background: var(--gold-lt); transform: translateY(-2px); }
    .btn-outline {
      background: transparent; color: var(--white); border: 1.5px solid rgba(255,255,255,.4);
      padding: 16px 42px; font-family: var(--font-sans); font-size: .78rem; font-weight: 500;
      letter-spacing: .15em; text-transform: uppercase; cursor: pointer;
      text-decoration: none; display: inline-block; transition: border-color .3s, color .3s;
    }
    .btn-outline:hover { border-color: var(--gold); color: var(--gold); }
    .btn-small {
      background: transparent; color: var(--gold); border: 1.5px solid rgba(201,168,76,.5);
      padding: 11px 28px; font-family: var(--font-sans); font-size: .68rem; font-weight: 600;
      letter-spacing: .14em; text-transform: uppercase; cursor: pointer;
      text-decoration: none; display: inline-block; transition: background .3s, color .3s, border-color .3s;
    }
    .btn-small:hover { background: var(--gold); color: var(--navy); border-color: var(--gold); }

    /* STRIP */
    .strip { background: #8a6520; padding: 16px 60px; display: flex; justify-content: center; gap: 60px; flex-wrap: wrap; }
    .strip-item { display: flex; align-items: center; gap: 10px; font-size: .72rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; color: #fff; }

    /* SECTIONS */
    section { padding: var(--section-pad); }
    .section-label { font-size: .68rem; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: #7a5210; margin-bottom: 16px; }
    .section-title { font-family: var(--font-serif); font-size: clamp(2rem, 4vw, 3rem); font-weight: 700; line-height: 1.2; color: #07131f; margin-bottom: 20px; }
    .section-desc { font-size: .9rem; font-weight: 300; line-height: 1.9; color: #1a3a55; max-width: 520px; }

    /* EXPERIENCIAS */
    #experiencias { background: var(--navy-mid); }
    .exp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 60px; }
    .exp-card {
      background: #cce0f0; border: 1px solid rgba(201,168,76,.35);
      padding: 44px 36px; position: relative; overflow: hidden;
      display: flex; flex-direction: column; transition: border-color .3s, transform .3s;
    }
    .exp-card::after { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, var(--gold), transparent); opacity: 0; transition: opacity .3s; }
    .exp-card:hover { border-color: rgba(201,168,76,.4); transform: translateY(-4px); }
    .exp-card:hover::after { opacity: 1; }
    .exp-card--photo { background-size: cover; background-position: center; background-blend-mode: overlay; background-color: rgba(13,30,53,.78); }
    .exp-icon { width: 56px; height: 56px; border: 1.5px solid var(--gold); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 28px; color: var(--gold); flex-shrink: 0; }
    .exp-type { font-size: .65rem; font-weight: 600; letter-spacing: .25em; text-transform: uppercase; color: #6b4a10; margin-bottom: 10px; }
    .exp-name { font-family: var(--font-serif); font-size: 1.55rem; font-weight: 700; margin-bottom: 14px; color: #07131f; }
    .exp-desc { font-size: .83rem; font-weight: 300; line-height: 1.8; color: #1a3a55; margin-bottom: 32px; flex-grow: 1; }
    .price-block { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
    .price-main { font-family: var(--font-serif); font-size: 2.6rem; font-weight: 700; color: var(--gold); line-height: 1; }
    .price-suffix { font-size: .76rem; font-weight: 500; letter-spacing: .1em; color: #1a3a55; text-transform: uppercase; }
    .price-note { font-size: .73rem; color: #1a3a55; margin-top: 8px; font-weight: 300; }
    .price-row { display: flex; gap: 32px; flex-wrap: wrap; }
    .price-enquire { font-family: var(--font-serif); font-size: 1.5rem; font-weight: 700; color: var(--gold); line-height: 1.25; }

    /* INCLUYE */
    #incluye { background: var(--navy); position: relative; overflow: hidden; }
    #incluye::before { content: ''; position: absolute; top: -100px; right: -100px; width: 400px; height: 400px; background: radial-gradient(circle, rgba(201,168,76,.06) 0%, transparent 70%); border-radius: 50%; pointer-events: none; }
    .incluye-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
    .amenities-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 48px; }
    .amenity { display: flex; align-items: flex-start; gap: 16px; }
    .amenity-icon { width: 44px; height: 44px; background: rgba(201,168,76,.08); border: 1px solid rgba(201,168,76,.25); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--gold); }
    .amenity-text strong { display: block; font-size: .78rem; font-weight: 600; letter-spacing: .08em; margin-bottom: 4px; text-transform: uppercase; color: #07131f; }
    .amenity-text span { font-size: .75rem; color: #1a3a55; font-weight: 300; }
    .visual-block { position: relative; }
    .visual-ocean { width: 100%; aspect-ratio: 3 / 4; background: linear-gradient(180deg, #0a2a4a 0%, #0d3d60 50%, #0a1e35 100%); position: relative; overflow: hidden; }
    .visual-ocean img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
    .gold-frame { position: absolute; top: -16px; right: -16px; width: 100%; height: 100%; border: 1.5px solid rgba(201,168,76,.3); pointer-events: none; }
    .stat-badge { position: absolute; bottom: 32px; left: -32px; background: #cce0f0; border: 1.5px solid rgba(201,168,76,.3); padding: 24px 32px; min-width: 160px; }
    .stat-badge-num { font-family: var(--font-serif); font-size: 2.8rem; font-weight: 700; color: var(--gold); line-height: 1; }
    .stat-badge-label { font-size: .65rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #1a3a55; margin-top: 6px; }

    /* ACTIVIDADES */
    #actividades { background: var(--navy-mid); position: relative; overflow: hidden; }
    #actividades::before { content: ''; position: absolute; bottom: -120px; left: -120px; width: 420px; height: 420px; background: radial-gradient(circle, rgba(201,168,76,.05) 0%, transparent 70%); border-radius: 50%; pointer-events: none; }
    .activities-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 60px; }
    .activity-card { background: #cce0f0; border: 1px solid rgba(201,168,76,.35); overflow: hidden; display: flex; flex-direction: column; transition: border-color .3s, transform .3s; }
    .activity-card:hover { border-color: rgba(201,168,76,.4); transform: translateY(-4px); }
    .activity-visual {
      height: 200px; position: relative; overflow: hidden;
      display: flex; align-items: center; justify-content: center;
    }
    .activity-visual img.act-img {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      object-fit: cover; object-position: center;
      display: block; z-index: 0;
    }
    .activity-visual--jetski img.act-img { object-position: center 40%; }
    .activity-visual--sofa   img.act-img { object-position: center 30%; }
    .activity-visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(13,30,53,.1) 0%, rgba(13,30,53,.55) 100%); z-index: 1; }
    .activity-badge { position: absolute; top: 16px; right: 16px; z-index: 3; background: rgba(13,30,53,.85); border: 1px solid rgba(201,168,76,.4); color: var(--gold); font-size: .62rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 5px 12px; }
    .activity-body { padding: 32px; display: flex; flex-direction: column; flex-grow: 1; }
    .activity-name { font-family: var(--font-serif); font-size: 1.35rem; font-weight: 700; color: #07131f; margin-bottom: 10px; }
    .activity-desc { font-size: .82rem; font-weight: 300; line-height: 1.75; color: #1a3a55; margin-bottom: 24px; flex-grow: 1; }
    .activity-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 20px; border-top: 1px solid rgba(201,168,76,.2); }
    .activity-price { display: flex; align-items: baseline; gap: 5px; }
    .activity-price-num { font-family: var(--font-serif); font-size: 1.7rem; font-weight: 700; color: var(--gold); line-height: 1; }
    .activity-price-suffix { font-size: .68rem; color: #1a3a55; text-transform: uppercase; letter-spacing: .06em; }
    .activity-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
    .activity-tag { font-size: .62rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #6b4a10; background: rgba(201,168,76,.08); border: 1px solid rgba(201,168,76,.2); padding: 5px 10px; }

    /* HORARIOS */
    #horarios { background: var(--navy); }
    .horarios-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 60px; }
    .horario-card { border: 1px solid rgba(7,19,31,.2); padding: 40px; display: flex; gap: 24px; align-items: flex-start; transition: background .3s; }
    .horario-card:hover { background: rgba(7,19,31,.06); }
    .horario-time { font-family: var(--font-serif); font-size: 2rem; font-weight: 700; color: var(--gold); line-height: 1; white-space: nowrap; flex-shrink: 0; }
    .horario-info strong { display: block; font-size: .8rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 8px; color: #07131f; }
    .horario-info p { font-size: .82rem; color: #1a3a55; font-weight: 300; line-height: 1.7; }

    /* CONTACTO */
    #contacto { background: var(--navy-mid); text-align: center; padding: 120px 60px; position: relative; overflow: hidden; }
    #contacto::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 70% 70% at 50% 50%, rgba(201,168,76,.05) 0%, transparent 70%); pointer-events: none; }
    .contacto-inner { position: relative; z-index: 2; }
    .contacto-title { font-family: var(--font-serif); font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 900; line-height: 1.1; color: #07131f; margin-bottom: 20px; }
    .contacto-title em { font-style: italic; color: var(--gold); }
    .contacto-sub { font-size: .9rem; font-weight: 300; letter-spacing: .06em; color: #1a3a55; margin-bottom: 60px; }
    .contact-channels { display: flex; justify-content: center; gap: 48px; flex-wrap: wrap; margin-bottom: 60px; }
    .contact-channel { display: flex; flex-direction: column; align-items: center; gap: 10px; }
    .channel-icon { width: 52px; height: 52px; border: 1.5px solid rgba(201,168,76,.4); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--gold); margin-bottom: 4px; }
    .channel-label { font-size: .65rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #1a3a55; }
    .channel-value { font-size: .9rem; font-weight: 500; color: #07131f; }
    .channel-value a { color: #07131f; text-decoration: none; transition: color .3s; }
    .channel-value a:hover { color: var(--gold); }
    .gold-divider { width: 60px; height: 1px; background: var(--gold); margin: 0 auto 48px; opacity: .5; }

    /* FOOTER */
    footer { background: #7a9db8; padding: 40px 60px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid rgba(201,168,76,.1); flex-wrap: wrap; gap: 20px; }
    .footer-logo { font-family: var(--font-serif); font-size: 1.1rem; letter-spacing: .15em; text-transform: uppercase; color: #8a6520; }
    .footer-logo span { color: #07131f; }
    .footer-text { font-size: .72rem; color: #07131f; letter-spacing: .06em; }
    .footer-tagline { font-size: .7rem; font-weight: 300; letter-spacing: .15em; text-transform: uppercase; color: #5a3d08; }

    /* dark mode footer overrides */
    body.dark-mode footer { background: #070f1c; }
    body.dark-mode .footer-logo { color: var(--gold); }
    body.dark-mode .footer-logo span { color: rgba(255,255,255,.5); }
    body.dark-mode .footer-text { color: rgba(255,255,255,.3); }
    body.dark-mode .footer-tagline { color: rgba(201,168,76,.5); }

    /* dark mode section/text overrides */
    body.dark-mode .section-label { color: var(--gold); }
    body.dark-mode .section-title { color: var(--white); }
    body.dark-mode .section-desc { color: var(--muted); }
    body.dark-mode .exp-name { color: var(--white); }
    body.dark-mode .exp-type { color: var(--gold); }
    body.dark-mode .exp-desc { color: var(--muted); }
    body.dark-mode .price-suffix { color: var(--muted); }
    body.dark-mode .price-note { color: var(--muted); }
    body.dark-mode .activity-name { color: var(--white); }
    body.dark-mode .activity-desc { color: var(--muted); }
    body.dark-mode .activity-price-suffix { color: var(--muted); }
    body.dark-mode .activity-tag { color: var(--gold-lt); }
    body.dark-mode .horario-info strong { color: var(--white); }
    body.dark-mode .horario-info p { color: var(--muted); }
    body.dark-mode .horario-time { color: var(--gold); }
    body.dark-mode .horario-card { border-color: rgba(201,168,76,.2); }
    body.dark-mode .horario-card:hover { background: rgba(201,168,76,.04); }
    body.dark-mode .contacto-title { color: var(--white); }
    body.dark-mode .contacto-sub { color: var(--muted); }
    body.dark-mode .channel-label { color: var(--muted); }
    body.dark-mode .channel-value { color: var(--white); }
    body.dark-mode .channel-value a { color: var(--white); }
    body.dark-mode .amenity-text strong { color: var(--white); }
    body.dark-mode .amenity-text span { color: var(--muted); }
    body.dark-mode .stat-badge-label { color: var(--muted); }
    body.dark-mode .exp-card { background: var(--navy); border-color: rgba(201,168,76,.15); }
    body.dark-mode .activity-card { background: var(--navy); border-color: rgba(201,168,76,.15); }
    body.dark-mode .stat-badge { background: var(--navy); }
    body.dark-mode .activity-footer { border-top-color: rgba(201,168,76,.12); }
    body.dark-mode .strip { background: var(--gold); }
    body.dark-mode .strip-item { color: var(--navy); }

    /* REVEAL */
    .reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
    .reveal.visible { opacity: 1; transform: translateY(0); }

    /* RESPONSIVE */
    @media (max-width: 1100px) {
      .exp-grid, .activities-grid { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 900px) {
      :root { --section-pad: 70px 24px; }
      nav { padding: 12px 16px; gap: 10px; }
      .nav-links { display: none; }
      .nav-right { gap: 8px; }
      .exp-grid, .activities-grid, .incluye-inner, .horarios-cards { grid-template-columns: 1fr; }
      .amenities-grid { grid-template-columns: 1fr; }
      .stat-badge { left: 0; bottom: -20px; }
      .strip { padding: 16px 24px; gap: 24px; }
      #contacto { padding: 80px 24px; }
      .contact-channels { gap: 32px; }
      footer { flex-direction: column; text-align: center; padding: 30px 24px; }

      /* Splash de idioma: más compacto y siempre visible/scrollable */
      #lang-splash { gap: 20px; padding: 20px 16px; justify-content: flex-start; padding-top: max(32px, env(safe-area-inset-top)); padding-bottom: max(32px, env(safe-area-inset-bottom)); }
      .splash-logo img { height: 64px !important; }
      .splash-prompt { font-size: .62rem; letter-spacing: .22em; }
      .splash-search-wrap { max-width: 100%; }
      .lang-grid { grid-template-columns: repeat(3, 1fr); max-height: none; overflow: visible; gap: 8px; }
      .lang-tile { padding: 12px 4px 10px; gap: 5px; }
      .lang-tile .flag { font-size: 1.5rem; }
      .lang-tile .lang-name { font-size: .68rem; }
      .lang-tile .lang-native { font-size: .58rem; }

      /* Dropdown de idioma en nav: centrado y ajustado al ancho de pantalla */
      .lang-dropdown-panel {
        position: fixed; top: auto; bottom: auto;
        left: 50%; right: auto;
        top: 64px;
        transform: translate(-50%, -8px);
        width: calc(100vw - 32px); max-width: 380px;
        max-height: calc(100vh - 90px); overflow-y: auto;
      }
      .lang-dropdown-panel.open { transform: translate(-50%, 0); }
      .dropdown-grid { grid-template-columns: repeat(3, 1fr); max-height: none; }
    }

    @media (max-width: 480px) {
      nav { padding: 10px 12px; }
      .nav-logo img { height: 40px; }
      .lang-dropdown-btn { padding: 7px 10px; font-size: .62rem; gap: 5px; }
      .nav-cta { padding: 8px 16px; font-size: .64rem; }
      .theme-btn { width: 30px; height: 30px; }
      .lang-grid { grid-template-columns: repeat(2, 1fr); }
      .dropdown-grid { grid-template-columns: repeat(2, 1fr); }
      .splash-logo img { height: 54px !important; }
      .hero-buttons { flex-direction: column; width: 100%; }
      .hero-buttons .btn-primary, .hero-buttons .btn-outline { width: 100%; text-align: center; }
      .strip { gap: 14px 20px; }
      .strip-item { font-size: .64rem; }
    }