/* Tactile controls, scoped to the active Morning Light page. */
body.visual.cta-polish button:is([data-start],[data-next],[data-contact],[type=submit]) {
  background:linear-gradient(165deg,#315e98,#1e4a86 65%,#193f73);
  color:#fff;border:1px solid #1b457b;border-radius:14px;
  box-shadow:inset 0 1px 0 #ffffff28,0 4px 10px #193f731a,0 1px 2px #193f7326;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
  text-decoration:none;min-height:48px;
}
@media(hover:hover){
  body.visual.cta-polish button:is([data-start],[data-next],[data-contact],[type=submit]):enabled:hover {
    transform:translateY(-2px);filter:brightness(1.07);
    box-shadow:inset 0 1px 0 #ffffff30,0 7px 16px #193f7326,0 2px 4px #193f731a;
  }
}
body.visual.cta-polish button:is([data-start],[data-next],[data-contact],[type=submit]):enabled:active {
  transform:translateY(1px) scale(.98);filter:brightness(.96);
  box-shadow:inset 0 2px 4px #0d284333,0 1px 2px #193f731a;
}
body.visual.cta-polish button.secondary {
  color:#234b7f;background:#f3f6fa;border:1px solid #cedae7;
  border-radius:12px;padding:12px 18px;min-height:44px;text-decoration:none;
  transition:background .16s ease,transform .16s ease;
}
body.visual.cta-polish button.secondary:hover {background:#e7eef6}
body.visual.cta-polish button.secondary:active {transform:scale(.97)}
body.visual.cta-polish button:focus-visible {outline:3px solid #678cba;outline-offset:4px}
body.visual.cta-polish button:disabled {transform:none;filter:none;box-shadow:none;cursor:not-allowed}
body.visual.cta-polish .choice[aria-pressed=true] .choice-label {color:#243750}
@media(prefers-reduced-motion:reduce){
  body.visual.cta-polish button {transition:none!important;transform:none!important}
}

body.visual.cta-polish #step-content button[data-back],
body.visual.cta-polish #step-content button[data-back]:hover,
body.visual.cta-polish #step-content button[data-back]:active {
  background:transparent;border:0;border-radius:0;box-shadow:none;
  color:#435f7e;padding:10px 0;min-height:44px;transform:none;
  text-decoration:underline;text-underline-offset:5px;text-decoration-color:#435f7e55;
}
body.visual.cta-polish #step-content button[data-back]:hover {color:#1e4a86;text-decoration-color:currentColor}

/* Selection controls are quieter than primary actions. */
body.cta-polish .triage-options {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
body.cta-polish .triage-group:has(input[name=preference]) .triage-options {grid-template-columns:repeat(4,minmax(0,1fr))}
body.cta-polish .triage-options label {min-height:64px;box-sizing:border-box;padding:16px;gap:10px;border:1px solid #d1dce7;border-radius:14px;background:#f7f9fb;color:#243750;box-shadow:none;transition:background .15s,border-color .15s,transform .15s}
body.cta-polish .triage-options label:has(input:checked) {background:#e8f0f9;border-color:#1e4a86;outline:none;box-shadow:none}
body.cta-polish .triage-options input {accent-color:#1e4a86;width:17px;height:17px;flex:none}
body.cta-polish .triage-options label:has(input:focus-visible) {outline:3px solid #678cba;outline-offset:3px}
@media(hover:hover){body.cta-polish .triage-options label:hover {border-color:#8aa6c6;background:#f0f5fa}body.cta-polish .triage-options label:has(input:checked):hover {background:#e3edf8}}
body.cta-polish .triage-options label:active {transform:scale(.985)}
@media(max-width:760px){body.cta-polish .triage-options,body.cta-polish .triage-group:has(input[name=preference]) .triage-options {grid-template-columns:1fr}body.cta-polish .triage-options label {min-height:52px;padding:13px 16px}}
@media(prefers-reduced-motion:reduce){body.cta-polish .triage-options label {transition:none;transform:none}}

/* Label-first tiles retain native radio semantics and keyboard control. */
body.cta-polish .triage-options label {position:relative;justify-content:center;text-align:center;font-size:18px;font-weight:500;padding:16px 36px;min-height:64px}
body.cta-polish .triage-options input {position:absolute;width:1px;height:1px;opacity:0;margin:0;clip-path:inset(50%)}
body.cta-polish .triage-options label:has(input:checked)::after {content:'✓';position:absolute;right:13px;top:50%;transform:translateY(-50%);font-size:16px;font-weight:600;color:#1e4a86}
@media(max-width:760px){body.cta-polish .triage-options label {font-size:16px;min-height:54px;padding:14px 32px}}

@media(min-width:761px) and (max-width:1000px){body.cta-polish .triage-options,body.cta-polish .triage-group:has(input[name=preference]) .triage-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
