:root{
      --red:#b2292e;
      --red-dark:#861d22;
      --black:#111111;
      --text:#292929;
      --muted:#747474;
      --line:#e5e5e5;
      --line-dark:#353535;
      --soft:#f5f5f5;
      --white:#ffffff;
      --dark:#121212;
      --dark-soft:#1a1a1a;
      --shadow:0 24px 80px rgba(0,0,0,.10);
      --header-height:84px;
    }

    *{box-sizing:border-box}

    html{
      scroll-behavior:smooth;
      scroll-padding-top:var(--header-height);
    }

    body{
      margin:0;
      background:#fff;
      color:var(--text);
      font-family:"Inter",Arial,sans-serif;
      font-weight:400;
      line-height:1.6;
      letter-spacing:-.012em;
      -webkit-font-smoothing:antialiased;
    }

    body.menu-open{
      overflow:hidden;
    }

    img{
      display:block;
      max-width:100%;
    }

    a{
      color:inherit;
      text-decoration:none;
    }

    button,
    input,
    select,
    textarea{
      font:inherit;
    }

    button{
      cursor:pointer;
    }

    .container{
      width:min(1320px,calc(100% - 72px));
      margin-inline:auto;
    }

    .section{
      padding:126px 0;
    }

    .eyebrow{
      display:inline-flex;
      align-items:center;
      gap:12px;
      margin-bottom:18px;
      color:var(--red);
      font-size:.66rem;
      font-weight:700;
      letter-spacing:.17em;
      text-transform:uppercase;
    }

    .eyebrow::before{
      content:"";
      width:38px;
      height:1px;
      background:currentColor;
    }

    .section-title{
      max-width:900px;
      margin:0;
      color:var(--black);
      font-size:clamp(2.7rem,5vw,5.35rem);
      font-weight:550;
      line-height:.96;
      letter-spacing:-.064em;
    }

    .section-lead{
      max-width:720px;
      margin:22px 0 0;
      color:var(--muted);
      font-size:1rem;
      line-height:1.76;
    }

    .button{
      min-height:49px;
      padding:0 22px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:9px;
      border:1px solid var(--black);
      background:var(--black);
      color:#fff;
      font-size:.65rem;
      font-weight:700;
      letter-spacing:.12em;
      text-transform:uppercase;
      transition:background .2s ease,border-color .2s ease,color .2s ease;
    }

    .button:hover{
      border-color:var(--red);
      background:var(--red);
    }

    .button-outline{
      background:#fff;
      color:var(--black);
    }

    .button-outline:hover{
      color:#fff;
    }

    .text-link{
      display:inline-flex;
      align-items:center;
      gap:8px;
      width:max-content;
      padding-bottom:5px;
      border-bottom:1px solid var(--black);
      color:var(--black);
      font-size:.64rem;
      font-weight:700;
      letter-spacing:.11em;
      text-transform:uppercase;
    }

    .text-link:hover{
      border-color:var(--red);
      color:var(--red);
    }

    /* ============================================================
       CABECERA 01
       ============================================================ */
    .site-header{
      position:fixed;
      z-index:1000;
      top:0;
      left:0;
      right:0;
      height:var(--header-height);
      border-bottom:1px solid var(--line);
      background:rgba(255,255,255,.97);
      transition:box-shadow .2s ease;
    }

    .site-header.scrolled{
      box-shadow:0 10px 35px rgba(0,0,0,.06);
    }

    .header-inner{
      width:min(1420px,calc(100% - 64px));
      height:100%;
      margin:auto;
      display:flex;
      align-items:center;
      gap:30px;
    }

    .brand{
      width:158px;
      flex:none;
    }

    .brand img{
      width:100%;
      height:46px;
      object-fit:contain;
      object-position:left center;
    }

    .nav{
      margin-left:auto;
      display:flex;
      align-items:center;
      gap:27px;
    }

    .nav > a:not(.button){
      position:relative;
      color:#292929;
      font-size:.71rem;
      font-weight:650;
      letter-spacing:.065em;
      text-transform:uppercase;
    }

    .nav > a:not(.button)::after{
      content:"";
      position:absolute;
      left:0;
      bottom:-11px;
      width:0;
      height:1px;
      background:var(--red);
      transition:width .2s ease;
    }

    .nav > a:not(.button):hover::after{
      width:100%;
    }

    .menu-button{
      display:none;
      width:46px;
      height:46px;
      margin-left:auto;
      border:1px solid var(--line);
      background:#fff;
      position:relative;
    }

    .menu-button span,
    .menu-button::before,
    .menu-button::after{
      content:"";
      position:absolute;
      left:12px;
      width:20px;
      height:2px;
      background:#111;
      transition:.2s ease;
    }

    .menu-button::before{top:14px}
    .menu-button span{top:21px}
    .menu-button::after{top:28px}

    .menu-open .menu-button span{opacity:0}
    .menu-open .menu-button::before{top:21px;transform:rotate(45deg)}
    .menu-open .menu-button::after{top:21px;transform:rotate(-45deg)}

    /* ============================================================
       HERO 08
       ============================================================ */
    .hero{
      margin-top:var(--header-height);
      min-height:calc(100vh - var(--header-height));
      padding:64px;
      background:#fff;
    }

    .hero-shell{
      position:relative;
      width:100%;
      min-height:calc(100vh - var(--header-height) - 128px);
      overflow:hidden;
      background:#eee;
    }

    .hero-shell > img{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
      object-fit:cover;
      filter:saturate(.92) contrast(.98);
    }

    .hero-shell::after{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.89) 35%,rgba(255,255,255,.13) 66%,rgba(255,255,255,0) 100%);
    }

    .hero-content{
      position:absolute;
      z-index:3;
      left:6%;
      top:50%;
      width:min(590px,48%);
      transform:translateY(-50%);
    }

    .hero h1{
      margin:0;
      color:var(--black);
      font-size:clamp(3rem,5.5vw,6.2rem);
      font-weight:600;
      line-height:.89;
      letter-spacing:-.074em;
    }

    .hero p{
      max-width:560px;
      margin:24px 0 0;
      color:var(--muted);
      font-size:1rem;
      line-height:1.74;
    }

    .hero-actions{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:29px;
    }

    .hero-meta{
      display:flex;
      flex-wrap:wrap;
      gap:18px;
      margin-top:31px;
      padding-top:22px;
      border-top:1px solid rgba(0,0,0,.14);
      color:#666;
      font-size:.65rem;
      font-weight:700;
      letter-spacing:.1em;
      text-transform:uppercase;
    }

    /* ============================================================
       LIVING VPO 02
       ============================================================ */
    .living-section{
      padding:0;
      border-top:1px solid var(--line);
    }

    .living-layout{
      min-height:820px;
      display:grid;
      grid-template-columns:52% 48%;
    }

    .living-visual{
      min-height:820px;
      overflow:hidden;
    }

    .living-visual img{
      width:100%;
      height:100%;
      object-fit:cover;
      filter:saturate(.9) contrast(.98);
    }

    .living-copy{
      padding:90px 7vw;
      display:flex;
      flex-direction:column;
      justify-content:center;
      background:#fff;
    }

    .living-copy .section-title{
      max-width:720px;
    }

    .living-metrics{
      display:flex;
      flex-wrap:wrap;
      gap:35px;
      margin-top:38px;
      padding-top:25px;
      border-top:1px solid var(--line);
    }

    .living-metric strong{
      display:block;
      color:#111;
      font-size:2rem;
      font-weight:500;
      letter-spacing:-.05em;
    }

    .living-metric span{
      display:block;
      margin-top:6px;
      color:#888;
      font-size:.63rem;
      font-weight:700;
      letter-spacing:.1em;
      text-transform:uppercase;
    }

    /* ============================================================
       PROMOCIONES 04
       ============================================================ */
    .promotions-section{
      background:#f2f2f2;
    }

    .section-head{
      display:grid;
      grid-template-columns:minmax(0,1.1fr) minmax(300px,.55fr);
      gap:75px;
      align-items:end;
      margin-bottom:54px;
    }

    .section-head .section-lead{
      margin:0;
    }

    .promotion-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:27px;
    }

    .promotion-card{
      min-height:570px;
      display:flex;
      flex-direction:column;
      background:#fff;
      box-shadow:var(--shadow);
    }

    .promotion-media{
      position:relative;
      display:block;
      overflow:hidden;
      aspect-ratio:1.18/1;
      background:#e8e8e8;
    }

    .promotion-media img{
      width:100%;
      height:100%;
      object-fit:cover;
      filter:saturate(.92) contrast(.98);
      transition:transform .45s ease,filter .35s ease;
    }

    .promotion-card:hover .promotion-media img{
      transform:scale(1.025);
      filter:saturate(1) contrast(1);
    }

    .state-upcoming .promotion-media img{
      filter:saturate(.45) contrast(.95) brightness(.86);
    }

    .state-delivered .promotion-media img{
      filter:grayscale(.82) contrast(.92) brightness(1.04);
    }

    .promotion-number{
      position:absolute;
      top:15px;
      left:15px;
      min-width:38px;
      height:38px;
      display:grid;
      place-items:center;
      background:rgba(255,255,255,.94);
      color:#111;
      font-size:.65rem;
      font-weight:800;
      letter-spacing:.08em;
    }

    .promotion-status{
      position:absolute;
      top:15px;
      right:15px;
      min-height:27px;
      padding:0 10px;
      display:inline-flex;
      align-items:center;
      border:1px solid currentColor;
      font-size:.57rem;
      font-weight:700;
      letter-spacing:.11em;
      text-transform:uppercase;
      white-space:nowrap;
    }

    .status-active{
      border-color:var(--red);
      background:var(--red);
      color:#fff;
    }

    .status-upcoming{
      border-color:#111;
      background:#111;
      color:#fff;
    }

    .status-delivered{
      border-color:#aaa;
      background:#fff;
      color:#777;
    }

    .promotion-copy{
      flex:1;
      padding:27px;
      display:flex;
      flex-direction:column;
    }

    .promotion-location{
      color:#737373;
      font-size:.62rem;
      font-weight:700;
      letter-spacing:.11em;
      text-transform:uppercase;
    }

    .promotion-copy h3{
      margin:12px 0 17px;
      color:var(--black);
      font-size:1.55rem;
      font-weight:600;
      line-height:1.15;
      letter-spacing:-.04em;
    }

    .promotion-specs{
      display:flex;
      flex-wrap:wrap;
      gap:6px 12px;
      margin-bottom:24px;
    }

    .promotion-specs span{
      color:#747474;
      font-size:.72rem;
      line-height:1.5;
    }

    .promotion-copy .text-link{
      margin-top:auto;
    }

    /* ============================================================
       CTA 08
       ============================================================ */
    .registration-section{
      padding:72px 0;
      border-top:1px solid var(--line);
      border-bottom:1px solid var(--line);
      background:#fff;
    }

    .registration-inner{
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      gap:42px;
      align-items:center;
    }


    .registration-copy h2{
      max-width:820px;
      margin:0;
      color:var(--black);
      font-size:clamp(2rem,3.4vw,3.7rem);
      font-weight:550;
      line-height:1;
      letter-spacing:-.055em;
    }

    .registration-copy p{
      max-width:700px;
      margin:14px 0 0;
      color:var(--muted);
    }

    /* ============================================================
       GUÍA 07
       ============================================================ */
    .guide-section{
      background:#fff;
    }

    .guide-head{
      display:grid;
      grid-template-columns:1fr .65fr;
      gap:70px;
      align-items:end;
      margin-bottom:62px;
    }

    .guide-head .section-lead{
      margin:0;
    }

    .guide-path{
      position:relative;
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:45px;
    }

    .guide-path::before{
      content:"";
      position:absolute;
      left:8%;
      right:8%;
      top:26px;
      height:1px;
      background:var(--line);
    }

    .guide-step{
      position:relative;
      text-align:center;
    }

    .guide-step b{
      position:relative;
      z-index:2;
      width:54px;
      height:54px;
      margin:0 auto 20px;
      display:grid;
      place-items:center;
      border:1px solid var(--red);
      border-radius:50%;
      background:#fff;
      color:var(--red);
      font-size:.68rem;
      font-weight:700;
    }

    .guide-step h3{
      margin:0;
      color:#111;
      font-size:1.22rem;
      font-weight:600;
      letter-spacing:-.035em;
    }

    .guide-step p{
      margin:10px 0 0;
      color:var(--muted);
      font-size:.88rem;
      line-height:1.65;
    }

    /* ============================================================
       REQUISITOS 07
       ============================================================ */
    .requirements-section{
      border-top:1px solid var(--line);
      background:#f7f7f7;
    }

    .requirements-head{
      display:grid;
      grid-template-columns:1fr .65fr;
      gap:70px;
      align-items:end;
      margin-bottom:50px;
    }

    .requirements-head .section-lead{
      margin:0;
    }

    .requirements-grid{
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:18px;
    }

    .requirement-card{
      padding:26px;
      display:grid;
      grid-template-columns:34px 1fr;
      gap:17px;
      border:1px solid var(--line);
      background:#fff;
    }

    .requirement-icon{
      width:24px;
      height:24px;
      border:2px solid var(--red);
      border-radius:50%;
      position:relative;
    }

    .requirement-icon::after{
      content:"";
      position:absolute;
      left:6px;
      top:3px;
      width:6px;
      height:11px;
      border-right:2px solid var(--red);
      border-bottom:2px solid var(--red);
      transform:rotate(45deg);
    }

    .requirement-card h3{
      margin:0;
      color:#111;
      font-size:1.17rem;
      font-weight:600;
      letter-spacing:-.03em;
    }

    .requirement-card p{
      margin:8px 0 0;
      color:var(--muted);
      font-size:.9rem;
      line-height:1.65;
    }

    /* ============================================================
       PLANO 02
       ============================================================ */
    .plan-section{
      border-top:1px solid var(--line);
      background:#fff;
    }

    .plan-layout{
      display:grid;
      grid-template-columns:.7fr 1.3fr;
      gap:70px;
      align-items:center;
    }

    .plan-copy .section-title{
      max-width:620px;
    }

    .plan-facts{
      display:grid;
      grid-template-columns:1fr 1fr;
      margin-top:30px;
      border-top:1px solid var(--line);
      border-left:1px solid var(--line);
    }

    .plan-fact{
      padding:20px;
      border-right:1px solid var(--line);
      border-bottom:1px solid var(--line);
    }

    .plan-fact strong{
      display:block;
      color:#111;
      font-size:1.8rem;
      font-weight:500;
      letter-spacing:-.05em;
    }

    .plan-fact span{
      display:block;
      margin-top:6px;
      color:#888;
      font-size:.65rem;
      font-weight:700;
      letter-spacing:.1em;
      text-transform:uppercase;
    }

    .plan-stage{
      position:relative;
      min-height:720px;
      display:grid;
      place-items:center;
    }

    .plan-stage > img{
      width:min(470px,42vw);
      height:auto;
      object-fit:contain;
      filter:drop-shadow(24px 35px 32px rgba(0,0,0,.16));
    }

    .plan-label{
      position:absolute;
      padding:11px 14px;
      border:1px solid var(--line);
      background:rgba(255,255,255,.95);
      color:#111;
      font-size:.66rem;
      font-weight:700;
      letter-spacing:.08em;
      text-transform:uppercase;
    }

    .plan-label::after{
      content:"";
      position:absolute;
      width:90px;
      height:1px;
      background:#aaa;
    }

    .plan-label.a{top:16%;left:8%}
    .plan-label.a::after{left:100%;top:50%}
    .plan-label.b{top:25%;right:7%}
    .plan-label.b::after{right:100%;top:50%}
    .plan-label.c{bottom:25%;left:6%}
    .plan-label.c::after{left:100%;top:50%}
    .plan-label.d{bottom:16%;right:8%}
    .plan-label.d::after{right:100%;top:50%}

    /* ============================================================
       GRUPO Q 01
       ============================================================ */
    .group-section{
      border-top:1px solid var(--line);
      background:#fff;
    }

    .group-layout{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:95px;
      align-items:center;
    }

    .group-visual{
      position:relative;
      min-height:700px;
      overflow:hidden;
    }

    .group-visual > img{
      width:100%;
      height:100%;
      object-fit:cover;
      filter:saturate(.9) contrast(.98);
    }

    .group-badge{
      position:absolute;
      left:25px;
      right:25px;
      bottom:25px;
      padding:25px;
      background:rgba(255,255,255,.95);
    }

    .group-badge strong{
      display:block;
      color:#111;
      font-size:2.5rem;
      font-weight:500;
      letter-spacing:-.055em;
    }

    .group-badge span{
      display:block;
      margin-top:6px;
      color:#777;
      font-size:.66rem;
      font-weight:700;
      letter-spacing:.1em;
      text-transform:uppercase;
    }

    .group-values{
      display:grid;
      grid-template-columns:1fr;
      margin-top:35px;
      border-top:1px solid var(--line);
      border-left:1px solid var(--line);
    }

    .group-value{
      min-height:150px;
      padding:27px;
      border-right:1px solid var(--line);
      border-bottom:1px solid var(--line);
      background:#fff;
    }

    .group-value span{
      display:block;
      margin-bottom:20px;
      color:var(--red);
      font-size:.7rem;
      font-weight:700;
      letter-spacing:.1em;
    }

    .group-value h3{
      margin:0;
      color:#111;
      font-size:1.2rem;
      font-weight:600;
      letter-spacing:-.03em;
    }

    .group-value p{
      margin:8px 0 0;
      color:var(--muted);
      font-size:.88rem;
      line-height:1.65;
    }

    /* ============================================================
       PRENSA 06
       ============================================================ */
    .press-section{
      border-top:1px solid var(--line);
      background:#fff;
    }

    .press-layout{
      display:grid;
      grid-template-columns:1.15fr .85fr;
      gap:54px;
      align-items:start;
    }

    .press-feature-media{
      display:block;
      overflow:hidden;
      aspect-ratio:1.35/1;
      background:#eee;
    }

    .press-feature-media img,
    .press-side-media img{
      width:100%;
      height:100%;
      object-fit:cover;
      filter:saturate(.92) contrast(.98);
      transition:transform .4s ease;
    }

    .press-feature:hover img,
    .press-side-item:hover img{
      transform:scale(1.025);
    }

    .press-meta{
      display:flex;
      justify-content:space-between;
      gap:12px;
      margin:16px 0 12px;
      padding-bottom:11px;
      border-bottom:1px solid var(--line);
      color:#888;
      font-size:.61rem;
      font-weight:600;
      letter-spacing:.105em;
      text-transform:uppercase;
    }

    .press-meta span:first-child{
      color:#111;
      font-weight:700;
    }

    .press-feature h3{
      margin:14px 0 0;
      color:#111;
      font-size:clamp(1.9rem,3vw,3.4rem);
      font-weight:600;
      line-height:1.08;
      letter-spacing:-.052em;
    }

    .press-feature p{
      margin:15px 0 20px;
      color:var(--muted);
      font-size:.92rem;
      line-height:1.68;
    }

    .press-side-list{
      border-top:1px solid var(--line);
    }

    .press-side-item{
      display:grid;
      grid-template-columns:135px 1fr;
      gap:19px;
      padding:20px 0;
      border-bottom:1px solid var(--line);
    }

    .press-side-media{
      display:block;
      overflow:hidden;
      aspect-ratio:1.1/1;
      background:#eee;
    }

    .press-side-item .press-meta{
      margin:0 0 8px;
      padding:0;
      border:0;
    }

    .press-side-item h3{
      margin:0;
      color:#111;
      font-size:1.05rem;
      font-weight:600;
      line-height:1.25;
      letter-spacing:-.03em;
    }

    /* ============================================================
       FAQ 01
       ============================================================ */
    .faq-section{
      border-top:1px solid var(--line);
      background:#f7f7f7;
    }

    .faq-layout{
      display:grid;
      grid-template-columns:.75fr 1.25fr;
      gap:80px;
    }

    .faq-list{
      border-top:1px solid #d8d8d8;
    }

    .faq-item{
      border-bottom:1px solid #d8d8d8;
    }

    .faq-question{
      width:100%;
      padding:25px 0;
      display:flex;
      justify-content:space-between;
      gap:20px;
      border:0;
      background:transparent;
      color:#111;
      text-align:left;
      font-weight:600;
      font-size:1.03rem;
    }

    .faq-question b{
      color:var(--red);
      font-size:1.3rem;
      font-weight:400;
    }

    .faq-answer{
      max-height:0;
      overflow:hidden;
      color:#777;
      font-size:.9rem;
      line-height:1.72;
      transition:max-height .3s ease;
    }

    .faq-answer-inner{
      padding:0 35px 25px 0;
    }

    .faq-item.open .faq-answer{
      max-height:260px;
    }

    /* ============================================================
       FORMULARIO 08
       ============================================================ */
    .contact-section{
      position:relative;
      overflow:hidden;
      background:#111;
      color:#fff;
    }

    .contact-background{
      position:absolute;
      inset:0;
    }

    .contact-background img{
      width:100%;
      height:100%;
      object-fit:cover;
      filter:saturate(.75) contrast(1.03);
    }

    .contact-background::after{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.53));
    }

    .contact-layout{
      position:relative;
      z-index:2;
      display:grid;
      grid-template-columns:.75fr 1.25fr;
      gap:85px;
      align-items:center;
    }

    .contact-copy .section-title{
      color:#fff;
    }

    .contact-copy .section-lead{
      color:rgba(255,255,255,.68);
    }

    .contact-data{
      display:grid;
      gap:10px;
      margin-top:32px;
      color:rgba(255,255,255,.8);
      font-size:.8rem;
    }

    .form-shell{
      padding:48px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(20,20,20,.90);
      backdrop-filter:blur(16px);
    }

    .form-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:20px 24px;
    }

    .field{
      display:grid;
      gap:8px;
    }

    .field.full{
      grid-column:1/-1;
    }

    .field label{
      color:rgba(255,255,255,.58);
      font-size:.63rem;
      font-weight:700;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .field input,
    .field select,
    .field textarea{
      width:100%;
      min-height:52px;
      padding:14px 15px;
      border:1px solid var(--line-dark);
      border-radius:0;
      outline:none;
      background:#202020;
      color:#fff;
    }

    .field textarea{
      min-height:126px;
      resize:vertical;
    }

    .field input::placeholder,
    .field textarea::placeholder{
      color:#7d7d7d;
    }

    .field input:focus,
    .field select:focus,
    .field textarea:focus{
      border-color:var(--red);
      box-shadow:0 0 0 3px rgba(178,41,46,.14);
    }

    .privacy{
      display:flex;
      gap:11px;
      align-items:flex-start;
      margin-top:18px;
      color:rgba(255,255,255,.5);
      font-size:.71rem;
      line-height:1.55;
    }

    .privacy input{
      margin-top:3px;
      accent-color:var(--red);
    }

    .form-footer{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:20px;
      margin-top:25px;
    }

    .form-note{
      color:rgba(255,255,255,.48);
      font-size:.69rem;
      line-height:1.5;
    }

    .form-success{
      display:none;
      margin-top:22px;
      padding:16px;
      border:1px solid rgba(255,255,255,.2);
      background:rgba(255,255,255,.08);
      color:#fff;
      font-size:.85rem;
    }

    .form-success.show{
      display:block;
    }

    /* ============================================================
       FOOTER 07
       ============================================================ */
    .site-footer{
      padding:68px 0 25px;
      border-top:1px solid var(--line);
      background:#fff;
    }

    .footer-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:55px;
      padding-bottom:45px;
      border-bottom:1px solid var(--line);
    }

    .footer-brand-large{
      grid-column:1/-1;
      color:#111;
      font-size:clamp(3rem,8vw,8rem);
      font-weight:800;
      line-height:.82;
      letter-spacing:-.075em;
    }

    .site-footer p{
      max-width:430px;
      margin:16px 0 0;
      color:var(--muted);
      font-size:.88rem;
    }

    .site-footer h4{
      margin:0 0 16px;
      color:#777;
      font-size:.63rem;
      font-weight:700;
      letter-spacing:.13em;
      text-transform:uppercase;
    }

    .footer-links{
      display:grid;
      gap:10px;
      color:#333;
      font-size:.86rem;
    }

    .footer-links a:hover{
      color:var(--red);
    }

    .footer-bottom{
      display:flex;
      justify-content:space-between;
      gap:25px;
      padding-top:22px;
      color:#888;
      font-size:.7rem;
    }

    /* ============================================================
       RESPONSIVE
       ============================================================ */
    @media(max-width:1150px){
      .nav{
        gap:17px;
      }

      .nav > a:not(.button){
        display:none;
      }

      .menu-button{
        display:block;
      }

      .nav{
        position:fixed;
        inset:var(--header-height) 0 0;
        padding:35px 24px;
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        background:#fff;
        transform:translateX(100%);
        transition:transform .3s ease;
        overflow:auto;
      }

      .menu-open .nav{
        transform:translateX(0);
      }

      .nav > a:not(.button){
        display:block;
        padding:18px;
        border-bottom:1px solid var(--line);
        font-size:1rem;
      }

      .nav .button{
        margin-top:24px;
      }

      .promotion-grid{
        grid-template-columns:repeat(2,1fr);
      }

      .section-head,
      .guide-head,
      .requirements-head{
        grid-template-columns:1fr;
        gap:24px;
      }

      .group-layout,
      .contact-layout{
        grid-template-columns:1fr;
        gap:55px;
      }

      .press-layout{
        grid-template-columns:1fr;
      }

      .faq-layout{
        grid-template-columns:1fr;
        gap:45px;
      }
    }

    @media(max-width:900px){
      :root{
        --header-height:76px;
      }

      .container{
        width:calc(100% - 34px);
      }

      .section{
        padding:92px 0;
      }

      .header-inner{
        width:calc(100% - 32px);
      }

      .brand{
        width:142px;
      }

      .hero{
        min-height:880px;
        padding:20px;
      }

      .hero-shell{
        min-height:840px;
      }

      .hero-shell::after{
        background:linear-gradient(180deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.9) 46%,rgba(255,255,255,0) 78%);
      }

      .hero-content{
        left:24px;
        right:24px;
        top:60px;
        width:auto;
        transform:none;
      }

      .living-layout{
        grid-template-columns:1fr;
      }

      .living-visual{
        min-height:510px;
      }

      .living-copy{
        padding:70px 34px;
      }

      .registration-inner{
        grid-template-columns:1fr;
        gap:22px;
      }

      .guide-path{
        grid-template-columns:1fr;
        gap:30px;
      }

      .guide-path::before{
        display:none;
      }

      .requirements-grid{
        grid-template-columns:1fr;
      }

      .plan-layout{
        grid-template-columns:1fr;
      }

      .plan-stage{
        min-height:600px;
      }

      .plan-stage > img{
        width:min(390px,70vw);
      }

      .plan-label{
        display:none;
      }

      .group-visual{
        min-height:520px;
      }

      .footer-grid{
        grid-template-columns:1fr;
      }
    }

    @media(max-width:650px){
      .container{
        width:calc(100% - 24px);
      }

      .section-title{
        font-size:2.55rem;
      }

      .hero{
        min-height:820px;
        padding:12px;
      }

      .hero-shell{
        min-height:796px;
      }

      .hero-content{
        left:20px;
        right:20px;
        top:48px;
      }

      .hero h1{
        font-size:3rem;
      }

      .hero-actions{
        display:grid;
        grid-template-columns:1fr;
      }

      .hero-actions .button{
        width:100%;
      }

      .promotion-grid{
        grid-template-columns:1fr;
      }

      .promotion-card{
        min-height:540px;
      }

      .living-copy{
        padding:60px 22px;
      }

      .living-metrics{
        display:grid;
        grid-template-columns:1fr 1fr;
      }

      .press-side-item{
        grid-template-columns:110px 1fr;
      }

      .form-grid{
        grid-template-columns:1fr;
      }

      .field.full{
        grid-column:auto;
      }

      .form-shell{
        padding:34px 22px;
      }

      .form-footer{
        align-items:stretch;
        flex-direction:column;
      }

      .form-footer .button{
        width:100%;
      }

      .footer-bottom{
        flex-direction:column;
      }
    }

    @media(prefers-reduced-motion:reduce){
      *{
        scroll-behavior:auto!important;
        transition:none!important;
      }
    }
  


  .lvpo-floating-banner{
    position:fixed;
    z-index:1300;
    right:20px;
    bottom:20px;
    left:auto;
    width:min(365px,calc(100vw - 40px));
    overflow:hidden;
    border:1px solid rgba(255,255,255,.16);
    border-radius:12px;
    background:#211310;
    box-shadow:
      0 28px 75px rgba(0,0,0,.34),
      0 2px 8px rgba(0,0,0,.12);
    color:#fff;
    opacity:0;
    visibility:hidden;
    transform:translateY(24px) scale(.985);
    transform-origin:bottom right;
    transition:
      opacity .38s ease,
      transform .38s cubic-bezier(.2,.7,.2,1),
      visibility .38s ease;
  }

  .lvpo-floating-banner.is-visible{
    opacity:1;
    visibility:visible;
    transform:translateY(0) scale(1);
  }

  .lvpo-floating-banner.is-closed{
    display:none;
  }

  .lvpo-banner-image{
    position:relative;
    display:block;
    width:100%;
    aspect-ratio:1.58/1;
    overflow:hidden;
    background:#d8d0cb;
  }

  .lvpo-banner-image::after{
    content:"";
    position:absolute;
    inset:0;
    background:
      linear-gradient(180deg,rgba(0,0,0,0) 60%,rgba(31,17,13,.12) 100%);
    pointer-events:none;
  }

  .lvpo-banner-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 43%;
    filter:saturate(.9) contrast(.98);
  }

  .lvpo-banner-close{
    position:absolute;
    z-index:4;
    top:10px;
    right:10px;
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.36);
    border-radius:8px;
    background:rgba(35,23,20,.56);
    color:#fff;
    font-size:1.2rem;
    font-weight:300;
    line-height:1;
    backdrop-filter:blur(10px);
    transition:background .2s ease,border-color .2s ease;
  }

  .lvpo-banner-close:hover{
    border-color:rgba(255,255,255,.7);
    background:rgba(22,15,13,.88);
  }

  .lvpo-banner-copy{
    position:relative;
    padding:27px 28px 28px;
    background:
      radial-gradient(circle at 85% 110%,rgba(178,41,46,.16),transparent 38%),
      #211310;
    text-align:center;
  }

  .lvpo-banner-copy::before{
    content:"";
    position:absolute;
    top:0;
    left:24px;
    right:24px;
    height:1px;
    background:rgba(255,255,255,.08);
  }

  .lvpo-banner-kicker{
    display:block;
    margin-bottom:12px;
    color:#c8aaa0;
    font-size:.59rem;
    font-weight:700;
    letter-spacing:.17em;
    text-transform:uppercase;
  }

  .lvpo-banner-title{
    max-width:285px;
    margin:0 auto;
    color:#f7eee9;
    font-family:"Inter",Arial,sans-serif;
    font-size:1.75rem;
    font-weight:500;
    line-height:1.08;
    letter-spacing:-.047em;
  }

  .lvpo-banner-text{
    max-width:295px;
    margin:15px auto 0;
    color:rgba(247,238,233,.72);
    font-size:.78rem;
    line-height:1.62;
  }

  .lvpo-banner-actions{
    display:flex;
    justify-content:center;
    margin-top:20px;
  }

  .lvpo-banner-button{
    min-height:43px;
    padding:0 19px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid #bca69c;
    border-radius:5px;
    background:#a99389;
    color:#fff;
    font-size:.60rem;
    font-weight:700;
    letter-spacing:.105em;
    text-transform:uppercase;
    box-shadow:0 7px 20px rgba(0,0,0,.15);
    transition:
      background .2s ease,
      border-color .2s ease,
      transform .2s ease;
  }

  .lvpo-banner-button:hover{
    border-color:#d4c1b8;
    background:#b7a096;
    color:#fff;
    transform:translateY(-1px);
  }

  @media(max-width:700px){
    .lvpo-floating-banner{
      right:12px;
      bottom:12px;
      left:12px;
      width:auto;
      border-radius:11px;
      transform-origin:bottom center;
    }

    .lvpo-banner-image{
      aspect-ratio:1.95/1;
    }

    .lvpo-banner-copy{
      padding:22px 22px 23px;
    }

    .lvpo-banner-title{
      font-size:1.48rem;
    }

    .lvpo-banner-text{
      font-size:.76rem;
    }
  }

  @media(prefers-reduced-motion:reduce){
    .lvpo-floating-banner,
    .lvpo-banner-button{
      transition:none;
    }
  }



    .hero-video{
      position:absolute;
      inset:0;
      z-index:0;
      width:100%;
      height:100%;
      display:block;
      object-fit:cover;
      object-position:center center;
      background:#e9e9e9;
      filter:saturate(.94) contrast(1.01);
    }

    .hero-video-control{
      position:absolute;
      z-index:5;
      right:20px;
      bottom:20px;
      min-height:42px;
      padding:0 14px;
      display:inline-flex;
      align-items:center;
      gap:9px;
      border:1px solid rgba(255,255,255,.55);
      background:rgba(17,17,17,.46);
      color:#fff;
      font-family:"Inter",Arial,sans-serif;
      font-size:.61rem;
      font-weight:700;
      letter-spacing:.11em;
      text-transform:uppercase;
      backdrop-filter:blur(10px);
      transition:background .2s ease,border-color .2s ease;
    }

    .hero-video-control:hover{
      border-color:#fff;
      background:rgba(17,17,17,.78);
    }

    .hero-video-control-icon{
      width:14px;
      text-align:center;
      font-size:.8rem;
      line-height:1;
    }

    @media(max-width:900px){
      .hero-video{
        object-position:center center;
      }

      .hero-video-control{
        right:14px;
        bottom:14px;
      }
    }

    @media(max-width:650px){
      .hero-video-control{
        min-height:40px;
        padding:0 12px;
      }

      .hero-video-control-label{
        display:none;
      }
    }
  


  /* Cabecera superpuesta sobre el vídeo */
  .site-header{
    border-bottom-color:rgba(255,255,255,.16);
    background:transparent;
    box-shadow:none;
    transition:
      background .3s ease,
      border-color .3s ease,
      box-shadow .3s ease;
  }

  .site-header .brand img{
    filter:brightness(0) invert(1);
    transition:filter .3s ease;
  }

  .site-header .nav > a:not(.button){
    color:#fff;
    text-shadow:0 1px 15px rgba(0,0,0,.2);
  }

  .site-header .nav > a:not(.button)::after{
    background:#fff;
  }

  .site-header .nav .button{
    border-color:rgba(255,255,255,.72);
    background:rgba(255,255,255,.08);
    color:#fff;
    backdrop-filter:blur(10px);
  }

  .site-header .nav .button:hover{
    border-color:#fff;
    background:#fff;
    color:#111;
  }

  .site-header .menu-button{
    border-color:rgba(255,255,255,.45);
    background:rgba(17,17,17,.12);
    backdrop-filter:blur(10px);
  }

  .site-header .menu-button span,
  .site-header .menu-button::before,
  .site-header .menu-button::after{
    background:#fff;
  }

  .site-header.scrolled,
  body.menu-open .site-header{
    border-bottom-color:var(--line);
    background:rgba(255,255,255,.97);
    box-shadow:0 10px 35px rgba(0,0,0,.06);
  }

  .site-header.scrolled .brand img,
  body.menu-open .site-header .brand img{
    filter:none;
  }

  .site-header.scrolled .nav > a:not(.button),
  body.menu-open .site-header .nav > a:not(.button){
    color:#292929;
    text-shadow:none;
  }

  .site-header.scrolled .nav > a:not(.button)::after,
  body.menu-open .site-header .nav > a:not(.button)::after{
    background:var(--red);
  }

  .site-header.scrolled .nav .button,
  body.menu-open .site-header .nav .button{
    border-color:#111;
    background:#111;
    color:#fff;
  }

  .site-header.scrolled .menu-button,
  body.menu-open .site-header .menu-button{
    border-color:var(--line);
    background:#fff;
  }

  .site-header.scrolled .menu-button span,
  .site-header.scrolled .menu-button::before,
  .site-header.scrolled .menu-button::after,
  body.menu-open .site-header .menu-button span,
  body.menu-open .site-header .menu-button::before,
  body.menu-open .site-header .menu-button::after{
    background:#111;
  }

  /* Hero 100% ancho y alto */
  .hero.hero-cinematic{
    position:relative;
    width:100%;
    height:100vh;
    height:100svh;
    min-height:720px;
    margin:0;
    padding:0;
    overflow:hidden;
    background:#090909;
  }

  .hero-cinematic .hero-shell{
    position:relative;
    width:100%;
    height:100%;
    min-height:100%;
    overflow:hidden;
    background:#090909;
  }

  .hero-cinematic .hero-shell::after{
    display:none;
  }

  .hero-cinematic .hero-video{
    position:absolute;
    inset:0;
    z-index:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    background:#090909;
    filter:saturate(.94) contrast(1.03);
    transform:scale(1.055);
    animation:heroVideoArrival 2.8s cubic-bezier(.18,.72,.2,1) forwards;
  }

  /* Solo sombreado cinematográfico, sin capa blanca */
  .hero-cinematic-shade{
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:
      linear-gradient(
        180deg,
        rgba(0,0,0,.38) 0%,
        rgba(0,0,0,.06) 27%,
        rgba(0,0,0,.08) 60%,
        rgba(0,0,0,.50) 100%
      ),
      linear-gradient(
        90deg,
        rgba(0,0,0,.13) 0%,
        rgba(0,0,0,0) 42%,
        rgba(0,0,0,.10) 100%
      );
  }

  .hero-cinematic-content{
    position:absolute;
    z-index:3;
    top:50%;
    left:50%;
    width:min(1160px,calc(100% - 80px));
    transform:translate(-50%,-47%);
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    color:#fff;
  }

  .hero-cinematic-kicker{
    display:inline-flex;
    align-items:center;
    gap:11px;
    margin-bottom:25px;
    color:rgba(255,255,255,.82);
    font-size:.64rem;
    font-weight:650;
    letter-spacing:.18em;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(15px);
    animation:heroReveal .8s .38s ease forwards;
  }

  .hero-cinematic-kicker i{
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--red);
    box-shadow:0 0 0 5px rgba(178,41,46,.18);
  }

  .hero-cinematic-title{
    margin:0;
    color:#fff;
    font-family:"Inter",Arial,sans-serif;
    font-size:clamp(4rem,8.2vw,9.4rem);
    font-weight:400;
    line-height:.83;
    letter-spacing:-.078em;
    text-wrap:balance;
    text-shadow:0 7px 38px rgba(0,0,0,.18);
  }

  .hero-cinematic-title span{
    display:block;
    opacity:0;
    transform:translateY(42px);
    animation:heroTitleReveal 1.1s cubic-bezier(.18,.72,.2,1) forwards;
  }

  .hero-cinematic-title span:first-child{
    animation-delay:.53s;
  }

  .hero-cinematic-title span:last-child{
    animation-delay:.68s;
  }

  .hero-cinematic-subtitle{
    max-width:680px;
    margin:30px auto 0;
    color:rgba(255,255,255,.82);
    font-size:clamp(.92rem,1.15vw,1.1rem);
    font-weight:400;
    line-height:1.72;
    letter-spacing:0;
    opacity:0;
    transform:translateY(18px);
    animation:heroReveal .85s .95s ease forwards;
  }

  .hero-cinematic-link{
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-top:28px;
    padding:0 0 7px;
    border-bottom:1px solid rgba(255,255,255,.76);
    color:#fff;
    font-size:.65rem;
    font-weight:700;
    letter-spacing:.13em;
    text-transform:uppercase;
    opacity:0;
    transform:translateY(18px);
    animation:heroReveal .85s 1.08s ease forwards;
    transition:border-color .2s ease,color .2s ease;
  }

  .hero-cinematic-link:hover{
    border-color:var(--red);
    color:#fff;
  }

  .hero-scroll{
    position:absolute;
    z-index:4;
    left:50%;
    bottom:24px;
    transform:translateX(-50%);
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:10px;
    color:rgba(255,255,255,.72);
    font-size:.57rem;
    font-weight:650;
    letter-spacing:.17em;
    text-transform:uppercase;
    opacity:0;
    animation:heroReveal .8s 1.35s ease forwards;
  }

  .hero-scroll i{
    position:relative;
    width:1px;
    height:42px;
    overflow:hidden;
    background:rgba(255,255,255,.34);
  }

  .hero-scroll i::after{
    content:"";
    position:absolute;
    top:-42px;
    left:0;
    width:1px;
    height:42px;
    background:#fff;
    animation:heroScrollLine 1.8s 1.5s ease-in-out infinite;
  }

  .hero-cinematic .hero-video-control{
    left:20px;
    right:auto;
    bottom:20px;
    border-color:rgba(255,255,255,.42);
    border-radius:999px;
    background:rgba(13,13,13,.30);
    box-shadow:none;
  }

  @keyframes heroVideoArrival{
    from{transform:scale(1.055)}
    to{transform:scale(1)}
  }

  @keyframes heroReveal{
    to{
      opacity:1;
      transform:translateY(0);
    }
  }

  @keyframes heroTitleReveal{
    to{
      opacity:1;
      transform:translateY(0);
    }
  }

  @keyframes heroScrollLine{
    0%{transform:translateY(0)}
    65%,100%{transform:translateY(84px)}
  }

  @media(max-width:1150px){
    body.menu-open .nav{
      background:#fff;
    }
  }

  @media(max-width:900px){
    .hero.hero-cinematic{
      min-height:680px;
    }

    .hero-cinematic-content{
      width:calc(100% - 34px);
      transform:translate(-50%,-46%);
    }

    .hero-cinematic-title{
      font-size:clamp(3.5rem,12vw,6.8rem);
      line-height:.86;
    }

    .hero-cinematic-subtitle{
      max-width:560px;
    }
  }

  @media(max-width:650px){
    .hero.hero-cinematic{
      height:100svh;
      min-height:650px;
    }

    .hero-cinematic .hero-video{
      object-position:center center;
    }

    .hero-cinematic-content{
      width:calc(100% - 28px);
      transform:translate(-50%,-43%);
    }

    .hero-cinematic-kicker{
      margin-bottom:19px;
      font-size:.57rem;
    }

    .hero-cinematic-title{
      font-size:clamp(3rem,15vw,5.1rem);
      line-height:.87;
      letter-spacing:-.07em;
    }

    .hero-cinematic-subtitle{
      max-width:340px;
      margin-top:23px;
      font-size:.84rem;
      line-height:1.65;
    }

    .hero-cinematic-link{
      margin-top:23px;
      font-size:.58rem;
    }

    .hero-scroll{
      bottom:17px;
    }

    .hero-scroll span{
      display:none;
    }

    .hero-cinematic .hero-video-control{
      left:12px;
      bottom:12px;
    }
  }

  @media(prefers-reduced-motion:reduce){
    .hero-cinematic .hero-video,
    .hero-cinematic-kicker,
    .hero-cinematic-title span,
    .hero-cinematic-subtitle,
    .hero-cinematic-link,
    .hero-scroll,
    .hero-scroll i::after{
      animation:none!important;
      opacity:1;
      transform:none;
    }
  }

