/* ============================================================
   FINCA LA FORTALEZA — Style
   ============================================================ */

/* ---------- Reset & Variables ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg:#f4f1ea;
  --text:#2c2c2c;
  --accent:#857563;
  --sage:#a7b1a5;
  --white:#ffffff;
  --gold:#c4a77d;
  --font-heading:'DM Serif Display',Georgia,serif;
  --font-body:'Montserrat',system-ui,sans-serif;
  --nav-h:72px;
  --container:1280px;
  --radius:6px;
  --transition:0.35s cubic-bezier(.4,0,.2,1);
}

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}

body{
  font-family:var(--font-body);
  font-weight:400;
  font-size:16px;
  line-height:1.7;
  color:var(--text);
  background:var(--bg);
  overflow-x:hidden;
}

img{
  display:block;
  max-width:100%;
  height:auto;
}

a{
  color:inherit;
  text-decoration:none;
}

button{
  cursor:pointer;
  border:none;
  background:none;
  font-family:inherit;
}

/* ---------- Utility ---------- */
.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
}

.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:14px 36px;
  border-radius:var(--radius);
  font-family:var(--font-body);
  font-weight:500;
  font-size:.95rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  transition:var(--transition);
  border:2px solid transparent;
}

.btn--primary{
  background:var(--accent);
  color:var(--white);
  border-color:var(--accent);
}

.btn--primary:hover{
  background:transparent;
  color:var(--accent);
}

.btn--full{width:100%; justify-content:center;}

/* ---------- Navigation ---------- */
.nav{
  position:fixed;
  top:0;left:0;right:0;
  z-index:1000;
  height:var(--nav-h);
  transition:background .4s, box-shadow .4s, backdrop-filter .4s;
}

.nav--solid{
  background:rgba(244,241,234,.95);
  backdrop-filter:blur(12px);
  box-shadow:0 1px 0 rgba(0,0,0,.06);
}

.nav--solid .nav__logo,
.nav--solid .nav__links a,
.nav--solid .nav__lang-current{
  color:var(--text);
}

.nav__inner{
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.nav__logo{
  font-family:var(--font-heading);
  font-size:1.35rem;
  color:var(--white);
  white-space:nowrap;
  transition:color .3s;
}

.nav__links{
  display:flex;
  gap:28px;
}

.nav__links a{
  font-size:.82rem;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:rgba(255,255,255,.9);
  position:relative;
  transition:color .3s;
}

.nav__links a::after{
  content:'';
  position:absolute;
  bottom:-4px;left:0;
  width:0;
  height:2px;
  background:var(--gold);
  transition:width .3s;
}

.nav__links a:hover::after{width:100%;}

/* Mobile toggle */
.nav__toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  width:28px;
  padding:4px 0;
}

.nav__toggle span{
  display:block;
  height:2px;
  background:var(--white);
  border-radius:2px;
  transition:var(--transition);
}

.nav--solid .nav__toggle span{background:var(--text);}

/* Language */
.nav__lang{position:relative;}

.nav__lang-current{
  font-size:.8rem;
  font-weight:600;
  color:rgba(255,255,255,.9);
  padding:6px 12px;
  border:1px solid rgba(255,255,255,.3);
  border-radius:var(--radius);
  transition:var(--transition);
}

.nav--solid .nav__lang-current{
  border-color:rgba(0,0,0,.15);
}

.nav__lang-dropdown{
  position:absolute;
  top:calc(100% + 6px);
  right:0;
  background:var(--white);
  border-radius:var(--radius);
  box-shadow:0 8px 30px rgba(0,0,0,.12);
  overflow:hidden;
  opacity:0;
  visibility:hidden;
  transform:translateY(-8px);
  transition:var(--transition);
}

.nav__lang-dropdown.open{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

.nav__lang-dropdown button{
  display:block;
  width:100%;
  padding:8px 20px;
  font-size:.8rem;
  font-weight:600;
  color:var(--text);
  text-align:center;
  transition:background .2s;
}

.nav__lang-dropdown button:hover{
  background:var(--bg);
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  height:100vh;
  min-height:600px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding-bottom:10vh;
  overflow:hidden;
}

.hero__bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center 40%;
  transform:scale(1.08);
  animation:heroZoom 20s ease-in-out infinite alternate;
}

