/* ==========================================================================
   Anchor Framework — Sections (sections.css)
   Hero, navigation, footer, and all named page sections.
   ========================================================================== */

/* =======================================================================
   HERO
   ======================================================================= */
.anchor-hero {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  min-height: 100dvh;
  width: 100%;
  text-decoration: none;
  color: inherit;
}

.anchor-hero--short {
  min-height: max(45dvh, 350px);
}

.anchor-hero--medium {
  min-height: max(70dvh, 500px);
}

.anchor-hero__bg {
  position: absolute;
  inset: 0;
}

.anchor-hero__bg picture {
  display: block;
  width: 100%;
  height: 100%;
}

.anchor-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.anchor-hero__overlay {
  position: absolute;
  inset: 0;
}

.anchor-hero__overlay--lr {
  background: linear-gradient(to right, var(--anchor-navy) 0%, rgba(var(--anchor-navy-rgb), 0.7) 40%, transparent 100%);
}

.anchor-hero__overlay--bt {
  background: linear-gradient(to top, var(--anchor-navy) 0%, rgba(var(--anchor-navy-rgb), 0.4) 40%, transparent 100%);
}

.anchor-hero__content {
  position: relative;
  z-index: 10;
  width: 100%;
}

.anchor-hero__inner {
  max-width: 60rem;
}

.anchor-hero__heading {
  color: #fff;
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1.1;
  letter-spacing: -0.025em;
}

.anchor-hero__heading .anchor-text-drama {
  color: var(--anchor-brand-400);
}

.anchor-hero__text {
  color: rgba(255, 255, 255, 0.6);
  max-width: 36rem;
  line-height: 1.7;
}

.anchor-hero--full {
  min-height: 100dvh;
}

.anchor-hero--blog {
  min-height: max(55dvh, 400px);
  flex-direction: column;
  justify-content: flex-end;
}

.anchor-hero--centered {
  text-align: center;
  padding-top: 10rem;
  padding-bottom: 4rem;
}

.anchor-hero--solid {
  background: var(--anchor-navy);
}

.anchor-hero__overlay--gradient-top {
  background: linear-gradient(
    to top,
    var(--anchor-navy) 0%,
    rgba(var(--anchor-navy-rgb), 0.6) 40%,
    rgba(var(--anchor-navy-rgb), 0.2) 100%
  );
}

.anchor-hero__overlay--gradient-top-fade {
  background: linear-gradient(to top, var(--anchor-navy) 0%, rgba(var(--anchor-navy-rgb), 0.6) 40%, transparent 100%);
}

.anchor-hero__content--full {
  padding-top: 15rem;
  padding-bottom: 4rem;
}

.anchor-hero__content--short {
  padding-bottom: 3rem;
}

.anchor-hero__content--archive {
  padding-bottom: 4rem;
}

.anchor-hero__content--centered {
  padding-top: 10rem;
  padding-bottom: 4rem;
}

.anchor-hero__content--short-inner {
  padding-top: 10rem;
  padding-bottom: 3rem;
}

.anchor-hero__back-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  font-size: 0.875rem;
}

.anchor-hero__badge-wrap {
  margin-bottom: 1rem;
}

.anchor-hero__badge-nav {
  margin-bottom: 1.25rem;
  display: inline-flex;
  text-decoration: none;
}

.anchor-hero__heading--blog {
  font-size: clamp(1.75rem, 4vw, 3rem);
  line-height: 1.15;
}

.anchor-hero__heading--archive {
  font-size: clamp(1.75rem, 4vw, 3.5rem);
  line-height: 1.05;
}

.anchor-hero__heading--page {
  font-size: clamp(2rem, 5vw, 3.5rem);
}

.anchor-hero__excerpt {
  margin-top: 1.25rem;
  color: rgba(255, 255, 255, 0.6);
  font-size: clamp(0.875rem, 1.5vw, 1.125rem);
  max-width: 40rem;
  line-height: 1.6;
}

.anchor-hero__subtitle {
  margin-top: 1rem;
  color: rgba(255, 255, 255, 0.6);
  font-size: clamp(0.875rem, 1.5vw, 1.125rem);
  max-width: 40rem;
}

.anchor-hero__subtitle--search {
  margin-top: 0.75rem;
  color: rgba(255, 255, 255, 0.5);
  font-size: 1rem;
}

.anchor-hero__meta-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}

.anchor-hero__date-row {
  margin-top: 1.5rem;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  color: rgba(255, 255, 255, 0.4);
  font-size: 0.875rem;
}

.anchor-hero__date-item {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.anchor-hero__read-link {
  margin-top: 2rem;
  color: var(--anchor-brand-400);
}

.anchor-hero__stretched-link {
  position: absolute;
  inset: 0;
  z-index: 15;
}

.anchor-hero__featured-img {
  transition: transform 0.7s ease;
}

/* =======================================================================
   ARTICLE LAYOUT
   ======================================================================= */
.anchor-article__main {
  max-width: 48rem;
}

.anchor-article__meta-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.25rem;
  padding: 1.5rem 0;
  margin-bottom: 2rem;
  border-bottom: 1px solid rgba(var(--anchor-navy-rgb), 0.08);
}

.anchor-article__meta-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: rgba(var(--anchor-navy-rgb), 0.5);
  font-size: 0.875rem;
}

.anchor-article__tags {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(var(--anchor-navy-rgb), 0.08);
}

.anchor-article__tags-list {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.anchor-article__tag {
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  background: var(--anchor-surface-200);
  color: rgba(var(--anchor-navy-rgb), 0.5);
  font-size: 0.75rem;
  font-weight: 500;
}

.anchor-article__cta-card {
  margin-top: 3rem;
  background: var(--anchor-brand-500);
  border-radius: var(--anchor-radius-3xl);
  padding: 2rem 2.5rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.anchor-article__cta-heading {
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  font-size: 1.5rem;
  color: white;
  letter-spacing: -0.025em;
}

.anchor-article__cta-text {
  margin-top: 0.5rem;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.875rem;
  max-width: 28rem;
  margin-left: auto;
  margin-right: auto;
}

.anchor-article__cta-btn {
  margin-top: 1.25rem;
}

.anchor-article__back-wrap {
  margin-top: 2rem;
}

.anchor-article__back-link {
  flex-direction: row-reverse;
}

/* =======================================================================
   SIDEBAR
   ======================================================================= */
.anchor-sidebar__sticky {
  position: sticky;
  top: 6rem;
}

/* =======================================================================
   RELATED POSTS
   ======================================================================= */
.anchor-related {
  max-width: 56rem;
  margin: 0 auto;
}

.anchor-related__heading {
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  font-size: 1.25rem;
  margin-bottom: 2rem;
}

.anchor-related__card {
  display: flex;
  gap: 1rem;
  padding: 1rem;
}

.anchor-related__thumb {
  width: 6rem;
  height: 6rem;
  border-radius: var(--anchor-radius-xl);
  overflow: hidden;
  flex-shrink: 0;
}

.anchor-related__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.anchor-related__body {
  flex: 1;
  min-width: 0;
}

.anchor-related__category {
  color: var(--anchor-brand-500);
  font-size: 0.75rem;
  font-weight: 600;
}

.anchor-related__title {
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  font-size: 0.875rem;
  line-height: 1.3;
  margin-top: 0.25rem;
}

/* =======================================================================
   ARCHIVE
   ======================================================================= */
.anchor-archive__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: 3rem;
}

.anchor-archive__badge {
  margin-bottom: 1rem;
}

.anchor-archive__title {
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  letter-spacing: -0.025em;
}

.anchor-archive__drama {
  color: var(--anchor-brand-500);
}

.anchor-archive__excerpt {
  color: rgba(var(--anchor-navy-rgb), 0.55);
  font-size: 0.875rem;
  line-height: 1.6;
}

.anchor-archive__link-arrow {
  margin-top: 1rem;
}

.anchor-archive__empty {
  text-align: center;
  padding: 5rem 0;
}

.anchor-archive__empty-text {
  color: rgba(var(--anchor-navy-rgb), 0.4);
  font-size: 1.125rem;
}

/* =======================================================================
   EVENT CARD META
   ======================================================================= */
.anchor-event-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.anchor-event-meta__item {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.anchor-event-meta__location {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  color: rgba(var(--anchor-navy-rgb), 0.55);
  font-size: 0.813rem;
  margin-top: 0.25rem;
}

.anchor-event-meta__excerpt {
  color: rgba(var(--anchor-navy-rgb), 0.55);
  font-size: 0.875rem;
  line-height: 1.6;
  margin-top: 0.5rem;
}

/* =======================================================================
   POST CARD OVERRIDES
   ======================================================================= */
.anchor-post-card__category-badge {
  background: rgba(255, 255, 255, 0.9);
  color: var(--anchor-brand-600);
  font-weight: 600;
}

.anchor-post-card__meta-type {
  text-transform: capitalize;
}

/* =======================================================================
   SEARCH RESULTS
   ======================================================================= */
.anchor-search-container {
  max-width: 56rem;
}

.anchor-search__empty {
  text-align: center;
  padding: 5rem 0;
}

.anchor-search__empty-icon {
  width: 4rem;
  height: 4rem;
  margin: 0 auto 1.5rem;
  border-radius: var(--anchor-radius-2xl);
  background: var(--anchor-surface-200);
  display: flex;
  align-items: center;
  justify-content: center;
}

.anchor-search__empty-heading {
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  font-size: 1.5rem;
  letter-spacing: -0.025em;
}

.anchor-search__empty-text {
  margin-top: 0.75rem;
  color: rgba(var(--anchor-navy-rgb), 0.5);
  font-size: 1rem;
  max-width: 28rem;
  margin-left: auto;
  margin-right: auto;
}

.anchor-search__empty-actions {
  margin-top: 2rem;
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

/* =======================================================================
   404 PAGE
   ======================================================================= */
.anchor-404 {
  min-height: 80dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--anchor-navy);
}

.anchor-404__inner {
  text-align: center;
  padding: 3rem 1.5rem;
  max-width: 36rem;
}

.anchor-404__number {
  font-family: var(--anchor-font-heading);
  font-weight: 800;
  font-size: clamp(6rem, 15vw, 10rem);
  line-height: 1;
  letter-spacing: -0.05em;
  color: rgba(255, 255, 255, 0.06);
}

.anchor-404__heading {
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  color: white;
  letter-spacing: -0.025em;
  margin-top: -1rem;
}

.anchor-404__text {
  margin-top: 1rem;
  color: rgba(255, 255, 255, 0.5);
  font-size: 1rem;
  line-height: 1.6;
}

.anchor-404__actions {
  margin-top: 2.5rem;
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

/* =======================================================================
   PAGE FALLBACK
   ======================================================================= */
.anchor-page__container {
  max-width: 48rem;
}

/* =======================================================================
   TICKER
   ======================================================================= */
.anchor-ticker {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.25rem 1rem 0.25rem 0.75rem;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  max-width: max(90vw, 28rem);
  overflow: hidden;
  max-width: 500px;
}

.anchor-ticker__dot {
  position: relative;
  width: 0.375rem;
  height: 0.375rem;
  flex-shrink: 0;
}

.anchor-ticker__dot::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--anchor-brand-400);
}

.anchor-ticker__dot::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--anchor-brand-400);
  animation: anchor-ping 1.5s cubic-bezier(0, 0, 0.2, 1) infinite;
}

