/* Componentes y proporciones originales de Comal, conservados sin cambios. */
@import url('./assets/familia-comal.css');

/* Vestido Chiflas: acento aprobado y familias tipográficas de la marca. */
:root {
  --corpus-accent:#E1147E;
  --corpus-accent-hover:var(--corpus-accent);
  --corpus-accent-text:var(--corpus-accent);
  --corpus-face-display:'Sentient',Georgia,serif;
  --corpus-face-headings:'Sentient',Georgia,serif;
  --corpus-face-body:'Nunito Sans',Arial,sans-serif;
  --corpus-face-meta:'Nunito Sans',Arial,sans-serif;
}
html[data-theme='dark'] {--corpus-bg:#17120F;--corpus-surface:#201813;--corpus-white:#2A201A;--corpus-panel:#100C09;--corpus-line:#4A392E;--corpus-accent:#FF5CB0;--corpus-accent-hover:var(--corpus-accent);--corpus-accent-text:var(--corpus-accent);--corpus-on-accent:#221C18;}
/* La navegación conserva su papel claro en ambos temas. */
.site-header,.mobile-menu {--bg:#F4EDE1;--surface:#FBF6EC;--surface-2:#FFFFFF;--text:#221C18;--muted:#665B52;--line:#DFD1BC;--control-line:#B4A38D;--accent:#E1147E;--accent-hover:var(--accent);--accent-text:var(--accent);--on-accent:#FFFFFF;--light:#FFFFFF;--shade:#221C18;--nav-activo-bg:var(--accent);--nav-activo-ink:var(--on-accent);--btn-1-hover-ink:var(--on-accent);color:var(--text);}
html[data-theme='dark'] .site-header::before {background:rgb(244 237 225 / .9);}
h1,h2,h3,h4,blockquote,.hero-seal b,.footer-slogan {font-weight:500;}
.brand [data-marca] {display:block;line-height:0;}
.brand [data-marca] img {width:155px;height:auto;}
.brand-inverse {display:none!important;}
.hero-copy h1>span {display:block;}
.hero-seal b {font-size:22px;font-weight:700;font-style:italic;}
.hero-seal small {letter-spacing:.04em;}
/* La foto familiar conserva el encuadre horizontal dentro del marco Comal. */
.story-photo.people-photo {aspect-ratio:4/3;max-height:none;}
.people-photo img {object-position:50% 50%;}
/* El breakout no propaga el ancho de una scrollbar vertical al documento. */
#menus {overflow-x:clip;}
.gallery-viewport {--gallery-visible:2;--gallery-card:40vw;position:relative;width:100vw;margin-inline:calc(50% - 50vw);overflow:hidden;padding-block:4px 14px;touch-action:pan-y pinch-zoom;cursor:grab;user-select:none;-webkit-user-select:none;}
.gallery.gallery-track {display:flex;gap:18px;transition:transform .55s cubic-bezier(.22,.61,.36,1);will-change:transform;}
.gallery-viewport.is-dragging {cursor:grabbing;}
.gallery-viewport.is-dragging .gallery-track {transition:none;}
.gallery-track img {-webkit-user-drag:none;}
.gallery-track>figure {flex:0 0 var(--gallery-card);min-width:0;aspect-ratio:3/2;}
.gallery-controls {display:flex;align-items:center;gap:12px;margin-top:20px;}
[data-gallery-status] {margin:0 auto 0 0;color:var(--muted);font:500 12px/1.6 var(--font-meta);font-variant-numeric:tabular-nums;white-space:nowrap;}
@media(max-width:700px) {.gallery-viewport {--gallery-visible:1;--gallery-card:80vw;}}
@media(prefers-reduced-motion:reduce) {.gallery.gallery-track {transition:none;}}
.visit-photo img {object-position:50% 50%;}
.destination-pending {font:400 13px/1.7 var(--font-meta);color:var(--muted);margin-top:18px;}
.feature-card .destination-pending {margin-bottom:0;}
.menu-entry {display:grid;min-width:0;}
.services-head .eyebrow {margin-bottom:18px;}
.visit-facts dt {font-weight:700;}
.loyalty-card>p {color:var(--muted);margin-top:18px;}
.loyalty-card .button {margin-top:24px;}
.source-note {font-size:12px!important;line-height:1.6!important;}
.faq-list {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;align-items:start;}
.faq-list details {padding:8px 0;border-top:1px solid var(--line);text-align:left;}
.faq-list summary {display:flex;align-items:center;justify-content:flex-start;position:relative;padding-inline:0 28px;min-height:60px;cursor:pointer;list-style:none;font-weight:600;text-align:left;}
.faq-list summary::-webkit-details-marker {display:none;}
.faq-list summary::after {content:'+';position:absolute;right:0;font:400 28px/1 var(--font-sans);}
.faq-list details[open] summary::after {content:'−';}
.faq-list details>p {padding-bottom:20px;color:var(--muted);font-size:15px;text-align:left;}
.footer-contact {display:inline-flex;align-items:center;min-height:44px;font-size:16px;}
.footer-bottom-links {display:flex;align-items:center;gap:24px;}
.footer-bottom-links>a {min-height:44px;display:inline-flex;align-items:center;}
[data-cursor] {mix-blend-mode:difference;}
.cursor-ring {width:48px;height:48px;border:0;border-radius:0;color:var(--accent);opacity:.5;}
/* La tinta complementaria devuelve rosa sobre blanco con la mezcla DMX. */
html[data-theme='light'] .cursor-ring {filter:invert(1);}
.faq-list .text-link {display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--accent-text);}
.privacy-main {max-width:800px;margin:64px auto;padding-inline:24px;}
.privacy-main h1 {font-size:clamp(42px,7vw,64px);margin:18px 0 30px;}
.privacy-main h2 {font-size:32px;margin:32px 0 16px;}
.privacy-main p {margin-block:16px;color:var(--muted);}
.privacy-header .header-tools {margin-left:auto;}
.privacy-page {--fam-sticky-height:0px;}
@media(max-width:1099px) {.hero-seal b {font-size:19px;}}
@media(max-width:700px) {.faq-list {grid-template-columns:minmax(0,1fr);}.gallery p {font-size:13px;}.footer-bottom-links {flex-wrap:wrap;gap:20px;}}
@media(max-width:360px) {.header-inner {width:calc(100% - 24px);gap:8px;}.brand [data-marca] img {width:150px;}}
@media(max-width:420px) {.quote-band blockquote {font-size:clamp(26px,8vw,32px);}}

/* Un solo acento sólido; los fondos de chips conservan su tinta suave. */
.language-trigger {min-width:44px;min-height:44px;padding:8px;border:0;border-radius:var(--fam-pill);background:transparent;font:500 12px/1 var(--font-sans);}
.language-trigger:hover {background:color-mix(in srgb,var(--accent) 10%,transparent);}
.chip {background:color-mix(in srgb,var(--accent) 10%,var(--surface-2));color:var(--text);}
.header-nav [data-nav] a:hover {background:var(--accent);color:var(--on-accent);}
.button:not(.secondary):hover {transform:translateY(-2px);}
.hero-anchor {height:0;}
@media(min-width:1100px) {
  .hero-stage {position:sticky;top:var(--fam-nav);}
  .hero-split {height:calc(100svh - var(--chiflas-chrome,108px) - var(--fam-ribbon));min-height:0;}
  .hero-copy {padding-block:clamp(24px,4.8svh,48px);}
  .hero-copy h1 {font-size:clamp(48px,min(7.1vw,10.6svh),98px);}
  .hero-copy .eyebrow {margin-bottom:clamp(16px,2.8svh,28px);}
  .hero-copy p {margin-block:clamp(16px,3svh,30px);}
  .hero-media img[data-parallax] {height:calc(100% + 24px);top:-12px;}
}
@media(max-width:1099px), (prefers-reduced-motion:reduce) {.hero-stage [data-parallax] {transform:none!important;}}
@media(min-width:1100px) and (max-height:580px) {
  .hero-stage {position:relative;top:auto;}
  .hero-split {height:auto;min-height:calc(100svh - var(--chiflas-chrome,108px) - var(--fam-ribbon));}
  .hero-stage [data-parallax] {transform:none!important;}
}
@media(min-width:1100px) and (min-height:581px) and (max-height:700px) {
  .hero-copy {padding-block:24px;}
  .hero-copy h1 {font-size:clamp(44px,min(7.1vw,9.5svh),66px);}
  .hero-copy .eyebrow {margin-bottom:16px;}
  .hero-copy p {margin-block:16px;}
}

/* La flecha es un enlace extendido sobre la tarjeta completa. */
.menu-open::after {content:'';position:absolute;inset:0;border-radius:var(--fam-radius);}
.feature-card {transition:box-shadow var(--fam-transition) var(--ease-out),border-color var(--fam-transition) var(--ease-out);}
.feature-card:hover,.feature-card:focus-within {border-color:color-mix(in srgb,var(--accent) 50%,transparent);box-shadow:0 16px 32px -24px var(--shade);}
.menu-open:focus-visible {outline:none;}
.menu-open:focus-visible::after {outline:2px solid var(--accent);outline-offset:4px;}

/* Escenas humanas con un overlay suave. */
.service-card {position:relative;overflow:hidden;}
.service-art {aspect-ratio:3/2;position:relative;isolation:isolate;overflow:hidden;margin:-36px -36px 28px;background:var(--panel);border-bottom:1px solid var(--line);}
.service-art img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.service-art::after {content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgb(0 0 0 / .12) 45%,rgb(0 0 0 / .45));pointer-events:none;}
.service-card h3 {margin-top:0;}
@media(max-width:1099px) {.service-art {margin:-28px -28px 24px;}}

