/* Component styling for the Jefferson component library.
   Components ship as thin JSX that applies these classes; every value comes from a token. */

/* ---------- Button ---------- */
.jeff-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-h-md);padding:0 var(--space-5);border:var(--border-w) solid transparent;border-radius:var(--radius-sm);font-family:var(--font-display);font-size:var(--fs-body-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-tight);line-height:1;text-decoration:none;cursor:pointer;transition:var(--transition-control);white-space:nowrap}
.jeff-btn:hover{text-decoration:none}
.jeff-btn:active{transform:scale(var(--press-scale))}
.jeff-btn[disabled],.jeff-btn[aria-disabled="true"]{opacity:.45;pointer-events:none}
.jeff-btn--sm{min-height:var(--control-h-sm);padding:0 var(--space-4);font-size:var(--fs-caption)}
.jeff-btn--lg{min-height:var(--control-h-lg);padding:0 var(--space-6);font-size:var(--fs-body-md)}
.jeff-btn--block{width:100%}
.jeff-btn--primary{background:var(--level-accent);color:var(--text-inverse);box-shadow:var(--shadow-xs)}
.jeff-btn--primary:hover{background:var(--level-accent-600);color:var(--text-inverse);box-shadow:var(--shadow-accent);transform:var(--lift-hover)}
.jeff-btn--primary:active{background:var(--level-accent-700);transform:scale(var(--press-scale))}
.jeff-btn--secondary{background:transparent;color:var(--text-strong);border-color:var(--border-strong)}
.jeff-btn--secondary:hover{background:var(--neutral-050);border-color:var(--level-accent);color:var(--level-accent)}
.jeff-btn--ghost{background:transparent;color:var(--level-accent);padding-inline:var(--space-3)}
.jeff-btn--ghost:hover{background:var(--level-wash);color:var(--level-accent-700)}
.jeff-btn--inverse{background:var(--neutral-000);color:var(--text-strong)}
.jeff-btn--inverse:hover{background:var(--neutral-050);transform:var(--lift-hover)}
.jeff-btn--glass{background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:var(--glass-border);color:var(--text-strong);box-shadow:var(--glass-shadow)}
.jeff-btn--glass:hover{background:rgba(255,255,255,.86);transform:var(--lift-hover)}
.jeff-btn--glass-dark{background:var(--glass-bg-dark);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:var(--glass-border-dark);color:var(--text-inverse);box-shadow:var(--glass-shadow)}
.jeff-btn--glass-dark:hover{background:rgba(27,26,25,.58);color:var(--text-inverse);transform:var(--lift-hover)}
.jeff-btn .jeff-icon{font-size:18px}

/* ---------- IconButton ---------- */
.jeff-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:var(--control-h-md);height:var(--control-h-md);border:var(--border-w) solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-body);cursor:pointer;transition:var(--transition-control)}
.jeff-iconbtn:hover{background:var(--neutral-050);color:var(--level-accent)}
.jeff-iconbtn:active{transform:scale(var(--press-scale))}
.jeff-iconbtn--outline{border-color:var(--border-default)}
.jeff-iconbtn--solid{background:var(--level-accent);color:var(--text-inverse)}
.jeff-iconbtn--solid:hover{background:var(--level-accent-600);color:var(--text-inverse)}
.jeff-iconbtn--glass{background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:var(--glass-border);box-shadow:var(--glass-shadow);color:var(--text-strong)}
.jeff-iconbtn--pill{border-radius:var(--radius-pill)}
.jeff-iconbtn--sm{width:var(--control-h-sm);height:var(--control-h-sm)}
.jeff-iconbtn--lg{width:var(--control-h-lg);height:var(--control-h-lg)}

