/* EXPO FAMATEX 2026 — colour chapters on the FAMATEX palette.
   One face (Montserrat, from the site shell), five sizes, flat fields, pill buttons. */
.expo-page{
  --green:#4BB597;
  --green-2:#3fa486;
  --green-deep:#247b65;
  --ink:#203b32;
  --paper:#ffffff;
  --mint:#eef7f3;
  --yellow:#FFB344;
  /* Shared green for highlighted text and icons, matching Gratis / Sorteo. */
  --green-text:#43a388;
  --green-icon:var(--green-text);
  --line:#deede9;
  --ink-soft:#55655f;
  --muted-on-ink:#a9cfc2;
  --ease-out:cubic-bezier(.23,1,.32,1);
  --margin:clamp(16px,4vw,64px);
  --t-display:clamp(48px,6.3vw,100px);
  --t-h2:clamp(38px,4.6vw,72px);
  --t-statement:clamp(22px,2vw,30px);
  --t-body:18px;
  --t-small:14px;
  margin:0;
  font-family:Montserrat,"Open Sans",Arial,sans-serif;
  color:var(--ink);
  background:var(--paper);
}
.expo-page main{display:block}
.expo-wrap{width:min(1280px,calc(100% - 64px));margin:0 auto;box-sizing:border-box}
:where(.expo-page) :is(h1,h2,h3){margin:0}
.expo-page h1,.expo-page h2,.expo-page h3{font-weight:800;letter-spacing:-.035em;line-height:.98;text-wrap:balance}
:where(.expo-page) p{margin:0}
.expo-page :focus-visible{outline:3px solid var(--ink);outline-offset:3px}

/* Buttons: one shape (pill), flat fill, press feedback */
.expo-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:56px;padding:14px 28px;border:0;border-radius:999px;
  font-family:inherit;font-size:16px;font-weight:700;line-height:1.2;text-decoration:none;cursor:pointer;
  transition:transform .16s var(--ease-out),background-color .2s ease,color .2s ease;
}
.expo-btn svg{flex-shrink:0;transition:transform .2s var(--ease-out)}
.expo-btn:active{transform:scale(.97)}
.expo-btn--ink{background:var(--green);color:var(--paper)}

/* ---------- Expo header: one white bar ----------
   Three columns: brand left, sections centred, actions right. White carries the FAMATEX logo in its own colours;
   the yellow action (#FFB344, as the site's Cotizar button) is the only filled thing on the bar. */
.expo-page{scroll-padding-top:92px}
html:has(.expo-page){scroll-padding-top:92px}
.expo-skip{position:absolute;left:16px;top:-80px;z-index:200;padding:12px 18px;border-radius:999px;background:var(--yellow);color:var(--ink);font-weight:700;text-decoration:none}
.expo-skip:focus{top:12px}
/* Top strip: how long until the Expo, where it is and its WhatsApp. White on the main green, like the site's green buttons. Scrolls away; the bar below stays. */
.expo-topbar{background:var(--green);color:var(--paper)}
.expo-topbar__in{display:flex;align-items:center;justify-content:space-between;gap:12px 32px;min-height:44px}
.expo-topbar__group{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 32px}
.expo-topbar__item{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;line-height:1;color:var(--paper);white-space:nowrap}
.expo-topbar__item svg{flex-shrink:0}
/* Font Awesome, as on famatex.pe: plain white glyphs, one size. */
.expo-topbar__item i{width:18px;flex-shrink:0;font-size:16px;line-height:1;text-align:center}
.expo-topbar__item .fa-whatsapp{font-size:18px}
.expo-countdown{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 12px;border-radius:999px;background:var(--yellow);font-size:14px;font-weight:600;line-height:1;color:var(--ink);animation:expo-latido 1.8s cubic-bezier(.45,0,.55,1) infinite}
.expo-countdown i{font-size:14px}
.expo-countdown b{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}
/* Heartbeat: two quick beats, then a rest, so it draws the eye without nagging. */
@keyframes expo-latido{0%,40%,100%{transform:scale(1)}10%{transform:scale(1.07)}20%{transform:scale(1)}30%{transform:scale(1.04)}}
@media(prefers-reduced-motion:reduce){.expo-countdown{animation:none}}
.expo-topbar__map{text-decoration:none}
.expo-topbar :focus-visible{outline:3px solid var(--paper);outline-offset:3px}
.expo-header{position:sticky;top:0;z-index:100;background:var(--paper);color:var(--ink);transition:box-shadow .25s var(--ease-out)}
.expo-header.is-stuck{box-shadow:0 10px 30px -18px rgba(32,59,50,.45)} /* taste-skill-ignore: sticky bar lifts only once content scrolls under it */
.expo-header__bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:32px;min-height:88px}
.expo-header__brand{justify-self:start;display:block;padding-block:12px}
.expo-header__brand img{display:block;width:auto;height:42px;transition:transform .2s var(--ease-out)}
@media(hover:hover){.expo-header__brand:hover img{transform:scale(1.03)}}
.expo-header__nav{display:flex;gap:40px}
.expo-header__nav a{position:relative;padding:10px 0;font-size:15px;font-weight:600;color:#3f514a;text-decoration:none;white-space:nowrap;transition:color .2s var(--ease-out)}
.expo-header__nav a[aria-current]{color:var(--ink)}
.expo-header__nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;border-radius:2px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease-out)}
.expo-header__nav a[aria-current]::after{transform:scaleX(1)}
@media(hover:hover){.expo-header__nav a:hover{color:var(--ink)}.expo-header__nav a:hover::after{transform:scaleX(1)}}
.expo-header__cta{justify-self:end;min-height:50px;padding:12px 26px;font-size:15px;font-weight:700;white-space:nowrap}
.expo-header__cta svg{transition:transform .2s var(--ease-out)}
.expo-btn--yellow{background:var(--yellow);color:var(--ink)}
.expo-header :focus-visible{outline:3px solid var(--green);outline-offset:3px}
@media(max-width:1180px){
  .expo-header__nav{gap:24px}
}
@media(max-width:1020px){
  .expo-header__bar{grid-template-columns:auto 1fr}
  .expo-header__nav{display:none}
}
@media(max-width:600px){
  .expo-topbar__in{flex-wrap:wrap;justify-content:center;gap:4px 18px;min-height:38px;padding-block:6px}
  .expo-topbar__group{gap:4px 18px}
  .expo-topbar__item{gap:8px;font-size:13px}
  .expo-topbar__more{display:none}
  .expo-countdown{font-size:13px}
  .expo-countdown b{font-size:15px}
  .expo-header__bar{gap:12px;min-height:68px}
  .expo-header__brand{padding-block:10px}
  .expo-header__brand img{height:26px}
  .expo-header__cta{min-height:44px;padding:10px 18px;font-size:14px}
  .expo-header__cta svg{display:none}
}

/* Chapters */
.expo-chapter{padding-block:clamp(72px,7.5vw,120px)}
.expo-chapter--paper{background:var(--paper);color:var(--ink)}
/* Titles on white take the FAMATEX green, one step deeper (#43a388) so large type still passes 3:1; on yellow and green fields they stay ink. */
.expo-chapter--paper h2{color:var(--green-icon)}
.expo-chapter--yellow{background:var(--yellow);color:var(--ink)}
.expo-chapter--ink{background:var(--ink);color:var(--paper)}
.expo-chapter--main{background:var(--green);color:var(--ink)}
.expo-chapter--green{background:var(--green);color:var(--ink)}

/* ---------- Hero: the poster edge to edge, then the action ---------- */
.expo-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0} /* taste-skill-ignore: visually hidden h1 for search and screen readers */
.expo-hero{background:var(--green);color:var(--ink)}
.expo-hero__poster{margin:0;background:var(--green)}
.expo-hero__poster img{display:block;width:100%;height:auto}
.expo-hero__bar{background:var(--paper);border-bottom:1px solid var(--line)} /* taste-skill-ignore: closes the proof strip off from the white section below, as on famatex.pe */
.expo-hero__bar-in{display:flex;align-items:center;justify-content:space-between;gap:24px 48px;padding-block:32px}
/* The FAMATEX proof strip (as under the home banner). Colour roles: icons and figures in the brand-hue greens,
   label in ink, caption in soft ink, rules in the pale brand tint; yellow is reserved for the one action. */
.expo-proofs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex:1;min-width:0;max-width:880px}
.expo-proof{display:flex;align-items:center;gap:18px;min-width:0;padding:4px 32px;border-right:1px solid var(--line);color:var(--green-text);text-decoration:none} /* taste-skill-ignore: FAMATEX's own proof-strip divider, kept so the Expo matches famatex.pe */
.expo-proof:first-child{padding-left:0}
.expo-proof:last-child{border-right:0}
.expo-proof__icon{flex:0 0 40px;width:40px;height:40px;color:var(--green-icon);transition:transform .25s var(--ease-out)}
@media(hover:hover){a.expo-proof:hover .expo-proof__icon{transform:translateY(-2px)}}
.expo-proof p{display:flex;flex-direction:column;gap:3px;min-width:0}
.expo-proof strong{font-size:34px;font-weight:800;line-height:1.05;letter-spacing:-.035em;color:var(--green-icon)}
.expo-proof span{margin-top:2px;font-size:14px;font-weight:700;line-height:1.35;color:var(--ink)}
.expo-proof small{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;line-height:1.4;color:var(--ink-soft);white-space:nowrap}
.expo-proof small svg{flex:0 0 14px;transition:transform .2s var(--ease-out)}
@media(hover:hover){a.expo-proof:hover small{color:var(--green-text)}a.expo-proof:hover small svg{transform:translateX(3px)}}
a.expo-proof:focus-visible{outline:3px solid var(--green);outline-offset:4px;border-radius:8px}
.expo-hero__cta{flex-shrink:0;min-height:58px;padding:16px 32px;font-size:16px;font-weight:700}
.expo-hero__cta svg{transition:transform .2s var(--ease-out)}
@media(max-width:1100px){
  .expo-hero__bar-in{flex-direction:column;align-items:stretch;gap:24px}
  .expo-proofs{max-width:none}
  .expo-hero__cta{align-self:center}
}
@media(max-width:600px){
  .expo-hero__bar-in{padding-block:20px}
  .expo-proof{flex-direction:column;gap:8px;padding:4px 6px!important;text-align:center}
  .expo-proof p{align-items:center}
  .expo-proof__icon{flex-basis:26px;width:26px;height:26px}
  .expo-proof strong{font-size:22px}
  .expo-proof span{font-size:13px}
  .expo-proof small{display:none}
  .expo-hero__cta{order:-1;align-self:stretch;justify-content:center}
}