@keyframes heroZoom{
  0%{transform:scale(1.08) translateY(0);}
  100%{transform:scale(1.15) translateY(-1%);}
}

.hero__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,.15) 0%,
    rgba(0,0,0,.05) 40%,
    rgba(0,0,0,.35) 75%,
    rgba(0,0,0,.55) 100%
  );
}

.hero__content{
  position:relative;
  text-align:center;
  color:var(--white);
  max-width:700px;
  padding:0 24px;
}

.hero__subtitle{
  font-family:var(--font-body);
  font-size:.85rem;
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
  margin-bottom:16px;
  opacity:.9;
}

.hero__title{
  font-family:var(--font-heading);
  font-size:clamp(2.8rem, 6vw, 5rem);
  line-height:1.05;
  margin-bottom:16px;
}

.hero__tagline{
  font-family:var(--font-heading);
  font-style:italic;
  font-size:clamp(1rem, 2.2vw, 1.35rem);
  opacity:.9;
  margin-bottom:36px;
}

.hero__scroll{
  position:absolute;
  bottom:32px;
  left:50%;
  transform:translateX(-50%);
  color:var(--white);
  opacity:.6;
  animation:scrollBounce 2s infinite;
}

@keyframes scrollBounce{
  0%,100%{transform:translateX(-50%) translateY(0);}
  50%{transform:translateX(-50%) translateY(8px);}
}

/* ---------- Section Base ---------- */
.section{
  padding:100px 0;
}

.section__label{
  display:block;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:12px;
}

.section__label--center{text-align:center;}

.section__title{
  font-family:var(--font-heading);
  font-size:clamp(1.8rem, 3.5vw, 2.8rem);
  line-height:1.15;
  margin-bottom:20px;
  color:var(--text);
}

.section__title--center{text-align:center;}

.section__body{
  font-size:1.05rem;
  line-height:1.8;
  color:#555;
  max-width:680px;
}

.section__body--center{
  text-align:center;
  margin:0 auto 48px;
}

/* ---------- La Finca ---------- */
.finca__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:center;
}

.finca__image{
  border-radius:var(--radius);
  overflow:hidden;
}

.finca__image img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 6s ease;
}

.finca__image:hover img{transform:scale(1.04);}

.finca__text .section__body{margin-bottom:16px;}

.finca__features{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:16px;
  margin-top:32px;
}

.feature{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:.9rem;
  font-weight:500;
  color:var(--text);
}

.feature__icon{
  width:22px;
  height:22px;
  flex-shrink:0;
  color:var(--accent);
}

/* ---------- Divider Image ---------- */
.divider-image{
  width:100%;
  height:400px;
  overflow:hidden;
}

.divider-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* ---------- Gallery (Espacios) ---------- */
.section--espacios{
  background:var(--white);
}

.gallery__tabs{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-bottom:40px;
  flex-wrap:wrap;
}

.gallery__tab{
  padding:8px 22px;
  font-size:.82rem;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:#888;
  border:1px solid transparent;
  border-radius:100px;
  transition:var(--transition);
}

.gallery__tab:hover,
.gallery__tab.active{
  color:var(--accent);
  border-color:var(--accent);
}

.gallery__grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  grid-auto-rows:280px;
  gap:16px;
}

.gallery__item{
  position:relative;
  border-radius:var(--radius);
  overflow:hidden;
  cursor:pointer;
  transition:opacity .4s, transform .4s;
}

.gallery__item.hidden{
  display:none;
}

.gallery__item--tall{grid-row:span 2;}
.gallery__item--wide{grid-column:span 2;}

.gallery__item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s ease;
}

.gallery__item:hover img{transform:scale(1.06);}

