 @font-face { font-family:'Seasons'; src:url('../assets/TheSeasons.otf') format('opentype'); font-weight:400; font-display:swap; }
  @font-face { font-family:'Seasons'; src:url('../assets/TheSeasons-Bold.otf') format('opentype'); font-weight:700; font-display:swap; }

  :root{
    --black:#1c1c1c; --bg:#1c2916; --card:#0c1407; --brown:#efeeed; --brown-deep:#0f170a;
    --navy:#021201; --olive:#8f993e;
    --orange:#a85209; --orange-dark:#96551f; --orange-pale:#f76b00;
    --cream:#e5e1e6;
    --sans:'Poppins','Raleway',system-ui,-apple-system,'Segoe UI',sans-serif;
    --serif:'Seasons',Georgia,'Times New Roman',serif;
    --ease:cubic-bezier(.16,1,.3,1);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{background:var(--bg); color:var(--cream); font-family:var(--sans); -webkit-font-smoothing:antialiased; overflow-x:hidden}
  img{display:block;max-width:100%}
  a{color:inherit;text-decoration:none}

  .kene{
    position:absolute; inset:0; pointer-events:none; opacity:.08;
    background-image:url("../media/atracciones/pattern-toram-sol.webp");
    background-size:624px auto;
    background-repeat:repeat;
    background-attachment:fixed;
  }

  /* ---------- NAV ---------- */
  nav{
    position:fixed; top:0; left:0; right:0; z-index:60;
    display:flex; align-items:center; justify-content:space-between;
    padding:26px 48px; transition:background .5s var(--ease), padding .5s var(--ease), border-color .5s;
    border-bottom:1px solid rgba(255,127,48,.28); background:rgba(6,10,4,.94); backdrop-filter:blur(14px);
  }
  nav.solid{padding:16px 48px}
  nav .brand img{height:92px; width:auto; filter:drop-shadow(0 2px 10px rgba(0,0,0,.6))}
  nav ul{display:flex; gap:38px; list-style:none; align-items:center}
  nav ul a{font-size:12px; letter-spacing:.18em; text-transform:uppercase; font-weight:500; position:relative; padding:6px 0; opacity:.85; transition:opacity .3s}
  nav ul a::after{content:''; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--orange); transition:width .45s var(--ease)}
  nav ul a:hover{opacity:1}
  nav ul a:hover::after, nav ul a.active::after{width:100%}
  nav ul a.active{opacity:1; color:var(--orange-pale)}
  .nav-cta{border:1px solid rgba(143,153,62,.6); background:var(--card); color:var(--cream); padding:11px 22px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; transition:background .4s var(--ease), color .4s}
  .nav-cta:hover{background:var(--olive); color:var(--black)}

  .burger{display:none; background:none; border:0; cursor:pointer; padding:10px; z-index:60; flex-direction:column; gap:6px; width:44px}
  .burger span{display:block; height:1px; width:24px; background:var(--cream); transition:transform .5s var(--ease), opacity .3s}
  .burger.on span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
  .burger.on span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}
  .mobile-menu{position:fixed; inset:0; z-index:55; background:var(--bg); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:34px; opacity:0; pointer-events:none; transition:opacity .5s var(--ease)}
  .mobile-menu.on{opacity:1; pointer-events:auto}
  .mobile-menu a{font-family:var(--serif); font-size:36px; color:var(--cream)}
  .mobile-menu a.cta{font-family:var(--sans); font-size:11px; letter-spacing:.2em; text-transform:uppercase; border:1px solid rgba(255,127,48,.6); color:var(--orange-pale); padding:14px 28px; margin-top:14px}

  /* ---------- HEADER ---------- */
  .ghead{position:relative; padding:150px 48px 60px; overflow:hidden; background:linear-gradient(180deg, var(--brown-deep) 0%, var(--bg) 65%)}
  .ghead .eyebrow{font-size:11px; letter-spacing:.34em; text-transform:uppercase; color:#fff; margin-bottom:20px; display:flex; align-items:center; gap:16px}
  .ghead .eyebrow::before{content:''; width:52px; height:1px; background:var(--orange)}
  .ghead h1{font-family:var(--serif); font-weight:700; font-size:clamp(40px,5.4vw,84px); line-height:1.02; margin-bottom:20px}
  .ghead h1 em{font-style:normal; color:var(--orange-pale)}
  .ghead p{max-width:760px; font-size:16px; line-height:1.7; color:rgba(229,225,230,.75); font-weight:300}

  /* ---------- ATTRACTION GRID ---------- */
  .agrid-wrap{position:relative; padding:0 48px 40px; overflow:hidden}
  .agrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:22px; max-width:1400px; margin:0 auto}
  .acard{
    background:var(--card); border:1px solid rgba(143,153,62,.28); overflow:hidden; cursor:pointer;
    opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease), border-color .4s, translate .5s var(--ease);
  }
  .acard.in{opacity:1; transform:none}
  .acard:hover, .acard:focus-visible{border-color:rgba(143,153,62,.65); transform:translateY(-6px)}
  .acard:focus-visible{outline:1px solid var(--olive); outline-offset:2px}
  .acard .aimg{aspect-ratio:4/3; overflow:hidden}
  .acard .aimg img{width:100%; height:100%; object-fit:cover; filter:brightness(.86) saturate(1.02); transition:transform 1s var(--ease), filter .6s}
  .acard:hover .aimg img{transform:scale(1.07); filter:brightness(1.02)}
  .acard .abody{padding:22px 24px 28px}
  .acard .anum{font-family:var(--serif); font-size:12px; letter-spacing:.24em; color:var(--olive)}
  .acard h3{font-family:var(--serif); font-weight:700; font-size:22px; margin:10px 0 10px; line-height:1.15}
  .acard p{font-size:13.5px; line-height:1.65; color:rgba(229,225,230,.72); font-weight:300}

  /* ---------- LIGHTBOX ---------- */
  .alightbox{position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; padding:32px; opacity:0; pointer-events:none; transition:opacity .4s var(--ease)}
  .alightbox.on{opacity:1; pointer-events:auto}
  .albackdrop{position:absolute; inset:0; background:rgba(6,10,4,.86); backdrop-filter:blur(6px)}
  .albox{
    position:relative; z-index:2; width:min(980px,100%); max-height:88vh; overflow:auto;
    background:var(--bg); border:1px solid rgba(255,127,48,.4); box-shadow:0 30px 80px rgba(0,0,0,.55);
    display:grid; grid-template-columns:1.2fr 1fr;
    opacity:0; transform:translateY(24px) scale(.98); transition:opacity .45s var(--ease), transform .45s var(--ease);
  }
  .alightbox.on .albox{opacity:1; transform:none}
  .alimg{position:relative; overflow:hidden; min-height:340px; background:var(--brown)}
  .alimg img{width:100%; height:100%; object-fit:cover; filter:brightness(.92) saturate(1.03)}
  .albody{padding:48px 44px; display:flex; flex-direction:column; justify-content:center}
  .alnum{font-family:var(--serif); font-size:13px; letter-spacing:.28em; color:var(--orange)}
  .albody h3{font-family:var(--serif); font-weight:700; font-size:clamp(26px,2.6vw,38px); line-height:1.1; margin:14px 0 18px}
  .albody p{font-size:15px; line-height:1.75; color:rgba(229,225,230,.8); font-weight:300; margin-bottom:26px}
  .go{display:inline-flex; align-items:center; gap:12px; cursor:pointer; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--orange-pale); align-self:flex-start}
  .go .arrow{width:34px; height:1px; background:var(--orange); position:relative; transition:width .5s var(--ease)}
  .go .arrow::after{content:''; position:absolute; right:0; top:-3px; width:7px; height:7px; border-top:1px solid var(--orange); border-right:1px solid var(--orange); transform:rotate(45deg)}
  .go:hover .arrow{width:56px}
  .alclose{
    position:absolute; top:18px; right:18px; z-index:3; width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,127,48,.4);
    background:rgba(6,10,4,.6); color:var(--cream); font-size:22px; line-height:1; cursor:pointer;
    display:flex; align-items:center; justify-content:center; transition:background .3s, color .3s, border-color .3s;
  }
  .alclose:hover{background:var(--olive); color:var(--black); border-color:var(--olive)}
  @media(max-width:760px){
    .alightbox{padding:0}
    .albox{grid-template-columns:1fr; max-height:100vh; height:100%; width:100%; overflow-y:auto}
    .alimg{min-height:44vh}
    .albody{padding:32px 24px 44px}
  }

  /* ---------- BOTTOM CTA ---------- */
  .acta{position:relative; padding:150px 48px 110px; text-align:center; background:var(--navy); overflow:hidden}
  .acta .acta-inner{position:relative; z-index:2; max-width:640px; margin:0 auto}
  .acta .eyebrow{justify-content:center}
  .acta h2{font-family:var(--serif); font-weight:700; font-size:clamp(30px,3.4vw,50px); line-height:1.08; margin:8px 0 16px}
  .acta h2 em{font-style:normal; color:var(--orange-pale)}
  .acta p{font-size:15px; line-height:1.7; color:rgba(229,225,230,.8); font-weight:300; margin-bottom:30px}
  .btn-wa{display:inline-flex; align-items:center; gap:10px; cursor:pointer; border:1px solid rgba(143,153,62,.6); background:var(--card); color:var(--cream); font-family:var(--sans); font-weight:600; font-size:12px; letter-spacing:.14em; text-transform:uppercase; padding:15px 28px; transition:background .35s, transform .35s var(--ease)}
  .btn-wa:hover{background:var(--olive); color:var(--black); transform:translateY(-2px)}
  .btn-wa::after{content:'\f178'; font-family:'Font Awesome 6 Free'; font-weight:900; font-size:12px; display:inline-block; transition:transform .35s var(--ease)}
  .btn-wa:hover::after{transform:translateX(6px)}

  /* ---------- FOOTER ---------- */
  footer{background:var(--bg); padding:90px 48px 40px; position:relative; border-top:1px solid rgba(255,127,48,.15)}
  .frule{height:1px; background:linear-gradient(to right, transparent, rgba(255,127,48,.5), transparent); margin-bottom:60px}
  .fgrid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:44px; align-items:start}
  footer img{height:58px; width:auto; margin-bottom:22px}
  .fbrand .tag{font-size:13px; color:rgba(229,225,230,.5); font-weight:300; max-width:300px; line-height:1.7; margin-bottom:26px}
  .fsocial{display:flex; gap:12px}
  .fsocial a{display:flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,127,48,.35); color:var(--orange-pale); transition:background .3s, color .3s, border-color .3s}
  .fsocial a svg{width:16px; height:16px}
  .fsocial a:hover{background:var(--olive); color:var(--black); border-color:var(--olive)}
  footer h3{font-size:10px; letter-spacing:.26em; text-transform:uppercase; color:var(--orange); font-weight:600; margin-bottom:22px}
  footer ul{list-style:none; display:flex; flex-direction:column; gap:13px}
  footer ul a{font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:rgba(229,225,230,.65); transition:color .3s}
  footer ul a:hover{color:var(--orange-pale)}
  .fcontact li{font-size:12.5px; letter-spacing:.02em; text-transform:none; color:rgba(229,225,230,.65); line-height:1.6}
  .fcontact li a{font-size:12.5px; letter-spacing:.02em; text-transform:none; color:rgba(229,225,230,.65)}
  .fcontact li a:hover{color:var(--orange-pale)}
  .copy{margin-top:70px; padding-top:28px; border-top:1px solid rgba(255,127,48,.15); font-size:11px; letter-spacing:.1em; color:rgba(229,225,230,.35); text-align:center}


  /* ---------- WHATSAPP FLOATING BUTTON ---------- */
  .wa-float{
    position:fixed; right:28px; bottom:28px; z-index:80;
    width:60px; height:60px; border-radius:50%;
    background:linear-gradient(135deg, #1a2a10, var(--card)); border:1px solid rgba(143,153,62,.6);
    color:var(--cream); display:flex; align-items:center; justify-content:center;
    box-shadow:0 10px 30px rgba(0,0,0,.45), 0 0 0 0 rgba(143,153,62,.45);
    transition:transform .35s var(--ease), box-shadow .35s var(--ease);
    animation:waPulse 2.8s ease-in-out infinite;
  }
  .wa-float svg{width:28px; height:28px; position:relative; z-index:2}
  .wa-float:hover{transform:scale(1.08) translateY(-2px); box-shadow:0 14px 36px rgba(0,0,0,.5)}
  .wa-tooltip{
    position:absolute; right:calc(100% + 16px); top:50%; transform:translateY(-50%) translateX(8px);
    background:var(--bg); color:var(--cream); border:1px solid rgba(255,127,48,.35);
    padding:11px 18px; border-radius:8px; font-size:12.5px; letter-spacing:.02em; white-space:nowrap;
    box-shadow:0 8px 20px rgba(0,0,0,.35);
    opacity:0; pointer-events:none; transition:opacity .35s var(--ease), transform .35s var(--ease);
  }
  .wa-tooltip::after{content:''; position:absolute; left:100%; top:50%; transform:translateY(-50%); border:6px solid transparent; border-left-color:var(--bg)}
  .wa-float:hover .wa-tooltip{opacity:1; transform:translateY(-50%) translateX(0)}
  @keyframes waPulse{
    0%,100%{box-shadow:0 10px 30px rgba(0,0,0,.45), 0 0 0 0 rgba(143,153,62,.45)}
    50%{box-shadow:0 10px 30px rgba(0,0,0,.45), 0 0 0 12px rgba(143,153,62,0)}
  }
  @media(prefers-reduced-motion:reduce){ .wa-float{animation:none} }
  .mobile-menu.on ~ .wa-float{opacity:0; pointer-events:none}

  .fade{opacity:0; transform:translateY(28px); transition:opacity 1s var(--ease), transform 1s var(--ease)}
  .fade.in{opacity:1; transform:none}

  @media(max-width:900px){
    nav{padding:16px 22px} nav.solid{padding:12px 22px}
    nav ul{display:none} .nav-cta{display:none} .burger{display:flex}
    nav .brand img{height:90px; margin:-22px 0}
    .ghead{padding:120px 22px 40px}
    .agrid-wrap{padding:0 0 30px}
    .agrid{
      display:flex; gap:16px; grid-template-columns:none;
      overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory;
      -webkit-overflow-scrolling:touch; scrollbar-width:none;
      padding:0 22px 6px; scroll-padding-left:22px;
    }
    .agrid::-webkit-scrollbar{display:none}
    .acard, .acard.fade{flex:0 0 78%; max-width:320px; scroll-snap-align:start; opacity:1!important; transform:none!important; transition:border-color .4s!important; transition-delay:0s!important}
    .acard:hover{transform:none!important}
    .acta{padding:80px 22px}
    footer{padding:70px 22px 30px}
    .fgrid{grid-template-columns:1fr; gap:40px}
    .wa-float{right:18px; bottom:18px; width:54px; height:54px}
    .wa-float svg{width:24px; height:24px}
    .wa-tooltip{display:none}
  }