/* =========================================================
   Residencial El Aromo — Aromo Editorial
   Paleta:
   Lino #F7F3EC · Arena #ECE3D2 · Ámbar #C98A2A
   Tinta espresso #2A2622 · Línea cálida #E0D6C4
   Oliva profundo #3A4632 (solo detalle y footer)
   ========================================================= */

:root{
  --lino:#F7F4EF;
  --arena:#ECE3D2;
  --ambar:#C98A2A;
  --ambar-oscuro:#A9721C;
  --espresso:#2A2622;
  --espresso-suave:#6C645B;
  --linea:#E0D6C4;
  --taupe:#A79B8A;
  --taupe-claro:#C4BCAC;
  --oliva:#2E4B3E;
  --oliva-claro:#3F5B4E;
  --blanco:#FFFFFF;

  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans",system-ui,-apple-system,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;

  --radio:14px;
  --maxw:1180px;
  --sombra:0 20px 46px -28px rgba(42,38,34,.4);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  background:var(--lino);
  color:var(--espresso);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.08;letter-spacing:-0.01em}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* ---------- utilidades ---------- */
.eyebrow{
  display:inline-block;
  font-family:var(--mono);
  font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ambar-oscuro);
}
.eyebrow--dark{color:var(--ambar-oscuro)}

/* ---------- botones ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--sans);font-weight:600;font-size:.98rem;
  padding:.85rem 1.6rem;border-radius:999px;border:1.6px solid transparent;
  cursor:pointer;transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease;
  line-height:1;
}
.btn--primary{background:var(--ambar);color:var(--espresso);border-color:var(--ambar)}
.btn--primary:hover{background:var(--ambar-oscuro);border-color:var(--ambar-oscuro);color:var(--blanco);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--espresso);border-color:var(--oliva)}
.btn--ghost:hover{background:var(--oliva);color:var(--lino);transform:translateY(-2px)}
.btn--sm{padding:.62rem 1.15rem;font-size:.9rem}
.btn--block{width:100%}

/* ---------- header ---------- */
.header{
  position:sticky;top:0;z-index:100;
  background:rgba(247,243,236,.86);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--linea);
}
.header__inner{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:.65rem}
.brand__text{display:flex;flex-direction:column;line-height:1.05}
.brand__name{font-family:var(--serif);font-weight:700;font-size:1.2rem;color:var(--oliva)}
.brand__name--light{color:var(--lino)}
.brand__sub{font-family:var(--mono);font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ambar-oscuro)}
.nav{display:flex;align-items:center;gap:1.7rem}
.nav a{font-size:.92rem;font-weight:500;color:var(--espresso-suave);transition:color .15s}
.nav a:hover{color:var(--oliva)}
.header__cta{display:flex;align-items:center;gap:.9rem}
.nav__toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.nav__toggle span{display:block;width:24px;height:2px;background:var(--oliva);border-radius:2px;transition:.25s}
.nav__toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav__toggle.open span:nth-child(2){opacity:0}
.nav__toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{position:relative;background:
  radial-gradient(120% 80% at 92% -10%, rgba(201,138,42,.12), transparent 55%),
  var(--lino);
}
.hero__grid{display:grid;grid-template-columns:1.08fr .92fr;gap:56px;align-items:center;padding:76px 0 72px}
.hero__title{font-size:clamp(2.5rem,5vw,4.1rem);color:var(--espresso);margin:18px 0 0}
.hero__lead{font-size:1.13rem;color:var(--espresso-suave);max-width:34rem;margin-top:20px}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}
.hero__media{min-height:440px}

/* ---------- placeholders elegantes ---------- */
.ph{
  position:relative;overflow:hidden;border-radius:var(--radio);
  background:
    linear-gradient(135deg, var(--arena), var(--lino));
  border:1px solid var(--linea);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  color:var(--ambar);text-align:center;
}
.ph::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(45deg, transparent, transparent 14px, rgba(201,138,42,.04) 14px, rgba(201,138,42,.04) 28px);
}
.ph__icon{position:relative;z-index:1;width:74px;height:74px;border-radius:50%;background:rgba(201,138,42,.12);display:flex;align-items:center;justify-content:center}
.ph__label{position:relative;z-index:1;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--espresso-suave)}
.ph--tall{aspect-ratio:4/4.6}
.ph--wide{aspect-ratio:5/4;min-height:360px}

/* ---------- barra de confianza ---------- */
.trust{border-top:1px solid var(--linea);border-bottom:1px solid var(--linea);background:var(--arena)}
.trust__grid{display:grid;grid-template-columns:repeat(5,1fr)}
.trust__item{padding:22px 22px;text-align:center;border-left:1px solid var(--linea)}
.trust__item:first-child{border-left:0}
.trust__k{display:block;font-family:var(--serif);font-weight:700;font-size:1.5rem;color:var(--oliva)}
.trust__v{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--espresso-suave);margin-top:6px}