/* Popup lateral ampliado */
.lvpo-floating-banner{
  right:28px !important;
  bottom:28px !important;
  left:auto !important;
  width:min(455px,calc(100vw - 56px)) !important;
  border-radius:16px !important;
  box-shadow:0 34px 95px rgba(0,0,0,.38),0 4px 15px rgba(0,0,0,.14) !important;
}
.lvpo-banner-image{aspect-ratio:1.52/1 !important}
.lvpo-banner-close{
  top:13px !important;
  right:13px !important;
  width:40px !important;
  height:40px !important;
  border-radius:10px !important;
}
.lvpo-banner-copy{padding:34px 36px 36px !important}
.lvpo-banner-kicker{margin-bottom:14px !important;font-size:.64rem !important}
.lvpo-banner-title{max-width:365px !important;font-size:2.15rem !important;line-height:1.04 !important}
.lvpo-banner-text{max-width:365px !important;margin-top:18px !important;font-size:.88rem !important;line-height:1.68 !important}
.lvpo-banner-actions{margin-top:25px !important}
.lvpo-banner-button{min-height:49px !important;padding:0 24px !important;border-radius:6px !important;font-size:.64rem !important}
@media(max-width:700px){
  .lvpo-floating-banner{
    right:12px !important;
    left:12px !important;
    bottom:12px !important;
    width:auto !important;
    border-radius:13px !important;
  }
  .lvpo-banner-image{aspect-ratio:1.9/1 !important}
  .lvpo-banner-copy{padding:24px 23px 25px !important}
  .lvpo-banner-title{font-size:1.58rem !important}
  .lvpo-banner-text{font-size:.78rem !important}
}

