/* assets/css/kesofe5.css — Edgar's Painting and Handyman Services, LLC */

.frame-top-strip {
  width:100%;
  background-color:var(--bg-ground-deep);
  border-bottom:1px solid var(--line-ledger);
  padding:6px var(--site-frame-pad);
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
  gap:var(--space-xs) var(--space-sm);
  font-family:var(--wigu-256);
  font-size:var(--fs-xs);
  color:var(--ink-dim);
  z-index:100;
}

.frame-top-strip a {
  white-space:nowrap;
}

.frame-top-strip a {
  color:var(--ink-dim);
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.frame-top-strip a:hover {
  color:var(--accent-gold);
}

.strip-item {
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.strip-sep {
  opacity:0.35;
}

/* -------------------------------------------------------------
  1. Site Header & Brand
------------------------------------------------------------- */
.site-header {
  position:sticky;
  top:0;
  z-index:90;
  background-color:rgba(74, 31, 34, 0.94);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line-border);
  overflow:visible !important;
  transition:background-color var(--dur-mid) var(--ease-standard),
              padding var(--dur-mid) var(--ease-standard),
              border-color var(--dur-mid) var(--ease-standard);
}

.site-header.is-condensed {
  background-color:rgba(40, 13, 16, 0.98);
  border-bottom-color:var(--line-ledger);
}

.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-md);
  padding:var(--space-sm) var(--site-frame-pad);
  min-height:64px;
}

.brand {
  display:inline-flex;
  align-items:center;
  text-decoration:none;
  flex-shrink:0;
  line-height:1;
  padding:4px;
}

.brand:focus-visible {

  outline:2px solid var(--accent-gold);
  outline-offset:4px;
}

.brand img {
  height:2.1rem;
  width:auto;
  max-width:min(100%, 260px);
  display:block;
}

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

.nav-panel .btn {
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  flex-shrink:0;
  background-color:var(--accent-gold) !important;
  color:#150507 !important;
}

.nav-list {
  display:flex;
  list-style:none;
  padding:0;
  margin:0;
  align-items:center;
  gap:4px;
}

.nav-link {
  font-family:var(--wigu-2ad);
  font-size:var(--fs-sm);
  font-weight:500;
  color:var(--ink-cream);
  text-decoration:none;
  padding:8px 12px;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:var(--radius-xs);
  border:1px solid transparent;
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  flex-shrink:0;
  transition:background-color var(--dur-fast) var(--ease-standard),
              border-color var(--dur-fast) var(--ease-standard),
              color var(--dur-fast) var(--ease-standard);
}

.nav-link:hover {
  color:var(--accent-gold-hover);
  background-color:var(--accent-gold-soft);
  border-color:var(--line-ledger);
}

.nav-link:active {
  background-color:rgba(201, 155, 74, 0.25);
  transform:translateY(1px);
}

.nav-link:focus-visible {
  outline:2px solid var(--accent-gold);
  outline-offset:2px;
}

.nav-link.is-active {
  color:var(--accent-gold);
  border-color:var(--line-ledger);
  background-color:var(--bg-surface);
}

.nav-toggle {
  display:none;
  background:var(--bg-surface);
  border:1px solid var(--line-border);
  color:var(--ink-cream);
  min-height:44px;
  min-width:44px;
  padding:8px 12px;
  border-radius:var(--radius-xs);
  align-items:center;
  justify-content:center;
  gap:8px;
  cursor:pointer;
  font-size:var(--fs-sm);
  font-family:var(--wigu-256);
  transition:background-color var(--dur-fast) var(--ease-standard),
              border-color var(--dur-fast) var(--ease-standard),
              color var(--dur-fast) var(--ease-standard);
}

.nav-toggle:hover {
  background-color:var(--bg-surface-soft);
  border-color:var(--accent-gold);
  color:var(--accent-gold);
}

.nav-toggle:active {
  background-color:var(--bg-ground-deep);
  transform:translateY(1px);
}

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

