/* 
  Special Tours – Estilos
  Autor y Desarrollo: Indesigners Estudio Creativo
  Web: www.indesigners.es
  Año: 2026
*/


@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;700;800;900&display=swap");
:root{
  --red:#d40f34;
  --gray:#666666;
  --gray-soft:#ececec;
  --text:#151515;
  --white:#ffffff;
  --border:1px solid var(--red);
  --border-gray:1px solid var(--gray);
  --border-gray-soft:1px solid var(--gray-soft);
  --radius:999px;
  --container:1320px;
  --shadow:0 18px 40px rgba(0,0,0,.12);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: Montserrat, sans-serif; font-weight: 400;
  color:var(--text);
}
img{max-width:100%;display:block}
button,a{font:inherit}
a{text-decoration:none;color:inherit}
.container{width:min(calc(100% - 48px), var(--container)); margin-inline:auto}

.topbar{
  position:sticky;
  top:0;
  z-index:1000;
  height:56px;
  background:var(--red);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 28px rgba(0,0,0,.12);
}
.topbar__logo img{
  height:30px;
  width:auto;
  filter: brightness(0) invert(1);
}

.hero{
  position:relative;
  min-height:calc(100svh - 56px);
  display:flex;
  align-items:center;
  overflow:hidden;
  transition:min-height .9s var(--ease);
}
body.is-compact .hero{
  min-height:400px;
}
.hero__bg,
.hero__overlay{
  position:absolute;
  inset:0;
}
.hero__bg{
  background-image:url("../graficos/hero.jpg");
  background-size:cover;
  background-position:center center;
  transform:scale(1.04);
  transition:transform 1.2s var(--ease), background-position .2s linear;
  will-change:transform, background-position;
}

.hero__bg::before,
.hero__bg::after{
  content:"";
  position:absolute;
  inset:-80px 0 0;
  pointer-events:none;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.86) 0 .8px, transparent 1.4px),
    radial-gradient(circle, rgba(255,255,255,.64) 0 .65px, transparent 1.2px),
    radial-gradient(circle, rgba(255,255,255,.42) 0 1px, transparent 1.6px);
  background-size:76px 96px, 124px 152px, 184px 218px;
  background-position:0 -40px, 44px -88px, 120px -132px;
  animation: heroSnowFall 18s linear infinite;
}

.hero__bg::after{
  opacity:.52;
  filter:blur(.35px);
  background-size:104px 132px, 166px 198px, 240px 276px;
  background-position:58px -120px, 112px -42px, 190px -176px;
  animation-duration:28s;
}
body.is-compact .hero__bg{transform:scale(1.08)}
.hero__overlay{
  background:
    linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.22) 30%, rgba(0,0,0,.54) 100%);
}
.hero__content{
  position:relative;
  z-index:2;
  width:100%;
  text-align:center;
  padding-block:64px;
}
.hero__eyebrow{
  margin:0 0 28px;
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size:clamp(30px,3vw,40px);
  line-height:1;
  color:#fff;
}
.hero__eyebrow,
.origins{
  position:relative;
  z-index:4;
}

.hero__eyebrow{
  margin:24px 0 22px;
  animation:heroTextIn 1s ease-out .2s both;
}

