/* ==================================================
   CASA FRANCISCA
   OPTIMIZADA Y MEJORADA
================================================== */

:root {

    --fondo: #f2eadf;
    --papel: #fcfaf6;
    --verde: #56664c;
    --marron: #8d7259;
    --texto: #2f2f2f;
    --sombra: 0 20px 45px rgba(0, 0, 0, .18);

}

/* Utility & Accessibility */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.logo-nombre,
.logo .logo-nombre {
    font-family: 'Cormorant Garamond', serif;
    font-size: 48px;
    font-weight: 600;
    line-height: .9;
    color: var(--verde);
    text-transform: none !important;
}

.historia h1 {
    margin: 0 0 24px;
    font-family: 'Cormorant Garamond', serif;
    font-size: 52px;
    font-weight: 600;
    color: var(--verde);
}

/* Language Dropdown Selector */
.lang-dropdown {
    position: relative;
    display: inline-block;
    margin-left: 12px;
}

.lang-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: rgba(252, 250, 246, 0.95);
    border: 1px solid rgba(141, 114, 89, 0.3);
    border-radius: 20px;
    color: var(--verde);
    font-family: 'Lato', sans-serif;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
}

.lang-btn:hover,
.lang-dropdown:hover .lang-btn,
.lang-dropdown:focus-within .lang-btn {
    background: #ffffff;
    border-color: var(--verde);
    box-shadow: 0 4px 12px rgba(47, 47, 47, 0.1);
}

.lang-btn .arrow {
    font-size: 10px;
    transition: transform 0.2s ease;
}

.lang-dropdown:hover .lang-btn .arrow,
.lang-dropdown:focus-within .lang-btn .arrow {
    transform: rotate(180deg);
}

.lang-menu {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 150px;
    padding: 6px 0;
    margin: 0;
    list-style: none;
    background: #ffffff;
    border: 1px solid rgba(141, 114, 89, 0.2);
    border-radius: 10px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: all 0.2s ease;
    z-index: 1000;
}

.lang-dropdown:hover .lang-menu,
.lang-dropdown:focus-within .lang-menu,
.lang-dropdown.open .lang-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.lang-menu li {
    margin: 0;
    padding: 0;
}

.lang-menu li a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 14px;
    color: var(--texto);
    font-family: 'Lato', sans-serif;
    font-size: 13px;
    font-weight: 400;
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
}

.lang-menu li a:hover,
.lang-menu li a.active {
    background: rgba(86, 102, 76, 0.08);
    color: var(--verde);
    font-weight: 700;
}

