/* public/styles/platform-extras.css — AI chat, súgó drawer, fluid layout */

.help-q {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  margin-left: 0.35rem;
  border-radius: 999px;
  border: 1px solid var(--rule);
  background: #fff;
  color: var(--copper);
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  vertical-align: middle;
  flex-shrink: 0;
}
.help-q:hover,
.help-q:focus-visible {
  background: var(--green-l);
  border-color: var(--green);
  color: var(--green-d);
}

.kb-peek-veil {
  position: fixed;
  inset: 0;
  background: rgba(15, 39, 68, 0.42);
  z-index: 80;
}
.kb-peek {
  position: fixed;
  top: 0;
  right: 0;
  height: 100%;
  width: min(28rem, 100%);
  background: #fff;
  z-index: 81;
  box-shadow: var(--shadow-3);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.kb-peek-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 1.2rem;
  border-bottom: 1px solid var(--rule);
}
.kb-peek-head h3 {
  font-family: var(--serif);
  font-size: clamp(1.1rem, 2.4vw, 1.45rem);
  margin: 0;
}
.kb-peek-body {
  padding: 1.1rem 1.2rem 2rem;
  overflow: auto;
  font-size: 0.95rem;
  line-height: 1.6;
}
.kb-peek-body h1,
.kb-peek-body h2,
.kb-peek-body h3 {
  font-family: var(--serif);
}

.hv-asst {
  position: fixed;
  right: max(1.1rem, env(safe-area-inset-right));
  bottom: max(1.1rem, env(safe-area-inset-bottom));
  z-index: 91;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.6rem;
  width: min(22rem, calc(100vw - 1.5rem));
  pointer-events: none;
}
.hv-asst > * {
  pointer-events: auto;
}
.hv-asst-dock {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;
}
.hv-asst-dock .hv-safefabs,
.hv-safefabs.is-docked {
  position: static;
  right: auto;
  bottom: auto;
  z-index: auto;
  display: flex;
  flex-direction: row;
  gap: 0.5rem;
}
.hv-asst-panel {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 1.1rem;
  box-shadow: var(--shadow-3);
  display: flex;
  flex-direction: column;
  max-height: min(32rem, 70vh);
  overflow: hidden;
  width: 100%;
}
.hv-asst-head {
  padding: 0.85rem 1rem;
  background: var(--navy);
  color: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
}
.hv-asst-head strong {
  font-family: var(--serif);
  font-weight: 500;
}
.hv-asst-log {
  padding: 0.85rem 1rem;
  overflow: auto;
  display: grid;
  gap: 0.7rem;
  flex: 1;
}
.hv-asst-msg {
  font-size: 0.85rem;
  line-height: 1.5;
  padding: 0.65rem 0.8rem;
  border-radius: 0.8rem;
  background: var(--paper-2);
}
.hv-asst-msg.user {
  background: var(--green-l);
  justify-self: end;
}
.hv-asst-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.4rem;
  padding: 0.7rem;
  border-top: 1px solid var(--rule);
}
.hv-asst-form input {
  min-width: 0;
  width: 100%;
  border: 1px solid var(--rule);
  border-radius: 0.7rem;
  padding: 0.65rem 0.75rem;
  font: inherit;
}
.hv-asst-fab {
  position: relative;
  flex: 0 0 52px;
  border: none;
  background: var(--green);
  color: #fff;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  padding: 0;
  box-shadow: var(--shadow-2);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.hv-asst-bot {
  width: 26px;
  height: 26px;
}
.hv-asst-fab.is-typing .hv-asst-bot {
  animation: hv-asst-bob 1.8s ease-in-out infinite;
}
.hv-asst-fab.is-typing .hv-asst-mouth {
  opacity: 0;
}
.hv-asst-fab.is-typing .hv-asst-eye {
  animation: hv-asst-blink 2.8s ease-in-out infinite;
}
.hv-asst-dots {
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.hv-asst-fab .hv-asst-dots {
  position: absolute;
  left: 50%;
  bottom: 11px;
  transform: translateX(-50%);
  opacity: 0;
  pointer-events: none;
}
.hv-asst-fab.is-typing .hv-asst-dots {
  opacity: 1;
}
.hv-asst-dots i {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.35;
  animation: hv-asst-type 1s infinite ease-in-out;
}
.hv-asst-dots i:nth-child(2) { animation-delay: 0.15s; }
.hv-asst-dots i:nth-child(3) { animation-delay: 0.3s; }
.hv-asst-fab.is-typing .hv-asst-dots i,
.hv-asst-typing-msg .hv-asst-dots i {
  opacity: 1;
}
.hv-asst-typing-msg {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--ink-soft);
  font-style: italic;
}
@keyframes hv-asst-type {
  0%, 80%, 100% { transform: translateY(0); opacity: 0.35; }
  40% { transform: translateY(-3px); opacity: 1; }
}
@keyframes hv-asst-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1.5px); }
}
@keyframes hv-asst-blink {
  0%, 42%, 48%, 100% { transform: scaleY(1); }
  45% { transform: scaleY(0.15); }
}
.hv-asst-src {
  font-size: 0.72rem;
  color: var(--copper);
  margin-top: 0.35rem;
}

