/* Portales turisticos (tuxpan.org, juanamoza.org): estilo propio, distinto al de los sitios de marca */
:root {
  --paper: #fbf7f0; --sand: #f3ead9; --ink: #1c2a2e; --muted: #55656a; --rule: #e4dac6; --white: #fff;
  --c1: #053d4a; --c2: #0c7c80; --c3: #ff7a59; --on-c3: #3a1206;
  --sun: #ffd166;
  --sans: "Segoe UI Variable Text", "Segoe UI", "SF Pro Text", -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  --display: "Segoe UI Variable Display", "Segoe UI", "SF Pro Display", -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  --gutter: clamp(16px, 4vw, 48px);
  --r: 18px;
  color-scheme: light;
}
[data-brand="mt"] { --paper: #fff9ef; --sand: #ffeccc; --rule: #f0dcc0; --c1: #2b0f54; --c2: #d6196b; --c3: #ffb400; --on-c3: #2b1600; --sun: #ffe27a; --teal: #00a99d; --pink: #d6196b; --orange: #ff6b2c; --green: #3f9b3a; }
[data-brand="aa"] { --c1: #3b2208; --c2: #8e5410; --c3: #f2b43b; --on-c3: #3a2606; --sun: #ffe0a0; }
[data-brand="tm"] { --paper: #f4fffd; --sand: #d9f5f0; --rule: #bfe6df; --c1: #07416b; --c2: #00a6a6; --c3: #ffb703; --on-c3: #2b1b00; --sun: #fff0a0; --g1: #00a6a6; --g2: #2e9e4f; --g3: #ffd166; }
[data-brand="hu"] { --paper: #fff8f3; --sand: #ffe6d6; --rule: #f1d3c0; --c1: #4a1d3d; --c2: #c2185b; --c3: #f4a300; --on-c3: #2b1b00; --sun: #ffe27a; --g1: #c2185b; --g2: #ef6c00; --g3: #ffc107; }
[data-brand="ma"] { --paper: #fff9f2; --sand: #ffe9d2; --rule: #f0d5b8; --c1: #4a0f24; --c2: #c0212f; --c3: #f7b32b; --on-c3: #2b1500; --sun: #ffe27a; --g1: #c0212f; --g2: #ff7a00; --g3: #00a6a6; }
[data-brand="jm"] { --paper: #fffaf0; --sand: #dff4f2; --rule: #cfe6e2; --c1: #06365e; --c2: #0aa3b8; --c3: #ffc21a; --on-c3: #3a2a00; --sun: #fff0a0; --red: #e63b2e; --green: #2e9e4f; }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 5.5rem; }
body.tour { margin: 0; background: var(--paper); color: var(--ink); font: 400 1.0625rem/1.6 var(--sans); }
.tour a { color: inherit; }
.tour :focus-visible { outline: 3px solid var(--c3); outline-offset: 3px; border-radius: 4px; }
.t-wrap { width: 100%; max-width: 76rem; margin: 0 auto; padding: 0 var(--gutter); }
.t-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Barra superior y encabezado */
.t-util { background: var(--c1); color: #fff; font-size: .875rem; }
.t-util .t-wrap { display: flex; justify-content: space-between; gap: 1rem; align-items: center; min-height: 2.5rem; }
.t-util a { text-decoration: none; color: #fff; opacity: .92; }
.t-util a:hover { opacity: 1; text-decoration: underline; }
.t-back { font-weight: 650; }
.t-util-links { display: flex; gap: 1.25rem; }
.t-head { position: sticky; top: 0; z-index: 30; background: rgba(251,247,240,.96); backdrop-filter: blur(8px); border-bottom: 1px solid var(--rule); }
.t-head-in { display: flex; align-items: center; gap: 1rem; min-height: 4.25rem; }
.t-brand { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; margin-right: auto; }
.t-mark { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 12px; background: var(--c1); color: #fff; font: 800 1rem/1 var(--display); }
.t-name { display: grid; font: 800 1.2rem/1.1 var(--display); letter-spacing: -.01em; }
.t-name small { font: 500 .75rem/1.2 var(--sans); color: var(--muted); letter-spacing: 0; }
.t-menu { position: static; }
.t-menu > summary { list-style: none; cursor: pointer; display: none; width: 2.75rem; height: 2.75rem; border-radius: 10px; align-items: center; justify-content: center; border: 1px solid var(--rule); background: #fff; }
.t-menu > summary::-webkit-details-marker { display: none; }
.t-burger, .t-burger::before, .t-burger::after { display: block; width: 1.2rem; height: 2px; background: var(--ink); content: ""; position: relative; }
.t-burger::before { position: absolute; top: -6px; } .t-burger::after { position: absolute; top: 6px; }
.t-menu nav { display: flex; gap: .25rem; }
.t-menu nav a { text-decoration: none; padding: .55rem .8rem; border-radius: 999px; font-weight: 600; font-size: .95rem; }
.t-menu nav a:hover { background: var(--sand); }
.t-menu nav a[aria-current] { background: var(--c1); color: #fff; }
.tour .lang-menu { position: relative; }
.tour .lang-menu summary { list-style: none; display: inline-flex; align-items: center; gap: .35rem; cursor: pointer; padding: .5rem .8rem; border: 1px solid var(--rule); border-radius: 999px; background: #fff; font-weight: 650; font-size: .85rem; }
.tour .lang-menu summary::-webkit-details-marker { display: none; }
.tour .lang-menu ul { position: absolute; right: 0; top: calc(100% + .4rem); z-index: 40; margin: 0; padding: .4rem; list-style: none; background: #fff; border: 1px solid var(--rule); border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.12); min-width: 10rem; }
.tour .lang-menu a { display: block; padding: .5rem .75rem; text-decoration: none; border-radius: 8px; }
.tour .lang-menu a:hover { background: var(--sand); }
.tour .lang-menu li a[aria-current]::after { content: " ✓"; color: var(--c2); font-weight: 700; }
@media (max-width: 900px) {
  .t-menu > summary { display: inline-flex; }
  .t-menu nav { position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; background: var(--paper); border-bottom: 1px solid var(--rule); padding: .75rem var(--gutter) 1rem; gap: .15rem; box-shadow: 0 12px 24px rgba(0,0,0,.08); }
  .t-menu:not([open]) nav { display: none; }
  .t-menu nav a { padding: .8rem 1rem; border-radius: 10px; }
  .t-name small { display: none; }
}

/* Carrusel */
.t-hero { position: relative; color: #fff; overflow: hidden; min-height: clamp(30rem, 78vh, 44rem); background: var(--c1); }
.t-hero { display: grid; }
.t-slide { grid-area: 1 / 1; position: relative; display: flex; align-items: center; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility .8s; }
.t-slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.sc-coast { background: linear-gradient(180deg, #06404f 0%, #1c8a86 55%, #f6b26b 100%); }
.sc-mangrove { background: linear-gradient(180deg, #0a3b2b 0%, #2c8a5c 60%, #bfe0a0 100%); }
.sc-city { background: linear-gradient(180deg, #1b1740 0%, #6a3a7a 55%, #f08a5d 100%); }
.sc-river { background: linear-gradient(180deg, #4a1233 0%, #b8473f 55%, #f6b26b 100%); }
.sc-fiesta { background: linear-gradient(180deg, #2a1245 0%, #a8325e 55%, #f2a83b 100%); }
.sc-craft { background: linear-gradient(180deg, #3a2a10 0%, #9b5a2a 55%, #f0c27a 100%); }
.t-scene { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 62%; z-index: 0; }
.t-scene .sun { fill: var(--sun); opacity: .95; }
.t-scene .w1 { fill: rgba(255,255,255,.18); } .t-scene .w2 { fill: rgba(5,40,50,.45); } .t-scene .w3 { fill: rgba(3,22,30,.75); }
.t-scene .hill { fill: rgba(40,10,30,.55); }
.t-scene .palm path { stroke: rgba(3,22,30,.85); fill: none; stroke-linecap: round; stroke-width: 6; }
.t-scene .roots path { stroke: rgba(3,30,20,.85); fill: none; stroke-width: 5; stroke-linecap: round; }
.t-scene .birds path { stroke: rgba(255,255,255,.85); fill: none; stroke-width: 2.4; stroke-linecap: round; }
.t-scene .boat path { fill: rgba(3,22,30,.9); }
.t-scene .tower path, .t-scene .tower rect { fill: rgba(20,10,40,.88); }
.t-scene .stars circle { fill: #fff; opacity: .85; }
.t-scene .string { stroke: rgba(255,255,255,.7); stroke-width: 2; }
.t-scene .f0 { fill: #ff7a59; } .t-scene .f1 { fill: #ffd166; } .t-scene .f2 { fill: #5ad1c4; } .t-scene .f3 { fill: #f48fb1; }
.t-scene .doll circle, .t-scene .doll path { fill: rgba(40,10,30,.9); stroke: rgba(40,10,30,.9); stroke-width: 4; stroke-linecap: round; }
.t-scene .bamboo path { stroke: rgba(30,60,20,.85); stroke-width: 9; fill: none; stroke-linecap: round; }
.t-slide-text { position: relative; z-index: 2; padding-top: 3rem; padding-bottom: 14rem; }
.t-kicker { margin: 0 0 .5rem; font: 700 .8rem/1.2 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--c2); }
.t-hero .t-kicker { color: rgba(255,255,255,.88); }
.t-slide h1, .t-slide h2 { margin: 0 0 1rem; max-width: 14ch; font: 800 clamp(2.6rem, 8.5vw, 5.6rem)/.98 var(--display); letter-spacing: -.04em; text-wrap: balance; }
.t-slide-p { max-width: 34ch; margin: 0 0 1.5rem; font-size: clamp(1.1rem, 2.4vw, 1.4rem); line-height: 1.45; }
.t-ctas { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; margin: 0; }
.t-btn { display: inline-flex; align-items: center; min-height: 3rem; padding: .7rem 1.5rem; border-radius: 999px; background: var(--c3); color: var(--on-c3); font: 700 1rem/1.2 var(--sans); text-decoration: none; border: 2px solid var(--c3); }
.t-btn:hover { filter: brightness(1.06); transform: translateY(-1px); }
.t-btn-ghost { background: transparent; color: #fff; border-color: #fff; }
.t-btn-dark { background: var(--c1); color: #fff; border-color: var(--c1); }
.t-dots { position: absolute; z-index: 3; left: 0; right: 0; bottom: 1.1rem; display: flex; justify-content: center; gap: .6rem; }
.t-dots span, .t-dots button { width: .7rem; height: .7rem; padding: 0; border-radius: 50%; border: 0; background: rgba(255,255,255,.5); cursor: pointer; }
.t-dots .on { background: #fff; width: 1.8rem; border-radius: 999px; }
.t-dots button { width: 2.2rem; height: 1.4rem; background: transparent; position: relative; }
.t-dots button::after { content: ""; position: absolute; left: .55rem; top: .35rem; width: .7rem; height: .7rem; border-radius: 999px; background: rgba(255,255,255,.5); }
.t-dots button.on::after { width: 1.8rem; background: #fff; left: .2rem; }
.t-dots button.on { background: transparent; }

/* Buscador de temas */
.t-find { background: var(--sand); padding: 1.75rem 0; border-bottom: 1px solid var(--rule); }
.t-find h2 { margin: 0 0 .9rem; font: 800 1.35rem/1.2 var(--display); }
.t-chips { display: flex; flex-wrap: wrap; gap: .6rem; list-style: none; margin: 0; padding: 0; }
.t-chips a { display: inline-flex; align-items: center; min-height: 2.6rem; padding: .45rem 1.05rem; border-radius: 999px; background: #fff; border: 1.5px solid var(--c1); text-decoration: none; font-weight: 650; font-size: .95rem; color: var(--c1); }
.t-chips a:hover { background: var(--c1); color: #fff; }
.t-chips-lg a { min-height: 3rem; font-size: 1rem; }

/* Secciones */
.t-sec { padding: clamp(2.5rem, 7vw, 5rem) 0; }
.t-h2 { margin: 0 0 1.5rem; font: 800 clamp(1.8rem, 4.4vw, 2.7rem)/1.1 var(--display); letter-spacing: -.03em; text-wrap: balance; }
.t-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.t-card { display: flex; flex-direction: column; height: 100%; padding: 1.5rem; text-decoration: none; background: #fff; border-radius: var(--r); border: 1px solid var(--rule); box-shadow: 0 1px 0 rgba(0,0,0,.02); transition: transform .18s, box-shadow .18s; }
.t-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(5,61,74,.14); }
.t-card .tx-icon { color: var(--c2); width: 2.4rem; height: 2.4rem; padding: .5rem; box-sizing: content-box; border-radius: 14px; background: color-mix(in srgb, var(--c2) 12%, #fff); }
.t-card h3 { margin: 1rem 0 .35rem; font: 750 1.25rem/1.2 var(--display); }
.t-card p { margin: 0 0 1rem; color: var(--muted); }
.t-more { margin-top: auto; font-weight: 700; color: var(--c2); }
.t-two { display: grid; gap: 2rem 3rem; align-items: center; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 860px) { .t-two { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.t-history { background: var(--c1); color: #fff; }
.t-history .t-kicker { color: var(--c3); }
.t-history p { font-size: 1.15rem; max-width: 46ch; }
.t-history .t-link { color: #fff; }
.t-art { position: relative; min-height: 15rem; border-radius: var(--r); overflow: hidden; background: linear-gradient(180deg, #1b1740, #6a3a7a 60%, #f08a5d); }
[data-brand="jm"] .t-art { background: linear-gradient(180deg, #3a2a10, #9b5a2a 60%, #f0c27a); }
.t-art .t-scene { height: 100%; }
.t-link { font-weight: 700; color: var(--c2); text-underline-offset: .2em; }
.t-events { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.t-events li { display: flex; flex-direction: column; gap: .6rem; padding: 1.25rem; background: #fff; border-radius: var(--r); border: 1px solid var(--rule); border-top: 6px solid var(--c3); }
.t-date { align-self: flex-start; padding: .25rem .75rem; border-radius: 999px; background: var(--c1); color: #fff; font-weight: 700; font-size: .9rem; }
.t-events h3 { margin: 0; font: 750 1.15rem/1.25 var(--display); } .t-events p { margin: 0; color: var(--muted); font-size: .98rem; }
.t-svc-band { background: var(--sand); }
.t-tiles { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.t-tile { display: flex; align-items: center; gap: .9rem; min-height: 5rem; padding: 1rem 1.1rem; background: #fff; border: 1.5px solid var(--rule); border-radius: 16px; text-decoration: none; font-weight: 700; transition: border-color .15s, transform .15s; }
.t-tile:hover { border-color: var(--c2); transform: translateY(-2px); }
.t-tile .t-ico { flex: none; color: var(--c2); }
.t-tile small { display: block; font-weight: 500; color: var(--muted); }
.t-tiles-lg .t-tile { flex-wrap: wrap; }
.t-plan { background: linear-gradient(135deg, color-mix(in srgb, var(--c2) 14%, var(--paper)), var(--paper)); }
.t-sister { padding: 1.75rem; border-radius: var(--r); background: var(--c1); color: #fff; }
.t-sister .t-kicker { color: var(--c3); } .t-sister h3 { margin: 0 0 1rem; font: 800 1.5rem/1.2 var(--display); }
.t-biz { background: #fff; border-top: 1px solid var(--rule); }
.fine { color: var(--muted); font-size: .9rem; max-width: 70ch; }
.t-history .fine { color: rgba(255,255,255,.8); }

/* Paginas interiores */
.t-pagehead { padding: clamp(2.5rem, 7vw, 4.5rem) 0 clamp(1.5rem, 4vw, 2.5rem); background: linear-gradient(180deg, color-mix(in srgb, var(--c2) 16%, var(--paper)), var(--paper)); border-bottom: 1px solid var(--rule); }
.t-pagehead h1 { margin: 0 0 .75rem; font: 800 clamp(2.1rem, 6vw, 3.6rem)/1.05 var(--display); letter-spacing: -.035em; max-width: 20ch; text-wrap: balance; }
.t-lead { max-width: 52ch; margin: 0 0 1.25rem; font-size: 1.2rem; color: var(--muted); }
.t-search { width: min(100%, 26rem); min-height: 3rem; padding: .6rem 1.1rem; border: 2px solid var(--c1); border-radius: 999px; font: inherit; background: #fff; }
.t-timeline { list-style: none; margin: 0 0 2.5rem; padding: 0 0 0 1.5rem; border-left: 4px solid var(--c3); display: grid; gap: 1.5rem; max-width: 52rem; }
.t-timeline li { position: relative; }
.t-timeline li::before { content: ""; position: absolute; left: calc(-1.5rem - 10px); top: .55rem; width: 16px; height: 16px; border-radius: 50%; background: var(--c1); border: 3px solid var(--paper); }
.t-when { display: inline-block; margin-bottom: .2rem; font: 800 1.15rem/1.2 var(--display); color: var(--c2); }
.t-timeline p { margin: 0; }
.t-callout { margin-top: 2.5rem; padding: 1.75rem; background: var(--sand); border-radius: var(--r); border: 1px solid var(--rule); max-width: 52rem; }
.t-callout h2 { margin: 0 0 .5rem; font: 800 1.5rem/1.2 var(--display); }
.t-dir { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); }
.t-dir-group { padding: 1.5rem; background: #fff; border: 1px solid var(--rule); border-radius: var(--r); }
.t-dir-group h2 { display: flex; align-items: center; gap: .6rem; margin: 0 0 .5rem; font: 800 1.35rem/1.2 var(--display); }
.t-dir-group .t-ico { color: var(--c2); flex: none; }
.t-dir-group > p { margin: 0 0 1rem; color: var(--muted); font-size: .98rem; }
.t-links { list-style: none; margin: 0 0 .75rem; padding: 0; display: grid; gap: .5rem; }
.t-links li { padding: .6rem .9rem; border-radius: 12px; background: var(--paper); border: 1px solid var(--rule); }
.t-links a { font-weight: 700; text-decoration: none; color: var(--c1); }
.t-links a:hover { text-decoration: underline; }
.t-note { display: block; color: var(--muted); font-size: .9rem; }
.t-none { margin: 1rem 0; font-weight: 650; }
:target.t-dir-group, .t-dir-group:target { outline: 3px solid var(--c3); outline-offset: 3px; }
.guide-sec { padding: 1.5rem 0; border-top: 1px solid var(--rule); max-width: 60rem; }
.guide-sec:first-child { border-top: 0; }
.guide-sec h2 { margin: 0 0 .75rem; font: 800 clamp(1.5rem, 3.6vw, 2.1rem)/1.15 var(--display); letter-spacing: -.025em; }
.plain { padding-left: 1.1rem; margin: .5rem 0 1rem; } .plain li { margin: .5rem 0; }
.link { color: var(--c2); font-weight: 650; text-underline-offset: .2em; }
.sister { margin-top: 2rem; color: var(--muted); }
.data { width: 100%; border-collapse: collapse; margin: .5rem 0 1rem; font-size: .95rem; background: #fff; border-radius: 12px; overflow: hidden; }
.data th, .data td { text-align: left; vertical-align: top; padding: .65rem .8rem; border-top: 1px solid var(--rule); }
.data thead th { border-top: 0; background: var(--c1); color: #fff; font-weight: 650; }
.data tbody th { font-weight: 650; width: 38%; color: var(--muted); }
@media (max-width: 640px) { .data { display: block; overflow-x: auto; } }
.plan-form { display: grid; gap: 1.25rem; margin: 0 0 1rem; max-width: 40rem; }
.plan-form fieldset { border: 1px solid var(--rule); border-radius: var(--r); background: #fff; padding: 1.1rem 1.25rem 1.3rem; display: grid; gap: .4rem; }
.plan-form legend { padding: 0 .5rem; font: 750 1.1rem/1.3 var(--display); }
.plan-form label { font-weight: 650; font-size: .95rem; margin-top: .5rem; }
.plan-form label.check { font-weight: 500; display: flex; align-items: center; gap: .6rem; margin-top: .25rem; }
.plan-form input[type=checkbox] { width: 1.2rem; height: 1.2rem; accent-color: var(--c2); }
.plan-form select, .plan-form input[type=number] { min-height: 2.9rem; padding: .5rem .8rem; font: inherit; color: inherit; background: #fff; border: 1.5px solid var(--rule); border-radius: 12px; max-width: 100%; }
.plan-form select:focus, .plan-form input:focus { border-color: var(--c2); outline: 2px solid color-mix(in srgb, var(--c2) 35%, transparent); }
.plan-form .t-btn, .plan-form .btn { justify-self: start; cursor: pointer; }
.plan-result h2 { margin: 2rem 0 .6rem; font: 800 1.5rem/1.2 var(--display); }
.budget { font-size: 1.2rem; }

/* Pie */
.t-foot { background: var(--c1); color: rgba(255,255,255,.88); padding-top: 3rem; }
.t-foot a { color: #fff; }
.t-foot-grid { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); padding-bottom: 2rem; }
.t-foot-brand { margin: 0 0 .5rem; font: 800 1.5rem/1.2 var(--display); color: #fff; }
.t-foot h2 { margin: 0 0 .75rem; font: 700 .85rem/1.2 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--c3); }
.t-foot ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.t-home { margin-top: 1rem; font-size: .9rem; } .t-home summary { cursor: pointer; font-weight: 650; }
.t-legal { display: flex; flex-wrap: wrap; gap: .5rem 2rem; justify-content: space-between; padding-top: 1.1rem; padding-bottom: 1.5rem; border-top: 1px solid rgba(255,255,255,.18); font-size: .875rem; }
@media (prefers-reduced-motion: reduce) { .t-slide, .t-card, .t-btn, .t-tile { transition: none; } html { scroll-behavior: auto; } }

/* Colores de botones y enlaces (mayor especificidad que .tour a) */
.tour a.t-btn { color: var(--on-c3); }
.tour a.t-btn-ghost { color: #fff; }
.tour a.t-btn-dark { color: #fff; }
.tour .t-history a.t-btn-dark, .tour .t-sister a.t-btn-dark { background: #fff; color: var(--c1); border-color: #fff; }
.tour a.t-link, .tour a.link { color: var(--c2); }
.tour .t-history a.t-link { color: #fff; }
.tour .t-foot a { color: #fff; }
.tour .t-util a { color: #fff; }
.t-sec-invite { margin: 1.25rem 0 0; padding-top: .9rem; border-top: 1px dashed currentColor; font-weight: 700; }
.tour .t-foot a.t-invite { display: inline-block; white-space: normal; text-align: left; }

/* Other destinations menu */
.t-util .t-wrap { justify-content: flex-end; }
.t-sub { position: relative; }
.t-sub > summary { list-style: none; cursor: pointer; padding: .55rem .8rem; border-radius: 999px; font-weight: 600; font-size: .95rem; }
.t-sub > summary::-webkit-details-marker { display: none; }
.t-sub > summary::after { content: " ▾"; font-size: .8em; }
.t-sub > summary:hover { background: var(--sand); }
.t-sub > div { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--rule); border-radius: 12px; padding: .35rem; margin-top: .25rem; min-width: 12rem; }
.t-menu nav .t-sub > div a { display: block; }
@media (min-width: 861px) { .t-sub > div { position: absolute; right: 0; top: 100%; z-index: 20; box-shadow: 0 12px 24px rgba(0,0,0,.1); } }
.t-menu nav { flex-wrap: wrap; }

/* Mexico Towns map */
.mx-map { width: 100%; height: auto; display: block; border-radius: var(--r); background: color-mix(in srgb, var(--c2) 8%, #fff); border: 1px solid var(--rule); }
.mx-land, .mx-dot, .mx-ring, .mx-frame { vector-effect: non-scaling-stroke; }
.mx-land { fill: color-mix(in srgb, var(--c2) 22%, #fff); stroke: var(--c1); stroke-width: 1px; stroke-linejoin: round; }
.mx-frame { fill: color-mix(in srgb, var(--c3) 35%, transparent); stroke: var(--c3); stroke-width: 2px; }
.mx-dot { fill: var(--c2); stroke: #fff; stroke-width: 1.5px; }
.mx-ring { fill: none; stroke: var(--c2); stroke-width: 1.2px; opacity: .55; }
.mx-lbl { font-family: var(--sans); font-weight: 750; fill: var(--c1); paint-order: stroke; stroke: #fff; stroke-linejoin: round; }
.mx-map a:hover .mx-dot, .mx-map a:focus .mx-dot { fill: var(--c3); }
.mx-note { margin-top: .4rem; }
.mx-maps { margin-top: 1.5rem; }
.mx-facts { padding-left: 1.2rem; display: grid; gap: .6rem; }


/* Mexico Towns: colorido y de viaje */
[data-brand="mt"] .t-util { background: linear-gradient(90deg, #d6196b, #ff6b2c 35%, #ffb400 60%, #00a99d); }
[data-brand="mt"] .t-mark { background: linear-gradient(135deg, #d6196b, #ff6b2c); }
[data-brand="mt"] .t-foot { background: linear-gradient(180deg, #2b0f54, #4a1470); }
[data-brand="mt"] .t-foot h2 { color: #ffb400; }
[data-brand="mt"] .t-pagehead { background: linear-gradient(120deg, #d6196b, #ff6b2c 62%, #ffb400); color: #fff; border: 0; }
[data-brand="mt"] .t-pagehead .t-kicker, [data-brand="mt"] .t-pagehead .t-lead { color: #fff; }
[data-brand="mt"] .t-pagehead .t-lead { opacity: .95; }
[data-brand="mt"] .t-card { border-top: 5px solid var(--c2); }
[data-brand="mt"] .t-more { color: var(--c2); }
.mt-hero { position: relative; overflow: hidden; color: #fff; min-height: clamp(34rem, 80vh, 46rem); display: flex; align-items: center; }
.mt-hero .t-scene { height: 34%; opacity: .95; }
.mt-hero-in { position: relative; z-index: 2; display: grid; gap: 2rem; align-items: center; padding-top: 3rem; padding-bottom: 9rem; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); }
.mt-hero h1 { margin: 0 0 1rem; font: 800 clamp(2.4rem, 7vw, 4.6rem)/1 var(--display); letter-spacing: -.04em; text-wrap: balance; }
.mt-hero .t-kicker { color: var(--sun); }
.mt-lead { max-width: 40ch; margin: 0 0 1.5rem; font-size: clamp(1.05rem, 2.2vw, 1.3rem); line-height: 1.5; }
.mt-map-card { background: rgba(255,255,255,.94); border-radius: 24px; padding: 1rem; box-shadow: 0 20px 50px rgba(43,15,84,.35); color: var(--ink); }
.mt-map-card .mx-map { background: #e9fbf8; border: 0; }
.mt-map-card .mx-land { fill: #7fd8cd; stroke: #0a6f68; }
.mt-map-card .mx-dot { fill: var(--c2); }
.mt-map-card .mx-lbl { fill: var(--c1); }
.mt-moods { background: var(--paper); }
.mt-mood-grid, .mt-state-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.mt-mood-grid { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.mt-state-grid { grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); gap: 1.4rem; }
.mt-mood { display: flex; flex-direction: column; gap: .4rem; height: 100%; min-height: 9rem; padding: 1.3rem; border-radius: 22px; color: #fff; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.mt-mood:hover { transform: translateY(-4px) rotate(-.6deg); box-shadow: 0 14px 26px rgba(43,15,84,.25); }
.mt-mood-k { font: 800 1.4rem/1.15 var(--display); }
.mt-c-teal { background: #00a99d; } .mt-c-pink { background: #d6196b; } .mt-c-orange { background: #e9561c; } .mt-c-green { background: #3a8f36; }
.tour a.mt-mood, .tour a.mt-state { color: #fff; }
.mt-state { display: flex; flex-direction: column; height: 100%; border-radius: 24px; overflow: hidden; text-decoration: none; background: #fff; color: var(--ink); box-shadow: 0 8px 24px rgba(43,15,84,.14); transition: transform .2s ease, box-shadow .2s ease; }
.tour a.mt-state { color: var(--ink); }
.mt-state:hover { transform: translateY(-5px); box-shadow: 0 18px 36px rgba(43,15,84,.24); }
.mt-state-art { position: relative; display: block; height: 11rem; }
.mt-state-art .t-scene { height: 100%; }
.mt-state-body { display: flex; flex-direction: column; gap: .5rem; padding: 1.2rem 1.4rem 1.5rem; border-top: 6px solid var(--c2); flex: 1; }
.mt-state.mt-c-teal .mt-state-body { border-color: #00a99d; } .mt-state.mt-c-pink .mt-state-body { border-color: #d6196b; } .mt-state.mt-c-orange .mt-state-body { border-color: #ff6b2c; }
.mt-state-name { font: 800 1.6rem/1.1 var(--display); }
.mt-state-intro { color: var(--muted); }
.mt-state .t-more { margin-top: auto; font-weight: 700; color: var(--c2); }
.mt-band { background: linear-gradient(120deg, #2b0f54, #5a1a7d); color: #fff; padding: clamp(2.5rem, 6vw, 4rem) 0; }
.mt-band .t-kicker { color: var(--c3); } .mt-band .t-h2 { color: #fff; }
.mt-sources { background: rgba(255,255,255,.1); border-radius: 20px; padding: 1.4rem; align-self: center; }
.mt-sources h3 { margin: 0 0 .5rem; font: 800 1.3rem/1.2 var(--display); }


/* Juana Moza: colores de Veracruz (Golfo, palmar, sol y rojo jarocho) */
[data-brand="jm"] .t-util { background: linear-gradient(90deg, #e63b2e, #ffc21a 40%, #0aa3b8 75%, #2e9e4f); }
[data-brand="jm"] .t-util a { color: #1b1200; text-shadow: 0 1px 0 rgba(255,255,255,.25); }
.tour [data-brand="jm"] .t-util a, [data-brand="jm"] .tour .t-util a { color: #1b1200; }
[data-brand="jm"] .t-mark { background: linear-gradient(135deg, #e63b2e, #ff8a1f); }
[data-brand="jm"] .t-foot { background: linear-gradient(180deg, #06365e, #0a5a78); }
[data-brand="jm"] .sc-river { background: linear-gradient(180deg, #0aa3b8 0%, #7fd6c8 42%, #ffd166 78%, #ff8a3d 100%); }
[data-brand="jm"] .sc-mangrove { background: linear-gradient(180deg, #087f6d 0%, #35b36b 60%, #d8f06a 100%); }
[data-brand="jm"] .sc-fiesta { background: linear-gradient(180deg, #06365e 0%, #e63b2e 60%, #ffc21a 100%); }
[data-brand="jm"] .sc-craft { background: linear-gradient(180deg, #0aa3b8 0%, #ffd166 60%, #ff8a3d 100%); }
[data-brand="jm"] .t-art { background: linear-gradient(180deg, #0aa3b8, #ffd166 70%, #ff8a3d); }
[data-brand="jm"] .t-scene .hill { fill: rgba(20,110,70,.75); }
[data-brand="jm"] .t-scene .w1 { fill: rgba(255,255,255,.35); } [data-brand="jm"] .t-scene .w2 { fill: rgba(6,90,120,.55); } [data-brand="jm"] .t-scene .w3 { fill: rgba(6,54,94,.85); }
[data-brand="jm"] .t-scene .palm path { stroke: rgba(10,80,50,.95); }
[data-brand="jm"] .t-scene .doll circle, [data-brand="jm"] .t-scene .doll path { fill: rgba(230,59,46,.95); stroke: rgba(230,59,46,.95); }
[data-brand="jm"] .t-pagehead { background: linear-gradient(120deg, #0aa3b8, #2e9e4f 60%, #ffc21a); color: #fff; border: 0; }
[data-brand="jm"] .t-pagehead .t-kicker, [data-brand="jm"] .t-pagehead .t-lead { color: #fff; }
[data-brand="jm"] .t-card { border-top: 5px solid var(--c2); }
[data-brand="jm"] .t-more, [data-brand="jm"] .t-kicker { color: var(--red); }
[data-brand="jm"] .t-hero .t-kicker, [data-brand="jm"] .t-history .t-kicker, [data-brand="jm"] .t-sister .t-kicker { color: var(--sun); }
[data-brand="jm"] .t-find { background: #fff3c4; }
[data-brand="jm"] .t-tile { border-color: #0aa3b8; }
[data-brand="jm"] .t-history { background: #06365e; }
[data-brand="jm"] .t-plan { background: #fff3c4; }
[data-brand="jm"] .t-sister { background: linear-gradient(135deg, #e63b2e, #ff8a1f); }


/* Portales de pueblo: tamiahua.org, huichapan.org, maravatio.org */
:is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .t-util { background: linear-gradient(90deg, var(--g1), var(--g2) 50%, var(--g3)); }
:is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .t-util a { color: #1b1200; }
:is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .t-mark { background: linear-gradient(135deg, var(--g1), var(--g2)); }
:is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .t-foot { background: var(--c1); }
:is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .t-pagehead { background: linear-gradient(120deg, var(--g1), var(--g2) 60%, var(--g3)); color: #fff; border: 0; }
:is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .t-pagehead .t-kicker, :is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .t-pagehead .t-lead { color: #fff; }
:is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .t-card { border-top: 5px solid var(--c2); }
:is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .t-more, :is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .t-kicker { color: var(--c2); }
:is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .mt-hero .t-kicker { color: var(--sun); }
:is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .mt-band { background: var(--c1); }
:is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .mt-band .t-kicker { color: var(--c3); }
:is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .mt-map-card .mx-land { fill: color-mix(in srgb, var(--c2) 35%, #fff); stroke: var(--c1); }
:is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .mt-map-card .mx-dot { fill: var(--c2); }
:is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .t-chips a, :is([data-brand="tm"], [data-brand="hu"], [data-brand="ma"]) .t-chips span { border-color: var(--c2); }
[data-brand="tm"] .sc-mangrove { background: linear-gradient(180deg, #07416b 0%, #00a6a6 55%, #ffd166 100%); }
[data-brand="hu"] .sc-city { background: linear-gradient(180deg, #4a1d3d 0%, #c2185b 55%, #ffb347 100%); }
[data-brand="ma"] .sc-fiesta { background: linear-gradient(180deg, #4a0f24 0%, #c0212f 55%, #f7b32b 100%); }
.tn-facts { list-style: none; margin: 0 0 2rem; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); }
.tn-facts li { background: #fff; border-radius: 18px; border-left: 6px solid var(--c2); padding: 1.2rem 1.3rem; box-shadow: 0 6px 18px rgba(0,0,0,.08); display: flex; flex-direction: column; gap: .6rem; }
.tn-facts p { margin: 0; }
.tour .t-chips-lg span { display: inline-block; padding: .55rem 1.1rem; border: 1.5px solid var(--c2); border-radius: 999px; background: #fff; font-weight: 600; }

/* Paleta cohesiva: pocas tonalidades por sitio, sin franjas de muchos colores */
.t-scene .f0 { fill: #ff7a59; } .t-scene .f1 { fill: #ffd166; } .t-scene .f2 { fill: #ffb347; } .t-scene .f3 { fill: #ff9f7a; }
[data-brand="jm"] .t-util { background: linear-gradient(90deg, #06365e, #0aa3b8); }
[data-brand="jm"] .t-util a, [data-brand="jm"] .tour .t-util a { color: #fff; text-shadow: none; }
[data-brand="jm"] .t-mark { background: linear-gradient(135deg, #0aa3b8, #06365e); }
[data-brand="jm"] .sc-river { background: linear-gradient(180deg, #0aa3b8 0%, #7fd6c8 48%, #ffd98a 88%); }
[data-brand="jm"] .sc-fiesta { background: linear-gradient(180deg, #06365e 0%, #0aa3b8 62%, #ffd166 100%); }
[data-brand="jm"] .sc-craft { background: linear-gradient(180deg, #0aa3b8 0%, #ffd98a 62%, #ffcf6b 100%); }
[data-brand="jm"] .t-art { background: linear-gradient(180deg, #0aa3b8, #ffd98a 75%, #ffcf6b); }
[data-brand="jm"] .t-scene .doll circle, [data-brand="jm"] .t-scene .doll path { fill: rgba(6,54,94,.95); stroke: rgba(6,54,94,.95); }
[data-brand="jm"] .t-pagehead { background: linear-gradient(120deg, #0aa3b8, #06365e); }
[data-brand="jm"] .t-sister { background: linear-gradient(135deg, #06365e, #0a5a78); }
[data-brand="jm"] .t-more, [data-brand="jm"] .t-kicker { color: #0a7f90; }
[data-brand="jm"] .t-hero .t-kicker, [data-brand="jm"] .t-history .t-kicker, [data-brand="jm"] .t-sister .t-kicker { color: var(--sun); }
[data-brand="jm"] .t-scene .palm path { stroke: rgba(6,60,70,.95); }
[data-brand="mt"] .t-util { background: linear-gradient(90deg, #d6196b, #ff6b2c); }
[data-brand="mt"] .t-mark { background: linear-gradient(135deg, #d6196b, #7a1f5c); }
[data-brand="mt"] .t-pagehead { background: linear-gradient(120deg, #d6196b, #ff6b2c); }
.mt-mood.mt-c-teal { background: #5b2a8c; } .mt-mood.mt-c-pink { background: #d6196b; } .mt-mood.mt-c-orange { background: #e9561c; } .mt-mood.mt-c-green { background: #8a1c5a; }
.mt-state.mt-c-teal .mt-state-body { border-color: #5b2a8c; } .mt-state.mt-c-pink .mt-state-body { border-color: #d6196b; } .mt-state.mt-c-orange .mt-state-body { border-color: #e9561c; }
.mt-map-card .mx-map { background: #fff3f8; } .mt-map-card .mx-land { fill: #f6c3d9; stroke: #7a1f5c; }
[data-brand="tm"] { --g1: #00a6a6; --g2: #0a7f9a; --g3: #07416b; }
[data-brand="hu"] { --g1: #c2185b; --g2: #d9304e; --g3: #ef6c00; }
[data-brand="ma"] { --g1: #c0212f; --g2: #e0452f; --g3: #f7b32b; }
[data-brand="tm"] .t-util a { color: #fff; }
[data-brand="tm"] .sc-mangrove { background: linear-gradient(180deg, #07416b 0%, #00a6a6 60%, #ffd98a 100%); }
[data-brand="tm"] .mt-map-card .mx-land { fill: #bfe9e6; }

/* Muñecas Juanitas: tonos tierra y rojo ladrillo (artesanía), cada una de un solo color, sin secuencias de tonos brillantes */
[data-brand="jm"] .t-scene .doll circle { fill: #3a1d12; stroke: #3a1d12; }
[data-brand="jm"] .t-scene .doll path { fill: #b5382c; stroke: #b5382c; }
[data-brand="jm"] .t-scene g.doll:nth-of-type(3n+2) path { fill: #c8891d; stroke: #c8891d; }
[data-brand="jm"] .t-scene g.doll:nth-of-type(3n+3) path { fill: #7a3a1e; stroke: #7a3a1e; }

/* Explorar: fichas */
.mx-ficha { max-width: 70ch; }
.mx-ficha .t-h3 { margin: 1.6rem 0 .4rem; font-size: 1.2rem; }
.mx-ficha p { margin: 0 0 .6rem; line-height: 1.65; }
.mx-src { padding-left: 1.2rem; display: grid; gap: .3rem; overflow-wrap: anywhere; }
.t-pagehead .t-kicker a.t-link { color: inherit; }

.t-indep { margin: 0; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.15); font-size: .85rem; opacity: .85; max-width: 80ch; }
