


.skip-link {
  position:absolute;
  top:var(--space-xs);
  left:var(--space-sm);
  z-index:1000;
  padding:var(--space-xs) var(--space-md);
  background-color:var(--gold);
  color:#1a080a;
  font-family:var(--fesi-ec6);
  font-size:var(--text-sm);
  font-weight:700;
  text-decoration:none;
  transform:translateY(-180%);
  transition:transform var(--dur-fast) var(--ease-out),
              background-color var(--dur-fast) var(--ease-out);
  border-radius:var(--radius-sm);
}


.skip-link:focus,
.skip-link:focus-visible {
  transform:translateY(0);
  outline:2px solid var(--cream);
  outline-offset:2px;
}



.site-header {
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:900;
  width:100%;
  background-color:rgba(47, 19, 21, 0.88);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--cream-faint);
  transition:background-color var(--dur-med) var(--ease-out),
              border-color var(--dur-med) var(--ease-out),
              padding var(--dur-med) var(--ease-out),
              box-shadow var(--dur-med) var(--ease-out);
  padding-top:var(--space-xs);
  padding-bottom:var(--space-xs);
}


/* Condensed state applied on scroll past 80px */
.site-header.is-condensed {
  background-color:var(--ground-translucent);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--cream-hairline);
  box-shadow:var(--shadow-subtle);
  padding-top:var(--space-xs);
  padding-bottom:var(--space-xs);
}


.header-inner {
  display:flex;

  align-items:center;
  justify-content:space-between;
  gap:var(--space-md);
  min-width:0;
}


/* Brand lockup image sizing */
.brand {
  display:inline-flex;
  align-items:center;
  text-decoration:none;
  flex-shrink:0;
  line-height:1;
}


.brand-logo {
  height:2.15rem;
  width:auto;
  display:block;
  object-fit:contain;
}


.site-header.is-condensed .brand-logo {
  height:1.85rem;
}


.site-nav {
  display:flex;
  align-items:center;
  gap:clamp(0.75rem, 1.5vw, 2rem);
  flex-shrink:1;
  min-width:0;
}


.nav-list {
  display:flex;
  align-items:center;
  list-style:none;
  margin:0;
  padding:0;
  gap:clamp(0.5rem, 1.2vw, 1.5rem);
  flex-shrink:1;
}


.nav-link {
  font-family:var(--fesi-ec6);
  font-size:var(--text-sm);
  font-weight:500;

  text-decoration:none;
  color:var(--cream);
  letter-spacing:0.03em;
  padding:var(--space-2xs) clamp(0.25rem, 0.6vw, 0.75rem);
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:44px;
  white-space:nowrap;
  border-bottom:2px solid transparent;
  transition:color var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out);
}


.nav-link:hover {
  color:#fff;
  border-bottom-color:var(--gold);
}


.nav-link:active {
  color:var(--gold-hover);
  transform:translateY(1px);
}


.nav-link:focus-visible {
  outline:var(--border-focus);
  outline-offset:2px;
  border-radius:var(--radius-xs);
}


.nav-link[aria-current="page"] {
  color:var(--gold-hover);
  border-bottom-color:var(--gold-hover);
  font-weight:700;
}


.header-phone {
  display:inline-flex;
  align-items:center;
  gap:var(--space-2xs);
  font-family:var(--fesi-ec6);
  font-size:var(--text-xs);
  letter-spacing:0.05em;
  color:var(--gold-hover);
  background-color:var(--ground-deep);
  text-decoration:none;
  padding:var(--space-2xs) var(--space-xs);
  min-height:44px;
  white-space:nowrap;
  flex-shrink:0;
  border:1px solid var(--gold);
  border-radius:var(--radius-sm);
  transition:background-color var(--dur-fast) var(--ease-out),
              color var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out);
}


.header-phone span {
  white-space:nowrap;
  display:inline-block;
}


.header-phone:hover {
  background-color:var(--gold-faint);
  color:var(--gold-hover);
  border-color:var(--gold-hover);
}


.header-phone:active {
  background-color:var(--gold);
  color:#1a080a;
}