/* Composicion final */
body {

    background:
        linear-gradient(rgba(242, 234, 223, .94), rgba(242, 234, 223, .94)),
        radial-gradient(circle at top left, #fffdf9, #eadfce);

}

header {

    padding: 20px clamp(24px, 4vw, 56px);
    background: rgba(255, 255, 255, .88);

}

.contenedor {

    grid-template-columns: minmax(0, 1.72fr) minmax(320px, .78fr);
    gap: 32px;
    margin: 52px auto;

}

.galeria {

    box-shadow: 0 16px 34px rgba(47, 47, 47, .16);

}

.menu-postales {

    gap: 18px;
    padding-top: 0;

}

.postal {

    height: 204px;
    margin-bottom: 0;

}

.historia {

    width: min(1560px, 92%);
    margin: 64px auto 76px;
    padding: 48px clamp(26px, 5vw, 76px);
    border: 1px solid rgba(141, 114, 89, .18);
    border-radius: 12px;
    background: rgba(252, 250, 246, .72);
    box-shadow: 0 16px 34px rgba(47, 47, 47, .1);

}

.historia p {

    max-width: 1050px;
    font-size: 21px;
    line-height: 1.8;

}

.apartado {

    width: min(1560px, 92%);
    margin: 72px auto;
    padding: 56px clamp(24px, 5vw, 80px);
    box-sizing: border-box;
    scroll-margin-top: 90px;
    border-top: 1px solid rgba(141, 114, 89, .25);

}

.apartado-contenido {

    max-width: 1050px;
    margin: 0 auto;
    text-align: center;

}

.apartado h2 {

    margin: 0 0 24px;
    font-family: 'Cormorant Garamond', serif;
    font-size: 52px;
    font-weight: 600;
    color: var(--verde);

}

.apartado p {

    margin: 0 auto 18px;
    font-size: 20px;
    line-height: 1.8;

}

.apartado-volver {

    display: inline-block;
    margin-top: 18px;
    color: var(--verde);
    font-family: 'Cormorant Garamond', serif;
    font-size: 20px;
    font-style: italic;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 4px;

}

.pagina-header {

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 22px clamp(24px, 5vw, 64px);
    background: rgba(255, 255, 255, .9);
    border-bottom: 1px solid rgba(141, 114, 89, .16);

}

.pagina-marca {

    color: var(--verde);
    font-family: 'Cormorant Garamond', serif;
    font-size: 34px;
    font-style: italic;
    font-weight: 600;
    text-decoration: none;

}

.pagina-nav {

    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 22px;

}

.pagina-nav a {

    color: var(--marron);
    font-family: 'Cormorant Garamond', serif;
    font-size: 20px;
    font-style: italic;
    text-decoration: none;

}

.pagina-nav a:hover,
.pagina-nav a.activo {

    color: var(--verde);
    text-decoration: underline;
    text-underline-offset: 5px;

}

.pagina-apartado {

    width: min(1440px, 92%);
    margin: 0 auto;
    font-family: 'Alegreya', serif;

}

.pagina-hero {

    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
    min-height: 560px;
    align-items: stretch;

}

.pagina-hero img {

    width: 100%;
    height: 100%;
    min-height: 560px;
    object-fit: cover;

}

.pagina-hero-contenido {

    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(36px, 6vw, 92px);
    background: rgba(252, 250, 246, .45);

}

.pagina-eyebrow {

    margin: 0 0 16px;
    color: var(--marron);
    font-size: 15px;
    letter-spacing: 2px;
    text-transform: uppercase;

}

.pagina-hero h1 {

    margin: 0 0 22px;
    color: var(--verde);
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(54px, 6vw, 92px);
    font-style: italic;
    font-weight: 600;
    line-height: .95;

}

.pagina-hero-contenido>p:not(.pagina-eyebrow) {

    max-width: 360px;
    margin: 0 0 16px;
    color: var(--texto);
    font-size: 22px;
    line-height: 1.6;

}

.pagina-hero-intro {

    max-width: 360px;

}

.pagina-cuerpo {

    max-width: 900px;
    margin: 72px auto 100px;
    padding-top: 42px;
    border-top: 1px solid rgba(141, 114, 89, .25);

}

.pagina-cuerpo p {

    margin: 0 0 22px;
    font-size: 22px;
    line-height: 1.85;

}

.pagina-cuerpo h2 {

    margin: 0 0 24px;
    color: var(--verde);
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(38px, 5vw, 58px);
    font-weight: 600;
    line-height: 1;

}

.reseñas-google {

    max-width: 1100px;
    margin: 0 auto 100px;
    padding: 48px clamp(24px, 5vw, 64px);
    background: rgba(252, 250, 246, .72);
    border: 1px solid rgba(141, 114, 89, .18);
    border-radius: 12px;
    box-shadow: 0 16px 34px rgba(47, 47, 47, .1);

}

.reseñas-google-cabecera {

    max-width: 680px;
    margin: 0 auto 30px;
    text-align: center;

}

.reseñas-google h2 {

    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 0 0 12px;
    color: var(--verde);
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(40px, 5vw, 64px);
    font-weight: 600;

}

.reseñas-google h2 i {

    color: #4285f4;
    font-family: Lato, sans-serif;
    font-size: .6em;
    font-style: normal;

}

.elfsight-app-cae49d8d-da1a-47ef-9c3a-2ed704cf6496 {

    width: 100%;
    min-height: 220px;
    margin: 0 auto;

}

.instagram-feed {

    width: min(1100px, 92%);
    margin: 28px auto 0;
    padding: 28px clamp(18px, 4vw, 48px);
    box-sizing: border-box;
    background: rgba(252, 250, 246, .72);
    border: 1px solid rgba(141, 114, 89, .18);
    border-radius: 12px;

}

.reseñas-google-cabecera>p:last-child {

    margin: 0;
    color: var(--texto);
    font-size: 19px;
    line-height: 1.6;

}

.reseñas-google-estado {

    color: var(--marron);
    font-size: 18px;
    text-align: center;

}

.reseñas-google-grid {

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;

}

.reseña-google {

    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 190px;
    padding: 20px;
    box-sizing: border-box;
    background: rgba(255, 255, 255, .74);
    border: 1px solid rgba(141, 114, 89, .14);

}

.reseña-google-cabecera {

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;

}

.reseña-google-autor {

    color: var(--verde);
    font-family: 'Cormorant Garamond', serif;
    font-size: 23px;
    font-weight: 600;

}

.reseña-google-estrellas {

    color: #b47732;
    font-family: Lato, sans-serif;
    font-size: 14px;
    letter-spacing: 1px;
    white-space: nowrap;

}

.reseña-google-texto {

    margin: 0;
    color: var(--texto);
    font-size: 17px;
    line-height: 1.55;

}

.reseña-google-fecha {

    margin-top: auto;
    color: var(--marron);
    font-family: Lato, sans-serif;
    font-size: 13px;

}

.reseñas-google-enlace {

    display: block;
    width: max-content;
    max-width: 100%;
    margin: 28px auto 0;
    color: var(--verde);
    font-family: 'Cormorant Garamond', serif;
    font-size: 20px;
    font-style: italic;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 4px;

}

@media(max-width:800px) {

    .pagina-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .pagina-nav {
        justify-content: flex-start;
        gap: 14px;
    }

    .pagina-hero {
        display: flex;
        flex-direction: column;
    }

    .pagina-hero img {
        min-height: 300px;
        aspect-ratio: 4 / 3;
    }

    .pagina-hero-contenido {
        padding: 42px 26px 50px;
    }

    .pagina-hero h1 {
        font-size: 58px;
    }

    .pagina-cuerpo {
        margin: 52px auto 70px;
    }

    .reseñas-google {
        margin-bottom: 70px;
        padding: 34px 18px;
    }

    .reseñas-google-grid {
        grid-template-columns: 1fr;
    }

}

@media(max-width:1100px) {

    .contenedor {

        grid-template-columns: 1fr;

    }

    .menu-postales {

        flex-direction: row;
        justify-content: center;
        flex-wrap: wrap;

    }

}

@media(max-width:768px) {

    body::before {

        inset: 7px;

    }

    header {

        padding: 18px 20px;

    }

    .contenedor,
    .historia {

        width: 92%;

    }

    .contenedor {

        margin: 30px auto;
        gap: 26px;

    }

    .galeria {

        border-width: 18px;

    }

    .menu-postales {

        flex-direction: column;
        align-items: center;
        gap: 18px;

    }

    .postal {

        width: min(100%, 360px);
        height: 190px;
        transform: none;

    }

    .historia {

        margin: 50px auto 60px;
        padding: 30px 18px;

    }

    .historia p {

        font-size: 18px;
        line-height: 1.7;

    }

}

/* Banner final */
header {
    height: 94px;
    box-sizing: border-box;
    padding: 13px 32px !important;
}

header .logo img {
    width: 90px;
    height: 90px;
}

header .logo-copy {
    gap: 1px;
}

header .logo h1 {
    font-size: 48px;
    line-height: .9;
}

@media(max-width:768px) {
    header {
        height: auto;
        padding: 16px 20px !important;
    }

    header .logo img {
        width: 62px;
        height: 62px;
    }

    header .logo h1 {
        font-size: 40px;
    }
}

/* Ajuste final del logo y título del banner */
header {

    height: 94px;
    box-sizing: border-box;
    padding: 13px 32px !important;

}

header .logo img {

    width: 90px;
    height: 90px;

}

header .logo-copy {

    gap: 1px;

}

header .logo h1 {

    font-size: 48px;
    line-height: .9;

}

@media(max-width:768px) {

    header {
        height: auto;
        padding: 16px 20px !important;
    }

    header .logo img {
        width: 62px;
        height: 62px;
    }

    header .logo h1 {
        font-size: 40px;
    }

}

/* Ajuste final de separación y logo conjunto */
.contenedor {

    margin-bottom: 8px !important;

}

.historia {

    margin-top: 8px !important;

}

.logo-conjunto-final {

    width: min(92%, 900px);
    margin: 0 auto 18px;
    padding: 4px 20px;
    box-sizing: border-box;
    background: transparent;
    border: 0;
    text-align: center;

}

.logo-conjunto-final img {

    display: block;
    width: min(100%, 260px);
    max-height: 58px;
    margin: 0 auto;
    object-fit: contain;

}

/* Footer compacto */
footer {

    margin-top: 32px !important;
    padding: 16px 20px 12px !important;

}

/* Marca del banner sin aumentar su altura */
header {

    height: 94px;
    box-sizing: border-box;
    padding: 13px 32px !important;

}

.logo img {

    width: 68px;
    height: 68px;

}

.logo-copy {

    gap: 1px;

}

.logo h1 {

    font-size: 48px;
    line-height: .9;

}

@media(max-width:768px) {

    header {
        height: auto;
        min-height: 0;
        padding: 16px 20px !important;
    }

    .logo img {
        width: 62px;
        height: 62px;
    }

    .logo h1 {
        font-size: 40px;
    }

}

.footer-marca {

    margin: 0 auto 10px !important;

}

.footer-marca img {

    width: min(100%, 260px) !important;
    max-height: 46px !important;

}

.footer-contenido {

    grid-template-columns: 1fr auto !important;
    gap: 20px;

}

.footer-titulo {

    font-size: 22px;

}

.footer-copy {

    margin-top: 12px !important;
    padding-top: 8px !important;

}

.servicios {

    width: min(1560px, 92%);
    margin: 0 auto 76px;
    padding: 42px clamp(24px, 5vw, 76px);
    box-sizing: border-box;
    background: rgba(252, 250, 246, .72);
    border: 1px solid rgba(141, 114, 89, .18);
    border-radius: 12px;
    box-shadow: 0 16px 34px rgba(47, 47, 47, .1);

}

.servicios h2 {

    margin: 0 0 28px;
    text-align: center;
    font-family: 'Cormorant Garamond', serif;
    font-size: 48px;
    font-weight: 600;
    color: var(--verde);

}

.servicios-grid {

    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 12px;

}

.servicio {

    min-height: 64px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    box-sizing: border-box;
    background: rgba(255, 255, 255, .7);
    border: 1px solid rgba(141, 114, 89, .14);
    color: var(--texto);
    font-size: 15px;
    font-style: normal;
    transition: transform .25s ease, box-shadow .25s ease, background .25s ease;

}

.servicio i {

    flex: 0 0 22px;
    color: var(--verde);
    font-size: 18px;
    text-align: center;

}

.servicio:hover {

    background: white;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(47, 47, 47, .1);

}

@media(max-width:900px) {

    .servicios-grid {

        grid-template-columns: repeat(3, minmax(0, 1fr));

    }

}

@media(max-width:600px) {

    .servicios {

        width: 92%;
        margin-bottom: 50px;
        padding: 30px 18px;

    }

    .servicios h2 {

        font-size: 40px;

    }

    .servicios-grid {

        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;

    }

    .servicio {

        min-height: 58px;
        padding: 10px;
        gap: 8px;
        font-size: 15px;

    }

    .servicio i {

        flex-basis: 18px;
        font-size: 17px;

    }

}

/* Ajustes de lectura y servicios destacados */
.historia {

    margin-top: 24px !important;
    margin-bottom: 52px !important;
    padding-top: 34px !important;
    padding-bottom: 34px !important;

}

.historia h2 {

    margin-bottom: 16px !important;

}

.historia p {

    margin-bottom: 12px !important;
    line-height: 1.55 !important;

}

.servicio-destacado {

    background: rgba(255, 255, 255, .7);
    border-color: rgba(141, 114, 89, .14);

}

.icono-no-ia {

    position: relative;
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    color: var(--verde);
    font-size: 20px;
    line-height: 22px;
    text-align: center;

}

.icono-no-ia i:first-child {

    position: absolute;
    inset: 0;

}

.icono-no-ia i:last-child {

    position: absolute;
    inset: -2px;
    color: #9b4d43;
    font-size: 25px;
    line-height: 25px;

}

.icono-no-ia+span {

    color: var(--texto);
    font-weight: 400;

}

/* ESTILOS BASE */
html {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    margin: 0;
    padding: 0;
    font-family: 'Alegreya', sans-serif;
    font-style: italic;
    background: var(--fondo);
    color: var(--texto);
    line-height: 1.6;
}

/* HEADER */
header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 94px;
    box-sizing: border-box;
    padding: 2px 32px;
    background:
        linear-gradient(rgba(255, 255, 255, .78), rgba(255, 255, 255, .78)),
        url("images/IMG_2336.jpg") center 62% / cover no-repeat;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .05);
    position: sticky;
    top: 0;
    z-index: 1000;
}

