/* INDEX */

.hero-slider{
  position:relative;
  width:100%;
  height:100vh;
  min-height:720px;
  margin-top:82px;
  overflow:hidden;
  background:
    radial-gradient(circle at top left, rgba(200,164,107,.22), transparent 28%),
    #f6efdf;
}

.hero-slider::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(32,21,18,.56) 0%, rgba(32,21,18,.22) 36%, rgba(32,21,18,0) 62%),
    linear-gradient(180deg, rgba(17,17,17,.08) 0%, rgba(17,17,17,.2) 100%);
}

.slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:
    opacity 1.2s ease,
    transform 6s ease;
}

.slide.active{
  opacity:1;
}

.slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  display:block;
  transform:scale(1.03);
}

.hero-copy{
  position:absolute;
  left:8%;
  bottom:11%;
  z-index:6;
  width:min(560px, calc(100% - 32px));
  padding:34px 34px 30px;
  color:#fff;
  background:rgba(52,34,30,.3);
  border:1px solid rgba(255,255,255,.18);
  border-radius:28px;
  backdrop-filter:blur(10px);
  box-shadow:0 24px 60px rgba(0,0,0,.18);
}

.hero-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
  font-size:13px;
  font-weight:600;
  letter-spacing:2px;
  text-transform:uppercase;
  color:#e79830;
}

.hero-kicker::before{
  content:"";
  width:34px;
  height:1px;
  background:currentColor;
}

.hero-copy h1{
  margin-bottom:16px;
  font-size:clamp(2.5rem, 4.2vw, 4.5rem);
  line-height:1.02;
  letter-spacing:-1.6px;
  font-weight:600;
}

.hero-copy p{
  max-width:48ch;
  margin-bottom:26px;
  font-size:18px;
  line-height:1.7;
  color:rgba(255,255,255,.9);
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
}

.hero-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:14px 24px;
  border-radius:999px;
  font-size:14px;
  font-weight:700;
  letter-spacing:.7px;
  text-transform:uppercase;
  transition:
    transform .3s ease,
    background .3s ease,
    color .3s ease,
    border-color .3s ease,
    box-shadow .3s ease;
}

.hero-button:hover{
  transform:translateY(-3px);
}

.hero-button-primary{
  background:#722f37;
  color:#fff;
  box-shadow:0 12px 28px rgba(0,0,0,.16);
}

.hero-button-primary:hover{
  background:#af5560;
}

.hero-button-secondary{
  border:1px solid rgba(255,255,255,.45);
  color:#fff;
  background:rgba(255,255,255,.08);
}

.hero-button-secondary:hover{
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.72);
}

.slider-lines{
  position:absolute;
  left:34px;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  display:flex;
  flex-direction:column;
  gap:7px;
}

.slider-lines span{
  width:34px;
  height:3px;
  background:rgba(255,255,255,.42);
  cursor:pointer;
  transition:.35s ease;
}

.slider-lines span.active{
  width:46px;
  background:#722f37;
}

.slider-arrows{
  position:absolute;
  right:48px;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
}

.slider-arrows button{
  width:46px;
  height:46px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:50%;
  background:rgba(255,255,255,.14);
  backdrop-filter:blur(6px);
  color:#fff;
  font-size:24px;
  font-weight:300;
  line-height:1;
  cursor:pointer;
  transition:.3s ease;
}

.slider-arrows button:hover{
  color:#fff;
  background:#722f37;
  border-color:#722f37;
  transform:scale(1.08);
}

.slider-arrows span{
  width:1px;
  height:34px;
  background:rgba(255,255,255,.4);
}

/* CARRUSEL DE VINOS */