@keyframes anchor-ping {
  0% {
    opacity: 0.75;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(2.5);
  }
}

.anchor-ticker__track {
  overflow: hidden;
  flex: 1;
}

.anchor-ticker__scroll {
  display: flex;
  width: max-content;
  animation: anchor-ticker 20s linear infinite;
}

@keyframes anchor-ticker {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

.anchor-ticker__text {
  white-space: nowrap;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.75rem;
  font-family: var(--anchor-font-mono);
  letter-spacing: 0.05em;
}

/* =======================================================================
   VALUES STRIP
   ======================================================================= */
.anchor-values-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2rem;
  color: rgba(255, 255, 255, 0.35);
  font-size: 0.75rem;
  font-family: var(--anchor-font-mono);
}

.anchor-values-strip__dot {
  width: 0.25rem;
  height: 0.25rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
}

@media (max-width: 640px) {
  .anchor-values-strip {
    gap: 1rem;
  }
}

/* =======================================================================
   SECTION VARIANTS
   ======================================================================= */
.anchor-section--dark {
  background: var(--anchor-navy);
  color: #fff;
  position: relative;
  overflow: hidden;
}

.anchor-section--dark h1,
.anchor-section--dark h2,
.anchor-section--dark h3,
.anchor-section--dark h4,
.anchor-section--dark h5,
.anchor-section--dark h6,
.anchor-section--dark p,
.anchor-section--dark span,
.anchor-section--dark a:not(.anchor-btn) {
  color: #fff;
}

.anchor-section--dark .anchor-badge {
  background: var(--anchor-brand-500);
  color: #fff;
}

.anchor-section--dark .anchor-text-muted {
  color: rgba(255, 255, 255, 0.7);
  opacity: 1;
}

.anchor-section--dark .anchor-text-drama {
  color: var(--anchor-brand-400);
}

.anchor-section--surface {
  background: var(--anchor-surface-100);
}

.anchor-section__bg-image {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.anchor-section__bg-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: bottom;
  opacity: 0.1;
}

.anchor-section__bg-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    var(--anchor-navy) 0%,
    rgba(var(--anchor-navy-rgb), 0.8) 40%,
    rgba(var(--anchor-navy-rgb), 0.6) 100%
  );
}

/* =======================================================================
   CTA CARD
   ======================================================================= */
.anchor-cta-card {
  background: #000;
  border-radius: var(--anchor-radius-4xl);
  padding: 2.5rem;
  min-height: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  overflow: hidden;
}

/* =======================================================================
   FLOATING BADGE
   ======================================================================= */
.anchor-floating-badge {
  position: absolute;
  bottom: -1.875rem;
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  background: #fff;
  border-radius: var(--anchor-radius-2xl);
  padding: 1rem 1.5rem;
  box-shadow: var(--anchor-shadow-xl);
  border: 1px solid rgba(var(--anchor-surface-200-rgb), 0.8);
  display: flex;
  flex-direction: column;
  min-width: 250px;
}

.anchor-floating-badge__value {
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  font-size: 1.875rem;
  color: var(--anchor-brand-500);
  line-height: 1;
}

.anchor-floating-badge__label {
  color: rgba(var(--anchor-navy-rgb), 0.5);
  font-size: 0.875rem;
}

/* =======================================================================
   TEAM CARD
   ======================================================================= */
.anchor-team-card {
  display: block;
  text-decoration: none;
}

.anchor-team-card__image {
  position: relative;
  border-radius: var(--anchor-radius-3xl);
  overflow: hidden;
  aspect-ratio: 3 / 4;
  box-shadow: var(--anchor-shadow-md);
}

.anchor-team-card:hover .anchor-team-card__image {
  box-shadow: var(--anchor-shadow-xl);
}

.anchor-team-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--anchor-transition-slow);
}

.anchor-team-card:hover .anchor-team-card__image img {
  transform: scale(1.05);
}

.anchor-team-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(var(--anchor-navy-rgb), 0.7),
    rgba(var(--anchor-navy-rgb), 0.1) 40%,
    transparent
  );
}

.anchor-team-card__info {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1.25rem;
}

.anchor-team-card__name {
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  font-size: 1.125rem;
  color: #fff;
  line-height: 1.2;
}

.anchor-team-card__role {
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.875rem;
  margin-top: 0.125rem;
}

/* =======================================================================
   BLOG / POST CARD
   ======================================================================= */
.anchor-post-card {
  display: block;
  text-decoration: none;
  background: #fff;
  border-radius: var(--anchor-radius-3xl);
  border: 1px solid rgba(var(--anchor-surface-200-rgb), 0.6);
  box-shadow: var(--anchor-shadow-sm);
  overflow: hidden;
  transition: all var(--anchor-transition-normal);
}

.anchor-post-card:hover {
  box-shadow: var(--anchor-shadow-lg);
  transform: translateY(-4px);
}

.anchor-post-card__image {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.anchor-post-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--anchor-transition-slow);
}

.anchor-post-card:hover .anchor-post-card__image img {
  transform: scale(1.05);
}

.anchor-post-card__category {
  position: absolute;
  top: 1rem;
  left: 1rem;
}

.anchor-post-card__body {
  padding: 1.5rem;
}

.anchor-post-card__meta {
  display: flex;
  align-items: center;
  gap: 1rem;
  color: rgba(var(--anchor-navy-rgb), 0.4);
  font-size: 0.75rem;
  margin-bottom: 0.75rem;
}

.anchor-post-card__title {
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--anchor-navy);
  letter-spacing: -0.01em;
  line-height: 1.3;
  transition: color var(--anchor-transition-normal);
}

.anchor-post-card:hover .anchor-post-card__title {
  color: var(--anchor-brand-500);
}

/* =======================================================================
   FAQ
   ======================================================================= */
.anchor-faq-item {
  border-bottom: 1px solid rgba(var(--anchor-surface-300-rgb), 0.3);
}

