/* /vets/ — Bramblewood Vets. A calm, friendly practice site whose booking is a chat (vets.js).
   Note: this file loads before demo.css, so rules that must beat demo.css's `.dm-page h2` etc. start with `.vt-page`. */
@font-face { font-family: "Lexend"; src: url(/assets/fonts/lexend-normal-300-800.woff2) format("woff2"); font-weight: 300 800; font-display: swap; }
@font-face { font-family: "Atkinson Hyperlegible Next"; src: url(/assets/fonts/atkinson-next-normal-300-800.woff2) format("woff2"); font-weight: 300 800; font-display: swap; }
@font-face { font-family: "Atkinson Hyperlegible Mono"; src: url(/assets/fonts/atkinson-mono-normal-300-700.woff2) format("woff2"); font-weight: 300 700; font-display: swap; }

.vt-page {
  --f-display: "Lexend", system-ui, sans-serif; --f-body: "Atkinson Hyperlegible Next", system-ui, sans-serif; --f-mono: "Atkinson Hyperlegible Mono", ui-monospace, monospace; --h-weight: 600;
  --pg-bg: #f6f4ef; --pg-ink: #14302c; --teal: #0f6f67; --teal-2: #138a80; --mint: #e2f2ec; --mint-2: #c9e8de; --coral: #c9472a; --coral-bg: #fdeee8; --muted: #4f6560; --line: rgba(20, 48, 44, .12);
  --bar-bg: #0e2a27; --bar-fg: #f3f1ea; --tag: #9fe3cf; --btn-bg: #f6c453; --btn-fg: #14302c;
}
.vt-page h1, .vt-page h2, .vt-page h3 { letter-spacing: -.025em; }
.vt-page .dm-bar__name { display: inline-flex; align-items: center; gap: .55rem; }
.vt-logo { width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; background: var(--tag); color: var(--bar-bg); }
.vt-logo svg, .vt-ava svg { width: 62%; fill: currentColor; }
.vt-page .vt-call { white-space: nowrap; }
.vt-page .dm-bar .vt-call { display: inline-flex; gap: .35rem; }   /* the phone stays in reach on every screen (demo.css hides bar buttons on phones) */