/* FINAL HERO AND POPUP OVERRIDE START */

/* HERO: título blanco y máxima legibilidad */
.hero-cinematic-title,
.hero-cinematic-title span{
  color:#ffffff !important;
  opacity:1;
  text-shadow:
    0 3px 16px rgba(0,0,0,.26),
    0 10px 45px rgba(0,0,0,.18) !important;
}

.hero-cinematic-content{
  color:#ffffff !important;
}

.hero-cinematic-subtitle{
  color:rgba(255,255,255,.88) !important;
  text-shadow:0 2px 16px rgba(0,0,0,.24) !important;
}

.hero-cinematic-link{
  color:#ffffff !important;
  border-color:rgba(255,255,255,.82) !important;
  text-shadow:0 2px 12px rgba(0,0,0,.22) !important;
}

/* Más contraste sin volver a tapar el vídeo */
.hero-cinematic-shade{
  background:
    linear-gradient(
      180deg,
      rgba(0,0,0,.30) 0%,
      rgba(0,0,0,.08) 28%,
      rgba(0,0,0,.13) 60%,
      rgba(0,0,0,.48) 100%
    ),
    linear-gradient(
      90deg,
      rgba(0,0,0,.10) 0%,
      rgba(0,0,0,0) 45%,
      rgba(0,0,0,.08) 100%
    ) !important;
}