.anchor-faq-item__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 1.25rem 0;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--anchor-font-heading);
  font-weight: 600;
  font-size: 1rem;
  color: var(--anchor-navy);
  text-align: left;
}

.anchor-faq-item__icon {
  transition: transform var(--anchor-transition-normal);
  flex-shrink: 0;
}

.anchor-faq-item.is-open .anchor-faq-item__icon {
  transform: rotate(180deg);
}

.anchor-faq-item__answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height var(--anchor-transition-slow) ease;
}

.anchor-faq-item.is-open .anchor-faq-item__answer {
  max-height: 500px;
}

.anchor-faq-item__answer-inner {
  padding: 0 0 1.25rem;
  color: rgba(var(--anchor-navy-rgb), 0.6);
  font-size: 0.9375rem;
  line-height: 1.7;
}

/* =======================================================================
   SCROLL REVEAL ANIMATIONS
   ======================================================================= */
.anchor-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
    transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.anchor-reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Staggered children */
.anchor-reveal-stagger > * {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
    transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.anchor-reveal-stagger.revealed > * {
  opacity: 1;
  transform: translateY(0);
}

.anchor-reveal-stagger.revealed > *:nth-child(1) {
  transition-delay: 0s;
}
.anchor-reveal-stagger.revealed > *:nth-child(2) {
  transition-delay: 0.08s;
}
.anchor-reveal-stagger.revealed > *:nth-child(3) {
  transition-delay: 0.16s;
}
.anchor-reveal-stagger.revealed > *:nth-child(4) {
  transition-delay: 0.24s;
}
.anchor-reveal-stagger.revealed > *:nth-child(5) {
  transition-delay: 0.32s;
}
.anchor-reveal-stagger.revealed > *:nth-child(6) {
  transition-delay: 0.4s;
}
.anchor-reveal-stagger.revealed > *:nth-child(7) {
  transition-delay: 0.48s;
}
.anchor-reveal-stagger.revealed > *:nth-child(8) {
  transition-delay: 0.56s;
}

/* =======================================================================
   CONTACT INFO
   ======================================================================= */
.anchor-contact-info > * + * {
  margin-top: 1rem;
}

/* =======================================================================
   PAGINATION
   ======================================================================= */
.anchor-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 3.5rem;
}

.anchor-pagination__item {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  font-weight: 500;
  transition: all var(--anchor-transition-normal);
  border: 1px solid var(--anchor-surface-300);
  color: rgba(var(--anchor-navy-rgb), 0.5);
  text-decoration: none;
}

.anchor-pagination__item:hover {
  color: var(--anchor-brand-500);
  border-color: var(--anchor-brand-300);
}

.anchor-pagination__item--active {
  background: var(--anchor-brand-500);
  color: #fff;
  border-color: var(--anchor-brand-500);
  box-shadow: 0 4px 12px rgba(var(--anchor-brand-500-rgb), 0.2);
}

.anchor-pagination__item--disabled {
  color: rgba(var(--anchor-navy-rgb), 0.2);
  border-color: var(--anchor-surface-200);
  pointer-events: none;
}

/* =======================================================================
   ARTICLE (Long-form content)
   ======================================================================= */
.anchor-article h2 {
  font-size: 1.5rem;
  margin-top: 3.5rem;
  margin-bottom: 1rem;
}

.anchor-article h3 {
  font-size: 1.25rem;
  margin-top: 2.5rem;
  margin-bottom: 0.75rem;
}

.anchor-article h4 {
  font-size: 1.125rem;
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}

.anchor-article p {
  font-size: 1.0625rem;
  color: rgba(var(--anchor-navy-rgb), 0.65);
  line-height: 1.8;
  margin: 1rem 0;
}

.anchor-article ul {
  list-style: none;
  padding: 0;
  margin: 1.25rem 0;
}

.anchor-article ul li {
  display: flex;
  align-items: start;
  gap: 0.75rem;
  color: rgba(var(--anchor-navy-rgb), 0.65);
  font-size: 1.0625rem;
  line-height: 1.7;
  margin-bottom: 0.625rem;
}

.anchor-article ul li::before {
  content: "";
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  background: var(--anchor-brand-400);
  margin-top: 0.625rem;
  flex-shrink: 0;
}

.anchor-article strong {
  font-weight: 600;
  color: var(--anchor-navy);
}

.anchor-article blockquote {
  padding-left: 1.25rem;
  border-left: 3px solid var(--anchor-brand-300);
  color: rgba(var(--anchor-navy-rgb), 0.5);
  font-style: italic;
  margin: 1.5rem 0;
}

/* =======================================================================
   FOOTER
   ======================================================================= */
.anchor-footer {
  background: var(--anchor-navy);
  border-radius: 3rem 3rem 0 0;
  margin-top: 6rem;
  position: relative;
}

.anchor-footer__top {
  padding-top: 4rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.anchor-footer__bottom {
  padding-top: 2rem;
  padding-bottom: 2rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.anchor-footer__brand p {
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.875rem;
  line-height: 1.6;
  max-width: 20rem;
}

.anchor-footer__contact a {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: rgba(255, 255, 255, 0.4);
  font-size: 0.875rem;
  transition: color var(--anchor-transition-normal);
}

.anchor-footer__contact a:hover {
  color: rgba(255, 255, 255, 0.7);
}

.anchor-footer__contact {
  margin-top: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.anchor-footer__social {
  display: flex;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.anchor-footer__social a {
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.3);
  transition: all var(--anchor-transition-normal);
}

.anchor-footer__social a:hover {
  color: #fff;
  background: rgba(var(--anchor-brand-500-rgb), 0.2);
  border-color: rgba(var(--anchor-brand-500-rgb), 0.3);
}

.anchor-footer__nav-title {
  font-family: var(--anchor-font-heading);
  font-weight: 600;
  color: rgba(255, 255, 255, 0.3);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 1rem;
}

.anchor-footer__nav-link {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.875rem;
  transition: color var(--anchor-transition-normal);
  margin-bottom: 0.625rem;
}

.anchor-footer__nav-link:hover {
  color: #fff;
}

.anchor-footer__copyright {
  color: rgba(255, 255, 255, 0.3);
  font-size: 0.75rem;
}

.anchor-footer__legal {
  display: flex;
  gap: 1.5rem;
  color: rgba(255, 255, 255, 0.3);
  font-size: 0.75rem;
}

/* =======================================================================
   SERVICES TABS
   ======================================================================= */
.anchor-services-tabs {
  padding-top: var(--anchor-section-py);
  padding-bottom: var(--anchor-section-py);
}

.anchor-services-tabs__header {
  margin-bottom: 2.5rem;
}

.anchor-services-tabs__header-text {
  max-width: 40rem;
  margin-top: 1rem;
}

/* Tab pills — sticky on mobile only */
.anchor-tabs__pills {
  position: sticky;
  top: 5.5rem;
  z-index: 20;
  background: var(--anchor-surface-100);
  padding: 1rem 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  border-bottom: 1px solid var(--anchor-surface-300);
  margin: 0 0 2rem;
}

.admin-bar .anchor-tabs__pills {
  top: calc(5.5rem + 32px);
}

@media (min-width: 1024px) {
  .anchor-tabs__pills {
    position: static;
    top: auto;
    background: transparent;
    border-bottom-color: var(--anchor-surface-300);
  }
}

/* Tab pill button */
.anchor-tab-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 1.25rem;
  border-radius: 9999px;
  font-size: 0.8125rem;
  font-weight: 500;
  transition: all var(--anchor-transition-normal);
  white-space: nowrap;
  background: white;
  color: rgba(var(--anchor-navy-rgb), 0.6);
  border: 1px solid var(--anchor-surface-300);
  cursor: pointer;
  line-height: 1;
}

.anchor-tab-pill:hover {
  border-color: var(--anchor-brand-300);
  color: var(--anchor-brand-600);
  background: var(--anchor-brand-50);
}

.anchor-tab-pill--active {
  background: var(--anchor-brand-500) !important;
  color: #fff !important;
  border-color: var(--anchor-brand-500) !important;
  box-shadow: 0 2px 8px rgba(var(--anchor-brand-500-rgb), 0.3);
}

/* Grid: stacked on mobile, 2-col on desktop */
.anchor-tabs__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: start;
}

/* Image column */
.anchor-tabs__image-col {
  position: relative;
  border-radius: var(--anchor-radius-3xl);
  overflow: hidden;
  aspect-ratio: 4 / 3;
}

.anchor-tabs__image {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.45s ease;
}

.anchor-tabs__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.anchor-tabs__image-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(29, 26, 26, 0.3), transparent);
  pointer-events: none;
}

