/* Hota visual foundation. Opt in with body.hota-design; Bootstrap retains layout
   and interaction behavior. Palette and shapes follow the custom 404 page. */
.hota-design {
  --hota-ink: #153b30;
  --hota-muted: #53655d;
  --hota-paper: #f5f4eb;
  --hota-line: #d8ded2;
  --hota-lime: #dbf59b;
  --hota-surface: #fcfcf6;
  --bs-body-color: var(--hota-ink);
  --bs-body-bg: var(--hota-paper);
  --bs-border-color: var(--hota-line);
  --bs-link-color: var(--hota-ink);
  --bs-link-hover-color: #345c25;
  --bs-primary-rgb: 21, 59, 48;
  --bs-secondary-color: var(--hota-muted);
  --kh-ink: var(--hota-ink);
  --kh-muted: var(--hota-muted);
  background: var(--hota-paper);
  color: var(--hota-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, sans-serif;
  line-height: 1.65;
}
.hota-design .container { max-width: 1180px; }
.hota-design a { color: var(--hota-ink); text-underline-offset: 4px; }
.hota-design .text-muted, .hota-design .form-text { color: var(--hota-muted) !important; }
.hota-design .text-dark { color: var(--hota-ink) !important; }
.hota-design .bg-white { background-color: var(--hota-surface) !important; }
.hota-design .bg-light { background-color: #edf0e4 !important; }
.hota-design :is(a, button, input, select, summary):focus-visible { outline: 3px solid #476f15; outline-offset: 4px; }
.hota-design .btn { border-radius: 9px; font-weight: 650; padding: .8rem 1.15rem; }
.hota-design .btn-primary {
  --bs-btn-color: var(--hota-ink); --bs-btn-bg: var(--hota-lime); --bs-btn-border-color: var(--hota-lime);
  --bs-btn-hover-color: var(--hota-ink); --bs-btn-hover-bg: #ecffc1; --bs-btn-hover-border-color: #ecffc1;
  --bs-btn-active-color: var(--hota-ink); --bs-btn-active-bg: #c9e68b; --bs-btn-active-border-color: #c9e68b;
  --bs-btn-disabled-color: var(--hota-ink); --bs-btn-disabled-bg: #d8dfc8; --bs-btn-disabled-border-color: #d8dfc8;
  --bs-btn-focus-shadow-rgb: 71, 111, 21;
}
.hota-design :is(.btn-outline-primary, .btn-outline-secondary) {
  --bs-btn-color: var(--hota-ink); --bs-btn-border-color: #8eaa94;
  --bs-btn-hover-color: var(--hota-ink); --bs-btn-hover-bg: #e5ecd9; --bs-btn-hover-border-color: var(--hota-ink);
  --bs-btn-active-color: var(--hota-ink); --bs-btn-active-bg: #d7e4c9; --bs-btn-active-border-color: var(--hota-ink);
  --bs-btn-focus-shadow-rgb: 71, 111, 21;
}
.hota-design :is(.form-control, .form-select) { border-color: #9cafa0; border-radius: 9px; padding: .8rem .9rem; color: var(--hota-ink); background-color: #fff; }
.hota-design :is(.form-control, .form-select):focus { border-color: #476f15; box-shadow: 0 0 0 .2rem #dbf59b80; }
.hota-design .form-control::placeholder { color: #6c786d; }
.hota-design .form-check-input:checked { background-color: var(--hota-ink); border-color: var(--hota-ink); }
.hota-design .form-check-input:focus { border-color: #476f15; box-shadow: 0 0 0 .2rem #dbf59b80; }
.hota-design .input-group-text { color: var(--hota-ink); background: #edf0e4; border-color: #9cafa0; }
/* Preserve Bootstrap input-group joined corners. */
.hota-design .input-group > :not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.hota-design .input-group > :not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.hota-design .navbar { background: var(--hota-paper) !important; border-color: var(--hota-line) !important; }
.hota-design .navbar > .container { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.hota-design .navbar-brand svg { max-width: 150px; }
.hota-design #hotaGrad stop:first-child { stop-color: var(--hota-ink); }
.hota-design #hotaGrad stop:last-child { stop-color: #5b7547; }
.hota-design .breadcrumb { --bs-breadcrumb-divider-color: #6c786d; --bs-breadcrumb-item-active-color: var(--hota-muted); }
.hota-design footer { background: var(--hota-paper) !important; }
.hota-design footer > .container > section { background: var(--hota-ink); color: white; border-radius: 20px; padding: 36px !important; margin: 30px 0; }
.hota-design footer > .container > section .text-muted { color: #d3dfd8 !important; }
.hota-design footer h2 { font-weight: 500; letter-spacing: -.035em; }
.hota-design footer .link-secondary { color: var(--hota-muted) !important; }
/* Homepage: editorial opening, a quiet signal map, and a consistent card system. */
.hota-home .ai-hero { padding: 76px 0; background: var(--hota-paper); }
.hota-hero-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr); align-items: center; gap: 46px; }
.hota-home .ai-eyebrow, .hota-home .ai-step-label, .hota-kicker { color: var(--hota-muted); font-size: .7rem; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.hota-home .ai-hero .ai-hero-headline { font-size: clamp(2.7rem, 4.3vw, 4.3rem); font-weight: 500 !important; letter-spacing: -.055em; line-height: 1.08; }
.hota-home .ai-hero .lead { font-size: 1.08rem; line-height: 1.8; }
.hota-home .ai-audit-form { gap: 9px; }
.hota-home .ai-audit-form :is(.form-control, .btn) { font-size: .92rem; min-height: 56px; }
.hota-home .ai-audit-form .btn { padding-left: 1rem !important; padding-right: 1rem !important; }
.hota-signal-map { position: relative; display: grid; place-items: center; aspect-ratio: .92; overflow: hidden; border: 1px solid var(--hota-line); border-radius: 50% 50% 14px 14px; background: repeating-linear-gradient(0deg, transparent, transparent 31px, #dce3d5 32px), repeating-linear-gradient(90deg, transparent, transparent 31px, #dce3d5 32px), #edf0e4; }
.hota-signal-orbit { position: absolute; width: 85%; aspect-ratio: 1; border: 1px solid #b8c8a8; border-radius: 50%; }
.hota-signal-orbit::before { content: ''; position: absolute; inset: 15%; border: 1px dashed #b0c0a0; border-radius: 50%; }
.hota-signal-word { position: relative; font-size: clamp(3rem, 5.5vw, 5.2rem); line-height: .95; font-weight: 550; letter-spacing: -.065em; transform: rotate(-7deg); }
.hota-signal-word em { font-family: Georgia, serif; font-weight: 400; text-shadow: 4px 4px var(--hota-lime); }
.hota-signal-spark { position: absolute; top: 13%; right: 18%; font-size: 42px; color: #668d39; }
.hota-signal-caption { position: absolute; bottom: 24px; font: .58rem ui-monospace, monospace; letter-spacing: .08em; padding: 9px 12px; background: var(--hota-paper); border: 1px solid var(--hota-line); border-radius: 30px; }
.hota-home .ai-section, .hota-home .ai-approach { padding: 72px 0; }
.hota-home .ai-section-title { font-weight: 500 !important; letter-spacing: -.045em; }
.hota-home .ai-section-lead { font-size: 1.1rem; line-height: 1.8; max-width: 800px; }
.hota-home .home-tool-card { border-color: var(--hota-line); border-radius: 16px; background: var(--hota-surface); }
.hota-home .home-tool-link:hover .home-tool-card, .hota-home .home-tool-link:focus-visible .home-tool-card { border-color: #668d39; }
.hota-home .home-tool-icon { color: var(--hota-ink); background: #e7eddb; border-radius: 50%; }
.hota-home .home-tool-action { color: var(--hota-ink); }
.hota-home :is(.overview-strip, .ai-coming-soon) { background: #eaf0df; border-color: var(--hota-line); border-radius: 16px; }
.hota-home .fw-ring-track { stroke: #dce3d5; }
.hota-home .fw-ring-progress { stroke: #668d39; }
.hota-home .fw-ring g { fill: #668d39; }
.hota-home :is(.fw-center, .fw-node) { background: var(--hota-paper); border-color: var(--hota-line); color: var(--hota-ink); box-shadow: none; }
.hota-home .fw-center { background: #e7eddb; }
.hota-home :is(.fw-center strong, .fw-copy .fw-stage, .fw-node-number) { color: var(--hota-ink); }
.hota-home :is(.fw-center-label, .fw-center small, .fw-copy p, .fw-muted-note, .ai-muted-label) { color: var(--hota-muted); }
.hota-home .fw-node:is(:hover, :focus-visible, [aria-pressed=true]) { border-color: #668d39; background: var(--hota-lime); box-shadow: 0 8px 24px #153b3010; }
.hota-home .fw-copy h3 { font-weight: 500; letter-spacing: -.035em; }
.hota-home .fw-switch { background: #cbd5c1; }
.hota-home .fw-switch[aria-current=true] { background: var(--hota-ink); }
/* Representative tool: all selectors retain the calculator's existing DOM IDs. */
.hota-tool-intro { padding: 0 0 40px; max-width: 780px; }
.hota-tool-intro h1 { font-size: clamp(2.7rem, 5vw, 4.3rem); font-weight: 500; line-height: 1.1; letter-spacing: -.055em; margin: 18px 0; }
.hota-tool-intro h1 em { font-family: Georgia, serif; font-weight: 400; }
.hota-tool-intro > p:last-child { color: var(--hota-muted); font-size: 1.08rem; }
.hota-tool main > .container > .row > [class*="col-"] > .border { border-radius: 18px !important; padding: 30px !important; }
.hota-tool main h2 { font-size: 1.35rem; letter-spacing: -.035em; }
.hota-tool main .rounded-3 { border-radius: 12px !important; }
.hota-tool #resultValue { color: var(--hota-ink); font-size: 2.1rem !important; letter-spacing: -.04em; }
.hota-tool .accordion { --bs-accordion-bg: var(--hota-surface); --bs-accordion-color: var(--hota-ink); --bs-accordion-border-color: var(--hota-line); --bs-accordion-active-color: var(--hota-ink); --bs-accordion-active-bg: #eaf0df; --bs-accordion-btn-focus-box-shadow: 0 0 0 .2rem #dbf59b80; }
@media (max-width: 991.98px) {
  .hota-hero-grid { grid-template-columns: 1fr; gap: 35px; }
  .hota-signal-map { aspect-ratio: 1.7; border-radius: 140px 140px 14px 14px; }
  .hota-signal-orbit { width: 50%; }
  .hota-signal-word { font-size: 4.3rem; }
  .hota-signal-caption { bottom: 14px; }
}
@media (max-width: 575.98px) {
  .hota-design .container { padding-left: 22px; padding-right: 22px; }
  .hota-home .ai-hero { padding: 40px 0; }
  .hota-home .ai-section, .hota-home .ai-approach { padding: 45px 0; }
  .hota-home .ai-audit-form { grid-template-columns: minmax(0, 1fr); }
  .hota-signal-map { aspect-ratio: 1.25; }
  .hota-signal-orbit { width: 75%; }
  .hota-signal-word { font-size: 3.8rem; }
  .hota-design .navbar > .container { padding-left: 16px; padding-right: 16px; }
  .hota-design .navbar-brand svg { max-width: 88px; }
  .hota-design .hota-nav-actions .btn { padding: .65rem .5rem; font-size: .72rem; }
  .hota-design footer > .container > section { padding: 25px 20px !important; }
  .hota-tool main > .container > .row > [class*="col-"] > .border { padding: 22px !important; }
  .hota-tool-intro { padding-bottom: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .hota-design { scroll-behavior: auto; }
  .hota-design *, .hota-design *::before, .hota-design *::after { transition: none !important; animation: none !important; }
}
/* Site-wide activation lives on the shared <html> element so newly added views
   inherit the design without extra body classes or page-specific PHP logic. */
html.hota-design body {
  background: var(--hota-paper); color: var(--hota-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, sans-serif;
  --bs-primary: #153b30;
  --kh-bg: var(--hota-paper); --kh-primary: var(--hota-ink);
  --kh-card: var(--hota-surface); --kh-card-border: var(--hota-line);
}
.hota-design :is(h1, h2, h3, h4, h5, h6) { color: inherit; }
.hota-design main h1, .hota-design .hero-title { font-weight: 550; letter-spacing: -.045em; line-height: 1.12; }
.hota-design .section-title { font-weight: 550; letter-spacing: -.035em; }
.hota-design :is(.card, .glass, .glass-alt) {
  --bs-card-bg: var(--hota-surface); --bs-card-color: var(--hota-ink); --bs-card-border-color: var(--hota-line);
  background: var(--hota-surface); border-color: var(--hota-line); border-radius: 16px;
  box-shadow: none;
}
.hota-design .rounded-3 { border-radius: 12px !important; }
.hota-design .shadow-soft { box-shadow: 0 10px 30px #153b300d; }
.hota-design .btn-gradient { background: var(--hota-lime); color: var(--hota-ink); border: 1px solid var(--hota-lime); }
.hota-design .btn-gradient:hover { background: #ecffc1; color: var(--hota-ink); }
.hota-design .tag { background: #e7eddb; color: var(--hota-ink); border-color: var(--hota-line); }
.hota-design .text-primary { color: var(--hota-ink) !important; }
.hota-design .bg-primary { background-color: var(--hota-ink) !important; }
.hota-design .text-bg-primary { color: white !important; background-color: var(--hota-ink) !important; }
.hota-design .border-primary { border-color: #668d39 !important; }
.hota-design .link-primary { color: var(--hota-ink) !important; text-decoration-color: currentColor !important; }
.hota-design .table {
  --bs-table-bg: var(--hota-surface); --bs-table-color: var(--hota-ink); --bs-table-border-color: var(--hota-line);
  --bs-table-striped-bg: #edf0e4; --bs-table-striped-color: var(--hota-ink);
  --bs-table-hover-bg: #e7eddb; --bs-table-hover-color: var(--hota-ink);
}
.hota-design .table-light { --bs-table-bg: #edf0e4; --bs-table-color: var(--hota-ink); --bs-table-border-color: var(--hota-line); }
.hota-design .accordion { --bs-accordion-bg: var(--hota-surface); --bs-accordion-color: var(--hota-ink); --bs-accordion-border-color: var(--hota-line); --bs-accordion-btn-color: var(--hota-ink); --bs-accordion-active-color: var(--hota-ink); --bs-accordion-active-bg: #eaf0df; --bs-accordion-btn-focus-box-shadow: 0 0 0 .2rem #dbf59b80; }
.hota-design .dropdown-menu { --bs-dropdown-bg: var(--hota-surface); --bs-dropdown-color: var(--hota-ink); --bs-dropdown-link-color: var(--hota-ink); --bs-dropdown-link-hover-bg: #edf0e4; --bs-dropdown-link-active-bg: var(--hota-ink); --bs-dropdown-border-color: var(--hota-line); }
.hota-design .pagination { --bs-pagination-color: var(--hota-ink); --bs-pagination-bg: var(--hota-surface); --bs-pagination-border-color: var(--hota-line); --bs-pagination-hover-color: var(--hota-ink); --bs-pagination-hover-bg: #edf0e4; --bs-pagination-hover-border-color: #668d39; --bs-pagination-active-bg: var(--hota-ink); --bs-pagination-active-border-color: var(--hota-ink); }
.hota-design .modal-content { background: var(--hota-paper); color: var(--hota-ink); border-color: var(--hota-line); border-radius: 18px; }
.hota-design .nav-pills { --bs-nav-pills-link-active-bg: var(--hota-ink); }
.hota-design .nav-tabs { --bs-nav-tabs-border-color: var(--hota-line); --bs-nav-tabs-link-active-bg: var(--hota-surface); --bs-nav-tabs-link-active-color: var(--hota-ink); --bs-nav-tabs-link-active-border-color: var(--hota-line); }
.hota-design .progress { --bs-progress-bg: #dce3d5; --bs-progress-bar-bg: var(--hota-ink); }
/* Custom tool/report components use named selectors rather than matching every
   "card" substring, preserving score colors, alerts, charts and embedded code. */
.hota-design :is(.tool-card-index, .tool-card-category, .category-link-card, .recent-blog-card,
  .ard-card, .ar-panel, .ar-kpi, .acc-card, .csg-panel, .csg-mini, .protocol-card, .summary-card,
  .metric-card, .entity-card, .fls-card, .fls-kpi, .kge-card, .kge-node, .lsc-card, .lsc-kpi,
  .chunk-card, .ltc-card, .mnt-card, .mnt-kpi, .hp-card, .hs-card, .odg-panel, .pc-card, .pc-kpi,
  .sfc-card, .sfc-kpi, .sar-card, .sar-kpi, .sar-category-card, .mp-search, .mp-result-card,
  .mp-empty, .related-card) { background: var(--hota-surface); border-color: var(--hota-line); border-radius: 16px; box-shadow: none; }
.hota-design :is(.tool-card-index, .tool-card-category, .recent-blog-card):hover { border-color: #668d39; box-shadow: 0 8px 24px #153b300d; }
.hota-design :is(.tool-icon, .icon-circle) { background: #e7eddb; color: var(--hota-ink); border-radius: 50%; }
.hota-design :is(.ar-detail, .ard-note, .acc-tip, .acc-soft, .acc-inline, .context-box, .kge-code,
  .kge-pill, .chunk-excerpt, .ltc-pre, .mnt-note, .okf-code, .okf-note, .pc-formula, .fls-formula,
  .lsc-formula, .sfc-note, .sfc-formula, .sar-note, .endpoint-code, .csg-pill, .blog-toc,
  .mp-category-chip, .offer-category-link, .hs-header) { background: #edf0e4; border-color: var(--hota-line); color: var(--hota-ink); }
.hota-design :is(.hp-hero, .kge-hero, .okf-hero) { background: var(--hota-paper); border-color: var(--hota-line); }
.hota-design :is(.kge-muted, .category-kicker, .sar-label, .sar-meta, .sar-evidence) { color: var(--hota-muted); }
.hota-design .kge-node-main, .hota-design .csg-choice:has(input:checked) { background: #eaf0df; border-color: #668d39; }
.hota-design .hp-tab { color: var(--hota-muted); }
.hota-design .hp-tab[aria-current=page] { color: var(--hota-ink); border-color: #668d39; }
.hota-design .hp-trend span { background: #668d39; }
.hota-design .hp-trend span:hover { background: var(--hota-ink); }
.hota-design .blog-prose blockquote { border-color: #668d39; }
.hota-design .recent-blog-image-link { background: #edf0e4; }
.hota-design .mp-category-chip:is(:hover, .active) { background: #e7eddb; color: var(--hota-ink); border-color: #668d39; }
.hota-design .ql-toolbar.ql-snow, .hota-design .ql-container.ql-snow { border-color: var(--hota-line); }
/* Standalone profile page retains its filters, modal and contrast control. */
html.hota-profile {
  --bg: #f5f4eb; --panel: #fcfcf6; --panel-2: #edf0e4; --text: #153b30;
  --muted: #53655d; --accent: #476f15; --brand: #153b30; --border: #d8ded2;
}
.hota-profile .hero { background: var(--hota-paper); }
.hota-profile .nav-link { color: var(--hota-ink) !important; }
.hota-profile :is(.lead, .metric, .impact-grid .card h5, .impact-grid .card h5 .meta) { color: var(--hota-ink); text-shadow: none; }
.hota-profile .lever-badge { background: #e7eddb; color: var(--hota-ink); border-color: var(--hota-line); box-shadow: none; }
.hota-profile .filter-chip.active { background: var(--hota-lime); }
.hota-profile .kh-modal .box { background: var(--hota-paper); }
.hota-profile .scroll-indicator { background: var(--hota-line); }
.hota-profile .scroll-indicator .bar { background: #668d39; }
.hota-profile body.contrast-boost { --panel: #fff; --panel-2: #fff; --text: #102a21; --muted: #263f31; --border: #476f15; --hota-ink: #102a21; --hota-muted: #263f31; --hota-line: #476f15; --hota-surface: #fff; }
.hota-profile body.contrast-boost :is(.lever-badge, .filter-chip) { background: #e7eddb; color: var(--hota-ink); border-color: #476f15; }
@media (max-width: 575.98px) {
  .hota-design .table-responsive { max-width: 100%; }
  .hota-design :is(.form-control, .form-select) { min-width: 0; }
  .hota-design .hota-footer-audit-form { grid-template-columns: minmax(0, 1fr); }
}
.hota-profile .navbar-brand.text-white { color: var(--hota-ink) !important; }
.hota-profile .headshot { border-color: var(--hota-line); box-shadow: 0 10px 30px #153b3010; }
.hota-profile .impact-grid .card:hover { box-shadow: 0 12px 28px #153b3015; }