.wines-section{
  padding:110px 7%;
  background:
    radial-gradient(circle at top right, rgba(200,164,107,.16), transparent 22%),
    linear-gradient(135deg, #f4ead7, #fffdf8 62%, #ffffff);
  text-align:center;
  overflow:hidden;
}

.section-kicker{
  display:inline-block;
  margin-bottom:12px;
  font-size:13px;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  color:#722f37;
}

.wines-section h2{
  font-size:clamp(2rem, 3.6vw, 3rem);
  color:#2b201d;
  margin-bottom:16px;
  font-weight:600;
  letter-spacing:-.8px;
  text-transform:none;
}

.section-intro{
  max-width:760px;
  margin:0 auto 40px;
  font-size:18px;
  line-height:1.75;
  color:#6f635d;
}

.wines-carousel{
  position:relative;
  max-width:1180px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
}

.wines-window{
  width:100%;
  overflow:hidden;
}

.wines-track{
  display:flex;
  gap:28px;
  transition:transform .55s ease;
}

.wine-link{
  flex:0 0 calc((100% - 84px) / 4);
  text-decoration:none;
  color:inherit;
}

.wine-card{
  position:relative;
  width:100%;
  min-height:440px;
  padding:18px;
  display:flex;
  flex-direction:column;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(114,47,55,.08);
  border-radius:26px;
  overflow:hidden;
  box-shadow:0 16px 40px rgba(77,52,31,.08);
  transition:
    transform .35s ease,
    box-shadow .35s ease,
    border-color .35s ease;
}

.wine-card:hover{
  transform:translateY(-10px);
  box-shadow:0 22px 46px rgba(77,52,31,.16);
  border-color:rgba(114,47,55,.18);
}

.wine-card img{
  width:100%;
  height:278px;
  object-fit:contain;
  padding:18px;
  background:linear-gradient(180deg, #fffaf0 0%, #ffffff 100%);
  border-radius:18px;
}

.wine-card h3{
  flex:1;
  min-height:98px;
  padding:22px 14px 10px;
  font-size:14px;
  font-weight:700;
  color:#332824;
  letter-spacing:.4px;
  text-transform:uppercase;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1.35;
  text-wrap:balance;
}

.wine-stock-badge{
  position:absolute;
  top:16px;
  right:16px;
  z-index:2;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(43,32,29,.9);
  color:#fff;
  font-size:11px;
  font-weight:700;
  letter-spacing:1.1px;
  text-transform:uppercase;
  box-shadow:0 10px 24px rgba(43,32,29,.18);
}

.wine-card-out-of-stock{
  border-color:rgba(43,32,29,.12);
  box-shadow:0 14px 34px rgba(77,52,31,.07);
}

.wine-card-out-of-stock img{
  filter:grayscale(.18) saturate(.75) opacity(.82);
}

.wine-card-out-of-stock h3{
  color:#5f544f;
}

.wine-link-out-of-stock:hover .wine-card{
  transform:translateY(-6px);
}

.wine-arrow{
  flex:0 0 auto;
  width:46px;
  height:46px;
  border:1px solid rgba(114,47,55,.14);
  border-radius:50%;
  background:rgba(255,255,255,.95);
  color:#7d6d67;
  font-size:25px;
  cursor:pointer;
  transition:
    color .3s ease,
    border-color .3s ease,
    transform .3s ease,
    box-shadow .3s ease,
    background .3s ease;
}

.wine-arrow:hover{
  color:#fff;
  background:#722f37;
  border-color:#722f37;
  transform:scale(1.08);
  box-shadow:0 8px 18px rgba(114,47,55,.18);
}

.info-navigation-section{
  padding:110px 8%;
  background:
    radial-gradient(circle at bottom left, rgba(200,164,107,.12), transparent 24%),
    linear-gradient(180deg, #fffdf8 0%, #f4ead7 100%);
}

.info-block{
  max-width:1160px;
  margin:0 auto 84px;
  padding:24px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:center;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(114,47,55,.08);
  border-radius:34px;
  box-shadow:0 18px 40px rgba(72,50,33,.08);
}

.info-block:last-child{
  margin-bottom:0;
}

.info-block.reverse .info-image{
  order:2;
}

.info-block.reverse .info-content{
  order:1;
}

.info-image{
  overflow:hidden;
  border-radius:26px;
  background:#efe4cf;
}

.info-image img{
  width:100%;
  height:380px;
  object-fit:cover;
  display:block;
  transition:transform .55s ease, filter .45s ease;
  filter:saturate(.92) contrast(1.02);
}

.info-block:hover .info-image img{
  transform:scale(1.04);
  filter:saturate(1) contrast(1.04);
}

.info-label{
  display:inline-block;
  margin-bottom:14px;
  font-size:12px;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  color:#722f37;
}

.info-content h2{
  margin-bottom:18px;
  font-size:34px;
  color:#2b201d;
  font-weight:600;
  letter-spacing:-.6px;
  text-transform:none;
}

.info-content p{
  font-size:18px;
  line-height:1.8;
  color:#6d615b;
  margin-bottom:28px;
}

.info-button{
  display:inline-block;
  padding:15px 26px;
  border:1px solid rgba(114,47,55,.18);
  border-radius:999px;
  color:#5b4740;
  font-size:14px;
  font-weight:700;
  letter-spacing:.8px;
  text-transform:uppercase;
  text-decoration:none;
  background:rgba(255,255,255,.85);
  transition:
    color .3s ease,
    background .3s ease,
    border-color .3s ease,
    transform .3s ease,
    box-shadow .3s ease;
}

.info-button:hover{
  color:#fff;
  background:#722f37;
  border-color:#722f37;
  transform:translateY(-3px);
  box-shadow:0 16px 30px rgba(114,47,55,.18);
}

.footer-country{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.footer-flag{
  width:18px;
  height:auto;
  display:block;
  border-radius:2px;
  box-shadow:0 1px 4px rgba(0,0,0,.18);
}

/* MENÚ HAMBURGUESA */

.menu-backdrop{
  position:fixed;
  inset:0;
  z-index:1200;
  background:rgba(32,21,18,.18);
  opacity:0;
  visibility:hidden;
  transition:
    opacity .35s ease,
    visibility .35s ease;
}

body.menu-open .menu-backdrop{
  opacity:1;
  visibility:visible;
}

.menu-toggle{
  width:34px;
  height:26px;
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:space-between;
  background:none;
  border:none;
  cursor:pointer;
  z-index:2000;
  padding:0;
  border-radius:999px;
  transition:
    transform .3s ease,
    background .3s ease,
    box-shadow .3s ease;
}

.menu-toggle span{
  width:100%;
  height:2px;
  background:#222;
  border-radius:0;
  transition:.35s ease;
}

.menu-toggle:hover{
  transform:none;
}

.menu-toggle.active span:nth-child(1){
  width:100%;
  transform:none;
}

.menu-toggle.active span:nth-child(2){
  opacity:1;
  transform:none;
}

.menu-toggle.active span:nth-child(3){
  width:100%;
  transform:none;
}

/* RESPONSIVE INDEX */

@media (max-width:1360px){
  .hero-copy{
    width:min(520px, calc(100% - 56px));
    bottom:8%;
  }

  .slider-arrows{
    right:28px;
  }

  .slider-lines{
    left:28px;
  }

  .info-block{
    gap:42px;
  }

  .info-image img{
    height:350px;
  }
}

@media (max-width:1200px){
  .main-nav{
    gap:24px;
  }

  .main-nav a{
    font-size:16px;
  }

  .hero-slider{
    min-height:640px;
  }

  .hero-copy h1{
    font-size:clamp(2.3rem, 4vw, 3.8rem);
  }

  .wines-section,
  .info-navigation-section{
    padding-left:5%;
    padding-right:5%;
  }

  .wines-track{
    gap:20px;
  }

  .wine-link{
    flex:0 0 calc((100% - 40px) / 3);
  }

  .wine-card{
    min-height:424px;
  }
}

@media (max-width:1100px){
  .menu-toggle{
    display:flex;
  }

  .main-nav{
    position:fixed;
    top:18px;
    right:18px;
    width:min(360px, calc(100vw - 36px));
    max-height:calc(100vh - 36px);
    padding:86px 26px 32px;
    background:#fffdf8;
    flex-direction:column;
    justify-content:flex-start;
    align-items:flex-start;
    gap:22px;
    border:1px solid rgba(114,47,55,.08);
    border-radius:28px;
    box-shadow:0 24px 60px rgba(33,18,12,.16);
    overflow:auto;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateX(18px) scale(.98);
    transition:
      opacity .35s ease,
      visibility .35s ease,
      transform .35s ease;
    z-index:1500;
  }

  .main-nav.active{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateX(0) scale(1);
  }

  .main-nav a{
    width:100%;
    padding:10px 0;
    font-size:20px;
    border-bottom:1px solid rgba(114,47,55,.08);
  }

  .hero-copy{
    max-width:520px;
  }
}

@media (max-width:992px){
  .site-header{
    height:74px;
  }

  .header-inner{
    padding:0 24px;
  }

  .logo img{
    width:115px;
  }

  .main-nav{
    gap:16px;
  }

  .main-nav a{
    font-size:18px;
  }

  .hero-slider{
    height:88vh;
    min-height:0;
    margin-top:74px;
  }

  .hero-copy{
    left:24px;
    right:24px;
    bottom:24px;
    width:auto;
    padding:28px 24px;
  }

  .hero-copy h1{
    font-size:clamp(2.2rem, 5vw, 3.4rem);
  }

  .hero-copy p{
    font-size:16px;
  }

  .slider-lines{
    left:18px;
  }

  .slider-arrows{
    right:18px;
  }

  .wines-carousel{
    gap:16px;
  }

  .wine-link{
    flex:0 0 calc((100% - 20px) / 2);
  }

  .wine-card{
    min-height:412px;
  }

  .info-block{
    grid-template-columns:1fr;
    gap:34px;
    text-align:center;
    padding:22px;
  }

  .info-block.reverse .info-image,
  .info-block.reverse .info-content{
    order:initial;
  }

  .info-content h2{
    font-size:30px;
  }

  .info-content p{
    font-size:17px;
  }

  .info-button{
    min-width:220px;
  }

  .footer-container{
    grid-template-columns:1fr 1fr;
    gap:50px;
  }
}

@media (max-width:768px){
  .site-header{
    height:68px;
  }

  .header-inner{
    padding:0 18px;
  }

  .logo img{
    width:100px;
  }

  .menu-toggle{
    display:flex;
    width:44px;
    height:44px;
    align-items:center;
    justify-content:center;
    gap:5px;
    margin-left:auto;
    margin-right:14px;
    background:#722f37;
    border:1px solid rgba(114,47,55,.18);
    border-radius:50%;
    box-shadow:0 12px 24px rgba(114,47,55,.18);
    z-index:3000;
  }

  .menu-toggle span{
    width:18px;
    height:2px;
    background:#fff;
    border-radius:999px;
  }

  .menu-toggle.active span:nth-child(1){
    width:18px;
    background:#fff;
    transform:translateY(7px) rotate(45deg);
  }

  .menu-toggle.active span:nth-child(2){
    opacity:0;
    transform:scaleX(.3);
  }

  .menu-toggle.active span:nth-child(3){
    width:18px;
    background:#fff;
    transform:translateY(-7px) rotate(-45deg);
  }

  .main-nav{
    top:68px;
    right:0;
    width:100%;
    max-height:calc(100vh - 68px);
    gap:14px;
    padding:20px 22px 28px;
    background:#fff;
    border:none;
    border-top:1px solid rgba(114,47,55,.08);
    border-radius:0 0 22px 22px;
    box-shadow:0 20px 35px rgba(33,18,12,.08);
    transform:translateY(-12px);
  }

  .main-nav a{
    position:relative;
    padding:10px 0;
    font-size:17px;
    font-weight:700;
    letter-spacing:.4px;
    color:#2b201d;
  }

  .main-nav a::after{
    left:0;
    bottom:0;
    width:0;
    height:1px;
    background:#722f37;
    transform:none;
  }

  .cart{
    font-size:14px;
  }

  .hero-slider{
    height:auto;
    min-height:680px;
    margin-top:68px;
    background:#fff;
  }

  .slide{
    display:flex;
    justify-content:center;
    align-items:center;
  }

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

  .hero-slider::before{
    background:
      linear-gradient(180deg, rgba(20,12,10,.3) 0%, rgba(20,12,10,.18) 44%, rgba(20,12,10,.52) 100%);
  }

  .hero-copy{
    left:16px;
    right:16px;
    bottom:16px;
    padding:24px 18px 20px;
    border-radius:22px;
  }

  .hero-kicker{
    margin-bottom:14px;
    font-size:11px;
  }

  .hero-copy h1{
    font-size:32px;
    line-height:1.06;
  }

  .hero-copy p{
    margin-bottom:20px;
    font-size:15px;
    line-height:1.65;
  }

  .hero-actions{
    flex-direction:column;
  }

  .hero-button{
    width:100%;
  }

  .slider-lines{
    left:16px;
    top:auto;
    bottom:24px;
    transform:none;
    flex-direction:row;
    z-index:6;
  }

  .slider-lines span{
    width:24px;
  }

  .slider-lines span.active{
    width:34px;
  }

  .slider-arrows{
    right:16px;
    left:auto;
    top:21%;
    bottom:auto;
    transform:translateY(-50%);
    z-index:6;
    flex-direction:column;
    justify-content:center;
    padding:0;
    pointer-events:auto;
  }

  .slider-arrows button{
    width:36px;
    height:36px;
    font-size:22px;
  }

  .slider-arrows span{
    display:block;
    width:1px;
    height:18px;
  }

  .wines-section{
    padding:84px 24px;
  }

  .wines-section h2{
    font-size:34px;
  }

  .section-intro{
    font-size:16px;
    line-height:1.7;
  }

  .wines-window{
    width:calc(100% - 88px);
    overflow:hidden;
  }

  .wines-track{
    gap:0;
  }

  .wine-link{
    flex:0 0 100%;
    display:flex;
    justify-content:center;
    align-items:center;
  }

  .wine-card{
    flex:none;
    width:100%;
    max-width:none;
    min-height:400px;
    margin:0 auto;
    padding:16px;
  }

  .wine-card img{
    width:100%;
    height:228px;
    object-fit:contain;
    padding:16px;
  }

  .wine-card h3{
    min-height:94px;
    padding:18px 8px 6px;
    font-size:12.5px;
    line-height:1.4;
  }

  .info-navigation-section{
    padding:80px 24px;
  }

  .info-block{
    padding:18px;
    border-radius:26px;
  }

  .info-label{
    font-size:11px;
  }

  .info-content h2{
    font-size:26px;
  }

  .info-content p{
    font-size:16px;
    line-height:1.7;
  }

  .info-image img{
    height:260px;
  }

  .footer-container{
    grid-template-columns:1fr;
    text-align:center;
  }

  .footer-logo-link{
    justify-content:center;
  }

  .footer-socials{
    align-items:center;
  }

  .footer-country{
    justify-content:center;
  }

  .age-box{
    width:92%;
    padding:38px 24px;
  }

  .age-box img{
    width:140px;
  }

  .age-box p{
    font-size:17px;
  }

  .age-buttons{
    flex-direction:column;
  }

  .age-buttons button{
    width:100%;
  }
}

@media (max-width:640px){
  .hero-slider{
    min-height:620px;
  }

  .hero-copy{
    left:14px;
    right:14px;
    bottom:14px;
  }

  .hero-copy h1{
    font-size:29px;
  }

  .hero-actions{
    gap:10px;
  }

  .hero-button{
    min-height:48px;
    padding:13px 18px;
    font-size:12px;
  }

  .wines-section{
    padding:72px 18px;
  }

  .section-intro{
    margin-bottom:30px;
  }

  .wine-arrow{
    width:36px;
    height:36px;
    font-size:20px;
  }

  .info-navigation-section{
    padding:72px 18px;
  }

  .info-block{
    gap:24px;
  }

  .info-image img{
    height:235px;
  }

  .footer-legal{
    flex-direction:column;
    gap:8px;
  }
}

@media (max-width:480px){
  .hero-slider{
    min-height:580px;
  }

  .hero-copy h1{
    font-size:28px;
  }

  .hero-copy p{
    font-size:14px;
  }

  .slider-lines{
    bottom:18px;
    left:14px;
  }

  .slider-arrows{
    right:14px;
  }

  .wines-section h2{
    font-size:28px;
  }

  .wine-card{
    min-height:384px;
  }

  .wine-card img{
    height:208px;
    padding:14px;
  }

  .wine-card h3{
    min-height:86px;
    font-size:12px;
  }

  .info-content h2{
    font-size:24px;
  }

  .info-content p{
    font-size:15px;
  }

  .age-box{
    padding:32px 18px;
  }

  .age-box p{
    font-size:15px;
  }

  #backToTop{
    width:48px;
    height:48px;
    right:18px;
    bottom:18px;
  }
}

@media (max-width:390px){
  .header-inner{
    padding:0 14px;
  }

  .logo img{
    width:92px;
  }

  .cart{
    font-size:13px;
  }

  .cart-icon{
    width:30px;
    height:30px;
  }

  .main-nav{
    top:68px;
    right:0;
    width:100%;
    padding:18px 16px 24px;
  }

  .menu-toggle{
    margin-right:10px;
  }

  .main-nav a{
    font-size:16px;
  }

  .hero-slider{
    min-height:540px;
  }

  .hero-copy{
    padding:20px 16px 18px;
  }

  .hero-copy h1{
    font-size:25px;
  }

  .hero-kicker{
    font-size:10px;
    letter-spacing:1.6px;
  }

  .section-kicker,
  .info-label{
    letter-spacing:1.6px;
  }

  .wines-section h2{
    font-size:25px;
  }

  .wine-card{
    min-height:356px;
  }

  .wine-card img{
    height:184px;
  }

  .wine-card h3{
    min-height:80px;
    font-size:11.4px;
  }

  .info-image img{
    height:210px;
  }
}