@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,600;0,700;0,800;1,400;1,600&family=DM+Sans:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&family=Nunito+Sans:ital,wght@0,600;0,700;1,600&display=swap');
    :root{
      --blue:#546faa;      /* azul institucional */
      --orange:#d27c32;    /* naranjo */
      --magenta:#b31652;   /* magenta / rojo */
      --purple:#7c257e;    /* morado */
      --bg:#f5f6fb;
      --ink:#111827;
      --muted:#57607b;
      --line:#dfe3f0;
      --card:#ffffff;
      --shadow:0 12px 36px rgba(84,111,170,.16);
      --soft:#eef0f8;
    }
    *{box-sizing:border-box;}
    body{
      margin:0;
      font-family:"DM Sans","Inter","Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
      background:var(--bg);
      color:var(--ink);
      line-height:1.6;
      letter-spacing:-0.01em;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-rendering: optimizeLegibility;
    }
    a{text-decoration:none;color:inherit;}
    .container{max-width:1180px;margin:0 auto;padding:0 24px;}

    .top-legal{
      background:linear-gradient(135deg, #2e3866, #c91749);
      border-bottom:1px solid var(--line);
      font-size:12px;
      color:#6b3551;
      padding: 2px 0;
    }
    .top-legal .wrap{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:14px;
      padding:6px 24px;
      max-width:1180px;
      margin:0 auto;
      flex-wrap:wrap;
    }
    .top-social{
      display:flex;
      align-items:center;
      gap:8px;
      flex-wrap:wrap;
    }
    .social-btn{
      width:28px;
      height:28px;
      border-radius:999px;
      background:#fff;
      border:1px solid rgba(84,111,170,.25);
      display:inline-flex;
      align-items:center;
      justify-content:center;
      box-shadow:0 6px 14px rgba(84,111,170,.08);
      transition:.15s ease;
      color:#2e3866;
    }
    .social-btn i{font-size:19px;line-height:1;}
    /* .social-btn:hover{transform:translateY(-1px);border-color:var(--magenta);} */
    .social-btn img{width:16px;height:16px;display:block;}
    .top-links{
      display:flex;
      justify-content:flex-end;
      gap:10px;
      flex-wrap:wrap;
    }
    .top-links a{
      padding:1px 10px 0 10px;
      border-radius:999px;
      border:1px solid rgba(179,22,82,.25);
      background:#fff;
      white-space:nowrap;
      font-weight:500;
      color: #222;
    }
    .top-links--mobile{
      display:none;
    }

    header{
      background:#ffffff;
      border-bottom:1px solid var(--line);
      position:sticky;top:0;z-index:10;
      box-shadow:0 4px 16px rgba(84,111,170,.08);
    }
    .header-inner{
      display:flex;
      align-items:center;
      justify-content:space-between;
      padding:12px 24px;
    }
    .nav-toggle{
      display:none;
      width:40px;
      height:40px;
      border-radius:10px;
      border:1px solid rgba(84,111,170,.25);
      background:#fff;
      align-items:center;
      justify-content:center;
      flex-direction:column;
      gap:4px;
      cursor:pointer;
      padding:0;
    }
    .nav-toggle-bar{
      width:18px;
      height:2px;
      background:#2e3866;
      border-radius:2px;
      display:block;
    }
    .nav-close{
      display:none;
      position:absolute;
      top:16px;
      right:16px;
      width:38px;
      height:38px;
      border-radius:10px;
      border:1px solid rgba(84,111,170,.25);
      background:#fff;
      color:#2e3866;
      font-size:24px;
      line-height:1;
      cursor:pointer;
      align-items:center;
      justify-content:center;
      padding:0;
    }
    .brand{
      display:flex;
      align-items:center;
      gap:10px;
    }
    .brand-logo{
      height:42px;
      width:auto;
      display:block;
    }
    .brand-text{
      font-weight:800;
      font-size:18px;
      letter-spacing:.04em;
      text-transform:uppercase;
    }

    nav ul{
      list-style:none;
      display:flex;
      gap:26px;
      margin:0;
      padding:0;
      align-items:center;
      font-size:13px;
    }
    nav li{position:relative;}
    nav > ul > li > a{
      padding:4px 0;
      font-weight:700;
      letter-spacing:.12em;
      text-transform:uppercase;
      transition:.15s;
      font-family:"Plus Jakarta Sans","DM Sans","Inter",system-ui,sans-serif;
    }
    nav > ul > li > a:hover{
      color:var(--magenta);
      border-bottom:1px solid var(--magenta);
    }
    .pill-contact a{
      padding:7px 14px;
      border-radius:999px;
      border:2px solid var(--magenta);
      color:#fff;
      background:linear-gradient(120deg,var(--magenta),var(--orange));
      font-weight:800;
      box-shadow:0px 3px 14px 0px rgba(86, 1, 34, 0.3);
    }

    .submenu{
      position:absolute;
      top:100%;left:0;
      min-width:220px;
      background:#fff;
      border:1px solid var(--line);
      box-shadow:0 10px 20px rgba(0,0,0,.08);
      padding:10px 0;
      display:none;
    }
    .submenu a{
      display:block;
      padding:8px 14px;
      font-size:13px;
    }
    .submenu a:hover{background:#f6f0fb;color:var(--purple);}
    nav li:hover .submenu{display:block;}

    /* HERO */
    .hero{
      background:
        linear-gradient(110deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.74) 35%,rgba(124,37,126,.14) 70%,rgba(84,111,170,.24) 100%),
        url('../media/4-Playa-Los-Enamorados-01.jpg') center/cover no-repeat;
      border-bottom:1px solid var(--line);
    }
    .hero-inner{
      display:grid;
      grid-template-columns:1.05fr 1fr;
      gap:36px;
      padding:46px 24px 40px;
      align-items:center;
    }
    .hero-strip{
      background:#fff;
      box-shadow:0 6px 12px rgba(20,40,90,.08);
      padding:15px;
    }
    .hero-strip-inner{
      display:grid;
      grid-template-columns:max-content 1fr 1fr max-content;
      align-items:center;
      column-gap:32px;
      min-height:1px;
    }
    .hero-strip-col{
      /*min-height:40px;*/
    }
    .hero-strip-text{
      font-size:15px;
      letter-spacing:.16em;
      text-transform:uppercase;
      font-weight:800;
      color:#6a86c7;
      justify-self:start;
      white-space:nowrap;
    }
    .hero-strip-tourism,
    .hero-strip-culture,
    .hero-strip-youtube{
      display:flex;
      align-items:center;
      gap:10px;
      white-space:nowrap;
    }
    .hero-strip-tourism{color:#2f6bbf;justify-self:center;}
    .hero-strip-culture{color:#f07d2d;justify-self:center;}
    .hero-strip-youtube{justify-self:end;}
    .hero-strip-tourism img,
    .hero-strip-culture img{
      height:auto;
      width:140px;
      display:block;
      flex:0 0 auto;
    }
    .hero-strip-youtube img{
      height:30px;
      width:auto;
      display:block;
      flex:0 0 auto;
    }
    .hero-strip-tourism a,
    .hero-strip-culture a{
      flex:0 0 auto;
    }
    .hero-strip .social-btn{
      width:34px;
      height:34px;
      border-color:currentColor;
      color:currentColor;
      box-shadow:none;
    }
    .hero-strip .social-btn i{font-size:20px;}
    .hero-strip .social-btn:hover{
      transform:none;
      background:#f4f7ff;
    }
    .hero-tag{
      font-size:12px;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:var(--magenta);
      margin-bottom:10px;
      font-weight:800;
    }
    .hero h1{
      margin:0 0 12px;
      font-size:42px;
      line-height:1.15;
      font-weight:800;
      letter-spacing:-0.02em;
      font-family:"Plus Jakarta Sans","DM Sans","Inter",system-ui,sans-serif;
    }
    .hero p{
      margin:0 0 20px;
      color:#000;
      font-size:15px;
      max-width:48ch;
    }
    .hero-actions{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
    }
    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:10px 18px;
      border-radius:12px;
      border:2px solid transparent;
      font-size:14px;
      font-weight:700;
      transition:.18s ease;
    }
    .btn-primary{
      background:linear-gradient(120deg,var(--magenta),var(--orange));
      border-color:var(--magenta);
      color:#fff;
      /*box-shadow:2px 5px 10px rgba(86, 1, 34, 0.3);*/
    }
    .btn-primary:hover{transform:translateY(-1px);}
    .btn-outline{
      background:#f1f3fb;
      border-color:var(--blue);
      color:var(--blue);
    }
    .btn-outline:hover{background:#e6eaf7;}

    .hero-media{
      position:relative;
      min-height:250px;
      border-radius:18px;
      overflow:hidden;
      background:linear-gradient(135deg,var(--blue),var(--purple));
      border:1px solid rgba(84,111,170,.25);
      box-shadow:var(--shadow);
      margin-top: 27px;
      opacity: 0.5;
    }
    .hero-media::before{
      content:"";
      position:absolute;
      inset:-20% 50% 10% -12%;
      background:radial-gradient(circle at 20% 20%,rgba(210,124,50,.65),transparent 40%);
      opacity:.8;
      filter:blur(8px);
    }
    .hero-media::after{
      content:"Imagen o video destacado (opcional)";
      position:absolute;
      left:16px;bottom:14px;
      padding:6px 10px;
      font-size:11px;
      background:rgba(0,0,0,.45);
      color:#fff;
      border-radius:999px;
      letter-spacing:.04em;
    }

    /* SERVICIOS */
    .services{
      background:linear-gradient(180deg,#f2f0f7,#f7f8fc);
      border-top:1px solid var(--line);
      border-bottom:1px solid var(--line);
    }
    .services-inner{
      padding:24px 24px 30px;
    }
    .services-label{
      font-size:11px;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:var(--purple);
      margin-bottom:8px;
      font-weight:800;
      font-family:"Plus Jakarta Sans","DM Sans","Inter",system-ui,sans-serif;
    }
    .services h2{
      margin:0 0 18px;
      font-size:21px;
      color:var(--blue);
      font-family:"Plus Jakarta Sans","DM Sans","Inter",system-ui,sans-serif;
      font-weight: 900;
      text-transform: uppercase;
      letter-spacing: .11em;
    }
    #transparencia h2 {
      margin-bottom: 15px;
    }
    .svc-grid{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:14px;
    }
    .svc-card{
      background:#fff;
      border-radius:14px;
      padding:14px 18px;
      border:1px solid #e3dff5;
      display:flex;
      align-items:center;
      justify-content:space-between;
      cursor:pointer;
      transition:.18s ease;
      box-shadow:0 6px 14px rgba(84,111,170,.06);
      min-height:120px;
    }
    .svc-main{
      display:flex;
      flex-direction:column;
      gap:6px;
    }
    .svc-title{
      font-weight:700;
      font-size:20px;
      letter-spacing:-0.01em;
      font-family:"Plus Jakarta Sans","DM Sans","Inter",system-ui,sans-serif;
    }
    .svc-sub{
      font-size:13px;
      color:var(--muted);
      font-family:"DM Sans","Inter",system-ui,sans-serif;
    }
    .svc-icon{
      width:100px;
      height:100px;
      display:flex;
      align-items:center;
      justify-content:center;
      color:var(--magenta);
      background:transparent;
      border:none;
      box-shadow:none;
      flex-shrink:0;
    }
    .svc-icon svg{width:64px;height:64px;stroke-width:2.2;}
    .svc-icon.food{color:var(--orange);}
    .svc-icon.travel{color:var(--blue);}
    .svc-icon.stay{color:var(--purple);}
    .svc-icon.activities{color:var(--magenta);}
    .svc-icon.tours{color:var(--magenta);}
    .svc-icon.places{color:var(--orange);}
    .svc-card:hover{
      transform:translateY(-3px);
      box-shadow:0 10px 22px rgba(84,111,170,.12);
      border-color:var(--magenta);
    }

    /* DESTACADOS */
    .section{
      background:#fff;
      padding:32px 24px;
      border-bottom:1px solid var(--line);
    }
    .section-header{
      display:flex;
      justify-content:space-between;
      align-items:center;
      margin-bottom:18px;
    }
    .section h2{
      margin:0;
      font-size:20px;
      font-weight: 900;
      color:var(--blue);
      font-family:"Plus Jakarta Sans","DM Sans","Inter",system-ui,sans-serif;
      text-transform: uppercase;
      letter-spacing: .11em;
    }
    .chip-link{
      font-size:12px;
      padding:6px 12px;
      border-radius:999px;
      border:1px solid #d8d0ef;
      color:var(--purple);
      background:#f2ecfb;
      font-weight:700;
    }
    .cards-shell{
      position:relative;
      overflow:visible;
    }
    .cards{
      width:100%;
      position:relative;
      padding-bottom:40px;
      overflow:hidden;
    }
    .cards .swiper-wrapper{
      padding-bottom:6px;
      overflow:visible;
    }
    .cards .swiper-slide{
      height:auto;
    }
    .cards-shell .cards-button-next,
    .cards-shell .cards-button-prev{
      color:var(--magenta);
      width:56px;
      height:56px;
      border-radius:50%;
      background:rgba(255,255,255,0.9);
      box-shadow:0 10px 22px rgba(84,111,170,.12);
      position:absolute;
      top:45%;
      transform:translateY(-50%);
      z-index:10;
      cursor:pointer;
    }
    .cards-shell .cards-button-prev{left:-45px;}
    .cards-shell .cards-button-next{right:-45px;}
    .cards-shell .cards-button-next:after,
    .cards-shell .cards-button-prev:after{
      content:'';
    }
    .cards-shell .cards-button-prev{mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"%23b31652\" stroke-width=\"2.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"15 18 9 12 15 6\"/></svg>') center/56px no-repeat;background:var(--magenta);}
    .cards-shell .cards-button-next{mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"%23b31652\" stroke-width=\"2.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"9 18 15 12 9 6\"/></svg>') center/56px no-repeat;background:var(--magenta);}

    .cards .cards-pagination{
      position:absolute;
      left:0;right:0;
      bottom:0;
      display:flex;
      justify-content:center;
      gap:8px;
    }
    .cards .swiper-pagination-bullet{
      background:var(--blue);
      opacity:.4;
    }
    .cards .swiper-pagination-bullet-active{
      opacity:1;
      background:var(--magenta);
    }
    .section-actions{
      display:flex;
      gap:12px;
      flex-wrap:wrap;
      margin-top:36px;
      justify-content: center;
      margin-bottom: 30px;
    }
    .section-notes{
      margin-top:12px;
      display:grid;
      gap:12px;
      color:var(--muted);
      font-size:13px;
      text-align: center;
      padding: 0 80px;
      font-family:"DM Sans","Inter",system-ui,sans-serif;
      line-height:1.5;
    }
    .section-notes .note strong{color:var(--magenta);}
    .card{
      background:#fff;
      border-radius:16px;
      overflow:hidden;
      border:1px solid #e2e4f1;
      display:flex;
      flex-direction:column;
      box-shadow:0 8px 18px rgba(84,111,170,.08);
    }
    .card-media{
      height:220px;
      background:linear-gradient(135deg,rgba(84,111,170,.95),rgba(124,37,126,.9)),
                 linear-gradient(45deg,rgba(210,124,50,.45),transparent 50%);
      position: relative;
      overflow: hidden;
    }
    .card-media img {
        width: 100%;
        height: auto;
        display: block;
    }
    .card-body{
      padding:12px 14px 14px;
      display:flex;
      flex-direction:column;
      gap:6px;
    }
    .badge{
      display:inline-flex; /* o inline-block */
      align-self:flex-start;
      width:auto;
      max-width:none;
      padding:2px 6px 0 6px;
      border-radius:999px;
      font-size:11px;
      text-transform:uppercase;
      letter-spacing:.12em;
      background:#d20c56;
      color: #fff;
      border:1px solid rgba(210,124,50,.36);
      font-weight:800;
      font-family:"Nunito Sans","Plus Jakarta Sans","DM Sans",system-ui,sans-serif;
    }
    .badge.tour{
      background:#eb7b2c;
      color: #fff;
      border-color:rgba(179,22,82,.4);
    }
    .card-title{
      font-weight:700;
      font-size:17px;
    }
    .card-meta{
      font-size:12px;
      color:var(--muted);
    }
    .card-status{
      font-size:13px;
      margin-top:auto;
      display:flex;
      align-items:center;
      gap:6px;
      color: #002a87;
      font-weight: 800;
      display: none;
    }
    .status-dot{
      width:10px;
      height:10px;
      border-radius:50%;
      background:#22c55e;
    }
    .status-dot.pending{background:rgb(167, 0, 0);}

    /* CONTACTO */
    .contact{
      background:#fff;
      padding:38px 24px 42px;
      border-bottom:1px solid var(--line);
    }
    .contact-inner{
      display:grid;
      grid-template-columns:1.1fr 1fr;
      gap:28px;
      align-items:stretch;
      padding-bottom: 30px;
    }
    .contact h2{
      margin:0 0 18px;
      font-size:20px;
      text-transform:uppercase;
      letter-spacing:.12em;
      color:var(--blue);
    }
    .contact-card{
      background: linear-gradient(340deg, rgb(0 42 133 / 11%), rgb(249 0 255 / 4%));
      border-radius:18px;
      border:1px solid #e5dcf3;
      padding:18px 18px 10px;
      box-shadow:0 10px 22px rgba(84,111,170,.08);
      height:auto;
    }
    .contact-row{
      padding:16px 0;
      border-top:1px solid #e9e1f3;
      font-size:14px;
      color:var(--ink);
    }
    .contact-row:first-of-type{border-top:none;}
    .contact-row strong{display:block;margin-bottom:2px;color:var(--purple);}
    .contact-map{
      min-height:230px;
      border-radius:18px;
      border:1px dashed #cfd5ea;
      background:#f4f6fd;
      display:flex;
      align-items:center;
      justify-content:center;
      color:#7582a0;
      font-size:13px;
      position:relative;
      box-shadow:0 10px 22px rgba(84,111,170,.08);
      margin-top:49px;
      height:auto;
      position: relative;
      overflow: hidden;
    }
    .contact-map img {
      max-width: 100%;
      height: auto;
      display: block;
    }
    .contact-map-link{
      position:absolute;
      right:16px;
      bottom:14px;
      padding:6px 10px;
      font-size:11px;
      border-radius:999px;
      background:#fff;
      border:1px solid #d4dde8;
      color:var(--blue);
      font-weight:700;
      text-decoration:none;
      z-index:1;
    }
    .contact-map-link--download{
      left:16px;
      right:auto;
    }

    /* FOOTER */
    footer{
      background:linear-gradient(135deg,var(--blue),var(--purple));
      color:#eaf1ff;
      padding:26px 24px 10px;
      font-size:13px;
    }
    .footer-grid{
      display:grid;
      grid-template-columns:1.3fr 1fr 1fr 1fr;
      gap:28px;
      margin-bottom:10px;
      align-items:start;
    }
    .footer-grid > div:first-child{
      align-self:center;
    }
    .footer-brand{
      display:flex;
      align-items:center;
      gap:12px;
    }
    .footer-logo-wrap{
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:8px;
    }
    .footer-logo{
      height:44px;
      width:auto;
      display:block;
      background:transparent;
    }
    .footer-title{font-weight:800;margin-bottom:4px;}
    .foot-heading{
      font-size:13px;
      text-transform:uppercase;
      letter-spacing:.16em;
      margin-bottom:6px;
      color:#cdd7f1;
      font-family:"Plus Jakarta Sans","DM Sans","Inter",system-ui,sans-serif;
    }
    .footer-grid > div:nth-child(n+2){
      text-align:right;
    }
    .footer-grid > div:nth-child(n+2) .foot-link{display:block;}
    .footer-grid > div:nth-child(n+2) .foot-heading{justify-self:end;}
    .foot-link{
      display:block;
      padding:2px 0;
      color:#eaf1ff;
      opacity:.9;
    }
    .foot-link:hover{opacity:1;color:#fff;}
    .partner-pill{
      margin-top:8px;
      font-size:12px;
    }
    .partner-pill span{
      display:inline-block;
      padding:4px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.5);
      background:rgba(255,255,255,.1);
    }
    .copyright{
      border-top:1px solid rgba(255,255,255,.22);
      padding-top:8px;
      text-align:right;
      font-size:12px;
      color:#d8e1ff;
    }

    @media(max-width:768px){
      .top-legal{
        padding:0;
        border:0;
      }
      .top-legal .wrap{
        padding:0;
        gap:10px;
      }
      .top-social{
        gap:6px;
        position:fixed;
        right:15px;
        bottom:15px;
      }
      .social-btn{
        width:26px;
        height:26px;
      }
      .top-links{
        width:100%;
        display:block;
      }
      .top-legal .top-links{
        display:none;
      }
      .site-nav .top-links--mobile{
        display:block;
        margin-top:12px;
      }
      .top-links a{
        display:block;
        width:100%;
        margin-bottom:15px;
        font-size:10px;
        padding: 8px;
      }
      .site-nav .top-links a:last-child{
        margin-bottom:0;
      }

      .header-inner{
        flex-wrap:wrap;
        gap:10px;
        padding:10px 16px;
      }
      .brand-logo{
        height:36px;
      }
      .nav-toggle{
        display:inline-flex;
      }
      body.nav-open{
        overflow:hidden;
      }
      .site-nav{
        display:none;
        position:fixed;
        inset:0;
        padding:72px 16px 24px;
        background:#fff;
        overflow-y:auto;
        z-index:12;
        flex-direction:column;
        justify-content:center;
        align-items:stretch;
      }
      body.nav-open .site-nav{
        display:flex;
      }
      .site-nav .nav-close{
        display:inline-flex;
      }
      .site-nav ul{
        flex-direction:column;
        align-items:stretch;
        gap:0;
      }
      .site-nav li{
        width:100%;
      }
      .site-nav > ul > li > a{
        padding:12px 0;
        border-bottom:1px solid #eceff6;
        width:100%;
        display:block;
      }
      .site-nav > ul > li > a:hover{
        color:var(--magenta);
        border-bottom-color:#eceff6;
      }
      .site-nav .submenu{
        position:static;
        display:block;
        border:0;
        box-shadow:none;
        padding:0;
      }
      .site-nav .submenu a{
        padding:8px 0 8px 16px;
        font-size:12px;
        border-bottom:1px solid #f1f3f8;
      }
      .site-nav .pill-contact a{
        margin-top:10px;
        text-align:center;
        width:100%;
      }
      .site-nav{
        width:100%;
      }
      nav{
        width:100%;
      }
      nav ul{
        flex-wrap:wrap;
        gap:10px 16px;
        font-size:11px;
      }
      nav > ul > li > a{
        letter-spacing:.08em;
      }
      .pill-contact a{
        padding:6px 12px;
        font-size:11px;
      }

      .hero-inner,
      .contact-inner{grid-template-columns:1fr;}
      .hero-inner{padding:28px 16px 26px;}
      .hero-tag{font-size:11px;}
      .hero p{font-size:14px;}
      .hero-strip-inner{grid-template-columns:1fr 1fr;row-gap:12px;}
      .hero-strip-text{white-space:normal;}
      .hero-strip-tourism,
      .hero-strip-culture,
      .hero-strip-youtube{
        justify-self:start;
        white-space:normal;
      }
      .svc-grid,
      .cards{}
      .footer-grid{grid-template-columns:1fr 1fr;}
      nav ul{gap:18px;}
      .contact-map{margin-top:16px;}
      .footer-grid > div:nth-child(n+2){text-align:left;}
    }
    @media(max-width:768px){
      .svc-grid{
        grid-template-columns:1fr;
      }
      .svc-card{
        width:100%;
      }
      .cards{}
      .hero-strip-inner{grid-template-columns:1fr;gap:12px;}
      .hero-strip-inner.container{padding-left:0;padding-right:0;}
      .hero-strip-col{
        text-align:center;
        justify-self:center;
      }
      .hero-strip-tourism,
      .hero-strip-culture,
      .hero-strip-youtube{
        justify-content:center;
      }
      .hero-strip{padding:12px 16px;}
      .hero-strip-text{
        font-size:12px;
        letter-spacing:.2em;
      }
      .hero-strip-tourism,
      .hero-strip-culture,
      .hero-strip-youtube{
        width:100%;
      }
      .hero-strip-tourism img,
      .hero-strip-culture img{
        width:120px;
      }
      .hero-strip .social-btn{
        width:30px;
        height:30px;
      }
      .footer-grid{
        grid-template-columns:1fr;
        justify-items:center;
        text-align:center;
      }
      .footer-brand{
        justify-content:center;
      }
      .hero h1{font-size:32px;}
      .footer-grid > div:nth-child(n+2){
        text-align:center;
      }
      .footer-grid > div:nth-child(n+2) .foot-heading{
        justify-self:center;
      }
      .copyright{
        text-align:center;
      }
    }
    .somos {
      font-size: 25px;
    }

    /* ORGANIGRAMA */
    .organigrama-section,
    .org-modal{
      --org-node-bg: var(--blue);
      --org-node-bg-2: #415e9c;
      --org-node-text: #ffffff;
      --org-line: #b9c0c7;
      --org-line-width: 2;
      --org-node-w: 180px;
      --org-node-pad-y: 10px;
      --org-node-pad-x: 14px;
      --org-node-radius: 8px;
      --org-h-gap: 46px;
      --org-v-gap: 34px;
      --org-canvas-pad: 26px;
    }
    .organigrama-section .org-sub{
      margin: 0 0 18px;
      color: var(--muted);
      font-size: .98rem;
      line-height: 1.35;
    }
    .organigrama-section .board,
    .org-modal .board{
      position: relative;
      border: 1px solid rgba(84,111,170,.18);
      border-radius: 14px;
      background: #fff;
      overflow-x: hidden;
      overflow-y: auto;
      padding: 0;
    }
    .organigrama-section .board{ cursor: zoom-in; }
    .organigrama-section .viewport,
    .org-modal .viewport{
      position: relative;
      padding: var(--org-canvas-pad);
      width: 100%;
    }
    .organigrama-section .stage,
    .org-modal .stage{
      position: relative;
      width: 100%;
      height: 520px;
      overflow: hidden;
    }
    .organigrama-section .canvas,
    .org-modal .canvas{
      position: absolute;
      top: 0;
      left: 0;
      width: 800px;
      height: 520px;
      transform-origin: 0 0;
      transform: scale(1);
    }
    .organigrama-section svg.links,
    .org-modal svg.links{
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
    }
    .organigrama-section .node,
    .org-modal .node{
      position: absolute;
      width: var(--org-node-w);
      padding: var(--org-node-pad-y) var(--org-node-pad-x);
      background: var(--org-node-bg);
      color: var(--org-node-text);
      border-radius: var(--org-node-radius);
      font-weight: 700;
      font-size: 14px;
      line-height: 1.15;
      text-align: center;
      box-shadow:
        0 1px 0 rgba(15,23,42,.06),
        0 6px 16px rgba(15,23,42,.08);
      user-select: none;
    }
    .organigrama-section .node:hover,
    .org-modal .node:hover{ background: var(--org-node-bg-2); }
    .organigrama-section .node[data-depth="0"],
    .org-modal .node[data-depth="0"]{ font-size: 15px; padding: 11px 14px; }
    .organigrama-section .org-error{
      padding: 16px;
      color: var(--magenta);
      font-weight: 700;
    }

    .org-modal{
      position: fixed;
      inset: 0;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 2vh 2vw;
      background: rgba(10,14,28,.55);
      z-index: 9999;
    }
    .org-modal.is-open{ display: flex; }
    .org-modal-panel{
      width: 95vw;
      height: 90vh;
      background: #fff;
      border-radius: 16px;
      box-shadow: var(--shadow);
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }
    .org-modal-header{
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 12px 16px;
      border-bottom: 1px solid var(--line);
    }
    .org-modal-title{
      font-weight: 800;
      color: var(--blue);
    }
    .org-modal-controls{
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .org-modal-controls button{
      border: 1px solid var(--line);
      background: #fff;
      color: var(--blue);
      border-radius: 999px;
      padding: 6px 10px;
      font-weight: 800;
      cursor: pointer;
    }
    .org-modal-controls button:hover{
      color: var(--magenta);
      border-color: rgba(179,22,82,.45);
    }
    .org-zoom-range{ width: 140px; }
    .org-modal-body{
      padding: 12px;
      flex: 1;
      min-height: 0;
    }
    .org-modal .board{
      height: 100%;
      overflow: auto;
      cursor: grab;
    }
    .org-modal .board:active{ cursor: grabbing; }
    @media (max-width: 768px){
      .organigrama-section{
        --org-node-w: 170px;
        --org-h-gap: 28px;
        --org-v-gap: 28px;
        --org-canvas-pad: 16px;
      }
    }


/* CORPORACION */
    body.corporacion{
      --bg: #f5f6fb;
      --bg-2: #ffffff;
      --stroke: #dfe3f0;
      --text: #111827;
      --muted: #57607b;
      --muted-2: #7a86a5;

      --blue: #546faa;
      --magenta: #b31652;
      --orange: #d27c32;
      --purple: #7c257e;

      --brand: #b31652;
      --brand-2: #546faa;

      --shadow: 0 12px 36px rgba(84,111,170,.16);
      --shadow-2: 0 10px 22px rgba(84,111,170,.12);
      --radius: 16px;

      --max: 1140px;
      --pad: 24px;
      --line: var(--stroke);
    }

    body.corporacion *{ box-sizing:border-box; }
    body.corporacion{ height: 100%; }
    body.corporacion{
      margin:0;
      font-family:"DM Sans","Inter",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
      color: var(--text);
      background: linear-gradient(180deg, #ffffff 0%, var(--bg) 60%);
      line-height: 1.55;
      letter-spacing: -0.01em;
    }

    body.corporacion a{ /*color: inherit;*/ text-decoration: none; }
    body.corporacion .container{
      width: min(var(--max), calc(100% - var(--pad)*2));
      margin-inline:auto;
    }

    /* UI */
    body.corporacion .chip{
      display:inline-flex;
      align-items:center;
      gap:.5rem;
      padding: .42rem .78rem;
      border: 1px solid var(--stroke);
      background: #fff;
      border-radius: 999px;
      color: var(--blue);
      font-size: .9rem;
      font-weight: 700;
      user-select:none;
      white-space: nowrap;
      box-shadow: 0 6px 16px rgba(84,111,170,.10);
    }
    body.corporacion .chip:hover{ border-color: rgba(179,22,82,.3); color: var(--magenta); }

    body.corporacion .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:.6rem;
      padding: .78rem 1.02rem;
      border: 2px solid var(--blue);
      background: #f1f3fb;
      color: var(--blue);
      border-radius: 999px;
      box-shadow: none;
      transition: transform .15s ease, background .15s ease, border-color .15s ease;
      font-weight: 700;
      cursor: pointer;
      width: 100%;
    }
    body.corporacion .btn:hover{ transform: translateY(-1px); background: #e6eaf7; border-color: var(--magenta); }
    body.corporacion .btn:active{ transform: translateY(0px); }

    body.corporacion .btn.primary{
      border: 2px solid var(--magenta);
      background: linear-gradient(120deg, var(--magenta), var(--orange));
      color:#fff;
    }
    body.corporacion .btn.primary:hover{
      border-color: var(--magenta);
      background: linear-gradient(120deg, #c81c5a, #e58a3d);
    }
    body.corporacion .btn svg path{ stroke: currentColor; }
    body.corporacion .btn.primary svg path{ stroke: #fff; }

    body.corporacion .section{
      padding: 74px 0;
      position: relative;
      background:#fff;
      border-bottom:1px solid var(--stroke);
    }
    body.corporacion .section-bg-hero{
      background: linear-gradient(180deg, #ffffff 0%, var(--bg) 60%);
    }
    body.corporacion .section-bg-white{
      background: #fff;
    }
    body.corporacion .section-bg-services{
      background: linear-gradient(180deg,#f2f0f7,#f7f8fc);
    }

    body.corporacion .section-header{
      display:flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 18px;
      margin-bottom: 22px;
    }

    body.corporacion .kicker{
      display:flex;
      align-items:center;
      gap:.6rem;
      color: var(--muted);
      font-weight: 700;
      font-size: .85rem;
      letter-spacing:.18em;
      text-transform: uppercase;
      margin-bottom: 10px;
    }

    body.corporacion .dot{
      width: 9px; height: 9px; border-radius: 999px;
      background: linear-gradient(135deg, var(--magenta), var(--orange));
      box-shadow: 0 0 0 6px rgba(179,22,82,.12);
      margin-right: 5px;
    }

    body.corporacion h1, body.corporacion h2, body.corporacion h3{ margin:0; color: var(--blue); font-family:"Plus Jakarta Sans","DM Sans","Inter",system-ui,sans-serif; }
    body.corporacion h1{
      font-size: clamp(2.0rem, 3.2vw, 3.1rem);
      line-height: 1.05;
      margin-bottom: 20px;
      letter-spacing: -0.8px;
      font-weight: bold;
    }
    body.corporacion h2{
      font-size: clamp(1.45rem, 2vw, 2.05rem);
      letter-spacing: -0.4px;
    }
    body.corporacion h3{
      font-size: 1.05rem;
      letter-spacing: -0.2px;
    }
    body.corporacion p{ margin: .5rem 0 0 0; color: var(--muted); }
    body.corporacion .lead{ font-size: 1.05rem; color: var(--muted); max-width: 78ch; }
    body.corporacion strong{ color: var(--blue) !important; }

    body.corporacion .card{
      border: 1px solid var(--stroke);
      background: #fff;
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow: hidden;
    }
    body.corporacion .card-inner{ padding: 22px; }

    body.corporacion .grid{
      display:grid;
      gap: 18px;
    }

    /* NAV (preservado arriba) */
    body.corporacion .hero-nav{
      padding: 44px 0 24px 0;
      background:#fff;
      border-bottom:1px solid var(--stroke);
    }
    body.corporacion .anchors{
      display:flex;
      gap: 10px;
      flex-wrap: wrap;
      justify-content: center;
    }

    /* HERO (full width) */
    body.corporacion .hero-main{
      padding: 45px 0;
    }
    body.corporacion .hero-card{
      position: relative;
      overflow: hidden;
    }
    body.corporacion .hero-card::before{
      content:"";
      position:absolute;
      inset:-2px;
      background:
        body.corporacion radial-gradient(700px 420px at 20% 10%, body.corporacion rgba(179, body.corporacion 22, body.corporacion 82, body.corporacion .10), body.corporacion transparent 60%),
        radial-gradient(800px 520px at 80% 20%, rgba(84,111,170,.14), transparent 55%);
      filter: blur(8px);
      opacity: .9;
      pointer-events:none;
    }
    body.corporacion .hero-card > .card-inner{
      position:relative;
      display:flex;
      flex-direction: column;
      gap: 14px;
    }
    body.corporacion .brandline{
      display:flex;
      align-items:center;
      justify-content: space-between;
      gap: 14px;
      flex-wrap: wrap;
    }
    body.corporacion .logo{
      display:flex;
      align-items:center;
      gap: 10px;
      font-weight: 800;
      letter-spacing: -0.3px;
      color: var(--blue);
      background: none;
      background-image: none;
      width: auto;
      height: auto;
      margin: 0;
      padding: 0;
    }
    body.corporacion .mark{
      width: 38px; height: 38px;
      border-radius: 12px;
      background: linear-gradient(120deg, var(--magenta), var(--orange));
      border: 1px solid rgba(179,22,82,.35);
      display:grid;
      place-items:center;
      box-shadow: 0 12px 26px rgba(84,111,170,.25);
      flex: 0 0 auto;
    }
    body.corporacion .mark svg path{ stroke: #fff; }

    /* Quienes Somos */
    body.corporacion .two-col{
      grid-template-columns: 1fr 1fr;
    }
    body.corporacion .mini-title{
      display:flex; align-items:center; gap: 10px;
      color: var(--blue);
      font-weight: 800;
      font-size: 18px;
    }
    body.corporacion .mini-title svg{ opacity: .9; }
    body.corporacion .mini-title svg path{ stroke: currentColor; }

    /* Valores */
    body.corporacion .values-grid{
      grid-template-columns: repeat(4, 1fr);
    }
    body.corporacion .value{
      padding: 16px;
      border-radius: 16px;
      border: 1px solid var(--stroke);
      background: #fff;
      transition: transform .15s ease, background .15s ease, border-color .15s ease;
      cursor: default;
      min-height: 124px;
    }
    body.corporacion .value:hover{
      transform: translateY(-1px);
      background: #f8f9fd;
      border-color: rgba(179,22,82,.35);
    }
    body.corporacion .value .top{
      display:flex; justify-content: space-between; align-items: baseline;
      gap: 12px;
      margin-bottom: 8px;
    }
    body.corporacion .badge{
      font-weight: 850;
      font-size: .9rem;
      color: #fff;
      opacity: .9;
    }
    body.corporacion .value p{ margin-top: 0; font-size: .95rem; color: var(--muted); }

    /* Organigrama */
    body.corporacion .org-grid{
      grid-template-columns: 1.3fr .7fr;
      align-items: start;
    }
    body.corporacion .org-figure img{
      width: 100%;
      height: auto;
      display:block;
      border-radius: 14px;
      border: 1px solid var(--stroke);
      background: #fff;
    }

    /* Organigrama (board + modal) */
    body.corporacion .organigrama-section,
    body.corporacion .org-modal{
      --org-node-bg: var(--blue);
      --org-node-bg-2: #415e9c;
      --org-node-text: #ffffff;
      --org-line: #b9c0c7;
      --org-line-width: 2;
      --org-node-w: 180px;
      --org-node-pad-y: 10px;
      --org-node-pad-x: 14px;
      --org-node-radius: 8px;
      --org-h-gap: 46px;
      --org-v-gap: 34px;
      --org-canvas-pad: 26px;
    }
    body.corporacion .organigrama-section .org-sub{
      margin: 0 0 18px;
      color: var(--muted);
      font-size: .98rem;
      line-height: 1.35;
    }
    body.corporacion .organigrama-section .board,
    body.corporacion .org-modal .board{
      position: relative;
      border: 1px solid rgba(84,111,170,.18);
      border-radius: 14px;
      background: #fff;
      overflow-x: hidden;
      overflow-y: auto;
      padding: 0;
    }
    body.corporacion .organigrama-section .board{ cursor: zoom-in; }
    body.corporacion .organigrama-section .viewport,
    body.corporacion .org-modal .viewport{
      position: relative;
      padding: var(--org-canvas-pad);
      width: 100%;
    }
    body.corporacion .organigrama-section .stage,
    body.corporacion .org-modal .stage{
      position: relative;
      width: 100%;
      height: 520px;
      overflow: hidden;
    }
    body.corporacion .organigrama-section .canvas,
    body.corporacion .org-modal .canvas{
      position: absolute;
      top: 0;
      left: 0;
      width: 800px;
      height: 520px;
      transform-origin: 0 0;
      transform: scale(1);
    }
    body.corporacion .organigrama-section svg.links,
    body.corporacion .org-modal svg.links{
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      pointer-events: none;
    }
    body.corporacion .organigrama-section .node,
    body.corporacion .org-modal .node{
      position: absolute;
      width: var(--org-node-w);
      padding: var(--org-node-pad-y) var(--org-node-pad-x);
      background: var(--org-node-bg);
      color: var(--org-node-text);
      border-radius: var(--org-node-radius);
      font-weight: 700;
      font-size: 14px;
      line-height: 1.15;
      text-align: center;
      box-shadow:
        body.corporacion 0 1px 0 rgba(15, body.corporacion 23, body.corporacion 42, body.corporacion .06),
        0 6px 16px rgba(15,23,42,.08);
      user-select: none;
    }
    body.corporacion .organigrama-section .node:hover,
    body.corporacion .org-modal .node:hover{ background: var(--org-node-bg-2); }
    body.corporacion .organigrama-section .node[data-depth="0"],
    body.corporacion .org-modal .node[data-depth="0"]{ font-size: 15px; padding: 11px 14px; }
    body.corporacion .organigrama-section .org-error{
      padding: 16px;
      color: var(--magenta);
      font-weight: 700;
    }
    body.corporacion .org-modal{
      position: fixed;
      inset: 0;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 2vh 2vw;
      background: rgba(10,14,28,.55);
      z-index: 9999;
    }
    body.corporacion .org-modal.is-open{ display: flex; }
    body.corporacion .org-modal-panel{
      width: 95vw;
      height: 90vh;
      background: #fff;
      border-radius: 16px;
      box-shadow: var(--shadow);
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }
    body.corporacion .org-modal-header{
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 12px 16px;
      border-bottom: 1px solid var(--line);
    }
    body.corporacion .org-modal-title{
      font-weight: 800;
      color: var(--blue);
    }
    body.corporacion .org-modal-controls{
      display: flex;
      align-items: center;
      gap: 8px;
    }
    body.corporacion .org-modal-controls button{
      border: 1px solid var(--line);
      background: #fff;
      color: var(--blue);
      border-radius: 999px;
      padding: 6px 10px;
      font-weight: 800;
      cursor: pointer;
    }
    body.corporacion .org-modal-controls button:hover{
      color: var(--magenta);
      border-color: rgba(179,22,82,.45);
    }
    body.corporacion .org-zoom-range{ width: 140px; }
    body.corporacion .org-modal-body{
      padding: 12px;
      flex: 1;
      min-height: 0;
    }
    body.corporacion .org-modal .board{
      height: 100%;
      overflow: auto;
      cursor: grab;
    }
    body.corporacion .org-modal .board:active{ cursor: grabbing; }
    @media (max-width: 768px){
      body.corporacion .organigrama-section{
        --org-node-w: 170px;
        --org-h-gap: 28px;
        --org-v-gap: 28px;
        --org-canvas-pad: 16px;
      }
    }

    /* Accordions */
    body.corporacion .accordion{
      display:flex;
      flex-direction: column;
      gap: 10px;
    }
    body.corporacion details{
      border-radius: 14px;
      border: 1px solid var(--stroke);
      background: #fff;
      overflow:hidden;
    }
    body.corporacion summary{
      list-style:none;
      cursor:pointer;
      padding: 14px 14px;
      display:flex;
      align-items:center;
      justify-content: space-between;
      gap: 12px;
      font-weight: 800;
      color: var(--blue);
    }
    body.corporacion summary::-webkit-details-marker{ display:none; }
    body.corporacion .chev{
      width: 18px; height: 18px; opacity: .8;
      transition: transform .15s ease;
    }
    body.corporacion .chev path{ stroke: currentColor; }
    body.corporacion details[open] .chev{ transform: rotate(180deg); }

    body.corporacion .details-body{
      padding: 0 14px 14px 14px;
      color: var(--muted);
      font-size: .98rem;
    }
    body.corporacion .details-body ul{ margin: 10px 0 0 18px; padding:0; }
    body.corporacion .details-body li{ margin: 6px 0; color: var(--muted); }
    body.corporacion .details-body strong{ color: var(--blue) !important; }

    /* Directorio */
    body.corporacion .dir-grid{
      grid-template-columns: repeat(3, 1fr);
    }
    body.corporacion .person{
      display:flex;
      gap: 14px;
      align-items: flex-start;
    }
    body.corporacion .avatar{
      width: 80px; height: 80px;
      border-radius: 50%;
      border: 1px solid var(--stroke);
      background: #f1f3fb;
      display:grid;
      place-items:center;
      flex: 0 0 auto;
      color: var(--blue);
      overflow:hidden;
    }
    body.corporacion .avatar img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
    }
    body.corporacion .avatar svg{
      width:18px;
      height:18px;
      display:none;
    }
    body.corporacion .avatar svg path{ stroke: currentColor; }
    body.corporacion .role{
      font-weight: 850;
      color: var(--blue);
      line-height: 1.2;
    }
    body.corporacion .name{
      color: var(--muted);
      margin-top: 6px;
      font-weight: 650;
    }

    /* Cumplimiento (texto + sidebar) */
    body.corporacion .compliance-layout{
      display:grid;
      grid-template-columns: 1fr 320px;
      gap: 18px;
      align-items: start;
    }
    body.corporacion .compliance-sidebar{
      display:flex;
      flex-direction: column;
      gap: 12px;
    }
    body.corporacion .stat{
      border-radius: var(--radius);
      border: 1px solid var(--stroke);
      background: #fff;
      padding: 14px;
    }

    body.corporacion .bottom-pad{ padding-bottom: 90px; }

    /* Responsive */
    @media (max-width: 768px){
      body.corporacion .org-grid{ grid-template-columns: 1fr; }
      body.corporacion .values-grid{ grid-template-columns: repeat(2, 1fr); }
      body.corporacion .two-col{ grid-template-columns: 1fr; }
      body.corporacion .dir-grid{ grid-template-columns: 1fr; }
      body.corporacion .compliance-layout{ grid-template-columns: 1fr; }
      body.corporacion .btn{ width: 100%; }
      body.corporacion .section{ padding: 56px 0; }
      body.corporacion .hero-nav{ padding: 28px 0 8px; }
      body.corporacion .hero-main{ padding: 10px 0 30px; }
    }

    @media (prefers-reduced-motion: reduce){
      body.corporacion .btn, body.corporacion .value, body.corporacion .chev{ transition: none; }
    }
  
