

.icon {
  display:inline-block;
  width:1.15em;
  height:1.15em;
  stroke-width:0;
  stroke:currentColor;
  fill:currentColor;
  vertical-align:-0.18em;
  flex-shrink:0;
  pointer-events:none;
}

.icon-sm {
  width:1em;
  height:1em;
}

.icon-lg {
  width:1.5em;
  height:1.5em;
}


.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--space-2xs);
  min-height:48px;
  padding:0.65rem 1.45rem;
  font-family:var(--maho-d80);
  font-size:var(--step--1);
  font-weight:600;
  letter-spacing:0.05em;
  text-transform:uppercase;
  text-decoration:none;
  border-radius:var(--radius-xs);
  cursor:pointer;
  border:1px solid transparent;
  background-color:transparent;
  color:var(--ink);
  line-height:1.2;
  white-space:normal;
  text-align:center;
  transition:background-color var(--dur-fast) var(--ease-editorial),
              color var(--dur-fast) var(--ease-editorial),
              border-color var(--dur-fast) var(--ease-editorial),
              transform var(--dur-instant) var(--ease-editorial),
              box-shadow var(--dur-instant) var(--ease-editorial);
}

.btn-primary {
  background-color:var(--accent);
  color:var(--accent-ink);
  border-color:var(--accent);
}

.btn-primary:hover {
  background-color:#2d4870;
  border-color:#2d4870;
  color:var(--accent-ink);
}

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

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

/* Secondary Button / Outline */
.btn-outline {
  background-color:transparent;
  color:var(--ink);
  border-color:var(--ink);
}

.btn-outline:hover {
  background-color:var(--surface);
  border-color:var(--ink);
  color:var(--ink);
}

.btn-outline:active {
  background-color:var(--surface-2);
  transform:translateY(1px);
}

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

/* Subtle / Ghost Button */
.btn-ghost {
  background-color:transparent;
  color:var(--ink);
  border-color:transparent;
}

.btn-ghost:hover {
  background-color:var(--surface);
  border-color:var(--line);
}

.btn-ghost:active {
  background-color:var(--surface-2);
  transform:translateY(1px);
}

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

.chip {
  display:inline-flex;
  align-items:center;
  gap:var(--space-3xs);
  min-height:44px;
  padding:0.4rem 1.0rem;
  font-family:var(--maho-6f3);
  font-size:var(--step--1);
  background-color:var(--ground);
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:9999px;
  cursor:pointer;
  text-decoration:none;
  white-space:nowrap;
  transition:background-color var(--dur-fast) var(--ease-editorial),
              border-color var(--dur-fast) var(--ease-editorial),
              color var(--dur-fast) var(--ease-editorial),
              transform var(--dur-instant) var(--ease-editorial);
}

.chip:hover {
  border-color:var(--ink);
  background-color:var(--surface);
}

.chip:active {
  background-color:var(--surface-2);
  transform:translateY(1px);
}

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

.chip[aria-current="page"],
.chip.is-active {
  background-color:var(--ink);
  color:var(--ground);
  border-color:var(--ink);
}


.site-header {
  position:relative;
  width:100%;
  background-color:var(--ground);
  border-bottom:1px solid var(--line);
  z-index:100;
  transition:transform var(--dur-mid) var(--ease-editorial),
              background-color var(--dur-fast) var(--ease-editorial);
}

/* Desktop Pinned behavior: Gone going down, back coming up */
@media (min-width: 960px) {
  .site-header {
    position:sticky;
    top:0;
  }

  .site-header.is-hidden { transform:translateY(-100%); }

  .site-header.is-condensed { box-shadow:0 4px 16px rgba(0, 0, 0, 0.05); }
}

.header-inner {
  display:flex;
  flex-direction:column;
  align-items:center;
  padding-block:var(--space-xs);
  gap:var(--space-xs);
}

.brand {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  padding:var(--space-3xs);
}

.brand:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:4px;
}