.logo {
    display: flex;
    align-items: center;
    gap: 4px;
    color: inherit;
    text-decoration: none;
}

.logo img {
    width: 90px;
    height: 90px;
    object-fit: contain;
}

.logo-copy {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.logo h1 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 42px;
    font-weight: 600;
    line-height: .9;
    margin: 0;
    color: var(--verde);
}

.logo span {
    font-size: 13px;
    letter-spacing: 2px;
    color: var(--marron);
    text-transform: uppercase;
}

.site-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin-left: auto;
    margin-right: 24px;
}

.site-nav a {
    color: var(--marron);
    font-family: 'Cormorant Garamond', serif;
    font-size: 18px;
    font-style: italic;
    text-decoration: none;
}

.site-nav a:hover,
.site-nav a:focus {
    color: var(--verde);
    text-decoration: underline;
    text-underline-offset: 4px;
}

* {

    .postal-front,
    .postal-back {

        position: absolute;

        inset: 0;

        padding: 35px 30px;

        display: flex;

        flex-direction: column;

        justify-content: center;

        background:

            linear-gradient(rgba(255, 255, 255, .92), rgba(255, 255, 255, .92)),

            radial-gradient(circle at top left, #faf8f3, #f4ecdf);

        border-radius: 0;

        min-height: 220px;

    }

    /* Mostrar el reverso dentro de la propia postal en lugar de un modal centrado */
    .postal-back {
        opacity: 0;
        visibility: hidden;
        transform: translateY(8px) scale(0.98);
        transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
        z-index: 2;
        justify-content: flex-start;
    }

    .postal:hover .postal-back {
        opacity: 1;
        visibility: visible;
        transform: translateY(0) scale(1);
    }
}

.social {

    display: flex;

    gap: 18px;

}

.social a {

    width: 56px;

    height: 56px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    transition: all .35s cubic-bezier(0.34, 1.56, 0.64, 1);

    font-size: 22px;

    background: var(--papel);

    color: var(--verde);

    box-shadow: 0 4px 12px rgba(0, 0, 0, .08);

}

.social a:focus {

    outline: 2px solid var(--verde);
    outline-offset: 2px;

}

.social a i {

    font-size: 22px;

}

.social a:hover {

    transform: translateY(-6px);

    box-shadow: 0 8px 20px rgba(0, 0, 0, .15);

}

.social a:nth-child(1):hover {
    background: #25D366;
    color: white;
}

.social a:nth-child(2):hover {
    background: #E1306C;
    color: white;
}

.social a:nth-child(3):hover {
    background: var(--verde);
    color: white;
}

.social img {

    width: 28px;

}

.social a.reserva-header {

    display: inline-flex !important;
    flex: 0 0 auto;
    width: auto;
    min-width: max-content;
    height: auto;
    padding: 9px 13px;
    border: 1px solid rgba(86, 102, 76, .35);
    border-radius: 3px;
    background: rgba(86, 102, 76, .9) !important;
    color: white !important;
    font-family: 'Cormorant Garamond', serif;
    font-size: 18px;
    font-style: italic;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    box-shadow: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative;
    z-index: 2;

}

.social a.reserva-header:hover {

    background: var(--marron) !important;
    color: white !important;
    box-shadow: none !important;
    transform: translateY(-1px);

}


/*==========================
CONTENEDOR
==========================*/

.contenedor {

    width: min(1700px, 96%);

    margin: 60px auto;

    display: grid;

    grid-template-columns: minmax(0, 2.2fr) minmax(320px, .8fr);

    gap: 28px;

    align-items: start;

}


/*==========================
GALERÍA
==========================*/

.galeria {

    position: relative;

    height: auto;

    aspect-ratio: 1 / 1;

    background: white;

    border: 18px solid white;

    border-radius: 0;

    box-sizing: border-box;

    overflow: hidden;

    box-shadow: var(--sombra);

    display: flex;
    align-items: center;
    justify-content: center;

}

.slider {

    width: 100%;

    height: 100%;

    position: relative;

}

.slider img {

    position: absolute;

    inset: 0;

    width: 100%;

    height: 100%;

    object-fit: cover;

    object-position: center;

    opacity: 0;

    transition: opacity .7s ease;

}

.slider img.activa {

    opacity: 1;

}

.galeria::after {

    display: none;

    pointer-events: none;

}


/*==========================
FLECHAS
==========================*/

.flecha {

    position: absolute;

    top: 50%;

    transform: translateY(-50%);

    width: 58px;

    height: 58px;

    border: none;

    border-radius: 50%;

    background: rgba(255, 255, 255, .82);

    backdrop-filter: blur(10px);

    cursor: pointer;

    font-size: 28px;

    transition: all .35s cubic-bezier(0.34, 1.56, 0.64, 1);

    z-index: 100;

}

.flecha:hover {

    transform: translateY(-50%) scale(1.08);

    background: white;

    box-shadow: 0 4px 16px rgba(0, 0, 0, .15);

}

.flecha:focus {

    outline: 2px solid var(--verde);
    outline-offset: 2px;

}

.flecha:active {

    transform: translateY(-50%) scale(0.95);

}

.izquierda {

    left: 22px;

}

.derecha {

    right: 22px;

}


/*==========================
PREPARACIÓN POSTALES
(La Fase 2 las completará)
==========================*/

.menu-postales {

    display: flex;

    flex-direction: column;

    gap: 42px;

    padding-top: 10px;

}

.postal {

    width: 310px;

    min-height: 180px;

}


/*==========================
HISTORIA
==========================*/

.historia {

    width: min(1200px, 90%);

    margin: 90px auto;

    text-align: center;

}

.historia h2 {

    font-family: 'Cormorant Garamond', serif;

    font-size: 54px;

    margin-bottom: 25px;

}

.historia p {

    max-width: 850px;

    margin: auto;

    font-size: 19px;

    line-height: 1.9;

    color: #666;

}


/*==========================
FOOTER
==========================*/

footer {

    margin-top: 120px;

    padding: 40px;

    text-align: center;

    background: #45513e;

    color: white;

}

.footer-marca {

    margin: 0 auto 24px;
    padding: 0;

}

.footer-marca img {

    display: block;
    width: min(100%, 420px);
    max-height: 80px;
    margin: 0 auto;
    object-fit: contain;

}

.footer-contenido {

    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 28px;
    max-width: 1100px;
    margin: 0 auto;
    text-align: left;

}

.footer-contenido p {

    margin: 0;

}

.footer-titulo {

    margin-bottom: 4px !important;
    font-family: 'Cormorant Garamond', serif;
    font-size: 28px;
    font-weight: 600;

}

.footer-nav {

    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 18px;

}

.footer-nav a {

    color: white;
    font-family: Lato, sans-serif;
    font-size: 14px;
    text-decoration: none;

}

.footer-reserva {

    color: white;
    font-family: 'Cormorant Garamond', serif;
    font-size: 18px;
    font-style: italic;
    font-weight: 600;
    text-decoration: none;

}

.footer-nav a:hover,
.footer-nav a:focus {

    text-decoration: underline;
    text-underline-offset: 4px;

}

.footer-reserva {

    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 11px 16px;
    border: 1px solid rgba(255, 255, 255, .6);
    border-radius: 4px;

}

.footer-reserva:hover,
.footer-reserva:focus {

    background: rgba(255, 255, 255, .14);

}

.footer-copy {

    margin: 28px 0 0;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, .2);
    color: rgba(255, 255, 255, .76);
    font-family: Lato, sans-serif;
    font-size: 13px;

}

