  :root{
    --cap-bg:#161a22;
    --cap-bg-2:#1e2330;
    --cap-bg-3:#252b3a;
    --cap-ink:#EFECE2;
    --cap-ink-dim:#a7a49a;
    --cap-line: rgba(239,236,226,0.12);
    --cap-line-soft: rgba(239,236,226,0.06);
    --cap-gold-1:#f7ecc9;
    --cap-gold-2:#dcae5b;
    --cap-gold-3:#a8793a;
    --cap-shadow: 0 30px 60px -20px rgba(0,0,0,0.6);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--cap-bg);
    color:var(--cap-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(--cap-gold-2);
  }

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

  .cap-btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:15px 30px;
    border-radius:999px;
    background:linear-gradient(120deg, var(--cap-gold-1), var(--cap-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.55);
    transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s ease, letter-spacing .3s ease;
  }
  .cap-btn:hover{
    transform:translateY(-3px);
    letter-spacing:.12em;
    box-shadow: 0 16px 36px -8px rgba(220,174,91,0.7);
  }
  .cap-btn svg{transition:transform .4s cubic-bezier(.16,1,.3,1);}
  .cap-btn:hover svg{transform:translateX(5px);}

  section{ position:relative; }

  /* reveal on scroll */
  .cap-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;
  }
  .cap-reveal.is-visible{
    opacity:1; transform:translateY(0); filter:blur(0);
  }

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

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

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

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

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

  .cap-hero__cta-wrap{
    opacity:0; animation: cap-fade-up 1s .48s cubic-bezier(.16,1,.3,1) forwards;
  }

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

  .cap-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(--cap-ink-dim);
  }
  .cap-hero__scroll-line{
    width:1px; height:34px;
    background:linear-gradient(var(--cap-gold-2), transparent);
    position:relative;
    overflow:hidden;
  }
  .cap-hero__scroll-line::after{
    content:'';
    position:absolute; left:0; top:-100%;
    width:100%; height:100%;
    background:var(--cap-gold-1);
    animation: cap-scroll-move 2.2s ease-in-out infinite;
  }
  @keyframes cap-scroll-move{
    0%{ top:-100%; } 60%{ top:100%; } 100%{ top:100%; }
  }

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

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

  .cap-intro__icons{ display:flex; flex-wrap:wrap; gap:28px; }
  .cap-intro__icons span{
    display:flex; align-items:center; gap:10px;
    font-family:'Cormorant SC', serif; letter-spacing:.06em; font-size:14px;
    color:var(--cap-ink);
    padding-bottom:4px;
    border-bottom:1px solid var(--cap-line);
  }
  .cap-intro__icons svg{ width:18px; height:18px; color:var(--cap-gold-2); }

  .cap-intro__media{ position:relative; }
  .cap-intro__frame{
    position:relative;
    aspect-ratio: 4/5;
    border-radius:4px;
    overflow:hidden;
    box-shadow:var(--cap-shadow);
  }
  .cap-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);
  }
  .cap-intro__media:hover .cap-intro__frame img{ transform:scale(1.06); }
  .cap-intro__corner{
    position:absolute; width:64px; height:64px;
    border-top:1px solid var(--cap-gold-2);
    border-left:1px solid var(--cap-gold-2);
    top:-16px; left:-16px;
  }
  .cap-intro__badge{
    position:absolute; bottom:-26px; left:-26px;
    background:var(--cap-bg-2);
    border:1px solid var(--cap-line);
    border-radius:4px;
    padding:20px 24px;
    max-width:230px;
    box-shadow:var(--cap-shadow);
  }
  .cap-intro__badge b{
    font-family:'Cormorant Garamond', serif;
    font-size:34px; font-weight:500;
    background:linear-gradient(100deg, var(--cap-gold-1), var(--cap-gold-2));
    -webkit-background-clip:text; background-clip:text; color:transparent;
    display:block; line-height:1;
  }
  .cap-intro__badge span{ font-size:14px; color:var(--cap-ink-dim); }

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

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

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

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

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

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

  .cap-process__detail{
    background:var(--cap-bg-3);
    border:1px solid var(--cap-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);
  }
  .cap-process__detail-eyebrow{
    font-family:'Cormorant SC', serif; letter-spacing:.18em; font-size:12px; color:var(--cap-gold-2); margin-bottom:14px;
  }
  .cap-process__detail-title{ font-size:32px; font-weight:500; margin:0 0 16px; }
  .cap-process__detail-text{ color:var(--cap-ink-dim); font-size:19px; margin:0; max-width:480px; }

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

  /* ============ CTA FINAL ============ */
  .cap-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;
  }
  .cap-final__bg{
    position:absolute; inset:0;
    background-image:url('https://images.unsplash.com/photo-1600880292203-757bb62b4baf?auto=format&fit=crop&w=1800&q=80');
    background-size:cover; background-position:center 25%;
    transform:scale(1.06);
  }
  .cap-final__scrim{
    position:absolute; inset:0;
    background: radial-gradient(60% 90% at 50% 40%, rgba(10,12,17,.55), rgba(10,12,17,.94));
  }
  .cap-final__content{ position:relative; z-index:2; max-width:640px; }
  .cap-final__title{ font-size:clamp(38px,5.4vw,58px); font-weight:400; line-height:1.15; margin:0 0 20px;}
  .cap-final__title em{ font-style:italic; color:var(--cap-gold-2); font-weight:500;}
  .cap-final__desc{ font-size:19px; color:var(--cap-ink-dim); margin:0 0 36px;}

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