/* Public Button context.
 * PR18 geometry and computed material are frozen here; page CSS owns layout only.
 * Legacy public layout rules still carry high-priority geometry declarations. The
 * context layer uses priority flags only for display/height/padding compatibility.
 */
html body.page-faq.app-ui:not(.is-admin-area):not(.is-staff-area) .button[data-button-role] {
  min-height: 44px;
}
html body.page-faq.app-ui .v103-public-menu nav .native-cta[data-button-role][data-button-geometry="preserve"] {
  border-radius: 14px;
}

html body.v00100-ui.page-home:not(.is-admin-area):not(.is-staff-area) [data-button-role] {
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  gap: var(--button-icon-gap);
  font-family: inherit;
  font-weight: var(--button-font-weight);
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  text-shadow: none;
  white-space: nowrap;
  transition: var(--button-transition);
}

/* Registration entry owns its CTA geometry here so legacy route styles cannot
 * shrink the gender choices after the shared button system is loaded. */
html body.page-start.v00100-ui [data-registration-cta]:not([data-button-geometry="preserve"]) {
  min-height: 56px !important;
  padding-inline: 28px !important;
}

html body.v00100-ui.page-home:not(.is-admin-area):not(.is-staff-area) [data-button-role] :is(.koirea-ui-icon, svg),
html body.v00100-ui.page-home:not(.is-admin-area):not(.is-staff-area) [data-button-role] > svg {
  color: inherit;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}

html body.v00100-ui.page-home:not(.is-admin-area):not(.is-staff-area) [data-button-role="primary"] {
  border-color: var(--button-primary-border);
  background-color: var(--button-primary-center);
  background-image: linear-gradient(90deg, var(--button-primary-start) 0%, var(--button-primary-center) 52%, var(--button-primary-end) 100%);
  color: var(--button-primary-text);
  box-shadow: var(--button-shadow-primary);
}

html body.v00100-ui.page-home:not(.is-admin-area):not(.is-staff-area) [data-button-role="secondary"] {
  border-color: var(--button-secondary-border);
  background-color: #fff;
  background-image: none;
  color: var(--button-secondary-text);
  box-shadow: var(--button-shadow-subtle);
}

html body.v00100-ui.page-home.v135-core-ui-lock .v103-public-header [data-button-role] {
  display: inline-flex !important;
  min-height: 44px !important;
  padding-inline: 18px !important;
  border-style: solid;
  border-width: 1px;
  border-radius: 999px;
  color: #3b4353;
  font-size: 13px;
  font-weight: 850;
  line-height: 1.2;
}

html body.v00100-ui.page-home.v135-core-ui-lock .v103-public-header [data-button-role="primary"] {
  border-color: var(--button-primary-border);
  color: var(--button-primary-text);
  font-weight: 850;
  box-shadow: var(--button-shadow-primary);
}

/* Registration gender selection keeps one route-scoped material owner after
 * the shared semantic role is assigned. */
html body.is-guest .v103-public-menu nav .native-cta[data-button-role="primary"] {
  border-radius: var(--button-radius-default);
}

html body.page-start .v951-gender-button[data-button-role="primary"] {
  border: 1px solid var(--button-primary-border);
  border-radius: 999px;
  background-color: var(--button-primary-center);
  background-image: linear-gradient(90deg, var(--button-primary-start) 0%, var(--button-primary-center) 52%, var(--button-primary-end) 100%);
  color: var(--button-primary-text);
  box-shadow: var(--button-shadow-primary);
  font-weight: var(--button-font-weight);
  letter-spacing: .02em;
}


html body.v00100-ui.page-home.v135-core-ui-lock .v103-public-header [data-button-role="secondary"] {
  color: #3b4353;
  font-weight: 850;
}

html body.v00100-ui.page-home.v135-core-ui-lock .k33-home :is(.k33-btn-primary, .k33-result-cta, .v148-showcase-cta)[data-button-role="primary"] {
  height: 65px !important;
  min-height: 65px !important;
  padding: 0 26px !important;
  border: 1px solid var(--button-primary-border);
  border-radius: var(--button-radius-default);
  background-color: var(--button-primary-center);
  background-image: linear-gradient(90deg, var(--button-primary-start) 0%, var(--button-primary-center) 52%, var(--button-primary-end) 100%);
  color: var(--button-primary-text);
  box-shadow: var(--button-shadow-elevated);
  font-size: 15px;
}

html body.v00100-ui.page-home.v135-core-ui-lock .k33-home .k33-hero-actions .k33-btn-primary[data-button-role] {
  font-size: 25px;
}

html body.v00100-ui.page-home.v135-core-ui-lock .k33-home .v146-guide-link[data-button-role="secondary"] {
  border-style: solid;
  border-width: 1px;
  border-radius: var(--button-radius-default);
}