.historia p:nth-of-type(3),
.historia p:nth-of-type(6) {

    display: block !important;
    height: 24px;
    margin: 18px auto !important;
    overflow: hidden;
    font-size: 0 !important;
    line-height: 1;
    text-align: center !important;
    text-indent: 0 !important;

}

.historia p:nth-of-type(3)::before,
.historia p:nth-of-type(6)::before {

    content: "꥟   ꥟   ꥟";
    color: var(--marron);
    font-family: 'Cormorant Garamond', serif;
    font-size: 22px;
    font-weight: 400;
    letter-spacing: 2px;

}

.historia p:nth-of-type(2),
.historia p:nth-of-type(5) {

    margin-bottom: 18px !important;
    padding-bottom: 0;
    border-bottom: 0;

}

@media(max-width:768px) {

    .footer-contenido {
        grid-template-columns: 1fr;
        gap: 18px;
        text-align: center;
    }

    .footer-nav {
        gap: 12px 16px;
    }

    .footer-reserva {
        justify-content: center;
        width: max-content;
        margin: 0 auto;
    }

}


/*==========================
RESPONSIVE
==========================*/

@media(max-width:1100px) {

    .contenedor {

        grid-template-columns: 1fr;

    }

    .menu-postales {

        flex-direction: row;

        justify-content: center;

        flex-wrap: wrap;

    }

}