.anchor-tabs__image--active {
  opacity: 1;
}

/* Content column */
.anchor-tabs__content-col {
  position: relative;
  min-height: 18rem;
}

.anchor-tabs__panel {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  position: absolute;
  inset: 0;
}

.anchor-tabs__panel--active {
  opacity: 1;
  pointer-events: auto;
  position: relative;
}

.anchor-tabs__panel-badge {
  margin-bottom: 1.25rem;
  display: inline-flex;
}

.anchor-tabs__panel-title {
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  font-size: clamp(1.375rem, 2.5vw, 1.875rem);
  letter-spacing: -0.025em;
  line-height: 1.2;
  color: var(--anchor-navy);
  margin-bottom: 1rem;
}

.anchor-tabs__panel-desc {
  line-height: 1.75;
  margin-bottom: 1.75rem;
}

.anchor-tabs__panel-list {
  display: flex !important;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0 0 1.5rem !important;
  padding: 0 !important;
  list-style: none !important;
}

.anchor-tabs__panel-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: rgba(var(--anchor-navy-rgb), 0.7);
  margin: 0;
}

.anchor-tabs__panel-check {
  flex-shrink: 0;
  margin-top: 0.125rem;
  color: var(--anchor-brand-500);
}

@media (min-width: 1024px) {
  .anchor-tabs__grid {
    grid-template-columns: 2fr 3fr;
    gap: 3.5rem;
  }
}

/* =======================================================================
   EXPANDING CTA CARD
   ======================================================================= */

/*
 * The .anchor-section wrapper has transform (from anchor-reveal), which creates
 * a stacking context. To appear above the fixed background (z-index:40), the
 * section wrapper itself must have a z-index in the root stacking context.
 */
.anchor-section[data-section-type="cta_band"][data-section-variant="expand"] {
  position: relative;
  z-index: 41;
}

.anchor-cta-expand-card {
  background: var(--anchor-navy-dark);
  border-radius: var(--anchor-radius-5xl);
  padding: 3.5rem 2rem;
  min-height: 480px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  overflow: hidden;
}

/* Fixed full-viewport background — created and injected by JS */
.anchor-cta-expand-bg {
  position: fixed;
  inset: 0;
  z-index: 40;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.8s cubic-bezier(0.25, 0.8, 0.25, 1),
    visibility 0.8s;
}

.anchor-cta-expand-bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.anchor-cta-expand-bg__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
}

@media (min-width: 768px) {
  .anchor-cta-expand-card {
    padding: 5rem 4rem;
    min-height: 560px;
    border-radius: var(--anchor-radius-5xl);
  }
}

/* =======================================================================
   HERO SECTION — Remove inherited section padding so hero is full-bleed
   ======================================================================= */
.anchor-section[data-section-type="hero"] {
  padding-top: 0;
  padding-bottom: 0;
}

/* =======================================================================
   NAV
   ======================================================================= */
.anchor-nav {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  z-index: 50;
  border-radius: 9999px;
  padding: 0.5rem 0.75rem;
  max-width: 1440px;
  width: calc(100% - 2rem);
  top: 2rem;
  transition: all var(--anchor-transition-slow) ease-out;
  border: 1px solid transparent;
}

/* Admin bar offset — WordPress adds 32px margin-top to html when logged in */
.admin-bar .anchor-nav {
  top: calc(2rem + 32px);
}
.admin-bar .anchor-nav--scrolled {
  top: calc(1rem + 32px);
}
@media screen and (max-width: 782px) {
  .admin-bar .anchor-nav {
    top: calc(1rem + 46px);
  }
  .admin-bar .anchor-nav--scrolled {
    top: calc(0.5rem + 46px);
  }
}

.anchor-nav--scrolled {
  top: 1rem;
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-color: rgba(var(--anchor-surface-300-rgb), 0.5);
  box-shadow: var(--anchor-shadow-lg);
}

.anchor-nav--open {
  top: 1rem;
  background: transparent;
  border-color: transparent;
}

.anchor-nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.anchor-nav__links {
  display: none;
}

.anchor-nav__link {
  padding: 0.375rem 0.75rem;
  border-radius: 9999px;
  font-size: clamp(0.8125rem, 1vw, 0.9375rem);
  font-weight: 500;
  transition: all var(--anchor-transition-normal);
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  /* Default state (over hero) */
  color: rgba(255, 255, 255, 0.7);
}

.anchor-nav__link:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
}

.anchor-nav__link--active {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
}

/* Scrolled nav link colors */
.anchor-nav--scrolled .anchor-nav__link {
  color: rgba(var(--anchor-navy-rgb), 0.7);
}

.anchor-nav--scrolled .anchor-nav__link:hover {
  color: var(--anchor-navy);
  background: rgba(var(--anchor-surface-200-rgb), 0.6);
}

.anchor-nav--scrolled .anchor-nav__link--active {
  background: rgba(var(--anchor-brand-500-rgb), 0.1);
  color: var(--anchor-brand-500);
}

/* CTA button in nav */
.anchor-nav__cta {
  padding: 0.5rem 1.25rem;
  border-radius: 9999px;
  font-size: 0.8125rem;
  font-weight: 600;
  transition: all var(--anchor-transition-normal);
  /* Default state */
  background: #fff;
  color: var(--anchor-navy);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  border: none;
  cursor: pointer;
}

.anchor-nav__cta:hover {
  background: var(--anchor-brand-50);
}

.anchor-nav--scrolled .anchor-nav__cta {
  background: var(--anchor-brand-500);
  color: #fff;
  box-shadow: var(--anchor-shadow-sm);
}

.anchor-nav--scrolled .anchor-nav__cta:hover {
  background: var(--anchor-brand-600);
}

/* Logo text color swap when nav is scrolled (white bg) */
.anchor-nav--scrolled .anchor-nav__logo-text {
  color: var(--anchor-navy);
}

/* =======================================================================
   DROPDOWN
   ======================================================================= */
.anchor-nav__dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  padding-top: 0.5rem;
  z-index: 50;
  opacity: 0;
  visibility: hidden;
  transform: translateX(-50%) translateY(8px);
  pointer-events: none;
  transition:
    opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.22s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0s linear 0.22s;
}

.anchor-nav__dropdown.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
  transition:
    opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.22s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0s;
}

/* Respect reduced-motion: keep the centered position, drop the fade-up/down travel. */
@media (prefers-reduced-motion: reduce) {
  .anchor-nav__dropdown,
  .anchor-nav__dropdown.is-open {
    transform: translateX(-50%);
    transition: opacity 0.01ms, visibility 0s linear 0.01ms;
  }
}

.anchor-nav__dropdown-inner {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-radius: var(--anchor-radius-2xl);
  border: 1px solid rgba(var(--anchor-surface-300-rgb), 0.5);
  box-shadow: var(--anchor-shadow-xl);
  padding: 0.5rem 0;
  min-width: 260px;
  overflow: hidden;
}

.anchor-nav__dropdown-link {
  display: block;
  padding: 0.625rem 1rem;
  font-size: 0.875rem;
  color: rgba(var(--anchor-navy-rgb), 0.7);
  transition:
    color var(--anchor-transition-normal),
    background var(--anchor-transition-normal);
}

.anchor-nav__dropdown-link:hover {
  color: var(--anchor-brand-500);
  background: var(--anchor-brand-50);
}

/* =======================================================================
   HAMBURGER
   ======================================================================= */
.anchor-hamburger {
  display: block;
  padding: 0.5rem;
  border-radius: 9999px;
  background: none;
  border: none;
  cursor: pointer;
}

.anchor-hamburger__bar {
  display: block;
  height: 2px;
  width: 1.25rem;
  border-radius: 9999px;
  transition: all var(--anchor-transition-normal);
  transform-origin: center;
  /* Default: white bars for hero */
  background: #fff;
}

.anchor-hamburger__bar + .anchor-hamburger__bar {
  margin-top: 5px;
}

/* Scrolled state */
.anchor-nav--scrolled .anchor-hamburger__bar {
  background: var(--anchor-navy);
}

/* Open state (always white) */
.anchor-nav--open .anchor-hamburger__bar {
  background: #fff;
}

.anchor-hamburger.is-open .anchor-hamburger__bar:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.anchor-hamburger.is-open .anchor-hamburger__bar:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}

.anchor-hamburger.is-open .anchor-hamburger__bar:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* =======================================================================
   MOBILE OVERLAY
   ======================================================================= */
.anchor-mobile-overlay {
  position: fixed;
  inset: 0;
  z-index: 40;
  background: rgba(var(--anchor-navy-rgb), 0.95);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  display: flex;
  flex-direction: column;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s ease;
}

.anchor-mobile-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}

