/* CareClinic public portal: a connected clinic day. Loaded after page styles. */
:root {
  --ink:#163b3c;
  --ink-2:#476263;
  --ink-3:#526b6c;
  --teal:#146b62;
  --teal-deep:#10574f;
  --green:#246345;
  --paper:#fff;
  --paper-2:#f3f7f5;
  --paper-mint:#e8f3ed;
  --paper-white:#fff;
  --rule:#ccdcd5;
  --rule-soft:#e1ebe6;
  --on-ink:#f3faf6;
  --on-ink-2:#c5dcd3;
  --pub-radius-sm:8px;
  --pub-radius-md:12px;
  --pub-radius-lg:16px;
  --pub-header-height:80px;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:100px;
  scrollbar-color:#97b9aa #f3f7f5;
}

body {
  background:#fff;
  background-image:none;
  caret-color:var(--teal);
}

::selection {
  background:#d5ece0;
  color:#163b3c;
}

a {
  text-underline-offset:4px;
}

:focus-visible {
  outline:3px solid #146b62;
  outline-offset:4px;
}

h1,.mono-head {
  font-size:clamp(36px,4.7vw,64px);
  line-height:1.1;
  letter-spacing:-.035em;
  font-weight:600;
}

h2,.mono-h2 {
  font-size:clamp(27px,3vw,40px);
  line-height:1.2;
  letter-spacing:-.025em;
  font-weight:600;
}

h3 {
  line-height:1.35;
}

p {
  max-width:70ch;
}

.mono-label,.mono-label--ink,.pub-footer__col-title {
  font-size:13px;
  letter-spacing:.02em;
  text-transform:none;
}

.pub-header {
  background:#fff;
  border-bottom:1px solid var(--rule-soft);
  box-shadow:none;
}

.pub-header__inner {
  min-height:80px;
  gap:24px;
}

.pub-header__brand {
  border:0;
  padding:0;
  gap:10px;
}

.pub-header__brand-icon {
  width:34px;
  height:34px;
}

.pub-header__brand-name {
  font-size:23px;
  letter-spacing:-.04em;
}

.pub-header__nav {
  gap:2px;
  margin-left:auto;
  align-items:center;
}

.pub-nav-link {
  padding:12px 10px;
  font-size:14px;
  letter-spacing:0;
  text-transform:none;
  min-height:48px;
  border:0;
}

.pub-nav-link:hover,.pub-nav-link--active {
  color:var(--teal-deep);
  background:var(--paper-2);
  border-radius:8px;
}

.pub-header__actions {
  padding:0;
  border:0;
}

.btn {
  min-height:48px;
  border-radius:8px;
  border-width:1px;
  padding:12px 22px;
  font-size:15px;
  letter-spacing:0;
  text-transform:none;
  white-space:normal;
  text-align:center;
  line-height:1.4;
}

.btn::before,.btn::after {
  content:none;
}

.btn-primary {
  background:var(--teal);
  border-color:var(--teal);
  color:#fff;
}

.btn-primary:hover {
  background:var(--teal-deep);
  color:#fff;
}

.btn-outline,.btn-secondary {
  border-color:#a5bfb3;
  background:transparent;
}

.btn-sm {
  font-size:14px;
  padding:10px 20px;
}

.patient-menu {
  position:relative;
  font-size:14px;
}

.patient-menu summary {
  cursor:pointer;
  padding:12px 10px;
  min-height:48px;
  display:flex;
  align-items:center;
  gap:8px;
  list-style:none;
  border-radius:8px;
}

.patient-menu summary::after {
  content:'';
  width:6px;
  height:6px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);
  margin:0 2px 4px;
}

.patient-menu summary::-webkit-details-marker {
  display:none;
}

.patient-menu[open] summary {
  background:var(--paper-2);
}

.patient-menu__links {
  position:absolute;
  right:0;
  top:100%;
  width:210px;
  padding:8px;
  background:#fff;
  border:1px solid var(--rule);
  border-radius:12px;
  z-index:210;
}