@media(max-width:768px) {

    header {

        padding: 20px;

        height: auto;

        flex-direction: column;

        gap: 12px;

    }

    .logo h1 {

        font-size: 40px;

    }

    .galeria {

        height: 420px;

    }

}

/* Encuadre y proporciones finales */
.contenedor,
.historia {

    width: min(1560px, 92%);

}

.contenedor {

    grid-template-columns: minmax(0, 1.72fr) minmax(320px, .78fr);
    gap: 32px;
    margin: 52px auto;
    align-items: center;

}

.galeria {

    aspect-ratio: 1.56 / 1;
    border: 10px solid var(--papel);
    box-shadow: 0 16px 34px rgba(47, 47, 47, .16);

}

.menu-postales {

    gap: 18px;

}

.postal {

    height: 204px;

}

.historia {

    margin: 64px auto 76px;
    padding: 48px clamp(26px, 5vw, 76px);
    border: 1px solid rgba(141, 114, 89, .18);
    border-radius: 12px;
    background: rgba(252, 250, 246, .72);
    box-shadow: 0 16px 34px rgba(47, 47, 47, .1);

}

@media(max-width:768px) {

    .contenedor,
    .historia {

        width: 92%;

    }

    .contenedor {

        margin: 30px auto;

    }

    .galeria {

        border-width: 18px;

    }

    .postal {

        height: 190px;

    }

    .historia {

        margin: 50px auto 60px;
        padding: 30px 18px;

    }

}

/*==================================================
        FASE 2 - POSTALES
==================================================*/

.menu-postales {

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 85px;
    padding-top: 40px;
    position: relative;

}

/* Postal base */

.postal {

    position: relative;

    width: 360px;

    min-height: 240px;

    border-radius: 0;

    border: 1px solid rgba(0, 0, 0, .08);

    box-shadow:
        0 8px 15px rgba(0, 0, 0, .08),
        0 20px 45px rgba(0, 0, 0, .18);

    transition:
        transform .35s,
        box-shadow .35s;

    cursor: pointer;

    overflow: visible;

    transform: translateY(0) rotate(var(--rotate, 0deg));

}

.postal-inner {

    position: relative;

    width: 100%;

    height: 100%;

}