/* ---------- Expo preview: brand colours, editorial copy and vertical film ---------- */
.expo-reel{
  padding-block:clamp(32px,3.5vw,56px);
  background-color:var(--paper);
  position:relative;overflow:hidden;
}
.expo-reel__in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:clamp(40px,7vw,112px)}
.expo-reel__head{position:relative;z-index:1}
.expo-reel__head h2{font-size:clamp(42px,5vw,70px);line-height:1.06;color:var(--green-text);text-wrap:balance}
.expo-reel__head h2>span{color:var(--green-text)}
.expo-reel__head>p{max-width:42ch;margin:24px 0 0!important;font-size:18px;line-height:1.7;color:var(--ink-soft)}
.expo-reel__highlights{display:grid;gap:15px;list-style:none;padding:0;margin:28px 0 30px;font-size:15px;font-weight:600}
.expo-reel__highlights li{display:flex;align-items:center;gap:13px}
.expo-reel__highlights i{width:22px;text-align:center;color:var(--ink);font-size:19px}
.expo-reel__visit{display:flex;align-items:center;gap:15px;padding-top:24px;border-top:1px solid #cedfd7}
.expo-reel__visit>i{font-size:25px;color:var(--ink)}
.expo-reel__visit p{display:grid;gap:6px;line-height:1.5}
.expo-reel__visit strong{font-size:16px}
.expo-reel__visit p>span{font-size:13px;color:var(--ink)}
.expo-reel__cta{margin-top:26px;min-height:56px;padding:16px 30px;font-size:16px;font-weight:700}
.expo-reel__visual{position:relative;display:flex;flex-direction:column;align-items:flex-end;padding:0}
.expo-reel__frame{position:relative;z-index:1;width:min(100%,320px);aspect-ratio:9/16;border:0;border-radius:12px;overflow:hidden;background:var(--ink);box-sizing:border-box}
.expo-reel__frame video{display:block;width:100%;height:100%;object-fit:cover;cursor:pointer}
.expo-reel__play{position:absolute;inset:0;margin:auto;display:grid;place-items:center;width:72px;height:72px;padding:0 0 0 5px;border:0;border-radius:50%;background:var(--yellow);color:var(--ink);font-size:25px;cursor:pointer;transition:transform .2s,opacity .2s}
.expo-reel__play:active{transform:scale(.97)}
.expo-reel.is-playing .expo-reel__play{opacity:0;pointer-events:none}
.expo-reel__sound{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--paper);color:var(--ink);font-size:16px;cursor:pointer}
.expo-reel__frame :focus-visible{outline:3px solid var(--yellow);outline-offset:-4px}
@media(max-width:700px){
  .expo-reel__in{grid-template-columns:minmax(0,1fr);gap:28px}
  .expo-reel__head h2{font-size:clamp(40px,10vw,60px)}
  .expo-reel__head>p{font-size:16px;margin-top:20px!important}
  .expo-reel__cta{display:flex}
  .expo-reel__visual{width:100%;max-width:400px;justify-self:center;align-items:center}
  .expo-reel__frame{width:min(85%,300px)}
}

/* ---------- What you will find: section head, four photo-led experiences, one benefits band ---------- */
.expo-live__head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:20px 64px;align-items:end;margin-bottom:clamp(32px,3.5vw,48px)}
.expo-live__head h2{font-size:var(--t-h2);text-wrap:balance}
/* Section type scale: 14 · 16 · 18 · 22 · 28 · 72 (title). Nothing in the section outranks its title. */
.expo-live__head p{max-width:46ch;font-size:18px;font-weight:500;line-height:1.55;color:var(--ink-soft)}
.expo-bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(2,330px);gap:16px;margin:0;padding:0;list-style:none}
/* Bento of real fair photos: the live demo leads (tall, half the width), the other three share the right side.
   Each tile carries a white caption plate docked inside the photo, so the words never sit on the picture itself. */
.expo-bento__tile{position:relative;overflow:hidden;border-radius:24px;background:var(--mint)}
.expo-bento__tile--a{grid-column:1/7;grid-row:1/3}
.expo-bento__tile--b{grid-column:7/13;grid-row:1/2}
.expo-bento__tile--c{grid-column:7/10;grid-row:2/3}
.expo-bento__tile--d{grid-column:10/13;grid-row:2/3}
.expo-bento__tile img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-out)}
@media(hover:hover){.expo-bento__tile:hover img{transform:scale(1.04)}}
.expo-bento__cap{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);box-sizing:border-box;padding:14px 16px;border-radius:16px;background:var(--paper)}
.expo-bento__cap h3{margin:0;font-size:18px;font-weight:800;line-height:1.25;letter-spacing:-.015em;color:var(--ink)}
.expo-bento__cap p{margin-top:4px!important;font-size:14px;line-height:1.45;color:var(--ink-soft)}
.expo-bento__tile--a .expo-bento__cap{left:24px;bottom:24px;max-width:min(440px,calc(100% - 48px));padding:22px 26px}
.expo-bento__tile--a .expo-bento__cap h3{font-size:28px;letter-spacing:-.025em}
.expo-bento__tile--b .expo-bento__cap{left:16px;bottom:16px;padding:16px 20px}
.expo-bento__tile--b .expo-bento__cap h3{font-size:22px}
.expo-bento__tile--b .expo-bento__cap p{font-size:16px}
.expo-bento__tile--a .expo-bento__cap p{font-size:16px}
.expo-bento__tile--d img{object-position:70% 50%}
/* The S/1000 is shown as the thing it is: a discount voucher, like the ones printed on the fair poster.
   White ticket, notched sides cut in the band's green, a dashed inner edge, set slightly askew; it straightens on hover. */
/* Yellow voucher and action with dark green copy for contrast. */
@media(max-width:1100px){
  .expo-bento{grid-template-rows:none;grid-auto-rows:240px}
  .expo-bento__tile--a{grid-column:1/-1;grid-row:span 2}
  .expo-bento__tile--b{grid-column:1/-1;grid-row:auto}
  .expo-bento__tile--c{grid-column:1/7;grid-row:auto}
  .expo-bento__tile--d{grid-column:7/13;grid-row:auto}
}
@media(max-width:700px){
  .expo-live__head{grid-template-columns:1fr}
  .expo-live__head p{font-size:16px}
  .expo-bento{gap:12px;grid-auto-rows:auto}
  .expo-bento__tile{grid-column:1/-1!important;height:auto!important;aspect-ratio:4/3;border-radius:20px}
  .expo-bento__cap,.expo-bento__tile--a .expo-bento__cap,.expo-bento__tile--b .expo-bento__cap{left:12px;bottom:12px;max-width:calc(100% - 24px);padding:14px 16px}
  .expo-bento__cap h3,.expo-bento__tile--a .expo-bento__cap h3,.expo-bento__tile--b .expo-bento__cap h3{font-size:18px}
  .expo-bento__cap p,.expo-bento__tile--a .expo-bento__cap p,.expo-bento__tile--b .expo-bento__cap p{font-size:14px}
}

