/* BAGU · Casa Familiar Cuenca. El logo original se conserva completo. */
.brand-logo {
  display: block;
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  object-fit: contain;
  aspect-ratio: 1;
  background: #fffefa;
  border: 1px solid rgba(181, 139, 54, .35);
  border-radius: 12px;
}
.brand-logo--nav { width: 44px; height: 44px; border-radius: 50%; }
.brand-wordmark { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 23px; font-weight: 600; letter-spacing: .14em; line-height: 1; }
.brand-logo--welcome { width: 210px; height: 210px; margin: 0 auto 24px; border-radius: 20px; }
.brand-preloader-name { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.brand-footer { display: flex; align-items: center; gap: 14px; }
.brand-logo--footer { width: 88px; height: 88px; }
.brand-footer-description { display: block; margin-top: 4px; font-size: 11px; line-height: 1.5; }
.brand-logo--login { width: 156px; height: 156px; margin: 0 auto 18px; border-radius: 18px; }
.brand-logo--sidebar { width: 56px; height: 56px; }
.brand-logo--mobile { width: 44px; height: 44px; }
@media (min-width: 1024px) { .brand-logo--mobile { display: none; } }
@media (max-width: 480px) {
  .brand-logo--nav { width: 36px; height: 36px; }
  .brand-wordmark { font-size: 18px; letter-spacing: .1em; }
  .navbar-glass-shell .nav-tab-pill { padding-inline: 6px; font-size: 9px; letter-spacing: .04em; }
  .brand-logo--welcome { width: 180px; height: 180px; }
  .brand-footer { text-align: left; }
  .brand-logo--footer { width: 72px; height: 72px; }
}

/* El menú reparte el ancho disponible sin desbordar la cápsula en móvil. */
@media (max-width: 639px) {
  #navbar { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  #navbar .navbar-glass-shell { gap: 8px; padding-inline: 10px; }
  #navbar .nav-brand-btn { gap: 0; }
  #navbar .brand-wordmark { display: none; }
  #navbar .brand-logo--nav { width: 32px; height: 32px; }
  #navbar nav[role="tablist"] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    flex: 1 1 0%;
    min-width: 0;
    gap: 2px;
  }
  #navbar .nav-tab-pill {
    min-width: 0;
    width: 100%;
    padding: 9px 2px;
    font-size: clamp(9px, 2.4vw, 11px);
    letter-spacing: 0;
    line-height: 1.4;
  }
}

