.site-header{background:var(--solstice-header-bg,#fff);border-bottom:1px solid #e0e8df}.site-header-inner{display:flex;flex-direction:column;gap:1rem;padding-block:1.5rem}.site-branding{display:flex;align-items:center;gap:1rem}.custom-logo{max-height:78px;width:auto}.site-title{font-size:clamp(1.35rem,2.5vw,2rem);font-weight:750;line-height:1.2}.site-title a{text-decoration:none;color:var(--solstice-text,#26352b)}.site-description{font-size:.88rem;color:#607064;margin-top:.2rem}.primary-navigation .menu,.site-footer .menu{display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;list-style:none;padding:0;margin:0}.primary-navigation a{text-decoration:none;font-weight:600}.menu-toggle{display:none;background:var(--solstice-accent,#286b43);color:#fff;padding:.6rem .9rem;align-self:flex-start}.solstice-header-inline .site-header-inner{flex-direction:row;align-items:center;justify-content:space-between}.post-card{min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--solstice-card,#fff);border:1px solid #e2e9e0;border-radius:12px}.post-card-image{display:block;aspect-ratio:16/9;overflow:hidden;background:#e7f2e5}.post-card-image img{width:100%;height:100%;object-fit:cover}.image-placeholder{display:grid;place-items:center;width:100%;height:100%;font-size:3rem;color:#8aaf91}.post-card-content{display:flex;flex-direction:column;gap:.8rem;flex:1;padding:1.25rem}.post-meta{font-size:.8rem;color:#617063}.post-meta a{color:inherit}.post-card-title{font-size:1.3rem}.post-card-title a{text-decoration:none}.post-card-excerpt{font-size:.95rem;color:#4d5b51}.post-card-excerpt p{margin:0}.read-more{margin-top:auto;font-size:.9rem;font-weight:700;text-decoration:none}.site-footer{background:var(--solstice-footer-bg,#e7f2e5);padding-block:2.5rem}.footer-inner{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem}.footer-inner p{font-size:.85rem;margin-top:.35rem}.search-form{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}.search-form input{padding:.65rem .8rem;border:1px solid #a7b8a9}.search-form button{background:var(--solstice-accent,#286b43);color:white;padding:.65rem 1.1rem}.wp-block-query .wp-block-post-template.is-layout-grid{align-items:start}.wp-block-query .wp-block-post-template.is-layout-grid>li{margin-block-start:0}.wp-block-query .wp-block-post-template .wp-block-post-featured-image{margin-block-start:0}.wp-block-query .wp-block-post-template .wp-block-post-featured-image img{width:100%;aspect-ratio:16/9;object-fit:cover}

/* Solstice 0.2: editorial refinements */
.site-header-inner{gap:1.1rem}.site-header{box-shadow:0 2px 12px rgba(15,45,27,.025)}
.site-branding{min-width:0}.site-title{font-weight:750}.site-title a:hover{color:var(--solstice-accent)}
.header-search{max-width:270px}.header-search .search-form{margin:0;flex-wrap:nowrap;gap:0}
.header-search input[type=search]{min-width:0;width:100%;padding:.5rem .7rem;border-radius:7px 0 0 7px;border:1px solid #ccd8cc;background:var(--solstice-card,#fff);font-size:.84rem}
.header-search button{padding:.5rem .75rem;border-radius:0 7px 7px 0;font-size:.84rem;white-space:nowrap}
.hero{background:var(--solstice-hero-bg,#e7f2e5);padding:clamp(2.25rem,6vw,5.5rem);position:relative;overflow:hidden;margin-bottom:4rem}
.hero:after{content:"";position:absolute;right:-4rem;bottom:-9rem;width:20rem;height:20rem;border:1px solid rgba(40,107,67,.14);border-radius:50%;pointer-events:none}
.hero .eyebrow,.section-kicker{color:var(--solstice-accent,#286b43);font-size:.75rem;font-weight:750;text-transform:uppercase;letter-spacing:.14em}
.hero h1{max-width:900px;color:var(--solstice-heading,#26352b);font-size:clamp(2.4rem,5vw,4.5rem);line-height:1.1;letter-spacing:-.045em}
.hero-description{max-width:720px;font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.65;color:var(--solstice-text,#26352b)}
.home-section+.home-section{margin-top:4.5rem}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}
.section-heading h2{color:var(--solstice-heading,#26352b);margin-top:.3rem}.section-more{font-size:.9rem;font-weight:700;text-decoration:none;white-space:nowrap}
.post-grid{gap:1.6rem}.post-card{transition:box-shadow .2s ease,transform .2s ease;border-color:#dce6db;box-shadow:0 5px 24px rgba(27,58,35,.035)}
.post-card:hover{box-shadow:0 14px 34px rgba(27,58,35,.09);transform:translateY(-2px)}
.post-card-image{flex-shrink:0}.post-card-content{gap:.7rem;padding:1.4rem}.post-card-title{line-height:1.35}
.post-card-title a{color:var(--solstice-heading,#26352b)}.post-card-title a:hover{color:var(--solstice-accent)}
.post-meta{line-height:1.5}.post-card-excerpt{line-height:1.6}.read-more{padding-top:.5rem}
@media(prefers-reduced-motion:reduce){.post-card{transition:none}.post-card:hover{transform:none}}
@media(max-width:900px){.header-search{max-width:none;width:100%}.site-header-inner{flex-wrap:wrap}}
@media(max-width:640px){.section-heading{align-items:start;flex-direction:column}.home-section+.home-section{margin-top:3rem}.hero{margin-bottom:3rem}.hero:after{display:none}}

/* 0.3: Header stays in a single row on wide screens when Inline is selected. */
@media(min-width:901px){
.solstice-header-inline .site-header-inner{display:flex;flex-direction:row;align-items:center;gap:1.5rem}
.solstice-header-inline .site-branding{flex:0 1 auto}
.solstice-header-inline .primary-navigation{margin-left:auto}
.solstice-header-inline .header-search{flex:0 1 250px}
}

/* 0.5: optional Customizer header and footer adjustments. */
.solstice-header-compact .site-header-inner{padding-block:.65rem}
.solstice-header-compact .custom-logo{max-height:55px}
.footer-tagline{font-size:.95rem;line-height:1.5;max-width:55ch}
.solstice-footer-centered .footer-inner{flex-direction:column;align-items:center;text-align:center}
.solstice-footer-centered .footer-inner .menu{justify-content:center}

/* 0.7.3 — restrained visual polish, with keyboard and motion support. */
.post-card:focus-within{box-shadow:0 10px 30px rgba(27,58,35,.09)}
.post-card-title a:focus-visible,.read-more:focus-visible,
.primary-navigation a:focus-visible,.site-title a:focus-visible,
.section-more:focus-visible,.search-form button:focus-visible,
.menu-toggle:focus-visible{outline:3px solid var(--solstice-accent,#286b43);outline-offset:4px;border-radius:3px}
.post-card-image img{transition:transform .25s ease}
.post-card:hover .post-card-image img{transform:scale(1.025)}
.single-featured img{display:block;height:auto;max-width:100%}
@media(prefers-reduced-motion:reduce){.post-card-image img{transition:none}.post-card:hover .post-card-image img{transform:none}}

/* 0.7.4 — support both classic cards and Gutenberg Query Loop cards. */
.post-card-image img,.solstice-query-cards .wp-block-post-featured-image img{transition:transform .28s ease;transform-origin:center}
.post-card:hover .post-card-image img,.post-card:focus-within .post-card-image img,
.solstice-query-cards .wp-block-post:hover .wp-block-post-featured-image img,
.solstice-query-cards .wp-block-post:focus-within .wp-block-post-featured-image img{transform:scale(1.045)}
.solstice-query-cards .wp-block-post-featured-image{overflow:hidden}
.solstice-query-cards .wp-block-post-featured-image img{display:block}
/* Pagination: compact, centered, keyboard friendly. */
.pagination .nav-links,.wp-block-query-pagination{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:.45rem 1rem}
.pagination .page-numbers,.wp-block-query-pagination-numbers .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;min-height:2.25rem;padding:.3rem .55rem;border-radius:7px;text-decoration:none}
.pagination .page-numbers.current,.wp-block-query-pagination-numbers .page-numbers.current{background:var(--solstice-accent,#286b43);color:#fff;font-weight:700}
.pagination .page-numbers:hover:not(.current),.wp-block-query-pagination a:hover{background:rgba(127,169,134,.14)}
.wp-block-query-pagination{margin-top:2rem;justify-content:center!important}
.wp-block-query-pagination-numbers{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem}
@media(prefers-reduced-motion:reduce){.solstice-query-cards .wp-block-post-featured-image img{transition:none}.solstice-query-cards .wp-block-post:hover .wp-block-post-featured-image img,.solstice-query-cards .wp-block-post:focus-within .wp-block-post-featured-image img{transform:none}}

/* Query Loop pagination: group previous, numbers, and next in one centered row. */
.wp-block-query-pagination.is-layout-flex,
.wp-block-query-pagination.wp-block-query-pagination {display:flex!important;justify-content:center!important;align-items:center;gap:.75rem!important;flex-wrap:wrap;}
.wp-block-query-pagination .wp-block-query-pagination-previous,
.wp-block-query-pagination .wp-block-query-pagination-next {margin:0!important;flex:0 0 auto;}
.wp-block-query-pagination .wp-block-query-pagination-numbers {margin:0!important;display:inline-flex;gap:.35rem;align-items:center;}

/* 0.8.2: Keep stacked desktop branding on its own row, with navigation
   and optional search sharing the second row. Mobile stays unchanged. */
@media (min-width:901px) {
  .solstice-header-stacked .site-header-inner {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    column-gap:1.5rem;
    row-gap:.75rem;
  }
  .solstice-header-stacked .site-branding {grid-column:1 / -1;min-width:0}
  .solstice-header-stacked .primary-navigation {grid-column:1;grid-row:2;min-width:0}
  .solstice-header-stacked .header-search {grid-column:2;grid-row:2;min-width:0}
  .solstice-header-stacked .header-search .search-form {margin-top:0}
}


/* 0.8.3 — hierarchical primary navigation; scoped to the header menu. */
.site-branding{min-width:0;flex-shrink:0}
.site-title{overflow-wrap:normal;word-break:normal}
.primary-navigation{min-width:0;max-width:100%}
.primary-navigation .menu{align-items:center}
.primary-navigation .menu li{position:relative;list-style:none;min-width:0}
.primary-navigation .menu > li{display:flex;align-items:center;flex-wrap:wrap;gap:.15rem}
.primary-navigation .menu .sub-menu{display:none;position:absolute;z-index:100;top:100%;left:0;width:max-content;min-width:13rem;max-width:min(23rem,calc(100vw - 2rem));max-height:min(70vh,34rem);overflow-y:auto;overscroll-behavior:contain;background:var(--solstice-header-bg,#fff);border:1px solid #dce5dc;border-radius:8px;box-shadow:0 12px 28px rgba(0,0,0,.12);padding:.4rem;margin:0;list-style:none}
.primary-navigation .menu .sub-menu li{display:flex;flex-wrap:wrap;align-items:center;gap:.15rem}
.primary-navigation .menu .sub-menu a{display:block;flex:1 1 auto;min-width:0;padding:.5rem .65rem;overflow-wrap:anywhere}
.primary-navigation .menu .sub-menu .sub-menu{position:static;width:100%;min-width:0;max-width:none;max-height:none;overflow:visible;box-shadow:none;border:0;border-left:2px solid #dce5dc;border-radius:0;margin:.1rem 0 .35rem .7rem;padding:.1rem 0 .1rem .4rem;background:transparent}
.primary-navigation .menu li.submenu-open > .sub-menu{display:block}
@media(hover:hover) and (min-width:641px){.primary-navigation .menu > li:hover > .sub-menu{display:block}}
.primary-navigation .submenu-toggle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:2rem;min-height:2rem;border:0;border-radius:5px;padding:.25rem;background:transparent;color:var(--solstice-text,#26352b);cursor:pointer}
.primary-navigation .submenu-toggle::after{content:'⌄';font-size:1.1rem;line-height:1;transition:transform .15s ease}
.primary-navigation .submenu-toggle[aria-expanded=true]::after{transform:rotate(180deg)}
.primary-navigation .submenu-toggle:hover,.primary-navigation .submenu-toggle:focus-visible{background:rgba(127,169,134,.17)}
.primary-navigation .submenu-toggle:focus-visible{outline:2px solid var(--solstice-accent,#286b43);outline-offset:2px}
@media(min-width:641px){
 .solstice-header-inline .site-header-inner{flex-wrap:wrap}
 .solstice-header-inline .site-branding{flex:0 0 auto;max-width:100%}
 .solstice-header-inline .primary-navigation{flex:1 1 18rem}
 .primary-navigation .menu > li > a{white-space:normal}
}
@media(max-width:640px){
 .primary-navigation{width:100%}
 .primary-navigation .menu{align-items:stretch}
 .primary-navigation .menu > li,.primary-navigation .menu .sub-menu li{display:flex;flex-wrap:wrap;align-items:center}
 .primary-navigation .menu .sub-menu{position:static;width:100%;min-width:0;max-width:none;max-height:none;overflow:visible;box-shadow:none;border:0;border-left:2px solid #dce5dc;border-radius:0;margin:.2rem 0 .4rem .6rem;padding:.1rem 0 .1rem .5rem}
 .primary-navigation .menu > li > a{flex:1 1 auto;min-width:0;padding:.35rem 0;overflow-wrap:anywhere}
 .primary-navigation .submenu-toggle{min-width:2.75rem;min-height:2.75rem}
}
@media(prefers-reduced-motion:reduce){.primary-navigation .submenu-toggle::after{transition:none}}

/* 0.8.4: nested branches must occupy a full row inside their parent dropdown. */
.primary-navigation .menu .sub-menu li > .sub-menu { flex: 0 0 100%; width: 100%; box-sizing: border-box; }
.primary-navigation .menu .sub-menu li.submenu-open > .sub-menu { display: block; }
.primary-navigation .menu .sub-menu li:not(.submenu-open) > .sub-menu { display: none; }
.primary-navigation .menu .sub-menu li > .submenu-toggle { margin-left: auto; }

/* 0.8.5: desktop nested hover/focus works at every depth.
   The earlier :not(.submenu-open) selector prevented deeper hover branches. */
@media (hover:hover) and (min-width:641px) {
 .primary-navigation .menu .sub-menu li:hover > .sub-menu,
 .primary-navigation .menu .sub-menu li:focus-within > .sub-menu { display:block; }
 .primary-navigation .menu .sub-menu li:not(.submenu-open):hover > .sub-menu,
 .primary-navigation .menu .sub-menu li:not(.submenu-open):focus-within > .sub-menu { display:block; }
}

/* 0.8.6 — keep deep navigation within its panel and viewport. */
.primary-navigation .menu .sub-menu,
.primary-navigation .menu .sub-menu *{box-sizing:border-box}
.primary-navigation .menu .sub-menu{overflow-x:hidden}
.primary-navigation .menu .sub-menu li{width:100%;min-width:0;max-width:100%}
.primary-navigation .menu .sub-menu .sub-menu{
 width:100%;max-width:100%;min-width:0;margin-left:0;padding-left:.45rem;
}
.primary-navigation .menu .sub-menu li > a{flex:1 1 0%;min-width:0}
.primary-navigation .menu .sub-menu li > .submenu-toggle{flex:0 0 2rem;margin-left:auto}
@media(max-width:640px){
 .primary-navigation,.primary-navigation .menu,.primary-navigation .menu li{min-width:0;max-width:100%}
 .primary-navigation .menu > li{width:100%}
 .primary-navigation .menu .sub-menu{overflow-x:hidden;margin-left:0;padding-left:.45rem}
 .primary-navigation .menu .sub-menu .sub-menu{margin-left:0;padding-left:.45rem;border-left:0}
 .primary-navigation .menu .sub-menu li > .submenu-toggle{flex-basis:2.75rem}
}
/* Explicitly closed branches must stay closed while the pointer/focus remains on them. */
@media(hover:hover) and (min-width:641px){
 .primary-navigation .menu li.submenu-closed > .sub-menu,
 .primary-navigation .menu .sub-menu li.submenu-closed:hover > .sub-menu,
 .primary-navigation .menu .sub-menu li.submenu-closed:focus-within > .sub-menu{display:none}
}

/* 0.8.8: an explicit toggle close wins over hover and focus at every depth.
   Keep hover/focus discovery intact when the branch is not explicitly closed. */
@media (hover:hover) and (min-width:641px) {
 .primary-navigation .menu li.submenu-closed > ul.sub-menu,
 .primary-navigation .menu li.submenu-closed:hover > ul.sub-menu,
 .primary-navigation .menu li.submenu-closed:focus-within > ul.sub-menu,
 .primary-navigation .menu .sub-menu li.submenu-closed:hover > ul.sub-menu,
 .primary-navigation .menu .sub-menu li.submenu-closed:focus-within > ul.sub-menu { display: none !important; }
}

/* 0.8.8: optically centered chevron, independent of font glyph metrics. */
.primary-navigation .submenu-toggle::after{
  content:"";
  display:block;
  width:.45rem;
  height:.45rem;
  box-sizing:border-box;
  border-right:1.75px solid currentColor;
  border-bottom:1.75px solid currentColor;
  transform:translateY(-.13rem) rotate(45deg);
  transform-origin:center;
}
.primary-navigation .submenu-toggle[aria-expanded=true]::after{
  transform:translateY(.13rem) rotate(225deg);
}

/* 0.8.19: clear brand row, dedicated navigation/search row, optional top menu. */
.solstice-topbar{background:var(--solstice-footer-bg,#e7f2e5);border-bottom:1px solid #dce5dc}
.solstice-topbar .menu{display:flex;flex-wrap:wrap;gap:.4rem 1.3rem;list-style:none;padding:.5rem 0;margin:0}
.solstice-topbar .menu a{font-size:.88rem;text-decoration:none}
.solstice-topbar .menu .sub-menu{list-style:none;padding-left:.75rem}
.site-header .site-header-inner,.solstice-header-inline .site-header-inner,.solstice-header-stacked .site-header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem 1.5rem;align-items:center;padding-block:1rem}
.site-header .site-branding,.solstice-header-inline .site-branding{grid-column:1 / -1;min-width:0;max-width:100%;flex:initial}
.site-header .site-branding > div{min-width:0}
.site-header .site-title{overflow-wrap:anywhere}
.site-header .primary-navigation,.solstice-header-inline .primary-navigation,.solstice-header-stacked .primary-navigation{grid-column:1;grid-row:2;width:auto;margin:0;min-width:0}
.site-header .header-search,.solstice-header-inline .header-search,.solstice-header-stacked .header-search{grid-column:2;grid-row:2;max-width:270px;width:100%;min-width:200px;margin:0}
.site-header .menu-toggle{grid-column:1;grid-row:2}
@media(max-width:900px){
 .site-header .site-header-inner,.solstice-header-inline .site-header-inner,.solstice-header-stacked .site-header-inner{grid-template-columns:minmax(0,1fr);display:grid}
 .site-header .primary-navigation,.solstice-header-inline .primary-navigation,.solstice-header-stacked .primary-navigation{grid-column:1;grid-row:auto}
 .site-header .header-search,.solstice-header-inline .header-search,.solstice-header-stacked .header-search{grid-column:1;grid-row:auto;max-width:100%;min-width:0}
}
@media(max-width:640px){.site-header .menu-toggle{grid-row:auto}.site-header .primary-navigation{grid-row:auto}}

/* 0.8.20: social links left, secondary links right; readable on mobile. */
.solstice-topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:.5rem 2rem;flex-wrap:wrap}
.solstice-topbar .solstice-top-nav{margin-left:auto}
.solstice-topbar nav .menu{display:flex;align-items:center;gap:.5rem 1rem;flex-wrap:wrap;margin:0;padding:.55rem 0;list-style:none}
.solstice-topbar nav .menu li{margin:0}
.solstice-topbar nav .menu a{display:inline-block;text-decoration:none;font-size:.9rem}
@media(max-width:700px){.solstice-topbar-inner{justify-content:flex-start}.solstice-topbar .solstice-top-nav{margin-left:0}}

/* 0.8.21: social menu vector icons; names remain accessible to assistive tech. */
.solstice-social-nav .menu{display:flex;align-items:center;gap:.7rem}
.solstice-social-nav .menu a{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;line-height:1}
.solstice-social-nav .menu a:hover,.solstice-social-nav .menu a:focus-visible{opacity:.7}
.solstice-social-icon{display:block;flex:none}

/* 0.8.23: vertically center social icons and secondary links in the top strip. */
.solstice-topbar-inner{align-items:center}
.solstice-topbar .solstice-social-nav,.solstice-topbar .solstice-top-nav{display:flex;align-items:center;align-self:stretch}
.solstice-topbar .solstice-social-nav .menu,.solstice-topbar .solstice-top-nav .menu{align-items:center;padding:0;min-height:44px}
.solstice-topbar .solstice-social-nav .menu>li,.solstice-topbar .solstice-top-nav .menu>li{display:flex;align-items:center}
.solstice-topbar .solstice-social-nav .menu a{display:inline-flex;align-items:center;justify-content:center;min-height:36px}