/* ---------- Badge & Tag ---------- */
.jeff-badge{width:fit-content;justify-self:start;display:inline-flex;align-items:center;gap:var(--space-1);padding:3px var(--space-2);border-radius:var(--radius-xs);font-family:var(--font-display);font-size:var(--fs-label);font-weight:var(--weight-bold);letter-spacing:var(--tracking-label);text-transform:uppercase;line-height:1.4}
.jeff-badge--accent{background:var(--level-wash);color:var(--level-accent-700)}
.jeff-badge--solid{background:var(--level-accent);color:var(--text-inverse)}
.jeff-badge--neutral{background:var(--neutral-100);color:var(--neutral-700)}
.jeff-badge--success{background:var(--success-050);color:var(--success-500)}
.jeff-badge--warning{background:var(--warning-050);color:var(--warning-500)}
.jeff-badge--danger{background:var(--danger-050);color:var(--danger-500)}
.jeff-badge--outline{background:transparent;color:var(--text-body);box-shadow:inset 0 0 0 1px var(--border-default)}
.jeff-tag{width:fit-content;justify-self:start;display:inline-flex;align-items:center;gap:var(--space-2);min-height:32px;padding:0 var(--space-3);border:var(--border-w) solid var(--border-default);border-radius:var(--radius-pill);background:var(--surface-card);font-family:var(--font-display);font-size:var(--fs-caption);font-weight:var(--weight-medium);color:var(--text-body);cursor:pointer;transition:var(--transition-control)}
.jeff-tag:hover{border-color:var(--level-accent);color:var(--level-accent)}
.jeff-tag[aria-pressed="true"]{background:var(--level-accent);border-color:var(--level-accent);color:var(--text-inverse)}
.jeff-tag--static{cursor:default}

/* ---------- LevelPill ---------- */
.jeff-levelpill{width:fit-content;justify-self:start;align-self:start;display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1) var(--space-2);border-radius:var(--radius-pill);background:var(--level-wash);font-family:var(--font-display);font-size:var(--fs-label);font-weight:var(--weight-bold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--level-accent-700)}
.jeff-levelpill__dot{width:8px;height:8px;border-radius:50%;background:var(--level-accent)}
.jeff-levelpill--onDark{background:var(--glass-bg-dark);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:var(--glass-border-dark);color:var(--text-inverse)}

/* ---------- Card ---------- */
.jeff-card{display:flex;flex-direction:column;background:var(--surface-card);border:var(--border-w) solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;transition:var(--transition-control)}
.jeff-card--elevated{border-color:transparent;box-shadow:var(--shadow-md)}
.jeff-card--flat{background:var(--surface-sunken);border-color:transparent}
.jeff-card--interactive{cursor:pointer}
.jeff-card--interactive:hover{transform:var(--lift-hover);box-shadow:var(--shadow-lg);border-color:transparent}
.jeff-card__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--neutral-100)}
.jeff-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--dur-slow) var(--ease-out)}
.jeff-card--interactive:hover .jeff-card__media img{transform:scale(1.04)}
.jeff-card__body{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5)}
.jeff-card__title{font-family:var(--font-display);font-size:var(--fs-h4);font-weight:var(--weight-bold);color:var(--text-strong);letter-spacing:var(--tracking-tight);margin:0}
.jeff-card__text{font-size:var(--fs-body-sm);color:var(--text-muted);margin:0}
.jeff-card__footer{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:var(--border-w) solid var(--border-subtle);margin-top:auto}