.postal:hover {

    z-index: 20;

    transform: scale(1.04);

    box-shadow:
        0 18px 30px rgba(0, 0, 0, .18),
        0 40px 80px rgba(0, 0, 0, .25);

}

.postal-front,
.postal-back {

    position: absolute;

    inset: 0;

    padding: 24px 26px;

    display: flex;

    flex-direction: column;

    justify-content: center;

    background:
        linear-gradient(rgba(255, 255, 255, .92), rgba(255, 255, 255, .92)),
        radial-gradient(circle at top left, #faf8f3, #f4ecdf);

    border-radius: 0;

    min-height: 220px;

}

.postal-back {

    position: fixed;

    top: 50%;

    left: 50%;

    width: min(780px, 90%);

    max-width: 780px;

    max-height: 85vh;

    border-radius: 18px;

    padding: 40px;

    opacity: 0;

    visibility: hidden;

    transform: translate(-50%, -50%) rotateX(20deg) scale(0.88);

    transition: opacity .25s ease, transform .25s ease, visibility .25s ease;

    z-index: 9999;

    box-shadow:
        0 30px 60px rgba(0, 0, 0, .18),
        0 80px 140px rgba(0, 0, 0, .22);

    overflow-y: auto;

    justify-content: flex-start;

}

.postal:hover .postal-back {

    opacity: 1;

    visibility: visible;

    transform: translate(-50%, -50%) rotateX(0deg) scale(1);

}

.postal-back p {

    margin-top: 18px;

    color: #555;

}

/* Papel envejecido */

.postal::before {

    content: "";

    position: absolute;

    inset: 0;

    opacity: .15;

    background:

        repeating-linear-gradient(45deg,
            transparent 0px,
            transparent 4px,
            rgba(0, 0, 0, .04) 5px,
            transparent 6px);

    pointer-events: none;

}

/* Chincheta */

.postal::after {

    display: none;

}

/* Hover */

/* hover handled by .postal:hover .postal-inner */

/* Títulos */

.postal h2 {

    font-family: 'Cormorant Garamond', serif;

    font-size: 34px;

    line-height: 1.15;

    margin: 0;

    color: #222;

}

/* Texto */

.postal p {

    font-size: 16px;

    line-height: 1.45;

    margin: 0;

    color: #555;

}

/* Inclinaciones */

.reserva {

    --rotate: -8deg;

    transform: translateX(-22px) rotate(-8deg);

    margin-bottom: -35px;

    z-index: 3;

}

.nosotros {

    --rotate: 7deg;

    transform: translateX(18px) rotate(7deg);

    margin-bottom: -35px;

    z-index: 2;

}

.requena {

    --rotate: -4deg;

    transform: translateX(-10px) rotate(-4deg);

    margin-bottom: 0;

    z-index: 1;

}

/* Pequeña sombra debajo */

.postal .shadow {

    position: absolute;

    bottom: -15px;

    left: 20px;

    width: 80%;

    height: 25px;

    background: rgba(0, 0, 0, .18);

    filter: blur(18px);

}

/* Borde interior */

.postal span.borde {

    position: absolute;

    inset: 10px;

    border: 1px solid rgba(0, 0, 0, .05);

    pointer-events: none;

}

/* Línea decorativa */

.postal h2::after {

    content: "꥟   ꥟   ꥟";

    display: block;

    color: #8d7259;

    font-family: 'Cormorant Garamond', serif;

    font-size: 16px;

    font-weight: 400;

    letter-spacing: 2px;

    margin-top: 8px;

    margin-bottom: 10px;

}

/* Animación de entrada */

.postal {

    animation: aparecer .8s ease both;

}

.postal:nth-child(2) {

    animation-delay: .15s;

}

.postal:nth-child(3) {

    animation-delay: .3s;

}

@keyframes aparecer {

    from {

        opacity: 0;

        transform: translateY(40px) rotate(var(--rotate, 0deg));

    }

    to {

        opacity: 1;

        transform: translateY(0) rotate(var(--rotate, 0deg));

    }

}

/* Responsive */

@media(max-width:1100px) {

    .menu-postales {

        flex-direction: row;

        flex-wrap: wrap;

        gap: 35px;

    }

    .postal {

        margin: 0 !important;

        transform: none !important;

    }

}

@media(max-width:768px) {

    .postal {

        width: 92%;

    }

    .postal h2 {

        font-size: 30px;

    }

}

/*==================================================
        FASE 3 - DETALLES FINALES
==================================================*/


/*==============================
        HISTORIA
==============================*/

.historia {

    position: relative;

    width: min(1200px, 90%);

    margin: 120px auto;

    padding: 70px;

    background: rgba(255, 255, 255, .45);

    border-radius: 20px;

    backdrop-filter: blur(6px);

    box-shadow: 0 20px 40px rgba(0, 0, 0, .08);

}

.historia::before {

    content: "";

    position: absolute;

    top: -20px;

    left: 50%;

    transform: translateX(-50%);

    width: 120px;

    height: 4px;

    background: #8d7259;

    border-radius: 30px;

}

.historia h2 {

    text-align: center;

    font-size: 58px;

    margin-bottom: 35px;

    font-family: 'Cormorant Garamond', serif;

    color: #2c2c2c;

}

.historia p {

    max-width: 900px;

    margin: auto;

    text-align: left !important;

    font-size: 26px;

    line-height: 2;

    color: #555;

}

.historia p:not(:nth-of-type(3)):not(:nth-of-type(6)) {

    text-indent: 1.5em;

}

.historia p:nth-of-type(3),
.historia p:nth-of-type(6) {

    text-align: center !important;

    text-indent: 0;

    font-size: 20px;

}


/*==============================
        FOOTER
==============================*/

footer {

    background: #43513d;

    color: white;

    text-align: center;

    padding: 24px 20px;

    margin-top: 56px;

}

footer p {

    letter-spacing: 1px;

    opacity: .9;

}


/*==============================
        LINKS
==============================*/

a {

    text-decoration: none;

    color: inherit;

}


/*==============================
        SCROLLBAR
==============================*/

::-webkit-scrollbar {

    width: 12px;

}

::-webkit-scrollbar-track {

    background: #ece3d7;

}

::-webkit-scrollbar-thumb {

    background: #9b7b5d;

    border-radius: 20px;

}

::-webkit-scrollbar-thumb:hover {

    background: #7f644a;

}


/*==============================
        SELECCIÓN
==============================*/

::selection {

    background: #56664c;

    color: white;

}


/*==============================
        TRANSICIONES
==============================*/

img {

    user-select: none;

}

button {

    font-family: 'Lato', sans-serif;

}

button,
a,
.postal {

    transition: .35s;

}


/*==============================
        SOMBRAS
==============================*/

.logo {

    transition: .3s;

}

.logo:hover {

    transform: translateY(-2px);

}


/*==============================
        RESPONSIVE TABLET
==============================*/

@media(max-width:1024px) {

    .contenedor {

        gap: 40px;

    }

    .historia {

        padding: 50px;

    }

}


/*==============================
        RESPONSIVE MÓVIL
==============================*/

@media(max-width:768px) {

    body {

        overflow-x: hidden;

    }

    header {

        flex-direction: column;

        height: auto;

        padding: 12px 20px;

        gap: 12px;

    }

    .logo {

        text-align: center;

    }

    .site-nav {
        order: 3;
        flex-wrap: wrap;
        margin: 0;
        gap: 10px 16px;
    }

    .logo h1 {

        font-size: 40px;

        line-height: .95;

    }

    .logo span {
        font-size: 12px;
    }

    .galeria {

        height: auto;
        border-width: 18px;

    }

    .flecha {

        width: 48px;
        height: 48px;
        font-size: 24px;

    }

    .izquierda {

        left: 12px;

    }

    .derecha {

        right: 12px;

    }

    .contenedor {

        grid-template-columns: 1fr;
        margin: 30px auto;
        gap: 35px;

    }

    .menu-postales {

        width: 100%;

    }

    .postal {

        width: 95% !important;
        max-width: 320px;

    }

    .historia {

        padding: 30px 20px;
        margin: 60px auto;

    }

    .historia h2 {

        font-size: 40px;

    }

    .historia p {

        font-size: 20px;

    }

    .historia p:nth-of-type(3),
    .historia p:nth-of-type(6) {

        font-size: 16px;

    }

    .site-nav {

        width: 100%;
        justify-content: center;
        text-align: center;

    }

    .social {

        width: 100%;
        justify-content: center;
        flex-wrap: wrap;
        gap: 10px;

    }

    .social .reserva-header {

        order: -1;

    }

}

.info-servicios {

    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(360px, .8fr);
    gap: 36px;
    align-items: start;
    width: min(1480px, 90%);
    margin: 0 auto 64px !important;

}

.info-servicios>.historia,
.info-servicios>.servicios {

    width: 100% !important;
    margin: 0 !important;
    box-sizing: border-box;

}

.info-servicios>.servicios {

    align-self: start;
    margin-top: 42px !important;

}

.info-servicios>.servicios .servicios-grid {

    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;

}

.info-servicios>.servicios .servicio {

    min-height: 72px;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    padding: 10px 6px;
    text-align: center;
    font-size: 13px;
    line-height: 1.2;

}

.info-servicios>.servicios .servicio i {

    flex: 0 0 auto;
    font-size: 18px;

}

@media(max-width:1000px) {

    .info-servicios {
        display: block;
    }

    .info-servicios>.servicios {
        margin-top: 28px !important;
    }

    .info-servicios>.servicios .servicios-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .info-servicios>.servicios .servicio {
        min-height: 62px;
        flex-direction: row;
        justify-content: flex-start;
        gap: 8px;
        text-align: left;
    }

}

@media(max-width:600px) {

    .info-servicios>.servicios .servicios-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

.social a {

    justify-content: center;
    align-items: center;

    border-radius: 16px;

    background: white;

    color: #55664b;

    font-size: 25px;

    text-decoration: none;

    box-shadow:
        0 12px 25px rgba(0, 0, 0, .12);

    transition: .35s;

}

.social a:hover {

    transform: translateY(-6px);

    background: #55664b;

    color: white;

    box-shadow:
        0 20px 35px rgba(0, 0, 0, .18);

}

.social a:nth-child(1):hover {

    background: #25D366;

}

.social a:nth-child(2):hover {

    background: #E1306C;

}

.social a:nth-child(3):hover {

    background: #3b3b3b;

}


/*==============================
        ANIMACIONES SUAVES
==============================*/

@keyframes fadeUp {

    from {

        opacity: 0;

        transform: translateY(30px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}

.galeria {

    /* ==========================
       MODAL POPUP PARA POSTALES
       ========================== */
    animation: fadeUp .8s ease;

}

.menu-postales {

    animation: fadeUp 1s ease;

}

.historia {

    animation: fadeUp 1.2s ease;

}


/*==============================
    MODAL POPUP PARA POSTALES
==============================*/

.modal {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.55);
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility .25s ease;
    z-index: 10000;
    backdrop-filter: blur(3px);
}

.modal.open {
    opacity: 1;
    visibility: visible;
}

.modal-content {
    width: min(1000px, 95%);
    max-height: 92vh;
    background: linear-gradient(#fff, #fbf9f6);
    border-radius: 14px;
    padding: 50px 45px;
    box-shadow: 0 30px 60px rgba(0, 0, 0, .28);
    overflow: auto;
    position: relative;
    animation: slideUp .3s ease;
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.modal-close {
    position: absolute;
    top: 12px;
    right: 14px;
    border: none;
    background: transparent;
    font-size: 34px;
    line-height: 1;
    color: #333;
    cursor: pointer;
    transition: .2s;
}

.modal-close:hover {
    color: var(--verde);
}

.modal-close:focus {
    outline: 2px solid var(--verde);
    outline-offset: 2px;
}

.modal-body h2 {
    font-family: 'Cormorant Garamond', serif;
    font-size: 64px;
    margin-bottom: 35px;
    color: var(--verde);
    font-weight: 600;
}

.modal-body p {
    font-size: 28px;
    line-height: 2.2;
    color: #333;
    margin-bottom: 40px;
    font-weight: 400;
}

.modal-body .postal-inner {
    margin-top: 40px;
    display: flex;
    justify-content: center;
}

@media(max-width:600px) {
    .modal-content {
        padding: 35px 22px
    }

    .modal-body h2 {
        font-size: 44px
    }

    .modal-body p {
        font-size: 18px
    }
}

/*==============================
    FIN CSS
==============================*/

.contenedor {

    width: min(1600px, 92%);
    grid-template-columns: minmax(0, 1.75fr) minmax(340px, .75fr);
    gap: 30px;

}

.galeria {

    width: 100%;
    height: auto;
    aspect-ratio: 1.56 / 1;
    border: 18px solid white;
    box-sizing: border-box;

}

.menu-postales {

    gap: 20px;
    padding-top: 0;
    align-items: stretch;

}

.postal {

    width: 100%;
    height: 225px;
    min-height: 0;
    box-sizing: border-box;
    margin-bottom: 0;

}

.postal-inner,
.postal-front {

    min-height: 0;

}

.reserva {

    transform: rotate(-2deg);

}

.nosotros {

    transform: rotate(1.5deg);

}

.requena {

    transform: rotate(-1deg);

}

.historia {

    width: min(1600px, 92%);
    margin: 70px auto;
    padding: 48px clamp(24px, 5vw, 80px);
    box-sizing: border-box;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    backdrop-filter: none;

}

.historia::before {

    display: none;

}

.historia p {

    max-width: 1050px;
    font-size: 21px;
    line-height: 1.8;

}

@media(max-width:1100px) {

    .contenedor {

        grid-template-columns: 1fr;

    }

    .menu-postales {

        flex-direction: row;
        justify-content: center;
        flex-wrap: wrap;

    }

    .postal {

        width: min(360px, 45%);

    }

}

@media(max-width:768px) {

    .contenedor {

        width: 92%;
        gap: 26px;

    }

    .galeria {

        aspect-ratio: 1.56 / 1;
        border-width: 18px;

    }

    .menu-postales {

        flex-direction: column;
        align-items: center;
        gap: 20px;
        padding-top: 0;

    }

    .postal {

        width: min(100%, 360px);
        height: 215px;
        transform: none;

    }

    .historia {

        width: 92%;
        margin: 50px auto;
        padding: 28px 18px;

    }

    .historia p {

        font-size: 18px;
        line-height: 1.7;

    }

}


/*==============================
    SEO & MULTIIDIOMA
==============================*/

/* Screen reader only */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Logo name (span instead of h1) */
.logo .logo-nombre {
    font-family: 'Cormorant Garamond', serif;
    font-size: 48px;
    font-weight: 600;
    line-height: .9;
    margin: 0;
    color: var(--verde);
    display: block;
}

@media(max-width:768px) {
    .logo .logo-nombre {
        font-size: 40px;
        line-height: .95;
    }
}

/* Historia h1 — same style as h2 for home page */
.historia h1 {
    text-align: center;
    font-size: 58px;
    margin-bottom: 35px;
    font-family: 'Cormorant Garamond', serif;
    color: #2c2c2c;
}

@media(max-width:768px) {
    .historia h1 {
        font-size: 40px;
    }
}

/* Language nav */
.lang-nav {
    display: flex;
    align-items: center;
    gap: 2px;
}

.lang-nav a {
    padding: 4px 7px;
    font-family: Lato, sans-serif;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    letter-spacing: .5px;
    color: var(--marron);
    text-decoration: none;
    border-radius: 3px;
    transition: background .2s, color .2s;
}

.lang-nav a:hover,
.lang-nav a:focus {
    background: rgba(86, 102, 76, .1);
    color: var(--verde);
}

.lang-nav a.active {
    background: var(--verde);
    color: white;
    font-weight: 700;
}

@media(max-width:768px) {
    .lang-nav {
        order: 2;
        justify-content: center;
        gap: 4px;
    }
}

/* Contacto page */
.contacto-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    max-width: 1000px;
    margin: 0 auto;
}

.contacto-info {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.contacto-dato {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.contacto-dato i {
    flex: 0 0 24px;
    color: var(--verde);
    font-size: 22px;
    margin-top: 4px;
}

.contacto-dato p {
    margin: 0;
    font-size: 18px;
    line-height: 1.6;
}

.contacto-dato a {
    color: var(--verde);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.contacto-mapa {
    border-radius: 12px;
    overflow: hidden;
    min-height: 350px;
    background: rgba(252, 250, 246, .72);
    border: 1px solid rgba(141, 114, 89, .18);
}

.contacto-mapa iframe {
    width: 100%;
    height: 100%;
    min-height: 350px;
    border: 0;
}

@media(max-width:768px) {
    .contacto-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }
}

/* Reseñas section on home */
.reseñas-inicio {
    scroll-margin-top: 100px;
}