.brand-logo {
  height:3.2rem;
  width:auto;
  max-width:38vw; 
  object-fit:contain;
}

.site-nav {
  width:100%;
  display:flex;
  justify-content:center;
}

.nav-split-list {
  display:flex;
  align-items:center;
  justify-content:center;
  list-style:none;
  gap:clamp(1.2rem, 1.5vw, 2.2rem);
  flex-wrap:nowrap;
}

.nav-link {
  font-family:var(--maho-d80);
  font-size:var(--step--1);
  font-weight:500;
  letter-spacing:0.04em;
  text-decoration:none;
  color:var(--ink);
  padding:var(--space-3xs) var(--space-2xs);
  min-height:44px;
  display:inline-flex;
  align-items:center;
  position:relative;
  transition:color var(--dur-instant) var(--ease-editorial);
}

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

.nav-link:active { color:#213554; }

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

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

.nav-link[aria-current="page"]::after {
  content:'';
  position:absolute;
  bottom:0;
  left:var(--space-2xs);
  right:var(--space-2xs);
  height:2px;
  background-color:var(--accent);
}

/* Nav separator hairline between items */
.nav-split-list li + li { position:relative; }

/* On phones/tablets below 960px, header links hide in favour of bottom dock */
@media (max-width: 959px) {
  .site-header { position:relative; }

  .site-nav { display:none; }

  .header-inner {
    flex-direction:row;
    justify-content:center;
    padding-block:var(--space-2xs);
  }

  .brand-logo { height:2.4rem; }
}


.dock-nav {
  position:fixed;
  inset:auto 0 0 0;
  width:100%;
  height:var(--dock-height);
  padding-bottom:env(safe-area-inset-bottom, 0px);
  background-color:var(--ground);
  border-top:1px solid var(--line);
  box-shadow:0 -2px 10px rgba(0, 0, 0, 0.04);
  z-index:900;
  display:flex;
}

@media (min-width: 960px) {
  .dock-nav { display:none !important; }
}

.dock-list {
  display:flex;
  width:100%;
  height:100%;
  list-style:none;

  margin:0;
  padding:0;
}

.dock-item {
  flex:1 1 0;
  min-width:0;
  height:100%;
  display:flex;
}

.dock-link,
.dock-btn {
  appearance:none;
  background:none;
  border:0;
  font:inherit;
  color:var(--ink-soft);
  text-decoration:none;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  width:100%;
  height:100%;
  min-height:44px;
  padding:var(--space-3xs) 2px;
  cursor:pointer;
  transition:color var(--dur-instant) var(--ease-editorial),
              background-color var(--dur-instant) var(--ease-editorial);
}

.dock-link .icon,
.dock-btn .icon {
  width:22px;
  height:22px;
}

.dock-label {

  font-family:var(--maho-6f3);
  font-size:11px;
  line-height:1;
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}

.dock-link:hover,
.dock-btn:hover {
  color:var(--ink);
  background-color:var(--surface);
}

.dock-link:active,
.dock-btn:active {
  color:var(--ink);
  background-color:var(--surface-2);
}

.dock-link:focus-visible,
.dock-btn:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:-2px;

}

.dock-link[aria-current="page"] {
  color:var(--accent);
  font-weight:700;
}

.dock-link[aria-current="page"] .icon { stroke-width:0.5px; }


.drawer-overlay {
  position:fixed;
  inset:0;
  background-color:rgba(41, 41, 41, 0.45);
  backdrop-filter:blur(2px);
  z-index:1000;
  opacity:0;
  visibility:hidden;
  transition:opacity var(--dur-mid) var(--ease-editorial),
              visibility var(--dur-mid) var(--ease-editorial);
}

.drawer-overlay.is-open {
  opacity:1;
  visibility:visible;
}