html body.v00100-ui.page-home.v135-core-ui-lock .k33-home .v148-showcase-cta[data-button-role] {
  font-size: 23px;
}

html body.v00100-ui.page-home .k33-text-link[data-button-role="tertiary"] {
  min-height: 0 !important;
  padding: 0 !important;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #171416;
  box-shadow: none;
  font-size: 13px;
}

html body.v00100-ui.page-home .k33-text-link[data-button-role] :is(svg, .koirea-ui-icon) {
  width: 13px;
  height: 13px;
}

html body.v00100-ui.page-home.v135-core-ui-lock .k33-home .k33-btn-light[data-button-role="primary"] {
  height: 58px !important;
  min-height: 58px !important;
  padding-inline: 25px !important;
  border: 1px solid var(--button-primary-border);
  border-radius: 16px;
  background: transparent linear-gradient(90deg, var(--button-primary-start) 0%, var(--button-primary-center) 52%, var(--button-primary-end) 100%);
  color: #a64051;
  box-shadow: var(--button-shadow-primary);
  font-size: 15px;
}

html body.v00100-ui.page-home:not(.is-admin-area):not(.is-staff-area) [data-koirea-placement="mobile_sticky"][data-button-role="primary"] {
  padding: 0 !important;
  border-width: 0;
  border-radius: 13px;
  background: transparent linear-gradient(90deg, var(--button-primary-start) 0%, var(--button-primary-center) 52%, var(--button-primary-end) 100%);
  font-size: 12px;
}

html body.v00100-ui.page-home [data-button-elevated="true"] {
  box-shadow: var(--button-shadow-elevated);
}