.header-phone:focus-visible {
  outline:var(--border-focus);
  outline-offset:2px;
}


/* Mobile navigation toggle button */
.nav-toggle {
  display:none;
  align-items:center;
  justify-content:center;

  width:44px;
  height:44px;
  background-color:var(--ground-elevated);
  border:1px solid var(--cream-hairline);
  color:var(--cream);
  border-radius:var(--radius-sm);
  padding:0;
  cursor:pointer;
  transition:background-color var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out),
              color var(--dur-fast) var(--ease-out);
}


.nav-toggle:hover {
  background-color:var(--ground-inset);
  color:var(--gold);
  border-color:var(--gold);
}


.nav-toggle:active {
  background-color:var(--ground-deep);
  transform:scale(0.96);
}


.nav-toggle:focus-visible {
  outline:var(--border-focus);
  outline-offset:2px;
}


.nav-toggle .icon-close {
  display:none;
}


.nav-toggle[aria-expanded="true"] .icon-menu {
  display:none;
}


.nav-toggle[aria-expanded="true"] .icon-close {
  display:inline-block;
}


@media (max-width: 1080px) {
  .nav-toggle {
    display:inline-flex;
    z-index:901;
    position:relative;
  }


  .site-nav {
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    width:min(340px, 86vw);
    background-color:var(--ground);
    border-left:1px solid var(--cream-hairline);
    box-shadow:var(--shadow-elevated);
    flex-direction:column;
    align-items:stretch;
    padding:calc(var(--space-xl) + 2rem) var(--space-md) var(--space-xl);
    transform:translateX(100%);
    transition:transform var(--dur-med) var(--ease-out);
    overflow-y:auto;
    z-index:899;
  }


  .site-nav.is-open {
    transform:translateX(0);
  }


  .nav-list {
    flex-direction:column;
    align-items:stretch;
    gap:var(--space-xs);
    width:100%;
  }


  .nav-link {
    width:100%;
    padding:var(--space-xs) var(--space-sm);
    border-bottom:1px solid var(--cream-faint);
  }


  .header-phone {
    margin-top:var(--space-md);
    width:100%;
    justify-content:center;
  }
}


/* Nav Backdrop for touch */
.nav-backdrop {
  position:fixed;
  inset:0;
  background-color:rgba(15, 6, 7, 0.75);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  opacity:0;
  pointer-events:none;
  transition:opacity var(--dur-med) var(--ease-out);
  z-index:898;
}


.nav-backdrop.is-active {
  opacity:1;
  pointer-events:auto;
}



.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-2xs);
  padding:0.75rem 1.45rem;
  min-height:44px;
  font-family:var(--fesi-ec6);
  font-size:var(--text-sm);
  font-weight:700;
  letter-spacing:0.04em;
  text-decoration:none;
  text-align:center;
  border-radius:var(--radius-sm);
  border:1px solid transparent;
  cursor:pointer;
  white-space:normal;
  word-break:break-word;
  line-height:var(--lh-tight);
  transition:background-color var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out),
              color var(--dur-fast) var(--ease-out),
              box-shadow var(--dur-fast) var(--ease-out),
              transform var(--dur-fast) var(--ease-out);
}


/* Primary Gold Button */
.btn-primary {
  background-color:var(--gold);
  color:#180709;
  border-color:var(--gold);
}


.btn-primary:hover {
  background-color:var(--gold-hover);
  border-color:var(--gold-hover);
  color:#100405;
  box-shadow:0 4px 14px rgba(201, 158, 50, 0.35);
}


.btn-primary:active {
  background-color:#b08828;
  border-color:#b08828;
  transform:translateY(1px);
  box-shadow:none;
}


.btn-primary:focus-visible {
  outline:2px solid var(--cream);
  outline-offset:3px;
}


.btn-secondary {
  background-color:transparent;
  color:var(--cream);
  border-color:var(--cream-hairline);
}


.btn-secondary:hover {
  background-color:var(--cream-faint);
  border-color:var(--cream-muted);
  color:var(--cream);
}


.btn-secondary:active {
  background-color:var(--ground-inset);
  transform:translateY(1px);
}