.nav-drawer {
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  max-height:85vh;
  background-color:var(--ground);
  border-top:1px solid var(--line);
  border-radius:var(--radius-md) var(--radius-md) 0 0;
  box-shadow:0 -8px 30px rgba(0, 0, 0, 0.12);
  z-index:1001;
  display:none;
  flex-direction:column;
  transform:translateY(100%);
  transition:transform var(--dur-mid) var(--ease-editorial);
  overflow-y:auto;
  padding-bottom:calc(var(--space-m) + env(safe-area-inset-bottom, 0px));
}

.nav-drawer.is-open {
  display:flex;
  transform:translateY(0);
}

.drawer-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:var(--space-s) var(--space-m);
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  background-color:var(--ground);
  z-index:2;
}

.drawer-title {
  font-family:var(--maho-d80);
  font-size:var(--maho-76c);
  font-weight:600;
  color:var(--ink);
}

.drawer-close {
  appearance:none;
  background:transparent;
  border:1px solid var(--line);
  color:var(--ink);
  min-height:44px;
  min-width:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:var(--radius-xs);
  cursor:pointer;
  transition:background-color var(--dur-instant) var(--ease-editorial),
              border-color var(--dur-instant) var(--ease-editorial);
}

.drawer-close:hover {
  background-color:var(--surface);
  border-color:var(--ink);
}

.drawer-close:active { background-color:var(--surface-2); }

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

.drawer-body {
  padding:var(--space-m);
  display:flex;
  flex-direction:column;
  gap:var(--space-m);
}

.drawer-list {
  list-style:none;
  display:flex;
  flex-direction:column;
}

.drawer-item { border-bottom:1px solid var(--surface-2); }

.drawer-link {
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:48px;
  padding:var(--space-xs) 0;
  font-family:var(--maho-d80);
  font-size:var(--maho-76c);
  color:var(--ink);
  text-decoration:none;
  transition:color var(--dur-instant) var(--ease-editorial),
              padding-left var(--dur-instant) var(--ease-editorial);
}

.drawer-link:hover {
  color:var(--accent);
  padding-left:var(--space-2xs);
}

.drawer-link:active { color:#213554; }

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

.drawer-link[aria-current="page"] {
  color:var(--accent);
  font-weight:700;
}

.drawer-footer {
  font-size:var(--step--1);
  color:var(--ink-soft);
  line-height:1.5;
  padding-top:var(--space-s);
}


.site-footer {
  background-color:var(--surface);
  border-top:1px solid var(--line);
  padding-top:clamp(1.0rem, 1.5vw, 1.5rem);
  padding-bottom:clamp(1.0rem, 1.5vw, 1.5rem);
  margin-top:auto;
  color:var(--ink);
}

.footer-inner {
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:var(--space-xs);
  max-width:1100px;
  margin-inline:auto;
}

.footer-brand {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}

.footer-brand:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:4px;
}

.footer-logo {
  height:2.5rem;
  width:auto;
  object-fit:contain;
}

.footer-tagline {
  font-family:var(--maho-d80);
  font-size:var(--step--1);
  line-height:1.4;
  color:var(--ink);
  max-width:68ch;
}

.footer-facts {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  column-gap:var(--space-s);
  row-gap:2px;
  font-size:var(--step--1);
  line-height:1.4;
  color:var(--ink-soft);
}

.footer-facts address { font-style:normal; }

.footer-operator-bio {
  width:100%;
  font-size:var(--step--2);
}

.footer-contact-links {
  display:inline-flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:var(--space-xs);
}

.footer-contact-links a {
  display:inline-flex;
  align-items:center;
  min-height:36px;
}

.footer-nav-row {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:var(--space-2xs) var(--space-s);
  list-style:none;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding-block:var(--space-xs);
  width:100%;
}

.footer-nav-link {
  font-family:var(--maho-d80);
  font-size:var(--step--1);
  color:var(--ink);
  text-decoration:none;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  padding:2px var(--space-2xs);
  transition:color var(--dur-instant) var(--ease-editorial);
}

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