@media (max-width: 1060px) {
  .nav-toggle {
    display:inline-flex !important;
  }
  .nav-panel {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background-color:var(--bg-ground-dark);
    border-bottom:2px solid var(--line-ledger);
    padding:var(--space-md) var(--site-frame-pad);
    box-shadow:var(--shadow-raised);
    flex-direction:column;
    align-items:stretch;
    gap:var(--space-sm);
  }
  .nav-panel.is-open {
    display:flex;
  }
  .nav-list {
    flex-direction:column;
    align-items:stretch;
    gap:8px;

  }
  .nav-link {
    width:100%;
    justify-content:flex-start;
    padding:12px 16px;
    background-color:var(--bg-surface);
  }
  .nav-panel .btn {
    width:100%;
  }
}

/* -------------------------------------------------------------
  3. Buttons & Action Links
------------------------------------------------------------- */
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-family:var(--wigu-2ad);
  font-weight:600;
  font-size:var(--fs-sm);
  letter-spacing:var(--tracking-wide);
  text-transform:uppercase;
  padding:12px 24px;
  min-height:44px;
  border-radius:var(--radius-xs);
  text-decoration:none;
  cursor:pointer;
  border:1px solid transparent;
  transition:background-color var(--dur-fast) var(--ease-standard),
              border-color var(--dur-fast) var(--ease-standard),
              color var(--dur-fast) var(--ease-standard),
              box-shadow var(--dur-fast) var(--ease-standard),
              transform var(--dur-fast) var(--ease-standard);
  white-space:normal;
  text-align:center;
}

.btn-primary {
  background-color:var(--accent-gold);
  color:#150507;
  border-color:var(--accent-gold);
  box-shadow:0 2px 6px rgba(0, 0, 0, 0.25);
}

.btn-primary:hover {
  background-color:var(--accent-gold-hover);
  border-color:var(--accent-gold-hover);
  color:#150507;
  box-shadow:0 4px 12px var(--accent-gold-glow);
}

.btn-primary:active {
  background-color:#b5893a;
  color:#150507;
  transform:translateY(1px);
}

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

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

.btn-secondary:hover {
  background-color:var(--bg-surface);
  border-color:var(--accent-gold);
  color:var(--accent-gold);
}

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

.btn-secondary:focus-visible {
  outline:2px solid var(--accent-gold);
  outline-offset:3px;
}

.btn-sm {
  padding:8px 16px;
  min-height:38px;
  font-size:var(--fs-xs);
}

.btn-group {

  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--space-sm);
}

.marquee-strip {
  width:100%;
  overflow:hidden !important;
  background-color:var(--bg-ground-deep);
  border-block:1px solid var(--line-ledger);
  padding:10px var(--site-frame-pad);
  position:relative;
  user-select:none;
}

.marquee-track {
  display:flex;
  width:100%;
  max-width:100%;
  animation:none !important;
  transform:none !important;
}

.marquee-strip:hover .marquee-track {
  animation-play-state:paused;
}

.marquee-content {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:var(--space-xs) var(--space-md);
  width:100%;
  padding-right:0;
  font-family:var(--wigu-256);
  font-size:var(--fs-xs);
  color:var(--ink-muted);
  text-transform:uppercase;
  letter-spacing:var(--tracking-wide);
}

.marquee-content + .marquee-content {
  display:none !important;
}

.marquee-item {
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:0;
  max-width:100%;
  white-space:normal;
  text-align:center;
}

.marquee-sep {
  color:var(--accent-gold);
  font-weight:700;
}

@keyframes marquee-roll {
  0% { transform: translateX(0); }
  100% { transform: translateX(0); }
}

.tab-bar-container {
  border-bottom:2px solid var(--line-ledger);
  background-color:var(--bg-surface);
  position:relative;
}

.tab-nav {
  display:flex;
  overflow-x:auto;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  padding:0 var(--site-frame-pad);
  gap:2px;
}

.tab-nav::-webkit-scrollbar {
  display:none;
}

