/* =========================================================
   Pet Dental of Colorado — "Modern Independent Pet Wellness"
   Warm cream ground, navy type, brand brights as small accents.
   Edit tokens here; every page reads from them.
   ========================================================= */

:root {
  /* Official brand colors */
  --navy: #083D91;
  --blue: #0094FF;
  --teal: #00C4BB;
  --orange: #FF7A00;
  --yellow: #FFC629;

  /* Neutrals */
  --cream: #FBF4E6;
  --paper: #FFFCF6;
  --sand: #EFE3CF;
  --white: #FFFFFF;
  --navy-deep: #062E6E;
  --ink-soft: #46628F;              /* secondary text, ~5.5:1 on cream */
  --teal-ink: #007C76;              /* teal dark enough for small text */
  --error: #B03A06;
  --rule: rgba(8, 61, 145, 0.14);
  --rule-strong: rgba(8, 61, 145, 0.32);

  /* Type */
  --head: "Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;
  --text: "DM Sans", "Segoe UI", system-ui, sans-serif;

  --max: 1200px;
  --r: 6px;
  --gutter: max(20px, env(safe-area-inset-left, 0px), 4vw);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }
body {
  margin: 0; background: var(--cream); color: var(--navy);
  font-family: var(--text); font-size: 18px; line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
@media (min-width: 960px) { body { font-size: 19px; } }
img { max-width: 100%; display: block; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0 0 1em; padding-left: 1.2em; }
strong { font-weight: 600; }
a { color: var(--navy); text-decoration-color: var(--rule-strong); text-decoration-thickness: 1px; text-underline-offset: 4px; transition: text-decoration-color .2s ease, color .2s ease; }
a:hover { text-decoration-color: var(--orange); }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 3px; }
[hidden] { display: none !important; }

.skip { position: absolute; left: -999px; top: 8px; background: var(--navy); color: var(--white); padding: 8px 14px; border-radius: var(--r); z-index: 100; }
.skip:focus { left: 8px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Type ---------- */
h1, h2, h3, h4 { font-family: var(--head); margin: 0; text-wrap: balance; color: inherit; }
h1 { font-weight: 600; font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.05; letter-spacing: -0.035em; }
h2 { font-weight: 600; font-size: clamp(1.85rem, 3.3vw, 2.7rem); line-height: 1.1; letter-spacing: -0.03em; }
h3 { font-weight: 600; font-size: 1.2rem; line-height: 1.3; letter-spacing: -0.01em; }
h4 { font-weight: 600; font-size: 1.02rem; line-height: 1.35; }
.lede { font-size: clamp(1.1rem, 1.6vw, 1.26rem); line-height: 1.55; max-width: 34em; }
.muted { color: var(--ink-soft); }
.small { font-size: .9rem; }
.measure { max-width: 38em; }
.kicker {
  font-weight: 500; font-size: .95rem; color: var(--ink-soft);
  display: flex; align-items: center; gap: 10px; margin: 0 0 18px;
}
.kicker::before { content: ""; width: 22px; height: 2px; background: var(--orange); flex: none; }
.statement { font-family: var(--head); font-weight: 500; font-size: clamp(1.4rem, 2.6vw, 2.05rem); line-height: 1.33; letter-spacing: -0.022em; max-width: 30em; margin: 0; }
.statement span { color: var(--ink-soft); }
.pull { font-family: var(--head); font-weight: 500; font-style: italic; font-size: clamp(1.25rem, 2.1vw, 1.6rem); line-height: 1.35; letter-spacing: -0.015em; max-width: 22em; padding-left: 22px; border-left: 2px solid var(--orange); margin: 0; }

/* ---------- Layout ---------- */
.wrap { width: 100%; max-width: calc(var(--max) + 96px); margin-inline: auto; padding-left: var(--gutter); padding-right: max(20px, env(safe-area-inset-right, 0px), 4vw); }
.section { padding-block: clamp(72px, 10vw, 124px); position: relative; }
.section--tight { padding-block: clamp(56px, 7vw, 88px); }
.section--paper { background: var(--paper); border-block: 1px solid var(--rule); }
.section--navy { background: var(--navy); color: var(--cream); overflow: hidden; }
.section--navy h2, .section--navy h3 { color: var(--white); }
.section--navy a { color: var(--cream); }
.section--navy .kicker { color: rgba(251,244,230,.75); }
.section--navy .kicker::before { background: var(--yellow); }
.section--navy .muted { color: rgba(251,244,230,.78); }
.section + .section--paper, .section--paper + .section { border-top-color: var(--rule); }

.split { display: grid; gap: 32px; }
.split > * { min-width: 0; }
@media (min-width: 960px) {
  .split { grid-template-columns: 4fr 8fr; gap: 64px; }
  .split--even { grid-template-columns: 1fr 1fr; }
  .split--wide-left { grid-template-columns: 7fr 5fr; gap: 72px; }
  .split--center { align-items: center; }
  .sticky { position: sticky; top: 112px; align-self: start; }
}
.stack > * + * { margin-top: 20px; }
.section-head { display: grid; gap: 14px; margin-bottom: 48px; max-width: 42em; }
.section-head p { color: var(--ink-soft); margin: 0; }

/* ---------- Header ---------- */
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 49; background: var(--cream); }
.site-header { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50; background: rgba(251, 244, 230, .95); backdrop-filter: saturate(1.2) blur(6px); border-bottom: 1px solid var(--rule); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 78px; }
.brand { display: inline-flex; align-items: center; text-decoration: none; color: var(--navy); }
.brand img { height: 64px; width: auto; }
@media (max-width: 600px) { .brand img { height: 54px; } }
.brand__text { font-family: var(--head); font-weight: 700; font-size: 1.12rem; letter-spacing: -0.02em; line-height: 1; }
.nav { display: none; }
.nav ul { list-style: none; display: flex; align-items: center; gap: 28px; margin: 0; padding: 0; }
.nav a { font: 500 .97rem var(--head); text-decoration: none; padding: 6px 0; border-bottom: 1.5px solid transparent; }
.nav a:hover { color: var(--blue); }
.nav a[aria-current="page"] { border-bottom-color: var(--orange); }
.nav .btn { padding: 9px 16px; min-height: 42px; border-bottom-width: 1px; font-size: .95rem; }
.nav .btn[aria-current="page"] { border-color: var(--navy); }
.menu-btn { font: 600 .95rem var(--head); color: var(--navy); background: transparent; border: 1px solid var(--rule-strong); border-radius: var(--r); padding: 9px 16px; min-height: 44px; cursor: pointer; }
@media (min-width: 1060px) { .nav { display: block; } .menu-btn { display: none; } }

.menu-panel { position: fixed; inset: 0; z-index: 60; background: var(--cream); padding: calc(env(safe-area-inset-top, 0px) + 16px) var(--gutter) 40px; display: flex; flex-direction: column; overflow-y: auto; }
.menu-panel__top { display: flex; justify-content: space-between; align-items: center; min-height: 52px; margin-bottom: 32px; }
.menu-panel ul { list-style: none; padding: 0; margin: 0 0 32px; border-top: 1px solid var(--rule); }
.menu-panel li { border-bottom: 1px solid var(--rule); }
.menu-panel a.menu-link { display: block; padding: 16px 0; font: 600 1.45rem var(--head); letter-spacing: -0.02em; text-decoration: none; }
.menu-panel a.menu-link[aria-current="page"] { color: var(--teal-ink); }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font: 600 1rem/1.2 var(--head); letter-spacing: -0.005em; text-decoration: none; text-align: center;
  min-height: 50px; padding: 13px 22px; border-radius: var(--r);
  border: 1px solid transparent; cursor: pointer;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.btn--primary { background: var(--navy); color: var(--white); }
.btn--primary:hover { background: var(--navy-deep); }
.btn--line { background: transparent; color: var(--navy); border-color: var(--rule-strong); }
.btn--line:hover { border-color: var(--navy); }
.btn--light { background: var(--cream); color: var(--navy); }
.btn--light:hover { background: var(--white); }
.section--navy .btn--light { color: var(--navy); }
.btn[disabled] { opacity: .6; cursor: progress; }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.text-link { font-family: var(--head); font-weight: 600; }

/* ---------- Contours (the one Colorado texture) ---------- */
.contours { position: absolute; pointer-events: none; color: var(--navy); opacity: .08; }
.contours path { fill: none; stroke: currentColor; stroke-width: 1.2; }
.section--navy .contours { color: var(--cream); opacity: .1; }

/* ---------- Hero ---------- */
.hero { padding-block: clamp(48px, 7vw, 96px) clamp(64px, 9vw, 112px); position: relative; overflow: hidden; }
.hero__grid { display: grid; gap: 56px; }
.hero__copy { display: grid; gap: 26px; align-content: center; min-width: 0; }
.hero__copy .kicker, .hero__copy p { margin: 0; }
@media (min-width: 960px) { .hero__grid { grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); gap: 80px; align-items: center; } }
.status { display: flex; gap: 12px; align-items: baseline; font-size: .95rem; color: var(--ink-soft); padding-top: 22px; border-top: 1px solid var(--rule); max-width: 34em; margin: 0; }
.status i { width: 8px; height: 8px; border-radius: 50%; background: var(--teal); flex: none; transform: translateY(-1px); }

.page-hero { padding-block: clamp(48px, 7vw, 92px) clamp(40px, 6vw, 72px); position: relative; overflow: hidden; }
.page-hero__grid { display: grid; gap: 28px; }
.page-hero__grid > * { min-width: 0; }
.page-hero .lede { margin-top: 22px; }
@media (min-width: 960px) { .page-hero__grid { grid-template-columns: 8fr 4fr; gap: 64px; align-items: end; } }
.aside-note { font-size: .98rem; line-height: 1.5; color: var(--ink-soft); border-left: 2px solid var(--yellow); padding: 4px 0 4px 18px; max-width: 26em; margin: 0; }
.section--navy .aside-note { color: rgba(251,244,230,.82); }

/* ---------- Sample report card ---------- */
.report {
  background: var(--paper); border: 1px solid var(--rule-strong); border-radius: 8px;
  padding: 26px; font-size: .94rem; position: relative; color: var(--navy);
}
@media (min-width: 760px) { .report { padding: 34px; } }
.report__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--rule-strong); margin-bottom: 18px; }
.report__title { font: 600 1.25rem/1.2 var(--head); letter-spacing: -0.02em; margin: 0; }
.report__tag { font: 600 .78rem/1 var(--head); color: var(--teal-ink); border: 1px solid currentColor; border-radius: 4px; padding: 6px 8px; white-space: nowrap; }
.report__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 22px; margin-bottom: 18px; }
.report__field { border-bottom: 1px solid var(--rule); padding-bottom: 6px; min-width: 0; }
.report__field span { display: block; font-size: .78rem; color: var(--ink-soft); }
.report__field b { font-weight: 500; }
.report__block { padding-top: 14px; }
.report__block h3 { font-size: .9rem; margin-bottom: 4px; }
.report__block p { color: var(--ink-soft); margin: 0; }
.chart { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 0 4px; }
.chart i { width: 16px; height: 20px; border: 1px solid var(--rule-strong); border-radius: 5px 5px 8px 8px; display: block; background: var(--white); }
.chart i.f { background: var(--yellow); border-color: rgba(8,61,145,.45); }
.report__foot { margin-top: 16px; padding-top: 12px; border-top: 1px dashed var(--rule-strong); font-size: .82rem; color: var(--ink-soft); }

/* ---------- Lined lists ---------- */
.lined { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule-strong); }
.lined > li { padding: 16px 0; border-bottom: 1px solid var(--rule); }
.lined > li > b, .lined > li > strong { display: block; font-family: var(--head); font-weight: 600; letter-spacing: -0.01em; margin-bottom: 2px; }
.lined > li > span { color: var(--ink-soft); display: block; }
.section--navy .lined { border-top-color: rgba(251,244,230,.3); }
.section--navy .lined > li { border-bottom-color: rgba(251,244,230,.16); }
.section--navy .lined > li > b { color: var(--white); }
.section--navy .lined > li > span { color: rgba(251,244,230,.78); }

/* Two marked columns (fit / scope) */
.cols2 { display: grid; gap: 40px; }
.cols2 > * { min-width: 0; }
@media (min-width: 700px) {
  .cols2 { grid-template-columns: 1fr 1fr; gap: 0; }
  .cols2 > :first-child { padding-right: 40px; }
  .cols2 > :last-child { padding-left: 40px; border-left: 1px solid var(--rule); }
}
.col-head { display: flex; align-items: center; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--rule-strong); margin-bottom: 0; }
.dot { width: 10px; height: 10px; border-radius: 50%; flex: none; display: inline-block; }
.dot--teal { background: var(--teal); }
.dot--orange { background: var(--orange); }
.dot--blue { background: var(--blue); }
.dot--yellow { background: var(--yellow); }
.plain { list-style: none; margin: 0; padding: 0; }
.plain li { padding: 14px 0; border-bottom: 1px solid var(--rule); }

/* ---------- Steps (real sequences only) ---------- */
.steps { list-style: none; margin: 0; padding: 0; counter-reset: step; border-top: 1px solid var(--rule-strong); }
.steps > li { counter-increment: step; display: grid; grid-template-columns: 52px 1fr; column-gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--rule); }
.steps > li::before { content: counter(step, decimal-leading-zero); grid-row: span 2; font: 600 .95rem/1.9 var(--head); color: var(--teal-ink); letter-spacing: .02em; }
.steps > li > * { grid-column: 2; }
.steps > li p { color: var(--ink-soft); margin: 4px 0 0; }
.section--navy .steps { border-top-color: rgba(251,244,230,.3); }
.section--navy .steps > li { border-bottom-color: rgba(251,244,230,.16); }
.section--navy .steps > li::before { color: var(--yellow); }
.section--navy .steps > li p { color: rgba(251,244,230,.78); }
.closing-note { margin-top: 26px; font-style: italic; display: flex; gap: 12px; align-items: baseline; }
.closing-note::before { content: ""; width: 22px; height: 2px; background: var(--yellow); flex: none; transform: translateY(-5px); }

/* ---------- Principles ---------- */
.guides { display: grid; gap: 44px 64px; }
@media (min-width: 760px) { .guides { grid-template-columns: 1fr 1fr; } }
.guide { padding-top: 24px; border-top: 1px solid var(--rule-strong); position: relative; min-width: 0; }
.guide::before { content: ""; position: absolute; top: -1px; left: 0; width: 48px; height: 3px; background: var(--c, var(--teal)); }
.guide h3 { font-size: clamp(1.25rem, 1.9vw, 1.5rem); letter-spacing: -0.02em; margin-bottom: 10px; }
.guide p { color: var(--ink-soft); max-width: 30em; margin: 0; }