.anchor-mobile-overlay__spacer {
  height: 8rem;
}

.anchor-mobile-overlay__links {
  flex: 1;
  overflow-y: auto;
  padding: 1rem 2rem;
}

.anchor-mobile-overlay__link {
  display: block;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 1.5rem;
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: #fff;
  transition: color var(--anchor-transition-normal);
}

.anchor-mobile-overlay__link:hover {
  color: var(--anchor-brand-300);
}

.anchor-mobile-overlay__link--active {
  color: var(--anchor-brand-400);
}

.anchor-mobile-overlay__toggle {
  display: flex;
  width: 100%;
  justify-content: space-between;
  align-items: center;
}

.anchor-mobile-overlay__sub {
  max-height: 0;
  overflow: hidden;
  transition: all var(--anchor-transition-normal);
}

.anchor-mobile-overlay__sub.is-open {
  max-height: 24rem;
  opacity: 1;
}

.anchor-mobile-overlay__sub-link {
  display: block;
  padding: 0.75rem 0 0.75rem 1rem;
  font-size: 1.125rem;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 500;
}

.anchor-mobile-overlay__sub-link:hover {
  color: var(--anchor-brand-400);
}

.anchor-mobile-overlay__bottom {
  flex-shrink: 0;
  padding: 1rem 2rem 2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* =======================================================================
   SOCIAL BAR (top-right)
   ======================================================================= */
.anchor-social-bar {
  position: fixed;
  top: 0.75rem;
  right: 1.5rem;
  z-index: 50;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  transition: all var(--anchor-transition-slow);
}

.anchor-social-bar.is-hidden {
  opacity: 0;
  transform: translateY(-100%);
  pointer-events: none;
}

.anchor-social-bar a {
  color: rgba(255, 255, 255, 0.6);
  transition: color var(--anchor-transition-normal);
}

.anchor-social-bar a:hover {
  color: #fff;
}

/* =======================================================================
   NAV — SUPPLEMENTAL (logo images, item wrap, CTA area, mobile icons)
   ======================================================================= */

/* Logo: the light + dark images are STACKED (dark overlaid absolutely on the
   in-flow light one) and cross-faded with opacity, so the shared height
   transition stays visible across the scroll-state swap. */
.anchor-nav__logo { position: relative; display: inline-block; line-height: 0; }
.anchor-nav__logo-img {
  height: 2.5rem;
  width: auto;
  display: block;
  transition: height .35s cubic-bezier(.2, .7, .2, 1), opacity .3s ease;
}
.anchor-nav__logo-dark {
  position: absolute; top: 0; left: 0;
  opacity: 0;
}
.anchor-nav__logo-light { opacity: 1; }

/* Scrolled: fade light → dark. */
.anchor-nav--scrolled .anchor-nav__logo-light { opacity: 0; }
.anchor-nav--scrolled .anchor-nav__logo-dark  { opacity: 1; }

/* Mobile menu open: keep the white logo regardless of scroll (must follow the
   --scrolled rules to win on equal specificity). */
.anchor-nav--open .anchor-nav__logo-light { opacity: 1; }
.anchor-nav--open .anchor-nav__logo-dark  { opacity: 0; }

/* Desktop: logo is 1.5× larger at the top of the page, then condenses back to
   the standard 2.5rem once the user starts scrolling. Both images animate
   together so the cross-fade and the resize happen as one motion. */
@media (min-width: 783px) {
  .anchor-nav__logo-img { height: 3.75rem; }
  .anchor-nav--scrolled .anchor-nav__logo-img { height: 2.5rem; }
}

/* Logo text (fallback when no logo image) */
.anchor-nav__logo-text {
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  font-size: 1.25rem;
  color: white;
}

/* Dropdown wrapper (position context) */
.anchor-nav__item-wrap {
  position: relative;
  /* The wrapper exists only to give the absolutely-positioned dropdown a
     positioning context. As a block box it also stopped forwarding the flex
     sizing its sibling links get straight from .anchor-nav__links, so the link
     inside kept its natural height while the others stretched to the tallest
     item — leaving "Our Lasers" sitting a couple of pixels high. Making the
     wrapper a flex container hands that stretch back to the link, so a dropdown
     item and a plain item share one box. (display:contents would also work but
     would destroy the positioning context the dropdown depends on.) */
  display: flex;
}

/* Right-side CTA area */
.anchor-nav__actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}

/* Partner-login / account icon (same colour states as the cart) */
.anchor-nav__account {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  padding: 0.4rem; color: rgba(255, 255, 255, 0.85);
  transition: color var(--anchor-transition-normal);
}
.anchor-nav__account:hover { color: #fff; }
.anchor-nav--scrolled .anchor-nav__account { color: rgba(var(--anchor-navy-rgb), 0.75); }
.anchor-nav--scrolled .anchor-nav__account:hover { color: var(--anchor-navy); }

/* Cart icon + live count badge (matches nav link colour states) */
.anchor-nav__cart {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  padding: 0.4rem; color: rgba(255, 255, 255, 0.85);
  transition: color var(--anchor-transition-normal);
}
.anchor-nav__cart:hover { color: #fff; }
.anchor-nav--scrolled .anchor-nav__cart { color: rgba(var(--anchor-navy-rgb), 0.75); }
.anchor-nav--scrolled .anchor-nav__cart:hover { color: var(--anchor-navy); }
.anchor-nav__cart-count {
  position: absolute; top: -1px; right: -3px;
  min-width: 17px; height: 17px; padding: 0 4px; border-radius: 999px;
  background: var(--deka-sapphire, #2b529f); color: #fff;
  font-family: var(--deka-mono); font-size: 9.5px; font-weight: 600; line-height: 1;
  display: flex; align-items: center; justify-content: center;
}
.anchor-nav__cart-count.is-empty { display: none; }

/* Mobile overlay chevron icon */
.anchor-mobile-overlay__toggle-icon {
  color: rgba(255, 255, 255, 0.4);
  display: flex;
  align-items: center;
  transition: transform 0.3s ease;
}

.anchor-mobile-overlay__toggle.is-active .anchor-mobile-overlay__toggle-icon {
  transform: rotate(180deg);
}

/* Mobile overlay full-width CTA */
.anchor-mobile-overlay__cta {
  width: 100%;
  justify-content: center;
  padding: 1rem;
  font-size: 1.125rem;
}

/* Mobile overlay social row */
.anchor-mobile-overlay__social {
  margin-top: 1rem;
  display: flex;
  justify-content: center;
  gap: 1rem;
}

/* Mobile overlay social icon circle */
.anchor-mobile-overlay__social-link {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.4);
  transition: all var(--anchor-transition-normal);
}

.anchor-mobile-overlay__social-link:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.2);
}

/* =======================================================================
   FOOTER — SUPPLEMENTAL (logo, contact list, nav columns, bottom bar)
   ======================================================================= */

/* Footer logo image */
.anchor-footer__logo {
  height: 2.5rem;
  width: auto;
  margin-bottom: 1.25rem;
}

/* Footer brand name fallback */
.anchor-footer__brand-name {
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  font-size: 1.25rem;
  color: white;
  display: block;
  margin-bottom: 1.25rem;
}

/* Footer nav column list reset */
.anchor-footer__nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* Footer nav columns grid gap */
.anchor-footer__nav-columns {
  gap: 2rem;
}

/* =======================================================================
   SECTION INTRO SPACING
   ======================================================================= */
.anchor-section-intro {
  margin-bottom: 3.5rem;
}

.anchor-section-intro--md {
  margin-bottom: 3rem;
}

.anchor-section-intro--lg {
  margin-bottom: 4rem;
}

/* =======================================================================
   SECTION CTA (bottom CTA row, reused across many sections)
   ======================================================================= */
.anchor-section-cta {
  text-align: center;
  margin-top: 3rem;
}

/* =======================================================================
   CTA BAND (card / expand / light-dark-accent variants)
   ======================================================================= */
.anchor-cta-card__inner {
  position: relative;
  z-index: 10;
  text-align: center;
}

.anchor-cta-card__heading {
  color: #fff;
  font-size: clamp(2.5rem, 5.2vw, 4.25rem);
  line-height: 1.08;
  letter-spacing: -0.01em;
}

.anchor-cta-card__accent {
  display: block;
  color: var(--anchor-brand-400);
}

.anchor-cta-card__accent--expand {
  color: var(--deka-sapphire-soft); /* logo lavender (#8b8eb2) — brighter than brand-400 */
  font-size: 1.2em;
}

.anchor-cta-card__text {
  color: rgba(255, 255, 255, 0.7);
  max-width: 32rem;
  margin: 1rem auto 0;
}

