/**
 * Buttons, cards, hero, header, footer and content components.
 */

.annwn-button,
.annwn-theme .wp-element-button,
.annwn-theme .wp-block-button__link,
.annwn-theme input[type="submit"],
.annwn-theme button:not(.slick-arrow):not(.navbar-toggle) {
  align-items: center;
  background: var(--annwn-bronze);
  border: 1px solid var(--annwn-bronze);
  border-radius: var(--annwn-radius-sm);
  box-shadow: none;
  color: var(--annwn-ink);
  display: inline-flex;
  font-family: var(--annwn-font-accent);
  font-size: var(--annwn-text-xs);
  font-weight: 600;
  justify-content: center;
  letter-spacing: 0.12em;
  line-height: 1.2;
  min-height: 3rem;
  padding: 0.9rem 1.65rem;
  text-decoration: none;
  text-transform: uppercase;
  transition: background var(--annwn-transition), border-color var(--annwn-transition), color var(--annwn-transition), transform var(--annwn-transition);
}

.annwn-button:hover,
.annwn-button:focus-visible,
.annwn-theme .wp-element-button:hover,
.annwn-theme .wp-element-button:focus-visible,
.annwn-theme .wp-block-button__link:hover,
.annwn-theme input[type="submit"]:hover {
  background: var(--annwn-brass);
  border-color: var(--annwn-brass);
  color: var(--annwn-ink);
  transform: translateY(-1px);
}

.annwn-button--ghost,
.annwn-theme .is-style-outline > .wp-block-button__link {
  background: transparent;
  border-color: var(--annwn-bronze);
  color: var(--annwn-ivory);
}

.annwn-card {
  background: var(--annwn-anthracite);
  border: 1px solid var(--annwn-border);
  border-radius: var(--annwn-radius-sm);
  color: var(--annwn-ivory);
  overflow: hidden;
  position: relative;
  transition: border-color var(--annwn-transition), box-shadow var(--annwn-transition-slow), transform var(--annwn-transition-slow);
}

.annwn-card:hover {
  border-color: color-mix(in srgb, var(--annwn-bronze) 70%, var(--annwn-border));
  box-shadow: var(--annwn-shadow-soft);
  transform: translateY(-3px);
}

.annwn-card__content {
  padding: clamp(1.25rem, 3vw, 2rem);
}

.annwn-badge {
  background: var(--annwn-bronze);
  border-radius: var(--annwn-radius-sm);
  color: var(--annwn-ink);
  display: inline-flex;
  font-family: var(--annwn-font-accent);
  font-size: var(--annwn-text-min);
  font-weight: 600;
  letter-spacing: 0.1em;
  padding: 0.35rem 0.7rem;
  text-transform: uppercase;
}

.annwn-divider {
  background: linear-gradient(90deg, transparent, var(--annwn-bronze), transparent);
  border: 0;
  height: 1px;
  margin-block: var(--annwn-space-7);
}

.annwn-image-frame {
  background: var(--annwn-surface);
  border: 1px solid var(--annwn-border);
  padding: var(--annwn-space-3);
}

.annwn-image-frame img {
  display: block;
  height: auto;
  width: 100%;
}

.annwn-theme #masthead,
.annwn-theme .primary_header_2_wrapper,
.annwn-theme .navbar-default {
  background: var(--annwn-ink);
}

.annwn-theme .primary_header_2_wrapper,
.annwn-theme .navbar-default {
  border-color: var(--annwn-border);
}

/* Optional photographic brand band, independent from the homepage Hero. */
.annwn-has-header-brand-image .primary_header_2_wrapper {
  align-items: center;
  background-color: var(--annwn-ink);
  background-image: var(--annwn-header-brand-image);
  background-position: var(--annwn-header-brand-position, center center);
  background-repeat: no-repeat;
  background-size: cover;
  border-block: 1px solid var(--annwn-border);
  display: flex;
  min-height: var(--annwn-header-brand-height, 220px);
  overflow: hidden;
  position: relative;
}

.annwn-has-header-brand-image .primary_header_2_wrapper > .container,
.annwn-has-header-brand-image .primary_header_2_wrapper > .container > .row,
.annwn-has-header-brand-image .primary_header_2_wrapper > .container > .row > [class*="col-"],
.annwn-has-header-brand-image .primary_header_2_wrapper .primary_header_2 {
  min-height: inherit;
  position: static;
}

.annwn-has-header-brand-image .primary_header_2_wrapper .primary_header_2 a.logo {
  align-items: center;
  display: flex;
  flex-direction: column;
  float: none;
  inset: 0;
  justify-content: center;
  min-height: inherit;
  padding: var(--annwn-space-5) var(--annwn-gutter);
  position: absolute;
  text-align: center;
  text-decoration: none;
  width: 100%;
  z-index: 1;
}