/* POPUP lateral tipo Volta */
.lvpo-floating-banner{
  position:fixed !important;
  z-index:1300 !important;
  right:22px !important;
  bottom:22px !important;
  left:auto !important;
  width:min(420px,calc(100vw - 44px)) !important;
  max-height:calc(100svh - 44px) !important;
  overflow:hidden !important;
  border:1px solid rgba(255,255,255,.14) !important;
  border-radius:12px !important;
  background:#271814 !important;
  box-shadow:
    0 28px 80px rgba(0,0,0,.35),
    0 3px 12px rgba(0,0,0,.15) !important;
  color:#fff !important;
  transform-origin:bottom right !important;
}

.lvpo-banner-image{
  position:relative !important;
  width:100% !important;
  height:215px !important;
  aspect-ratio:auto !important;
  overflow:hidden !important;
  background:#d8d0cb !important;
}

.lvpo-banner-image img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center 42% !important;
  filter:saturate(.92) contrast(.98) !important;
}

.lvpo-banner-close{
  top:10px !important;
  right:10px !important;
  width:34px !important;
  height:34px !important;
  border-radius:7px !important;
  background:rgba(37,24,20,.55) !important;
}

.lvpo-banner-copy{
  min-height:285px !important;
  padding:31px 34px 33px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  background:#271814 !important;
  text-align:center !important;
}

.lvpo-banner-kicker{
  margin-bottom:13px !important;
  color:#cbb8ae !important;
  font-size:.60rem !important;
}

.lvpo-banner-title{
  max-width:330px !important;
  margin:0 auto !important;
  color:#f7eee9 !important;
  font-size:2rem !important;
  font-weight:400 !important;
  line-height:1.08 !important;
  letter-spacing:-.045em !important;
}

.lvpo-banner-text{
  max-width:330px !important;
  margin:17px auto 0 !important;
  color:rgba(247,238,233,.73) !important;
  font-size:.82rem !important;
  line-height:1.65 !important;
}

.lvpo-banner-actions{
  margin-top:22px !important;
}

.lvpo-banner-button{
  min-height:46px !important;
  padding:0 21px !important;
  border:1px solid #b8a299 !important;
  border-radius:5px !important;
  background:#a58e84 !important;
  color:#fff !important;
  font-size:.61rem !important;
}

@media(max-width:700px){
  .lvpo-floating-banner{
    right:12px !important;
    left:12px !important;
    bottom:12px !important;
    width:auto !important;
    max-height:calc(100svh - 24px) !important;
    border-radius:12px !important;
  }

  .lvpo-banner-image{
    height:175px !important;
  }

  .lvpo-banner-copy{
    min-height:auto !important;
    padding:23px 22px 24px !important;
  }

  .lvpo-banner-title{
    font-size:1.55rem !important;
  }

  .lvpo-banner-text{
    font-size:.77rem !important;
  }
}