.anchor-cta-card__text--expand {
  color: rgba(255, 255, 255, 0.6);
  max-width: 32rem;
  margin: 1.25rem auto 0;
  line-height: 1.7;
}

.anchor-cta-card__eyebrow {
  margin-bottom: 1.25rem;
}

.anchor-cta-card__eyebrow--expand {
  margin-bottom: 1.5rem;
}

.anchor-cta-card__buttons {
  margin-top: 2rem;
}

.anchor-cta-card__buttons--expand {
  margin-top: 2.25rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}

.anchor-cta-band__text {
  max-width: 32rem;
  margin: 0 auto;
}

.anchor-cta-band__buttons {
  margin-top: 2rem;
}

/* =======================================================================
   CONTACT BLOCK
   ======================================================================= */
.anchor-contact__container {
  max-width: var(--anchor-container-narrow);
}

.anchor-contact__grid {
  gap: 3rem;
}

.anchor-contact__heading {
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  font-size: clamp(1.5rem, 3vw, 1.875rem);
  letter-spacing: -0.025em;
}

.anchor-contact__name-accent {
  color: var(--anchor-brand-500);
}

.anchor-contact__text {
  margin-top: 0.75rem;
  max-width: 24rem;
  font-size: 0.875rem;
  line-height: 1.6;
}

.anchor-contact__items {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.anchor-contact__item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.anchor-contact__label {
  font-family: var(--anchor-font-mono);
  font-size: 0.625rem;
  color: rgba(29, 26, 26, 0.3);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.anchor-contact__value {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  color: rgba(29, 26, 26, 0.8);
}

p.anchor-contact__value {
  margin: 0;
}

.anchor-contact__social {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(29, 26, 26, 0.06);
}

.anchor-contact__social-links {
  margin-top: 0.75rem;
  display: flex;
  gap: 0.75rem;
}

.anchor-contact__social-link {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--anchor-radius-2xl);
  background: var(--anchor-surface-100);
  border: 1px solid rgba(232, 222, 224, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(29, 26, 26, 0.4);
}

.anchor-contact__form-card {
  padding: 1.5rem;
  align-self: start;
}

.anchor-contact__form-heading {
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  font-size: clamp(1.125rem, 2vw, 1.375rem);
  letter-spacing: -0.02em;
  margin-bottom: 0.375rem;
}

.anchor-contact__form-subtext {
  font-size: 0.8125rem;
  color: rgba(29, 26, 26, 0.5);
  line-height: 1.5;
  margin-bottom: 1.5rem;
}

.anchor-contact-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.anchor-contact-form__grid {
  gap: 1.25rem;
}

.anchor-contact__disclaimer {
  color: rgba(29, 26, 26, 0.35);
  font-size: 0.75rem;
  line-height: 1.5;
  margin: 0;
}

.anchor-contact__submit {
  width: 100%;
  justify-content: center;
}

/* =======================================================================
   ICON LIST
   ======================================================================= */
.anchor-icon-list__item-heading {
  font-family: var(--anchor-font-heading);
  font-weight: 700;
  font-size: 1rem;
  margin-top: 1rem;
  margin-bottom: 0.5rem;
}

.anchor-icon-list__item-heading--dark {
  color: #fff;
}

.anchor-icon-list__item-text {
  font-size: 0.875rem;
  line-height: 1.6;
}

.anchor-icon-list__item-image {
  width: 18px;
  height: 18px;
  object-fit: contain;
}

/* =======================================================================
   TEAM GRID — Bios Layout
   ======================================================================= */
.anchor-team-bio {
  scroll-margin-top: 8rem;
}

.anchor-team-bio + .anchor-team-bio {
  margin-top: 4rem;
  padding-top: 4rem;
  border-top: 1px solid rgba(29, 26, 26, 0.08);
}

.anchor-team-bio__grid {
  grid-template-columns: 1fr;
  gap: 2.5rem;
  align-items: center;
}

@media (min-width: 768px) {
  .anchor-team-bio__grid {
    grid-template-columns: 2fr 3fr;
  }

  .anchor-team-bio__grid--reversed {
    grid-template-columns: 3fr 2fr;
  }

  .anchor-team-bio__grid--reversed .anchor-team-bio__photo-col {
    order: 2;
  }

  .anchor-team-bio__grid--reversed .anchor-team-bio__content-col {
    order: 1;
  }
}

.anchor-team-bio__photo {
  border-radius: var(--anchor-radius-3xl);
  overflow: hidden;
  aspect-ratio: 3/4;
}

.anchor-team-bio__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.anchor-team-bio__role {
  margin-bottom: 1rem;
}

.anchor-team-bio__name {
  font-size: 1.75rem;
  font-weight: 700;
  margin-bottom: 1.25rem;
}

.anchor-team-bio__paragraph {
  margin-bottom: 1rem;
}

.anchor-team-bio__quote {
  margin-top: 1.5rem;
  padding-left: 1.25rem;
  border-left: 3px solid var(--anchor-brand-500);
  font-style: italic;
}

.anchor-team-bio__quote-text {
  font-size: 1.125rem;
  color: var(--anchor-brand-700);
}

.anchor-team-grid__text {
  max-width: 36rem;
  margin: 1rem auto 0;
}

/* =======================================================================
   SPLIT CONTENT
   ======================================================================= */
.anchor-split__grid {
  gap: 3.5rem;
  align-items: center;
}

.anchor-split__image-col {
  position: relative;
}

.anchor-split__paragraph {
  margin-bottom: 1rem;
}

.anchor-split__cta {
  margin-top: 2rem;
}

/* =======================================================================
   ISO SPLIT
   Two-column layout: bottom-anchored cutout image + centered text content.
   ======================================================================= */

/* Clip the image if it's taller than the section */
.anchor-section[data-section-type="iso_split"] {
  overflow: hidden;
}

.anchor-iso-split__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
  align-items: stretch;
  min-height: clamp(420px, 50vw, 720px);
}

/* Image column: flex container that pins content to the bottom */
.anchor-iso-split__image-col {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

/* Rotating text badge: absolute behind the image */
.anchor-iso-split__rotating-text {
  position: absolute;
  top: 6%;
  left: 4%;
  z-index: 0;
  opacity: 0.65;
}

.anchor-iso-split__img {
  display: block;
  position: relative;
  z-index: 1;
  width: 100%;
  max-height: clamp(480px, 50vw, 780px);
  object-fit: contain;
  object-position: bottom center;
}

/* Content column: vertically centered with standard section padding */
.anchor-iso-split__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--anchor-section-py) 0;
}

/* =======================================================================
   CARD GRID
   ======================================================================= */
.anchor-card-grid__header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1rem;
  margin-bottom: 3.5rem;
}

.anchor-card-grid__header-full {
  width: 100%;
  text-align: center;
}

.anchor-card-grid__aside {
  max-width: 24rem;
}

.anchor-card-grid__centered-text {
  max-width: 36rem;
  margin: 0 auto 3rem;
  text-align: center;
}

.anchor-card__icon-box {
  margin-bottom: 1.25rem;
}

.anchor-card__image-box {
  margin-bottom: 1.25rem;
}

.anchor-card__arrow {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  margin-top: 1rem;
  font-size: 0.875rem;
  font-weight: 600;
}

.anchor-post-card__category-badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
}

.anchor-post-card__meta-sep {
  margin: 0 0.5rem;
}

.anchor-post-card__link {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  margin-top: 1rem;
  font-size: 0.875rem;
  font-weight: 600;
}

/* =======================================================================
   FAQ LIST
   ======================================================================= */
.anchor-faq__grid {
  gap: 1.5rem;
}

.anchor-faq__list {
  margin-top: 3rem;
}

/* =======================================================================
   GALLERY BAND
   ======================================================================= */
.anchor-gallery__heading {
  margin-bottom: 2rem;
}

.anchor-gallery__item {
  border-radius: var(--anchor-radius-3xl);
  overflow: hidden;
}

.anchor-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* =======================================================================
   TEXT BLOCK
   ======================================================================= */
.anchor-text-block__divider {
  margin-top: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}

.anchor-text-block__divider-line {
  width: 3rem;
  display: inline-block;
}

.anchor-text-block__divider-text {
  font-size: 0.75rem;
  color: rgba(29, 26, 26, 0.3);
  margin: 0 0.75rem;
}

/* =======================================================================
   SHORTCODE BLOCK
   ======================================================================= */
.anchor-shortcode-block__intro {
  margin-bottom: 2rem;
}

/* =======================================================================
   SERVICES TABS
   ======================================================================= */
.anchor-services-tabs__cta-btn {
  margin-top: 1.5rem;
}