/* ---------- secciones ---------- */
.section{padding:94px 0}
.section--arena{background:var(--arena)}
.section__head{max-width:44rem;margin-bottom:50px}
.section__head h2{font-size:clamp(1.9rem,3.6vw,2.9rem);color:var(--espresso);margin-top:14px}
.section__head p{font-size:1.08rem;color:var(--espresso-suave);margin-top:14px}

/* ---------- tarjetas de servicios ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{
  background:var(--lino);border:1px solid var(--linea);border-radius:var(--radio);
  padding:30px 26px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--sombra);border-color:var(--ambar)}
.card__ico{width:46px;height:46px;border-radius:11px;background:var(--arena);color:var(--oliva);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.card__tag{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ambar-oscuro);margin-bottom:6px}
.card h3{font-size:1.2rem;color:var(--espresso)}
.card p{font-size:.95rem;color:var(--espresso-suave);margin-top:8px}

/* ---------- alimentación ---------- */
.food__grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:52px;align-items:center}
.food__intro{font-size:1.08rem;color:var(--espresso-suave);margin-top:14px}
.menu{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:28px}
.menu__col h3{font-size:1.12rem;color:var(--oliva)}
.menu__col p{font-size:.95rem;color:var(--espresso-suave);margin-top:8px}
.menu__col{border-top:2px solid var(--ambar);padding-top:14px}

/* ---------- galería instalaciones ---------- */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:16px}
.gallery .ph{width:100%;height:100%}
.gallery .ph__icon{width:60px;height:60px}
.ph--g1{grid-column:span 2;grid-row:span 2}
.ph--g6{grid-column:span 2}

/* ---------- turnos ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.step{position:relative;padding-top:28px}
.step::before{content:"";position:absolute;top:0;left:0;width:44px;height:3px;background:var(--ambar);border-radius:3px}
.step__n{font-family:var(--mono);font-size:.76rem;letter-spacing:.1em;color:var(--ambar-oscuro)}
.step h3{font-size:1.22rem;color:var(--espresso);margin:10px 0 8px}
.step p{font-size:.96rem;color:var(--espresso-suave)}

/* ---------- para empresas ---------- */
.chips{display:flex;flex-wrap:wrap;gap:12px}
.chip{
  display:inline-flex;align-items:center;gap:.6rem;
  border:1px solid var(--linea);background:var(--lino);border-radius:999px;
  padding:.7rem 1.25rem;font-size:.95rem;font-weight:500;color:var(--espresso);
  transition:border-color .2s ease,transform .2s ease;
}
.chip:hover{border-color:var(--ambar);transform:translateY(-2px)}
.chip__dot{width:7px;height:7px;border-radius:50%;background:var(--ambar)}

/* ---------- por qué ---------- */
.vp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 44px}
.vp{display:flex;gap:15px;padding:18px 0;border-bottom:1px solid var(--linea)}
.vp__check{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--oliva);color:var(--ambar);display:flex;align-items:center;justify-content:center;margin-top:3px}
.vp h3{font-size:1.05rem;color:var(--espresso)}
.vp p{font-size:.92rem;color:var(--espresso-suave);margin-top:3px}

/* ---------- misión y visión (oliva) ---------- */
.mv{background:var(--oliva);color:var(--lino)}
.mv .eyebrow{color:var(--ambar)}
.mv__title{color:var(--lino)}
.mv__grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.mv__card{border:1px solid rgba(247,243,236,.18);background:rgba(247,243,236,.05);border-radius:var(--radio);padding:38px 34px}
.mv__rule{display:block;width:46px;height:3px;background:var(--ambar);border-radius:3px;margin-bottom:18px}
.mv__card h3{font-size:1.5rem;color:var(--lino);margin-bottom:12px}
.mv__card p{color:rgba(247,243,236,.85);font-size:1.04rem}

/* ---------- contacto ---------- */
.contacto__grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start}
.contacto__lead{font-size:1.08rem;color:var(--espresso-suave);margin-top:14px;max-width:30rem}
.contact-list{list-style:none;margin-top:30px;display:flex;flex-direction:column;gap:2px}
.contact-list li{display:flex;gap:14px;align-items:center;padding:15px 0;border-bottom:1px solid var(--linea)}
.ci{flex:0 0 auto;width:40px;height:40px;border-radius:10px;background:var(--lino);border:1px solid var(--linea);color:var(--oliva);display:flex;align-items:center;justify-content:center}
.ci__text{display:flex;flex-direction:column}
.ci__label{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--espresso-suave)}
.ci__text a:hover{color:var(--ambar-oscuro)}

.form-card{background:var(--lino);border:1px solid var(--linea);border-radius:var(--radio);padding:30px;box-shadow:var(--sombra)}
.field{margin-bottom:16px}
.field--row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.field label{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--espresso-suave);margin-bottom:7px}
.field input,.field textarea{
  width:100%;background:var(--blanco);border:1px solid var(--linea);border-radius:10px;
  padding:.8rem .9rem;font-family:var(--sans);font-size:.96rem;color:var(--espresso);transition:border-color .15s ease;
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--ambar)}
.field textarea{resize:vertical;min-height:96px}
.form-card__alt{text-align:center;font-size:.86rem;color:var(--espresso-suave);margin-top:14px}
.form-card__alt a{color:var(--ambar-oscuro);font-weight:600}

