/* WordPress template and plugin integration */
body.admin-bar .site-header { top: 32px; }
.site-header.is-compact { min-height: 5.25rem; box-shadow: 0 8px 30px rgba(8,40,60,.09); }
.site-nav .menu { display: flex; align-items: center; gap: clamp(1rem,2.3vw,2.4rem); margin: 0; padding: 0; list-style: none; }
.site-nav .menu-item { margin: 0; }
.site-nav .current-menu-item > a,
.site-nav .current_page_item > a { color: var(--blue); opacity: 1; }
.site-nav .menu-item:last-child > a { padding: .7rem 1.05rem; border: 1px solid currentColor; border-radius: .2rem; }

.content-main { min-height: 70vh; }
.page-hero,
.article-hero { padding: 11rem 6vw 5rem; color: #fff; background: var(--navy); }
.page-hero h1,
.article-hero h1 { max-width: 18ch; margin: 0; font-size: clamp(3rem,7vw,7rem); line-height: .95; letter-spacing: -.065em; }
.page-hero > p:last-child,
.archive-description { max-width: 45rem; margin: 1.5rem 0 0; color: rgba(255,255,255,.7); font-size: 1.1rem; }
.article-meta { display: flex; flex-wrap: wrap; gap: 1.25rem; margin-top: 2rem; color: rgba(255,255,255,.68); font-size: .88rem; }
.page-featured,
.article-featured { height: clamp(20rem,48vw,42rem); margin: 0; overflow: hidden; background: var(--navy); }
.page-featured img,
.article-featured img { width: 100%; height: 120%; object-fit: cover; will-change: transform; }

.entry-content { width: min(100% - 2.5rem, 760px); margin: 0 auto; padding: clamp(4rem,8vw,7rem) 0; }
.entry-content > * { max-width: 100%; }
.entry-content h2 { margin: 2.4em 0 .65em; font-size: clamp(2rem,4vw,3.7rem); line-height: 1.08; letter-spacing: -.045em; }
.entry-content h3 { margin: 2em 0 .6em; font-size: clamp(1.45rem,2.5vw,2.2rem); line-height: 1.18; }
.entry-content p,
.entry-content li { color: var(--muted); }
.entry-content a { color: var(--blue); text-underline-offset: .18em; }
.entry-content img { max-width: 100%; height: auto; }
.entry-content blockquote { margin: 2rem 0; padding: 1.2rem 0 1.2rem 1.5rem; border-left: 4px solid var(--lime); color: var(--navy); font: 600 clamp(1.3rem,2.2vw,1.9rem)/1.4 var(--display); }
.entry-content .alignwide { width: min(1180px, calc(100vw - 2.5rem)); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.entry-content .alignfull { width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }

.archive-section { background: var(--white); }
.archive-grid { grid-template-columns: repeat(3,1fr); }
.news-card h3 a { display: inline; justify-content: initial; padding: 0; border: 0; text-decoration: none; }
.news-card .post-categories { list-style: none; margin: 0; padding: 0; }
.empty-state { grid-column: 1/-1; padding: 2rem; border: 1px solid var(--line); background: var(--mist); }
.navigation.pagination { margin-top: 3rem; }
.nav-links { display: flex; flex-wrap: wrap; gap: .5rem; }
.page-numbers { min-width: 2.7rem; padding: .62rem .85rem; border: 1px solid var(--line); text-align: center; text-decoration: none; }
.page-numbers.current { border-color: var(--blue); background: var(--blue); color: #fff; }
.post-navigation { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; width: min(100% - 2.5rem, 1180px); margin: 0 auto 5rem; }
.post-navigation div:last-child { text-align: right; }
.post-navigation a { color: var(--blue); font-weight: 700; text-decoration: none; }
.article-footer { width: min(100% - 2.5rem,760px); margin: -4rem auto 4rem; }
.tag-list a { display: inline-block; margin: .25rem; padding: .35rem .6rem; background: var(--mist); color: var(--blue); text-decoration: none; font-size: .8rem; }

.contact-cta { align-items: center; }
.contact-cta-action { align-self: center; justify-self: end; }
.wp-contact-page { padding-top: 11rem; }
.wp-contact-page h1 { font: 600 clamp(3rem,6vw,6rem)/.98 var(--display); letter-spacing: -.055em; }
.wp-form-content > :first-child { margin-top: 0; }
.wp-form-content > :last-child { margin-bottom: 0; }

/* Common WordPress form plugins inherit the theme form treatment. */
.wp-form-content label,
.wpforms-container label,
.gform_wrapper label,
.wpcf7 label { color: var(--ink); font-size: .84rem; font-weight: 700; }
.wp-form-content input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.wp-form-content textarea,
.wp-form-content select,
.wpforms-container input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.wpforms-container textarea,
.wpforms-container select,
.gform_wrapper input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.gform_wrapper textarea,
.gform_wrapper select,
.wpcf7 input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.wpcf7 textarea,
.wpcf7 select { width: 100%; padding: .82rem .9rem; border: 1px solid var(--line); border-radius: 0; background: #fbfcfc; color: var(--ink); font: inherit; }
.wp-form-content button,
.wp-form-content input[type=submit],
.wpforms-container button[type=submit],
.gform_wrapper input[type=submit],
.wpcf7 input[type=submit] { width: 100%; padding: 1rem 1.15rem; border: 0; border-radius: 0; background: var(--lime); color: var(--navy); font: 700 1rem var(--sans); cursor: pointer; }
.wpforms-field,
.gfield,
.wpcf7-form > p { margin-bottom: 1.15rem; }

.search-form { display: flex; max-width: 42rem; margin-top: 2rem; }
.search-form label { flex: 1; }
.search-field { width: 100%; height: 3.3rem; padding: .7rem 1rem; border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.1); color: #fff; font: inherit; }
.search-form button { padding: .7rem 1.2rem; border: 0; background: var(--lime); color: var(--navy); font-weight: 700; }
.error-page { min-height: 75vh; display: flex; flex-direction: column; justify-content: center; }
.error-page .button { margin-top: 1rem; align-self: flex-start; }

@media (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
}
@media (max-width: 760px) {
  .site-nav .menu { display: block; }
  .site-nav .menu-item:last-child > a { display: block; margin-top: .45rem; text-align: center; }
  .page-hero,.article-hero { padding: 9rem 1.25rem 4rem; }
  .archive-grid { grid-template-columns: 1fr; }
  .post-navigation { grid-template-columns: 1fr; }
  .post-navigation div:last-child { text-align: left; }
  .wp-contact-page { padding-top: 8rem; }
  .contact-cta-action { justify-self: stretch; }
}
@media (max-width: 600px) {
  body.admin-bar .site-header { top: 0; }
}
