/* ==========================================================================
   Petén d'Arenas — estilos del sitio
   Colores, tipografías y espacios de la marca. Normalmente NO necesitas
   tocar este archivo: los textos, precios y fotos se editan en index.html.
   ========================================================================== */

/* ---------- Tipografías ---------- */
@font-face{font-family:'Myriad Pro';src:url("../fonts/MyriadPro-Bold.otf") format('opentype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Myriad Pro Black SemiCn';src:url("../fonts/MyriadPro-BlackSemiCn.otf") format('opentype');font-weight:900;font-style:normal;font-display:swap}
@font-face{font-family:'Source Sans Pro';src:url("../fonts/SourceSansPro-Regular.ttf") format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Source Sans Pro';src:url("../fonts/SourceSansPro-Italic.ttf") format('truetype');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Source Sans Pro';src:url("../fonts/SourceSansPro-Light.ttf") format('truetype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Source Sans Pro';src:url("../fonts/SourceSansPro-SemiBold.ttf") format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Source Sans Pro';src:url("../fonts/SourceSansPro-Bold.ttf") format('truetype');font-weight:700;font-style:normal;font-display:swap}

/* ---------- Colores y medidas de la marca ---------- */
:root{
  --teal-50:#eef7f6;--teal-600:#1d9692;--teal-700:#187a72;--teal-800:#155f5a;
  --gold-50:#f8f3e9;--gold-300:#c7a86a;--gold-500:#a28141;--gold-600:#8c6d35;--gold-700:#71562a;
  --sand-0:#fffdf9;--sand-50:#faf6ef;--sand-100:#f3ecdf;--sand-200:#e6dcc7;--sand-300:#d2c4a5;
  --ink-500:#6b6558;--ink-700:#332f28;--ink-800:#221f1a;--ink-900:#17150f;

  --color-bg:var(--sand-0);
  --color-surface-sand:var(--sand-50);
  --color-border:var(--sand-200);
  --color-border-strong:var(--sand-300);
  --color-text:var(--ink-800);
  --color-text-muted:var(--ink-500);
  --color-primary:var(--teal-600);
  --color-primary-hover:var(--teal-700);
  --color-alert:#b03a2b;
  --color-accent:var(--gold-500);
  --color-accent-hover:var(--gold-600);
  --color-accent-soft:var(--gold-50);

  --font-display:Georgia,'Times New Roman',ui-serif,serif;
  --font-heading:'Myriad Pro',Helvetica,Arial,sans-serif;
  --font-heading-cond:'Myriad Pro Black SemiCn','Myriad Pro',Helvetica,Arial,sans-serif;
  --font-body:'Source Sans Pro',Helvetica,Arial,sans-serif;

  --text-sm:.875rem;--text-base:1rem;--text-md:1.125rem;--text-lg:1.375rem;--text-xl:1.75rem;
  --text-2xl:2.25rem;--text-3xl:3rem;--text-4xl:4rem;--text-5xl:5.5rem;
  --leading-tight:1.1;--leading-normal:1.6;
  --tracking-wide:.06em;--tracking-wider:.16em;--tracking-widest:.28em;
  --container-max:1200px;
  --ease:cubic-bezier(.4,0,.2,1);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:70px}
body{margin:0;font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);overflow-x:hidden}
img,iframe,video{max-width:100%}
.contenedor{max-width:var(--container-max);margin:0 auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Textos repetidos */
.antetitulo{font-family:var(--font-heading-cond);font-weight:900;font-size:12px;letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--gold-300)}
.titulo-display{font-family:var(--font-display);font-weight:700;text-transform:uppercase;line-height:var(--leading-tight);margin:0}
.encabezado{max-width:none}
.encabezado.centrado{text-align:center;max-width:640px;margin:0 auto}
.encabezado .antetitulo{font-size:13px;color:var(--color-accent);margin-bottom:14px}
.encabezado h2{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:var(--text-3xl);line-height:var(--leading-tight);letter-spacing:.01em;margin:0}
.encabezado .bajada{margin-top:16px;font-size:var(--text-md);color:var(--color-text-muted);line-height:var(--leading-normal)}
.encabezado.invertido h2{color:#fff}
.encabezado.invertido .antetitulo{color:rgba(255,255,255,.75)}
.encabezado.invertido .bajada{color:rgba(255,255,255,.85)}

/* ---------- Botones ---------- */
.boton{font-family:var(--font-heading);font-weight:700;letter-spacing:var(--tracking-wide);text-transform:uppercase;font-size:13px;padding:13px 28px;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;white-space:nowrap;transition:background .15s var(--ease),color .15s var(--ease),border-color .15s var(--ease)}
.boton.chico{padding:8px 16px;font-size:12px}
.boton.dorado{background:var(--color-accent);border-color:var(--color-accent);color:#fff}
.boton.dorado:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}
.boton.verde{background:var(--color-primary);border-color:var(--color-primary);color:#fff}
.boton.verde:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}
.boton.contorno-claro{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.boton.contorno-claro:hover{border-color:#fff}

/* ---------- Encabezado / menú ---------- */
.barra{position:sticky;top:0;z-index:30;background:rgba(23,21,15,.92);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.barra nav{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:16px 40px;flex-wrap:wrap}
.marca{display:flex;align-items:center;gap:12px;text-decoration:none}
.marca img{height:34px;display:block}
.marca span{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:18px;letter-spacing:.02em;line-height:1;color:#fff}
.marca span b{color:var(--gold-300);font-weight:700}
.menu{display:flex;gap:32px;flex-wrap:wrap}
.menu a,.menu-movil a{font-family:var(--font-heading);font-weight:700;font-size:13px;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:#fff;text-decoration:none;white-space:nowrap}
.menu a:hover{color:var(--gold-300)}
.hamburguesa{display:none;flex-direction:column;justify-content:center;align-items:flex-end;gap:5px;width:44px;height:44px;background:none;border:none;padding:0;cursor:pointer}
.hamburguesa span{display:block;width:22px;height:2px;background:#fff;transition:transform .15s ease,opacity .15s ease}
.barra.abierta .hamburguesa span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.barra.abierta .hamburguesa span:nth-child(2){opacity:0}
.barra.abierta .hamburguesa span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.menu-movil{display:none;width:100%;flex-direction:column;border-top:1px solid rgba(255,255,255,.16);margin-top:4px;padding-top:4px}
.menu-movil a{padding:14px 0;border-bottom:1px solid rgba(255,255,255,.10)}
.menu-movil .boton{margin:18px 0 6px;align-self:flex-start;padding:8px 16px;font-size:12px}

/* ---------- Portada ---------- */
.portada{position:relative;color:#fff}
.portada-fondo{position:absolute;inset:0;background:var(--ink-900) url("../img/portada-fachada.jpg") 50% 50%/cover no-repeat}
.portada-fondo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,21,15,.62) 0%,rgba(23,21,15,.34) 42%,rgba(23,21,15,.78) 100%)}
.portada-contenido{position:relative;padding:110px 40px 180px;text-align:center}
.portada .antetitulo{margin-bottom:20px}
.portada h1{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:var(--text-5xl);line-height:var(--leading-tight);margin:0 0 28px;text-shadow:0 2px 24px rgba(0,0,0,.6)}
.portada h1 em{font-style:italic;font-family:var(--font-body);font-weight:300;text-transform:none;font-size:.55em;letter-spacing:0}
.portada p.intro{font-size:var(--text-md);font-weight:300;max-width:620px;margin:0 auto 40px;color:rgba(255,255,255,.88);line-height:var(--leading-normal)}
.botones{display:flex;gap:16px;flex-wrap:wrap}
.portada .botones{justify-content:center}
.portada .vendido{margin:36px 0 22px;font-family:var(--font-heading);font-weight:700;font-size:22px;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--gold-300)}

/* ---------- Cifras ---------- */
.cifras{background:var(--color-primary);padding:56px 40px}
.cuatro-columnas{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;justify-items:center}
.cifra-valor{font-family:var(--font-display);font-weight:700;font-size:var(--text-3xl);line-height:1;color:var(--color-primary)}
.cifra-texto{font-family:var(--font-heading);font-weight:700;font-size:12px;letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--color-text-muted);margin-top:8px}
.cifras .cifra-valor{color:#fff}
.cifras .cifra-texto{color:rgba(255,255,255,.75)}

/* ---------- Oportunidades ---------- */
.oportunidades{padding:96px 40px;background:var(--ink-900);color:#fff}
.oportunidades .cabeza{text-align:center}
.etiqueta-roja{display:inline-block;background:var(--color-alert);color:#fff;font-family:var(--font-heading-cond);font-weight:900;font-size:12px;letter-spacing:var(--tracking-widest);text-transform:uppercase;padding:7px 14px}
.oportunidades h2{font-size:var(--text-3xl);margin-top:20px}
.oportunidades h2 i{font-style:normal;color:var(--color-alert)}
.oportunidades .cabeza p{color:rgba(255,255,255,.75);max-width:620px;margin:20px auto 0;line-height:var(--leading-normal)}
.tres-columnas{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.oportunidades .tres-columnas{margin-top:48px}
.oportunidad{background:#fff;border-top:5px solid var(--color-alert);padding:32px;display:flex;flex-direction:column;gap:18px;color:var(--color-text)}
.oportunidad .fila{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.oportunidad .unidad{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:var(--text-xl);white-space:nowrap}
.oportunidad .sello{background:var(--color-alert);color:#fff;font-family:var(--font-heading);font-weight:700;font-size:10px;letter-spacing:var(--tracking-wider);text-transform:uppercase;padding:5px 10px;white-space:nowrap}
.oportunidad .modelo{font-family:var(--font-heading);font-weight:700;font-size:12px;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-muted)}
.oportunidad p{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-text-muted);margin:0}
.oportunidad .precios{border-top:1px solid var(--color-border);padding-top:20px;margin-top:auto}
.oportunidad .antes{font-size:var(--text-sm);color:var(--color-text-muted);text-decoration:line-through}
.oportunidad .ahora{font-family:var(--font-heading);font-weight:700;font-size:var(--text-2xl);color:var(--color-alert);margin-top:4px}

/* ---------- Modelos ---------- */
.seccion{padding:100px 40px}
.modelos{background:var(--color-bg)}
.nota-centrada{color:var(--color-text-muted);text-align:center;max-width:620px;margin:20px auto 0;line-height:var(--leading-normal)}
.rejilla-modelos{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:56px;background:var(--color-border)}
.modelo-tarjeta{background:#fff;cursor:pointer;border:0;padding:0;text-align:left;font:inherit;color:inherit;display:block;width:100%}
.modelo-tarjeta .foto{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--sand-200)}
.modelo-tarjeta .foto img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ease)}
.modelo-tarjeta:hover .foto img{transform:scale(1.03)}
.modelo-tarjeta .sellos{position:absolute;top:16px;left:16px;display:flex;gap:8px;z-index:1}
.sello-negro,.sello-dorado{color:#fff;font-family:var(--font-heading);font-weight:700;font-size:11px;letter-spacing:var(--tracking-wider);text-transform:uppercase;padding:6px 12px}
.sello-negro{background:var(--ink-900)}
.sello-dorado{background:var(--color-accent)}
.modelo-tarjeta .datos{padding:24px}
.modelo-tarjeta h3{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:var(--text-lg);margin:0 0 8px}
.modelo-tarjeta .medidas{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:16px}
.modelo-tarjeta .tarjeta-pie{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--color-border);padding-top:16px}
.modelo-tarjeta .precio{font-family:var(--font-heading);font-weight:700;color:var(--color-primary);font-size:var(--text-md)}
.modelo-tarjeta .ver{font-family:var(--font-heading);font-weight:700;font-size:11px;letter-spacing:var(--tracking-wider);text-transform:uppercase}

/* Ficha de cada modelo (pantalla completa) */
.ficha{border:0;padding:0;margin:0;width:100%;max-width:none;height:100%;max-height:none;background:var(--color-bg);color:var(--color-text)}
.ficha::backdrop{background:rgba(23,21,15,.6)}
.ficha-barra{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 40px;background:#fff;border-bottom:1px solid var(--color-border)}
.ficha-barra .marca span{color:var(--color-primary)}
.ficha-barra .marca span b{color:var(--color-accent)}
.volver{background:none;border:none;cursor:pointer;font-family:var(--font-heading);font-weight:700;font-size:13px;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-muted);padding:20px 40px}
.ficha-cuerpo{max-width:var(--container-max);margin:0 auto;padding:0 40px 96px;display:grid;grid-template-columns:1.3fr 1fr;gap:48px}
.ficha-cuerpo .carrusel{aspect-ratio:1/1}
.ficha h2{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:var(--text-4xl);margin:16px 0 8px;line-height:1.05}
.ficha .precio{font-family:var(--font-heading);font-weight:700;font-size:var(--text-xl);color:var(--color-primary);margin:0 0 32px}
.ficha .especificaciones{display:flex;gap:32px;flex-wrap:wrap;padding:24px 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}
.ficha .descripcion{line-height:var(--leading-normal);color:var(--color-text-muted);margin:32px 0}
.insignia-dorada{font-family:var(--font-heading);font-weight:700;font-size:11px;letter-spacing:var(--tracking-wider);text-transform:uppercase;padding:6px 12px;border-radius:999px;display:inline-block;background:var(--color-accent-soft);color:var(--gold-700)}

/* Carrusel de fotos */
.carrusel{position:relative;width:100%;height:100%;overflow:hidden;background:var(--sand-200)}
.carrusel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .25s var(--ease)}
.carrusel img.activa{opacity:1}
.carrusel .flecha{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;border:none;background:rgba(23,21,15,.55);color:#fff;cursor:pointer;font-size:16px;z-index:2}
.carrusel .flecha.izq{left:12px}
.carrusel .flecha.der{right:12px}
.carrusel .puntos{position:absolute;bottom:14px;left:0;right:0;display:flex;justify-content:center;gap:8px;z-index:2}
.carrusel .puntos button{width:8px;height:8px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,.5);cursor:pointer}
.carrusel .puntos button.activo{background:#fff}

/* ---------- Fraccional (Frac d'Arenas) ---------- */
.fraccional{background:var(--teal-800);color:#fff;display:grid;grid-template-columns:1fr 1fr}
.fraccional .foto{min-height:560px}
.fraccional .foto img{width:100%;height:100%;object-fit:cover;display:block}
.fraccional .texto{padding:96px 64px;display:flex;flex-direction:column;justify-content:center;gap:24px}
.fraccional h2{font-size:var(--text-3xl)}
.fraccional p{font-weight:300;font-size:var(--text-lg);line-height:var(--leading-normal);color:rgba(255,255,255,.85);margin:0}
.fraccional .datos{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18);padding:24px 0}
.fraccional .dato-valor{font-family:var(--font-heading);font-weight:700;font-size:var(--text-lg);color:var(--gold-300)}
.fraccional .dato-texto{font-family:var(--font-heading);font-weight:700;font-size:11px;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:rgba(255,255,255,.6);margin-top:6px}
.fraccional .letra-chica{font-size:var(--text-sm);font-weight:400;color:rgba(255,255,255,.7)}
.fraccional .botones{margin-top:8px}

/* ---------- Manifiesto ---------- */
.manifiesto{position:relative;padding:140px 40px;background:var(--ink-900);color:#fff;overflow:hidden}
.manifiesto::before{content:"";position:absolute;inset:0;background:url("../img/patron-dorado.jpg") center/760px auto repeat;opacity:.1}
.manifiesto .contenido{position:relative;max-width:760px;margin:0 auto;text-align:center}
.manifiesto .antetitulo{margin-bottom:24px}
.manifiesto h2{font-size:var(--text-3xl);margin-bottom:28px}
.manifiesto p{font-weight:300;font-size:var(--text-lg);line-height:var(--leading-normal);color:rgba(255,255,255,.85)}

/* ---------- Amenidades ---------- */
.amenidades{background:#fff}
.dos-columnas{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.amenidades .carrusel{aspect-ratio:4/3;height:auto}
.pastillas{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px;padding:0;list-style:none}
.pastillas li{display:inline-block;padding:9px 16px;border-radius:999px;font-family:var(--font-heading);font-weight:700;font-size:12px;letter-spacing:var(--tracking-wide);text-transform:uppercase;line-height:1;background:rgba(13,79,74,.08);color:#0d4f4a}
.pastillas li:nth-child(even){background:var(--sand-100);color:var(--color-text)}

/* ---------- Galería ---------- */
.galeria{background:var(--color-bg)}
.rejilla-galeria{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:240px;gap:16px;margin-top:48px}
.rejilla-galeria figure{margin:0;position:relative;height:100%;background:var(--sand-200);overflow:hidden}
.rejilla-galeria img{width:100%;height:100%;object-fit:cover;display:block}
.rejilla-galeria figure::after{content:"";position:absolute;left:0;right:0;bottom:0;height:45%;background:linear-gradient(180deg,rgba(23,21,15,0) 0%,rgba(23,21,15,.65) 100%);pointer-events:none}
.rejilla-galeria figcaption{position:absolute;left:16px;bottom:14px;z-index:1;font-family:var(--font-heading);font-weight:700;font-size:11px;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:#fff}

/* ---------- Ubicación ---------- */
.ubicacion{background:var(--color-surface-sand)}
.mapa{aspect-ratio:21/9;margin:48px 0}
.mapa iframe{width:100%;height:100%;border:0}
.abrir-mapa{text-align:center;margin:-24px 0 48px}
.abrir-mapa a{font-family:var(--font-heading);font-weight:700;font-size:12px;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-primary)}
.distancias .cifra-valor{font-weight:400;font-size:var(--text-2xl)}

/* ---------- Contacto ---------- */
.contacto{background:var(--ink-900)}
.contacto .dos-columnas{align-items:start}
.formulario{display:flex;flex-direction:column;gap:32px}
.formulario label{display:block}
.formulario label span{display:block;font-family:var(--font-heading);font-weight:700;font-size:11px;letter-spacing:var(--tracking-wider);text-transform:uppercase;color:var(--gold-300);margin-bottom:10px}
.formulario input,.formulario select,.formulario textarea{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.25);color:#fff;font-family:var(--font-body);font-size:var(--text-base);padding:0 0 12px;outline:none;border-radius:0;-webkit-appearance:none;appearance:none;resize:none}
.formulario input:focus,.formulario select:focus,.formulario textarea:focus{border-bottom-color:var(--gold-300)}
.formulario option{color:#000}
.formulario ::placeholder{color:rgba(255,255,255,.45)}
.boton-whatsapp{width:100%;background:#25D366;color:#0a2e17;border:none;padding:18px;font-family:var(--font-heading);font-weight:700;font-size:13px;letter-spacing:var(--tracking-wide);text-transform:uppercase;cursor:pointer}
.aviso-form{margin-top:14px;font-size:13px;color:rgba(255,255,255,.5)}

/* ---------- Pie de página ---------- */
.pie{padding:48px 40px;background:var(--ink-900);border-top:1px solid rgba(255,255,255,.1)}
.pie .contenedor{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;align-items:center}
.pie .marca img{height:30px}
.pie .marca span{font-size:16px}
.pie .datos{font-size:13px;color:rgba(255,255,255,.6);line-height:1.8;text-align:right}
.pie .datos a{color:rgba(255,255,255,.8)}
.pie .datos em{display:block;margin-top:8px}

/* Botón flotante de WhatsApp */
.whatsapp-flotante{position:fixed;right:20px;bottom:20px;z-index:60;width:56px;height:56px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(0,0,0,.28)}

/* ==========================================================================
   Celulares y tabletas
   ========================================================================== */
@media (min-width:901px) and (max-width:1140px){
  .barra nav{gap:20px;padding:14px 24px}
  .menu{gap:20px;flex-wrap:nowrap}
  .menu a{font-size:12px}
  .portada h1{font-size:52px}
  .seccion,.oportunidades,.cifras,.manifiesto{padding-left:28px;padding-right:28px}
}
@media (max-width:900px){
  .barra nav{gap:16px;padding:14px 20px}
  .menu,.barra nav>.boton{display:none}
  .hamburguesa{display:flex}
  .barra.abierta .menu-movil{display:flex}
  .marca img{height:28px}
  .marca span{font-size:15px}

  .seccion,.oportunidades,.cifras,.manifiesto,.pie,.portada-contenido{padding-left:20px;padding-right:20px}
  .seccion,.oportunidades,.manifiesto{padding-top:60px;padding-bottom:60px}

  .tres-columnas,.dos-columnas,.rejilla-modelos,.fraccional,.ficha-cuerpo{grid-template-columns:1fr;gap:24px}
  .rejilla-modelos{gap:1px}
  .cuatro-columnas{grid-template-columns:1fr 1fr;gap:28px 16px}

  .portada-contenido{padding-top:80px;padding-bottom:100px}
  .portada h1{font-size:34px}
  .portada p.intro{font-size:15px}
  .portada .botones{flex-direction:column;gap:12px}
  .portada .botones .boton{width:100%}

  .encabezado h2,.oportunidades h2,.manifiesto h2,.fraccional h2{font-size:24px}
  .modelo-tarjeta h3{font-size:18px}

  .fraccional .foto{min-height:240px}
  .fraccional .texto{padding:56px 20px}
  .fraccional .datos{grid-template-columns:1fr 1fr}

  .rejilla-galeria{grid-template-columns:1fr;grid-auto-rows:220px;gap:12px}
  .oportunidad{padding:24px}
  .mapa{aspect-ratio:4/3}

  .ficha-barra{padding:14px 20px}
  .ficha-barra .boton{display:none}
  .volver{padding:20px}
  .ficha-cuerpo{padding:0 20px 60px}
  .ficha h2{font-size:34px}

  .pie .contenedor{flex-direction:column;align-items:flex-start}
  .pie .datos{text-align:left}
}
@media (max-width:520px){
  .portada h1{font-size:28px}
  .rejilla-galeria{grid-auto-rows:190px}
}
