/*! SEED — dynamic components (programme, facilitator gallery, detail views, modal).
 * Built only from the kit's tokens and patterns. Requires seed.css. Do not restyle kit components here. */

/* ---------- generic section + head (content pages) ---------- */
.seed-sec{padding-block:clamp(70px,10vw,140px)}
.seed-sec--tight{padding-block:clamp(40px,6vw,80px)}
.seed-sec--paper{background:var(--paper)}
.seed-sec--white{background:var(--white)}
.seed-sec--ink{background:var(--ink);color:var(--paper)}
.seed-sec--ink .lead{color:#bdbdb8}
.seed-sec--ink .eyebrow .leaf{background:var(--brand)}
.seed-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,4vw,56px);align-items:end}
.seed-head--solo{grid-template-columns:1fr}
.seed-head .lead{margin-bottom:0}

/* ---------- filters (programme) ---------- */
.seed-filters{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:clamp(30px,5vw,56px)}
.seed-filters .track-chips{margin-top:0}
button.chip{font:inherit;font-size:15px;font-weight:500;letter-spacing:-.02em;line-height:1;cursor:pointer}
.chip--all{background:var(--paper-2);color:var(--ink)}
.chip--all .leaf{background:var(--ink)}
.chip[aria-pressed="false"]{opacity:.45;transition:opacity .3s,border-radius .45s var(--ease)}
.chip[aria-pressed="false"]:hover{opacity:.8}
.chip--xs{padding:6px 10px;font-size:13px;border-radius:0 10px 0 10px}
.chip--xs .leaf{width:9px}
.chip--xs:hover{border-radius:10px 0 10px 0}
.days--filter{margin-top:clamp(20px,3vw,32px)}
.days--filter .day{cursor:pointer;transition:border-radius .55s var(--ease),transform .4s var(--ease),opacity .3s}
.days--filter .day[aria-pressed="false"]{opacity:.45}
.days--filter .day[aria-pressed="false"]:hover{opacity:.8}
.days--filter .day[aria-pressed="true"]{border-radius:44px 0 44px 0}

/* ---------- programme rows = the kit's .service pattern ---------- */
.seed-programme .seed-day-group{margin-top:clamp(36px,5vw,56px)}
.seed-programme .seed-day-group .services{margin-top:0}
.seed-programme [hidden]{display:none!important}
.seed-event{position:relative}
.seed-event .num{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:500}
.seed-event h4 a::after{content:"";position:absolute;inset:0}
.seed-event h4 a:focus-visible{outline:none}
.seed-event:focus-within{outline:2px solid var(--brand);outline-offset:4px}
.seed-event-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:12px;font-size:14px;color:var(--muted)}
.seed-event--break h4{color:var(--muted)}
.seed-event--break:hover{padding-left:0}
.seed-event--break:hover h4{color:var(--muted)}
.seed-event--break:hover .num .leaf{transform:scale(0) rotate(-90deg)}
.seed-empty{margin-top:clamp(24px,3vw,36px);padding:clamp(24px,3vw,40px);background:var(--paper);border-radius:0 44px 0 44px;
  font-size:clamp(20px,2vw,28px);letter-spacing:-.03em;line-height:1.15;transition:border-radius .55s var(--ease)}
.seed-empty:hover{border-radius:44px 0 44px 0}

/* ---------- facilitator card: announced person (extends the kit's .sp) ---------- */
.sp-art--photo{overflow:hidden;background:var(--paper-2)}
.sp-art--photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.sp-art--photo .leaf:nth-child(n){top:auto;left:auto;right:12px;bottom:12px;width:28px;height:auto;border-radius:var(--leaf)}
.sp--person:hover .sp-art--photo img{transform:scale(1.05)}
.sp-back .sp-more{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-size:15px;font-weight:500;color:var(--paper);position:relative;z-index:1}
.sp-back .sp-more span{margin:0;font-size:inherit;color:inherit}
.sp-back .sp-more svg{width:16px;height:16px;transition:transform .35s var(--ease)}
.sp-back .sp-more:hover{color:var(--white)}
.sp-back .sp-more:hover svg{transform:translateX(5px)}
.seed-grid-foot{display:flex;justify-content:flex-end;margin-top:24px}