.tab-btn {
  font-family:var(--wigu-256);
  font-size:var(--fs-sm);
  font-weight:600;
  letter-spacing:var(--tracking-wide);
  color:var(--ink-muted);
  background:transparent;
  border:1px solid transparent;
  border-bottom:0;
  padding:14px 22px;
  min-height:48px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
  white-space:nowrap;
  border-radius:var(--radius-xs) var(--radius-xs) 0 0;
  transition:color var(--dur-fast) var(--ease-standard),
              background-color var(--dur-fast) var(--ease-standard),
              border-color var(--dur-fast) var(--ease-standard);
}

.tab-btn:hover {
  color:var(--ink-cream);
  background-color:var(--bg-surface-soft);
  border-color:var(--line-border);
}

.tab-btn:active {
  background-color:var(--bg-ground-dark);
}

.tab-btn:focus-visible {
  outline:2px solid var(--accent-gold);
  outline-offset:-2px;
}

.tab-btn[aria-selected='true'],
.tab-btn.is-active {
  color:var(--accent-gold);
  background-color:var(--bg-ground);
  border-color:var(--line-ledger);
  border-bottom:2px solid var(--bg-ground);
  margin-bottom:-2px;
}

.tab-panel {
  display:none;
}

.tab-panel.is-active {
  display:block;
}

.deck-shelf {
  position:relative;
  padding:var(--space-xl) 0;
  border-bottom:1px solid var(--line-ledger);
  background-color:var(--bg-surface);
  overflow:hidden;
}

.deck-header {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:var(--space-md);
  margin-bottom:var(--space-lg);
  padding-inline:var(--site-frame-pad);
}

.deck-controls {
  display:flex;
  align-items:center;
  gap:8px;
}

.deck-nav-btn {
  background-color:var(--bg-ground-dark);
  border:1px solid var(--line-border-strong);
  color:var(--ink-cream);
  min-width:44px;
  min-height:44px;
  border-radius:var(--radius-xs);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background-color var(--dur-fast) var(--ease-standard),
              border-color var(--dur-fast) var(--ease-standard),
              color var(--dur-fast) var(--ease-standard);
}

.deck-nav-btn:hover {
  background-color:var(--bg-surface-soft);
  border-color:var(--accent-gold);
  color:var(--accent-gold);
}

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

.deck-nav-btn:focus-visible {
  outline:2px solid var(--accent-gold);
  outline-offset:2px;
}

.deck-viewport {
  width:100%;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  padding:var(--space-xs) var(--site-frame-pad) var(--space-md);
  cursor:grab;
  scrollbar-width:thin;
  scrollbar-color:var(--line-ledger) var(--bg-ground-deep);
}

.deck-viewport:active {
  cursor:grabbing;
}

.deck-track {
  display:flex;
  gap:var(--space-md);
  width:max-content;
}

.deck-card {
  flex:0 0 320px;
  scroll-snap-align:start;
  background-color:var(--bg-ground-dark);
  border:1px solid var(--line-border);
  border-top:3px solid var(--line-ledger);
  padding:var(--space-md);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:380px;
  position:relative;
  transition:border-color var(--dur-fast) var(--ease-standard),
              box-shadow var(--dur-fast) var(--ease-standard);
}

@media (min-width: 640px) {
  .deck-card {
    flex:0 0 360px;
  }
}

.deck-card:hover {
  border-color:var(--accent-gold);
  box-shadow:var(--shadow-raised);
}

.deck-card-lead {
  font-family:var(--wigu-256);
  font-size:var(--fs-xs);
  color:var(--accent-gold);
  text-transform:uppercase;
  letter-spacing:var(--tracking-wide);
  margin-bottom:var(--space-2xs);
}

.deck-card-title {
  font-family:var(--wigu-441);
  font-size:var(--fs-lg);
  color:var(--ink-cream);
  line-height:var(--lh-snug);
  margin-bottom:var(--space-xs);
}

.deck-card-price {
  font-family:var(--wigu-256);
  font-size:var(--fs-md);
  font-weight:600;
  color:var(--accent-gold);
  margin-bottom:var(--space-sm);
  padding-bottom:var(--space-xs);
  border-bottom:1px dashed var(--line-ledger);
}

.deck-card-body {
  font-size:var(--fs-sm);
  color:var(--ink-muted);
  line-height:var(--lh-normal);
  margin-bottom:var(--space-md);
}