/* ---------- footer ---------- */
.footer{background:var(--oliva);color:rgba(247,243,236,.72)}
.footer__grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px;padding:54px 0}
.footer__brand{max-width:25rem}
.footer__brand p{font-size:.92rem;margin-top:14px;color:rgba(247,243,236,.6)}
.footer__col h4{font-family:var(--mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(247,243,236,.5);margin-bottom:14px}
.footer__col a{display:block;font-size:.92rem;margin-bottom:9px;color:rgba(247,243,236,.8);transition:color .15s}
.footer__col a:hover{color:var(--ambar)}
.footer__addr{font-size:.92rem;color:rgba(247,243,236,.6);margin-top:4px}
.footer__bar{border-top:1px solid rgba(247,243,236,.14);padding:20px 0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:.8rem;color:rgba(247,243,236,.5)}
.footer__tag{font-family:var(--mono);letter-spacing:.06em}

/* ---------- CTA fijo móvil ---------- */
.mobile-cta{
  display:none;position:fixed;left:16px;right:16px;bottom:16px;z-index:90;
  background:var(--ambar);color:var(--espresso);text-align:center;
  font-family:var(--sans);font-weight:700;font-size:1rem;
  padding:1rem;border-radius:999px;box-shadow:0 12px 30px -10px rgba(42,38,34,.45);
}

/* ---------- animación reveal ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-in{opacity:1;transform:none}

/* ==========================================================
   RESPONSIVE
   ========================================================== */
@media(max-width:1000px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .vp-grid{grid-template-columns:1fr;gap:0 0}
}
@media(max-width:900px){
  .hero__grid{grid-template-columns:1fr;gap:36px;padding:52px 0 56px}
  .hero__media{min-height:0;max-width:460px}
  .food__grid,.contacto__grid,.mv__grid{grid-template-columns:1fr;gap:34px}
  .steps{grid-template-columns:1fr}
  .trust__grid{grid-template-columns:repeat(3,1fr)}
  .trust__item:nth-child(1),.trust__item:nth-child(4){border-left:0}
  .gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px}
  .ph--g1{grid-column:span 2;grid-row:span 1}
  .ph--g6{grid-column:span 2}
}
@media(max-width:680px){
  .nav{
    position:fixed;top:74px;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--lino);border-bottom:1px solid var(--linea);
    padding:8px 0;transform:translateY(-140%);transition:transform .3s ease;
  }
  .nav.open{transform:none}
  .nav a{padding:14px 24px}
  .header__cta .btn{display:none}
  .nav__toggle{display:flex}
  .section{padding:60px 0}
  .cards{grid-template-columns:1fr}
  .menu{grid-template-columns:1fr}
  .trust__grid{grid-template-columns:repeat(2,1fr)}
  .trust__item{border-left:0;border-top:1px solid var(--linea)}
  .trust__item:nth-child(odd){border-top:1px solid var(--linea)}
  .field--row{grid-template-columns:1fr}
  .footer__grid{flex-direction:column;gap:30px}
  .mobile-cta{display:block}
  body{padding-bottom:80px}
}

@media(prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}


/* ---------- logo oficial ---------- */
.brand__logo{height:46px;width:auto;display:block}
.footer__logochip{display:inline-block;background:var(--lino);border-radius:10px;padding:10px 16px}
.footer__logoimg{height:40px;width:auto;display:block}
@media(max-width:680px){
  .brand__logo{height:38px}
}


/* =========================================================
   AJUSTES DE IDENTIDAD DE MARCA — Aromo Editorial
   Refinamientos sutiles para que el sitio se sienta hecho
   específicamente para Residencial El Aromo, no plantilla.
   ========================================================= */

/* --- HOJA (motivo del logo): pequeño marcador SVG reutilizable --- */
:root{
  --hoja:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%232E4B3E'%3E%3Cpath d='M12 3c-4 0-8 3-8 8 0 3 2 6 5 7-.5-2 0-4 2-6 1-1 3-1 4-1-1 1-2 2-2 4 1 0 3 0 5-2 3-3 3-8 3-10-3 0-6 0-9 0z'/%3E%3C/svg%3E");
}

/* --- Header: logo un poco más presente + acento inferior taupe --- */
.brand__logo{height:52px}
@media(max-width:680px){ .brand__logo{height:40px} }

.header{border-bottom:1px solid var(--linea);position:sticky;top:0;z-index:100}
.header::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;
  background:linear-gradient(90deg, transparent 0%, var(--taupe) 50%, transparent 100%);
  opacity:.55;
}