.gallery__caption{
  position:absolute;
  bottom:0;left:0;right:0;
  padding:20px 16px 14px;
  background:linear-gradient(transparent, rgba(0,0,0,.5));
  color:var(--white);
  font-size:.82rem;
  font-weight:500;
  letter-spacing:.02em;
  transform:translateY(100%);
  transition:transform .35s ease;
}

.gallery__item:hover .gallery__caption{transform:translateY(0);}

/* ---------- Exterior ---------- */
.section--exterior{
  background:var(--bg);
}

.exterior__mosaic{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  grid-auto-rows:260px;
  gap:12px;
  margin-bottom:60px;
}

.exterior__item{
  border-radius:var(--radius);
  overflow:hidden;
}

.exterior__item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s ease;
}

.exterior__item:hover img{transform:scale(1.05);}

.exterior__item--hero{grid-column:span 4; grid-row:span 2;}
.exterior__item--wide{grid-column:span 2;}

.exterior__features{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:32px;
  margin-bottom:60px;
}

.exterior__feat{
  text-align:center;
}

.exterior__feat svg{
  width:36px;
  height:36px;
  color:var(--accent);
  margin-bottom:12px;
}

.exterior__feat h3{
  font-family:var(--font-heading);
  font-size:1.1rem;
  margin-bottom:6px;
}

.exterior__feat p{
  font-size:.88rem;
  color:#777;
  line-height:1.6;
}

.exterior__gardens{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.exterior__garden-item{
  border-radius:var(--radius);
  overflow:hidden;
  height:350px;
}

.exterior__garden-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s ease;
}

.exterior__garden-item:hover img{transform:scale(1.04);}

/* ---------- Entorno ---------- */
.section--entorno{
  background:var(--white);
}

.entorno__grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
}

.entorno__card{
  padding:36px 28px;
  background:var(--bg);
  border-radius:var(--radius);
  transition:transform .3s, box-shadow .3s;
}

.entorno__card:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 40px rgba(0,0,0,.08);
}

.entorno__icon{
  width:44px;
  height:44px;
  margin-bottom:16px;
  color:var(--accent);
}

.entorno__icon svg{width:100%;height:100%;}

.entorno__card h3{
  font-family:var(--font-heading);
  font-size:1.15rem;
  margin-bottom:8px;
}

.entorno__card p{
  font-size:.9rem;
  color:#666;
  line-height:1.7;
}

/* ---------- Reservar ---------- */
.section--reservar{
  background:var(--bg);
}

.reservar__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:start;
}

.reservar__details{
  display:flex;
  gap:24px;
  margin:28px 0;
}

.reservar__detail{
  display:flex;
  align-items:center;
  gap:10px;
}

.reservar__detail svg{
  width:22px;
  height:22px;
  flex-shrink:0;
  color:var(--accent);
}

.reservar__detail strong{
  display:block;
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.reservar__detail span{
  font-size:.9rem;
  color:#666;
}

.reservar__price{
  display:flex;
  align-items:baseline;
  gap:8px;
  margin-top:20px;
}

.reservar__price-label{
  font-size:.85rem;
  color:#888;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.reservar__price-amount{
  font-family:var(--font-heading);
  font-size:2.8rem;
  color:var(--accent);
}

.reservar__price-unit{
  font-size:.95rem;
  color:#888;
}

.reservar__price-note{
  font-size:.85rem;
  color:var(--accent);
  font-weight:500;
  margin-top:6px;
}

/* Form */
.reservar__form-wrap{
  background:var(--white);
  padding:40px;
  border-radius:var(--radius);
  box-shadow:0 4px 24px rgba(0,0,0,.06);
}

.form__row--2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

.form__group{
  margin-bottom:20px;
}

.form__group label{
  display:block;
  font-size:.78rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--accent);
  margin-bottom:8px;
}

.form__group input,
.form__group select,
.form__group textarea{
  width:100%;
  padding:12px 0;
  font-family:var(--font-body);
  font-size:.95rem;
  color:var(--text);
  border:none;
  border-bottom:2px solid #ddd;
  background:transparent;
  transition:border-color .3s;
  border-radius:0;
  -webkit-appearance:none;
}

