:root {
    --hst-primary: #27452f;
    --hst-accent: #f0bd4f;
    --hst-background: #fbf8ef;
    --hst-text: #19251c;
    --hst-surface: #ffffff;
    --hst-width: 1180px;
    --hst-radius: 18px;
    --hst-body-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --hst-heading-font: Georgia, "Times New Roman", serif;
    --hst-shadow: 0 14px 38px rgba(25, 37, 28, .09);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--hst-background); color: var(--hst-text); font-family: var(--hst-body-font); font-size: 16px; line-height: 1.65; margin: 0; }
img { height: auto; max-width: 100%; }
a { color: var(--hst-primary); text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
h1, h2, h3, h4, h5, h6 { color: var(--hst-primary); font-family: var(--hst-heading-font); line-height: 1.15; }
button, input, select, textarea { font: inherit; }
input, select, textarea { background: var(--hst-surface); border: 1px solid color-mix(in srgb, var(--hst-text) 30%, transparent); border-radius: 9px; color: var(--hst-text); padding: 11px 13px; }
input:focus, select:focus, textarea:focus { border-color: var(--hst-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--hst-accent) 35%, transparent); outline: none; }

.hst-shell { margin-inline: auto; max-width: var(--hst-width); padding-inline: 22px; width: 100%; }
.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.screen-reader-text:focus { background: #fff; clip: auto !important; clip-path: none; color: #111; display: block; font-size: 14px; font-weight: 700; height: auto; left: 8px; padding: 12px 16px; top: 8px; width: auto; z-index: 100000; }

.site-header { background: var(--hst-primary); border-bottom: 1px solid rgba(255,255,255,.12); color: #fff; position: relative; z-index: 100; }
.hst-sticky-header .site-header { position: sticky; top: 0; }
.admin-bar.hst-sticky-header .site-header { top: 32px; }
.header-inner { align-items: center; display: flex; gap: 28px; justify-content: space-between; min-height: 88px; }
.site-branding { align-items: center; display: flex; gap: 13px; min-width: 0; }
.custom-logo-link { display: flex; flex: 0 0 auto; }
.custom-logo { max-height: 66px; width: auto; }
.site-title { font-family: var(--hst-heading-font); font-size: clamp(1.35rem, 2.2vw, 1.85rem); font-weight: 800; line-height: 1.05; margin: 0; }
.site-title a { color: #fff; text-decoration: none; }
.site-description { color: rgba(255,255,255,.76); font-size: .76rem; margin: 5px 0 0; }
.primary-navigation ul { align-items: center; display: flex; flex-wrap: wrap; gap: 5px; list-style: none; margin: 0; padding: 0; }
.primary-navigation a { border-radius: 999px; color: #fff; display: block; font-size: .9rem; font-weight: 700; padding: 9px 13px; text-decoration: none; }
.primary-navigation a:hover, .primary-navigation .current-menu-item > a { background: rgba(255,255,255,.13); }
.menu-toggle { background: transparent; border: 0; cursor: pointer; display: none; padding: 8px; }
.menu-toggle > span:not(.screen-reader-text) { background: currentColor; display: block; height: 2px; margin: 5px 0; width: 25px; }

.hst-header-light .site-header { background: var(--hst-surface); color: var(--hst-text); }
.hst-header-light .site-title a, .hst-header-light .primary-navigation a { color: var(--hst-primary); }
.hst-header-light .site-description { color: var(--hst-text); opacity: .7; }
.hst-header-light .primary-navigation a:hover, .hst-header-light .primary-navigation .current-menu-item > a { background: color-mix(in srgb, var(--hst-primary) 9%, transparent); }
.hst-header-minimal .site-header { background: var(--hst-background); border-color: color-mix(in srgb, var(--hst-text) 15%, transparent); color: var(--hst-primary); }
.hst-header-minimal .site-title a, .hst-header-minimal .primary-navigation a { color: var(--hst-primary); }
.hst-header-minimal .site-description { color: var(--hst-text); opacity: .7; }

.theme-hero { background: var(--hst-primary); background: linear-gradient(135deg, var(--hst-primary), color-mix(in srgb, var(--hst-primary) 72%, var(--hst-accent))); color: #fff; overflow: hidden; padding: clamp(70px, 11vw, 145px) 0; position: relative; }
.theme-hero::before, .theme-hero::after { background: var(--hst-accent); border-radius: 50%; content: ""; opacity: .14; position: absolute; }
.theme-hero::before { height: 330px; right: -80px; top: -150px; width: 330px; }
.theme-hero::after { bottom: -210px; height: 390px; left: 8%; width: 390px; }
.theme-hero .hst-shell { position: relative; z-index: 1; }
.hero-kicker { color: var(--hst-accent); font-size: .78rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.theme-hero h1 { color: #fff; font-size: clamp(3rem, 8vw, 6.6rem); letter-spacing: -.035em; margin: 13px 0 22px; max-width: 900px; }
.theme-hero p { font-size: clamp(1.05rem, 2.2vw, 1.4rem); max-width: 690px; }
.hst-theme-button, button, input[type="submit"], .wp-element-button { background: var(--hst-accent); border: 0; color: var(--hst-text); cursor: pointer; display: inline-block; font-weight: 800; padding: 12px 21px; text-decoration: none; }
.hst-theme-button { margin-top: 18px; }
.hst-buttons-rounded .hst-theme-button, .hst-buttons-rounded button, .hst-buttons-rounded input[type="submit"], .hst-buttons-rounded .wp-element-button { border-radius: 10px; }
.hst-buttons-pill .hst-theme-button, .hst-buttons-pill button, .hst-buttons-pill input[type="submit"], .hst-buttons-pill .wp-element-button { border-radius: 999px; }
.hst-buttons-square .hst-theme-button, .hst-buttons-square button, .hst-buttons-square input[type="submit"], .hst-buttons-square .wp-element-button { border-radius: 0; }

.site-main { min-height: 62vh; }
.content-area, .front-content { padding-block: clamp(42px, 7vw, 88px); }
.front-content:has(.hst-public) { max-width: none; padding-inline: 0; }
.front-content .hst-public { max-width: var(--hst-width); }
.narrow { max-width: 880px; }
.entry-header { margin: 0 0 32px; }
.entry-header h1, .archive-header h1 { font-size: clamp(2.25rem, 5vw, 4.5rem); margin: 0; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content::after { clear: both; content: ""; display: table; }

.post-grid { display: grid; gap: 24px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.post-card { background: var(--hst-surface); border: 1px solid color-mix(in srgb, var(--hst-text) 13%, transparent); border-radius: var(--hst-radius); box-shadow: var(--hst-shadow); overflow: hidden; }
.post-thumbnail { display: block; }
.post-thumbnail img { aspect-ratio: 16 / 9; display: block; object-fit: cover; width: 100%; }
.post-card-body { padding: 24px; }
.entry-meta { font-size: .76rem; font-weight: 800; letter-spacing: .1em; margin-top: 0; opacity: .65; text-transform: uppercase; }
.entry-title { font-size: 1.65rem; margin: 6px 0 12px; }
.entry-title a { text-decoration: none; }
.archive-header { margin-bottom: 35px; }
.navigation.pagination { margin-top: 35px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.page-numbers { background: var(--hst-surface); border-radius: 8px; padding: 8px 13px; text-decoration: none; }
.page-numbers.current { background: var(--hst-primary); color: #fff; }

.comments-area { border-top: 1px solid color-mix(in srgb, var(--hst-text) 14%, transparent); margin-top: 45px; padding-top: 30px; }
.comment-list { padding-left: 22px; }
.comment-body { background: var(--hst-surface); border-radius: var(--hst-radius); margin-bottom: 14px; padding: 20px; }
.comment-form { display: grid; gap: 14px; }
.comment-form p { margin: 0; }
.comment-form input:not([type="submit"]), .comment-form textarea { width: 100%; }

.footer-widgets { background: color-mix(in srgb, var(--hst-primary) 92%, #000); color: #fff; padding: 44px 0; }
.footer-widgets .hst-shell { display: grid; gap: 25px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.footer-widgets h2, .footer-widgets a { color: #fff; }
.site-footer { background: var(--hst-primary); color: rgba(255,255,255,.82); padding: 24px 0; }
.footer-inner { align-items: center; display: flex; gap: 25px; justify-content: space-between; }
.footer-inner p { margin: 0; }
.footer-inner ul { display: flex; gap: 16px; list-style: none; margin: 0; padding: 0; }
.footer-inner a { color: #fff; }
.error-page, .no-results { padding-block: clamp(70px, 12vw, 160px); text-align: center; }
.error-page > span { color: var(--hst-accent); font-family: var(--hst-heading-font); font-size: clamp(5rem, 18vw, 13rem); font-weight: 800; line-height: .8; }
.error-page h1 { font-size: clamp(2rem, 5vw, 4rem); }

/* HomeSchool Toolkit plugin integration. */
.hst-public { --hst-forest: var(--hst-primary) !important; --hst-leaf: var(--hst-primary) !important; --hst-gold: var(--hst-accent) !important; --hst-cream: var(--hst-background) !important; --hst-ink: var(--hst-text) !important; --hst-line: color-mix(in srgb, var(--hst-text) 18%, transparent) !important; font-family: var(--hst-body-font) !important; }
.hst-public h1, .hst-public h2, .hst-public h3 { font-family: var(--hst-heading-font) !important; }
.oliveukidz-portal, .ok-portal { color: var(--hst-text); font-family: var(--hst-body-font); }
.oliveukidz-portal button, .oliveukidz-portal .button, .ok-portal button, .ok-portal .button { border-radius: 10px; }
body:has(.oliveukidz-portal) .content-area, body:has(.ok-portal) .content-area { max-width: 1380px; }

.alignwide { margin-left: calc(50% - min(50vw, calc(var(--hst-width) / 2))); margin-right: calc(50% - min(50vw, calc(var(--hst-width) / 2))); max-width: var(--hst-width); width: auto; }
.alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: 100vw; width: auto; }

@media (max-width: 900px) {
    .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .menu-toggle { color: #fff; display: block; }
    .hst-header-light .menu-toggle, .hst-header-minimal .menu-toggle { color: var(--hst-primary); }
    .primary-navigation { background: var(--hst-primary); box-shadow: var(--hst-shadow); display: none; left: 0; padding: 12px 22px 22px; position: absolute; right: 0; top: 100%; }
    .primary-navigation.is-open { display: block; }
    .primary-navigation ul { align-items: stretch; flex-direction: column; }
    .primary-navigation a, .hst-header-light .primary-navigation a, .hst-header-minimal .primary-navigation a { color: #fff; }
    .footer-widgets .hst-shell { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
    .admin-bar.hst-sticky-header .site-header { top: 0; }
    .hst-shell { padding-inline: 16px; }
    .header-inner { min-height: 74px; }
    .site-description { display: none; }
    .post-grid, .footer-widgets .hst-shell { grid-template-columns: 1fr; }
    .footer-inner { align-items: flex-start; flex-direction: column; }
    .theme-hero { padding-block: 68px; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