/* --- Botón primario: pasa a verde marca + subrayado dorado del logo --- */
.btn--primary{background:var(--oliva);color:var(--lino);border-color:var(--oliva)}
.btn--primary:hover{background:var(--oliva-claro);border-color:var(--oliva-claro);color:#fff}
.btn--ghost{border-color:var(--taupe);color:var(--espresso)}
.btn--ghost:hover{background:var(--taupe);color:var(--lino);border-color:var(--taupe)}

/* --- Eyebrow: reemplazo la fuente mono por serif letter-spaced tipo brand board --- */
.eyebrow{
  font-family:var(--serif);font-weight:500;font-size:.78rem;
  letter-spacing:.28em;text-transform:uppercase;color:var(--taupe);
}
.eyebrow--dark{color:var(--taupe)}

/* --- Regla decorativa "arco" tipo brand board (línea + palabra + línea) --- */
.section__head{position:relative}
.section__head .eyebrow{
  display:inline-flex;align-items:center;gap:14px;
}
.section__head .eyebrow::before,
.section__head .eyebrow::after{
  content:"";width:36px;height:1px;background:var(--taupe);opacity:.7;
}

/* --- Datos duros: los recupero en mono para conservar el carácter técnico --- */
.trust__k{font-family:var(--serif);font-weight:700;color:var(--oliva)}
.trust__v{font-family:var(--mono);color:var(--taupe)}
.trust{background:var(--lino)}
.trust__grid{border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.trust__item{border-left:1px solid var(--linea)}

/* --- Tarjetas de servicios: sello vertical taupe + hover verde --- */
.card{position:relative;overflow:hidden}
.card::before{
  content:"";position:absolute;left:0;top:22px;bottom:22px;width:3px;
  background:var(--taupe);border-radius:2px;opacity:.55;transition:background .2s, opacity .2s;
}
.card:hover::before{background:var(--oliva);opacity:1}
.card:hover{border-color:var(--taupe)}
.card__ico{background:transparent;border:1px solid var(--linea);color:var(--oliva)}
.card__tag{color:var(--taupe);font-family:var(--mono)}

/* --- Menú de alimentación: barra superior verde + tag taupe --- */
.menu__col{border-top:2px solid var(--oliva)}
.menu__col h3::before{
  content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--taupe);margin-right:10px;vertical-align:middle;transform:translateY(-2px);
}

/* --- Pasos (Estadías): número con pequeña "hoja" del logo --- */
.step::before{background:var(--taupe);height:2px;width:32px}
.step__n{color:var(--taupe);font-family:var(--mono);font-size:.7rem;letter-spacing:.16em}

/* --- Chips (Para empresas): pill con guiño al brand board --- */
.chip{background:transparent;border-color:var(--taupe);color:var(--espresso);font-weight:500}
.chip:hover{background:var(--lino);border-color:var(--oliva)}
.chip__dot{background:var(--taupe)}
.chip:hover .chip__dot{background:var(--oliva)}

/* --- Por qué El Aromo: check ámbar → verde marca con anillo taupe --- */
.vp__check{background:transparent;color:var(--oliva);border:1.5px solid var(--taupe)}
.vp{border-bottom-color:var(--linea)}

/* --- Sección Misión y Visión (oliva): añado hoja sutil arriba --- */
.mv{position:relative}
.mv::before{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg, transparent, var(--taupe), transparent);
  opacity:.4;
}
.mv .eyebrow{color:var(--taupe-claro)}
.mv .eyebrow::before,.mv .eyebrow::after{background:var(--taupe-claro);opacity:.5}
.mv__rule{background:var(--taupe-claro)}

/* --- Formulario: focus verde marca en vez de ámbar --- */
.field input:focus,.field textarea:focus{border-color:var(--oliva)}
.form-card{border-color:var(--linea)}
.form-card__alt a{color:var(--oliva)}
.form-card__alt a:hover{color:var(--taupe)}

/* --- Contacto: íconos en placa con borde taupe --- */
.ci{color:var(--oliva);border-color:var(--taupe);background:var(--lino)}

/* --- Footer: acento taupe superior + separador refinado --- */
.footer{position:relative}
.footer::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg, transparent, var(--taupe), transparent);
  opacity:.6;
}
.footer__col a:hover{color:var(--taupe-claro)}
.footer__col h4{color:var(--taupe-claro)}

/* --- Marca de agua "aromo" (hoja) en secciones clave, muy sutil --- */
.section--arena{position:relative;overflow:hidden}
.section--arena::after{
  content:"";position:absolute;right:-40px;bottom:-40px;width:220px;height:220px;
  background:var(--hoja) no-repeat center/contain;opacity:.04;pointer-events:none;
  transform:rotate(15deg);
}

/* --- Hero: pequeño ornamento inferior tipo arco brand board --- */
.hero__lead{position:relative}
.hero__title::after{
  content:"";display:block;width:64px;height:2px;background:var(--taupe);
  margin-top:18px;border-radius:2px;
}

/* --- CTA móvil: pasa a verde marca con acento taupe --- */
.mobile-cta{background:var(--oliva);color:var(--lino);box-shadow:0 12px 30px -10px rgba(46,75,62,.45)}

/* --- Microanimaciones: hover cards, reveal más orgánico --- */
.card{transition:transform .25s cubic-bezier(.2,.7,.2,1), border-color .25s ease, box-shadow .25s ease}
.card:hover{transform:translateY(-6px)}
.chip{transition:all .2s cubic-bezier(.2,.7,.2,1)}
.chip:hover{transform:translateY(-3px)}
.btn{transition:transform .25s cubic-bezier(.2,.7,.2,1), background .2s ease, color .2s ease, border-color .2s ease}
.reveal{transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1)}