.ws-i-n {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
}

.container,
.container-narrow {
  width: min(100% - 2rem, 73.75rem);
  padding-inline: 0;
  margin-inline: auto;
}

@media (max-width: 760px) {
  .dash-topbar,
  .dash-layout,
  .ws {
    grid-template-columns: minmax(0, 1fr);
  }
  .asset-grid,
  .grid-2,
  .grid-3,
  .grid-4 {
    grid-template-columns: minmax(0, 1fr);
  }
}

a.brand {
  text-decoration: none;
  color: inherit;
}
.kb-web {
  min-height: 70vh;
  padding: clamp(1.25rem, 4vw, 2.75rem) 0 4rem;
}
.kb-web-hero {
  max-width: min(42rem, 100%);
  margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
}
.kb-web-hero h1 {
  font-family: var(--serif);
  font-size: clamp(1.7rem, 4.2vw, 2.7rem);
  font-weight: 500;
  line-height: 1.15;
  color: var(--ink);
  margin: 0 0 0.75rem;
}
.kb-web-hero p {
  color: var(--slate);
  line-height: 1.6;
  margin: 0 0 1.1rem;
  font-size: clamp(0.95rem, 1.6vw, 1.05rem);
}
.kb-web-section {
  margin-top: clamp(1.5rem, 3vw, 2.4rem);
}
.kb-web-section h2 {
  font-family: var(--serif);
  font-size: clamp(1.2rem, 2.4vw, 1.55rem);
  margin: 0 0 0.35rem;
}
.kb-web-cat-desc {
  color: var(--slate);
  margin: 0 0 0.75rem;
  font-size: 0.92rem;
}
.kb-article-card {
  text-decoration: none;
  min-width: 0;
}
.kb-article-card h4,
.kb-article-card .kb-teaser {
  overflow-wrap: anywhere;
}
.kb-cat-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
}
.kb-resume {
  margin-top: 1.5rem;
  padding: 1rem 1.15rem;
  background: var(--green-l);
  border-radius: var(--r-md);
  font-size: 0.95rem;
  line-height: 1.55;
}
.kb-resume a {
  color: var(--green-d);
  font-weight: 700;
}
.kb-web .kb-body {
  min-width: 0;
  overflow-wrap: anywhere;
}
.kb-web .kb-body a.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.hv-asst-src {
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.hv-asst-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.45rem;
}
.hv-asst-actions button {
  font-size: 0.75rem;
  padding: 0.35rem 0.65rem;
}

#hv-seo-landing,
html.hv-app-ready #hv-seo-landing,
#hv-seo-landing[hidden],
body:has(.platform-root[data-hv-skip-seo]) #hv-seo-landing,
body:has(.platform-root[data-hv-ready]) #hv-seo-landing {
  display: none !important;
}