.deck-card-spec {
  list-style:none;
  padding:0;
  margin:0 0 var(--space-md) 0;
  border-top:1px solid var(--line-border);
  padding-top:var(--space-xs);
}

.deck-card-spec li {
  font-family:var(--wigu-256);
  font-size:var(--fs-xs);
  color:var(--ink-dim);
  display:flex;
  justify-content:space-between;
  padding-block:4px;
}

.deck-card-spec span:last-child {
  color:var(--ink-cream);
}

.inquiry-card {
  background-color:var(--bg-surface);
  border:1px solid var(--line-border);
  border-top:4px solid var(--accent-gold);
  padding:clamp(20px, 16px + 1.5vw, 40px);
  position:relative;
  box-shadow:var(--shadow-raised);
}

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

@media (min-width: 640px) {
  .form-grid-2 {
    grid-template-columns:1fr 1fr;
  }
}

.form-field {
  display:flex;
  flex-direction:column;
  gap:6px;
  position:relative;
}

.form-label {
  font-family:var(--wigu-256);
  font-size:var(--fs-xs);
  color:var(--ink-cream);
  text-transform:uppercase;
  letter-spacing:var(--tracking-wide);
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.form-label .optional-tag {
  color:var(--ink-cream);
  font-size:0.85em;
  text-transform:lowercase;
}

.form-input, .form-textarea, .form-select {
  width:100%;
  background-color:var(--bg-ground-dark);
  border:1px solid var(--line-border-strong);
  color:var(--ink-cream);
  padding:12px 14px;
  min-height:44px;
  border-radius:var(--radius-xs);
  font-family:var(--wigu-2ad);
  font-size:var(--fs-base);
  transition:border-color var(--dur-fast) var(--ease-standard),
              background-color var(--dur-fast) var(--ease-standard),
              box-shadow var(--dur-fast) var(--ease-standard);
}

.form-input:hover, .form-textarea:hover, .form-select:hover {
  border-color:var(--ink-muted);
  background-color:var(--bg-surface-soft);
}

.form-input:focus-visible, .form-textarea:focus-visible, .form-select:focus-visible {
  outline:2px solid var(--accent-gold);
  border-color:var(--accent-gold);
  background-color:var(--bg-surface);
}

.form-textarea {
  min-height:120px;
  resize:vertical;
}

.form-field.has-error .form-input,
.form-field.has-error .form-textarea,
.form-field.has-error .form-select {
  border-color:var(--status-err);
  background-color:rgba(224, 109, 96, 0.08);
}

.form-error-msg {
  display:none;
  font-family:var(--wigu-256);
  font-size:var(--fs-xs);
  color:var(--status-err);
  margin-top:2px;
}

.form-field.has-error .form-error-msg {
  display:block;
}

.form-checkbox-row {
  display:flex;
  align-items:flex-start;
  gap:12px;
  cursor:pointer;
  user-select:none;
}

.form-checkbox-row input[type='checkbox'] {
  appearance:none;
  -webkit-appearance:none;
  width:22px;
  height:22px;
  flex-shrink:0;
  border:1px solid var(--line-border-strong);
  background-color:var(--bg-ground-dark);
  border-radius:var(--radius-xs);
  cursor:pointer;
  display:grid;
  place-content:center;
  margin-top:2px;
  transition:border-color var(--dur-fast) var(--ease-standard),
              background-color var(--dur-fast) var(--ease-standard);
}

.form-checkbox-row input[type='checkbox']:hover {
  border-color:var(--accent-gold);
}

.form-checkbox-row input[type='checkbox']:checked {
  background-color:var(--accent-gold);
  border-color:var(--accent-gold);
}

.form-checkbox-row input[type='checkbox']:checked::before {
  content:"";
  width:10px;
  height:6px;
  border-left:2px solid var(--bg-ground-deep);
  border-bottom:2px solid var(--bg-ground-deep);
  transform:rotate(-45deg) translate(1px, -1px);
}

.form-checkbox-row input[type='checkbox']:focus-visible {
  outline:2px solid var(--accent-gold);
  outline-offset:2px;
}

.form-checkbox-label {
  font-size:var(--fs-sm);
  color:var(--ink-muted);
  line-height:var(--lh-snug);
}

.form-feedback {
  display:none;
  padding:14px 18px;
  border-radius:var(--radius-xs);
  font-family:var(--wigu-256);
  font-size:var(--fs-sm);
  margin-top:var(--space-sm);
  border-left:4px solid currentColor;
}

.form-feedback.is-success {
  display:block;
  background-color:rgba(95, 168, 120, 0.15);
  color:#8be0a5;
  border-color:var(--status-ok);
}

.form-feedback.is-error {
  display:block;
  background-color:rgba(224, 109, 96, 0.15);
  color:#ff9b90;
  border-color:var(--status-err);
}

.site-footer {
  margin-top:auto;
  background-color:var(--bg-ground-deep);
  border-top:2px solid var(--line-ledger);
  padding:var(--space-xl) var(--site-frame-pad) var(--space-lg);
  position:relative;
  z-index:10;
}

.footer-main {
  display:grid;
  grid-template-columns:1fr;
  gap:var(--space-xl);
  margin-bottom:var(--space-xl);
}

@media (min-width: 768px) {
  .footer-main {
    grid-template-columns:1.5fr 1fr 1fr;
  }
}

.footer-brand-col .footer-logo {
  height:2.3rem;
  width:auto;
  max-width:100%;
  display:block;
  margin-bottom:var(--space-sm);
}

.footer-desc {
  font-size:var(--fs-sm);
  color:var(--ink-muted);
  max-width:36ch;
  line-height:var(--lh-normal);
  margin-bottom:var(--space-sm);
}

.footer-heading {
  font-family:var(--wigu-256);
  font-size:var(--fs-xs);
  color:var(--accent-gold);
  text-transform:uppercase;
  letter-spacing:var(--tracking-widest);
  margin-bottom:var(--space-sm);
  display:block;
}

.footer-nav-list {
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.footer-nav-list a {
  color:var(--ink-muted);
  text-decoration:none;
  font-size:var(--fs-sm);
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:32px;
  transition:color var(--dur-fast) var(--ease-standard);
}

.footer-nav-list a:hover {
  color:var(--accent-gold);
}

.footer-nav-list a:active {
  color:var(--accent-gold-hover);
}

.footer-nav-list a:focus-visible {
  outline:2px solid var(--accent-gold);
  outline-offset:2px;
}

.footer-facts-list {
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:10px;
  font-family:var(--wigu-256);
  font-size:var(--fs-xs);
}

.footer-facts-list li {
  color:var(--ink-muted);
  display:flex;
  align-items:flex-start;
  gap:8px;
  line-height:1.4;
}

.footer-facts-list a {
  color:var(--ink-cream);
  text-decoration:none;
}

.footer-facts-list a:hover {
  color:var(--accent-gold);
}

.footer-legal-bar {
  border-top:1px solid var(--line-border);
  padding-top:var(--space-md);
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
  gap:var(--space-sm);
  font-family:var(--wigu-256);
  font-size:var(--fs-xs);
  color:var(--ink-dim);
}

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

.legal-links a, .reopen-consent-btn {
  color:var(--ink-dim);
  text-decoration:underline;
  text-underline-offset:3px;
  background:transparent;
  border:0;
  cursor:pointer;
  padding:4px;
  font-family:inherit;
  font-size:inherit;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  transition:color var(--dur-fast) var(--ease-standard);
}

.legal-links a:hover, .reopen-consent-btn:hover {
  color:var(--accent-gold);
}

.legal-links a:active, .reopen-consent-btn:active {
  color:var(--accent-gold-hover);
}

.legal-links a:focus-visible, .reopen-consent-btn:focus-visible {
  outline:2px solid var(--accent-gold);
  outline-offset:2px;
}

.cookie-banner {
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  z-index:950;
  background-color:rgba(30, 10, 12, 0.98);
  border-top:2px solid var(--accent-gold);
  box-shadow:var(--shadow-dock);
  padding:12px var(--site-frame-pad);
  display:none;
}

.cookie-banner.is-visible {
  display:block;
}

.cookie-banner-inner {
  max-width:var(--site-max-width);
  margin-inline:auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-sm);
}

.cookie-text {
  font-size:var(--fs-xs);
  color:var(--ink-muted);
  line-height:var(--lh-snug);
  max-width:62ch;
  margin:0;
}

.cookie-text a {
  color:var(--accent-gold);
}

.cookie-actions {
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}

.btn-cookie {
  min-height:40px;
  padding:8px 18px;
  font-size:var(--fs-xs);
  font-family:var(--wigu-256);
  font-weight:600;
  letter-spacing:var(--tracking-wide);
  text-transform:uppercase;
  border-radius:var(--radius-xs);
  cursor:pointer;
  border:1px solid transparent;
  transition:background-color var(--dur-fast) var(--ease-standard),
              border-color var(--dur-fast) var(--ease-standard),
              color var(--dur-fast) var(--ease-standard);
}

.btn-cookie-accept {
  background-color:var(--accent-gold);
  color:var(--bg-ground-deep);
  border-color:var(--accent-gold);
}

.btn-cookie-accept:hover {
  background-color:var(--accent-gold-hover);
}

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

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

.btn-cookie-decline {
  background-color:transparent;
  color:var(--ink-muted);
  border-color:var(--line-border-strong);
}

.btn-cookie-decline:hover {
  color:var(--ink-cream);
  border-color:var(--ink-cream);
  background-color:var(--bg-surface);
}

.btn-cookie-decline:active {
  background-color:var(--bg-ground-dark);
  transform:translateY(1px);
}

.btn-cookie-decline:focus-visible {
  outline:2px solid var(--accent-gold);
  outline-offset:2px;
}

.chat-root {
  position:fixed;
  bottom:20px;
  right:20px;
  z-index:900;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  pointer-events:none;
}

.chat-root.stepped-up {
  bottom:84px;
}

.chat-launcher {
  pointer-events:auto;
  background-color:var(--accent-gold);
  color:var(--bg-ground-deep);
  border:2px solid var(--bg-ground-deep);
  box-shadow:var(--shadow-raised);
  min-height:52px;
  min-width:52px;
  padding:10px 18px;
  border-radius:var(--radius-xs);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-family:var(--wigu-2ad);
  font-weight:600;
  font-size:var(--fs-sm);
  cursor:pointer;
  position:relative;
  transition:background-color var(--dur-fast) var(--ease-standard),
              transform var(--dur-fast) var(--ease-standard),
              box-shadow var(--dur-fast) var(--ease-standard),
              border-color var(--dur-fast) var(--ease-standard);
}

.chat-launcher:hover {
  background-color:var(--accent-gold-hover);
  transform:translateY(-2px);
  box-shadow:0 8px 24px var(--accent-gold-glow);
}

.chat-launcher:active {
  background-color:#b5893a;
  transform:translateY(0);
}

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

.chat-unread-badge {
  position:absolute;
  top:-6px;
  right:-6px;
  background-color:var(--status-err);
  color:#fff;
  font-family:var(--wigu-256);
  font-size:11px;
  font-weight:700;
  min-width:20px;
  height:20px;
  padding:0 4px;
  border-radius:10px;
  display:none;
  align-items:center;
  justify-content:center;
  border:2px solid var(--bg-ground-deep);
}

.chat-unread-badge.is-visible {
  display:inline-flex;
}

.chat-panel {
  pointer-events:auto;
  display:none;
  width:min(380px, calc(100vw - 32px));
  height:min(520px, calc(100vh - 120px));
  background-color:var(--bg-ground-dark);
  border:1px solid var(--line-ledger);
  border-radius:var(--radius-xs);
  box-shadow:var(--shadow-raised);
  flex-direction:column;
  margin-bottom:12px;
  overflow:hidden;
}

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

.chat-panel-header {
  background-color:var(--bg-ground-deep);
  border-bottom:1px solid var(--line-ledger);
  padding:12px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.chat-title-wrap {
  display:flex;
  flex-direction:column;
}

.chat-title {
  font-family:var(--wigu-441);
  font-size:var(--fs-sm);
  font-weight:700;
  color:var(--ink-cream);
  line-height:1.2;
}

.chat-subtitle {
  font-family:var(--wigu-256);
  font-size:11px;
  color:var(--accent-gold);
}

.chat-close-btn {
  background:transparent;
  border:1px solid transparent;
  color:var(--ink-muted);
  width:36px;
  height:36px;
  border-radius:var(--radius-xs);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:color var(--dur-fast) var(--ease-standard),
              background-color var(--dur-fast) var(--ease-standard);
}

.chat-close-btn:hover {
  color:var(--ink-cream);
  background-color:var(--bg-surface);
}

.chat-close-btn:active {
  background-color:var(--bg-ground-deep);
}

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

.chat-transcript {
  flex:1;
  overflow-y:auto;
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:12px;
  background-color:var(--bg-ground);
}

.chat-bubble {
  max-width:82%;
  padding:10px 14px;
  border-radius:var(--radius-xs);
  font-size:var(--fs-sm);
  line-height:var(--lh-snug);
  word-break:break-word;
}

.chat-bubble.bot {
  align-self:flex-start;
  background-color:var(--bg-surface);
  border:1px solid var(--line-border);
  color:var(--ink-cream);
}

.chat-bubble.user {
  align-self:flex-end;
  background-color:var(--accent-gold);
  color:var(--bg-ground-deep);
  font-weight:500;
}

.chat-bubble-meta {
  font-family:var(--wigu-256);
  font-size:10px;
  margin-top:4px;
  opacity:0.7;
}

.chat-intake-form {
  padding:16px;
  background-color:var(--bg-surface);
  border-top:1px solid var(--line-border);
  display:flex;
  flex-direction:column;
  gap:10px;
}

.chat-composer {
  padding:12px;
  background-color:var(--bg-ground-deep);
  border-top:1px solid var(--line-ledger);
  display:flex;
  gap:8px;
}

.chat-composer input {
  flex:1;
  background-color:var(--bg-ground-dark);
  border:1px solid var(--line-border);
  color:var(--ink-cream);
  padding:10px 12px;
  font-size:var(--fs-sm);
  border-radius:var(--radius-xs);
  min-height:40px;
}

.chat-composer input:focus-visible {
  outline:2px solid var(--accent-gold);
  border-color:var(--accent-gold);
}

.chat-composer button {
  background-color:var(--accent-gold);
  color:var(--bg-ground-deep);
  border:0;
  min-width:44px;
  min-height:40px;
  border-radius:var(--radius-xs);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background-color var(--dur-fast) var(--ease-standard);
}

.chat-composer button:hover {
  background-color:var(--accent-gold-hover);
}

.chat-composer button:active {
  background-color:#b5893a;
}

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

.rate-badge {
  display:inline-flex;
  align-items:center;
  gap:6px;
  background-color:var(--accent-gold-soft);
  color:var(--accent-gold);
  border:1px solid var(--line-ledger);
  padding:4px 10px;
  border-radius:var(--radius-xs);
  font-family:var(--wigu-256);
  font-size:var(--fs-xs);
  font-weight:600;
  letter-spacing:var(--tracking-wide);
}

.spec-table-wrap {
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  margin-block:var(--space-md);
  border:1px solid var(--line-border);
  background-color:var(--bg-ground-dark);
}

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

.spec-table th,
.spec-table td {
  padding:12px 16px;
  border-bottom:1px solid var(--line-border);
  vertical-align:top;
}

.spec-table th {
  background-color:var(--bg-ground-deep);
  font-family:var(--wigu-256);
  font-size:var(--fs-xs);
  color:var(--accent-gold);
  text-transform:uppercase;
  letter-spacing:var(--tracking-wide);
  font-weight:600;
}

.spec-table tr:hover td {
  background-color:rgba(201, 155, 74, 0.05);
}

.spec-table td strong {
  color:var(--ink-cream);
  font-family:var(--wigu-2ad);
}

.spec-table td code {
  color:var(--accent-gold);
}

.spec-table tr:last-child td {
  border-bottom:none;
}
