
:root{ --brand:#2a6f4e; --accent:#f4a261; --dark:#1e293b;}
html{scroll-behavior:smooth}
body{font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial; color:#1a1a1a}
.navbar{transition:all .25s ease; padding-top:1rem; padding-bottom:1rem;}
.navbar.scrolled{box-shadow:0 8px 24px rgba(0,0,0,.08);background:#fff!important}
.nav-link{font-weight:600}
.navbar-brand img{height:48px;width:auto}
.btn-brand{background:var(--brand); border-color:var(--brand)}
.btn-brand:hover{background:#245f43;border-color:#245f43}
.hero{position:relative;min-height:66vh;display:grid;place-items:center;color:#fff;text-align:center;
background-image:linear-gradient(rgba(0,0,0,.45), rgba(0,0,0,.45)), url(../img/hero-oliva.webp);background-size:cover;background-position:center}
.hero h1{font-size:clamp(2rem,4vw,3.25rem);font-weight:800}
.section-title{font-weight:800;letter-spacing:.3px}
.icon-xxl{font-size:3rem;color:var(--brand)}
.card{border:0;box-shadow:0 10px 30px rgba(0,0,0,.06);border-radius:1rem}
.card img{border-top-left-radius:1rem;border-top-right-radius:1rem}
footer{background:#0f172a;color:#e2e8f0}
footer a{color:#cbd5e1;text-decoration:none}
footer a:hover{color:#fff;text-decoration:underline}
.mini-hero{background:linear-gradient(135deg, var(--brand), #0f766e); color:#fff; border-radius:1rem}
.list-check li{margin:.25rem 0}
.brand-chip{background:#0f766e;color:#fff;font-weight:700;padding:.25rem .6rem;border-radius:100rem;font-size:.8rem}
.bg-olive{background:#f7faf7}
.shadow-soft{box-shadow:0 10px 24px rgba(0,0,0,.08)}
.rounded-2xl{border-radius:1rem}
.cta-ribbon{background:linear-gradient(90deg, var(--accent), #ffd08a); color:#111; font-weight:700}
.map-responsive{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:1rem}
.map-responsive iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}
.footer-logo{height:42px;width:auto}
/* Logos grandes con pie */
.seal-stack img{max-height:300px;width:auto;object-fit:contain}
/* Cookie banner */
.cookie-banner{position:fixed; left:50%; bottom:1rem; transform:translateX(-50%); width:min(calc(100% - 2rem), 960px); z-index:1080; display:none;}
.cookie-banner.show{display:block;}
/* Floating WhatsApp button */
.whatsapp-fab{position:fixed; right:16px; bottom:16px; z-index:1090; display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff; box-shadow:0 10px 20px rgba(0,0,0,.2);}
.whatsapp-fab:hover{color:#fff; filter:brightness(.95);}
.whatsapp-fab .bi{font-size:1.6rem; line-height:1;}
/* 25º Aniversario modal */
.anniv-gradient{background:linear-gradient(135deg,#fff7ed,#ffedd5);}
.coupon-box{border:2px dashed #b45309; padding:.35rem .6rem; border-radius:.6rem; font-weight:800; font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; color:#92400e;}

/* Accent text utilities for feature icons */
.text-brand{ color: var(--brand) !important; }
.text-accent{ color: var(--accent) !important; }
.text-indigo{ color: #6366f1 !important; }

/* Feature icons hover */
#features .feature-icon{display:inline-block; transition: transform .2s ease; transform-origin:center;}
#features .p-4:hover .feature-icon{transform:scale(1.08);}





/* --- Fix imágenes 'Experiencias' (evitar distorsión y unificar alto) --- */
.card-img-top{
  width:100%;
  height:220px;
  object-fit:cover;
}
@media (min-width: 992px){
  .card-img-top{ height:240px; }
}


/* Fix robusto logo footer */
.footer-logo{height:40px!important;width:auto!important;max-width:100%!important;object-fit:contain!important}
@media(min-width:992px){.footer-logo{height:48px!important}}


/* --- Fix 'Experiencias' (oleoturismo/astroturismo) --- */
.exp-card-img{
  width:100%;
  height:auto;
  display:block;
}
@media (min-width: 576px){
  .exp-card-img{
    aspect-ratio: 16 / 9;
    object-fit: cover;
  }
}



/* --- Social buttons: sólidos, circulares y con marca --- */
.social-btn{
  width:32px;height:32px;border-radius:9999px;
  display:inline-flex;align-items:center;justify-content:center;
  background:#212529;color:#fff;text-decoration:none;
  transition:transform .15s ease,filter .15s ease, box-shadow .15s ease;
  box-shadow:0 2px 8px rgba(0,0,0,.15)
}
.social-btn:hover{ transform:translateY(-1px); filter:brightness(1.08) }
.social-btn i{ font-size:1rem; line-height:1 }
@media (min-width:992px){ .social-btn{ width:32px;height:44px } }
/* Marcas */
.social-facebook{ background:#1877F2 }
.social-instagram{ background:#E1306C }
.social-x{ background:#000 }
.social-youtube{ background:#FF0000 }
.social-tiktok{ background:#010101 }
.social-linkedin{ background:#0A66C2 }
/* Accesibilidad */
.social-btn:focus{ outline:2px solid rgba(255,255,255,.9); outline-offset:2px }


/* A11y contrast fixes */
footer.bg-light, footer.text-bg-light, footer:not(.bg-dark):not(.text-bg-dark){ color:#212529; }
footer.bg-light a, footer.text-bg-light a, footer:not(.bg-dark):not(.text-bg-dark) a{ color:#212529; }
footer:not(.bg-dark):not(.text-bg-dark) .small,
footer:not(.bg-dark):not(.text-bg-dark) .text-secondary{ color:#495057 !important; }
.text-secondary{ color:#495057; } /* darker than default */



/* Footer typographic scale (chosen) */
footer{ font-size:.95rem; line-height:1.6; }
@media (min-width:992px){ footer{ font-size:1rem; } }
.footer-brand-title{ font-size:1.20rem !important; letter-spacing:.005em; }
@media (min-width:992px){ .footer-brand-title{ font-size:1.35rem !important; } }
.footer-heading{ font-size:1rem; text-transform:uppercase; letter-spacing:.02em; margin-bottom:.5rem; }
@media (min-width:992px){ .footer-heading{ font-size:1.05rem; } }



/* Footer redesign: legibility & contrast on black */
footer{ background-color:#121212; font-family:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji"; }
footer, footer p, footer li, footer small, footer .small{ color:#E9ECEF !important; font-weight:400 !important; line-height:1.65; }
footer .footer-brand-title{ color:#FFFFFF !important; font-weight:700 !important; letter-spacing:.005em; }
footer .footer-heading{ color:#F8F9FA !important; font-weight:600 !important; text-transform:uppercase; letter-spacing:.02em; }
footer a{ color:#E9ECEF !important; text-decoration-color:rgba(255,255,255,.5); text-underline-offset:2px }
footer a:hover{ color:#FFFFFF !important; text-decoration-color:#FFFFFF }
footer .text-secondary, footer .text-muted{ color:#CED4DA !important; }

/* === Fix: mostrar el nombre del hotel también en móvil === */
.navbar-brand .brand-name{ display:inline; font-weight:700; }

@media (max-width: 575.98px){
  .navbar-brand img{ height:40px; }
  .brand-chip{ display:none !important; }
  .navbar-brand .brand-name{
    display:inline !important;
    max-width:55vw;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    vertical-align:middle;
  }
}
/* === Fin fix === */


/* A11y helpers */
.visually-hidden-focusable:not(:focus):not(:focus-within){
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0
}
.skip-link{position:absolute;left:-9999px;top:auto}
.skip-link:focus{left:8px;top:8px;z-index:10000;background:#fff;color:#000;padding:.5rem .75rem;border-radius:.5rem;box-shadow:0 0 0 3px rgba(0,0,0,.2)}
a:focus-visible, button:focus-visible, [role="button"]:focus-visible {
  outline:2px dashed currentColor; outline-offset:2px;
}
@media (prefers-reduced-motion: reduce){
  * { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