/* Diálogos nativos, papel cálido y velo café esmerilado. */
html[data-menu-abierto],html[data-dialog-abierto] {overflow:clip;}
.chiflas-dialog {position:fixed;inset:0;margin:auto;width:min(600px,calc(100% - 40px));height:fit-content;max-width:none;max-height:calc(100dvh - 40px);padding:0;border:1px solid var(--line);border-radius:var(--fam-radius);background:var(--surface);color:var(--text);overflow:hidden;box-shadow:0 32px 100px #221c1870;}
.chiflas-dialog::backdrop {background:rgb(34 28 24 / .62);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);}
.chiflas-dialog[open] {animation:dialog-in 240ms var(--ease-out);}
.dialog-panel {padding:44px 40px;max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain;}
.dialog-close {position:absolute;top:18px;right:18px;z-index:2;background:var(--surface);}
.dialog-mark {width:106px;height:auto;margin:0 auto 28px;}
.upcoming-panel {text-align:center;}
.dialog-panel .eyebrow {margin-bottom:18px;}
.dialog-panel h2 {font-size:clamp(32px,3.5vw,44px);line-height:1.12;}
.dialog-panel>p {color:var(--muted);margin-top:24px;font-size:16px;}
.upcoming-panel .button {margin-top:30px;}
.staff-form {margin-top:24px;display:grid;gap:20px;}
.staff-error {margin:0;color:var(--accent-text);}
.language-dialog {width:min(500px,calc(100% - 40px));}
.language-panel {text-align:center;}
.language-options {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:32px;}
.language-option {position:relative;display:grid;gap:12px;min-height:120px;padding:24px 18px;border:1px solid var(--line);border-radius:var(--fam-radius);background:var(--surface-2);text-align:left;font-size:18px;font-weight:600;}
.language-code {font:500 12px/1.6 var(--font-meta);letter-spacing:.12em;color:var(--muted);}
.language-option:hover,.language-option[aria-pressed='true'] {border-color:color-mix(in srgb,var(--accent) 50%,transparent);background:color-mix(in srgb,var(--accent) 8%,var(--surface-2));}
.language-option[aria-pressed='true']::after {content:'✓';position:absolute;top:20px;right:18px;color:var(--accent-text);font-size:16px;}
.map-dialog {width:min(920px,calc(100% - 40px));}
html[data-theme='light'] .map-dialog {--surface:#FFFFFF;--surface-2:#FFFFFF;background:#FFFFFF;}
.map-dialog h2 {padding-right:28px;}
.map-window {margin-top:26px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#FFFFFF;}
.map-window iframe {display:block;width:100%;height:300px;border:0;}
html .map-dialog .map-window iframe {pointer-events:auto;}
.map-details {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;margin:22px 0 26px;}
.map-details p {color:var(--muted);font-size:14px;}
.map-details strong {color:var(--text);font-weight:600;}
@keyframes dialog-in {from {opacity:0;transform:translateY(12px);}to {opacity:1;transform:none;}}
@media(max-width:700px) {
  .chiflas-dialog {width:calc(100% - 24px);max-height:calc(100dvh - 24px);}
  .dialog-panel {padding:72px 24px 28px;max-height:calc(100dvh - 24px);}
  .dialog-close {top:14px;right:14px;}
  .dialog-mark {width:90px;margin-bottom:24px;}
  .map-window iframe {height:230px;}
  .map-details {grid-template-columns:1fr;gap:16px;}
  .map-dialog h2 {padding-right:0;}
  .map-dialog .actions .button {width:100%;}
}
@media(prefers-reduced-motion:reduce) {.chiflas-dialog[open] {animation:none;}.button:not(.secondary):hover {transform:none;}.feature-card {transition:none;}}
