/* Mediterránea · capa de experiencia: composición visual, movimiento y transiciones entre páginas.
   Todo movimiento depende de html.mx-motion (se omite con prefers-reduced-motion, sin JS y en pruebas automáticas). */
body.mediterranean {
  --deep:#0f2b21; --deep-2:#16392c; --cream:#f5f1e4; --citrus:#e9a53a; --terra:#c8653d;
  --mint:#9fc0a8; --ease:cubic-bezier(.16,1,.3,1);
}
.mediterranean h2 em,.mediterranean h1 em { font-family:'Fraunces','Fraunces Fallback',Georgia,serif; font-style:italic; font-weight:400; letter-spacing:-.03em; }

/* ---------- Transiciones entre páginas (View Transitions, navegación del mismo origen) ---------- */
@view-transition { navigation:auto; }
.mediterranean .site-header { view-transition-name:site-header; }
.mx-progress { view-transition-name:progress; }
::view-transition-old(root) { animation:mx-vt-out .32s cubic-bezier(.4,0,1,1) both; }
::view-transition-new(root) { animation:mx-vt-in .7s var(--ease,cubic-bezier(.16,1,.3,1)) both; }
::view-transition-group(*) { animation-duration:.75s; animation-timing-function:cubic-bezier(.16,1,.3,1); }
::view-transition-image-pair(*) { isolation:isolate; }
@keyframes mx-vt-out { to { opacity:0; transform:translateY(-18px) scale(.985); filter:blur(3px); } }
@keyframes mx-vt-in { from { opacity:0; transform:translateY(34px); clip-path:inset(8% 0 0 0 round 24px); } to { opacity:1; transform:none; clip-path:inset(0 round 0); } }
@media (prefers-reduced-motion:reduce) {
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*) { animation:none !important; }
}

/* ---------- Cabecera y progreso ---------- */
.mx-progress { position:fixed; inset:0 0 auto; height:3px; z-index:80; transform-origin:0 50%; transform:scaleX(var(--p,0)); background:linear-gradient(90deg,var(--citrus),var(--terra)); pointer-events:none; }
.mediterranean .site-header { transition:background-color .35s,box-shadow .35s,backdrop-filter .35s; }
.mediterranean .header-inner { transition:height .35s var(--ease); }
.mediterranean .site-header.is-scrolled { background:rgba(250,250,244,.8); -webkit-backdrop-filter:saturate(1.5) blur(16px); backdrop-filter:saturate(1.5) blur(16px); box-shadow:0 12px 30px rgba(25,61,48,.07); }
.mediterranean .site-header.is-scrolled .header-inner { height:70px; }
.mediterranean .button { position:relative; overflow:hidden; isolation:isolate; }
.mediterranean .button::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%); transform:translateX(-120%); transition:transform .8s var(--ease); }
.mediterranean .button:hover::after { transform:translateX(120%); }

/* ---------- Revelado al hacer scroll ---------- */
.mx-motion .rv { opacity:0; transform:translateY(34px); transition:opacity .9s var(--ease),transform 1.1s var(--ease); transition-delay:calc(var(--i,0) * 90ms); }
.mx-motion .rv.in { opacity:1; transform:none; }
.mx-motion .mx-reveal-img { clip-path:inset(10% 8% 10% 8% round 26px); transition:clip-path 1.4s var(--ease); }
.mx-motion .mx-reveal-img img { transform:scale(1.14); transition:transform 1.8s var(--ease); }
.mx-motion .mx-reveal-img.in { clip-path:inset(0 round 6px); }
.mx-motion .mx-reveal-img.in img { transform:none; }
.mx-motion .mx-load { animation:mx-fade-up 1s var(--ease) both; animation-delay:calc(var(--d,0) * 110ms + 150ms); }
@keyframes mx-fade-up { from { opacity:0; transform:translateY(24px); } }
@keyframes mx-rise { from { transform:translateY(108%) rotate(2deg); } }
@keyframes mx-spin { to { rotate:360deg; } }
@keyframes mx-float { from { transform:translateY(-9px) rotate(-2deg); } to { transform:translateY(9px) rotate(2deg); } }
@keyframes mx-draw { from { stroke-dashoffset:1; } }