/* ---------- Comparison table ---------- */
.table-wrap { overflow-x: auto; }
.compare { width: 100%; min-width: 620px; border-collapse: collapse; font-size: .98rem; }
.compare th, .compare td { text-align: left; vertical-align: top; padding: 16px 18px 16px 0; border-bottom: 1px solid var(--rule); }
.compare thead th { font: 600 1rem var(--head); border-bottom: 1px solid var(--rule-strong); }
.compare tbody th { font-weight: 600; width: 26%; color: var(--navy); }
.compare td { color: var(--ink-soft); }

/* Roles table on vet page */
.roles { width: 100%; min-width: 620px; border-collapse: collapse; }
.roles th, .roles td { text-align: left; vertical-align: top; padding: 18px 20px 18px 0; border-bottom: 1px solid var(--rule); }
.roles thead th { font: 600 1rem var(--head); border-bottom: 1px solid var(--rule-strong); }
.roles thead th:first-child { width: 22%; }
.roles td { color: var(--ink-soft); }
.roles tbody th { font: 600 .98rem var(--head); }

/* ---------- Status panel ---------- */
.status-panel { display: grid; gap: 0; border: 1px solid var(--rule-strong); border-radius: 8px; background: var(--paper); }
@media (min-width: 760px) { .status-panel { grid-template-columns: 1fr 1fr; } .status-panel > div + div { border-left: 1px solid var(--rule-strong); } }
.status-panel > div { padding: 26px; min-width: 0; }
.status-panel > div + div { border-top: 1px solid var(--rule-strong); }
@media (min-width: 760px) { .status-panel > div + div { border-top: 0; } .status-panel > div { padding: 32px; } }
.status-panel h3 { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.status-panel ul { list-style: none; padding: 0; margin: 0; }
.status-panel li { padding: 8px 0 8px 26px; position: relative; }
.status-panel li::before { content: ""; position: absolute; left: 0; top: 18px; width: 12px; height: 1.5px; background: var(--ink-soft); }
.status-panel .is-done li::before { width: 10px; height: 6px; background: none; border-left: 2px solid var(--teal-ink); border-bottom: 2px solid var(--teal-ink); transform: rotate(-45deg); top: 14px; }

/* Callout box */
.callout { border-left: 3px solid var(--teal); background: var(--paper); padding: 24px 26px; border-radius: 0 6px 6px 0; }
.callout h3 { margin-bottom: 10px; }
.callout ul { margin-bottom: 0; }
.callout li + li { margin-top: 6px; }
.callout--warn { border-left-color: var(--orange); }

/* ---------- Signs grid (dental health) ---------- */
.signs { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 48px; border-top: 1px solid var(--rule-strong); }
@media (min-width: 700px) { .signs { grid-template-columns: 1fr 1fr; } }
.signs li { padding: 16px 0; border-bottom: 1px solid var(--rule); display: grid; gap: 2px; }
.signs b { font-family: var(--head); font-weight: 600; }
.signs span { color: var(--ink-soft); }

/* ---------- FAQ ---------- */
.faq { border-top: 1px solid var(--rule-strong); }
.faq details { border-bottom: 1px solid var(--rule); }
.faq summary { cursor: pointer; list-style: none; font: 600 1.06rem/1.4 var(--head); letter-spacing: -0.01em; padding: 20px 44px 20px 0; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before, .faq summary::after { content: ""; position: absolute; right: 4px; top: 50%; width: 14px; height: 1.5px; background: var(--navy); transition: transform .2s ease; }
.faq summary::after { transform: rotate(90deg); }
.faq details[open] summary::after { transform: rotate(0deg); }
.faq__body { padding: 0 0 22px; color: var(--ink-soft); max-width: 40em; }
.faq__body p { margin-bottom: .8em; }
.faq-group + .faq-group { margin-top: 64px; }
.toc { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
.toc li { border-bottom: 1px solid var(--rule); }
.toc a { display: block; padding: 12px 0; font: 500 1rem var(--head); text-decoration: none; }
.toc a:hover { color: var(--blue); }

/* ---------- Forms ---------- */
.form-card { background: var(--paper); border: 1px solid var(--rule-strong); border-radius: 8px; padding: 26px; color: var(--navy); }
@media (min-width: 760px) { .form-card { padding: 40px; } }
.section--navy .form-card, .section--navy .form-card a { color: var(--navy); }
.field { display: grid; gap: 6px; margin-bottom: 22px; }
.field label, .field legend { font: 600 .95rem var(--head); }
.field .hint { font-size: .88rem; color: var(--ink-soft); margin: 0; }
.opt { font-weight: 400; color: var(--ink-soft); font-family: var(--text); }
.req { color: var(--error); }
input[type="text"], input[type="email"], input[type="tel"], select, textarea {
  width: 100%; font: inherit; font-size: 1rem; color: var(--navy);
  background: var(--white); border: 1px solid rgba(8,61,145,.35); border-radius: var(--r);
  padding: 12px 14px; min-height: 50px;
}
textarea { min-height: 130px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--blue); outline-offset: 1px; border-color: var(--navy); }
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: var(--error); }
.error-msg { color: var(--error); font-weight: 500; font-size: .9rem; margin: 0; }
.error-msg:empty { display: none; }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.choices { display: grid; gap: 8px; }
@media (min-width: 640px) { .choices--2 { grid-template-columns: 1fr 1fr; } }
.choice { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--rule-strong); border-radius: var(--r); background: var(--white); cursor: pointer; font: 400 .98rem/1.45 var(--text); }
.choice:has(input:checked) { border-color: var(--navy); background: #EEF6F4; }
.choice input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--navy); flex: none; }
.choice--bare { border: 0; background: transparent; padding: 4px 0; }
.choice--bare:has(input:checked) { background: transparent; }
.form-row { display: grid; gap: 0 20px; }
@media (min-width: 640px) { .form-row { grid-template-columns: 1fr 1fr; } }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-status { margin-top: 16px; padding: 14px 16px; border-radius: var(--r); font-weight: 500; }
.form-status:empty { display: none; }
.form-status.is-error { background: #FCE9DD; border: 1px solid var(--error); color: var(--error); }
.form-success h3 { font-size: 1.5rem; margin-bottom: 8px; }
.form-legal { font-size: .85rem; color: var(--ink-soft); margin-top: 14px; }

/* ---------- Locations (future structure) ---------- */
.empty-state { border: 1px dashed var(--rule-strong); border-radius: 8px; padding: 32px; background: var(--paper); }
.empty-state h3 { margin-bottom: 8px; }

/* ---------- Legal pages ---------- */
.legal { max-width: 44em; }
.legal h2 { font-size: clamp(1.35rem, 2.2vw, 1.7rem); margin: 48px 0 14px; }
.legal h2:first-child { margin-top: 0; }
.legal ul { margin-bottom: 1em; }
.legal li + li { margin-top: 6px; }

/* ---------- Footer ---------- */
.site-footer { background: var(--navy-deep); color: var(--cream); position: relative; overflow: hidden; }
.site-footer a { color: var(--cream); text-decoration-color: rgba(251,244,230,.35); }
.site-footer a:hover { text-decoration-color: var(--yellow); }
.site-footer__inner { display: grid; gap: 36px; padding-block: 64px 28px; position: relative; z-index: 1; }
@media (min-width: 900px) { .site-footer__inner { grid-template-columns: 4fr 2fr 2fr 3fr; } }
.footer-name { font: 700 1.2rem/1.2 var(--head); letter-spacing: -0.02em; color: var(--white); margin: 0 0 10px; }
.site-footer p { color: rgba(251,244,230,.8); max-width: 26em; }
.footer-label { font: 600 .9rem var(--head); color: var(--yellow); margin: 0 0 12px; }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.site-footer__base { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 22px; border-top: 1px solid rgba(251,244,230,.18); font-size: .88rem; color: rgba(251,244,230,.7); }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; } }
.split > .kicker { align-self: start; }
.nav a.btn { border: 1px solid var(--rule-strong); padding: 9px 16px; }
.nav a.btn:hover { border-color: var(--navy); color: var(--navy); }
.nav a.btn[aria-current="page"] { border-color: var(--navy); background: var(--paper); }

/* =========================================================
   v6: "Pet Smiles, evolved" design layer (approved homepage)
   Overrides earlier rules; shared by every page.
   ========================================================= */
:root {
  --teal-tint: #DDF3EE; --blue-tint: #E3EFFB; --orange-tint: #FFE9D4; --yellow-tint: #FFF1C9;
  --r: 12px; --card-r: 18px;
  --shadow: 0 1px 2px rgba(6,46,110,.06), 0 10px 30px -12px rgba(6,46,110,.18);
}
h1 { font-weight: 800; font-size: clamp(2.4rem, 5.4vw, 4.4rem); line-height: 1.03; letter-spacing: -0.035em; }
h2 { font-weight: 800; font-size: clamp(1.9rem, 3.6vw, 2.9rem); line-height: 1.07; letter-spacing: -0.03em; }
h3 { font-weight: 700; }
.kicker { font: 700 .82rem/1.2 var(--head); letter-spacing: .1em; text-transform: uppercase; color: var(--teal-ink); }
.kicker::before { display: none; }
.section--navy .kicker { color: var(--yellow); }
.statement { font-weight: 600; }

/* Buttons */
.btn { border-radius: 12px; font-weight: 700; min-height: 52px; padding: 13px 24px; border-width: 2px; }
.btn--go { background: var(--orange); color: var(--navy-deep); box-shadow: 0 6px 16px -6px rgba(255,122,0,.6); }
.btn--go:hover { background: #FF8A1F; transform: translateY(-1px); }
.btn--line { border-color: rgba(8,61,145,.3); }
.btn--line:hover { background: var(--paper); }

/* Header + nav */
.site-header__inner { min-height: 84px; }
.brand img { height: 64px; width: auto; }
.nav ul { gap: 24px; }
.nav a { font-weight: 600; }
.nav a.nav-quiet { color: var(--ink-soft); font-weight: 500; padding-left: 22px; border-left: 1px solid var(--rule); border-bottom: 0; }
.nav a.nav-quiet[aria-current="page"] { color: var(--navy); }
.nav a.btn { border: 2px solid transparent; padding: 10px 18px; min-height: 44px; font-size: .95rem; }
.nav a.btn:hover { color: var(--navy-deep); border-color: transparent; }
.menu-btn { border-width: 2px; border-radius: 12px; font-weight: 700; }
@media (min-width: 1060px) { .nav { display: none; } .menu-btn { display: inline-flex; } }
@media (min-width: 1180px) { .nav { display: block; } .menu-btn { display: none; } }
.menu-panel__top img { height: 54px; width: auto; }
.menu-panel a.menu-cta { display: flex; margin-top: 20px; font-size: 1.1rem; }
.menu-panel li:has(.menu-cta) { border-bottom: 0; }

/* Cards and shared pieces */
.callout, .status-panel, .form-card, .empty-state, .report { border-radius: var(--card-r); }
.form-card { box-shadow: var(--shadow); border-color: transparent; }

/* Footer */
.foot-logo { display: inline-block; background: var(--cream); border-radius: 14px; padding: 8px 12px; }
.foot-logo img { height: 64px; width: auto; }
.foot-tag { font: 700 1.1rem/1.3 var(--head); color: var(--white) !important; margin: 16px 0 6px; }
@media (min-width: 900px) { .site-footer__inner { grid-template-columns: 4fr 2fr 2fr 3fr; } }

/* ---------- Homepage ---------- */
.eyebrow { font: 700 .82rem/1.2 var(--head); letter-spacing: .1em; text-transform: uppercase; color: var(--teal-ink); display: block; margin: 0 0 14px; }
.lead2 { font-size: clamp(1.06rem, 1.5vw, 1.2rem); color: var(--ink-soft); max-width: 36em; margin: 0; }
.center { text-align: center; } .center .lead2 { margin-inline: auto; }
.head-block { display: grid; gap: 14px; margin-bottom: 44px; }
.head-block h2, .head-block p { margin: 0; }

.home-hero { padding-block: clamp(36px, 6vw, 80px) clamp(56px, 8vw, 96px); overflow: hidden; }
.home-hero__grid { display: grid; gap: 48px; align-items: center; }
@media (min-width: 980px) { .home-hero__grid { grid-template-columns: 1.02fr 1fr; gap: 56px; } }
.home-hero__copy { display: grid; gap: 24px; min-width: 0; }
.home-hero__copy p, .home-hero__copy h1 { margin: 0; }
.home-hero h1 span { color: var(--teal-ink); }
.home-hero .lead2 { color: var(--navy); }
.soon { display: flex; align-items: baseline; gap: 10px; font: 600 .95rem/1.45 var(--head); color: var(--ink-soft); }
.soon i { width: 9px; height: 9px; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 0 5px var(--yellow-tint); flex: none; transform: translateY(-1px); }

.hero-visual { position: relative; min-width: 0; padding: 0 0 40px 0; }
.hero-visual .sun { position: absolute; right: -40px; top: -30px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, var(--yellow), var(--orange)); opacity: .9; }
.hero-photo { position: relative; border-radius: 28px; overflow: hidden; aspect-ratio: 4 / 4.4; max-width: 520px; margin-left: auto; box-shadow: var(--shadow); background: linear-gradient(160deg, #CFE6F7 0%, #BFE4DD 55%, #E9D9BF 100%); }
.hero-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-photo .mtn { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 38%; }
.hero-photo .photo-tag { position: absolute; left: 16px; top: 16px; right: 16px; background: rgba(255,252,246,.92); border-radius: 12px; padding: 10px 14px; font-size: .82rem; line-height: 1.35; color: var(--ink-soft); }
.hero-photo.has-photo .mtn, .hero-photo.has-photo .photo-tag { display: none; }
.float-card { position: absolute; left: 0; bottom: 0; width: min(300px, 74%); background: var(--white); border-radius: 18px; box-shadow: var(--shadow); padding: 18px 20px; }
.float-card .t { font: 700 .95rem var(--head); display: flex; justify-content: space-between; align-items: center; gap: 10px; margin: 0 0 10px; }
.sample-tag { font: 700 .7rem/1 var(--head); color: var(--teal-ink); background: var(--teal-tint); padding: 5px 8px; border-radius: 6px; letter-spacing: .03em; white-space: nowrap; }
.float-card ul { list-style: none; margin: 0; padding: 0; font-size: .86rem; line-height: 1.4; color: var(--ink-soft); }
.float-card li { display: flex; gap: 8px; align-items: baseline; padding: 4px 0; }
.float-card li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--teal); flex: none; transform: translateY(-1px); }
.float-card li.flag::before { background: var(--orange); }