/* FINAL HERO AND POPUP OVERRIDE END */

/* INTER GLOBAL OVERRIDE START */
html,
body,
body *,
button,
input,
select,
textarea,
option,
label,
a,
p,
span,
strong,
small,
em,
b,
h1,
h2,
h3,
h4,
h5,
h6,
nav,
header,
footer,
section,
article,
aside,
form{
  font-family:"Inter",Arial,sans-serif !important;
}

body{
  font-family:"Inter",Arial,sans-serif !important;
  font-feature-settings:"liga" 1,"kern" 1;
  text-rendering:optimizeLegibility;
}

input::placeholder,
textarea::placeholder{
  font-family:"Inter",Arial,sans-serif !important;
}
/* INTER GLOBAL OVERRIDE END */

/* GSAP EXPERIENCE START */

/* Barra de progreso global */
.site-scroll-progress{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:2px;
  overflow:hidden;
  pointer-events:none;
  background:transparent;
}
.site-scroll-progress span{
  display:block;
  width:100%;
  height:100%;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:left center;
  will-change:transform;
}

/* Estados iniciales controlados por JS */
.gsap-ready .gsap-title,
.gsap-ready .section-lead,
.gsap-ready .eyebrow{
  will-change:transform,opacity;
}
.gsap-image-reveal{
  position:relative;
  overflow:hidden;
  will-change:clip-path;
}
.gsap-image-reveal img{
  will-change:transform;
}

/* Promociones: experiencia horizontal en escritorio */
.horizontal-promotions{
  position:relative;
  padding:0 !important;
  overflow:hidden;
}
.promotions-sticky{
  min-height:100vh;
  padding:108px 0 58px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:#f2f2f2;
}
.promotions-header{
  flex:none;
}
.promotions-viewport{
  width:100%;
  margin-top:8px;
  padding-left:max(36px,calc((100vw - 1320px) / 2));
  padding-right:36px;
  overflow:visible;
}
.horizontal-promotions .promotion-grid{
  width:max-content;
  display:flex !important;
  grid-template-columns:none !important;
  flex-wrap:nowrap;
  gap:28px;
  will-change:transform;
}
.horizontal-promotions .promotion-card{
  width:clamp(340px,31vw,430px);
  min-width:clamp(340px,31vw,430px);
  flex:0 0 auto;
  min-height:555px;
  box-shadow:0 22px 65px rgba(0,0,0,.09);
  will-change:transform;
}
.horizontal-promotions .promotion-media{
  aspect-ratio:1.23/1;
}
.promotions-progress-wrap{
  margin-top:28px;
  flex:none;
}
.promotions-progress{
  display:grid;
  grid-template-columns:minmax(160px,1fr) auto;
  gap:24px;
  align-items:center;
}
.promotions-progress-track{
  height:2px;
  overflow:hidden;
  background:#d5d5d5;
}
.promotions-progress-fill{
  display:block;
  width:100%;
  height:100%;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:left center;
  will-change:transform;
}
.promotions-progress-label{
  color:#777;
  font-size:.59rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

/* Línea de la guía */
.guide-line-fill{
  position:absolute;
  z-index:1;
  left:8%;
  right:8%;
  top:26px;
  height:1px;
  background:var(--red);
  transform:scaleX(0);
  transform-origin:left center;
  will-change:transform;
}
.guide-step{
  z-index:2;
}

/* Pequeños refinamientos visuales durante la interacción */
.promotion-card,
.requirement-card,
.press-side-item,
.group-value{
  transform:translateZ(0);
}
.promotion-media img,
.press-feature-media img,
.press-side-media img,
.group-visual img,
.living-visual img{
  backface-visibility:hidden;
}

/* Evita saltos durante el pin */
.pin-spacer{
  z-index:auto !important;
}

/* Fallback: sin GSAP todo permanece visible */
.no-gsap .site-scroll-progress,
.no-gsap .promotions-progress{
  display:none;
}

/* Tablet y móvil: navegación vertical natural */
@media(max-width:1023px){
  .horizontal-promotions{
    padding:92px 0 !important;
    overflow:visible;
  }
  .promotions-sticky{
    min-height:auto;
    padding:0;
    display:block;
  }
  .promotions-viewport{
    width:auto;
    margin-top:0;
    padding:0 17px;
    overflow:visible;
  }
  .horizontal-promotions .promotion-grid{
    width:auto;
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:24px;
  }
  .horizontal-promotions .promotion-card{
    width:auto;
    min-width:0;
    min-height:540px;
  }
  .promotions-progress-wrap{
    display:none;
  }
  .guide-line-fill{
    display:none;
  }
}

@media(max-width:650px){
  .horizontal-promotions .promotion-grid{
    grid-template-columns:1fr !important;
  }
  .horizontal-promotions .promotion-card{
    min-height:520px;
  }
}

/* Accesibilidad: movimiento reducido */
@media(prefers-reduced-motion:reduce){
  .gsap-image-reveal,
  .gsap-image-reveal img,
  .horizontal-promotions .promotion-grid,
  .horizontal-promotions .promotion-card,
  .guide-line-fill,
  .site-scroll-progress span,
  .promotions-progress-fill{
    transform:none !important;
    clip-path:none !important;
    opacity:1 !important;
  }
}

/* GSAP EXPERIENCE END */

/* PROMOTIONS COMPLETE CARDS OVERRIDE START */

/*
  El viewport mantiene márgenes reales a ambos lados.
  En escritorio se muestran tres tarjetas completas, sin medias tarjetas.
*/
.horizontal-promotions{
  overflow:hidden !important;
}

.promotions-viewport{
  --promotions-side:
    max(28px,calc((100vw - 1320px) / 2));
  width:100% !important;
  max-width:none !important;
  margin-inline:auto !important;
  padding-left:var(--promotions-side) !important;
  padding-right:var(--promotions-side) !important;
  overflow:hidden !important;
}

.horizontal-promotions .promotion-grid{
  gap:24px !important;
  align-items:stretch !important;
}

.horizontal-promotions .promotion-card{
  width:clamp(
    340px,
    calc(
      (
        100vw
        - (var(--promotions-side) * 2)
        - 48px
      ) / 3
    ),
    420px
  ) !important;
  min-width:clamp(
    340px,
    calc(
      (
        100vw
        - (var(--promotions-side) * 2)
        - 48px
      ) / 3
    ),
    420px
  ) !important;
  max-width:420px !important;
}

/*
  La imagen se muestra completa. Se elimina el zoom y el desplazamiento
  lateral que podían cortar la arquitectura.
*/
.horizontal-promotions .promotion-media{
  aspect-ratio:1.24/1 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  background:#e9e9e7 !important;
}

.horizontal-promotions .promotion-media img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  transform:none !important;
  filter:saturate(.94) contrast(.99) !important;
}

.horizontal-promotions .promotion-card:hover .promotion-media img{
  transform:none !important;
  filter:saturate(1) contrast(1) !important;
}

.horizontal-promotions .state-upcoming .promotion-media img{
  filter:saturate(.50) contrast(.96) brightness(.88) !important;
}

.horizontal-promotions .state-delivered .promotion-media img{
  filter:grayscale(.78) contrast(.94) brightness(1.02) !important;
}

/* Mantener el texto bien contenido dentro de cada tarjeta */
.horizontal-promotions .promotion-copy{
  min-height:218px !important;
}

.horizontal-promotions .promotion-copy h3{
  text-wrap:balance;
}

/* Tablet y móvil mantienen el grid vertical habitual */
@media(max-width:1023px){
  .promotions-viewport{
    --promotions-side:17px;
    padding-left:var(--promotions-side) !important;
    padding-right:var(--promotions-side) !important;
    overflow:visible !important;
  }

  .horizontal-promotions .promotion-card{
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
  }
}

/* PROMOTIONS COMPLETE CARDS OVERRIDE END */

/* PROMOTIONS POLISH OVERRIDE START */
.horizontal-promotions .section-head{
  align-items:end !important;
}
.horizontal-promotions .section-title{
  max-width:760px !important;
  font-size:clamp(2.8rem,5.8vw,4.7rem) !important;
  line-height:.96 !important;
  letter-spacing:-.06em !important;
}
.horizontal-promotions .section-lead{
  max-width:420px !important;
  font-size:1.02rem !important;
  line-height:1.65 !important;
}

.promotions-viewport{
  --promotions-side:max(34px,calc((100vw - 1320px) / 2)) !important;
  overflow:hidden !important;
}
.horizontal-promotions .promotion-grid{
  gap:26px !important;
}
.horizontal-promotions .promotion-card{
  width:clamp(380px,calc((100vw - (var(--promotions-side) * 2) - 52px)/3),420px) !important;
  min-width:clamp(380px,calc((100vw - (var(--promotions-side) * 2) - 52px)/3),420px) !important;
  max-width:420px !important;
  border-radius:22px !important;
  overflow:hidden !important;
  box-shadow:0 20px 55px rgba(0,0,0,.08) !important;
  background:#fff !important;
}
.horizontal-promotions .promotion-card:hover{
  box-shadow:0 26px 65px rgba(0,0,0,.11) !important;
}
.horizontal-promotions .promotion-media{
  aspect-ratio:1.36/1 !important;
  background:#ecebe8 !important;
  border-radius:22px 22px 0 0 !important;
  overflow:hidden !important;
}
.horizontal-promotions .promotion-media img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
}
.horizontal-promotions .promotion-copy{
  min-height:208px !important;
  padding:24px 25px 25px !important;
}
.horizontal-promotions .promotion-copy h3{
  font-size:2rem !important;
  line-height:1.02 !important;
  letter-spacing:-.05em !important;
}
.horizontal-promotions .promotion-meta{
  color:#7f7f7f !important;
  font-size:.70rem !important;
  font-weight:700 !important;
  letter-spacing:.13em !important;
  text-transform:uppercase !important;
}
.horizontal-promotions .promotion-specs{
  color:#777 !important;
}
.horizontal-promotions .text-link{
  margin-top:18px !important;
}

.horizontal-promotions .state-upcoming .promotion-copy h3{
  font-size:1.84rem !important;
}
.horizontal-promotions .state-upcoming .promotion-media{
  background:#111 !important;
}
.horizontal-promotions .state-upcoming .promotion-media img{
  object-fit:cover !important;
  object-position:center center !important;
  filter:saturate(.95) contrast(1.02) !important;
}
.horizontal-promotions .state-upcoming .promotion-meta,
.horizontal-promotions .state-upcoming .promotion-specs{
  color:#8e8e8e !important;
}

@media(max-width:1023px){
  .horizontal-promotions .section-title{
    font-size:clamp(2.35rem,7.8vw,3.7rem) !important;
    max-width:620px !important;
  }
  .horizontal-promotions .promotion-card{
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    border-radius:18px !important;
  }
  .horizontal-promotions .promotion-media{
    border-radius:18px 18px 0 0 !important;
  }
}

@media(max-width:650px){
  .horizontal-promotions .section-title{
    font-size:clamp(2rem,10vw,3rem) !important;
  }
  .horizontal-promotions .promotion-copy h3{
    font-size:1.55rem !important;
  }
}
/* PROMOTIONS POLISH OVERRIDE END */

/* UPCOMING MODAL AND DELIVERED STATES START */

/* Próximamente: debe entenderse de inmediato y ser seleccionable */
.promotion-card.state-upcoming{
  position:relative;
  cursor:pointer;
  border:1px solid rgba(17,17,17,.08);
}
.promotion-card.state-upcoming::after{
  content:"PRÓXIMAMENTE";
  position:absolute;
  z-index:4;
  left:50%;
  top:calc((100% - 208px) / 2);
  transform:translate(-50%,-50%);
  padding:10px 15px;
  border:1px solid rgba(255,255,255,.62);
  border-radius:999px;
  background:rgba(17,17,17,.55);
  color:#fff;
  font-size:.61rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  backdrop-filter:blur(10px);
  pointer-events:none;
}
.promotion-card.state-upcoming .promotion-status{
  border-radius:999px !important;
  padding-inline:13px !important;
  background:#111 !important;
  color:#fff !important;
}
.promotion-card.state-upcoming:focus-visible{
  outline:3px solid rgba(178,41,46,.32);
  outline-offset:5px;
}
.promotion-card.state-upcoming .text-link{
  pointer-events:none;
}

