/* ===================================================================
   RealtyPlus — estilos públicos
   Marca: azul marino (navy) + dorado, según logo oficial.
   Colores institucionales centralizados en variables.
   Cambiar aquí adapta toda la marca.
   =================================================================== */
:root {
    --rp-ink:        #012A50;   /* azul casi negro (texto/fondo profundo) */
    --rp-forest:     #013F78;   /* AZUL institucional oficial (color principal) */
    --rp-navy-light: #0A5A9E;   /* azul claro (bordes/hover) */
    --rp-sand:       #F4F6F9;   /* gris azulado muy claro (fondo) */
    --rp-paper:      #FBFCFE;
    --rp-accent:     #D70B26;   /* ROJO oficial (acento, botones, CTAs) */
    --rp-accent-2:   #B00A20;   /* rojo oscuro (hover) */
    --rp-gold:       #C79A3E;   /* dorado — SOLO sección Luxury */
    --rp-line:       #DCE1E8;
    --rp-muted:      #64707F;

    --rp-display: "Helvetica Neue", "Segoe UI", system-ui, Arial, sans-serif;
    --rp-sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }

body.rp-web {
    margin: 0;
    font-family: var(--rp-sans);
    color: var(--rp-ink);
    background: var(--rp-paper);
    -webkit-font-smoothing: antialiased;
}

/* --- Navbar --- */
.rp-nav {
    padding: 1.1rem 0;
    border-bottom: 1px solid var(--rp-line);
    background: var(--rp-paper);
    position: sticky; top: 0; z-index: 40;
}
.rp-brand {
    font-family: var(--rp-display);
    font-size: 1.55rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--rp-forest);
    text-decoration: none;
}
.rp-brand span { color: var(--rp-accent); }
.rp-brand--light { color: var(--rp-paper); }
.rp-nav__right { display: flex; align-items: center; gap: 2rem; }
.rp-nav__links { display: flex; align-items: center; gap: 1.8rem; }
.rp-nav__links a {
    color: var(--rp-ink);
    text-decoration: none;
    font-size: .95rem;
    font-weight: 500;
}
.rp-nav__links a:hover { color: var(--rp-accent); }

/* Botón hamburguesa (móvil) */
.rp-nav__toggle {
    background: none; border: none; padding: .4rem; cursor: pointer;
    display: flex; flex-direction: column; gap: 5px; width: 40px;
}
.rp-nav__toggle span {
    display: block; height: 2.5px; width: 26px; background: var(--rp-forest);
    border-radius: 2px; transition: all .2s ease;
}

/* Menú móvil desplegable (offcanvas) */
.rp-offcanvas { max-width: 300px; }
.rp-offcanvas__links { display: flex; flex-direction: column; }
.rp-offcanvas__links a {
    color: var(--rp-ink); text-decoration: none; font-size: 1.05rem; font-weight: 500;
    padding: .85rem 0; border-bottom: 1px solid var(--rp-line);
}
.rp-offcanvas__links a:hover { color: var(--rp-accent); }