.glance { background: var(--navy); color: var(--cream); }
.glance__title { font: 700 .78rem/1 var(--head); letter-spacing: .1em; text-transform: uppercase; color: var(--yellow); padding-top: 26px; margin: 0; }
.glance__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; padding-block: 18px 30px; }
@media (min-width: 900px) { .glance__grid { grid-template-columns: repeat(4, 1fr); } }
.glance__grid > div { display: flex; gap: 14px; align-items: center; min-width: 0; }
.glance svg { width: 42px; height: 42px; flex: none; }
.glance b { display: block; font: 800 1.12rem/1.15 var(--head); color: var(--white); }
.glance p { margin: 0; }
.glance span { font-size: .88rem; color: rgba(251,244,230,.78); line-height: 1.35; display: block; }

.hcards { display: grid; gap: 20px; }
@media (min-width: 700px) { .hcards { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1060px) { .hcards { grid-template-columns: repeat(4, 1fr); } }
.hcard { background: var(--white); border-radius: var(--card-r); padding: 28px 24px; box-shadow: var(--shadow); display: grid; gap: 12px; align-content: start; min-width: 0; }
.hcard h3 { margin: 0; }
.hcard p { color: var(--ink-soft); font-size: .98rem; margin: 0; }
.ic { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; }
.ic svg { width: 28px; height: 28px; }

.tooth-sec { background: var(--paper); border-block: 1px solid var(--rule); }
.tooth-sec__grid { display: grid; gap: 40px; align-items: center; }
@media (min-width: 980px) { .tooth-sec__grid { grid-template-columns: 1fr 1fr; gap: 64px; } }
.tooth-fig { background: var(--white); border-radius: 28px; box-shadow: var(--shadow); padding: 20px; margin: 0; }
.tooth-fig svg { width: 100%; height: auto; display: block; }
.zone { display: grid; grid-template-columns: 14px 1fr; gap: 14px; padding: 16px 0; border-top: 1px solid var(--rule); }
.zone:last-of-type { border-bottom: 1px solid var(--rule); }
.zone i { width: 14px; height: 14px; border-radius: 4px; margin-top: 6px; }
.zone b { font: 700 1.06rem var(--head); display: block; margin-bottom: 2px; }
.zone span { color: var(--ink-soft); font-size: .98rem; }
.zone p { margin: 0; }

.hsteps { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; counter-reset: s; position: relative; }
@media (min-width: 900px) { .hsteps { grid-template-columns: repeat(4, 1fr); } .hsteps::before { content: ""; position: absolute; top: 30px; left: 12%; right: 12%; border-top: 2px dashed rgba(8,61,145,.25); } .hsteps li { text-align: center; justify-items: center; } }
.hsteps li { counter-increment: s; position: relative; display: grid; gap: 10px; align-content: start; }
.hsteps li::before { content: counter(s); width: 60px; height: 60px; border-radius: 50%; display: grid; place-items: center; font: 800 1.4rem var(--head); background: var(--white); color: var(--navy); box-shadow: var(--shadow); border: 3px solid var(--teal); position: relative; z-index: 1; }
.hsteps li:nth-child(2)::before { border-color: var(--blue); }
.hsteps li:nth-child(3)::before { border-color: var(--yellow); }
.hsteps li:nth-child(4)::before { border-color: var(--orange); }
.hsteps h3 { margin: 0; }
.hsteps p { color: var(--ink-soft); font-size: .96rem; max-width: 22em; margin: 0; }

.fit { display: grid; gap: 20px; }
@media (min-width: 860px) { .fit { grid-template-columns: 1fr 1fr; } }
.fit-card { border-radius: var(--card-r); padding: 30px 28px; min-width: 0; }
.fit-card--yes { background: var(--teal-tint); }
.fit-card--vet { background: var(--orange-tint); }
.fit-card h3 { font-size: 1.32rem; margin: 0 0 14px; display: flex; align-items: center; gap: 12px; }
.fit-card h3 svg { width: 30px; height: 30px; flex: none; }
.fit-card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.fit-card li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; }
.fit-card li svg { width: 20px; height: 20px; margin-top: 3px; }

.rc-sec { background: var(--paper); border-block: 1px solid var(--rule); }
/* (old .rc layout rule retired in v12) */

.rcard { background: var(--white); border-radius: 22px; box-shadow: var(--shadow); padding: 28px; transform: rotate(-1.2deg); margin: 0; }
.rcard__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--rule); margin-bottom: 16px; }
.rcard__top b { font: 800 1.2rem var(--head); }
.rgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; font-size: .9rem; margin-bottom: 14px; }
.rgrid span { display: block; color: var(--ink-soft); font-size: .78rem; }
.rcard h4 { font: 700 .92rem var(--head); margin: 10px 0 2px; }
.rcard p { color: var(--ink-soft); font-size: .92rem; margin: 0; }
.rcard .chart i { width: 18px; height: 22px; }
.rcard figcaption { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--rule-strong); font-size: .8rem; color: var(--ink-soft); }
.tips { display: grid; gap: 14px; margin-top: 26px; }
@media (min-width: 600px) { .tips { grid-template-columns: 1fr 1fr; } }
.tip { background: var(--white); border-radius: 14px; padding: 16px 18px; box-shadow: var(--shadow); }
.tip b { font: 700 1rem var(--head); display: block; margin-bottom: 2px; }
.tip span { color: var(--ink-soft); font-size: .92rem; line-height: 1.45; display: block; }

.find { background: var(--white); border-block: 1px solid var(--rule); }
.find__grid { display: grid; gap: 36px; align-items: center; }
@media (min-width: 980px) { .find__grid { grid-template-columns: 1.1fr 1fr; gap: 64px; } }
.find__copy { display: grid; gap: 18px; }
.find__copy h2, .find__copy p { margin: 0; }
.find__status { background: var(--cream); border-radius: 22px; padding: 28px; border: 1px solid var(--rule); display: grid; gap: 14px; position: relative; overflow: hidden; }
.find__status::after { content: ""; position: absolute; right: -50px; top: -50px; width: 150px; height: 150px; border-radius: 50%; background: radial-gradient(circle at 40% 40%, var(--yellow), var(--orange)); opacity: .25; }
.find__badge { display: inline-flex; justify-self: start; align-items: center; gap: 10px; font: 800 1.12rem var(--head); background: var(--white); border-radius: 999px; padding: 10px 18px; box-shadow: var(--shadow); position: relative; z-index: 1; margin: 0; }
.find__badge i { width: 10px; height: 10px; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 0 4px var(--yellow-tint); }
.find__status > p { color: var(--ink-soft); position: relative; z-index: 1; margin: 0; }
.find__steps { margin: 0; padding-left: 22px; display: grid; gap: 6px; color: var(--ink-soft); font-size: .95rem; position: relative; z-index: 1; }
.find__steps b { font-weight: 600; color: var(--navy); }

.hfaq { max-width: 860px; margin-inline: auto; display: grid; gap: 12px; }
.hfaq details { background: var(--white); border-radius: 14px; box-shadow: var(--shadow); padding: 0 22px; }
.hfaq summary { cursor: pointer; list-style: none; font: 700 1.06rem/1.35 var(--head); padding: 20px 40px 20px 0; position: relative; }
.hfaq summary::-webkit-details-marker { display: none; }
.hfaq summary::after { content: "+"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border-radius: 50%; background: var(--teal-tint); color: var(--teal-ink); display: grid; place-items: center; font-size: 1.3rem; font-weight: 700; }
.hfaq details[open] summary::after { content: "–"; background: var(--orange-tint); color: var(--navy); }
.hfaq details p { padding-bottom: 20px; color: var(--ink-soft); margin: 0; }

.vets-mini__box { background: var(--paper); border: 1px solid var(--rule); border-radius: 20px; padding: 26px 30px; display: grid; gap: 18px; align-items: center; }
@media (min-width: 900px) { .vets-mini__box { grid-template-columns: 1fr auto; gap: 40px; } }
.vets-mini__box h3 { font-size: 1.3rem; margin: 0 0 4px; }
.vets-mini__box p { color: var(--ink-soft); margin: 0; }

.close-box { background: linear-gradient(120deg, var(--teal-tint), var(--blue-tint)); border-radius: 28px; padding: clamp(36px, 6vw, 64px); display: grid; gap: 24px; position: relative; overflow: hidden; }
@media (min-width: 900px) { .close-box { grid-template-columns: 1.4fr 1fr; align-items: center; } }
.close-box .sun2 { position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle at 40% 40%, var(--yellow), var(--orange)); opacity: .35; }
.close-box > * { position: relative; }
.close-box h2, .close-box p { margin: 0; }

/* =========================================================
   v7: "Dental studio" refinement
   Calm, clinical clarity: lighter ground, hairlines over shadows,
   navy primary actions, sunset orange as a small accent only.
   ========================================================= */
