/* ============================================================================
   All Inclusive Vallarta
   Paleta: blancos y grises con coral de atardecer para los acentos.
   Clon de allinclusivepuertovallarta.com: los tokens conservan el nombre --sky-*
   (mismo CSS, sólo cambian los valores) para poder portar cambios entre ambos.
   Al tocar colores, sube VER en includes/config.php (cache-busting).
   ========================================================================== */

:root{
  /* Coral de atardecer — el único color de acento */
  --sky-50:#FFF5F0;
  --sky-100:#FFE7DB;
  --sky-200:#FFCBB2;
  --sky:#F2683C;
  --sky-600:#DA5222;
  --sky-700:#A93B14;

  /* Grises */
  --white:#FFFFFF;
  --gray-25:#FBFCFD;
  --gray-50:#F5F7F9;
  --gray-100:#EDF0F3;
  --gray-200:#E1E6EB;
  --gray-300:#CBD3DA;
  --gray-400:#9AA6B2;
  --gray-500:#6C7A87;
  --gray-600:#4E5A66;
  --gray-700:#39434D;
  --ink:#1B242C;

  --line:var(--gray-200);
  --bg:var(--white);
  --bg-soft:var(--gray-50);

  --radius:14px;
  --radius-lg:20px;
  --shadow-sm:0 1px 2px rgba(27,36,44,.05), 0 1px 3px rgba(27,36,44,.04);
  --shadow:0 4px 6px -2px rgba(27,36,44,.05), 0 12px 22px -8px rgba(27,36,44,.10);
  --shadow-lg:0 10px 20px -8px rgba(27,36,44,.10), 0 28px 50px -20px rgba(27,36,44,.16);

  --wrap:1200px;
  --head-h:72px;

  --font-head:'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-body:'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ── Reset ─────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--head-h) + 16px)}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-body); font-size:16px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; height:auto; display:block}
a{color:var(--sky-700); text-decoration:none}
a:hover{color:var(--sky-600)}
h1,h2,h3,h4{font-family:var(--font-head); line-height:1.2; margin:0 0 .5em; color:var(--ink); letter-spacing:-.02em}
h1{font-size:clamp(2rem,1.35rem + 2.6vw,3.15rem); font-weight:800}
h2{font-size:clamp(1.45rem,1.2rem + 1.1vw,2.1rem); font-weight:700}
h3{font-size:1.2rem; font-weight:700}
p{margin:0 0 1.1em}
ul,ol{margin:0 0 1.1em; padding-left:1.2em}
hr{border:0; border-top:1px solid var(--line); margin:2.5rem 0}
:focus-visible{outline:3px solid var(--sky); outline-offset:2px; border-radius:6px}

.wrap{width:min(100% - 2.5rem, var(--wrap)); margin-inline:auto}
.skip-link{position:absolute; left:-9999px}
.skip-link:focus{left:1rem; top:1rem; z-index:999; background:var(--white); padding:.6rem 1rem; border-radius:8px; box-shadow:var(--shadow)}

/* ── Botones ───────────────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.45rem;
  font-family:var(--font-head); font-weight:700; font-size:.95rem;
  padding:.78rem 1.35rem; border-radius:999px; border:1px solid transparent;
  cursor:pointer; transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
  white-space:nowrap; text-align:center;
}
.btn:hover{transform:translateY(-1px)}
.btn--sky{background:var(--sky); color:#fff; box-shadow:0 6px 14px -6px rgba(242,104,60,.65)}
.btn--sky:hover{background:var(--sky-600); color:#fff; box-shadow:0 10px 20px -8px rgba(242,104,60,.7)}
.btn--ghost{background:var(--white); color:var(--ink); border-color:var(--gray-300)}
.btn--ghost:hover{border-color:var(--sky); color:var(--sky-700)}
.btn--light{background:rgba(255,255,255,.16); color:#fff; border-color:rgba(255,255,255,.5); backdrop-filter:blur(6px)}
.btn--light:hover{background:rgba(255,255,255,.28); color:#fff}
.btn--sm{padding:.55rem 1rem; font-size:.86rem}
.btn--block{display:flex; width:100%}

.link-arrow{font-family:var(--font-head); font-weight:700; font-size:.92rem; color:var(--sky-700)}
.link-arrow::after{content:' →'; transition:margin .15s ease}
.link-arrow:hover::after{margin-left:.2rem}

/* ── Encabezado ────────────────────────────────────────────────── */
.site-head{
  position:sticky; top:0; z-index:60; background:rgba(255,255,255,.92);
  backdrop-filter:saturate(1.4) blur(10px); border-bottom:1px solid var(--line);
}
.site-head__inner{display:flex; align-items:center; gap:1.25rem; height:var(--head-h)}
.brand{display:inline-flex; align-items:center; gap:.6rem; color:var(--ink); flex-shrink:0}
.brand:hover{color:var(--ink)}
.brand__mark{
  display:grid; place-items:center; width:42px; height:42px; border-radius:12px;
  background:linear-gradient(140deg,var(--sky) 0%,var(--sky-600) 100%); color:#fff;
  box-shadow:0 6px 14px -8px rgba(242,104,60,.9);
}
.brand__text{display:flex; flex-direction:column; line-height:1.1; font-family:var(--font-head)}
.brand__text strong{font-size:1.02rem; font-weight:800; letter-spacing:-.02em}
.brand__text span{font-size:.74rem; font-weight:600; color:var(--gray-500); letter-spacing:.1em; text-transform:uppercase}

