/* Component details without native GP controls. Colors/layout of theme areas live in Customizer. */
.cc-footer-block {}
.cc-footer-brand-link {display:block;width:fit-content;margin:0 auto 6px;}
.cc-footer-mascot {display:block;width:140px;max-width:100%;height:auto;}
.cc-footer-tagline {margin:0 0 8px;font-weight:700;}
.cc-footer-description {margin:0;max-width:290px;}
.cc-footer-links {display:flex;flex-direction:column;align-items:flex-start;gap:10px;}
.cc-footer-link {text-decoration:none;}
.cc-footer-link:hover {text-decoration:underline;text-underline-offset:4px;}
.cc-footer-social-label {margin:24px 0 10px;font-weight:700;}
.cc-footer-block a:focus-visible {outline:2px solid currentColor;outline-offset:4px;}
/* Native GP copyright area: legal links stay at the center of the full row. */
.site-info .copyright-bar {width:100%;}
.cc-footer-bottom {display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px;width:100%;}
.cc-footer-copyright {text-align:left;}
.cc-footer-legal {display:flex;justify-content:center;flex-wrap:wrap;gap:8px 20px;}
.cc-footer-legal a {text-decoration:none;}
.cc-footer-legal a:focus-visible {outline:2px solid currentColor;outline-offset:4px;}
.cc-footer-motto {text-align:right;}
.cc-legal-page .site-content {max-width:860px;margin-inline:auto;}
.cc-legal-page .content-area {width:100%;}
.cc-legal-page .inside-article {padding:32px 24px;}
.cc-legal-page .entry-content h2 {margin-top:36px;font-size:clamp(22px,3vw,28px);line-height:1.3;}
.cc-legal-page .entry-content a {text-decoration:underline;text-underline-offset:3px;}
@media(max-width:960px) {
 .cc-footer-bottom {grid-template-columns:1fr;gap:14px;}
 .cc-footer-copyright,.cc-footer-motto {text-align:center;}
}
/* GP Menu Plus lacks controls for inner mobile-logo padding/alignment. */
@media(max-width:1024px) {
 #mobile-header .inside-navigation {padding-inline:22px;}
 #mobile-header .mobile-header-logo {margin-left:0;}
 #mobile-header .mobile-header-logo img {width:156px;height:58px;padding:17px 0;box-sizing:border-box;object-fit:contain;}
 #mobile-header .menu-toggle,#mobile-header .mobile-bar-items a {line-height:58px;}
 #mobile-header .menu-toggle {padding-right:0;}
}

/* Social icons inherit footer link colors configured in GeneratePress. */
.cc-footer-socials {display:flex;flex-wrap:wrap;gap:10px;}
.cc-footer-social-link {display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--contrast-3);border-radius:9px;text-decoration:none;}
.cc-footer-social-link:hover {border-color:currentColor;}
.cc-footer-social-icon,.cc-footer-social-icon svg {display:block;width:20px;height:20px;}

/* Native menu items: shape and indicator only; colors are Customizer settings. */
.main-navigation .main-nav > ul > li > a {position:relative;border-radius:8px;transition:background-color .15s,color .15s;}
.main-navigation .main-nav > ul > li > a::after {content:"";position:absolute;left:16px;right:16px;bottom:4px;height:2px;border-radius:2px;background:currentColor;opacity:0;}
.main-navigation .main-nav > ul > li.current-menu-item > a::after,
.main-navigation .main-nav > ul > li.cc-menu-section-current > a::after {opacity:1;}
.main-navigation .main-nav > ul > li.cc-menu-section-current > a {color:var(--accent);}
.main-navigation .main-nav > ul > li > a:focus-visible {outline:2px solid currentColor;outline-offset:2px;}
@media(max-width:1024px) {
 .main-navigation.toggled .main-nav > ul {padding:8px 0 16px;}
 .main-navigation.toggled .main-nav > ul > li > a {margin-block:3px;}
 .main-navigation.toggled .main-nav > ul > li > a::after {left:0;right:auto;top:16px;bottom:16px;height:auto;width:3px;}
}
@media(prefers-reduced-motion:reduce) {.main-navigation .main-nav > ul > li > a {transition:none;}}

/* Subtle header separator; heights and sticky behavior use native GP settings. */
.site-header, #mobile-header, .main-navigation.navigation-stick {
 box-shadow:0 1px 0 var(--contrast-3);
}
/* GP scales the sticky logo with menu height; retain the approved brand size. */
@media(min-width:1025px) {
 .main-navigation.navigation-stick .sticky-navigation-logo img {width:222px;object-fit:contain;padding:18px 0;box-sizing:border-box;}
}
/* Keep the indicator near its label, independent of the navigation's height. */
@media(min-width:1025px) {
 .main-navigation .main-nav > ul > li > a::after {top:calc(50% + 16px);bottom:auto;}
 .main-navigation .navigation-logo img,
 .main-navigation .sticky-navigation-logo img {transition:none;}
}
@media(min-width:1025px) {
 .site-header .inside-header {display:flex;align-items:center;}
 .site-header .inside-header > .main-navigation {margin-left:auto;}
}
/* A light elevation only while the native GP sticky navigation is active. */
#sticky-navigation.navigation-stick,
#mobile-header.navigation-stick {
 box-shadow:0 1px 0 var(--contrast-3),0 5px 14px rgba(24,59,50,.06);
}

/* One rounded surface for the native search field and its close control. */
.main-navigation .navigation-search input[type="search"] {border-radius:8px;}
.main-navigation .main-nav ul li.search-item.active > a,
.main-navigation .menu-bar-items .search-item.active > a {border-radius:0 8px 8px 0;}

/* Match the sticky search area to the actual menu width, not a logo offset. */
@media(min-width:1025px) {
 #sticky-navigation.has-sticky-branding .inside-navigation {
  display:grid;grid-template-columns:auto 1fr max-content;align-items:center;
 }
 #sticky-navigation.has-sticky-branding .inside-navigation::before,
 #sticky-navigation.has-sticky-branding .inside-navigation::after {display:none;}
 #sticky-navigation.has-sticky-branding .sticky-navigation-logo {grid-column:1;grid-row:1;}
 #sticky-navigation.has-sticky-branding .main-nav {grid-column:3;grid-row:1;}
 #sticky-navigation.has-sticky-branding .navigation-search {grid-column:3;grid-row:1;}
 #sticky-navigation.has-sticky-branding .navigation-search.nav-search-active {left:0;width:100%;}
}
/* Keep breathing room above and below the open field, including its close button. */
.main-navigation .navigation-search {top:16px;}
.main-navigation .navigation-search input[type="search"],
#sticky-navigation .navigation-search input[type="search"],
#mobile-header .navigation-search input[type="search"] {height:48px;}
.main-navigation .main-nav ul li.search-item.active > a,
.main-navigation .menu-bar-items .search-item.active > a {
 margin-block:16px;line-height:48px;
}