.annwn-has-header-brand-image .primary_header_2_wrapper .primary_header_2 a.logo::before {
  background: linear-gradient(90deg, rgba(var(--annwn-black-rgb), 0.82), rgba(var(--annwn-black-rgb), 0.48), rgba(var(--annwn-black-rgb), 0.82));
  content: "";
  inset: 0;
  position: absolute;
  transition: background var(--annwn-transition-slow);
  z-index: -1;
}

.annwn-has-header-brand-image .primary_header_2_wrapper .primary_header_2 a.logo:hover::before,
.annwn-has-header-brand-image .primary_header_2_wrapper .primary_header_2 a.logo:focus-visible::before {
  background: linear-gradient(90deg, rgba(var(--annwn-black-rgb), 0.76), rgba(var(--annwn-black-rgb), 0.34), rgba(var(--annwn-black-rgb), 0.76));
}

.annwn-has-header-brand-image .primary_header_2_wrapper .header_site_title {
  color: var(--annwn-ivory);
  text-shadow: 0 2px 24px rgba(var(--annwn-black-rgb), 0.9);
  transition: color var(--annwn-transition);
}

.annwn-has-header-brand-image .primary_header_2_wrapper a.logo:hover .header_site_title,
.annwn-has-header-brand-image .primary_header_2_wrapper a.logo:focus-visible .header_site_title {
  color: var(--annwn-brass);
}

.annwn-has-header-brand-image .primary_header_2_wrapper .header_site_description {
  color: var(--annwn-ivory);
  text-shadow: 0 1px 16px rgba(var(--annwn-black-rgb), 0.95);
}

.annwn-theme .navbar-default .navbar-nav > li > a {
  color: var(--annwn-ivory);
  position: relative;
  text-decoration: none;
}

.annwn-theme .navbar-default .navbar-nav > li > a::after {
  background: var(--annwn-bronze);
  bottom: 0.65rem;
  content: "";
  height: 1px;
  inset-inline: 1.25rem;
  position: absolute;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform var(--annwn-transition);
}

.annwn-theme .navbar-default .navbar-nav > li > a:hover::after,
.annwn-theme .navbar-default .navbar-nav > .current-menu-item > a::after,
.annwn-theme .navbar-default .navbar-nav > .current-menu-ancestor > a::after {
  transform: scaleX(1);
}

.annwn-theme .navbar-nav li ul {
  background: var(--annwn-anthracite);
  border-color: var(--annwn-border);
  box-shadow: var(--annwn-shadow-soft);
}

.annwn-theme .homepage_banner {
  isolation: isolate;
  min-height: clamp(34rem, 72vh, 52rem);
  position: relative;
}

.annwn-theme .homepage_banner .overlay {
  background: linear-gradient(90deg, rgba(var(--annwn-black-rgb), 0.92) 0%, rgba(var(--annwn-black-rgb), 0.58) 52%, rgba(var(--annwn-black-rgb), 0.28) 100%);
  inset: 0;
  position: absolute;
  z-index: -1;
}

.annwn-theme .homepage_banner .section-title {
  max-width: 48rem;
}

.annwn-theme .homepage_banner h1.banner_title {
  color: var(--annwn-ivory);
  font-family: var(--annwn-font-display);
  font-size: var(--annwn-text-display);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 0.98;
  margin-bottom: var(--annwn-space-5);
}

.annwn-theme .homepage_banner .banner_subtitle {
  color: var(--annwn-ivory);
  font-family: var(--annwn-font-display);
  font-size: clamp(1.35rem, 2.5vw, 1.8rem);
  line-height: 1.45;
  max-width: 38rem;
}

.annwn-theme #footer {
  background: var(--annwn-ink);
  border-top: 1px solid var(--annwn-border);
  color: var(--annwn-stone);
  padding-block: var(--annwn-space-7);
}

.annwn-theme #footer .annwn-footer__brand {
  color: var(--annwn-ivory);
  font-family: var(--annwn-font-brand);
  font-size: 2rem;
  font-synthesis: none;
  font-weight: 400;
  letter-spacing: 0.08em;
  margin: 0 0 var(--annwn-space-2);
  text-transform: uppercase;
}

.annwn-theme #footer .annwn-footer__tagline {
  color: var(--annwn-stone);
  margin: 0 auto var(--annwn-space-6);
  max-width: 38rem;
}

.annwn-theme #footer .inline-menu a,
.annwn-theme #footer .copyright,
.annwn-theme #footer .copyright a {
  color: var(--annwn-stone);
}

.annwn-theme #back-to-top a {
  background: var(--annwn-bronze);
  color: var(--annwn-ink);
}