/* ==========================================================================
   FLY-IN CART DRAWER (site-wide — mounted in footer.php, opened by the nav
   cart icon and by add-to-cart). Styles WC's woocommerce_mini_cart() markup.
   ========================================================================== */
body.deka-drawer-lock { overflow: hidden; }

.deka-drawer-overlay {
    position: fixed; inset: 0; z-index: 1200;
    background: rgba(4, 5, 65, 0.45); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
    opacity: 0; transition: opacity .32s ease;
}
.deka-drawer-overlay.is-open { opacity: 1; }

.deka-drawer {
    position: fixed; top: 0; right: 0; z-index: 1201;
    width: min(420px, 92vw); height: 100%;
    background: var(--deka-ivory); color: var(--deka-ink);
    display: flex; flex-direction: column;
    transform: translateX(100%);
    transition: transform .34s cubic-bezier(.4, 0, .1, 1);
    box-shadow: -30px 0 80px -40px rgba(4, 5, 65, 0.5);
}
.deka-drawer.is-open { transform: translateX(0); }
.deka-drawer.is-busy { opacity: .55; pointer-events: none; }

.deka-drawer__head {
    flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between;
    padding: 22px 26px; border-bottom: 1px solid var(--deka-rule);
}
.deka-drawer__title { font-family: var(--deka-serif); font-weight: 500; font-size: 24px; letter-spacing: -0.01em; }
.deka-drawer__close {
    background: none; border: 0; cursor: pointer; color: var(--deka-ink); padding: 7px;
    display: inline-flex; border-radius: 50%; transition: background .2s ease;
}
.deka-drawer__close:hover { background: rgba(4, 5, 65, 0.07); }

.deka-drawer__content { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; }

/* mini-cart list — list itself has NO side padding so the row dividers run the
   full panel width; the padding lives on each item so the content sits inset. */
.deka-drawer .woocommerce-mini-cart {
    list-style: none; margin: 0 !important; padding: 0 !important; flex: 1 1 auto; overflow-y: auto; min-height: 0;
}
.deka-drawer .mini_cart_item {
    display: grid; grid-template-columns: 58px minmax(0, 1fr) auto;
    grid-template-areas: "media title remove" "media qty line";
    column-gap: 14px; row-gap: 12px; align-items: center;
    margin: 0; padding: 20px 30px; list-style: none; border-bottom: 1px solid var(--deka-rule);
}
.deka-drawer .mini-item__media { grid-area: media; align-self: start; }
.deka-drawer .mini-item__media img {
    width: 58px; height: 58px; object-fit: contain; display: block;
    background: #fff; border: 1px solid var(--deka-rule); border-radius: 8px;
}
.deka-drawer .mini-item__title { grid-area: title; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.deka-drawer .mini-item__title a,
.deka-drawer .mini-item__title > span:first-child {
    font-family: var(--deka-serif); font-size: 16px; line-height: 1.25; color: var(--deka-ink); text-decoration: none;
}
.deka-drawer .mini-item__unit { font-family: var(--deka-mono); font-size: 11px; letter-spacing: 0.03em; color: rgba(4, 5, 65, 0.5); }
.deka-drawer .mini_cart_item a.remove {
    grid-area: remove; justify-self: end; align-self: start;
    width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--deka-rule);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 15px; line-height: 1; color: rgba(4, 5, 65, 0.5) !important; text-decoration: none;
    background: #fff; transition: border-color .2s ease, color .2s ease;
}
.deka-drawer .mini_cart_item a.remove:hover { border-color: var(--deka-sapphire); color: var(--deka-sapphire) !important; }

/* per-item quantity stepper */
.deka-drawer .mini-item__qty {
    grid-area: qty; display: inline-flex; align-items: center; width: -moz-fit-content; width: fit-content;
    border: 1px solid var(--deka-rule); border-radius: 999px; background: #fff; overflow: hidden;
}
.deka-drawer .deka-qty {
    width: 30px; height: 30px; border: 0; background: none; cursor: pointer; color: var(--deka-ink);
    font-size: 16px; line-height: 1; display: inline-flex; align-items: center; justify-content: center; transition: background .15s ease;
}
.deka-drawer .deka-qty:hover { background: rgba(4, 5, 65, 0.07); }
.deka-drawer .deka-qty__n { min-width: 26px; text-align: center; font-family: var(--deka-mono); font-size: 13px; color: var(--deka-ink); }
.deka-drawer .mini-item__line { grid-area: line; justify-self: end; font-family: var(--deka-mono); font-size: 13px; font-weight: 600; color: var(--deka-ink); }

.deka-drawer .woocommerce-mini-cart__empty-message {
    padding: 64px 30px; text-align: center; margin: 0;
    font-family: var(--deka-serif); font-style: italic; font-size: 19px; color: rgba(4, 5, 65, 0.55);
}

/* flash message (coupon feedback) */
.deka-drawer__flash {
    flex: 0 0 auto; margin: 0; padding: 12px 30px;
    background: var(--deka-sapphire-soft, rgba(38, 74, 156, 0.08)); border-bottom: 1px solid var(--deka-rule);
    font-family: var(--deka-mono); font-size: 11px; letter-spacing: 0.04em; color: var(--deka-sapphire);
}