/* --- Footer chip: quito la placa lino pesada y dejo el logo respirar --- */
.footer__logochip{background:transparent;padding:0}
.footer__logoimg{filter:brightness(1.6) saturate(.55)}

/* --- Selección de texto con color de marca --- */
::selection{background:var(--taupe);color:var(--lino)}


/* =========================================================
   REFINAMIENTO PROFESIONAL — fotografía real + confianza
   Cada regla tiene una razón: jerarquía, calma, solidez.
   ========================================================= */

/* --- Imágenes: base sólida (CLS cero: width/height ya en HTML) --- */
img{max-width:100%;height:auto;display:block}

/* --- HERO con fotografía: marco sobrio, sin efectos ostentosos --- */
.hero__media{position:relative;border-radius:var(--radio);overflow:hidden;
  border:1px solid var(--linea);min-height:0}
.hero__media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3.1}
.media-cap{
  position:absolute;left:14px;bottom:12px;
  font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--lino);background:rgba(46,75,62,.78);padding:6px 12px;border-radius:999px;
  backdrop-filter:blur(4px);
}

/* --- ALIMENTACIÓN: plato vertical, composición editorial --- */
.food__media{border-radius:var(--radio);overflow:hidden;border:1px solid var(--linea);
  max-width:440px;justify-self:center}
.food__media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}

/* --- GALERÍA: fotos con pie sobrio (no gradientes pesados) --- */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:14px}
.g{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--linea);margin:0}
.g img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.g:hover img{transform:scale(1.03)}
.g figcaption{
  position:absolute;left:10px;bottom:10px;
  font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--lino);background:rgba(42,38,34,.55);padding:5px 11px;border-radius:999px;
  backdrop-filter:blur(3px);
}
.g--feat{grid-column:span 2;grid-row:span 2}
.g--wide{grid-column:span 2}

/* --- Jerarquía tipográfica: títulos con aire medido --- */
.section__head h2{line-height:1.12;letter-spacing:-0.015em}
.section__head{margin-bottom:56px}
.hero__title{line-height:1.06}

/* --- Cards: sombra más terrosa y contenida (confianza, no flotación) --- */
:root{--sombra:0 14px 34px -22px rgba(46,75,62,.35)}
.card:hover{transform:translateY(-4px)}

/* --- Botones: foco accesible AA --- */
.btn:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--oliva);outline-offset:3px;border-radius:6px;
}
.btn:focus-visible{border-radius:999px}

/* --- Navbar: subrayado suave al pasar (microinteracción sobria) --- */
.nav a{position:relative;padding-bottom:3px}
.nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;height:1.5px;
  background:var(--taupe);transition:right .25s ease;
}
.nav a:hover::after{right:0}

/* --- Trust bar: respiración fina --- */
.trust__item{padding:24px 18px}

/* --- Responsive de las fotos --- */
@media(max-width:900px){
  .gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px}
  .g--feat{grid-column:span 2;grid-row:span 1}
  .g--wide{grid-column:span 2}
  .food__media{max-width:100%}
  .food__media img{aspect-ratio:4/3}
  .hero__media img{aspect-ratio:16/10}
}
@media(max-width:680px){
  .gallery{grid-auto-rows:170px}
  .media-cap{font-size:.56rem}
}


/* =========================================================
   RECORRIDO VISUAL — composiciones editoriales por grupo
   Cada bloque con su propio ritmo; misma identidad.
   ========================================================= */

/* --- Grupos de galería con etiqueta editorial --- */
.galeria{display:flex;flex-direction:column;gap:46px}
.gal-label{
  display:inline-flex;align-items:center;gap:14px;
  font-family:var(--serif);font-size:.8rem;letter-spacing:.26em;text-transform:uppercase;
  color:var(--taupe);margin-bottom:16px;
}
.gal-label::after{content:"";width:52px;height:1px;background:var(--taupe);opacity:.6}

/* --- HABITACIONES: asimétrico, 1 protagonista + 3 satélites --- */
.gal-hab{display:grid;grid-template-columns:1.5fr 1fr 1fr;grid-auto-rows:205px;gap:14px}
.gh-a{grid-row:span 2}
.gh-d{grid-column:span 2}

/* --- ESPACIOS COMUNES: banda rítmica 3 arriba, 2 abajo --- */
.gal-com{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:195px;gap:14px}
.gc-a{grid-column:span 2}
.gc-e{grid-column:span 2}

/* --- PATIOS Y QUINCHO: protagonista izquierda + par apilado --- */
.gal-pat{display:grid;grid-template-columns:1.6fr 1fr;grid-auto-rows:190px;gap:14px}
.gp-a{grid-row:span 2}
.gp-c{grid-row:span 2}

