/* ==========================================================================
   Módulo CSS: Estructura de Páginas Internas Estándar
   ========================================================================== */

html, body {
    height: 100%;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.ft-site-main {
    flex: 1 0 auto;
}

/* --- SOLUCIÓN AL ESPACIO EN BLANCO --- */
/* Si el header es estático, el main no necesita padding top */
.ft-header-static ~ .ft-site-main {
    padding-top: 0 !important; 
}

/* Si el header es flotante (absoluto), empujamos el contenido hacia abajo */
.ft-header-absolute ~ .ft-site-main .ft-internal-page-wrapper {
    padding-top: 160px; /* Ajusta según el alto exacto de tu header */
}

/* Contenedor principal para páginas internas estáticas */
.ft-internal-page-wrapper {
    padding-top: 40px; /* Espacio natural si el header es estático */
    background-color: var(--ft-color-white, #FFFFFF);
    width: 100%;
}

.ft-container {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 40px;
    padding-right: 40px;
    box-sizing: border-box;
    width: 100%;
}

.ft-page-header {
    background-color: var(--ft-color-primary, #0f172a); /* Azul oscuro de tu marca */
    color: var(--ft-color-white, #FFFFFF);
    padding: 40px;
    margin-bottom: 40px;
    border-radius: 2px;
}

.ft-page-title {
    font-family: var(--ft-font-heading, 'Playfair Display', serif);
    font-size: 2rem;
    font-weight: 700;
    margin: 0;
    color: var(--ft-color-white, #FFFFFF);
}

.ft-page-content {
    font-family: var(--ft-font-body, 'Lato', sans-serif);
    font-size: 1rem;
    line-height: 1.7;
    color: #333333;
    padding-bottom: 60px;
    width: 100%;
    box-sizing: border-box;
}

/* Forzar que los textos y bloques de Gutenberg no se desborden */
.ft-internal-page-wrapper {
    overflow-x: hidden;
}

.ft-page-content,
.ft-page-content * {
    max-width: 100%;
}

.ft-page-content p,
.ft-page-content li,
.ft-page-content div,
.ft-page-content span,
.ft-page-content h1,
.ft-page-content h2,
.ft-page-content h3,
.ft-page-content h4,
.ft-page-content h5,
.ft-page-content h6,
.ft-page-content a,
.ft-page-content blockquote,
.ft-page-content figcaption {
    word-break: break-word;
    overflow-wrap: break-word;
    margin-bottom: 1.5rem;
}

/* Bloques "ancho" y "completo" de Gutenberg: no deben salirse del contenedor,
   ya que este tema no implementa el sistema de rejilla de tres columnas de WP */
.ft-page-content .alignwide,
.ft-page-content .alignfull {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    left: auto !important;
    right: auto !important;
}

/* Medios: nunca deben exceder el ancho del contenedor */
.ft-page-content img,
.ft-page-content video,
.ft-page-content iframe,
.ft-page-content embed,
.ft-page-content object {
    max-width: 100%;
    height: auto;
}

/* Tablas y bloques de código: scroll horizontal propio en vez de desbordar la página */
.ft-page-content table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
}

.ft-page-content pre,
.ft-page-content code {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    max-width: 100%;
}