@font-face {
  font-family: 'DM Sans'; src: url('/shared/fonts/DMSans-Variable-latin.woff2?v=6fade13e23') format('woff2');
  font-style: normal; font-weight: 100 900; font-display: swap;
}
@font-face {
  font-family: 'Instrument Serif'; src: url('/shared/fonts/InstrumentSerif-Italic-latin.woff2?v=7a228fe58c') format('woff2');
  font-style: italic; font-weight: 400; font-display: swap;
}
:root {
  color-scheme: dark;
  --plum: #191520; --cream: #f4edf7; --muted: #c1b1cb; --rose: #edc0d1;
  --line: #c293ac33; --surface: #30212e;
  font-family: 'DM Sans', sans-serif; color: var(--cream); background: var(--plum);
  font-synthesis: none; -webkit-font-smoothing: antialiased;
}
* { box-sizing: border-box; }
body { margin: 0; }
a { color: inherit; text-decoration: none; -webkit-tap-highlight-color: transparent; }
svg { display: block; }
button, a { touch-action: manipulation; }
a:focus-visible { outline: 2px solid #edc0d1; outline-offset: 4px; }
h1, h2 { margin: 0; font-weight: 400; }
.page-width { width: min(1200px, calc(100% - 112px)); margin-inline: auto; }
.skip-link { position: fixed; top: -100px; left: 20px; padding: 16px; background: var(--cream); color: var(--plum); z-index: 10; }
.skip-link:focus { top: 16px; }
.site-header { min-height: 110px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; justify-content: center; width: 174px; height: 48px; overflow: hidden; }
.brand img { width: calc(174px * 1.425); height: calc(174px * .32); max-width: none; object-fit: cover; }
nav { display: flex; gap: 30px; }
nav a { display: flex; align-items: center; min-height: 44px; font-size: 13px; }
nav a:hover { color: var(--rose); }
.hero { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; min-height: 490px; gap: 30px; padding-block: 48px 44px; }
.status-slot { min-height: 46px; margin-bottom: 17px; }
.chrome {
  border: 1px solid transparent;
  background: linear-gradient(var(--surface), var(--surface)) padding-box,
    linear-gradient(125deg, #ffffffcc, #ffffff1a 35%, #ffffff99 74%, #ffffff1a) border-box;
  box-shadow: inset 0 1px 0 #ffffff26, inset 0 -1px 0 #0004;
}
.open-status { align-items: center; gap: 9px; width: fit-content; min-height: 34px; padding: 7px 13px; border-radius: 30px; font-size: 12px; font-weight: 500; }
.open-status:not([hidden]) { display: flex; }
.status-dot { width: 6px; height: 6px; border-radius: 50%; background: #a595a1; flex-shrink: 0; }
.open-status[data-open='true'] .status-dot { background: #bdd5a0; box-shadow: 0 0 9px #bdd5a066; animation: breathe 3s ease-in-out infinite; }
@keyframes breathe { 50% { opacity: .55; } }
h1 { font: italic 400 clamp(76px, 8.8vw, 126px)/.97 'Instrument Serif', serif; letter-spacing: -.045em; margin-left: -5px; }
.title-dot { color: var(--rose); }
.identity { font-size: 17px; margin-top: 25px; letter-spacing: -.025em; }
.place { font-size: 12px; color: var(--muted); margin-top: 10px; }
.rubros { list-style: none; margin: 8px 0 0; padding: 0; font-size: 11px; color: var(--muted); }
.rubros li { display: inline-block; }
.rubros li + li::before { content: '·'; margin: 0 6px; }
.button { display: inline-flex; align-items: center; justify-content: space-between; min-height: 58px; border-radius: 40px; padding: 15px 24px; gap: 14px; font-size: 15px; font-weight: 550; }
.button-primary { --surface: #edc0d1; color: #38222f; min-width: 200px; margin-top: 35px; }
.button svg, .social-link svg, .query-glass svg { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.arrow { font-size: 21px; line-height: 1; font-family: 'DM Sans', sans-serif; }
.button .arrow { margin-left: auto; }
.button:hover { --surface: #f6d2df; }
.membership { position: relative; display: grid; place-items: center; min-height: 330px; perspective: 1200px; }
.card-orbit { position: absolute; inset: 50px -15px 30px; border: 1px solid var(--line); border-radius: 50%; transform: rotate(-22deg); z-index: -1; }
.member-card {
  --rx: 0deg; --ry: 0deg; --shine-x: 56%; --shine-y: 28%;
  position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column;
  width: min(100%, 420px); aspect-ratio: 1.586; border-radius: 19px; padding: 27px 30px;
  color: #422632; border: 1px solid #efcdd3;
  background: linear-gradient(135deg, #d3a3b6, #e7becc 50%, #ce9aad);
  box-shadow: inset 0 1px 1px #fff4edcc, inset 0 -1px 1px #74485944,
    1px 2px 0 #a37085, 2px 4px 0 #704155, 0 25px 44px -28px #0009;
  transform: rotateZ(-8deg) rotateX(calc(9deg + var(--rx))) rotateY(calc(-16deg + var(--ry)));
  transition: transform .65s cubic-bezier(.22, 1, .36, 1);
  touch-action: pan-y pinch-zoom;
}
.member-card::before { content: ''; position: absolute; inset: 5px; border: 1px solid #fff2e870; border-radius: 15px; pointer-events: none; }
.member-card::after { content: ''; position: absolute; inset: 0; z-index: -1; opacity: .6; pointer-events: none; background: repeating-linear-gradient(115deg, #fff1 0 1px, transparent 1px 3px), repeating-linear-gradient(25deg, #00000003 0 1px, transparent 1px 4px); }
.card-reflection { position: absolute; z-index: -1; inset: 0; background: radial-gradient(ellipse 62% 95% at var(--shine-x) var(--shine-y), #fff9efcc, transparent 70%); mix-blend-mode: screen; opacity: .8; }
.card-top { display: flex; justify-content: space-between; align-items: center; }
.card-brand { font: italic 400 30px 'Instrument Serif', serif; }
.card-symbol { font-size: 32px; }
.card-title { margin-top: auto; padding-top: 20px; font-size: 28px; font-weight: 450; letter-spacing: -.04em; }
.card-bottom { display: flex; justify-content: space-between; align-items: center; margin-top: 17px; font-size: 12px; }
.hours-section { border-block: 1px solid var(--line); padding: 27px 0 30px; }
.section-title { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
h2 { font-size: 22px; letter-spacing: -.04em; }
.hours-legend { font-size: 11px; color: var(--muted); }
#week-hours { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); list-style: none; padding: 0; margin: 23px 0 0; gap: 22px; }
#week-hours li { display: grid; align-content: start; gap: 9px; font-size: 12px; color: var(--muted); }
.day-name { display: flex; align-items: center; min-height: 20px; gap: 7px; }
[aria-current='date'] .day-name { color: var(--cream); font-weight: 650; }
[aria-current='date'] .day-name::after { content: 'HOY'; font-size: 8px; letter-spacing: .06em; color: var(--rose); }
.day-track { position: relative; height: 4px; border-radius: 6px; background: #ffffff0d; overflow: hidden; }
.day-track i { position: absolute; height: 100%; left: var(--start); width: var(--length); background: #9c788c; border-radius: 6px; }
[aria-current='date'] .day-track i { background: var(--rose); }
.day-time { white-space: normal; overflow-wrap: anywhere; font-size: 11px; }
.day-note { font-size: 10px; line-height: 1.4; min-height: 14px; }
.objects-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 36px; }
.object { position: relative; isolation: isolate; overflow: hidden; min-height: 345px; border-radius: 7px; background: #30232e; transition: background .2s; }
.object:hover .arrow { transform: translate(2px, -2px); }
.object-heading { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; padding: 25px 26px; }
.object .arrow { transition: transform .2s; }
.offer-object { background: #382933; }
.hand-drawing[hidden] { display: none; }
.hand-drawing { display: block; width: 92%; height: 260px; margin: -13px auto 0; object-fit: contain; filter: none; }
.map-label { position: absolute; bottom: 19px; width: 100%; text-align: center; font-size: 12px; color: var(--muted); }
.social-row { display: flex; justify-content: center; gap: 14px; padding-block: 36px 48px; }
.social-link { display: flex; align-items: center; justify-content: space-between; min-height: 48px; gap: 18px; padding: 12px 20px; border-radius: 30px; font-size: 12px; }
.social-link svg { width: 19px; height: 19px; }
.site-footer { border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; padding-block: 21px 30px; }
.site-footer > span { font: italic 400 28px 'Instrument Serif', serif; }
.team-access { display: flex; gap: 12px; align-items: center; min-height: 44px; font-size: 11px; color: var(--muted); }
.team-access .arrow { font-size: 15px; }
@media (max-width: 900px) {
  .page-width { width: calc(100% - 64px); }
  .hero { grid-template-columns: 1fr 1fr; gap: 20px; min-height: 420px; }
  h1 { font-size: 80px; }
  .identity { font-size: 14px; }
  /* Dos líneas de tres a propósito: si la fila se corta sola, el punto queda colgando al principio de la segunda. */
  .rubros { display: flex; flex-wrap: wrap; row-gap: 2px; }
  .rubros::after { content: ''; flex-basis: 100%; order: 1; }
  .rubros li:nth-child(n+4) { order: 2; }
  .rubros li:nth-child(4)::before { content: none; }
  .member-card { padding: 23px; }
  .card-title { font-size: 24px; }
  .card-orbit { inset: 60px 20px 45px; }
  .objects-grid { gap: 12px; }
  .object { min-height: 290px; }
  .object-heading { padding: 22px 19px; }
}
@media (max-width: 650px) {
  .page-width { width: calc(100% - 44px); }
  .site-header { min-height: 82px; }
  .brand { width: 125px; }
  .brand img { width: calc(125px * 1.425); height: calc(125px * .32); }
  nav { gap: 17px; }
  nav a { font-size: 11px; }
  .hero { grid-template-columns: 1fr; gap: 16px; padding-block: 29px 27px; }
  .hero-copy { text-align: center; }
  .status-slot { display: flex; justify-content: center; margin-bottom: 16px; min-height: 36px; }
  h1 { font-size: clamp(74px, 21vw, 112px); }
  .identity { font-size: 14px; margin-top: 18px; }
  .place { margin-top: 7px; }
  .rubros { justify-content: center; margin-top: 7px; }
  .button-primary { margin-top: 25px; min-width: 218px; min-height: 54px; }
  .membership { min-height: 267px; padding: 20px 14px 12px; }
  .member-card { max-width: 340px; padding: 24px; }
  .card-top .card-brand { font-size: 28px; }
  .card-title { font-size: 27px; }
  .card-bottom { margin-top: 13px; }
  .card-orbit { inset: 35px 18px; }
  .hours-section { padding-block: 24px; }
  h2 { font-size: 21px; }
  .hours-legend { font-size: 10px; }
  #week-hours { gap: 8px; margin-top: 20px; }
  #week-hours li { gap: 8px; font-size: 10px; }
  .day-name { flex-direction: column; align-items: flex-start; gap: 3px; min-height: 28px; }
  [aria-current='date'] .day-name::after { font-size: 7px; }
  .day-time { font-size: 9px; letter-spacing: -.04em; }
  .day-note { font-size: 8px; overflow-wrap: anywhere; }
  .objects-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 26px; }
  .object-heading { padding: 18px 16px; }
  .object h2 { font-size: 20px; }
  .object { min-height: 260px; }
  .map-object { grid-column: 1 / -1; min-height: 248px; }
  .map-label { text-align: left; left: 17px; bottom: 24px; width: 140px; font-size: 10px; }
  .social-row { padding-block: 27px 32px; gap: 10px; }
  .social-link { padding: 12px 15px; gap: 12px; }
  .site-footer { padding-block: 14px 20px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Correcciones de Juan: frase principal, trazo artesanal y lectura del horario. */
h1.hero-headline { font: 450 clamp(36px, 4vw, 58px)/1.14 'DM Sans', sans-serif; letter-spacing: -.055em; margin-left: -2px; }
.hero-headline > span, .hero-headline > em { display: block; }
.hero-headline > em { font: italic 400 1.65em/.99 'Instrument Serif', serif; letter-spacing: -.03em; margin-block: 1px 8px; color: var(--rose); }
.hero-headline .headline-end { font-size: .86em; }
.hero-headline .headline-end em { font: italic 400 1.26em 'Instrument Serif', serif; }
.hero { min-height: 570px; }
.button-primary { min-width: 232px; }
.button .whatsapp-icon, .social-link .whatsapp-icon { fill: currentColor; stroke: none; width: 21px; height: 21px; flex-shrink: 0; }
#week-hours { gap: 9px; }
#week-hours li { padding: 12px 11px 10px; border-radius: 11px; border: 1px solid var(--line); background: #ffffff03; gap: 12px; }
#week-hours li[aria-current='date'] { background: #cda5d011; border-color: #cda5d066; }
.day-name { font-size: 13px; color: var(--cream); }
.day-track { height: 5px; }
.day-time { font-size: 14px; line-height: 1.3; color: var(--cream); font-weight: 500; }
.day-note { font-size: 10px; min-height: 0; }
.day-note:empty { display: none; }
.hours-legend { font-size: 12px; }
.object { min-height: 360px; border-radius: 18px; background: #352638; }
.object-heading { padding: 25px 26px 10px; }
.map-object .hand-drawing { margin-top: -8px; height: 265px; }
@media (max-width: 900px) {
  h1.hero-headline { font-size: 42px; }
  .hand-drawing { height: 225px; }
  .object { min-height: 305px; }
  .map-object .hand-drawing { height: 220px; }
  #week-hours li { padding: 11px 7px; }
  .day-time { font-size: 12px; }
}
@media (max-width: 650px) {
  .hero { min-height: 0; }
  h1.hero-headline { font-size: clamp(34px, 10.8vw, 48px); line-height: 1.17; }
  .hero-headline > em { font-size: 1.65em; margin-block: 0 5px; }
  .hero-headline .headline-end { font-size: .92em; }
  .identity { font-size: 13px; }
  .status-slot { margin-bottom: 22px; }
  #week-hours { gap: 4px; }
  #week-hours li { padding: 10px 3px; gap: 10px; border-radius: 8px; }
  .day-name { font-size: 11px; }
  .day-time { font-size: 10.5px; letter-spacing: -.03em; }
  [aria-current='date'] .day-name::after { font-size: 8px; }
  .hours-legend { font-size: 11px; }
  .object { min-height: 248px; }
  .object-heading { padding: 18px 17px 4px; }
  .hand-drawing { width: 100%; height: 190px; margin-top: -2px; }
  .map-object { min-height: 270px; }
  .map-object .hand-drawing { width: 85%; height: 220px; margin: -11px auto 0; }
  .map-label { left: 0; bottom: 15px; width: 100%; text-align: center; font-size: 11px; }
}