/* ---------- Form controls ---------- */
.jeff-field{display:flex;flex-direction:column;gap:var(--space-2)}
.jeff-field__label{font-family:var(--font-display);font-size:var(--fs-caption);font-weight:var(--weight-semibold);color:var(--text-strong)}
.jeff-field__hint{font-size:var(--fs-caption);color:var(--text-muted)}
.jeff-field__error{font-size:var(--fs-caption);color:var(--danger-500);font-weight:var(--weight-medium)}
.jeff-input,.jeff-select,.jeff-textarea{width:100%;min-height:var(--control-h-md);padding:var(--space-3) var(--space-4);border:var(--border-w) solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);font-family:var(--font-body);font-size:var(--fs-body-md);color:var(--text-strong);transition:var(--transition-control)}
.jeff-textarea{min-height:120px;resize:vertical;line-height:var(--leading-normal)}
.jeff-input::placeholder,.jeff-textarea::placeholder{color:var(--neutral-400)}
.jeff-input:hover,.jeff-select:hover,.jeff-textarea:hover{border-color:var(--border-strong)}
.jeff-input:focus,.jeff-select:focus,.jeff-textarea:focus{outline:none;border-color:var(--level-accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--level-accent) 18%,transparent)}
.jeff-input[aria-invalid="true"],.jeff-textarea[aria-invalid="true"]{border-color:var(--danger-500)}
.jeff-input[disabled],.jeff-select[disabled],.jeff-textarea[disabled]{background:var(--neutral-050);color:var(--neutral-400);cursor:not-allowed}
.jeff-select{appearance:none;padding-right:var(--space-8);background-image:linear-gradient(45deg,transparent 50%,var(--neutral-500) 50%),linear-gradient(135deg,var(--neutral-500) 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.jeff-choice{display:inline-flex;align-items:flex-start;gap:var(--space-3);min-height:var(--tap-min);padding-block:var(--space-2);font-size:var(--fs-body-sm);color:var(--text-body);cursor:pointer}
.jeff-choice input{appearance:none;flex:0 0 auto;width:20px;height:20px;margin:0;border:var(--border-w-strong) solid var(--border-strong);background:var(--surface-card);cursor:pointer;transition:var(--transition-control);display:grid;place-content:center}
.jeff-choice--check input{border-radius:var(--radius-xs)}
.jeff-choice--radio input{border-radius:50%}
.jeff-choice input:hover{border-color:var(--level-accent)}
.jeff-choice input:checked{background:var(--level-accent);border-color:var(--level-accent)}
.jeff-choice--check input:checked::after{content:"";width:11px;height:6px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translateY(-1px)}
.jeff-choice--radio input:checked::after{content:"";width:8px;height:8px;border-radius:50%;background:#fff}
.jeff-switch{display:inline-flex;align-items:center;gap:var(--space-3);cursor:pointer;font-size:var(--fs-body-sm);color:var(--text-body);min-height:var(--tap-min)}
.jeff-switch__track{position:relative;flex:0 0 auto;width:46px;height:26px;border-radius:var(--radius-pill);background:var(--neutral-300);transition:var(--transition-control)}
.jeff-switch__track::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--dur-fast) var(--ease-standard)}
.jeff-switch input{position:absolute;opacity:0;width:0;height:0}
.jeff-switch input:checked+.jeff-switch__track{background:var(--level-accent)}
.jeff-switch input:checked+.jeff-switch__track::after{transform:translateX(20px)}

/* ---------- Tabs ---------- */
.jeff-tabs{display:flex;gap:var(--space-1);border-bottom:var(--border-w) solid var(--border-default)}
.jeff-tabs__tab{position:relative;appearance:none;background:none;border:0;padding:var(--space-3) var(--space-4);font-family:var(--font-display);font-size:var(--fs-body-sm);font-weight:var(--weight-semibold);color:var(--text-muted);cursor:pointer;transition:var(--transition-control)}
.jeff-tabs__tab:hover{color:var(--text-strong)}
.jeff-tabs__tab[aria-selected="true"]{color:var(--level-accent)}
.jeff-tabs__tab[aria-selected="true"]::after{content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:-1px;height:2px;background:var(--level-accent);border-radius:2px}
.jeff-tabs--pill{border:0;gap:var(--space-2)}
.jeff-tabs--pill .jeff-tabs__tab{border-radius:var(--radius-pill);background:var(--neutral-050)}
.jeff-tabs--pill .jeff-tabs__tab[aria-selected="true"]{background:var(--level-accent);color:var(--text-inverse)}
.jeff-tabs--pill .jeff-tabs__tab[aria-selected="true"]::after{display:none}

/* ---------- Accordion ---------- */
.jeff-accordion{border-top:var(--border-w) solid var(--border-subtle)}
.jeff-accordion__item{border-bottom:var(--border-w) solid var(--border-subtle)}
.jeff-accordion__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:100%;padding:var(--space-5) 0;background:none;border:0;text-align:left;font-family:var(--font-display);font-size:var(--fs-body-lg);font-weight:var(--weight-semibold);color:var(--text-strong);cursor:pointer;transition:var(--transition-control)}
.jeff-accordion__trigger:hover{color:var(--level-accent)}
.jeff-accordion__icon{color:var(--level-accent);transition:transform var(--dur-base) var(--ease-standard)}
.jeff-accordion__item[data-open="true"] .jeff-accordion__icon{transform:rotate(45deg)}
.jeff-accordion__panel{padding:0 0 var(--space-5);max-width:var(--measure-default);font-size:var(--fs-body-md);color:var(--text-body)}

/* ---------- Breadcrumbs ---------- */
.jeff-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:var(--fs-caption);color:var(--text-muted)}
.jeff-crumbs a{color:var(--text-muted);text-decoration:none}
.jeff-crumbs a:hover{color:var(--level-accent)}
.jeff-crumbs__sep{color:var(--neutral-300)}
.jeff-crumbs__current{color:var(--text-strong);font-weight:var(--weight-semibold)}