.form__group input:focus,
.form__group select:focus,
.form__group textarea:focus{
  outline:none;
  border-bottom-color:var(--accent);
}

.form__group input:focus-visible,
.form__group select:focus-visible,
.form__group textarea:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:4px;
}

.form__group textarea{
  resize:vertical;
  min-height:80px;
}

.form__group select{
  cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23857563' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 4px center;
  padding-right:24px;
}

.reservar__form .btn{
  margin-top:8px;
}

/* Form success */
.form--success{
  text-align:center;
  padding:60px 20px;
}

.form--success h3{
  font-family:var(--font-heading);
  font-size:1.6rem;
  margin-bottom:12px;
}

.form--error{
  text-align:center;
  padding:60px 20px;
}

.form--error h3{
  font-family:var(--font-heading);
  font-size:1.6rem;
  margin-bottom:12px;
  color:#b44;
}

/* ---------- Ubicación ---------- */
.section--ubicacion{
  background:var(--white);
}

.ubicacion__grid{
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:40px;
  margin-top:40px;
}

.ubicacion__map{
  border-radius:var(--radius);
  overflow:hidden;
  min-height:400px;
}

.ubicacion__map iframe{
  display:block;
  width:100%;
  height:100%;
  min-height:400px;
}

.ubicacion__address{
  display:flex;
  gap:14px;
  margin-bottom:32px;
}

.ubicacion__address svg{
  width:24px;
  height:24px;
  flex-shrink:0;
  color:var(--accent);
  margin-top:3px;
}

.ubicacion__address p{
  font-size:.92rem;
  color:#666;
  line-height:1.7;
}

.ubicacion__distances{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.distance-badge{
  background:var(--bg);
  padding:16px;
  border-radius:var(--radius);
  text-align:center;
}

.distance-badge__km{
  display:block;
  font-family:var(--font-heading);
  font-size:1.6rem;
  color:var(--accent);
  margin-bottom:2px;
}

.distance-badge__label{
  font-size:.78rem;
  color:#888;
  font-weight:500;
}

/* ---------- Footer ---------- */
.footer{
  background:#2c2c2c;
  color:rgba(255,255,255,.7);
  padding:64px 0 0;
}

.footer__grid{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:40px;
  padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.1);
}

.footer__logo{
  font-family:var(--font-heading);
  font-size:1.4rem;
  color:var(--white);
  margin-bottom:10px;
}

.footer__tagline{
  font-size:.9rem;
  margin-bottom:20px;
}

.footer__badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 16px;
  background:rgba(255,255,255,.08);
  border-radius:var(--radius);
  font-size:.82rem;
  color:var(--gold);
}

.footer__contact h4,
.footer__links h4,
.footer__social h4{
  font-family:var(--font-heading);
  font-size:1rem;
  color:var(--white);
  margin-bottom:16px;
}

.footer__contact p{
  font-size:.88rem;
  line-height:1.7;
  margin-bottom:8px;
}

.footer__contact a:hover{color:var(--gold);}

.footer__links a{
  display:block;
  font-size:.88rem;
  margin-bottom:10px;
  transition:color .2s;
}

.footer__links a:hover{color:var(--gold);}

.footer__social-links{
  display:flex;
  gap:12px;
}

.footer__social-links a{
  width:40px;
  height:40px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:var(--transition);
}

.footer__social-links a svg{
  width:18px;
  height:18px;
}

.footer__social-links a:hover{
  border-color:var(--gold);
  color:var(--gold);
}

.footer__bottom{
  padding:24px 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:.8rem;
  opacity:.6;
}

.footer__reg{font-size:.75rem;}

/* ---------- Lightbox ---------- */
.lightbox{
  position:fixed;
  inset:0;
  z-index:2000;
  background:rgba(0,0,0,.92);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  transition:opacity .3s, visibility .3s;
}

.lightbox.open{
  opacity:1;
  visibility:visible;
}