.patient-menu__links a {
  display:block;
  padding:12px;
  border-radius:6px;
  color:var(--ink);
  text-decoration:none;
  min-height:48px;
}

.patient-menu__links a:hover {
  background:var(--paper-2);
}

.pub-header__menu-btn {
  border:0;
  min-width:48px;
  min-height:48px;
  justify-content:center;
  padding:8px;
}

.pub-mobile-nav {
  background:#fff;
  max-height:calc(100dvh - 80px);
  overflow-y:auto;
  border-bottom:1px solid var(--rule);
}

.pub-mobile-nav__link {
  font-size:16px;
  letter-spacing:0;
  text-transform:none;
  border-color:var(--rule-soft);
}

.pub-mobile-nav .patient-menu {
  padding:0 10px;
}

.pub-mobile-nav .patient-menu__links {
  position:static;
  width:auto;
  border:0;
  margin:0 10px;
}

.portal-noscript {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  padding:16px var(--gutter);
}

.portal-noscript a {
  padding:8px;
}

.mono-section {
  border-color:var(--rule-soft);
}

.mono-section__inner {
  grid-template-columns:minmax(0,1fr);
  max-width:1100px;
  padding-top:64px;
  padding-bottom:64px;
  gap:0;
}

.mono-section__mark {
  display:none;
}

.mono-section__head {
  margin-bottom:32px;
}

.mono-lede {
  font-size:18px;
  line-height:1.7;
}

.mono-field--fold {
  background:var(--paper-2);
}

.mono-field--mint {
  background:var(--paper-mint);
}

.mono-field--ink {
  background:var(--ink);
}

.pub-card,.pub-form,.form-control,.form-input,.form-select,.pub-input,.pub-select {
  border-radius:12px;
}

input:not([type=checkbox]):not([type=radio]),select,textarea {
  border-radius:8px;
  min-height:48px;
  font-size:16px;
  accent-color:var(--teal);
}

input::placeholder,textarea::placeholder {
  color:var(--ink-3);
  opacity:1;
}

.comp-head,.idx-head {
  border-bottom:1px solid var(--rule-soft);
  background:var(--paper-2);
}

.comp-head__inner {
  padding-top:64px;
  padding-bottom:56px;
}

.comp-head h1 {
  max-width:23ch;
}

.comp-entry {
  padding:24px 12px;
  gap:20px;
}

.comp-entry__go {
  font-size:13px;
  text-transform:none;
  letter-spacing:0;
}

.comp-entry__title {
  font-size:21px;
}

.comp-entry__tagline {
  font-size:16px;
  line-height:1.7;
}

.pub-footer {
  padding-top:60px;
  background:var(--ink);
  border-top:0;
}

.pub-footer__col-title {
  color:#f3faf6;
  font-size:16px;
}

.pub-footer__link {
  min-height:30px;
  font-size:15px;
}

.pub-footer__copy {
  letter-spacing:0;
  text-transform:none;
}

.owner-hero,.owner-section,.owner-start,.owner-patient {
  max-width:1240px;
  margin:auto;
  padding:80px var(--gutter);
}

.owner-hero {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:64px;
  align-items:center;
  min-height:650px;
}

.owner-hero h1 {
  font-size:clamp(40px,4.8vw,64px);
  max-width:16ch;
  margin:0 0 24px;
  line-height:1.13;
}

.owner-hero h1 em {
  font-style:normal;
  color:var(--teal);
}

.owner-hero__lede {
  font-size:21px;
  color:var(--ink);
  line-height:1.5;
  margin:0 0 14px;
}

.owner-hero__copy>p:not(.owner-hero__lede) {
  font-size:16px;
  line-height:1.8;
  color:var(--ink-2);
}

.owner-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}

.owner-hero__copy .owner-hero__note {
  font-size:13px;
  margin-top:20px;
}

.visit-preview {
  background:#eff6f2;
  border-radius:16px;
  padding:28px;
  transform:rotate(-1deg);
}

