/* Álbumes y visor compartido. La estructura y portada originales se conservan. */
.brand, .header .brand { font-weight: 700; }
button, .text-link, .preview-link { font-weight: 600; }
.header nav a { font-size: 13px; letter-spacing: .06em; }
.amenity h3 { font-size: clamp(18px,1.8vw,24px); font-weight: 600; }
.hero-views { display: block; width: fit-content; margin: 22px auto 0; font-size: 14px; font-weight: 600; padding: 6px 0; border-bottom: 1px solid #f7f4ee88; }
.hero-views:hover { border-color: var(--cream); }
.featured-photo { display:block; padding:0; border:0; background:transparent; width:100%; height:100%; }
.featured-photo:focus-visible { outline-offset: -3px; }
.contact { grid-template-columns:1fr 1fr; align-items:center; gap:7%; background:#eee6dc; color:var(--ink); border-top:1px solid var(--line); }
.contact h2, .contact .eyebrow { color:var(--brick); }
.contact .title-accent { color:#8c7160; }
.contact h2 { font-size:clamp(30px,3.5vw,46px); }
.contact-location { font-size:18px; font-weight:600; }
.contact-list { margin:30px 0; }
.contact-list > div { display:block; padding:14px 0; border-bottom:1px solid #773e3226; }
.contact-list dt { font:600 11px/1.5 var(--font-body); text-transform:uppercase; letter-spacing:.1em; color:var(--brick); margin-bottom:8px; }
.contact-list dd { margin:0; text-align:left; font-size:15px; font-weight:500; overflow-wrap:anywhere; }
.contact-list a:hover { color:var(--brick); text-decoration:underline; text-underline-offset:5px; }
.contact-directions { display:inline-flex; gap:40px; border:1px solid var(--brick); background:var(--brick); color:var(--cream); padding:13px 22px; font-size:14px; font-weight:600; }
.contact-directions:hover { background:var(--terracotta); }
.contact-disclaimer { font-size:12px; line-height:1.7; max-width:480px; margin-top:24px; color:var(--muted); }
.contact-map { border:1px solid #773e3288; padding:7px; min-width:0; }
.contact-map iframe { width:100%; height:470px; display:block; border:0; background:var(--sand); }
.contact-map figcaption { padding:12px 8px 6px; font-size:11px; color:var(--muted); }
.lightbox { border:1px solid #773e3288; overscroll-behavior:contain; padding:20px; }
.lightbox-stage { overflow:auto; height:min(57dvh,650px); background:#e8e0d5; touch-action:pan-y pinch-zoom; }
.lightbox-stage img { width:100%; max-width:none; height:100%; object-fit:contain; }
.lightbox-stage.is-zoomed { touch-action:pan-x pan-y pinch-zoom; }
.lightbox-stage.is-zoomed img { width:200%; height:200%; object-fit:contain; }
.lightbox figcaption { font-size:14px; line-height:1.5; }
.lightbox-zoom { padding:8px 14px; background:transparent; border:1px solid var(--line); font-size:13px; min-height:44px; }
.lightbox-departments { display:flex; width:fit-content; margin:14px auto 0; background:transparent; border:0; border-bottom:1px solid; font-size:13px; padding:5px 0; }
.lightbox-close { font-weight:600; min-height:44px; }
body.modal-open { position:fixed; left:0; right:0; overflow:hidden; }
.departments-page { --cream:#e9ded1; }
.departments-page .header:has(.is-open) { background:var(--cream); color:var(--brick); }
.intro-interior { padding:6px; background:transparent; border:1px solid #773e3288; text-align:left; }
.intro-interior img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.intro-interior span { display:block; font-size:12px; padding:12px; color:var(--brick); }
.category-empty a { font-weight:600; color:var(--brick); text-decoration:underline; text-underline-offset:4px; }
.category-empty { min-height:220px; }
.department-selector a { overflow-wrap:anywhere; }
@media(max-width:700px) {
  .contact {grid-template-columns:1fr; gap:36px;}
  .contact-map iframe {height:330px;}
  .lightbox {padding:12px; max-height:94dvh;}
  .lightbox-stage {height:49dvh;}
  .lightbox-controls {gap:10px;}
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important;} }
