/*
 * Eat & Train v2 compositions (Brand Unification, 11 Oct 2026): the plate, the route, the food hub.
 * Loaded only when eat-train/render.php's compositions render (sh_et_v2_active()), after et.css, et-brand.css and the
 * Sneaky Line base. Every selector starts with body.sh-et-look; motion only under prefers-reduced-motion:
 * no-preference, finite, transform/opacity/stroke-dashoffset only; nothing loads from another host.
 */

/* ---------- frame ---------- */
body.sh-et-look main.etv { padding: 0; }
body.sh-et-look .etv-mast .sl-mast-copy { gap: 16px; }
body.sh-et-look .etv .sl-h1 { margin: 0; }
body.sh-et-look .etv-title .etv-pre, body.sh-et-look .etv-wk-title .etv-pre { display: block; margin-bottom: 6px; font: 700 clamp(1rem, .92rem + .3vw, 1.2rem)/1.25 var(--sl-text); letter-spacing: 0; color: var(--sl-muted); }
body.sh-et-look .etv-eyebadge { --sl-ns: 28px; }
body.sh-et-look .etv-eyebadge .sl-i { width: 15px; height: 15px; }
body.sh-et-look .etv-facts { margin-top: 2px; }
body.sh-et-look .etv-mast .sl-crumbs { margin: -4px 0 0; }
body.sh-et-look .etv-libs nav.sh-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
body.sh-et-look .etv-libs nav.sh-breadcrumbs li::before, body.sh-et-look .etv-libs nav.sh-breadcrumbs li::after { display: none; content: none; }
body.sh-et-look .etv-libs nav.sh-breadcrumbs a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border: 1.5px solid #d6e8d2; border-radius: 999px; background: rgba(255, 255, 255, .86); color: var(--sl-ink); font: 650 13.5px/1 var(--sl-text); text-decoration: none; }
body.sh-et-look .etv-libs nav.sh-breadcrumbs a:hover { border-color: var(--sl-eat); }
body.sh-et-look .etv-libs nav.sh-breadcrumbs a[aria-current] { border-color: var(--sl-eat-ink); background: var(--sl-eat-ink); color: #fff; }
body.sh-et-look .etv-email { padding-top: clamp(18px, 2.4vw, 28px); }
body.sh-et-look .etv-email:empty { display: none; }
body.sh-et-look .etv-fine { margin: 14px 0 0; font: 600 13.5px/1.45 var(--sl-text); color: var(--sl-muted); text-align: center; }
body.sh-et-look .etv-stage-cap { margin: 12px 0 0; font: 600 13.5px/1.45 var(--sl-text); color: var(--sl-muted); text-align: center; }
body.sh-et-look .etv-stage-cap a { color: var(--sl-ink); font-weight: 700; text-decoration: underline; text-decoration-color: var(--sl-sky); text-decoration-thickness: 2px; text-underline-offset: 3px; }
body.sh-et-look .etv-empty { display: grid; gap: 8px; justify-items: start; padding: 26px 28px; border: 1px dashed var(--sl-line); border-radius: 22px; background: #fff; }
body.sh-et-look .etv-empty strong { font: 700 19px/1.25 var(--sl-display); color: var(--sl-ink); }
body.sh-et-look .etv-empty p { margin: 0; color: var(--sl-copy); }
body.sh-et-look .etv-empty--build { margin-top: 18px; border-style: solid; }
body.sh-et-look .etv-alt-head { margin-top: 24px; }
body.sh-et-look .etv-more { display: flex; justify-content: center; margin-top: 30px; }

/* ---------- widths and heights in steps of 5 / 10 (no inline styles) ---------- */
body.sh-et-look .etv-w0 { width: 0; } body.sh-et-look .etv-w5 { width: 5%; } body.sh-et-look .etv-w10 { width: 10%; } body.sh-et-look .etv-w15 { width: 15%; } body.sh-et-look .etv-w20 { width: 20%; }
body.sh-et-look .etv-w25 { width: 25%; } body.sh-et-look .etv-w30 { width: 30%; } body.sh-et-look .etv-w35 { width: 35%; } body.sh-et-look .etv-w40 { width: 40%; } body.sh-et-look .etv-w45 { width: 45%; }
body.sh-et-look .etv-w50 { width: 50%; } body.sh-et-look .etv-w55 { width: 55%; } body.sh-et-look .etv-w60 { width: 60%; } body.sh-et-look .etv-w65 { width: 65%; } body.sh-et-look .etv-w70 { width: 70%; }
body.sh-et-look .etv-w75 { width: 75%; } body.sh-et-look .etv-w80 { width: 80%; } body.sh-et-look .etv-w85 { width: 85%; } body.sh-et-look .etv-w90 { width: 90%; } body.sh-et-look .etv-w95 { width: 95%; } body.sh-et-look .etv-w100 { width: 100%; }
body.sh-et-look .etv-h0 { --etv-h: 0; } body.sh-et-look .etv-h10 { --etv-h: 10; } body.sh-et-look .etv-h20 { --etv-h: 20; } body.sh-et-look .etv-h30 { --etv-h: 30; } body.sh-et-look .etv-h40 { --etv-h: 40; } body.sh-et-look .etv-h50 { --etv-h: 50; }
body.sh-et-look .etv-h60 { --etv-h: 60; } body.sh-et-look .etv-h70 { --etv-h: 70; } body.sh-et-look .etv-h80 { --etv-h: 80; } body.sh-et-look .etv-h90 { --etv-h: 90; } body.sh-et-look .etv-h100 { --etv-h: 100; }

/* ---------- roles and food groups ---------- */
body.sh-et-look .etv-role--breakfast { --etv-role: #e0a33a; --etv-role-wash: #fdf3e2; } body.sh-et-look .etv-role--lunch { --etv-role: #7dbd62; --etv-role-wash: #eef7ea; }
body.sh-et-look .etv-role--dinner { --etv-role: #2f7a34; --etv-role-wash: #e6f2e7; } body.sh-et-look .etv-role--main_meal { --etv-role: #3d9442; --etv-role-wash: #e9f4e9; }
body.sh-et-look .etv-role--snack { --etv-role: #6ec4e8; --etv-role-wash: #eaf6fb; } body.sh-et-look .etv-role--pre_workout { --etv-role: #4ea6ec; --etv-role-wash: #eaf4fd; }
body.sh-et-look .etv-role--post_workout { --etv-role: #246b5f; --etv-role-wash: #e7f2ef; } body.sh-et-look .etv-role--meal { --etv-role: #7dbd62; --etv-role-wash: #eef7ea; }
body.sh-et-look .etv-g--vegetable { --etv-g: #3d9442; } body.sh-et-look .etv-g--fruit { --etv-g: #e0a33a; } body.sh-et-look .etv-g--legume_soy { --etv-g: #7dbd62; } body.sh-et-look .etv-g--fish_seafood { --etv-g: #4ea6ec; }
body.sh-et-look .etv-g--meat { --etv-g: #b0285a; } body.sh-et-look .etv-g--egg { --etv-g: #e9c46a; } body.sh-et-look .etv-g--dairy { --etv-g: #6ec4e8; } body.sh-et-look .etv-g--grain_starch { --etv-g: #c9a46a; }
body.sh-et-look .etv-g--baked_food { --etv-g: #a57a4a; } body.sh-et-look .etv-g--breakfast_cereal { --etv-g: #d6b26a; } body.sh-et-look .etv-g--nuts_seeds { --etv-g: #8a5a06; } body.sh-et-look .etv-g--fats_oils { --etv-g: #c9b04a; }
body.sh-et-look .etv-g--other { --etv-g: #9fb3c0; }
body.sh-et-look .etv-badge, body.sh-et-look .etv-node { display: inline-grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--etv-role, var(--sl-eat)); color: #fff; }
body.sh-et-look .etv-badge .sl-i, body.sh-et-look .etv-node .sl-i { width: 55%; height: 55%; }

/* ---------- the plate: a ring of the day's meals ---------- */
body.sh-et-look .etv-ring { display: block; width: 100%; max-width: 320px; height: auto; margin-inline: auto; overflow: visible; }
body.sh-et-look .etv-ring-big { font: 800 44px/1 var(--sl-display); letter-spacing: -.03em; fill: var(--sl-ink); }
body.sh-et-look .etv-ring-sm { font: 650 15px/1 var(--sl-text); fill: var(--sl-muted); }
body.sh-et-look .etv-ring--sm { max-width: 120px; }
body.sh-et-look .etv-ring--sm .etv-ring-big { font-size: 24px; }
body.sh-et-look .etv-ring--sm .etv-ring-sm { font-size: 12px; transform: translateY(-6px); }
body.sh-et-look .etv-day { display: grid; gap: 24px; align-items: center; padding: clamp(18px, 2.6vw, 28px); border: 1px solid #dcebd8; border-radius: 30px; background: rgba(255, 255, 255, .9); box-shadow: var(--sl-shadow-lift); }
body.sh-et-look .etv-day-side { display: grid; gap: 18px; }
body.sh-et-look .etv-legend { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
body.sh-et-look .etv-legend li { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 12px; align-items: center; font: 700 15.5px/1.2 var(--sl-text); color: var(--sl-ink); }
body.sh-et-look .etv-legend em { font: 800 15px/1 var(--sl-display); font-style: normal; color: var(--sl-ink); font-variant-numeric: tabular-nums; }
body.sh-et-look .etv-macros { display: grid; gap: 10px; }
body.sh-et-look .etv-mac { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; margin: 0; font: 650 14px/1.2 var(--sl-text); color: var(--sl-copy); }
body.sh-et-look .etv-mac em { font-style: normal; font-weight: 800; color: var(--sl-ink); font-variant-numeric: tabular-nums; }
body.sh-et-look .etv-bar { grid-column: 1 / -1; display: block; height: 8px; border-radius: 8px; background: #eef5eb; overflow: hidden; }
body.sh-et-look .etv-bar i { display: block; height: 100%; border-radius: 8px; background: var(--sl-eat); }
body.sh-et-look .etv-mac--c .etv-bar i { background: #c9a46a; }
body.sh-et-look .etv-mac--f .etv-bar i { background: #9ccf86; }
body.sh-et-look .etv-plate-stage { display: grid; justify-items: center; padding: clamp(18px, 3vw, 30px); border: 1px solid #dcebd8; border-radius: 30px; background: rgba(255, 255, 255, .9); box-shadow: var(--sl-shadow-lift); }
@media (min-width: 600px) { body.sh-et-look .etv-day { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }

/* ---------- the day, meal by meal ---------- */
body.sh-et-look .etv-ribbon { position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 12px; margin: 0 0 clamp(24px, 3vw, 36px); padding: 0; list-style: none; }
body.sh-et-look .etv-ribbon::before { content: ""; position: absolute; left: 26px; right: 26px; top: 26px; height: 4px; border-radius: 4px; background: var(--sl-grad); opacity: .55; }
body.sh-et-look .etv-ribbon a { position: relative; display: grid; justify-items: center; gap: 6px; padding: 0 6px; color: var(--sl-ink); text-align: center; text-decoration: none; }
body.sh-et-look .etv-ribbon .etv-node { width: 54px; height: 54px; box-shadow: 0 0 0 5px #fff, 0 12px 22px -12px rgba(18, 44, 58, .5); }
body.sh-et-look .etv-ribbon b { font: 700 16px/1.2 var(--sl-display); }
body.sh-et-look .etv-ribbon span:last-child { font: 650 13.5px/1 var(--sl-text); color: var(--sl-muted); }
body.sh-et-look .etv-mealgrid { display: grid; gap: 20px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { body.sh-et-look .etv-mealgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
body.sh-et-look .etv-meal { position: relative; display: grid; gap: 14px; align-content: start; padding: 22px 22px 20px; border: 1px solid var(--sl-line-soft); border-radius: 26px; background: #fff; box-shadow: var(--sl-shadow-card); }
body.sh-et-look .etv-meal::before { content: ""; position: absolute; left: 22px; right: 22px; top: 0; height: 4px; border-radius: 0 0 4px 4px; background: var(--etv-role, var(--sl-eat)); }
body.sh-et-look .etv-meal-top { display: flex; align-items: center; gap: 10px; }
body.sh-et-look .etv-meal-role { font: 800 12.5px/1 var(--sl-text); letter-spacing: .12em; text-transform: uppercase; color: var(--sl-ink); }
body.sh-et-look .etv-meal-kcal { margin-left: auto; font: 800 26px/1 var(--sl-display); color: var(--sl-ink); font-variant-numeric: tabular-nums; }
body.sh-et-look .etv-meal-kcal small { margin-left: 4px; font: 650 13px/1 var(--sl-text); color: var(--sl-muted); }
body.sh-et-look .etv-meal-title { margin: 0; font: 700 clamp(1.15rem, 1rem + .45vw, 1.35rem)/1.25 var(--sl-display); color: var(--sl-ink); }
body.sh-et-look .etv-share { display: flex; gap: 3px; height: 10px; margin: 0; }
body.sh-et-look .etv-share i { display: block; height: 100%; border-radius: 6px; background: var(--etv-g, #9fb3c0); }
body.sh-et-look .etv-items { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
body.sh-et-look .etv-items li { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 2px 14px; align-items: baseline; padding: 11px 0 11px 18px; border-top: 1px solid var(--sl-line-soft); }
body.sh-et-look .etv-items li::before { content: ""; position: absolute; left: 0; top: 17px; width: 9px; height: 9px; border-radius: 50%; background: var(--etv-g, #9fb3c0); }
body.sh-et-look .etv-items b { font: 700 15.5px/1.3 var(--sl-text); color: var(--sl-ink); }
body.sh-et-look .etv-items .etv-g, body.sh-et-look .etv-items .etv-kc { font: 700 14px/1.2 var(--sl-text); color: var(--sl-ink); font-variant-numeric: tabular-nums; text-align: right; }
body.sh-et-look .etv-items .etv-g { color: var(--sl-copy); font-weight: 600; }
body.sh-et-look .etv-items small { grid-column: 1 / -1; font: 500 13px/1.35 var(--sl-text); color: var(--sl-muted); }
body.sh-et-look .etv-meal-energy { margin: 0; font: 650 14px/1.3 var(--sl-text); color: var(--sl-copy); }
body.sh-et-look .etv-after-note { margin-top: 16px; }

/* ---------- consoles: filters as chips ---------- */
body.sh-et-look .etv-console-wrap { position: relative; z-index: 2; margin-top: clamp(-34px, -2.6vw, -18px); }
body.sh-et-look .etv-console { display: grid; gap: 18px; padding: clamp(18px, 2.6vw, 28px); border: 1px solid var(--sl-line-soft); border-radius: 28px; background: #fff; box-shadow: var(--sl-shadow-lift); }
body.sh-et-look .etv-c-top { display: grid; gap: 18px; }
body.sh-et-look .etv-c-row { display: grid; gap: 10px; min-width: 0; margin: 0; padding: 0; border: 0; }
body.sh-et-look .etv-c-row legend, body.sh-et-look .etv-c-row > b { padding: 0; font: 800 12.5px/1.2 var(--sl-text); letter-spacing: .1em; text-transform: uppercase; color: var(--sl-ink); }
body.sh-et-look .etv-c-row legend b { font: inherit; }
body.sh-et-look .etv-chips { display: flex; flex-wrap: wrap; gap: 8px; }
body.sh-et-look .etv-chip > span .sl-i { width: 17px; height: 17px; color: var(--sl-pillar-ink); }
body.sh-et-look .etv-chip input:checked + span .sl-i { color: #fff; }
body.sh-et-look.sh-et-eat .etv-chip input:checked + span { background: var(--sl-eat-ink); border-color: var(--sl-eat-ink); }
body.sh-et-look.sh-et-train .etv-chip input:checked + span { background: var(--sl-train-ink); border-color: var(--sl-train-ink); }
body.sh-et-look .etv-search { max-width: none; min-height: 56px; padding-right: 18px; box-shadow: none; }
body.sh-et-look .etv-c-foot { display: grid; gap: 12px; align-items: center; justify-content: space-between; padding-top: 14px; border-top: 1px solid var(--sl-line-soft); }
body.sh-et-look .etv-c-foot .sl-note { margin: 0; max-width: 70ch; }
body.sh-et-look .etv-kit-more { display: inline-block; }
body.sh-et-look .etv-kit-more[open] { display: block; flex-basis: 100%; }
body.sh-et-look .etv-kit-more > summary { list-style: none; }
body.sh-et-look .etv-kit-more > summary::-webkit-details-marker { display: none; }
body.sh-et-look .etv-kit-more > .etv-chips { margin-top: 8px; }
@media (min-width: 900px) { body.sh-et-look .etv-c-top { grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 24px; } body.sh-et-look .etv-c-foot { grid-template-columns: minmax(0, 1fr) auto; } body.sh-et-look .etv-c-foot .sl-actions { justify-content: flex-end; } }

/* ---------- plan cards ---------- */
body.sh-et-look .etv-plangrid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
body.sh-et-look .etv-plancard { position: relative; display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 18px; align-items: center; padding: 18px; border: 1px solid #dcebd8; border-radius: 24px; background: #fff; color: var(--sl-copy); text-decoration: none; box-shadow: var(--sl-shadow-card); }
body.sh-et-look .etv-plancard:hover { border-color: var(--sl-eat); color: var(--sl-copy); }
body.sh-et-look .etv-plancard-ring .etv-ring { max-width: 112px; }
body.sh-et-look .etv-plancard-body { display: grid; gap: 6px; min-width: 0; }
body.sh-et-look .etv-plancard-title { font: 700 18px/1.25 var(--sl-display); color: var(--sl-ink); }
body.sh-et-look .etv-plancard-menu { font-size: 14.5px; line-height: 1.45; color: var(--sl-copy); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
body.sh-et-look .etv-plancard-facts { display: flex; flex-wrap: wrap; gap: 4px 12px; font: 650 13px/1.3 var(--sl-text); color: var(--sl-muted); }
body.sh-et-look .etv-plancard-facts span:first-child { color: var(--sl-eat-ink); font-weight: 750; }

/* ---------- the route: ticket, stations, clock ---------- */
body.sh-et-look .etv-ticket { position: relative; display: grid; gap: 16px; padding: 22px 22px 18px; border: 1px solid var(--sl-line-soft); border-radius: 28px; background: #fff; box-shadow: 0 40px 70px -46px rgba(18, 44, 58, .55); overflow: hidden; }
body.sh-et-look .etv-ticket::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 7px; background: linear-gradient(90deg, var(--sl-train), var(--sl-sky)); }
body.sh-et-look .etv-ticket-head { display: flex; align-items: center; gap: 14px; }
body.sh-et-look .etv-ticket-sub { margin: 4px 0 0; font: 650 14px/1.3 var(--sl-text); color: var(--sl-copy); }
body.sh-et-look .etv-clock { position: relative; flex: none; width: 74px; height: 74px; }
body.sh-et-look .etv-clock svg { display: block; width: 100%; height: 100%; }
body.sh-et-look .etv-clock-tr { fill: none; stroke: #e3eef7; stroke-width: 8; }
body.sh-et-look .etv-clock-ar { fill: none; stroke: var(--sl-train); stroke-width: 8; stroke-linecap: round; }
body.sh-et-look .etv-clock b { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; font: 800 22px/1 var(--sl-display); color: var(--sl-ink); }
body.sh-et-look .etv-clock b small { display: block; margin-top: 2px; font: 650 10.5px/1 var(--sl-text); color: var(--sl-muted); }
body.sh-et-look .etv-stations { position: relative; display: grid; gap: 2px; margin: 0; padding: 0 0 0 30px; list-style: none; }
body.sh-et-look .etv-stations::before, body.sh-et-look .etv-stations::after { content: ""; position: absolute; left: 9px; top: 14px; bottom: 14px; width: 4px; border-radius: 4px; }
body.sh-et-look .etv-stations::before { background: #e3eef7; }
body.sh-et-look .etv-stations::after { background: linear-gradient(180deg, #3fb39d, #4ea6ec 50%, #3fb39d); transform-origin: 50% 0; }
body.sh-et-look .etv-st { position: relative; --etv-sc: var(--sl-train); }
body.sh-et-look .etv-st--wu { --etv-sc: #3fb39d; } body.sh-et-look .etv-st--cd { --etv-sc: #246b5f; }
body.sh-et-look .etv-st > a, body.sh-et-look .etv-st > .etv-st-in { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; align-items: center; padding: 8px 10px; border-radius: 12px; color: var(--sl-ink); text-decoration: none; }
body.sh-et-look .etv-st > a:hover { background: var(--sl-train-wash); }
body.sh-et-look .etv-st::before { content: ""; position: absolute; left: -27px; top: 50%; z-index: 1; width: 14px; height: 14px; margin-top: -7px; border-radius: 50%; background: #fff; border: 3px solid var(--etv-sc); box-sizing: border-box; }
body.sh-et-look .etv-st.is-now > a { background: var(--sl-train-wash); }
body.sh-et-look .etv-st.is-now::before { background: var(--etv-sc); box-shadow: 0 0 0 4px rgba(43, 143, 214, .2); }
body.sh-et-look .etv-st b { font: 700 15px/1.2 var(--sl-display); color: var(--sl-ink); }
body.sh-et-look .etv-st small { grid-column: 1; font: 600 12.5px/1.2 var(--sl-text); color: var(--sl-muted); }
body.sh-et-look .etv-rounds { grid-row: 1 / span 2; grid-column: 2; display: flex; gap: 4px; }
body.sh-et-look .etv-rounds i { width: 10px; height: 10px; border-radius: 50%; background: var(--etv-sc); opacity: .85; }
body.sh-et-look .etv-route-stage { display: grid; gap: 4px; padding: 22px; border: 1px solid var(--sl-line-soft); border-radius: 28px; background: rgba(255, 255, 255, .92); box-shadow: var(--sl-shadow-lift); }
body.sh-et-look .etv-stations--stage { gap: 4px; }

/* ---------- before you start ---------- */
body.sh-et-look .etv-prep { display: grid; gap: 22px; padding: clamp(20px, 3vw, 30px); border: 1px solid var(--sl-line-soft); border-radius: 26px; background: #fff; box-shadow: var(--sl-shadow-card); }
@media (min-width: 900px) { body.sh-et-look .etv-prep { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; } }
body.sh-et-look .etv-kitrow { display: flex; flex-wrap: wrap; gap: 10px 18px; }
body.sh-et-look .etv-kitrow > span { display: inline-flex; align-items: center; gap: 8px; font: 650 15px/1 var(--sl-text); color: var(--sl-ink); }
body.sh-et-look .etv-kit-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--sl-train-wash); color: var(--sl-train-ink); }
body.sh-et-look .etv-kit-ic .sl-i { width: 22px; height: 22px; }
body.sh-et-look .etv-prep .sl-can .sl-i { color: var(--sl-train-ink); }
body.sh-et-look .etv-customise { margin-top: 18px; }

/* ---------- the blocks ---------- */
body.sh-et-look .etv-blocks { padding-bottom: clamp(40px, 5vw, 72px); }
body.sh-et-look .etv-block { position: relative; display: grid; gap: 16px; padding-block: 26px; border-top: 1px solid var(--sl-line-soft); scroll-margin-top: 90px; }
body.sh-et-look .etv-b-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
body.sh-et-look .etv-b-node { --sl-ns: 46px; }
body.sh-et-look .etv-b-node--wu { --sl-node: #3fb39d; } body.sh-et-look .etv-b-node--cd { --sl-node: #246b5f; }
body.sh-et-look .etv-b-title { margin: 0; font: 800 clamp(1.4rem, 1.1rem + .9vw, 1.9rem)/1.05 var(--sl-display); letter-spacing: -.02em; color: var(--sl-ink); }
body.sh-et-look .etv-b-facts { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; font: 650 14.5px/1.2 var(--sl-text); color: var(--sl-copy); }
body.sh-et-look .etv-b-facts span { display: inline-flex; align-items: center; gap: 7px; }
body.sh-et-look .etv-b-facts .sl-i { width: 18px; height: 18px; color: var(--sl-train-ink); }
body.sh-et-look .etv-exs { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); margin: 0; padding: 0; list-style: none; }
@media (min-width: 1100px) { body.sh-et-look .etv-exs { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 699px) { body.sh-et-look .etv-exs { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: calc(-1 * var(--sl-gutter)); padding: 4px var(--sl-gutter) 12px; } body.sh-et-look .etv-ex { flex: 0 0 236px; scroll-snap-align: start; } }
body.sh-et-look .etv-ex { position: relative; display: grid; gap: 10px; align-content: start; padding: 8px 8px 14px; border: 1px solid #dce9f3; border-radius: 20px; background: #fff; }
body.sh-et-look .etv-ex:hover { border-color: #a9d0ee; }
body.sh-et-look .etv-ex-media { position: relative; display: grid; place-items: center; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 14px; background: var(--sl-train-wash); color: #8fb1c3; }
body.sh-et-look .etv-ex-media img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
body.sh-et-look .etv-ex-media.is-none .sl-i { width: 44px; height: 44px; }
body.sh-et-look .etv-play { position: absolute; left: 10px; bottom: 10px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px 6px 8px; border-radius: 999px; background: rgba(255, 255, 255, .95); font: 700 12px/1 var(--sl-text); color: var(--sl-train-ink); }
body.sh-et-look .etv-play .sl-i { width: 14px; height: 14px; }
body.sh-et-look .etv-ex-num { position: absolute; right: 16px; top: 16px; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--sl-night); color: #fff; font: 800 12.5px/1 var(--sl-display); }
body.sh-et-look .etv-ex-title { margin: 0; padding-inline: 6px; font: 700 16.5px/1.25 var(--sl-display); color: var(--sl-ink); }
body.sh-et-look .etv-ex-title a { color: var(--sl-ink); text-decoration: none; }
body.sh-et-look .etv-ex-title a:hover { color: var(--sl-train-ink); text-decoration: underline; }
body.sh-et-look .etv-reps { display: grid; gap: 6px; align-items: end; margin: 0; padding-inline: 6px; }
body.sh-et-look .etv-reps--1 { grid-template-columns: repeat(1, minmax(0, 1fr)); } body.sh-et-look .etv-reps--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.sh-et-look .etv-reps--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.sh-et-look .etv-reps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } body.sh-et-look .etv-reps--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } body.sh-et-look .etv-reps--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
body.sh-et-look .etv-reps span { display: grid; gap: 5px; justify-items: center; font: 700 12.5px/1 var(--sl-text); color: var(--sl-ink); font-variant-numeric: tabular-nums; }
body.sh-et-look .etv-reps span::before { content: ""; width: 100%; height: calc(10px + var(--etv-h, 50) * .26px); border-radius: 6px 6px 3px 3px; background: linear-gradient(180deg, var(--sl-sky), var(--sl-train)); opacity: .85; }
body.sh-et-look .etv-ex.is-static .etv-reps span::before { background: linear-gradient(180deg, #a7dccf, #3fb39d); }
body.sh-et-look .etv-reps small { color: var(--sl-muted); font-weight: 600; font-size: 11px; }
body.sh-et-look .etv-ex-rx { margin: 0; padding-inline: 6px; font: 600 12.5px/1.3 var(--sl-text); color: var(--sl-muted); }

/* ---------- workout tickets (the library) ---------- */
body.sh-et-look .etv-wkgrid { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
body.sh-et-look .etv-wk { position: relative; display: grid; align-content: start; overflow: hidden; border: 1px solid #dce9f3; border-radius: 26px; background: #fff; color: var(--sl-copy); text-decoration: none; box-shadow: var(--sl-shadow-card); }
body.sh-et-look .etv-wk:hover { border-color: #a9d0ee; color: var(--sl-copy); }
body.sh-et-look .etv-wk-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px; background: var(--sl-train-wash); }
body.sh-et-look .etv-wk-strip > span { display: block; aspect-ratio: 4 / 3; overflow: hidden; }
body.sh-et-look .etv-wk-strip img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
body.sh-et-look .etv-wk-body { display: grid; gap: 12px; padding: 18px 20px 20px; }
body.sh-et-look .etv-wk-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
body.sh-et-look .etv-wk .sl-kicker { color: var(--sl-train-ink); }
body.sh-et-look .etv-pips { display: inline-flex; gap: 4px; }
body.sh-et-look .etv-pips i { width: 9px; height: 9px; border-radius: 50%; background: #dce9f3; }
body.sh-et-look .etv-pips i.on { background: var(--sl-train); }
body.sh-et-look .etv-wk-title { font: 700 20px/1.2 var(--sl-display); letter-spacing: -.01em; color: var(--sl-ink); }
body.sh-et-look .etv-wk-title .etv-pre { font-size: 13.5px; margin-bottom: 4px; }
body.sh-et-look .etv-wk-mid { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
body.sh-et-look .etv-mins { display: inline-flex; align-items: baseline; gap: 4px; }
body.sh-et-look .etv-mins b { font: 800 30px/1 var(--sl-display); color: var(--sl-ink); }
body.sh-et-look .etv-mins small { font: 650 13px/1 var(--sl-text); color: var(--sl-muted); }
body.sh-et-look .etv-kit { display: inline-flex; gap: 6px; }
body.sh-et-look .etv-kit > span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--sl-train-wash); color: var(--sl-train-ink); }
body.sh-et-look .etv-kit .sl-i { width: 18px; height: 18px; }
body.sh-et-look .etv-wk-kit-text { flex-basis: 100%; font: 600 13px/1.3 var(--sl-text); color: var(--sl-muted); }
body.sh-et-look .etv-route { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 4px; padding: 6px 0; }
body.sh-et-look .etv-route::before { content: ""; position: absolute; left: 10px; right: 10px; top: 50%; height: 3px; margin-top: -1.5px; border-radius: 3px; background: var(--sl-grad); opacity: .6; }
body.sh-et-look .etv-route i { position: relative; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 2px var(--sl-train); font: 800 11px/1 var(--sl-display); font-style: normal; color: var(--sl-train-ink); }
body.sh-et-look .etv-route i.is-cap { width: auto; min-width: 30px; padding: 0 6px; border-radius: 999px; box-shadow: inset 0 0 0 2px #3fb39d; color: #246b5f; }
body.sh-et-look .etv-route-note { font: 600 13px/1.35 var(--sl-text); color: var(--sl-muted); }

/* ---------- the food hub (/food/, /eat/) ---------- */
/* the hub runs full width inside the page's Elementor container (as the homepage does) */
body.sh-et-look [data-elementor-type="wp-page"] > .e-con:has(.etv-hub) { --content-width: 100%; --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px; --row-gap: 0px; --column-gap: 0px; max-width: none; margin: 0; padding: 0; }
body.sh-et-look [data-elementor-type="wp-page"] > .e-con:has(.etv-hub) > .e-con-inner { width: 100%; max-width: none; margin: 0; padding: 0; gap: 0; }
body.sh-et-look [data-elementor-type="wp-page"] :is(.elementor-widget-shortcode, .elementor-shortcode):has(.etv-hub) { width: 100%; max-width: none; }
body.sh-et-look.sh-shell main#content.site-main:has(.etv-hub) { width: 100%; max-width: none; margin-inline: 0; }
body.sh-et-look.sh-shell main#content.site-main:has(.etv-hub) .page-content > :not(.elementor):not(.etv-hub) { width: min(1200px, 100% - 2 * clamp(16px, 4vw, 48px)); margin-inline: auto; }
body.sh-et-look .etv-hub { width: 100%; margin: 0; color: var(--sl-copy); }
body.sh-et-look .etv-hub-mast .sl-mast-inner { padding-block: clamp(22px, 3.6vw, 52px) clamp(40px, 5vw, 72px); }
body.sh-et-look .etv-food-form { display: grid; gap: 14px; width: 100%; max-width: 620px; margin: 0; }
body.sh-et-look .etv-food-form .sl-search { max-width: none; }
body.sh-et-look .etv-sorts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; padding: 0; border: 0; }
body.sh-et-look .etv-sorts .etv-clear { margin-left: 4px; }
body.sh-et-look .etv-sorts .sl-chip > span .sl-i { width: 16px; height: 16px; color: var(--sl-eat-ink); }
body.sh-et-look .etv-sorts .sl-chip input:checked + span { background: var(--sl-eat-ink); border-color: var(--sl-eat-ink); color: #fff; }
body.sh-et-look .etv-sorts .sl-chip input:checked + span .sl-i { color: #fff; }
body.sh-et-look .etv-plate-stage--hub { padding: clamp(10px, 2vw, 22px); }
body.sh-et-look .etv-ring--plate { max-width: 440px; }
body.sh-et-look .etv-ring--plate .etv-ring-big { font-size: 54px; }
body.sh-et-look .etv-ring--plate .etv-ring-sm { font-size: 16px; }
body.sh-et-look .etv-pin-l { font: 800 13px/1 var(--sl-text); letter-spacing: .1em; fill: var(--sl-ink); }
body.sh-et-look .etv-pin-k { font: 650 14px/1 var(--sl-text); fill: var(--sl-muted); }
@media (max-width: 599px) { body.sh-et-look :is(.etv-pin-l, .etv-pin-k) { display: none; } }
body.sh-et-look .etv-food-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; align-items: start; padding-block: clamp(28px, 3.6vw, 48px) clamp(40px, 5vw, 72px); }
body.sh-et-look .etv-food-layout > .etv-food-main { order: -1; }
@media (min-width: 1024px) { body.sh-et-look .etv-food-layout { grid-template-columns: 300px minmax(0, 1fr); gap: 40px; } body.sh-et-look .etv-food-layout > .etv-food-main { order: 0; } body.sh-et-look .etv-food-side { position: sticky; top: 96px; } }
body.sh-et-look .etv-food-side { display: grid; gap: 18px; align-content: start; }
body.sh-et-look .etv-sidebox { display: grid; gap: 12px; padding: 20px; border: 1px solid var(--sl-line-soft); border-radius: 22px; background: #fff; box-shadow: var(--sl-shadow-card); }
body.sh-et-look .etv-sidebox .sl-h3 { margin: 0; font-size: 19px; }
body.sh-et-look .etv-sidebox .sl-faces .sl-face { --sl-fs: 40px; }
body.sh-et-look .etv-sidelink { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid var(--sl-line-soft); color: var(--sl-ink); text-decoration: none; }
body.sh-et-look .etv-sidelink:hover strong { color: var(--sl-eat-ink); }
body.sh-et-look .etv-sidelink > span:last-child { display: grid; gap: 2px; }
body.sh-et-look .etv-sidelink strong { font: 700 15.5px/1.25 var(--sl-display); color: var(--sl-ink); }
body.sh-et-look .etv-sidelink span span { font-size: 13.5px; line-height: 1.4; color: var(--sl-copy); }
body.sh-et-look .etv-food-results .sxl-result-line { margin: 0 0 16px; }
body.sh-et-look .etv-foodgrid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); }
body.sh-et-look .etv-food { position: relative; display: grid; gap: 8px; align-content: start; min-height: 100%; padding: 16px 16px 14px; border: 1px solid #e2eedf; border-radius: 20px; background: #fff; color: var(--sl-copy); text-decoration: none; box-shadow: 0 18px 34px -30px rgba(18, 44, 58, .45); }
body.sh-et-look .etv-food::before { content: ""; position: absolute; left: 16px; right: 16px; top: 0; height: 4px; border-radius: 0 0 4px 4px; background: var(--etv-g, #9fb3c0); }
body.sh-et-look .etv-food:hover { border-color: var(--etv-g, var(--sl-eat)); color: var(--sl-copy); }
body.sh-et-look .etv-food-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
body.sh-et-look .etv-food-grp { font: 800 11px/1.2 var(--sl-text); letter-spacing: .1em; text-transform: uppercase; color: var(--sl-ink); }
body.sh-et-look .etv-food-ic { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #f1f7ef; color: var(--sl-eat-ink); }
body.sh-et-look .etv-food-ic .sl-i { width: 17px; height: 17px; }
body.sh-et-look .etv-food-name { font: 700 16.5px/1.25 var(--sl-display); color: var(--sl-ink); }
body.sh-et-look .etv-food-kcal { display: flex; align-items: baseline; gap: 6px; }
body.sh-et-look .etv-food-kcal b { font: 800 26px/1 var(--sl-display); color: var(--sl-ink); font-variant-numeric: tabular-nums; }
body.sh-et-look .etv-food-kcal small { font: 600 12.5px/1 var(--sl-text); color: var(--sl-muted); }
body.sh-et-look .etv-food-bar { display: flex; gap: 2px; height: 8px; overflow: hidden; border-radius: 8px; background: #eef5eb; }
body.sh-et-look .etv-food-bar i { display: block; height: 100%; }
body.sh-et-look .etv-m-p { background: var(--sl-eat); } body.sh-et-look .etv-m-c { background: #c9a46a; } body.sh-et-look .etv-m-f { background: #9ccf86; }
body.sh-et-look .etv-food-macros { font: 600 12.5px/1.35 var(--sl-text); color: var(--sl-muted); }
body.sh-et-look .etv-food-results .sxl-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; margin-top: 26px; }
body.sh-et-look .etv-food-results .sxl-empty { display: grid; gap: 6px; padding: 26px 28px; border: 1px dashed var(--sl-line); border-radius: 22px; background: #fff; }
body.sh-et-look .etv-roles { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; padding: 0; list-style: none; }
body.sh-et-look .etv-roles a { text-decoration: none; }
body.sh-et-look .etv-roles a > span .sl-i { width: 17px; height: 17px; color: var(--sl-eat-ink); }
body.sh-et-look .etv-roles a:hover > span { border-color: var(--sl-eat); }
body.sh-et-look .etv-mealrow { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); }
body.sh-et-look .etv-mealcard { position: relative; display: grid; gap: 12px; align-content: start; padding: 20px; border: 1px solid #dcebd8; border-radius: 22px; background: #fff; color: var(--sl-copy); text-decoration: none; box-shadow: var(--sl-shadow-card); }
body.sh-et-look .etv-mealcard::before { content: ""; position: absolute; left: 20px; right: 20px; top: 0; height: 4px; border-radius: 0 0 4px 4px; background: var(--etv-role, var(--sl-eat)); }
body.sh-et-look .etv-mealcard:hover { border-color: var(--sl-eat); color: var(--sl-copy); }
body.sh-et-look .etv-mealcard .etv-meal-kcal { font-size: 22px; }
body.sh-et-look .etv-mealcard-title { font: 700 17px/1.3 var(--sl-display); color: var(--sl-ink); }
body.sh-et-look .etv-dots { display: flex; gap: 5px; }
body.sh-et-look .etv-dots i { width: 12px; height: 12px; border-radius: 50%; background: var(--etv-g, #9fb3c0); }
body.sh-et-look .etv-mealcard-foods { font: 500 13.5px/1.45 var(--sl-text); color: var(--sl-muted); }
body.sh-et-look .etv-hub [data-sxl-eat-results] { transition: none; }
body.sh-et-look .etv-hub.is-loading [data-sxl-eat-results] { opacity: .5; }

/* ---------- motion ---------- */
@media (prefers-reduced-motion: no-preference) {
	body.sh-et-look .etv-ring.is-in .etv-seg { animation: etv-draw 1s var(--sl-ease) both; }
	body.sh-et-look .etv-ring.is-in .etv-d1 { animation-delay: .15s; } body.sh-et-look .etv-ring.is-in .etv-d2 { animation-delay: .3s; } body.sh-et-look .etv-ring.is-in .etv-d3 { animation-delay: .45s; }
	body.sh-et-look .etv-ring.is-in .etv-d4 { animation-delay: .6s; } body.sh-et-look .etv-ring.is-in .etv-d5 { animation-delay: .75s; } body.sh-et-look .etv-ring.is-in .etv-d6 { animation-delay: .9s; }
	body.sh-et-look .etv-ticket.is-in .etv-clock-ar { animation: etv-arc 1.2s var(--sl-ease) .2s both; }
	body.sh-et-look :is(.etv-ticket, .etv-stations--stage).is-in .etv-stations::after, body.sh-et-look .etv-stations--stage.is-in::after { animation: etv-run 1.4s var(--sl-ease) .3s both; }
	body.sh-et-look .etv-plancard, body.sh-et-look .etv-wk, body.sh-et-look .etv-ex { transition: transform .18s var(--sl-ease); }
	body.sh-et-look .etv-ex:hover { transform: translateY(-3px); }
	@keyframes etv-draw { from { stroke-dashoffset: 100; opacity: 0; } to { opacity: 1; } }
	@keyframes etv-arc { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
	@keyframes etv-run { from { transform: scaleY(0); } to { transform: none; } }
}
@media print { body.sh-et-look :is(.etv-console-wrap, .etv-email, .etv-nextband) { display: none; } }