/* Nuestra historia: un relato familiar dentro del recorrido de Inicio. */
.bagu-story { padding: clamp(56px, 7vw, 104px) 24px; background: #FAF9F4; border-bottom: 1px solid rgba(181, 139, 54,.18); }
.bagu-story-layout { max-width: 1152px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 7vw, 104px); align-items: start; }
.bagu-story-eyebrow { margin: 0 0 20px; color: #294735; font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.bagu-story-title { margin: 0; color: #193027; font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(36px, 4vw, 54px); font-weight: 400; line-height: 1.08; }
.bagu-story-title em { color: #8B692B; font-weight: 400; }
/* Logo y firma familiar comparten una fila, también en pantallas pequeñas. */
.bagu-story-family-brand { display: flex; align-items: center; gap: clamp(18px, calc(2vw + 6px), 30px); margin-top: 30px; }
.bagu-story-family-text { min-width: 0; }
.bagu-story-families { display: flex; align-items: center; gap: 12px; font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(25px, 2.5vw, 32px); color: #193027; }
.bagu-story-plus { color: #8B692B; font-size: 22px; }
.bagu-story-signature { margin: 8px 0 0; font-size: 12px; line-height: 1.6; color: #59644E; }
/* Integra el papel claro del logo con el fondo crema de la historia. */
.bagu-story-logo { display: block; width: clamp(125px, calc(11vw + 25px), 175px); flex: 0 0 auto; height: auto; aspect-ratio: 1; object-fit: contain; margin: 0; mix-blend-mode: multiply; }
.bagu-story-intro { isolation: isolate; }
.bagu-story-copy { color: #294538; font-size: 16px; line-height: 1.85; }
.bagu-story-copy > p { margin: 0 0 20px; }
.bagu-story-copy strong { color: #193027; font-weight: 600; }
.bagu-story-quote { margin: 30px 0; padding: 4px 0 4px 22px; border-left: 2px solid #B58B36; color: #193027; font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(25px, 2.5vw, 32px); line-height: 1.3; }
.bagu-story-quote em { color: #8B692B; }
.bagu-story-link { background: none; border: 0; border-bottom: 1px solid rgba(181, 139, 54,.5); padding: 6px 0; color: #365742; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; text-align: left; }
.bagu-story-link span { margin-left: 8px; }
.bagu-story-link:hover { color: #193027; border-color: #193027; }
.bagu-story-link:focus-visible { outline: 2px solid #365742; outline-offset: 5px; }
@media (max-width: 767px) {
  .bagu-story { padding: 56px 24px; }
  .bagu-story-layout { grid-template-columns: 1fr; gap: 32px; }
  .bagu-story-family-brand { margin-top: 24px; }
  .bagu-story-families { gap: 8px; }
  .bagu-story-copy { font-size: 15px; }
  .hero-subtitle-clean { letter-spacing: .025em; max-width: 30em; }
}

/* Preguntas frecuentes: desplegables nativos accesibles por teclado. */
#home-faq { scroll-margin-top: var(--nav-safe-offset, 100px); }
.bagu-faq { background: #F0F2E9; padding: clamp(56px, 7vw, 96px) 24px; border-bottom: 1px solid rgba(181, 139, 54,.18); }
.bagu-faq-layout { max-width: 1152px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1.4fr; gap: clamp(32px, 6vw, 80px); }
.bagu-faq-intro { max-width: 28em; margin-top: 20px; color: #59644E; font-size: 15px; line-height: 1.7; }
.bagu-faq-list details { border-bottom: 1px solid rgba(41, 69, 56,.23); }
.bagu-faq-list details:first-child { border-top: 1px solid rgba(41, 69, 56,.23); }
.bagu-faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; color: #193027; font-size: 16px; line-height: 1.5; font-weight: 600; cursor: pointer; list-style: none; }
.bagu-faq-list summary::-webkit-details-marker { display: none; }
.bagu-faq-list summary > span { flex-shrink: 0; color: #294735; font-size: 25px; font-weight: 400; line-height: 1; }
.bagu-faq-list details[open] summary > span { transform: rotate(45deg); }
.bagu-faq-list summary:focus-visible { outline: 2px solid #365742; outline-offset: 4px; }
.bagu-faq-list details p { margin: 0; padding: 0 26px 24px 0; color: #294538; font-size: 15px; line-height: 1.8; }
.bagu-faq-booking-link { display: block; margin: 12px auto 0; color: #D3B46A; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; background: none; border: 0; }
@media (max-width: 767px) {
  .bagu-faq-layout { grid-template-columns: 1fr; }
  .bagu-faq-list summary { font-size: 15px; }
}


/* Espacios: portada contenida y galería visible únicamente al solicitarla. */
.dept-home-cover { display: block; position: relative; width: 100%; padding: 0; margin: 0 0 20px; border: 0; border-radius: 12px; overflow: hidden; background: #E8ECDF; cursor: zoom-in; }
.dept-home-cover img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; }
.dept-photo-caption { display: flex; justify-content: space-between; gap: 12px; padding: 12px; color: #294538; font-size: 12px; text-align: left; }
.apartment-page { padding: 132px 24px 72px; background: #FAF9F4; }
.apartment-page-inner { max-width: 1152px; margin: 0 auto; }
.apartment-page-heading { max-width: 640px; margin: 0 0 40px; }
.apartment-page-heading h2 { margin: 0 0 16px; font: 400 clamp(36px,4vw,52px)/1.1 'Cormorant Garamond',Georgia,serif; color: #193027; }
.apartment-page-heading h2 em, .apartment-description h3 em { color: #8B692B; }
.apartment-page-heading > p:last-child { margin: 0; color: #59644E; line-height: 1.75; font-size: 15px; }
.apartment-card { margin: 0 0 32px; border: 1px solid rgba(181, 139, 54,.25); border-radius: 20px; background: #FFFEFA; overflow: hidden; }
.apartment-overview { display: grid; grid-template-columns: 1.05fr 1fr; align-items: start; }
.apartment-cover { display: block; width: 100%; border: 0; padding: 0; background: #E8ECDF; cursor: zoom-in; align-self: start; }
.apartment-cover img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; }
.apartment-description { min-width: 0; padding: clamp(24px,3vw,38px); }
.apartment-number { margin: 0 0 12px; color: #294735; font-size: 11px; letter-spacing: .12em; font-weight: 600; text-transform: uppercase; }
.apartment-description h3 { margin: 0 0 16px; color: #193027; font: 400 clamp(30px,3vw,40px)/1.12 'Cormorant Garamond',Georgia,serif; }
.apartment-description > p:not(.apartment-number) { margin: 0; color: #59644E; font-size: 14px; line-height: 1.8; }
.apartment-highlights { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 22px 0; padding: 0; list-style: none; font-size: 12px; color: #294538; }
.apartment-highlights li::before { content: '·'; margin-right: 6px; color: #8B692B; }
.apartment-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.apartment-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 13px 17px; border-radius: 9px; font-size: 12px; line-height: 1.5; font-weight: 600; cursor: pointer; }
.apartment-button-primary { background: #294538; color: #FFFEFA; border: 1px solid #294538; }
.apartment-button-secondary { background: transparent; color: #365742; border: 1px solid #B58B36; }
.apartment-button:focus-visible, .apartment-cover:focus-visible, .apartment-photo-button:focus-visible { outline: 3px solid #8B692B; outline-offset: 3px; }
.apartment-details[hidden] { display: none !important; }
#manual-fields[hidden], #manual-money[hidden] { display: none !important; }
.apartment-details { padding: 30px; border-top: 1px solid rgba(181, 139, 54,.2); }


.apartment-photo-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.apartment-photo-button { min-width: 0; padding: 0; background: #F0F2E9; border: 1px solid rgba(181, 139, 54,.18); border-radius: 10px; overflow: hidden; cursor: zoom-in; text-align: left; }
.apartment-photo-button img { display: block; width: 100%; height: 300px; object-fit: contain; background: #F0F2E9; }
.apartment-photo-label { display: block; position: static; padding: 12px 14px; color: #294538; background: #FFFEFA; font-size: 12px; line-height: 1.5; }
.apartment-details-close { display: block; margin: 24px 0 0; padding: 6px 0; background: none; border: 0; color: #365742; text-decoration: underline; text-underline-offset: 4px; font-size: 13px; cursor: pointer; }


.apartment-page-help { margin: 32px 0 0; color: #59644E; font-size: 13px; line-height: 1.8; }
.apartment-page-help button { color: #365742; border: 0; background: none; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
@media (max-width: 900px) {
  .apartment-overview { grid-template-columns: 1fr; }
  .apartment-photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .apartment-cover img { max-height: 520px; }
}
@media (max-width: 540px) {
  .apartment-page { padding: 112px 16px 48px; }
  .apartment-description { padding: 24px 20px; }
  .apartment-actions { flex-direction: column; }
  .apartment-button { width: 100%; }
  .apartment-details { padding: 24px 16px; }


  .apartment-photo-grid { grid-template-columns: 1fr; }
  .apartment-photo-button img { height: 340px; }
}


/* Identidad BAGU: verde del logotipo, marfil y detalles dorados. */
:root { --bagu-green: #193027; --bagu-green-soft: #365742; --bagu-gold: #C99A3C; --bagu-ivory: #FAF9F4; }
.navbar-glass-shell,
.navbar.solid-nav .navbar-glass-shell,
.navbar.scrolled .navbar-glass-shell { background: linear-gradient(120deg, rgba(25,48,39,.96), rgba(33,60,48,.94)); border-color: rgba(201,154,60,.45); }
.nav-tab-pill.active-tab { background: #365742; border-color: #C99A3C; color: #FFFEFA; }
.apartment-card { border-color: rgba(25,48,39,.18); box-shadow: 0 16px 45px rgba(25,48,39,.07); }
.apartment-button-primary { background: #193027; border-color: #193027; color: #FFFEFA; }
.apartment-button-primary:hover { background: #365742; border-color: #365742; }
.apartment-button-secondary:hover { background: #E8ECDF; }
.apartment-photo-label { color: #193027; }
.lightbox-backdrop { background: rgba(24,27,25,.32); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.lightbox-glass-frame { background: rgba(250,249,244,.58); border-color: rgba(255,255,255,.65); box-shadow: 0 24px 70px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.7); }
.lightbox-image-stage { background: transparent; }
.lightbox-photo-info { background: rgba(250,249,244,.88); border-radius: 12px; margin-top: 10px; padding: 12px; }
.lightbox-nav-btn { background: #193027; border-color: rgba(201,154,60,.6); color: #FFFEFA; }
.lightbox-nav-btn:hover { background: #365742; border-color: #D3B46A; }

#lightbox-caption { color: #193027; }
#lightbox-counter { color: #365742; }
.lightbox-nav-btn:focus-visible { outline: 3px solid #D3B46A; outline-offset: 4px; }

/* Espacio de seguridad para los descendentes de la tipografía en portada. */
.hero-headline .line-wrap { padding-bottom: 0; overflow: visible; }
.hero-headline .line-wrap:not(:has(.is-visible)) { overflow: hidden; padding-bottom: 14px; margin-bottom: -14px; }

/* Ocupación familiar y tarifas por edad. */
.guest-count-field { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; background: #F0F2E9; border: 1px solid rgba(25,48,39,.18); border-radius: 10px; color: #193027; }
.guest-count-field strong { display: block; }
.guest-count-field strong { font-size: 14px; }
.guest-count-field input { width: 72px; min-height: 44px; padding: 8px; text-align: center; border: 1px solid #8A947A; border-radius: 8px; background: #FFFEFA; color: #193027; font-size: 16px; }
.guest-count-field input:focus-visible { outline: 2px solid #365742; outline-offset: 2px; }
.guest-count-summary { margin: 12px 0 6px; font-size: 13px; color: #193027; font-weight: 600; }
.age-capacity-note, .age-info { font-size: 12px; line-height: 1.7; color: #59644E; }
.age-rates { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 12px 0; font-size: 12px; color: #193027; }
.age-info { border-top: 1px solid rgba(25,48,39,.18); padding-top: 10px; }
.age-info summary { cursor: pointer; color: #365742; font-weight: 600; min-height: 32px; }
.age-info p { margin-top: 8px; }

#summary-guests, #summary-rate-per-person { max-width: 65%; text-align: right; overflow-wrap: anywhere; }
#summary-calc-formula { overflow-wrap: anywhere; }
.summary-total-box > div:first-child { min-width: 0; }

.footer-socials { display: flex; align-items: center; justify-content: center; gap: 12px; }
.footer-socials a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid rgba(211,180,106,.45); border-radius: 50%; color: #E8D9AE; transition: background .2s, color .2s; }
.footer-socials svg { width: 22px; height: 22px; }
.footer-socials a:hover { background: #365742; color: #FFFEFA; }
.footer-socials a:focus-visible { outline: 2px solid #D3B46A; outline-offset: 4px; }

/* Condiciones visibles antes de enviar la solicitud, con lectura cómoda en móvil. */
.booking-conditions { border: 1px solid rgba(211,180,106,.4); border-radius: 12px; background: rgba(255,254,250,.06); color: #FAF9F4; }
.booking-conditions summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; cursor: pointer; font-size: 13px; font-weight: 600; list-style: none; }
.booking-conditions summary::-webkit-details-marker { display: none; }
.booking-conditions summary:focus-visible { outline: 2px solid #D3B46A; outline-offset: 3px; border-radius: 12px; }
.booking-conditions summary span { color: #D3B46A; font-size: 20px; transition: transform .2s; }
.booking-conditions[open] summary span { transform: rotate(45deg); }
.booking-conditions-content { padding: 0 16px 16px; font-size: 12px; line-height: 1.8; color: #E8EBDD; }
.booking-conditions-content p + p { margin-top: 12px; }
.booking-conditions-content strong { color: #FFFEFA; }


.footer-privacy-contact { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 20px; box-sizing: border-box; max-width: 1280px; margin: 18px auto 0; padding: 10px clamp(16px, 3vw, 40px) 0; border-top: 1px solid rgba(211,180,106,.14); font-size: 11px; line-height: 1.6; color: #DADDCB; }
.footer-privacy-contact a { display: inline-flex; align-items: center; min-height: 36px; color: #DADDCB; text-decoration: none; }
.footer-privacy-contact a:hover { color: #FFFEFA; text-decoration: underline; text-underline-offset: 3px; }
.footer-privacy-contact a:focus-visible { outline: 2px solid #D3B46A; outline-offset: 3px; }

.privacy-page { margin: 0; background: #FAF9F4; color: #193027; font-family: system-ui, sans-serif; }
.privacy-document { max-width: 760px; margin: 0 auto; padding: 40px 24px 72px; font-size: 15px; line-height: 1.85; overflow-wrap: anywhere; }
.privacy-document header { margin: 36px 0; }
.privacy-document h1 { font: 400 clamp(34px,6vw,48px)/1.15 Georgia, serif; margin: 0 0 16px; }
.privacy-document h2 { font: 400 26px/1.3 Georgia, serif; margin: 30px 0 12px; }
.privacy-document p { margin: 0 0 12px; }
.privacy-document a { color: #365742; text-decoration: underline; text-underline-offset: 3px; }
.privacy-document a:focus-visible { outline: 2px solid #8B692B; outline-offset: 3px; }
