/* ═══════════════════════════════════════════════════════════
   REDONDEO GENERAL
   Va al final de la cascada: sube los radios de todo el sitio
   a un registro de app, sin tener que tocar cada componente
   heredado del starter.
   ═══════════════════════════════════════════════════════════ */

:root {
    --radius-sm:  10px;
    --radius:     14px;
    --radius-lg:  20px;
    --radius-xl:  28px;
    --radius-pill: 999px;
}

/* ====== CONTROLES ====== */

.btn,
button.btn,
a.btn,
input[type="submit"],
input[type="button"] {
    border-radius: var(--radius-pill);
}

/* Por exclusión y no por lista: un <input> sin atributo type es válido y se
   comporta como texto, pero no matchea input[type="text"]. */
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
select, textarea {
    border-radius: var(--radius-sm);
}
textarea { border-radius: var(--radius); }

/* Los campos del buscador y del plano no llevan caja propia: se dejan planos
   para que no compitan con el redondeo de la tarjeta que los contiene. */
.buscador input, .buscador select,
.plano__sitio input { border-radius: 0; }

/* ====== SUPERFICIES ====== */

.card,
.admin-card,
.empty,
.alert,
.auth-alert,
.content__note,
.aviso,
.tarjeta,
.ruta,
.enlace,
.review-card,
.facility,
.sitio-card,
.sitio-admin-card,
.post-card,
.intro-block,
.home-cta,
.table-wrap,
.reservation-summary,
.booking-form {
    border-radius: var(--radius-lg);
}

.badge, .res-badge, .chip-nav a, .chip-nav__item, .pagination a, .pagination span {
    border-radius: var(--radius-pill);
}

/* ====== MEDIOS ====== */

.sitio-card__media,
.sitio-admin-card__media,
.post-card__img,
.gallery__thumb,
.gallery__main,
.lugar__foto img,
.cabecera__fondo img,
.content__hero-img,
.par img,
.col__fotos img,
.sitio__fotos img {
    border-radius: var(--radius-lg);
    overflow: hidden;
}

/* La imagen dentro de la tarjeta hereda el redondeo del contenedor, así que
   solo se redondean las esquinas de arriba. */
.post-card__img,
.sitio-card__media {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

/* ====== TABLAS ====== */

.table-wrap { overflow: hidden; border: 1px solid var(--color-border); }
.table-wrap .table { margin: 0; }

/* ====== MAPA EMBEBIDO ====== */

.llegar__mapa iframe,
.mapa-embed iframe { border-radius: var(--radius-lg); }

/* ====== SECCIONES ====== */

/* Las bandas de color completas se despegan del borde y se redondean, que es
   lo que le da el aire de tarjetas apiladas. */
.section--alt {
    border-radius: var(--radius-xl);
    margin-left: clamp(.6rem, 2vw, 1.5rem);
    margin-right: clamp(.6rem, 2vw, 1.5rem);
}

@media (max-width: 640px) {
    .section--alt { margin-left: .5rem; margin-right: .5rem; border-radius: var(--radius-lg); }
}

/* ====== LOGO ====== */

/* La barra flotante es clara: el logo original entra tal cual.
   Lleva tres líneas de texto apiladas, así que necesita más altura que un
   logotipo de una línea para que "COMPLEJO TURÍSTICO" siga siendo legible. */
.navbar__brand img { height: clamp(42px, 4.6vw, 58px); width: auto; }
.navbar__pill { padding-top: .45rem; padding-bottom: .45rem; }

/* El pie es verde oscuro. Sin versión clara cargada, se lleva el logo a crema.
   Funciona con logos monocromos; pierde el acento dorado del original. */
/* camping.css le fija 84px de alto y un filtro fijo. Con el logo real, que es
   ancho, eso lo hacía desbordar su columna y encimarse con la de al lado. */
.site-footer__logo {
    max-width: min(240px, 100%);
    height: auto;
    filter: none;
    opacity: 1;
}
/* El filtro solo cuando no hay versión clara cargada. */
.site-footer__logo--aclarado { filter: brightness(0) invert(1); opacity: .88; }

/* Sin esto una columna con contenido ancho se niega a encogerse y se sale
   de la grilla. */
.site-footer__col { min-width: 0; }
.site-footer__col p, .site-footer__col a { overflow-wrap: anywhere; }

/* El cajón móvil también va sobre fondo claro. */
.site-drawer__brand img { max-height: 46px; width: auto; }

/* ====== FORMULARIO DE CONTACTO ====== */

.lead-form__field label { display: block; }
.lead-form__field input,
.lead-form__field textarea { margin-top: .35rem; }

/* Los botones flotantes se sientan sobre la esquina inferior derecha. En móvil
   tapaban el área de mensaje y el botón de enviar, así que el contenido reserva
   ese alto. */
.float-actions { --alto-flotantes: 7.5rem; }
@media (max-width: 720px) {
    .lead-form__submit { margin-top: var(--space-lg); }
    .lead-form__submit .btn { width: 100%; justify-content: center; }
    .page--prose, .content, .page-head + .section, .lead-form { scroll-margin-bottom: 7.5rem; }
    main > .section:last-of-type,
    main > .container:last-child { padding-bottom: 8rem; }
}