.lightbox__img{
  max-width:90vw;
  max-height:85vh;
  object-fit:contain;
  border-radius:var(--radius);
  transition:transform .3s;
}

.lightbox__close,
.lightbox__prev,
.lightbox__next{
  position:absolute;
  color:var(--white);
  padding:12px;
  transition:opacity .2s;
}

.lightbox__close:hover,
.lightbox__prev:hover,
.lightbox__next:hover{opacity:.6;}

.lightbox__close{top:20px;right:20px;}
.lightbox__close svg{width:28px;height:28px;}

.lightbox__prev{left:20px;top:50%;transform:translateY(-50%);}
.lightbox__next{right:20px;top:50%;transform:translateY(-50%);}
.lightbox__prev svg,
.lightbox__next svg{width:36px;height:36px;}

/* ---------- Scroll Animations ---------- */
.anim-fade{
  opacity:0;
  transform:translateY(32px);
  transition:opacity .7s ease-out, transform .7s ease-out;
}

.anim-fade.visible{
  opacity:1;
  transform:translateY(0);
}

/* ---------- Mobile Navigation ---------- */
@media(max-width:900px){
  .nav__toggle{display:flex;}

  .nav__links{
    position:fixed;
    top:0;left:0;right:0;bottom:0;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:24px;
    background:rgba(244,241,234,.98);
    backdrop-filter:blur(16px);
    opacity:0;
    visibility:hidden;
    transition:var(--transition);
  }

  .nav__links.open{
    opacity:1;
    visibility:visible;
  }

  .nav__links a{
    font-size:1.1rem;
    color:var(--text);
  }

  /* Hamburger animation */
  .nav__toggle.active span:nth-child(1){
    transform:rotate(45deg) translate(5px, 5px);
  }
  .nav__toggle.active span:nth-child(2){opacity:0;}
  .nav__toggle.active span:nth-child(3){
    transform:rotate(-45deg) translate(5px, -5px);
  }
}

/* ---------- Responsive ---------- */
@media(max-width:1024px){
  .finca__grid{grid-template-columns:1fr; gap:40px;}
  .finca__image{max-height:450px;}
  .reservar__grid{grid-template-columns:1fr; gap:40px;}
  .exterior__features{grid-template-columns:repeat(2, 1fr);}
  .footer__grid{grid-template-columns:1fr 1fr;}
  .ubicacion__grid{grid-template-columns:1fr;}
}

@media(max-width:768px){
  .section{padding:72px 0;}

  .gallery__grid{
    grid-template-columns:1fr 1fr;
    grid-auto-rows:220px;
  }

  .gallery__item--tall{grid-row:span 1;}
  .gallery__item--wide{grid-column:span 1;}

  .exterior__mosaic{
    grid-template-columns:1fr 1fr;
    grid-auto-rows:200px;
  }

  .exterior__item--hero{grid-column:span 2; grid-row:span 2;}
  .exterior__item--wide{grid-column:span 1;}

  .entorno__grid{grid-template-columns:1fr;}

  .divider-image{height:260px;}

  .exterior__gardens{grid-template-columns:1fr;}
  .exterior__garden-item{height:250px;}

  .reservar__form-wrap{padding:28px 20px;}
  .form__row--2{grid-template-columns:1fr;}

  .finca__features{grid-template-columns:1fr 1fr;}

  .footer__grid{grid-template-columns:1fr;}
  .footer__bottom{flex-direction:column;gap:4px;text-align:center;}

  .hero{padding-bottom:15vh;}
  .hero__title{font-size:2.4rem;}
}

@media(max-width:480px){
  .gallery__grid{
    grid-template-columns:1fr;
    grid-auto-rows:240px;
  }

  .exterior__mosaic{
    grid-template-columns:1fr;
    grid-auto-rows:220px;
  }

  .exterior__item--hero{grid-column:span 1; grid-row:span 1;}
  .exterior__features{grid-template-columns:1fr;}

  .ubicacion__distances{grid-template-columns:1fr 1fr;}

  .container{padding:0 16px;}
}

