/* Bar La Tórtola — Main Styles */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;0,900;1,400;1,700&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,700&display=swap');

:root{
  --color-primary:#ab022f;
  --color-secondary:#670f22;
  --color-accent:#cd0c36;
  --color-bg-cream:#FFF5F6;
  --color-bg-sand:#FEEEF1;
  --color-text:#3A0A14;
  --color-text-muted:#8A5060;
  --color-navy:#670f22;
  --color-star:#D4AF37;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',system-ui,sans-serif;background:#FFF5F6;color:#3A0A14;-webkit-font-smoothing:antialiased;overflow-x:hidden;line-height:1.5}
::selection{background:#cd0c36;color:#fff}
img,svg,video,iframe{display:block;max-width:100%}
a{color:inherit;text-decoration:inherit}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}
ol,ul{list-style:none;padding:0}
button{cursor:pointer;font:inherit;border:none;background:none}

/* Tailwind utilities used inline */
.w-4{width:1rem}.h-4{height:1rem}.inline{display:inline}.text-\[\#D4AF37\]{color:#D4AF37}.text-\[\#cd0c36\]{color:#cd0c36}
.mt-sm{margin-top:8px}.dim{opacity:.7}
.mb-lg{margin-bottom:48px}.center{text-align:center}.center-text{text-align:center}
.fw{font-weight:600}

/* Historia: drop cap, divider, colores */
.drop-cap{float:left;font-family:'Playfair Display',serif;font-size:4.5rem;font-weight:900;line-height:.8;color:var(--color-secondary);margin-right:.1em;margin-top:.05em;padding-bottom:.05em}
.fecha-dorada{color:var(--color-secondary);font-size:1.05em;letter-spacing:.01em}
.nombre-bar{color:var(--color-secondary)}
#nosotros strong{color:var(--color-secondary)}
.historia-divider{display:flex;align-items:center;margin:.75rem 0}
.historia-divider span{display:block;width:3rem;height:2px;background:var(--color-accent);border-radius:2px}
.historia-cierre{border-left:3px solid var(--color-accent);padding-left:1rem;font-style:italic;color:var(--color-secondary)}

/* Container */
.container{max-width:1400px;margin:0 auto}

/* Header */
#header{position:fixed;top:0;left:0;right:0;z-index:50;background:#670f22;transition:box-shadow .4s}
#header.scrolled{box-shadow:0 2px 40px rgba(58,10,20,.25)}
.hdr-inner{display:flex;align-items:center;justify-content:space-between;padding:14px clamp(20px,5vw,80px);max-width:1600px;margin:0 auto}
.logo-link{display:inline-flex;align-items:center;gap:12px;text-decoration:none;user-select:none}
.logo-circle{width:42px;height:42px;border-radius:50%;background:#ab022f;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.logo-circle span{color:#fff;font-size:17px;font-family:'Playfair Display',serif;font-weight:700}
.hdr-name{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;display:block;line-height:1.1;color:#FFF5F6}
.hdr-sub{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:rgba(253,232,236,.55);display:block}
#desktop-nav{display:flex;align-items:center;gap:28px}
.hdr-link{color:rgba(253,232,236,.85);font-size:14px;font-weight:500}
.hdr-tel{font-size:13px;font-weight:600;text-decoration:none;display:flex;align-items:center;gap:6px}

/* Nav links */
.nav-link{position:relative;text-decoration:none;padding-bottom:2px}
.nav-link::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.77,0,.175,1)}
.nav-link:hover::after{transform:scaleX(1);transform-origin:left}

/* Buttons */
.btn-pri{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 32px;border:none;border-radius:100px;overflow:hidden;color:#fff;background:#670f22;font-weight:600;font-size:.9rem;text-decoration:none;transition:background .3s,color .3s;cursor:pointer;white-space:nowrap;z-index:1}
.btn-pri::before{content:'';position:absolute;inset:0;background:#4a0819;transform:translateY(101%);transition:transform .4s cubic-bezier(.77,0,.175,1);z-index:-1}
.btn-pri:hover{color:#fff}.btn-pri:hover::before{transform:translateY(0)}
#header .btn-pri{border:1.5px solid rgba(255,255,255,.55)}
#header .btn-pri:hover{border-color:rgba(255,255,255,.85)}
.btn-fill{display:inline-flex;align-items:center;padding:16px 44px;border-radius:100px;background:#670f22;color:#fff;font-weight:600;font-size:1rem;text-decoration:none;transition:background .3s,transform .2s;cursor:pointer;border:none}
.btn-fill:hover{background:#4a0819;transform:translateY(-2px)}
.btn-ghost{display:inline-flex;align-items:center;padding:16px 36px;border:1.5px solid rgba(255,255,255,.4);border-radius:100px;color:#fff;font-weight:600;text-decoration:none;transition:background .3s,border-color .3s;cursor:pointer}
.btn-ghost:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.7)}

/* Image hover */
.img-hover{overflow:hidden}.img-hover img{transition:transform .6s cubic-bezier(.4,0,.2,1);width:100%;height:100%;object-fit:cover}.img-hover:hover img{transform:scale(1.06)}

/* Section label */
.sec-label{font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:#cd0c36;margin-bottom:16px;display:block}
.sec-title{font-family:'Playfair Display',serif;font-weight:700;color:#3A0A14;margin-bottom:28px;line-height:1.1;font-size:clamp(2.5rem,5vw,4.5rem);letter-spacing:-.02em}
.sec-text{color:#8A5060;line-height:1.75;margin-bottom:20px;font-size:clamp(.95rem,1.5vw,1.05rem)}
.center{text-align:center}.center-text{max-width:550px;margin-left:auto;margin-right:auto}
.mb-lg{margin-bottom:36px}

/* Animations */
[data-anim]{opacity:0;transform:translateY(32px)}
[data-anim].visible{opacity:1;transform:translateY(0);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1)}
[data-anim="scale"]{opacity:0;transform:scale(.94)}
[data-anim="scale"].visible{opacity:1;transform:scale(1);transition:opacity .9s cubic-bezier(.4,0,.2,1),transform .9s cubic-bezier(.4,0,.2,1)}

section{padding:clamp(80px,10vw,140px) clamp(24px,6vw,100px)}

/* Mobile menu */
.mobile-menu-btn{width:40px;height:40px;display:none;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;position:relative;z-index:51}
.mobile-menu-btn .hb{position:absolute;width:24px;height:2px;background:#FFF5F6;transition:all .3s;left:50%;margin-left:-12px}
.mobile-menu-btn .hb:nth-child(1){top:11px}.mobile-menu-btn .hb:nth-child(2){top:19px}.mobile-menu-btn .hb:nth-child(3){top:27px}
.mobile-menu-btn.active .hb:nth-child(1){top:19px;transform:rotate(45deg)}.mobile-menu-btn.active .hb:nth-child(2){opacity:0}.mobile-menu-btn.active .hb:nth-child(3){top:19px;transform:rotate(-45deg)}
#mobile-nav-menu{position:fixed;top:0;left:-100%;width:100%;height:100vh;background:#FFF5F6;z-index:49;transition:left .3s;padding-top:72px;overflow-y:auto}
#mobile-nav-menu.active{left:0}
#mobile-nav-menu a{display:block;padding:16px clamp(24px,6vw,100px);text-decoration:none;color:#3A0A14;font-size:1rem;font-weight:500;border-bottom:1px solid #E8B8C2}
.mob-tel{color:#cd0c36!important;font-weight:600!important}
.mob-cta{background:#670f22!important;color:#fff!important;text-align:center;font-weight:600!important;margin-top:16px;border-bottom:none!important}

/* Hero */
.hero-section{position:relative;min-height:95vh;display:flex;align-items:flex-end;overflow:hidden;padding:0!important}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
.hero-gradient{position:absolute;inset:0;background:linear-gradient(to top,rgba(58,10,20,.75) 0%,rgba(58,10,20,.35) 35%,transparent 70%)}
.hero-content{position:relative;z-index:10;width:100%;padding:0 clamp(24px,6vw,100px) clamp(60px,8vw,100px)}
.hero-inner{max-width:900px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;margin-bottom:28px;padding:8px 20px;border:1px solid rgba(255,255,255,.3);border-radius:100px;color:rgba(255,255,255,.88);font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;backdrop-filter:blur(12px);background:rgba(0,0,0,.3)}
#hero-title{font-family:'Playfair Display',serif;font-weight:900;line-height:1;margin-bottom:28px;color:#fff;letter-spacing:-.03em;font-size:clamp(3.5rem,10vw,10rem);opacity:0;transform:translateY(60px);transition:opacity 1.2s cubic-bezier(.4,0,.2,1),transform 1.2s cubic-bezier(.4,0,.2,1);text-shadow:0 4px 30px rgba(0,0,0,.7),0 1px 6px rgba(0,0,0,.5)}
.hero-pre{display:block;font-size:.4em;font-weight:400;letter-spacing:.05em;margin-bottom:.15em}
#hero-title em{font-style:italic;color:#670f22;display:block;white-space:nowrap;text-shadow:0 0 22px rgba(255,245,246,.95),0 0 50px rgba(255,245,246,.75),0 0 90px rgba(255,245,246,.45),0 8px 30px rgba(0,0,0,.4)}
.hero-desc{color:rgba(255,255,255,.92);max-width:520px;margin-bottom:40px;line-height:1.75;font-size:clamp(1rem,2vw,1.15rem);text-shadow:0 2px 12px rgba(0,0,0,.6),0 1px 3px rgba(0,0,0,.4)}
.hero-btns{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:48px}
.hero-info{display:flex;flex-wrap:wrap;gap:24px;color:rgba(255,255,255,.8);font-size:13px;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.hero-info span{display:inline-flex;align-items:center;gap:6px}
.hero-info a{color:rgba(255,255,255,.65);text-decoration:none}

/* Marquee */
.marquee-bar{background:#670f22;padding:15px 0;overflow:hidden}
.marquee-wrap{overflow:hidden;white-space:nowrap}
.marquee-track{display:inline-flex;animation:marquee 30s linear infinite}
.marquee-track:hover{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marquee-track span{color:rgba(255,255,255,.9);font-size:13px;font-weight:500;padding:0 28px}
.marquee-track i{color:rgba(255,255,255,.4);padding:0 8px;font-style:normal}

/* Sections */
.sec-cream{background:#FFF5F6}
.sec-sand{background:#FEEEF1}

/* Nosotros */
.two-col-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(48px,6vw,100px);align-items:center}
.nosotros-imgs{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.nosotros-right{display:flex;flex-direction:column;gap:16px;margin-top:48px}

/* Premios */
.premios-img{max-width:900px;margin:0 auto;border-radius:12px;overflow:hidden;box-shadow:0 8px 30px rgba(58,10,20,.15)}
.premios-img img{width:100%;height:auto;display:block}

/* Carrusel nosotros (solo móvil) */
.nosotros-carousel{display:none;margin:32px 0;overflow:hidden;border-radius:12px;position:relative}
.carousel-track{display:flex;transition:transform .4s ease}
.carousel-slide{min-width:100%;flex-shrink:0}
.carousel-slide img{width:100%;height:280px;object-fit:cover;display:block}
.carousel-dots{display:flex;justify-content:center;gap:8px;padding:12px 0}
.carousel-dot{width:10px;height:10px;border-radius:50%;background:var(--color-text-muted);opacity:.4;border:none;padding:0;cursor:pointer;transition:opacity .3s,background .3s}
.carousel-dot.active{opacity:1;background:var(--color-accent)}
.rounded-img{border-radius:24px;overflow:hidden}
.tall{aspect-ratio:3/4}
.square{aspect-ratio:1}

/* Stats */
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:28px 0;margin-bottom:36px;border-top:1px solid #E8B8C2;border-bottom:1px solid #E8B8C2}
.stat{text-align:center}
.stat-num{font-family:'Playfair Display',serif;font-weight:900;color:#cd0c36;font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.03em;line-height:1}
.stat-label{font-size:11px;color:#8A5060;text-transform:uppercase;letter-spacing:.1em;font-weight:500;margin-top:4px}

/* Gallery */
.filter-bar{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:40px}
.gallery-filter-btn{padding:8px 20px;border-radius:100px;border:1px solid #670f22;background:transparent;color:#670f22;font-size:13px;font-weight:500;cursor:pointer;transition:all .3s;white-space:nowrap;font-family:'DM Sans',system-ui,sans-serif}
.gallery-filter-btn.active{background:#670f22;color:#fff;border:1px solid #670f22}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;position:relative}
.gallery-item{border-radius:16px;overflow:hidden;aspect-ratio:1;cursor:pointer;position:relative;transition:opacity .4s,transform .4s}
.gallery-item:nth-child(1),.gallery-item:nth-child(6){aspect-ratio:16/9;grid-column:span 2}
.gallery-item.hidden-item{opacity:0;transform:scale(.92);pointer-events:none;position:absolute}
.gallery-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.1) 55%,transparent 75%);opacity:0;transition:opacity .3s;display:flex;align-items:flex-end;padding:20px}
.gallery-item:hover .gallery-overlay{opacity:1}
@media (hover:none){.gallery-overlay{opacity:1}}
.gallery-tag{display:inline-block;padding:4px 12px;background:rgba(103,15,34,.8);border-radius:100px;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.9);margin-bottom:6px}
.gallery-name{color:#fff;font-weight:600;font-size:15px}

/* Reviews */
.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.review-card{background:#fff;border-radius:20px;padding:28px;border:1px solid #E8B8C2;transition:transform .35s,box-shadow .35s}
.review-card:hover{transform:translateY(-8px);box-shadow:0 20px 60px rgba(58,10,20,.1)}
.review-stars{color:#C9A84C;font-size:18px;margin-bottom:16px}
.review-text{color:#8A5060;line-height:1.7;font-style:italic;margin-bottom:20px;font-size:.95rem}
.review-author{display:flex;align-items:center;gap:12px}
.review-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-family:'Playfair Display',serif;font-size:16px}
.review-name{font-weight:600;color:#3A0A14;font-size:14px}
.review-meta{font-size:12px;color:#8A5060}

/* CTA */
.sec-cta{background:#670f22;padding:clamp(80px,10vw,140px) clamp(24px,6vw,100px)}
.cta-inner{max-width:960px;margin:0 auto;text-align:center}
.cta-label{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:20px}
.cta-title{font-family:'Playfair Display',serif;font-weight:900;color:#fff;margin-bottom:20px;line-height:1.05;font-size:clamp(2.5rem,6vw,5rem);letter-spacing:-.02em}
.cta-desc{color:rgba(255,255,255,.8);margin-bottom:48px;line-height:1.7;font-size:1.05rem}
.cta-btns{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}
.cta-btn-main{display:inline-flex;align-items:center;gap:10px;padding:18px 48px;border-radius:100px;background:#fff;color:#670f22;font-weight:700;font-size:1.05rem;text-decoration:none;transition:transform .2s,box-shadow .2s}
.cta-btn-main:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(0,0,0,.2)}
.cta-btn-sec{display:inline-flex;align-items:center;gap:10px;padding:18px 48px;border-radius:100px;background:transparent;color:#fff;font-weight:700;font-size:1.05rem;text-decoration:none;border:2px solid rgba(255,255,255,.5);transition:background .3s,border-color .3s}
.cta-btn-sec:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.8)}
.cta-note{color:rgba(255,255,255,.5);margin-top:28px;font-size:13px}
.cta-langs{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:8px 18px;border:1px solid rgba(255,255,255,.25);border-radius:100px;color:rgba(255,255,255,.85);font-size:13px;font-weight:500}
.cta-map{margin-top:48px;width:100%;height:clamp(300px,40vw,450px);border-radius:16px;overflow:hidden;box-shadow:0 8px 30px rgba(0,0,0,.3)}

/* Footer */
.site-footer{background:#3A0A14;color:#fff;padding:60px clamp(24px,6vw,100px) 40px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px;margin-bottom:60px}
.footer-logo{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.footer-name{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;display:block}
.footer-sub{font-size:10px;color:rgba(255,255,255,.5);letter-spacing:.15em;text-transform:uppercase;display:block}
.footer-desc{color:rgba(255,255,255,.6);line-height:1.7;font-size:.9rem;max-width:300px}
.footer-social{display:flex;gap:12px;margin-top:24px}
.footer-social a{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:16px;transition:background .2s}
.footer-social a:hover{background:#cd0c36;transition:background .2s}
.footer-social a svg{width:18px;height:18px;fill:rgba(255,255,255,.8)}
.footer-social a:hover svg{fill:#fff}
.footer-heading{font-family:'Playfair Display',serif;font-weight:700;font-size:1.1rem;margin-bottom:20px}
.footer-hours{color:rgba(255,255,255,.6);font-size:.9rem;display:flex;flex-direction:column;gap:18px}
.footer-hours .fw{color:#fff;font-weight:600}
.footer-hours .dim{color:rgba(255,255,255,.5);font-style:italic}
.footer-hours .hours-group{display:flex;flex-direction:column;gap:5px;padding-left:14px;border-left:2px solid #cd0c36}
.footer-hours .hours-group.hours-closed{border-left-color:rgba(255,255,255,.25)}
.footer-hours .hours-days{color:rgba(255,255,255,.9);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;margin:0 0 4px;font-weight:600}
.footer-hours .hours-slot{display:flex;justify-content:space-between;gap:20px;margin:0;line-height:1.4}
.footer-hours .hours-label{color:rgba(255,255,255,.55)}
.footer-contact{color:rgba(255,255,255,.6);font-size:.9rem;line-height:2.2}
.footer-contact a{color:rgba(255,255,255,.6);text-decoration:none;display:block}
.footer-contact a:hover{color:#fff}
.footer-map{border-radius:12px;overflow:hidden}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:32px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.footer-bottom p{color:rgba(255,255,255,.4);font-size:13px}
.footer-credit{color:rgba(255,255,255,.3)!important;font-size:12px!important}

/* Lightbox */
#lightbox{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.92);backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}
#lightbox.active{display:flex;opacity:1}
#lightbox img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb-btn{position:absolute;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.15);border:none;color:#fff;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}
.lb-btn:hover{background:rgba(255,255,255,.3)}
#lb-close{top:20px;right:24px}
#lb-prev{top:50%;left:20px;transform:translateY(-50%)}
#lb-next{top:50%;right:20px;transform:translateY(-50%)}
#lb-caption{position:absolute;bottom:24px;left:16px;right:16px;color:rgba(255,255,255,.8);font-size:14px;font-weight:500;text-align:center}
#lb-caption span{margin:0 4px}
#lb-cat{display:inline-block;padding:5px 14px;background:rgba(103,15,34,.6);border-radius:100px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.9)}

/* Logo image */
.logo-img{width:42px;height:42px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1px solid #cd0c36;padding:0;pointer-events:none}
.footer-logo .logo-img{width:48px;height:48px}

/* Footer map link */
.footer-map-link{display:block;margin-top:10px;color:#cd0c36;text-decoration:none;font-size:.85rem;font-weight:500;transition:color .2s}
.footer-map-link:hover{color:#cd0c36}

/* Responsive */
@media(max-width:768px){
  #desktop-nav{display:none!important}
  .mobile-menu-btn{display:flex!important}
  .two-col-grid,.two-col{grid-template-columns:1fr!important}
  .img-col{display:none!important}
  .nosotros-carousel{display:block}
  .gallery-grid{grid-template-columns:1fr 1fr!important}
  .gallery-item:nth-child(1),.gallery-item:nth-child(6){grid-column:span 2}
  .footer-grid{grid-template-columns:1fr 1fr!important;gap:32px}
  .lb-btn{width:40px;height:40px;font-size:18px}
  #lb-prev{left:8px}#lb-next{right:8px}
  .hero-bg img{object-position:left 60%}
}
@media(max-width:480px){
  .gallery-grid{grid-template-columns:1fr!important}
  .gallery-item:nth-child(1),.gallery-item:nth-child(6){grid-column:span 1}
  .footer-grid{grid-template-columns:1fr!important}
}
