  :root{
    --hp-bg:#1b1e25;
    --hp-bg-2:#23272f;
    --hp-bg-3:#2a2f39;
    --hp-ink:#EFECE2;
    --hp-ink-dim:#aeaba0;
    --hp-line: rgba(239,236,226,0.12);
    --hp-line-soft: rgba(239,236,226,0.07);
    --hp-gold-1:#f7ecc9;
    --hp-gold-2:#dcae5b;
    --hp-gold-3:#a8793a;
    --hp-shadow: 0 30px 60px -20px rgba(0,0,0,0.55);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--hp-bg);
    color:var(--hp-ink);
    font-family:'Cormorant Garamond', serif;
    font-size:19px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }

  .eyebrow{
    font-family:'Cormorant SC', serif;
    text-transform:uppercase;
    letter-spacing:.22em;
    font-size:13px;
    font-weight:600;
    color:var(--hp-gold-2);
  }

  .gold-text{
    background:linear-gradient(100deg, var(--hp-gold-1), var(--hp-gold-2) 55%, var(--hp-gold-3));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
  }

  .hp-btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:15px 30px;
    border-radius:999px;
    background:linear-gradient(120deg, var(--hp-gold-1), var(--hp-gold-2));
    color:#241a0a;
    font-family:'Cormorant SC', serif;
    letter-spacing:.08em;
    font-weight:600;
    font-size:15px;
    text-decoration:none;
    box-shadow: 0 10px 30px -10px rgba(220,174,91,0.5);
    transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s ease, letter-spacing .3s ease;
  }
  .hp-btn:hover{
    transform:translateY(-3px);
    letter-spacing:.12em;
    box-shadow: 0 16px 36px -8px rgba(220,174,91,0.65);
  }
  .hp-btn svg{transition:transform .4s cubic-bezier(.16,1,.3,1);}
  .hp-btn:hover svg{transform:translateX(5px);}

  section{ position:relative; }

  /* reveal on scroll */
  .hp-reveal{
    opacity:0;
    transform:translateY(28px);
    filter:blur(4px);
    transition: opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1), filter .9s ease;
  }
  .hp-reveal.is-visible{
    opacity:1; transform:translateY(0); filter:blur(0);
  }

  /* ============ HERO ============ */
  .hp-hero{
    position:relative;
    min-height:92vh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding: 120px 6vw 90px;
    overflow:hidden;
  }
  .hp-hero__bg{
    position:absolute; inset:0;
    background-image:url('https://images.unsplash.com/photo-1553413077-190dd305871c?auto=format&fit=crop&w=1800&q=80');
    background-size:cover;
    background-position:center 40%;
    transform:scale(1.08);
    animation: hp-bg-drift 22s ease-in-out infinite alternate;
  }
  @keyframes hp-bg-drift{
    from{ transform:scale(1.08) translate(0,0); }
    to{ transform:scale(1.14) translate(-1.5%, -1%); }
  }
  .hp-hero__scrim{
    position:absolute; inset:0;
    background:
      linear-gradient(180deg, rgba(27,30,37,.6) 0%, rgba(27,30,37,.82) 55%, var(--hp-bg) 96%),
      linear-gradient(90deg, rgba(27,30,37,.92) 0%, rgba(27,30,37,.4) 55%, rgba(27,30,37,.72) 100%);
  }
  .hp-hero__seal{
    position:absolute;
    top:14%;
    right:8%;
    width:150px; height:150px;
    opacity:.9;
    animation: hp-seal-spin 40s linear infinite;
  }
  @keyframes hp-seal-spin{ to{ transform:rotate(360deg); } }

  .hp-hero__content{ position:relative; z-index:2; max-width:760px; }

  .hp-hero__pill{
    display:inline-flex; align-items:center; gap:8px;
    padding:8px 18px;
    border:1px solid var(--hp-line);
    border-radius:999px;
    background:rgba(255,255,255,0.04);
    backdrop-filter:blur(6px);
    margin-bottom:26px;
    opacity:0; animation: hp-fade-up .9s .1s cubic-bezier(.16,1,.3,1) forwards;
  }
  .hp-hero__pill .dot{width:6px;height:6px;border-radius:50%;background:var(--hp-gold-2); box-shadow:0 0 10px var(--hp-gold-2);}

  .hp-hero__title{
    font-size: clamp(50px, 7.6vw, 104px);
    font-weight:400;
    line-height:.98;
    margin:0 0 26px;
    letter-spacing:-.01em;
    opacity:0; animation: hp-fade-up 1s .22s cubic-bezier(.16,1,.3,1) forwards;
  }
  .hp-hero__title em{
    font-style:italic;
    font-weight:500;
  }

  .hp-hero__desc{
    font-size:20px;
    color:var(--hp-ink-dim);
    max-width:560px;
    margin:0 0 38px;
    opacity:0; animation: hp-fade-up 1s .36s cubic-bezier(.16,1,.3,1) forwards;
  }

  .hp-hero__cta-wrap{
    display:flex; align-items:center; gap:26px; flex-wrap:wrap;
    opacity:0; animation: hp-fade-up 1s .48s cubic-bezier(.16,1,.3,1) forwards;
  }
  .hp-hero__stat{ font-family:'Cormorant SC', serif; letter-spacing:.06em; font-size:14px; color:var(--hp-ink-dim);}
  .hp-hero__stat b{ display:block; font-family:'Cormorant Garamond', serif; font-style:italic; font-size:26px; color:var(--hp-gold-1); font-weight:500;}

  @keyframes hp-fade-up{
    from{ opacity:0; transform:translateY(18px); }
    to{ opacity:1; transform:translateY(0); }
  }

  .hp-hero__scroll{
    position:absolute; left:6vw; bottom:36px; z-index:2;
    display:flex; align-items:center; gap:12px;
    font-family:'Cormorant SC', serif; letter-spacing:.2em; font-size:12px;
    color:var(--hp-ink-dim);
  }
  .hp-hero__scroll-line{
    width:1px; height:34px;
    background:linear-gradient(var(--hp-gold-2), transparent);
    position:relative;
    overflow:hidden;
  }
  .hp-hero__scroll-line::after{
    content:'';
    position:absolute; left:0; top:-100%;
    width:100%; height:100%;
    background:var(--hp-gold-1);
    animation: hp-scroll-move 2.2s ease-in-out infinite;
  }
  @keyframes hp-scroll-move{
    0%{ top:-100%; } 60%{ top:100%; } 100%{ top:100%; }
  }

  /* ============ INTRO ============ */
  .hp-intro{
    padding: 130px 6vw;
    display:grid;
    grid-template-columns: .95fr 1.05fr;
    gap:70px;
    align-items:center;
  }
  .hp-intro__heading{
    font-size: clamp(32px, 3.6vw, 46px);
    font-weight:400;
    line-height:1.22;
    margin:0 0 26px;
  }
  .hp-intro__heading em{ font-style:italic; color:var(--hp-gold-2); font-weight:500;}

  .hp-intro__text{ color:var(--hp-ink-dim); font-size:19px; max-width:520px; margin-bottom:34px;}

  .hp-intro__checklist{ display:flex; flex-direction:column; gap:16px; }
  .hp-intro__checklist li{
    list-style:none;
    display:flex; align-items:flex-start; gap:14px;
    font-size:17px; color:var(--hp-ink);
  }
  .hp-intro__checklist svg{ width:20px; height:20px; flex-shrink:0; margin-top:2px; color:var(--hp-gold-2); }

  .hp-intro__media{ position:relative; order:-1; }
  .hp-intro__frame{
    position:relative;
    aspect-ratio: 4/5;
    border-radius:4px;
    overflow:hidden;
    box-shadow:var(--hp-shadow);
  }
  .hp-intro__frame img{
    width:100%; height:100%; object-fit:cover;
    filter: saturate(.9) contrast(1.05);
    transition: transform 1.2s cubic-bezier(.16,1,.3,1);
  }
  .hp-intro__media:hover .hp-intro__frame img{ transform:scale(1.06); }
  .hp-intro__corner{
    position:absolute; width:64px; height:64px;
    border-top:1px solid var(--hp-gold-2);
    border-right:1px solid var(--hp-gold-2);
    top:-16px; right:-16px;
  }
  .hp-intro__badge{
    position:absolute; bottom:-26px; right:-26px;
    background:var(--hp-bg-2);
    border:1px solid var(--hp-line);
    border-radius:4px;
    padding:20px 24px;
    max-width:230px;
    box-shadow:var(--hp-shadow);
  }
  .hp-intro__badge b{
    font-family:'Cormorant Garamond', serif;
    font-size:34px; font-weight:500;
    background:linear-gradient(100deg, var(--hp-gold-1), var(--hp-gold-2));
    -webkit-background-clip:text; background-clip:text; color:transparent;
    display:block; line-height:1;
  }
  .hp-intro__badge span{ font-size:14px; color:var(--hp-ink-dim); }

  /* ============ PILARES ============ */
  .hp-pillars{ padding: 90px 6vw 130px; }
  .hp-section-label{
    font-family:'Cormorant SC', serif;
    text-transform:uppercase; letter-spacing:.2em; font-size:13px;
    color:var(--hp-gold-2);
    margin:0 0 50px;
    display:flex; align-items:center; gap:16px;
  }
  .hp-section-label::after{ content:''; height:1px; flex:1; background:var(--hp-line); }

  .hp-pillars__grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:28px;
  }

  .hp-pillar{
    position:relative;
    aspect-ratio: 3/4.1;
    border-radius:6px;
    overflow:hidden;
    isolation:isolate;
    cursor:pointer;
    outline:none;
  }
  .hp-pillar__bg{
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    transform:scale(1.1);
    filter:grayscale(.25) brightness(.65);
    transition: transform 1.4s cubic-bezier(.16,1,.3,1), filter .8s ease;
  }
  .hp-pillar__scrim{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(27,30,37,.25) 0%, rgba(27,30,37,.6) 45%, rgba(27,30,37,.97) 100%);
    transition: background .6s ease;
  }
  .hp-pillar__body{
    position:relative; z-index:2;
    height:100%;
    display:flex; flex-direction:column; justify-content:flex-end;
    padding:30px;
  }
  .hp-pillar__number{
    font-family:'Cormorant SC', serif;
    font-size:14px; letter-spacing:.15em;
    color:var(--hp-gold-2);
    margin-bottom:auto;
  }
  .hp-pillar__title{
    font-size:27px; font-weight:500; margin:0 0 10px;
  }
  .hp-pillar__hint{
    font-size:16px; color:var(--hp-ink-dim); margin:0;
    max-height:0; opacity:0; overflow:hidden;
    transition: max-height .6s cubic-bezier(.16,1,.3,1), opacity .5s ease .05s;
  }
  .hp-pillar:hover .hp-pillar__hint,
  .hp-pillar:focus-visible .hp-pillar__hint{
    max-height:140px; opacity:1;
  }
  .hp-pillar:hover .hp-pillar__bg,
  .hp-pillar:focus-visible .hp-pillar__bg{
    transform:scale(1.02); filter:grayscale(0) brightness(.55);
  }
  .hp-pillar::after{
    content:'';
    position:absolute; left:30px; bottom:0;
    width:0; height:2px;
    background:linear-gradient(90deg, var(--hp-gold-1), var(--hp-gold-2));
    transition:width .6s cubic-bezier(.16,1,.3,1);
  }
  .hp-pillar:hover::after, .hp-pillar:focus-visible::after{ width:calc(100% - 60px); }

  /* ============ PROCESO ============ */
  .hp-process{ padding:90px 6vw 130px; background:var(--hp-bg-2); border-top:1px solid var(--hp-line-soft); border-bottom:1px solid var(--hp-line-soft);}
  .hp-process__layout{
    display:grid;
    grid-template-columns: .85fr 1.15fr;
    gap:70px;
    align-items:start;
  }
  .hp-process__intro-heading{
    font-size: clamp(30px, 3.2vw, 40px);
    font-weight:400; line-height:1.25; margin:0 0 20px;
  }
  .hp-process__intro-heading em{font-style:italic; color:var(--hp-gold-2); font-weight:500;}
  .hp-process__intro-text{ color:var(--hp-ink-dim); font-size:18px; margin-bottom:34px; max-width:400px;}

  .hp-ring{
    position:relative; width:132px; height:132px;
  }
  .hp-ring svg{ transform:rotate(-90deg); width:100%; height:100%; }
  .hp-ring circle{ fill:none; stroke-width:2; }
  .hp-ring .track{ stroke: var(--hp-line); }
  .hp-ring .fill{
    stroke:url(#hpGoldGrad);
    stroke-linecap:round;
    stroke-dasharray: 351;
    stroke-dashoffset: 351;
    transition: stroke-dashoffset 1s cubic-bezier(.16,1,.3,1);
  }
  .hp-ring__label{
    position:absolute; inset:0;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
  }
  .hp-ring__num{ font-size:30px; font-weight:500; color:var(--hp-gold-1); line-height:1; }
  .hp-ring__of{ font-size:12px; color:var(--hp-ink-dim); font-family:'Cormorant SC', serif; letter-spacing:.1em; margin-top:4px;}

  .hp-steps{ display:flex; flex-direction:column; gap:2px; margin-bottom:44px; }
  .hp-step{
    display:flex; align-items:center; gap:20px;
    padding:18px 6px;
    border-bottom:1px solid var(--hp-line-soft);
    cursor:pointer;
    transition: padding-left .4s cubic-bezier(.16,1,.3,1), background .4s ease;
  }
  .hp-step:hover{ padding-left:14px; }
  .hp-step__idx{
    font-family:'Cormorant Garamond', serif; font-style:italic;
    font-size:22px; color:var(--hp-ink-dim); width:34px; flex-shrink:0;
    transition:color .4s ease;
  }
  .hp-step__label{ font-size:21px; transition:color .4s ease; }
  .hp-step.active .hp-step__idx{ color:var(--hp-gold-2); }
  .hp-step.active .hp-step__label{ color:var(--hp-gold-1); font-weight:500; }
  .hp-step__bar{
    margin-left:auto; width:60px; height:1px; background:var(--hp-line); position:relative; overflow:hidden;
  }
  .hp-step__bar::after{
    content:''; position:absolute; inset:0; background:var(--hp-gold-2);
    transform:scaleX(0); transform-origin:left; transition:transform .6s cubic-bezier(.16,1,.3,1);
  }
  .hp-step.active .hp-step__bar::after{ transform:scaleX(1); }

  .hp-process__detail{
    background:var(--hp-bg-3);
    border:1px solid var(--hp-line);
    border-radius:6px;
    padding:44px;
    position:relative;
    min-height:300px;
    display:flex; flex-direction:column; justify-content:center;
    transition: opacity .5s ease, transform .5s cubic-bezier(.16,1,.3,1);
  }
  .hp-process__detail-eyebrow{
    font-family:'Cormorant SC', serif; letter-spacing:.18em; font-size:12px; color:var(--hp-gold-2); margin-bottom:14px;
  }
  .hp-process__detail-title{ font-size:32px; font-weight:500; margin:0 0 16px; }
  .hp-process__detail-text{ color:var(--hp-ink-dim); font-size:19px; margin:0; max-width:480px; }

  /* ============ BENEFICIOS ============ */
  .hp-benefits{ padding:130px 6vw; }
  .hp-benefits__grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
    background:var(--hp-line-soft);
    border:1px solid var(--hp-line-soft);
  }
  .hp-benefit{
    background:var(--hp-bg);
    padding:38px 28px;
    transition: background .4s ease, transform .4s cubic-bezier(.16,1,.3,1);
  }
  .hp-benefit:hover{ background:var(--hp-bg-2); transform:translateY(-6px); }
  .hp-benefit__icon{
    width:40px; height:40px; margin-bottom:22px;
    display:flex; align-items:center; justify-content:center;
    border:1px solid var(--hp-line); border-radius:50%;
    color:var(--hp-gold-2);
  }
  .hp-benefit__icon svg{ width:18px; height:18px; }
  .hp-benefit__title{ font-size:21px; font-weight:500; margin:0 0 10px; line-height:1.3;}
  .hp-benefit__text{ font-size:16.5px; color:var(--hp-ink-dim); margin:0; line-height:1.55;}

  /* ============ CTA FINAL ============ */
  .hp-final{
    position:relative;
    min-height:64vh;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center;
    padding:100px 6vw;
    overflow:hidden;
  }
  .hp-final__bg{
    position:absolute; inset:0;
    background-image:url('https://images.unsplash.com/photo-1494412651409-8963ce7935a7?auto=format&fit=crop&w=1800&q=80');
    background-size:cover; background-position:center 45%;
    transform:scale(1.06);
  }
  .hp-final__scrim{
    position:absolute; inset:0;
    background: radial-gradient(60% 90% at 50% 40%, rgba(27,30,37,.6), rgba(27,30,37,.95));
  }
  .hp-final__content{ position:relative; z-index:2; max-width:640px; }
  .hp-final__title{ font-size:clamp(38px,5.4vw,58px); font-weight:400; line-height:1.15; margin:0 0 20px;}
  .hp-final__title em{ font-style:italic; color:var(--hp-gold-2); font-weight:500;}
  .hp-final__desc{ font-size:19px; color:var(--hp-ink-dim); margin:0 0 36px;}

  @media (max-width: 900px){
    .hp-intro{ grid-template-columns:1fr; }
    .hp-intro__media{ order:-1; }
    .hp-pillars__grid{ grid-template-columns:1fr; }
    .hp-process__layout{ grid-template-columns:1fr; }
    .hp-benefits__grid{ grid-template-columns:repeat(2,1fr); }
    .hp-hero__seal{ display:none; }
  }
