/*
Theme Name:   Hideo Sasaki Foundation
Theme URI:    https://www.sasakifoundation.org/
Description:  Blocksy child theme for the Hideo Sasaki Foundation website. Built by 465 Media.
Author:       465 Media
Author URI:   https://465-media.com/
Template:     blocksy
Version:      1.0.2
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  hsf
*/

/*
 * Site-wide overrides go here. Prefer Blocksy Customizer settings and
 * GenerateBlocks global styles first; use this file only for what those
 * cannot express.
 */

/* ===== HSF design system ===== */
/* Align GB content width to Blocksy: 1290 max, 5vw edge spacing (band = min(1290px, 90vw)).
   Sections line up with the header/footer, and gutters scale on resize. */
:root{--gb-container-width:min(1290px, 90vw)}
/* .hsf-container is a GB PRO GLOBAL STYLE (Styles panel), not defined here. */
.hsf-container--full{max-width:100%}

/* What's New newsletter form — Gravity Forms styled to the design */
.wn-form .gform_wrapper,.wn-form form{margin:0}
.wn-form .gform_heading,.wn-form .gform_description,.wn-form .gfield_required{display:none}
.wn-form .gfield_label{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wn-form .gform_fields{display:flex!important;flex-direction:column;gap:12px;grid-template-columns:1fr!important}
.wn-form .gfield{margin:0!important}
.wn-form .ginput_container input,.wn-form input.gform-control{width:100%;height:36px;border-radius:20px!important;border:1px solid #e2e2e2!important;background:#fff!important;padding:4px 18px!important;font-family:'Barlow',sans-serif;font-size:15px;color:#333;box-shadow:none!important}
.wn-form input::placeholder{color:#aaa;text-transform:uppercase;font-weight:600;opacity:1}
.wn-form .gform_footer{display:flex!important;justify-content:flex-end;padding:14px 0 0!important;margin:0!important}
.wn-form .gform_footer input[type=submit],.wn-form .gform_footer button{background:#f9c8c8!important;color:#383838!important;border:none!important;border-radius:20px!important;padding:7px 24px!important;font-family:'Barlow',sans-serif;font-weight:600;text-transform:uppercase;font-size:15px;width:auto!important;cursor:pointer}
.wn-form .gform_footer input[type=submit]:hover{background:#f4b3b3!important}
.wn-form .gform_validation_errors{font-size:12px;margin:0 0 8px}
.wn-form .validation_message{font-size:11px;color:#a41e28}

/* About page section sub-nav (numbered; active item colored + bold per section) */
.about-subnav{list-style:none;counter-reset:sn;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;font-family:'Barlow',sans-serif;font-size:clamp(1.25rem, 2vw, 2rem);line-height:1.35;color:#3b3b3b}
.about-subnav li{counter-increment:sn;display:flex;gap:14px}
.about-subnav li::before{content:counter(sn) '.'}
.about-subnav a{color:inherit;text-decoration:none}
.about-subnav a:hover{opacity:.65}
.about-subnav li.is-active{font-weight:700}

/* GB figcaptions left-aligned (Blocksy centers figcaptions by default) */
.hsf-container figure.gb-element figcaption.gb-text{text-align:left}

/* About – Timeline (vertical line + dots) */
.hsf-timeline{position:relative;display:flex;flex-direction:column;gap:2.1rem;padding-left:2.5rem;border-left:2px solid #d5d5d5}
.hsf-timeline__item{position:relative}
.hsf-timeline__item::before{content:'';position:absolute;left:calc(-2.5rem - 8px);top:1rem;width:15px;height:15px;border-radius:50%;background:#9a9a9a;box-shadow:0 0 0 4px #fff}
.hsf-tl-photos{display:flex;flex-direction:column;justify-content:space-between;gap:1.25rem}
@media(max-width:781px){.hsf-tl-photos{display:none}.hsf-timeline{padding-left:1.75rem}.hsf-timeline__item::before{left:calc(-1.75rem - 8px)}}

/* About – Publications carousels */
.hsf-pub-carousel{display:flex;gap:1.25rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:0.5rem 0 1.25rem}
.hsf-pub-carousel .gb-media{flex:0 0 auto;width:190px;height:auto;border-radius:2px;box-shadow:0 8px 24px rgba(0,0,0,.14);scroll-snap-align:center}
.hsf-pub-links{display:flex;flex-direction:column;gap:0.4rem;margin-top:2.5rem}
.hsf-pub-links a:hover{opacity:.7}
@media(max-width:781px){.hsf-pub-carousel .gb-media{width:150px}}

/* ---------- Events List block (acf/events-list) ---------- */
.hsf-events{margin-block:clamp(2rem,4vw,3.5rem)}
.hsf-events__heading{font-family:'Barlow',sans-serif;font-weight:600;font-size:clamp(1.6rem,3vw,2.5rem);line-height:1.1;color:#3b3b3b;margin:0 0 clamp(1.25rem,2.5vw,2rem)}
.hsf-events__grid{list-style:none;margin:0;padding:0;display:grid;gap:clamp(1.5rem,3vw,2.5rem);grid-template-columns:repeat(3,minmax(0,1fr))}
.hsf-events--cols2 .hsf-events__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.hsf-events--cols4 .hsf-events__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.hsf-events__grid,.hsf-events--cols2 .hsf-events__grid,.hsf-events--cols4 .hsf-events__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.hsf-events__grid,.hsf-events--cols2 .hsf-events__grid,.hsf-events--cols4 .hsf-events__grid{grid-template-columns:1fr}}
.hsf-events__card{display:flex;flex-direction:column;min-width:0}
.hsf-events__media{display:block;margin:0 0 .9rem;border-radius:5px;overflow:hidden}
.hsf-events__media img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}
.hsf-events__date{font-family:'Barlow',sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.03em;font-size:.8rem;color:#2f7471;margin:0 0 .35rem;display:flex;gap:.6rem;flex-wrap:wrap}
.hsf-events__time{color:#8a8a8a;font-weight:400}
.hsf-events__title{font-family:'Barlow',sans-serif;font-weight:600;font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.18;margin:0 0 .4rem}
.hsf-events__title a{color:#3b3b3b;text-decoration:none}
.hsf-events__title a:hover,.hsf-events__title a:focus-visible{color:#2f7471;text-decoration:underline}
.hsf-events__venue{font-family:'Barlow',sans-serif;font-weight:400;font-size:.9rem;line-height:1.35;color:#737373;margin:0 0 .5rem}
.hsf-events__excerpt{font-family:'Barlow',sans-serif;font-weight:300;font-size:.95rem;line-height:1.45;color:#3b3b3b;margin:0}
.hsf-events__cta{margin:.85rem 0 0}
.hsf-events__cta a{display:inline-flex;align-items:center;font-family:'Barlow',sans-serif;font-weight:500;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;color:#2f7471;text-decoration:none;border:1px solid #2f7471;border-radius:999px;padding:.45rem 1.1rem;transition:background-color .15s ease,color .15s ease}
.hsf-events__cta a:hover,.hsf-events__cta a:focus-visible{background:#2f7471;color:#fff}
.hsf-events__flag{margin:.85rem 0 0;font-family:'Barlow',sans-serif;font-weight:500;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:#a41e27}
.hsf-events__flag--postponed{color:#8a6b00}
.hsf-events__flag--sold_out{color:#4c5255}
.hsf-events__empty{font-family:'Barlow',sans-serif;font-weight:300;color:#8a8a8a;margin:0}

/* ---------- Stories archive: program-area slot shows the first term only ---------- */
/* term_list wraps each term in its own <span>; hide all but the first. */
/* Remove this rule to let every program area show. */
.gb-text[class*="gb-text-g"] span ~ span{display:none}
.gb-text[class*="gb-text-g"] span ~ span::before{content:none}

/* ---------- Story single ---------- */
.hsf-story-aside img[src='']{display:none}
.hsf-story-aside img:not([src]){display:none}
.hsf-empty-hide:empty{display:none}
.hsf-story-body > *:first-child{margin-top:0}
.hsf-story-rail{display:none} /* awaiting share/print icon assets */
.hsf-post-nav{display:flex;justify-content:space-between;gap:1rem;font-family:'Barlow',sans-serif;font-weight:400;font-size:clamp(.95rem,1.25vw,18px);border-top:1px solid #e3e3e3;padding-top:clamp(1rem,2vw,1.5rem)}
.hsf-post-nav a{color:#3b3b3b;text-decoration:none;display:inline-flex;align-items:center;gap:.6rem}
.hsf-post-nav a:hover{color:#2f7471}
.hsf-post-nav__side--next{margin-left:auto;text-align:right}
/* single: program area shows first term only, matching the archive */
.gb-text-shterm span ~ span{display:none}
/* single: with no secondary image, drop the aside and let the article run full width */
.hsf-story-aside:not(:has(img)){display:none}
.gb-element-sbgrid:not(:has(.hsf-story-aside img)){grid-template-columns:1fr}
/* ---------- Grant single ---------- */
.hsf-grant-link:not(:has(*)){display:none}
.hsf-grant-link a[href='']{display:none}
.hsf-grant-sponsor:not(:has(*)){display:none}
.hsf-grant-related:not(:has(*)){display:none}
.hsf-grant-body > *:first-child{margin-top:0}
.hsf-grant-body > *:last-child{margin-bottom:0}

/* ---------- Call for Proposals sections ---------- */
.hsf-cfp{margin-block:clamp(2rem,4vw,3.5rem)}
.hsf-cfp__heading{font-family:'Barlow',sans-serif;font-weight:600;font-size:clamp(1.6rem,3vw,2.5rem);line-height:1.1;color:#3b3b3b;margin:0 0 clamp(1.25rem,2.5vw,2rem)}
.hsf-cfp__timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.hsf-cfp__milestone{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:baseline;font-family:'Barlow',sans-serif;padding:clamp(.6rem,1.2vw,.9rem) 0;border-bottom:1px solid #e3e3e3}
.hsf-cfp__ms-label{font-weight:400;font-size:clamp(1rem,1.3vw,1.15rem);color:#3b3b3b}
.hsf-cfp__ms-date{font-weight:600;font-size:clamp(.95rem,1.2vw,1.1rem);color:#2f7471;text-align:right;white-space:nowrap}
@media(max-width:560px){.hsf-cfp__milestone{grid-template-columns:1fr}.hsf-cfp__ms-date{text-align:left}}
.hsf-cfp__jury{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(1rem,2.4vw,2rem)}
@media(max-width:900px){.hsf-cfp__jury{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.hsf-cfp__jury{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hsf-cfp__juror{display:flex;flex-direction:column;font-family:'Barlow',sans-serif}
.hsf-cfp__juror-photo{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;margin-bottom:.7rem}
.hsf-cfp__juror-photo--empty{background:#e1eff5}
.hsf-cfp__juror-name{font-weight:600;font-size:clamp(1rem,1.25vw,1.15rem);line-height:1.2;color:#3b3b3b}
.hsf-cfp__juror-org{font-weight:400;font-size:clamp(.82rem,1vw,.95rem);line-height:1.3;color:#737373;margin-top:.2rem}
.hsf-cfp__faq-group{margin-bottom:clamp(1.5rem,3vw,2.5rem)}
.hsf-cfp__faq-section{font-family:'Barlow',sans-serif;font-weight:600;font-size:clamp(1.15rem,1.7vw,1.5rem);color:#2f7471;margin:0 0 .6rem}
.hsf-cfp__faq-item{border-bottom:1px solid #e3e3e3}
.hsf-cfp__faq-q{font-family:'Barlow',sans-serif;font-weight:500;font-size:clamp(1rem,1.25vw,1.15rem);line-height:1.35;color:#3b3b3b;padding:clamp(.7rem,1.4vw,1rem) 2rem clamp(.7rem,1.4vw,1rem) 0;cursor:pointer;position:relative;list-style:none}
.hsf-cfp__faq-q::-webkit-details-marker{display:none}
.hsf-cfp__faq-q::after{content:'+';position:absolute;right:.25rem;top:50%;transform:translateY(-50%);font-weight:400;font-size:1.3em;color:#2f7471;line-height:1}
.hsf-cfp__faq-item[open] .hsf-cfp__faq-q::after{content:'\2013'}
.hsf-cfp__faq-a{font-family:'Barlow',sans-serif;font-weight:300;font-size:clamp(.95rem,1.15vw,1.05rem);line-height:1.5;color:#3b3b3b;padding:0 2rem clamp(.9rem,1.8vw,1.2rem) 0}
.hsf-cfp__faq-a p{margin:0 0 .8rem}
.hsf-cfp__faq-a p:last-child{margin-bottom:0}

/* ---------- Events: featured hero ---------- */
.hsf-events--featured{margin-block:clamp(1.5rem,3vw,2.5rem)}
.hsf-events__feature{display:grid;grid-template-columns:879fr 445fr;gap:clamp(1.5rem,2.9vw,38px);align-items:start}
@media(max-width:900px){.hsf-events__feature{grid-template-columns:1fr;gap:1.75rem}}
.hsf-events__feature-media{display:block;border-radius:5px;overflow:hidden}
.hsf-events__feature-media img{display:block;width:100%;height:auto;aspect-ratio:879/495;object-fit:cover}
.hsf-events__feature-body{display:flex;flex-direction:column;gap:clamp(1rem,2vw,1.6rem)}
.hsf-events__feature-title{font-family:'Barlow',sans-serif;font-weight:400;font-size:clamp(1.9rem,4vw,57.6px);line-height:1.01;letter-spacing:-.07em;text-transform:uppercase;color:#171345;margin:0}
.hsf-events__feature-title a{color:inherit;text-decoration:none}
.hsf-events__feature-title a:hover{text-decoration:underline}
.hsf-events__feature-meta{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(.75rem,1.6vw,1.25rem);align-items:center}
.hsf-events__feature-date{font-family:'Barlow',sans-serif;font-weight:300;font-size:clamp(2.1rem,4.4vw,64px);line-height:1;letter-spacing:-.07em;color:rgba(59,59,59,.8);margin:0}
.hsf-events__feature-when{display:flex;flex-direction:column;gap:.15rem}
.hsf-events__feature-time,.hsf-events__feature-venue{font-family:'Barlow',sans-serif;font-weight:300;font-size:clamp(1.05rem,2.1vw,30px);line-height:1.07;letter-spacing:-.06em;text-transform:uppercase;color:#3b3b3b;margin:0}
.hsf-events__feature-time{font-weight:200}
.hsf-events__feature-cta{margin:0}
.hsf-events__feature-cta a{display:flex;align-items:center;justify-content:center;max-width:374px;padding:.35em .5em;background:#ededed;border-radius:9px;font-family:'Barlow',sans-serif;font-weight:600;font-size:clamp(1.15rem,2.5vw,36px);line-height:1.13;text-transform:uppercase;color:#3b3b3b;text-decoration:none;transition:background-color .15s ease}
.hsf-events__feature-cta a:hover,.hsf-events__feature-cta a:focus-visible{background:#2f7471;color:#fff}
/* ---------- Event single ---------- */
.hsf-event-hero .hsf-event-media--video{position:relative;padding-top:56.25%;border-radius:5px;overflow:hidden}
.hsf-event-hero .hsf-event-media--video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.hsf-event-hero .hsf-event-media--image img{display:block;width:100%;height:auto;aspect-ratio:1089/612;object-fit:cover;border-radius:5px}
.hsf-event-body > *:first-child{margin-top:0}
.hsf-event-related:not(:has(*)){display:none}
/* event single: program area shows first term only, matching archive + story single */
.gb-text-evterm span ~ span{display:none}

/* ---------- Related items ([hsf_related] — grant + event singles) ---------- */
.hsf-rel-title{font-family:'Barlow',sans-serif;font-weight:600;font-size:clamp(1.3rem,2.05vw,27.9px);line-height:1.1;color:#525252;margin:0 0 clamp(1.2rem,2.4vw,1.8rem)}
.hsf-rel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3.4vw,40px);align-items:start}
@media (max-width:860px){.hsf-rel-grid{grid-template-columns:1fr;gap:2.5rem}}
.hsf-rel-card{display:block;text-decoration:none;color:inherit}
.hsf-rel-media{display:block;border-radius:10px;overflow:hidden}
.hsf-rel-img{width:100%;height:auto;aspect-ratio:516/375;object-fit:cover;display:block;transition:transform .35s ease}
.hsf-rel-card:hover .hsf-rel-img{transform:scale(1.03)}
.hsf-rel-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(.75rem,1.5vw,1.5rem);align-items:start;margin-top:clamp(.9rem,1.5vw,1.15rem)}
.hsf-rel-name{font-family:'Barlow',sans-serif;font-weight:600;font-size:clamp(1.1rem,1.55vw,21px);line-height:1.05;color:#525252;transition:color .2s ease}
.hsf-rel-card:hover .hsf-rel-name{color:#2f7471}
.hsf-rel-meta{font-family:'Barlow',sans-serif;font-weight:600;font-size:clamp(.72rem,.9vw,13px);line-height:1.12;color:#868686;text-align:right;max-width:7.5em}
.hsf-rel-ex{font-family:'Barlow',sans-serif;font-weight:400;font-size:clamp(.85rem,1.03vw,14.8px);line-height:1.2;color:#525252;margin-top:clamp(.5rem,1vw,.9rem);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* ---------- Supporters ([hsf_sponsors] — Support page) ---------- */
.hsf-sponsors__level{font-family:'Barlow',sans-serif;font-weight:400;font-size:clamp(1.375rem,2.4vw,2.25rem);line-height:1.1;color:#2a347a;text-transform:uppercase;margin:0 0 1rem}
.hsf-sponsors__row{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(1.5rem,3vw,2.5rem);margin:0 0 clamp(2.5rem,5vw,4rem)}
.hsf-sponsors__row--text{align-items:baseline;font-family:'Barlow',sans-serif;font-weight:400;font-size:clamp(1.125rem,1.9vw,1.875rem);color:#3b3b3b}
.hsf-sponsors__item{color:#3b3b3b;display:inline-flex;align-items:center;text-decoration:none}
.hsf-sponsors__row--text .hsf-sponsors__name{text-decoration:underline}
.hsf-sponsors__logo{width:auto;max-width:100%;object-fit:contain;display:block}

/* ---------- Hosted newsletter signup embed ([hsf_newsletter]) ---------- */
.hsf-nl-embed{width:100%}
.hsf-nl-embed iframe{display:block;width:100%;max-width:450px;height:var(--hsf-nl-h,550px);border:0;background:transparent}
@media (max-width:480px){.hsf-nl-embed iframe{max-width:100%}}

/* the hosted form stacks tighter on desktop; give it headroom on small screens */
@media (max-width:600px){.hsf-nl-embed iframe{height:calc(var(--hsf-nl-h,550px) + 60px)}}

/* ---------- Stories archive: search + filter band (Figma 43:3511) ---------- */
.hsf-tools__bar{display:flex;align-items:center;justify-content:flex-end;gap:clamp(.75rem,1.5vw,1.25rem)}
.hsf-tools__search{width:min(214px,60vw)}
.hsf-tools__search .wpgb-facet input[type="search"],
.hsf-tools__search .wpgb-facet input[type="text"]{width:100%;height:32px;border:1px solid #c9c9c9;border-radius:16px;padding:0 2.25rem 0 1rem;font-family:'Barlow',sans-serif;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#525252;background:#fff}
.hsf-tools__toggle{display:flex;flex-direction:column;justify-content:center;gap:4px;width:35px;height:24px;padding:0;border:0;background:none;cursor:pointer}
.hsf-tools__bars,
.hsf-tools__bars::before,
.hsf-tools__bars::after{display:block;height:2px;background:#525252;transition:width .2s ease}
.hsf-tools__bars{width:35px;position:relative}
.hsf-tools__bars::before,.hsf-tools__bars::after{content:"";position:absolute;left:0}
.hsf-tools__bars::before{top:-8px;width:30px}
.hsf-tools__bars::after{top:8px;width:27px}
.hsf-tools__toggle[aria-expanded="true"] .hsf-tools__bars,
.hsf-tools__toggle:hover .hsf-tools__bars{background:#2a347a}
.hsf-tools__toggle[aria-expanded="true"] .hsf-tools__bars::before,
.hsf-tools__toggle[aria-expanded="true"] .hsf-tools__bars::after,
.hsf-tools__toggle:hover .hsf-tools__bars::before,
.hsf-tools__toggle:hover .hsf-tools__bars::after{background:#2a347a}

.hsf-tools__panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.5rem);margin-top:clamp(1rem,2vw,1.5rem);padding-top:clamp(1rem,2vw,1.5rem);border-top:1px solid #e3e3e3}
@media (max-width:760px){.hsf-tools__panel{grid-template-columns:1fr}}
.hsf-tools__label{font-family:'Barlow',sans-serif;font-weight:600;font-size:.85rem;letter-spacing:.08em;color:#525252;margin:0 0 .6rem}
.hsf-tools__group .wpgb-facet{font-family:'Barlow',sans-serif;font-size:.9rem;color:#525252}

/* ---------- Stories archive: uniform grid (Figma "Stories Example") ---------- */
.hsf-stories-grid-wrap{display:none}
body.hsf-stories-filtered .hsf-stories-grid-wrap{display:block}
body.hsf-stories-filtered .gb-query-qhero,
body.hsf-stories-filtered .gb-element-w1,
body.hsf-stories-filtered .gb-element-w2,
body.hsf-stories-filtered .gb-element-w3,
body.hsf-stories-filtered .gb-element-w4,
body.hsf-stories-filtered .gb-element-w5{display:none}

.hsf-stories-loadmore{display:flex;justify-content:center;margin-top:clamp(2rem,4vw,3.5rem)}
.hsf-stories-loadmore .wpgb-facet button{font-family:'Barlow',sans-serif;font-weight:600;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;color:#525252;background:none;border:0;border-bottom:2px solid #525252;padding:0 0 .35rem;cursor:pointer}
.hsf-stories-loadmore .wpgb-facet button:hover{color:#2a347a;border-bottom-color:#2a347a}

/* we supply our own SORT / TYPE / FOCUS AREA headings - hide WP Grid Builder's facet names */
.hsf-tools .wpgb-facet-title,
.hsf-tools .wpgb-facet h1,.hsf-tools .wpgb-facet h2,.hsf-tools .wpgb-facet h3,.hsf-tools .wpgb-facet h4,
.hsf-stories-loadmore .wpgb-facet-title{display:none}

/* ---------- Stories filter panel: match Figma "Stories Example" ----------
   In the design the panel sits under the search bar on the RIGHT, roughly the
   last 38% of the band - not full width. SORT | TYPE | FOCUS AREA. */
.hsf-tools__panel{margin-left:auto;max-width:none;grid-template-columns:repeat(3,max-content);column-gap:clamp(1.75rem,3.5vw,3rem);justify-content:end;border-top:0;padding-top:clamp(.75rem,1.5vw,1rem)}
@media (max-width:960px){.hsf-tools__panel{max-width:100%;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch}}
@media (max-width:620px){.hsf-tools__panel{grid-template-columns:1fr}}
.hsf-tools__panel--aligned{}

/* a group whose facet has no choices (TYPE, until stories are tagged) should not
   leave a stranded heading */
.hsf-tools__group:has(.wpgb-facet:empty){display:none}

.hsf-tools__label{font-size:.8rem;letter-spacing:.1em;color:#525252;margin:0 0 .75rem}

/* the design marks choices with a small dot rather than a boxed checkbox */
.hsf-tools__panel label{display:flex;align-items:center;gap:.6rem;font-family:'Barlow',sans-serif;font-size:.9rem;line-height:1.5;color:#525252;cursor:pointer}
.hsf-tools__panel input[type="checkbox"],
.hsf-tools__panel input[type="radio"]{appearance:none;-webkit-appearance:none;flex:0 0 auto;width:7px;height:7px;margin:0;border:1px solid #9a9a9a;border-radius:50%;background:transparent;cursor:pointer}
.hsf-tools__panel input[type="checkbox"]:checked,
.hsf-tools__panel input[type="radio"]:checked{background:#2a347a;border-color:#2a347a}
.hsf-tools__panel input[type="checkbox"]:focus-visible,
.hsf-tools__panel input[type="radio"]:focus-visible{outline:2px solid #2a347a;outline-offset:2px}

/* focus area carries the most terms - two columns once there is room */
@media (min-width:901px){.hsf-tools__group:last-child .wpgb-facet>ul,.hsf-tools__group:last-child .wpgb-facet>div{columns:2;column-gap:1.25rem}}

/* sort is a select in WP Grid Builder (no radio variant) - keep it quiet */
.hsf-tools__panel select{width:auto;max-width:100%;border:0;border-bottom:1px solid #c9c9c9;border-radius:0;background:transparent;font-family:'Barlow',sans-serif;font-size:.9rem;color:#525252;padding:.15rem 0}

/* the [hidden] attribute loses to the display:grid rule above - restore it */
.hsf-tools__panel[hidden]{display:none}

/* WP Grid Builder puts a 40px bottom margin on its fieldset, which made the
   search wrapper 72px tall against a 32px input and threw the hamburger out
   of alignment */
.hsf-tools .wpgb-facet fieldset{margin:0}
.hsf-tools .wpgb-facet{margin:0}

/* WP Grid Builder prints its facet CSS inline, after this stylesheet, so a plain
   override loses. Scoped !important is the contained way to win it back. */
.hsf-tools fieldset,
.hsf-tools .wpgb-facet,
.hsf-stories-loadmore fieldset{margin:0 !important}

/* ---------- Stories tools: suppress WPGB's own facet titles ---------- */
/* We print our own SORT / TYPE / FOCUS AREA headings, so the facet's
   built-in <h4> would show the admin name twice. WPGB prints its CSS
   inline after this stylesheet, so the override has to be scoped +
   !important to win. The sr-only <legend> is left alone for a11y. */
.hsf-tools .wpgb-facet-title:not(.wpgb-sr-only),
.hsf-stories-loadmore .wpgb-facet-title:not(.wpgb-sr-only),
.hsf-archive-pagination .wpgb-facet-title:not(.wpgb-sr-only){display:none !important}

/* ---------- Design Grants archive header (Figma 41:2850 / 41:2907) ---------- */
.hsf-grants-head{margin:0 0 clamp(1.75rem,3.5vw,2.5rem)}
.hsf-grants-head__row{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:clamp(1.5rem,3vw,2.5rem)}
.hsf-grants-head__left{flex:1 1 420px;max-width:563px}
.hsf-grants-head__right{flex:0 1 340px;display:flex;flex-direction:column;align-items:flex-end;gap:clamp(1rem,2vw,1.6rem)}
@media (max-width:760px){.hsf-grants-head__right{flex-basis:100%;align-items:flex-start}}

/* numbered pillar sub-nav */
.hsf-subnav ol{list-style:decimal;margin:0;padding:0 0 0 1.4em;font-family:'Barlow',sans-serif;font-weight:500;font-size:clamp(1rem,1.35vw,1.25rem);line-height:1.5;color:#3b3b3b}
.hsf-subnav li{margin:0}
.hsf-subnav a{color:#3b3b3b;text-decoration:none}
.hsf-subnav a:hover,.hsf-subnav a:focus-visible{color:#ef4423}
.hsf-subnav li.is-active{color:#ef4423;font-weight:600}
.hsf-subnav li.is-active span{color:#ef4423}

/* the tools band sits under the sub-nav here rather than alone on a row */
.hsf-grants-head__right .hsf-tools{width:100%}
.hsf-grants-head__right .hsf-tools__bar{justify-content:flex-end}
@media (max-width:760px){.hsf-grants-head__right .hsf-tools__bar{justify-content:flex-start}}

/* WPGB pagination under the grid */
.hsf-archive-pagination{display:flex;justify-content:center;margin-top:clamp(2.5rem,5vw,4rem)}
.hsf-archive-pagination .wpgb-facet{font-family:'Barlow',sans-serif}

.hsf-grants-head__title{font-family:'Barlow',sans-serif;font-weight:800;font-size:clamp(2rem,4vw,2.5rem);line-height:1.05;letter-spacing:.01em;text-transform:uppercase;color:#ef4423;margin:0 0 clamp(1rem,2vw,1.5rem)}
.hsf-grants-head__intro{font-family:'Barlow',sans-serif;font-weight:400;font-size:clamp(.95rem,1.15vw,1.05rem);line-height:1.45;color:#3b3b3b;max-width:563px}
.hsf-grants-head__row>*{min-width:0}

/* Grants panel carries longer labels than Stories, so it needs more room */
@media (max-width:860px){.hsf-tools[data-set="grants"] .hsf-tools__panel{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.hsf-tools[data-set="grants"] .hsf-tools__panel{grid-template-columns:1fr}}
.hsf-tools__label{white-space:nowrap}

/* ---------- Design Grants cards (Figma 41:2852) ----------
   Blocksy has no "center the card title" control, so the alignment and the
   type are set here. Sampled from the design: #3b3b3b, two lines at a 20px
   pitch under a 260px square. Scoped by body[data-prefix] so it cannot leak
   into the other archives, and specific enough to beat Blocksy's own inline
   dynamic styles without !important. */
body[data-prefix="hsf_grant_archive"] .entries .entry-card .entry-title{
	text-align:center;
	font-family:'Barlow',sans-serif;
	font-weight:500;
	font-size:clamp(.95rem,1.25vw,18px);
	line-height:1.15;
	letter-spacing:0;
	color:#3b3b3b;
	margin:clamp(2px,.4vw,4px) 0 0;
	text-wrap:balance;
}
body[data-prefix="hsf_grant_archive"] .entries .entry-card .entry-title a{
	color:inherit;
	text-decoration:none;
}
body[data-prefix="hsf_grant_archive"] .entries .entry-card .entry-title a:hover,
body[data-prefix="hsf_grant_archive"] .entries .entry-card .entry-title a:focus-visible{
	color:#ef4423;
}
/* the square is the whole card's lead - keep the crop exact */
body[data-prefix="hsf_grant_archive"] .entries .entry-card .ct-media-container img{
	aspect-ratio:1/1;
	object-fit:cover;
	width:100%;
	height:auto;
}

/* Blocksy puts 30px under the media container and 30px inside the card
   foot. The design runs tighter: image bottom to title box is 2px, and
   the next row starts 60px below the title - Blocksy's own 30px card foot
   plus the 30px grid row gap gives exactly that. */
body[data-prefix="hsf_grant_archive"] .entries .entry-card .ct-media-container{margin-bottom:0}

/* ---------- Facet controls, per the design (Figma 56:2436) ----------
   WPGB renders a checkbox as <div class="wpgb-checkbox" role="button"> with a
   .wpgb-checkbox-control span and an aria-pressed state - there is no real
   <input>, which is why the earlier input[type=checkbox] rules never bit.
   Sampled from the artboard: hollow 7px ring #83878a, UPPERCASE labels
   #4c5255, column headings #b2b2b2. */
.hsf-tools .wpgb-checkbox{display:flex;align-items:center;gap:7px;cursor:pointer}
.hsf-tools .wpgb-checkbox-control{flex:0 0 auto !important;width:7px !important;height:7px !important;min-width:7px !important;border:1px solid #83878a !important;border-radius:50% !important;background:none !important;box-shadow:none !important}
.hsf-tools .wpgb-checkbox[aria-pressed="true"] .wpgb-checkbox-control{background:#4c5255 !important;border-color:#4c5255 !important}
.hsf-tools .wpgb-checkbox-label{font-family:'Barlow',sans-serif !important;font-weight:400;font-size:13px !important;line-height:1.6 !important;letter-spacing:.02em;text-transform:uppercase;color:#4c5255 !important}
.hsf-tools .wpgb-checkbox[aria-pressed="true"] .wpgb-checkbox-label{font-weight:600}
/* counts are ours, not the design's - keep them but make them recede */
.hsf-tools .wpgb-checkbox-label span{color:#a8abae;font-size:.9em;letter-spacing:0}
.hsf-tools .wpgb-hierarchical-list{list-style:none;margin:0;padding:0}
.hsf-tools .wpgb-hierarchical-list li{margin:0}
/* the design splits a long term list into two sub-columns */
.hsf-tools .wpgb-hierarchical-list:has(li:nth-child(7)){columns:2;column-gap:clamp(1.25rem,2.4vw,2rem)}
.hsf-tools .wpgb-hierarchical-list li{break-inside:avoid}

/* column headings are lighter and larger than we had them */
.hsf-tools__label{font-family:'Barlow',sans-serif;font-weight:400;font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:#b2b2b2;margin:0 0 .55rem}

/* SORT is a native select (WPGB sort facets offer no radio option) - strip
   it back so it reads as quietly as the rest of the panel */
.hsf-tools .wpgb-sort-facet select,
.hsf-tools select.wpgb-select{font-family:'Barlow',sans-serif;font-size:13px;letter-spacing:.02em;text-transform:uppercase;color:#4c5255;background:none;border:0;border-bottom:1px solid #d5d7d8;border-radius:0;padding:2px 1.5rem 3px 0;height:auto;box-shadow:none}
.hsf-tools .wpgb-sort-facet select:focus-visible{outline:2px solid #4c5255;outline-offset:2px}
.hsf-tools .wpgb-checkbox{display:flex !important;align-items:center !important;gap:7px !important}

/* the sort select was clipping its own longest option */
.hsf-tools .wpgb-sort-facet select,
.hsf-tools select.wpgb-select{min-width:11.5rem;width:auto;max-width:100%}
/* keep the count clear of the term */
.hsf-tools .wpgb-checkbox-label span{margin-left:.15em;white-space:nowrap}
.hsf-tools .wpgb-hierarchical-list:has(li:nth-child(7)) li{padding-right:.75rem}

/* sort select: WPGB sets a 2px box inline, so stripping it back to the
   design's single underline needs !important like everything else here. */
.hsf-tools .wpgb-sort-facet select.wpgb-select{
	border:0 !important;
	border-bottom:1px solid #d5d7d8 !important;
	border-radius:0 !important;
	background:none !important;
	box-shadow:none !important;
	padding:2px 1.5rem 3px 0 !important;
	height:auto !important;
	font-size:13px !important;
	color:#4c5255 !important;
}
.hsf-tools .wpgb-sort-facet select.wpgb-select:focus{border-bottom-color:#4c5255 !important}

/* Call for Proposals download links */
.hsf-cfp-download{margin:clamp(1rem,2vw,1.5rem) 0 0}
.hsf-cfp-download + .hsf-cfp-download{margin-top:.4rem}
.hsf-cfp-download a{font-family:'Barlow',sans-serif;font-weight:500;font-size:clamp(1.05rem,1.4vw,1.25rem);color:#2caba5;text-decoration:none}
.hsf-cfp-download a:hover,.hsf-cfp-download a:focus-visible{text-decoration:underline}

/* CFP side-nav proposal link + Apply button (were both href="#") */
.hsf-cfp-navlink{color:#3b3b3b;text-decoration:underline}
.hsf-cfp-navlink:hover,.hsf-cfp-navlink:focus-visible{color:#2caba5}
.hsf-cfp-apply{display:inline-flex;align-items:center;justify-content:center;background:#ee8d94;border-radius:8px;font-family:'Barlow',sans-serif;font-weight:600;font-size:clamp(1.05rem,1.4vw,1.3rem);color:#fff;text-decoration:none;min-height:52px;padding:.5rem 2.5rem;margin:clamp(1.25rem,2.5vw,1.75rem) 0 0}
.hsf-cfp-apply:hover,.hsf-cfp-apply:focus-visible{background:#e07b83;color:#fff}

/* ---------------------------------------------------------------------------
   Research archive — cards read "2021 .......... The Mobility Innovator"
   (year left, title right, one line across the card)
   --------------------------------------------------------------------------- */
body[data-prefix="hsf_research_archive"] .entries .entry-card .ct-media-container{margin-bottom:0}
body[data-prefix="hsf_research_archive"] .entries .entry-card .entry-title{
	margin:clamp(6px,.9vw,12px) 0 0;
	font-family:'Barlow',sans-serif;
	font-weight:500;
	font-size:clamp(.95rem,1.25vw,18px);
	line-height:1.15;
}
body[data-prefix="hsf_research_archive"] .entries .entry-card .entry-title a{
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	gap:1rem;
	color:#3b3b3b;
	text-decoration:none;
}
.hsf-card-year{
	flex:0 0 auto;
	font-weight:400;
	color:#8a8a8a;
}

/* ---------------------------------------------------------------------------
   [hsf_documents] — report cover grid
   --------------------------------------------------------------------------- */
.hsf-research-reports{margin-top:clamp(2.5rem,5vw,4.5rem)}
.hsf-docs{
	display:grid;
	grid-template-columns:repeat(var(--hsf-docs-columns,4),minmax(0,1fr));
	column-gap:clamp(1.25rem,2.6vw,3.9rem);
	row-gap:clamp(1.75rem,3.5vw,3rem);
}
.hsf-doc{display:block;text-decoration:none;color:inherit}
.hsf-doc__cover{
	display:block;
	width:100%;
	height:auto;
	aspect-ratio:248/320;
	object-fit:cover;
	border-radius:5px;
}
.hsf-doc__cover--empty{
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;
	padding:1rem;
	aspect-ratio:248/320;
	border:2px dashed #ef4423;
	border-radius:5px;
	color:#ef4423;
	font-family:'Barlow',sans-serif;
	font-weight:600;
	font-size:.85rem;
	letter-spacing:.06em;
}
.hsf-doc__meta{
	display:flex;
	align-items:baseline;
	justify-content:space-between;
	gap:.75rem;
	margin-top:clamp(6px,.9vw,12px);
	font-family:'Barlow',sans-serif;
	font-size:clamp(.85rem,1.05vw,15px);
	line-height:1.2;
}
.hsf-doc__year{flex:0 0 auto;font-weight:400;color:#8a8a8a}
.hsf-doc__label{font-weight:500;color:#3b3b3b}
@media (max-width:900px){.hsf-docs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.hsf-docs{grid-template-columns:1fr}}

/* ---------------------------------------------------------------------------
   Archive cards with no featured image get a loud placeholder tile instead of
   a floating title. Disappears on its own the moment an image is set.
   --------------------------------------------------------------------------- */
body[data-prefix="hsf_grant_archive"] .entries .entry-card:not(:has(.ct-media-container))::before,
body[data-prefix="hsf_research_archive"] .entries .entry-card:not(:has(.ct-media-container))::before{
	content:"\26A0  NEEDS AN IMAGE";
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;
	padding:1rem;
	border:2px dashed #ef4423;
	border-radius:5px;
	color:#ef4423;
	font-family:'Barlow',sans-serif;
	font-weight:600;
	font-size:.8rem;
	letter-spacing:.08em;
}
body[data-prefix="hsf_grant_archive"] .entries .entry-card:not(:has(.ct-media-container))::before{aspect-ratio:1}
body[data-prefix="hsf_research_archive"] .entries .entry-card:not(:has(.ct-media-container))::before{aspect-ratio:4/3}

/* ---------------------------------------------------------------------------
   Call for Proposals — copy now comes from fields, so the paragraph styles
   that used to be inline on the block markup live here.
   --------------------------------------------------------------------------- */
.cfp-intro p{
	font-family:'Barlow',sans-serif;
	font-weight:300;
	font-size:clamp(1rem,1.3vw,1.2rem);
	line-height:1.5;
	color:#3b3b3b;
	margin:0 0 clamp(1.25rem,2.5vw,1.75rem);
}
.cfp-intro p:last-child{margin-bottom:0}
.cfp-theme p{
	font-family:'Barlow',sans-serif;
	font-weight:300;
	font-size:clamp(1rem,1.25vw,1.15rem);
	line-height:1.5;
	color:#3b3b3b;
	margin:0 0 1rem;
}
.cfp-theme p:last-child{margin-bottom:0}

/* ---------------------------------------------------------------------------
   [hsf_media_cards] — image-led cards with taxonomy pills (CFP Events strip)
   --------------------------------------------------------------------------- */
.hsf-mcards{
	display:grid;
	grid-template-columns:repeat(var(--hsf-mcards-columns,2),minmax(0,1fr));
	gap:clamp(1.5rem,4vw,3rem);
}
.hsf-mcard{display:block;text-decoration:none;color:inherit}
.hsf-mcard__img{
	display:block;
	width:100%;
	aspect-ratio:408/228;
	object-fit:cover;
	border-radius:5px;
}
.hsf-mcard__pills{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin:.75rem 0 0;
}
.hsf-mcard__pill{
	display:inline-flex;
	align-items:center;
	height:22px;
	padding:0 12px;
	border:1px solid #bfbfbf;
	border-radius:11px;
	font-family:'Barlow',sans-serif;
	font-size:.72rem;
	letter-spacing:.04em;
	text-transform:uppercase;
	color:#4c5255;
	white-space:nowrap;
}
.hsf-mcard__pill--play{
	justify-content:center;
	width:32px;
	padding:0;
	font-size:10px;
}
.hsf-mcard__title{
	display:block;
	margin:.6rem 0 0;
	font-family:'Barlow',sans-serif;
	font-weight:500;
	font-size:clamp(1rem,1.25vw,1.15rem);
	line-height:1.25;
	color:#3b3b3b;
}
.hsf-mcard:hover .hsf-mcard__title{color:#2caba5}
@media (max-width:760px){.hsf-mcards{grid-template-columns:1fr;gap:1.5rem}}

/* ---------------------------------------------------------------------------
   Dropdown item descriptions — bold label over a small grey line, per design
   --------------------------------------------------------------------------- */
#header .sub-menu .hsf-menu-desc,
.sub-menu .hsf-menu-desc{
	display:block;
	margin-top:2px;
	font-family:'Barlow',sans-serif;
	font-weight:400;
	font-size:12.5px;
	line-height:1.35;
	letter-spacing:.01em;
	color:#9a9a9a;
	text-transform:none;
	white-space:normal;
	max-width:26ch;
}
#header .sub-menu > li > a,
.sub-menu > li > a{
	display:block;
	line-height:1.2;
}

/* hsf dropdown rule — the design draws a vertical line down the left of the dropdown */
#header .sub-menu{border-left:1px solid #e2e2e2}

/* ---------------------------------------------------------------------------
   Mobile grid collapses.

   These containers set grid-template-columns in an INLINE style attribute, and
   each page carried its own <style> media query to collapse them on small
   screens. An inline style beats any stylesheet selector, so none of those
   queries ever fired — every one of these grids kept its desktop column count
   on a phone. Restated here with !important, preserving each page's own
   breakpoints and intent.
   --------------------------------------------------------------------------- */
@media (max-width:900px){
	.rg-quotes{grid-template-columns:1fr 1fr !important;gap:2rem !important}
	.de-gi{grid-template-columns:1fr 1fr !important}
}
@media (max-width:760px){
	.de-progs{grid-template-columns:1fr !important;gap:1.5rem !important}
	.de-quotes{grid-template-columns:1fr !important;gap:2rem !important}
	.crfw-rel{grid-template-columns:1fr !important;gap:2rem !important}
}
@media (max-width:700px){
	.hsf-pp-metrics{grid-template-columns:repeat(3,1fr) !important;justify-content:stretch !important}
}
@media (max-width:640px){
	.de-unis{grid-template-columns:1fr 1fr !important;gap:1.25rem !important}
	.de-collage{column-count:2 !important}
}
@media (max-width:600px){
	.de-logos{grid-template-columns:1fr 1fr !important}
}
@media (max-width:560px){
	.rg-quotes{grid-template-columns:1fr !important}
	.de-gi{grid-template-columns:1fr !important}
}

/* ---------------------------------------------------------------------------
   Mobile menu panel. Blocksy ships a near-black offcanvas; the site is light
   throughout, so the panel is restyled to match. The Primary menu is now
   assigned to the Mobile Menu 1 location — before that the panel fell back to
   an alphabetical list of every page, Sample Page included.
   --------------------------------------------------------------------------- */
#offcanvas .ct-panel-inner{background:#ffffff !important}
#offcanvas .ct-panel-content .menu-item > a{color:#3b3b3b !important}
#offcanvas .ct-panel-content .menu-item > a:hover,
#offcanvas .ct-panel-content .menu-item.current-menu-item > a{color:#2f7471 !important}
#offcanvas .hsf-menu-desc{color:#9a9a9a !important}
#offcanvas .ct-toggle-close,
#offcanvas .ct-toggle-dropdown-mobile{color:#3b3b3b !important}
#offcanvas .ct-panel-content .menu-item{border-bottom:1px solid #ededed}
#offcanvas .ct-panel-content .sub-menu .menu-item:last-child{border-bottom:0}

/* ---------------------------------------------------------------------------
   404 page. No design exists for this — built in the site's own type styles,
   to be replaced if Alexis supplies one.
   --------------------------------------------------------------------------- */
.hsf-404{padding:clamp(3rem,8vw,7rem) 0 clamp(4rem,9vw,8rem)}
.hsf-404__title{
	font-family:'Barlow',sans-serif;
	font-weight:600;
	font-size:clamp(2.2rem,5vw,3.4rem);
	line-height:1.02;
	text-transform:uppercase;
	color:#ef4423;
	margin:0 0 clamp(1rem,2vw,1.5rem);
}
.hsf-404__lead{
	font-family:'Barlow',sans-serif;
	font-weight:300;
	font-size:clamp(1rem,1.3vw,1.2rem);
	line-height:1.5;
	color:#3b3b3b;
	max-width:46ch;
	margin:0 0 clamp(2rem,4vw,3rem);
}
.hsf-404__nav ul{
	list-style:none;
	margin:0;
	padding:0;
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:.6rem clamp(1.5rem,3vw,3rem);
	max-width:34rem;
}
.hsf-404__nav a{
	font-family:'Barlow',sans-serif;
	font-weight:500;
	font-size:clamp(1rem,1.25vw,1.15rem);
	line-height:1.6;
	color:#2f7471;
	text-decoration:none;
	border-bottom:1px solid #e2e2e2;
	display:block;
	padding:.35rem 0;
}
.hsf-404__nav a:hover{color:#ef4423}
@media (max-width:560px){.hsf-404__nav ul{grid-template-columns:1fr}}

/* ===========================================================================
   QualityHive review fixes — batch 1 (2026-10-02)
   =========================================================================== */

/* QH #1 — homepage "What we do" pillars are links (whole column) */
a.hsf-pillar{color:inherit;text-decoration:none;cursor:pointer}

/* QH #3 — rounded corners on Grants + Research archive images (match homepage .625rem) */
body[data-prefix="hsf_grant_archive"] .entries .entry-card .ct-media-container,
body[data-prefix="hsf_research_archive"] .entries .entry-card .ct-media-container{border-radius:.625rem;overflow:hidden}

/* QH #4 — linked images zoom ~5% inside their frame on hover/focus.
   (a) frame already clips: scale the image */
a.ct-media-container img,
a.hsf-events__media img,
.hsf-rel-card .hsf-rel-img,
a.gb-element > img.gb-media{transition:transform .35s ease}
a.ct-media-container:hover img,a.ct-media-container:focus-visible img,
a.hsf-events__media:hover img,a.hsf-events__media:focus-visible img,
.hsf-rel-card:hover .hsf-rel-img,.hsf-rel-card:focus-visible .hsf-rel-img,
a.gb-element:hover > img.gb-media,a.gb-element:focus-visible > img.gb-media{transform:scale(1.05)}
a.gb-element:has(> img.gb-media){overflow:hidden}
/* (b) image is its own frame: scale + clip back to the original box (1/1.05 => 2.381% inset) */
a.hsf-pillar img{clip-path:inset(0 round .625rem);transition:transform .35s ease,clip-path .35s ease}
a.hsf-pillar:hover img,a.hsf-pillar:focus-visible img{transform:scale(1.05);clip-path:inset(2.381% round .595rem)}
.hsf-mcard__img{clip-path:inset(0 round 5px);transition:transform .35s ease,clip-path .35s ease}
a.hsf-mcard:hover .hsf-mcard__img,a.hsf-mcard:focus-visible .hsf-mcard__img{transform:scale(1.05);clip-path:inset(2.381% round 4.76px)}
@media (prefers-reduced-motion:reduce){
	a.ct-media-container img,a.hsf-events__media img,.hsf-rel-card .hsf-rel-img,a.gb-element > img.gb-media,a.hsf-pillar img,.hsf-mcard__img{transition:none}
}

/* QH #7 — About sub-nav: hovered item goes bold in its own section colour */
.about-subnav a:hover{opacity:1}
.about-subnav li:hover{font-weight:700}
.about-subnav li:has(> a[href="#vision-mission"]):hover{color:#f0cbdc}
.about-subnav li:has(> a[href="#our-pillars"]):hover{color:#ffaf9e}
.about-subnav li:has(> a[href="#our-history"]):hover{color:#f57b21}
.about-subnav li:has(> a[href="#timeline"]):hover{color:#7ccecd}
.about-subnav li:has(> a[href="#publications"]):hover{color:#9d60eb}

/* ===========================================================================
   QualityHive review fixes — batch 2 (2026-10-08)
   =========================================================================== */

/* QH #11 — homepage pillar photos zoom inside a rounded frame (no sharp corners on the way back) */
a.hsf-pillar .hsf-zoom img{clip-path:none!important;transition:transform .35s ease;will-change:transform}
a.hsf-pillar:hover .hsf-zoom img,a.hsf-pillar:focus-visible .hsf-zoom img{transform:scale(1.05);clip-path:none!important}

/* QH #19 / #21 — listing titles in their section colour */
body[data-prefix="hsf_research_archive"] .hsf-grants-head__title{color:#a41e27}
body[data-prefix="hsf_grant_archive"] .hsf-grants-head__title{color:#ef4423}

/* QH #20 / #14 — Research & Grants section nav: active item bold in its colour, others go bold + colour on hover */
.hsf-subnav[aria-label="Research & Grants"] li:nth-child(1){--hsf-c:#a41e27}
.hsf-subnav[aria-label="Research & Grants"] li:nth-child(2){--hsf-c:#ef4423}
.hsf-subnav[aria-label="Research & Grants"] li:nth-child(3){--hsf-c:#ee8d94}
.hsf-subnav[aria-label="Research & Grants"] li.is-active,
.hsf-subnav[aria-label="Research & Grants"] li:hover,
.hsf-subnav[aria-label="Research & Grants"] li:hover a{color:var(--hsf-c)!important;font-weight:700}

/* QH #39 — Research & Grants landing numbered list: same hover behaviour */
.hsf-rg-subnav li:nth-child(1){--hsf-c:#a41e27}
.hsf-rg-subnav li:nth-child(2){--hsf-c:#ef4423}
.hsf-rg-subnav li:nth-child(3){--hsf-c:#ee8d94}
.hsf-rg-subnav li:hover a{color:var(--hsf-c)!important;font-weight:700}

/* QH #26 — Jobs: smaller Apply button that changes colour on hover */
.hsf-apply-btn2{min-width:130px!important;min-height:50px!important;font-size:clamp(1rem,1.2vw,1.15rem)!important;transition:background-color .2s ease,color .2s ease}
.hsf-apply-btn2:hover,.hsf-apply-btn2:focus-visible{background:#4c5255!important;color:#fff!important}

/* QH #28 — Design Education program names go bold on hover */
.de-prog span{transition:font-weight .1s}
.de-prog:hover span,.de-prog:focus-visible span{font-weight:600}

/* QH #29 — Design Education "Get involved" buttons: thicker outline, solid on hover */
.de-gi a{border-width:2px!important;transition:background-color .2s ease,color .2s ease}
.de-gi a:hover,.de-gi a:focus-visible{color:#fff!important}
.de-gi a[href*="jobs"]:hover,.de-gi a[href*="jobs"]:focus-visible{background:#2e7572}
.de-gi a[href*="volunteer"]:hover,.de-gi a[href*="volunteer"]:focus-visible{background:#ef4423}
.de-gi a[href*="invest"]:hover,.de-gi a[href*="invest"]:focus-visible{background:#4f599a}

/* QH #31 — Design Education quotes centred */
.de-quotes p{text-align:center}

/* QH #32 — Design Education opener fills the first screen on its own */
@media (min-width:900px){
	body.page-id-315 .gb-element-g005{min-height:calc(100svh - var(--header-height, 130px) - 3rem);align-items:center}
}

/* QH #35 — filter dots without the checkmark */
.hsf-tools__panel .wpgb-checkbox-control::after,.hsf-tools__panel .wpgb-checkbox-control::before{display:none!important}

/* QH #36 — filter toggle bars lighter grey, matching the search field outline */
.hsf-tools__bars,.hsf-tools__bars::before,.hsf-tools__bars::after{background:#c9c9c9!important}

/* QH #55 — event tiles show only date and title */
.hsf-events__card .hsf-events__excerpt{display:none}

/* QH #64 — header Support button uses the menu's type */
#header .ct-button{font-family:'Barlow',sans-serif;font-size:16px;font-weight:400}

/* About pillars as links (QH #51–53) */
a.hsf-pillar-col{color:inherit;text-decoration:none}
a.hsf-pillar-col:hover h3,a.hsf-pillar-col:focus-visible h3{text-decoration:underline;text-underline-offset:.15em}

/* ===========================================================================
   QualityHive review fixes — batch 3 (2026-10-08): sizing, logo, header, People
   =========================================================================== */

/* QH #44 — the Figma is drawn at 1440px wide. Up to 1600px the site matches it 1:1;
   on bigger monitors everything scales down slightly instead of staying full size.
   One dial: change --hsf-zoom values here. */
:root{--hsf-zoom:1}
@media (min-width:1600px){:root{--hsf-zoom:.9}}
@media (min-width:1900px){:root{--hsf-zoom:.85}}
html{zoom:var(--hsf-zoom)}
@media (min-width:900px){
	body.page-id-315 .gb-element-g005{min-height:calc((100svh - 3rem) / var(--hsf-zoom) - var(--header-height, 130px))}
}

/* QH #8 — smaller logo (Figma: 171px wide) and a full-width header: logo to the left edge, menu to the right */
@media (min-width:1000px){
	#header .site-logo-container img,#header .default-logo{width:171px!important;max-width:171px!important;height:auto!important;max-height:none!important}
}

/* QH #44 — People: smaller cards in a tighter group, right-aligned (Figma 41:2123: 336px cards, 38px gaps) */
@media (min-width:1000px){
	.post-type-archive-hsf_person .hsf-cards{grid-template-columns:repeat(3,minmax(0,336px))!important;gap:38px!important;justify-content:end}
	.post-type-archive-hsf_person .hsf-card-name{font-size:clamp(1rem,1.25vw,1.15rem)}
}

/* QH #8 — page width grows with the screen: from 1440px up, header, content and footer all run edge to edge with 60px margins (the Figma's margins), capped at 1720px. Header + content stay aligned. */
@media (min-width:1440px){
	.hsf-container,main .ct-container,#header .ct-container,#footer .ct-container{max-width:min(calc(100% - 120px),1720px)!important;width:100%!important;margin-left:auto!important;margin-right:auto!important}
	#header .ct-container{padding-left:0!important;padding-right:0!important}
	.hsf-container{max-width:min(calc(100% - 72px),1720px)!important}
}
/* Carousels on SEED/DESI show one photo at a time */
.gb-element-cs013.hsf-carousel>img{flex:0 0 100%!important;max-width:100%}

/* QH #59 #61 — SEED/DESI Apply tile at Figma size (41:2517: 315 x 115, #EDEDED, text #3B3B3B) */
.hsf-apply-btn{width:315px;max-width:100%;min-height:115px!important;box-sizing:border-box;transition:background-color .2s ease,color .2s ease}
.hsf-apply-btn:hover,.hsf-apply-btn:focus-visible{background:#4c5255!important;color:#fff!important}
/* QH #62 — Support tiles: Figma 41:2404 is 315 x 140, #EDEDED / #4C5255 (as built). Hover added to match the other buttons pending Alexis's answer. */
.gb-text-sup121,.gb-text-sup122,.gb-text-sup123{transition:background-color .2s ease,color .2s ease}
.gb-text-sup121:hover,.gb-text-sup122:hover,.gb-text-sup123:hover,.gb-text-sup121:focus-visible,.gb-text-sup122:focus-visible,.gb-text-sup123:focus-visible{background-color:#4c5255!important;color:#fff!important}

/* QH #62 — Support tiles at Figma height (140px) */
.gb-text-sup121,.gb-text-sup122,.gb-text-sup123{display:flex!important;align-items:center;justify-content:center;min-height:140px;padding-top:0!important;padding-bottom:0!important}

/* QH #38 — Stories hero: title row matches image width so the label sits at the image's bottom-right */
@media (min-width:861px){.gb-loop-item-ihero .gb-element-hhero{max-width:66.7%}}

/* QH #27 — Design Education landing collage: organic layout, positions measured from Figma 40:1101 ("Landing Photos", 846×541) */
@media (min-width:641px){
.de-collage{column-count:auto !important;position:relative;aspect-ratio:846/541;width:100%}
.de-collage>img{position:absolute;margin:0 !important;object-fit:cover;max-width:none}
.de-collage>img:nth-child(1){left:5.20%;top:0.00%;width:21.75% !important;height:25.32% !important}
.de-collage>img:nth-child(2){left:0.00%;top:29.02%;width:26.95% !important;height:35.67% !important}
.de-collage>img:nth-child(3){left:28.84%;top:35.67%;width:37.71% !important;height:25.88% !important}
.de-collage>img:nth-child(4){left:47.40%;top:64.51%;width:38.89% !important;height:32.35% !important}
.de-collage>img:nth-child(5){left:28.96%;top:0.00%;width:26.71% !important;height:32.16% !important}
.de-collage>img:nth-child(6){left:57.68%;top:0.00%;width:28.61% !important;height:29.39% !important}
.de-collage>img:nth-child(7){left:68.44%;top:32.53%;width:31.56% !important;height:25.88% !important}
.de-collage>img:nth-child(8){left:14.07%;top:68.21%;width:31.09% !important;height:31.79% !important}
}
/* QH #30 — DE stats hug the photo: numbers right-aligned, 29px from the image (Figma 40:1135) */
@media (min-width:861px){
body.page-id-315 .gb-element-s011{display:grid !important;grid-template-columns:minmax(0,558fr) minmax(0,699fr) !important;column-gap:29px !important;align-items:center !important}
body.page-id-315 .gb-element-s011>div:first-child{text-align:right}
body.page-id-315 .gb-element-s011>div:first-child p{margin-left:auto !important;max-width:18rem !important;font-size:clamp(1.1rem,1.9vw,1.75rem) !important;line-height:1.05 !important;letter-spacing:0 !important}
body.page-id-315 .gb-element-s011 .gb-media-im010{width:100% !important;max-width:none !important;aspect-ratio:699/840;height:auto !important;object-fit:cover}
}
/* QH #33 — DE Get Involved: narrower cards (Figma 40:1147 — photo 284, cards 204, gaps 95) */
@media (min-width:901px){
.de-gi{grid-template-columns:minmax(0,284px) repeat(3,minmax(0,204px)) !important;justify-content:start !important;column-gap:clamp(1.5rem,6.6vw,95px) !important}
.de-gi>div>div{text-align:center;min-height:263px !important}
.de-gi>div>a{min-height:82px !important}
}

/* ===== QualityHive round 3 (2026-10-08) ===== */
/* #84 — no single word hanging on the last line */
p,figcaption,li,.gb-text{text-wrap:pretty}
/* #67 #72 — R&G numbered sub-nav: the active word matches its number (Research #A41E27, CFP pink #EE8D94 per Figma) */
.hsf-subnav li.is-active:nth-child(1),.hsf-subnav li.is-active:nth-child(1) [aria-current]{color:#a41e27 !important}
.hsf-subnav li.is-active:nth-child(3),.hsf-subnav li.is-active:nth-child(3) [aria-current]{color:#ee8d94 !important}
/* #85 — About sub-nav hover: fake bold so the column width doesn't change and the layout doesn't jump */
.about-subnav li:hover{font-weight:inherit !important}
.about-subnav li:hover a{text-shadow:0 0 .7px currentColor,0 0 .7px currentColor}
/* #88 — Public Programming title colour + caps (Figma 41:1622: #2F7471) */
body.post-type-archive-hsf_event h1.gb-text-pp1{color:#2f7471 !important;text-transform:uppercase}
/* #87 — Sponsor line links to Support */
.gb-text-pp9 a{color:inherit;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.gb-text-pp9 a:hover{color:#2f7471}
/* #89 — slimmer header bar on desktop */
@media (min-width:1000px){#header [data-row*="middle"]{--height:120px}}
/* #79 — DE Get Involved centred (Figma: section 125→1314 on 1440) */
@media (min-width:901px){body.page-id-315 .gb-element-s009{max-width:1181px;margin-left:auto !important;margin-right:auto !important}}
/* #78 — thicker outline on Apply / Partner / Invest */
.de-gi a{border-width:3px !important}
/* #77 — DE program titles: tighter stacked lines */
.de-prog span{line-height:1.05 !important;padding:1px 10px 0 !important}
/* #75 — Jobs: Apply is a normal horizontal button under "Learn more" (Figma 41:2519: 184×56, #EDEDED) */
@media (min-width:861px){
	.hsf-acc-body{grid-template-columns:1fr 1fr !important}
	.hsf-acc-apply{grid-column:2;justify-content:flex-start !important;align-items:flex-start;margin-top:calc(1.25rem - clamp(1.5rem,3vw,3rem))}
}
.hsf-apply-btn2{width:184px;min-width:0 !important;height:56px;min-height:56px !important;padding:0 1rem !important;font-size:18px !important;font-weight:500 !important}
/* #83 — Jobs photo strip keeps its proportions (no cropped bottoms on wide screens) */
.gb-media-jb010{height:auto !important;aspect-ratio:1440/450;object-fit:cover}

/* ===== QualityHive round 4 (2026-10-14) ===== */
/* #92 — event tiles crop 16:9, same as the feature graphic */
.hsf-events__media img{aspect-ratio:16/9}
/* #101 — every rotating-photo block shows one image at a time */
.hsf-carousel>img{flex:0 0 100% !important;max-width:100%;object-fit:cover}
/* #81 — caption area keeps its height so content beside the carousel doesn't jump between slides */
.hsf-car-cap{min-height:2.6em}
/* #107 — mobile menu links dark on the white panel (Blocksy default was white) */
#offcanvas [data-id="mobile-menu"]{--theme-link-initial-color:#3b3b3b;--theme-link-hover-color:#2f7471;--theme-link-active-color:#2f7471}
/* #104 — never scroll sideways on phones */
@media (max-width:999px){html,body{overflow-x:clip}}
/* #103 — Public Programming numbers top-aligned on phones */
@media (max-width:700px){.hsf-pp-metrics{align-items:start !important}}
/* #105 — CFP theme text one column on phones */
@media (max-width:760px){.cfp-theme{grid-template-columns:1fr !important}}
/* #106 — DE university lists one column on phones */
@media (max-width:640px){.de-unis{grid-template-columns:1fr !important}}

/* #98 — About the sponsor is rich text now */
.gb-text-gspt>p{margin:0 0 .7em}.gb-text-gspt>p:last-child{margin-bottom:0}.gb-text-gspt a,.gb-text-gspn a{color:inherit;text-decoration:underline;text-underline-offset:3px}
/* #93 — pills on past-event tiles */
.hsf-events__pills{margin:.2rem 0 .6rem}

/* ===== QualityHive round 4, batch 3 (2026-10-14) ===== */
/* #68 #69 — SEED/DESI Apply: an editable button block under Questions, a bit smaller, bottom-aligned with the photo */
.hsf-apply-btn{display:flex;align-items:center;justify-content:center;background:#ededed;border-radius:10px;font-family:Barlow,sans-serif;font-weight:600;font-size:clamp(1.4rem,2vw,2.1rem);color:#3b3b3b;text-decoration:none;width:280px !important;max-width:100%;min-height:96px !important;padding:.8rem 1.5rem}
@media (min-width:821px){
	body.page-id-259 .gb-element-wr023,body.page-id-260 .gb-element-wr023{align-items:stretch}
	body.page-id-259 .gb-element-wl020>.hsf-apply-btn,body.page-id-260 .gb-element-wl020>.hsf-apply-btn{margin-top:auto}
	body.page-id-259 .gb-element-rr026,body.page-id-260 .gb-element-rr026{grid-column:2}
}
/* #73 — CFP landing: photo carousel left, caption top of the text column, text about half width */
@media (min-width:861px){
	body.page-id-324 .gb-element-g005{grid-template-columns:minmax(0,610px) minmax(0,370px) !important;justify-content:start;column-gap:clamp(1.5rem,2.5vw,2.5rem) !important}
}
.gb-element-cfpcar>img{aspect-ratio:610/400;object-fit:cover;border-radius:5px}
.hsf-cfp-cap.hsf-car-cap{text-align:left;margin:0 0 1.75rem;min-height:2.6em}
/* #76 — Design Education: larger collage (Figma 846px) and sketch */
.de-collage>img{width:100%;display:block;border-radius:5px;margin:0 0 12px;break-inside:avoid}
@media (max-width:640px){.de-collage{column-count:2;column-gap:12px}}
@media (min-width:1100px){body.page-id-315 .gb-element-g005{grid-template-columns:minmax(0,1fr) minmax(0,846px) !important}}
.de-sketch{position:relative}
.de-sketch>img{width:min(62%,680px);float:right;opacity:.75;margin:-2rem 0 0}
.de-sketch__credit{clear:both;font-family:Barlow,sans-serif;font-size:.8rem;color:#9a9a9a;text-align:right;margin:.25rem 0 0}
@media (max-width:640px){.de-sketch>img{width:100%;float:none;margin:0}}
/* #80 — Past events search + Focus Area filter */
.hsf-ev-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1.5rem}
.hsf-ev-filter{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.hsf-ev-filter button{font-family:Barlow,sans-serif;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:#525252;background:#fff;border:1px solid #c9c9c9;border-radius:16px;padding:.35rem .9rem;cursor:pointer}
.hsf-ev-filter button[aria-pressed="true"],.hsf-ev-filter button:hover{background:#2f7471;border-color:#2f7471;color:#fff}
.hsf-ev-search{width:min(260px,100%);height:32px;border:1px solid #c9c9c9;border-radius:16px;padding:0 1rem;font-family:Barlow,sans-serif;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#525252;background:#fff}
.hsf-ev-none{font-family:Barlow,sans-serif;color:#6b6b6b;margin:0 0 1rem}
.hsf-events__card[hidden]{display:none !important}
/* #86 — About Hideo: an era's text stays in view while its photos scroll past */
@media (min-width:821px){
	.hsf-tl-era>.gb-element:last-child>.gb-element:last-child{position:sticky;top:calc(var(--hsf-sticky-top,90px) + 110px);align-self:start}
}

/* Rotating photos: any element with the hsf-carousel class lays its images out in a row (no per-block styling needed) */
.hsf-carousel{display:flex;gap:0;overflow-x:auto}
.hsf-carousel>img{scroll-snap-align:center}

/* Program pages (SEED/DESI): lists and notes are normal List / Paragraph blocks with these classes */
.hsf-prog-list{font-family:Barlow,sans-serif;font-weight:300;font-size:clamp(1.05rem,1.5vw,1.35rem);line-height:1.4;color:#3b3b3b;margin:0;padding-left:1.4em}
.hsf-prog-list strong{font-weight:600}
p.hsf-prog-text{font-family:Barlow,sans-serif;font-weight:300;font-size:clamp(1.05rem,1.5vw,1.35rem);line-height:1.4;color:#3b3b3b;margin:0}
p.hsf-prog-contact{font-family:Barlow,sans-serif;font-weight:300;font-size:clamp(1rem,1.4vw,1.25rem);line-height:1.5;color:#3b3b3b;margin:.4rem 0 0}
p.hsf-prog-volunteer{font-family:Barlow,sans-serif;font-style:italic;font-size:clamp(1.05rem,1.5vw,1.35rem);color:#3b3b3b;margin:clamp(1.5rem,3vw,2.5rem) 0 0}
p.hsf-prog-text a,p.hsf-prog-contact a,p.hsf-prog-volunteer a{color:#3b3b3b}
p.hsf-prog-text a{font-weight:500}

/* ===== Section menus, program titles, crumbs as editable blocks (2026-10-14) ===== */
.de-progs{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,4vw,3rem);align-items:start;margin:clamp(1.5rem,3vw,2.5rem) 0 0}
@media (max-width:760px){.de-progs{grid-template-columns:1fr;gap:1.5rem}}
.hsf-crumb{font-family:Barlow,sans-serif;font-size:.95rem;color:#9a9a9a;margin:0 0 clamp(1.5rem,3vw,2.5rem)}
.hsf-crumb strong{font-weight:inherit;color:#3b3b3b}

/* ===== Custom HTML → blocks, final batch (2026-10-14) ===== */
/* Design Education — Get Involved */
.de-gi{display:grid;grid-template-columns:minmax(0,1.05fr) repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.75rem);align-items:stretch;margin:clamp(1.5rem,3vw,2.25rem) 0 0}
.de-gi__photo img{display:block;width:100%;height:100%;object-fit:cover;border-radius:8px;min-height:230px}
.de-gi__col{display:flex;flex-direction:column;gap:14px}
.de-gi__text{background:#efefef;border-radius:8px;padding:20px;min-height:230px;font-family:Barlow,sans-serif;font-weight:300;font-size:clamp(.9rem,1.1vw,1rem);line-height:1.45;color:#3b3b3b;margin:0}
.de-gi__text strong{font-weight:600}
.de-gi__btn{--btn:#2e7572;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--btn);border-radius:8px;min-height:64px;font-family:Barlow,sans-serif;font-weight:500;font-size:clamp(1.05rem,1.4vw,1.3rem);color:var(--btn);text-decoration:none}
.de-gi__btn--red{--btn:#ef4423}.de-gi__btn--blue{--btn:#4f599a}
.de-gi .de-gi__btn:hover,.de-gi .de-gi__btn:focus-visible{background:var(--btn);color:#fff!important}
@media(max-width:900px){.de-gi{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.de-gi{grid-template-columns:1fr}}
/* Design Education — universities + logos */
.de-unis{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,4vw,3.5rem)}
.de-unis ul{list-style:none;margin:0;padding:0;font-family:Barlow,sans-serif;font-weight:300;font-size:clamp(.95rem,1.2vw,1.1rem);line-height:1.7;color:#4c5255}
@media(max-width:640px){.de-unis{grid-template-columns:1fr 1fr;gap:1.25rem}}
.de-logos{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,4vw,3rem);align-items:center}
.de-logos>div{display:flex;align-items:center;justify-content:center;min-height:110px}
.de-logos img{width:auto;height:auto;max-width:70%;max-height:88px;object-fit:contain;opacity:.75;filter:grayscale(1)}
@media(max-width:600px){.de-logos{grid-template-columns:1fr 1fr}}
/* Research & Grants carousel */
.rg-car{gap:0;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:14px;-webkit-overflow-scrolling:touch}
.rg-car>img{scroll-snap-align:center;width:100%;aspect-ratio:924/619;object-fit:cover;border-radius:14px}
/* About Hideo — video thumbnail */
.hsf-tl-video{display:block;position:relative;border-radius:5px;overflow:hidden}
.hsf-tl-video img{display:block;width:100%;height:auto;aspect-ratio:447/250;object-fit:cover}
.hsf-tl-video__play{position:absolute;inset:0;margin:auto;width:66px;height:66px;border-radius:50%;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;pointer-events:none}
.hsf-tl-video__play::after{content:"";display:block;border-style:solid;border-width:13px 0 13px 22px;border-color:transparent transparent transparent #fff;margin-left:5px}
/* CFP section menu */
.hsf-cfp-nav{font-family:Barlow,sans-serif;font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:2;color:#3b3b3b;display:flex;flex-direction:column}
.hsf-cfp-nav a{color:#3b3b3b;text-decoration:none}
.hsf-cfp-nav p{margin:0}
.cfp-theme{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem)}
@media(max-width:760px){.cfp-theme{grid-template-columns:1fr;gap:1.25rem}}
/* Crumbs with links, Charles River Floating Wetland */
.hsf-crumb a{color:inherit;text-decoration:none}
.hsf-crumb a:hover{color:#3b3b3b}
.crfw-text{font-family:Barlow,sans-serif;font-weight:300;font-size:clamp(1rem,1.25vw,1.15rem);line-height:1.5;color:#3b3b3b;margin:0}
.crfw-text a{color:#2f7471;font-weight:500}
.crfw-rel{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,4vw,3.5rem)}
.crfw-card{display:block;text-decoration:none;color:inherit}
.crfw-card img{display:block;width:100%;aspect-ratio:387/216;object-fit:cover;border-radius:5px}
.hsf-pills{display:flex;gap:8px;flex-wrap:wrap;margin:.75rem 0 0}
.hsf-pill{display:inline-flex;align-items:center;height:22px;padding:0 12px;border:1px solid #bfbfbf;border-radius:11px;font-family:Barlow,sans-serif;text-transform:uppercase;font-size:.72rem;letter-spacing:.02em;color:#4c5255}
.hsf-pill--play{justify-content:center;width:32px;padding:0;font-size:10px}
@media(max-width:760px){.crfw-rel{grid-template-columns:1fr;gap:2rem}}

/* People archive (moved from a Custom HTML <style> block in content block 291) */
.gb-element-pplsection{padding-block:clamp(2rem,5vw,4rem)}
.gb-element-pplsection *{box-sizing:border-box}
.gb-element-pplcontainer{max-width:min(1290px,90vw);margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}
.gb-element-pplhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:clamp(1rem,3vw,3rem);margin:0 0 clamp(2.5rem,5vw,4rem)}
.gb-text-ppltitle{font-family:Barlow,sans-serif;font-weight:800;font-size:clamp(2.4rem,5vw,3rem);line-height:1.05;letter-spacing:.01em;text-transform:uppercase;color:#2a347a;margin:0}
.gb-element-pplintro{font-family:Barlow,sans-serif;font-weight:300;font-size:clamp(1.2rem,2.3vw,2rem);line-height:1.12;color:#000;max-width:44ch;margin:0}
.gb-text-pplg1title,.gb-text-pplg2title{font-family:Barlow,sans-serif;font-weight:600;font-size:clamp(1.7rem,3.3vw,2.5rem);line-height:1.1;color:#525252;margin:0 0 clamp(1.4rem,3vw,2.25rem)}
.gb-element-pplg2wrap{margin-top:clamp(2.5rem,5vw,4.5rem)}
.hsf-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,2.4rem)}
@media(max-width:900px){.hsf-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.hsf-cards{grid-template-columns:1fr}}
.hsf-card{margin:0}
.hsf-card-media{position:relative;aspect-ratio:1}
.hsf-flip{position:absolute;inset:0}
.hsf-card:hover .hsf-back,.hsf-card:focus-within .hsf-back{opacity:1;visibility:visible}
.hsf-face{position:absolute;inset:0;border-radius:10px;overflow:hidden}
.hsf-front{background-size:cover;background-position:center top;background-color:#e5e5e5}
.hsf-back{opacity:0;visibility:hidden;background:var(--cc,#e1eff5);padding:clamp(1rem,1.6vw,1.5rem);overflow:auto}
.hsf-bio{font-family:Barlow,sans-serif;font-weight:300;font-size:clamp(.78rem,1.02vw,1.05rem);line-height:1.3;color:var(--cctext,#111);margin:0}
.hsf-card-name{font-family:Barlow,sans-serif;font-weight:600;font-size:clamp(1.15rem,1.6vw,1.5rem);line-height:1.3;color:#3b3b3b;margin:.8rem 0 .15rem}
.hsf-card-role{font-family:Barlow,sans-serif;font-weight:400;font-size:clamp(1rem,1.3vw,1.25rem);line-height:1.22;color:#737373;margin:0}
.hsf-card-role br{line-height:1.6}

/* ===== QualityHive round 5 (2026-10-14) ===== */
/* #108 — story image captions start at the image's left edge (Blocksy centred them) */
.single-post figure.wp-block-image figcaption,.single-post .wp-block-gallery figcaption,.single-post .blocks-gallery-caption{text-align:left}
.rg-car-wrap{min-width:0}

/* ===== QualityHive round 7 (2026-10-15) ===== */
/* #119 — tighter gap between the Past Events heading and its search/filter bar */
body.post-type-archive-hsf_event .hsf-pp-tools:empty{display:none}
body.post-type-archive-hsf_event .gb-element-pp14 .hsf-events--past{margin-top:28px}
/* #120 — logo sits a little lower in the desktop header */
@media (min-width:1000px){#header [data-row="middle"] .site-branding{margin-top:14px}}
/* #124 — Research & Grants sub-menu: hover no longer changes width, so items don't shift */
.hsf-subnav[aria-label="Research & Grants"] li:not(.is-active):hover,.hsf-subnav[aria-label="Research & Grants"] li:not(.is-active):hover a{font-weight:500 !important;text-shadow:0 0 .7px currentColor,0 0 .7px currentColor}
/* #125 — all headings in Barlow (H4s in grant/story text were falling back to the system font) */
h1,h2,h3,h4,h5,h6{font-family:'Barlow',sans-serif}

/* #121 — Design Education collage ~10–18% larger (all photos scale together; positions are %-based) */
@media (min-width:1100px){body.page-id-315 .gb-element-g005{grid-template-columns:minmax(380px,1fr) minmax(0,1000px) !important}}

/* #123 — Grant / Research single: project photo grid (Gallery field) above Related, captions from the Media Library */
.hsf-grant-gallery{margin-top:clamp(2.5rem,5vw,4rem)}
.hsf-grant-gallery:not(:has(.hsf-gal)){display:none}
.hsf-gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.75rem)}
.hsf-gal__item{margin:0}
.hsf-gal__img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:5px}
.hsf-gal__cap{margin:.6rem 0 0;font-family:'Barlow',sans-serif;font-weight:400;font-size:.95rem;line-height:1.4;color:#4c5255;text-align:left !important}
@media (max-width:900px){.hsf-gal{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.hsf-gal{grid-template-columns:1fr}}

/* ===== QualityHive round 9 (2026-10-16) ===== */
/* #128 — CFP on phones/tablets: space between the section menu and the photo */
@media (max-width:999px){body.page-id-324 .gb-element-c016>nav.hsf-subnav{margin-bottom:1.75rem !important}}
/* #129 — CFP on phones/tablets: space between the intro text and the side menu below it */
@media (max-width:999px){body.page-id-324 .gb-element-cfpsd0{margin-top:2rem !important}}
/* #130 — related event tiles use the 16:9 event graphic shape */
.hsf-event-related .hsf-rel-img,.hsf-rel-card--event .hsf-rel-img{aspect-ratio:16/9 !important}

/* QualityHive #132: image captions left-aligned on single events and stories */
body.single-hsf_event .entry-content figcaption,body.single-hsf_event .wp-element-caption,body.single-post .entry-content figcaption,body.single-post .wp-element-caption{text-align:left !important}

/* QualityHive round 10 */
/* #133 View more stories (under the mosaic) */
.hsf-stories-viewall{display:flex;justify-content:center;margin-top:clamp(2rem,4vw,3.5rem)}
.hsf-stories-viewall button{font-family:'Barlow',sans-serif;font-weight:600;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;color:#525252;background:none;border:0;border-bottom:2px solid #525252;border-radius:0;padding:0 0 .35rem;cursor:pointer}
.hsf-stories-viewall button:hover,.hsf-stories-viewall button:focus-visible{color:#2a347a;border-bottom-color:#2a347a}
body.hsf-stories-filtered .hsf-stories-viewall{display:none}
.hsf-stories-grid-wrap{scroll-margin-top:120px}
/* #134 #135 space after images, galleries and quotes in story / event bodies (matches paragraph spacing) */
.hsf-story-body>figure,.hsf-story-body>.wp-block-image,.hsf-story-body>.wp-block-gallery,.hsf-story-body>blockquote,.hsf-story-body>.wp-block-quote,.hsf-story-body>.wp-block-pullquote,body.single-hsf_event .entry-content :not(.wp-block-gallery)>figure.wp-block-image,body.single-hsf_event .entry-content .wp-block-gallery,body.single-hsf_event .entry-content .wp-block-quote{margin-bottom:24px !important}
.hsf-story-body>:last-child{margin-bottom:0 !important}
/* #136 rounded program buttons (match site outline buttons) */
.hsf-prog-title--button{border-radius:8px}

/* #137 captions: one style for single images and galleries in stories / events (Barlow, below the image) */
.hsf-story-body figcaption,body.single-hsf_event .entry-content figcaption{font-family:'Barlow',sans-serif !important;font-size:14px !important;line-height:1.5 !important;color:#4c5255 !important;text-align:left !important;font-style:normal}
.hsf-story-body .wp-block-gallery.has-nested-images figure.wp-block-image figcaption,body.single-hsf_event .wp-block-gallery.has-nested-images figure.wp-block-image figcaption{position:static !important;background:none !important;padding:0 !important;margin:7px 0 0 !important;max-height:none !important;overflow:visible !important;text-shadow:none !important;width:auto !important;flex:0 0 auto !important}
.hsf-story-body .wp-block-gallery.has-nested-images figure.wp-block-image figcaption a,body.single-hsf_event .wp-block-gallery.has-nested-images figure.wp-block-image figcaption a{color:inherit !important}
.hsf-story-body .wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before,body.single-hsf_event .wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before{display:none !important}
.hsf-story-body .wp-block-gallery.has-nested-images figure.wp-block-image,body.single-hsf_event .wp-block-gallery.has-nested-images figure.wp-block-image{flex-direction:column !important;justify-content:flex-start !important}
.hsf-story-body .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image img,body.single-hsf_event .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image img{aspect-ratio:4/3;height:auto !important;flex:0 0 auto !important}

/* #131 past events filter panel (same look as Stories) */
.hsf-ev-tools2{margin:0 0 clamp(1.25rem,2.5vw,2rem)}
.hsf-tools__search .hsf-evf-search{width:100%;height:32px;border:1px solid #c9c9c9;border-radius:16px;padding:0 1rem;font-family:'Barlow',sans-serif;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#525252;background:#fff}
.hsf-tools__search label{display:block;margin:0}
.hsf-events__grid>.hsf-events__card[hidden]{display:none !important}
.hsf-ev-more{display:flex;justify-content:center;margin-top:clamp(2rem,4vw,3.5rem)}
.hsf-ev-more[hidden]{display:none}
.hsf-ev-more button{font-family:'Barlow',sans-serif;font-weight:600;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;color:#525252;background:none;border:0;border-bottom:2px solid #525252;border-radius:0;padding:0 0 .35rem;cursor:pointer}
.hsf-ev-more button:hover,.hsf-ev-more button:focus-visible{color:#2a347a;border-bottom-color:#2a347a}
.hsf-ev-tools2 .wpgb-hierarchical-list li{padding:.3rem 0}

/* QualityHive round 11 */
/* #139 rounded corners on body + gallery images (stories, grants, research, events) - matches the 5px on cards */
:is(.hsf-story-body,.hsf-grant-body,.hsf-event-body,.hsf-gal) img{border-radius:5px}
/* #140 story body text in Barlow, same as grant / research body */
.hsf-story-body p,.hsf-story-body li,.hsf-story-body blockquote,.hsf-story-body td{font-family:'Barlow',sans-serif;font-size:18.4px;font-weight:300;line-height:1.5;color:#3b3b3b}
.hsf-story-body strong,.hsf-story-body b{font-weight:600}
/* #141 Stories Load more always visible (WP Grid Builder was making it white until hover) */
.hsf-stories-loadmore .wpgb-facet .wpgb-button.wpgb-load-more{color:#525252 !important;background:none !important;border:0 !important;border-bottom:2px solid #525252 !important;border-radius:0 !important;box-shadow:none !important}
.hsf-stories-loadmore .wpgb-facet .wpgb-button.wpgb-load-more:hover,.hsf-stories-loadmore .wpgb-facet .wpgb-button.wpgb-load-more:focus-visible{color:#2a347a !important;border-bottom-color:#2a347a !important}

/* QualityHive round 12 */
/* #143 About Hideo carousel: taller frame so the photos aren't over-cropped */
body.page-id-204 .gb-element-ah220{aspect-ratio:3/2;height:auto !important}
body.page-id-204 .gb-element-ah220 img{height:100% !important}
/* #145 Stories grid images 16:9 like Related cards, so event graphics aren't cut off */
.gb-loop-item-sgi .gb-element-sga{height:auto !important;aspect-ratio:auto !important}
.gb-loop-item-sgi .gb-media-sgm{aspect-ratio:16/9 !important;height:auto !important;width:100% !important;object-fit:cover}
/* #146 form submit buttons: hover / focus feedback */
.gform_wrapper .gform_button,.gform_wrapper button[type=submit]{transition:background-color .15s,color .15s,transform .15s}
.gform_wrapper .gform_button:hover,.gform_wrapper button[type=submit]:hover{background-color:#ee8d94 !important;color:#383838 !important;transform:translateY(-1px)}
.gform_wrapper .gform_button:focus-visible,.gform_wrapper button[type=submit]:focus-visible{outline:2px solid #383838;outline-offset:2px}

/* QualityHive round 14 (Nov 3) */
/* #62 Support tiles: grey by default, programme colour on hover (Alexis, Oct 27) */
body.page-id-197 .gb-text-sup121,body.page-id-197 .gb-text-sup122,body.page-id-197 .gb-text-sup123{transition:background-color .15s,color .15s}
body.page-id-197 .gb-text-sup121:hover,body.page-id-197 .gb-text-sup121:focus-visible{background:#D37076 !important;color:#fff !important} /* Donate */
body.page-id-197 .gb-text-sup122:hover,body.page-id-197 .gb-text-sup122:focus-visible{background:#A67CAC !important;color:#fff !important} /* Volunteer */
body.page-id-197 .gb-text-sup123:hover,body.page-id-197 .gb-text-sup123:focus-visible{background:#2E7572 !important;color:#fff !important} /* Invest */
/* #150 #151 grant / research tagline in the title green */
.gb-text-gtopic{color:#2f7471 !important}
/* #156 side section menus a little larger */
.hsf-sm--side .hsf-sm__item,.hsf-sm--side .hsf-sm__item a{font-size:16px !important;line-height:1.5}
/* #157 header menu +2px (top level 16->18, dropdown titles 12->14) */
#header .ct-menu-link{font-size:18px}
#header .sub-menu .ct-menu-link{font-size:14px}
#header .sub-menu .hsf-menu-desc{font-size:12.5px}
/* #158 Design Education programme buttons closer together; heading lines up with the first button */
@media (min-width:900px){
body.page-id-315 .gb-element-deprg0{grid-template-columns:repeat(3,minmax(0,280px));justify-content:center;column-gap:2.5rem}
body.page-id-315 .gb-element-deprg0 .de-prog{max-width:none;width:100%}
body.page-id-315 .gb-text-h006{width:100%;max-width:calc(3 * 280px + 5rem);margin-left:auto !important;margin-right:auto !important}
}
/* #160 #161 one-line image credit under a picture (same look as the Design Education sketch credit) */
.hsf-img-credit{font-family:'Barlow',sans-serif;font-size:.8rem;font-weight:400;line-height:1.65;color:#9a9a9a;text-align:right;margin:4px 0 0}/* #152 CFP intro is now a plain paragraph (p.cfp-intro) - same look as before */
p.cfp-intro{font-family:'Barlow',sans-serif;font-weight:300;font-size:clamp(1rem,1.3vw,1.2rem);line-height:1.5;color:#3b3b3b;margin:0}
/* #160 sit the credit just under the sketch (the image is letterboxed inside its frame) */
body.page-id-322 .gb-text-rgcr01{margin-top:-2.75rem;position:relative}

/* Section menu block, compact style (replaces the [hsf_section_nav] shortcode): colour comes from each item's colour field */
.hsf-sm--compact li.is-active,.hsf-sm--compact li.is-active span,.hsf-sm--compact li:hover a,.hsf-sm--compact li a:focus-visible{color:var(--hsf-c,#ef4423) !important;font-weight:700}
.hsf-sm--compact li:not(.is-active):hover a{font-weight:500 !important;text-shadow:0 0 .7px currentColor,0 0 .7px currentColor}

/* QualityHive round 15 */
/* #162 R&G sketch credit spans the grid and sits under the image's right edge */
body.page-id-322 .gb-text-rgcr01{grid-column:1/-1;text-align:right}
@media (max-width:767px){body.page-id-322 .gb-text-rgcr01{margin-top:.4rem}}