@media (hover: hover) and (pointer: fine) {
  html body.page-start .v951-gender-button[data-button-role="primary"]:hover,
  html body.v00100-ui.page-home [data-button-role="primary"]:hover {
    border-color: #f52966;
    background-color: #f61d5b;
    background-image: linear-gradient(90deg, #fa3d74 0%, #f61d5b 52%, #fa507f 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), inset 0 -1px 0 rgba(137, 13, 52, .12), 0 12px 27px rgba(244, 43, 98, .27);
    transform: translateY(-1px);
  }

  html body.v00100-ui.page-home [data-button-role="secondary"]:hover {
    border-color: #f33d70;
    background-color: #fff;
    background-image: linear-gradient(180deg, #fff 0%, #fff0f5 100%);
    color: #d82355;
    box-shadow: inset 0 1px 0 #fff, 0 7px 17px rgba(244, 43, 98, .13);
    transform: translateY(-1px);
  }

  html body.v00100-ui.page-home [data-button-elevated="true"]:hover {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 16px 34px rgba(244, 43, 98, .31);
  }
}

html body.page-start .v951-gender-button[data-button-role="primary"]:active,
html body.v00100-ui.page-home [data-button-role="primary"]:active {
  border-color: #cf174d;
  background-color: #ca1649;
  background-image: linear-gradient(90deg, #dd2459 0%, #ca1649 52%, #df315f 100%);
  box-shadow: inset 0 3px 7px rgba(104, 7, 36, .24);
  transform: translateY(1px) scale(.99);
}

@media (min-width: 901px) and (max-width: 1100px) {
  html body.v00100-ui.page-home.v135-core-ui-lock .k33-home .k33-hero-actions .k33-btn-primary[data-button-role] {
    font-size: 20px;
  }
}

html body.v00100-ui.page-home [data-button-role="secondary"]:active {
  background: #ffe5ed;
  box-shadow: inset 0 2px 5px rgba(173, 31, 70, .15);
  transform: translateY(1px);
}

html body.v00100-ui.page-home [data-button-role]:focus-visible {
  outline: 3px solid var(--brand-primary-focus);
  outline-offset: 3px;
}

@media (max-width: 760px) {
  html body.v00100-ui.page-home.v135-core-ui-lock .v103-public-header [data-button-role] {
    padding-inline: 8px !important;
    border-radius: 999px;
    font-size: 12px;
    line-height: 1.15;
  }

  html body.v00100-ui.page-home.v135-core-ui-lock .k33-home :is(.k33-btn-primary, .k33-result-cta, .v148-showcase-cta)[data-button-role="primary"] {
    height: 60px !important;
    min-height: 60px !important;
    padding-inline: 22px !important;
  }

  html body.v00100-ui.page-home.v135-core-ui-lock .k33-home .k33-hero-actions .k33-btn-primary[data-button-role] {
    font-size: 20px;
  }

  html body.v00100-ui.page-home.v135-core-ui-lock .k33-home .v148-showcase-cta[data-button-role] {
    font-size: 18px;
  }

  html body.v00100-ui.page-home.v135-core-ui-lock .k33-home .k33-btn-primary[data-button-role]:not(.v148-showcase-cta):not(.k33-hero-actions *) {
    font-size: 13px;
  }

  html body.v00100-ui.page-home.v135-core-ui-lock .k33-home .k33-btn-light[data-button-role="primary"] {
    height: 54px !important;
    min-height: 54px !important;
    padding-inline: 18px !important;
    font-size: 13px;
  }
}

@media (max-width: 370px) {
  html body.v00100-ui.page-home .v103-public-header .guest-mobile-actions .native-cta[data-button-role] {
    padding-inline: 12px !important;
  }
}

@media (max-width: 1100px) {
  html body.v00100-ui.page-home .v103-public-header .v103-public-menu > nav > [data-button-role] {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html body.v00100-ui.page-home [data-button-role] {
    transition-duration: .001ms;
  }
}

/* Recovery controls keep the shared material and a usable touch target. */
html body.v00100-ui.page-home.v135-core-ui-lock .k33-home [data-button-role="primary"]:not(.k33-hero-actions [data-button-role]):not(.v148-phone [data-button-role]) {
  background: #d9365d; border-color: #d9365d; border-radius: 10px; box-shadow: none; transform: none;
}
html body.v00100-ui.page-home.v135-core-ui-lock .k33-home [data-button-role="primary"]:not(.k33-hero-actions [data-button-role]):not(.v148-phone [data-button-role]):hover { background: #c82d52; border-color: #c82d52; color: #fff; box-shadow: none; transform: none; }
html body.v00100-ui.page-home.v135-core-ui-lock .k33-home [data-button-role="primary"]:not(.k33-hero-actions [data-button-role]):not(.v148-phone [data-button-role]):focus-visible { outline: 3px solid #d9365d; outline-offset: 3px; }
html body.v00100-ui .koirea-auth-recovery [data-button-role] {
  min-height: 48px !important;
}

/* Approved PR109 component material. Existing page owners retain layout.
 * Public TOP Hero/header/phone controls keep their approved material owner. */
html body:not(.is-admin-area):not(.is-staff-area):not(.page-home):not(.is-logged-in) [data-button-role]:not(.native-topbar [data-button-role]) {
  --button-primary-border: #d9365d;
  --button-primary-start: #d9365d;
  --button-primary-center: #d9365d;
  --button-primary-end: #d9365d;
  --button-radius-default: 10px;
  --button-shadow-primary: none;
  --button-shadow-neutral: none;
  --button-secondary-border: #cbd2dd;
  --button-secondary-surface: #fff;
  --button-secondary-text: #17233a;
  --button-neutral-bg: #fff;
  --button-neutral-text: #17233a;
  background-image: none;
  box-shadow: none;
  transform: none;
  border-radius: 10px;
}
html body:not(.is-admin-area):not(.is-staff-area):not(.page-home):not(.is-logged-in) [data-button-role="primary"]:not(.native-topbar [data-button-role]) { background-color: #d9365d; border-color: #d9365d; color: #fff; }
html body:not(.is-admin-area):not(.is-staff-area):not(.page-home):not(.is-logged-in) [data-button-role]:not(.native-topbar [data-button-role]):is([data-button-role="secondary"]:not(.native-topbar [data-button-role]),[data-button-role="neutral"]:not(.native-topbar [data-button-role])) { background-color: #fff; color: #17233a; border-color: #cbd2dd; }
html body:not(.is-admin-area):not(.is-staff-area):not(.page-home):not(.is-logged-in) [data-button-role]:not(.native-topbar [data-button-role]):hover { background-image: none; background-color: #f7f8fa; box-shadow: none; transform: none; color: #17233a; }
html body:not(.is-admin-area):not(.is-staff-area):not(.page-home):not(.is-logged-in) [data-button-role="primary"]:not(.native-topbar [data-button-role]):hover { background-color: #c82d52; border-color: #c82d52; color: #fff; }
html body:not(.is-admin-area):not(.is-staff-area):not(.page-home):not(.is-logged-in) [data-button-role="primary"]:not(.native-topbar [data-button-role]):active { background-color: #b72a4c; color: #fff; }
html body:not(.is-admin-area):not(.is-staff-area):not(.page-home):not(.is-logged-in) [data-button-role]:not(.native-topbar [data-button-role]):focus-visible { outline: 3px solid #d9365d; outline-offset: 3px; }
html body:not(.is-admin-area):not(.is-staff-area):not(.page-home):not(.is-logged-in) [data-button-role]:not(.native-topbar [data-button-role]):is([disabled],[aria-disabled="true"]) { background: #eceff3; color: #697386; border-color: #d5d9df; cursor: not-allowed; }
