/*
Theme Name: Wave Hill Horizon Blog
Theme URI: https://wavehillhorizon.com/
Author: Wave Hill Horizon
Description: Editorial blog theme for Wave Hill Horizon. Off-white, navy and teal, with Georgia accents. Works with the whh-blog-core and whh-blog-media plugins.
Version: 1.0.0
Requires at least: 6.3
Requires PHP: 7.4
License: Proprietary
Text Domain: whh-blog
*/

:root{--paper:#f7f7f2;--white:#fff;--ink:#132b3a;--muted:#52616b;--teal:#006b70;--aqua:#d9eeeb;--line:#c9d2cf;--mat:#e8ece8;--warn:#70582c;--warn-bg:#f0ede4;--max:1280px;--gutter:clamp(20px,4.4vw,64px);--radius:4px;--body:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--editorial:Georgia,"Times New Roman",serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body.whh-blog{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--body);overflow-x:hidden}
.whh-blog a{color:inherit;text-underline-offset:5px}
.whh-blog a:hover{text-decoration-thickness:2px}
.whh-blog a:focus-visible,.whh-blog button:focus-visible{outline:3px solid var(--teal);outline-offset:4px}
.whh-blog button{font:inherit;cursor:pointer}
.whh-blog img{max-width:100%;height:auto;display:block}
.whh-blog h1,.whh-blog h2,.whh-blog h3,.whh-blog p,.whh-blog figure,.whh-blog dl,.whh-blog dd{margin:0}
.whh-blog h1,.whh-blog h2,.whh-blog h3{line-height:1.1;letter-spacing:-.045em;font-weight:550;overflow-wrap:anywhere}
.whh-blog p{color:var(--muted)}
.whh-blog em{font-family:var(--editorial);font-weight:400;font-style:italic;color:var(--teal)}
.main:focus{outline:none}
.wrap{width:min(100% - var(--gutter)*2,var(--max));margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:fixed;left:16px;top:-100px;z-index:100;background:var(--ink);color:#fff!important;padding:12px 20px}
.skip:focus{top:12px}
.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:.15em;font-weight:650;color:var(--teal)!important;line-height:1.5}

/* Header */
.header{border-bottom:1px solid var(--line)}
.header-inner{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-size:17px;font-weight:650;line-height:1.2;letter-spacing:-.03em;flex-shrink:0}
.brand img{width:48px;height:48px}
.nav{display:flex;align-items:center;gap:28px}
.nav a{min-height:44px;display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:14px}
.nav a:hover{color:var(--teal)}
.nav a[aria-current]{border-bottom:2px solid var(--teal)}
.nav .nav-contact{border:1px solid var(--ink);padding:8px 16px;border-radius:var(--radius);gap:16px}
.nav .nav-contact:hover{background:var(--aqua);color:var(--ink)}
.menu-toggle{display:none;min-height:44px;background:none;border:1px solid var(--line);padding:8px 16px;border-radius:var(--radius);color:var(--ink)}

/* Buttons and links */
.button{display:inline-flex;justify-content:space-between;align-items:center;gap:28px;min-height:48px;padding:12px 18px;background:var(--ink);color:#fff!important;border:1px solid var(--ink);border-radius:var(--radius);font-size:14px;font-weight:600;line-height:1.5;text-decoration:none!important}
.button:hover{background:var(--teal);border-color:var(--teal)}
.button--secondary{background:transparent;color:var(--ink)!important}
.button--secondary:hover{background:var(--ink);color:#fff!important;border-color:var(--ink)}
.text-link{display:inline-flex;align-items:center;gap:14px;min-height:44px;font-size:14px;font-weight:600}
.actions{display:flex;align-items:center;gap:12px 24px;flex-wrap:wrap;margin-top:30px}

/* Landing */
.intro{padding:clamp(40px,6vw,72px) 0 clamp(28px,4vw,42px)}
.intro h1{font-size:clamp(40px,6.4vw,86px);font-weight:500;margin:20px 0 25px;letter-spacing:-.05em}
.intro h1 em{letter-spacing:-.04em}
.intro--compact h1{font-size:clamp(34px,4.4vw,56px);margin-bottom:0}
.intro-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:40px}
.intro-bottom p{max-width:640px;font-size:18px}
.index-number{font:italic 64px/1 var(--editorial);color:#7b928e}
.sectionbar{border-block:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 0;margin-bottom:42px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:0}
.filters button{border:0;min-height:44px;padding:10px 16px;background:none;color:var(--muted);border-radius:var(--radius);font-size:14px}
.filters button:hover{background:var(--aqua);color:var(--ink)}
.filters button[aria-pressed=true]{background:var(--ink);color:#fff}
.small{font-size:12px}
.group{margin-bottom:64px}
.section-title{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px}
.section-title h2{font-size:clamp(26px,3vw,32px)}
.section-title p{font-size:13px;text-align:right}
.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 32px}
.card-grid:empty{display:none}
.card-grid+.card--feature,.card--feature+.card-grid{margin-top:40px}
.card{min-width:0;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line)}
.card__media{display:block;text-decoration:none;background:var(--aqua);overflow:hidden}
.card__media img{width:100%;aspect-ratio:4/3;object-fit:cover}
.card__body{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:24px;flex:1}
.card__title{font-size:24px;line-height:1.15}
.card__title a{text-decoration:none}
.card__title a:hover{text-decoration:underline}
.card__excerpt{font-size:15px}
.card__meta{font-size:12px;margin-top:auto}
.card .facts{width:100%}
.art-panel{aspect-ratio:4/3;display:flex;flex-direction:column;justify-content:space-between;padding:22px;background:var(--aqua);color:#265c5c}
.art-panel__label{font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.art-panel strong{font:italic 400 clamp(28px,3vw,38px)/1.1 var(--editorial);letter-spacing:-.04em;color:var(--teal);overflow-wrap:anywhere}
.card--feature{display:grid;grid-template-columns:1.05fr 1fr;margin-bottom:0}
.card--feature .card__body{padding:36px 40px;order:-1;gap:16px}
.card--feature .card__title{font-size:clamp(30px,3.2vw,44px);max-width:480px}
.card--feature .card__excerpt{font-size:16px;max-width:440px}
.card--feature .card__media{display:flex}
.card--feature .card__media img,.card--feature .art-panel{width:100%;height:100%;aspect-ratio:auto;min-height:320px}
.card--feature .art-panel{padding:28px}
.card--feature .art-panel strong{font-size:clamp(40px,5vw,64px)}
.card--feature .card__meta{margin-top:0}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;border-top:1px solid var(--line);padding-top:18px}
.facts div,.fact-list div{min-width:0}
.facts dt,.fact-list dt{font-size:11px;color:var(--muted);margin-bottom:2px}
.facts dd,.fact-list dd{font-size:14px;font-weight:550;overflow-wrap:anywhere}
.badge{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:650;padding:5px 9px;background:var(--aqua);color:#00585c;border-radius:2px;letter-spacing:.025em}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.badge--cancelled,.badge--postponed,.badge--expired,.badge--ended,.badge--update{background:var(--warn-bg);color:var(--warn)}
.badge--recap{background:var(--ink);color:#fff}
.more{margin-top:20px}
.empty{padding:40px 0 72px;max-width:640px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.empty h3{font-size:clamp(28px,3.4vw,38px)}
.empty .button{margin-top:10px}
.pagination{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:40px}
.pagination__status,.navigation.pagination .page-numbers{font-size:13px;color:var(--muted)}
.navigation.pagination{margin-top:40px}
.navigation.pagination .nav-links{display:flex;gap:8px;flex-wrap:wrap}
.navigation.pagination .page-numbers{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);text-decoration:none;border-radius:var(--radius)}
.navigation.pagination .current{background:var(--ink);color:#fff;border-color:var(--ink)}
.closer{background:var(--aqua);padding:40px 0;margin-top:24px}
.closer-inner{display:flex;justify-content:space-between;align-items:center;gap:32px}
.closer h2{font-size:clamp(25px,3vw,30px);margin-bottom:10px}
.closer p{font-size:14px;max-width:650px;color:#3c5560}
.closer .button{white-space:nowrap}

/* Detail */
.back{display:inline-flex;align-items:center;min-height:44px;font-size:13px;text-decoration:none;margin:24px 0}
.back:hover{text-decoration:underline}
.detail-head{max-width:970px;padding:8px 0 40px}
.detail-head h1{font-size:clamp(36px,5.3vw,72px);margin:22px 0}
.detail-head .lead{font-size:clamp(17px,1.8vw,20px);max-width:760px}
.byline{font-size:12px;margin-top:24px;display:flex;gap:6px 12px;flex-wrap:wrap}
.byline__author{color:var(--ink);font-weight:600}
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:64px;padding-bottom:80px;align-items:start}
.detail-grid--single{grid-template-columns:minmax(0,760px)}
.notice{border-left:3px solid #a18b63;background:var(--warn-bg);padding:14px 18px;margin:0 0 40px;display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--warn);max-width:760px}
.notice--cancelled{border-color:#9b2525}
.article-hero{margin-bottom:32px}
.article-hero img{width:100%;border:1px solid var(--line);background:var(--mat)}
.article-hero figcaption,.prose figcaption,.wp-element-caption{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.5}
.prose{min-width:0;font-size:17px}
.prose>*,.entry-content>*{max-width:720px}
.prose .entry-content>.alignwide,.prose .entry-content>.alignfull,.prose .entry-content>.wp-block-gallery,.prose .entry-content>.wp-block-embed,.prose .entry-content>figure,.prose .entry-content>.wp-block-video,.prose .entry-content>.wp-block-image{max-width:none}
.prose h2{font-size:28px;margin:36px 0 16px}
.prose h3{font-size:22px;margin:28px 0 12px}
.prose p,.prose ul,.prose ol,.prose figure,.prose blockquote,.prose table,.prose pre{margin:0 0 20px}
.prose p{color:#3d4f5a}
.prose ul,.prose ol{padding-left:22px;color:#3d4f5a}
.prose li{margin:8px 0}
.prose a{color:var(--teal)}
.prose blockquote{border-left:3px solid var(--teal);padding:4px 0 4px 22px;font:italic 21px/1.45 var(--editorial);color:var(--ink)}
.prose blockquote p{color:inherit}
.prose img,.prose video,.prose iframe{max-width:100%}
.prose img{height:auto}
.prose table{width:100%;border-collapse:collapse;font-size:15px;display:block;overflow-x:auto}
.prose th,.prose td{border:1px solid var(--line);padding:8px 12px;text-align:left}
.prose pre{overflow-x:auto;background:#fff;border:1px solid var(--line);padding:16px;font-size:14px}
.prose hr{border:0;border-top:1px solid var(--line);margin:36px 0}
.prose .wp-block-embed__wrapper,.prose .wp-block-embed.is-type-video .wp-block-embed__wrapper{position:relative}
.prose .wp-has-aspect-ratio .wp-block-embed__wrapper::before{content:"";display:block;padding-top:56.25%}
.prose .wp-has-aspect-ratio iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.prose iframe{border:0}
.prose video{width:100%;height:auto;background:#000}
.detail-block{margin-top:12px}
.related{margin-top:40px;padding-top:20px;border-top:1px solid var(--line)}
.related__link{display:inline-block;margin-top:6px;font-size:19px;font-weight:600;color:var(--ink)!important}

/* Galleries: 3 / 2 / 1 columns */
.prose .wp-block-gallery,.prose .gallery{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px!important;margin:0 0 28px;padding:0;list-style:none}
.prose .wp-block-gallery>.wp-block-image,.prose .wp-block-gallery>figure,.prose .gallery .gallery-item{width:auto!important;margin:0!important;max-width:none;min-width:0;display:block;position:relative;flex:none}
.prose .wp-block-gallery img,.prose .gallery img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:var(--mat);border:1px solid var(--line)}
.prose .wp-block-gallery .wp-block-image a{display:block}
.prose .gallery-caption{font-size:12px;margin-top:6px}
.prose .wp-block-gallery figcaption{position:static;background:none;color:var(--muted);padding:0;margin-top:6px;font-size:12px}

/* Sidebar */
.side{background:#fff;border:1px solid var(--line);padding:28px;min-width:0;position:sticky;top:24px}
.side h2{font-size:25px;margin-bottom:18px}
.fact-list div{padding:14px 0;border-top:1px solid var(--line)}
.fact-list dd{font-size:15px}
.side .button{width:100%;margin-top:20px}
.side p{font-size:12px;margin-top:13px}

/* 404 */
.notfound{padding:clamp(48px,8vw,104px) 0;max-width:760px}
.notfound h1{font-size:clamp(40px,6.4vw,80px);font-weight:500;margin:20px 0 24px}
.notfound .lead{font-size:18px;max-width:560px}

/* Footer */
.footer{border-top:1px solid var(--line);padding-block:48px 24px;margin-top:0}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:36px}
.footer h2{font:600 12px/1.5 var(--body);letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px;color:var(--ink)}
.footer a:not(.brand){display:flex;align-items:center;min-height:44px;font-size:13px;text-decoration:none;width:fit-content;max-width:100%;overflow-wrap:anywhere}
.footer a:not(.brand):hover{text-decoration:underline}
.footer a[aria-current]{color:var(--teal);text-decoration:underline}
.footer p{font-size:13px;margin-top:18px;max-width:270px}
.footer address{font-style:normal;font-size:13px;color:var(--muted);margin-top:8px}
.footer-bottom{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:8px 24px;flex-wrap:wrap;font-size:11px;color:var(--muted)}

@media (max-width:1000px){
.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.card--feature .card__body{padding:28px}
.detail-grid{grid-template-columns:minmax(0,1fr) 310px;gap:32px}
.footer-grid{grid-template-columns:1.4fr 1fr}
}
@media (max-width:900px){
.js .menu-toggle{display:inline-flex;align-items:center}
.js .nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0;padding:6px 0 16px}
.js .nav.is-open{display:flex}
.js .nav a{border-bottom:1px solid var(--line)}
.js .nav a[aria-current]{border-bottom:2px solid var(--teal)}
.js .nav .nav-contact{margin-top:12px;justify-content:space-between;border:1px solid var(--ink)}
.nav{flex-wrap:wrap;gap:4px 20px}
}
@media (max-width:760px){
.header-inner{min-height:80px;padding-block:12px}
.brand{font-size:15px}.brand img{width:43px;height:43px}
.intro-bottom p{font-size:16px}
.index-number{display:none}
.sectionbar{margin-bottom:30px;align-items:flex-start}
.sectionbar>p{display:none}
.filters{gap:4px}.filters button{font-size:12px;padding:10px 12px}
.section-title{align-items:flex-start;flex-direction:column;gap:6px}
.section-title p{text-align:left}
.group{margin-bottom:44px}
.card-grid{grid-template-columns:1fr;gap:28px}
.card--feature{grid-template-columns:1fr}
.card--feature .card__media{order:-1}
.card--feature .card__body{order:0;padding:24px}
.card--feature .card__media img,.card--feature .art-panel{min-height:0;aspect-ratio:16/10;height:auto}
.closer-inner{display:block}.closer .button{margin-top:24px;white-space:normal}
.detail-grid{grid-template-columns:minmax(0,1fr);gap:28px;padding-bottom:56px}
.side{position:static;order:2;padding:24px}
.detail-head{padding-bottom:24px}
.prose{font-size:16px}
.prose h2{font-size:26px}
.prose .wp-block-gallery,.prose .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
.footer-grid{grid-template-columns:1fr 1fr;gap:24px 18px}
.footer-grid>div:first-child,.footer-grid>div:last-child{grid-column:1/-1}
}
@media (max-width:520px){
.facts{grid-template-columns:1fr}
.prose .wp-block-gallery,.prose .gallery{grid-template-columns:minmax(0,1fr)}
.brand span{max-width:140px}
.footer-grid{grid-template-columns:minmax(0,1fr)}
.card__body{padding:20px}
.pagination .button{width:100%}
}
@media print{.header,.footer,.closer,.skip,.menu-toggle{display:none}}

/* Gallery captions sit below each image so legibility never depends on the photograph. */
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{position:static;background:none;color:var(--muted);padding:8px 0 0;text-align:left;font-size:13px;line-height:1.5;max-height:none;overflow:visible}
.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before{display:none}
.wp-block-gallery.has-nested-images figure.wp-block-image{align-self:start}


/* Structured announcement layout for evidence-backed training notices. */
.whh-exec-card {
  display: flex; gap: 24px; align-items: flex-start;
  max-width: 760px; margin: 0 0 28px; padding: 20px;
  border: 1px solid #e2e2e2; border-left: 4px solid #0b5d4b;
  border-radius: 8px; background: #fafafa;
}
.whh-exec-card > .wp-block-column:first-child { flex: 0 0 34%; }
.whh-exec-card > .wp-block-column:last-child { flex: 1 1 66%; }
.whh-exec-portrait { margin: 0 !important; }
.whh-exec-portrait img {
  width: min(100%, 220px); height: auto; object-fit: contain;
  border-radius: 6px; margin: 0;
}
.whh-exec-portrait figcaption { display: none; }
.whh-exec-card p { margin: 0; font-size: 1rem; line-height: 1.45; }
.whh-event-row { align-items: flex-start; }
.whh-flyer { width: min(100%, 240px); margin: 0 auto !important; }
.whh-flyer img { width: 100%; height: auto; border-radius: 8px; margin: 0; }
.whh-deadline {
  background: #fff4e5; border-left: 5px solid #c25e00;
  padding: 14px 18px; font-weight: 600; margin: 24px 0;
}
.whh-schedule table { width: 100%; }
.whh-register-button { margin-top: 24px; }
@media (max-width: 781px) {
  .whh-exec-card { flex-direction: column; align-items: flex-start; gap: 16px; }
  .whh-exec-card > .wp-block-column:first-child,
  .whh-exec-card > .wp-block-column:last-child { flex-basis: auto !important; width: 100%; }
  .whh-exec-portrait img { display: inline-block; width: auto !important; max-width: 100%; height: min(78vw, 320px) !important; aspect-ratio: auto; object-fit: contain; }
  .whh-flyer { width: min(100%, 280px); }
}


/* Upcoming feature card: keep the flyer supportive, not dominant. */
.card--feature { grid-template-columns: 1.35fr .65fr; }
.card--feature .card__media {
  align-items: center; justify-content: center; padding: 28px;
  background: var(--aqua);
}
.card--feature .card__media img {
  width: min(100%, 320px); height: auto; min-height: 0;
  aspect-ratio: auto; object-fit: contain;
}
@media (max-width: 1000px) {
  .card--feature { grid-template-columns: 1fr .8fr; }
  .card--feature .card__media img { width: min(100%, 280px); }
}
@media (max-width: 760px) {
  .card--feature { grid-template-columns: 1fr; }
  .card--feature .card__media { padding: 20px; }
  .card--feature .card__media img {
    width: min(100%, 300px); height: auto; min-height: 0;
    aspect-ratio: auto; object-fit: contain;
  }
}
