@charset "utf-8";
/* ==========================================
   insurance page styles
   ========================================== */
@layer base {
body { margin: 0; background: #fff; -webkit-font-smoothing: antialiased; }
  a { color: inherit; text-decoration: none; transition: opacity .2s ease; }
  a { transition: transform .28s cubic-bezier(.34,1.3,.64,1), box-shadow .28s ease, background .28s ease, opacity .2s ease; }
  a:hover { opacity: .78; }
  @media (min-width: 768px) { .om-spc { display: none !important; } }
  html, body { overflow-x: clip; }
  @media all {
    .bleed { position: relative; }
    .bleed::before, .bleed::after { content: ""; position: absolute; top: 0; bottom: 0; width: 4000px; background: inherit; pointer-events: none; }
    .bleed::before { right: 100%; }
    .bleed::after { left: 100%; }
  }
  a[style*="border-radius: 999px"]:hover, a[style*="border-radius: 10px"]:hover, a[style*="border: 1px solid #fff"]:hover { opacity: 1; transform: translateY(-4px); box-shadow: 0 10px 24px rgba(66,178,145,.26); }
  span[style*="cursor: pointer"] { transition: transform .28s cubic-bezier(.34,1.3,.64,1), box-shadow .28s ease, background .2s ease, color .2s ease, border-color .2s ease; }
  span[style*="cursor: pointer"]:hover { transform: translateY(-4px); box-shadow: 0 10px 24px rgba(66,178,145,.26); }
  span[style*="border-radius: 999px"] { transition: transform .3s cubic-bezier(.34,1.3,.64,1), box-shadow .3s ease; }
  span[style*="icons/i58"], span[style*="icons/i59"] { transition: transform .3s cubic-bezier(.34,1.3,.64,1), filter .3s ease; }
  a:hover span[style*="icons/i58"], a:hover span[style*="icons/i59"] { transform: translateY(-4px); filter: drop-shadow(0 7px 10px rgba(66,178,145,.35)); }
  a:hover span[style*="border: 1px solid #cfe3d9"] { transform: translateY(-4px); box-shadow: 0 8px 18px rgba(66,178,145,.28); }
  a:hover span[style*="rgba(255,255,255,.8)"] { transform: translateY(-4px); box-shadow: 0 8px 18px rgba(0,0,0,.18); }
  a:hover span[style*="letter-spacing: .1em"] { text-decoration: underline; text-underline-offset: 7px; text-decoration-thickness: 1px; }
  @media (max-width: 767px) {
    .sp-g2 { grid-template-columns: minmax(0, 1fr) !important; gap: 24px !important; }
    .sp-g2 > div:first-child { order: 1 !important; }
    .sp-g2 > div:last-child { order: 2 !important; }
    .sp-bleed { height: 195px !important; border-radius: 13px !important; margin: 0 16px !important; }
    .sp-intro-img { display: none !important; }
    .sp-padr { padding: 0 36px !important; }
    .sp-padl { padding: 0 36px !important; }
    .sp-h1 { font-size: 24px !important; line-height: 42px !important; }
    .sp-sec { margin-top: 89px !important; padding: 0 36px !important; }
    .sp-eyebrow { font-size: 16px !important; }
    .sp-h2 { font-size: 24px !important; }
    .sp-g3 { grid-template-columns: minmax(0, 1fr) !important; gap: 46px !important; margin-top: 41px !important; }
    .sp-cases { grid-template-columns: minmax(0, 1fr) !important; gap: 11px !important; margin-top: 37px !important; }
    .sp-case { grid-template-columns: minmax(0, 1fr) !important; padding: 21px 20px 23px !important; justify-items: center !important; text-align: center !important; }
    .sp-case > span { width: 46px !important; height: 46px !important; margin-bottom: 11px !important; }
    .sp-case > div { text-align: left !important; }
    .sp-insec { margin-top: 81px !important; padding: 57px 24px 62px !important; }
    .sp-ins { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
    .sp-ins > div { min-height: 106px !important; gap: 10px !important; padding: 15px 11px !important; }
    .sp-ins span[role="img"] { max-width: 122px !important; height: 36px !important; }
    .sp-ins { width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; }
    .sp-ins > div { min-width: 0 !important; }
    .sp-ins a { font-size: 16px !important; white-space: normal !important; text-align: center !important; line-height: 1.5 !important; gap: 5px !important; }
    .sp-card { margin: 0 12px !important; padding: 40px 0 48px !important; border-radius: 20px !important; }
    .sp-insec { padding-left: 20px !important; padding-right: 20px !important; }
    .sp-ins { grid-template-columns: minmax(0, 1fr) !important; }
    .sp-ins > div { min-height: 0 !important; display: grid !important; grid-template-columns: 130px minmax(0, 1fr) !important; align-items: center !important; justify-items: start !important; gap: 16px !important; padding: 16px 18px !important; }
    .sp-ins > div > div { align-items: flex-start !important; }
    .sp-ins span[role="img"] { max-width: 130px !important; width: 130px !important; height: 40px !important; }
    .sp-ins a { white-space: nowrap !important; text-align: left !important; }
    .sp-case { padding: 20px 18px !important; }
    .sp-case > div:first-child { gap: 16px !important; }
    .sp-case > div:first-child > div > div:nth-child(2) { font-size: 19px !important; letter-spacing: .04em !important; white-space: nowrap; }
    .sp-padr, .sp-padl, .sp-sec { padding-left: 20px !important; padding-right: 20px !important; }
    [style*="font-size: 16px"][style*="line-height"]:not(.om-keep *):not(.sp-keep16):not(a):not(a *):not(label):not(label *):not([style*="font-weight: 500"]):not([style*="font-weight: 700"]):not([style*="font-weight: 800"]):not([style*="Montserrat"]) { font-size: 13px !important; }
    .sp-h1:not(.om-keep *), .sp-h2:not(.om-keep *), .om-h2:not(.om-keep *), [style*="font-size: 32px"]:not(.om-keep *) { font-size: 22px !important; line-height: 1.5 !important; font-weight: 400 !important; -webkit-text-stroke: 0.5px currentColor; paint-order: stroke fill; }
    [style*="font-size: 19px"]:not(.om-keep *), [style*="font-size: 20px"]:not(.om-keep *), [style*="font-size: 21px"]:not(.om-keep *), [style*="font-size: 22px"]:not(.om-keep *), .sp-case > div:first-child > div > div:nth-child(2) { font-size: 17px !important; }
    a:is(:has([style*="i58.svg"]), :has([style*="i59.svg"]), [style*="border: 1px solid #fff"]):not(.om-keep *) [style*="font-size: 16px"], button:not(.om-keep *) { font-size: 13px !important; }
    h2[style*="100vw / 360"], [style*="font-size: calc(21 * 100vw / 360)"] { font-family: heisei-maru-gothic-std, 'Zen Maru Gothic', 'Hiragino Maru Gothic ProN', sans-serif !important; font-size: calc(22 * 100vw / 360) !important; font-weight: 400 !important; line-height: 1.3 !important; -webkit-text-stroke: 0.5px currentColor; paint-order: stroke fill; }
    [style*="margin: 0 calc(20 * 100vw / 360)"] { margin-left: 15px !important; margin-right: 15px !important; }
    [style*="padding: calc("][style*="360) 15px calc("]:not([style*="position: relative"]) { padding-top: calc(50 * 100vw / 360) !important; padding-bottom: calc(50 * 100vw / 360) !important; }
    .om-keep { width: 480px !important; zoom: var(--spz) !important; }
    .om-inner > :not(.om-keep):not(.om-spc) { display: none !important; }
  }
}

.cau { margin-top: calc(4.16667vw); text-align: center; font-family: "Noto Sans JP", sans-serif; font-size: calc(3.88889vw); line-height: 1.2; font-weight: 500; letter-spacing: 0.06em; color: rgb(34, 34, 34); white-space: nowrap; }
.cax { display: flex; align-items: center; gap: calc(2.77778vw); padding-left: 0px; }
.cay { margin: 0px; font-family: "Noto Sans JP", sans-serif; font-size: calc(5vw); line-height: 1.2; font-weight: 500; letter-spacing: 0.02em; color: rgb(255, 255, 255); white-space: nowrap; }
.caz { margin-top: calc(2.77778vw); padding-left: calc(11.6667vw); font-family: Montserrat, sans-serif; font-weight: 700; font-size: calc(2.5vw); letter-spacing: 0.06em; color: rgb(255, 255, 255); }
.cb0 { margin: calc(4.16667vw) 0px 0px; font-family: "Noto Sans JP", sans-serif; font-size: calc(3.33333vw); line-height: calc(7.5vw); letter-spacing: 0.04em; color: rgb(255, 255, 255); }
.cb1 { margin: calc(8.33333vw) 0px 0px; display: flex; flex-direction: column; gap: calc(4.16667vw); }
.cb2 { background: rgb(255, 255, 255); border-radius: calc(1.11111vw); min-height: calc(19.4444vw); box-sizing: border-box; padding: calc(5.27778vw) calc(5vw) calc(8.61111vw) calc(4.16667vw); cursor: pointer; box-shadow: rgb(54, 141, 115) calc(1.66667vw) calc(1.66667vw) 0px; }
.cb3 { display: flex; align-items: flex-start; }
.cb4 { margin-left: calc(5.55556vw); flex: 1 1 0%; }
.cb7 { margin-top: calc(2.22222vw); position: relative; width: calc(3.88889vw); height: calc(3.88889vw); flex: 0 0 auto; display: block; }
.cb8 { position: absolute; left: 0px; right: 0px; top: 50%; height: 1px; background: rgb(181, 181, 181); display: block; }
.cb9 { position: absolute; top: 0px; bottom: 0px; left: 50%; width: 1px; background: rgb(66, 178, 145); display: block; opacity: 0; }
.cba { margin-top: calc(4.44444vw); padding-left: calc(0.833333vw); font-family: "Noto Sans JP", sans-serif; font-size: calc(3.33333vw); line-height: calc(7.5vw); letter-spacing: 0.04em; color: rgb(34, 34, 34); }
.cbb { margin: calc(8.33333vw) 0px 0px; font-family: "Noto Sans JP", sans-serif; font-size: calc(3.33333vw); line-height: calc(7.5vw); letter-spacing: 0.04em; color: rgb(255, 255, 255); }
.cbd { margin: calc(8.33333vw) 0px 0px; display: flex; align-items: center; justify-content: center; gap: calc(3.33333vw); white-space: nowrap; }
.cbj { margin-top: 160px; padding: 0px 120px; }
.cbm { margin-top: 96px; display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); gap: 40px; }
.cbo { margin: 60px 0px 0px; text-align: center; font-family: "Noto Sans JP", sans-serif; font-size: 21px; font-weight: 700; letter-spacing: 0.12em; color: rgb(34, 34, 34); }
.cbq { margin-top: 0px; background: rgb(66, 178, 145); padding: 140px 180px 150px; }
.cbr { display: flex; align-items: flex-end; gap: 26px; flex-wrap: wrap; color: rgb(255, 255, 255); }
.cbs { margin: 0px; font-family: heisei-maru-gothic-std, "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif; font-size: 32px; font-weight: 400; letter-spacing: 0.12em; line-height: 1.2; }
.cbt { padding-bottom: 6px; font-family: Montserrat, sans-serif; font-weight: 700; font-size: 16px; letter-spacing: 0.1em; }
.cbu { margin-top: 60px; font-size: 18px; letter-spacing: 0.12em; color: rgb(255, 255, 255); }
.cbv { margin-top: 110px; display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 76px; align-items: start; }
.cbw { background: rgb(255, 255, 255); border-radius: 6px; padding: 32px 36px; cursor: pointer; box-shadow: rgb(54, 141, 115) 14px 14px 0px; transition: box-shadow 0.25s; }
.cbx { flex: 1 1 0%; }
.cby { font-family: Montserrat, sans-serif; font-weight: 700; font-size: 16px; letter-spacing: 0.08em; color: rgb(66, 178, 145); }
.cbz { margin-top: 6px; font-family: "Noto Sans JP", sans-serif; font-size: 21px; font-weight: 400; letter-spacing: 0.12em; color: rgb(34, 34, 34); }
.cc0 { width: 34px; height: 34px; flex: 0 0 auto; position: relative; display: block; }
.cc1 { position: absolute; left: 0px; top: 15px; width: 34px; height: 4px; background: rgb(181, 181, 181); display: block; }
.cc2 { position: absolute; left: 15px; top: 0px; width: 4px; height: 34px; background: rgb(66, 178, 145); display: block; opacity: 0; }
.cc3 { margin-top: 44px; font-size: 16px; line-height: 34px; letter-spacing: 0.06em; color: rgb(34, 34, 34); }
.cc4 { margin-top: 96px; text-align: center; font-size: 16px; line-height: 34px; letter-spacing: 0.06em; color: rgb(255, 255, 255); }
.cc5 { margin-top: 0px; background: rgb(255, 255, 255); padding: 140px 80px; }
.cc6 { margin-top: 22px; font-family: heisei-maru-gothic-std, "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif; font-size: 32px; font-weight: 400; letter-spacing: 0.08em; }
.cc7 { margin-top: 54px; display: grid; grid-template-columns: repeat(4, minmax(0px, 1fr)); gap: 20px; }
.cc8 { background: rgb(243, 248, 243); border-radius: 14px; min-height: 180px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 24px; box-sizing: border-box; }
.cc9 { font-size: 16px; letter-spacing: 0.06em; white-space: nowrap; color: rgb(51, 51, 51); display: flex; align-items: center; gap: 8px; }
.cca { background: rgb(243, 248, 243); padding: 130px 0px 150px; }
.ccb { margin-top: 0px; display: grid; grid-template-columns: minmax(0px, 1fr) 640px; gap: 80px; align-items: center; }
.ccc { padding-left: 80px; }
.ccd { margin: 0px; font-family: heisei-maru-gothic-std, "Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif; font-size: 32px; font-weight: 400; line-height: 58px; letter-spacing: 0.12em; color: rgb(17, 17, 17); }
.cce { margin-top: 24px; font-size: 16px; line-height: 34px; letter-spacing: 0.06em; color: rgb(34, 34, 34); display: flex; flex-direction: column; gap: 44px; }
.ccf { margin-top: 52px; display: inline-flex; align-items: center; gap: 34px; }
.ccg { font-size: 16px; font-weight: 700; letter-spacing: 0.1em; color: rgb(66, 178, 145); }