.nav{margin-left:auto}
.nav__list{display:flex; align-items:center; gap:.35rem; list-style:none; margin:0; padding:0}
.nav__link{
  display:block; padding:.5rem .8rem; border-radius:999px; font-family:var(--font-head);
  font-weight:600; font-size:.94rem; color:var(--gray-600); transition:background .15s ease, color .15s ease;
}
.nav__link:hover{background:var(--gray-50); color:var(--ink)}
.nav__link.is-active{background:var(--sky-50); color:var(--sky-700)}
.nav__foot{display:none}

.site-head__actions{display:flex; align-items:center; gap:.6rem}
.burger{display:none; width:42px; height:42px; border:1px solid var(--line); background:var(--white); border-radius:11px; cursor:pointer; padding:0}
.burger span{display:block; width:18px; height:2px; background:var(--ink); margin:3.5px auto; border-radius:2px; transition:transform .2s ease, opacity .2s ease}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

@media (max-width:960px){
  .site-head__cta{display:none}
  .burger{display:block}
  .nav{
    position:fixed; inset:var(--head-h) 0 auto 0; background:var(--white);
    border-bottom:1px solid var(--line); box-shadow:var(--shadow-lg);
    padding:1rem 1.25rem 1.4rem; display:none;
  }
  .nav.is-open{display:block}
  .nav__list{flex-direction:column; align-items:stretch; gap:.15rem}
  .nav__link{padding:.75rem .9rem; border-radius:10px; font-size:1rem}
  .nav__foot{display:block; margin-top:.9rem}
  .nav__foot .btn{width:100%}
}

/* ── Hero ──────────────────────────────────────────────────────── */
.hero{position:relative; isolation:isolate; color:#fff; overflow:hidden}
.hero__bg{position:absolute; inset:0; z-index:-2}
.hero__bg img{width:100%; height:100%; object-fit:cover}
.hero::after{
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(15,32,43,.62) 0%, rgba(15,32,43,.5) 45%, rgba(15,32,43,.78) 100%);
}
.hero__inner{padding:clamp(3.5rem,3rem + 6vw,7rem) 0 clamp(2.5rem,2rem + 4vw,4.5rem); max-width:820px}
.hero h1{color:#fff; text-shadow:0 2px 20px rgba(0,0,0,.25)}
.hero__kicker{
  display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-head); font-weight:700;
  font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:#fff;
  background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.34);
  padding:.4rem .85rem; border-radius:999px; margin-bottom:1.1rem; backdrop-filter:blur(6px);
}
.hero__lead{font-size:clamp(1.02rem,.97rem + .35vw,1.2rem); color:rgba(255,255,255,.92); max-width:62ch; margin-bottom:1.7rem}
.hero__actions{display:flex; flex-wrap:wrap; gap:.7rem}
.hero__stats{display:flex; flex-wrap:wrap; gap:2rem; margin-top:2.4rem; padding-top:1.6rem; border-top:1px solid rgba(255,255,255,.22)}
.hero__stat strong{display:block; font-family:var(--font-head); font-size:1.7rem; font-weight:800; line-height:1}
.hero__stat span{font-size:.83rem; color:rgba(255,255,255,.8); text-transform:uppercase; letter-spacing:.08em}