.btn-secondary:focus-visible {
  outline:var(--border-focus);
  outline-offset:3px;
}


/* Accent Inset Button */
.btn-inset {
  background-color:var(--ground-inset);
  color:var(--cream);
  border-color:var(--cream-faint);
}


.btn-inset:hover {
  background-color:var(--ground-elevated);
  border-color:var(--gold);
  color:var(--gold);
}


.btn-inset:active {
  background-color:var(--ground-deep);
  transform:translateY(1px);
}


.btn-inset:focus-visible {
  outline:var(--border-focus);
  outline-offset:3px;
}


/* Full-width helper */
.btn-block {
  width:100%;
}



.fact-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:var(--space-xs);
  margin-top:var(--space-md);
  margin-bottom:var(--space-md);
  padding:var(--space-md);
  background-color:var(--ground-inset);
  border-left:3px solid var(--gold);
  border-top:1px solid var(--cream-faint);
  border-right:1px solid var(--cream-faint);
  border-bottom:1px solid var(--cream-faint);
}


@media (min-width: 640px) {
  .fact-grid {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}


@media (min-width: 1024px) {
  .fact-grid {
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}


.fact-item {
  display:flex;
  flex-direction:column;
  gap:var(--space-3xs);
  min-width:0;
}


.fact-label {
  font-family:var(--fesi-ec6);
  font-size:var(--text-xs);
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--cream-dim);
}


.fact-value {
  font-family:var(--fesi-ec6);
  font-size:var(--text-base);
  font-weight:700;
  color:var(--cream);
  word-break:break-word;
}


.fact-value-gold {
  color:var(--gold);
}



.evidence-figure {
  width:100%;
  margin:var(--space-xl) 0;
  position:relative;
  overflow:hidden;
  border-top:var(--border-rule);
  border-bottom:var(--border-rule);
  background-color:var(--ground-deep);
}


.evidence-photo {
  width:100%;
  aspect-ratio:3 / 2;
  object-fit:cover;
  object-position:center;
  display:block;
}


.evidence-caption {
  padding:var(--space-xs) var(--shell-gutter);
  background-color:var(--ground-translucent);
  font-family:var(--fesi-ec6);
  font-size:var(--text-xs);
  color:var(--cream-muted);
  border-top:1px solid var(--cream-faint);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-sm);
  flex-wrap:wrap;
}


.evidence-caption-loc {
  color:var(--gold);
  font-weight:700;
}



.table-wrap {
  width:100%;
  overflow-x:auto;
  margin:var(--space-md) 0 var(--space-lg);
  border:1px solid var(--cream-hairline);
  background-color:var(--ground-inset);
  -webkit-overflow-scrolling:touch;
}


.spec-table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-family:var(--fesi-ec6);
  font-size:var(--text-sm);
}


.spec-table th,
.spec-table td {
  padding:var(--space-xs) var(--space-sm);
  border-bottom:1px solid var(--cream-faint);
  vertical-align:top;
}


.spec-table th {
  background-color:var(--ground-elevated);
  color:var(--gold);
  font-weight:700;
  letter-spacing:0.05em;
  text-transform:uppercase;
  font-size:var(--text-xs);
  white-space:nowrap;
}


.spec-table tr:hover td {
  background-color:rgba(247, 242, 232, 0.03);
}


.spec-table td:last-child {
  font-weight:700;
  color:var(--cream);
}



.inquiry-form {
  background-color:var(--ground-elevated);
  border:1px solid var(--cream-hairline);
  padding:clamp(1.25rem, 3.5vw, 2.5rem);
  box-shadow:var(--shadow-raised);
}


.form-grid {
  display:grid;
  grid-template-columns:1fr;
  gap:var(--space-md);
}


@media (min-width: 720px) {
  .form-grid-two {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}


.form-group {
  display:flex;
  flex-direction:column;
  gap:var(--space-3xs);
  min-width:0;
}


.form-label {
  font-family:var(--fesi-ec6);
  font-size:var(--text-xs);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--cream);
  display:flex;
  justify-content:space-between;
  align-items:baseline;
}