/* ---------- Registration ---------- */
.expo-reg{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,88px);align-items:start}
.expo-reg__intro{position:sticky;top:120px}
.expo-reg__intro h2{font-size:var(--t-h2)}
.expo-reg__intro>p{margin-top:24px;max-width:36ch;font-size:var(--t-body);font-weight:500;line-height:1.55}
/* The pass: the expo's own ticket, filled live */
.expo-pass{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;margin-top:40px;border-radius:20px;overflow:hidden;background:var(--paper)}
/* Ticket notches: two discs in the field colour where the stub tears off. */
.expo-pass::before,.expo-pass::after{content:"";position:absolute;right:138px;width:28px;height:28px;border-radius:50%;background:var(--yellow);z-index:1}
.expo-pass::before{top:-14px}
.expo-pass::after{bottom:-14px}
.expo-pass__main{padding:24px 24px 26px}
.expo-pass__event{font-size:var(--t-small);font-weight:800;color:var(--green-text)}
.expo-pass__name{margin-top:8px;font-size:clamp(24px,2.2vw,32px);font-weight:800;letter-spacing:-.025em;line-height:1.1;min-height:1.1em;overflow-wrap:anywhere}
.expo-pass__name.is-empty,.expo-pass__data dd.is-empty{color:#5e7069}
.expo-pass__data{display:grid;grid-template-columns:auto auto;gap:6px 24px;margin:18px 0 0}
.expo-pass__data dt{font-size:var(--t-small);font-weight:600;color:#5e7069}
.expo-pass__data dd{margin:2px 0 0;font-size:16px;font-weight:700}
.expo-pass__stub{width:152px;box-sizing:border-box;padding:24px 18px;background:var(--green);color:var(--ink);display:flex;flex-direction:column;justify-content:center;gap:8px}
.expo-pass__stub p:first-child{font-size:var(--t-small);font-weight:600;color:var(--ink)}
.expo-pass__code{font-size:20px;font-weight:800;letter-spacing:.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.expo-pass.is-issued .expo-pass__code{animation:expo-stamp .5s var(--ease-out)}
@keyframes expo-stamp{from{opacity:0;transform:scale(1.25)}to{opacity:1;transform:none}}

.expo-reg__form{background:var(--paper);border-radius:20px;padding:clamp(24px,3vw,40px)}
.expo-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}
.expo-field{display:flex;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;border:0}
.expo-field--wide{grid-column:1/-1}
.expo-field label,.expo-field legend{padding:0;font-size:15px;font-weight:700;color:var(--ink)}
.expo-field label span{font-weight:500;color:#5e7069}
.expo-field legend{margin-bottom:8px}
.expo-form input[type=text],.expo-form input[type=email],.expo-form input[type=tel],.expo-form select{
  width:100%;min-height:52px;box-sizing:border-box;padding:12px 14px;border:1px solid #c9dbd3;border-radius:12px;background:var(--paper);
  font-family:inherit;font-size:16px;font-weight:500;line-height:1.3;color:var(--ink);transition:border-color .2s ease,box-shadow .2s ease}
.expo-form input::placeholder{color:#8a9c95}
.expo-form :is(input,select):focus{outline:3px solid rgba(75,181,151,.35);outline-offset:0;border-color:var(--green-text)}
.expo-form [aria-invalid=true]{border-color:#c2412d!important;outline:3px solid rgba(194,65,45,.2);outline-offset:0}
.expo-phone{display:grid;grid-template-columns:104px minmax(0,1fr);gap:8px}
.expo-chips{display:flex;flex-wrap:wrap;gap:8px}
.expo-chip{position:relative;display:inline-flex!important;width:auto!important;cursor:pointer}
.expo-chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.expo-chip span{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border-radius:999px;background:var(--mint);font-size:15px;font-weight:600;color:var(--ink);transition:background-color .2s ease,color .2s ease,transform .16s var(--ease-out)}
.expo-chip:active span{transform:scale(.97)}
.expo-chip input:checked+span{background:var(--green);color:var(--ink);font-weight:700}
.expo-chip input:focus-visible+span{outline:3px solid var(--green);outline-offset:2px}
.expo-field.is-invalid .expo-chip span{outline:2px solid #c2412d;outline-offset:-2px}
.expo-check{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.5;cursor:pointer}
.expo-check input{width:22px;height:22px;margin:1px 0 0;accent-color:var(--ink);flex-shrink:0}
.expo-check a{color:var(--green-text);font-weight:700}
.expo-check.is-invalid span{color:#9b2c1d}
.expo-form__submit{grid-column:1/-1;width:100%;min-height:60px;font-size:17px}
.expo-form__submit[aria-busy=true]{opacity:.7;cursor:progress}
.expo-form__error{grid-column:1/-1;padding:12px 16px;border-radius:12px;background:#fdecea;color:#9b2c1d;font-size:15px;font-weight:600}
.expo-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden} /* taste-skill-ignore: off-screen honeypot, not a rule */
.expo-done{text-align:left;outline:0}
.expo-done h3{font-size:clamp(28px,2.6vw,40px);letter-spacing:-.03em}
.expo-done>p{margin-top:16px;font-size:var(--t-body);line-height:1.55}
.expo-done__code{margin-top:12px!important;font-size:clamp(40px,4.4vw,64px)!important;font-weight:800;letter-spacing:.01em;color:var(--green-text);font-variant-numeric:tabular-nums}
.expo-done .expo-btn{margin-top:28px}
.expo-page [hidden]{display:none!important}

/* ---------- Machines: product photograph and ruled category list ---------- */
.expo-machines{background:var(--paper);padding-block:clamp(40px,5vw,72px);border-top:1px solid var(--line)}
.expo-show{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,80px);align-items:center}
.expo-show__list{order:-1}
.expo-show__list h2{font-size:clamp(36px,4vw,60px);line-height:1.08;color:var(--green-text)}
.expo-show__list ul{margin:30px 0 0;padding:0;list-style:none;display:grid;border-top:1px solid var(--line)}
.expo-show__list li{border-bottom:1px solid var(--line)}
.expo-show__list button{appearance:none;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;box-sizing:border-box;border:0;border-radius:0;margin:0;padding:19px 0;background:transparent;text-align:left;font-family:inherit;font-size:clamp(18px,1.7vw,25px);font-weight:600;letter-spacing:-.025em;line-height:1.3;color:var(--ink-soft);cursor:pointer;transition:color .2s ease}
.expo-show__list button::after{content:"\2192";font-size:25px;color:var(--green-text);opacity:0;flex-shrink:0}
.expo-show__list button[aria-pressed=true]{color:var(--green-text);font-weight:800}
.expo-show__list button[aria-pressed=true]::after{opacity:1}
.expo-show__list button:focus-visible{outline:2px solid var(--green-text);outline-offset:4px}
.expo-show__fact{margin-top:22px;max-width:40ch;font-size:16px;font-weight:500;line-height:1.65;color:var(--ink-soft);min-height:3.3em}
.expo-show__stage{position:relative;display:grid;place-items:center;aspect-ratio:5/4;max-height:540px;margin-inline:auto;width:100%}
.expo-show__img{display:block;width:100%;height:auto;max-height:540px;object-fit:contain;transition:opacity .2s ease}
.expo-show__img.is-swapping{opacity:0}

/* ---------- Where: address in display rows ---------- */
.expo-where{padding-block:0}
.expo-where__row{background:var(--green)}
.expo-where__row:nth-child(even){background:var(--green-2)}
.expo-where__row .expo-wrap{display:flex;align-items:flex-end;min-height:clamp(96px,10vw,150px);padding-bottom:clamp(16px,1.8vw,26px)}
.expo-where__row :is(h2,p,a){font-size:clamp(34px,5.2vw,84px);font-weight:700;letter-spacing:-.035em;line-height:1;color:var(--ink);text-decoration:none}
.expo-where__row a:hover{color:var(--paper)}
.expo-where__row--cta{background:var(--yellow)!important}
.expo-where__row--cta p{display:flex;align-items:center;gap:24px;color:var(--ink)!important}
.expo-round{display:inline-grid;place-items:center;width:.95em;height:.95em;border-radius:50%;background:var(--paper);color:var(--ink)!important;transition:transform .16s var(--ease-out)}
.expo-round svg{width:42%;height:42%}
.expo-round:active{transform:scale(.94)}

/* ---------- FAQ: accordion of filled tiles ---------- */
.expo-faq{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(24px,4vw,64px);align-items:start}
.expo-faq h2{font-size:var(--t-h2);position:sticky;top:120px}
.expo-faq__list{display:grid;gap:8px}
.expo-faq__list details{border-radius:16px;background:var(--mint);transition:background-color .2s ease}
.expo-faq__list details[open]{background:#e0f0e8}
.expo-faq__list summary{position:relative;list-style:none;cursor:pointer;min-height:72px;box-sizing:border-box;display:flex;align-items:center;padding:20px 64px 20px 24px;font-size:20px;font-weight:700;line-height:1.3}
.expo-faq__list summary::-webkit-details-marker{display:none}
.expo-faq__list summary::before,.expo-faq__list summary::after{content:"";position:absolute;right:28px;top:50%;width:16px;height:3px;margin-top:-1.5px;border-radius:2px;background:var(--ink);transition:transform .25s var(--ease-out)}
.expo-faq__list summary::after{transform:rotate(90deg)}
.expo-faq__list details[open] summary::after{transform:rotate(0)}
.expo-faq__list details p{padding:0 24px 24px;max-width:56ch;font-size:17px;line-height:1.6}
.expo-faq__list summary:focus-visible{outline:3px solid var(--ink);outline-offset:-3px;border-radius:16px}

/* ---------- Motion ---------- */
.js [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);transition-delay:var(--d,0ms)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js [data-shutter]{clip-path:inset(0 0 0 100%);transition:clip-path 1.1s var(--ease-out)}
.js [data-shutter] img{transform:scale(1.12);transition:transform 1.4s var(--ease-out)}
.js [data-shutter].is-in{clip-path:inset(0 0 0 0)}
.js [data-shutter].is-in img{transform:none}
@media(prefers-reduced-motion:reduce){
  .js [data-reveal],.js [data-shutter],.js [data-shutter] img{transition:opacity .2s ease;transform:none;clip-path:none}
  .expo-show__img{transition:none}
  .expo-pass.is-issued .expo-pass__code{animation:none}
}

/* ---------- Tablet ---------- */
@media(max-width:1100px){
  .expo-reg__intro{position:static}
  .expo-reg{grid-template-columns:1fr}
  .expo-show{grid-template-columns:1fr}
  .expo-show__list{order:0}
  .expo-show__stage{max-width:560px}
}
@media(max-width:900px){
  .expo-faq{grid-template-columns:1fr}
  .expo-faq h2{position:static}
}
/* ---------- Phone ---------- */
@media(max-width:700px){.expo-wrap{width:calc(100% - 36px)}}
@media(max-width:600px){
  .expo-pass::before,.expo-pass::after{display:none}
  .expo-form{grid-template-columns:1fr}
  .expo-reg__form{padding:22px 18px}
  .expo-pass{grid-template-columns:1fr}
  .expo-pass__stub{width:auto;padding:18px 24px}
  .expo-chips{gap:6px}
  .expo-chip span{min-height:42px;padding:9px 14px;font-size:14px}
  .expo-faq__list summary{font-size:18px;min-height:64px}
  .expo-faq__list details p{font-size:16px;padding:0 20px 20px}
  .expo-where__row--cta p{justify-content:space-between;width:100%}
  .expo-round{width:56px;height:56px}
}

/* Registration: a practical sign-up sheet with native selection controls. */
.expo-registration{background:var(--paper);padding-block:clamp(40px,5vw,72px);border-top:1px solid var(--line)}
.expo-registration .expo-reg{grid-template-columns:minmax(0,4.5fr) minmax(0,7fr);gap:clamp(32px,5vw,80px)}
.expo-registration .expo-reg__intro h2{font-size:clamp(38px,4.2vw,60px);line-height:1.08;color:var(--green-text);max-width:12ch}
.expo-registration .expo-reg__intro>p{font-size:17px;color:var(--ink-soft);line-height:1.65;max-width:38ch}
.expo-registration .expo-pass{display:block;background:transparent;border-radius:0;border-top:3px solid var(--green-text);border-bottom:1px solid var(--line);margin-top:32px;overflow:visible}
.expo-registration .expo-pass::before,.expo-registration .expo-pass::after{display:none}
.expo-registration .expo-pass__main{padding:22px 0}
.expo-registration .expo-pass__event{font-size:14px;font-weight:700;margin-bottom:12px}
.expo-registration .expo-pass__name{font-size:24px}
.expo-registration .expo-pass__data{grid-template-columns:1fr;gap:14px}
.expo-registration .expo-pass__data>div{display:grid;grid-template-columns:60px 1fr;gap:12px;align-items:baseline}
.expo-registration .expo-pass__data dd{font-size:14px;line-height:1.5}
.expo-registration .expo-pass__stub{width:auto;padding:16px 0;background:transparent;border-top:1px solid var(--line);flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.expo-registration .expo-pass__code{font-size:20px;color:var(--green-text)}
.expo-registration .expo-pass.is-issued .expo-pass__code{animation:none}
.expo-registration .expo-reg__form{padding:0 0 0 clamp(24px,3vw,40px);border-left:1px solid var(--line);border-radius:0}
.expo-registration .expo-form{gap:24px 18px}
.expo-registration .expo-form :is(input[type=text],input[type=email],input[type=tel],select){border-radius:5px}
.expo-registration .expo-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 18px}
.expo-registration .expo-chip{display:flex!important;align-items:center;gap:10px;min-height:44px}
.expo-registration .expo-chip input{position:static;opacity:1;inset:auto;flex:0 0 18px;width:18px;height:18px;margin:0;accent-color:var(--green-text)}
.expo-registration .expo-chip span{padding:8px 0;min-height:0;border-radius:0;background:transparent;font-size:14px;line-height:1.5;transition:none;color:var(--ink-soft)}
.expo-registration .expo-chip:active span{transform:none}
.expo-registration .expo-chip input:checked+span{background:transparent;color:var(--ink);font-weight:700}
.expo-registration .expo-chip input:focus-visible{outline:2px solid var(--green-text);outline-offset:3px}
.expo-registration .expo-chip input:focus-visible+span{outline:none}
.expo-registration .expo-form__submit{background:var(--yellow);color:var(--ink);border-radius:6px}
@media(max-width:900px){
  .expo-registration .expo-reg{grid-template-columns:1fr}
  .expo-registration .expo-reg__intro{position:static}
  .expo-registration .expo-reg__intro h2{max-width:20ch}
  .expo-registration .expo-reg__form{border-left:0;padding:28px 0 0;border-top:1px solid var(--line)}
  .expo-registration .expo-pass{max-width:500px}
}
@media(max-width:500px){
  .expo-registration .expo-chips{grid-template-columns:1fr}
}

.expo-registration .expo-qualification .expo-chips{grid-template-columns:1fr;gap:0}
.expo-registration .expo-qualification{padding-top:20px;border-top:1px solid var(--line)}
.expo-registration .expo-field__hint{font-size:13px;color:var(--ink-soft);margin:0 0 4px}
.expo-registration .expo-qualification .expo-chip{align-items:flex-start;gap:12px;padding:8px 0;min-height:0}
.expo-registration .expo-qualification .expo-chip input{margin-top:3px}
.expo-registration .expo-qualification .expo-chip span{padding:0}

/* Short registration: contact details and one business-context question. */
.expo-registration .expo-form{grid-template-columns:minmax(0,1fr);gap:20px}

/* Neutral form controls; brand colour is reserved for interaction. */
.expo-registration .expo-field>label{color:#303937;font-size:14px;font-weight:600}
.expo-registration .expo-form :is(input[type=text],input[type=email],input[type=tel],select){background:var(--paper);border:1px solid #c6ccca;border-radius:14px;min-height:52px;color:#26312d;font-weight:400;box-shadow:none}
.expo-registration .expo-form input::placeholder{color:#737e79;font-weight:400}
.expo-registration .expo-form :is(input[type=text],input[type=email],input[type=tel],select):hover{border-color:#8d9993}
.expo-registration .expo-form :is(input,select):focus{background:var(--paper);border-color:var(--green-text);outline:2px solid var(--green-text);outline-offset:2px}
.expo-registration .expo-company{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0;margin:6px 0 0;padding:22px 0 0;border:0;border-top:1px solid #e2e5e3}
.expo-registration .expo-company legend{padding:0 12px 0 0;font-size:14px;font-weight:600;color:#303937}
.expo-registration .expo-company legend span{font-size:12px;font-weight:400;color:#68736d}
.expo-registration .expo-check{font-size:13px;line-height:1.6;color:#525d57;margin-top:4px}
.expo-registration .expo-check input{width:19px;height:19px;margin-top:2px;accent-color:var(--green-text)}
.expo-registration .expo-check a{color:#44594e;text-underline-offset:3px;font-weight:600}
.expo-registration .expo-form__submit{border-radius:999px;min-height:54px;font-size:16px}
.expo-registration .expo-field__hint{color:#68736d;font-size:12px;line-height:1.5}
.expo-registration .expo-done__delivery{font-size:14px;color:var(--ink-soft);line-height:1.6}
.expo-registration .expo-pass{border-color:#d5dbd7}
.expo-registration .expo-pass__event{color:#394b41}
.expo-registration .expo-pass__code{color:#303937}
@media(max-width:600px){.expo-registration .expo-company{grid-template-columns:minmax(0,1fr)}}

/* Expo registration slip: a restrained printed-document layout. */
.expo-registration .expo-pass{position:relative;border:1px solid #bed2c9;border-top:1px solid #bed2c9;border-radius:0;background:var(--paper);overflow:visible}
.expo-registration .expo-pass__main{padding:26px 28px 24px}
.expo-pass__heading{display:flex;align-items:center;justify-content:space-between;gap:22px;padding-bottom:20px;margin-bottom:24px;border-bottom:2px solid var(--green-text)}
.expo-pass__heading img{display:block;width:150px;max-width:45%;height:auto}
.expo-registration .expo-pass__event{margin:0;color:#394b41;font-size:14px;line-height:1.5;text-align:right;letter-spacing:0}
.expo-registration .expo-pass__event span{display:block;font-size:10px;font-weight:500;color:var(--ink-soft)}
.expo-registration .expo-pass__name{font-size:clamp(22px,2vw,28px);margin:0;line-height:1.25}
.expo-registration .expo-pass__data{margin-top:22px;gap:12px}
.expo-registration .expo-pass__stub{position:relative;padding:18px 28px;border-top:1px solid #bed2c9;border-bottom:1px solid #bed2c9;background:transparent;display:block}
.expo-registration .expo-pass__stub::before,.expo-registration .expo-pass__stub::after{display:none}
.expo-registration .expo-pass__stub p:first-child{font-size:11px;font-weight:500;color:var(--ink-soft);line-height:1.5;margin-bottom:7px}
.expo-registration .expo-pass__code{color:#303937;font-size:32px;line-height:1.2;letter-spacing:.04em;font-weight:700}
.expo-registration .expo-pass__instruction{padding:16px 28px;margin:0;font-size:12px;line-height:1.6;color:var(--ink-soft);background:transparent}
@media(max-width:500px){
  .expo-registration .expo-pass__main{padding:22px 20px}
  .expo-registration .expo-pass__stub{padding:18px 20px}
  .expo-registration .expo-pass__instruction{padding:14px 20px}
  .expo-registration .expo-pass__code{font-size:28px}
  .expo-pass__heading{gap:12px}
}

/* Machine catalogue: photography, typography and fine rules. */
.expo-machines .expo-show{gap:clamp(32px,6vw,96px);grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.expo-machines .expo-show__list h2{font-size:clamp(36px,3.6vw,54px);line-height:1.12;font-weight:700;max-width:14ch}
.expo-machines .expo-show__list ul{margin-top:30px;border-top:1px solid #dce2de}
.expo-machines .expo-show__list li{border-bottom:1px solid #dce2de}
.expo-machines .expo-show__list button{padding:19px 0;border-radius:0;background:transparent;font-size:clamp(18px,1.5vw,22px);font-weight:500;color:#626b66;letter-spacing:-.015em}
.expo-machines .expo-show__list button::after{display:none}
.expo-machines .expo-show__list button[aria-pressed=true]{color:#293e33;font-weight:700;background:transparent;box-shadow:inset 3px 0 var(--green-text);padding-left:16px}
.expo-machines .expo-show__fact{font-size:15px;line-height:1.7;color:#626b66;margin-top:24px;max-width:40ch;min-height:3.4em}
.expo-machines .expo-show__stage{aspect-ratio:5/4;background:transparent;border:0;padding:0;box-sizing:border-box;max-height:540px}
.expo-machines .expo-show__img{width:100%;height:100%;max-height:540px;object-fit:contain;mix-blend-mode:normal}
@media(max-width:1100px){
  .expo-machines .expo-show{grid-template-columns:minmax(0,1fr)}
  .expo-machines .expo-show__stage{max-width:640px}
}

.expo-machines .expo-show__stage{grid-template-rows:minmax(0,1fr) auto;aspect-ratio:auto;min-height:440px;max-height:none}
.expo-machines .expo-show__stage .expo-show__img{height:auto;max-height:490px;object-fit:contain}
.expo-machines .expo-show__stage .expo-show__fact{justify-self:center;text-align:center;max-width:48ch;margin:18px 0 0;min-height:3.4em;font-size:14px;line-height:1.6}
@media(max-width:600px){.expo-machines .expo-show__stage{min-height:0}}

/* Compact product collage: staggered photographs with a controlled footprint. */
.expo-machines .expo-show{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:clamp(28px,5vw,72px)}
.expo-show__galleries{min-width:0;width:100%;max-width:620px;justify-self:center}
.expo-machine-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,168px);gap:10px 22px;padding:0 6px 22px;box-sizing:border-box}
.expo-machine{margin:0;min-width:0;display:flex;flex-direction:column;justify-content:flex-end}
.expo-machine:nth-child(even){transform:translateY(22px)}
.expo-machine:nth-child(3){padding-inline:10px 0}
.expo-machine:nth-child(4){padding-inline:0 10px}
.expo-machine img{display:block;max-width:100%;width:100%;height:137px;min-height:0;object-fit:contain;background:transparent}
.expo-machine figcaption{padding:6px 0 0;font-size:11px;line-height:1.4;color:#626b66;text-align:center;overflow-wrap:anywhere}
.expo-gallery-description{margin:24px auto 0;max-width:48ch;font-size:13px;line-height:1.6;color:#626b66;text-align:center}
.expo-gallery-more{margin:10px 0 0;font-size:15px;font-weight:600;line-height:1.5;color:var(--green-text);text-align:center}
@media(max-width:1100px){.expo-machines .expo-show{grid-template-columns:minmax(0,1fr)}.expo-show__galleries{max-width:600px}}
@media(max-width:500px){
 .expo-machine-grid{grid-template-rows:repeat(2,140px);gap:10px 12px;padding-inline:0}
 .expo-machine img{height:108px}
 .expo-machine figcaption{font-size:10px}
 .expo-gallery-more{font-size:14px}
}

/* Product-photo cards: restrained angles and layered paper shadows. */
.expo-machine-grid{perspective:1100px;grid-template-rows:repeat(2,190px);gap:18px 24px;padding:14px 14px 30px}
.expo-machine{position:relative;padding:10px 12px 12px!important;background:#fff;border:1px solid #e2e7e3;border-radius:9px;box-shadow:0 3px 5px #24382c06,0 12px 24px -12px #24382c30;transform-origin:center;transition:transform .25s ease,box-shadow .25s ease}
.expo-machine:nth-child(1){transform:rotate(-4deg) rotateY(5deg)}
.expo-machine:nth-child(2){transform:translateY(18px) rotate(3deg) rotateY(-5deg)}
.expo-machine:nth-child(3){transform:translate(7px,-2px) rotate(2deg) rotateY(4deg)}
.expo-machine:nth-child(4){transform:translate(-4px,17px) rotate(-3deg) rotateY(-4deg)}
.expo-machine img{height:151px;flex:1;min-height:0;max-height:151px}
.expo-machine figcaption{position:relative;padding-top:7px;font-size:11px;line-height:1.4;flex-shrink:0}
@media(hover:hover){
 .expo-machine:hover{z-index:2;transform:translateY(-3px) rotate(0) rotateY(0);box-shadow:0 15px 28px -12px #24382c40}
}
@media(max-width:500px){
 .expo-machine-grid{grid-template-rows:repeat(2,159px);gap:14px 15px;padding:12px 9px 26px}
 .expo-machine{padding:7px 8px 9px!important;border-radius:7px}
 .expo-machine img{height:119px;max-height:119px}
 .expo-machine figcaption{font-size:10px}
 .expo-machine:nth-child(3){transform:translateY(-2px) rotate(2deg)}
 .expo-machine:nth-child(4){transform:translateY(15px) rotate(-3deg)}
}
@media(prefers-reduced-motion:reduce){.expo-machine{transition:none}}

/* Final layout alignment across phone, tablet and desktop. */
.expo-page *, .expo-page *::before, .expo-page *::after{box-sizing:border-box}
.expo-page main>section{scroll-margin-top:0}
.expo-chapter{padding-block:clamp(44px,5.5vw,80px)}
.expo-reel{padding-block:clamp(32px,3.5vw,56px)}
.expo-registration,.expo-machines{padding-block:clamp(40px,5vw,72px)}
.expo-wrap{width:min(1280px,calc(100% - 64px))}
.expo-live__head{position:relative;padding-top:18px}
.expo-live__head h2{line-height:1.08}
.expo-reel__in>*,.expo-reg>*,.expo-faq>*,.expo-show>*{min-width:0}
.expo-reel.is-playing .expo-reel__play{inset:12px auto auto 12px;opacity:1;pointer-events:auto;width:44px;height:44px;font-size:16px;padding:0;background:#ffffffeb}
.expo-reg__intro{top:108px}
.expo-registration .expo-reg__intro h2{max-width:14ch}
.expo-registration .expo-reg__form{border-color:#e2e5e3}
.expo-registration .expo-pass__name{overflow-wrap:anywhere}
.expo-countdown{animation:none}
.expo-gallery-description,.expo-gallery-more{overflow-wrap:anywhere}
.expo-faq h2{line-height:1.08}
@media(min-width:701px) and (max-width:1100px){
 .expo-reel__in{gap:32px}
 .expo-reel__head h2{font-size:clamp(38px,5vw,54px)}
 .expo-reel__head>p{font-size:16px}
}
@media(max-width:700px){
 .expo-wrap{width:calc(100% - 36px)}
 .expo-page{--t-h2:clamp(32px,8.8vw,42px)}
 html:has(.expo-page){scroll-padding-top:80px}
 .expo-live__head{padding-top:12px}
  .expo-live__head h2{max-width:15ch}
 .expo-registration .expo-reg{gap:28px}
 .expo-registration .expo-reg__intro h2{font-size:38px}
 .expo-registration .expo-reg__intro>p{margin-top:18px}
 .expo-faq__list summary{font-size:17px;padding:18px 48px 18px 20px;min-height:64px}
 .expo-faq__list summary::before,.expo-faq__list summary::after{right:22px}
 .expo-machine-grid{max-width:540px;margin-inline:auto}
}
@media(max-width:360px){
 .expo-header__bar{gap:8px}
 .expo-header__brand img{max-width:135px;height:auto}
 .expo-header__cta{font-size:12px;padding:10px 14px}
 .expo-topbar__group{gap:6px 12px}
 .expo-topbar__item{font-size:11px}
 .expo-phone{grid-template-columns:88px minmax(0,1fr)}
 .expo-registration .expo-form select{padding-inline:10px}
 .expo-reel__head h2{font-size:37px}
 .expo-registration .expo-pass__stub{padding-inline:18px}
}

.expo-proof small{white-space:normal}
.expo-proof small svg{flex-shrink:0}
@media(min-width:701px) and (max-width:900px){.expo-proof small{font-size:11px}}

/* Results galleries: aligned categories, readable captions and explicit controls. */
.expo-results{background:#fff;border-top:1px solid var(--line)}
.expo-results__head{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 28px;align-items:center;margin-bottom:32px}
.expo-results__head h2{margin:0;font-size:clamp(34px,4vw,56px);line-height:1.08;color:var(--green-text)}
.expo-results__head p{grid-column:2 / -1;margin:0;font-size:15px;line-height:1.65;color:var(--ink-soft);max-width:48ch}
.expo-results__columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;row-gap:0}
.expo-results__group{min-width:0;display:grid;grid-row:span 4;grid-template-rows:subgrid}
.expo-results__collage{display:contents}
.expo-results__group h3{font-size:18px;line-height:1.4;letter-spacing:-.02em;font-weight:600;margin:0 0 14px;color:#303937}
.expo-results__main{position:relative;display:block;aspect-ratio:1;border-radius:8px;overflow:hidden;background:#f5f7f5}
.expo-results__main>img{width:100%;height:100%;object-fit:contain;display:block}
.expo-results__main>span{position:absolute;top:12px;right:12px;display:flex;gap:10px;align-items:center;padding:8px 11px;background:#fff;color:#263b30;border-radius:4px;font-size:12px;font-weight:600;box-shadow:0 2px 6px #0002}
.expo-results__caption{display:flex;justify-content:space-between;gap:12px;align-items:baseline;min-height:64px;padding:14px 0 16px}
.expo-results__caption p{margin:0;min-width:0;font-size:14px;line-height:1.5;color:#303937;font-weight:600}
.expo-results__caption>span{white-space:nowrap;font-size:12px;color:#67746c;font-variant-numeric:tabular-nums}
.expo-results__thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.expo-results__thumb{display:block;aspect-ratio:1;padding:3px;border:2px solid transparent;border-radius:6px;overflow:hidden}
.expo-results__thumb img{width:100%;height:100%;display:block;object-fit:contain;border-radius:3px}
.expo-results__thumb[aria-current=true]{border-color:var(--green-text)}
.expo-results__thumb:hover{border-color:#9bb5a8}
.expo-results :is(a,button):focus-visible{outline:3px solid var(--green-text);outline-offset:3px}
.expo-photo-dialog{border:0;border-radius:10px;padding:18px;width:min(850px,calc(100vw - 32px));max-height:calc(100dvh - 32px);color:#fff;background:#17231d;overflow:auto}
.expo-photo-dialog::backdrop{background:#101a15df}
html:has(.expo-photo-dialog[open]){overflow:hidden}
@media(max-width:900px){.expo-results__head{column-gap:18px}.expo-results__columns{column-gap:18px}.expo-results__group h3{font-size:16px}}
@media(max-width:700px){
 .expo-results__head{grid-template-columns:1fr;gap:16px;margin:0 auto 28px;max-width:440px}
 .expo-results__head p{grid-column:auto}
 .expo-results__columns{grid-template-columns:1fr;row-gap:0;max-width:440px;margin-inline:auto}
 .expo-results__group{grid-row:auto;grid-template-rows:auto auto auto auto}
 .expo-results__group+.expo-results__group{margin-top:36px}
 .expo-results__group h3{font-size:19px}
 .expo-results__caption{min-height:58px}
 .expo-photo-dialog{padding:12px}
}

/* ---------- Prize wheel: the fair's purchase roulette, spinnable here as a demo ----------
   Built like the real thing: the printed wheel (img/ruleta.webp) inside a dark rim of lights that blink while it spins,
   a yellow pointer seated on the rim. Segments are 30° wide, centred at 0°, 30°, 60°… clockwise from the top. */
.expo-wheel{display:grid;grid-template-columns:minmax(0,540px) minmax(0,1fr);align-items:center;gap:40px clamp(40px,6vw,88px);margin-top:clamp(32px,4vw,48px);padding:clamp(40px,4.5vw,64px) clamp(24px,4.5vw,64px) clamp(32px,4vw,56px);border-radius:28px;background:var(--green);color:var(--ink);position:relative;overflow:hidden;isolation:isolate}
/* The fair photo the benefits band used, laid faintly under the brand green so the wheel sits in the fair itself. */
.expo-wheel::before{content:"";position:absolute;inset:0;z-index:-1;background:url('../img/feria-maquinas.webp') center 48% / cover no-repeat;opacity:.05;pointer-events:none}
.expo-wheel__stage{position:relative;width:100%;max-width:540px;aspect-ratio:1;margin:28px auto 0}
.expo-wheel__rim{position:absolute;inset:0;width:100%;height:100%}
.expo-wheel__bulbs circle{fill:#fff6dc}
.expo-wheel__bulbs circle:nth-child(odd){fill:var(--yellow)}
.expo-wheel.is-spinning .expo-wheel__bulbs circle{animation:expo-bulb .32s steps(1) infinite}
.expo-wheel.is-spinning .expo-wheel__bulbs circle:nth-child(odd){animation-delay:-.16s}
@keyframes expo-bulb{0%{fill:#fff6dc}50%{fill:var(--yellow)}}
.expo-wheel__disc{position:absolute;z-index:2;inset:4.5%;width:91%;height:91%;border-radius:50%;cursor:pointer;will-change:transform;backface-visibility:hidden;transform:translateZ(0);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
/* Pointer: its tip rests just inside the wheel's edge (disc starts at 4.5%); the cap stays fully inside the card. */
.expo-wheel__pointer{position:absolute;left:44%;top:-6.5%;z-index:3;width:12%;height:auto;transform-origin:50% 22.5%;transition:transform .08s ease-out;filter:drop-shadow(0 2px 0 rgba(32,59,50,.35))} /* taste-skill-ignore: a solid offset under the physical pointer, not a soft UI shadow */
.expo-wheel__pointer.is-tick{transform:rotate(-14deg)}
.expo-wheel__copy h3{margin:0;font-size:clamp(30px,3.4vw,46px);font-weight:800;line-height:1.1;letter-spacing:-.03em;text-wrap:balance}
.expo-wheel__copy>p:first-of-type{max-width:42ch;margin-top:14px!important;font-size:18px;font-weight:500;line-height:1.5}
.expo-wheel__try{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;margin-top:30px}
.expo-wheel__spin{min-height:58px;padding:16px 30px;border:0;background:var(--yellow);color:var(--ink);font-size:17px;font-weight:700;cursor:pointer}
.expo-wheel__spin:disabled{cursor:progress;opacity:.85}
.expo-wheel__spin i{transition:transform .5s var(--ease-out)}
.expo-wheel__spin:active{transform:scale(.97)}
.expo-wheel__spin:focus-visible{outline:3px solid var(--ink);outline-offset:4px}
@media(max-width:900px){
  .expo-wheel{grid-template-columns:1fr;text-align:center}
  .expo-wheel__stage{max-width:440px}
  .expo-wheel__copy>p:first-of-type,.expo-prizes{margin-inline:auto}
  .expo-wheel__try{justify-content:center}
}
@media(max-width:700px){
  .expo-wheel{border-radius:24px;padding-top:44px}
  .expo-wheel__copy>p:first-of-type{font-size:16px}
  .expo-wheel__try{flex-direction:column;align-items:stretch}
  .expo-wheel__spin{justify-content:center}
}
@media(prefers-reduced-motion:reduce){.expo-prizes li.is-hit,.expo-wheel.is-spinning .expo-wheel__bulbs circle{animation:none}.expo-wheel__pointer{transition:none}}
/* Wheel copy in white on the green field (the prize tiles keep their own ink on white). */
.expo-wheel__copy{color:var(--paper)}
.expo-wheel__copy :is(h3,p,li){color:var(--paper)}
.expo-wheel__copy>p:first-of-type{font-weight:600}
/* Prize table: set like the printed rules of a draw. Two plain cards, type only: the bonuses as large figures,
   the products as a two-column list. The prize the spin lands on is marked in yellow. */
.expo-prizes{display:grid;gap:10px;max-width:560px;margin-top:26px}
.expo-prizes__card{padding:18px 22px 14px;border-radius:18px;background:var(--paper);color:var(--ink)}
.expo-wheel__copy .expo-prizes__label{margin:0 0 6px!important;font-size:14px;font-weight:700;color:var(--ink-soft)}
.expo-prizes ul{display:grid;margin:0;padding:0;list-style:none}
.expo-prizes li{position:relative;border-radius:10px;color:var(--ink)!important;transition:background-color .3s var(--ease-out)}
.expo-prizes__bonos{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-inline:-10px!important}
.expo-prizes__bonos li{padding:4px 10px 6px;font-size:clamp(28px,2.6vw,36px);font-weight:800;line-height:1.1;letter-spacing:-.035em;color:var(--green-text)!important}
.expo-prizes__items{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;margin-inline:-10px!important}
.expo-prizes__items li{padding:10px;font-size:15px;font-weight:700;line-height:1.3;box-shadow:inset 0 1px 0 #e6efeb} /* taste-skill-ignore: row rules of a real prize table */
.expo-prizes__items li:nth-child(-n+2){box-shadow:none}
.expo-prizes li.is-hit{background:var(--yellow);color:var(--ink)!important;box-shadow:none;animation:expo-tile-hit .5s var(--ease-out)}
.expo-prizes li.is-hit+li{box-shadow:none}
@keyframes expo-tile-hit{0%{transform:scale(1)}40%{transform:scale(1.04)}100%{transform:scale(1)}}
@media(max-width:700px){
  .expo-prizes__card{padding:16px 16px 12px;text-align:left}
  .expo-prizes__bonos{gap:2px}
  .expo-prizes__bonos li{padding:4px 8px 6px;font-size:clamp(19px,5.6vw,24px);text-align:center}
  .expo-prizes__items{column-gap:8px}
  .expo-prizes__items li{font-size:14px}
}
/* Result: a capsule beside the button; white once a prize comes up. */
.expo-wheel__status{display:flex;flex-direction:column;justify-content:center;min-height:58px;padding:8px 22px;border-radius:18px;background:rgba(255,255,255,.18);color:var(--paper)!important;line-height:1.3;transition:background-color .3s var(--ease-out)}
.expo-wheel__status strong{font-size:16px;font-weight:800}
.expo-wheel__status span{font-size:14px;font-weight:600}
.expo-wheel__status.is-win{background:var(--paper);color:var(--ink)!important}
.expo-wheel__status.is-win strong{color:var(--green-text)}
@media(max-width:700px){.expo-wheel__status{text-align:center}}

/* ---------- Registration pass as a visitor credential ----------
   Mint body with the logo and the visitor's name; a yellow tear-off stub with the registration number,
   divided by a dashed perforation with notches cut in the page white. Overrides the earlier pass layers. */
.expo-registration .expo-pass.expo-pass--badge{display:block;margin-top:32px;border:0;border-radius:22px;background:var(--mint);overflow:visible}
.expo-pass--badge .expo-pass__main{padding:24px 26px 26px!important}
.expo-pass--badge .expo-pass__heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 22px;padding:0;border:0}
.expo-pass--badge .expo-pass__heading img{width:150px;max-width:55%;height:auto}
.expo-registration .expo-pass--badge .expo-pass__event{margin:0;padding:6px 14px;border-radius:999px;background:var(--paper);font-size:13px;font-weight:800;line-height:1.2;color:var(--green-text);text-align:center;white-space:nowrap}
.expo-pass--badge .expo-pass__role{margin:0 0 4px!important;font-size:13px;font-weight:700;color:var(--ink-soft)}
.expo-registration .expo-pass--badge .expo-pass__name{margin:0;font-size:clamp(26px,2.4vw,32px);font-weight:800;line-height:1.15;letter-spacing:-.025em;color:var(--ink)}
.expo-registration .expo-pass--badge .expo-pass__name.is-empty{color:#7d8f88}
.expo-registration .expo-pass--badge .expo-pass__data{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px 32px;margin:22px 0 0}
.expo-registration .expo-pass--badge .expo-pass__data>div{display:block}
.expo-registration .expo-pass--badge .expo-pass__data dt{font-size:13px;font-weight:600;color:var(--ink-soft)}
.expo-registration .expo-pass--badge .expo-pass__data dd{margin:3px 0 0;font-size:15px;font-weight:800;line-height:1.35;color:var(--ink)}
.expo-registration .expo-pass--badge .expo-pass__stub{position:relative;display:block;padding:22px 26px 24px;border:0;border-top:2px dashed rgba(32,59,50,.3);border-radius:0 0 22px 22px;background:var(--yellow)} /* taste-skill-ignore: the ticket's perforation */
.expo-pass--badge .expo-pass__stub::before,.expo-pass--badge .expo-pass__stub::after{content:"";display:block!important;position:absolute;top:-13px;width:24px;height:24px;border-radius:50%;background:var(--paper)}
.expo-pass--badge .expo-pass__stub::before{left:-12px}
.expo-pass--badge .expo-pass__stub::after{right:-12px}
.expo-registration .expo-pass--badge .expo-pass__label{margin:0 0 4px!important;font-size:13px;font-weight:700;color:var(--ink)}
.expo-registration .expo-pass--badge .expo-pass__code{margin:0;font-size:clamp(30px,3vw,38px);font-weight:800;line-height:1.1;letter-spacing:.04em;color:var(--ink);font-variant-numeric:tabular-nums}
.expo-registration .expo-pass--badge.is-issued .expo-pass__code{animation:expo-stamp .5s var(--ease-out)}
.expo-registration .expo-pass--badge .expo-pass__instruction{margin:10px 0 0!important;padding:0;font-size:14px;font-weight:600;line-height:1.45;color:var(--ink)}
@media(max-width:700px){
  .expo-pass--badge .expo-pass__main{padding:20px 20px 22px!important}
  .expo-registration .expo-pass--badge .expo-pass__stub{padding:20px 20px 22px}
  .expo-registration .expo-pass--badge .expo-pass__data{grid-template-columns:1fr;gap:12px}
}
@media(prefers-reduced-motion:reduce){.expo-registration .expo-pass--badge.is-issued .expo-pass__code{animation:none}}


/* ---------- Video section: one centred composition ----------
   Text and video sit together in a 1080px block instead of at opposite edges; the video is larger,
   the title calmer, and the highlights a plain list with brand-green markers. */
.expo-reel .expo-reel__in{grid-template-columns:minmax(0,1fr) auto;justify-content:center;gap:clamp(40px,6vw,88px);max-width:1080px;margin-inline:auto}
.expo-reel .expo-reel__head h2{font-size:clamp(40px,4.4vw,60px);line-height:1.05}
.expo-reel .expo-reel__head>p{max-width:40ch;margin-top:20px!important;font-size:18px;line-height:1.6}
.expo-reel .expo-reel__highlights{gap:12px;margin:26px 0 28px;font-size:16px;font-weight:700;color:var(--ink)}
.expo-reel .expo-reel__highlights li{gap:12px}
.expo-reel .expo-reel__highlights li::before{content:"";flex:0 0 10px;width:10px;height:10px;border-radius:50%;background:var(--green)}
.expo-reel .expo-reel__visit{display:block;max-width:420px;padding-top:22px;border-top:1px solid var(--line)}
.expo-reel .expo-reel__visit p{gap:4px}
.expo-reel .expo-reel__visit strong{font-size:17px}
.expo-reel .expo-reel__visit p>span{font-size:15px;color:var(--ink-soft)}
.expo-reel .expo-reel__visual{align-items:center}
.expo-reel .expo-reel__frame{width:clamp(300px,calc((100vh - 220px) * 9 / 16),400px);border-radius:24px}
@media(max-width:900px){
  .expo-reel .expo-reel__in{grid-template-columns:minmax(0,1fr);max-width:560px}
  .expo-reel .expo-reel__head{text-align:center}
  .expo-reel .expo-reel__head>p,.expo-reel .expo-reel__visit{margin-inline:auto}
  .expo-reel .expo-reel__highlights{justify-items:center}
  .expo-reel .expo-reel__frame{width:min(100%,380px)}
}

/* ---------- One type scale for the whole page ----------
   Section titles were 52–66px and each section had its own size; they now share one step, and every
   intro paragraph shares another. IDs are used so this wins over the per-section rules above without !important.
   Scale: section title 50 · block title 38 · card title 24/20/17 · figure 30 · intro 17 · body 16 (desktop). */
:is(#expo-reel-title,#expo-vive,#expo-registro,#expo-maquinas,#expo-results-title,#expo-faq){font-size:clamp(30px,3.4vw,50px);line-height:1.08;letter-spacing:-.03em}
#experiencia .expo-wheel__copy h3{font-size:clamp(26px,2.6vw,38px);line-height:1.1}
#experiencia .expo-bento__tile--a .expo-bento__cap h3{font-size:24px}
#experiencia .expo-bento__tile--b .expo-bento__cap h3{font-size:20px}
#experiencia :is(.expo-bento__tile--c,.expo-bento__tile--d) .expo-bento__cap h3{font-size:17px}
.expo-hero .expo-proof strong{font-size:30px}
:is(.expo-reel__head,.expo-live__head,.expo-reg__intro,.expo-results__head)>p,#experiencia .expo-wheel__copy>p:first-of-type{font-size:17px;line-height:1.6}
#preguntas .expo-faq__list summary{font-size:18px}
@media(max-width:700px){
  :is(.expo-reel__head,.expo-live__head,.expo-reg__intro,.expo-results__head)>p,#experiencia .expo-wheel__copy>p:first-of-type{font-size:16px}
  #experiencia :is(.expo-bento__tile--a,.expo-bento__tile--b,.expo-bento__tile--c,.expo-bento__tile--d) .expo-bento__cap h3{font-size:18px}
  #preguntas .expo-faq__list summary{font-size:17px}
  .expo-hero .expo-proof strong{font-size:22px}
}
.expo-reel .expo-reel__head>p{font-size:17px;line-height:1.6}
@media(max-width:700px){.expo-reel .expo-reel__head>p{font-size:16px}}

/* ---------- One vertical rhythm for the whole page ----------
   Every section after the banner is white, so paddings used to stack (up to ~200px between sections).
   Now: one section padding, a quiet rule where two white sections meet, and one title-to-content gap. */
.expo-page main>section.expo-chapter:not(.expo-hero){padding-block:clamp(40px,4vw,56px);border-top:0}
.expo-page main>section.expo-chapter:not(.expo-hero)+section.expo-chapter{border-top:1px solid var(--line)} /* taste-skill-ignore: marks where two white sections meet */
.expo-page .expo-live__head{padding-top:0;margin-bottom:32px}
.expo-page .expo-results__head{margin-bottom:32px}
#experiencia .expo-wheel{margin-top:40px}
#maquinas .expo-show{align-items:start}
@media(max-width:700px){
  .expo-page main>section.expo-chapter:not(.expo-hero){padding-block:36px}
  .expo-page .expo-live__head,.expo-page .expo-results__head{margin-bottom:24px}
  #experiencia .expo-wheel{margin-top:28px}
}

/* ---------- Photo viewer ----------
   Minimal chrome on a deep backdrop: category and caption above, the photo large with round white
   arrow buttons on its sides, and a strip of the category's photos below. Line icons, one stroke weight. */
.expo-page .expo-photo-dialog{width:min(900px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:0;background:transparent;color:var(--paper);overflow:visible}
.expo-page .expo-photo-dialog::backdrop{background:rgba(13,22,18,.9)}
.expo-lightbox__top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}
.expo-lightbox__category{margin:0!important;font-size:14px;font-weight:600;color:rgba(255,255,255,.7)}
.expo-lightbox__caption{margin:2px 0 0!important;font-size:19px;font-weight:800;line-height:1.3;color:var(--paper)}
.expo-page .expo-lightbox__btn{display:grid;place-items:center;flex:0 0 auto;width:48px;height:48px;padding:0;border:0;border-radius:50%;background:var(--paper);color:var(--ink);cursor:pointer;transition:background-color .2s var(--ease-out),transform .16s var(--ease-out)}
.expo-lightbox__btn:active{transform:scale(.95)}
.expo-lightbox__btn:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.expo-lightbox__stage{position:relative;display:grid;place-items:center;border-radius:18px;overflow:hidden;background:#0d1612}
.expo-page .expo-lightbox__stage img{display:block;width:100%;height:min(66dvh,680px);object-fit:contain}
.expo-lightbox__nav{position:absolute;top:50%;margin-top:-24px}
.expo-lightbox__nav:active{transform:scale(.95)}
.expo-lightbox__nav--prev{left:16px}
.expo-lightbox__nav--next{right:16px}
.expo-lightbox__foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px}
.expo-lightbox__thumbs{display:flex;gap:8px}
.expo-page .expo-lightbox__thumbs button{width:64px;height:64px;padding:0;border:0;border-radius:10px;overflow:hidden;background:none;cursor:pointer;opacity:.55;outline:2px solid transparent;outline-offset:2px;transition:opacity .2s var(--ease-out),outline-color .2s var(--ease-out)}
.expo-lightbox__thumbs button img{display:block;width:100%;height:100%;object-fit:cover}
.expo-lightbox__thumbs button[aria-current]{opacity:1;outline-color:var(--yellow)}
.expo-lightbox__thumbs button:focus-visible{opacity:1;outline-color:var(--paper)}
.expo-lightbox__count{margin:0!important;font-size:15px;font-weight:700;color:rgba(255,255,255,.8);font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:700px){
  .expo-page .expo-photo-dialog{width:calc(100vw - 24px)}
  .expo-lightbox__caption{font-size:17px}
  .expo-page .expo-lightbox__btn{width:44px;height:44px}
  .expo-lightbox__nav{margin-top:-22px}
  .expo-lightbox__nav--prev{left:10px}
  .expo-lightbox__nav--next{right:10px}
  .expo-page .expo-lightbox__stage img{height:auto;max-height:60dvh}
  .expo-page .expo-lightbox__thumbs button{width:52px;height:52px}
}

/* Embroidery results reuse the machines showcase; the photo inside each card is a link to the viewer. */
#bordados .expo-show{align-items:start}
.expo-machine>a[data-result-thumb]{display:flex;flex:1;min-height:0;cursor:zoom-in;border-radius:4px}
.expo-machine>a[data-result-thumb] img{width:100%}
.expo-machine>a[data-result-thumb]:focus-visible{outline:3px solid var(--green-text);outline-offset:3px}
#bordados .expo-gallery-description a{font-weight:700;color:var(--green-text);text-decoration:underline;text-underline-offset:3px}
/* Embroidery results: the photos carry their own printed labels, so no card, caption or description —
   just the four photos, large, in a clean 2×2. */
#bordados .expo-show__galleries{max-width:720px}
#bordados .expo-machine-grid{grid-template-rows:none;gap:14px;padding:0;perspective:none}
#bordados .expo-machine,#bordados .expo-machine:nth-child(n){padding:0!important;border:0;border-radius:16px;overflow:hidden;background:var(--mint);box-shadow:none;transform:none}
@media(hover:hover){#bordados .expo-machine:hover{transform:none;box-shadow:none}}
#bordados .expo-machine img{height:auto;max-height:none;aspect-ratio:1;object-fit:cover;transition:transform .6s var(--ease-out)}
@media(hover:hover){#bordados .expo-machine:hover img{transform:scale(1.03)}}
#bordados .expo-machine>a[data-result-thumb]{border-radius:0}
@media(max-width:700px){#bordados .expo-machine-grid{gap:8px}#bordados .expo-machine,#bordados .expo-machine:nth-child(n){border-radius:12px}}
/* Pinned category galleries: the block holds still while the section scrolls past and its tabs advance. */
.expo-show.is-pinned{position:sticky;top:var(--pin-top,96px)}
[data-expo-show] [data-gallery-panel]:not([hidden]){animation:expo-panel-in .35s var(--ease-out)}
@keyframes expo-panel-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){[data-expo-show] [data-gallery-panel]:not([hidden]){animation:none}}
/* Phones: keep the machines block within one screen so it can pin and step through its tabs. */
@media(max-width:700px){
  #maquinas .expo-show{gap:18px}
  #maquinas .expo-show__list ul{margin-top:16px}
  #maquinas .expo-show__list button{padding-block:11px;font-size:17px}
  #maquinas .expo-gallery-description{margin-top:12px}
  #maquinas .expo-gallery-more{margin-top:4px}
  #maquinas .expo-machine-grid{grid-template-rows:repeat(2,148px);padding-block:8px 20px}
  #maquinas .expo-machine img{height:110px;max-height:110px}
  #bordados .expo-show{gap:18px}
  #bordados .expo-show__list ul{margin-top:16px}
  #bordados .expo-show__list button{padding-block:11px;font-size:17px}
}
/* Scroll-linked category change: all panels share one grid cell; JS sets each panel's opacity and each card's
   translate from the scroll position. `translate` is used so the cards keep their own rotation transform. */
.expo-show__galleries.is-stacked{display:grid}
.expo-show__galleries.is-stacked>[data-gallery-panel]{grid-area:1/1;animation:none;will-change:opacity}
.expo-show__galleries.is-stacked>.expo-gallery-more{grid-area:2/1}
.expo-show__galleries.is-stacked :is(.expo-machine,.expo-gallery-description){will-change:translate}
/* Expo page: keep only the footer's bottom bar (copyright and credit); the shared site footer is untouched elsewhere. */
.expo-page .fx-site-footer__main{display:none}

/* ---------- FAQ: a ruled list, like the category lists ----------
   No filled boxes: rows divided by the pale rule, the question in ink (green when open), a line chevron in a
   round mint button that turns and fills, and the answer opening smoothly where the browser supports it. */
#preguntas .expo-faq__intro{position:sticky;top:120px}
#preguntas .expo-faq__intro h2{position:static}
#preguntas .expo-faq__intro p{max-width:30ch;margin-top:16px!important;font-size:17px;line-height:1.6;color:var(--ink-soft)}
#preguntas .expo-faq__contact{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin-top:12px;font-size:16px;font-weight:800;color:var(--green-text);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
#preguntas .expo-faq__contact svg{width:18px;height:18px;transition:transform .2s var(--ease-out)}
#preguntas .expo-faq__list{gap:0;border-top:1px solid var(--line);interpolate-size:allow-keywords} /* taste-skill-ignore: rules of a real list */
#preguntas .expo-faq__list details{border-radius:0;background:none;border-bottom:1px solid var(--line)}
#preguntas .expo-faq__list details[open]{background:none}
#preguntas .expo-faq__list summary{justify-content:space-between;gap:24px;min-height:0;padding:22px 0;font-size:18px;font-weight:700;color:var(--ink);transition:color .2s var(--ease-out)}
#preguntas .expo-faq__list summary::before,#preguntas .expo-faq__list summary::after{content:none}
#preguntas .expo-faq__list details[open] summary{color:var(--green-text)}
#preguntas .expo-faq__list summary:focus-visible{outline:3px solid var(--green-text);outline-offset:4px;border-radius:6px}
.expo-faq__icon{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:var(--mint);color:var(--ink);transition:transform .3s var(--ease-out),background-color .2s var(--ease-out),color .2s var(--ease-out)}
#preguntas details[open] .expo-faq__icon{transform:rotate(180deg);background:var(--green);color:var(--paper)}
#preguntas .expo-faq__list details p{max-width:62ch;padding:0 56px 24px 0;font-size:16px;line-height:1.65;color:var(--ink-soft)}
#preguntas .expo-faq__list details::details-content{block-size:0;overflow:hidden;transition:block-size .35s var(--ease-out),content-visibility .35s allow-discrete}
#preguntas .expo-faq__list details[open]::details-content{block-size:auto}
@media(max-width:900px){#preguntas .expo-faq__intro{position:static}}
@media(max-width:700px){
  #preguntas .expo-faq__list summary{padding:18px 0;font-size:17px}
  .expo-faq__icon{flex-basis:32px;width:32px;height:32px}
  #preguntas .expo-faq__list details p{padding-right:0}
}
@media(prefers-reduced-motion:reduce){#preguntas .expo-faq__list details::details-content{transition:none}.expo-faq__icon{transition:none}}

/* ---------- Registration success popup: the entry ticket ---------- */
.expo-success{width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:32px 28px 26px;border:0;border-radius:24px;background:var(--paper);color:var(--ink);text-align:center;overflow:auto}
.expo-success::backdrop{background:rgba(13,22,18,.72)}
.expo-success[open]{animation:expo-success-in .4s var(--ease-out)}
@keyframes expo-success-in{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.expo-success__close{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:var(--mint);color:var(--ink);cursor:pointer;transition:background-color .2s var(--ease-out)}
.expo-success__title{margin:6px 36px 0!important;font-size:26px;font-weight:800;line-height:1.15;letter-spacing:-.02em;color:var(--green-text);text-wrap:balance}
.expo-success__lead{margin-top:10px!important;font-size:15px;line-height:1.55;color:var(--ink-soft)}
.expo-ticket{margin:22px 0 0;border-radius:20px;background:var(--mint);text-align:left;overflow:visible}
.expo-ticket__main{padding:20px 22px}
.expo-ticket__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.expo-ticket__head img{width:120px;height:auto}
.expo-ticket__head span{padding:5px 12px;border-radius:999px;background:var(--paper);font-size:12px;font-weight:800;color:var(--green-text)}
.expo-ticket__name{font-size:22px;font-weight:800;line-height:1.2;letter-spacing:-.02em;overflow-wrap:anywhere}
.expo-ticket__data{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 24px;margin:14px 0 0}
.expo-ticket__data dt{font-size:12px;font-weight:600;color:var(--ink-soft)}
.expo-ticket__data dd{margin:2px 0 0;font-size:14px;font-weight:800;line-height:1.35}
.expo-ticket__stub{position:relative;padding:16px 22px 18px;border-top:2px dashed rgba(32,59,50,.3);border-radius:0 0 20px 20px;background:var(--yellow)} /* taste-skill-ignore: the ticket's perforation */
.expo-ticket__stub::before,.expo-ticket__stub::after{content:"";position:absolute;top:-12px;width:22px;height:22px;border-radius:50%;background:var(--paper)}
.expo-ticket__stub::before{left:-11px}
.expo-ticket__stub::after{right:-11px}
.expo-ticket__stub p:first-child{font-size:12px;font-weight:700}
.expo-ticket__code{margin-top:2px!important;font-size:32px;font-weight:800;line-height:1.1;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.expo-success__mail{margin-top:18px!important;font-size:14px;line-height:1.55;color:var(--ink-soft)}
.expo-success__mail strong{color:var(--ink);overflow-wrap:anywhere}
.expo-success__actions{display:grid;gap:8px;margin-top:20px}
.expo-success__actions .expo-btn{justify-content:center;min-height:54px}
.expo-success__done{min-height:48px;border:0;background:none;font:inherit;font-size:15px;font-weight:700;color:var(--ink-soft);cursor:pointer}
.expo-success :focus-visible{outline:3px solid var(--green-text);outline-offset:3px}
html:has(.expo-success[open]){overflow:hidden}
@media(max-width:420px){.expo-success{padding:28px 18px 20px}.expo-ticket__data{grid-template-columns:1fr;gap:8px}.expo-ticket__code{font-size:28px}}
@media(prefers-reduced-motion:reduce){.expo-success[open]{animation:none}}
/* Countdown pill in red with white text (5.6:1), no icon. */
.expo-countdown{gap:0;padding:6px 16px;background:#d62828;color:var(--paper)}
.expo-countdown b{color:var(--paper)}
/* Countdown heartbeat: two quick beats then a rest, with a red ring radiating out on each cycle. */
.expo-countdown{position:relative;animation:expo-latido 1.8s cubic-bezier(.45,0,.55,1) infinite}
.expo-countdown::after{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid #d62828;pointer-events:none;animation:expo-latido-ring 1.8s var(--ease-out) infinite}
@keyframes expo-latido-ring{0%{opacity:.7;transform:scale(1)}45%,100%{opacity:0;transform:scale(1.25,1.6)}}
@media(prefers-reduced-motion:reduce){.expo-countdown,.expo-countdown::after{animation:none}.expo-countdown::after{opacity:0}}
/* FAQ contact as a pill button in the FAMATEX green, like the site's green buttons. */
#preguntas .expo-faq__contact{gap:10px;min-height:52px;margin-top:20px;padding:14px 26px;border-radius:999px;background:var(--green);color:var(--paper);font-size:16px;font-weight:700;text-decoration:none;transition:background-color .2s var(--ease-out),transform .16s var(--ease-out)}
#preguntas .expo-faq__contact i{font-size:20px}
#preguntas .expo-faq__contact:active{transform:scale(.97)}
/* Header menu: no underline; the current section is shown by ink colour and weight only. */
.expo-header__nav a::after{content:none;display:none}
.expo-header__nav a[aria-current]{font-weight:800}
/* Phones: section titles use the full column width instead of a narrow measure. */
@media(max-width:700px){
  :is(#expo-reel-title,#expo-vive,#expo-registro,#expo-maquinas,#expo-results-title,#expo-faq){max-width:none!important;text-wrap:pretty}
  .expo-page .expo-registration .expo-reg__intro h2,.expo-page .expo-machines .expo-show__list h2{max-width:none}
}
/* Entry tickets carry the Expo Famatex logo. */
.expo-pass--badge .expo-pass__heading img{width:160px;max-width:58%}
.expo-ticket__head img{width:130px}
/* Entry tickets use the same FAMATEX green as section titles. */
.expo-registration .expo-pass.expo-pass--badge,.expo-ticket{background:var(--green-text)}
.expo-registration .expo-pass--badge :is(.expo-pass__role,.expo-pass__data dt),.expo-ticket__data dt{color:#d6e3df}
.expo-registration .expo-pass--badge :is(.expo-pass__name,.expo-pass__data dd),.expo-ticket :is(.expo-ticket__name,.expo-ticket__data dd){color:var(--paper)}
.expo-registration .expo-pass--badge .expo-pass__name.is-empty{color:#bcd3cb}
.expo-registration .expo-pass--badge .expo-pass__event,.expo-ticket__head span{background:var(--paper);color:var(--green-text)}
.expo-registration .expo-pass--badge .expo-pass__stub,.expo-ticket__stub{border-top-color:rgba(32,59,50,.35)}
