/* November 7 consistency correction. One geometry per master; materials stay branded.
   Decorative media keeps its own masks. Actual controls always retain effect bleed. */
body[data-button-system] {
  --button-radius: 14px;
  --button-height: 50px;
  --button-py: 13px;
  --button-px: 22px;
  --button-gap: 12px;
  --button-shadow: inset 0 1px 1px #ffffffb0, inset 0 -2px 2px #00000020,
    0 2px 2px #30243812, 0 6px 10px #30243818;
  --button-focus: #95511c;
}
body[data-material=allworth][data-button-system] { --button-radius:12px }
body[data-material=iaderosa][data-button-system] { --button-radius:16px }
body[data-material=bone][data-button-system] { --button-radius:10px }

body[data-material][data-button-system] :is(.btn,button) {
  --soft-shape:var(--button-radius);
  position:relative;
  isolation:isolate;
  box-sizing:border-box;
  align-items:center;
  justify-content:center;
  gap:var(--button-gap);
  width:auto;
  min-width:0;
  max-width:100%;
  height:auto;
  min-height:var(--button-height);
  padding:var(--button-py) var(--button-px);
  border:0!important;
  border-radius:var(--button-radius)!important;
  background:transparent!important;
  color:var(--control-ink)!important;
  box-shadow:none!important;
  font-family:var(--font);
  font-size:.875rem;
  font-weight:500;
  line-height:1.4;
  letter-spacing:normal;
  text-align:center;
  text-decoration:none;
  white-space:normal;
  overflow:visible;
  overflow-wrap:anywhere;
  clip-path:none;
  transform:none;
  filter:none;
  transition:color .18s;
}
body[data-material][data-button-system] .btn { display:inline-flex }
body[data-material][data-button-system] :is(.btn,button)::before {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  border:1px solid #ffffff48;
  border-radius:inherit;
  clip-path:none;
  background-image:radial-gradient(ellipse 130px 18px at var(--hx,35%) 0%,#ffffff70,transparent 95%),
    linear-gradient(130deg,#ffffff12,transparent 52%,#00000013),var(--surface-grain),
    linear-gradient(var(--control-top),var(--control-bottom));
  background-blend-mode:normal,normal,multiply,normal;
  background-size:auto,auto,190px,auto;
  box-shadow:var(--button-shadow);
  transform:none;
  filter:none;
  transition:transform .18s,filter .18s,box-shadow .18s;
}
/* One shadow follows the exact border. Remove the former detached oval shadow. */
body[data-material][data-button-system] :is(.btn,button):not(.motion-toggle)::after { content:none }
body[data-material][data-button-system] :is(.btn,button) svg {
  width:20px;height:20px;flex:0 0 20px;transform:none;
}
body[data-material][data-button-system] :is(.btn,button):focus-visible {
  outline:3px solid var(--button-focus)!important;
  outline-offset:5px!important;
  filter:none!important;
}
@media(hover:hover) and (pointer:fine) {
  body[data-material][data-button-system] :is(.btn,button):not(:disabled):not([aria-disabled=true]):not([aria-busy=true]):hover::before {
    transform:translateY(-1px);filter:brightness(1.035);
    box-shadow:inset 0 1px 1px #ffffffc0,inset 0 -2px 2px #0002,0 7px 12px #30243824;
  }
}
body[data-material][data-button-system] :is(.btn,button):not(:disabled):not([aria-disabled=true]):active::before {
  transform:translateY(1px);filter:brightness(.98);
  box-shadow:inset 0 2px 3px #0002,0 2px 4px #30243820;
}
body[data-material][data-button-system] :is(.btn,button):is(:disabled,[aria-disabled=true],[aria-busy=true]) {
  cursor:default;opacity:.68;
}
body[data-material][data-button-system] :is(.btn,button)[aria-busy=true] { cursor:progress }
body[data-material][data-button-system] :is(.btn,button):is(:disabled,[aria-disabled=true],[aria-busy=true])::before {
  transform:none;filter:none;box-shadow:var(--button-shadow);
}
/* Utility controls use the same contour and light neutral material. */
body[data-material][data-button-system] :is(.motion-toggle,[data-guide-close],[role=tab]) {
  --control-top:#faf9f5;--control-bottom:#e5e0d7;--control-ink:var(--ink,#25222c);
}
body[data-material][data-button-system] [role=tab][aria-selected=true]::before {
  border-color:var(--accent);box-shadow:var(--button-shadow),inset 0 -3px var(--accent);
}
/* Close and phone-only utility icons have a 44px hit area; contour is unchanged. */
body[data-material][data-button-system] [data-guide-close] {
  width:44px;min-width:44px;min-height:44px;padding:8px;flex:none;font-size:1.5rem;
}
body[data-material][data-button-system] :is([data-guide-topic],.btn.tile) {
  justify-content:space-between;text-align:left;
}
body[data-material][data-button-system] .alder-contact-card .btn { width:100% }
body[data-button-system] :is(.form-actions,.guide-options,.alder-entry) { gap:20px }
body[data-button-system] .service-tabs [role=tablist] { gap:20px;flex-wrap:wrap;padding-block:10px }
body[data-button-system] :is(.guide-body,.contact-panel,.introduction-form) { min-width:0 }
body[data-button-system] .introduction-form fieldset { min-width:0 }
body[data-button-system] .dialog-top { padding-block:18px }
/* Outer shells no longer mask controls. Their existing inner image masks remain. */
body[data-material][data-button-system] .core-shell { overflow:visible }
body[data-material=allworth][data-button-system] .worth-hero { overflow:visible }
body[data-material=allworth][data-button-system] .worth-hero-photo { border-bottom-right-radius:42px;overflow:hidden }
body[data-material][data-button-system] .site-header { padding-block:12px;flex-wrap:wrap }
body[data-material][data-button-system] .brand { flex-shrink:0;max-width:100%;white-space:normal }
body[data-material][data-button-system] .brand>span { min-width:0 }
body[data-material][data-button-system] .menu-toggle { flex-shrink:0;white-space:nowrap }
body[data-material][data-button-system] .menu-toggle span { font-size:1.125rem;line-height:1 }
body[data-button-system] .site-header nav { gap:20px }
body[data-material][data-button-system] .guide-launch { position:fixed;right:22px;bottom:22px }
@media(max-width:760px) {
  body[data-button-system] { --button-px:18px }
  /* Allow enlarged text to wrap inside a grid track instead of enlarging the CTA's parent. */
  body[data-button-system] :is(main,section,article,aside,div,figure,fieldset) { min-width:0 }
  body[data-material][data-button-system] :is(h1,h2,h3,p,summary) { overflow-wrap:anywhere }
  body[data-button-system] summary>span:first-child { min-width:0 }
  body[data-material][data-button-system] .motion-toggle {
    font-size:0;width:44px;min-width:44px;min-height:44px;padding:8px;
  }
  body[data-material][data-button-system] .motion-toggle::after {
    content:'Ⅱ';font-size:16px;position:static;background:none;filter:none;opacity:1;
  }
  body[data-material][data-button-system] .motion-toggle[aria-pressed=true]::after { content:'▷' }
  body[data-material][data-button-system] .motion-toggle:disabled::after { content:'—' }
  body[data-material][data-button-system] .guide-launch {
    width:50px;min-width:50px;min-height:50px;padding:13px;right:16px;bottom:18px;
  }
  body[data-material][data-button-system] .site-header nav { gap:12px;padding:22px }
  body[data-material][data-button-system] .alder-entry { grid-template-columns:1fr }
  /* The hidden number column previously trapped the entire directory CTA in 30px. */
  body[data-material][data-button-system].type-directory .service-entry { grid-template-columns:minmax(0,1fr) }
  body[data-material=allworth][data-button-system] .worth-hero-photo { border-radius:0 0 42px 42px }
}
@media(prefers-reduced-motion:reduce) {
  body[data-material][data-button-system] :is(.btn,button),
  body[data-material][data-button-system] :is(.btn,button)::before,
  body[data-material][data-button-system] :is(.btn,button) svg { transition:none;transform:none!important }
}