/* Entregadas: blanco y negro, informativas y sin interacción */
.promotion-card.state-delivered{
  cursor:default !important;
  user-select:none;
  background:#f3f3f3 !important;
  box-shadow:none !important;
  border:1px solid #dedede !important;
}
.promotion-card.state-delivered:hover{
  transform:none !important;
  box-shadow:none !important;
}
.promotion-card.state-delivered .promotion-media{
  background:#e7e7e7 !important;
}
.promotion-card.state-delivered .promotion-media img{
  filter:grayscale(1) contrast(.92) brightness(.9) !important;
  opacity:.78 !important;
  transform:none !important;
}
.promotion-card.state-delivered:hover .promotion-media img{
  filter:grayscale(1) contrast(.92) brightness(.9) !important;
  transform:none !important;
}
.promotion-card.state-delivered .promotion-copy{
  color:#777 !important;
}
.promotion-card.state-delivered .promotion-copy h3,
.promotion-card.state-delivered .promotion-location,
.promotion-card.state-delivered .promotion-specs{
  color:#858585 !important;
}
.promotion-card.state-delivered .promotion-status{
  border-radius:999px !important;
  border-color:#8b8b8b !important;
  background:#f5f5f5 !important;
  color:#666 !important;
}
.promotion-card.state-delivered .text-link{
  border:0 !important;
  color:#878787 !important;
  cursor:default !important;
}

/* Modal */
body.upcoming-modal-open{
  overflow:hidden;
}

.upcoming-modal{
  position:fixed;
  z-index:5000;
  inset:0;
  display:grid;
  place-items:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .28s ease,visibility .28s ease;
}

.upcoming-modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.upcoming-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(12,12,12,.74);
  backdrop-filter:blur(8px);
}

.upcoming-modal-dialog{
  position:relative;
  z-index:2;
  width:min(980px,100%);
  max-height:calc(100svh - 48px);
  display:grid;
  grid-template-columns:.86fr 1.14fr;
  overflow:auto;
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  background:#fff;
  box-shadow:0 38px 120px rgba(0,0,0,.35);
  transform:translateY(28px) scale(.985);
  transition:transform .36s cubic-bezier(.2,.75,.2,1);
}

.upcoming-modal.is-open .upcoming-modal-dialog{
  transform:translateY(0) scale(1);
}

.upcoming-modal-close{
  position:absolute;
  z-index:5;
  top:17px;
  right:17px;
  width:43px;
  height:43px;
  display:grid;
  place-items:center;
  border:1px solid rgba(17,17,17,.13);
  border-radius:50%;
  background:rgba(255,255,255,.92);
  color:#111;
  font-size:1.45rem;
  font-weight:300;
  line-height:1;
  box-shadow:0 8px 26px rgba(0,0,0,.08);
}

.upcoming-modal-close:hover{
  background:#111;
  color:#fff;
}

.upcoming-modal-visual{
  position:relative;
  min-height:650px;
  overflow:hidden;
  background:#181412;
}

.upcoming-modal-visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    180deg,
    rgba(0,0,0,.06),
    rgba(0,0,0,.12) 55%,
    rgba(0,0,0,.58)
  );
}

.upcoming-modal-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}

.upcoming-modal-visual > span{
  position:absolute;
  z-index:2;
  left:28px;
  bottom:27px;
  padding:10px 14px;
  border:1px solid rgba(255,255,255,.48);
  border-radius:999px;
  background:rgba(17,17,17,.34);
  color:#fff;
  font-size:.61rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  backdrop-filter:blur(8px);
}

.upcoming-modal-content{
  padding:70px 64px 58px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.upcoming-modal-kicker{
  display:block;
  margin-bottom:17px;
  color:var(--red);
  font-size:.63rem;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
}

.upcoming-modal-content h2{
  margin:0;
  color:#111;
  font-size:clamp(2.45rem,4.6vw,4.65rem);
  font-weight:550;
  line-height:.92;
  letter-spacing:-.065em;
}

.upcoming-modal-content > p{
  max-width:590px;
  margin:22px 0 0;
  color:#6f6f6f;
  font-size:.96rem;
  line-height:1.72;
}

.upcoming-modal-form{
  margin-top:34px;
}

.upcoming-form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:19px;
}

.upcoming-field{
  display:grid;
  gap:8px;
}

.upcoming-field-full{
  grid-column:1/-1;
}

.upcoming-field > span{
  color:#555;
  font-size:.61rem;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.upcoming-field input,
.upcoming-field select{
  width:100%;
  min-height:53px;
  padding:13px 15px;
  border:1px solid #d8d8d8;
  border-radius:8px;
  outline:none;
  background:#fff;
  color:#111;
}

.upcoming-field input:focus,
.upcoming-field select:focus{
  border-color:var(--red);
  box-shadow:0 0 0 3px rgba(178,41,46,.12);
}

.upcoming-privacy{
  margin-top:18px;
  display:flex;
  gap:11px;
  align-items:flex-start;
  color:#777;
  font-size:.70rem;
  line-height:1.5;
}

.upcoming-privacy input{
  margin-top:3px;
  accent-color:var(--red);
}

.upcoming-submit{
  width:100%;
  min-height:53px;
  margin-top:22px;
  border:1px solid #111;
  border-radius:8px;
  background:#111;
  color:#fff;
  font-size:.64rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.upcoming-submit:hover{
  border-color:var(--red);
  background:var(--red);
}

.upcoming-form-success{
  display:none;
  margin:18px 0 0 !important;
  padding:15px 17px;
  border:1px solid #d8dfd8;
  border-radius:8px;
  background:#f2f7f2;
  color:#38543b !important;
  font-size:.79rem !important;
  line-height:1.55 !important;
}

.upcoming-form-success.is-visible{
  display:block;
}

@media(max-width:850px){
  .upcoming-modal{
    padding:12px;
  }

  .upcoming-modal-dialog{
    max-height:calc(100svh - 24px);
    grid-template-columns:1fr;
    border-radius:18px;
  }

  .upcoming-modal-visual{
    min-height:260px;
    max-height:34svh;
  }

  .upcoming-modal-content{
    padding:38px 25px 29px;
  }

  .upcoming-modal-content h2{
    font-size:clamp(2.25rem,10vw,3.5rem);
  }
}

@media(max-width:560px){
  .upcoming-form-grid{
    grid-template-columns:1fr;
  }

  .upcoming-field-full{
    grid-column:auto;
  }

  .upcoming-modal-visual{
    min-height:210px;
  }

  .upcoming-modal-content{
    padding:32px 20px 24px;
  }

  .upcoming-modal-close{
    top:11px;
    right:11px;
    width:39px;
    height:39px;
  }
}

@media(prefers-reduced-motion:reduce){
  .upcoming-modal,
  .upcoming-modal-dialog{
    transition:none;
  }
}

/* UPCOMING MODAL AND DELIVERED STATES END */





/* LEGAL COOKIES UI START */

.footer-legal-links{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px 15px;
  align-items:center;
}

.footer-legal-links a,
.footer-legal-links button{
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-decoration:none;
  cursor:pointer;
}

.footer-legal-links a:hover,
.footer-legal-links button:hover{
  color:#fff;
}

/* Consentimiento */
.cookie-consent{
  position:fixed;
  z-index:8800;
  left:22px;
  right:22px;
  bottom:22px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(18px);
  transition:
    opacity .28s ease,
    transform .28s ease,
    visibility .28s ease;
}

.cookie-consent.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:none;
}

.cookie-consent-inner{
  width:min(1180px,100%);
  margin:0 auto;
  padding:23px 25px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:34px;
  align-items:center;
  border:1px solid rgba(255,255,255,.14);
  border-radius:16px;
  background:#181818;
  color:#fff;
  box-shadow:0 28px 90px rgba(0,0,0,.28);
}

.cookie-kicker{
  display:block;
  margin-bottom:8px;
  color:#d06064;
  font-size:.59rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.cookie-consent h2{
  margin:0;
  color:#fff;
  font-size:1.35rem;
  font-weight:560;
  letter-spacing:-.035em;
}

.cookie-consent p{
  max-width:760px;
  margin:10px 0 0;
  color:rgba(255,255,255,.67);
  font-size:.75rem;
  line-height:1.6;
}

.cookie-consent p a{
  color:#fff;
  text-underline-offset:3px;
}

.cookie-consent-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}

.cookie-btn{
  min-height:43px;
  padding:0 15px;
  border-radius:7px;
  font-size:.59rem;
  font-weight:800;
  letter-spacing:.105em;
  text-transform:uppercase;
  cursor:pointer;
}

.cookie-btn-primary{
  border:1px solid #fff;
  background:#fff;
  color:#111;
}

.cookie-btn-secondary{
  border:1px solid rgba(255,255,255,.23);
  background:transparent;
  color:#fff;
}

/* Configuración */
body.cookie-settings-open{
  overflow:hidden;
}

.cookie-settings-modal{
  position:fixed;
  z-index:8900;
  inset:0;
  display:grid;
  place-items:center;
  padding:20px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .24s ease,visibility .24s ease;
}

.cookie-settings-modal.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.cookie-settings-backdrop{
  position:absolute;
  inset:0;
  background:rgba(10,10,10,.72);
  backdrop-filter:blur(8px);
}

.cookie-settings-dialog{
  position:relative;
  z-index:2;
  width:min(620px,100%);
  max-height:calc(100svh - 40px);
  overflow:auto;
  padding:42px 40px 34px;
  border-radius:18px;
  background:#fff;
  box-shadow:0 35px 110px rgba(0,0,0,.32);
}

.cookie-settings-close{
  position:absolute;
  top:14px;
  right:14px;
  width:38px;
  height:38px;
  border:1px solid #ddd;
  border-radius:50%;
  background:#fff;
  color:#111;
  font-size:1.25rem;
  cursor:pointer;
}

.cookie-settings-dialog h2{
  margin:8px 0 0;
  color:#111;
  font-size:clamp(2rem,5vw,3.3rem);
  font-weight:540;
  line-height:.96;
  letter-spacing:-.055em;
}

.cookie-settings-dialog>p{
  margin:17px 0 0;
  color:#777;
  font-size:.84rem;
  line-height:1.65;
}

.cookie-options{
  margin-top:26px;
  display:grid;
  border-top:1px solid #e3e3e3;
}

.cookie-option{
  min-height:86px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  border-bottom:1px solid #e3e3e3;
}

.cookie-option>span{
  display:grid;
  gap:5px;
}

.cookie-option strong{
  color:#111;
  font-size:.84rem;
}

.cookie-option small{
  max-width:440px;
  color:#888;
  font-size:.68rem;
  line-height:1.45;
}

.cookie-option input{
  width:19px;
  height:19px;
  accent-color:#b2292e;
}

.cookie-option.is-required input{
  opacity:.45;
}

.cookie-settings-actions{
  margin-top:28px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
}

.cookie-settings-actions>a{
  color:#777;
  font-size:.67rem;
  text-underline-offset:3px;
}

.cookie-settings-actions .cookie-btn-primary{
  border-color:#111;
  background:#111;
  color:#fff;
}

/* Cuando aparece el consentimiento no dejamos que el popup lateral se solape. */
.cookie-consent.is-visible ~ .lvpo-floating-banner{
  bottom:150px;
}

@media(max-width:760px){
  .footer-bottom{
    align-items:flex-start;
  }

  .footer-legal-links{
    justify-content:flex-start;
  }

  .cookie-consent{
    left:10px;
    right:10px;
    bottom:10px;
  }

  .cookie-consent-inner{
    grid-template-columns:1fr;
    gap:18px;
    padding:20px;
  }

  .cookie-consent-actions{
    justify-content:stretch;
  }

  .cookie-btn{
    flex:1 1 auto;
  }

  .cookie-settings-dialog{
    padding:37px 22px 24px;
  }

  .cookie-settings-actions{
    align-items:stretch;
    flex-direction:column;
  }

  .cookie-settings-actions .cookie-btn{
    width:100%;
  }
}

/* LEGAL COOKIES UI END */

/* FIXED BRAND EDITORIAL START */

/* ============================================================
   Banderola Grupo Q · derecha
   ============================================================ */
.gq-side-tab{
  position:fixed !important;
  z-index:7600;
  top:35%;
  right:0;
  width:46px;
  height:160px;
  display:block;
  padding:5px;
  box-sizing:border-box;
  border-radius:15px 0 0 15px;
  background:#f5a70a;
  text-decoration:none;
  box-shadow:
    -8px 12px 30px rgba(0,0,0,.10),
    -2px 4px 10px rgba(0,0,0,.08);
  transform:translateX(0);
  transition:
    width .28s cubic-bezier(.2,.8,.2,1),
    transform .28s ease,
    box-shadow .28s ease;
}

.gq-side-tab-frame{
  width:100%;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  box-sizing:border-box;
  border:1px dashed rgba(255,255,255,.52);
  border-radius:10px 0 0 10px;
}

.gq-side-tab img{
  display:block;
  width:25px;
  height:25px;
  object-fit:contain;
  transform:rotate(90deg);
  filter:contrast(1.08);
}

.gq-side-tab:hover{
  width:53px;
  box-shadow:
    -12px 16px 36px rgba(0,0,0,.14),
    -3px 6px 13px rgba(0,0,0,.08);
}

.gq-side-tab:focus-visible{
  outline:3px solid rgba(245,167,10,.28);
  outline-offset:4px;
}


/* ============================================================
   Firma editorial · izquierda
   Referencia visual: cartelería editorial / museo / magazine.
   ============================================================ */
.living-editorial-signature{
  position:fixed;
  z-index:7200;
  top:50%;
  left:18px;

  display:flex;
  align-items:center;
  gap:13px;

  color:#1d1d1d;
  pointer-events:none;
  user-select:none;

  writing-mode:vertical-rl;
  transform:translateY(-50%) rotate(180deg);

  opacity:.78;
}

.living-editorial-copy{
  font-family:"Inter",Arial,sans-serif;
  font-size:.59rem;
  font-weight:650;
  line-height:1;
  letter-spacing:.16em;
  text-transform:uppercase;
  white-space:nowrap;
}

.living-editorial-rule{
  width:1px;
  height:74px;
  display:block;
  background:linear-gradient(
    180deg,
    rgba(178,41,46,0),
    rgba(178,41,46,.84) 22%,
    rgba(178,41,46,.84) 78%,
    rgba(178,41,46,0)
  );
}

.living-editorial-year{
  font-family:"Inter",Arial,sans-serif;
  color:#8b8b8b;
  font-size:.58rem;
  font-weight:500;
  line-height:1;
  letter-spacing:.14em;
}

/*
  La firma gana presencia en hero/zonas oscuras si la cabecera
  aún no ha pasado a estado sólido, pero sin cambiar de color
  mediante JavaScript.
*/
@supports (mix-blend-mode:difference){
  .living-editorial-signature{
    color:#fff;
    mix-blend-mode:difference;
    opacity:.68;
  }

  .living-editorial-year{
    color:rgba(255,255,255,.68);
  }
}

/*
  Cookies y modales deben quedar por encima de estos elementos.
  Sus z-index actuales (8800/8900) ya son superiores.
*/

/* Portátiles estrechos */
@media(max-width:1320px){
  .living-editorial-signature{
    left:10px;
  }

  .gq-side-tab{
    width:43px;
    height:148px;
  }
}

/* Tablet y móvil: la firma editorial se oculta para no ocupar
   espacio de lectura. La banderola se mantiene pero más pequeña. */
@media(max-width:900px){
  .living-editorial-signature{
    display:none;
  }

  .gq-side-tab{
    top:42%;
    width:39px;
    height:126px;
    padding:4px;
    border-radius:12px 0 0 12px;
  }

  .gq-side-tab-frame{
    border-radius:8px 0 0 8px;
  }

  .gq-side-tab img{
    width:22px;
    height:22px;
  }

  .gq-side-tab:hover{
    width:43px;
  }
}

@media(max-width:520px){
  .gq-side-tab{
    width:36px;
    height:112px;
  }

  .gq-side-tab img{
    width:20px;
    height:20px;
  }
}

/* FIXED BRAND EDITORIAL END */



/* FINAL VISUAL CORRECTIONS START */

/* ============================================================
   HERO — evitar solapes entre título, subtítulo y CTA
   ============================================================ */
.hero.hero-cinematic{
  min-height:620px !important;
}

.hero-cinematic-content.hero-content-clean{
  top:50% !important;
  width:min(1120px,calc(100% - 72px)) !important;
  transform:translate(-50%,-46%) !important;
  gap:0 !important;
}

.hero-cinematic-title{
  width:100% !important;
  max-width:1080px !important;
  margin:0 auto !important;
  font-size:clamp(3.35rem,6.15vw,7.2rem) !important;
  line-height:.91 !important;
  letter-spacing:-.068em !important;
}

.hero-cinematic-title span{
  line-height:inherit !important;
}

.hero-cinematic-subtitle{
  position:relative !important;
  display:block !important;
  max-width:650px !important;
  margin:32px auto 0 !important;
  padding:0 !important;
  font-size:clamp(.88rem,1.05vw,1.03rem) !important;
  line-height:1.55 !important;
  z-index:2 !important;
}

.hero-cinematic-link{
  margin-top:26px !important;
}

/* Portátil de poca altura: aún más compacto */
@media(max-height:760px) and (min-width:701px){
  .hero.hero-cinematic{
    min-height:560px !important;
  }

  .hero-cinematic-content.hero-content-clean{
    transform:translate(-50%,-44%) !important;
  }

  .hero-cinematic-title{
    font-size:clamp(3rem,5.4vw,6rem) !important;
    line-height:.92 !important;
  }

  .hero-cinematic-subtitle{
    margin-top:24px !important;
    font-size:.88rem !important;
  }

  .hero-cinematic-link{
    margin-top:20px !important;
  }
}

@media(max-width:700px){
  .hero-cinematic-content.hero-content-clean{
    width:calc(100% - 34px) !important;
  }

  .hero-cinematic-title{
    font-size:clamp(2.8rem,13vw,4.5rem) !important;
    line-height:.94 !important;
  }

  .hero-cinematic-subtitle{
    max-width:90% !important;
    margin-top:23px !important;
  }
}


/* ============================================================
   GRUPO Q — composición editorial compacta
   ============================================================ */
.group-section{
  padding-top:105px !important;
  padding-bottom:105px !important;
}

.group-editorial-head{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.65fr);
  gap:72px;
  align-items:end;
  margin-bottom:42px;
}