.form-optional {
  font-weight:400;
  text-transform:lowercase;
  color:var(--cream-dim);
  font-size:0.9em;
}


.form-control {
  width:100%;
  min-height:48px;
  padding:0.65rem 0.95rem;
  background-color:var(--ground-inset);
  border:1px solid var(--cream-hairline);
  border-radius:var(--radius-sm);
  color:var(--cream);
  font-family:var(--fesi-ec6);
  font-size:var(--text-base);
  transition:border-color var(--dur-fast) var(--ease-out),
              background-color var(--dur-fast) var(--ease-out),
              box-shadow var(--dur-fast) var(--ease-out);
}


.form-control:hover {
  border-color:var(--cream-muted);
}


.form-control:focus {
  outline:none;
  border-color:var(--gold);
  background-color:var(--ground);
  box-shadow:0 0 0 2px var(--gold-faint);
}


textarea.form-control {
  min-height:120px;
  resize:vertical;
  line-height:var(--lh-body);
}


select.form-control {
  cursor:pointer;
}


/* Consent Checkbox */
.form-checkbox-label {
  display:grid;
  grid-template-columns:24px 1fr;
  gap:var(--space-xs);
  align-items:start;
  font-size:var(--text-xs);
  color:var(--cream-muted);
  line-height:var(--lh-body);
  cursor:pointer;
  margin-top:var(--space-2xs);
}


.form-checkbox-label input[type="checkbox"] {
  width:20px;
  height:20px;
  margin-top:2px;
  accent-color:var(--gold);
  cursor:pointer;
}


.form-checkbox-label input[type="checkbox"]:focus-visible {
  outline:var(--border-focus);
  outline-offset:2px;
}


/* Error presentation */
.form-error-inline {
  display:none;
  font-family:var(--fesi-ec6);
  font-size:var(--text-xs);
  color:var(--text-error);
  margin-top:var(--space-3xs);
}


.form-group.has-error .form-control {
  border-color:var(--surface-error);
  background-color:rgba(139, 32, 36, 0.18);
}


.form-group.has-error .form-error-inline {
  display:block;
}


.form-status-banner {
  display:none;
  padding:var(--space-sm) var(--space-md);
  margin-top:var(--space-md);
  border-radius:var(--radius-sm);
  font-family:var(--fesi-ec6);
  font-size:var(--text-sm);
  line-height:var(--lh-body);
}


.form-status-banner.is-success {
  display:block;
  background-color:var(--surface-success);
  color:var(--text-success);
  border:1px solid rgba(176, 231, 193, 0.35);
}


.form-status-banner.is-error {
  display:block;
  background-color:var(--surface-error);
  color:var(--text-error);
  border:1px solid rgba(255, 179, 184, 0.35);
}



.headline-rotator {
  display:inline-block;
  color:var(--gold);
  position:relative;
  text-decoration:underline;
  text-decoration-color:var(--gold-dim);
  text-underline-offset:6px;
  min-width:6ch;
  transition:opacity var(--dur-med) var(--ease-out),
              transform var(--dur-med) var(--ease-out);
}


.headline-rotator.is-cycling {
  opacity:0;
  transform:translateY(-8px);
}



.site-footer {
  background-color:var(--ground-deep);
  border-top:2px solid var(--gold);
  padding-top:clamp(1.5rem, 3vw, 2.75rem);
  padding-bottom:var(--space-md);
  color:var(--cream-muted);
}


.footer-top {
  display:grid;
  grid-template-columns:1fr;
  gap:var(--space-md);
  padding-bottom:var(--space-md);
  border-bottom:1px solid var(--cream-faint);
}


@media (min-width: 880px) {
  .footer-top {
    grid-template-columns:1.4fr 1fr 1fr;
  }
}


.footer-col {
  display:flex;
  flex-direction:column;
  gap:var(--space-sm);
  min-width:0;
}


.footer-brand-logo {
  height:2.5rem;
  width:auto;
  object-fit:contain;
  margin-bottom:var(--space-2xs);
}