.footer-nav-link:active { color:#213554; }

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

.footer-legal-row {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:var(--space-2xs) var(--space-xs);
  font-size:var(--step--2);
  color:var(--ink-soft);
  width:100%;
}

.footer-legal-link {
  color:var(--ink-soft);
  text-decoration:underline;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  padding:var(--space-3xs);
}

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

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

.footer-consent-btn {
  appearance:none;
  background:transparent;
  border:1px solid var(--line);
  font-size:var(--step--2);
  color:var(--ink);
  padding:0.35rem 0.75rem;
  border-radius:var(--radius-xs);
  cursor:pointer;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  gap:var(--space-3xs);
  transition:background-color var(--dur-instant) var(--ease-editorial),
              border-color var(--dur-instant) var(--ease-editorial);
}

.footer-consent-btn:hover {
  background-color:var(--surface-2);
  border-color:var(--ink);
}

.footer-consent-btn:active { background-color:var(--line); }

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


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

.form-label {
  font-family:var(--maho-d80);
  font-size:var(--step--1);
  font-weight:600;
  color:var(--ink);
}

.form-label .label-req {
  color:var(--accent);
  margin-left:2px;
}

.form-label .label-opt {
  font-family:var(--maho-6f3);
  font-size:var(--step--2);
  font-weight:normal;
  color:var(--ink-soft);
}

.form-input,
.form-select,
.form-textarea {
  width:100%;
  min-height:48px;
  padding:0.65rem 0.85rem;
  background-color:var(--ground);
  border:1px solid var(--line);
  border-radius:var(--radius-xs);
  color:var(--ink);
  font-size:var(--maho-76c);
  line-height:1.5;
  transition:border-color var(--dur-fast) var(--ease-editorial),
              background-color var(--dur-fast) var(--ease-editorial),
              box-shadow var(--dur-fast) var(--ease-editorial);
}

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

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

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(58, 90, 140, 0.15);
}

.form-input.is-invalid,
.form-select.is-invalid,
.form-textarea.is-invalid {
  border-color:#a33a3a;
  background-color:#fff9f9;
}

.form-error {
  font-size:var(--step--2);
  color:#a33a3a;
  margin-top:2px;
  display:none;
}

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

/* Custom Checkbox */
.form-checkbox-label {
  display:flex;
  align-items:flex-start;
  gap:var(--space-xs);
  cursor:pointer;
  font-size:var(--step--1);
  line-height:1.45;
  color:var(--ink);
  margin-block:var(--space-2xs);
}

.form-checkbox {
  appearance:none;
  width:22px;
  height:22px;
  min-width:22px;
  min-height:22px;
  border:1px solid var(--line);
  border-radius:var(--radius-xs);
  background-color:var(--ground);
  margin-top:2px;
  cursor:pointer;
  display:grid;
  place-content:center;
  transition:border-color var(--dur-instant) var(--ease-editorial),
              background-color var(--dur-instant) var(--ease-editorial);
}

.form-checkbox::before {
  content:"";
  width:10px;
  height:10px;
  transform:scale(0);
  transition:transform var(--dur-instant) var(--ease-editorial);
  background-color:var(--accent);
  border-radius:1px;
}

.form-checkbox:checked { border-color:var(--accent); }

.form-checkbox:checked::before { transform:scale(1); }

.form-checkbox:hover { border-color:var(--ink); }

.form-checkbox:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:2px;
}

/* Honeypots hidden */
.sr-honeypot {
  display:none !important;
  position:absolute;
  opacity:0;
  pointer-events:none;
  height:0;
  width:0;
  margin:0;
  padding:0;
  border:0;
}

.sr-honeypot input {
  display:none !important;
  height:0;
}

.form-status {
  padding:var(--space-s);
  border-radius:var(--radius-xs);
  font-size:var(--step--1);
  line-height:1.45;
  display:none;
  margin-top:var(--space-s);
}

.form-status.is-success {
  display:block;
  background-color:#f1f7f2;
  border:1px solid #77a57f;
  color:#1f4225;
}