.visit-preview__heading {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:17px;
}

.visit-preview__heading>span {
  margin-left:auto;
}

.visit-preview__caption {
  font-size:12px;
  color:var(--ink-2);
  margin:16px 0 8px;
}

.visit-preview__journey {
  list-style:none;
  padding:0;
  margin:0;
}

.visit-preview__journey li {
  display:flex;
  gap:14px;
  align-items:center;
  padding:22px 0;
  border-bottom:1px solid #cfdfd6;
}

.visit-preview__journey li:last-child {
  border:0;
}

.visit-icon {
  padding:10px;
  background:#fff;
  border-radius:12px;
  font-size:23px;
  flex-shrink:0;
  color:var(--teal);
}

.visit-preview__journey strong {
  font-size:16px;
  font-weight:600;
}

.visit-preview__journey p {
  font-size:13px;
  line-height:1.6;
  color:var(--ink-2);
  margin:4px 0 0;
}

.visit-status {
  font-size:11px;
  color:#20563d;
  background:#d7eadd;
  padding:4px 8px;
  border-radius:5px;
  margin-left:auto;
}

.visit-preview__foot {
  display:flex;
  gap:10px;
  align-items:center;
  font-size:12px;
  border-top:1px solid #cfdfd6;
  padding-top:16px;
  color:var(--ink-2);
}

.owner-service-strip {
  background:#e8f3ed;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:25px max(var(--gutter),calc((100vw - 1184px)/2));
  font-size:15px;
}

.owner-service-strip strong {
  margin-right:16px;
  font-weight:600;
}

.owner-service-strip a {
  display:flex;
  align-items:center;
  gap:12px;
  font-weight:600;
  text-decoration:none;
}

.owner-section__intro {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:64px;
  align-items:start;
  margin-bottom:44px;
}

.owner-section__intro h2 {
  margin:0;
}

.owner-section__intro p {
  color:var(--ink-2);
  margin:0;
  line-height:1.8;
}

.owner-workflow {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:36px;
}

.owner-workflow article {
  border-top:2px solid #abcdbb;
  padding-top:24px;
}

.workflow-stage {
  font-size:14px;
  color:var(--teal);
  font-weight:600;
}

.owner-workflow h3 {
  font-size:23px;
  letter-spacing:-.02em;
  margin:14px 0;
}

.owner-workflow p,.owner-practice p,.owner-security p {
  font-size:16px;
  line-height:1.8;
  color:var(--ink-2);
}

.owner-workflow a,.practice-options a {
  font-size:14px;
  font-weight:600;
}

.owner-practice {
  background:#f3f7f5;
}

.owner-practice__inner {
  max-width:1240px;
  margin:auto;
  padding:80px var(--gutter);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
}

.owner-practice h2 {
  margin-top:0;
}

.owner-practice .btn {
  margin-top:18px;
}

.practice-options article {
  padding:22px 0;
  border-bottom:1px solid var(--rule);
}

.practice-options article:first-child {
  padding-top:0;
}

.practice-options article:last-child {
  border:0;
  padding-bottom:0;
}

.practice-options h3 {
  font-size:21px;
  margin:0 0 8px;
}

.practice-options p {
  margin:0 0 8px;
}

.owner-security {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
}

.owner-security__icon {
  font-size:32px;
  color:var(--teal);
  margin-bottom:16px;
}

.owner-security h2 {
  margin:0 0 20px;
}

.owner-security h3 {
  font-size:20px;
  margin:24px 0 8px;
}

.owner-security article:first-child h3 {
  margin-top:0;
}

.owner-start {
  max-width:none;
  background:#dceee3;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:36px;
  padding:64px max(var(--gutter),calc((100vw - 1184px)/2));
}

.owner-start h2 {
  margin:0 0 16px;
}

.owner-start p {
  color:var(--ink-2);
  margin:0;
  font-size:16px;
}

.owner-start .owner-actions {
  margin:0;
  flex-shrink:0;
}