.footer-text {
  font-family:var(--fesi-ec6);
  font-size:var(--text-xs);
  line-height:var(--lh-relaxed);
  color:var(--cream-muted);
  max-width:44ch;
}


.footer-heading {
  font-family:var(--font-heading);
  font-size:var(--text-md);
  color:var(--cream);
  letter-spacing:0.05em;
  margin-bottom:var(--space-2xs);
  border-bottom:1px solid var(--gold-dim);
  padding-bottom:var(--space-3xs);
}


.footer-contact-list {
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:var(--space-2xs);
}


.footer-contact-item {
  display:flex;
  align-items:flex-start;
  gap:var(--space-xs);
  font-family:var(--fesi-ec6);
  font-size:var(--text-xs);
  line-height:var(--lh-body);
}


.footer-contact-item .icon {
  color:var(--gold);
  margin-top:0.2em;
}


.footer-nav-list {
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:var(--space-2xs);
}


.footer-nav-link {
  font-family:var(--fesi-ec6);
  font-size:var(--text-xs);
  color:var(--cream-muted);
  text-decoration:none;
  padding:var(--space-3xs) 0;
  min-height:32px;
  display:inline-flex;
  align-items:center;
  transition:color var(--dur-fast) var(--ease-out);
}


.footer-nav-link:hover {
  color:var(--gold);
}


.footer-nav-link:active {
  color:var(--gold-hover);
}


.footer-nav-link:focus-visible {
  outline:var(--border-focus);
  outline-offset:2px;
}


/* Footer Bottom Legal Strip */
.footer-bottom {
  padding-top:var(--space-sm);
  display:flex;
  flex-direction:column;
  gap:var(--space-xs);
  align-items:flex-start;
  font-family:var(--fesi-ec6);
  font-size:var(--text-xs);
  color:var(--cream-dim);
}


@media (min-width: 820px) {
  .footer-bottom {
    flex-direction:row;
    justify-content:space-between;
    align-items:center;
  }
}


.footer-legal-links {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-sm) var(--space-md);
  list-style:none;
  margin:0;
  padding:0;
}


.footer-legal-link {
  color:var(--cream-muted);
  text-decoration:underline;
  text-decoration-color:var(--cream-faint);
  min-height:32px;
  display:inline-flex;
  align-items:center;
  transition:color var(--dur-fast) var(--ease-out);
}


.footer-legal-link:hover {
  color:var(--gold);
}


.footer-legal-link:active {
  color:var(--gold-hover);
}


.footer-legal-link:focus-visible {
  outline:var(--border-focus);
  outline-offset:2px;
}


.btn-consent-trigger {
  background:none;
  border:none;
  padding:0;
  color:var(--cream-muted);
  font-family:var(--fesi-ec6);
  font-size:var(--text-xs);
  text-decoration:underline;
  text-decoration-color:var(--cream-faint);
  min-height:44px;
  display:inline-flex;
  align-items:center;
  cursor:pointer;
  transition:color var(--dur-fast) var(--ease-out);
}


.btn-consent-trigger:hover {
  color:var(--gold);
}


.btn-consent-trigger:active {
  color:var(--gold-hover);
}


.btn-consent-trigger:focus-visible {
  outline:var(--border-focus);
  outline-offset:2px;
}



.consent-banner {
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  z-index:950;
  background-color:var(--ground-translucent);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-top:1px solid var(--gold);
  padding:var(--space-xs) var(--shell-gutter);
  box-shadow:0 -4px 20px rgba(10, 4, 5, 0.6);
  transform:translateY(110%);
  transition:transform var(--dur-med) var(--ease-out);
}


.consent-banner.is-visible {
  transform:translateY(0);
}


.consent-inner {
  max-width:var(--shell-max);
  margin-left:auto;
  margin-right:auto;
  display:flex;
  flex-direction:column;
  gap:var(--space-xs);
  align-items:flex-start;
  justify-content:space-between;
}


@media (min-width: 760px) {
  .consent-inner {
    flex-direction:row;
    align-items:center;
    gap:var(--space-md);
  }
}