.group-editorial-head .section-title{
  max-width:800px;
  margin-bottom:0;
  font-size:clamp(3.1rem,5.4vw,6rem);
  line-height:.93;
  letter-spacing:-.065em;
}

.group-editorial-head .section-lead{
  max-width:480px;
  margin:0 0 5px auto;
  font-size:.94rem;
  line-height:1.68;
}

.group-layout{
  display:grid !important;
  grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr) !important;
  gap:34px !important;
  align-items:stretch !important;
}

.group-visual{
  position:relative !important;
  min-height:0 !important;
  height:auto !important;
  aspect-ratio:1.48 / 1 !important;
  overflow:hidden !important;
  background:#ecebea;
}

.group-visual > img{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
}

.group-badge{
  left:20px !important;
  right:auto !important;
  bottom:20px !important;
  width:min(245px,calc(100% - 40px)) !important;
  padding:20px 22px !important;
  background:rgba(255,255,255,.96) !important;
  backdrop-filter:blur(8px);
}

.group-badge strong{
  font-size:2.15rem !important;
}

.group-values{
  display:grid !important;
  grid-template-columns:1fr !important;
  grid-template-rows:repeat(3,1fr) !important;
  margin-top:0 !important;
  border-top:1px solid var(--line) !important;
  border-left:1px solid var(--line) !important;
  min-height:100% !important;
}