.origins{
  animation:heroButtonsIn 1s ease-out .35s both;
}
@keyframes heroIntroIn{
  from{
    opacity:0;
    transform:translateY(26px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@keyframes heroTextIn{
  from{
    opacity:0;
    transform:translateY(20px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@keyframes heroButtonsIn{
  from{
    opacity:0;
    transform:translateY(28px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

.origins{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  justify-content:center;
  max-width:1100px;
  margin:0 auto;
}
.origin-btn{
  min-width:120px;
  padding:10px 22px 10px 22px;
  border-radius:999px;
  border:1px solid var(--red);
  background:#fff;
  color:var(--red);
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size:18px;
  cursor:pointer;
  transition:transform .28s var(--ease), background-color .28s var(--ease), color .28s var(--ease), box-shadow .28s var(--ease);
}
.origin-btn:hover,
.origin-btn.is-active{
  background:var(--red);
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(212,15,52,.22);
}
.filters{
  margin-top:24px;
  position:relative;
  display:flex;
  justify-content:center;
}
.destination-trigger{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-width:min(420px, 90vw);
  padding:16px 22px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.65);
  background:rgba(255,255,255,.12);
  color:#fff;
  backdrop-filter: blur(12px);
  cursor:pointer;
  transition:opacity .28s var(--ease), transform .28s var(--ease), background-color .28s var(--ease);
}
.destination-trigger:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.destination-trigger:not(:disabled):hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.18);
}
.destination-trigger__chevron{
  width:11px;
  height:11px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
}
.destination-menu{
  position:absolute;
  top:calc(100% + 12px);
  width:min(420px, 90vw);
  background:#fff;
  border:var(--border);
  border-radius:26px;
  padding:12px;
  display:none;
  box-shadow:var(--shadow);
}
.destination-menu.is-open{display:grid;gap:8px; z-index: 15;}
.destination-option{
  border:0;
  background:#fff;
  color:var(--red);
  text-align:left;
  padding:12px 16px;
  border-radius:18px;
  cursor:pointer;
  transition:background-color .2s ease, color .2s ease;
}
.destination-option:hover,
.destination-option.is-active{
  background:var(--red);
  color:#fff;
}

.main-content.has-results .results-head {
  padding-block:48px 78px;
}
.main-content.has-results .cards-grid{
  margin-bottom:80px;
}
.results-grid:empty + .results-head{
  padding-block:0;
}


.results-head{
  margin-bottom:24px;
}
.results-head__kicker{
  margin:0 0 8px;
  color:var(--gray);
  font-size:15px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.results-head h1{
  margin:0;
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size:clamp(28px, 3vw, 40px);
  color:var(--red);
}

.cards-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:28px;
}
.card{
  background:#fff;
  border:var(--border);
  display:grid;
  grid-template-columns:220px 1fr;
  min-height:450px;
  position:relative;
  overflow:hidden;
}
.card__media{
  position:relative;
  min-height:100%;
  overflow:hidden;
}
.card__media > img:not(.card__brand-logo){
  width:100%;
  height:100%;
  object-fit:cover;
}

.card__media::before,
.card__media::after{
  content:"";
  position:absolute;
  inset:-40px 0 0;
  z-index:1;
  pointer-events:none;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.85) 0 .7px, transparent 1.2px),
    radial-gradient(circle, rgba(255,255,255,.65) 0 .6px, transparent 1.1px),
    radial-gradient(circle, rgba(255,255,255,.45) 0 .9px, transparent 1.4px);
  background-size:58px 74px, 94px 118px, 136px 158px;
  background-position:0 0, 34px -20px, 82px -46px;
  animation: cardSnowFall 13s linear infinite;
}

.card__media::after{
  inset:-70px 0 0;
  opacity:.38;
  filter:blur(.3px);
  background-size:82px 104px, 124px 148px, 170px 196px;
  background-position:22px -60px, 70px -12px, 118px -92px;
  animation-duration:20s;
}


.card__body {
  display: flex;
  flex-direction: column;
  height: 100%;
}

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

.card__media .card__brand-logo{
  position:absolute;
  top:30px;
  right:30px;
  width:250px;
  height:auto;
  object-fit:contain;
  object-position:center;
  z-index:2;
  pointer-events:none;
}

@keyframes cardSnowFall{
  to{
    background-position:0 220px, 34px 280px, 82px 340px;
  }
}

.tab-btn{
  height:80px;
  padding:18px 20px;
  border:0;
  border-bottom:var(--border);
  border-top:var(--border);
  background:#fff;
  color:var(--red);
  text-align:left;
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size:18px;
  cursor:pointer;
  transition:background-color .22s var(--ease), color .22s var(--ease);
}
.tab-btn + .tab-btn{border-left:var(--border)}
.tab-btn:hover{
  background:var(--red);
  color:#fff;
}
.card__content{
  padding:24px 26px 0;
  min-width:0;
  display:grid;
  grid-template-rows:auto auto auto auto;
}
.card__head-row{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:start;
  gap:18px;
}

.card__badges,
.card__cta-row{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}

.card__cta-row{
  padding:0;
}
.badge{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:8px 14px;
  border:var(--border-gray);
  border-radius:999px;
  color:var(--gray);
  font-size:11px;
  line-height:1;
}
.badge--filled{
  background:var(--red);
  color:#fff;
}
.card__title{
  margin:36px 0 8px;
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size:clamp(26px, 2.2vw, 30px);
  line-height:1.3;
  color:var(--red);
}
.card__cities{
  min-height:74px;
  margin:0;
  font-family: Montserrat, sans-serif; font-weight: 300;
  font-size:clamp(16px, 1.8vw, 18px);
  line-height:1.5;
}
.card__meta{
  display:grid;
  gap:8px;
  padding-top:18px;
  padding-bottom: 18px;
  border-top:var(--border-gray-soft);
  border-bottom:var(--border-gray-soft);
  min-height:126px;
}

/* .meta-line{
  font-size:18px;
  line-height:1.15;
} */

.meta-line{
  display:flex;
  align-items:baseline;
  gap:10px;
  font-size:18px;
}


.meta-line--flights{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  text-transform: uppercase;
}
.meta-line--flights .sep-plane{
  width:40px;
  height:23px;
  background:url("../graficos/avion.svg") center / contain no-repeat;
  flex:0 0 40px;
  transform: translateY(-3px);
}
.meta-label {
  text-transform: none;
}
.card__cta-row{
  display:flex;
  gap:14px;
  padding:0px 26px 0;
}
.mini-cta,
.price-box__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  /* min-width:150px; */
  height:30px;
  padding:0px 20px 0px 20px;
  border:1px solid #d40f34;
  border-radius:999px;
  background:#d40f34;
  color:#fff;
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size:16px;
  text-decoration:none;
  transition:all .25s ease;
}

.mini-cta:hover,
.price-box__btn:hover{
  background:#fff;
  color:#d40f34;
}

.prices{
  display:grid;
  grid-template-columns:1fr 1fr;
  margin-top:20px;
  /* border-top:var(--border); */
}
.prices.is-single{grid-template-columns:1fr}
.price-box{
  min-height:152px;
  padding:20px 24px 24px;
  display:flex;
  flex-direction:column;
  justify-content:center;   /* vertical */
  align-items:center;       /* horizontal */
  text-align:center;        /* texto centrado */
  color:var(--red);
}
/* .price-box + .price-box{border-left:var(--border)} */
/* .price-box--general{background:rgba(212,15,52,.06)} */
/* .price-box--senior{background:rgba(102,102,102,.1)} */
.price-box__label{
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size:18px;
  margin-bottom:15px;
}
.price-box__from{
  font-size:20px;
  margin-bottom:4px;
}
.price-box__value{
  display:flex;
  align-items:flex-end;
  gap:8px;
  line-height:1;
  margin-bottom:14px;
}
.price-box__value strong{
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size:55px;
}
.price-box__value span{
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size:18px;
  transform:translateY(-12px);
}

.price-box__value .euro{
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size:30px;
  transform:translateY(-8px);
}
.price-box__btn{
  /* align-self:flex-start; */
  min-height:40px;
  padding:0px 20px 0px 20px;
  border-radius:999px;
  border:1px solid var(--red);
  color: var(--red);
  background:transparent;
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size:16px;
  transition:transform .22s var(--ease), background-color .22s var(--ease), color .22s var(--ease);
}
.price-box--general .price-box__btn:hover{
  background:var(--red);
  color:#fff;
  /* transform:translateY(-2px); */
}
.price-box--senior{color:var(--gray)}
.price-box--senior .price-box__btn:hover{
  background:var(--gray);
  color:#fff;
  border-color: var(--gray);
  /* transform:translateY(-2px); */
}

.card__overlay{
  position:absolute;
  inset:0;
  background:var(--white);
  /* border:var(--border); */
  display:none;
  grid-template-rows:auto 1fr;
  z-index:5;
}
.card__overlay.is-open{display:grid}
.overlay__tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
}
.overlay__tab{
  min-height:60px;
  border:0;
  border-bottom:var(--border);
  background:#fff;
  color:var(--red);
  padding:18px 20px;
  text-align:left;
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size:18px;
  line-height:.98;
  cursor:pointer;
}
.overlay__tab + .overlay__tab{border-left:var(--border)}
.overlay__tab.is-active{
  background:var(--red);
  color:#fff;
}
.overlay__content{
  position:relative;
  padding:62px 130px 42px 64px;
  overflow:auto;
}
.overlay__close{
  position:absolute;
  top:22px;
  right:26px;
  width:40px;
  height:40px;
  border:0;
  background: url("../graficos/cerrar.svg") center no-repeat;
  cursor:pointer;
  transition:transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.overlay__close:hover{
  background:url("../graficos/cerrar-neg.svg") center no-repeat;
  transform:rotate(90deg);
}
.overlay__rich{
  font-size:18px;
  line-height:1.2;
  color:#111;
}
/* normal */
.overlay__rich p{
  position:relative;
  padding-left:18px;
  margin-bottom:10px;
}

.overlay__rich p::before{
  content:"·";
  position:absolute;
  left:0;
}

/* títulos */
.overlay__rich p.is-title{
  padding-left:0;
  font-weight:700;
  margin-top:16px;
}

.overlay__rich p.is-title::before{
  content:none;
}

/* textos sin viñeta */
.overlay__rich p.no-bullet{
  padding-left:0;
}

.overlay__rich p.no-bullet::before{
  content:none;
}
.overlay__rich .is-title{
  font-family: Montserrat, sans-serif; font-weight: 700;
}

.site-footer{
  background:#666666;
  color:#ffffff;
  padding:32px 20px 24px;
}

.site-footer__legal{
  width:100%;
  font-family: Montserrat, sans-serif; font-weight: 400;
  font-size:12px;
  line-height:1.45;
  padding:0 0 28px;
  margin:0 0 28px;
  border-bottom:1px solid rgba(255,255,255,.28);
}

.site-footer__bottom{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
}

.site-footer__brand{
  color:#ffffff;
  text-decoration:none;
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size:16px;
  line-height:1;
  transition:color .25s ease;
}

.site-footer__social{
  display:flex;
  align-items:center;
  gap:22px;
}

.site-footer__group{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:28px;
}

.site-footer__social a{
  color:#ffffff;
  text-decoration:none;
  font-size:20px;
  line-height:1;
  transition:color .25s ease, transform .25s ease;
}

.site-footer__brand:hover,
.site-footer__social a:hover{
  color:#d40f34;
}

.site-footer__social a:hover{
  transform:translateY(-1px);
}

@media (max-width:768px){
  .site-footer{
    padding:28px 16px 22px;
  }

  .site-footer__legal{
    font-size:15px;
    line-height:1.5;
    padding-bottom:22px;
    margin-bottom:22px;
  }

  .site-footer__bottom{
    gap:18px;
  }

  .site-footer__brand{
    font-size:20px;
    width:100%;
  }

  .site-footer__social a{
    font-size:30px;
  }
}

.empty-state{
  padding:42px 28px;
  border:var(--border);
  background:#fff;
  font-size:22px;
  color:var(--gray);
}

@media (max-width: 1100px){
  .cards-grid{grid-template-columns:1fr}
  .overlay__tab{font-size:26px; min-height:94px}
  .overlay__rich{font-size:24px}
}

@media (max-width: 768px){
  .container{width:min(calc(100% - 28px), var(--container));}
  .topbar{height:52px;}
  .topbar__logo img{height:22px;}
  .hero{min-height:calc(100svh - 52px);}
  body.is-compact .hero{min-height:320px;}
  .hero__content{padding-block:48px;}
  .hero__eyebrow{font-size:30px;}
  .origin-btn{font-size:16px; min-width:auto; padding:12px 18px;}
  .destination-trigger{padding:14px 18px;}

  .card{grid-template-columns:1fr;}
  .card__media{height:300px;}
  .card__body{grid-template-rows:auto auto auto auto auto;}
  .card__content{padding:20px 18px 0;}

  .card__head-row{grid-template-columns:1fr; gap:10px;}
  .card__badges{display:flex; flex-wrap:wrap; gap:8px; padding:12px 0 0 0;}
  .badge{white-space:nowrap;}

  .card__cta-row{display:grid; grid-template-columns:1fr 1fr; gap:10px; width:100%; padding:10px 0 0;}
  .mini-cta{display:flex; width:100%; min-width:0; min-height:44px; height:42px; font-size:15px; justify-content:center; align-items:center;}
  
  .tab-btn{min-height:64px; font-size:16px; padding:16px;}
  .card__title{font-size:30px;}
  .card__cities{font-size:24px; min-height:auto;}
  .meta-line{font-size:18px;}

  .prices{grid-template-columns:1fr;}
  .price-box + .price-box{border-left:0; border-top:var(--border);}
  .price-box__value strong{font-size:54px;}
  .price-box__value span{font-size:32px;}
  .price-box__btn{font-size:18px;}

  .card__overlay{grid-template-rows:auto 1fr;}
  .overlay__tabs{grid-template-columns:1fr 1fr;}
  .overlay__tab{min-height:74px; font-size:18px; padding:14px 18px;}
  .overlay__content{padding:32px 78px 26px 22px;}
  .overlay__close{top:14px; right:14px; width:52px; height:52px; background-size:22px 22px;}
  .overlay__close:hover{background-size:22px 22px;}
  .overlay__rich{font-size:18px; line-height:1.16;}

  .footer__inner{flex-direction:column;}
}


.hero__content{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.hero__intro{
  position:relative;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  margin-bottom:48px;
  animation:heroIntroIn 1s ease-out both;
}

.hero__intro img{
  display:block;
  width:min(500px, 92vw);
  height:auto;
  pointer-events:none;
  opacity:1;
  transform:translateY(-40px);
   filter: drop-shadow(0 10px 30px rgba(0,0,0,0.3));
}

.hero__title,
.hero__subtitle,
.hero__kicker,
.hero__claim{margin:0}
.hero__title{
  font-family: Montserrat, sans-serif; font-weight: 900;
  font-size:clamp(44px,6vw,78px);
  line-height:.95;
  letter-spacing:.05em;
  font-size: 75px;
}
.hero__subtitle{
  margin-top:14px;
  font-family: Montserrat, sans-serif; font-weight: 400;
  font-size:clamp(20px,2vw,28px);
}
.hero__kicker{
  margin-top:22px;
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size:clamp(22px,2.2vw,30px);
}
.hero__claim{
  margin-top:10px;
  font-family: Montserrat, sans-serif; font-weight: 300;
  font-size:clamp(24px,2.4vw,34px);
}

.hero__bg{
  animation: heroZoom 12s ease-in-out infinite alternate;
}

@keyframes heroZoom{
  0%{ transform:scale(1); }
  50%{ transform:scale(1.05); }
  100%{ transform:scale(1.08); }
}

@keyframes heroSnowFall{
  to{
    background-position:0 260px, 44px 340px, 120px 430px;
  }
}

body.is-compact .hero__intro{
  opacity:0;
  transform:translateY(-18px);
  pointer-events:none;
  max-height:0;
  overflow:hidden;
  margin:0;
  transition:opacity .35s ease, transform .45s ease, max-height .5s ease, margin .35s ease;
}
.hero__intro{
  transition:opacity .45s ease, transform .55s ease, max-height .6s ease, margin .35s ease;
  max-height:340px;
}
.filters--results{display:none; margin-top:18px; justify-content:flex-start}
body.is-compact .filters--hero{display:none}
body.is-compact .filters--results{display:flex}
.destination-trigger--results{
  min-width:min(360px, 100%);
  border-color:var(--red);
  background:#fff;
  color:var(--red);
  backdrop-filter:none;
}
.destination-trigger--results:not(:disabled):hover{
  background:var(--red);
  color:#fff;
}
.destination-menu--results{
  left:0;
  right:auto;
}
.results-head h1{margin-bottom:0}
.card{
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:300px auto;
  min-height:unset;
}
.card__media{
  min-height:300px;
}
.card__content{padding:24px 26px 0}
.card__badges{min-height:30px}
.badge{
  border-radius:0;
  min-height:30px;
  padding:7px 8px 4px 8px;
  font-family: Montserrat, sans-serif; font-weight: 700;
}
.badge--filled{background:var(--g);color:#fff}
.card__cities{min-height:60px}
.meta-line--salidas{font-size:18px}
.prices.is-single .price-box{
  max-width:50%;
  margin-left:auto;
}
.overlay__close{display:none}
.card__overlay.is-open .overlay__close{display:block}

/* Scroll general */
::-webkit-scrollbar{
  width:10px;
}

::-webkit-scrollbar-track{
  background:#f2f2f2; /* fondo claro */
}

::-webkit-scrollbar-thumb{
  background:#d40f34; /* rojo corporativo */
  border-radius:6px;
  border: 3px solid #f2f2f2;
}

::-webkit-scrollbar-thumb:hover{
  background:#b50d2c; /* rojo más oscuro */
}

#scrollTopBtn{
  position:fixed;
  bottom:24px;
  right:24px;

  width:52px;
  height:52px;
  border-radius:50%;

  background:#d40f34;
  color:#fff;

  border:none;
  cursor:pointer;

  display:flex;
  align-items:center;
  justify-content:center;

  font-size:20px;

  box-shadow:0 4px 12px rgba(0,0,0,0.2);

  opacity:0;
  visibility:hidden;
  transform:translateY(10px);

  transition:all .3s ease;

  z-index:999;
}

/* visible */
#scrollTopBtn.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

/* hover */
#scrollTopBtn:hover{
  background:#b50d2c;
  transform:translateY(-2px);
}


/* ===== BLOQUE OFERTA ===== */

.offer-box {
  background: #d70e2b;
  color: #fff;
  margin: 25px 25px 25px;
  margin-top: auto;
  min-height: 150px;
  padding: 22px 40px 26px;
  box-sizing: border-box;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.offer-box--with-base,
.offer-box--only {
  margin-top: auto;
}



.offer-box--with-base,
.offer-box--only {
  margin-top: auto;
}

.offer-box__price-wrap {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-width: 0;
  flex: 1 1 auto;
  height: 100%;
}

.offer-box__label {
  font-family: Montserrat, sans-serif; font-weight: 900;
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0;
  text-transform: uppercase;
  margin-bottom: 15px;
  color: #fff;
  text-align: center;
}

.offer-box__value {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 10px;
  color: #fff;
  line-height: 1;
  flex-wrap: nowrap;
}

.offer-box__from {
  font-family: Montserrat, sans-serif; font-weight: 400;
  font-size: 18px;
  line-height: 1;
  color: #fff;
  margin-bottom: 10px;
}

.offer-box__value strong {
   font-family: Montserrat, sans-serif; font-weight: 900;
  font-size: 55px;
  line-height: 0.9;
  color: #fff;
  font-weight: 800;
}

.offer-box__value .euro {
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size: 30px;
  line-height: 1;
  color: #fff;
  margin-bottom: 10px;
}

.offer-box__actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 18px;
  flex: 0 0 170px;
}

.offer-box__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 33px;
  padding: 5px 10px 2px;
  border-radius: 999px;
  background: #fff;
  color: #d70e2b;
  text-decoration: none;
  text-transform: uppercase;
  font-family: Montserrat, sans-serif; font-weight: 700;
  font-size: 16px;
  line-height: 1;
  font-weight: 800;
  transition: 0.2s ease;
  border: 1px solid #d70e2b;
}

.offer-box__btn:hover {
  background: #d70e2b;
  color: #fff;
   border: 1px solid #fff;
}

/* ===== SI SOLO HAY OFERTA Y NO HAY PRECIOS GENERAL/SÉNIOR ===== */

.offer-box--only {
  justify-content: space-between;
  align-items: center;
}

.offer-box--only .offer-box__price-wrap {
  flex: 1 1 auto;
}

.offer-box--only .offer-box__actions {
  flex: 0 0 180px;
}

.hero__brand-mark{
  position:absolute;
  right:42px;
  bottom:34px;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:1;
  visibility:visible;
  transition:opacity .28s ease, visibility .28s ease;
}

.hero__brand-mark img{
  width:220px;
  max-width:22vw;
  height:auto;
  display:block;
}

body.is-compact .hero__brand-mark{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.site-footer__bottom{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  min-height:44px;
}

.site-footer__avoris{
  margin-right:88px;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .28s ease, visibility .28s ease;
}

body.is-compact .site-footer__avoris{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.site-footer__avoris img{
  width:190px;
  height:auto;
  display:block;
  filter:brightness(0) invert(1);
}

.overlay__rich .is-package-title:not(:first-child){
  margin-top: 42px;
}

.origin-btn--regular{
  flex-basis: 100%;
  max-width: 260px;
  margin: 10px auto 0;
}


/* ===== AJUSTE RESPONSIVE ===== */

@media (max-width: 900px) {
  .offer-box {
    flex-direction: column;
    align-items: flex-start;
  }

  .offer-box__actions {
    width: 100%;
    flex: 1 1 auto;
  }

  .offer-box__btn {
    width: 100%;
  }

  .offer-box__value strong {
    font-size: 84px;
  }

  .offer-box__label {
    font-size: 28px;
  }
}

@media (max-width: 980px){
  .cards-grid{grid-template-columns:1fr}
}
@media (max-width: 720px){
  .container{width:min(calc(100% - 28px), var(--container))}
  .hero__title{font-size:42px}
  .hero__subtitle{font-size:18px}
  .hero__kicker{font-size:20px}
  .hero__claim{font-size:24px}
  .card{grid-template-rows:200px auto}
  .overlay__tab{font-size:22px; min-height:92px; padding:18px 20px}
  .overlay__content{padding:48px 28px 28px}
  .overlay__close{width:64px;height:64px;right:16px;top:16px}
  .prices,
  .prices.is-single{grid-template-columns:1fr}
  .prices.is-single .price-box{max-width:none;margin-left:0}
}

@media (max-width:768px){
  #scrollTopBtn{
    bottom:16px;
    right:16px;
    width:44px;
    height:44px;
  }

  .hero__brand-mark{
    right:16px;
    bottom:18px;
  }

  .hero__brand-mark img{
    width:140px;
    max-width:36vw;
  }


  .site-footer__avoris img{
    width:170px;
  }

.site-footer__bottom{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  min-height:auto;
}

.site-footer__group{
  position:static;
  left:auto;
  transform:none;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:18px;
  flex-wrap:nowrap;
  width:100%;
}

.site-footer__brand{
  width:auto;
  font-size:20px;
  line-height:1;
}

.site-footer__social{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
}

.site-footer__avoris{
  width:100%;
  margin:0;
  display:flex;
  justify-content:center;
}

.site-footer__avoris img{
  width:170px;
}
}

@media (prefers-reduced-motion: reduce){
  .hero__bg,
  .hero__bg::before,
  .hero__bg::after,
  .hero__intro,
  .hero__eyebrow,
  .card__media::before,
  .card__media::after,
  .origins{
    animation:none !important;
  }
}