/* --- ALIMENTACIÓN: collage vertical + tira de platos --- */
.food__media{display:grid;grid-template-columns:1.5fr 1fr;gap:12px;max-width:520px;border:0;border-radius:0;overflow:visible}
.fm-main{grid-row:span 1}
.fm-main img{aspect-ratio:3/4;object-fit:cover}
.fm-thumbs{display:flex;flex-direction:column;gap:12px}
.fm-thumbs .g{flex:1}
.fm-thumbs img{height:100%;object-fit:cover}

/* --- Banda cocina: ancho completo, cierre de la sección --- */
.food__cocina{
  position:relative;margin-top:46px;border-radius:var(--radio);overflow:hidden;
  border:1px solid var(--linea);
}
.food__cocina img{width:100%;object-fit:cover;aspect-ratio:21/8}

/* --- Responsive de las composiciones --- */
@media(max-width:900px){
  .gal-hab{grid-template-columns:1fr 1fr;grid-auto-rows:180px}
  .gh-a{grid-column:span 2;grid-row:span 1}
  .gh-d{grid-column:span 2}
  .gal-com{grid-template-columns:1fr 1fr;grid-auto-rows:175px}
  .gc-a,.gc-e{grid-column:span 2}
  .gal-pat{grid-template-columns:1fr;grid-auto-rows:200px}
  .gp-a,.gp-c{grid-row:span 1}
  .food__media{max-width:100%}
  .food__cocina img{aspect-ratio:16/9}
}
@media(max-width:680px){
  .galeria{gap:36px}
  .gal-hab,.gal-com{grid-auto-rows:160px}
}


/* =========================================================
   LIGHTBOX — galería a pantalla completa
   Vanilla, sin dependencias. Sobrio estilo hospitality.
   ========================================================= */
figure.g, .hero__media, .food__cocina{cursor:zoom-in}
figure.g:focus-visible, .hero__media:focus-visible, .food__cocina:focus-visible{
  outline:2px solid var(--oliva);outline-offset:3px;
}

.lightbox{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  background:rgba(24,28,24,.94);
  opacity:0;pointer-events:none;
  transition:opacity .3s ease;
}
.lightbox.open{opacity:1;pointer-events:auto}
.lightbox__img{
  max-width:92vw;max-height:84vh;border-radius:10px;
  box-shadow:0 30px 80px -30px rgba(0,0,0,.8);
  transform:scale(.96);transition:transform .35s cubic-bezier(.2,.7,.2,1);
  user-select:none;-webkit-user-drag:none;
}
.lightbox.open .lightbox__img{transform:scale(1)}
.lightbox__cap{
  position:absolute;bottom:26px;left:50%;transform:translateX(-50%);
  font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(247,244,239,.85);background:rgba(46,75,62,.6);
  padding:7px 16px;border-radius:999px;backdrop-filter:blur(4px);
  white-space:nowrap;max-width:88vw;overflow:hidden;text-overflow:ellipsis;
}
.lightbox__count{
  position:absolute;top:22px;left:26px;
  font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;
  color:rgba(247,244,239,.7);
}
.lb-btn{
  position:absolute;display:flex;align-items:center;justify-content:center;
  width:46px;height:46px;border-radius:50%;border:1px solid rgba(247,244,239,.25);
  background:rgba(247,244,239,.08);color:var(--lino);cursor:pointer;
  transition:background .2s, border-color .2s;
  -webkit-tap-highlight-color:transparent;
}
.lb-btn:hover{background:rgba(247,244,239,.18);border-color:rgba(247,244,239,.5)}
.lb-btn:focus-visible{outline:2px solid var(--lino);outline-offset:3px}
.lb-close{top:18px;right:20px}
.lb-prev{left:18px;top:50%;transform:translateY(-50%)}
.lb-next{right:18px;top:50%;transform:translateY(-50%)}
@media(max-width:680px){
  .lb-prev,.lb-next{top:auto;bottom:70px;transform:none}
  .lb-prev{left:22%}
  .lb-next{right:22%}
  .lightbox__img{max-height:76vh}
  .lightbox__cap{bottom:130px}
}
@media(prefers-reduced-motion:reduce){
  .lightbox,.lightbox__img{transition:none}
}

/* --- Móvil: fotos grandes, una columna en pantallas chicas --- */
@media(max-width:480px){
  .gal-hab,.gal-com,.gal-pat{grid-template-columns:1fr;grid-auto-rows:230px}
  .gh-a,.gh-d,.gc-a,.gc-e,.gp-a,.gp-c{grid-column:span 1;grid-row:span 1}
  .fm-thumbs{flex-direction:row}
  .food__media{grid-template-columns:1fr}
}

/* --- Zonas táctiles mínimas 44px (WCAG) --- */
.btn{min-height:44px}
.nav a{min-height:44px;display:inline-flex;align-items:center}


/* =========================================================
   CORRECCIONES DE AUDITORÍA (Crítico + Alto)
   ========================================================= */

/* A1 — Contraste AA: taupe de TEXTO oscurecido (4.6:1 sobre lino).
   El taupe claro original queda solo para líneas y elementos decorativos. */