.group-value{
  min-height:0 !important;
  padding:24px 26px !important;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.group-value span{
  margin-bottom:13px !important;
}

.group-value h3{
  font-size:1.08rem !important;
}

.group-value p{
  margin-top:7px !important;
  font-size:.80rem !important;
  line-height:1.55 !important;
}

@media(max-width:1050px){
  .group-editorial-head{
    grid-template-columns:1fr;
    gap:22px;
  }

  .group-editorial-head .section-lead{
    margin-left:0;
  }

  .group-layout{
    grid-template-columns:1fr !important;
  }

  .group-visual{
    aspect-ratio:16 / 9 !important;
  }

  .group-values{
    grid-template-columns:repeat(3,1fr) !important;
    grid-template-rows:1fr !important;
  }
}

@media(max-width:700px){
  .group-section{
    padding-top:78px !important;
    padding-bottom:78px !important;
  }

  .group-editorial-head .section-title{
    font-size:clamp(2.5rem,11vw,4rem);
  }

  .group-values{
    grid-template-columns:1fr !important;
    grid-template-rows:auto !important;
  }
}


/* ============================================================
   PRENSA — título simple
   ============================================================ */
.press-section .section-head .section-title{
  max-width:720px;
}


/* ============================================================
   FOOTER — logo real de Living VPO
   ============================================================ */
.footer-grid{
  grid-template-columns:1.15fr 1fr 1fr 1fr !important;
  align-items:start !important;
  gap:46px !important;
}

.footer-brand-logo{
  grid-column:auto !important;
  display:flex;
  align-items:flex-start;
  padding-right:30px;
}

.footer-brand-logo a{
  display:inline-block;
}

.footer-brand-logo img{
  display:block;
  width:min(210px,100%) !important;
  height:auto !important;
}

.site-footer > .container > p{
  max-width:510px !important;
  margin-top:28px !important;
}

@media(max-width:950px){
  .footer-grid{
    grid-template-columns:1fr 1fr !important;
  }

  .footer-brand-logo{
    grid-column:1/-1 !important;
    padding-right:0;
    margin-bottom:8px;
  }

  .footer-brand-logo img{
    width:160px !important;
  }
}

@media(max-width:580px){
  .footer-grid{
    grid-template-columns:1fr !important;
  }

  .footer-brand-logo{
    grid-column:auto !important;
  }

  .footer-brand-logo img{
    width:150px !important;
  }
}

/* FINAL VISUAL CORRECTIONS END */

/* PLAN STORY STABLE START */
.portada-story-section{
  --plan-header:68px;
  --plan-note:46px;
  position:relative;
  height:300svh;
  min-height:2400px;
  padding:0 !important;
  border-top:1px solid var(--line);
  background:#fff;
  overflow:visible !important;
}
.portada-story-container{position:relative;height:100%}
.portada-story-pin{
  position:sticky !important;
  top:var(--plan-header) !important;
  width:100%;
  height:calc(100svh - var(--plan-header));
  min-height:0 !important;
  display:grid;
  grid-template-columns:minmax(360px,.72fr) minmax(540px,1.28fr);
  grid-template-rows:1fr var(--plan-note);
  column-gap:42px;
  row-gap:0;
  align-items:center;
  padding:12px 0 0;
  overflow:visible !important;
  transform:none !important;
}
.portada-story-copy{
  position:relative;
  z-index:10;
  grid-column:1;
  grid-row:1;
  align-self:center;
  max-height:calc(100svh - var(--plan-header) - var(--plan-note) - 28px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding-right:12px;
}
.portada-story-copy .eyebrow{margin:0}
.portada-story-copy .section-title{
  max-width:520px !important;
  margin:16px 0 0 !important;
  font-size:clamp(2.15rem,3.05vw,3.35rem) !important;
  font-weight:520 !important;
  line-height:.96 !important;
  letter-spacing:-.058em !important;
  text-wrap:balance;
}
.portada-story-copy .section-lead{
  max-width:475px !important;
  margin:18px 0 0 !important;
  color:#777;
  font-size:.82rem !important;
  line-height:1.62 !important;
}
.portada-plan-stage{
  position:relative;
  z-index:4;
  grid-column:2;
  grid-row:1;
  width:100%;
  height:calc(100svh - var(--plan-header) - var(--plan-note) - 26px);
  min-height:0 !important;
  display:grid;
  place-items:center;
  overflow:visible !important;
}
.portada-floor{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .42s ease,visibility .42s ease;
}
.portada-floor.is-active{opacity:1;visibility:visible;pointer-events:auto}
.portada-plan-wrap{
  position:relative;
  width:min(100%,620px);
  height:100%;
  display:grid;
  place-items:center;
  overflow:visible;
}
.portada-plan-open{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  background:transparent;
  cursor:zoom-in;
}
.portada-plan-open img{
  display:block;
  width:auto !important;
  height:auto !important;
  max-width:min(100%,560px) !important;
  max-height:calc(100svh - var(--plan-header) - var(--plan-note) - 42px) !important;
  object-fit:contain !important;
  object-position:center center !important;
  transform:none !important;
  filter:
    drop-shadow(0 16px 14px rgba(0,0,0,.08))
    drop-shadow(0 34px 28px rgba(0,0,0,.11))
    drop-shadow(0 58px 48px rgba(0,0,0,.055));
}
.portada-plan-open:focus-visible{outline:2px solid var(--red);outline-offset:9px}
.portada-callout{
  position:absolute;
  z-index:8;
  top:var(--y);
  padding:8px 10px;
  border:1px solid rgba(17,17,17,.12);
  background:rgba(255,255,255,.97);
  box-shadow:0 10px 22px rgba(0,0,0,.045);
  color:#111;
  font-size:.53rem;
  font-weight:750;
  line-height:1.2;
  letter-spacing:.085em;
  text-transform:uppercase;
  white-space:nowrap;
  opacity:0;
  transform:translateY(7px);
}
.portada-floor.is-active .portada-callout{
  opacity:1;
  transform:none;
  transition:opacity .30s ease .13s,transform .30s ease .13s;
}
.portada-callout::after{
  content:"";
  position:absolute;
  top:50%;
  width:var(--line);
  height:1px;
  background:#aaa;
}
.portada-callout::before{
  content:"";
  position:absolute;
  top:calc(50% - 2px);
  width:5px;
  height:5px;
  border-radius:50%;
  background:#999;
}
.portada-callout.is-left{right:calc(100% + 16px)}
.portada-callout.is-left::after{left:100%}
.portada-callout.is-left::before{left:calc(100% + var(--line) - 2px)}
.portada-callout.is-right{left:calc(100% + 16px)}
.portada-callout.is-right::after{right:100%}
.portada-callout.is-right::before{right:calc(100% + var(--line) - 2px)}
.portada-zoom-hint{
  position:absolute;
  z-index:9;
  right:0;
  bottom:2px;
  color:#aaa;
  font-size:.54rem;
  font-weight:750;
  letter-spacing:.12em;
  text-transform:uppercase;
  pointer-events:none;
}
.portada-source-note.is-pinned-note{
  position:relative !important;
  grid-column:1 / -1;
  grid-row:2;
  align-self:end;
  width:100%;
  max-width:none !important;
  margin:0 !important;
  padding:11px 0 0 !important;
  border-top:1px solid var(--line);
  background:#fff;
  color:#989898 !important;
  font-size:.56rem !important;
  line-height:1.45 !important;
}
.portada-source-note.is-pinned-note a{
  color:#666;
  text-decoration:underline;
  text-underline-offset:2px;
}
body.portada-lightbox-open{overflow:hidden}
.portada-lightbox{
  position:fixed;
  z-index:9500;
  inset:0;
  display:grid;
  place-items:center;
  padding:16px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease,visibility .22s ease;
}
.portada-lightbox.is-open{opacity:1;visibility:visible;pointer-events:auto}
.portada-lightbox-backdrop{
  position:absolute;
  inset:0;
  background:rgba(8,8,8,.91);
  backdrop-filter:blur(8px);
}
.portada-lightbox-dialog{
  position:relative;
  z-index:2;
  width:min(1280px,97vw);
  height:min(96svh,1040px);
  display:grid;
  place-items:center;
}
.portada-lightbox-image{
  width:auto;
  height:auto;
  max-width:94%;
  max-height:92svh;
  object-fit:contain;
  filter:
    drop-shadow(0 24px 22px rgba(0,0,0,.28))
    drop-shadow(0 60px 52px rgba(0,0,0,.20));
}
.portada-lightbox-close{
  position:absolute;
  z-index:4;
  top:4px;
  right:4px;
  width:46px;
  height:46px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:50%;
  background:rgba(17,17,17,.70);
  color:#fff;
  font-size:1.5rem;
}
.portada-lightbox-caption{
  position:absolute;
  z-index:4;
  top:16px;
  left:5px;
  color:rgba(255,255,255,.78);
  font-size:.61rem;
  font-weight:750;
  letter-spacing:.13em;
  text-transform:uppercase;
}
@media(max-height:780px) and (min-width:921px){
  .portada-story-section{--plan-header:64px;--plan-note:44px}
  .portada-story-pin{
    grid-template-columns:minmax(330px,.74fr) minmax(500px,1.26fr);
    column-gap:30px;
    padding-top:8px;
  }
  .portada-story-copy .section-title{
    max-width:460px !important;
    font-size:clamp(1.92rem,2.65vw,2.78rem) !important;
  }
  .portada-story-copy .section-lead{
    max-width:435px !important;
    margin-top:13px !important;
    font-size:.73rem !important;
    line-height:1.5 !important;
  }
  .portada-plan-wrap{width:min(100%,560px)}
  .portada-plan-open img{
    max-width:min(100%,500px) !important;
    max-height:calc(100svh - var(--plan-header) - var(--plan-note) - 34px) !important;
  }
  .portada-callout{font-size:.49rem;padding:7px 8px}
  .portada-source-note.is-pinned-note{font-size:.51rem !important}
}
@media(max-width:920px){
  .portada-story-section{
    height:auto;
    min-height:0;
    padding:82px 0 !important;
  }
  .portada-story-container{height:auto}
  .portada-story-pin{
    position:relative !important;
    top:auto !important;
    height:auto;
    min-height:0;
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
    gap:28px;
    padding:0;
  }
  .portada-story-copy{
    grid-column:1;
    grid-row:1;
    max-height:none;
    padding:0;
  }
  .portada-story-copy .section-title{max-width:680px !important}
  .portada-plan-stage{
    grid-column:1;
    grid-row:2;
    position:relative;
    height:min(68svh,640px);
    min-height:500px;
  }
  .portada-plan-wrap{width:100%;height:100%}
  .portada-plan-open img{max-width:86vw !important;max-height:100% !important}
  .portada-callout{display:none}
  .portada-source-note.is-pinned-note{
    grid-column:1;
    grid-row:3;
    padding-top:15px !important;
  }
}
@media(max-width:580px){
  .portada-story-section{padding:68px 0 !important}
  .portada-story-copy .section-title{
    font-size:clamp(2.25rem,10.5vw,3.5rem) !important;
  }
  .portada-plan-stage{
    height:min(58svh,500px);
    min-height:410px;
  }
  .portada-plan-open img{max-width:90vw !important}
}
/* PLAN STORY STABLE END */


/* DELIVERED PROMOTIONS BRAND CARDS START */
.promotion-card.promo-delivered-brand.state-delivered{
  overflow:hidden;
}
.promotion-card.promo-delivered-brand.state-delivered .promotion-media.delivered-logo-media{
  position:relative;
  display:block;
  min-height:208px;
  background:#0c0c0c !important;
  overflow:hidden;
}
.promotion-card.promo-delivered-brand .delivered-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:grayscale(.08) saturate(.85) contrast(1.02);
  opacity:1 !important;
}
.promotion-card.promo-delivered-brand .delivered-overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.80);
}
.promotion-card.promo-delivered-brand .delivered-brand-wrap{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  z-index:2;
}
.promotion-card.promo-delivered-brand .delivered-brand-logo{
  display:block;
  max-width:64%;
  max-height:58%;
  object-fit:contain;
  filter:none !important;
  opacity:1 !important;
}
.promotion-card.promo-delivered-brand .delivered-brand-text{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  color:#fff;
  text-align:center;
  font-weight:800;
  letter-spacing:-.03em;
  line-height:.95;
  text-transform:uppercase;
}
.promotion-card.promo-delivered-brand .delivered-brand-text span:first-child{
  font-size:clamp(1.6rem,2vw,2.2rem);
}
.promotion-card.promo-delivered-brand .delivered-brand-text span:last-child{
  font-size:clamp(1.15rem,1.55vw,1.55rem);
  letter-spacing:.04em;
}
.promotion-card.promo-delivered-brand.state-delivered .promotion-media img.delivered-bg,
.promotion-card.promo-delivered-brand.state-delivered:hover .promotion-media img.delivered-bg{
  transform:none !important;
}
.promotion-card.promo-delivered-brand.state-delivered .promotion-copy h3{
  color:#4d4d4d !important;
}
.promotion-card.promo-delivered-brand.state-delivered .promotion-location,
.promotion-card.promo-delivered-brand.state-delivered .promotion-specs,
.promotion-card.promo-delivered-brand.state-delivered .text-link{
  color:#7f7f7f !important;
}
/* DELIVERED PROMOTIONS BRAND CARDS END */

/* AVISAME MODAL POLISH START */

.upcoming-modal-dialog{
  width:min(920px,100%) !important;
  border-radius:32px !important;
  overflow:hidden !important;
  border:1px solid rgba(17,17,17,.08) !important;
  box-shadow:0 42px 130px rgba(0,0,0,.34) !important;
}

.upcoming-modal-visual{
  overflow:hidden !important;
  border-radius:32px 0 0 32px !important;
}

.upcoming-modal-content{
  padding:64px 58px 54px !important;
}

.upcoming-modal-close{
  border-radius:50% !important;
}

.upcoming-field input,
.upcoming-field select{
  border-radius:14px !important;
  min-height:55px !important;
}

.upcoming-submit{
  border-radius:999px !important;
  min-height:51px !important;
  padding-inline:24px !important;
}

.upcoming-modal-content h2{
  max-width:570px;
  font-size:clamp(2.35rem,4.25vw,4.25rem) !important;
}

.upcoming-modal-content > p{
  max-width:545px;
}

.registration-section .button.js-upcoming-trigger,
.site-header .button.js-upcoming-trigger{
  cursor:pointer;
}

@media(max-width:760px){
  .upcoming-modal-dialog{
    border-radius:24px !important;
  }

  .upcoming-modal-visual{
    border-radius:24px 24px 0 0 !important;
  }

  .upcoming-modal-content{
    padding:38px 24px 28px !important;
  }

  .upcoming-field input,
  .upcoming-field select{
    border-radius:12px !important;
  }
}

/* AVISAME MODAL POLISH END */


/* AJUSTE ESPECÍFICO SOLO PARA LOS LOGOS DE LAS CARDS ENTREGADAS */
.promotion-card.promo-delivered-brand .delivered-brand-wrap{
  position:absolute !important;
  inset:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:38px 42px !important;
  overflow:hidden !important;
}

.promotion-card.promo-delivered-brand .delivered-brand-logo{
  width:auto !important;
  height:auto !important;
  object-fit:contain !important;
  object-position:center center !important;
}

/* Logo AIRES DEL ALJARAFE */
.promotion-card.promo-delivered-brand .delivered-brand-logo[src*="aires-del-aljarafe-logo.png"]{
  max-width:44% !important;
  max-height:34% !important;
}

/* Logo EDIFICIO PUERTA AL MAR */
.promotion-card.promo-delivered-brand .delivered-brand-logo[src*="edificio-puerta-al-mar-logo.jpg"]{
  max-width:40% !important;
  max-height:34% !important;
}

@media(max-width:1023px){
  .promotion-card.promo-delivered-brand .delivered-brand-wrap{
    padding:32px 34px !important;
  }

  .promotion-card.promo-delivered-brand .delivered-brand-logo[src*="aires-del-aljarafe-logo.png"]{
    max-width:42% !important;
    max-height:32% !important;
  }

  .promotion-card.promo-delivered-brand .delivered-brand-logo[src*="edificio-puerta-al-mar-logo.jpg"]{
    max-width:38% !important;
    max-height:32% !important;
  }
}

@media(max-width:650px){
  .promotion-card.promo-delivered-brand .delivered-brand-wrap{
    padding:28px 30px !important;
  }

  .promotion-card.promo-delivered-brand .delivered-brand-logo[src*="aires-del-aljarafe-logo.png"]{
    max-width:40% !important;
    max-height:30% !important;
  }

  .promotion-card.promo-delivered-brand .delivered-brand-logo[src*="edificio-puerta-al-mar-logo.jpg"]{
    max-width:36% !important;
    max-height:30% !important;
  }
}