/* Hero compacto de páginas interiores */
.phead{background:var(--gray-50); border-bottom:1px solid var(--line); padding:2.4rem 0 2.6rem}
.phead h1{margin-bottom:.5rem}
.phead__lead{color:var(--gray-600); font-size:1.05rem; max-width:70ch; margin:0}
.phead--image{position:relative; isolation:isolate; color:#fff; border-bottom:0; background:var(--ink); padding:3.2rem 0 3.4rem}
.phead--image .phead__bg{position:absolute; inset:0; z-index:-2}
.phead--image .phead__bg img{width:100%; height:100%; object-fit:cover}
.phead--image::after{content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(15,32,43,.55),rgba(15,32,43,.8))}
.phead--image h1{color:#fff}
.phead--image .phead__lead{color:rgba(255,255,255,.9)}

.crumbs{font-size:.85rem; color:var(--gray-500); margin-bottom:.9rem; display:flex; flex-wrap:wrap; gap:.45rem; align-items:center}
.crumbs a{color:var(--gray-500)}
.crumbs a:hover{color:var(--sky-700)}
.crumbs span{color:var(--gray-300)}
.phead--image .crumbs, .phead--image .crumbs a{color:rgba(255,255,255,.78)}
.phead--image .crumbs a:hover{color:#fff}

/* ── Secciones ─────────────────────────────────────────────────── */
.section{padding:clamp(2.8rem,2.4rem + 2.2vw,4.5rem) 0}
.section--soft{background:var(--gray-50); border-block:1px solid var(--line)}
.section__head{max-width:66ch; margin-bottom:2rem}
.section__head--row{max-width:none; display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; flex-wrap:wrap}
.section__kicker{
  font-family:var(--font-head); font-weight:700; font-size:.76rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--sky-600); margin-bottom:.5rem;
}
.section__lead{color:var(--gray-600); margin:0}

/* ── Chips de zona ─────────────────────────────────────────────── */
.zonebar{display:flex; flex-wrap:wrap; gap:.45rem}
.chip{
  display:inline-flex; align-items:center; gap:.4rem; padding:.5rem .95rem; border-radius:999px;
  border:1px solid var(--line); background:var(--white); color:var(--gray-600);
  font-family:var(--font-head); font-weight:600; font-size:.88rem; transition:all .15s ease;
}
.chip:hover{border-color:var(--sky-200); background:var(--sky-50); color:var(--sky-700)}
.chip.is-active{background:var(--sky); border-color:var(--sky); color:#fff}
.chip__n{font-size:.78rem; opacity:.7}

/* ── Rejilla de zonas ──────────────────────────────────────────── */
.zgrid{display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.zcard{
  position:relative; display:block; border-radius:var(--radius-lg); overflow:hidden;
  background:var(--ink); color:#fff; box-shadow:var(--shadow); isolation:isolate;
  transition:transform .2s ease, box-shadow .2s ease;
}
.zcard:hover{transform:translateY(-3px); box-shadow:var(--shadow-lg); color:#fff}
.zcard img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .4s ease}
.zcard:hover img{transform:scale(1.05)}
.zcard::after{content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(15,32,43,.12) 0%,rgba(15,32,43,.72) 62%,rgba(15,32,43,.9) 100%)}
.zcard__body{padding:1.5rem 1.35rem 1.3rem; min-height:250px; display:flex; flex-direction:column; justify-content:flex-end}
.zcard__region{
  align-self:flex-start; font-family:var(--font-head); font-weight:700; font-size:.68rem;
  letter-spacing:.12em; text-transform:uppercase; background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.3); padding:.25rem .6rem; border-radius:999px; margin-bottom:auto;
}
.zcard h3{color:#fff; margin:0 0 .35rem; font-size:1.25rem}
.zcard__meta{font-size:.82rem; color:rgba(255,255,255,.82); margin:0}
.zcard__meta b{font-weight:700; color:#fff}

/* ── Tarjeta de resort ─────────────────────────────────────────── */
.hgrid{display:grid; gap:1.35rem; grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.hcard{
  display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.hcard:hover{transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--gray-300)}
.hcard--featured{border-color:var(--sky-200); box-shadow:0 0 0 1px var(--sky-100), var(--shadow-sm)}
.hcard__media{position:relative; display:block; aspect-ratio:16/9; background:var(--gray-100); overflow:hidden}
.hcard__media img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease}
.hcard:hover .hcard__media img{transform:scale(1.04)}
.hcard__ribbon{
  position:absolute; top:.7rem; left:.7rem; background:var(--sky); color:#fff;
  font-family:var(--font-head); font-weight:700; font-size:.68rem; letter-spacing:.1em;
  text-transform:uppercase; padding:.3rem .65rem; border-radius:999px;
  box-shadow:0 4px 10px -4px rgba(0,0,0,.5);
}
.hcard__body{padding:1.1rem 1.15rem 1.2rem; display:flex; flex-direction:column; flex:1}
.hcard__tags{display:flex; flex-wrap:wrap; gap:.35rem; margin-bottom:.6rem}
.hcard__title{font-size:1.1rem; margin:0 0 .35rem; line-height:1.28}
.hcard__title a{color:var(--ink)}
.hcard__title a:hover{color:var(--sky-700)}
.hcard__zone{display:flex; align-items:center; gap:.35rem; font-size:.84rem; color:var(--gray-500); margin:0 0 .7rem}
.hcard__zone svg{flex-shrink:0; color:var(--sky)}
.hcard__zone a{color:var(--gray-600); font-weight:500}
.hcard__region{color:var(--gray-400)}
.hcard__region::before{content:'· '}
.hcard__summary{font-size:.92rem; color:var(--gray-600); margin:0 0 1rem}
.hcard__foot{display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin:auto 0 0; padding-top:.85rem; border-top:1px solid var(--gray-100)}
.hcard__brand{font-size:.76rem; color:var(--gray-400); text-align:right}

.tag{
  display:inline-block; font-family:var(--font-head); font-weight:700; font-size:.7rem;
  letter-spacing:.05em; text-transform:uppercase; padding:.24rem .6rem; border-radius:999px;
}
.tag--profile{background:var(--sky-50); color:var(--sky-700); border:1px solid var(--sky-100)}
.tag--soft{background:var(--gray-50); color:var(--gray-500); border:1px solid var(--line)}

/* ── Layout con barra lateral ──────────────────────────────────── */
.layout{display:grid; gap:2.5rem; grid-template-columns:minmax(0,1fr) 300px; align-items:start}
@media (max-width:1000px){ .layout{grid-template-columns:1fr} }
.sidebar{display:flex; flex-direction:column; gap:1.25rem; position:sticky; top:calc(var(--head-h) + 1.25rem)}
@media (max-width:1000px){ .sidebar{position:static} }

.side-box{background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:1.15rem 1.15rem 1.25rem; box-shadow:var(--shadow-sm)}
.side-box h3{font-size:.98rem; margin:0 0 .8rem; padding-bottom:.6rem; border-bottom:1px solid var(--gray-100)}
.side-box ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.15rem}
.side-box li a{display:flex; justify-content:space-between; gap:.6rem; padding:.42rem .5rem; border-radius:8px; font-size:.9rem; color:var(--gray-600)}
.side-box li a:hover{background:var(--sky-50); color:var(--sky-700)}
.side-box li a b{color:var(--gray-400); font-weight:600; font-size:.82rem}
.side-box--sell{background:linear-gradient(160deg,var(--sky-50),var(--white)); border-color:var(--sky-100)}
.side-box--sell p{font-size:.9rem; color:var(--gray-600)}
.side-box__price{font-family:var(--font-head); font-weight:700; color:var(--sky-700) !important; font-size:.95rem !important}

.side-posts{display:flex; flex-direction:column; gap:.85rem}
.side-post{display:flex; gap:.7rem; align-items:flex-start}
.side-post img{width:72px; height:54px; object-fit:cover; border-radius:8px; flex-shrink:0}
.side-post h4{margin:0; font-size:.86rem; line-height:1.35; font-family:var(--font-body); font-weight:500}
.side-post h4 a{color:var(--gray-700)}
.side-post h4 a:hover{color:var(--sky-700)}
.side-post time{font-size:.74rem; color:var(--gray-400)}

/* ── Espacios publicitarios ────────────────────────────────────── */
.ad{margin:0}
.ad__label{
  font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gray-400);
  margin:0 0 .35rem; text-align:center; font-family:var(--font-head); font-weight:600;
}
.ad__img{width:100%; border-radius:var(--radius); border:1px solid var(--line)}
.ad__html{border-radius:var(--radius); overflow:hidden}
.ad--free .ad__empty{
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  gap:.3rem; min-height:230px; padding:1.3rem 1rem;
  border:2px dashed var(--sky-200); border-radius:var(--radius);
  background:repeating-linear-gradient(135deg,var(--sky-50),var(--sky-50) 12px,var(--white) 12px,var(--white) 24px);
  color:var(--gray-600); transition:border-color .15s ease, background .15s ease;
}
.ad--free .ad__empty:hover{border-color:var(--sky); background:var(--sky-50)}
.ad__empty-ico{color:var(--sky); line-height:0}
.ad__empty-title{font-family:var(--font-head); font-weight:800; font-size:1rem; color:var(--ink)}
.ad__empty-size{font-size:.78rem; color:var(--gray-400)}
.ad__empty-cta{font-family:var(--font-head); font-weight:700; font-size:.85rem; color:var(--sky-700); margin-top:.3rem}
.ad--wide{margin:2.5rem 0}
.ad--wide .ad__empty{min-height:150px}
.ad--inline{margin:2rem 0}
.ad--inline .ad__empty{min-height:110px; flex-direction:row; flex-wrap:wrap; gap:.7rem}

/* ── Ficha de resort ───────────────────────────────────────────── */
.hotel__grid{display:grid; gap:2.5rem; grid-template-columns:minmax(0,1fr) 300px; align-items:start}
@media (max-width:1000px){ .hotel__grid{grid-template-columns:1fr} }
.hotel__lead{font-size:1.1rem; color:var(--gray-600)}
.hotel__facts{
  display:grid; gap:1px; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  background:var(--line); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; margin:1.8rem 0 2rem;
}
.hotel__fact{background:var(--white); padding:.95rem 1.1rem}
.hotel__fact dt{font-size:.7rem; letter-spacing:.11em; text-transform:uppercase; color:var(--gray-400); font-family:var(--font-head); font-weight:700; margin-bottom:.2rem}
.hotel__fact dd{margin:0; font-family:var(--font-head); font-weight:700; font-size:.98rem; color:var(--ink)}
.hotel__hl{list-style:none; padding:0; display:grid; gap:.55rem; grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.hotel__hl li{display:flex; gap:.6rem; align-items:flex-start; font-size:.95rem; color:var(--gray-700)}
.hotel__hl li::before{
  content:''; flex-shrink:0; width:18px; height:18px; margin-top:.15rem; border-radius:50%;
  background:var(--sky-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F2683C' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat;
}
.callout{
  background:var(--sky-50); border:1px solid var(--sky-100); border-left:4px solid var(--sky);
  border-radius:10px; padding:1rem 1.2rem; margin:1.8rem 0;
}
.callout p:last-child{margin-bottom:0}
.callout strong{color:var(--sky-700)}
.note{font-size:.86rem; color:var(--gray-500); background:var(--gray-50); border:1px solid var(--line); border-radius:10px; padding:.85rem 1rem}
.note p:last-child{margin-bottom:0}
.sponsor-cta{display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; margin-top:1.5rem}

/* ── Blog ──────────────────────────────────────────────────────── */
.bgrid{display:grid; gap:1.5rem; grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.bcard{display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .2s ease, box-shadow .2s ease}
.bcard:hover{transform:translateY(-3px); box-shadow:var(--shadow)}
.bcard__media{display:block; aspect-ratio:16/9; overflow:hidden; background:var(--gray-100)}
.bcard__media img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease}
.bcard:hover .bcard__media img{transform:scale(1.04)}
.bcard__body{padding:1.05rem 1.15rem 1.2rem; display:flex; flex-direction:column; flex:1}
.bcard__cat{align-self:flex-start; font-family:var(--font-head); font-weight:700; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--sky-700); background:var(--sky-50); border:1px solid var(--sky-100); padding:.22rem .6rem; border-radius:999px; margin-bottom:.6rem}
.bcard h3{font-size:1.05rem; line-height:1.3; margin:0 0 .5rem}
.bcard h3 a{color:var(--ink)}
.bcard h3 a:hover{color:var(--sky-700)}
.bcard p{font-size:.9rem; color:var(--gray-600); margin:0 0 1rem}
.bcard__meta{display:flex; gap:.75rem; font-size:.78rem; color:var(--gray-400); margin:auto 0 0; padding-top:.8rem; border-top:1px solid var(--gray-100)}

/* Artículo */
.post{max-width:none}
.post__hero{margin-bottom:1.8rem; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm)}
.post__meta{display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; font-size:.85rem; color:var(--gray-500); margin-bottom:1.5rem}
.post__body{font-size:1.03rem; color:var(--gray-700); max-width:72ch}
.post__body h2{margin:2.2rem 0 .8rem; font-size:1.55rem; color:var(--ink); scroll-margin-top:calc(var(--head-h) + 16px)}
.post__body h3{margin:1.8rem 0 .6rem; font-size:1.16rem; color:var(--ink)}
.post__body p{margin-bottom:1.15em}
.post__body a{color:var(--sky-700); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px}
.post__body a:hover{color:var(--sky-600)}
.post__body strong{color:var(--ink)}
.post__body ul,.post__body ol{margin-bottom:1.3em}
.post__body li{margin-bottom:.45em}
.post__body blockquote{margin:1.8rem 0; padding:.2rem 0 .2rem 1.3rem; border-left:4px solid var(--sky-200); color:var(--gray-600); font-style:italic}
.post-figure{margin:1.8rem 0}
.post-figure img{border-radius:var(--radius); width:100%; box-shadow:var(--shadow-sm)}
.post-figure figcaption{font-size:.83rem; color:var(--gray-400); text-align:center; margin-top:.5rem}
.post__body table{width:100%; border-collapse:collapse; margin:1.8rem 0; font-size:.94rem}
.post__body th,.post__body td{border:1px solid var(--line); padding:.65rem .8rem; text-align:left}
.post__body th{background:var(--gray-50); font-family:var(--font-head); font-weight:700}

.faq{margin:2.2rem 0}
.faq__item{border:1px solid var(--line); border-radius:var(--radius); margin-bottom:.7rem; background:var(--white); overflow:hidden}
.faq__item summary{padding:.95rem 1.15rem; font-family:var(--font-head); font-weight:700; cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:1rem; align-items:center; color:var(--ink)}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:'+'; color:var(--sky); font-size:1.35rem; line-height:1; flex-shrink:0}
.faq__item[open] summary::after{content:'–'}
.faq__item[open] summary{border-bottom:1px solid var(--gray-100)}
.faq__body{padding:1rem 1.15rem 1.1rem; color:var(--gray-600); font-size:.96rem}
.faq__body p:last-child{margin-bottom:0}

