@font-face {
    font-family: Inter;
    src: url(fonts/Inter.ttf);
}
@font-face {
    font-family: MosseThai;
    src: url(fonts/mosse-thai-book.otf);
}
@font-face {
    font-family: MosseThaiBold;
    src: url(fonts/mosse-thai-bold.otf);
}
@font-face {
    font-family: Playfair;
    src: url(fonts/PlayfairDisplay.ttf);
}

:root {
    --color-primary: #A01B20;

}

:root {
    /* Brand */
    --primary: #A01B20;
    --primary-hover: #84161A;
    --primary-light: #C44A4F;

    /* Accents */
    --accent-gold: #C8A46A;
    --accent-sand: #E9DFC9;

    /* Backgrounds */
    --background: #F8F5F1;
    --surface: #FFFFFF;

    /* Text */
    --text-primary: #1E1E1E;
    --text-secondary: #6B6B6B;

    /* Borders */
    --border: #E3DDD6;

    /* Status */
    --success: #3D7A52;
    --warning: #D19A29;
    --error: #A01B20;

    /* Fonts */
    --font-one: Inter;
    --font-two: MosseThai;
    --font-three: Playfair;

    --radius: 12px;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-two), sans-serif;
    background: var(--sand);
}
.navbar.navbar-web {
    /* background: linear-gradient(180deg,#000000e6 3.13%,#0000004d 77.6%,#0000 100%,#0000 0); */
    overflow: hidden;
    background: radial-gradient(circle at 15% 30%, rgba(160,27,32,.35), transparent 55%),
      radial-gradient(circle at 85% 70%, rgba(201,162,75,.18), transparent 50%),
      linear-gradient(135deg, #1A1210, #0D0908);
    padding: 16px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    box-shadow: 0 16px 40px rgba(0,0,0,.3);
}
.navbar-brand {
    width: 190px;
    height: 60px;
    padding: 0; 
    margin: 0;
}
.navbar-toggler {
    color: var(--surface);
    border: 1px solid;
    padding-block: .5rem;
    transition: all 300ms;
}
.navbar-toggler:focus {
    box-shadow: none;
    scale: 104%;
}
.collapse.navbar-collapse {
    justify-content: space-evenly;
}
.collapse.navbar-collapse .navbar-nav {
    gap: 1rem;
}
.nav-buttons {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.nav-buttons.movil {
    display: none;
}
.nav-buttons-icon {
    display: inherit;
    align-items: center;
    gap: 1rem;
}
.nav-buttons-icon a {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.14);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--surface);
    font-size: .85rem;
    text-decoration: none;
}
.nav-buttons-icon a:hover {
    background: rgba(255,255,255,.18);
}
.call-to-action {
    color: var(--surface);
    transition: all 300 ms;
}
.call-to-action .button {
    background-color: var(--primary);
    color: var(--surface);
    border-radius: 30px;
    display: inherit;
    gap: .5rem;
}
.call-to-action .button.button-search {
    width: 110px;
}
.call-to-action .button:hover {
    background-color: var(--primary-hover);
}
.call-to-action > .button:active {
    background-color: var(--primary);
    color: var(--surface);
}
.call-to-action .button.line {
    background: transparent;
    border: 1px solid #C9A24B;
    color: #C9A24B;
    transition: all .15s ease;
}
.call-to-action .button.line:hover {
    background-color: #C9A24B;
    color: initial;
}
.navbar-brand img {
    width: 190px;
    height: inherit;
    padding:8px 14px; 
    /* background:rgba(255,255,255,.06);  */
    border-radius:10px;
    /* border:1px solid rgba(255,255,255,.1); */
}
.navbar-nav .nav-item .nav-link {
    color: rgba(255,255,255,.85);
    padding: 9px 13px;
    border-radius: 20px;
    transition: all .15s ease;
}
.navbar-nav .nav-item .nav-link:hover {
    background: rgba(255,255,255,.1);
    color: var(--surface);
}
.whatsapp-home {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    width: 55px;
    height: 55px;
    bottom: 2%;
    right: 2%;
    z-index: 50;
    font-size: 2rem;
    background: #25D366;
    padding: 0px 11px;
    color: #fff;
    border: 0px solid #128C7E;
    border-radius: 50%;
}
.whatsapp-home:hover {
    color: inherit;
}
.whatsapp-home .onda,
.whatsapp-home .onda:before,
.whatsapp-home .onda:after {
  -webkit-animation:onda 3s infinite;
  animation:onda 3s infinite;
  border-radius:50%;
  box-shadow:0 0 0 0 rgba(27,215,65,.3);
  top:0;
  height:55px;
  position:absolute;
  width:55px
}
.whatsapp-home .onda:before {
  -webkit-animation-delay:.9s;
  animation-delay:.9s;
  content:"";
  position:absolute;
  top:0
}
.whatsapp-home .onda:after {
  -webkit-animation-delay:.6s;
  animation-delay:.6s;
  content:"";
  position:absolute;
  top:0
}

