*{box-sizing:border-box} :root{--oak-header:#15191b;--oak-background:#fffdf7;--oak-text:#3f4547;--oak-teal:#42b7a8;--oak-orange:#e88935;--oak-width:1120px}
html{scroll-behavior:smooth}body{margin:0;background:var(--oak-background);color:var(--oak-text);font:17px/1.7 "Open Sans",Arial,sans-serif}img{max-width:100%;height:auto}a{color:#2d8f86;text-decoration:none}a:hover{color:var(--oak-orange)}button{font:inherit}.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:absolute;top:-100px;left:12px;background:white;padding:10px;z-index:9999}.skip-link:focus{top:10px}
.site-header{background:var(--oak-header);color:#fff;border-bottom:4px solid var(--oak-teal)}.header-inner{max-width:1280px;width:calc(100% - 40px);min-height:112px;margin:auto;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:14px;min-width:0}.brand-logo img{max-width:72px;max-height:72px;width:auto}.brand-mark{width:66px;height:66px;flex:0 0 66px;border-radius:50%;display:grid;place-items:center;background:var(--oak-teal);color:white;font-weight:900;font-size:16px}.brand-mark span{font-size:10px}.brand-copy{min-width:0}.brand-title{display:block;color:white;font-size:clamp(19px,2.4vw,28px);font-weight:800;line-height:1.2}.brand-tagline,.header-page-title{margin:4px 0 0;color:#e8ecea;font-size:13px}.header-page-title{color:var(--oak-orange);font-weight:700}.primary-navigation{margin-left:auto}.menu-list,.menu-list ul{list-style:none;margin:0;padding:0}.primary-navigation>.menu-list{display:flex;gap:20px;align-items:center}.primary-navigation a{display:block;color:white;font-size:14px;font-weight:700;padding:12px 0}.primary-navigation a:hover,.primary-navigation .current-menu-item>a,.primary-navigation .current_page_item>a{color:var(--oak-orange)}.menu-toggle{display:none;background:transparent;color:var(--oak-orange);border:1px solid #687174;border-radius:8px;width:46px;height:44px;margin-left:auto}.menu-toggle-lines,.menu-toggle-lines:before,.menu-toggle-lines:after{display:block;width:22px;height:2px;background:var(--oak-orange);position:relative;margin:auto}.menu-toggle-lines:before,.menu-toggle-lines:after{content:"";position:absolute;left:0}.menu-toggle-lines:before{top:-7px}.menu-toggle-lines:after{top:7px}
.hero-banner{min-height:clamp(260px,38vw,500px);display:flex;align-items:center;background-color:#252c2f;background-size:cover;background-position:center;color:white}.hero-inner{width:min(var(--oak-width),calc(100% - 40px));margin:auto;padding:55px 0}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--oak-orange)}.hero-inner .eyebrow{color:#b8f0e7}.hero-inner h1{font-family:var(--oak-hero-font,var(--oak-heading-font,"Nunito Sans")),Arial,sans-serif;font-size:var(--oak-hero-title-size,48px);line-height:1.1;margin:12px 0;color:white}.hero-inner p{font-size:clamp(18px,2vw,22px);margin:0}.site-main{min-height:45vh}.content-shell{width:min(var(--oak-width),calc(100% - 40px));margin:0 auto}.site-main .content-shell{padding-top:var(--oak-content-top-space,28px);padding-bottom:70px}.entry-content{max-width:100%;margin:0 auto}.entry-content h1,.entry-content h2,.entry-content h3,.entry-content h4,.entry-content h5,.entry-content h6{color:var(--oak-heading-color,var(--oak-header));line-height:1.25}.entry-content h1,.entry-content h2{display:table;max-width:100%;padding-bottom:7px}.entry-content h1:after,.entry-content h2:after{content:"";display:block;height:5px;border-bottom:3px solid var(--oak-orange);border-radius:0 0 50% 50%;transform:rotate(-.4deg)}.entry-content p{margin:0 0 18px}.entry-content figure{margin:1.5em 0}.entry-content img{border-radius:10px}.entry-content .wp-block-columns{gap:28px}.entry-content .wp-block-separator{width:54px;border:0;border-top:3px solid var(--oak-orange);margin:32px auto}.wp-block-button__link,.entry-content input[type=submit],.button{display:inline-block;padding:12px 22px;border:0;border-radius:9px;background:var(--oak-teal);color:white;font-weight:800}.wp-block-button__link:hover,.entry-content input[type=submit]:hover,.button:hover{background:#2d8f86;color:white}.entry-content .wp-block-buttons{gap:14px}.entry-content .wp-block-gallery{gap:16px}.entry-content input:not([type=submit]),.entry-content textarea,.entry-content select{max-width:100%;padding:11px;border:1px solid #ccc;border-radius:7px}.site-footer{background:var(--oak-header);color:#e8ecea;border-top:4px solid var(--oak-teal)}.footer-inner{max-width:var(--oak-width);width:calc(100% - 40px);margin:auto;padding:28px 0;display:flex;flex-wrap:wrap;gap:20px;align-items:center}.footer-brand{display:flex;flex-direction:column}.footer-brand strong{color:white}.footer-brand span,.copyright{font-size:12px;color:#bdc6c3}.footer-navigation{margin-left:auto}.footer-menu{display:flex;gap:16px;list-style:none;padding:0;margin:0}.footer-menu a,.social-link{color:white;font-size:13px}.copyright{width:100%;margin:0;border-top:1px solid #42494b;padding-top:14px}
@media(max-width:900px){.header-inner{min-height:86px;width:calc(100% - 28px);gap:10px}.brand-logo img{max-width:55px;max-height:55px}.brand-mark{width:52px;height:52px;flex-basis:52px;font-size:13px}.menu-toggle{display:block}.primary-navigation{display:none;position:absolute;top:100%;left:0;right:0;background:var(--oak-header);padding:12px 22px 18px;border-top:2px solid var(--oak-orange)}.primary-navigation.is-open{display:block}.primary-navigation>.menu-list{display:block}.primary-navigation a{padding:10px 0;border-bottom:1px solid #343a3c}.header-inner{position:relative}.footer-navigation{margin-left:0}.footer-inner{display:block}.footer-navigation{margin-top:15px}.footer-menu{flex-wrap:wrap}.social-link{display:inline-block;margin-top:12px}.copyright{margin-top:15px}}
@media(max-width:520px){body{font-size:16px}.content-shell,.hero-inner{width:calc(100% - 28px)}.site-main .content-shell{padding-top:var(--oak-content-top-space,28px);padding-bottom:46px}.brand-title{font-size:17px}.brand-tagline{font-size:11px}.brand-logo img{max-width:45px;max-height:45px}.brand-mark{width:45px;height:45px;flex-basis:45px}.hero-inner h1{font-family:var(--oak-hero-font,var(--oak-heading-font,"Nunito Sans")),Arial,sans-serif;font-size:36px}.entry-content .wp-block-columns{display:block}.entry-content .wp-block-column{margin-bottom:24px}}

/* Canonical layout overrides: right sidebar only on wide desktop; no sidebar on tablet/mobile. */
body{font-family:var(--oak-body-font,"Open Sans"),Arial,sans-serif;font-size:var(--oak-body-size,17px);background:var(--oak-background);color:var(--oak-text)}
h1,h2,h3,h4,h5,h6,.brand-title,.primary-navigation,.sidebar-heading{font-family:var(--oak-heading-font,"Nunito Sans"),Arial,sans-serif}
.content-layout{display:grid;grid-template-columns:minmax(0,1fr) var(--oak-sidebar-width,270px);gap:42px;align-items:start}
.main-column{min-width:0}
.desktop-sidebar{display:block;border-left:1px solid #e6e0d5;padding-left:24px;min-width:0}
.sidebar-inner{position:sticky;top:22px;padding:18px 0}
.sidebar-heading{font-size:20px;margin:0 0 15px;color:var(--oak-header)}
.sidebar-menu{list-style:none;margin:0;padding:0}
.sidebar-menu li{border-bottom:1px solid #e7e0d6;position:relative}
.sidebar-menu a{display:block;padding:11px 8px;color:var(--oak-text);font-weight:700}
.sidebar-menu .current-menu-item>a,.sidebar-menu .current_page_item>a{color:var(--oak-dark-teal);padding-left:29px}
.sidebar-menu .current-menu-item>a:before,.sidebar-menu .current_page_item>a:before{content:"";position:absolute;left:6px;top:50%;transform:translateY(-50%);width:16px;height:16px;background:var(--oak-orange);border-radius:50%;box-shadow:inset 0 0 0 4px var(--oak-background)}
.sidebar-social{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px}
.sidebar-social a{font-size:14px;font-weight:700;color:var(--oak-dark-teal)}
.entry-content h1,.entry-content h2{margin-top:var(--oak-section-space,34px);margin-bottom:var(--oak-section-space,34px)}
.entry-content .wp-block-buttons{margin-top:var(--oak-button-space,14px);margin-bottom:var(--oak-button-space,14px)}
.wp-block-button__link,.entry-content input[type=submit],.button{border-radius:var(--oak-button-radius,9px)}
.wp-block-button__link:hover,.entry-content input[type=submit]:hover,.button:hover{background:var(--oak-dark-teal)}
.entry-content .wp-block-separator{display:block;width:108px;max-width:108px;min-width:108px;box-sizing:border-box;border:0;height:10px;background:radial-gradient(circle,var(--oak-orange) 2px,transparent 3px) center 50%/18px 8px repeat-x;margin:32px auto;overflow:visible}
.primary-navigation .current-menu-item>a:before,.primary-navigation .current_page_item>a:before,.primary-navigation .current-menu-ancestor>a:before{content:"";display:inline-block;width:21px;height:21px;flex:0 0 21px;border-radius:50%;background-color:#fff;background-image:var(--oak-band-logo);background-position:center;background-repeat:no-repeat;background-size:contain;border:1px solid var(--oak-orange);margin-right:8px;vertical-align:middle;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.entry-content .wp-block-gallery.has-nested-images{gap:16px}
.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image{margin:0}
.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image img{width:100%;height:100%;object-fit:cover}
.entry-content .wp-block-columns.are-vertically-aligned-center{align-items:center}
@media(max-width:1100px){.content-layout{display:block}.desktop-sidebar{display:none}.main-column{width:100%}}
@media(min-width:901px){.primary-navigation{display:none}}
@media(max-width:900px){.content-layout{display:block}.desktop-sidebar{display:none}.primary-navigation{z-index:50}}

/* Portrait columns and contact forms */
.entry-content .wp-block-columns:has(figure.wp-block-image){align-items:flex-start}
.entry-content .wp-block-columns figure.wp-block-image img{aspect-ratio:4/5;object-fit:cover;width:100%}
.entry-content form.wpcf7-form label{display:block;font-weight:700;margin:0 0 6px}
.entry-content form.wpcf7-form input:not([type=submit]),.entry-content form.wpcf7-form textarea,.entry-content form.wpcf7-form select{display:block;width:100%;max-width:100%;padding:12px;border:1px solid #c9c5bd;border-radius:7px;background:white}
.entry-content form.wpcf7-form input[type=submit]{cursor:pointer}

/* v2.2: stable desktop sidebar, explicit typography and spacing controls */
@media(min-width:1101px){
  .content-layout{display:grid!important;grid-template-columns:minmax(0,1fr) var(--oak-sidebar-width,270px)!important;gap:38px!important}
  .desktop-sidebar{display:block!important}
}
@media(max-width:1100px){
  .content-layout{display:block!important}
  .desktop-sidebar{display:none!important}
}
.site-header .header-inner{max-width:1280px}
.site-header .brand{flex:0 1 auto}
.site-header .primary-navigation{flex:0 0 auto}
.entry-content{overflow-wrap:anywhere}
.entry-content .wp-block-image img{height:auto}
.entry-content .wp-block-gallery{margin-block:var(--oak-section-space,34px)}
.entry-content .wp-block-buttons{display:flex;flex-wrap:wrap;gap:var(--oak-button-space,14px)}

/* v2.3 fixes from actual preview screenshots: never leave navigation hidden at tablet/preview widths. */
@media (min-width:1200px) {
  .site-header .primary-navigation { display:none !important; }
  .content-layout { display:grid !important; grid-template-columns:minmax(0,1fr) var(--oak-sidebar-width,270px) !important; gap:34px !important; }
  .desktop-sidebar { display:block !important; }
}
@media (min-width:901px) and (max-width:1199px) {
  .site-header .primary-navigation { display:block !important; position:static !important; margin-left:auto; padding:0 !important; background:transparent !important; border:0 !important; }
  .site-header .primary-navigation .menu-list { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:4px 12px; }
  .site-header .primary-navigation .menu-list a { padding:8px 2px; font-size:13px; }
  .desktop-sidebar { display:none !important; }
  .content-layout { display:block !important; }
  .main-column { width:100%; }
}
@media (max-width:900px) {
  .site-header .primary-navigation { display:none; }
  .site-header .primary-navigation.is-open { display:block; }
  .desktop-sidebar { display:none !important; }
  .content-layout { display:block !important; }
}
/* Tighten heading spacing: the previous global 34px margins were too large. */
.entry-content h1 { margin:24px 0 12px !important; line-height:1.18; }
.entry-content h2 { margin:20px 0 10px !important; line-height:1.25; }
.entry-content h3 { margin:16px 0 8px !important; line-height:1.3; }
.entry-content h1:first-child,.entry-content h2:first-child,.entry-content h3:first-child { margin-top:0 !important; }
.entry-content p + h1,.entry-content p + h2,.entry-content p + h3 { margin-top:22px !important; }
/* v3.16: musician portraits slightly smaller on desktop, tablet and mobile. */
.entry-content .wp-block-columns:has(figure.wp-block-image) { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:22px !important; align-items:start !important; }
.entry-content .wp-block-columns:has(figure.wp-block-image) > .wp-block-column { min-width:0; margin:0 !important; }
.entry-content .wp-block-columns:has(figure.wp-block-image) figure.wp-block-image { width:100%; margin:0 0 12px !important; }
.entry-content .wp-block-columns:has(figure.wp-block-image) figure.wp-block-image img { display:block; width:100% !important; height:220px !important; aspect-ratio:auto !important; object-fit:cover !important; border-radius:16px; }
.entry-content .wp-block-columns:has(figure.wp-block-image) .wp-block-column > p:first-of-type { margin-top:0; }
@media (min-width:701px) and (max-width:1199px) {
 .entry-content .wp-block-columns:has(figure.wp-block-image) { gap:18px !important; }
 .entry-content .wp-block-columns:has(figure.wp-block-image) figure.wp-block-image img { height:200px !important; }
}
@media(max-width:700px) {
 .entry-content .wp-block-columns:has(figure.wp-block-image) { grid-template-columns:1fr !important; gap:24px !important; }
 .entry-content .wp-block-columns:has(figure.wp-block-image) figure.wp-block-image { max-width:300px; margin-left:auto !important; margin-right:auto !important; }
 .entry-content .wp-block-columns:has(figure.wp-block-image) figure.wp-block-image img { height:auto !important; aspect-ratio:4/3 !important; }
}


/* v2.4: polished right navigation, real band-logo marker and social links */
@media (min-width:1200px) {
  .desktop-sidebar { padding:0 !important; border:0 !important; }
  .sidebar-inner { position:relative; padding:22px 18px 20px; border:1px solid #e9e1d5; border-radius:18px; background:linear-gradient(180deg,#fffefa 0%,#f8f4eb 100%); box-shadow:5px 7px 20px rgba(21,25,27,.09); }
  .sidebar-brandline { display:flex; align-items:center; gap:11px; padding:0 0 17px; margin-bottom:13px; border-bottom:1px solid #e7dfd3; }
  .sidebar-band-logo { width:43px; height:43px; flex:0 0 43px; border-radius:50%; object-fit:contain; }
  .sidebar-kicker { display:block; color:var(--oak-dark-teal); text-transform:uppercase; letter-spacing:.12em; font-size:10px; font-weight:800; margin-bottom:2px; }
  .sidebar-heading { margin:0 !important; font-size:21px; line-height:1.2; letter-spacing:-.02em; }
  .sidebar-menu { list-style:none; margin:0; padding:0; }
  .sidebar-menu li { border:0 !important; margin:3px 0; }
  .sidebar-menu li a { position:relative; display:flex; align-items:center; min-height:43px; padding:10px 12px 10px 42px !important; border-radius:10px; color:var(--oak-text); font-size:14px; line-height:1.35; font-weight:650; text-decoration:none; transition:background .18s ease,color .18s ease,transform .18s ease; }
  .sidebar-menu li a:hover { background:#f0e9dd; color:var(--oak-dark-teal); transform:translateX(2px); }
  .sidebar-menu .current-menu-item>a,.sidebar-menu .current_page_item>a,.sidebar-menu .current-menu-ancestor>a { color:var(--oak-header) !important; background:#f4e8d9 !important; font-weight:800; }
  .sidebar-menu .current-menu-item>a:before,.sidebar-menu .current_page_item>a:before,.sidebar-menu .current-menu-ancestor>a:before { content:""; position:absolute; left:11px; top:50%; transform:translateY(-50%); width:23px; height:23px; border-radius:50%; background-color:#fff; background-image:var(--oak-band-logo); background-position:center; background-repeat:no-repeat; background-size:contain; border:1px solid var(--oak-orange); box-shadow:0 1px 4px rgba(0,0,0,.08); }
  .sidebar-social-heading { margin:22px 0 10px; padding-top:16px; border-top:1px solid #e7dfd3; color:#77736c; font-size:10px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
  .sidebar-social { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0 !important; }
  .sidebar-social .social-link { display:flex; align-items:center; justify-content:center; gap:7px; min-width:0; padding:10px 7px; border-radius:10px; background:#fff; border:1px solid #e6dfd5; color:#3f4547; font-size:12px; font-weight:750; text-decoration:none; transition:all .18s ease; }
  .sidebar-social .social-link:hover { background:var(--oak-teal); border-color:var(--oak-teal); color:#fff; transform:translateY(-1px); }
  .sidebar-social svg { width:17px; height:17px; flex:0 0 17px; fill:currentColor; }
  .sidebar-social .social-instagram svg { fill:none; stroke:currentColor; stroke-width:1.8; }
  .sidebar-social .social-instagram .social-dot { fill:currentColor; stroke:none; }
}


/* v2.7: consistent content typography on every page, controlled in the Customizer. */
.site-main .entry-content,
.site-main .entry-content p,
.site-main .entry-content li,
.site-main .entry-content blockquote,
.site-main .entry-content figcaption,
.site-main .entry-content td,
.site-main .entry-content th,
.site-main .entry-content label,
.site-main .entry-content input,
.site-main .entry-content textarea,
.site-main .entry-content select {
  font-size: var(--oak-body-size, 17px) !important;
  line-height: 1.7;
}
.site-main .entry-content h1,
.site-main .entry-content h2,
.site-main .entry-content h3,
.site-main .entry-content h4,
.site-main .entry-content h5,
.site-main .entry-content h6 {
  font-family: var(--oak-heading-font, "Nunito Sans"), Arial, sans-serif;
  font-weight: 800;
  line-height: 1.25;
}
.site-main .entry-content h1 { font-size: var(--oak-heading-size, 34px) !important; }
.site-main .entry-content h2 { font-size: calc(var(--oak-heading-size, 34px) * .82) !important; }
.site-main .entry-content h3 { font-size: calc(var(--oak-heading-size, 34px) * .68) !important; }
.site-main .entry-content h4 { font-size: calc(var(--oak-heading-size, 34px) * .58) !important; }
.site-main .entry-content h5 { font-size: calc(var(--oak-heading-size, 34px) * .52) !important; }
.site-main .entry-content h6 { font-size: calc(var(--oak-heading-size, 34px) * .48) !important; }
@media(max-width:520px) {
  .site-main .entry-content h1 { font-size: calc(var(--oak-heading-size, 34px) * .9) !important; }
  .site-main .entry-content h2 { font-size: calc(var(--oak-heading-size, 34px) * .76) !important; }
  .site-main .entry-content h3 { font-size: calc(var(--oak-heading-size, 34px) * .64) !important; }
}


/* v2.8: responsive typography controls; editor-set font sizes are normalized consistently. */
.site-main .entry-content,
.site-main .entry-content p,
.site-main .entry-content li,
.site-main .entry-content blockquote,
.site-main .entry-content figcaption,
.site-main .entry-content td,
.site-main .entry-content th,
.site-main .entry-content label,
.site-main .entry-content input,
.site-main .entry-content textarea,
.site-main .entry-content select {
  font-size: var(--oak-body-size, 17px) !important;
}
.site-main .entry-content h1 { font-size: var(--oak-h1-size, 38px) !important; }
.site-main .entry-content h2 { font-size: var(--oak-h2-size, 30px) !important; }
.site-main .entry-content h3 { font-size: calc(var(--oak-h2-size, 30px) * .78) !important; }
.site-main .entry-content h4 { font-size: calc(var(--oak-h2-size, 30px) * .68) !important; }
.site-main .entry-content h5 { font-size: calc(var(--oak-h2-size, 30px) * .60) !important; }
.site-main .entry-content h6 { font-size: calc(var(--oak-h2-size, 30px) * .54) !important; }
@media (min-width: 701px) and (max-width: 1024px) {
  .site-main .entry-content, .site-main .entry-content p, .site-main .entry-content li,
  .site-main .entry-content blockquote, .site-main .entry-content figcaption,
  .site-main .entry-content td, .site-main .entry-content th, .site-main .entry-content label,
  .site-main .entry-content input, .site-main .entry-content textarea, .site-main .entry-content select { font-size: var(--oak-body-size-tablet, 16px) !important; }
  .site-main .entry-content h1 { font-size: var(--oak-h1-size-tablet, 34px) !important; }
  .site-main .entry-content h2 { font-size: var(--oak-h2-size-tablet, 27px) !important; }
  .site-main .entry-content h3 { font-size: calc(var(--oak-h2-size-tablet, 27px) * .78) !important; }
  .site-main .entry-content h4 { font-size: calc(var(--oak-h2-size-tablet, 27px) * .68) !important; }
  .site-main .entry-content h5 { font-size: calc(var(--oak-h2-size-tablet, 27px) * .60) !important; }
  .site-main .entry-content h6 { font-size: calc(var(--oak-h2-size-tablet, 27px) * .54) !important; }
}
@media (max-width: 700px) {
  .site-main .entry-content, .site-main .entry-content p, .site-main .entry-content li,
  .site-main .entry-content blockquote, .site-main .entry-content figcaption,
  .site-main .entry-content td, .site-main .entry-content th, .site-main .entry-content label,
  .site-main .entry-content input, .site-main .entry-content textarea, .site-main .entry-content select { font-size: var(--oak-body-size-mobile, 15px) !important; }
  .site-main .entry-content h1 { font-size: var(--oak-h1-size-mobile, 29px) !important; }
  .site-main .entry-content h2 { font-size: var(--oak-h2-size-mobile, 24px) !important; }
  .site-main .entry-content h3 { font-size: calc(var(--oak-h2-size-mobile, 24px) * .78) !important; }
  .site-main .entry-content h4 { font-size: calc(var(--oak-h2-size-mobile, 24px) * .68) !important; }
  .site-main .entry-content h5 { font-size: calc(var(--oak-h2-size-mobile, 24px) * .60) !important; }
  .site-main .entry-content h6 { font-size: calc(var(--oak-h2-size-mobile, 24px) * .54) !important; }
}


/* v3.0: Customizable hero height and responsive footer social cards. */
.hero-banner { min-height: var(--oak-hero-height, 420px); height: var(--oak-hero-height, 420px); max-height: none; }
.footer-inner { align-items: flex-start; }
.footer-social { margin-left: auto; max-width: 520px; flex: 1 1 360px; }
.footer-social h2 { color: #fff; font-size: 15px; margin: 0 0 12px; }
.footer-social-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.footer-social-card { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 13px 14px; border: 1px solid #454d4f; border-radius: 12px; background: #202628; color: #fff; text-decoration: none; transition: transform .18s ease, border-color .18s ease, background .18s ease; }
.footer-social-card:hover, .footer-social-card:focus-visible { background: #293335; border-color: var(--oak-teal); color: #fff; transform: translateY(-2px); }
.footer-social-icon { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; border-radius: 50%; background: var(--oak-teal); color: #fff; font-size: 24px; font-weight: 800; }
.footer-instagram .footer-social-icon { background: #d94c87; }
.footer-social-copy { display: flex; flex-direction: column; min-width: 0; gap: 3px; }
.footer-social-copy strong { font-size: 13px; }
.footer-social-copy small { color: #c3cdca; font-size: 11px; line-height: 1.3; }
.footer-social-arrow { margin-left: auto; color: var(--oak-orange); font-size: 18px; }
@media (min-width: 701px) and (max-width: 1024px) {
  .footer-inner { display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
  .footer-navigation { margin-left: 0; }
  .footer-social { grid-column: 1 / -1; margin: 8px 0 0; max-width: none; width: 100%; }
}
@media (max-width: 700px) {
  .hero-banner { min-height: var(--oak-hero-height, 420px); height: var(--oak-hero-height, 420px); }
  .hero-inner { padding: 28px 0; }
  .hero-inner h1 { font-family: var(--oak-hero-font, var(--oak-heading-font, "Nunito Sans")), Arial, sans-serif; font-size: clamp(28px, 8vw, 42px); }
  .footer-inner { display: flex; flex-direction: column; align-items: stretch; gap: 18px; }
  .footer-navigation, .footer-social { width: 100%; max-width: none; margin: 0; }
  .footer-social-grid { grid-template-columns: 1fr; }
  .footer-social-card { width: 100%; box-sizing: border-box; }
  .copyright { margin-top: 0; }
}


/* v3.3.0: final wiring fixes for Customizer controls across breakpoints. */
.hero-banner {
  height: var(--oak-hero-height, 420px) !important;
  min-height: var(--oak-hero-height, 420px) !important;
  max-height: none !important;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
@media (max-width: 700px) {
  .hero-banner { height: var(--oak-hero-height, 420px) !important; min-height: var(--oak-hero-height, 420px) !important; }
}
body.oakbt2-sidebar-disabled .desktop-sidebar { display: none !important; }
body.oakbt2-sidebar-disabled .content-layout { display: block !important; }
/* Keep social cards visible and fluid on tablet/mobile; prevent inherited rules hiding them. */
.site-footer .footer-social { display: block !important; visibility: visible !important; opacity: 1 !important; min-width: 0; box-sizing: border-box; }
.site-footer .footer-social-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
.site-footer .footer-social-card { display: flex !important; min-width: 0; box-sizing: border-box; }
.site-footer .footer-social-copy { overflow-wrap: anywhere; }
@media (min-width: 701px) and (max-width: 1024px) {
  .site-footer .footer-inner { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
  .site-footer .footer-brand, .site-footer .footer-navigation { min-width: 0; }
  .site-footer .footer-social { grid-column: 1 / -1; margin: 0 !important; width: 100%; max-width: none; }
}
@media (max-width: 700px) {
  .site-footer .footer-inner { display: flex !important; flex-direction: column; align-items: stretch; }
  .site-footer .footer-navigation, .site-footer .footer-social { width: 100%; max-width: none; margin: 0 !important; }
  .site-footer .footer-social-grid { grid-template-columns: minmax(0, 1fr); }
}
/* Normalize editor-authored inline font sizes consistently across every content page. */
.site-main .entry-content,
.site-main .entry-content p,
.site-main .entry-content li,
.site-main .entry-content blockquote,
.site-main .entry-content figcaption,
.site-main .entry-content td,
.site-main .entry-content th,
.site-main .entry-content label,
.site-main .entry-content input:not([type="submit"]),
.site-main .entry-content textarea,
.site-main .entry-content select {
  font-family: var(--oak-body-font, "Open Sans"), Arial, sans-serif !important;
  font-size: var(--oak-body-size, 17px) !important;
  line-height: 1.7;
}
.site-main .entry-content h1 { font-family: var(--oak-heading-font, "Nunito Sans"), Arial, sans-serif !important; font-size: var(--oak-h1-size, 38px) !important; }
.site-main .entry-content h2 { font-family: var(--oak-heading-font, "Nunito Sans"), Arial, sans-serif !important; font-size: var(--oak-h2-size, 30px) !important; }
.site-main .entry-content h3 { font-family: var(--oak-heading-font, "Nunito Sans"), Arial, sans-serif !important; font-size: calc(var(--oak-h2-size, 30px) * .78) !important; }
.site-main .entry-content h4 { font-family: var(--oak-heading-font, "Nunito Sans"), Arial, sans-serif !important; font-size: calc(var(--oak-h2-size, 30px) * .68) !important; }
.site-main .entry-content h5 { font-family: var(--oak-heading-font, "Nunito Sans"), Arial, sans-serif !important; font-size: calc(var(--oak-h2-size, 30px) * .60) !important; }
.site-main .entry-content h6 { font-family: var(--oak-heading-font, "Nunito Sans"), Arial, sans-serif !important; font-size: calc(var(--oak-h2-size, 30px) * .54) !important; }
@media (min-width: 701px) and (max-width: 1024px) {
  .site-main .entry-content, .site-main .entry-content p, .site-main .entry-content li,
  .site-main .entry-content blockquote, .site-main .entry-content figcaption,
  .site-main .entry-content td, .site-main .entry-content th, .site-main .entry-content label,
  .site-main .entry-content input:not([type="submit"]), .site-main .entry-content textarea,
  .site-main .entry-content select { font-size: var(--oak-body-size-tablet, 16px) !important; }
  .site-main .entry-content h1 { font-size: var(--oak-h1-size-tablet, 34px) !important; }
  .site-main .entry-content h2 { font-size: var(--oak-h2-size-tablet, 27px) !important; }
  .site-main .entry-content h3 { font-size: calc(var(--oak-h2-size-tablet, 27px) * .78) !important; }
  .site-main .entry-content h4 { font-size: calc(var(--oak-h2-size-tablet, 27px) * .68) !important; }
  .site-main .entry-content h5 { font-size: calc(var(--oak-h2-size-tablet, 27px) * .60) !important; }
  .site-main .entry-content h6 { font-size: calc(var(--oak-h2-size-tablet, 27px) * .54) !important; }
}
@media (max-width: 700px) {
  .site-main .entry-content, .site-main .entry-content p, .site-main .entry-content li,
  .site-main .entry-content blockquote, .site-main .entry-content figcaption,
  .site-main .entry-content td, .site-main .entry-content th, .site-main .entry-content label,
  .site-main .entry-content input:not([type="submit"]), .site-main .entry-content textarea,
  .site-main .entry-content select { font-size: var(--oak-body-size-mobile, 15px) !important; }
  .site-main .entry-content h1 { font-size: var(--oak-h1-size-mobile, 29px) !important; }
  .site-main .entry-content h2 { font-size: var(--oak-h2-size-mobile, 24px) !important; }
  .site-main .entry-content h3 { font-size: calc(var(--oak-h2-size-mobile, 24px) * .78) !important; }
  .site-main .entry-content h4 { font-size: calc(var(--oak-h2-size-mobile, 24px) * .68) !important; }
  .site-main .entry-content h5 { font-size: calc(var(--oak-h2-size-mobile, 24px) * .60) !important; }
  .site-main .entry-content h6 { font-size: calc(var(--oak-h2-size-mobile, 24px) * .54) !important; }
}

/* v3.4.0: Orange hover state for every CTA button and all navigation links. */
:root { --oak-hover-orange: var(--oak-orange, #e88935); }
.wp-block-button__link,
.entry-content input[type="submit"],
.entry-content button,
.button,
button.button,
.site-footer .footer-social-card,
.sidebar-social .social-link {
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.wp-block-button__link:hover,
.wp-block-button__link:focus-visible,
.entry-content input[type="submit"]:hover,
.entry-content input[type="submit"]:focus-visible,
.entry-content button:hover,
.entry-content button:focus-visible,
.button:hover,
.button:focus-visible {
  background: var(--oak-hover-orange) !important;
  border-color: var(--oak-hover-orange) !important;
  color: #fff !important;
}
/* Main horizontal menu and mobile dropdown */
.site-header .primary-navigation a:hover,
.site-header .primary-navigation a:focus-visible,
.site-header .primary-navigation .current-menu-item > a:hover,
.site-header .primary-navigation .current_page_item > a:hover,
.site-header .primary-navigation .current-menu-ancestor > a:hover {
  color: #fff !important;
  background: var(--oak-hover-orange) !important;
  border-radius: 6px;
  padding-left: 9px;
  padding-right: 9px;
}
/* Right-hand desktop menu */
.desktop-sidebar .sidebar-menu a:hover,
.desktop-sidebar .sidebar-menu a:focus-visible,
.desktop-sidebar .sidebar-menu .current-menu-item > a:hover,
.desktop-sidebar .sidebar-menu .current_page_item > a:hover,
.desktop-sidebar .sidebar-menu .current-menu-ancestor > a:hover {
  color: #fff !important;
  background: var(--oak-hover-orange) !important;
  transform: translateX(2px);
}
/* Footer links and social cards */
.site-footer .footer-navigation a:hover,
.site-footer .footer-navigation a:focus-visible,
.site-footer .footer-menu a:hover,
.site-footer .footer-menu a:focus-visible {
  color: var(--oak-hover-orange) !important;
}
.site-footer .footer-social-card:hover,
.site-footer .footer-social-card:focus-visible,
.sidebar-social .social-link:hover,
.sidebar-social .social-link:focus-visible {
  background: var(--oak-hover-orange) !important;
  border-color: var(--oak-hover-orange) !important;
  color: #fff !important;
}

/* v3.4.0: Orange hover state for every CTA button and all navigation links. */
:root { --oak-hover-orange: var(--oak-orange, #e88935); }
.wp-block-button__link,
.entry-content input[type="submit"],
.entry-content button,
.button,
button.button,
.site-footer .footer-social-card,
.sidebar-social .social-link {
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.wp-block-button__link:hover,
.wp-block-button__link:focus-visible,
.entry-content input[type="submit"]:hover,
.entry-content input[type="submit"]:focus-visible,
.entry-content button:hover,
.entry-content button:focus-visible,
.button:hover,
.button:focus-visible {
  background: var(--oak-hover-orange) !important;
  border-color: var(--oak-hover-orange) !important;
  color: #fff !important;
}
/* Main horizontal menu and mobile dropdown */
.site-header .primary-navigation a:hover,
.site-header .primary-navigation a:focus-visible,
.site-header .primary-navigation .current-menu-item > a:hover,
.site-header .primary-navigation .current_page_item > a:hover,
.site-header .primary-navigation .current-menu-ancestor > a:hover {
  color: #fff !important;
  background: var(--oak-hover-orange) !important;
  border-radius: 6px;
  padding-left: 9px;
  padding-right: 9px;
}
/* Right-hand desktop menu */
.desktop-sidebar .sidebar-menu a:hover,
.desktop-sidebar .sidebar-menu a:focus-visible,
.desktop-sidebar .sidebar-menu .current-menu-item > a:hover,
.desktop-sidebar .sidebar-menu .current_page_item > a:hover,
.desktop-sidebar .sidebar-menu .current-menu-ancestor > a:hover {
  color: #fff !important;
  background: var(--oak-hover-orange) !important;
  transform: translateX(2px);
}
/* Footer links and social cards */
.site-footer .footer-navigation a:hover,
.site-footer .footer-navigation a:focus-visible,
.site-footer .footer-menu a:hover,
.site-footer .footer-menu a:focus-visible {
  color: var(--oak-hover-orange) !important;
}
.site-footer .footer-social-card:hover,
.site-footer .footer-social-card:focus-visible,
.sidebar-social .social-link:hover,
.sidebar-social .social-link:focus-visible {
  background: var(--oak-hover-orange) !important;
  border-color: var(--oak-hover-orange) !important;
  color: #fff !important;
}

/* Consistent media/video controls across all pages: band teal, warm orange hover. */
.entry-content video,
.entry-content .wp-block-video video,
.entry-content .wp-block-embed iframe,
.entry-content .wp-block-embed video {
  border-radius: 14px;
  overflow: hidden;
}
.entry-content video::-webkit-media-controls-panel {
  background-image: linear-gradient(transparent, rgba(21,25,27,.78));
}
.entry-content video::-webkit-media-controls-play-button,
.entry-content video::-webkit-media-controls-mute-button,
.entry-content video::-webkit-media-controls-fullscreen-button {
  filter: none;
  accent-color: var(--oak-teal, #42b7a8);
}
/* WordPress media/file and gallery action icons use the same visual language. */
.entry-content .wp-block-file__button,
.entry-content .wp-block-gallery .wp-block-image a::after,
.entry-content .wp-block-gallery .wp-block-video a::after,
.entry-content .wp-block-embed a::after {
  background: var(--oak-teal, #42b7a8);
  color: #fff;
  border: 2px solid rgba(255,255,255,.9);
  box-shadow: 0 3px 12px rgba(21,25,27,.22);
  transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.entry-content .wp-block-file__button:hover,
.entry-content .wp-block-file__button:focus-visible,
.entry-content .wp-block-gallery .wp-block-image a:hover::after,
.entry-content .wp-block-gallery .wp-block-video a:hover::after,
.entry-content .wp-block-embed a:hover::after {
  background: var(--oak-hover-orange, #e88935);
  transform: scale(1.06);
}


/* v3.7.0: draw a complete, centered run of dots without clipped half-dots */
.entry-content .wp-block-separator {
  display: block !important;
  width: 126px !important;
  min-width: 126px !important;
  max-width: 126px !important;
  height: 10px !important;
  border: 0 !important;
  background-image: radial-gradient(circle, var(--oak-orange, #e88935) 2px, transparent 2.5px) !important;
  background-size: 18px 10px !important;
  background-repeat: repeat-x !important;
  background-position: left center !important;
  margin: 32px auto !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}

/* Unify WordPress video/gallery overlay controls with the site palette.
   Native iOS Safari controls remain system-rendered and cannot be fully recolored by CSS. */
.entry-content .wp-block-video .mejs-overlay-button,
.entry-content .wp-block-video .wp-block-video__play-button,
.entry-content .wp-block-gallery .wp-block-image .dashicons-format-video,
.entry-content .wp-block-gallery .wp-block-video .dashicons-format-video,
.entry-content .wp-block-gallery .wp-block-image .wp-block-image__video-icon,
.entry-content .wp-block-gallery .wp-block-video .wp-block-image__video-icon,
.entry-content .wp-block-gallery .wp-block-image a .dashicons,
.entry-content .wp-block-gallery .wp-block-video a .dashicons {
  background-color: var(--oak-teal, #42b7a8) !important;
  color: #fff !important;
  border: 2px solid rgba(255,255,255,.92) !important;
  border-radius: 50% !important;
  box-shadow: 0 3px 12px rgba(21,25,27,.28) !important;
  transition: background-color .18s ease, transform .18s ease !important;
}
.entry-content .wp-block-video:hover .mejs-overlay-button,
.entry-content .wp-block-video:hover .wp-block-video__play-button,
.entry-content .wp-block-gallery .wp-block-image:hover .dashicons-format-video,
.entry-content .wp-block-gallery .wp-block-video:hover .dashicons-format-video,
.entry-content .wp-block-gallery .wp-block-image a:hover .dashicons,
.entry-content .wp-block-gallery .wp-block-video a:hover .dashicons {
  background-color: var(--oak-hover-orange, #e88935) !important;
  transform: scale(1.06) !important;
}
.entry-content .wp-block-gallery .wp-block-image a::after,
.entry-content .wp-block-gallery .wp-block-video a::after {
  background-color: var(--oak-teal, #42b7a8) !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.92) !important;
}
.entry-content .wp-block-gallery .wp-block-image a:hover::after,
.entry-content .wp-block-gallery .wp-block-video a:hover::after {
  background-color: var(--oak-hover-orange, #e88935) !important;
}


/* v3.8.0: force a consistent custom play badge for WordPress gallery video thumbnails.
   Some WordPress blocks/plugins render their own black SVG/file badge, so recoloring only
   the theme's earlier selectors was insufficient. */
.entry-content .wp-block-gallery .wp-block-image__video-icon,
.entry-content .wp-block-gallery .wp-block-video__play-button,
.entry-content .wp-block-gallery .wp-block-video .mejs-overlay-button,
.entry-content .wp-block-gallery .wp-block-image .wp-block-image__video-icon,
.entry-content .wp-block-gallery .wp-block-image .dashicons-format-video,
.entry-content .wp-block-gallery .wp-block-video .dashicons-format-video,
.entry-content .wp-block-gallery .wp-block-image a .dashicons,
.entry-content .wp-block-gallery .wp-block-video a .dashicons,
.entry-content .wp-block-video .wp-block-video__play-button,
.entry-content .wp-block-video .mejs-overlay-button {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  min-height: 48px !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  border: 2px solid rgba(255,255,255,.95) !important;
  border-radius: 50% !important;
  background: var(--oak-teal, #42b7a8) !important;
  background-image: none !important;
  color: #fff !important;
  box-shadow: 0 3px 12px rgba(21,25,27,.3) !important;
  filter: none !important;
  opacity: 1 !important;
  text-indent: -9999px !important;
  overflow: hidden !important;
}
.entry-content .wp-block-gallery .wp-block-image__video-icon svg,
.entry-content .wp-block-gallery .wp-block-video__play-button svg,
.entry-content .wp-block-gallery .wp-block-image .wp-block-image__video-icon svg,
.entry-content .wp-block-video .wp-block-video__play-button svg,
.entry-content .wp-block-video .mejs-overlay-button svg {
  display: none !important;
}
.entry-content .wp-block-gallery .wp-block-image__video-icon::after,
.entry-content .wp-block-gallery .wp-block-video__play-button::after,
.entry-content .wp-block-gallery .wp-block-image .wp-block-image__video-icon::after,
.entry-content .wp-block-video .wp-block-video__play-button::after,
.entry-content .wp-block-video .mejs-overlay-button::after {
  content: "" !important;
  display: block !important;
  width: 0 !important;
  height: 0 !important;
  border-top: 8px solid transparent !important;
  border-bottom: 8px solid transparent !important;
  border-left: 12px solid #fff !important;
  margin-left: 3px !important;
  text-indent: 0 !important;
}
.entry-content .wp-block-gallery .wp-block-image__video-icon:hover,
.entry-content .wp-block-gallery .wp-block-video__play-button:hover,
.entry-content .wp-block-gallery .wp-block-image .wp-block-image__video-icon:hover,
.entry-content .wp-block-gallery .wp-block-video .wp-block-video__play-button:hover,
.entry-content .wp-block-video .wp-block-video__play-button:hover,
.entry-content .wp-block-video .mejs-overlay-button:hover {
  background: var(--oak-hover-orange, #e88935) !important;
  transform: scale(1.06) !important;
}

/* v3.10.0: Exact SimpLy Gallery Grid video badge selector. */
.entry-content .pgcsimplygalleryblock-grid-item-badge {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  border-radius: 50% !important;
  background: var(--oak-teal, #42b7a8) !important;
  border: 2px solid rgba(255,255,255,.95) !important;
  box-shadow: 0 3px 12px rgba(21,25,27,.3) !important;
  color: #fff !important;
}
.entry-content .pgcsimplygalleryblock-grid-item-badge svg {
  display: none !important;
}
.entry-content .pgcsimplygalleryblock-grid-item-badge::after {
  content: "" !important;
  display: block !important;
  width: 0 !important;
  height: 0 !important;
  margin-left: 3px !important;
  border-top: 7px solid transparent !important;
  border-bottom: 7px solid transparent !important;
  border-left: 11px solid #fff !important;
}
.entry-content .pgcsimplygalleryblock-grid-item-badge:hover,
.entry-content .pgcsimplygalleryblock-grid-item-badge:focus-visible {
  background: var(--oak-hover-orange, #e88935) !important;
  transform: scale(1.06) !important;
}
@media (max-width: 767px) {
  .entry-content .pgcsimplygalleryblock-grid-item-badge {
    width: 36px !important;
    height: 36px !important;
  }
}

/* v3.11.0: Orange markers for every non-selected item in the right-hand menu. */
.desktop-sidebar .sidebar-menu > li:not(.current-menu-item):not(.current_page_item):not(.current-menu-ancestor) > a::before {
  content: "" !important;
  position: absolute !important;
  left: 17px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  display: block !important;
  width: 8px !important;
  height: 8px !important;
  min-width: 8px !important;
  min-height: 8px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: var(--oak-orange, #e88935) !important;
  background-image: none !important;
  box-shadow: 0 0 0 3px rgba(232, 137, 53, 0.13) !important;
}
.desktop-sidebar .sidebar-menu > li:not(.current-menu-item):not(.current_page_item):not(.current-menu-ancestor) > a:hover::before,
.desktop-sidebar .sidebar-menu > li:not(.current-menu-item):not(.current_page_item):not(.current-menu-ancestor) > a:focus-visible::before {
  width: 10px !important;
  height: 10px !important;
  min-width: 10px !important;
  min-height: 10px !important;
  background: var(--oak-hover-orange, #e88935) !important;
  box-shadow: 0 0 0 4px rgba(232, 137, 53, 0.18) !important;
}


/* v3.12.0: Explicitly preserve the band logo marker on the active right-hand menu item. */
.desktop-sidebar .sidebar-menu > li.current-menu-item > a::before,
.desktop-sidebar .sidebar-menu > li.current_page_item > a::before,
.desktop-sidebar .sidebar-menu > li.current-menu-ancestor > a::before {
  content: "" !important;
  position: absolute !important;
  left: 11px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  display: block !important;
  width: 23px !important;
  height: 23px !important;
  min-width: 23px !important;
  min-height: 23px !important;
  padding: 0 !important;
  border: 1px solid var(--oak-orange, #e88935) !important;
  border-radius: 50% !important;
  background-color: #fff !important;
  background-image: var(--oak-band-logo) !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
  box-shadow: 0 1px 4px rgba(0,0,0,.08) !important;
}

/* v3.33: Configurable gradient tint and strength for shared light cards. */
.entry-content form.wpcf7-form,
form.wpcf7-form {
  box-sizing: border-box;
  display: block;
  position: relative;
  width: 100%;
  max-width: 100%;
  margin: 18px 0 10px;
  padding: clamp(22px, 3.2vw, 34px);
  border: 1px solid rgba(105, 88, 62, 0.30);
  border-radius: 18px;
  background: linear-gradient(145deg, #fffdf8 0%, color-mix(in srgb, #fffdf8 calc(100% - var(--oak-gradient-strength, 65%)), var(--oak-gradient-color, #eee0c9) var(--oak-gradient-strength, 65%)) 52%, color-mix(in srgb, #fffdf8 calc(100% - var(--oak-gradient-strength, 65%)), var(--oak-gradient-color, #eee0c9) var(--oak-gradient-strength, 65%)) 100%);
  box-shadow: 6px 8px 20px rgba(30, 30, 25, 0.15), inset 0 1px 0 rgba(255,255,255,.85);
}
.entry-content form.wpcf7-form p { margin: 0 0 17px; }
.entry-content form.wpcf7-form label {
  display: block;
  margin: 0 0 7px;
  color: var(--oak-header, #252c2f);
  font-weight: 750;
  font-size: .96em;
}
.entry-content form.wpcf7-form input:not([type="submit"]),
.entry-content form.wpcf7-form textarea,
.entry-content form.wpcf7-form select {
  box-sizing: border-box;
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: 46px;
  padding: 12px 14px;
  border: 1px solid #e1d8ca;
  border-radius: 10px;
  background: #fff;
  color: var(--oak-text, #3f4547);
  box-shadow: inset 0 1px 2px rgba(21,25,27,.025);
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.entry-content form.wpcf7-form textarea { min-height: 150px; resize: vertical; }
.entry-content form.wpcf7-form input:not([type="submit"]):focus,
.entry-content form.wpcf7-form textarea:focus,
.entry-content form.wpcf7-form select:focus {
  outline: none;
  border-color: var(--oak-teal, #55b7aa);
  box-shadow: 0 0 0 3px rgba(85,183,170,.18);
}
.entry-content form.wpcf7-form input[type="submit"] {
  display: inline-block;
  min-height: 46px;
  padding: 12px 22px;
  border: 0;
  border-radius: 10px;
  background: var(--oak-teal, #55b7aa);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
  transition: background .18s ease, transform .18s ease;
}
.entry-content form.wpcf7-form input[type="submit"]:hover,
.entry-content form.wpcf7-form input[type="submit"]:focus-visible {
  background: var(--oak-hover-orange, #e88935);
  color: #fff;
  transform: translateY(-1px);
}
.entry-content form.wpcf7-form .wpcf7-not-valid-tip { color: #b33b32; font-size: .88em; margin-top: 5px; }
.entry-content form.wpcf7-form .wpcf7-response-output {
  margin: 18px 0 0;
  padding: 12px 14px;
  border-radius: 10px;
  border-color: var(--oak-teal, #55b7aa);
  background: #fffefa;
}
@media (max-width: 900px) {
  .entry-content form.wpcf7-form { padding: 22px; }
}
@media (max-width: 600px) {
  .entry-content form.wpcf7-form { padding: 17px 14px; border-radius: 14px; margin-top: 14px; }
  .entry-content form.wpcf7-form input[type="submit"] { width: 100%; }
}


/* Optional grouped content cards, matching the sidebar menu panel. */
.entry-content .oakbt2-content-card {
  background: linear-gradient(180deg, #fffefa 0%, color-mix(in srgb, #fffefa calc(100% - var(--oak-gradient-strength, 65%)), var(--oak-gradient-color, #eee0c9) var(--oak-gradient-strength, 65%)) 100%);
  border: 1px solid rgba(80, 75, 65, 0.14);
  border-radius: 16px;
  padding: clamp(18px, 2.4vw, 28px);
  margin: 0 0 var(--oakbt2-section-spacing, 34px);
  box-shadow: 5px 7px 18px rgba(30, 30, 25, 0.085);
}
.entry-content .oakbt2-content-card > :first-child { margin-top: 0; }
.entry-content .oakbt2-content-card > :last-child { margin-bottom: 0; }
.entry-content .oakbt2-content-card > h2:first-child {
  padding-bottom: 10px;
  border-bottom: 0;
  margin-bottom: 16px;
}
@media (max-width: 767px) {
  .entry-content .oakbt2-content-card { padding: 16px; border-radius: 13px; margin-bottom: 24px; }
}


/* v3.20: configurable rounded corners for the hero image and dark footer panel. */
.hero-banner {
  /* Keep the upper edge square against the teal divider/header; round only the bottom corners. */
  border-radius: 0 0 var(--oak-hero-radius, 18px) var(--oak-hero-radius, 18px);
  overflow: hidden;
}
/* Keep the right menu visible during desktop scrolling, without affecting mobile/tablet layouts. */
@media (min-width: 1200px) {
  .desktop-sidebar { align-self: start; position: sticky; top: 0; height: max-content; }
  .oakbt2-sidebar-not-sticky .desktop-sidebar { position: static; }
}
@media (min-width: 901px) and (max-width: 1199px) {
  .desktop-sidebar { position: static; }
}
.site-footer {
  border-radius: var(--oak-footer-radius, 18px);
  overflow: hidden;
}


/* v3.22: align the right sidebar card with the first content card/heading on every desktop page. */
@media (min-width: 1200px) {
  .content-layout { align-items: start !important; }
  .desktop-sidebar { margin-top: 0 !important; }
}


/* v3.31: same warm cream gradient and coordinated shadow for all light card boxes. */
.entry-content .oakbt2-content-card,
.desktop-sidebar .sidebar-inner {
  background: linear-gradient(145deg, #fffdf8 0%, color-mix(in srgb, #fffdf8 calc(100% - var(--oak-gradient-strength, 65%)), var(--oak-gradient-color, #eee0c9) var(--oak-gradient-strength, 65%)) 52%, color-mix(in srgb, #fffdf8 calc(100% - var(--oak-gradient-strength, 65%)), var(--oak-gradient-color, #eee0c9) var(--oak-gradient-strength, 65%)) 100%) !important;
  box-shadow: 6px 8px 20px rgba(30, 30, 25, 0.15), inset 0 1px 0 rgba(255,255,255,.85) !important;
}
.sidebar-social .social-link {
  background: linear-gradient(145deg, #fffdf8 0%, color-mix(in srgb, #fffdf8 calc(100% - var(--oak-gradient-strength, 65%)), var(--oak-gradient-color, #eee0c9) var(--oak-gradient-strength, 65%)) 100%);
  box-shadow: 3px 4px 10px rgba(30, 30, 25, 0.08);
}
.sidebar-social .social-link:hover { box-shadow: 4px 6px 12px rgba(30, 30, 25, 0.13); }

/* v3.26: Use a drop-shadow filter so the hero shadow follows its rounded lower corners. */
.hero-banner {
  box-shadow: none;
  filter: drop-shadow(6px 8px 10px rgba(30, 30, 25, 0.22));
}


/* v3.29: subtle envelope icon beside 'Ihre Anfrage' in the right-hand menu. */
.desktop-sidebar .sidebar-menu > li.menu-item-contact-request > a {
  gap: 8px;
}
.desktop-sidebar .sidebar-menu > li.menu-item-contact-request > a::after {
  content: "✉︎";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 10px;
  padding-left: 0;
  color: #e88935 !important;
  -webkit-text-fill-color: #e88935 !important;
  font-family: Arial, sans-serif;
  font-size: 17px;
  line-height: 1;
  opacity: 1 !important;
  filter: none !important;
  flex: 0 0 auto;
  transition: opacity .18s ease, transform .18s ease;
}
.desktop-sidebar .sidebar-menu > li.menu-item-contact-request > a:hover::after,
.desktop-sidebar .sidebar-menu > li.menu-item-contact-request > a:focus-visible::after {
  opacity: 1;
  transform: translateX(2px);
}


/* v3.34: Mobile/tablet dropdown adopts the cream card styling of the desktop sidebar. */
@media (max-width: 900px) {
  .site-header .primary-navigation {
    left: 0 !important;
    right: 0 !important;
    top: 100% !important;
    padding: 12px 18px 18px !important;
    background: linear-gradient(145deg, #fffdf8 0%, color-mix(in srgb, #fffdf8 calc(100% - var(--oak-gradient-strength, 65%)), var(--oak-gradient-color, #eee0c9) var(--oak-gradient-strength, 65%)) 52%, color-mix(in srgb, #fffdf8 calc(100% - var(--oak-gradient-strength, 65%)), var(--oak-gradient-color, #eee0c9) var(--oak-gradient-strength, 65%)) 100%) !important;
    border: 1px solid rgba(80, 75, 65, .16) !important;
    border-top: 3px solid var(--oak-orange, #e88935) !important;
    border-radius: 0 0 18px 18px !important;
    box-shadow: 6px 10px 22px rgba(30, 30, 25, .18), inset 0 1px 0 rgba(255,255,255,.8) !important;
    overflow: hidden;
  }
  .site-header .primary-navigation a {
    display: flex !important;
    align-items: center;
    min-height: 48px;
    padding: 11px 10px !important;
    color: var(--oak-text, #3f4547) !important;
    border-bottom: 1px solid rgba(120, 105, 85, .18) !important;
    border-radius: 0 !important;
    background: transparent !important;
    font-weight: 750;
    transition: background .18s ease, color .18s ease;
  }
  .site-header .primary-navigation .menu-list > li:last-child > a { border-bottom: 0 !important; }
  .site-header .primary-navigation .menu-list > li:not(.current-menu-item):not(.current_page_item):not(.current-menu-ancestor) > a::before {
    content: "";
    display: inline-block;
    width: 8px; height: 8px; flex: 0 0 8px;
    margin: 0 13px 0 3px;
    border-radius: 50%;
    background: var(--oak-orange, #e88935);
    box-shadow: 0 0 0 3px rgba(232, 137, 53, .13);
  }
  /* v3.36: force the mobile envelope to use the exact same theme orange as the desktop sidebar. */
  .site-header .primary-navigation .menu-item-contact-request > a {
    gap: 8px;
  }
  .site-header .primary-navigation .menu-item-contact-request > a::after {
    content: "✉︎";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 10px;
    padding-left: 0;
    color: #e88935 !important;
    -webkit-text-fill-color: #e88935 !important;
    font-family: Arial, sans-serif;
    font-size: 18px;
    line-height: 1;
    opacity: 1 !important;
    filter: none !important;
    flex: 0 0 auto;
    transition: opacity .18s ease, transform .18s ease;
  }
  .site-header .primary-navigation .menu-item-contact-request > a:hover::after,
  .site-header .primary-navigation .menu-item-contact-request > a:focus-visible::after {
    opacity: 1;
    transform: translateX(2px);
  }

  .site-header .primary-navigation .current-menu-item > a,
  .site-header .primary-navigation .current_page_item > a,
  .site-header .primary-navigation .current-menu-ancestor > a {
    color: var(--oak-header, #15191b) !important;
    background: rgba(232, 137, 53, .13) !important;
    border-radius: 9px !important;
    margin: 3px 0;
  }
  .site-header .primary-navigation .current-menu-item > a::before,
  .site-header .primary-navigation .current_page_item > a::before,
  .site-header .primary-navigation .current-menu-ancestor > a::before {
    margin-right: 10px;
  }
  .site-header .primary-navigation a:hover,
  .site-header .primary-navigation a:focus-visible {
    color: var(--oak-header, #15191b) !important;
    background: rgba(232, 137, 53, .12) !important;
  }
}


/* v3.37: reduce the visual weight of the dark header and footer by tightening vertical spacing. */
.site-header .header-inner { min-height: 88px !important; }
.site-header .brand-logo img { max-width: 60px; max-height: 60px; }
.site-header .brand-mark { width: 58px; height: 58px; flex-basis: 58px; }
.site-header .brand { gap: 12px; }
.site-footer .footer-inner { padding-top: 18px !important; padding-bottom: 16px !important; row-gap: 14px !important; }
.site-footer .footer-social-heading,
.site-footer .footer-social h2 { margin-top: 0; margin-bottom: 10px; }
.site-footer .footer-social-card { min-height: 68px; }
.site-footer .copyright { margin-top: 4px; padding-top: 10px; }
@media (max-width: 900px) {
  .site-header .header-inner { min-height: 76px !important; }
  .site-header .brand-logo img { max-width: 48px; max-height: 48px; }
  .site-header .brand-mark { width: 46px; height: 46px; flex-basis: 46px; }
  .site-footer .footer-inner { padding-top: 16px !important; padding-bottom: 14px !important; }
}
@media (max-width: 520px) {
  .site-header .header-inner { min-height: 70px !important; }
  .site-header .brand-logo img { max-width: 42px; max-height: 42px; }
  .site-header .brand-mark { width: 42px; height: 42px; flex-basis: 42px; }
}


/* v3.38: show the same site logo beside the footer brand name. */
.site-footer .footer-brand{display:flex;flex-direction:row;align-items:center;gap:14px;min-width:0}
.site-footer .footer-brand-logo{display:flex;align-items:center;flex:0 0 auto}
.site-footer .footer-brand-logo .custom-logo-link{display:block;line-height:0}
.site-footer .footer-brand-logo img{display:block;width:auto;height:auto;max-width:58px;max-height:58px;object-fit:contain;border-radius:50%}
.site-footer .footer-brand-copy{display:flex;flex-direction:column;min-width:0}
.site-footer .footer-brand-copy strong{color:#fff;font-weight:800;line-height:1.25}
.site-footer .footer-brand-copy span{color:#bdc6c3;font-size:12px;line-height:1.5;margin-top:4px}
@media(max-width:520px){.site-footer .footer-brand{gap:10px}.site-footer .footer-brand-logo img{max-width:46px;max-height:46px}}

/* v3.39: configurable responsive hero title sizes. */
@media (min-width: 701px) and (max-width: 1024px) { .hero-inner h1 { font-size: var(--oak-hero-title-size-tablet, 40px) !important; } }
@media (max-width: 700px) { .hero-inner h1 { font-size: var(--oak-hero-title-size-mobile, 32px) !important; } }


/* v3.40: button typography follows the configured responsive body text size. */
.site-main .entry-content .wp-block-button__link,
.site-main .entry-content input[type="submit"],
.site-main .entry-content button,
.site-main .entry-content .button,
.site-main .entry-content a.button,
.site-main .entry-content .wpcf7-submit {
  font-size: var(--oak-body-size, 16px) !important;
}
@media (min-width: 701px) and (max-width: 1024px) {
  .site-main .entry-content .wp-block-button__link,
  .site-main .entry-content input[type="submit"],
  .site-main .entry-content button,
  .site-main .entry-content .button,
  .site-main .entry-content a.button,
  .site-main .entry-content .wpcf7-submit {
    font-size: var(--oak-body-size-tablet, 15px) !important;
  }
}
@media (max-width: 700px) {
  .site-main .entry-content .wp-block-button__link,
  .site-main .entry-content input[type="submit"],
  .site-main .entry-content button,
  .site-main .entry-content .button,
  .site-main .entry-content a.button,
  .site-main .entry-content .wpcf7-submit {
    font-size: var(--oak-body-size-mobile, 14px) !important;
  }
}


/* v3.41: button dimensions scale with the responsive body-text setting.
   Em-based padding makes the overall button height and width follow its font size. */
.site-main .entry-content .wp-block-button__link,
.site-main .entry-content input[type="submit"],
.site-main .entry-content button,
.site-main .entry-content .button,
.site-main .entry-content a.button,
.site-main .entry-content .wpcf7-submit,
.site-main .entry-content .wp-block-file__button {
  font-size: var(--oak-body-size, 16px) !important;
  line-height: 1.25 !important;
  padding: .75em 1.375em !important;
  min-height: 0 !important;
  box-sizing: border-box;
}
@media (min-width: 701px) and (max-width: 1024px) {
  .site-main .entry-content .wp-block-button__link,
  .site-main .entry-content input[type="submit"],
  .site-main .entry-content button,
  .site-main .entry-content .button,
  .site-main .entry-content a.button,
  .site-main .entry-content .wpcf7-submit,
  .site-main .entry-content .wp-block-file__button {
    font-size: var(--oak-body-size-tablet, 15px) !important;
  }
}
@media (max-width: 700px) {
  .site-main .entry-content .wp-block-button__link,
  .site-main .entry-content input[type="submit"],
  .site-main .entry-content button,
  .site-main .entry-content .button,
  .site-main .entry-content a.button,
  .site-main .entry-content .wpcf7-submit,
  .site-main .entry-content .wp-block-file__button {
    font-size: var(--oak-body-size-mobile, 14px) !important;
  }
}


/* v3.43.1: use the Customizer's section-spacing value consistently.
   The separator receives the same margin above and below; content cards use
   the same variable instead of the previously mismatched variable name. */
.entry-content .wp-block-separator {
  margin-top: var(--oak-section-space, 34px) !important;
  margin-bottom: var(--oak-section-space, 34px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.entry-content .oakbt2-content-card {
  margin-bottom: var(--oak-section-space, 34px) !important;
}
@media (max-width: 767px) {
  .entry-content .oakbt2-content-card {
    margin-bottom: var(--oak-section-space, 34px) !important;
  }
}


/* v4.33: header top corners stay square; only the lower corners are rounded. */
.site-header {
  border-radius: 0 0 18px 18px;
}

/* v3.43.3: round and shadow the dark header when no hero image follows. Keep the footer bottom corners square. */
.site-header:not(:has(+ .hero-banner)) {
  border-radius: 0 0 18px 18px;
  box-shadow: 0 7px 16px rgba(30, 30, 25, 0.20);
  position: relative;
  z-index: 2;
}
.site-footer {
  border-radius: var(--oak-footer-radius, 18px) var(--oak-footer-radius, 18px) 0 0;
}


/* v3.43.4: keep the dark header at a consistent height on pages with a page title.
   The page title is positioned independently so it cannot push the logo and tagline down. */
.site-header .header-inner {
  position: relative;
  height: 88px;
  min-height: 88px !important;
  box-sizing: border-box;
}
.site-header .brand-copy {
  position: static;
}
.site-header .header-page-title {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  margin: 0 !important;
  white-space: nowrap;
}
@media (max-width: 767px) {
  .site-header .header-inner {
    height: 76px;
    min-height: 76px !important;
  }
  .site-header .header-page-title {
    right: 0;
    top: auto;
    bottom: 4px;
    transform: none;
    font-size: 11px;
  }
}
@media (max-width: 520px) {
  .site-header .header-inner {
    height: 70px;
    min-height: 70px !important;
  }
  .site-header .header-page-title {
    bottom: 2px;
    font-size: 10px;
  }
}

/* v4.0: configurable content heading color */
.sidebar-heading,.sidebar-widget .widget-title,.sidebar-widget h2,.sidebar-widget h3{color:var(--oak-heading-color,var(--oak-header))}


/* v4.1: configurable display font for the band name in the header only. */
.site-header .brand-title,
.hero-banner .hero-inner h1 {
  font-family: var(--oak-brand-font, "Nunito Sans"), Arial, sans-serif;
}

/* v4.2: apply the selected band-name display font to both the site header title and the hero title. */


/* v4.3: use the configurable band-name font in the dark footer brand title too. */
.site-footer .footer-brand-title,
.site-footer .footer-brand .brand-title,
.site-footer .footer-branding .brand-title,
.site-footer .footer-brand-copy strong {
  font-family: var(--oak-brand-font, "Nunito Sans"), Arial, sans-serif;
}


/* v4.5: keep the footer band name in the same natural casing as the header.
   Script display fonts can become cramped and hard to read when forced to uppercase. */
.site-footer .footer-brand-copy strong {
  text-transform: none;
  letter-spacing: 0;
  font-size: 20px;
  line-height: 1.25;
  display: block;
}


/* v4.6: shared configurable top spacing and aligned sidebar/content cards. */
@media (min-width: 1200px) {
  .site-main .content-shell {
    padding-top: var(--oak-content-top-space, 28px) !important;
  }
  .desktop-sidebar {
    margin-top: 0 !important;
    align-self: start;
  }
}


/* v4.7: the configurable top spacing moves the content grid as one unit.
   The sidebar card and left content column start at the same vertical position. */
@media (min-width: 768px) {
  .content-layout {
    align-items: start !important;
  }
  .content-layout > .desktop-sidebar,
  .content-layout > aside,
  .content-layout > .content-column {
    margin-top: 0 !important;
    align-self: start !important;
  }
}


/* v4.8: do not offset the sticky sidebar at initial page position.
   The configurable content-shell padding moves the whole grid equally. */
@media (min-width: 1200px) {
  .desktop-sidebar {
    top: 0 !important;
  }
}


/* v4.9: align the visible sidebar card with the first main content card.
   The offset is fixed and does not depend on the configurable content spacing. */
@media (min-width: 1200px) {
  .desktop-sidebar > .sidebar-inner {
    transform: translateY(-22px) !important;
  }
  .desktop-sidebar .sidebar-menu > li.menu-item-contact-request > a::after {
    color: #e88935 !important;
    opacity: 1 !important;
    filter: none !important;
  }
}
@media (max-width: 1199px) {
  .desktop-sidebar .sidebar-menu > li.menu-item-contact-request > a::after {
    color: #e88935 !important;
    opacity: 1 !important;
    filter: none !important;
  }
}


/* v4.10: force a colored text-style envelope glyph and place it beside the label,
   not at the far edge of the menu row (Safari/iPadOS included). */
.desktop-sidebar .sidebar-menu > li.menu-item-contact-request > a::after,
.site-header .primary-navigation .menu-item-contact-request > a::after {
  content: "✉︎" !important;
  margin-left: 10px !important;
  padding-left: 0 !important;
  color: #e88935 !important;
  -webkit-text-fill-color: #e88935 !important;
  opacity: 1 !important;
  filter: none !important;
}


/* v4.11: replace the tiny system-font glyph with a larger, CSS-drawn envelope
   that uses the site's orange accent and remains consistent in iPad Safari. */
.desktop-sidebar .sidebar-menu > li.menu-item-contact-request > a::after,
.site-header .primary-navigation .menu-item-contact-request > a::after {
  content: "" !important;
  display: inline-block !important;
  box-sizing: border-box !important;
  width: 19px !important;
  height: 14px !important;
  min-width: 19px !important;
  margin-left: 10px !important;
  padding: 0 !important;
  border: 2px solid #e88935 !important;
  border-radius: 3px !important;
  background:
    linear-gradient(33deg, transparent 46%, #e88935 47%, #e88935 54%, transparent 55%) left top / 50% 75% no-repeat,
    linear-gradient(-33deg, transparent 46%, #e88935 47%, #e88935 54%, transparent 55%) right top / 50% 75% no-repeat !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  opacity: 1 !important;
  filter: none !important;
  flex: 0 0 19px !important;
  vertical-align: middle !important;
  transform: none !important;
}


/* v4.13: restrained styling for optional WordPress sidebar widgets. */
.desktop-sidebar .sidebar-widgets {
  display: grid;
  gap: 16px;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(80, 72, 58, .16);
}
.desktop-sidebar .sidebar-widget {
  min-width: 0;
}
.desktop-sidebar .sidebar-widget > :first-child { margin-top: 0; }
.desktop-sidebar .sidebar-widget > :last-child { margin-bottom: 0; }
.desktop-sidebar .sidebar-title {
  margin: 0 0 9px;
  color: var(--oak-header, #202629);
  font-size: 1rem;
}
.desktop-sidebar .sidebar-widget ul {
  margin: 0;
  padding-left: 1.2em;
}
.desktop-sidebar .sidebar-widget a {
  overflow-wrap: anywhere;
}


/* 4.15: Respect visitors' reduced-motion accessibility preference. */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}


/* 4.17: Visible keyboard focus for accessible navigation and forms. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--oak-orange, #e88935);
  outline-offset: 3px;
}
:where(.menu-toggle, .social-link, .wp-block-button__link, .button):focus-visible {
  outline-offset: 4px;
}
:where(input:not([type="submit"]), select, textarea):focus-visible {
  border-color: var(--oak-dark-teal, #2d8f86);
  box-shadow: 0 0 0 2px rgba(45, 143, 134, .18);
}


/* 4.20: Keep the primary header navigation visible on wide desktop.
   The right-hand sidebar menu remains a separate, unchanged feature. */
@media (min-width: 1200px) {
  .site-header .header-inner {
    flex-wrap: wrap;
  }
  .site-header .primary-navigation {
    display: block !important;
    position: static !important;
    margin-left: auto !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    flex: 0 1 auto !important;
    max-width: 58%;
  }
  .site-header .primary-navigation > .menu-list {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 2px 14px !important;
  }
  .site-header .primary-navigation a {
    display: block !important;
    padding: 8px 0 !important;
    color: #fff !important;
    font-size: 13px !important;
    white-space: nowrap;
  }
  .site-header .primary-navigation a:hover,
  .site-header .primary-navigation .current-menu-item > a,
  .site-header .primary-navigation .current_page_item > a {
    color: var(--oak-orange, #e88935) !important;
  }
  .site-header .menu-toggle {
    display: none !important;
  }
}


/* 4.22: Contact Form 7 layout, controlled in Customizer > Kontaktformular. */
.entry-content form.wpcf7-form p {
  margin-block-start: 0 !important;
  margin-block-end: var(--oak-contact-field-gap, 10px) !important;
  padding-block: 0 !important;
}
.entry-content form.wpcf7-form label {
  display: block;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.3;
}
.entry-content form.wpcf7-form .wpcf7-form-control-wrap {
  display: block;
  margin-top: var(--oak-contact-label-gap, 3px);
}
.entry-content form.wpcf7-form input:not([type="submit"]),
.entry-content form.wpcf7-form select {
  box-sizing: border-box;
  height: var(--oak-contact-input-height, 38px);
  padding: 6px var(--oak-contact-field-padding, 9px);
  line-height: 1.35;
}
.entry-content form.wpcf7-form textarea {
  box-sizing: border-box;
  height: var(--oak-contact-textarea-height, 110px);
  min-height: var(--oak-contact-textarea-height, 110px);
  padding: var(--oak-contact-field-padding, 9px);
  line-height: 1.4;
}
.entry-content form.wpcf7-form input[type="submit"] {
  margin-top: 2px;
}


/* 4.23: Clear Contact Form 7 submission and validation feedback. */
.entry-content form.wpcf7-form .wpcf7-response-output {
  border: 1px solid rgba(66, 183, 168, .55);
  color: #315e58;
  background: #f0faf7;
}
.entry-content form.wpcf7-form.sent .wpcf7-response-output {
  border-color: #42a58f;
  color: #245e50;
  background: #edf8f2;
}
.entry-content form.wpcf7-form.invalid .wpcf7-response-output,
.entry-content form.wpcf7-form.failed .wpcf7-response-output,
.entry-content form.wpcf7-form.aborted .wpcf7-response-output,
.entry-content form.wpcf7-form.spam .wpcf7-response-output,
.entry-content form.wpcf7-form.unaccepted .wpcf7-response-output {
  border-color: #c65a50;
  color: #853b35;
  background: #fff3f1;
}
.entry-content form.wpcf7-form .wpcf7-not-valid {
  border-color: #bd5148 !important;
  box-shadow: 0 0 0 1px rgba(189, 81, 72, .12);
}
.entry-content form.wpcf7-form .wpcf7-not-valid:focus-visible {
  outline: 2px solid #bd5148;
  outline-offset: 2px;
}
.entry-content form.wpcf7-form .wpcf7-not-valid-tip {
  display: block;
  margin: 4px 0 0;
  color: #a13f37;
  font-size: 13px;
  line-height: 1.35;
}


/* v4.27: responsive hero image delivery; retain cover crop, overlay, sizing and rounded corners. */
.hero-banner {
  position: relative;
  isolation: isolate;
  background-image: none !important;
}
.hero-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(8,13,16,.62), rgba(8,13,16,.12));
  pointer-events: none;
}
.hero-banner .hero-background-image {
  position: absolute;
  inset: 0;
  z-index: -2;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  border-radius: 0;
}
.hero-banner .hero-inner {
  position: relative;
  z-index: 1;
}

/* v4.28: keep subpage titles inside the header flow on desktop.
   The old absolutely positioned title could extend over the right sidebar/menu
   on pages with longer names. The title now occupies its own line in the brand
   block; the sidebar and its sticky positioning remain untouched. */
@media (min-width: 901px) {
  .site-header .header-inner {
    height: auto !important;
    min-height: 88px !important;
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .site-header .brand-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
  }
  .site-header .header-page-title {
    position: static !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    display: block;
    max-width: min(100%, 420px);
    margin: 2px 0 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
    font-size: 11px;
    line-height: 1.2;
  }
}

/* v4.31: keep the current page label with the brand on every viewport.
   The earlier mobile rule placed it at the far right beneath the hamburger. */
.site-header .brand {
  min-width: 0;
  flex: 0 1 auto;
}
.site-header .brand-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
}
.site-header .header-page-title {
  position: static !important;
  inset: auto !important;
  transform: none !important;
  display: block;
  max-width: 100%;
  margin: 2px 0 0 !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
  font-size: 11px;
  line-height: 1.2;
}
.site-header .menu-toggle {
  flex: 0 0 46px;
  align-self: center;
}
@media (max-width: 900px) {
  .site-header .header-inner {
    height: auto !important;
    min-height: 76px !important;
    padding-top: 8px;
    padding-bottom: 8px;
    box-sizing: border-box;
  }
}
@media (max-width: 520px) {
  .site-header .header-inner {
    min-height: 70px !important;
  }
}


/* v4.32: slightly reduce vertical space around the homepage hero title. */
.hero-inner h1 { margin-top: 9px; margin-bottom: 9px; }


/* v4.34: header top edge is square with a solid dark fill; only bottom corners are rounded. */
.site-header {
  background-color: var(--oak-header, #15191b) !important;
  border-radius: 0 !important;
  border-bottom-left-radius: 18px !important;
  border-bottom-right-radius: 18px !important;
  /* Keep the mobile dropdown visible below the header; the rounded
     background itself does not require overflow clipping. */
  overflow: visible;
  isolation: isolate;
}
.site-header .header-inner {
  background: transparent;
}


/* v4.35: let the hero image run behind the rounded lower header corners.
   This prevents the light page background from showing through the corner cut-outs. */
@media (min-width: 0px) {
  .site-header { position: relative; z-index: 2; }
  .hero-banner { position: relative; z-index: 1; margin-top: -18px; padding-top: 18px; }
}




/* 4.39: Consistent right-side page icons in desktop sidebar, header navigation and mobile dropdown. */
/* Sidebar: always retain the small orange marker at the left, including the active item. */
.desktop-sidebar .sidebar-menu > li > a { position:relative !important; padding-left:42px !important; padding-right:40px !important; }
.desktop-sidebar .sidebar-menu > li > a:before,
.desktop-sidebar .sidebar-menu > li.current-menu-item > a:before,
.desktop-sidebar .sidebar-menu > li.current_page_item > a:before,
.desktop-sidebar .sidebar-menu > li.current-menu-ancestor > a:before {
 content:"" !important; position:absolute !important; left:17px !important; top:50% !important; transform:translateY(-50%) !important;
 display:block !important; width:8px !important; height:8px !important; min-width:8px !important; min-height:8px !important;
 padding:0 !important; border:0 !important; border-radius:50% !important; background:var(--oak-orange,#e88935) !important;
 background-image:none !important; box-shadow:0 0 0 3px rgba(232,137,53,.13) !important;
}
/* Header navigation and its hamburger dropdown: icons follow the page names. */
.site-header .menu-list > li > a { position:relative; }
.site-header .menu-list > li.oak-menu-icon-repertoire > a:after,
.desktop-sidebar .sidebar-menu > li.oak-menu-icon-repertoire > a:after { content:""; display:inline-block; width:18px; height:18px; flex:0 0 18px; margin-left:9px; vertical-align:middle; background:var(--oak-orange); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M9 18V5l12-2v13%22/%3E%3Ccircle cx=%226%22 cy=%2218%22 r=%223%22/%3E%3Ccircle cx=%2218%22 cy=%2216%22 r=%223%22/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M9 18V5l12-2v13%22/%3E%3Ccircle cx=%226%22 cy=%2218%22 r=%223%22/%3E%3Ccircle cx=%2218%22 cy=%2216%22 r=%223%22/%3E%3C/svg%3E") center/contain no-repeat; }
.site-header .menu-list > li.oak-menu-icon-mediathek > a:after,
.desktop-sidebar .sidebar-menu > li.oak-menu-icon-mediathek > a:after { content:""; display:inline-block; width:18px; height:18px; flex:0 0 18px; margin-left:9px; vertical-align:middle; background:var(--oak-orange); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%224%22 width=%2218%22 height=%2216%22 rx=%222%22/%3E%3Cpath d=%22m10 9 5 3-5 3z%22/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect x=%223%22 y=%224%22 width=%2218%22 height=%2216%22 rx=%222%22/%3E%3Cpath d=%22m10 9 5 3-5 3z%22/%3E%3C/svg%3E") center/contain no-repeat; }
.site-header .menu-list > li.oak-menu-icon-datenschutz > a:after,
.desktop-sidebar .sidebar-menu > li.oak-menu-icon-datenschutz > a:after { content:""; display:inline-block; width:18px; height:18px; flex:0 0 18px; margin-left:9px; vertical-align:middle; background:var(--oak-orange); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 22s8-4 8-11V5l-8-3-8 3v6c0 7 8 11 8 11z%22/%3E%3Cpath d=%22m9 12 2 2 4-4%22/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12 22s8-4 8-11V5l-8-3-8 3v6c0 7 8 11 8 11z%22/%3E%3Cpath d=%22m9 12 2 2 4-4%22/%3E%3C/svg%3E") center/contain no-repeat; }
.site-header .menu-list > li.oak-menu-icon-impressum > a:after,
.desktop-sidebar .sidebar-menu > li.oak-menu-icon-impressum > a:after { content:""; display:inline-block; width:18px; height:18px; flex:0 0 18px; margin-left:9px; vertical-align:middle; background:var(--oak-orange); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M8 3h8M12 3v18M5 7h14M6 7c0 4-2 6-4 6h8c-2 0-4-2-4-6zm12 0c0 4-2 6-4 6h8c-2 0-4-2-4-6zM7 21h10%22/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M8 3h8M12 3v18M5 7h14M6 7c0 4-2 6-4 6h8c-2 0-4-2-4-6zm12 0c0 4-2 6-4 6h8c-2 0-4-2-4-6zM7 21h10%22/%3E%3C/svg%3E") center/contain no-repeat; }
/* The contact-envelope stays as the existing right-side icon; do not duplicate it. */
.desktop-sidebar .sidebar-menu > li.menu-item-contact-request > a { padding-right:40px !important; }

/* 4.40: Home icon on the right, matching the other navigation icons. */
.site-header .menu-list > li.oak-menu-icon-home > a:after,
.desktop-sidebar .sidebar-menu > li.oak-menu-icon-home > a:after { content:""; display:inline-block; width:18px; height:18px; flex:0 0 18px; margin-left:9px; vertical-align:middle; background:var(--oak-orange); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m3 10 9-7 9 7%22/%3E%3Cpath d=%22M5 9v12h14V9M9 21v-7h6v7%22/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22black%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m3 10 9-7 9 7%22/%3E%3Cpath d=%22M5 9v12h14V9M9 21v-7h6v7%22/%3E%3C/svg%3E") center/contain no-repeat; }


/* 4.41: Keep the sidebar label start aligned; the contact envelope must not shift its text. */
@media (min-width: 901px) {
  .desktop-sidebar .sidebar-menu > li > a,
  .desktop-sidebar .sidebar-menu > li.menu-item-contact-request > a {
    box-sizing: border-box !important;
    padding-left: 42px !important;
    text-indent: 0 !important;
    gap: 0 !important;
  }
}


/* 4.42: final navigation alignment pass.
   Keep every mobile menu label on the same text column, including the contact link.
   Normalize row geometry so the active highlight is centered exactly like its siblings. */
@media (max-width: 900px) {
  .site-header .primary-navigation .menu-list > li > a {
    box-sizing: border-box !important;
    min-height: 48px !important;
    margin: 3px 0 !important;
    gap: 0 !important;
    align-items: center !important;
  }
  .site-header .primary-navigation .menu-item-contact-request > a {
    gap: 0 !important;
    padding-left: 10px !important;
  }
  .site-header .primary-navigation .menu-item-contact-request > a::before {
    margin-right: 13px !important;
  }
  .site-header .primary-navigation .menu-item-contact-request > a::after {
    margin-left: 10px !important;
  }
  .site-header .primary-navigation .current-menu-item > a,
  .site-header .primary-navigation .current_page_item > a,
  .site-header .primary-navigation .current-menu-ancestor > a {
    min-height: 48px !important;
    margin: 3px 0 !important;
    padding-top: 11px !important;
    padding-bottom: 11px !important;
  }
}

/* Desktop sidebar: active and inactive rows share identical dimensions and baseline. */
@media (min-width: 1200px) {
  .desktop-sidebar .sidebar-menu > li {
    margin-top: 3px !important;
    margin-bottom: 3px !important;
  }
  .desktop-sidebar .sidebar-menu > li > a {
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    min-height: 46px !important;
    height: 46px !important;
    margin: 0 !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    line-height: 1.35 !important;
    transform: none !important;
  }
  .desktop-sidebar .sidebar-menu > li.current-menu-item > a,
  .desktop-sidebar .sidebar-menu > li.current_page_item > a,
  .desktop-sidebar .sidebar-menu > li.current-menu-ancestor > a {
    min-height: 46px !important;
    height: 46px !important;
    margin: 0 !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }
}

/* v4.53: Fix Contact Form 7 date-field overflow in Safari/iPadOS.
   CF7 wraps controls in an inline span. A 100%-wide native date input inside
   that inline wrapper can calculate a wider intrinsic width in Safari.
   Make the wrapper a real full-width block, then size the control to it. */
.entry-content form.wpcf7-form .wpcf7-form-control-wrap {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}
.entry-content form.wpcf7-form input[type="date"],
.entry-content form.wpcf7-form input.wpcf7-date,
.entry-content form.wpcf7-form input[type="datetime-local"] {
  display: block !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  inline-size: 100% !important;
  max-inline-size: 100% !important;
  margin: 0 !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
