    :root{
      --cap-bg:#0a0c11;
      --cap-bg-2:#12151d;
      --cap-bg-3:#171b25;
      --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; }
    }
