/* Shared website primitives. Section styles own placement, never component size. */
.heading-group > :is(h2,h3) { margin:0; text-wrap:balance; }
.heading-group > .heading-description { margin-block:var(--heading-copy-gap) 0; text-wrap:pretty; }
.button,.text-link,.icon-button {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  position:relative; box-sizing:border-box; min-width:44px;
  font-family:var(--font); font-weight:400; letter-spacing:0; text-align:center;
  cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent;
  text-decoration:none; border:0; box-shadow:none;
}
.button {
  min-height:var(--action-height); padding:8px var(--action-inline);
  border-radius:999px; background:var(--blue); color:var(--white);
  font-size:var(--action-size); line-height:1.25;
  transition:background .2s,transform .2s;
}
.button-small { min-height:32px; padding:6px var(--compact-action-inline); font-size:12px; line-height:1.4; }
.button-small .action-label { white-space:nowrap; }
.button-secondary { background:var(--control-wash); color:var(--link-blue); }
.button:hover:not(:disabled) { background:#0077ed; text-decoration:none; }
.button-secondary:hover:not(:disabled) { background:#e8e8ed; }
.button:active:not(:disabled),.icon-button:active:not(:disabled) { transform:scale(.97); }
.button::before { content:""; position:absolute; inset-inline:0; inset-block:min(0px,calc((var(--action-height) - 44px) / 2)); }
.button-small::before { inset-block:-6px; }
.text-link {
  min-height:44px; padding:0; border-radius:0; background:none;
  color:var(--action-link-color,var(--link-blue)); font-size:var(--link-size); line-height:1.4;
  justify-content:flex-start; text-align:left;
}
.text-link-small { font-size:var(--caption-size); }
.inline-link { color:var(--action-link-color,var(--link-blue)); text-decoration:underline; text-underline-offset:3px; }
.text-link:hover:not(:disabled) .action-label { text-decoration:underline; text-underline-offset:3px; }
.button:disabled,.text-link:disabled,.icon-button:disabled { opacity:.45; cursor:default; }
.action-label { min-width:0; overflow-wrap:anywhere; }
.ui-icon {
  display:block; flex:none; width:var(--action-icon-size); height:var(--action-icon-size);
  fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;
  pointer-events:none;
}
.icon-button {
  width:var(--icon-control-size); height:var(--icon-control-size); min-width:var(--icon-control-size);
  min-height:var(--icon-control-size); padding:0; border-radius:50%;
  background:var(--control-wash); color:var(--ink); transition:background .2s,transform .2s;
}
.icon-button:hover:not(:disabled) { background:#e8e8ed; }
.icon-button::before { content:""; position:absolute; inset:min(0px,calc((var(--icon-control-size) - 44px) / 2)); }
.motion-button[aria-pressed=true] .ui-icon-pause,.motion-button[aria-pressed=false] .ui-icon-play { display:none; }
.button:focus-visible,.text-link:focus-visible,.inline-link:focus-visible,.icon-button:focus-visible,.choice-card:focus-visible,.disclosure-summary:focus-visible {
  outline:2px solid var(--action-focus-color,var(--blue)); outline-offset:4px;
}

.segmented-control {
  display:inline-flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:var(--selector-gap);
  width:max-content; max-width:100%; min-inline-size:0; margin-inline:auto;
  padding:var(--selector-padding); border:var(--control-stroke) solid var(--line);
  border-radius:var(--selector-radius); background:var(--control-wash);
}
.segmented-control label { display:flex; flex:1 1 auto; cursor:pointer; }
.segmented-control .segment {
  position:relative; display:flex; flex:1 1 auto; align-items:center; justify-content:center;
  min-width:44px; min-height:var(--control-height); padding:4px var(--selector-inline);
  border:0; border-radius:var(--selector-item-radius); background:transparent; color:var(--secondary);
  font:400 var(--segment-size)/1.4 var(--font); letter-spacing:0; white-space:normal; text-align:center; cursor:pointer;
}
.segmented-control .segment::before { content:""; position:absolute; inset-inline:0; inset-block:min(0px,calc((var(--control-height) - 44px) / 2)); }
.segmented-control .segment[aria-pressed=true],.segmented-control .segment[aria-selected=true],.segmented-control input:checked+.segment {
  color:var(--ink); background:var(--white); box-shadow:0 1px 3px #00000014;
}
.segmented-control .segment[aria-selected=false] {
  color:var(--secondary); background:transparent; box-shadow:none;
}
.segmented-control .segment:hover:not(:disabled),.segmented-control label:hover input:not(:disabled)+.segment { color:var(--ink); }
.segmented-control input:focus-visible+.segment,.appearance-finish:has(input:focus-visible),input:focus-visible+.choice-card {
  outline:2px solid var(--blue); outline-offset:4px;
}
.segmented-control:disabled,.segmented-control .segment:disabled { opacity:.45; cursor:default; }
.segmented-control:disabled label { cursor:default; }

.ui-label,.control-label {
  font-family:var(--font); font-size:var(--label-size); font-weight:600; line-height:1.4; letter-spacing:0;
}
.ui-label { margin:0; color:inherit; }
.ui-label:where(.eyebrow,.mc-eyebrow) { margin-bottom:var(--label-gap); }
.ui-label[data-tone=accent] { color:var(--link-blue); }
.ui-caption { font-family:var(--font); font-size:var(--caption-size); line-height:1.4; letter-spacing:0; }

.choice-group { gap:12px; }
.choice-card {
  display:flex; align-items:center; min-width:0; box-sizing:border-box; position:relative;
  border:1px solid var(--control-border); border-radius:16px; background:transparent; color:var(--ink);
  font-family:var(--font); cursor:pointer; box-shadow:none;
  transition:border-color .2s,box-shadow .2s,background .2s;
}
.choice-card-row { gap:14px; min-height:80px; padding:14px 18px; text-align:left; }
.choice-card-tile { flex:1; flex-direction:column; justify-content:center; min-height:100px; padding:12px 4px; text-align:center; }
.choice-thumbnail { display:block; width:100%; max-width:140px; height:auto; aspect-ratio:4 / 3; object-fit:contain; margin-bottom:8px; mix-blend-mode:multiply; }
.choice-copy { display:block; min-width:0; }
.choice-title { display:block; font-size:var(--choice-title-size); font-weight:600; line-height:1.2; }
.choice-description { display:block; margin-top:4px; font-size:var(--choice-description-size); line-height:1.4; color:var(--secondary); }
.choice-card[aria-pressed=true],input:checked+.choice-card { border-color:var(--blue); box-shadow:inset 0 0 0 1px var(--blue); background:#eaf3ff; }
.choice-card-row:hover:not(:disabled),.appearance-style:hover input:not(:disabled)+.choice-card { border-color:var(--blue); }
.choice-tick { display:block; margin-left:auto; visibility:hidden; color:var(--blue); flex:none; }
.choice-card[aria-pressed=true] .choice-tick { visibility:visible; }
fieldset:disabled .choice-card { opacity:.45; cursor:default; }

.disclosure-summary {
  display:flex; align-items:center; gap:12px; min-height:44px; padding:0; list-style:none; cursor:pointer;
  font:400 var(--label-size)/1.4 var(--font); letter-spacing:0;
}
.disclosure-summary::-webkit-details-marker { display:none; }
.disclosure-summary::after { content:none; }
.disclosure-label { flex:1; min-width:0; }
.disclosure-summary>.ui-icon { margin-left:auto; transition:transform .2s; }
.disclosure-summary[data-variant=faq] { padding-block:20px; font-size:18px; }
.disclosure-summary[data-variant=compact] { font-size:var(--caption-size); }
details[open]>.disclosure-summary .ui-icon-chevron-down { transform:rotate(180deg); }
details[open]>.disclosure-summary .ui-icon-plus { transform:rotate(45deg); }
.giving-note-link { display:inline-flex; align-items:center; gap:8px; font-size:var(--caption-size); line-height:1.4; }
#giving { --action-link-color:var(--white); --action-focus-color:var(--white); }

@media(max-width:650px) {
  .button-secondary { background:none; }
  .button-secondary:hover:not(:disabled) { background:var(--wash); }
  .choice-card-row { min-height:64px; padding:10px 12px; gap:12px; }
  .choice-card-tile { min-height:72px; padding:8px 4px; }
  .disclosure-summary[data-variant=faq] { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) {
  .button,.icon-button,.choice-card,.disclosure-summary>.ui-icon { transition:none; }
}
@media(forced-colors:active) {
  .button,.icon-button,.segment,.choice-card { outline:1px solid ButtonText; }
  .choice-card[aria-pressed=true],input:checked+.choice-card { outline:2px solid Highlight; }
}

.action-center { justify-content:center; text-align:center; }