/* ---------- hero: intro + the chat ---------- */
.vt-hero { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center;
  padding: clamp(1.5rem, 4vw, 3.2rem) max(16px, (100vw - 1160px) / 2) clamp(2.5rem, 5vw, 4rem);
  background: radial-gradient(80% 70% at 85% 30%, #d6efe5, transparent 70%), radial-gradient(60% 60% at 0% 100%, #f3e7cf, transparent 70%), var(--pg-bg); }
.vt-kick { margin: 0 0 1rem; font: 600 .78rem var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--teal); }
.vt-page .vt-hero h1 { font-size: clamp(2.3rem, 4.2vw, 3.5rem); line-height: 1.02; margin: 0 0 1.1rem; }
.vt-hero h1 span { display: block; color: var(--teal); }
.vt-lead { font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.5; color: var(--muted); margin: 0 0 1.3rem; max-width: 34rem; }
.vt-ticks { list-style: none; margin: 0 0 1.4rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.vt-ticks li { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .85rem; border-radius: 999px; background: #fff; border: 1px solid var(--line); font-size: .92rem; font-weight: 600; }
.vt-ticks li::before { content: ""; width: 16px; height: 16px; border-radius: 50%; background: var(--teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.3 2.3 4.7-5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat; }
.vt-watch { border: 0; background: none; padding: .3rem 0; font: 700 1rem var(--f-body); color: var(--teal); cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.vt-watch:hover { color: var(--pg-ink); }
.vt-sos { margin: 1.4rem 0 0; padding: .85rem 1rem; border-radius: 14px; background: var(--coral-bg); border: 1px solid rgba(201, 71, 42, .25); color: #6b2412; max-width: 34rem; line-height: 1.45; }
.vt-sos a { color: var(--coral); font-weight: 700; white-space: nowrap; }

/* ---------- the chat ---------- */
.vt-chat { --fs: 1rem; position: relative; display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto auto; height: clamp(560px, 76svh, 720px);
  background: #fff; border-radius: 26px; border: 1px solid var(--line); box-shadow: 0 30px 70px -40px rgba(14, 42, 39, .45), 0 2px 0 rgba(14, 42, 39, .04); overflow: hidden; font-size: var(--fs); }
.vt-chat.vt-big { --fs: 1.2rem; }
.vt-chat__head { display: flex; align-items: center; gap: .75rem; padding: .9rem 1rem .9rem 1.1rem; border-bottom: 1px solid var(--line); }
.vt-chat__head > div { display: grid; margin-right: auto; line-height: 1.25; }
.vt-chat__head b { font: 600 1.02em var(--f-display); }
.vt-chat__head > div span { font-size: .82em; color: var(--muted); display: flex; align-items: center; gap: .35rem; }
.vt-chat__head > div span::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #2fbf71; }
.vt-ava { width: 42px; height: 42px; flex: none; border-radius: 14px; display: grid; place-items: center; background: var(--teal); color: #fff; }
.vt-tool { min-width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--line); background: #fff; color: var(--pg-ink); font: 700 1rem var(--f-display); cursor: pointer; }
.vt-tool:hover { background: var(--mint); }
.vt-tool[aria-pressed="true"] { background: var(--teal); color: #fff; border-color: var(--teal); }
.vt-prog { height: 4px; background: var(--mint); }
.vt-prog i { display: block; height: 100%; width: 0; background: var(--teal-2); border-radius: 0 4px 4px 0; transition: width .5s ease; }

.vt-log { overflow-y: auto; padding: 1.1rem 1.1rem .6rem; scrollbar-width: thin; overscroll-behavior: contain; }
.vt-group { display: flex; flex-direction: column; align-items: flex-start; gap: .45rem; margin-bottom: .55rem; }
.vt-msg { margin: 0; max-width: 86%; padding: .75em 1em; border-radius: 18px 18px 18px 6px; background: var(--mint); line-height: 1.45; font-size: 1.02em; }
.vt-move .vt-msg { animation: vt-pop .3s ease-out; }
@keyframes vt-pop { from { opacity: 0; translate: 0 6px; } }
.vt-typing { margin: 0; display: inline-flex; gap: 5px; padding: .9em 1em; border-radius: 18px 18px 18px 6px; background: var(--mint); }
.vt-typing i { width: 7px; height: 7px; border-radius: 50%; background: var(--teal); opacity: .35; animation: vt-dot 1s infinite; }
.vt-typing i:nth-child(2) { animation-delay: .15s; } .vt-typing i:nth-child(3) { animation-delay: .3s; }
@keyframes vt-dot { 30% { opacity: 1; translate: 0 -3px; } }

/* your answers: right-hand bubbles you can tap to change */
.vt-me { align-self: flex-end; display: inline-flex; align-items: center; gap: .45em; max-width: 86%; margin: .2rem 0 .3rem; padding: .7em .9em .7em 1em; border: 0; border-radius: 18px 18px 6px 18px;
  background: var(--teal); color: #fff; font: 600 1.02em/1.35 var(--f-body); text-align: left; cursor: pointer; transition: background .2s; }
.vt-me small { margin-left: .35em; padding: .15em .5em; border-radius: 999px; background: rgba(255, 255, 255, .18); font-size: .72em; font-weight: 600; opacity: .8; }
.vt-me:hover, .vt-me:focus-visible { background: var(--pg-ink); }
.vt-me:hover small, .vt-me:focus-visible small { opacity: 1; background: rgba(255, 255, 255, .3); }
.vt-move .vt-me { animation: vt-pop .25s ease-out; }

/* the answer area at the bottom */
.vt-compose { padding: .85rem 1rem .9rem; border-top: 1px solid var(--line); background: #fbfaf7; max-height: min(340px, 58svh); overflow-y: auto; }
.vt-loading { margin: 0; }
.vt-bigcall--teal { background: var(--teal); margin-top: .4rem; align-self: stretch; }
.vt-compose:empty { padding: 0; border: 0; }
.vt-move .vt-compose.is-in > * { animation: vt-pop .3s ease-out both; }
.vt-choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: .5rem; }
.vt-choice, .vt-day, .vt-slot, .vt-confirm, .vt-send { font: 600 1em var(--f-body); color: var(--pg-ink); cursor: pointer; transition: background .15s, border-color .15s, transform .15s; }
.vt-choice { display: flex; align-items: center; gap: .6em; min-height: 3.2em; padding: .5em .95em; border-radius: 14px; border: 2px solid var(--mint-2); background: #fff; text-align: left; }
.vt-choice:hover, .vt-choice:focus-visible, .vt-choice.is-pressed { border-color: var(--teal); background: var(--mint); }
.vt-choice__i { font-size: 1.35em; line-height: 1; }
.vt-choice--alert { border-color: rgba(201, 71, 42, .35); color: #7a2a15; }
.vt-choice--alert:hover, .vt-choice--alert:focus-visible { border-color: var(--coral); background: var(--coral-bg); }
.vt-skip { margin-top: .55rem; border: 0; background: none; padding: .3rem .1rem; color: var(--teal); font: 600 .95em var(--f-body); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.vt-form { display: grid; gap: .5rem; }
.vt-form--one { grid-template-columns: 1fr auto; }
.vt-form--two { grid-template-columns: 1fr 1fr auto; }
.vt-form--contact { grid-template-columns: 1fr 1fr; }
.vt-form--contact input[type="text"] { grid-column: 1 / -1; }
.vt-form--contact .vt-send { grid-column: 1 / -1; }
.vt-consent { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: .6em; font-size: .9em; line-height: 1.4; cursor: pointer; }
.vt-consent input { flex: none; width: 1.3em; height: 1.3em; min-height: 0; margin: .05em 0 0; padding: 0; accent-color: var(--teal); }
.vt-form input { min-height: 3.1em; padding: 0 .95em; border-radius: 14px; border: 2px solid var(--mint-2); background: #fff; font: 500 1.05em var(--f-body); color: var(--pg-ink); min-width: 0; }
.vt-form input:focus { outline: none; border-color: var(--teal); box-shadow: 0 0 0 4px rgba(19, 138, 128, .15); }
.vt-send, .vt-confirm { min-height: 3.1em; padding: 0 1.3em; border-radius: 14px; border: 0; background: var(--teal); color: #fff; }
.vt-send:hover, .vt-confirm:hover, .vt-confirm.is-pressed { background: var(--pg-ink); }
.vt-confirm { width: 100%; font-size: 1.08em; }
.vt-err { grid-column: 1 / -1; margin: 0; color: var(--coral); font-weight: 600; font-size: .92em; }
.vt-err:empty { display: none; }
.vt-small { margin: .55rem 0 0; font-size: .82em; color: var(--muted); }
.vt-days { display: grid; grid-template-columns: repeat(auto-fill, minmax(6.4em, 1fr)); gap: .5rem; }
.vt-day { display: grid; justify-items: center; gap: .05em; padding: .65em .4em; border-radius: 14px; border: 2px solid var(--mint-2); background: #fff; }
.vt-day b { font: 600 1.05em var(--f-display); }
.vt-day span { font-size: .85em; color: var(--muted); }
.vt-day small { margin-top: .25em; font: 600 .72em var(--f-mono); color: var(--teal-2); }
.vt-day:hover, .vt-day:focus-visible, .vt-day.is-pressed { border-color: var(--teal); background: var(--mint); }
.vt-slots { display: grid; gap: .6rem; }
.vt-slots__row { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.vt-slots__h { width: 100%; font: 600 .72em var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.vt-slot { min-width: 4.6em; min-height: 2.8em; padding: 0 .7em; border-radius: 12px; border: 2px solid var(--mint-2); background: #fff; font-family: var(--f-mono); }
.vt-slot:hover:not([disabled]), .vt-slot:focus-visible, .vt-slot.is-pressed { border-color: var(--teal); background: var(--mint); }
.vt-slot[disabled] { cursor: default; color: #a3b3ae; border-style: dashed; text-decoration: line-through; background: transparent; }

/* summary + emergency cards in the chat */
.vt-card { align-self: stretch; margin: .3rem 0 .4rem; padding: 1rem 1.1rem; border-radius: 18px; border: 1px solid var(--line); background: #fff; box-shadow: 0 14px 30px -24px rgba(14, 42, 39, .5); }
.vt-card dl { margin: 0; display: grid; gap: .55rem; }
.vt-card dl div { display: grid; grid-template-columns: 6.5em 1fr; gap: .8rem; }
.vt-card dt { font: 600 .72em var(--f-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); padding-top: .2em; }
.vt-card dd { margin: 0; font-weight: 600; }
.vt-card--sos { background: var(--coral-bg); border-color: rgba(201, 71, 42, .3); color: #6b2412; }
.vt-card__h { margin: 0 0 .6rem; font: 700 1.2em var(--f-display); color: var(--coral); }
.vt-bigcall { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 3.4em; margin-bottom: .7rem; border-radius: 14px; background: var(--coral); color: #fff !important; font: 700 1.25em var(--f-display); text-decoration: none; }
.vt-bigcall:hover { background: #a8361c; }
.vt-card--sos p:last-child { margin: 0; font-size: .92em; }

.vt-chat__foot { margin: 0; padding: .7rem 1rem; border-top: 1px solid var(--line); text-align: center; font-size: .9em; color: var(--muted); }
.vt-chat__foot a { color: var(--teal); font-weight: 700; }

/* ---------- sections ---------- */
.vt-sec { padding: clamp(3.5rem, 8vw, 6rem) 0; }
.vt-page .vt-sec h2 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.08; margin: .6rem 0 clamp(1.6rem, 3vw, 2.4rem); max-width: 26ch; }
.vt-page .dm-eyebrow { color: var(--teal); }
.vt-feats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2rem; }
.vt-feats li { padding: 1.4rem 1.3rem 1.5rem; border-radius: 20px; background: #fff; border: 1px solid var(--line); }
.vt-feat__i { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: var(--mint); color: var(--teal); font: 700 1.15rem var(--f-display); }
.vt-page .vt-feats h3 { font-size: 1.25rem; line-height: 1.2; margin: 1rem 0 .5rem; }
.vt-feats p, .vt-svc p { margin: 0; color: var(--muted); line-height: 1.5; }
.vt-services { background: #ecebe4; }
.vt-svc { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.vt-svc li { padding: 1.3rem 1.3rem 1.4rem; border-radius: 18px; background: var(--pg-bg); border-left: 4px solid var(--teal-2); }
.vt-page .vt-svc h3 { font-size: 1.2rem; margin: 0 0 .45rem; }
.vt-find__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 2rem 4rem; align-items: start; }
.vt-find__grid > div > p { color: var(--muted); max-width: 32rem; }
.vt-hours { margin: 0; padding: 1.3rem 1.4rem; border-radius: 20px; background: #fff; border: 1px solid var(--line); display: grid; gap: .2rem; }
.vt-hours div { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid var(--line); }
.vt-hours div:last-child { border: 0; }
.vt-hours dt { font-weight: 600; }
.vt-hours dd { margin: 0; color: var(--muted); text-align: right; }
.vt-hours a { color: var(--coral); font-weight: 700; }

/* ---------- smaller screens ---------- */
@media (max-width: 1000px) {
  .vt-feats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vt-svc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .vt-hero { grid-template-columns: 1fr; }
  .vt-chat { height: clamp(520px, 82svh, 700px); }
  .vt-find__grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .vt-feats, .vt-svc { grid-template-columns: 1fr; }
  .vt-form--two { grid-template-columns: 1fr; }
  .vt-form--contact { grid-template-columns: 1fr; }
  .vt-chat { border-radius: 20px; margin-inline: -4px; }
  .vt-page .vt-call { padding-inline: .7rem; }
}
@media (max-width: 400px) { .vt-page .vt-call { font-size: 0; } .vt-page .vt-call span { font-size: 1rem; } }