/* ---------- Hero de portada ---------- */
.mx-hero { position:relative; overflow:hidden; padding-block:34px 84px; background:radial-gradient(90% 70% at 85% 25%,#e7ecdc 0,transparent 60%),radial-gradient(60% 60% at 0% 100%,#f1e8d6 0,transparent 55%),var(--bg); }
.mx-hero-lines { position:absolute; inset:auto 0 0; height:70%; pointer-events:none; }
.mx-hero-lines svg { width:100%; height:100%; }
.mx-hero-lines path { fill:none; stroke:#cfd8c6; stroke-width:1.2; vector-effect:non-scaling-stroke; }
.mx-motion .mx-hero-lines path { stroke-dasharray:1; stroke-dashoffset:0; animation:mx-draw 3s var(--ease) both; }
.mx-motion .mx-hero-lines path:nth-child(2) { animation-delay:.25s; } .mx-motion .mx-hero-lines path:nth-child(3) { animation-delay:.5s; }
.mx-hero-grid { position:relative; display:grid; grid-template-columns:1.04fr 1fr; gap:64px; align-items:center; min-height:min(calc(100vh - 130px),760px); }
.mx-hero-copy .eyebrow { color:var(--earth); }
.mx-title { font-family:'Manrope','Manrope Fallback',sans-serif; font-weight:500; font-size:clamp(52px,6.3vw,102px); line-height:.98; letter-spacing:-.068em; margin:26px 0 30px; }
.mx-title .ln { display:block; overflow:hidden; padding-bottom:.08em; margin-bottom:-.08em; }
.mx-title .ln>span { display:inline-block; }
.mx-title em { color:var(--accent); font-size:1.04em; }
.mx-motion .mx-title .ln>span { animation:mx-rise 1.1s var(--ease) both; animation-delay:calc(var(--d) * 110ms + 120ms); }
.mx-who { display:grid; grid-template-columns:1fr 1fr; gap:30px; border-top:1px solid var(--line); padding-top:22px; max-width:620px; }
.mx-who .kicker { color:var(--earth); font-size:10px; font-weight:700; }
.mx-who p { margin-top:8px; font-size:14.5px; line-height:1.7; color:var(--muted); }
.mx-hero-copy .actions { margin-top:32px; gap:26px; }

.mx-stage { position:relative; height:620px; }
.mx-arch { position:absolute; inset:0 44px 64px 70px; border-radius:320px 320px 14px 14px; overflow:hidden; background:#dfe6d6; box-shadow:0 40px 80px -40px rgba(15,43,33,.45); }
.mx-arch img { width:100%; height:100%; object-fit:cover; }
.mx-arch::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(15,43,33,.35),transparent 45%); }
.mx-motion .mx-arch { animation:mx-arch 1.6s var(--ease) .15s both; }
.mx-motion .mx-arch img { animation:mx-zoom 2.4s var(--ease) .15s both; }
@keyframes mx-arch { from { clip-path:inset(100% 0 0 0 round 320px 320px 14px 14px); } to { clip-path:inset(0 round 320px 320px 14px 14px); } }
@keyframes mx-zoom { from { transform:scale(1.25); } }
.mx-orb { position:absolute; border-radius:50%; overflow:hidden; border:7px solid var(--bg); background:#fff; box-shadow:0 22px 44px -18px rgba(15,43,33,.45); transition:translate .6s var(--ease); }
.mx-orb img { width:100%; height:100%; object-fit:cover; }
.mx-orb-a { width:168px; height:168px; top:120px; left:0; }
.mx-orb-b { width:128px; height:128px; bottom:128px; right:0; }
.mx-motion .mx-orb { animation:mx-pop 1s var(--ease) both,mx-float 6s ease-in-out 1.2s infinite alternate; }
.mx-motion .mx-orb-a { animation-delay:.7s,1.4s; } .mx-motion .mx-orb-b { animation-delay:.9s,1.6s; animation-duration:1s,7.5s; }
@keyframes mx-pop { from { opacity:0; scale:.6; } }
.mx-badge { position:absolute; top:6px; right:10px; width:132px; height:132px; border-radius:50%; background:var(--bg); display:grid; place-items:center; box-shadow:0 12px 30px -12px rgba(15,43,33,.3); }
.mx-badge svg { position:absolute; inset:0; width:100%; height:100%; }
.mx-badge text { font:700 8.6px 'DM Sans','DM Sans Fallback',sans-serif; letter-spacing:2.25px; fill:var(--ink); }
.mx-badge>span { width:30px; color:var(--accent); }
.mx-badge>span svg { position:static; width:100%; height:auto; }
.mx-motion .mx-badge svg { animation:mx-spin 26s linear infinite; }
.mx-route-card { position:absolute; left:28px; right:120px; bottom:18px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:18px; padding:16px 22px; border-radius:16px; background:rgba(255,255,255,.8); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px); border:1px solid rgba(255,255,255,.7); box-shadow:0 18px 40px -20px rgba(15,43,33,.35); }
.mx-route-card .kicker { display:block; font-size:9px; color:var(--muted); }
.mx-route-card strong { display:block; font:600 16px/1.25 'Manrope','Manrope Fallback',sans-serif; letter-spacing:-.02em; margin-top:3px; }
.mx-route-line { width:100%; height:20px; overflow:visible; }
.mx-route-line path { stroke:var(--ink); stroke-width:1.2; stroke-dasharray:3 5; fill:none; opacity:.55; }
.mx-route-line circle { fill:var(--terra); }
.mx-motion .mx-route-line circle { animation:mx-travel 3.2s cubic-bezier(.65,0,.35,1) infinite; }
@keyframes mx-travel { 0% { cx:2; } 70%,100% { cx:118; } }
.mx-scroll-cue { position:absolute; left:50%; bottom:22px; translate:-50% 0; display:flex; flex-direction:column; align-items:center; gap:10px; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.mx-scroll-cue i { width:1px; height:38px; background:linear-gradient(var(--ink),transparent); transform-origin:top; }
.mx-motion .mx-scroll-cue i { animation:mx-cue 2.2s var(--ease) infinite; }
@keyframes mx-cue { 0% { transform:scaleY(0); } 50% { transform:scaleY(1); transform-origin:top; } 51% { transform-origin:bottom; } 100% { transform:scaleY(0); transform-origin:bottom; } }

/* ---------- Cinta de productos ---------- */
.mx-marquee { border-block:1px solid var(--line); background:#f1f3ea; padding-block:14px; display:grid; gap:10px; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.mx-marquee-row { display:flex; overflow:hidden; }
.mx-marquee ul { list-style:none; margin:0; padding:0 12px 0 0; display:flex; gap:12px; flex:none; }
.mx-marquee li { display:flex; align-items:center; gap:10px; padding:5px 18px 5px 5px; border-radius:99px; background:#fff; border:1px solid #e1e7da; white-space:nowrap; font:600 13px 'Manrope','Manrope Fallback',sans-serif; letter-spacing:-.01em; }
.mx-marquee li img { width:38px; height:38px; border-radius:50%; object-fit:cover; }
.mx-motion .mx-marquee ul { animation:mx-marquee 70s linear infinite; }
.mx-motion .mx-marquee-row.reverse ul { animation-direction:reverse; animation-duration:80s; }
.mx-marquee:hover ul { animation-play-state:paused !important; }
@keyframes mx-marquee { to { transform:translateX(-100%); } }
html:not(.mx-motion) .mx-marquee ul[aria-hidden] { display:none; }


/* ---------- Puente: qué hacemos ---------- */
.mx-bridge { background:linear-gradient(#f8f8f2,#eef1e6); }
.mx-bridge .section-heading h2 { max-width:20ch; }
.mx-bridge-diagram { display:grid; grid-template-columns:1fr minmax(110px,170px) 1.12fr minmax(110px,170px) 1fr; align-items:center; margin-top:20px; }
.mx-node { background:#fff; border:1px solid #e0e6d8; border-radius:22px; padding:30px 28px; box-shadow:0 24px 50px -36px rgba(15,43,33,.4); }
.mx-node-icon { width:52px; height:52px; border-radius:14px; display:grid; place-items:center; background:var(--soft); color:var(--accent); margin-bottom:22px; }
.mx-node-icon svg { width:28px; }
.mx-node .kicker { color:var(--earth); font-size:10px; font-weight:700; }
.mx-node h3 { font:600 25px/1.15 'Manrope','Manrope Fallback',sans-serif; letter-spacing:-.04em; margin-top:8px; }
.mx-node>p { color:var(--muted); font-size:14px; margin-top:4px; }
.mx-node ul { list-style:none; padding:18px 0 0; margin:18px 0 0; border-top:1px solid var(--line); display:grid; gap:9px; }
.mx-node li { font-size:13.5px; display:flex; gap:10px; align-items:baseline; }
.mx-node li::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--accent); flex:none; translate:0 -2px; }
.mx-node-hub { background:var(--deep); color:var(--cream); border-color:var(--deep); text-align:center; padding:38px 30px; position:relative; box-shadow:0 40px 70px -35px rgba(15,43,33,.7); }
.mx-node-hub .kicker { color:var(--citrus); }
.mx-node-hub h3 { font-size:30px; font-weight:800; letter-spacing:-.05em; }
.mx-node-hub>p { color:var(--mint); }
.mx-node-hub ul { border-color:#ffffff22; justify-items:center; }
.mx-node-hub li::before { background:var(--citrus); }
.mx-hub-mark { position:relative; width:92px; height:92px; margin:0 auto 20px; display:grid; place-items:center; border-radius:50%; background:var(--deep-2); color:var(--cream); }
.mx-hub-mark svg { width:36px; }
.mx-hub-ring { position:absolute; inset:-8px; border-radius:50%; border:1.5px dashed rgba(233,165,58,.7); }
.mx-motion .mx-hub-ring { animation:mx-spin 18s linear infinite; }
.mx-link { position:relative; height:120px; }
.mx-link svg { position:absolute; left:0; right:0; top:25px; width:100%; height:70px; overflow:visible; }
.mx-link path { fill:none; stroke-width:1.5; vector-effect:non-scaling-stroke; }
.mx-link-base { stroke:#c9d3c1; stroke-dasharray:2 5; }
.mx-link-flow { stroke:var(--citrus); stroke-width:2.5 !important; stroke-linecap:round; stroke-dasharray:14 146; }
.mx-link-flow.back { stroke:var(--terra); }
.mx-motion .mx-link-flow { animation:mx-flow 2.6s linear infinite; }
.mx-motion .mx-link-flow.back { animation-delay:-1.3s; }
@keyframes mx-flow { from { stroke-dashoffset:160; } to { stroke-dashoffset:0; } }
.mx-link span { position:absolute; left:0; right:0; text-align:center; font-size:10px; line-height:1.35; letter-spacing:.04em; color:var(--muted); padding-inline:6px; }
.mx-link-top { top:0; } .mx-link-bottom { bottom:0; }

/* ---------- Cifras ---------- */
.mx-figures { background:var(--deep); color:var(--cream); padding-block:70px; position:relative; overflow:hidden; }
.mx-figures::before { content:''; position:absolute; inset:-40% -10% auto auto; width:640px; height:640px; border-radius:50%; background:radial-gradient(circle,rgba(233,165,58,.18),transparent 65%); pointer-events:none; }
.mx-figures dl { margin:0; display:grid; grid-template-columns:repeat(4,1fr); position:relative; }
.mx-figures dl>div { display:flex; flex-direction:column-reverse; justify-content:flex-end; gap:10px; padding:6px 26px; border-left:1px solid #ffffff22; }
.mx-figures dl>div:first-child { border-left:0; padding-left:0; }
.mx-figures dd { margin:0; font:400 clamp(46px,4.6vw,74px)/1 'Fraunces','Fraunces Fallback',Georgia,serif; letter-spacing:-.04em; color:#fff; font-variant-numeric:tabular-nums; }
.mx-figures dt { font-size:12px; color:var(--mint); letter-spacing:.02em; max-width:18ch; }

/* ---------- Método: relato con scroll ---------- */
.mx-story-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:90px; align-items:start; }
.mx-story-aside { position:sticky; top:110px; }
.mx-story-aside h2 { margin:18px 0 30px; }
.mx-story-frames { position:relative; aspect-ratio:1; max-width:520px; border-radius:26px; overflow:hidden; background:#e7ebdf; margin-bottom:28px; box-shadow:0 40px 70px -45px rgba(15,43,33,.55); }
.mx-frame { position:absolute; inset:0; margin:0; opacity:0; transform:scale(1.08); transition:opacity .9s var(--ease),transform 1.4s var(--ease); }
.mx-frame.is-active { opacity:1; transform:none; }
.mx-frame img { width:100%; height:100%; object-fit:cover; }
.mx-story-count { position:absolute; left:18px; bottom:18px; padding:8px 14px; border-radius:99px; background:rgba(255,255,255,.85); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); font:600 12px 'Manrope','Manrope Fallback',sans-serif; }
.mx-story-steps { list-style:none; margin:0; padding:0; counter-reset:step; }
.mx-step { display:grid; grid-template-columns:74px 1fr; gap:10px; min-height:62vh; align-content:center; padding-block:40px; border-top:1px solid var(--line); }
.mx-step:first-child { border-top:0; min-height:48vh; align-content:start; padding-top:120px; }
.mx-step:last-child { min-height:52vh; }
.mx-step-n { font:400 44px/1 'Fraunces','Fraunces Fallback',serif; color:var(--earth); }
.mx-step h3 { font:600 clamp(28px,2.6vw,40px)/1.1 'Manrope','Manrope Fallback',sans-serif; letter-spacing:-.045em; }
.mx-step p { margin-top:16px; font-size:16px; line-height:1.8; color:var(--muted); max-width:44ch; }
.mx-motion .mx-step { opacity:.28; transition:opacity .6s; }
.mx-motion .mx-step.is-active { opacity:1; }
.mx-step-img { display:none; margin:22px 0 0; border-radius:18px; overflow:hidden; aspect-ratio:4/3; }
.mx-step-img img { width:100%; height:100%; object-fit:cover; }

/* ---------- Familias: acordeón ---------- */
.mx-families { background:var(--soft); }
.mx-accordion { display:flex; gap:12px; height:560px; }
.mx-panel { position:relative; flex:1; min-width:0; overflow:hidden; border-radius:22px; color:#fff; background:var(--deep); transition:flex 0.8s var(--ease); isolation:isolate; }
.mx-panel-img { position:absolute; inset:0; z-index:-2; }
.mx-panel-img img { width:100%; height:100%; object-fit:cover; transform:scale(1.12); transition:transform 1.2s var(--ease); }
.mx-panel::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,rgba(10,32,24,.92) 0,rgba(10,32,24,.35) 45%,rgba(10,32,24,.15)); transition:background .6s; }
.mx-panel-n { position:absolute; top:18px; left:18px; padding:6px 11px; border-radius:99px; background:rgba(255,255,255,.18); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); font:600 11px 'Manrope','Manrope Fallback',sans-serif; }
.mx-panel-label { position:absolute; left:50%; bottom:26px; writing-mode:vertical-rl; rotate:180deg; translate:-50% 0; font:600 18px 'Manrope','Manrope Fallback',sans-serif; letter-spacing:-.02em; white-space:nowrap; transition:opacity .4s; }
.mx-panel-body { position:absolute; left:0; bottom:0; width:min(430px,100%); min-width:330px; padding:30px; opacity:0; transform:translateY(24px); transition:opacity .5s,transform .8s var(--ease); }
.mx-panel:nth-child(n+4) .mx-panel-body { left:auto; right:0; }
.mx-panel-body h3 { font:600 30px/1.1 'Manrope','Manrope Fallback',sans-serif; letter-spacing:-.045em; }
.mx-panel-body p { margin-top:10px; font-size:14px; line-height:1.65; color:#e2ebdf; }
.mx-panel-cta { display:inline-flex; gap:14px; align-items:center; margin-top:18px; font-size:12.5px; font-weight:700; border-bottom:1px solid currentColor; padding-bottom:6px; }
.mx-accordion:not(:hover):not(:focus-within) .mx-panel:first-child,.mx-panel:hover,.mx-panel:focus-visible { flex:4.2; }
.mx-accordion:not(:hover):not(:focus-within) .mx-panel:first-child .mx-panel-body,.mx-panel:hover .mx-panel-body,.mx-panel:focus-visible .mx-panel-body { opacity:1; transform:none; transition-delay:.18s; }
.mx-accordion:not(:hover):not(:focus-within) .mx-panel:first-child .mx-panel-label,.mx-panel:hover .mx-panel-label,.mx-panel:focus-visible .mx-panel-label { opacity:0; }
.mx-accordion:not(:hover):not(:focus-within) .mx-panel:first-child img,.mx-panel:hover img,.mx-panel:focus-visible img { transform:none; }
.mx-panel:focus-visible { outline:3px solid var(--citrus); outline-offset:3px; }

/* ---------- Mapa ---------- */
.mx-world { position:relative; overflow:hidden; background:radial-gradient(70% 90% at 75% 40%,#1c4636 0,transparent 70%),var(--deep); color:var(--cream); padding-block:120px; }
.mx-grain { position:absolute; inset:0; pointer-events:none; opacity:.09; mix-blend-mode:overlay; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.mx-world-grid { position:relative; display:grid; grid-template-columns:.78fr 1.4fr; gap:56px; align-items:center; }
.mx-world .eyebrow { color:var(--citrus); }
.mx-world h2 { color:#fff; margin:20px 0 22px; }
.mx-world h2 em { color:var(--citrus); }
.mx-world-copy>p { color:#c9d8cc; font-size:15px; line-height:1.8; }
.mx-regions { display:grid; grid-template-columns:1fr 1fr; gap:22px 20px; margin-top:32px; }
.mx-region h3 { font:700 10px 'DM Sans','DM Sans Fallback',sans-serif; letter-spacing:.14em; text-transform:uppercase; color:var(--mint); margin-bottom:10px; }
.mx-region ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
.mx-region button { border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.03); color:var(--cream); border-radius:99px; padding:6px 13px; font-size:12.5px; transition:background .25s,color .25s,border-color .25s; }
.mx-region button:hover,.mx-region button[aria-pressed='true'] { background:var(--citrus); border-color:var(--citrus); color:var(--deep); }
.mx-region button:focus-visible { outline-color:var(--citrus); }
.mx-world-note { margin-top:26px; font-size:11.5px; line-height:1.6; color:#9fb5a6; }
.mx-world-map { position:relative; margin:0; }
.med-map-svg { width:100%; height:auto; overflow:hidden; -webkit-mask-image:radial-gradient(ellipse 78% 74% at 50% 50%,#000 62%,transparent 100%); mask-image:radial-gradient(ellipse 78% 74% at 50% 50%,#000 62%,transparent 100%); }
.map-land { fill:url(#map-dots); color:#4d7b66; }
.map-country { fill:#2c6049; stroke:#6fa287; stroke-width:.3; transition:fill .4s; }
.map-country.is-active { fill:var(--citrus); }
.map-route { fill:none; stroke:url(#route-gradient); stroke-width:.8; stroke-linecap:round; stroke-dasharray:1; stroke-dashoffset:0; opacity:.75; transition:stroke-width .3s,opacity .3s; }
.mx-motion .mx-world:not(.in) .map-route { stroke-dashoffset:1; }
.mx-motion .mx-world .map-route { transition:stroke-dashoffset 1.6s var(--ease),stroke-width .3s,opacity .3s; transition-delay:calc(var(--i) * 110ms + .3s),0s,0s; }
.mx-world-map.has-active .map-route { opacity:.25; }
.mx-world-map.has-active .map-route.is-active { opacity:1; stroke-width:1.6; filter:drop-shadow(0 0 2px rgba(233,165,58,.9)); }
.map-dot circle { fill:var(--cream); }
.map-dot .map-pulse { fill:none; stroke:var(--citrus); stroke-width:.5; opacity:0; transform-box:fill-box; transform-origin:center; }
.mx-motion .map-dot .map-pulse { animation:mx-pulse 2.8s ease-out infinite; animation-delay:calc(var(--i) * 210ms); }
.map-dot.is-active circle:last-child { fill:var(--citrus); }
@keyframes mx-pulse { 0% { opacity:.9; transform:scale(.6); } 100% { opacity:0; transform:scale(2.6); } }
.map-hub circle { fill:var(--citrus); }
.map-hub .map-hub-ring { fill:none; stroke:var(--citrus); stroke-width:.6; transform-box:fill-box; transform-origin:center; }
.mx-motion .map-hub .map-hub-ring { animation:mx-pulse 2.2s ease-out infinite; }
.map-hub text { font:700 7px 'DM Sans','DM Sans Fallback',sans-serif; fill:#fff; letter-spacing:.3px; }
.mx-map-readout { position:absolute; right:3%; bottom:4%; display:flex; flex-direction:column; gap:3px; padding:12px 18px; border-radius:14px; background:rgba(15,43,33,.72); border:1px solid rgba(255,255,255,.14); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
.mx-map-readout .kicker { color:var(--citrus); font-size:9px; }
.mx-map-readout strong { font:600 17px 'Manrope','Manrope Fallback',sans-serif; letter-spacing:-.02em; color:#fff; }

/* ---------- Calendario de campañas ---------- */
.mx-season { background:linear-gradient(#f8f8f2,#f3efe3); }
.mx-season-bar { display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; margin-bottom:18px; }
.mx-chips { display:flex; flex-wrap:wrap; gap:8px; }
.mx-chip { display:inline-flex; align-items:center; gap:9px; border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:99px; padding:8px 8px 8px 16px; font-size:13px; font-weight:600; transition:background .25s,color .25s; }
.mx-chip span { min-width:24px; padding:2px 7px; border-radius:99px; background:var(--soft); font-size:11px; text-align:center; }
.mx-chip[aria-pressed='true'] { background:var(--ink); color:#fff; border-color:var(--ink); }
.mx-chip[aria-pressed='true'] span { background:rgba(255,255,255,.18); }
.mx-season-now { font-size:14px; color:var(--muted); }
.mx-season-now strong { color:var(--ink); }
.mx-season-scroll { overflow-x:auto; background:#fff; border:1px solid #e3e4d6; border-radius:22px; padding:14px 22px 18px; box-shadow:0 30px 60px -45px rgba(15,43,33,.4); }
.mx-season-table { width:100%; table-layout:fixed; border-collapse:separate; border-spacing:0 3px; }
.m-short { display:none; }
.mx-season-table thead th { position:sticky; top:0; background:#fff; font-weight:400; padding:6px 0 10px; }
.mx-season-table thead th:first-child { text-align:left; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:700; }
.mx-month { width:100%; border:0; background:transparent; color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:7px 0; border-radius:99px; transition:background .2s,color .2s; }
.mx-month:hover { color:var(--ink); background:var(--soft); }
.mx-month[aria-pressed='true'] { background:var(--citrus); color:var(--deep); }
.mx-season-table tr>:first-child { width:190px; }
.mx-season-table tbody th { overflow:hidden; text-overflow:ellipsis; }
.mx-season-table tbody th { text-align:left; font:600 14px 'Manrope','Manrope Fallback',sans-serif; letter-spacing:-.01em; padding:6px 18px 6px 0; white-space:nowrap; }
.mx-dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:10px; background:var(--terra); }
.mx-dot.hortaliza { background:var(--accent); } .mx-dot.fruto-seco { background:var(--earth); }
.mx-season-table td { height:32px; padding:0; position:relative; }
.mx-season-table td.on::before { content:''; position:absolute; inset:9px 0; background:var(--terra); transform-origin:left; transition:transform .6s var(--ease); }
.mx-season-table tr[data-group='hortaliza'] td.on::before { background:#3f7a55; }
.mx-season-table tr[data-group='fruto-seco'] td.on::before { background:var(--earth); }
.mx-season-table td.s::before { left:4px; border-top-left-radius:99px; border-bottom-left-radius:99px; }
.mx-season-table td.e::before { right:4px; border-top-right-radius:99px; border-bottom-right-radius:99px; }
.mx-season-table tbody tr { transition:opacity .35s; }
.mx-season-table tbody tr.is-off th { color:var(--muted); font-weight:500; }
.mx-season-table tbody tr.is-off td.on::before { opacity:.22; }
.mx-season-table tbody tr.is-off .mx-dot { opacity:.35; }
.mx-season-table td.on::before { transition:transform .6s var(--ease),opacity .35s; }
.mx-season-table tbody tr:hover th { color:var(--earth); }
.mx-motion .mx-season-scroll:not(.in) td.on::before { transform:scaleX(0); }
.mx-season-table[data-month='1'] tr>:nth-child(2),.mx-season-table[data-month='2'] tr>:nth-child(3),.mx-season-table[data-month='3'] tr>:nth-child(4),.mx-season-table[data-month='4'] tr>:nth-child(5),.mx-season-table[data-month='5'] tr>:nth-child(6),.mx-season-table[data-month='6'] tr>:nth-child(7),.mx-season-table[data-month='7'] tr>:nth-child(8),.mx-season-table[data-month='8'] tr>:nth-child(9),.mx-season-table[data-month='9'] tr>:nth-child(10),.mx-season-table[data-month='10'] tr>:nth-child(11),.mx-season-table[data-month='11'] tr>:nth-child(12),.mx-season-table[data-month='12'] tr>:nth-child(13) { background-color:#fbf1dc; }
.mx-season-foot { display:flex; justify-content:space-between; align-items:center; gap:30px; margin-top:22px; }
.mx-season-note { font-size:12px; line-height:1.65; color:var(--muted); max-width:78ch; }

/* ---------- Trayectoria ---------- */
.mx-timeline { list-style:none; margin:10px 0 0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:28px; position:relative; }
.mx-timeline::before,.mx-timeline::after { content:''; position:absolute; left:0; right:0; top:62px; height:2px; background:var(--line); }
.mx-timeline::after { background:linear-gradient(90deg,var(--accent),var(--citrus)); transform-origin:left; transition:transform 2s var(--ease) .2s; }
.mx-motion .mx-timeline:not(.in)::after { transform:scaleX(0); }
.mx-tl-when { display:block; font:400 30px/1.2 'Fraunces','Fraunces Fallback',serif; letter-spacing:-.03em; color:var(--accent); min-height:40px; }
.mx-tl-dot { display:block; width:16px; height:16px; margin:12px 0 26px; border-radius:50%; background:var(--bg); border:3px solid var(--accent); position:relative; z-index:1; }
.mx-timeline li:nth-child(2) .mx-tl-dot { background:var(--citrus); border-color:var(--citrus); box-shadow:0 0 0 6px rgba(233,165,58,.2); }
.mx-timeline h3 { font:600 21px/1.2 'Manrope','Manrope Fallback',sans-serif; letter-spacing:-.035em; }
.mx-timeline p { margin-top:10px; font-size:14px; line-height:1.7; color:var(--muted); }

/* ---------- Otras secciones ---------- */
.mx-private .med-private-image { border-radius:6px; overflow:hidden; }
.mx-final { position:relative; overflow:hidden; isolation:isolate; }
.mx-final h2 em { color:var(--citrus); }
.mx-final-glow { position:absolute; inset:-60% -20% auto auto; width:900px; height:900px; z-index:-1; border-radius:50%; background:radial-gradient(circle,rgba(233,165,58,.22),transparent 62%); pointer-events:none; }
.mx-motion .mx-final-glow { animation:mx-glow 14s ease-in-out infinite alternate; }
@keyframes mx-glow { to { translate:-420px 220px; } }
.mediterranean .med-page-hero { position:relative; overflow:hidden; isolation:isolate; }
.mediterranean .med-page-hero::before { content:''; position:absolute; z-index:-1; right:-140px; top:-220px; width:560px; height:560px; border-radius:50%; border:1px solid #d4dccb; box-shadow:0 0 0 70px rgba(255,255,255,.25),0 0 0 140px rgba(255,255,255,.18); }
.mx-motion .med-page-hero h1,.mx-motion .med-page-hero .lead,.mx-motion .med-page-hero .eyebrow { animation:mx-fade-up 1s var(--ease) both; }
.mx-motion .med-page-hero h1 { animation-delay:.08s; } .mx-motion .med-page-hero .lead { animation-delay:.18s; }
.mediterranean .med-family-card { transition:transform .5s var(--ease),box-shadow .5s,border-color .3s; }
.mediterranean .med-family-card:hover { transform:translateY(-6px); }

/* ---------- Adaptación ---------- */
@media (max-width:1100px) {
  .mx-hero-grid { grid-template-columns:1fr 1fr; gap:36px; }
  .mx-stage { height:540px; }
  .mx-arch { inset:0 20px 60px 40px; }
  .mx-bridge-diagram { grid-template-columns:1fr 90px 1.1fr 90px 1fr; }
  .mx-node { padding:24px 20px; }
  .mx-link span { display:none; }
  .mx-figures dl>div { padding-inline:16px; }
  .mx-story-grid { gap:50px; }
  .mx-world-grid { grid-template-columns:1fr; }
  .mx-world-copy { max-width:760px; }
  .mx-timeline { grid-template-columns:repeat(3,1fr); row-gap:40px; }
  .mx-timeline::before,.mx-timeline::after { display:none; }
}
@media (max-width:900px) {
  .mx-hero-grid { grid-template-columns:1fr; min-height:0; padding-top:10px; }
  .mx-stage { height:480px; max-width:560px; width:100%; margin-inline:auto; }
  .mx-scroll-cue { display:none; }
  .mx-bridge-diagram { grid-template-columns:1fr; max-width:520px; margin-inline:auto; }
  .mx-link { height:70px; }
  .mx-link svg { left:50%; right:auto; top:0; width:70px; height:70px; rotate:90deg; translate:-50% 0; }
  .mx-figures dl { grid-template-columns:repeat(2,1fr); row-gap:34px; }
  .mx-figures dl>div:nth-child(odd) { border-left:0; padding-left:0; }
  .mx-story-grid { grid-template-columns:1fr; }
  .mx-story-aside { position:static; }
  .mx-story-frames { display:none; }
  .mx-step,.mx-step:first-child { min-height:0; padding-block:30px; align-content:start; }
  .mx-motion .mx-step { opacity:1; }
  .mx-step-img { display:block; }
  .mx-accordion { flex-direction:column; height:auto; }
  .mx-panel,.mx-accordion:not(:hover):not(:focus-within) .mx-panel:first-child,.mx-panel:hover,.mx-panel:focus-visible { flex:none; height:260px; }
  .mx-panel-body,.mx-panel:nth-child(n+4) .mx-panel-body { opacity:1 !important; transform:none !important; min-width:0; width:100%; left:0; right:0; padding:22px; }
  .mx-panel-body h3 { font-size:25px; }
  .mx-panel-label { display:none; }
  .mx-panel::after { background:linear-gradient(0deg,rgba(10,32,24,.95) 0,rgba(10,32,24,.7) 55%,rgba(10,32,24,.25)); }
  .mx-panel-img img { transform:none; }
  .mx-season-foot { flex-direction:column; align-items:flex-start; }
  .mx-season-table tr>:first-child { width:150px; }
  .mx-season-table tbody th { font-size:13px; padding-right:10px; }
}
@media (max-width:600px) {
  .mx-hero { padding-bottom:50px; }
  .mx-title { font-size:clamp(44px,13vw,60px); }
  .mx-who { grid-template-columns:1fr; gap:16px; }
  .mx-stage { height:400px; }
  .mx-arch { inset:0 12px 70px 24px; border-radius:200px 200px 12px 12px; }
  @keyframes mx-arch { from { clip-path:inset(100% 0 0 0 round 200px 200px 12px 12px); } to { clip-path:inset(0 round 200px 200px 12px 12px); } }
  .mx-orb-a { width:108px; height:108px; top:90px; }
  .mx-orb-b { width:88px; height:88px; bottom:110px; }
  .mx-badge { width:96px; height:96px; right:0; }
  .mx-badge text { font-size:8px; letter-spacing:1.6px; }
  .mx-badge>span { width:26px; }
  .mx-route-card { left:0; right:0; bottom:0; padding:12px 16px; gap:12px; }
  .mx-route-card strong { font-size:14px; }
  .mx-figures dd { font-size:44px; }
  .mx-step { grid-template-columns:52px 1fr; }
  .mx-step:last-child { min-height:52vh; }
.mx-step-n { font-size:34px; }
  .mx-world { padding-block:80px; }
  .mx-regions { grid-template-columns:1fr; }
  .mx-map-readout { position:static; margin-top:10px; }
  .mx-season-scroll { padding-inline:12px; border-radius:16px; }
  .mx-season-table tr>:first-child { width:108px; }
  .mx-season-table tbody th { font-size:12px; padding-right:6px; }
  .mx-dot { margin-right:6px; width:7px; height:7px; }
  .m-long { display:none; } .m-short { display:inline; }
  .mx-month { font-size:10px; padding:5px 0; }
  .mx-season-table td { height:26px; }
  .mx-season-table td.on::before { inset:7px 0; }
  .mx-timeline { grid-template-columns:1fr; gap:0; padding-left:26px; }
  .mx-timeline::before { display:block; left:7px; right:auto; top:8px; bottom:8px; width:2px; height:auto; }
  .mx-timeline li { position:relative; padding-bottom:30px; }
  .mx-tl-dot { position:absolute; left:-26px; top:10px; margin:0; }
  .mx-tl-when { font-size:24px; min-height:0; margin-bottom:6px; }
  .mediterranean .med-page-hero::before { width:320px; height:320px; right:-160px; top:-160px; }
}