:root{ --taupe-text:#7E6D59; }
.eyebrow, .eyebrow--dark{color:var(--taupe-text)}
.card__tag{color:var(--taupe-text)}
.trust__v{color:var(--taupe-text)}
.step__n{color:var(--taupe-text)}
.gal-label{color:var(--taupe-text)}
.brand__sub{color:var(--taupe-text)}
.ph__label{color:var(--espresso-suave)}

/* A1 — Enlaces: del ámbar 3.7:1 al verde marca 8.8:1 */
.form-card__alt a{color:var(--oliva)}
.form-card__alt a:hover{color:var(--taupe-text)}
.ci__text a:hover{color:var(--oliva)}
.footer__col a:hover{color:var(--taupe-claro)}

/* A5 — Safari/iOS: prefijos -webkit- para los desenfoques */
.header{-webkit-backdrop-filter:blur(12px)}
.media-cap{-webkit-backdrop-filter:blur(4px)}
.g figcaption{-webkit-backdrop-filter:blur(3px)}
.lightbox__cap{-webkit-backdrop-filter:blur(4px)}


/* =========================================================
   TARJETAS DE SERVICIOS COMO NAVEGACIÓN
   Bloque único (sin duplicados). No altera el diseño:
   solo añade señales de interacción y énfasis de llegada.
   ========================================================= */

/* <article> pasó a <a>: se restituye el comportamiento de bloque */
a.card{
  display:block;
  color:inherit;text-decoration:none;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  will-change:transform;
}

/* --- Hover (solo punteros finos): elevación mínima, escala 1.015 máx --- */
@media(hover:hover) and (pointer:fine){
  a.card{
    transition:transform .3s cubic-bezier(.2,.7,.2,1),
               box-shadow .3s ease,
               border-color .25s ease;
  }
  a.card:hover{
    transform:translateY(-4px) scale(1.015);
    box-shadow:0 18px 40px -22px rgba(46,75,62,.4);
    border-color:var(--taupe);
  }
  a.card::before{transition:background .3s ease, opacity .3s ease, top .3s ease, bottom .3s ease}
  a.card:hover::before{background:var(--oliva);opacity:1;top:16px;bottom:16px}
  a.card .card__ico{transition:border-color .3s ease, background .3s ease}
  a.card:hover .card__ico{border-color:var(--taupe);background:var(--lino)}
}

/* --- Táctil: feedback de presión, sin hover fantasma --- */
@media(hover:none){
  a.card{transition:transform .18s ease}
  a.card:active{transform:scale(.985)}
}

/* --- Foco de teclado: anillo sobrio en color institucional --- */
a.card:focus-visible{
  outline:2px solid var(--oliva);
  outline-offset:4px;
  box-shadow:0 14px 32px -20px rgba(46,75,62,.35);
}

/* --- Compensación del encabezado fijo en todos los destinos --- */
section[id], #ver-habitaciones, #ver-aseo, #ver-formulario{scroll-margin-top:96px}
@media(max-width:680px){
  section[id], #ver-habitaciones, #ver-aseo, #ver-formulario{scroll-margin-top:86px}
}

/* --- Énfasis de llegada: 800 ms, se desvanece solo --- */
@keyframes aromo-destino{
  0%   {box-shadow:0 0 0 0 rgba(46,75,62,0);   transform:translateY(0)}
  22%  {box-shadow:0 0 0 3px rgba(46,75,62,.22), 0 16px 40px -26px rgba(46,75,62,.35); transform:translateY(-2px)}
  100% {box-shadow:0 0 0 0 rgba(46,75,62,0);   transform:translateY(0)}
}
.is-destino{
  animation:aromo-destino 800ms cubic-bezier(.25,.8,.3,1) both;
  border-radius:var(--radio);
}
.is-destino:focus{outline:none}
.is-destino:focus-visible{outline:2px solid var(--oliva);outline-offset:4px}

@media(prefers-reduced-motion:reduce){
  .is-destino{animation:none}
  a.card{transition:none}
}


/* =========================================================
   OPTIMIZACIÓN MÓVIL
   Solo afecta pantallas ≤680px. Desktop y tablet intactos.
   Objetivo: menos scroll, menos texto visual, misma información.
   ========================================================= */
@media(max-width:680px){

  /* --- Ritmo vertical: sección más compacta --- */
  .section{padding:44px 0}
  .section__head{margin-bottom:30px}
  .wrap{padding:0 18px}

  /* --- Escala tipográfica móvil (títulos más contenidos) --- */
  .hero__title{font-size:2.05rem;line-height:1.1}
  .section__head h2{font-size:1.55rem;line-height:1.18;margin-top:10px}
  .section__head p{font-size:.95rem;line-height:1.5;margin-top:10px}
  .hero__lead{font-size:.98rem;line-height:1.55;margin-top:16px}
  .eyebrow{font-size:.66rem;letter-spacing:.2em}

  /* --- Hero más liviano --- */
  .hero__grid{padding:34px 0 40px;gap:26px}
  .hero__actions{margin-top:22px;gap:10px}
  .hero__title::after{margin-top:14px}

  /* --- Barra de confianza compacta --- */
  .trust__item{padding:16px 12px}
  .trust__k{font-size:1.2rem}
  .trust__v{font-size:.6rem}

  /* --- Tarjetas de servicios: menos aire interno --- */
  .cards{gap:12px}
  .card{padding:22px 20px}
  .card__ico{width:38px;height:38px;margin-bottom:12px}
  .card h3{font-size:1.08rem}
  .card p{font-size:.9rem;line-height:1.5;margin-top:6px}

  /* --- Alimentación --- */
  .food__grid{gap:24px}
  .food__intro{font-size:.95rem;line-height:1.5;margin-top:10px}
  .menu{gap:18px;margin-top:20px}
  .menu__col h3{font-size:1rem}
  .menu__col p{font-size:.9rem;line-height:1.5}
  .food__cocina{margin-top:28px}

  /* --- Galería: fotos grandes pero menos altas --- */
  .galeria{gap:26px}
  .gal-label{font-size:.7rem;margin-bottom:11px}
  .gal-hab,.gal-com,.gal-pat{gap:10px}
  .g figcaption{font-size:.56rem;padding:4px 9px}

  /* --- Pasos de estadías --- */
  .steps{gap:18px}
  .step{padding-top:22px}
  .step h3{font-size:1.06rem;margin:8px 0 6px}
  .step p{font-size:.9rem;line-height:1.5}

  /* --- Chips --- */
  .chips{gap:9px}
  .chip{padding:.6rem 1rem;font-size:.88rem}

  /* --- Por qué El Aromo --- */
  .vp{padding:13px 0;gap:12px}
  .vp h3{font-size:.98rem}
  .vp p{font-size:.86rem;line-height:1.45;margin-top:2px}
  .vp__check{width:22px;height:22px}

  /* --- Misión y visión --- */
  .mv__grid{gap:14px}
  .mv__card{padding:26px 22px}
  .mv__card h3{font-size:1.25rem;margin-bottom:9px}
  .mv__card p{font-size:.94rem;line-height:1.55}

  /* --- Contacto --- */
  .contacto__lead{font-size:.95rem;line-height:1.5;margin-top:10px}
  .contact-list{margin-top:22px}
  .contact-list li{padding:12px 0;gap:11px}
  .ci{width:34px;height:34px}
  .ci__text{min-width:0}                      /* permite que el texto se ajuste */
  .ci__text a,.ci__text span:last-child{font-size:.92rem;word-break:break-word}
  .form-card{padding:22px 18px}
  .field{margin-bottom:13px}
  .field input,.field textarea{padding:.75rem .85rem}
  .field textarea{min-height:80px}

  /* --- Footer compacto --- */
  .footer__grid{padding:36px 0;gap:24px}
  .footer__brand p{font-size:.88rem;margin-top:11px}
  .footer__col a,.footer__addr{font-size:.88rem;margin-bottom:7px}
  .footer__bar{padding:16px 0;font-size:.72rem}

  /* --- Zonas táctiles: botones cómodos para el pulgar --- */
  .btn{min-height:48px;padding:.9rem 1.5rem}
  .btn--block{min-height:50px}

  /* --- Nada puede desbordar horizontalmente --- */
  html,body{overflow-x:hidden;max-width:100%}
  img,figure,.card,.chip,.form-card{max-width:100%}
}

/* --- Pantallas muy angostas (320–360px) --- */
@media(max-width:380px){
  .wrap{padding:0 15px}
  .hero__title{font-size:1.85rem}
  .section__head h2{font-size:1.4rem}
  .chip{font-size:.83rem;padding:.55rem .9rem}
  .ci__text a,.ci__text span:last-child{font-size:.86rem}
  .trust__k{font-size:1.05rem}
}

/* --- Galería en una columna: alto contenido, foto grande --- */
@media(max-width:480px){
  .gal-hab,.gal-com,.gal-pat{grid-template-columns:1fr;grid-auto-rows:185px}
}

/* =========================================================
   BOTÓN FLOTANTE DE WHATSAPP (solo móvil)
   Convive con el CTA inferior sin superponerse.
   ========================================================= */
.wa-float{display:none}

@media(max-width:680px){
  .wa-float{
    display:flex;align-items:center;justify-content:center;
    position:fixed;right:16px;bottom:16px;z-index:95;
    width:56px;height:56px;border-radius:50%;
    background:#25D366;color:#fff;
    box-shadow:0 8px 22px -6px rgba(37,211,102,.5), 0 2px 8px rgba(42,38,34,.2);
    -webkit-tap-highlight-color:transparent;
    transition:transform .2s ease;
  }
  .wa-float:active{transform:scale(.94)}
  .wa-float:focus-visible{outline:2px solid var(--oliva);outline-offset:3px}

  /* el CTA deja de ser de ancho completo para no chocar con el flotante */
  .mobile-cta{right:84px;padding:.95rem 1rem;font-size:.95rem;min-height:52px;
              display:flex;align-items:center;justify-content:center}

  /* espacio inferior para que nada quede tapado */
  body{padding-bottom:88px}
}