/* ============================================================
   MULTI-PAGE ADDITIONS v2
   ============================================================ */

.subhero{position:relative;min-height:46vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;padding:calc(var(--nav-h) + 40px) 24px 56px;overflow:hidden;}
.subhero__bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(.6);transform:scale(1.05);}
.subhero__inner{position:relative;z-index:1;max-width:820px;}
.subhero__title{font-family:var(--font-heading);font-size:clamp(2rem,5vw,3.4rem);line-height:1.1;margin-bottom:12px;}
.subhero__crumb{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.85);}
.subhero__crumb a{color:inherit;opacity:.8;}
.subhero__crumb a:hover{opacity:1;}

.welcome{padding:90px 0;text-align:center;}
.welcome__lead{max-width:720px;margin:0 auto;font-size:1.05rem;color:#555;}
.highlights{padding:20px 0 90px;}
.highlights__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;}
.highlight{text-align:center;padding:28px 20px;background:#fff;border-radius:var(--radius);box-shadow:0 4px 24px rgba(0,0,0,.04);transition:transform .3s,box-shadow .3s;}
.highlight:hover{transform:translateY(-4px);box-shadow:0 10px 34px rgba(0,0,0,.08);}
.highlight__icon{width:44px;height:44px;margin:0 auto 14px;color:var(--accent);}
.highlight__icon svg{width:100%;height:100%;}
.highlight h3{font-family:var(--font-heading);font-size:1.2rem;margin-bottom:8px;}
.highlight p{font-size:.92rem;color:#666;}

.showcase{padding:90px 0;background:#fff;}
.showcase__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;}
.showcase__card{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;display:block;color:#fff;}
.showcase__card img{width:100%;height:100%;object-fit:cover;transition:transform .6s;}
.showcase__card:hover img{transform:scale(1.06);}
.showcase__card::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent 60%);}
.showcase__label{position:absolute;left:24px;bottom:22px;z-index:2;font-family:var(--font-heading);font-size:1.4rem;}

.testimonial{padding:80px 0;text-align:center;}
.testimonial__rating{font-family:var(--font-heading);font-size:3.2rem;color:var(--gold);}
.testimonial__text{max-width:640px;margin:10px auto 0;font-style:italic;color:#555;}
.testimonial__source{margin-top:14px;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:#999;}

.cta-band{padding:80px 24px;text-align:center;background:var(--sage);color:#fff;}
.cta-band h2{font-family:var(--font-heading);font-size:clamp(1.8rem,4vw,2.6rem);margin-bottom:14px;}
.cta-band p{max-width:560px;margin:0 auto 26px;opacity:.92;}
.cta-band .btn{background:#fff;color:var(--accent);border-color:#fff;}
.cta-band .btn:hover{background:transparent;color:#fff;}

.nav__links a.active{color:var(--gold);}
.nav__links a.active::after{width:100%;}

.footer__links a{display:block;margin-bottom:6px;font-size:.9rem;color:#ddd;}
.footer__links a:hover{color:var(--gold);}

/* Calendar */
.booking-wrap{padding:60px 0 40px;}
.booking-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:start;}
@media(max-width:960px){.booking-grid{grid-template-columns:1fr;}}

.cal{background:#fff;border-radius:var(--radius);padding:22px;box-shadow:0 4px 24px rgba(0,0,0,.05);}
.cal__header{display:flex;justify-content:space-between;margin-bottom:10px;}
.cal__nav{width:38px;height:38px;border-radius:50%;background:var(--bg);color:var(--text);font-size:1.5rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:var(--transition);}
.cal__nav:hover:not([disabled]){background:var(--accent);color:#fff;}
.cal__nav[disabled]{opacity:.3;cursor:not-allowed;}
.cal__months{display:grid;grid-template-columns:1fr 1fr;gap:30px;}
@media(max-width:720px){.cal__months{grid-template-columns:1fr;}.cal__month-second{display:none;}}
.cal__month-name{text-align:center;font-family:var(--font-heading);font-size:1.15rem;margin-bottom:10px;}
.cal__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:6px;}
.cal__weekdays span{text-align:center;font-size:.72rem;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.08em;}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.cal__day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.88rem;border-radius:6px;background:transparent;color:var(--text);transition:background .15s,color .15s;border:0;}
.cal__day:not([disabled]):hover{background:#eee3d2;}
.cal__day--blank{visibility:hidden;}
.cal__day--past{color:#ccc;cursor:not-allowed;}
.cal__day--unavail{color:#bbb;cursor:not-allowed;background:repeating-linear-gradient(135deg,transparent 0 4px,#f0e8d8 4px 6px);text-decoration:line-through;}
.cal__day--checkin,.cal__day--checkout{background:var(--accent)!important;color:#fff!important;font-weight:600;}
.cal__day--range{background:#e9dec7;}

.cal__feedback{margin-top:14px;padding:10px 14px;background:#fef3e0;border-left:3px solid var(--gold);font-size:.88rem;color:#8a6b2a;border-radius:4px;}

.quote__box{background:#fff;border-radius:var(--radius);padding:24px;box-shadow:0 4px 24px rgba(0,0,0,.05);position:sticky;top:calc(var(--nav-h) + 16px);}
.quote__empty{padding:40px 20px;text-align:center;color:#999;font-style:italic;background:#fff;border-radius:var(--radius);border:1px dashed #d4c8b0;}
.quote__dates{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid #eee;}
.quote__dates span{display:block;font-size:.72rem;color:#999;text-transform:uppercase;letter-spacing:.1em;}
.quote__dates strong{display:block;font-family:var(--font-heading);font-size:1.05rem;margin-top:4px;}
.quote__line{display:flex;justify-content:space-between;padding:7px 0;font-size:.95rem;}
.quote__line--total{border-top:1px solid #eee;margin-top:8px;padding-top:14px;font-family:var(--font-heading);font-size:1.35rem;}
.quote__line--muted{font-size:.85rem;color:#888;}
.quote__disclaimer{margin-top:14px;font-size:.72rem;color:#999;text-align:center;line-height:1.5;}
.quote__box .btn{margin-top:16px;}

.faq{padding:60px 0;max-width:800px;margin:0 auto;}
.faq__item{border-bottom:1px solid #e4ddd0;}
.faq__q{width:100%;text-align:left;padding:20px 0;font-size:1rem;font-weight:500;display:flex;justify-content:space-between;align-items:center;background:none;}
.faq__q::after{content:'+';font-size:1.4rem;color:var(--accent);transition:transform .3s;}
.faq__item.open .faq__q::after{transform:rotate(45deg);}
.faq__a{max-height:0;overflow:hidden;transition:max-height .4s;color:#666;font-size:.94rem;}
.faq__item.open .faq__a{max-height:400px;padding-bottom:20px;}

.amenities{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;padding:40px 0;list-style:none;}
.amenities li{display:flex;align-items:center;gap:10px;font-size:.95rem;}
.amenities li::before{content:'✓';color:var(--gold);font-weight:700;}

.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:60px 0;align-items:start;}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr;}}
.contact-info address{font-style:normal;line-height:1.9;}
.contact-info h3{font-family:var(--font-heading);font-size:1.4rem;margin-bottom:12px;}

.book-header{padding:60px 0 0;text-align:center;}
.book-header h2{font-family:var(--font-heading);font-size:clamp(1.8rem,4vw,2.6rem);}
.book-header p{max-width:640px;margin:14px auto 0;color:#666;}

.anim-fade{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s;}
.anim-fade.anim-in{opacity:1;transform:none;}

@media(max-width:900px){
  .nav__toggle{display:flex;}
  .nav__links{position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;padding:20px;gap:18px;box-shadow:0 6px 24px rgba(0,0,0,.08);transform:translateY(-10px);opacity:0;visibility:hidden;transition:var(--transition);}
  .nav__links.open{opacity:1;visibility:visible;transform:none;}
  .nav__links a{color:var(--text);}
}