.form-status.is-error {
  display:block;
  background-color:#fff5f5;
  border:1px solid #d68585;
  color:#7a2121;
}


.cookie-banner {
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  background-color:var(--ground);
  border-top:1px solid var(--line);
  box-shadow:0 -4px 20px rgba(0, 0, 0, 0.08);
  padding:var(--space-s) var(--space-m);
  z-index:950;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-m);
  transform:translateY(100%);
  transition:transform var(--dur-mid) var(--ease-editorial);
}

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

@media (max-width: 959px) {
  .cookie-banner {
    bottom:calc(var(--dock-height) + env(safe-area-inset-bottom, 0px));
    flex-direction:column;
    align-items:stretch;
    padding:var(--space-xs) var(--space-s);
    gap:var(--space-2xs);
  }
}

.cookie-text {
  font-size:var(--step--1);
  line-height:1.4;
  color:var(--ink);
  margin:0;
}

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

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

@media (max-width: 959px) {
  .cookie-actions { width:100%; }

  .cookie-actions .btn {
    flex:1;
    min-height:44px;
    padding:0.45rem 0.6rem;
    font-size:var(--step--2);
  }
}


.chat-launcher {
  position:fixed;
  bottom:var(--space-m);
  right:var(--space-m);
  width:54px;
  height:54px;
  border-radius:9999px;
  background-color:var(--ink);
  color:var(--ground);
  border:1px solid var(--line);
  box-shadow:0 4px 14px rgba(0, 0, 0, 0.15);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:910;
  transition:background-color var(--dur-fast) var(--ease-editorial),
              transform var(--dur-instant) var(--ease-editorial),
              bottom var(--dur-mid) var(--ease-editorial);
}

.chat-launcher:hover {
  background-color:var(--accent);
  transform:scale(1.05);
}

.chat-launcher:active { transform:scale(0.96); }

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

.chat-launcher .icon {
  width:24px;
  height:24px;
}

/* Unread Badge */
.chat-unread-badge {
  position:absolute;
  top:-4px;
  right:-4px;
  background-color:var(--accent);
  color:var(--accent-ink);
  font-family:var(--maho-57e);
  font-size:11px;
  font-weight:700;
  width:20px;
  height:20px;
  border-radius:9999px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:2px solid var(--ground);
}

@media (max-width: 959px) {
  .chat-launcher {
    bottom:calc(var(--dock-height) + env(safe-area-inset-bottom, 0px) + var(--space-xs));
    right:var(--space-s);
    width:48px;
    height:48px;
  }

  body.has-cookie-banner .chat-launcher { bottom:calc(var(--dock-height) + env(safe-area-inset-bottom, 0px) + 140px); }
}

/* Chat Panel */
.chat-panel {
  position:fixed;
  bottom:calc(var(--space-m) + 64px);
  right:var(--space-m);
  width:min(380px, calc(100vw - 2 * var(--space-s)));
  height:min(520px, 75vh);
  background-color:var(--ground);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  box-shadow:0 12px 36px rgba(0, 0, 0, 0.16);
  z-index:920;
  display:flex;
  flex-direction:column;
  opacity:0;
  visibility:hidden;
  transform:translateY(12px);
  transition:opacity var(--dur-mid) var(--ease-editorial),
              transform var(--dur-mid) var(--ease-editorial),
              visibility var(--dur-mid) var(--ease-editorial);
}

.chat-panel.is-open {
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

@media (max-width: 959px) {
  .chat-panel {
    bottom:calc(var(--dock-height) + env(safe-area-inset-bottom, 0px) + var(--space-2xs));
    right:var(--space-xs);
    left:var(--space-xs);
    width:auto;
    height:65vh;
  }
}

.chat-panel-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:var(--space-xs) var(--space-s);
  background-color:var(--surface);
  border-bottom:1px solid var(--line);
}

.chat-panel-title {
  font-family:var(--maho-d80);
  font-size:var(--step--1);
  font-weight:600;
  color:var(--ink);
  display:flex;
  align-items:center;
  gap:var(--space-2xs);
}

