/* Clean compact PC phone header v26
   Fixes desktop/laptop fit and replaces the old SNS buttons with a compact phone CTA.
   Mobile under 821px keeps the existing mobile header behavior. */

@media (min-width: 1081px) {
  header.site-header {
    align-items: center !important;
  }

  header.site-header.kb-header-direct {
    display: grid !important;
    grid-template-columns: minmax(300px, 380px) minmax(0, 1fr) auto !important;
    gap: 26px !important;
    padding-left: max(24px, calc((100vw - 1240px) / 2)) !important;
    padding-right: max(24px, calc((100vw - 1240px) / 2)) !important;
  }

  header.site-header.kb-header-wrap > .header-inner {
    width: min(1240px, calc(100% - 48px)) !important;
    display: grid !important;
    grid-template-columns: minmax(300px, 380px) minmax(0, 1fr) auto !important;
    gap: 26px !important;
    align-items: center !important;
  }

  header.site-header .brand {
    min-width: 0 !important;
    max-width: 380px !important;
  }

  header.site-header .brand-mark {
    width: 46px !important;
    height: 46px !important;
    flex: 0 0 46px !important;
  }

  header.site-header .brand-main {
    font-size: 22px !important;
    line-height: 1.15 !important;
    letter-spacing: .035em !important;
    white-space: nowrap !important;
  }

  header.site-header .brand-sub {
    font-size: 10px !important;
    line-height: 1.25 !important;
    letter-spacing: .11em !important;
    white-space: nowrap !important;
  }

  header.site-header .site-nav {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 18px !important;
    min-width: 0 !important;
  }

  header.site-header .site-nav a {
    font-size: 13px !important;
    white-space: nowrap !important;
  }

  header.site-header .pc-phone-header {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    min-width: 0 !important;
  }

  header.site-header .header-phone-cta {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 5px 12px 5px 7px !important;
    border-radius: 999px !important;
    text-decoration: none !important;
    color: #f0f6ff !important;
    background:
      linear-gradient(135deg, rgba(6,199,85,.20), rgba(201,168,76,.08)),
      rgba(5,16,34,.94) !important;
    border: 1px solid rgba(201,168,76,.42) !important;
    box-shadow: 0 10px 26px rgba(0,0,0,.24), 0 0 18px rgba(6,199,85,.10) !important;
    white-space: nowrap !important;
  }

  header.site-header .header-phone-icon {
    width: 29px !important;
    height: 29px !important;
    min-width: 29px !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #fff !important;
    background: linear-gradient(135deg, #06c755, #75d64d) !important;
    box-shadow: 0 0 18px rgba(6,199,85,.28) !important;
    font-size: 16px !important;
    line-height: 1 !important;
    font-family: system-ui, sans-serif !important;
  }

  header.site-header .header-phone-text {
    display: flex !important;
    flex-direction: column !important;
    gap: 1px !important;
    line-height: 1.05 !important;
  }

  header.site-header .header-phone-label {
    color: #c9a84c !important;
    font-size: 9px !important;
    letter-spacing: .04em !important;
    font-weight: 700 !important;
    line-height: 1 !important;
  }

  header.site-header .header-phone-text strong {
    display: block !important;
    color: #fff !important;
    font-family: "Noto Sans JP", system-ui, sans-serif !important;
    font-size: 18px !important;
    letter-spacing: .02em !important;
    font-weight: 800 !important;
    line-height: 1 !important;
  }
}

@media (min-width: 1081px) and (max-width: 1320px) {
  header.site-header.kb-header-direct {
    grid-template-columns: minmax(260px, 330px) minmax(0, 1fr) auto !important;
    gap: 18px !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  header.site-header.kb-header-wrap > .header-inner {
    width: calc(100% - 36px) !important;
    grid-template-columns: minmax(260px, 330px) minmax(0, 1fr) auto !important;
    gap: 18px !important;
  }

  header.site-header .brand {
    max-width: 330px !important;
  }

  header.site-header .brand-mark {
    width: 42px !important;
    height: 42px !important;
    flex-basis: 42px !important;
  }

  header.site-header .brand-main {
    font-size: 19px !important;
    letter-spacing: .02em !important;
  }

  header.site-header .brand-sub {
    font-size: 9px !important;
    letter-spacing: .09em !important;
  }

  header.site-header .site-nav {
    gap: 12px !important;
  }

  header.site-header .site-nav a {
    font-size: 12px !important;
  }

  header.site-header .header-phone-cta {
    height: 38px !important;
    min-height: 38px !important;
    padding: 4px 10px 4px 6px !important;
    gap: 6px !important;
  }

  header.site-header .header-phone-icon {
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    font-size: 14px !important;
  }

  header.site-header .header-phone-label {
    display: none !important;
  }

  header.site-header .header-phone-text strong {
    font-size: 15px !important;
  }
}

@media (min-width: 821px) and (max-width: 1080px) {
  header.site-header.kb-header-direct {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    gap: 10px !important;
    align-items: center !important;
    padding: 10px 14px !important;
  }

  header.site-header.kb-header-wrap > .header-inner {
    width: calc(100% - 28px) !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    gap: 10px !important;
    align-items: center !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }

  header.site-header .brand {
    min-width: 0 !important;
  }

  header.site-header .brand-mark {
    width: 38px !important;
    height: 38px !important;
    flex: 0 0 38px !important;
  }

  header.site-header .brand-main {
    font-size: 17px !important;
    line-height: 1.12 !important;
    letter-spacing: .02em !important;
    white-space: nowrap !important;
  }

  header.site-header .brand-sub {
    font-size: 8px !important;
    letter-spacing: .08em !important;
    white-space: nowrap !important;
  }

  header.site-header .site-nav {
    grid-column: 1 / -1 !important;
  }

  header.site-header .pc-phone-header {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
  }

  header.site-header .header-phone-cta {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    height: 36px !important;
    min-height: 36px !important;
    padding: 4px 9px 4px 5px !important;
    border-radius: 999px !important;
    text-decoration: none !important;
    color: #fff !important;
    background:
      linear-gradient(135deg, rgba(6,199,85,.20), rgba(201,168,76,.08)),
      rgba(5,16,34,.94) !important;
    border: 1px solid rgba(201,168,76,.42) !important;
    white-space: nowrap !important;
  }

  header.site-header .header-phone-icon {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #fff !important;
    background: linear-gradient(135deg, #06c755, #75d64d) !important;
    font-size: 13px !important;
    line-height: 1 !important;
    font-family: system-ui, sans-serif !important;
  }

  header.site-header .header-phone-label {
    display: none !important;
  }

  header.site-header .header-phone-text {
    display: block !important;
    line-height: 1 !important;
  }

  header.site-header .header-phone-text strong {
    color: #fff !important;
    font-size: 14px !important;
    line-height: 1 !important;
    font-family: "Noto Sans JP", system-ui, sans-serif !important;
    font-weight: 800 !important;
  }

  header.site-header .nav-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 36px !important;
    padding: 0 11px !important;
    font-size: 10px !important;
  }
}

@media (max-width: 820px) {
  header.site-header .pc-phone-header {
    display: none !important;
  }
}