:root { --ground: #FFFDF8; --band: #F7F1E6; --line: rgba(8,61,145,.12); --line-strong: rgba(8,61,145,.24); }
body { background: var(--ground); }
h1 { font-weight: 700; letter-spacing: -0.03em; }
h2 { font-weight: 700; letter-spacing: -0.025em; }
.site-header { background: rgba(255,253,248,.96); }
.section--paper { background: var(--band); }
body::before { background: var(--ground); }

/* Actions: navy primary, quiet secondary */
.btn--primary { background: var(--navy); color: var(--white); box-shadow: none; }
.btn--primary:hover { background: var(--navy-deep); }
.btn--line { background: transparent; border-color: var(--line-strong); }
.form-card { box-shadow: none; border: 1px solid var(--line-strong); }

.s-label { font: 600 .9rem/1.3 var(--head); color: var(--teal-ink); margin: 0 0 12px; }
.s-label::before { content: ""; display: inline-block; width: 18px; height: 2px; background: var(--orange); vertical-align: middle; margin-right: 10px; transform: translateY(-2px); }
.s-lead { font-size: clamp(1.06rem, 1.45vw, 1.18rem); line-height: 1.6; color: var(--ink-soft); max-width: 36em; margin: 0; }
.s-head { display: grid; gap: 12px; margin-bottom: 48px; max-width: 44em; }
.s-head h2, .s-head p { margin: 0; }
.s-band { background: var(--band); }
.s-split { display: grid; gap: 40px; }
@media (min-width: 980px) { .s-split { grid-template-columns: 5fr 7fr; gap: 80px; } .s-split--center { align-items: center; } }
.s-tag { font: 600 .74rem/1 var(--head); color: var(--teal-ink); background: var(--teal-tint); padding: 6px 9px; border-radius: 999px; white-space: nowrap; }
.s-tag--soon { color: #8A5A00; background: var(--yellow-tint); }

/* Hero */
.s-hero { padding-block: clamp(40px, 6vw, 88px) clamp(56px, 8vw, 104px); }
.s-hero__grid { display: grid; gap: 52px; align-items: center; }
@media (min-width: 980px) { .s-hero__grid { grid-template-columns: 1fr 1fr; gap: 72px; } }
.s-hero__copy { display: grid; gap: 22px; min-width: 0; }
.s-hero__copy h1, .s-hero__copy p { margin: 0; }
.s-hero__copy .s-lead { color: var(--navy); }
.s-status { display: flex; gap: 10px; align-items: baseline; font-size: .95rem; color: var(--ink-soft); padding-top: 18px; border-top: 1px solid var(--line); max-width: 34em; }
.s-status i { width: 8px; height: 8px; border-radius: 50%; background: var(--orange); flex: none; transform: translateY(-1px); }
.s-hero__media { position: relative; min-width: 0; padding-bottom: 36px; }
.s-photo { position: relative; aspect-ratio: 4 / 4.6; max-width: 520px; margin-left: auto; border-radius: 22px; overflow: hidden; background: linear-gradient(170deg, #EEF3F2 0%, #E6ECEA 60%, #EFE7DA 100%); }
.s-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.s-photo__note { position: absolute; left: 18px; top: 18px; font-size: .82rem; color: var(--ink-soft); background: rgba(255,253,248,.9); padding: 7px 11px; border-radius: 8px; }
.s-photo.has-photo .s-photo__note { display: none; }
.s-summary { position: absolute; left: 0; bottom: 0; width: min(310px, 78%); background: var(--white); border: 1px solid var(--line); border-radius: 16px; padding: 18px 20px; margin: 0; box-shadow: 0 18px 40px -24px rgba(6,46,110,.35); }
.s-summary__head { display: flex; justify-content: space-between; align-items: center; margin: 0 0 10px; font: 600 .98rem var(--head); }
.s-summary dl, .s-report dl { margin: 0; }
.s-summary dl > div { display: grid; grid-template-columns: 82px 1fr; gap: 10px; padding: 7px 0; border-top: 1px solid var(--line); font-size: .86rem; }
.s-summary dt, .s-report dt { color: var(--ink-soft); }
.s-summary dd, .s-report dd { margin: 0; color: var(--navy); }
.s-summary dd.flag { color: #B04A00; }

/* Facts row */
.s-facts { border-block: 1px solid var(--line); background: var(--white); }
.s-facts__row { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; }
@media (min-width: 900px) { .s-facts__row { grid-template-columns: repeat(4, 1fr); } }
.s-facts__row li { padding: 24px 22px; border-left: 1px solid var(--line); display: grid; gap: 2px; }
.s-facts__row li:nth-child(odd) { border-left: 0; }
@media (min-width: 900px) { .s-facts__row li:nth-child(odd) { border-left: 1px solid var(--line); } .s-facts__row li:first-child { border-left: 0; padding-left: 0; } }
@media (max-width: 899px) { .s-facts__row li:nth-child(n+3) { border-top: 1px solid var(--line); } .s-facts__row li:nth-child(odd) { padding-left: 0; } }
.s-facts b { font: 600 1.05rem/1.3 var(--head); }
.s-facts span { font-size: .9rem; color: var(--ink-soft); }

/* Approach points */
.s-points { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 48px; }
@media (min-width: 700px) { .s-points { grid-template-columns: 1fr 1fr; } }
.s-points li { padding: 22px 0; border-top: 1px solid var(--line-strong); }
.s-points h3 { font-size: 1.12rem; margin: 0 0 6px; }
.s-points p { color: var(--ink-soft); margin: 0; font-size: .98rem; }

/* Education */
.s-edu { display: grid; gap: 48px; align-items: center; }
@media (min-width: 980px) { .s-edu { grid-template-columns: 1fr 1fr; gap: 80px; } }
.s-figure { margin: 0; background: var(--white); border: 1px solid var(--line); border-radius: 22px; padding: 18px; }
.s-figure svg { width: 100%; height: auto; display: block; }
.s-figure figcaption { font-size: .85rem; color: var(--ink-soft); padding: 12px 6px 2px; }
.s-list { margin: 26px 0 0; border-top: 1px solid var(--line-strong); }
.s-list > div { display: grid; grid-template-columns: 160px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
@media (max-width: 560px) { .s-list > div { grid-template-columns: 1fr; gap: 2px; } }
.s-list dt { font: 600 .98rem var(--head); display: flex; gap: 8px; align-items: center; }
.s-list dt i { width: 10px; height: 10px; border-radius: 3px; flex: none; }
.s-list dd { margin: 0; color: var(--ink-soft); font-size: .97rem; }
.s-note { margin: 18px 0 0; font-size: .95rem; color: var(--navy); border-left: 2px solid var(--orange); padding-left: 14px; }

/* Visit flow */
.s-flow { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--line-strong); }
@media (min-width: 900px) { .s-flow { grid-template-columns: repeat(4, 1fr); gap: 32px; border-top: 0; } }
.s-flow li { padding: 22px 0; border-bottom: 1px solid var(--line); display: grid; gap: 6px; align-content: start; }
@media (min-width: 900px) { .s-flow li { border-bottom: 0; border-top: 2px solid var(--navy); padding-top: 20px; } .s-flow li:first-child { border-top-color: var(--teal); } }
.s-flow span { font: 600 .85rem var(--head); color: var(--teal-ink); }
.s-flow h3 { font-size: 1.12rem; margin: 0; }
.s-flow p { color: var(--ink-soft); margin: 0; font-size: .97rem; }

/* Eligibility */
.s-fit { display: grid; gap: 20px; }
@media (min-width: 860px) { .s-fit { grid-template-columns: 1fr 1fr; gap: 28px; } }
.s-fit > div { background: var(--white); border: 1px solid var(--line); border-radius: 18px; padding: 26px 28px; }
.s-fit h3 { font-size: 1.15rem; margin: 0 0 12px; }
.s-fit ul { list-style: none; margin: 0; padding: 0; }
.s-fit li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); }
.s-fit li svg { width: 20px; height: 20px; margin-top: 3px; }
.s-ticks { list-style: none; margin: 22px 0 0; padding: 0; }
.s-ticks li { padding: 9px 0 9px 26px; border-top: 1px solid var(--line); position: relative; }
.s-ticks li::before { content: ""; position: absolute; left: 2px; top: 16px; width: 10px; height: 6px; border-left: 2px solid var(--teal-ink); border-bottom: 2px solid var(--teal-ink); transform: rotate(-45deg); }

/* Report */
.s-report { margin: 0; background: var(--white); border: 1px solid var(--line-strong); border-radius: 20px; padding: 28px; box-shadow: 0 24px 50px -36px rgba(6,46,110,.4); }
.s-report__top { display: flex; justify-content: space-between; align-items: center; padding-bottom: 14px; border-bottom: 1px solid var(--line-strong); margin-bottom: 4px; font: 600 1.15rem var(--head); }
.s-report__meta { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }
.s-report__meta > div { padding: 10px 0; border-bottom: 1px solid var(--line); font-size: .92rem; }
.s-report__meta dt { font-size: .78rem; }
.s-report__h { font: 600 .9rem var(--head); margin: 16px 0 4px; }
.s-report p { color: var(--ink-soft); font-size: .93rem; margin: 0; }
.s-report .chart { margin: 4px 0 8px; }
.s-report figcaption { margin-top: 16px; padding-top: 12px; border-top: 1px dashed var(--line-strong); font-size: .8rem; color: var(--ink-soft); }

/* Booking preview */
.s-booker { background: var(--white); border: 1px solid var(--line-strong); border-radius: 20px; padding: 26px; display: grid; gap: 12px; }
.s-booker__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; font: 600 1.12rem var(--head); padding-bottom: 6px; }
.s-booker__field { border: 1px solid var(--line-strong); border-radius: 12px; padding: 10px 14px; background: #FBFAF7; }
.s-booker__field span { display: block; font-size: .78rem; color: var(--ink-soft); }
.s-booker__field p { margin: 0; color: var(--ink-soft); font-size: .96rem; }
.s-booker__btn { margin: 6px 0 0; text-align: center; font: 600 1rem var(--head); color: var(--ink-soft); background: #EEF0F2; border-radius: 12px; padding: 14px; }
.s-booker__note { margin: 0; font-size: .82rem; color: var(--ink-soft); text-align: center; }

/* Secondary vets row + close */
.s-vets { border-top: 1px solid var(--line); }
.s-vets__row { display: grid; gap: 14px; align-items: center; }
@media (min-width: 900px) { .s-vets__row { grid-template-columns: 1fr auto; gap: 40px; } }
.s-vets__row p { margin: 0; color: var(--ink-soft); max-width: 52em; }
.s-vets__row b { color: var(--navy); }
.s-close { background: var(--band); }
.s-close__inner { display: grid; gap: 16px; justify-items: start; max-width: 760px; }
.s-close__inner h2 { margin: 0; }

/* Global calm-down for other pages */
.hcard, .tip, .hfaq details, .rcard, .find__badge, .float-card { box-shadow: none; border: 1px solid var(--line); }
.empty-state { background: var(--white); }


/* =========================================================
   v8: V3 color + V4 clarity
   Cream foundation, orange booking actions, navy information bands,
   tinted turquoise / blue / warm orange panels where they carry meaning.
   ========================================================= */
:root { --ground: var(--cream); --band: #F4EBDB; }
body, body::before { background: var(--cream); }
.site-header { background: rgba(251,244,230,.96); }
h1 { font-weight: 800; letter-spacing: -0.035em; }
h2 { font-weight: 800; letter-spacing: -0.03em; }
.s-label { font-weight: 700; }
.btn--go { background: var(--orange); color: var(--navy-deep); box-shadow: 0 8px 18px -10px rgba(255,122,0,.75); }
.btn--go:hover { background: #FF8A1F; color: var(--navy-deep); }
.nav a.btn--go:hover { color: var(--navy-deep); }

/* Hero */
.s-sun { position: absolute; right: -36px; top: -34px; width: 200px; height: 200px; border-radius: 50%; background: var(--yellow); }
.s-sun::after { content: ""; position: absolute; inset: 36px 0 0 36px; border-radius: 50%; background: var(--orange); opacity: .55; }
.s-photo { background: var(--blue-tint); z-index: 1; }
.s-summary { z-index: 2; border-color: transparent; }
.s-status i { background: var(--yellow); box-shadow: 0 0 0 4px var(--yellow-tint); }

/* Navy facts band */
.s-facts { background: var(--navy); border: 0; color: var(--cream); }
.s-facts__row li { border-color: rgba(251,244,230,.16) !important; position: relative; padding-top: 30px; }
.s-facts__row li::before { content: ""; position: absolute; top: 18px; left: 22px; width: 28px; height: 4px; border-radius: 2px; background: var(--c); }
@media (min-width: 900px) { .s-facts__row li:first-child::before { left: 0; } }
@media (max-width: 899px) { .s-facts__row li:nth-child(odd)::before { left: 0; } }
.s-facts__row li:nth-child(1) { --c: var(--teal); }
.s-facts__row li:nth-child(2) { --c: var(--blue); }
.s-facts__row li:nth-child(3) { --c: var(--yellow); }
.s-facts__row li:nth-child(4) { --c: var(--orange); }
.s-facts b { color: var(--white); }
.s-facts span { color: rgba(251,244,230,.78); }

/* Approach: colored rules */
.s-points li { border-top: 3px solid var(--c, var(--teal)); }
.s-points li:nth-child(1) { --c: var(--teal); }
.s-points li:nth-child(2) { --c: var(--blue); }
.s-points li:nth-child(3) { --c: var(--orange); }
.s-points li:nth-child(4) { --c: var(--yellow); }
.s-points li:nth-child(5) { --c: var(--navy); }

/* Tinted sections */
.s-teal { background: var(--teal-tint); }
.s-blue { background: var(--blue-tint); }
.s-warm { background: var(--orange-tint); }
.s-teal .s-figure { border-color: transparent; }
.s-teal .s-list { border-top-color: rgba(0,124,118,.35); }
.s-teal .s-list > div { border-bottom-color: rgba(0,124,118,.2); }
.s-teal .s-note { background: rgba(255,255,255,.6); padding: 12px 16px; border-radius: 0 10px 10px 0; }

/* Visit flow: colored step bars */
@media (min-width: 900px) {
  .s-flow li { border-top-width: 4px; }
  .s-flow li:nth-child(1) { border-top-color: var(--teal); }
  .s-flow li:nth-child(2) { border-top-color: var(--blue); }
  .s-flow li:nth-child(3) { border-top-color: var(--yellow); }
  .s-flow li:nth-child(4) { border-top-color: var(--orange); }
}
.s-flow span { font-size: 1.6rem; font-weight: 800; color: var(--navy); line-height: 1; }

/* Eligibility panels */
.s-fit > div { border: 0; }
.s-fit__yes { background: var(--teal-tint) !important; }
.s-fit__vet { background: var(--orange-tint) !important; }
.s-fit__yes li { border-top-color: rgba(0,124,118,.2); }
.s-fit__vet li { border-top-color: rgba(194,90,0,.18); }
.s-fit h3 { font-size: 1.3rem; }

/* Report on light blue */
.s-blue .s-report { border-color: transparent; }
.s-blue .s-ticks li { border-top-color: rgba(8,61,145,.15); }

/* Booking on navy */
.s-navy { background: var(--navy); color: var(--cream); }
.s-navy h2 { color: var(--white); }
.s-navy .s-label { color: var(--yellow); }
.s-navy .s-lead { color: rgba(251,244,230,.86); }
.s-navy .s-booker { border-color: transparent; }

/* Close */
.s-close.s-warm { background: var(--orange-tint); }
.s-vets { background: var(--cream); }
@media (min-width: 700px) { .s-points__wide { grid-column: 1 / -1; } }
.s-hero { overflow: hidden; }
.s-navy .s-booker { color: var(--navy); }

.s-fit__sub { font: 700 .82rem/1.2 var(--head); text-transform: uppercase; letter-spacing: .06em; color: #8A3A00; margin: 14px 0 4px; }
.s-fit__sub:first-of-type { margin-top: 0; }
.s-fit__no { font-weight: 600; color: var(--navy); }
.s-fit__vet ul + .s-fit__sub { margin-top: 16px; }

.s-fit__intro { color: var(--navy); font-size: .98rem; margin: 0 0 16px; }
.s-fit__urgent { margin: 18px 0 0; padding: 12px 14px; background: rgba(255,255,255,.65); border-radius: 10px; font-size: .92rem; color: var(--navy); }
.s-fit__vet ul + .s-fit__sub { margin-top: 16px; }
@media (min-width: 700px) { .s-points__wide { grid-column: auto; } }

/* =========================================================
   v9: soft white + pale ice blue grounds
   Soft white: page, hero, booking, FAQ. Ice blue: education,
   appointment flow, visit summary. Navy, orange, turquoise,
   and sunset accents unchanged.
   ========================================================= */
:root { --white-soft: #FAFCFD; --ice: #F0F9FC; --ice-line: rgba(0,148,255,.16); }
body, body::before, .menu-panel { background: var(--white-soft); }
.site-header { background: rgba(250,252,253,.96); }
.s-vets { background: var(--white-soft); }
.section--paper { background: var(--ice); }

.s-ice { background: var(--ice); border-block: 1px solid var(--ice-line); }
.s-ice .s-figure, .s-ice .s-report { border-color: var(--ice-line); }
.s-ice .s-list { border-top-color: rgba(8,61,145,.25); }
.s-ice .s-list > div { border-bottom-color: rgba(8,61,145,.12); }
.s-ice .s-note { background: var(--white); padding: 12px 16px; border-radius: 0 10px 10px 0; }
.s-ice .s-ticks li { border-top-color: rgba(8,61,145,.14); }
.s-ice--alt + .section .s-head { margin-top: 0; }

/* Booking on soft white, with a strong navy-framed booking card */
.s-book { background: var(--white-soft); }
.s-book .s-booker { border: 2px solid var(--navy); box-shadow: 0 24px 50px -34px rgba(6,46,110,.45); }
.s-book .s-booker__top { background: var(--navy); color: var(--white); margin: -26px -26px 6px; padding: 16px 26px; border-radius: 17px 17px 0 0; }

/* Keep tinted panels vivid against white */
.s-fit__yes { background: var(--teal-tint) !important; }
.s-fit__vet { background: var(--orange-tint) !important; }
.s-photo { background: var(--ice); border: 1px solid var(--ice-line); }
.s-fit__how { background: var(--blue-tint); border-radius: 18px; padding: 26px 28px; }
.s-fit__how h3 { font-size: 1.3rem; margin: 0 0 14px; }
.s-fit__how ol { list-style: none; counter-reset: h; margin: 0; padding: 0; }
.s-fit__how li { counter-increment: h; display: grid; grid-template-columns: 40px 1fr; gap: 2px 14px; padding: 14px 0; border-top: 1px solid rgba(8,61,145,.14); }
.s-fit__how li::before { content: counter(h); grid-row: span 2; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font: 800 1rem var(--head); color: var(--white); background: var(--navy); }
.s-fit__how b { font: 700 1.05rem var(--head); }
.s-fit__how span { color: var(--ink-soft); font-size: .96rem; }
.s-fit > .s-fit__how { background: var(--blue-tint); border: 0; }

/* =========================================================
   v10: booking demo, staging banner, request-a-clinic
   ========================================================= */
.staging-bar { background: var(--yellow); color: var(--navy-deep); font: 600 .86rem/1.4 var(--head); text-align: center; padding: 7px 16px; }
.staging-bar a { color: inherit; }
.demo-banner { background: var(--yellow-tint); border-bottom: 1px solid rgba(138,90,0,.25); color: #5E3D00; font-size: .95rem; padding: 12px 0; }
.demo-banner strong { font-family: var(--head); }

@media (min-width: 640px) { .choices--3 { grid-template-columns: repeat(3, 1fr); } }

.bk { background: var(--white); border: 2px solid var(--navy); border-radius: 20px; padding: clamp(18px, 4vw, 40px); box-shadow: 0 24px 50px -38px rgba(6,46,110,.45); max-width: 920px; }
.bk h2 { font-size: clamp(1.45rem, 3vw, 1.9rem); margin-bottom: 16px; outline: none; }
.bk h3 { font-size: 1.12rem; margin-bottom: 8px; }
.bk-progress { list-style: none; margin: 0 0 26px; padding: 0 0 16px; display: flex; gap: 6px; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none; }
.bk-progress li { flex: 1 0 auto; font: 600 .78rem/1.2 var(--head); color: var(--ink-soft); display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.bk-progress li::before { content: attr(data-step-label); width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--ice); color: var(--navy); font-size: .76rem; flex: none; }
.bk-progress li[aria-current] { color: var(--navy); }
.bk-progress li[aria-current]::before { background: var(--orange); color: var(--navy-deep); }
.bk-progress li.is-done::before { background: var(--navy); color: var(--white); content: "✓"; }
@media (max-width: 759px) { .bk-progress { justify-content: flex-start; } .bk-progress li { flex: 0 0 auto; } .bk-progress li:not([aria-current]) { font-size: 0; gap: 0; } }

.bk-search { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.bk-search input { min-width: 0; }
.bk-count { font: 600 .9rem var(--head); color: var(--ink-soft); margin: 0 0 12px; min-height: 1.3em; }
.bk-results { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.bk-card { border: 1px solid var(--line-strong); border-radius: 14px; padding: 18px; display: grid; gap: 14px; background: var(--white-soft); }
@media (min-width: 700px) { .bk-card { grid-template-columns: 1fr auto; align-items: center; } }
.bk-card h3 { margin: 6px 0 4px; }
.bk-card__flag { display: inline-block; font: 700 .7rem/1 var(--head); letter-spacing: .04em; text-transform: uppercase; color: #8A5A00; background: var(--yellow-tint); padding: 5px 8px; border-radius: 6px; }
.bk-card__meta { margin: 0; font-size: .95rem; color: var(--ink-soft); }
.bk-card__note { margin: 6px 0 0; font-size: .86rem; color: #8A5A00; }
.bk-card__side { display: flex; align-items: center; gap: 16px; justify-content: space-between; }
@media (min-width: 700px) { .bk-card__side { flex-direction: column; align-items: flex-end; } }
.bk-card__next { margin: 0; font: 600 .95rem var(--head); }
.bk-card__next span { display: block; font: 400 .78rem var(--text); color: var(--ink-soft); }
.bk-empty { border: 1px dashed var(--line-strong); border-radius: 14px; padding: 22px; background: var(--ice); }

.bk-selected { background: var(--ice); border-radius: 12px; padding: 12px 16px; font-size: .95rem; margin-bottom: 18px; }
.bk-chips { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); margin-bottom: 8px; }
.bk-chip, .bk-time { font: 600 1rem var(--head); color: var(--navy); background: var(--white); border: 2px solid var(--line-strong); border-radius: 12px; padding: 14px; cursor: pointer; min-height: 52px; text-align: left; }
.bk-chip span { display: block; font: 400 .85rem var(--text); color: var(--ink-soft); margin-top: 2px; }
.bk-chip:hover, .bk-time:hover { border-color: var(--navy); }
.bk-chip:disabled, .bk-time:disabled { cursor: not-allowed; color: #8DA0BD; background: #F2F4F7; border-color: transparent; text-decoration: line-through; }
.bk-times { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); margin-bottom: 10px; }
.bk-time { text-align: center; }
.bk-nav { display: flex; gap: 12px; justify-content: space-between; flex-wrap: wrap; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.bk-nav .btn:disabled { opacity: 1; background: #E7EBF1; color: #5A6E8F; border-color: transparent; cursor: not-allowed; }
.bk-q legend { line-height: 1.45; margin-bottom: 8px; }

.bk-alert { border-radius: 14px; padding: 18px 20px; margin: 4px 0 18px; outline: none; }
.bk-alert h3 { font-size: 1.1rem; }
.bk-alert p { font-size: .97rem; }
.bk-alert .btn-row { margin-top: 12px; }
.bk-alert--stop { background: var(--orange-tint); border-left: 5px solid var(--orange); }
.bk-alert--hold { background: var(--yellow-tint); border-left: 5px solid var(--yellow); }
.bk-alert--note { background: var(--blue-tint); border-left: 5px solid var(--blue); }

.bk-scope { background: var(--ice); border-radius: 14px; padding: 18px 20px; margin-bottom: 20px; }
.bk-scope ul { margin: 0; font-size: .96rem; }
.bk-scope li + li { margin-top: 6px; }
.bk-policies { border: 1px solid var(--line-strong); border-radius: 14px; padding: 18px 20px; }
.bk-policies h3 { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.bk-policies dl, .bk-review { margin: 0; display: grid; }
.bk-policies dl > div, .bk-review > div { display: grid; grid-template-columns: minmax(120px, 38%) 1fr; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); font-size: .96rem; }
.bk-policies dt, .bk-review dt { font: 600 .92rem var(--head); }
.bk-policies dd, .bk-review dd { margin: 0; color: var(--ink-soft); overflow-wrap: anywhere; }

.bk-done__tag { display: inline-block; font: 700 .8rem/1.2 var(--head); color: var(--navy-deep); background: var(--yellow); padding: 7px 12px; border-radius: 8px; margin-bottom: 14px; }
.bk-done__ref { display: block; margin-top: 8px; font-size: .9rem; color: var(--ink-soft); }
.bk-done h3 { margin-top: 26px; }
.bk-next { margin: 0; padding-left: 1.2em; }
.bk-next li + li { margin-top: 6px; }
.bk-msgs { display: grid; gap: 12px; }
.bk-msg { border: 1px solid var(--line-strong); border-radius: 14px; padding: 14px 16px; background: var(--white-soft); font-size: .95rem; }
.bk-msg p { margin: 0 0 6px; }
.bk-msg--sms { background: var(--blue-tint); border-color: transparent; border-radius: 18px 18px 18px 4px; max-width: 420px; }
.bk-msg__kind { font: 700 .74rem/1 var(--head) !important; letter-spacing: .05em; text-transform: uppercase; color: var(--teal-ink); }

/* Request a clinic */
.req-box { background: var(--white); border: 1px solid var(--line-strong); border-radius: 18px; padding: clamp(20px, 4vw, 34px); }
.demo-entry { background: var(--yellow-tint); border-radius: 16px; padding: 20px 22px; display: grid; gap: 12px; }
@media (min-width: 760px) { .demo-entry { grid-template-columns: 1fr auto; align-items: center; } }
.demo-entry p { margin: 0; }
.s-fit__fine { margin: 10px 0 0; font-size: .9rem; color: var(--navy); }
.s-report__who { display: block; font: 700 .76rem/1.3 var(--head); letter-spacing: .05em; text-transform: uppercase; color: var(--teal-ink); margin-bottom: 2px; }
.s-demo-link { margin-top: 14px; font-size: .92rem; }
.tbd { margin: 18px 0 0; display: grid; max-width: 30em; }
.tbd > div { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-top: 1px solid var(--line); font-size: .95rem; }
.tbd dt { font: 600 .95rem var(--head); }
.tbd dd { margin: 0; color: #8A5A00; font-weight: 600; }
.finder { background: var(--white); border: 2px solid var(--navy); border-radius: 20px; padding: clamp(18px, 4vw, 32px); box-shadow: 0 24px 50px -38px rgba(6,46,110,.45); max-width: 900px; }
.finder__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.finder__top h2 { font-size: clamp(1.35rem, 3vw, 1.7rem); }
.finder__form label { display: block; font: 600 .95rem var(--head); margin-bottom: 6px; }
.finder__result { margin-top: 16px; }
.finder__empty { background: var(--ice); border-radius: 12px; padding: 14px 16px; margin: 0; font-size: .97rem; }
.finder__next { display: flex; flex-wrap: wrap; gap: 14px 20px; align-items: center; margin: 14px 0 0; }
.finder__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.finder__list li { border: 1px solid var(--line-strong); border-radius: 14px; padding: 16px; }
/* contrast fixes */
.s-tag { color: #006A65; }
.bk-nav .btn:disabled { color: #4E6285; }
.bk-chip:disabled, .bk-time:disabled { color: #66799B; }
/* Hero clinic finder (shown until a licensed hero photo is added) */
.s-photo--find { background: var(--navy) !important; border: 0 !important; color: var(--white); display: flex; flex-direction: column; }
.s-find { padding: clamp(24px, 4vw, 40px); display: grid; gap: 10px; }
.s-find__label { font: 800 clamp(1.35rem, 2.2vw, 1.7rem)/1.2 var(--head); margin: 0 0 6px; }
.s-find label { font: 600 .9rem var(--head); color: rgba(255,255,255,.85); }
.s-find__row { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.s-find__row input { min-width: 0; border-color: transparent; }
.s-find__steps { list-style: none; counter-reset: f; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; }
.s-find__steps li { counter-increment: f; display: flex; gap: 12px; align-items: center; font-size: .95rem; color: rgba(255,255,255,.9); }
.s-find__steps li::before { content: counter(f); flex: none; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font: 800 .8rem var(--head); background: rgba(255,255,255,.14); color: var(--yellow); }
.s-find__soon { display: flex; align-items: center; gap: 10px; margin: 8px 0 0; font: 600 .88rem var(--head); color: var(--yellow); }
.s-find__soon i { width: 9px; height: 9px; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 0 4px rgba(255,198,41,.25); }
@media (max-width: 899px) { .s-photo--find { aspect-ratio: auto; padding-bottom: 215px; } }
/* Retire the old cream neutrals everywhere (soft white + ice blue system) */
:root { --cream: #FAFCFD; --paper: #FFFFFF; --sand: #E3EDF3; --ground: #FAFCFD; --band: #F0F9FC; }
.form-card, .vets-mini__box, .s-booker__field { background: var(--white); }

/* =========================================================
   v12: prelaunch CTA, photo slots, visit steps, short
   eligibility, signature report card, request form
   ========================================================= */
/* Hero request bar */
.s-ask { display: grid; gap: 8px; max-width: 34em; background: var(--white); border: 2px solid var(--navy); border-radius: 16px; padding: 16px; box-shadow: 0 20px 44px -34px rgba(6,46,110,.5); }
.s-ask label { font: 700 1rem var(--head); }
.s-ask__row { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.s-ask__row input { min-width: 0; }
@media (max-width: 520px) { .s-ask__row { grid-template-columns: 1fr; } .s-ask__row .btn { width: 100%; } }
.s-hero__more { font-size: 1rem; }

/* Photo slots */
.ph-img { display: block; width: 100%; height: auto; object-fit: cover; border-radius: inherit; }
.ph-slot { display: grid; align-content: center; justify-items: center; gap: 6px; text-align: center; padding: 18px; width: 100%;
  border: 2px dashed rgba(8,61,145,.35); border-radius: 16px; color: var(--navy);
  background: repeating-linear-gradient(135deg, #F0F9FC 0 14px, #E6F4FA 14px 28px); }
.ph-slot__tag { font: 700 .7rem/1 var(--head); letter-spacing: .06em; text-transform: uppercase; color: #5E3D00; background: var(--yellow); padding: 6px 9px; border-radius: 999px; }
.ph-slot b { font: 600 .95rem/1.35 var(--head); max-width: 26em; }
.ph-slot__file { font-size: .78rem; color: var(--ink-soft); }

/* Hero media variants */
.s-photo--slot { background: transparent !important; border: 0 !important; display: flex; }
.s-photo--slot .ph-slot { height: 100%; border-radius: 22px; }
.s-photo--slot + .s-photo--fallback { display: none; }
.s-photo.has-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.s-photo--fallback { background: var(--navy) !important; border: 0 !important; color: var(--white); }
.s-fallback { padding: clamp(26px, 4vw, 44px); }
.s-fallback__h { font: 800 clamp(1.3rem, 2.2vw, 1.6rem)/1.2 var(--head); margin: 0 0 18px; }
.s-fallback ol { list-style: none; counter-reset: f; margin: 0; padding: 0; display: grid; gap: 14px; }
.s-fallback li { counter-increment: f; display: flex; gap: 12px; align-items: center; color: rgba(255,255,255,.92); }
.s-fallback li::before { content: counter(f); flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font: 800 .82rem var(--head); background: rgba(255,255,255,.14); color: var(--yellow); }
@media (max-width: 899px) { .s-photo--fallback { aspect-ratio: auto; padding-bottom: 190px; } .s-photo--slot { aspect-ratio: 4 / 3.4; } }

/* Visit steps with photos */
.s-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 28px; }
@media (min-width: 700px) { .s-steps { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .s-steps { grid-template-columns: repeat(4, 1fr); gap: 24px; } }
.s-steps li { display: grid; gap: 8px; align-content: start; }
.s-steps .ph-img, .s-steps .ph-slot { border-radius: 16px; margin-bottom: 8px; aspect-ratio: 4 / 3; }
.s-steps__n { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font: 800 .95rem var(--head); color: var(--white); background: var(--navy); }
.s-steps li:nth-child(1) .s-steps__n { background: var(--teal); color: var(--navy-deep); }
.s-steps li:nth-child(2) .s-steps__n { background: var(--blue); color: var(--navy-deep); }
.s-steps li:nth-child(3) .s-steps__n { background: var(--yellow); color: var(--navy-deep); }
.s-steps li:nth-child(4) .s-steps__n { background: var(--orange); color: var(--navy-deep); }
.s-steps h3 { font-size: 1.15rem; margin: 0; }
.s-steps p { margin: 0; color: var(--ink-soft); font-size: .97rem; }
.s-visit__more { margin-top: 30px; }

/* Short eligibility */
.s-fit--short .s-fit__vet { display: flex; flex-direction: column; }
.s-fit--short .s-fit__no { display: flex; gap: 10px; align-items: flex-start; margin: 16px 0 0; padding: 12px 14px; background: rgba(255,255,255,.7); border-radius: 10px; }
.s-fit--short .s-fit__no svg { width: 20px; height: 20px; flex: none; margin-top: 2px; }
.s-fit--short .s-fit__urgent { margin-top: 12px; }

/* Signature report card */
.rc { margin: 0; background: var(--white); border-radius: 22px; overflow: hidden; box-shadow: 0 30px 60px -40px rgba(6,46,110,.55); border: 1px solid var(--ice-line); }
.rc__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; background: var(--navy); color: var(--white); padding: 18px 22px; }
.rc__title { margin: 0; font: 800 1.2rem/1.1 var(--head); }
.rc__sub { margin: 2px 0 0; font-size: .82rem; color: rgba(255,255,255,.75); }
.rc__badge { font: 700 .72rem/1 var(--head); color: var(--navy-deep); background: var(--yellow); padding: 7px 10px; border-radius: 999px; white-space: nowrap; }
.rc__meta { margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; background: var(--ice); border-bottom: 1px solid var(--ice-line); }
@media (min-width: 560px) { .rc__meta { grid-template-columns: repeat(4, 1fr); } }
.rc__meta div { padding: 10px 16px; }
.rc__meta dt { font: 600 .72rem/1.2 var(--head); letter-spacing: .04em; text-transform: uppercase; color: var(--ink-soft); }
.rc__meta dd { margin: 2px 0 0; font: 600 .9rem/1.3 var(--head); }
.rc__body { display: grid; gap: 0; }
@media (min-width: 560px) { .rc__body { grid-template-columns: 1fr 1fr; } .rc__sec--vet { grid-column: 1 / -1; } }
.rc__sec { padding: 16px 20px; border-top: 1px solid var(--line); position: relative; }
@media (min-width: 560px) { .rc__sec:nth-child(odd):not(.rc__sec--vet) { border-right: 1px solid var(--line); } }
.rc__h { font: 700 .82rem/1.2 var(--head); letter-spacing: .05em; text-transform: uppercase; margin: 0 0 10px; display: flex; align-items: center; gap: 8px; }
.rc__h::before { content: ""; width: 10px; height: 10px; border-radius: 3px; background: var(--c, var(--teal)); }
.rc__sec--seen { --c: var(--teal); } .rc__sec--done { --c: var(--blue); } .rc__sec--photos { --c: var(--orange); } .rc__sec--home { --c: var(--yellow); }
.rc__sec p { margin: 0 0 6px; font-size: .92rem; line-height: 1.5; }
.rc__fine { font-size: .8rem !important; color: var(--ink-soft); }
.rc__chart { display: grid; grid-template-columns: repeat(10, 1fr); gap: 4px; margin-bottom: 10px; }
.rc__chart i { aspect-ratio: 1; border-radius: 4px 4px 7px 7px; background: var(--teal-tint); border: 1px solid rgba(0,124,118,.25); }
.rc__chart i.f { background: var(--orange-tint); border-color: rgba(194,90,0,.5); }
.rc__ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: .92rem; }
.rc__ticks li { display: flex; gap: 8px; }
.rc__ticks li::before { content: "✓"; color: var(--teal-ink); font-weight: 800; }
.rc__pics { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 8px; }
.rc__pics span { aspect-ratio: 4 / 3; border-radius: 10px; display: grid; place-items: end start; padding: 6px 8px; font: 700 .72rem var(--head); color: var(--navy);
  background: linear-gradient(160deg, var(--ice), #DCEFF7); border: 1px dashed rgba(8,61,145,.25); }
.rc__sec--vet { background: var(--blue-tint); }
.rc__sec--vet .rc__h { color: var(--navy-deep); }
.rc__sec--vet .rc__h::before { background: var(--navy); }
.rc__cap { padding: 12px 20px 16px; font-size: .8rem; color: var(--ink-soft); border-top: 1px solid var(--line); }
.s-rc { background: var(--white-soft); }

/* Request form */
.req-card { background: var(--white); border: 2px solid var(--navy); box-shadow: 0 24px 50px -38px rgba(6,46,110,.45); }
.s-book .req-card .form-row { gap: 0 16px; }
@media (min-width: 900px) { .hsteps--3 { grid-template-columns: repeat(3, 1fr); } .hsteps--3::before { left: 16%; right: 16%; } }
.hsteps--3 li:nth-child(3)::before { border-color: var(--orange); }
@media (min-width: 900px) { .s-points--3 { grid-template-columns: repeat(3, 1fr); } }
.svc-photo { border-radius: 18px; }
.details-band { background: var(--navy); color: var(--white); padding: 26px 0; }
.details-band .wrap { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: baseline; }
.details-band__label { margin: 0; font: 800 1.35rem var(--head); }
.details-band__text { margin: 0; color: rgba(255,255,255,.82); font-size: .98rem; }
/* About */
.diff { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 40px; }
@media (min-width: 760px) { .diff { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .diff { grid-template-columns: repeat(3, 1fr); } }
.diff li { padding: 20px 0 22px; border-top: 3px solid var(--c, var(--teal)); }
.diff h3 { font-size: 1.12rem; margin: 0 0 6px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.diff p { margin: 0; color: var(--ink-soft); font-size: .98rem; }
.about-photos { display: grid; gap: 18px; margin-top: 36px; }
@media (min-width: 760px) { .about-photos { grid-template-columns: repeat(3, 1fr); } }
.about-photos:not(:has(*)) { display: none; }
.about-photo { border-radius: 16px; aspect-ratio: 4 / 3; }
.never { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.never li { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-top: 1px solid var(--line-strong); font: 600 1.02rem/1.45 var(--head); }
.never li::before { content: ""; flex: none; width: 22px; height: 22px; margin-top: 1px; border-radius: 50%; background: var(--orange-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 6l8 8M14 6l-8 8' fill='none' stroke='%23B03A06' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center / 14px no-repeat; }
/* Booking demo: three phases */
.bk-phases { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; counter-reset: p; }
.bk-phases li { counter-increment: p; position: relative; padding: 12px 12px 12px 48px; border-radius: 12px; background: var(--ice); color: var(--ink-soft); min-height: 58px; }
.bk-phases li::before { content: counter(p); position: absolute; left: 12px; top: 12px; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font: 800 .82rem var(--head); background: var(--white); color: var(--navy); border: 2px solid rgba(8,61,145,.25); }
.bk-phases b { display: block; font: 700 .92rem/1.25 var(--head); color: var(--navy); }
.bk-phases span { display: block; font-size: .8rem; line-height: 1.3; margin-top: 2px; }
.bk-phases li[aria-current] { background: var(--navy); color: rgba(255,255,255,.8); }
.bk-phases li[aria-current] b { color: var(--white); }
.bk-phases li[aria-current]::before { background: var(--orange); border-color: var(--orange); color: var(--navy-deep); }
.bk-phases li.is-done::before { content: "✓"; background: var(--teal); border-color: var(--teal); color: var(--navy-deep); }
@media (max-width: 640px) {
  .bk-phases li { padding: 40px 8px 10px; text-align: center; }
  .bk-phases li::before { left: 50%; transform: translateX(-50%); top: 8px; }
  .bk-phases span { display: none; }
  .bk-phases b { font-size: .8rem; }
}
.bk-sub { margin: 12px 0 22px; padding-bottom: 14px; border-bottom: 1px solid var(--line); font: 600 .88rem var(--head); color: var(--teal-ink); }
.bk-vetnote { background: var(--blue-tint); border-radius: 12px; padding: 12px 14px; font-size: .95rem; }
.callout--ask { background: var(--orange-tint); border-color: transparent; }
.s-steps li, .s-split > *, .diff li, .about-photos > * { min-width: 0; }
@media (min-width: 1100px) { .s-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 700px) and (max-width: 1099px) { .s-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rc { min-width: 0; max-width: 100%; }
.s-book.s-ice { background: var(--ice); }
@media (max-width: 899px) {
  .s-hero__media { padding-bottom: 0; }
  .s-hero__media .s-summary { position: relative; left: auto; bottom: auto; margin: -56px 0 0 14px; width: min(310px, 86%); }
  .s-photo--fallback { padding-bottom: 70px; }
}

/* =========================================================
   v13: real photography (art-directed, one treatment)
   ========================================================= */
.s-heroimg, .s-approach__photo, .pagephoto__img, .s-home__photo { margin: 0; border-radius: 28px; overflow: hidden; background: var(--ice); box-shadow: 0 34px 60px -46px rgba(6,46,110,.55); }
.s-heroimg:empty, .s-approach__photo:empty, .pagephoto__img:empty, .s-home__photo:empty { display: none; }
.s-heroimg img, .s-approach__photo img, .pagephoto__img img, .s-home__photo img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.s-heroimg .ph-slot, .s-approach__photo .ph-slot, .pagephoto__img .ph-slot, .s-home__photo .ph-slot { border-radius: 28px; height: 100%; }

/* Hero with photo: clean, no overlapping cards */
.s-hero__media--photo { padding-bottom: 0; }
.s-heroimg { aspect-ratio: 1100 / 1265; max-width: 540px; margin-left: auto; }
@media (max-width: 899px) { .s-heroimg { aspect-ratio: 1100 / 935; max-width: none; border-radius: 22px; } }

/* Homepage approach: photo leads, asymmetric */
.s-approach__grid { display: grid; gap: 40px; }
@media (min-width: 980px) { .s-approach__grid { grid-template-columns: 5fr 7fr; gap: 72px; align-items: center; } }
.s-approach__grid > * { min-width: 0; }
.s-approach__photo { aspect-ratio: 1000 / 1080; }
@media (max-width: 979px) { .s-approach__photo { aspect-ratio: 1200 / 960; } }
.s-approach__body .s-points { margin-top: 26px; }

/* Page hero with photo (Services) */
.page-hero--photo { padding-bottom: clamp(40px, 6vw, 72px); }
.pagephoto { display: grid; gap: 36px; }
@media (min-width: 980px) { .pagephoto { grid-template-columns: 7fr 5fr; gap: 64px; align-items: center; } }
.pagephoto > * { min-width: 0; }
.pagephoto__note { margin: 22px 0 0; font-size: .9rem; color: var(--ink-soft); max-width: 34em; padding-left: 14px; border-left: 3px solid var(--yellow); }
.pagephoto__img--tall { aspect-ratio: 1000 / 1180; max-width: 460px; justify-self: end; width: 100%; }
@media (max-width: 979px) { .pagephoto__img--tall { aspect-ratio: 1200 / 1000; max-width: none; } }

/* About: Colorado */
.s-home__grid { display: grid; gap: 36px; }
@media (min-width: 980px) { .s-home__grid { grid-template-columns: 5fr 6fr; gap: 72px; align-items: center; } }
.s-home__grid > * { min-width: 0; }
.s-home__photo { aspect-ratio: 1000 / 1100; max-width: 500px; }
@media (max-width: 979px) { .s-home__photo { aspect-ratio: 1200 / 1000; max-width: none; } }
/* Contact: friendly portrait above the form */
.contact-side { display: grid; gap: 20px; min-width: 0; }
.contact-photo { margin: 0; border-radius: 28px; overflow: hidden; aspect-ratio: 1200 / 960; background: var(--ice); box-shadow: 0 34px 60px -46px rgba(6,46,110,.55); }
.contact-photo:empty { display: none; }
.contact-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* =========================================================
   v14: "boutique dental studio" refinement
   Soft ivory/cream/mist grounds, soft deep navy text, muted
   teal actions, editorial serif headings, lighter borders,
   fewer shadows. The logo image and its colors are untouched.
   This layer overrides earlier layers; edit tokens here.
   ========================================================= */
/* Manrope headings: loaded from Google Fonts (600, 700, 800) in the page head, with display=swap */
:root {
  /* Grounds */
  --ivory: #FAF8F5;          /* primary background */
  --cream-soft: #F4F0EA;     /* alternating sections */
  --mist: #EDF5F6;           /* educational sections */
  --sage: #DDE8E1;           /* subtle accents */
  /* Ink */
  --navy: #263D4B;           /* soft deep navy: headings and text */
  --navy-deep: #1D303C;
  --ink-soft: #56666F;       /* secondary text (AA on all grounds) */
  /* Actions and accents */
  --action: #3F7678;         /* muted teal button (white text 5.1:1) */
  --action-hover: #356567;
  --teal: #5D9698;           /* muted teal accent */
  --teal-ink: #3F7678;
  --apricot: #E8A77E;        /* warm highlight */
  --apricot-ink: #8F5229;
  --blue: #7FA6BC;           /* softened brand blue for small accents */
  --orange: #E8A77E;         /* softened brand orange (accents only) */
  --yellow: #E6C27A;         /* softened brand gold (accents only) */
  --teal-tint: #E3EFEC; --blue-tint: #E8F1F4; --orange-tint: #F7EBE1; --yellow-tint: #F6EEDC;
  --white-soft: var(--ivory); --ice: var(--mist); --cream: var(--ivory); --paper: #FFFFFF; --band: var(--cream-soft);
  --line: rgba(38,61,75,.12); --line-strong: rgba(38,61,75,.22); --rule: rgba(38,61,75,.12); --rule-strong: rgba(38,61,75,.22);
  --ice-line: rgba(38,61,75,.08);
  --error: #A6461F;
  /* Type */
  --display: "Manrope", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  --head: "DM Sans", "Segoe UI", system-ui, sans-serif;
  --text: "DM Sans", "Segoe UI", system-ui, sans-serif;
  --r: 10px;
  --radius-lg: 22px;
  --soft-shadow: 0 18px 40px -32px rgba(38,61,75,.35);
}

body, body::before, .menu-panel { background: var(--ivory); color: var(--navy); }
body { line-height: 1.7; }
.site-header { background: rgba(250,248,245,.94); border-bottom: 1px solid var(--line); }
::selection { background: var(--sage); }

/* Editorial headings */
/* Manrope: ExtraBold 800 for page headlines, Bold 700 for section headings, SemiBold 600 for smaller headings (h3, h4).
   Slightly tight tracking suits Manrope's wide, open letters at display sizes. */
h1, h2 { font-family: var(--display) !important; }
h1 { font-weight: 800 !important; letter-spacing: -0.02em !important; }
h2 { font-weight: 700 !important; letter-spacing: -0.015em !important; }
h3, h4 { font-family: var(--display) !important; font-weight: 600 !important; letter-spacing: -0.008em; }
h1 { font-size: clamp(2.35rem, 4.6vw, 3.9rem) !important; line-height: 1.1 !important; }
h2 { font-size: clamp(1.8rem, 3vw, 2.55rem) !important; line-height: 1.16 !important; }
.callout h2 { font-size: 1.15rem !important; line-height: 1.3 !important; letter-spacing: -0.008em !important; }   /* small card titles keep their own size */
.s-lead, .lede { color: var(--ink-soft) !important; font-size: clamp(1.08rem, 1.4vw, 1.2rem); line-height: 1.65; }
.s-hero__copy .s-lead { color: var(--navy) !important; }
.s-label, .kicker { font: 600 .78rem/1.3 var(--head) !important; letter-spacing: .14em !important; text-transform: uppercase; color: var(--teal-ink) !important; }
.s-label::before { background: var(--apricot) !important; width: 16px !important; height: 1px !important; }
strong, b { font-weight: 600; }

/* More breathing room */
.section { padding-block: clamp(76px, 10vw, 128px); }
.section--tight { padding-block: clamp(56px, 7vw, 88px); }

/* Grounds: cream alternates, mist for education */
.section--paper { background: var(--cream-soft); }
.s-ice, .s-book.s-ice { background: var(--mist) !important; border-block: 0 !important; }
.s-rc, .s-vets, .s-book { background: var(--ivory); }
.section--navy { background: var(--cream-soft) !important; color: var(--navy) !important; }
.section--navy h2, .section--navy h3, .section--navy a, .section--navy .kicker { color: var(--navy) !important; }
.section--navy .muted, .section--navy .aside-note { color: var(--ink-soft) !important; }
.section--navy .lined { border-top-color: var(--line-strong) !important; }
.section--navy .lined > li { border-bottom-color: var(--line) !important; }
.section--navy .lined > li > b { color: var(--navy) !important; }
.section--navy .lined > li > span { color: var(--ink-soft) !important; }
.contours { display: none; }

/* Buttons: one refined family */
.btn { border-radius: 999px !important; font: 600 .98rem/1.2 var(--head) !important; min-height: 50px; padding: 13px 26px !important; border-width: 1px !important; box-shadow: none !important; transform: none !important; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.btn--go, .btn--primary { background: var(--action) !important; color: #fff !important; border-color: var(--action) !important; }
.btn--go:hover, .btn--primary:hover, .nav a.btn--go:hover { background: var(--action-hover) !important; color: #fff !important; }
.btn--line { background: transparent !important; color: var(--navy) !important; border-color: var(--line-strong) !important; }
.btn--line:hover { border-color: var(--navy) !important; background: rgba(255,255,255,.6) !important; }
.btn--light { background: #fff !important; color: var(--navy) !important; }
.nav .btn { min-height: 42px; padding: 9px 20px !important; font-size: .92rem !important; }
.text-link { color: var(--navy); text-decoration-color: var(--teal); text-underline-offset: 5px; font-weight: 600; }
.text-link:hover { text-decoration-color: var(--navy); }
a:hover { text-decoration-color: var(--teal); }
:focus-visible { outline-color: var(--action); }

/* Hero */
.s-hero { padding-block: clamp(40px, 6vw, 84px) clamp(56px, 8vw, 104px); }
.s-hero__grid { gap: clamp(36px, 6vw, 80px); }
.s-sun { display: none; }
.s-heroimg, .s-approach__photo, .pagephoto__img, .s-home__photo, .contact-photo { border-radius: var(--radius-lg); box-shadow: none; border: 1px solid var(--ice-line); }
.s-ask { border: 1px solid var(--line-strong); box-shadow: none; border-radius: 18px; background: #fff; }
.s-ask label { font: 600 .95rem var(--head); }
.s-status { border-top: 0; padding-top: 0; color: var(--ink-soft); }
.s-status i { background: var(--apricot) !important; box-shadow: 0 0 0 4px var(--orange-tint) !important; }
.s-soon { display: inline-flex; align-items: center; gap: 8px; justify-self: start; font: 600 .82rem/1 var(--head); letter-spacing: .02em; color: var(--apricot-ink); background: var(--orange-tint); border-radius: 999px; padding: 8px 14px; margin: 0; }
.s-soon i { width: 7px; height: 7px; border-radius: 50%; background: var(--apricot); }
.s-hero__links { display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 0; }

/* Facts band: soft sage instead of navy */
.s-facts { background: var(--sage) !important; color: var(--navy) !important; border: 0 !important; }
.s-facts b { color: var(--navy) !important; font: 600 1.02rem/1.3 var(--head) !important; }
.s-facts span { color: var(--ink-soft) !important; }
.s-facts__row li { border-color: rgba(38,61,75,.12) !important; }
.s-facts__row li::before { height: 2px !important; width: 22px !important; background: var(--teal) !important; }

/* Cards and panels: softer, fewer shadows */
.form-card, .req-card, .finder, .bk, .rc, .s-booker, .vets-mini__box, .callout, .s-fit > div, .s-figure, .s-report, .table-wrap { box-shadow: none !important; }
.req-card, .finder, .bk { border: 1px solid var(--line-strong) !important; border-radius: var(--radius-lg) !important; background: #fff; }
.form-card { border: 1px solid var(--line) !important; border-radius: var(--radius-lg) !important; background: #fff; }
.s-fit__how { background: #fff !important; border: 1px solid var(--line) !important; }
.s-fit__vet { background: var(--orange-tint) !important; }
.s-fit__how li::before { background: var(--teal) !important; color: #fff !important; font-weight: 600 !important; }
.s-fit__urgent { background: rgba(255,255,255,.75) !important; }
.s-points li { border-top-width: 1px !important; border-top-color: var(--line-strong) !important; }
.s-points h3, .diff h3, .s-steps h3 { font-size: 1.18rem; }
.diff li { border-top: 1px solid var(--line-strong) !important; }
.s-steps__n { background: var(--sage) !important; color: var(--navy) !important; font-weight: 600 !important; }
.hsteps li::before { border-width: 1px !important; border-color: var(--teal) !important; font-weight: 700 !important; font-family: var(--display) !important; }
.hsteps::before { border-top-color: var(--line-strong) !important; }
.s-tag { color: var(--teal-ink) !important; background: var(--teal-tint) !important; font-weight: 600 !important; }
.s-tag--soon, .tbd dd { color: var(--apricot-ink) !important; }
.s-tag--soon { background: var(--orange-tint) !important; }
.callout { border-left-color: var(--teal) !important; background: #fff; }
.callout--warn { border-left-color: var(--apricot) !important; background: var(--orange-tint) !important; }
.callout--ask { background: var(--orange-tint) !important; }
.details-band { background: var(--mist) !important; color: var(--navy) !important; }
.details-band__label { font: 700 1.4rem var(--display) !important; letter-spacing: -0.01em; }
.details-band__text { color: var(--ink-soft) !important; }
.s-close.s-warm, .s-warm { background: var(--cream-soft) !important; }
.demo-entry { background: var(--yellow-tint); }
.s-photo--fallback { background: var(--mist) !important; color: var(--navy) !important; }
.s-fallback li { color: var(--navy) !important; }
.s-fallback li::before { background: #fff !important; color: var(--teal-ink) !important; }
.s-list > div { border-color: var(--line) !important; }
.s-note { border-left-color: var(--apricot) !important; }
.faq details, .faq summary { border-color: var(--line) !important; }
.compare th, .compare td, .roles th, .roles td { border-color: var(--line) !important; }
input[type="text"], input[type="email"], input[type="tel"], select, textarea { border-radius: 12px; border-color: var(--line-strong); background: #fff; }
.choice { border-radius: 12px; border-color: var(--line-strong); }
.choice:has(input:checked) { border-color: var(--action); background: var(--teal-tint); }
.choice input { accent-color: var(--action); }

/* Footer: soft deep navy */
.site-footer { background: var(--navy) !important; color: #E9EEF0; }
.site-footer a { color: #fff !important; text-decoration-color: rgba(255,255,255,.3) !important; }
.site-footer a:hover { text-decoration-color: var(--apricot) !important; }
.site-footer p, .site-footer__base { color: #C9D5DB !important; }
.foot-tag { font-family: var(--display); font-weight: 700; font-size: 1.15rem; color: #fff !important; }

/* Paper dental report card */
.rc { background: #FFFEFB !important; border: 1px solid #E6DFD3 !important; border-radius: 6px !important; box-shadow: 0 1px 0 #EFE9DF, 0 22px 40px -34px rgba(38,61,75,.4) !important; overflow: hidden; }
.rc__top { background: transparent !important; color: var(--navy) !important; border-bottom: 2px solid var(--navy); padding: 20px 22px 14px !important; }
.rc__title { font: 700 1.35rem/1.15 var(--display) !important; letter-spacing: -0.01em; color: var(--navy); }
.rc__sub { color: var(--ink-soft) !important; }
.rc__badge { background: var(--orange-tint) !important; color: var(--apricot-ink) !important; }
.rc__meta { background: transparent !important; border-bottom: 1px dashed #DDD5C8 !important; }
.rc__meta dd { font-family: var(--text) !important; }
.rc__sec { border-top: 1px dashed #DDD5C8 !important; }
.rc__sec:nth-child(odd):not(.rc__sec--vet) { border-right-color: #E6DFD3 !important; }
.rc__h::before { border-radius: 50% !important; width: 8px !important; height: 8px !important; }
.rc__sec--seen { --c: var(--teal); } .rc__sec--done { --c: var(--blue); } .rc__sec--home { --c: var(--yellow); } .rc__sec--photos { --c: var(--apricot); }
.rc__sec--vet { background: var(--mist) !important; }
.rc__sec--vet .rc__h::before { background: var(--navy) !important; }
.rc__chart i { border-radius: 4px 4px 8px 8px; }
.rc__lines { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; font-size: .92rem; }
.rc__lines li { display: flex; gap: 10px; align-items: baseline; }
.rc__lines li::before { content: ""; flex: none; width: 12px; height: 12px; border: 1.5px solid var(--navy); border-radius: 3px; transform: translateY(2px); }
.rc__lines li.is-checked::before { background: var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.2 2.2L9.6 3.6' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px no-repeat; }
.rc__cap { border-top: 1px dashed #DDD5C8 !important; }

/* Vets page */
.facts-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 26px 28px; margin: 0; }
.facts-card h2 { font-size: 1.25rem !important; margin-bottom: 8px; }
.facts-card dl { margin: 0; display: grid; }
.facts-card dl > div { display: grid; gap: 2px; padding: 14px 0; border-top: 1px solid var(--line); }
.facts-card dt { font: 600 .78rem/1.3 var(--head); letter-spacing: .1em; text-transform: uppercase; color: var(--teal-ink); }
.facts-card dd { margin: 0; font: 700 1.15rem/1.35 var(--display); color: var(--navy); }
.facts-card dd small { display: block; font: 400 .88rem/1.45 var(--text); color: var(--ink-soft); margin-top: 2px; }
.duo { display: grid; gap: 24px; }
@media (min-width: 900px) { .duo { grid-template-columns: 1fr 1fr; gap: 28px; } }
.duo > div { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: clamp(24px, 3vw, 34px); }
.duo h3 { font-size: 1.3rem; margin-bottom: 4px; }
.duo .muted { margin: 0 0 14px; font-size: .95rem; }
.ticklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.ticklist li { padding: 11px 0 11px 28px; border-top: 1px solid var(--line); position: relative; }
.ticklist li::before { content: ""; position: absolute; left: 2px; top: 19px; width: 12px; height: 2px; background: var(--teal); border-radius: 2px; }
.note-review { margin-top: 22px; padding: 16px 20px; border-radius: 14px; background: var(--mist); color: var(--navy); font-size: .95rem; }
.establish { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 40px; }
@media (min-width: 760px) { .establish { grid-template-columns: 1fr 1fr; } }
.establish li { padding: 18px 0; border-top: 1px solid var(--line-strong); }
.establish b { display: block; font: 700 1.08rem/1.3 var(--display); }
.establish span { color: var(--ink-soft); font-size: .96rem; }

/* About: experience */
.exp { display: grid; gap: 36px; }
@media (min-width: 980px) { .exp { grid-template-columns: 4fr 7fr; gap: 80px; align-items: start; } }
.exp__stat { font: 800 clamp(3.4rem, 7vw, 5.2rem)/1 var(--display); letter-spacing: -0.02em; color: var(--teal-ink); margin: 0; }
.exp__statlabel { margin: 8px 0 0; color: var(--ink-soft); max-width: 18em; }
.exp__list { list-style: none; margin: 26px 0 0; padding: 0; display: grid; gap: 0 36px; }
@media (min-width: 700px) { .exp__list { grid-template-columns: 1fr 1fr; } }
.exp__list li { padding: 16px 0; border-top: 1px solid var(--line-strong); }
.exp__list b { display: block; font: 700 1.06rem/1.3 var(--display); }
.exp__list span { color: var(--ink-soft); font-size: .96rem; }

/* Pricing note (owners) */
.price-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin: 18px 0 4px; }
.price-line b { font: 700 2.2rem/1 var(--display); letter-spacing: -0.01em; color: var(--navy); }
.price-line span { color: var(--ink-soft); }
.tbd dd.tbd--set { color: var(--navy) !important; }
.s-soon { line-height: 1.4 !important; align-items: baseline !important; border-radius: 14px !important; }
.s-soon i { transform: translateY(-1px); flex: none; }
.s-tag { color: #335F61 !important; }

/* =========================================================
   v15 (preview on Home + Veterinary Partnerships, body.v15):
   70% calm dental studio, 30% Colorado energy.
   White grounds, fresh ice blue, soft turquoise accents,
   Colorado blue and deep navy bands, sunset orange CTAs.
   ========================================================= */
body.v15 {
  --white15: #FAFCFD; --ice15: #E8F5FA; --aqua15: #C9EBE7; --aqua15-bg: #EEF8F6;
  --blue15: #2378B8; --blue15-ink: #1F6FAA; --navy15: #183C5A; --orange15: #F49A57; --orange15-hover: #F08A40;
  --navy: #183C5A; --navy-deep: #12304A; --ink-soft: #4A6176;
  --teal: #3DB5AC; --teal-ink: #1A6F69; --blue: #2378B8; --orange: #F49A57; --yellow: #F2C14E;
  --teal-tint: #E3F5F2; --blue-tint: #E8F3FA; --orange-tint: #FDEEE2;
  --line: rgba(24,60,90,.12); --line-strong: rgba(24,60,90,.22);
  background: var(--white15); color: var(--navy15);
}
body.v15 .site-header { background: rgba(250,252,253,.95); }
body.v15 .menu-panel { background: var(--white15); }

/* Stronger headings, better contrast */
body.v15 h1 { font-weight: 800 !important; color: var(--navy15); }
body.v15 h2 { font-weight: 700 !important; color: var(--navy15); }
body.v15 h3, body.v15 h4 { font-weight: 600 !important; color: var(--navy15); }
body.v15 .s-lead, body.v15 .lede { color: var(--ink-soft) !important; }
body.v15 .s-hero__copy .s-lead { color: var(--navy15) !important; }
body.v15 .s-label, body.v15 .kicker { color: var(--teal-ink) !important; }
body.v15 .s-label::before { background: var(--orange15) !important; width: 18px !important; height: 2px !important; }
body.v15 .text-link { color: var(--blue15-ink); text-decoration-color: rgba(35,120,184,.45); }
body.v15 .text-link:hover { text-decoration-color: var(--blue15-ink); }
body.v15 :focus-visible { outline-color: var(--blue15); }

/* Grounds: mostly white, ice for education, a few rich bands */
body.v15 .section--paper, body.v15 .v-ice, body.v15 .s-ice, body.v15 .s-book.s-ice { background: var(--ice15) !important; }
body.v15 .v-white { background: var(--white15) !important; }
body.v15 .v-aqua { background: var(--aqua15-bg) !important; }
body.v15 .s-rc, body.v15 .s-vets, body.v15 .s-book { background: var(--white15); }

/* Buttons: orange = booking/primary action, navy/blue = secondary */
body.v15 .btn--go { background: var(--orange15) !important; border-color: var(--orange15) !important; color: var(--navy15) !important; }
body.v15 .btn--go:hover, body.v15 .nav a.btn--go:hover { background: var(--orange15-hover) !important; border-color: var(--orange15-hover) !important; color: var(--navy15) !important; }
body.v15 .btn--primary { background: var(--navy15) !important; border-color: var(--navy15) !important; color: #fff !important; }
body.v15 .btn--primary:hover { background: var(--blue15) !important; border-color: var(--blue15) !important; }
body.v15 .btn--line { color: var(--navy15) !important; border-color: rgba(24,60,90,.3) !important; }
body.v15 .btn--line:hover { border-color: var(--blue15) !important; color: var(--blue15-ink) !important; background: #fff !important; }

/* Hero */
body.v15 .s-heroimg { border: 0; box-shadow: 0 30px 60px -44px rgba(24,60,90,.55); position: relative; }
body.v15 .s-hero__media--photo { position: relative; }
body.v15 .s-hero__media--photo::before { content: ""; position: absolute; right: -18px; top: -18px; width: 140px; height: 140px; border-radius: 50%; background: var(--aqua15); z-index: -1; }
body.v15 .s-hero { position: relative; z-index: 0; }
body.v15 .s-ask { border: 1px solid rgba(35,120,184,.3); }
body.v15 .s-soon { color: #8A4A17 !important; background: var(--orange-tint) !important; }
body.v15 .s-soon i { background: var(--orange15) !important; }

/* Facts band: rich navy */
body.v15 .s-facts { background: var(--navy15) !important; }
body.v15 .s-facts b { color: #fff !important; }
body.v15 .s-facts span { color: #C3D4E2 !important; }
body.v15 .s-facts__row li { border-color: rgba(255,255,255,.14) !important; }
body.v15 .s-facts__row li::before { background: var(--aqua15) !important; height: 3px !important; }
body.v15 .s-facts__row li:nth-child(2)::before { background: #7CC0EC !important; }
body.v15 .s-facts__row li:nth-child(4)::before { background: var(--orange15) !important; }

/* Accents: turquoise rules, step numbers, ticks */
body.v15 .s-points li { border-top: 2px solid var(--teal) !important; }
body.v15 .s-points li:nth-child(2) { border-top-color: var(--blue15) !important; }
body.v15 .s-points li:nth-child(3) { border-top-color: var(--orange15) !important; }
body.v15 .s-steps__n { background: var(--aqua15) !important; color: var(--navy15) !important; }
body.v15 .s-steps li:nth-child(4) .s-steps__n { background: var(--orange15) !important; }
body.v15 .s-fit__how { background: #fff !important; border: 1px solid rgba(35,120,184,.18) !important; }
body.v15 .s-fit__how li::before { background: var(--blue15) !important; }
body.v15 .s-fit__vet { background: var(--orange-tint) !important; }
body.v15 .s-ticks li::before { color: var(--teal-ink) !important; }
body.v15 .s-list dt i { box-shadow: none; }
body.v15 .s-tag { color: #155F5A !important; background: var(--aqua15) !important; }
body.v15 .faq summary::before, body.v15 .faq summary::after { background: var(--navy15) !important; }
body.v15 .s-vets { border-top: 1px solid var(--line); }
body.v15 .req-card, body.v15 .form-card { border-color: rgba(35,120,184,.22) !important; }
body.v15 .choice:has(input:checked) { border-color: var(--blue15); background: var(--blue-tint); }
body.v15 .choice input { accent-color: var(--blue15); }

/* Rich navy band */
body.v15 .v-navy { background: var(--navy15) !important; color: #E6EEF5; }
body.v15 .v-navy h2, body.v15 .v-navy h3, body.v15 .v-navy .lined > li > b { color: #fff !important; }
body.v15 .v-navy .s-label, body.v15 .v-navy .kicker { color: var(--aqua15) !important; }
body.v15 .v-navy .s-lead, body.v15 .v-navy .muted, body.v15 .v-navy p { color: #C9D8E5 !important; }
body.v15 .v-navy .s-ticks li { color: #E6EEF5; border-color: rgba(255,255,255,.14) !important; }
body.v15 .v-navy .s-ticks li::before { color: var(--aqua15) !important; }
body.v15 .v-navy .steps, body.v15 .v-navy .steps > li { border-color: rgba(255,255,255,.16) !important; }
body.v15 .v-navy .steps > li::before { color: var(--aqua15) !important; }
body.v15 .v-navy .steps h3 { color: #fff !important; }
body.v15 .v-navy .lined { border-top-color: rgba(255,255,255,.25) !important; }
body.v15 .v-navy .lined > li { border-bottom-color: rgba(255,255,255,.14) !important; }
body.v15 .v-navy .lined > li > span, body.v15 .v-navy .lined a { color: #E6EEF5 !important; }
body.v15 .v-navy .rc, body.v15 .v-navy .rc p, body.v15 .v-navy .form-card, body.v15 .v-navy .form-card p:not(.error-msg), body.v15 .v-navy .rc dd { color: var(--navy15) !important; }
body.v15 .v-navy .rc__fine, body.v15 .v-navy .rc__cap, body.v15 .v-navy .rc dt, body.v15 .v-navy .form-card .hint, body.v15 .v-navy .form-card .opt, body.v15 .v-navy .form-legal { color: var(--ink-soft) !important; }
body.v15 .v-navy .form-card a { color: var(--blue15-ink) !important; }
body.v15 .v-navy .error-msg { color: #B03A06 !important; }
body.v15 .v-navy .btn--line { color: #fff !important; border-color: rgba(255,255,255,.5) !important; background: transparent !important; }
body.v15 .v-navy .form-card .btn--primary { background: var(--orange15) !important; border-color: var(--orange15) !important; color: var(--navy15) !important; }

/* Colorado blue closing band */
body.v15 .v-blue { background: var(--blue15) !important; color: #fff; }
body.v15 .v-blue h2 { color: #fff !important; }
body.v15 .v-blue .s-lead { color: #E3F0FA !important; }
body.v15 .v-blue .btn--line { color: #fff !important; border-color: rgba(255,255,255,.65) !important; background: transparent !important; }
body.v15 .v-blue .btn--line:hover { background: rgba(255,255,255,.12) !important; color: #fff !important; }

/* Paper report card stays paper, with a navy header rule */
body.v15 .rc__top { border-bottom-color: var(--navy15); }
body.v15 .rc__sec--vet { background: var(--blue-tint) !important; }

/* Vets page details */
body.v15 .facts-card { background: var(--navy15); border: 0; color: #fff; }
body.v15 .facts-card h2 { color: #fff !important; }
body.v15 .facts-card dl > div { border-top-color: rgba(255,255,255,.16); }
body.v15 .facts-card dt { color: var(--aqua15); }
body.v15 .facts-card dd { color: #fff; }
body.v15 .facts-card dd small { color: #C3D4E2; }
body.v15 .duo > div { border-color: rgba(35,120,184,.2); }
body.v15 .duo > div:first-child { border-top: 4px solid var(--blue15); }
body.v15 .duo > div:last-child { border-top: 4px solid var(--teal); }
body.v15 .ticklist li::before { background: var(--teal); height: 3px; }
body.v15 .note-review { background: var(--ice15); border-left: 3px solid var(--blue15); }
body.v15 .establish li { border-top: 2px solid var(--teal); }
body.v15 .col-head .dot--teal { background: var(--teal); }
body.v15 .lined > li > b { color: var(--navy15); }

/* Footer: deep navy */
body.v15 .site-footer { background: #183C5A linear-gradient(180deg, #24557B 0, #183C5A 240px) !important; }   /* lighter at the top, so the darker mountain base stands out softly */
body.v15 .site-footer a:hover { text-decoration-color: var(--orange15) !important; }
body.v15 .v-navy .rc h3, body.v15 .v-navy .rc .rc__h, body.v15 .v-navy .rc__title { color: var(--navy15) !important; }
/* Vets inquiry band in Colorado blue, so it doesn't merge with the navy footer */
body.v15 #conversation.v-navy { background: var(--blue15) !important; }
body.v15 #conversation.v-navy .kicker, body.v15 #conversation.v-navy > .wrap > .stack p, body.v15 #conversation.v-navy .lined > li > span, body.v15 #conversation.v-navy .lined > li > b { color: #fff !important; }
body.v15 #conversation.v-navy .lined { border-top-color: rgba(255,255,255,.45) !important; }
body.v15 #conversation.v-navy .lined > li { border-bottom-color: rgba(255,255,255,.3) !important; }

/* =========================================================
   Colorado mountains, traced from the business card artwork
   (scripts/card_mountains.py). Same shapes, colours, trees and sun
   as the card; placed bottom-right as on the card.
   Decorative only: aria-hidden, pointer-events none.
   ========================================================= */
.mtn { pointer-events: none; line-height: 0; }
.mtn__svg { display: block; width: 100%; height: 100%; }

/* Footer: the artwork sits on the footer's top edge, as it sits on the card's bottom edge */
.mtn--footer { --mtn-h: clamp(84px, 21.5vw, 270px); height: var(--mtn-h); margin-top: calc(-1 * var(--mtn-h)); position: relative; z-index: 1; }
main > section:last-child { padding-bottom: calc(clamp(76px, 10vw, 128px) + clamp(84px, 21.5vw, 270px)) !important; }
.site-footer { margin-top: -1px; }

/* Hero: the same artwork, bottom-right, resting on the facts band */
body.v15 .mtn--hero { position: absolute; left: 0; right: 0; bottom: -1px; height: clamp(70px, 13vw, 190px); z-index: -1; }

body.v15 .s-hero { padding-bottom: calc(clamp(28px, 4vw, 56px) + clamp(70px, 13vw, 190px)) !important; }
body.v15 .s-close.v-ice { background: #E8F5FA !important; }

/* =========================================================
   Final homepage + photography refinements
   ========================================================= */
/* Larger logo (64px -> 86px desktop, 72px phones); header grows only enough to fit it */
.brand img { height: 86px !important; width: auto; }
.site-header__inner { min-height: 100px !important; }
@media (max-width: 600px) { .brand img { height: 72px !important; } .site-header__inner { min-height: 88px !important; } }
/* Homepage headline about 18% larger on desktop, scaling smoothly down to phones */
.s-hero__copy h1 { font-size: clamp(2.35rem, 5.05vw, 4.3rem) !important; line-height: 1.08 !important; letter-spacing: -0.025em !important; }
/* Real photographs: same rounded frame as the other site photos */
.story-photo { margin: 0; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--ice-line); background: var(--ice); }
.story-photo:empty { display: none; }
.story-photo img { display: block; width: 100%; height: auto; }
.s-close--photo .wrap { display: grid; gap: 32px; align-items: center; }
@media (min-width: 900px) { .s-close--photo .wrap { grid-template-columns: 1fr minmax(260px, 360px); gap: 56px; } }
.story-photo--riley { max-width: 360px; width: 100%; }
@media (max-width: 899px) { .story-photo--riley { max-width: 520px; } }

/* =========================================================
   Live booking: /book/ messages, /manage/, /admin/
   ========================================================= */
.bk-msg-inline { margin: 14px 0 0; padding: 12px 16px; border-radius: 12px; background: var(--orange-tint); color: #7A3E12; font-size: .95rem; }
.mg .bk-review { margin-top: 8px; }
.bk-chip[aria-pressed="true"], .bk-time[aria-pressed="true"] { border-color: var(--navy15, #183C5A); background: #E8F5FA; box-shadow: inset 0 0 0 1px var(--navy15, #183C5A); }

.admin-page .site-header .nav, .admin-page .menu-btn { visibility: hidden; }
.adm-login { max-width: 420px; margin-top: 24px; }
.adm-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.adm-top h1 { font-size: clamp(1.8rem, 3vw, 2.4rem) !important; margin: 0; }
.adm-check { display: inline-flex; align-items: center; gap: 8px; font-size: .95rem; }
.adm-flash { background: #E3F2EF; color: #1E5A4F; }
.adm-tabs { display: flex; gap: 6px; border-bottom: 1px solid var(--line-strong); margin: 8px 0 22px; }
.adm-tabs button { font: inherit; font-weight: 600; background: none; border: 0; padding: 10px 14px; border-bottom: 3px solid transparent; color: var(--ink-soft, #4A5D6B); cursor: pointer; }
.adm-tabs button[aria-selected="true"] { color: var(--navy15, #183C5A); border-bottom-color: var(--orange15, #F49A57); }
.adm-add { margin-bottom: 22px; }
.adm-add > summary { cursor: pointer; font-weight: 600; color: var(--blue15-ink, #1D6497); padding: 6px 0; }
.adm-add .form-card { margin-top: 12px; }
.adm-day { border: 1px solid var(--line-strong); border-radius: 16px; background: #fff; padding: 18px 20px; margin-bottom: 18px; }
.adm-day.is-cancelled { opacity: .7; background: #F7F9FA; }
.adm-day header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; align-items: baseline; }
.adm-day h2 { font-size: 1.25rem !important; margin: 0 0 4px; }
.adm-day header p { margin: 0; color: var(--ink-soft, #4A5D6B); font-size: .95rem; }
.adm-count { font-weight: 600; white-space: nowrap; }
.adm-slots { list-style: none; margin: 14px 0 0; padding: 0; }
.adm-slot { display: flex; gap: 14px; align-items: flex-start; padding: 10px 0; border-top: 1px solid var(--line); font-size: .97rem; }
.adm-time { flex: none; width: 82px; font-weight: 600; color: var(--navy15, #183C5A); }
.adm-slot.is-open > span:nth-child(2) { color: #2A7A6F; }
.adm-slot.is-closed > span:nth-child(2) { color: #8A96A0; }
.adm-slot > .adm-link { margin-left: auto; }
.adm-book { flex: 1; min-width: 0; }
.adm-book summary { cursor: pointer; }
.adm-dl { display: grid; grid-template-columns: 1fr; gap: 6px 18px; margin: 12px 0; }
@media (min-width: 760px) { .adm-dl { grid-template-columns: 1fr 1fr; } }
.adm-dl div { display: grid; grid-template-columns: 130px 1fr; gap: 8px; }
.adm-dl dt { color: var(--ink-soft, #4A5D6B); font-size: .9rem; }
.adm-dl dd { margin: 0; overflow-wrap: anywhere; }
.adm-book textarea, .adm-panel textarea { width: 100%; }
.adm-actions, .adm-dayactions { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 10px; }
.adm-link { font: inherit; font-size: .93rem; font-weight: 600; background: none; border: 0; padding: 4px 0; color: var(--blue15-ink, #1D6497); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.adm-link--stop { color: #A23F0C; }
.adm-panel { margin-top: 12px; padding: 14px 16px; border-radius: 12px; background: #F4FAFC; border: 1px solid rgba(35,120,184,.22); }
.adm-panel p { margin: 0 0 10px; }
.adm-panel label { display: block; font-size: .93rem; }
.adm-panel select { max-width: 100%; }
.adm-tag { display: inline-block; font-size: .78rem; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: var(--orange-tint); color: #7A3E12; vertical-align: 1px; }
.adm-tag--stop { background: #FBE3D8; color: #9A3A0C; }
.adm-gone { margin-top: 10px; font-size: .93rem; color: var(--ink-soft, #4A5D6B); }
.adm-gone summary { cursor: pointer; }
.adm-blockform { margin-bottom: 20px; }
.adm-table td { vertical-align: top; overflow-wrap: anywhere; }
.adm-empty { padding: 20px 0; }