.share{display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin:2.5rem 0 0; padding-top:1.5rem; border-top:1px solid var(--line)}
.share span{font-family:var(--font-head); font-weight:700; font-size:.88rem; color:var(--gray-500)}

/* ── Formularios ───────────────────────────────────────────────── */
.form{display:grid; gap:1rem; grid-template-columns:1fr 1fr}
.form .full{grid-column:1/-1}
@media (max-width:640px){ .form{grid-template-columns:1fr} }
.field label{display:block; font-family:var(--font-head); font-weight:600; font-size:.86rem; color:var(--gray-600); margin-bottom:.35rem}
.field input,.field select,.field textarea{
  width:100%; padding:.75rem .9rem; border:1px solid var(--gray-300); border-radius:10px;
  font-family:inherit; font-size:.96rem; color:var(--ink); background:var(--white); transition:border-color .15s ease, box-shadow .15s ease;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--sky); box-shadow:0 0 0 3px var(--sky-100)}
.field textarea{min-height:140px; resize:vertical}
.alert{padding:.9rem 1.1rem; border-radius:10px; margin-bottom:1.2rem; font-size:.94rem}
.alert--ok{background:var(--sky-50); border:1px solid var(--sky-200); color:var(--sky-700)}
.alert--bad{background:#FEF2F2; border:1px solid #FECACA; color:#B91C1C}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

/* ── Bloques varios ────────────────────────────────────────────── */
.split{display:grid; gap:2.5rem; grid-template-columns:1fr 1fr; align-items:center}
@media (max-width:860px){ .split{grid-template-columns:1fr} }
.split img{border-radius:var(--radius-lg); box-shadow:var(--shadow)}

.steps{list-style:none; padding:0; display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.step{background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:1.3rem 1.25rem; box-shadow:var(--shadow-sm)}
.step__n{display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:var(--sky-50); color:var(--sky-700); font-family:var(--font-head); font-weight:800; margin-bottom:.8rem}
.step h3{font-size:1.02rem; margin-bottom:.35rem}
.step p{font-size:.92rem; color:var(--gray-600); margin:0}

.priceboard{display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); margin-top:1.5rem}
.pricecard{background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.5rem 1.4rem; box-shadow:var(--shadow-sm); display:flex; flex-direction:column}
.pricecard--hot{border-color:var(--sky); box-shadow:0 0 0 1px var(--sky-100), var(--shadow)}
.pricecard h3{font-size:1.1rem; margin-bottom:.3rem}
.pricecard__where{font-size:.85rem; color:var(--gray-500); margin-bottom:1rem}
.pricecard ul{list-style:none; padding:0; margin:0 0 1.3rem; display:flex; flex-direction:column; gap:.5rem}
.pricecard li{display:flex; gap:.55rem; font-size:.92rem; color:var(--gray-600)}
.pricecard li::before{content:'✓'; color:var(--sky); font-weight:700; flex-shrink:0}
.pricecard .btn{margin-top:auto}

.cta{background:linear-gradient(155deg,var(--sky-600),var(--sky-700)); color:#fff; border-radius:var(--radius-lg); padding:clamp(2rem,1.6rem + 2vw,3.2rem); text-align:center; box-shadow:var(--shadow)}
.cta h2{color:#fff}
.cta p{color:rgba(255,255,255,.9); max-width:60ch; margin-inline:auto; margin-bottom:1.6rem}
.cta .btn--light{border-color:rgba(255,255,255,.7)}

.empty{text-align:center; padding:3rem 1rem; color:var(--gray-500); background:var(--gray-50); border:1px dashed var(--gray-300); border-radius:var(--radius)}

/* ── Pie ───────────────────────────────────────────────────────── */
.site-foot{background:var(--gray-50); border-top:1px solid var(--line); padding:3rem 0 1.5rem; margin-top:1rem}
.site-foot__grid{display:grid; gap:2rem; grid-template-columns:1.6fr 1fr 1fr 1fr}
@media (max-width:900px){ .site-foot__grid{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .site-foot__grid{grid-template-columns:1fr} }
.site-foot__brand p{font-size:.9rem; color:var(--gray-500); margin:.9rem 0 1rem; max-width:38ch}
.brand--foot{margin-bottom:.2rem}
.site-foot__col h2{font-family:var(--font-head); font-size:.78rem; letter-spacing:.13em; text-transform:uppercase; color:var(--gray-400); margin-bottom:.9rem}
.site-foot__col ul{list-style:none; padding:0; margin:0 0 1rem; display:flex; flex-direction:column; gap:.45rem}
.site-foot__col a{font-size:.9rem; color:var(--gray-600)}
.site-foot__col a:hover{color:var(--sky-700)}
.socials{list-style:none; padding:0; margin:0; display:flex; gap:.5rem; flex-wrap:wrap}
.socials a{font-size:.82rem; color:var(--gray-600); border:1px solid var(--line); background:var(--white); padding:.3rem .75rem; border-radius:999px}
.socials a:hover{border-color:var(--sky-200); color:var(--sky-700); background:var(--sky-50)}
.site-foot__note{margin-top:2.2rem; padding-top:1.4rem; border-top:1px solid var(--line)}
.site-foot__note p{font-size:.82rem; color:var(--gray-500); margin:0; max-width:100ch}
.site-foot__legal{display:flex; justify-content:space-between; flex-wrap:wrap; gap:.6rem; margin-top:1.2rem; padding-top:1.2rem; border-top:1px solid var(--line)}
.site-foot__legal p{margin:0; font-size:.82rem; color:var(--gray-400)}

.wa-float{
  position:fixed; right:1.1rem; bottom:1.1rem; z-index:70; width:52px; height:52px; border-radius:50%;
  display:grid; place-items:center; background:#25D366; color:#fff; box-shadow:0 8px 20px -6px rgba(37,211,102,.6);
  transition:transform .15s ease;
}
.wa-float:hover{transform:scale(1.07); color:#fff}

/* ── Utilidades ────────────────────────────────────────────────── */
.mt0{margin-top:0}
.mb0{margin-bottom:0}
.center{text-align:center}
.muted{color:var(--gray-500)}
.pagination{display:flex; gap:.4rem; justify-content:center; margin-top:2.5rem; flex-wrap:wrap}
.pagination a,.pagination span{
  min-width:40px; padding:.5rem .75rem; border-radius:10px; border:1px solid var(--line);
  background:var(--white); font-family:var(--font-head); font-weight:600; font-size:.9rem;
  color:var(--gray-600); text-align:center;
}
.pagination a:hover{border-color:var(--sky); color:var(--sky-700)}
.pagination .is-current{background:var(--sky); border-color:var(--sky); color:#fff}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important}
}
