  @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{
    --olive:#8f983e; --olive-light:#b9c26a; --olive-dark:#5c6428; --olive-deep:#3a4019;
    --bg-black:#0d0805; --bg-deep:#170f09; --bg-alt:#24160d;
    --green:#24160d; --green-alt:#1e130b; --green-deep:#170f09;
    --gold:#b59429; --gold-dark:#ad8818; --gold-pale:#e6cd80;
    --cream:#f4efe4;
    --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:
      radial-gradient(1200px 680px at 12% -8%, rgba(122,74,40,.32), transparent 62%),
      radial-gradient(900px 580px at 96% 6%, rgba(122,74,40,.16), transparent 55%),
      radial-gradient(1000px 660px at 50% 105%, rgba(122,74,40,.20), transparent 62%),
      linear-gradient(180deg, var(--bg-black) 0%, var(--bg-deep) 100%);
    background-attachment:fixed;
    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/introduccion/pattern-toram.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(143,152,62,.3); background:rgba(13,8,5,.92); backdrop-filter:blur(14px);
  }
  nav.solid{padding:16px 48px}
  nav .brand img{height:62px; 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(--olive); 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(--olive-light)}
  .nav-cta{border:1px solid rgba(143,152,62,.6); color:var(--olive-light); 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(--green-deep)}

  .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(--green-deep); 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(143,152,62,.6); color:var(--olive-light); padding:14px 28px; margin-top:14px}

  /* ---------- HEADER ---------- */
  .ghead{position:relative; padding:170px 48px 100px; min-height:640px; display:flex; flex-direction:column; justify-content:center; overflow:hidden; background:linear-gradient(rgba(13,8,5,.6),rgba(13,8,5,.6)), url("../media/fondo2.webp") center/cover no-repeat}
  .ghead .kene{display:none}
  .ghead .eyebrow{font-size:11px; letter-spacing:.34em; text-transform:uppercase; color:var(--olive); margin-bottom:20px; display:flex; align-items:center; gap:16px}
  .ghead .eyebrow::before{content:''; width:52px; height:1px; background:var(--olive)}
  .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(--olive-light)}
  .ghead p{max-width:760px; font-size:16px; line-height:1.7; color:rgba(244,239,228,.75); font-weight:300}

  /* ---------- GUARDIAN (alternating image/text) ---------- */
  .guardian{
    position:relative; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:60px; padding:100px 48px; overflow:hidden;
    background:radial-gradient(760px 460px at 88% 0%, rgba(122,74,40,.16), transparent 62%), var(--bg-deep);
  }
  /* section boundaries now use the .section-divider element instead of a border */
  .guardian.rev{background:radial-gradient(760px 460px at 12% 100%, rgba(122,74,40,.16), transparent 62%), var(--bg-deep)}
  .guardian.rev .art{order:2}
  .guardian.rev .txt{order:1}
  .guardian .art{position:relative; display:flex; justify-content:center}
  .guardian .art::before{content:''; position:absolute; width:480px; height:480px; border-radius:50%; background:radial-gradient(circle, rgba(122,74,40,.22) 0%, rgba(122,74,40,.08) 40%, transparent 68%)}
  .guardian .art img{position:relative; width:min(420px,80%); aspect-ratio:4/5; object-fit:cover; filter:drop-shadow(0 30px 50px rgba(0,0,0,.45))}
  .guardian .txt{max-width:520px}
  .guardian h2{font-family:var(--serif); font-weight:700; font-size:clamp(30px,3.2vw,50px); line-height:1.1; margin:16px 0 22px}
  .guardian h2 em{font-style:normal; color:var(--olive-light); display:block}
  .guardian p{font-size:15.5px; line-height:1.8; color:rgba(244,239,228,.78); font-weight:300; margin-bottom:16px}

  /* ---------- BOTTOM CTA ---------- */
  .acta{
    position:relative; padding:110px 48px; text-align:center; overflow:hidden;
    background:radial-gradient(1000px 560px at 50% 0%, rgba(122,74,40,.26), transparent 65%), var(--bg-alt);
  }
  .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(--olive-light)}
  .acta p{font-size:15px; line-height:1.7; color:rgba(244,239,228,.75); font-weight:300; margin-bottom:30px}
  .btn-wa{display:inline-flex; align-items:center; gap:10px; cursor:pointer; border:0; background:var(--olive); color:var(--green-deep); 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-light); 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{
    padding:90px 48px 40px; position:relative;
    background:radial-gradient(760px 420px at 50% 100%, rgba(122,74,40,.12), transparent 60%), var(--bg-black);
  }

  /* ---------- SECTION DIVIDER (line + spiral) ---------- */
  .section-divider{
    position:relative; height:1px; z-index:5;
    background:rgba(143,152,62,.28);
  }
  .section-divider::before{
    content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:46px; height:46px;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'><path d='M25.6,24.0 L25.75,24.23 L25.86,24.5 L25.92,24.8 L25.94,25.12 L25.91,25.46 L25.81,25.81 L25.66,26.16 L25.44,26.5 L25.16,26.81 L24.83,27.09 L24.44,27.34 L24.0,27.52 L23.52,27.65 L23.0,27.71 L22.47,27.7 L21.92,27.61 L21.37,27.43 L20.83,27.17 L20.31,26.83 L19.84,26.4 L19.41,25.9 L19.05,25.33 L18.76,24.69 L18.55,24.0 L18.44,23.27 L18.43,22.51 L18.52,21.73 L18.72,20.95 L19.04,20.19 L19.47,19.47 L20.0,18.79 L20.63,18.17 L21.36,17.63 L22.17,17.19 L23.06,16.85 L24.0,16.62 L24.98,16.53 L25.99,16.57 L27.01,16.74 L28.01,17.06 L28.98,17.51 L29.9,18.1 L30.74,18.83 L31.5,19.67 L32.15,20.63 L32.67,21.68 L33.06,22.81 L33.3,24.0 L33.38,25.23 L33.29,26.49 L33.04,27.74 L32.61,28.97 L32.01,30.15 L31.26,31.26 L30.35,32.27 L29.29,33.17 L28.11,33.93 L26.82,34.53 L25.44,34.97 L24.0,35.23 L22.51,35.29 L21.01,35.15 L19.52,34.82 L18.07,34.28 L16.68,33.54 L15.38,32.62 L14.2,31.52 L13.17,30.25 L12.3,28.85 L11.61,27.32 L11.12,25.7 L10.85,24.0 L10.8,22.26 L10.99,20.51 L11.41,18.78 L12.06,17.1 L12.93,15.51 L14.02,14.02 L15.31,12.68 L16.78,11.5 L18.42,10.52 L20.18,9.75 L22.05,9.21 L24.0,8.93 L25.99,8.89 L27.98,9.13 L29.95,9.63 L31.86,10.39 L33.67,11.4 L35.34,12.66 L36.85,14.14 L38.17,15.82 L39.26,17.68 L40.11,19.68 L40.7,21.8 L41.0,24.0 L41.01,26.24 L40.73,28.48 L40.15,30.69 L39.28,32.82 L38.12,34.84 L36.7,36.7 L35.03,38.38 L33.14,39.83 L31.06,41.04 L28.82,41.97 L26.45,42.6 L24.0,42.92 L21.51,42.92 L19.02,42.59 L16.57,41.93 L14.22,40.95 L11.99,39.65 L9.94,38.06 L8.09,36.2 L6.5,34.1 L5.18,31.79 L4.17,29.31 L3.49,26.7 L3.15,24.0 L3.17,21.26 L3.55,18.52' fill='none' stroke='%238f983e' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat:no-repeat; background-size:contain;
  }
  @media(max-width:900px){
    .section-divider::before{width:36px; height:36px}
  }
  .frule{height:1px; background:linear-gradient(to right, transparent, rgba(143,152,62,.55), 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(244,239,228,.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(143,152,62,.35); color:var(--olive-light); transition:background .3s, color .3s, border-color .3s}
  .fsocial a svg{width:16px; height:16px}
  .fsocial a:hover{background:var(--olive); color:var(--green-deep); border-color:var(--olive)}
  footer h3{font-size:10px; letter-spacing:.26em; text-transform:uppercase; color:var(--olive); 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(244,239,228,.65); transition:color .3s}
  footer ul a:hover{color:var(--olive-light)}
  .fcontact li{font-size:12.5px; letter-spacing:.02em; text-transform:none; color:rgba(244,239,228,.65); line-height:1.6}
  .fcontact li a{font-size:12.5px; letter-spacing:.02em; text-transform:none; color:rgba(244,239,228,.65)}
  .fcontact li a:hover{color:var(--olive-light)}
  .copy{margin-top:70px; padding-top:28px; border-top:1px solid rgba(143,152,62,.15); font-size:11px; letter-spacing:.1em; color:rgba(244,239,228,.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, var(--olive), var(--olive-dark));
    color:var(--green-deep); display:flex; align-items:center; justify-content:center;
    box-shadow:0 10px 30px rgba(0,0,0,.45), 0 0 0 0 rgba(143,152,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(--green-deep); color:var(--cream); border:1px solid rgba(143,152,62,.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(--green-deep)}
  .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,152,62,.45)}
    50%{box-shadow:0 10px 30px rgba(0,0,0,.45), 0 0 0 12px rgba(143,152,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:130px 22px 60px; min-height:0}
    .guardian, .guardian.rev{grid-template-columns:1fr; padding:64px 22px; text-align:center}
    .guardian.rev .art, .guardian.rev .txt{order:initial}
    .guardian .txt{margin:0 auto}
    .guardian .eyebrow{justify-content:center}
    .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}
  }