/* ---------- detail views (single page + modal) ---------- */
.seed-single{padding-top:clamp(40px,6vw,80px)}
.seed-back-link{margin-bottom:clamp(24px,4vw,48px)}
.seed-back-link svg{width:14px;height:14px;transform:scaleX(-1)}
.seed-detail{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:16px;row-gap:clamp(24px,3vw,40px)}
.seed-detail .h2{overflow-wrap:anywhere}
.seed-detail-head,.seed-meta,.seed-detail-photo,.seed-detail-related,.seed-detail .notify{grid-column:1 / -1}
.seed-detail .notify{margin-top:0}
.seed-detail-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.seed-detail-org{margin:14px 0 22px;font-size:15px;font-weight:500;color:var(--muted)}
.seed-prose{max-width:62ch;color:var(--ink-2);font-size:17px;line-height:1.6}
.seed-prose p{margin:0 0 1em}
.seed-prose h3{font-size:clamp(22px,2vw,28px);letter-spacing:-.03em;line-height:1.1;margin:1.4em 0 .5em}
.seed-prose ul,.seed-prose ol{padding-left:1.2em;margin:0 0 1em}
.seed-prose a{color:var(--ink);background:linear-gradient(var(--brand),var(--brand)) 0 100%/100% 1.5px no-repeat;transition:color .3s}
.seed-prose a:hover{color:var(--brand)}
.seed-links{display:flex;flex-wrap:wrap;gap:12px 22px;list-style:none;margin:24px 0 0;padding:0}
/* person */
.seed-portrait{grid-column:1 / 6;align-self:start;margin:0;aspect-ratio:4/5;overflow:hidden;border-radius:var(--leaf);transition:border-radius .8s var(--ease)}
.seed-portrait:hover{border-radius:var(--leaf-flip)}
.seed-portrait img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.seed-portrait:hover img{transform:scale(1.04)}
.seed-detail--person .seed-detail-body{grid-column:7 / -1;align-self:end}
/* event */
.seed-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;list-style:none;margin:0;padding:0}
.seed-meta-v{display:block;font-size:20px;letter-spacing:-.03em;line-height:1.3}
.seed-detail-photo{margin:0;overflow:hidden;aspect-ratio:21/9;border-radius:0 clamp(40px,6vw,100px) 0 clamp(40px,6vw,100px);transition:border-radius .9s var(--ease)}
.seed-detail-photo:hover{border-radius:clamp(40px,6vw,100px) 0 clamp(40px,6vw,100px) 0}
.seed-detail-photo img{width:100%;height:100%;object-fit:cover}
.seed-detail--event .seed-detail-body{grid-column:1 / 8}
.seed-detail-people{grid-column:9 / -1}
.seed-people{display:grid;gap:8px;list-style:none;margin:0;padding:0}
.seed-person{display:flex;align-items:center;gap:14px;padding:10px 14px 10px 10px;background:var(--white);border-radius:0 20px 0 20px;
  transition:border-radius .5s var(--ease),transform .4s var(--ease)}
.seed-person:hover{border-radius:20px 0 20px 0;transform:translateX(4px)}
.seed-person img,.seed-person .leaf{flex:none;width:56px;height:56px;object-fit:cover;border-radius:var(--leaf)}
.seed-person b{display:block;font-size:18px;font-weight:400;letter-spacing:-.03em;line-height:1.1}
.seed-person small{display:block;margin-top:4px;font-size:13px;color:var(--muted)}

/* ---------- modal (native <dialog>) ---------- */
.seed-modal{width:min(calc(100% - 2 * var(--gutter)),960px);max-width:none;height:fit-content;max-height:min(88vh,1000px);margin:auto;padding:0;border:0;
  background:var(--paper);color:var(--ink);border-radius:0 64px 0 64px;overflow:hidden;
  opacity:0;transform:translateY(26px);
  transition:opacity .45s var(--ease),transform .6s var(--ease),border-radius .7s var(--ease),overlay .45s allow-discrete,display .45s allow-discrete}
