/* Shared phone/tablet safeguards; desktop branding remains unchanged. */
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-padding-block:24px; }
*, *::before, *::after { box-sizing:border-box; }
input, select, textarea { font-size:16px; scroll-margin-block:24px; }
input:not([type=hidden]), select, textarea { touch-action:manipulation; }
button, a, summary { touch-action:manipulation; }
input:focus-visible, select:focus-visible, button:focus-visible, a:focus-visible { outline:2px solid #35d98b; outline-offset:3px; }
.field, .signup-copy, .signup-form, .split > *, .grid > * { min-width:0; }
video { max-width:100%; }
.signup-popover { transition:opacity .2s ease; }
.signup-popover.is-open { visibility:visible; }
.signup-card { min-height:0; }
.signup-close { min-width:44px; min-height:44px; z-index:5; }
.signup-form input[type=email] { font-size:16px; min-width:0; pointer-events:auto; -webkit-user-select:text; user-select:text; }
@media (max-width:1024px), (pointer:coarse) {
  .field input, .field select, .signup-form input[type=email] { font-size:16px; min-height:48px; }
  .btn, .back, .capabilities a, .submit { min-height:44px; }
  .back { display:inline-flex; align-items:center; }
  .signup-popover, .updates-success, .submission-modal {
    top:var(--visible-top,0px); bottom:auto;
    height:100vh;
    height:var(--visible-height,100dvh);
    padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
    overflow-y:auto; overscroll-behavior:contain;
    align-items:start; place-items:start center;
  }
  .signup-card { width:100%; max-width:720px; max-height:none; margin:0; overflow:hidden; -webkit-overflow-scrolling:touch; transform:none !important; transition:none; }
  .signup-copy { padding:24px 20px; }
  /* Keep the portrait and copy in their assigned rows when the keyboard opens.
     The overlay scrolls the complete card within the visual viewport. */
  .signup-copy > * { flex-shrink:0; }
  .updates-success-card, .submission-modal > * { max-width:100%; max-height:100%; overflow-y:auto; }
  .topbar .wrap { flex-wrap:wrap; gap:12px; }
  .form-head { flex-wrap:wrap; gap:12px; }
  .form-actions { flex-wrap:wrap; }
  .upload { flex-wrap:wrap; }
  .upload input { max-width:100%; min-width:0; }
  .onboarding-btn { min-width:0; max-width:100%; }
}
@media (min-width:801px) and (max-width:1024px) {
  .split { grid-template-columns:1fr; gap:36px; } .founder-stage { width:100%; max-width:900px; }
  .pharmacy .metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  .signup-card { grid-template-columns:minmax(0,1fr); }
  .signup-copy { padding:22px 16px; }
  .signup-form { grid-template-columns:minmax(0,1fr); }
  .signup-portrait { height:180px; min-height:180px; max-height:180px; overflow:hidden; }
  .signup-copy h2 { font-size:clamp(1.6rem,7vw,2.2rem); }
  .form-disclosure { overflow-wrap:anywhere; }
  .form-disclosure input[type=checkbox] { flex:0 0 22px; width:22px; height:22px; }
  .convergence .one-login { font-size:clamp(1.75rem,8vw,3rem); letter-spacing:-.02em; line-height:1.2; }
  .hero .capabilities a { display:inline-flex; align-items:center; }
  .grid { grid-template-columns:minmax(0,1fr); }
  .form-head, .form-body { padding-inline:16px; }
  .field input, .field select { width:100%; max-width:100%; }
  .system-stage, .system-stage.reveal { width:100%; margin-inline:0; transform:none; }
}
@media (max-height:500px) and (orientation:landscape) {
  .signup-card { height:auto; max-height:none; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  .reveal { opacity:1 !important; transform:none !important; }
}

/* Stable portrait geometry across Android, iOS, tablets and resized windows. */
.signup-portrait img,
.signup-popover.is-open .signup-portrait img {
  opacity:1;
  animation:none;
  transform:translateX(-50%);
  object-fit:contain;
  object-position:center bottom;
}
@media (max-width:1024px), (pointer:coarse) {
  .signup-popover { grid-template-rows:max-content; }
  .signup-card { align-self:start; flex-shrink:0; }
  .signup-copy { overflow-wrap:anywhere; }
  .signup-status, .form-feedback { overflow-wrap:anywhere; }
  .signup-audio-fallback { min-height:44px; }
  .signup-form button { white-space:normal; padding-block:12px; }
}
@media (min-width:601px) and (max-width:700px) {
  .signup-portrait { height:180px; min-height:180px; max-height:180px; }
}
@media (max-width:360px) {
  .signup-copy { padding-inline:12px; }
  .signup-kicker { letter-spacing:.1em; }
}

/* Keep every service label inside its hub card on phones and tablets. */
@media (max-width:1024px), (max-width:1366px) and (pointer:coarse) {
  .convergence .system-stage {
    width:100%; max-width:920px; min-height:0; aspect-ratio:1.12;
    margin:32px auto 0; transform:none;
  }
  .system-stage .node {
    box-sizing:border-box; width:30%; min-width:0; min-height:60px;
    padding:10px 4px;
    font-size:clamp(.625rem,2.65vw,.875rem);
    letter-spacing:.01em; line-height:1.3;
    text-align:center; white-space:normal; overflow-wrap:anywhere;
  }
  .system-stage .n1 { top:2%; left:35%; }
  .system-stage .n3 { bottom:2%; left:35%; }
  .system-stage .n2 { top:calc(50% - 30px); right:0; }
  .system-stage .n4 { top:calc(50% - 30px); left:0; }
  .system-stage .core { width:34%; min-height:0; padding:8px; }
}

/* Keep the welcome control beside the introduction, with no inner scroll area. */
.signup-card { height:auto; min-height:480px; max-height:none; grid-template-rows:auto; }
.signup-copy { overflow:visible; scrollbar-gutter:auto; padding:32px 24px 24px 16px; }
.signup-copy > * { flex-shrink:0; }
.signup-copy > p:not(.signup-kicker):not(.signup-status) { margin:10px 0 4px; }
.signup-audio-fallback { margin:0 0 6px; min-height:44px; align-self:flex-start; }
.signup-popover { overflow-y:auto; align-items:safe center; }
#signup-form { gap:8px; }
#signup-form .form-disclosure { margin:4px 0 0; font-size:.8125rem; line-height:1.4; }
@media (max-width:800px) {
  .signup-card { min-height:0; grid-template-rows:120px auto; }
  .signup-portrait { height:120px; min-height:120px; max-height:120px; padding:4px 16px; }
  .signup-portrait picture { width:74px; height:112px; }
  .signup-copy { padding:8px 18px 16px; }
  .signup-kicker { margin-bottom:6px; }
  .signup-copy h2 { font-size:1.75rem; }
  .signup-copy > p:not(.signup-kicker):not(.signup-status) { font-size:.875rem; line-height:1.4; margin:8px 0 0; }
  .signup-audio-fallback { align-self:center; margin-bottom:4px; }
  #signup-form input[type=email] { height:48px; min-height:48px; }
  #signup-form button { min-height:48px; padding:10px 12px; }
}

/* Compact desktop welcome card: content determines height, never an inner scroller. */
@media (min-width:801px) {
  .signup-card {
    width:min(760px, calc(100vw - 32px)); max-width:760px;
    height:auto; min-height:0; max-height:none;
    grid-template-columns:minmax(0, .65fr) minmax(0, 1.35fr);
    grid-template-rows:auto;
  }
  .signup-copy { padding:24px 32px 20px 12px; overflow:visible; }
  .signup-kicker { margin:0 0 6px; }
  .signup-copy h2 { font-size:2rem; line-height:1.05; }
  .signup-copy > p:not(.signup-kicker):not(.signup-status) {
    margin:8px 0 0; font-size:.875rem; line-height:1.4;
  }
  .signup-audio-fallback { margin:0 0 4px; min-height:36px; }
  #signup-form { gap:6px; }
  #signup-form input[type=email] { height:44px; min-height:44px; }
  #signup-form button { min-height:44px; padding:10px 12px; }
  #signup-form .form-disclosure { margin:2px 0 0; font-size:.8125rem; line-height:1.35; }
  .signup-portrait { padding:12px; }
  .signup-portrait picture { inset:12px; }
}

/* Add breathing room between the newsletter email field and submit button. */
#signup-form button[type="submit"] { margin-top:8px; }

/* Responsive refinements for narrow windows, tablets and desktop zoom. */
.wrap, .hero-copy, .form-shell, .form-body, .form-head { min-width:0; }
img { max-width:100%; }
.field input, .field select, .field textarea { min-width:0; font-size:1rem; }
.field select, .upload input { max-width:100%; }
.form-disclosure, .policy-body, .footer, .back, .business-types span { overflow-wrap:anywhere; }
.form-head { grid-template-columns:minmax(0,1fr) auto; }
.form-head > *, .promise > *, .form-actions > *, .onboarding-promise > * { min-width:0; }
.capabilities { flex-wrap:wrap; }
.capabilities a { white-space:normal; text-align:center; }
.founder-video{ display:block; width:100%; height:auto; aspect-ratio:16 / 9; object-fit:contain; }
.signup-copy, .signup-card { overflow:visible; }
.signup-card { isolation:isolate; }
.signup-portrait { border-radius:24px 0 0 24px; }
.signup-popover { padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); }
@media (min-width:801px) and (max-width:1180px) {
  .pharmacy .split { grid-template-columns:minmax(0,1fr); }
  .pharmacy .logo-field { width:min(100%,580px); margin-inline:auto; }
  .pharmacy .pharmacy-video-frame { width:100%; max-width:580px; }
  .business-types { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .business-types span { min-width:0; white-space:normal; }
}
@media (max-width:800px) {
  .signup-card { width:min(400px,100%); grid-template-columns:minmax(0,1fr); }
  .signup-portrait { border-radius:24px 24px 0 0; }
  .signup-copy { overflow-wrap:anywhere; }
  .hero-copy .capabilities #get-updates { width:100%; }
  .footer { flex-wrap:wrap; gap:12px; }
  .form-head { grid-template-columns:minmax(0,1fr); }
  .form-head .mini-logo { justify-self:start; }
  .notice { margin-inline:16px; }
}
@media (max-width:380px) {
  .business-types { grid-template-columns:minmax(0,1fr); }
  .hero-copy .capabilities { grid-template-columns:minmax(0,1fr); }
  .signup-copy h2 { font-size:1.5rem; }
  .signup-copy { padding-inline:12px; }
  .topbar .back { white-space:normal; }
}
@media (pointer:coarse) {
  .signup-audio-fallback, .updates-success-close, .policy-grid summary { min-height:44px; }
  .signup-form .form-disclosure input[type=checkbox] { flex:0 0 22px; width:22px; height:22px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
}
@media (min-width:801px) and (max-width:1100px) {
  .hero-copy { grid-template-columns:minmax(0,1fr) minmax(100px,20%); gap:20px; padding:24px; }
  .hero-heading { grid-column:1; grid-row:1; }
  .hero-box-logo { grid-column:2; grid-row:1; transform:none; }
  .hero-details { grid-column:1 / -1; grid-row:2; max-width:none; }
  .hero-copy .display { font-size:clamp(2.5rem,5vw,3.6rem); }
  .hero-copy .capabilities { grid-column:1 / -1; }
}

/* Fit the pharmacy network to its grid column, including pulse clearance. */
.pharmacy .logo-field {
  width:100%;
  max-width:660px;
  min-width:0;
  margin-inline:auto;
  padding:clamp(20px,3vw,38px);
}
.pharmacy .pharmacy-video-frame {
  width:100%;
  max-width:580px;
  min-width:0;
}
.pharmacy .logo-field::before { width:92%; }
.pharmacy .logo-field::after { width:94%; }

/* Safe-area spacing and comfortable controls across phone orientations. */
@supports (padding: max(0px)) {
  .wrap { width:min(1180px, calc(100% - max(20px, env(safe-area-inset-left)) - max(20px, env(safe-area-inset-right)))); }
}
.signup-close, .updates-success-close, .submission-actions button, .submission-actions a,
.policy-grid summary, .policy-links a { min-height:44px; }
.policy-links a { display:inline-flex; align-items:center; }
.signup-audio-fallback { min-height:44px; }
.submission-card { width:min(560px,100%); overflow-wrap:anywhere; }
.submission-actions { display:flex; flex-wrap:wrap; gap:12px; }
.submission-actions > * { min-width:0; white-space:normal; }
.upload input[type=file] { font-size:16px; min-height:44px; }
@media (max-height:500px) and (max-width:1024px) {
  .signup-popover, .updates-success, .submission-modal { place-items:start center; }
  .signup-card { grid-template-columns:minmax(0,1fr); grid-template-rows:auto; }
  .signup-portrait { display:none; }
  .signup-copy { padding:20px 16px 16px; }
  .signup-copy h2 { padding-right:32px; }
  .topbar { position:relative; }
}
@media (max-width:360px) {
  .hero-copy { width:calc(100% - 24px); }
  .metrics, .platform-points { grid-template-columns:minmax(0,1fr); }
  .form-actions { padding-inline:16px; }
}
/* Keep the decorative form glow inside its layout box instead of creating
   a horizontal page scrollbar on narrow screens. The blur still extends. */
.form-shell::before { inset:0; }
