/* Trilogy Salon — hoja de estilos
   Marca: dorado #DEC35D sobre #1E130F (del logo original).
   El tema de temporada cambia solo --season y la imagen de portada. */

:root {
  --ink: #1E130F;
  --ink-2: #2A1C16;
  --gold: #DEC35D;
  --gold-deep: #7E631E;
  --ivory: #FBF6EC;
  --paper: #F4ECDD;
  --blush: #EFD9D2;
  --text: #2B211C;
  --muted: #6E6158;
  --line: rgba(30, 19, 15, .14);
  --line-dark: rgba(222, 195, 93, .22);
  --season: #7B2233;
  --serif: "Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
  --sans: "Jost", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  --script: "Mrs Saint Delafield", "Snell Roundhand", cursive;
  --wrap: 1240px;
  --pad: clamp(20px, 5vw, 64px);
}
[data-season="spring"]   { --season: #B85C7A; --season-soft: #F8E7EB; }
[data-season="summer"]   { --season: #C8623F; --season-soft: #FBEADF; }
[data-season="fall"]     { --season: #7B2233; --season-soft: #F3E6E2; }
[data-season="holidays"] { --season: #1F4A3A; --season-soft: #E8EFE8; }
/* Tema de temporada "completo" (clase st en <html>): por ahora solo se activa en la dirección de prueba con ?season=spring|summer|fall|holidays,
   para que Mara lo vea antes de decidir. Tiñe la cinta de credenciales, la palabra manuscrita de los títulos, las etiquetas y las franjas suaves. */
.st .strip { background: var(--season); color: #FBF6EC; border-top-color: transparent; }
.st h1 em, .st h2 em { color: var(--season); }
.st .eyebrow, .st .sp-when, .st .bcard .bdate { color: var(--season); }
.st .specials, .st .join, .st .bmore:not(.home) { background: var(--season-soft); }
.st .sp { border-color: var(--season); }

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { font-family: var(--sans); font-weight: 300; font-size: 17px; line-height: 1.65; color: var(--text); background: var(--ivory); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--pad); }
.skip { position: absolute; left: -999px; }
.skip:focus { left: 16px; top: 16px; background: var(--gold); color: var(--ink); padding: 10px 16px; z-index: 100; }

.eyebrow { font-size: 12px; letter-spacing: .32em; text-transform: uppercase; font-weight: 500; color: var(--gold-deep); }
.on-dark .eyebrow { color: var(--gold); }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: 1.04; letter-spacing: -.01em; }
h2 { font-size: clamp(38px, 5.4vw, 76px); }
h2 em, h1 em { font-style: italic; }
.lede { font-size: clamp(17px, 1.5vw, 20px); color: var(--muted); max-width: 34em; }
.on-dark .lede { color: #CFC3B4; }

/* Botones */
.btn { display: inline-flex; align-items: center; gap: 12px; padding: 16px 28px; font-size: 12.5px; letter-spacing: .24em; text-transform: uppercase; font-weight: 500; border: 1px solid var(--ink); transition: background .25s, color .25s, border-color .25s; }
.btn:after { content: ""; width: 18px; height: 1px; background: currentColor; transition: width .25s; }
.btn:hover:after { width: 30px; }
.btn.solid { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.btn.solid:hover { background: #EBD587; border-color: #EBD587; }
.btn.ghost { border-color: rgba(222, 195, 93, .55); color: var(--gold); }
.btn.ghost:hover { background: var(--gold); color: var(--ink); }
.btn.dark:hover { background: var(--ink); color: var(--ivory); }
.link { font-size: 12.5px; letter-spacing: .22em; text-transform: uppercase; font-weight: 500; border-bottom: 1px solid currentColor; padding-bottom: 4px; }

/* Cabecera */
.top { position: fixed; inset: 0 0 auto 0; z-index: 50; color: var(--ivory); transition: background .35s, box-shadow .35s; }
.top .wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 22px; padding-bottom: 22px; transition: padding .35s; }
.top .logo img { height: 62px; width: auto; transition: height .35s; }
.top.scrolled, .top.open { background: rgba(30, 19, 15, .96); box-shadow: 0 1px 0 var(--line-dark); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.top.scrolled .wrap { padding-top: 10px; padding-bottom: 10px; }
.top.scrolled .logo img { height: 46px; }
section[id] { scroll-margin-top: 66px; }
.nav { display: flex; align-items: center; gap: 34px; font-size: 12.5px; letter-spacing: .22em; text-transform: uppercase; font-weight: 400; }
.nav a { opacity: .86; transition: opacity .2s, color .2s; white-space: nowrap; }
.top .logo { flex: none; }
/* Con siete enlaces (se añadió "Únete al equipo") el menú se aprieta en pantallas medianas */
@media (max-width: 1500px) { .nav { gap: 24px; letter-spacing: .16em; } }
@media (max-width: 1280px) { .nav { gap: 16px; font-size: 11.5px; letter-spacing: .12em; } .top .logo img { height: 52px; } }
.nav a:hover { opacity: 1; color: var(--gold); }
.nav .lang { opacity: 1; border: 1px solid rgba(251, 246, 236, .35); padding: 7px 12px; letter-spacing: .18em; }
.nav .book { opacity: 1; color: var(--gold); border-bottom: 1px solid var(--gold); padding-bottom: 3px; }
.burger { display: none; width: 44px; height: 44px; margin-right: -10px; background: none; border: 0; cursor: pointer; position: relative; }
.burger span { position: absolute; left: 10px; right: 10px; height: 1.5px; background: var(--gold); transition: transform .3s, top .3s; }
.burger span:first-child { top: 17px; }
.burger span:last-child { top: 26px; }
.top.open .burger span:first-child { top: 21.5px; transform: rotate(45deg); }
.top.open .burger span:last-child { top: 21.5px; transform: rotate(-45deg); }
.menu { display: none; }
.top .nav .book { transition: background .3s, color .3s, padding .3s, border-color .3s; }
.top.scrolled .nav .book { background: var(--gold); color: var(--ink); border-bottom-color: transparent; padding: 10px 18px; font-weight: 500; }
.top.scrolled .nav .book:hover { background: #EBD587; color: var(--ink); }

/* Barra de reserva flotante: solo en móvil */
.bookbar { display: none; }

/* Portada */
.hero { position: relative; background: var(--ink); color: var(--ivory); overflow: hidden; }
.hero .wrap { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(24px, 5vw, 80px); align-items: end; min-height: min(100vh, 900px); padding-top: 150px; padding-bottom: 0; }
.hero-copy { padding-bottom: clamp(48px, 8vw, 110px); }
.hero .hey { font-family: var(--script); font-size: clamp(54px, 6.4vw, 96px); line-height: .8; color: var(--gold); margin: 26px 0 10px -6px; }
.hero h1 { font-size: clamp(44px, 5.7vw, 88px); }
.hero h1 em { color: var(--gold); }
.hero .lede { margin: 30px 0 40px; }
.cta { display: flex; flex-wrap: wrap; gap: 14px; }
.hero-photo { position: relative; align-self: stretch; min-height: 520px; }
.hero-photo picture, .hero-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.hero-photo:before { content: ""; position: absolute; inset: 28px -28px -28px 28px; border: 1px solid var(--line-dark); z-index: 0; }
.hero-photo picture { z-index: 1; }
/* Profundidad en la foto de inicio: sombra, marco desplazado y un leve movimiento (JS en build.py; se apaga con "reducir movimiento") */
.hero-photo picture { overflow: hidden; box-shadow: 0 34px 60px -28px rgba(20, 10, 6, .55), 0 10px 24px -12px rgba(20, 10, 6, .35); transform-origin: 50% 60%; will-change: transform; transition: transform .18s ease-out; }
.hero-photo picture img { transform: scale(1.1) translate3d(var(--px, 0px), var(--py, 0px), 0); will-change: transform; }
.hero-photo .tag { transform: translateZ(0); }
.hero-photo { perspective: 1100px; }
@media (prefers-reduced-motion: reduce) { .hero-photo picture img { transform: none; } .hero-photo picture { transform: none !important; } }
.hero-photo .tag { position: absolute; left: -1px; bottom: 44px; z-index: 2; background: var(--ink); color: var(--gold); font-size: 11px; letter-spacing: .28em; text-transform: uppercase; padding: 12px 18px 12px 0; }

/* Cinta de credenciales */
.strip { background: var(--ink-2); color: var(--gold); border-top: 1px solid var(--line-dark); overflow: hidden; }
.strip ul { display: flex; gap: 0; list-style: none; white-space: nowrap; width: max-content; animation: slide 46s linear infinite; }
.strip li { font-size: 12px; letter-spacing: .3em; text-transform: uppercase; padding: 20px 0; }
.strip li:after { content: "·"; margin: 0 28px; opacity: .6; }
@keyframes slide { to { transform: translateX(-50%); } }

/* Secciones */
section { padding: clamp(72px, 10vw, 150px) 0; }
.head { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-bottom: clamp(36px, 5vw, 72px); }
.head h2 { margin-top: 18px; }
.head .lede { justify-self: end; }

/* Servicios */
.services { border-top: 1px solid var(--line); }
.srv { display: grid; grid-template-columns: 70px 1.1fr 1.4fr auto; gap: 28px; align-items: baseline; padding: 30px 0; border-bottom: 1px solid var(--line); transition: padding .3s, background .3s; }
.srv:hover { padding-left: 14px; background: linear-gradient(90deg, rgba(222, 195, 93, .13), transparent 70%); }
.srv .n { font-family: var(--serif); font-style: italic; font-size: 20px; color: var(--gold-deep); }
.srv h3 { font-size: clamp(26px, 3vw, 40px); }
.srv p { color: var(--muted); font-size: 16px; }
.srv .go { font-size: 11.5px; letter-spacing: .24em; text-transform: uppercase; font-weight: 500; white-space: nowrap; color: var(--season); border-bottom: 1px solid currentColor; padding-bottom: 3px; }

/* Trabajos */
.work { background: var(--paper); }
.grid { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: clamp(12px, 1.6vw, 22px); }
.shot { position: relative; overflow: hidden; background: var(--ink); }
.shot img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.shot:hover img { transform: scale(1.04); }
.shot figcaption { position: absolute; left: 0; bottom: 0; background: var(--ivory); padding: 10px 16px 8px 14px; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; font-weight: 500; }
.shot.tall { grid-row: span 2; }
.shot.tall img { object-position: 50% 30%; }
.shot.sq:before { content: ""; display: block; padding-top: 112%; }
.shot picture, .shot img, .shot video { position: absolute; inset: 0; }
.shot video { width: 100%; height: 100%; object-fit: cover; }
.note { grid-column: span var(--d, 1); display: flex; flex-direction: column; justify-content: center; padding: clamp(24px, 3vw, 46px); border: 1px solid var(--line); }
.note p { font-family: var(--serif); font-size: clamp(20px, 1.9vw, 27px); line-height: 1.25; margin-bottom: 22px; }
.note .link { align-self: flex-start; color: var(--season); }

/* Membresías */
.clubs { background: var(--ink); color: var(--ivory); }
.clubs h2 { color: var(--ivory); }
.clubs h2 em { color: var(--gold); }
.tiers { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); }
.tier { padding: clamp(28px, 3vw, 46px); border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); display: flex; flex-direction: column; }
.tier .name { font-size: 12px; letter-spacing: .3em; text-transform: uppercase; color: var(--gold); font-weight: 500; }
.tier .club { font-family: var(--script); font-size: 62px; line-height: .9; color: var(--gold); margin: 6px 0 2px; }
.tier .price { font-family: var(--serif); font-size: 64px; line-height: 1; margin: 18px 0 4px; }
.tier .price sup { font-size: .42em; vertical-align: top; position: relative; top: .34em; margin-right: 3px; color: var(--gold); }
.tier .price small { font-family: var(--sans); font-size: 12px; letter-spacing: .24em; text-transform: uppercase; color: #BFB2A2; margin-left: 8px; }
.tier ul { list-style: none; margin: 24px 0 30px; flex: 1; }
.tier li { padding: 12px 0; border-top: 1px solid var(--line-dark); color: #E6DCCD; font-size: 16px; }
.tier.vip { background: linear-gradient(160deg, rgba(222, 195, 93, .12), transparent 60%); }
.fine { margin-top: 26px; font-size: 14px; color: #B5A999; }

/* Mara */
.mara .wrap { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(30px, 6vw, 96px); align-items: center; }
.portrait { position: relative; }
.portrait picture { display: block; position: relative; padding-top: 130%; }
.portrait img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
.portrait:after { content: ""; position: absolute; inset: -18px 18px 18px -18px; border: 1px solid var(--gold-deep); opacity: .45; z-index: -1; }
.mara h2 { margin: 18px 0 26px; }
.mara p { max-width: 33em; margin-bottom: 18px; }
.creds { display: flex; flex-wrap: wrap; gap: 10px; margin: 26px 0 0; list-style: none; }
.creds li { font-size: 11.5px; letter-spacing: .22em; text-transform: uppercase; border: 1px solid var(--line); padding: 9px 14px; font-weight: 400; }

/* Equipo */
.team { padding-top: 0; }
.people { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); }
.person { padding: 26px 22px 30px 0; border-bottom: 1px solid var(--line); }
.person b { display: block; font-family: var(--serif); font-weight: 400; font-size: 26px; line-height: 1.1; margin-bottom: 8px; }
.person span { font-size: 14px; color: var(--muted); line-height: 1.45; display: block; }
.person { display: flex; flex-direction: column; }
.person span { flex: 1; }
.person .go { margin-top: 16px; align-self: flex-start; font-size: 11.5px; letter-spacing: .2em; text-transform: uppercase; font-weight: 500; white-space: nowrap; color: var(--season); border-bottom: 1px solid currentColor; padding-bottom: 3px; }

/* Visítanos */
.visit { background: var(--paper); }
.visit .wrap { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 6vw, 96px); align-items: stretch; }
.wall { position: relative; min-height: 560px; }
.wall img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.visit h2 { margin: 18px 0 34px; }
.info { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 34px; }
.info h3 { font-family: var(--sans); font-size: 12px; letter-spacing: .28em; text-transform: uppercase; font-weight: 500; color: var(--gold-deep); margin-bottom: 10px; }
.info p, .info li { font-size: 16.5px; line-height: 1.6; }
.info ul { list-style: none; }
.info li { display: flex; justify-content: space-between; gap: 16px; border-bottom: 1px dotted var(--line); padding: 3px 0; }
.info a { border-bottom: 1px solid var(--line); }
.policy { margin-top: 34px; padding-top: 26px; border-top: 1px solid var(--line); }
.policy h3 { font-family: var(--sans); font-size: 12px; letter-spacing: .28em; text-transform: uppercase; font-weight: 500; color: var(--gold-deep); margin-bottom: 12px; }
.policy ol { list-style: none; counter-reset: p; }
.policy li { counter-increment: p; padding: 7px 0 7px 38px; position: relative; font-size: 15.5px; }
.policy li:before { content: counter(p, decimal-leading-zero); position: absolute; left: 0; font-family: var(--serif); font-style: italic; color: var(--gold-deep); }
.visit .cta { margin-top: 34px; }

/* Reseñas */
.reviews { text-align: center; }
.reviews .score { font-family: var(--serif); font-size: clamp(90px, 14vw, 190px); line-height: 1; margin-top: 26px; }
.reviews .stars { color: var(--gold-deep); letter-spacing: .5em; font-size: 20px; margin: 14px 0 20px; padding-left: .5em; }
.reviews p { max-width: 30em; margin: 0 auto 30px; color: var(--muted); }
.reviews .cta { justify-content: center; }
/* Blog: índice, artículo y avance en la portada */
.blogpage { padding-top: clamp(150px, 16vw, 210px); }
.blogpage h1 { font-size: clamp(30px, 4.2vw, 56px); margin: 16px 0 20px; max-width: 20em; }
.blogpage .lede { color: var(--muted); max-width: 34em; margin-bottom: 44px; }
.bnote { color: var(--muted); font-size: 15px; margin: -26px 0 40px; }
.bgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.bcard { display: flex; flex-direction: column; gap: 12px; background: #fff; border: 1px solid var(--line); padding: 28px 26px 24px; transition: border-color .25s, transform .25s; }
.bcard:hover { border-color: var(--gold); transform: translateY(-3px); }
.bcard .bdate { font-size: 12px; letter-spacing: .24em; text-transform: uppercase; color: var(--gold-deep); font-weight: 500; }
.bcard h3 { font-size: 19px; line-height: 1.4; letter-spacing: .04em; }
.bcard p { color: var(--muted); font-size: 15.5px; line-height: 1.55; flex: 1; }
.bcard .bread { font-size: 12px; letter-spacing: .24em; text-transform: uppercase; font-weight: 500; }
.bmore { background: var(--paper); padding: clamp(56px, 7vw, 96px) 0; }
.bmore.home { background: none; }
.bback { display: inline-block; margin-bottom: 30px; font-size: 13px; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.bback:hover { color: var(--gold-deep); }
.post .wrap { max-width: 860px; }
.post h1 { max-width: none; margin-bottom: 36px; font-size: clamp(25px, 3vw, 38px); line-height: 1.35; }
.prose { font-size: 18px; line-height: 1.75; color: var(--text); }
.prose p { margin-bottom: 1.15em; }
.prose h2 { font-size: clamp(21px, 2.4vw, 28px); line-height: 1.35; margin: 2em 0 .7em; }
.prose h3 { font-size: 18px; line-height: 1.4; margin: 1.6em 0 .5em; letter-spacing: .05em; }
.prose ul { margin: 0 0 1.3em; padding-left: 1.2em; list-style: disc; }
.prose li { margin-bottom: .45em; }
.prose li::marker { color: var(--gold-deep); }
.bend { margin-top: 56px; padding-top: 44px; border-top: 1px solid var(--line); text-align: center; }
.bend h2 { margin-bottom: 26px; }
.bend .cta { justify-content: center; flex-wrap: wrap; gap: 14px; }
@media (max-width: 1000px) { .bgrid { grid-template-columns: 1fr; gap: 14px; } .prose { font-size: 17px; } }

/* Página de servicios y precios (menu.json) */
.menulink { margin-top: 36px; text-align: center; }
.prices .wrap { max-width: 980px; }
.prices .lede { margin-bottom: 30px; }
.mchips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.mchips a { border: 1px solid var(--line); padding: 9px 14px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; background: #fff; transition: border-color .2s, color .2s; }
.mchips a:hover { border-color: var(--gold); color: var(--gold-deep); }
.msec { padding: 44px 0 6px; scroll-margin-top: 96px; }
.mhead { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--ink); padding-bottom: 14px; }
.mhead h2 { font-size: clamp(22px, 2.6vw, 32px); }
.mhead .go { font-size: 11.5px; letter-spacing: .24em; text-transform: uppercase; font-weight: 500; white-space: nowrap; color: var(--season); border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.msec h3 { font-size: 14px; letter-spacing: .2em; color: var(--gold-deep); margin: 28px 0 2px; font-family: var(--sans); font-weight: 500; }
.mlist { list-style: none; }
.mlist li { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.mlist .mn { font-size: 17px; line-height: 1.4; }
.mlist .mn small { display: block; font-size: 13.5px; color: var(--muted); margin-top: 3px; }
.mlist .mp { font-family: var(--serif); font-size: 17px; letter-spacing: .04em; white-space: nowrap; color: var(--ink); }
@media (max-width: 560px) { .mlist .mn { font-size: 16px; } .mlist .mp { font-size: 15.5px; } .mchips a { padding: 8px 11px; font-size: 11px; } }

.legal .prose a, footer .base a { text-decoration: underline; }
.legal .prose h2 { text-transform: none; letter-spacing: .02em; }
.am-note a { text-decoration: underline; color: inherit; }

/* Únete al equipo: al tocar el botón salen las dos formas de contacto que pidió Mara (résumé o texto) */
.join { background: var(--paper); text-align: center; padding: clamp(56px, 7vw, 96px) 0; }
.join h2 { margin: 14px 0 16px; }
.join p { color: var(--muted); max-width: 30em; margin: 0 auto 28px; }
.join [hidden] { display: none; }
.join-how p:first-child { color: var(--ink); font-size: 19px; margin-bottom: 20px; }
.join .cta { justify-content: center; gap: 14px; flex-wrap: wrap; }
.join .join-data { margin: 22px auto 0; font-size: 15px; overflow-wrap: anywhere; }

/* Especiales del mes (especiales.json). Solo se ven los vigentes; sin ninguno, la sección no existe para la clienta */
.specials { background: var(--paper); text-align: center; padding: clamp(56px, 7vw, 96px) 0; }
.specials[hidden], .specials .sp[hidden] { display: none; }
.specials.sp-top { padding-top: clamp(130px, 15vw, 180px); }
.specials h2 { margin: 14px 0 34px; }
.sp-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 22px; margin-bottom: 36px; }
.sp { flex: 1 1 280px; max-width: 420px; background: var(--ivory); border: 1px solid var(--gold); outline: 1px solid var(--line); outline-offset: 6px; padding: 34px 28px 30px; margin: 7px; }
.specials.one .sp { max-width: 620px; padding: 44px 36px 40px; }
.sp-when { font-size: 12px; letter-spacing: .28em; text-transform: uppercase; font-weight: 500; color: var(--gold-deep); margin-bottom: 14px; }
.sp h3 { font-size: clamp(20px, 2.2vw, 28px); line-height: 1.3; margin-bottom: 12px; }
.specials.one .sp h3 { font-size: clamp(24px, 3vw, 38px); }
.sp p { color: var(--muted); max-width: 30em; margin: 0 auto; }
.specials .cta { justify-content: center; align-items: center; gap: 22px; flex-wrap: wrap; }
.sp-call { color: var(--muted); }
.sp-call a { color: var(--ink); font-weight: 500; white-space: nowrap; }

/* Marcas que usa el salón, al pie de Servicios */
.brands { margin-top: clamp(48px, 6vw, 80px); padding-top: 34px; border-top: 1px solid var(--line); text-align: center; }
.brands ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 44px; margin-top: 22px; }
.brands li { font-family: var(--serif); font-size: clamp(19px, 2.1vw, 27px); letter-spacing: .14em; text-transform: uppercase; color: var(--ink); }

/* Neighborhood Fave de Nextdoor: un medallón propio por año (no se usa el dibujo de Nextdoor) */
.faves { margin: 6px auto 40px; max-width: 640px; }
.fyears { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
.fyears span { width: 68px; height: 68px; border-radius: 50%; border: 1px solid var(--gold); outline: 1px solid var(--line); outline-offset: 4px; display: grid; place-items: center; font-family: var(--serif); font-size: 16px; letter-spacing: .06em; color: var(--gold-deep); background: var(--ivory); margin: 5px; }
.faves b { display: block; font-family: var(--serif); font-weight: 400; font-size: 22px; letter-spacing: .06em; text-transform: uppercase; line-height: 1.3; margin-bottom: 8px; }
.faves > span { color: var(--muted); font-size: 15.5px; }
@media (max-width: 560px) { .fyears { gap: 6px; } .fyears span { width: 58px; height: 58px; font-size: 14px; } .faves b { font-size: 19px; } }

/* Premio junto a las reseñas */
.award { display: flex; align-items: center; justify-content: center; gap: 26px; margin: 6px auto 44px; max-width: 640px; text-align: left; }
.award img { width: 150px; height: auto; flex: none; box-shadow: 0 14px 30px rgba(30, 19, 15, .22); }
.award b { display: block; font-family: var(--serif); font-weight: 400; font-size: 22px; letter-spacing: .06em; text-transform: uppercase; line-height: 1.3; margin-bottom: 8px; }
.award span { color: var(--muted); font-size: 15.5px; line-height: 1.5; }
@media (max-width: 560px) { .award { flex-direction: column; text-align: center; gap: 18px; } .award img { width: 170px; } }

/* Reseñas de Google (las pone resenas.js) */
.grevs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; text-align: left; margin: 10px 0 40px; }
.grevs[hidden] { display: none; }
.grev { background: #fff; border: 1px solid var(--line, #E6DCC8); padding: 26px 24px 22px; display: flex; flex-direction: column; gap: 14px; margin: 0; }
.grev .gstars { color: var(--gold-deep); letter-spacing: .3em; font-size: 15px; }
.grev blockquote { margin: 0; font-size: 16px; line-height: 1.6; color: var(--ink); flex: 1; }
.grev .gmore { font-size: 13px; color: var(--gold-deep); text-decoration: underline; }
.grev figcaption { display: flex; align-items: center; gap: 12px; }
.grev figcaption img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; flex: none; }
.grev .gname { display: block; font-weight: 500; font-size: 15px; color: var(--ink); }
.grev .gwhen { display: block; font-size: 13px; color: var(--muted); }
.reviews .gsrc { grid-column: 1 / -1; text-align: center; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin: 0; max-width: none; }
@media (max-width: 1000px) { .grevs { grid-template-columns: 1fr; gap: 14px; } }

/* Pie */
footer { background: var(--ink); color: #CFC3B4; padding: clamp(56px, 7vw, 96px) 0 30px; font-size: 15px; }
footer .cols { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 50px; border-bottom: 1px solid var(--line-dark); }
footer img { height: 84px; width: auto; margin: -8px 0 16px -6px; }
footer a.home { display: inline-block; }
footer h3 { font-family: var(--sans); font-size: 11.5px; letter-spacing: .28em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin-bottom: 14px; }
footer a:hover { color: var(--gold); }
footer li { list-style: none; padding: 3px 0; }
footer .base { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding-top: 24px; font-size: 12.5px; letter-spacing: .08em; color: #9C8F80; }

/* Página de novias */
.hero.sub .wrap { grid-template-columns: 1fr; min-height: 0; padding-top: 190px; }
.hero.sub .hero-copy { max-width: 900px; padding-bottom: clamp(56px, 8vw, 110px); }
.hero.sub h1 { font-size: clamp(40px, 5.4vw, 82px); margin-top: 22px; }
.gallery { background: var(--paper); }
.gtabs { display: flex; flex-wrap: wrap; gap: 8px; justify-self: end; }
.gtab { font: inherit; font-size: 12px; letter-spacing: .24em; text-transform: uppercase; font-weight: 500; padding: 11px 18px; background: none; border: 1px solid var(--line); color: var(--text); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.gtab.on, .gtab:hover { background: var(--ink); color: var(--ivory); border-color: var(--ink); }
.gmason { columns: 3; column-gap: clamp(12px, 1.6vw, 22px); }
.gitem { display: block; width: 100%; padding: 0; border: 0; background: var(--ink); margin: 0 0 clamp(12px, 1.6vw, 22px); cursor: zoom-in; break-inside: avoid; overflow: hidden; }
.gitem[hidden] { display: none; }
.gitem img { width: 100%; height: auto; transition: transform 1.2s cubic-bezier(.2, .7, .2, 1), opacity .3s; }
.gitem:hover img { transform: scale(1.04); opacity: .92; }
.lightbox { position: fixed; inset: 0; z-index: 90; background: rgba(20, 12, 9, .96); display: none; align-items: center; justify-content: center; padding: 4vh 70px; }
.lightbox.on { display: flex; }
.lightbox img { max-width: 100%; max-height: 92vh; width: auto; height: auto; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); }
.lightbox button { position: absolute; background: none; border: 0; color: var(--gold); font-family: var(--serif); font-size: 46px; line-height: 1; width: 60px; height: 60px; cursor: pointer; }
.lb-close { top: 14px; right: 14px; }
.lb-prev { left: 6px; top: 50%; margin-top: -30px; }
.lb-next { right: 6px; top: 50%; margin-top: -30px; }
.steps3 { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.steps3 > div { padding: 30px 30px 10px 0; }
.steps3 .n { font-family: var(--serif); font-style: italic; font-size: 20px; color: var(--gold-deep); }
.steps3 h3 { font-size: clamp(26px, 2.6vw, 36px); margin: 10px 0 12px; }
.steps3 p { color: var(--muted); font-size: 16px; max-width: 24em; }
.endcta { background: var(--ink); color: var(--ivory); text-align: center; }
.endcta h2 { margin-bottom: 36px; }
.endcta h2 em { color: var(--gold); }
.endcta .cta { justify-content: center; }

/* Portada clara (la pidió Mara el 7 Oct: el fondo oscuro no le convencía).
   La barra del menú queda siempre oscura para que el logo dorado se lea. */
.top { background: rgba(30, 19, 15, .96); }
.hero { background: var(--ivory); color: var(--ink); }
.hero .eyebrow, .hero .hey, .hero h1 em { color: var(--gold-deep); }
.hero .lede { color: var(--muted); }
.hero .btn.solid { background: var(--ink); border-color: var(--ink); color: var(--ivory); }
.hero .btn.solid:hover { background: var(--ink-2); border-color: var(--ink-2); }
.hero .btn.ghost { border-color: var(--ink); color: var(--ink); }
.hero .btn.ghost:hover { background: var(--ink); color: var(--ivory); }
.hero-photo:before { border-color: var(--line); }
.hero.sub { border-bottom: 1px solid var(--line); }
/* Foto de portada apaisada (interior del salón): columna de foto más ancha y caja en formato horizontal */
.hero .wrap { grid-template-columns: .82fr 1.18fr; align-items: center; min-height: 0; padding-bottom: clamp(56px, 7vw, 100px); }
.hero-copy { padding-bottom: 0; }
.hero-photo { align-self: center; min-height: 0; }
.hero-photo:after { content: ""; display: block; padding-top: 68%; }
.hero-photo picture, .hero-photo img { object-position: 50% 50%; }
.hero h1 { font-size: clamp(42px, 4.6vw, 74px); }

/* Membresías y cierre de la página de novias, también en claro */
.clubs { background: var(--ivory); color: var(--text); border-bottom: 1px solid var(--line); }
.clubs h2 { color: var(--ink); }
.clubs h2 em, .clubs .eyebrow { color: var(--gold-deep); }
.clubs .lede { color: var(--muted); }
.tiers, .tier { border-color: var(--line); }
.tier { background: #fff; }
.tier.vip { background: linear-gradient(160deg, rgba(222, 195, 93, .24), #fff 62%); }
.tier .name, .tier .club, .tier .price sup { color: var(--gold-deep); }
.tier .price { color: var(--ink); }
.tier .price small { color: var(--muted); }
.tier li { border-color: var(--line); color: var(--text); }
.tier .btn.ghost, .endcta .btn.ghost { border-color: var(--ink); color: var(--ink); }
.tier .btn.ghost:hover, .endcta .btn.ghost:hover { background: var(--ink); color: var(--ivory); }
.fine { color: var(--muted); }
.endcta { background: var(--paper); color: var(--ink); }
.endcta h2 em { color: var(--gold-deep); }
.endcta .btn.solid { background: var(--ink); border-color: var(--ink); color: var(--ivory); }

/* Aparición suave */
.rise { opacity: 0; transform: translateY(22px); transition: opacity .9s ease, transform .9s cubic-bezier(.2, .7, .2, 1); }
.rise.in, .no-js .rise { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .rise { opacity: 1; transform: none; transition: none; } .strip ul { animation: none; } html { scroll-behavior: auto; } }

/* Tableta y móvil */
@media (max-width: 1000px) {
  .nav a:not(.lang):not(.book) { display: none; }
  .burger { display: block; }
  .bookbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: var(--gold); color: var(--ink); padding: 16px var(--pad) calc(16px + env(safe-area-inset-bottom)); font-size: 12.5px; letter-spacing: .24em; text-transform: uppercase; font-weight: 500; box-shadow: 0 -10px 30px rgba(30, 19, 15, .18); transform: translateY(105%); transition: transform .45s cubic-bezier(.2, .7, .2, 1); }
  .bookbar span { display: flex; align-items: center; justify-content: space-between; width: 100%; }
  .bookbar span:after { content: ""; width: 26px; height: 1px; background: currentColor; }
  .bookbar.show { transform: none; }
  .top.open ~ .bookbar { transform: translateY(105%); }
  footer { padding-bottom: 84px; }
  .top.open .menu { display: flex; flex-direction: column; gap: 4px; padding: 10px var(--pad) 34px; height: calc(100vh - 66px); height: calc(100dvh - 66px); overflow: auto; background: var(--ink); }
  .menu a:not(.btn) { font-family: var(--serif); font-size: 34px; line-height: 1.1; padding: 16px 0; border-bottom: 1px solid var(--line-dark); }
  .menu .btn { margin-top: 26px; justify-content: space-between; }
  .hero .wrap { grid-template-columns: 1fr; min-height: 0; padding-top: 128px; }
  .hero-copy { padding-bottom: 40px; }
  .hero .wrap { padding-bottom: 0; }
  .hero-photo { min-height: 0; height: 68vw; max-height: 620px; align-self: auto; margin: 0 calc(var(--pad) * -1); }
  .hero-photo:after { display: none; }
  .hero-photo:before { display: none; }
  .hero-photo .tag { left: var(--pad); padding-left: 18px; }
  .head { grid-template-columns: 1fr; gap: 18px; }
  .head .lede { justify-self: start; }
  .srv { grid-template-columns: 44px 1fr; gap: 6px 14px; padding: 24px 0; }
  .srv p, .srv .go { grid-column: 2; }
  .srv .go { justify-self: start; margin-top: 8px; }
  .srv:hover { padding-left: 0; }
  .grid { grid-template-columns: 1fr 1fr; }
  .note { grid-column: span var(--m, 1); }
  .shot.tall { grid-column: span 2; grid-row: auto; height: 100vw; max-height: 680px; }
  .tiers { grid-template-columns: 1fr; }
  .mara .wrap, .visit .wrap { grid-template-columns: 1fr; }
  .portrait { max-width: 460px; }
  .people { grid-template-columns: 1fr 1fr; }
  .gmason { columns: 2; }
  .gtabs { justify-self: start; }
  .steps3 { grid-template-columns: 1fr; }
  .hero.sub .wrap { padding-top: 150px; }
  .lightbox { padding: 4vh 12px; }
  .lb-prev, .lb-next { top: auto; bottom: 10px; }
  .person { padding-right: 14px; }
  .wall { min-height: 0; height: 110vw; max-height: 720px; margin: 0 calc(var(--pad) * -1); }
  footer .cols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  body { font-size: 16px; }
  .top .logo img { height: 50px; }
  .nav { gap: 14px; }
  .btn { padding: 15px 22px; width: 100%; justify-content: space-between; }
  .info { grid-template-columns: 1fr; }
  .tier .price { font-size: 54px; }
  footer .cols { grid-template-columns: 1fr; gap: 30px; }
}

/* Letra opción 6, elegida por Mara el 7 Oct: mayúsculas Cinzel y la palabra clave en manuscrita (Great Vibes),
   como sus gráficas de Instagram. La manuscrita va solo en una o dos palabras por título. */
:root { --serif: "Cinzel", "Trajan Pro", Georgia, serif; --script: "Great Vibes", "Snell Roundhand", cursive; }
h1, h2, h3 { text-transform: uppercase; letter-spacing: .06em; line-height: 1.22; }
h2 { font-size: clamp(26px, 3.3vw, 46px); }
.hero h1 { font-size: clamp(28px, 3.3vw, 50px); }
.hero.sub h1 { font-size: clamp(26px, 3.4vw, 50px); }
h1 em, h2 em { display: block; font-family: var(--script); font-style: normal; text-transform: none; letter-spacing: 0; font-size: 2.1em; line-height: .95; margin-top: .08em; color: var(--gold-deep); }
.hero .hey { font-size: clamp(40px, 4.4vw, 66px); line-height: 1; margin: 22px 0 6px 0; }
.srv h3 { font-size: clamp(17px, 1.7vw, 23px); }
.srv .n, .steps3 .n, .policy li:before { font-style: normal; font-size: 16px; letter-spacing: .08em; }
.note p { font-size: clamp(15px, 1.4vw, 19px); letter-spacing: .05em; line-height: 1.5; }
.person b { font-size: 18px; letter-spacing: .05em; }
.tier .club { font-size: 50px; line-height: 1; margin: 8px 0 0; }
.tier .price { font-size: 54px; }
.steps3 h3 { font-size: clamp(19px, 1.9vw, 25px); }
.endcta h2 em { margin-top: .12em; }
@media (max-width: 1000px) {
  .menu a:not(.btn) { font-size: 22px; letter-spacing: .08em; padding: 18px 0; }
  h1 em, h2 em { font-size: 1.9em; }
}

/* Carrusel de trabajos (lo pidió Mara el 7 Oct: "en carrusel, like a slide show") */
.reel { display: flex; gap: clamp(12px, 1.6vw, 22px); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; outline: none; }
.reel::-webkit-scrollbar { display: none; }
.slide { position: relative; flex: 0 0 calc((100% - 2 * clamp(12px, 1.6vw, 22px)) / 3); scroll-snap-align: start; background: var(--ink); overflow: hidden; }
.slide:before { content: ""; display: block; padding-top: 134%; }
.slide picture, .slide img, .slide video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.slide figcaption { position: absolute; left: 0; bottom: 0; background: var(--ivory); padding: 10px 16px 8px 14px; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; font-weight: 500; }
.reelbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 26px; flex-wrap: wrap; }
.reelnav { display: flex; gap: 10px; }
.reelnav button { width: 54px; height: 54px; border: 1px solid var(--ink); background: none; color: var(--ink); font-size: 20px; cursor: pointer; transition: background .2s, color .2s; }
.reelnav button:hover { background: var(--ink); color: var(--ivory); }
.reelnote { font-size: 15px; color: var(--muted); }
.reelnote .link { color: var(--season); margin-left: 10px; white-space: nowrap; }
@media (max-width: 1000px) {
  .slide { flex-basis: 72%; }
  .reel { margin-right: calc(var(--pad) * -1); padding-right: var(--pad); }
  .reelnote .link { display: inline-block; margin: 10px 0 0; }
}

/* Ask Mara: botón flotante (colibrí del logo posado sobre la foto de Mara) y su panel.
   Por ahora el panel solo anuncia la asistente; el chat real llega con la API de Claude. */
.askmara { --am-gold: #C9A53A; --am-eye: #FBF6EC; position: fixed; right: 18px; bottom: calc(18px + env(safe-area-inset-bottom)); z-index: 45; width: 84px; padding: 0; border: 0; background: none; cursor: pointer; filter: drop-shadow(0 8px 14px rgba(30, 19, 15, .28)); -webkit-tap-highlight-color: transparent; }
.askmara svg { display: block; width: 100%; height: auto; overflow: visible; }
.askmara:focus-visible { outline: 2px solid var(--gold-deep); outline-offset: 4px; }
.am-panel { position: fixed; right: 18px; bottom: calc(132px + env(safe-area-inset-bottom)); z-index: 46; width: min(320px, calc(100vw - 36px)); background: #FBF6F8; color: #241A22; border: 1px solid #EADDE4; border-radius: 18px; box-shadow: 0 18px 40px rgba(30, 19, 15, .25); display: flex; flex-direction: column; overflow: hidden; }
/* display:flex le gana al atributo hidden del navegador: sin esta regla la tarjeta no se cierra */
.am-panel[hidden], .am-panel [hidden] { display: none !important; }
.am-panel.chat { width: min(340px, calc(100vw - 36px)); height: min(470px, calc(100vh - 230px)); min-height: 300px; }
.am-head { padding: 14px 18px 10px; }
.am-title { font-family: var(--serif); font-size: 17px; letter-spacing: .08em; text-transform: uppercase; }
.am-title em { font-family: var(--script); font-style: normal; text-transform: none; letter-spacing: 0; font-size: 30px; line-height: .8; color: #9C3D6B; margin-left: 6px; }
.am-sub { font-size: 12.5px; color: #7A6873; margin-top: 4px; }
.am-soon { padding: 0 20px 18px; }
.am-wait { padding: 6px 20px 22px; }
.am-panel p { font-size: 15px; line-height: 1.45; }
.am-soon p { margin-bottom: 16px; }
.am-panel .btn { width: 100%; justify-content: space-between; background: #9C3D6B; border-color: #9C3D6B; color: #fff; padding: 14px 18px; }
.am-tel { display: block; text-align: center; margin-top: 12px; font-weight: 500; font-size: 16px; color: #9C3D6B; }
.am-x { position: absolute; right: 8px; top: 4px; width: 40px; height: 40px; border: 0; background: none; font-size: 24px; color: #7A6873; cursor: pointer; z-index: 1; }
.am-chat { flex: 1; min-height: 0; display: flex; flex-direction: column; border-top: 1px solid #EADDE4; }
.am-log { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 14px 14px 6px; display: flex; flex-direction: column; gap: 10px; }
.am-intro p { margin-bottom: 12px; }
.am-intro .am-motto { font-family: var(--script); font-size: 23px; line-height: 1.1; color: #9C3D6B; margin: -2px 0 14px; }
.am-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.am-card { text-align: left; background: #fff; border: 1px solid #EADDE4; border-radius: 12px; padding: 12px; cursor: pointer; font: inherit; color: inherit; }
.am-card strong { display: block; font-weight: 500; font-size: 14.5px; color: #9C3D6B; margin-bottom: 3px; }
.am-card span { font-size: 12.5px; color: #7A6873; line-height: 1.3; display: block; }
.am-chips { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin-top: 10px; }
.am-chip { background: none; border: 1px solid #DCC6D1; border-radius: 999px; padding: 7px 13px; font: inherit; font-size: 13.5px; color: #6E2A4B; cursor: pointer; text-align: left; }
.am-card:hover, .am-chip:hover { border-color: #9C3D6B; }
.am-msg { max-width: 88%; padding: 9px 12px; border-radius: 14px; font-size: 14.5px; line-height: 1.45; overflow-wrap: anywhere; }
.am-msg.her { align-self: flex-start; background: #fff; border: 1px solid #EADDE4; border-bottom-left-radius: 4px; }
.am-msg.me { align-self: flex-end; background: #9C3D6B; color: #fff; border-bottom-right-radius: 4px; }
.am-msg p + p, .am-msg ul + p, .am-msg p + ul { margin-top: 8px; }
.am-msg ul { padding-left: 18px; list-style: disc; }
.am-msg li + li { margin-top: 3px; }
.am-msg a { color: #9C3D6B; text-decoration: underline; }
.am-msg img { display: block; width: 120px; height: 120px; object-fit: cover; border-radius: 10px; margin-bottom: 6px; }
.am-msg.me img:only-child, .am-msg.me img + div:empty { margin-bottom: 0; }
.am-contact { max-width: 100%; align-self: stretch; }
.am-contact p { margin-bottom: 12px; }
.am-dots { display: inline-flex; gap: 4px; padding: 4px 0; }
.am-dots i { width: 6px; height: 6px; border-radius: 50%; background: #C79AB0; }
.am-thumb { position: relative; margin: 0 14px 6px; width: 64px; height: 64px; }
.am-thumb img { width: 64px; height: 64px; object-fit: cover; border-radius: 10px; display: block; }
.am-thumb button { position: absolute; right: -8px; top: -8px; width: 24px; height: 24px; border-radius: 50%; border: 0; background: #241A22; color: #fff; font-size: 15px; line-height: 1; cursor: pointer; }
.am-form { display: flex; align-items: flex-end; gap: 6px; padding: 8px 10px; border-top: 1px solid #EADDE4; background: #fff; }
.am-form textarea { flex: 1; min-width: 0; border: 0; outline: 0; resize: none; background: none; font: inherit; font-size: 16px; line-height: 1.35; padding: 9px 4px; color: inherit; max-height: 96px; }
.am-cam, .am-send { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; border: 0; }
.am-cam { color: #9C3D6B; background: none; }
.am-send { background: #9C3D6B; color: #fff; }
.am-chat.busy .am-send { opacity: .45; pointer-events: none; }
.am-cam:focus-within, .am-send:focus-visible, .am-card:focus-visible, .am-chip:focus-visible { outline: 2px solid #9C3D6B; outline-offset: 2px; }
.am-intro .am-rules { font-size: 12.5px; line-height: 1.4; color: #6E5F69; margin: 10px 0 0; }
.am-panel .am-left { font-size: 12px; line-height: 1.35; color: #6E5F69; padding: 6px 14px 0; background: #fff; }
.am-panel .am-left.low { color: #9C3D6B; font-weight: 500; }
.am-panel .am-note { font-size: 11.5px; line-height: 1.35; color: #7A6873; padding: 7px 14px calc(9px + env(safe-area-inset-bottom)); background: #fff; }
.top.open ~ .askmara, .top.open ~ .am-panel { display: none; }
@media (prefers-reduced-motion: no-preference) {
  .am-fly { animation: am-bob 2.8s ease-in-out infinite; }
  .am-wings { transform-box: fill-box; transform-origin: 60% 100%; animation: am-flap .28s ease-in-out infinite alternate; }
  @keyframes am-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
  .am-dots i { animation: am-dot 1s ease-in-out infinite; }
  .am-dots i:nth-child(2) { animation-delay: .15s; }
  .am-dots i:nth-child(3) { animation-delay: .3s; }
  @keyframes am-dot { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }
  @keyframes am-flap { from { transform: rotate(-5deg) scaleY(1); } to { transform: rotate(6deg) scaleY(.86); } }
}
@media (max-width: 1000px) {
  .askmara { width: 70px; right: 12px; bottom: calc(66px + env(safe-area-inset-bottom)); }
  .am-panel { right: 12px; bottom: calc(160px + env(safe-area-inset-bottom)); }
  /* En el móvil el chat es una hoja en la parte baja; mientras está abierto, el colibrí y la barra de reserva se apartan */
  .am-panel.chat { left: 10px; right: 10px; bottom: 10px; width: auto; height: min(62vh, 480px); height: min(62dvh, 480px); }
  .am-open .askmara, .am-open .bookbar { display: none; }
}


/* Página Instagram: cuadrícula de fotos cuadradas que se amplían (lightbox compartido con la galería de novias) */
.igpage .igfollow { margin: 22px 0 36px; }
.iggrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(8px, 1.2vw, 16px); }
.igitem { display: block; padding: 0; border: 0; background: var(--ink); border-radius: 10px; overflow: hidden; cursor: zoom-in; aspect-ratio: 1 / 1; position: relative; }
.igitem picture, .igitem img { display: block; width: 100%; height: 100%; object-fit: cover; }
.igitem img { transition: transform .9s cubic-bezier(.2, .7, .2, 1), opacity .3s; }
.igitem:hover img { transform: scale(1.05); opacity: .92; }
.igitem:focus-visible { outline: 3px solid var(--gold-deep); outline-offset: 3px; }
.lb-post { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); color: var(--gold); font-size: 13px; letter-spacing: .22em; text-transform: uppercase; text-decoration: underline; padding: 10px 16px; background: rgba(20, 12, 9, .6); }
.lb-post[hidden] { display: none; }
@media (max-width: 700px) { .iggrid { grid-template-columns: repeat(3, 1fr); gap: 6px; } .igitem { border-radius: 8px; } }

/* Tema de temporada completo (clase .st): acentos de texto, marco de la foto, membresías y números de servicios toman el color de la temporada */
.st .hero .eyebrow, .st .hero .hey, .st .hero h1 em, .st .clubs h2 em, .st .clubs .eyebrow,
.st .tier .name, .st .tier .club, .st .tier .price sup, .st .srv .n, .st .head h2 em { color: var(--season); }
.st .hero-photo:before { border-color: var(--season); opacity: .55; }
.st .tier.vip { background: linear-gradient(160deg, var(--season-soft), #fff 62%); }
.st .sp-when, .st .menulink + * { color: var(--season); }