/* --- Botones --- */
.rp-btn {
    border-radius: 2px;
    padding: .7rem 1.4rem;
    font-weight: 600;
    font-size: .95rem;
    border: 1px solid transparent;
    transition: all .15s ease;
}
.rp-btn--accent { background: var(--rp-accent); color: #fff; }
.rp-btn--accent:hover { background: #9a5833; color: #fff; }
.rp-btn--ghost { background: transparent; border-color: var(--rp-line); color: var(--rp-ink); }
.rp-btn--ghost:hover { border-color: var(--rp-accent); color: var(--rp-accent); }

/* --- Hero --- */
.rp-hero {
    background: var(--rp-forest);
    color: var(--rp-paper);
    padding: 5.5rem 0 5rem;
}
.rp-hero__eyebrow {
    text-transform: uppercase;
    letter-spacing: .18em;
    font-size: .72rem;
    color: rgba(255,255,255,.75);
    margin-bottom: 1.2rem;
}
.rp-hero__title {
    font-family: var(--rp-display);
    font-weight: 700;
    font-size: clamp(2.4rem, 6vw, 4.2rem);
    line-height: 1.02;
    letter-spacing: -0.02em;
    margin: 0 0 1.4rem;
}
.rp-hero__sub { max-width: 34rem; font-size: 1.1rem; color: #D9E0D6; margin-bottom: 2rem; }
.rp-hero__cta { display: flex; flex-wrap: wrap; gap: .8rem; }
.rp-hero__cta .rp-btn--ghost { border-color: rgba(255,255,255,.35); color: var(--rp-paper); }
.rp-hero__cta .rp-btn--ghost:hover { border-color: var(--rp-accent-2); color: var(--rp-accent-2); }

.rp-section { padding: 4rem 0; }

/* --- Footer --- */
.rp-footer { background: var(--rp-ink); color: #C7CFC5; padding: 3.5rem 0 1.5rem; margin-top: 4rem; }
.rp-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2rem; }
.rp-footer__tag { color: #9DA79A; font-size: .92rem; margin-top: .8rem; max-width: 20rem; }
.rp-footer h4 { font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; color: #fff; margin-bottom: .9rem; }
.rp-footer a { display: block; color: #B4BDB0; text-decoration: none; font-size: .92rem; padding: .22rem 0; }
.rp-footer a:hover { color: var(--rp-accent-2); }
.rp-footer__bottom { border-top: 1px solid rgba(255,255,255,.08); margin-top: 2.5rem; padding-top: 1.2rem; font-size: .82rem; color: #8B958A; display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; }
.rp-footer__bottom a { color: #fff; text-decoration: none; }
.rp-footer__bottom a:hover { text-decoration: underline; }
@media (max-width: 576px){ .rp-footer__bottom { flex-direction: column; align-items: flex-start; } }

/* --- Barra móvil inferior --- */
.rp-mobilebar {
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 50;
    display: flex; justify-content: space-around;
    background: var(--rp-paper); border-top: 1px solid var(--rp-line);
    padding: .5rem 0;
}
.rp-mobilebar a { color: var(--rp-ink); text-decoration: none; font-size: .78rem; font-weight: 500; }

/* --- Error --- */
.rp-error { text-align: center; padding: 6rem 0; }
.rp-error h1 { font-family: var(--rp-display); font-size: 5rem; color: var(--rp-forest); margin: 0; }

@media (max-width: 991px) {
    .rp-footer__grid { grid-template-columns: 1fr 1fr; }
    main { padding-bottom: 4rem; }
}
@media (prefers-reduced-motion: reduce) {
    .rp-btn { transition: none; }
}

/* --- Páginas CMS / FAQ (Etapa 3) --- */
.rp-page { padding: 3.5rem 0; }
.rp-page__title {
    font-family: var(--rp-display);
    font-size: clamp(2rem, 4vw, 3rem);
    color: var(--rp-forest);
    letter-spacing: -0.02em;
    margin-bottom: 1.5rem;
}
.rp-page__hero { width: 100%; border-radius: 8px; margin-bottom: 2rem; }
.rp-page__body { max-width: 44rem; line-height: 1.7; font-size: 1.05rem; }
.rp-page__body h2 { font-family: var(--rp-display); margin-top: 2rem; }
.rp-faq__cat {
    font-family: var(--rp-display);
    color: var(--rp-forest);
    font-size: 1.4rem;
    margin: 2rem 0 1rem;
    padding-bottom: .4rem;
    border-bottom: 2px solid var(--rp-accent);
    display: inline-block;
}
.accordion-button:not(.collapsed) { color: var(--rp-forest); background: var(--rp-sand); }
.accordion-button:focus { box-shadow: 0 0 0 .2rem rgba(178,106,62,.25); }

/* =================================================================
   ETAPA 4 — Franquicias: directorio, modelo, perfil
   ================================================================= */

/* --- Directorio: hero + buscador --- */
.rp-dir-hero { background: var(--rp-forest); color: var(--rp-paper); padding: 3.5rem 0 2.5rem; }
.rp-dir-hero__title { font-family: var(--rp-display); font-size: clamp(2rem,5vw,3.2rem); letter-spacing:-.02em; margin:.4rem 0; }
.rp-dir-hero__sub { color: #D9E0D6; margin-bottom: 1.6rem; }
.rp-dir-search { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr auto; gap: .6rem; }
.rp-dir-search .form-control, .rp-dir-search .form-select { border: none; }
@media (max-width: 800px){ .rp-dir-search { grid-template-columns: 1fr 1fr; } }

/* --- Cards de franquicia --- */
.rp-dir-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.2rem; }
.rp-fcard {
    display: block; background:#fff; border:1px solid var(--rp-line); border-radius:10px;
    padding:1.3rem; text-decoration:none; color:var(--rp-ink); transition:transform .15s ease, box-shadow .15s ease;
}
.rp-fcard:hover { transform: translateY(-3px); box-shadow: 0 10px 30px rgba(20,38,31,.10); color:var(--rp-ink); }
.rp-fcard__top { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:.9rem; }
.rp-fcard__logo { width:56px; height:56px; object-fit:contain; border-radius:8px; background:var(--rp-sand); }
.rp-fcard__logo--ph { display:grid; place-items:center; font-family:var(--rp-display); font-size:1.6rem; color:var(--rp-forest); }
.rp-fcard__model {
    font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
    color:#fff; background:var(--m,#013F78); padding:.25rem .6rem; border-radius:20px;
}
.rp-fcard__name { font-family:var(--rp-display); font-size:1.2rem; margin:.2rem 0; }
.rp-fcard__verified { color: var(--rp-accent); font-weight:700; }
.rp-fcard__loc { color: var(--rp-muted); font-size:.9rem; margin-bottom:.9rem; }
.rp-fcard__meta { display:flex; justify-content:space-between; font-size:.82rem; color:var(--rp-muted); border-top:1px solid var(--rp-line); padding-top:.7rem; }
.rp-fcard__code { font-family:monospace; }
.rp-empty { text-align:center; padding:3rem 0; color:var(--rp-muted); }

/* --- Página de modelo --- */
.rp-model-hero { background: var(--m,var(--rp-forest)); color:#fff; padding:4rem 0; }
.rp-model-hero__title { font-family:var(--rp-display); font-size:clamp(2.4rem,6vw,4rem); margin:.3rem 0 .8rem; }
.rp-model-hero__sub { font-size:1.15rem; max-width:36rem; margin-bottom:1.6rem; opacity:.92; }
.rp-model-desc { max-width:44rem; line-height:1.7; margin-bottom:2.5rem; }
.rp-model-cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:2rem; }
.rp-model-col h2 { font-family:var(--rp-display); font-size:1.3rem; color:var(--rp-forest); border-bottom:2px solid var(--rp-accent); display:inline-block; padding-bottom:.3rem; }
.rp-model-col ul { list-style:none; padding:0; margin-top:1rem; }
.rp-model-col li { padding:.4rem 0 .4rem 1.4rem; position:relative; }
.rp-model-col li::before { content:"›"; position:absolute; left:0; color:var(--rp-accent); font-weight:700; }
.rp-model-cta { margin-top:2.5rem; }

/* --- Perfil de franquicia --- */
.rp-profile-hero { background:var(--rp-forest); background-size:cover; background-position:center; color:#fff; padding:3rem 0; }
.rp-profile-head { display:flex; gap:1.4rem; align-items:center; }
.rp-profile-logo { width:88px; height:88px; object-fit:contain; background:#fff; border-radius:12px; padding:.4rem; }
.rp-profile-title { font-family:var(--rp-display); font-size:clamp(1.8rem,4vw,2.6rem); margin:.4rem 0 .2rem; }
.rp-profile-loc { opacity:.9; }
.rp-profile-loc code { color:#fff; }
.rp-profile-grid { display:grid; grid-template-columns:1fr 320px; gap:2rem; }
.rp-profile-main h2 { font-family:var(--rp-display); color:var(--rp-forest); font-size:1.4rem; margin:1.6rem 0 .8rem; }
.rp-profile-desc { line-height:1.7; }
.rp-profile-services { columns:2; list-style:none; padding:0; }
.rp-profile-services li { padding:.3rem 0 .3rem 1.3rem; position:relative; }
.rp-profile-services li::before { content:"✓"; position:absolute; left:0; color:var(--rp-accent); }
.rp-profile-props { margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--rp-line); }
@media (max-width: 800px){ .rp-profile-grid { grid-template-columns:1fr; } .rp-profile-services{ columns:1; } }

/* =================================================================
   ETAPA 5 — Propiedades: vidriera, cards, detalle, luxury
   ================================================================= */
.rp-props-hero { background: var(--rp-forest); color: var(--rp-paper); padding: 2.8rem 0; }
.rp-lux-hero { background: linear-gradient(135deg, #012A50, #013F78); color: var(--rp-paper); padding: 2.8rem 0; }
.rp-props-hero__title { font-family: var(--rp-display); font-size: clamp(1.8rem,4vw,2.8rem); margin:.3rem 0; }
.rp-props-hero__sub { color:#D9E0D6; }

.rp-props-layout { display: grid; grid-template-columns: 260px 1fr; gap: 1.8rem; }
.rp-props-filters { position: sticky; top: 90px; align-self: start; background:#fff; border:1px solid var(--rp-line); border-radius:10px; padding:1.2rem; }
.rp-filter { margin-bottom: .8rem; }
.rp-filter label { font-size:.78rem; font-weight:600; color:var(--rp-muted); display:block; margin-bottom:.2rem; }
.rp-filter--row { display:grid; grid-template-columns:repeat(auto-fit,minmax(60px,1fr)); gap:.5rem; }
.rp-props-toolbar { display:flex; justify-content:flex-end; margin-bottom:1rem; }
.rp-sort { display:flex; align-items:center; gap:.5rem; }
.rp-sort label { font-size:.85rem; color:var(--rp-muted); }

.rp-props-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1.2rem; }

/* Card propiedad */
.rp-pcard { display:block; background:#fff; border:1px solid var(--rp-line); border-radius:10px; overflow:hidden; text-decoration:none; color:var(--rp-ink); transition:transform .15s,box-shadow .15s; }
.rp-pcard:hover { transform:translateY(-3px); box-shadow:0 10px 30px rgba(20,38,31,.10); color:var(--rp-ink); }
.rp-pcard__img { position:relative; aspect-ratio:4/3; background:var(--rp-sand); }
.rp-pcard__img img { width:100%; height:100%; object-fit:cover; }
.rp-pcard__noimg { display:grid; place-items:center; height:100%; color:var(--rp-muted); font-size:.85rem; }
.rp-pcard__op { position:absolute; top:.6rem; left:.6rem; background:var(--rp-forest); color:#fff; font-size:.72rem; font-weight:600; padding:.2rem .6rem; border-radius:4px; }
.rp-pcard__lux { position:absolute; top:.6rem; right:.6rem; background:var(--rp-gold); color:#012A50; font-size:.72rem; font-weight:700; padding:.2rem .6rem; border-radius:4px; }
.rp-pcard__body { padding:1rem; }
.rp-pcard__price { font-family:var(--rp-display); font-size:1.25rem; font-weight:700; color:var(--rp-forest); }
.rp-pcard__title { font-size:.98rem; margin:.3rem 0; line-height:1.3; }
.rp-pcard__loc { color:var(--rp-muted); font-size:.85rem; margin-bottom:.6rem; }
.rp-pcard__specs { display:flex; gap:.8rem; font-size:.8rem; color:var(--rp-ink); border-top:1px solid var(--rp-line); padding-top:.6rem; }
.rp-pcard__foot { display:flex; justify-content:space-between; font-size:.75rem; color:var(--rp-muted); margin-top:.6rem; }
.rp-pcard__code { font-family:monospace; }

/* Detalle */
.rp-detail { padding:2rem 0 3rem; }
.rp-gallery { margin-bottom:2rem; }
.rp-gallery__main img { width:100%; max-height:520px; object-fit:cover; border-radius:10px; }
.rp-gallery__thumbs { display:grid; grid-template-columns:repeat(6,1fr); gap:.5rem; margin-top:.5rem; }
.rp-gallery__thumbs img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:6px; cursor:pointer; }
.rp-gallery__noimg { background:var(--rp-sand); height:320px; display:grid; place-items:center; border-radius:10px; color:var(--rp-muted); }
.rp-detail__grid { display:grid; grid-template-columns:1fr 340px; gap:2rem; }
.rp-detail__op { display:inline-block; background:var(--rp-forest); color:#fff; font-size:.78rem; font-weight:600; padding:.25rem .7rem; border-radius:4px; }
.rp-detail__title { font-family:var(--rp-display); font-size:clamp(1.6rem,3.5vw,2.4rem); margin:.6rem 0 .3rem; }
.rp-detail__loc { color:var(--rp-muted); }
.rp-detail__price { font-family:var(--rp-display); font-size:2rem; font-weight:700; color:var(--rp-accent); margin:1rem 0; }
.rp-detail__specs { display:flex; flex-wrap:wrap; gap:1.4rem; padding:1rem 0; border-top:1px solid var(--rp-line); border-bottom:1px solid var(--rp-line); margin-bottom:1.5rem; }
.rp-detail__specs div { text-align:center; }
.rp-detail__specs strong { display:block; font-size:1.4rem; font-family:var(--rp-display); color:var(--rp-forest); }
.rp-detail__specs span { font-size:.78rem; color:var(--rp-muted); }
.rp-detail__main h2 { font-family:var(--rp-display); color:var(--rp-forest); font-size:1.3rem; margin:1.5rem 0 .7rem; }
.rp-detail__desc { line-height:1.7; }
.rp-detail__list { columns:2; list-style:none; padding:0; }
.rp-detail__list li { padding:.3rem 0 .3rem 1.3rem; position:relative; }
.rp-detail__list li::before { content:"✓"; position:absolute; left:0; color:var(--rp-accent); }
.rp-publisher { position:sticky; top:90px; }
.rp-publisher__label { font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--rp-muted); }
.rp-publisher__logo { max-width:120px; max-height:60px; object-fit:contain; margin:.5rem 0; }
.rp-publisher__name { font-family:var(--rp-display); font-size:1.3rem; margin:.3rem 0; }
.rp-publisher__actions { display:flex; flex-direction:column; gap:.6rem; margin-top:1.2rem; }
.rp-more { margin-top:3rem; padding-top:2rem; border-top:1px solid var(--rp-line); }
.rp-more h2 { font-family:var(--rp-display); color:var(--rp-forest); font-size:1.4rem; margin-bottom:1.2rem; }

@media (max-width: 900px){
    .rp-props-layout { grid-template-columns:1fr; }
    .rp-props-filters { position:static; }
    .rp-detail__grid { grid-template-columns:1fr; }
    .rp-detail__list { columns:1; }
    .rp-gallery__thumbs { grid-template-columns:repeat(4,1fr); }
}

/* =================================================================
   ETAPA 7 — Leads: landings de captación
   ================================================================= */
.rp-lead-hero { background: linear-gradient(135deg, var(--rp-forest), #012A50); color: var(--rp-paper); padding: 3rem 0; }
.rp-lead-hero__title { font-family: var(--rp-display); font-size: clamp(1.8rem,4vw,2.8rem); margin:.3rem 0; }
.rp-lead-hero__sub { color:#D9E0D6; max-width:640px; }
.rp-lead-layout { display:grid; grid-template-columns: 1fr 320px; gap:2rem; }
.rp-lead-benefits { list-style:none; padding:0; }
.rp-lead-benefits li { padding:.4rem 0 .4rem 1.6rem; position:relative; }
.rp-lead-benefits li::before { content:"✓"; position:absolute; left:0; color:var(--rp-accent); font-weight:bold; }
.rp-consulta { background:var(--rp-sand); }
.rp-flash { margin-bottom:0; }
@media (max-width: 900px){ .rp-lead-layout { grid-template-columns:1fr; } }

/* ===================================================================
   Branding — logo oficial (navy + dorado)
   =================================================================== */
.rp-brand__logo { height: 40px; width: auto; display: block; }
.rp-brand__logo--footer { height: 44px; filter: none; }
.rp-nav { background: #fff; border-bottom: 1px solid var(--rp-line); }
@media (max-width: 576px){ .rp-brand__logo { height: 32px; } }

/* ===================================================================
   Página de Contacto (profesional)
   =================================================================== */
.rp-contact { padding: 3rem 0 4rem; }
.rp-contact__grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 2.5rem; align-items: start; }
.rp-contact__intro h2 { font-family: var(--rp-display); color: var(--rp-forest); font-size: 1.9rem; margin: 0 0 .6rem; }
.rp-contact__intro p { color: var(--rp-muted); line-height: 1.6; }
.rp-contact__list { list-style: none; padding: 0; margin: 1.6rem 0; }
.rp-contact__list li { display: flex; gap: .9rem; align-items: flex-start; padding: .7rem 0; border-bottom: 1px solid var(--rp-line); }
.rp-contact__list li:last-child { border-bottom: none; }
.rp-contact__ico { font-size: 1.2rem; line-height: 1.4; width: 1.8rem; text-align: center; flex-shrink: 0; }
.rp-contact__lbl { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--rp-muted); margin-bottom: .1rem; }
.rp-contact__list a { color: var(--rp-forest); text-decoration: none; font-weight: 500; }
.rp-contact__list a:hover { color: var(--rp-accent); }
.rp-contact__map { margin-top: 1.4rem; border-radius: 10px; overflow: hidden; border: 1px solid var(--rp-line); }
.rp-contact__map iframe { width: 100% !important; height: 300px; border: 0; display: block; }
.rp-contact__form-wrap { background: #fff; border: 1px solid var(--rp-line); border-radius: 12px; padding: 2rem; box-shadow: 0 8px 30px rgba(1,42,80,.05); }
.rp-contact__form-title { font-family: var(--rp-display); color: var(--rp-forest); font-size: 1.5rem; margin: 0 0 1.4rem; }
.rp-contact__form .form-control { border-radius: 6px; }
.rp-contact__legal { font-size: .72rem; color: var(--rp-muted); margin-top: .8rem; }
.rp-contact__legal a { color: var(--rp-muted); }
@media (max-width: 860px) {
    .rp-contact__grid { grid-template-columns: 1fr; gap: 1.8rem; }
    .rp-contact__form-wrap { padding: 1.4rem; }
}

/* ===================================================================
   Página CMS con imagen destacada vertical (texto + imagen 3:4)
   =================================================================== */
.rp-page__split { display: grid; grid-template-columns: 1fr 380px; gap: 2.5rem; align-items: start; margin-top: 1rem; }
.rp-page__body--split { max-width: none; }
.rp-page__featured {
    position: sticky; top: 90px;
    /* sin overflow:hidden ni border-radius aquí: dejamos que la curva de la imagen
       se vea limpia sobre el fondo del sitio, sin recorte blanco */
}
.rp-page__featured img {
    display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: cover;
    /* corte diagonal: esquina inferior izquierda con curva amplia, el resto suave */
    border-radius: 16px 16px 80px 16px;
    box-shadow: 0 18px 50px rgba(1,42,80,.18);
}
@media (max-width: 860px) {
    .rp-page__split { grid-template-columns: 1fr; }
    .rp-page__featured { position: static; max-width: 340px; margin: 0 auto; }
}

/* Admin: preview de la imagen destacada */
.rp-featured { display: flex; gap: 1.2rem; align-items: flex-start; }
.rp-featured__preview {
    width: 150px; aspect-ratio: 3 / 4; flex-shrink: 0;
    background: #eef1f5; border: 1px dashed #c2ccd6; border-radius: 8px;
    display: grid; place-items: center; overflow: hidden;
}
.rp-featured__preview img { width: 100%; height: 100%; object-fit: cover; }
.rp-featured__empty { color: #8894a3; font-size: .82rem; }
.rp-featured__actions { flex: 1; }

/* ===================================================================
   Bloque de portada: texto + video YouTube
   =================================================================== */
.rp-homeblock { padding: 4rem 0; background: #fff; }
.rp-homeblock__grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 3rem; align-items: center; }
.rp-homeblock__grid--notext { grid-template-columns: 1fr; max-width: 760px; }
.rp-homeblock__title {
    font-family: var(--rp-display);
    font-size: clamp(1.8rem, 3.5vw, 2.6rem);
    color: var(--rp-forest);
    letter-spacing: -0.02em;
    margin: 0 0 1.2rem;
    padding-bottom: .8rem;
    border-bottom: 3px solid var(--rp-accent);
    display: inline-block;
}
.rp-homeblock__body { line-height: 1.75; font-size: 1.08rem; color: var(--rp-ink); }
.rp-homeblock__body p { margin: 0 0 1rem; }
.rp-homeblock__video-frame {
    position: relative; width: 100%; aspect-ratio: 16 / 9;
    border-radius: 14px; overflow: hidden;
    box-shadow: 0 20px 55px rgba(1,42,80,.22);
    background: #000;
}
.rp-homeblock__video-frame iframe {
    position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
}
@media (max-width: 860px) {
    .rp-homeblock { padding: 2.5rem 0; }
    .rp-homeblock__grid { grid-template-columns: 1fr; gap: 1.8rem; }
}

/* ===================================================================
   Sangría lateral garantizada en móvil (para que nada quede pegado al borde)
   =================================================================== */
@media (max-width: 767px) {
    /* Asegura margen lateral en el contenedor principal */
    .container {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
    /* Secciones con fondo de color: mantienen su padding vertical
       y el .container interno se encarga del lateral */
    .rp-hero { padding: 3rem 0 2.5rem; }
    .rp-page { padding: 2rem 0; }
    .rp-section { padding: 2.5rem 0; }

    /* El cuerpo del texto de las páginas CMS no debe pegarse a los bordes */
    .rp-page__title { font-size: 1.7rem; }
    .rp-page__body { font-size: 1rem; }

    /* Hero: título y textos con tamaño adecuado en móvil */
    .rp-hero__title { font-size: 2rem; }
    .rp-hero__sub { font-size: 1rem; }
    .rp-hero__cta { gap: .6rem; }
    .rp-hero__cta .rp-btn { width: 100%; text-align: center; }

    /* Bloque de portada (texto + video) */
    .rp-homeblock__title { font-size: 1.5rem; }
    .rp-homeblock__body { font-size: 1rem; }

    /* Footer: que las columnas no se peguen al borde */
    .rp-footer__grid { gap: 1.4rem; }

    /* Contacto */
    .rp-contact { padding: 2rem 0 2.5rem; }
}

/* Pantallas muy chicas (celulares angostos) */
@media (max-width: 380px) {
    .container { padding-left: 16px !important; padding-right: 16px !important; }
    .rp-hero__title { font-size: 1.75rem; }
}

/* ===================== Página Internacional ===================== */
.intl-hero { position:relative; min-height:560px; display:flex; align-items:center; background:#012A50 url('/assets/img/internacional/hero.jpg') center/cover no-repeat; color:#fff; }
.intl-hero__overlay { position:absolute; inset:0; background:linear-gradient(90deg, rgba(1,42,80,.92) 0%, rgba(1,42,80,.72) 45%, rgba(1,42,80,.35) 100%); }
.intl-hero__inner { position:relative; z-index:2; padding:4rem 0; max-width:680px; }
.intl-hero__eyebrow { text-transform:uppercase; letter-spacing:.18em; font-size:.8rem; color:#9fc0e0; }
.intl-hero__title { font-size:3.2rem; line-height:1.05; font-weight:800; margin:.6rem 0 1rem; }
.intl-hero__title span { color:#D70B26; }
.intl-hero__lead { font-size:1.15rem; line-height:1.6; color:#e8eef5; margin-bottom:1.8rem; }
.intl-hero__cta { display:flex; gap:.8rem; flex-wrap:wrap; }
.rp-btn--ghost-light { background:transparent; border:1.5px solid rgba(255,255,255,.6); color:#fff !important; }
.rp-btn--ghost-light:hover { background:rgba(255,255,255,.12); }

.intl-section { padding:4.5rem 0; }
.intl-section--dark { background:#013F78; color:#fff; }
.intl-section--sand { background:var(--rp-sand,#F4F6F9); }
.intl-kicker { display:inline-block; text-transform:uppercase; letter-spacing:.14em; font-size:.78rem; font-weight:700; color:#D70B26; margin-bottom:.5rem; }
.intl-kicker--light { color:#9fc0e0; }
.intl-h2 { font-size:2.1rem; font-weight:800; color:var(--rp-forest,#013F78); margin:0 0 1rem; line-height:1.15; }
.intl-h2--light { color:#fff; }
.intl-sub-light { color:#cfe0f0; font-size:1.1rem; margin-bottom:2rem; max-width:640px; }
.intl-section p { color:#44515f; font-size:1.05rem; line-height:1.65; max-width:720px; }
.intl-section--dark p { color:#cfe0f0; }

.intl-two { display:grid; grid-template-columns:1.2fr 1fr; gap:3rem; align-items:center; }
.intl-stats { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.intl-stat { background:#fff; border-radius:14px; padding:1.4rem; text-align:center; box-shadow:0 4px 20px rgba(1,42,80,.08); }
.intl-stat__n { font-size:2.4rem; font-weight:800; color:#D70B26; }
.intl-stat__l { font-size:.85rem; color:#64707F; font-weight:600; }

.intl-grid { display:grid; gap:1.3rem; margin-top:2rem; }
.intl-grid--5 { grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); }
.intl-grid--4 { grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
.intl-grid--3 { grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.intl-cap { background:rgba(255,255,255,.08); border-radius:14px; padding:1.5rem; }
.intl-cap__ico { font-size:2rem; margin-bottom:.6rem; }
.intl-cap h3 { color:#fff; font-size:1.1rem; margin:0 0 .5rem; }
.intl-cap p { color:#cfe0f0 !important; font-size:.95rem; margin:0; }
.intl-unit { background:#fff; border-radius:14px; padding:1.5rem; box-shadow:0 3px 16px rgba(1,42,80,.07); border-top:3px solid #D70B26; }
.intl-unit h3 { color:var(--rp-forest,#013F78); font-size:1.2rem; margin:0 0 .4rem; }
.intl-unit p { color:#64707F; font-size:.95rem; margin:0; }
.intl-why { background:#fff; border-radius:14px; padding:1.5rem; box-shadow:0 3px 16px rgba(1,42,80,.07); }
.intl-why h3 { color:#D70B26; font-size:1.15rem; margin:0 0 .4rem; }
.intl-why p { color:#44515f; font-size:.98rem; margin:0; }
.intl-regions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.5rem; }
.intl-regions span { background:var(--rp-sand,#F4F6F9); border:1px solid #dfe6ee; color:var(--rp-forest,#013F78); padding:.6rem 1.2rem; border-radius:30px; font-weight:600; font-size:.95rem; }

.intl-deck { margin-top:2rem; max-width:900px; }
.intl-deck__stage { border-radius:12px; overflow:hidden; box-shadow:0 8px 40px rgba(1,42,80,.18); background:#012A50; }
.intl-deck__stage img { width:100%; display:block; }
.intl-deck__nav { display:flex; align-items:center; justify-content:center; gap:1.5rem; margin-top:1rem; }
.intl-deck__btn { background:var(--rp-forest,#013F78); color:#fff; border:0; padding:.6rem 1.3rem; border-radius:8px; font-weight:600; cursor:pointer; }
.intl-deck__btn:hover { background:#0A5A9E; }
.intl-deck__nav span { font-weight:700; color:#64707F; }

.intl-cta { background:#012A50; color:#fff; padding:4rem 0; text-align:center; }
.intl-cta__inner h2 { font-size:2rem; font-weight:800; margin:0 0 .5rem; }
.intl-cta__inner p { color:#9fc0e0; }
.intl-cta__actions { display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; margin:1.5rem 0; }
.intl-cta__addr { font-size:.85rem; color:#7a93ad !important; }

/* Banner del home hacia Internacional */
.intl-home-banner { position:relative; border-radius:16px; overflow:hidden; margin:2rem 0; background:#012A50 url('/assets/img/internacional/hero.jpg') center/cover; color:#fff; }
.intl-home-banner__overlay { position:absolute; inset:0; background:linear-gradient(90deg, rgba(1,42,80,.94), rgba(1,42,80,.6)); }
.intl-home-banner__inner { position:relative; z-index:2; padding:2.5rem; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; }
.intl-home-banner__txt h3 { font-size:1.6rem; font-weight:800; margin:0 0 .4rem; }
.intl-home-banner__txt p { color:#cfe0f0; margin:0; max-width:520px; }

@media (max-width:768px){
    .intl-hero__title { font-size:2.2rem; }
    .intl-two { grid-template-columns:1fr; gap:1.5rem; }
    .intl-home-banner__inner { flex-direction:column; text-align:center; }
}
