/* ============================================================
   Costa Rentals — estilos base compartidos por todas las páginas
   (reset, tipografía, botones, navegación, menú móvil, footer,
   botón flotante de WhatsApp, animación de aparición).
   Las secciones de cada página van en su propio bloque más abajo.
   ============================================================ */

/* ---------- RESET ---------- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}
img,svg{display:block;max-width:100%}
button,input,select{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
ul{list-style:none}

/* ---------- BASE ---------- */
body{
  font-family:var(--font-body);font-weight:300;font-size:16px;line-height:1.7;
  color:var(--ink);background:var(--bone);overflow-x:hidden;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
body.no-scroll{overflow:hidden}
::selection{background:var(--petrol);color:#fff}
::-webkit-scrollbar{width:9px}
::-webkit-scrollbar-track{background:var(--bone-2)}
::-webkit-scrollbar-thumb{background:var(--petrol-light);border-radius:9px}
:focus-visible{outline:2px solid var(--petrol);outline-offset:3px;border-radius:2px}

.wrap{max-width:var(--max-width);margin:0 auto;padding-inline:var(--page-gutter)}
.wrap-narrow{max-width:940px;margin:0 auto;padding-inline:var(--page-gutter)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- TYPE ---------- */
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.08;letter-spacing:-.025em;text-wrap:balance}
.display-1{font-size:clamp(2.7rem,6.8vw,5.6rem);line-height:1;letter-spacing:-.042em}
.display-2{font-size:clamp(1.95rem,4.1vw,3.3rem);letter-spacing:-.035em}
.display-3{font-size:clamp(1.45rem,2.4vw,2.05rem);letter-spacing:-.03em}
em{font-style:normal}
.display-1 em,.display-2 em,.display-3 em,em.accent{color:var(--ocean)}

.lead{font-size:clamp(.98rem,1.25vw,1.08rem);line-height:1.8;color:var(--muted);font-weight:300;text-wrap:pretty}
.body-text{color:var(--muted);line-height:1.8;font-weight:300;text-wrap:pretty}
.rule{width:48px;height:2px;background:var(--ocean);margin:1.5rem 0;border-radius:2px}
.rule.center{margin-inline:auto}

.section{padding:clamp(72px,10vw,140px) 0}
.section-head{max-width:720px}
.section-head.center{margin-inline:auto;text-align:center}

/* marcador visible de contenido por definir */
.pending{background:rgba(180,35,24,.08);color:var(--danger);border-radius:3px;padding:0 .2em;font-weight:500}
.site-footer .pending{background:rgba(255,255,255,.92)}
/* en títulos: discreto, con la misma fuente y tamaño del título */
:is(h1,h2) .pending{
  font:inherit;letter-spacing:inherit;color:inherit;background:rgba(180,35,24,.05);padding:0;border-radius:0;
  text-decoration:underline dotted rgba(180,35,24,.6);text-decoration-thickness:.06em;text-underline-offset:.14em
}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:1rem 2rem;border-radius:var(--radius-pill);border:1px solid transparent;
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;
  cursor:pointer;transition:all .35s var(--ease);white-space:nowrap;
}
.btn svg{flex:none}
.btn-solid{background:var(--ink);color:#fff}
.btn-solid:hover{background:var(--petrol);transform:translateY(-2px);box-shadow:0 14px 32px -12px rgba(22,37,46,.6)}
.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{background:var(--bone);transform:translateY(-2px);box-shadow:0 14px 34px -12px rgba(0,0,0,.45)}
.btn-outline{border-color:var(--line);color:var(--ink);background:transparent}
.btn-outline:hover{border-color:var(--ink);background:var(--ink);color:#fff;transform:translateY(-2px)}
.btn-glass{
  background:rgba(255,255,255,.13);color:#fff;border-color:rgba(255,255,255,.32);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.btn-glass:hover{background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.6);transform:translateY(-2px)}
.btn-whatsapp{background:var(--whatsapp);color:#fff}
.btn-whatsapp:hover{background:var(--whatsapp-hover);transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(37,211,102,.7)}
.btn-small{padding:.74rem 1.4rem;font-size:.64rem}

/* ---------- SCROLL PROGRESS ---------- */
.scroll-progress{position:fixed;top:0;left:0;height:2px;width:0;background:var(--petrol);z-index:1200;transition:width .1s linear}

/* ---------- NAV ---------- */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:1000;
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  padding:1.4rem var(--page-gutter);transition:all .45s var(--ease);
}
.nav.solid{
  background:rgba(247,244,239,.9);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  padding-block:.8rem;box-shadow:0 1px 0 var(--line-soft),0 10px 40px -28px rgba(22,37,46,.4);
}
/* páginas interiores: barra sólida que acompaña el scroll */
.nav.nav-static{position:sticky;top:0}

/* wordmark — idéntico en nav, menú móvil y footer (sin ícono: [PENDIENTE]) */
.brand{display:flex;align-items:center;gap:.72rem;flex:none}
.brand-type{display:flex;flex-direction:column;justify-content:center;line-height:1}
.brand-name{
  font-family:var(--font-brand);font-weight:400;font-size:1.32rem;letter-spacing:.2em;text-transform:uppercase;
  color:#fff;padding-left:.09em;transition:color .4s var(--ease)
}
.brand-subtitle{
  font-size:.46rem;letter-spacing:.3em;text-transform:uppercase;font-weight:400;
  color:rgba(255,255,255,.6);margin-top:.36rem;padding-left:.12em;transition:color .4s var(--ease)
}
.nav.solid .brand-name{font-size:1.2rem;color:var(--petrol)}
.nav.solid .brand-subtitle{font-size:.43rem;color:var(--muted)}
.brand-sheet .brand-name{font-size:1.45rem;color:var(--petrol)}
.brand-sheet .brand-subtitle{font-size:.5rem;color:var(--muted)}

.nav-links{display:flex;align-items:center;gap:2.1rem}
.nav-links a{
  font-size:.74rem;letter-spacing:.06em;font-weight:400;
  color:rgba(255,255,255,.88);transition:color .3s;position:relative;padding-block:.3rem
}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1.5px;
  background:var(--petrol);transition:width .35s var(--ease)
}
.nav.solid .nav-links a{color:var(--ink)}
.nav.solid .nav-links a:hover{color:var(--petrol)}
.nav.solid .nav-links a:hover::after{width:100%}

.nav-right{display:flex;align-items:center;gap:.7rem;flex:none}

/* selector de idioma (EN se activa en la Fase F) */
.language-switch{
  display:flex;align-items:center;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-pill);
  padding:2px;background:rgba(255,255,255,.12);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  transition:all .4s var(--ease)
}
.nav.solid .language-switch{border-color:var(--line);background:rgba(22,37,46,.04)}
.language-switch button,.language-switch a{
  background:none;border:0;cursor:pointer;border-radius:var(--radius-pill);
  padding:.34rem .72rem;font-size:.66rem;letter-spacing:.08em;font-weight:500;
  color:rgba(255,255,255,.62);transition:all .3s var(--ease);text-decoration:none
}
.language-switch button:disabled{cursor:not-allowed;opacity:.55}
.nav.solid .language-switch button,.nav.solid .language-switch a{color:var(--muted)}
.language-switch button[aria-pressed="true"],.language-switch a[aria-current="true"]{background:var(--ink);color:#fff}

.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:.55rem;margin-right:-.55rem}
.burger span{display:block;width:22px;height:1.5px;background:#fff;transition:all .35s var(--ease)}
.nav.solid .burger span{background:var(--ink)}

/* ---------- MOBILE MENU ---------- */
.mobile-menu{
  position:fixed;inset:0;z-index:1100;background:var(--bone);
  display:flex;flex-direction:column;padding:1.4rem var(--page-gutter) 2.5rem;
  transform:translateY(-100%);transition:transform .55s var(--ease);visibility:hidden
}
.mobile-menu.open{transform:translateY(0);visibility:visible}
.mobile-menu-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:auto}
.mobile-menu-close{background:none;border:0;cursor:pointer;width:44px;height:44px;display:grid;place-items:center;color:var(--ink)}
.mobile-menu nav{display:flex;flex-direction:column;gap:.2rem;margin-block:auto}
.mobile-menu nav a{
  font-family:var(--font-display);font-weight:600;letter-spacing:-.03em;
  font-size:clamp(1.8rem,7.5vw,2.6rem);color:var(--ink);
  padding-block:.35rem;border-bottom:1px solid var(--line-soft);transition:color .3s,padding-left .3s var(--ease)
}
.mobile-menu nav a:hover{color:var(--ocean);padding-left:.55rem}
.mobile-menu-footer{display:flex;flex-direction:column;gap:.9rem;margin-top:2rem}

/* ---------- FOOTER (home) ---------- */
.site-footer{background:var(--petrol-darkest);color:rgba(255,255,255,.62);padding:clamp(52px,7vw,84px) 0 var(--whatsapp-fab-clearance)}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:clamp(28px,4vw,64px);padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,.1)}
.footer-logo{margin-bottom:1.4rem}
.footer-logo .brand-name{font-size:1.5rem}
.footer-logo .brand-subtitle{font-size:.5rem}
.footer-brand p{font-size:.88rem;line-height:1.75;max-width:330px}
.footer-social{display:flex;gap:.6rem;margin-top:1.5rem}
.footer-social a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.18);
  display:grid;place-items:center;color:rgba(255,255,255,.7);transition:all .35s var(--ease)}