@keyframes onda{70%{box-shadow:0 0 0 50px rgba(27,215,65,0)}100%{box-shadow:0 0 0 0 rgba(27,215,65,0)}}

.carousel .carousel-control-prev-icon, 
.carousel .carousel-control-next-icon {
    color: var(--brand);
    font-size: 1rem;
    background-color: #ffffff78;
    padding: .875rem;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    backdrop-filter: blur(10px);
    background-image: none;
    transition: all 300ms;
}
.carousel .carousel-control-prev-icon:active, 
.carousel .carousel-control-next-icon:active {
    scale: 110%;
}
.carousel .carousel-indicators button {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: none;
}
.carousel .carousel-inner .carousel-item {
    height: 570px;
}
.carousel .carousel-inner .carousel-item img {
    height: inherit;
    object-fit: cover;
}
.form-search {
    display: none;
    flex-direction: row;
    align-items: center;
    gap: .5rem;
    background: var(--surface);
    justify-content: center;
    padding: 1.3rem;
    position: absolute;
    top: 93%;
    left: 50%;
    translate: -50% 0;
    box-shadow: 0 4px 12px 0 #0003;
    border-radius: 40px;
    z-index: 10;
}
.form-search > div {
    display: flex;
    align-items: center;
}
.form-search > div > i {
    color: var(--primary);
}
.form-search input,
.form-search select {
    border: none;
    width: 110px;
    cursor: pointer;
}
.form-search input:focus,
.form-search select:focus {
    box-shadow: none;
}
.form-search .destinity {
    width: 200px;
}
.promotion {
    margin-block: 5rem;
}
.promotion .promotion__text {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-bottom: 3rem;
    text-align: center;
}
.promotion .promotion__text h2 {
    font-size: .875rem;
    color: var(--color-primary);
}
.promotion .promotion__text h3 {
    font-size: 2.25rem;
}
.promotion .promotion__text p {
    font-size: 1rem;
    margin-bottom: 0;
    color: #6b6b6b;
}
.bi-info-circle-fill {
    cursor: help;
}
.custom-tooltip {
    --bs-tooltip-bg: var(--brand-tint);
    --bs-tooltip-color: var(--brand-deep);
    --bs-tooltip-font-size: .75rem;
    /* --bs-tooltip-border-radius: .7rem; */
}
.description-destinity {
    font-size: .75rem;
    color: #636363;
}
.bullets.destinity {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    column-gap: 1rem;
}
.item-destinity {
    background: transparent;
    color: var(--brand-deep);
    font-size: .72rem;
    padding: 5px 12px;
    border-radius: 20px;
    border: 1px solid var(--brand-deep);
}
#nuestrosHoteles {
    scroll-margin-top: 122px;
    justify-content: center;
}
.link-destinity {
    color: var(--brand-deep);
    text-decoration: none;
}
.link-destinity:hover {
    color: var(--brand);
}

.final-cta{ text-align:center; padding:56px 20px 16px; }
.final-cta .sec-eyebrow{ color:var(--brand); }
.final-actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-bottom:40px; }
.stats-divider{ border-top:2px solid var(--line); margin:3rem 7rem; }
.stats-row{
max-width:1080px; margin:0 auto; padding:36px 20px; display:grid; grid-template-columns:repeat(2,1fr); gap:28px; text-align:center;
}
.stats-label-top{ font-size:1rem; color:var(--ink-soft); text-align:center; margin-bottom:8px; }
.stat-item .n{ font-family:'Fraunces',serif; font-size:1.8rem; font-weight:600; color:var(--brand); }
.stat-item .l{ font-size:.76rem; color:var(--ink-soft); margin-top:2px; }