.hv-ask-band{
  position:relative;
  z-index:20;
  padding:1.1rem 0 2.5rem;
  margin-top:.15rem;
  background:linear-gradient(180deg,rgba(74,107,61,.045),transparent 72%);
}
.hv-ask-intro{
  text-align:center;
  max-width:36rem;
  margin:0 auto 1.05rem;
}
.hv-ask-intro h2{
  font-family:var(--serif,Georgia,serif);
  font-weight:600;
  font-size:clamp(1.35rem,2.5vw,1.8rem);
  margin:.3rem 0 .4rem;
  letter-spacing:-.015em;
}
.hv-ask-intro p{
  margin:0;
  color:var(--slate,#5b6573);
  font-size:.95rem;
  line-height:1.5;
}
.hv-ask{
  display:flex;
  gap:.55rem;
  align-items:stretch;
  max-width:720px;
  margin:0 auto;
  padding:.35rem;
  background:#fff;
  border:1px solid var(--rule,#d9cfb8);
  border-radius:999px;
  box-shadow:0 10px 28px rgba(26,35,50,.05);
}
.hv-ask-field{
  position:relative;
  flex:1;
  min-width:0;
}
.hv-ask input{
  width:100%;
  border:0;
  background:transparent;
  padding:.75rem 1.05rem;
  font:inherit;
  font-size:1rem;
  outline:none;
}
.hv-ask-ph{
  position:absolute;
  left:1.05rem;
  right:1rem;
  top:50%;
  transform:translateY(-50%);
  color:var(--slate,#5b6573);
  pointer-events:none;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  transition:opacity .35s ease, transform .35s ease;
}
.hv-ask-ph.is-out{opacity:0;transform:translateY(-80%)}
.hv-ask.has-value .hv-ask-ph,
.hv-ask.is-focused .hv-ask-ph{opacity:0}
.hv-ask .btn{border-radius:999px;padding:.7rem 1.25rem}
.hv-ask-chips{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.45rem;
  margin:.85rem 0 0;
}
.hv-ask-chips button{
  border:1px solid var(--rule,#d9cfb8);
  background:#fff;
  color:var(--ink,#1a2332);
  font:inherit;
  font-size:.78rem;
  font-weight:600;
  padding:.4rem .85rem;
  border-radius:999px;
  cursor:pointer;
}
.hv-ask-chips button:hover{border-color:var(--moss,#4a6b3d);color:var(--moss,#4a6b3d)}
.hv-ask-layer[hidden]{display:none}
.hv-ask-veil{
  position:fixed;
  inset:0;
  z-index:70;
  border:0;
  padding:0;
  background:rgba(26,35,50,.18);
  cursor:pointer;
}
.hv-ask-pop{
  position:fixed;
  left:50%;
  top:max(5.25rem,10vh);
  transform:translateX(-50%);
  z-index:71;
  width:min(46rem,calc(100vw - 1.5rem));
  max-height:min(78vh,38rem);
  overflow:auto;
  background:#fffef9;
  border:1px solid var(--rule,#d9cfb8);
  border-radius:20px;
  box-shadow:0 28px 64px rgba(26,35,50,.18);
  padding:1rem 1.2rem 1.25rem;
  animation:hv-ask-pop-in .38s ease;
}
.hv-ask-pop-bar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.8rem;
  margin-bottom:.75rem;
}
.hv-ask-pop-bar strong{
  font-family:var(--serif,Georgia,serif);
  font-size:1.05rem;
  font-weight:600;
  line-height:1.35;
}
.hv-ask-x{
  width:2rem;
  height:2rem;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--slate,#5b6573);
  font-size:1.4rem;
  line-height:1;
  cursor:pointer;
}
.hv-ask-x:hover{background:rgba(26,35,50,.06);color:var(--ink,#1a2332)}
.hv-ask-out{text-align:left}
.hv-ask-reply p{margin:0 0 .75rem;font-size:.95rem;line-height:1.6;color:var(--ink,#1a2332)}
.hv-ask-reply p:last-child{margin-bottom:0}
.hv-ask-lead{
  font-family:var(--serif,Georgia,serif);
  font-size:1.12rem !important;
  line-height:1.45 !important;
}
.hv-ask-result{animation:hv-ask-fade .45s ease}
.hv-think{
  list-style:none;
  margin:0;
  padding:.15rem 0 .3rem;
}
.hv-think li{
  display:flex;
  align-items:flex-start;
  gap:.65rem;
  padding:.42rem 0;
  font-size:.92rem;
  line-height:1.4;
  color:var(--slate,#5b6573);
  animation:hv-ask-fade .35s ease both;
  animation-delay:calc(var(--i,0)*.05s);
}
.hv-think li.is-now{color:var(--ink,#1a2332);font-weight:600}
.hv-think li.is-done{color:var(--moss,#4a6b3d)}
.hv-think li.is-wait{opacity:.45}
.hv-think-mark{
  flex:0 0 1.05rem;
  width:1.05rem;
  height:1.05rem;
  margin-top:.12rem;
  border-radius:50%;
  border:1.5px solid currentColor;
  position:relative;
}
.hv-think li.is-now .hv-think-mark{
  border-color:transparent;
  border-top-color:var(--moss,#4a6b3d);
  border-right-color:var(--moss,#4a6b3d);
  animation:hv-spin .7s linear infinite;
}
.hv-think li.is-done .hv-think-mark{
  background:var(--moss,#4a6b3d);
  border-color:var(--moss,#4a6b3d);
}
.hv-think li.is-done .hv-think-mark::after{
  content:"";
  position:absolute;
  left:.28rem;
  top:.1rem;
  width:.28rem;
  height:.48rem;
  border:solid #fff;
  border-width:0 1.6px 1.6px 0;
  transform:rotate(45deg);
}
.hv-ask-cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:.7rem;
  margin-top:1.05rem;
}
.hv-ask-card{
  display:flex;
  flex-direction:column;
  gap:.4rem;
  text-align:left;
  text-decoration:none;
  color:inherit;
  background:#fff;
  border:1px solid var(--rule,#d9cfb8);
  border-radius:14px;
  padding:.95rem 1rem 1rem;
  min-height:9.2rem;
  animation:hv-ask-fade .45s ease both;
  animation-delay:calc(.08s + var(--i,0)*.07s);
}
.hv-ask-card:hover{border-color:var(--moss,#4a6b3d)}
.hv-ask-card .src{
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--moss,#4a6b3d);
}
.hv-ask-card .src.is-ext{color:var(--brass,#b87333)}
.hv-ask-card strong{font-family:var(--serif,Georgia,serif);font-weight:600;font-size:1.02rem;line-height:1.3}
.hv-ask-card p{margin:0;font-size:.84rem;color:var(--slate,#5b6573);line-height:1.5;flex:1}
.hv-ask-card-go{
  font-size:.75rem;
  font-weight:700;
  color:var(--moss,#4a6b3d);
  letter-spacing:.02em;
}
.hv-ask-more{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.05rem}
.hv-ask-more-label{
  width:100%;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--slate,#5b6573);
}
.hv-ask-more button{
  border:1px dashed var(--rule,#d9cfb8);
  background:transparent;
  font:inherit;
  font-size:.8rem;
  padding:.4rem .8rem;
  border-radius:999px;
  cursor:pointer;
}
.hv-ask-more button:hover{border-style:solid;border-color:var(--moss,#4a6b3d)}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;
}
@keyframes hv-ask-pop-in{
  from{opacity:0;transform:translateX(-50%) translateY(12px)}
  to{opacity:1;transform:translateX(-50%)}
}
@keyframes hv-ask-fade{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:none}
}
@media(max-width:640px){
  .hv-ask{border-radius:14px;flex-direction:column}
  .hv-ask .btn{width:100%}
  .hv-ask-pop{
    position:fixed;
    left:0;
    right:0;
    top:auto;
    bottom:0;
    transform:none;
    width:100%;
    max-height:78vh;
    border-radius:20px 20px 0 0;
    animation:hv-ask-sheet .4s ease;
  }
}
@keyframes hv-ask-sheet{
  from{opacity:0;transform:translateY(18%)}
  to{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){
  .hv-ask-ph,.hv-ask-pop,.hv-ask-result,.hv-think li,.hv-ask-card{animation:none;transition:none}
}
}

.hv-faq {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin: 1rem 0;
}
.hv-faq-item {
  border: 1px solid var(--rule, #d9cfb8);
  border-radius: 12px;
  background: #fff;
  padding: 0.7rem 0.95rem;
}
.hv-faq-item summary {
  cursor: pointer;
  font-weight: 650;
  color: var(--ink, #1a2332);
  line-height: 1.4;
}
.hv-faq-item p {
  margin: 0.55rem 0 0;
  color: var(--slate, #5b6573);
  line-height: 1.6;
  font-size: 0.95rem;
}

.hv-intent-points {
  margin: 0 0 1.5rem;
  padding: 0 0 0 1.15rem;
  color: var(--ink, #1a2332);
  line-height: 1.7;
}
.hv-intent-points li + li {
  margin-top: 0.35rem;
}

.hv-seo-more {
  margin-top: 1rem;
}
.hv-seo-more a {
  font-weight: 650;
}

.hv-crumbs {
  font-size: 0.85rem;
  color: var(--slate, #5b6573);
  margin: 0 0 0.85rem;
}
.hv-crumbs a {
  color: inherit;
}

.hv-search {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 1rem 0 0.85rem;
  max-width: 36rem;
}
.hv-search input[type="search"] {
  flex: 1 1 14rem;
  min-width: 0;
  border: 1px solid var(--rule, #d9cfb8);
  border-radius: 10px;
  padding: 0.7rem 0.9rem;
  font: inherit;
  background: #fff;
}
.hv-search-meta {
  color: var(--slate, #5b6573);
  margin: 0 0 1rem;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.hv-seo-steps {
  margin-top: 1.1rem;
}

.legal-doc {
  padding-top: 0.5rem;
}
.legal-doc h2 {
  margin-top: 1.75rem;
}
.legal-doc ul {
  margin: 0 0 1rem;
}

@media (max-width: 1100px) {
  .top-nav .site-nav-topic {
    display: none;
  }
}