/* foot: coupon + totals + buttons (pinned to the bottom) */
.deka-drawer__foot {
    flex: 0 0 auto; border-top: 1px solid var(--deka-rule);
    padding: 22px 30px 28px; display: flex; flex-direction: column; gap: 18px;
}
.deka-drawer-coupon { display: grid; grid-template-columns: 1fr auto; gap: 10px; margin: 0; }
.deka-drawer-coupon .deka-coupon-input {
    width: 100%; min-width: 0; padding: 13px 16px; border: 1px solid var(--deka-rule); border-radius: 999px;
    background: #fff; color: var(--deka-ink); font-family: var(--deka-mono); font-size: 12px; letter-spacing: 0.04em;
}
.deka-drawer-coupon .deka-coupon-input:focus { outline: none; border-color: var(--deka-sapphire); }
.deka-drawer-coupon .deka-coupon-apply {
    padding: 13px 22px; border: 1px solid var(--deka-ink); background: transparent; color: var(--deka-ink);
    border-radius: 999px; cursor: pointer; transition: background .2s ease, color .2s ease;
    font-family: var(--deka-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
}
.deka-drawer-coupon .deka-coupon-apply:hover { background: var(--deka-ink); color: var(--deka-ivory); }

.deka-applied-coupons { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.deka-applied-coupons li {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 9px 14px; border-radius: 8px; background: rgba(38, 74, 156, 0.07);
    font-family: var(--deka-mono); font-size: 11px; letter-spacing: 0.06em; color: var(--deka-sapphire);
}
.deka-applied-coupons a.deka-remove-coupon { color: inherit !important; text-decoration: none; font-size: 15px; line-height: 1; }

.deka-drawer-totals { display: flex; flex-direction: column; gap: 11px; }
.deka-drawer-totals .row {
    display: flex; align-items: baseline; justify-content: space-between;
    font-family: var(--deka-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(4, 5, 65, 0.6);
}
.deka-drawer-totals .row span:last-child { font-family: var(--deka-serif); font-size: 16px; letter-spacing: 0; text-transform: none; color: var(--deka-ink); }
.deka-drawer-totals .row--discount span:last-child { color: #1a7f4b; }
.deka-drawer-totals .row--total { padding-top: 12px; border-top: 1px solid var(--deka-rule); }
.deka-drawer-totals .row--total span:last-child { font-size: 24px; color: var(--deka-sapphire); }

.deka-drawer .woocommerce-mini-cart__buttons {
    display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0; padding: 0;
}
.deka-drawer .woocommerce-mini-cart__buttons a {
    display: inline-flex; align-items: center; justify-content: center; padding: 15px;
    border-radius: 999px; text-decoration: none; transition: background .2s ease, color .2s ease;
    font-family: var(--deka-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
}
.deka-drawer .woocommerce-mini-cart__buttons a:not(.checkout) { border: 1px solid var(--deka-ink); color: var(--deka-ink); }
.deka-drawer .woocommerce-mini-cart__buttons a:not(.checkout):hover { background: var(--deka-ink); color: var(--deka-ivory); }
.deka-drawer .woocommerce-mini-cart__buttons a.checkout { background: var(--deka-sapphire); color: #fff; }
.deka-drawer .woocommerce-mini-cart__buttons a.checkout:hover { background: var(--deka-ink); }

/* =======================================================================
   FOOTER — restructured layout + legibility pass (2026-06-17)
   Overrides the faint rgba(255,255,255,0.3–0.6) text from the block above.
   ======================================================================= */
.anchor-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}

.anchor-footer__nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.25rem 1.5rem;
}

/* Brand column */
.anchor-footer__brand p {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.9375rem;
  line-height: 1.65;
  max-width: 22rem;
}

.anchor-footer__contact a {
  color: rgba(255, 255, 255, 0.82);
}

.anchor-footer__contact a:hover {
  color: #fff;
}

.anchor-footer__social a {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.75);
}

/* Navigation columns */
.anchor-footer__nav-col {
  min-width: 0;
}

.anchor-footer__nav-title {
  color: #fff;
  font-size: 0.8125rem;
  letter-spacing: 0.12em;
  margin-bottom: 1.125rem;
  opacity: 0.95;
}

.anchor-footer__nav-link {
  color: rgba(255, 255, 255, 0.78);
}

.anchor-footer__nav-link:hover {
  color: #fff;
}

/* Bottom bar — full-width, copyright left / legal right */
.anchor-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  margin-top: 0;
}

.anchor-footer__copyright {
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.8125rem;
}

.anchor-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
}

.anchor-footer__legal a {
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.8125rem;
  transition: color var(--anchor-transition-normal);
}

.anchor-footer__legal a:hover {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (min-width: 768px) {
  .anchor-footer__grid {
    grid-template-columns: 5fr 7fr;
    gap: 4rem;
    align-items: start;
  }

  .anchor-footer__nav {
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
  }
}


/* Footer address block (NAP) */
.anchor-footer__address {
  margin-top: 1.5rem;
  font-style: normal;
  color: rgba(255, 255, 255, 0.4);
  font-size: 0.875rem;
  line-height: 1.6;
}
.anchor-footer__address-name {
  display: block;
  color: rgba(255, 255, 255, 0.7);
  font-weight: 500;
}

/* =======================================================================
   DROPDOWN — COLUMN LAYOUT + CTA STRIP
   Opt-in: only dropdowns that actually contain columns become a grid, so the
   plain single-column dropdown styling above is left alone.
   ======================================================================= */
/* `width: max-content` + auto tracks: the panel is absolutely positioned, so it
   shrink-to-fits. A fixed track minimum (minmax(170px, …)) would cap the grid's
   min-content contribution at the track floor and the columns would collide. */
.anchor-nav__dropdown-inner:has(.anchor-nav__dropdown-col) {
  display: grid;
  grid-template-columns: auto auto;
  width: max-content;
  max-width: calc(100vw - 2rem);
  padding: 0;
}

.anchor-nav__dropdown-col {
  min-width: 170px;
  padding: 1.125rem 0.75rem 1.25rem;
}

/* Hairline between the two columns. */
.anchor-nav__dropdown-col + .anchor-nav__dropdown-col {
  border-left: 1px solid var(--deka-rule);
}

.anchor-nav__dropdown-col-label {
  display: block;
  padding: 0 1rem;
  margin-bottom: 0.5rem;
  font-family: var(--deka-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--anchor-navy-rgb), 0.45);
}

.anchor-nav__dropdown-col-links {
  display: flex;
  flex-direction: column;
}

.anchor-nav__dropdown-col .anchor-nav__dropdown-link {
  white-space: nowrap;
  border-radius: var(--anchor-radius-lg, 0.5rem);
}

/* --- Full-width CTA strip pinned to the foot of the dropdown --- */
.anchor-nav__dropdown-strip {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 0.875rem 1.25rem;
  background: var(--deka-ink);
  color: var(--deka-ivory);
  transition: background var(--anchor-transition-normal);
}

.anchor-nav__dropdown-strip:hover {
  background: var(--deka-ink-2);
}

.anchor-nav__dropdown-strip-label {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--deka-ivory);
  white-space: nowrap;
}

.anchor-nav__dropdown-strip-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--deka-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--deka-brass);
  white-space: nowrap;
}

.anchor-nav__dropdown-strip:hover .anchor-nav__dropdown-strip-cta i {
  transform: translateX(3px);
}

.anchor-nav__dropdown-strip-cta i {
  transition: transform var(--anchor-transition-normal);
}

/* =======================================================================
   MOBILE OVERLAY — nested groups + CTA strip
   ======================================================================= */
.anchor-mobile-overlay__group + .anchor-mobile-overlay__group {
  margin-top: 0.75rem;
}

.anchor-mobile-overlay__group-label {
  display: block;
  padding: 0.5rem 0 0.25rem;
  font-family: var(--deka-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--anchor-surface-200-rgb), 0.55);
}

.anchor-mobile-overlay__group-links {
  display: flex;
  flex-direction: column;
}

.anchor-mobile-overlay__strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1rem;
  padding: 0.875rem 1rem;
  border-radius: var(--anchor-radius-lg, 0.5rem);
  background: var(--deka-ink);
  border: 1px solid var(--deka-rule-light);
  color: var(--deka-ivory);
}

.anchor-mobile-overlay__strip-label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--deka-ivory);
}

.anchor-mobile-overlay__strip-cta {
  font-family: var(--deka-mono);
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--deka-brass);
  white-space: nowrap;
}

/* ---------------------------------------------------------------------------
   Floating cart button — appears once the cart has items, opens the fly-in
   drawer. Sits below the drawer overlay (z 1200) so it tucks behind when open.
   --------------------------------------------------------------------------- */
.deka-cart-fab {
  position: fixed;
  right: clamp(16px, 3vw, 28px);
  bottom: clamp(16px, 3vw, 28px);
  z-index: 1100;
  width: 56px; height: 56px; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border: 0; border-radius: 999px; cursor: pointer;
  background: var(--deka-ink, #040541);
  color: var(--deka-ivory, #f5f4ef);
  box-shadow: 0 18px 34px -14px rgba(4, 5, 65, 0.55), 0 2px 6px rgba(4, 5, 65, 0.25);
  opacity: 0; visibility: hidden;
  transform: translateY(14px) scale(0.86);
  transition: opacity .28s ease, transform .34s cubic-bezier(.2, .7, .2, 1), visibility 0s linear .34s;
}
.deka-cart-fab.is-visible {
  opacity: 1; visibility: visible;
  transform: translateY(0) scale(1);
  transition: opacity .28s ease, transform .34s cubic-bezier(.2, .7, .2, 1), visibility 0s;
}
.deka-cart-fab:hover { transform: translateY(-2px) scale(1.04); }
.deka-cart-fab:active { transform: translateY(0) scale(.97); }
.deka-cart-fab:focus-visible { outline: 2px solid var(--deka-brass); outline-offset: 3px; }

.deka-cart-fab__count {
  position: absolute; top: -2px; right: -2px;
  min-width: 20px; height: 20px; padding: 0 5px;
  border-radius: 999px;
  background: var(--deka-brass); color: #fff;
  font-family: var(--deka-mono); font-size: 10.5px; font-weight: 600; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  border: 2px solid var(--deka-ink, #040541);
}

/* Nudge when the cart changes while the drawer is closed. */
.deka-cart-fab.is-pop { animation: deka-fab-pop .55s cubic-bezier(.2, .7, .2, 1); }
@keyframes deka-fab-pop {
  0%   { transform: translateY(0) scale(1); }
  35%  { transform: translateY(-5px) scale(1.14); }
  100% { transform: translateY(0) scale(1); }
}

/* Redundant on the cart + checkout pages themselves. */
body.woocommerce-cart .deka-cart-fab,
body.woocommerce-checkout .deka-cart-fab { display: none; }

@media (prefers-reduced-motion: reduce) {
  .deka-cart-fab,
  .deka-cart-fab.is-visible { transform: none; transition: opacity .2s ease, visibility 0s; }
  .deka-cart-fab:hover, .deka-cart-fab:active { transform: none; }
  .deka-cart-fab.is-pop { animation: none; }
}


/* ==========================================================================
   reCAPTCHA — badge hidden + required attribution.
   Google permits hiding the floating badge ONLY if the attribution text is
   shown in the user flow; footer.php carries that text verbatim.
   `visibility: hidden` (not `display: none`) is what Google specifies — it
   keeps the widget functional. reCAPTCHA is enqueued site-wide here by
   ultimate-wp-captcha, so both the hide and the notice are global.
   Ref: https://developers.google.com/recaptcha/docs/faq
   ========================================================================== */
.grecaptcha-badge { visibility: hidden !important; }

.anchor-footer__recaptcha {
  flex-basis: 100%;
  margin: 0;
  color: rgba(255, 255, 255, 0.45);
  font-size: 0.75rem;
  line-height: 1.6;
}
.anchor-footer__recaptcha a {
  color: rgba(255, 255, 255, 0.62);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--anchor-transition-normal);
}
.anchor-footer__recaptcha a:hover { color: #fff; }