.owner-patient {
  display:flex;
  align-items:center;
  gap:24px;
  padding-top:36px;
  padding-bottom:36px;
}

.owner-patient h2 {
  font-size:20px;
  margin:0;
}

.owner-patient p {
  font-size:14px;
  color:var(--ink-2);
  margin:0;
}

.owner-patient>div {
  margin-left:auto;
  display:flex;
  gap:24px;
  font-size:14px;
}

@media(min-width:1121px) {
  .pub-header__brand {
    flex-shrink:0;
  }
}

@media(max-width:1120px) {
  .owner-hero {
    gap:32px;
  }
  .owner-hero h1 {
    font-size:48px;
  }
  .visit-preview {
    padding:22px;
  }
  .owner-practice__inner,.owner-security {
    gap:48px;
  }
}

@media(max-width:760px) {
  .owner-hero,.owner-section,.owner-practice__inner,.owner-security {
    grid-template-columns:minmax(0,1fr);
    gap:36px;
    padding-top:48px;
    padding-bottom:48px;
  }
  .owner-hero h1 {
    font-size:clamp(37px,8vw,54px);
  }
  .owner-hero__lede {
    font-size:19px;
  }
  .visit-preview {
    transform:none;
  }
  .owner-section__intro,.owner-workflow {
    grid-template-columns:minmax(0,1fr);
    gap:28px;
  }
  .owner-section__intro {
    margin-bottom:32px;
  }
  .owner-workflow article {
    padding-top:20px;
  }
  .owner-workflow h3 {
    font-size:23px;
  }
  .owner-service-strip {
    align-items:flex-start;
    flex-direction:column;
  }
  .owner-service-strip strong,.owner-service-strip span {
    display:block;
  }
  .owner-service-strip a span {
    display:inline;
  }
  .owner-start {
    align-items:flex-start;
    flex-direction:column;
    padding-top:48px;
    padding-bottom:48px;
  }
  .owner-patient {
    flex-wrap:wrap;
    gap:12px;
  }
  .owner-patient>div {
    width:100%;
    margin:6px 0 0;
  }
  .mono-section__inner {
    padding-top:40px;
    padding-bottom:40px;
  }
  .comp-entry {
    padding:22px 0;
  }
  .visit-status {
    display:none;
  }
  .pub-header__inner {
    min-height:72px;
  }
  .pub-mobile-nav {
    max-height:calc(100dvh - 72px);
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
}

@media print {
  .owner-hero,.owner-section,.owner-practice__inner,.owner-security {
    display:block;
    padding:20px 0;
  }
  .visit-preview {
    transform:none;
  }
  .owner-workflow {
    display:block;
  }
  .patient-menu {
    display:none;
  }
}

.pres-head {
  border-bottom:1px solid var(--rule-soft);
  background:var(--paper-2);
}

.pres-head__inner {
  padding-top:64px;
  padding-bottom:56px;
}

.pres-head h1 {
  max-width:23ch;
}

.pub-nav-link::after {
  content:none;
}

/* Optional landing announcement, preserved from the original homepage. */
  .flash-splash-cb {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
  pointer-events: none;
}

.flash-splash {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.flash-splash-cb:not(:checked) ~ .flash-splash {
  display: none;
}

.flash-splash__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7,34,46,.72);
  cursor: pointer;
  border: 0;
}

.flash-splash__box {
  position: relative;
  z-index: 1;
  max-width: min(92vw, 720px);
  max-height: 88vh;
  border: 2px solid var(--ink);
}

.flash-splash__box img {
  display: block;
  max-width: 100%;
  max-height: 88vh;
}

.flash-splash__close {
  position: absolute;
  top: -1px;
  right: -1px;
  z-index: 2;
  width: 42px;
  height: 42px;
  background: var(--ink);
  color: var(--paper);
  font-size: 24px;
  line-height: 42px;
  text-align: center;
  cursor: pointer;
  user-select: none;
}