.seed-modal[open]{opacity:1;transform:none;border-radius:64px 0 64px 0}
@starting-style{.seed-modal[open]{opacity:0;transform:translateY(26px);border-radius:0 64px 0 64px}}
.seed-modal::backdrop{background:rgba(26,25,25,0);transition:background .45s,overlay .45s allow-discrete,display .45s allow-discrete}
.seed-modal[open]::backdrop{background:rgba(26,25,25,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
@starting-style{.seed-modal[open]::backdrop{background:rgba(26,25,25,0)}}
.seed-modal-scroll{max-height:min(88vh,1000px);overflow:auto;overscroll-behavior:contain;padding:clamp(24px,4vw,56px)}
.seed-modal-close{position:absolute;top:16px;right:16px;z-index:2;width:42px;height:42px;display:grid;place-items:center;
  background:var(--ink);color:var(--white);border-radius:0 14px 0 14px;transition:border-radius .4s var(--ease),background .3s}
.seed-modal-close:hover{border-radius:14px 0 14px 0;background:var(--brand)}
.seed-modal-close svg{width:17px;height:17px}
.seed-modal .seed-detail-head{padding-right:56px}
.seed-modal-loader{display:none;place-items:center;min-height:320px}
.seed-modal.is-loading .seed-modal-loader{display:grid}
.seed-modal.is-loading .seed-modal-body{display:none}
.seed-modal-loader .trio-leaves{--s:28px}
.seed-modal-loader .trio-leaves .leaf{animation:leafIn .9s var(--ease-spring) infinite alternate both}
html.seed-modal-open{overflow:hidden}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .seed-head{grid-template-columns:1fr}
  .seed-portrait,.seed-detail--person .seed-detail-body,.seed-detail--event .seed-detail-body,.seed-detail-people{grid-column:1 / -1}
  .seed-portrait{max-width:420px}
  .seed-meta{grid-template-columns:1fr}
}
@media (max-width:640px){
  .seed-modal{width:100%;height:100%;max-height:100%;border-radius:0}
  .seed-modal[open]{border-radius:0}
  .seed-modal-scroll{max-height:100%;height:100%;padding:64px 16px 32px}
}
@media (prefers-reduced-motion:reduce){
  .seed-modal,.seed-modal::backdrop{transition:none}
  .seed-modal-loader .trio-leaves .leaf{animation:none}
}

/* conflicts */
/* Elementor frontend.min.css `.elementor .elementor-widget:not(.elementor-widget-text-editor):not(.elementor-widget-theme-post-content) figure{margin:0}`
   (specificity 0,4,1) cancels the kit's figure margins. Restore the two that have one (values copied from seed.css). */
.seed-page .elementor .elementor-widget:not(.elementor-widget-text-editor) figure.wide-photo{margin:clamp(40px,6vw,70px) 0 0}
.seed-page .elementor .elementor-widget:not(.elementor-widget-text-editor) figure.track-photo{margin:0 0 8px}
/* seed.css `.seed-page ul,.seed-page ol{margin:0}` (0,1,1) outranks two §7 rules (0,1,0): restate them. */
.seed-page .days--filter{margin-top:clamp(20px,3vw,32px)}
.seed-page .seed-links{margin:24px 0 0}
/* Content pages stack sections of the same background; two section paddings would add up (seed.css `.people{padding-block}` 70–140px,
   `.festival{padding-block}`; §7 `.seed-sec{padding-block}`). Drop the second padding-top when the sections follow each other. */
.seed-page .elementor-widget-seed-section-head + .elementor-widget-seed-facilitators .people{padding-top:0}
.seed-page .elementor-widget-seed-festival + .elementor-widget-seed-programme .seed-programme{padding-top:0}
/* Content-page components (not in the kit) were built with headings and lists at margin 0. Since seed.css follows the client's
   artifact (no .seed-page heading/list reset), keep that inside them at zero specificity so every kit class rule still wins. */
:where(.seed-sec,.seed-detail,.seed-modal) :where(h1,h2,h3,h4,ul,ol,p.seed-empty){margin:0}
/* seed.css `.sp-back b{letter-spacing:-.04em}` is computed at the 24–30px line and inherited by the 14px RO/EN spans inside it,
   which made the small first line unreadable (also in the client's design). Track the small spans at their own size. */
.seed-page .sp-back b span{letter-spacing:-.01em}
/* Floating language switchers from translation plugins (GTranslate) duplicate the header RO/EN switch on SEED views. */
.seed-page .gtranslate_wrapper,.seed-page #gt_float_wrapper,.seed-page .gt_float_switcher{display:none!important}
/* Same pattern as `.seed-programme .seed-day-group .services` (§7): rows sit right under their tier label in the detail views. */
.seed-detail-related .services{margin-top:0}