.consent-copy {
  font-family:var(--fesi-ec6);
  font-size:var(--text-xs);
  line-height:var(--lh-tight);
  color:var(--cream);
  margin:0;
}


.consent-actions {
  display:flex;
  align-items:center;
  gap:var(--space-xs);
  flex-shrink:0;
}


.btn-consent-accept,
.btn-consent-decline {
  padding:0.45rem 0.95rem;
  min-height:44px;
  font-family:var(--fesi-ec6);
  font-size:var(--text-xs);
  font-weight:700;
  border-radius:var(--radius-sm);
  cursor:pointer;
  transition:background-color var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out),
              color var(--dur-fast) var(--ease-out);
}


.btn-consent-accept {
  background-color:var(--gold);
  color:#1a080a;
  border:1px solid var(--gold);
}


.btn-consent-accept:hover {
  background-color:var(--gold-hover);
  border-color:var(--gold-hover);
}


.btn-consent-accept:active {
  background-color:#b08828;
  transform:translateY(1px);
}


.btn-consent-accept:focus-visible {
  outline:2px solid var(--cream);
  outline-offset:2px;
}


.btn-consent-decline {
  background-color:transparent;
  color:var(--cream-muted);
  border:1px solid var(--cream-hairline);
}


.btn-consent-decline:hover {
  background-color:var(--cream-faint);
  color:var(--cream);
}


.btn-consent-decline:active {
  background-color:var(--ground-inset);
  transform:translateY(1px);
}


.btn-consent-decline:focus-visible {
  outline:var(--border-focus);
  outline-offset:2px;
}



.chat-widget {
  position:fixed;
  bottom:clamp(1rem, 3vw, 2rem);
  right:clamp(1rem, 3vw, 2rem);
  z-index:920;
  font-family:var(--fesi-ec6);
}


body.has-consent-active .chat-widget {
  bottom:calc(clamp(1rem, 3vw, 2rem) + 70px);
}


@media (min-width: 760px) {
  body.has-consent-active .chat-widget {
    bottom:calc(clamp(1rem, 3vw, 2rem) + 56px);
  }
}


.chat-launcher {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-2xs);
  min-height:48px;
  padding:0.65rem 1.15rem;
  background-color:var(--gold);
  color:#1a080a;
  border:1px solid var(--gold);
  border-radius:var(--radius-sm);
  box-shadow:var(--shadow-raised);
  cursor:pointer;
  font-weight:700;
  font-size:var(--text-xs);
  letter-spacing:0.04em;
  transition:background-color var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out),
              color var(--dur-fast) var(--ease-out),
              box-shadow var(--dur-fast) var(--ease-out),
              transform var(--dur-fast) var(--ease-out);
}


.chat-launcher:hover {
  background-color:var(--gold-hover);
  border-color:var(--gold-hover);
  box-shadow:0 6px 18px rgba(201, 158, 50, 0.45);
}


.chat-launcher:active {
  background-color:#b08828;
  transform:translateY(1px);
}


.chat-launcher:focus-visible {
  outline:2px solid var(--cream);
  outline-offset:2px;
}


.chat-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  height:18px;
  padding:0 4px;
  background-color:var(--surface-error);
  color:#fff;
  border-radius:9px;
  font-size:0.7rem;
  font-weight:700;
  line-height:1;
}


.chat-badge:empty {
  display:none;
}


/* Chat Drawer Panel */
.chat-panel {
  display:none;
  position:fixed;
  bottom:clamp(1rem, 3vw, 2rem);
  right:clamp(1rem, 3vw, 2rem);
  width:min(380px, calc(100vw - 2rem));
  height:min(540px, calc(100vh - 4rem));
  background-color:var(--ground-elevated);
  border:1px solid var(--gold);
  box-shadow:var(--shadow-elevated);
  border-radius:var(--radius-sm);
  flex-direction:column;
  overflow:hidden;
  z-index:960;
}


.chat-panel.is-open {
  display:flex;
}


.chat-panel-header {
  padding:var(--space-xs) var(--space-sm);
  background-color:var(--ground-inset);
  border-bottom:1px solid var(--cream-hairline);
  display:flex;
  align-items:center;
  justify-content:space-between;
}