.testi-grid{ display:grid; grid-template-columns:1fr; gap:18px; margin-bottom:36px; }
.testi-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px 22px; }
.testi-stars{ color:var(--gold); font-size:.8rem; margin-bottom:14px; }
.testi-quote{ font-size:.85rem; color:var(--ink-soft); line-height:1.65; font-style:italic; margin:0 0 18px; }
.testi-author{ border-top:1px solid var(--line); padding-top:14px; }
.testi-author .name{ font-size:.85rem; font-weight:700; color:var(--ink); }
.testi-author .loc{ font-size:.76rem; color:var(--ink-soft); }
.testi-author .hotel{ font-size:.76rem; color:var(--brand-deep); font-weight:600; }
.testi-cta{ text-align:center; }
.testi-cta p{ font-size:.88rem; color:var(--ink-soft); margin:0 0 16px; }
.btn-solid{ background:var(--brand); color:#fff; border:none; font-weight:700; font-size:.85rem; padding:12px 26px; border-radius:30px; text-decoration:none; display:inline-block; }
.btn-solid:hover{ background:var(--brand-deep); }
.btn-outline{ background:transparent; border:1.5px solid var(--brand); color:var(--brand-deep); font-weight:700; font-size:.85rem; padding:11px 26px; border-radius:30px; text-decoration:none; display:inline-block; }
.btn-outline:hover{ background:var(--brand); color:#fff; }
.section-block{ padding:56px 0; }
.sec-head{ text-align:center; max-width:620px; margin:0 auto 40px; }
.sec-eyebrow{ color:var(--brand); font-size:.875rem; margin-bottom:10px; }
.sec-title{ font-size:2.25rem; margin:0 0 12px;}
.sec-title .accent{ color:var(--brand); }
.sec-sub{ font-size:1rem; color:gray; margin:0; }

.services-grid{ display:grid; grid-template-columns:1fr; gap:18px; }

.service-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px 24px; }
.service-card i{ font-size:1.4rem; color:var(--brand); margin-bottom:18px; display:block; }
.service-card h3{ font-size:1.02rem; font-weight:600; margin:0 0 8px; }
.service-card p{ font-size:.82rem; color:var(--ink-soft); line-height:1.55; margin:0; }

.faq-section{ background:var(--sand, #FBF6F1); }

.faq-accordion{ max-width:760px; margin:0 auto; }

.faq-accordion .accordion-item{
  background:#fff;
  border:1px solid var(--line, #EAE0DA);
  border-radius:var(--radius, 12px);
  overflow:hidden;
  margin-bottom:12px;
}
.faq-accordion .accordion-item:last-child{ margin-bottom:0; }

.faq-accordion .accordion-button{
  font-family: var(--font-two), sans-serif;
  font-size:.95rem;
  font-weight:600;
  color:var(--text-primary, #1E1E1E);
  padding:18px 20px;
  background:#fff;
  box-shadow:none !important;
}
.faq-accordion .accordion-button:not(.collapsed){
  color:var(--primary, #A01B20);
  background:#fff;
}
/* quita el fondo azul default de bootstrap y usa el icono en rojo de marca */
.faq-accordion .accordion-button::after{
  filter: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23A01B20'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
}

.faq-accordion .accordion-body{
  font-size:.85rem;
  color:var(--text-secondary, #6B6B6B);
  line-height:1.65;
  padding:0 20px 20px;
}

.faq-accordion .accordion-body.faq {
  display: block;
}

.faq-cta{
  text-align:center;
  margin-top:36px;
}
.faq-cta p{
  font-size:.88rem;
  color:var(--text-secondary, #6B6B6B);
  margin:0 0 14px;
}

.site-footer{ background:var(--ink); color:#D9CFC9; padding:40px 0 0; }
.footer-grid{ display:grid; grid-template-columns:1fr; gap:28px; padding-bottom:32px; border-bottom:1px solid rgba(255,255,255,.1); }

.footer-brand{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.footer-brand .logo-slot{ width:150px; }
.footer-brand .logo-slot svg{ width:100%; height:auto; display:block; }
.footer-brand .logo-slot svg path{ fill:#fff !important; }
.footer-tagline{ font-size:.8rem; opacity:.7; line-height:1.6; max-width:280px; }
.footer-col h5{ color:#fff; font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; margin:0 0 12px; }
.footer-col a{ display:block; text-decoration:none; color:#B7ACA6; font-size:.82rem; margin-bottom:9px; }
.footer-col a:hover{ color:#fff; }
.footer-social{ display:flex; gap:8px; margin-bottom:12px; }
.footer-social a{ width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; text-decoration:none; color:#fff; font-size:.85rem; }
.footer-bottom{ display:flex; flex-direction:column; gap:8px; padding:18px 0; font-size:.74rem; opacity:.6; }

.footer-bottom a { 
    text-decoration:none; 
    color:inherit; 
    margin-left:14px; 
}

 @media (min-width:640px) { 
    .services-grid { 
        grid-template-columns:1fr 1fr; 
    }
    .stats-row { 
        grid-template-columns:repeat(4,1fr); 
    } 
}  

@media (min-width:768px) { 
    .form-search {
        display: flex;
    }
    .footer-bottom{ 
        flex-direction:row; 
        justify-content:space-between; 
    }
    .footer-grid{ 
        grid-template-columns:1.4fr 1fr 1fr 1fr; gap:24px; 
    }
    .testi-grid { 
        grid-template-columns:1fr 1fr 1fr; 
    }  
}

@media (min-width:960px) { 
    .services-grid { 
        grid-template-columns:1fr 1fr 1fr; 
    } 
}
@media (min-width:1024px) { 
    .nav-buttons.desktop {
        display: none;
    } 
    .nav-buttons.movil {
        display: flex;
    } 
}