.chat-panel-close {
  appearance:none;
  background:transparent;
  border:0;
  color:var(--ink);
  min-height:44px;
  min-width:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  border-radius:var(--radius-xs);
  transition:background-color var(--dur-instant) var(--ease-editorial);
}

.chat-panel-close:hover { background-color:var(--surface-2); }

.chat-panel-close:active { background-color:var(--line); }

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

.chat-messages {
  flex:1;
  padding:var(--space-s);
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  gap:var(--space-xs);
}

.chat-msg {
  max-width:85%;
  padding:var(--space-xs) var(--space-s);
  font-size:var(--step--1);
  line-height:1.45;
  border-radius:var(--radius-xs);
}

.chat-msg.msg-operator {
  align-self:flex-start;
  background-color:var(--surface);
  color:var(--ink);
  border:1px solid var(--line);
}

.chat-msg.msg-visitor {
  align-self:flex-end;
  background-color:var(--accent);
  color:var(--accent-ink);
}

.chat-panel-form {
  padding:var(--space-xs) var(--space-s);
  border-top:1px solid var(--line);
  background-color:var(--ground);
  display:flex;
  gap:var(--space-3xs);
}

.chat-panel-input {
  flex:1;
  min-height:44px;
  padding:0.4rem 0.75rem;
  font-size:var(--step--1);
  border:1px solid var(--line);
  border-radius:var(--radius-xs);
  background-color:var(--ground);
}

.chat-panel-input:focus { outline:2px solid var(--accent); }

.chat-panel-send {
  min-height:44px;
  min-width:44px;
  padding:0.4rem 0.8rem;
  background-color:var(--ink);
  color:var(--ground);
  border:none;
  border-radius:var(--radius-xs);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:background-color var(--dur-instant) var(--ease-editorial);
}

.chat-panel-send:hover { background-color:var(--accent); }

.chat-panel-send:active { background-color:#213554; }

.chat-panel-send:focus-visible { outline:2px solid var(--accent); }


.table-wrapper {
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  margin-block:var(--space-l);
  border:1px solid var(--line);
  border-radius:var(--radius-xs);
}

.data-table {
  width:100%;
  border-collapse:collapse;
  font-size:var(--step--1);
  text-align:left;
  background-color:var(--ground);
}

.data-table th,
.data-table td {
  padding:var(--space-xs) var(--space-s);
  border-bottom:1px solid var(--line);
  vertical-align:top;
}

.data-table thead th {
  background-color:var(--surface);
  font-family:var(--maho-d80);
  font-weight:600;
  letter-spacing:0.04em;
  color:var(--ink);
  border-bottom:2px solid var(--line);
}

.data-table tbody tr:hover { background-color:#fafafa; }

.data-table .cell-mono {
  font-family:var(--maho-57e);
  font-size:var(--step--1);
}


.duotone-break {
  position:relative;
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  min-height:420px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  margin-block:var(--space-2xl);
  background-color:var(--ink);
}

.duotone-break__image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:grayscale(100%) contrast(120%) brightness(85%);
  mix-blend-mode:luminosity;
  opacity:0.45;
}

.duotone-break::before {
  content:"";
  position:absolute;
  inset:0;
  background-color:var(--accent);
  mix-blend-mode:multiply;
  opacity:0.75;
}

.duotone-break__content {
  position:relative;
  z-index:2;
  text-align:center;
  max-width:var(--measure-prose);
  padding:var(--space-xl) var(--space-m);
  color:#fff;
}

.duotone-break__title {
  font-family:var(--maho-d80);
  font-size:var(--maho-4a0);
  color:#fff;
  margin-bottom:var(--space-s);
  line-height:1.2;
}

.duotone-break__text {
  font-size:var(--maho-76c);
  line-height:1.6;
  color:rgba(255, 255, 255, 0.9);
  margin-inline:auto;
}