.chat-panel-title {
  font-family:var(--font-heading);
  font-size:var(--text-sm);
  color:var(--cream);
  margin:0;
  display:flex;
  align-items:center;
  gap:var(--space-2xs);
}


.chat-close-btn {
  background:none;
  border:none;
  color:var(--cream-muted);
  width:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  padding:0;
  transition:color var(--dur-fast) var(--ease-out);
}


.chat-close-btn:hover {
  color:var(--gold);
}


.chat-close-btn:active {
  color:var(--gold-hover);
}


.chat-close-btn:focus-visible {
  outline:var(--border-focus);
  outline-offset:2px;
}


.chat-messages {
  flex:1;
  padding:var(--space-sm);
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  gap:var(--space-xs);
  background-color:var(--ground-deep);
}


.chat-msg {
  max-width:82%;
  padding:var(--space-2xs) var(--space-xs);
  border-radius:var(--radius-sm);
  font-size:var(--text-xs);
  line-height:var(--lh-body);
  word-break:break-word;
}


.chat-msg-agent {
  align-self:flex-start;
  background-color:var(--ground-elevated);
  border:1px solid var(--cream-hairline);
  color:var(--cream);
}


.chat-msg-visitor {
  align-self:flex-end;
  background-color:var(--gold);
  color:#1a080a;
  font-weight:700;
}


.chat-msg-time {
  display:block;
  font-size:0.7em;
  opacity:0.75;
  margin-top:2px;
}


.chat-composer {
  padding:var(--space-xs);
  background-color:var(--ground-inset);
  border-top:1px solid var(--cream-hairline);
  display:flex;
  gap:var(--space-2xs);
}


.chat-input {
  flex:1;
  min-height:44px;
  padding:var(--space-2xs) var(--space-xs);
  background-color:var(--ground);
  border:1px solid var(--cream-hairline);
  border-radius:var(--radius-sm);
  color:var(--cream);
  font-size:var(--text-xs);
}


.chat-input:focus {
  outline:none;
  border-color:var(--gold);
}


.chat-send-btn {
  background-color:var(--gold);
  color:#1a080a;
  border:1px solid var(--gold);
  border-radius:var(--radius-sm);
  padding:0 var(--space-xs);
  min-height:44px;
  font-weight:700;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:background-color var(--dur-fast) var(--ease-out);
}


.chat-send-btn:hover {
  background-color:var(--gold-hover);
}


.chat-send-btn:active {
  background-color:#b08828;
}


.chat-send-btn:focus-visible {
  outline:2px solid var(--cream);
  outline-offset:2px;
}


.chat-intake-step {
  padding:var(--space-sm);
  display:flex;
  flex-direction:column;
  gap:var(--space-xs);
  background-color:var(--ground-inset);
}


.chat-intake-heading {
  font-family:var(--font-heading);
  font-size:var(--text-xs);
  color:var(--gold);
  margin:0;
}


.chat-intake-note {
  font-size:var(--text-xs);
  color:var(--cream-muted);
  margin:0;
}



@media (hover: hover) and (pointer: fine) {
  .btn[data-magnetic],
  .header-phone[data-magnetic] {
    will-change:transform;
    transition:transform 0.2s cubic-bezier(0.25, 1, 0.5, 1);
  }


  /* Floating image preview on hover */
  .hover-preview-portal {
    position:fixed;
    top:0;
    left:0;
    width:260px;
    height:170px;
    pointer-events:none;
    z-index:850;
    opacity:0;
    transform:translate(-50%, -50%) scale(0.92);
    transition:opacity 0.2s var(--ease-out), transform 0.2s var(--ease-out);
    border:2px solid var(--gold);
    box-shadow:var(--shadow-elevated);
    background-color:var(--ground-deep);
    overflow:hidden;
  }


  .hover-preview-portal.is-active {
    opacity:1;
    transform:translate(-50%, -50%) scale(1);
  }


  .hover-preview-img {
    width:100%;
    height:100%;
    object-fit:cover;
  }
}