/* ---------- Dialog ---------- */
.jeff-dialog__scrim{position:fixed;inset:0;background:rgba(27,26,25,.44);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:var(--space-5);z-index:60}
.jeff-dialog{width:100%;max-width:520px;background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}
.jeff-dialog__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-6) var(--space-6) var(--space-3)}
.jeff-dialog__title{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--weight-bold);color:var(--text-strong);margin:0}
.jeff-dialog__body{padding:0 var(--space-6) var(--space-5);color:var(--text-body);font-size:var(--fs-body-md)}
.jeff-dialog__foot{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);background:var(--surface-sunken)}

/* ---------- Toast ---------- */
.jeff-toast{display:flex;align-items:flex-start;gap:var(--space-3);width:min(420px,90vw);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);background:var(--surface-card);box-shadow:var(--shadow-lg);border-left:3px solid var(--level-accent)}
.jeff-toast--success{border-left-color:var(--success-500)}
.jeff-toast--warning{border-left-color:var(--warning-500)}
.jeff-toast--danger{border-left-color:var(--danger-500)}
.jeff-toast__title{font-family:var(--font-display);font-size:var(--fs-body-sm);font-weight:var(--weight-bold);color:var(--text-strong)}
.jeff-toast__text{font-size:var(--fs-caption);color:var(--text-muted)}

/* ---------- Tooltip ---------- */
.jeff-tooltip{position:relative;display:inline-flex}
.jeff-tooltip__bubble{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);padding:var(--space-2) var(--space-3);border-radius:var(--radius-xs);background:var(--surface-inverse);color:var(--text-inverse);font-size:var(--fs-caption);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-standard);box-shadow:var(--shadow-md);z-index:20}
.jeff-tooltip:hover .jeff-tooltip__bubble,.jeff-tooltip:focus-within .jeff-tooltip__bubble{opacity:1}

/* ---------- Blocks ---------- */
.jeff-program{display:flex;flex-direction:column;gap:var(--space-3);height:100%;padding:var(--space-6);background:var(--surface-card);border:var(--border-w) solid var(--border-subtle);border-radius:var(--radius-lg);transition:var(--transition-control)}
.jeff-program:hover{border-color:transparent;box-shadow:var(--shadow-lg);transform:var(--lift-hover)}
.jeff-program__meta{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);font-size:var(--fs-caption);color:var(--text-muted)}
.jeff-program__meta span{display:inline-flex;align-items:center;gap:var(--space-1)}
.jeff-program__edge{width:36px;height:3px;border-radius:2px;background:var(--level-accent)}
.jeff-stat{display:flex;flex-direction:column;gap:var(--space-1)}
.jeff-stat__value{font-family:var(--font-display);font-size:var(--fs-display-2);font-weight:var(--weight-black);letter-spacing:var(--tracking-display);color:var(--level-accent);line-height:var(--leading-tight)}
.jeff-stat__label{font-family:var(--font-display);font-size:var(--fs-caption);font-weight:var(--weight-semibold);color:var(--text-strong)}
.jeff-stat__note{font-size:var(--fs-caption);color:var(--text-muted)}
.jeff-stat--onDark .jeff-stat__value{color:var(--text-inverse)}
.jeff-stat--onDark .jeff-stat__label{color:var(--text-inverse)}
.jeff-stat--onDark .jeff-stat__note{color:var(--neutral-300)}
.jeff-quote{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-6);background:var(--surface-card);border-radius:var(--radius-lg);border:var(--border-w) solid var(--border-subtle)}
.jeff-quote__text{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--weight-medium);line-height:var(--leading-snug);color:var(--text-strong);letter-spacing:var(--tracking-tight);margin:0}
.jeff-quote__person{display:flex;align-items:center;gap:var(--space-3)}
.jeff-quote__photo{width:48px;height:48px;border-radius:50%;object-fit:cover;background:var(--neutral-100)}
.jeff-quote__name{font-family:var(--font-display);font-size:var(--fs-body-sm);font-weight:var(--weight-bold);color:var(--text-strong)}
.jeff-quote__role{font-size:var(--fs-caption);color:var(--text-muted)}
.jeff-cta{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-8) var(--space-8);border-radius:var(--radius-xl);background:var(--level-gradient);color:var(--text-inverse);overflow:hidden}
.jeff-cta__title{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:var(--weight-black);letter-spacing:var(--tracking-display);margin:0;max-width:22ch}
.jeff-cta__text{font-size:var(--fs-body-md);color:rgba(255,255,255,.86);margin:var(--space-2) 0 0;max-width:52ch}
.jeff-cta__escudo{position:absolute;right:-40px;bottom:-60px;width:280px;opacity:.14}
.jeff-news{display:grid;grid-template-columns:112px 1fr;gap:var(--space-4);align-items:center;padding:var(--space-3);border-radius:var(--radius-md);transition:var(--transition-control);cursor:pointer}
.jeff-news:hover{background:var(--surface-sunken)}
.jeff-news__thumb{width:112px;height:76px;border-radius:var(--radius-sm);object-fit:cover;background:var(--neutral-100)}
.jeff-news__date{font-family:var(--font-display);font-size:var(--fs-label);font-weight:var(--weight-bold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--level-accent)}
.jeff-news__title{font-family:var(--font-display);font-size:var(--fs-body-md);font-weight:var(--weight-semibold);color:var(--text-strong);margin:2px 0 0}
.jeff-wa{width:fit-content;position:fixed;right:var(--space-5);bottom:var(--space-5);display:inline-flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5) var(--space-3) var(--space-4);border-radius:var(--radius-pill);background:var(--glass-bg-strong);-webkit-backdrop-filter:var(--glass-blur-strong);backdrop-filter:var(--glass-blur-strong);border:var(--glass-border);box-shadow:var(--glass-shadow);font-family:var(--font-display);font-size:var(--fs-body-sm);font-weight:var(--weight-semibold);color:var(--text-strong);text-decoration:none;transition:var(--transition-control);z-index:40}
.jeff-wa:hover{transform:var(--lift-hover);background:rgba(255,255,255,.9);color:var(--text-strong)}
.jeff-wa__dot{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--success-500);color:#fff}