.footer-social a:hover{background:#fff;border-color:#fff;color:var(--ink);transform:translateY(-3px)}
.footer-column h2{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  color:#fff;font-weight:500;margin-bottom:1.2rem}
.footer-column a{display:block;font-size:.88rem;padding-block:.34rem;transition:color .3s,padding-left .3s var(--ease)}
.footer-column a:hover{color:#fff;padding-left:.35rem}
.footer-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.8rem;
  font-size:.76rem;color:rgba(255,255,255,.66)}

/* ---------- FOOTER (páginas interiores) ---------- */
.compact-footer{background:transparent;padding:2rem 0 calc(var(--whatsapp-fab-clearance) + env(safe-area-inset-bottom,0px));
  border-top:1px solid var(--line-soft);margin-top:4rem;font-size:.82rem;color:var(--muted-dark)}
.compact-footer-inner{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.footer-legal a{color:rgba(255,255,255,.75);text-decoration:underline;text-underline-offset:2px}
.footer-legal a:hover{color:#fff}
.compact-footer-legal a{color:var(--muted-dark);text-decoration:underline;text-underline-offset:2px}
.compact-footer-legal a:hover{color:var(--ink)}
.compact-footer-whatsapp{display:inline-flex;align-items:center;gap:.45rem;color:var(--ink)}
.compact-footer-whatsapp:hover{color:#178A45}

/* ---------- WHATSAPP FLOATING BUTTON ---------- */
/* espacio al final de los footers para que el botón no tape los enlaces legales */
:root{--whatsapp-fab-clearance:calc(56px + clamp(16px,2.4vw,30px) + 1rem)}
.whatsapp-fab{
  position:fixed;right:clamp(16px,2.4vw,30px);bottom:clamp(16px,2.4vw,30px);z-index:900;
  width:56px;height:56px;border-radius:50%;background:var(--whatsapp);display:grid;place-items:center;
  box-shadow:0 12px 34px -10px rgba(37,211,102,.75);transition:transform .35s var(--ease);
  opacity:0;pointer-events:none
}
.whatsapp-fab.show{opacity:1;pointer-events:auto}
.whatsapp-fab:hover{transform:scale(1.08)}
.whatsapp-fab::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--whatsapp);animation:ping 2.6s ease-out infinite}
@keyframes ping{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.55);opacity:0}}

/* ---------- PERKS (depósito y cancelación) ---------- */
.perk-deposit{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .75rem;border-radius:var(--radius-pill);
  background:var(--petrol);color:#fff;font-size:.8rem;font-weight:600;letter-spacing:.01em;white-space:nowrap}
.perk-deposit b{font-weight:700}
.perk-cancellation{display:inline-flex;align-items:center;gap:.4rem;color:var(--success);font-size:.88rem;line-height:1.35}
.perk-cancellation svg{flex:none}

/* ---------- GALLERY GRID (miniaturas que abren el lightbox) ---------- */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(8px,1vw,14px)}
.gallery-grid button{
  border:0;padding:0;background:var(--sand);cursor:pointer;position:relative;overflow:hidden;
  border-radius:var(--radius-small);aspect-ratio:1;display:block
}
.gallery-grid button:nth-child(1){grid-column:span 2;grid-row:span 2;aspect-ratio:1}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.gallery-grid button:hover img{transform:scale(1.08)}
.gallery-grid button::after{content:"";position:absolute;inset:0;background:rgba(19,35,44,0);transition:background .4s}
.gallery-grid button:hover::after{background:rgba(19,35,44,.16)}
.gallery-more{
  position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:.25rem;text-align:center;padding:.5rem;
  background:rgba(19,35,44,.58);color:#fff;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  backdrop-filter:blur(3px);transition:background .4s
}
.gallery-grid button:hover .gallery-more{background:rgba(19,35,44,.7)}
.gallery-more-count{font-style:normal;font-family:var(--font-display);font-weight:600;font-size:1.4rem;letter-spacing:-.03em;line-height:1}

/* ---------- LIGHTBOX ---------- */
.lightbox{position:fixed;inset:0;z-index:1500;background:rgba(10,18,23,.96);display:flex;
  align-items:center;justify-content:center;padding:clamp(12px,3vw,48px)}
.lightbox[hidden]{display:none}
.lightbox img{max-width:100%;max-height:82vh;object-fit:contain;border-radius:var(--radius-small);animation:lightbox-in .45s var(--ease)}
@keyframes lightbox-in{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
.lightbox-close,.lightbox-arrow{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.08);color:#fff;display:grid;place-items:center;cursor:pointer;transition:all .3s}
.lightbox-close:hover,.lightbox-arrow:hover{background:rgba(255,255,255,.2)}
.lightbox-close{top:clamp(12px,2vw,26px);right:clamp(12px,2vw,26px);width:46px;height:46px}
.lightbox-arrow{top:50%;transform:translateY(-50%);width:50px;height:50px}
.lightbox-previous{left:clamp(10px,2vw,30px)}
.lightbox-next{right:clamp(10px,2vw,30px)}
.lightbox-counter{position:absolute;bottom:clamp(14px,3vw,34px);left:50%;transform:translateX(-50%);
  color:rgba(255,255,255,.65);font-size:.74rem;letter-spacing:.14em}

/* ---------- REVEAL ON SCROLL ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal-delay-1{transition-delay:.09s}.reveal-delay-2{transition-delay:.18s}.reveal-delay-3{transition-delay:.27s}.reveal-delay-4{transition-delay:.36s}
/* sin JS el contenido queda visible */
.no-js .reveal{opacity:1;transform:none}

/* ---------- RESPONSIVE (base) ---------- */
@media (max-width:1080px){
  .nav-links{display:none}
  .burger{display:flex}
  .footer-top{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:span 2}
}
@media (max-width:820px){
  html{scroll-padding-top:74px}
  #navBook{display:none}
  .nav{padding-block:1rem}
  .gallery-grid{grid-template-columns:repeat(3,1fr)}
  .gallery-grid button:nth-child(1){grid-column:span 3;aspect-ratio:16/10}
}
@media (max-width:520px){
  .footer-top{grid-template-columns:1fr}
  .footer-brand{grid-column:auto}
  .brand-name{font-size:1.12rem}
  .brand-subtitle{display:none}
  .btn{padding:.9rem 1.5rem;font-size:.66rem}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .gallery-grid button:nth-child(1){grid-column:span 2}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

@media print{
  .nav,.whatsapp-fab,.scroll-progress,.mobile-menu,.lightbox{display:none!important}
}

/* ---------- PÁGINAS LEGALES ---------- */
.legal{padding-top:2.4rem;padding-bottom:2rem}
.legal h1{font-size:clamp(1.9rem,4vw,2.6rem);letter-spacing:-.035em}
.legal-updated{color:var(--muted-dark);font-size:.86rem;margin-top:.4rem}
.legal-intro{margin-top:1.2rem;font-size:1.02rem;color:#34444D;line-height:1.75}
.legal section{padding:1.4rem 0;border-bottom:1px solid var(--line-soft)}
.legal h2{font-size:1.15rem;letter-spacing:-.015em;margin-bottom:.6rem}
.legal p,.legal li{color:#34444D;line-height:1.75;font-size:.97rem}
.legal p+p{margin-top:.6rem}
.legal ul{list-style:disc;padding-left:1.2rem;display:flex;flex-direction:column;gap:.45rem}