/* ---------- Micro-animaciones y recortes tipo sticker ---------- */
@keyframes jeffRise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes jeffFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes jeffSheen{from{transform:translateX(-120%) skewX(-18deg)}to{transform:translateX(320%) skewX(-18deg)}}
.jeff-reveal{opacity:0}
.jeff-reveal.is-in{animation:jeffRise var(--dur-reveal) var(--ease-out) both}
.jeff-reveal--d1.is-in{animation-delay:.09s}
.jeff-reveal--d2.is-in{animation-delay:.18s}
.jeff-reveal--d3.is-in{animation-delay:.27s}
.jeff-float{animation:jeffFloat 7.5s var(--ease-standard) infinite}
.jeff-float--slow{animation-duration:9.5s}
.jeff-float--fast{animation-duration:6s}
/* Recorte: figura sobre fondo claro con contorno blanco tipo calcomanía */
.jeff-cutout{position:relative;display:block;overflow:hidden;background:var(--neutral-100);border-radius:clamp(90px,14vw,180px) clamp(90px,14vw,180px) var(--radius-lg) var(--radius-lg);box-shadow:0 0 0 8px #fff,var(--shadow-lg);transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.jeff-cutout img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--dur-slow) var(--ease-out)}
.jeff-cutout:hover{transform:translateY(-12px) scale(1.015);box-shadow:0 0 0 8px #fff,0 44px 64px -32px rgba(27,26,25,.34)}
.jeff-cutout:hover img{transform:scale(1.06)}
.jeff-cutout__tag{position:absolute;left:50%;bottom:16px;transform:translate(-50%,8px);opacity:0;transition:opacity var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard)}
.jeff-cutout:hover .jeff-cutout__tag{opacity:1;transform:translate(-50%,0)}
/* Brillo discreto al pasar el cursor por el botón primario */
.jeff-btn--primary{position:relative;overflow:hidden}
.jeff-btn--primary::after{content:"";position:absolute;top:0;bottom:0;width:36%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent);transform:translateX(-120%) skewX(-18deg);pointer-events:none}
.jeff-btn--primary:hover::after{animation:jeffSheen var(--dur-slow) var(--ease-out) both}
/* Enlaces de navegación con subrayado que crece desde el centro */
.jeff-navlink{position:relative}
.jeff-navlink::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;border-radius:2px;background:var(--level-accent);transform:scaleX(0);transform-origin:center;transition:transform var(--dur-fast) var(--ease-standard)}
.jeff-navlink:hover::after{transform:scaleX(1)}
.jeff-navlink[aria-current="page"]::after{transform:scaleX(1)}
@media (prefers-reduced-motion:reduce){.jeff-reveal{opacity:1}.jeff-reveal.is-in,.jeff-float,.jeff-btn--primary:hover::after{animation:none}.jeff-cutout:hover{transform:none}}
