/* Shared service detail design. All rules are scoped away from the homepage. */
/* Symptom layouts are defined below the legacy responsive rules. */
body #contact:has(.contact-hub), body.lower_page #contact:has(.contact-hub) { padding: 72px 0; background: linear-gradient(115deg,#09264d 0%,#104c89 60%,#126bae 100%); color: #fff; }
body #contact:has(.contact-hub)::before, body #contact:has(.contact-hub)::after { display: none; }
body #contact .contact-hub { max-width: 1180px; text-align: left; }
.contact-hub-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 44px; }
.contact-hub h2 > span { color: #b5e5ff; }
.contact-hub h2, .contact-hub-form > strong { word-break: auto-phrase; overflow-wrap: break-word; text-wrap: pretty; }
.contact-hub .contact-hub-area { display: flex; align-items: baseline; gap: 10px; margin: 20px 0 0; color: #dbeaff; font: 500 15px/1.8 var(--font-jp); }
.contact-hub .contact-hub-assurance { flex-shrink: 0; margin: 0; padding: 4px 0 4px 32px; border-left: 1px solid #ffffff50; color: #e4efff; }
.contact-hub-assurance > span { display: block; font: 500 14px/1.8 var(--font-jp); }
.contact-hub-assurance > strong { display: block; margin: 8px 0 12px; color: #ffdc86; font: 800 56px/1.1 var(--font-jp); }
.contact-hub-promises { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; list-style: none; margin: 0 0 40px; padding: 24px 0; border-top: 1px solid #ffffff45; border-bottom: 1px solid #ffffff45; }
.contact-hub-promises li { display: flex; align-items: baseline; gap: 12px; min-width: 0; }
.contact-hub-promises i { color: #ffdc86; font-size: 18px; flex-shrink: 0; }
.contact-hub-promises strong { display: block; font: 700 17px/1.7 var(--font-jp); color: #fff; word-break: auto-phrase; }
.contact-hub-promises span { display: block; margin-top: 8px; font: 400 14px/1.8 var(--font-jp); color: #dbeaff; }
.contact-hub .contact-hub-eyebrow { margin: 0 0 16px; font: 600 13px/1.5 'Inter',sans-serif; color: #a5d8ff; }
body #contact .contact-hub h2 { margin: 0; padding: 0; color: #fff; font: 800 40px/1.4 var(--font-jp); text-align: left; }
.contact-hub .contact-hub-lead { margin: 0; font: 500 18px/1.8 var(--font-jp); color: #dbeaff; }
.contact-hub-options { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap: 64px; }
.contact-hub .contact-hub-hours { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 20px; color: #dbeaff; font: 500 14px/1.5 var(--font-jp); }
.contact-hub-hours b { font: 600 16px/1.5 'Inter',sans-serif; color: #fff; }
.contact-hub-call { display: block; padding: 22px 0; border-top: 1px solid #ffffff45; color: #fff; text-decoration: none; }
.contact-hub-call:last-child { border-bottom: 1px solid #ffffff45; }
.contact-hub-label { display: flex; align-items: center; gap: 12px; font: 500 15px/1.5 var(--font-jp); color: #dbeaff; }
.contact-hub-label i { width: 18px; text-align: center; color: #a5d8ff; }
.contact-hub-call-line { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 12px; }
.contact-hub-call strong { color: #fff; font: 600 36px/1.2 'Inter',sans-serif; white-space: nowrap; letter-spacing: 0; }
.contact-hub-call-line > i { display: grid; place-items: center; width: 40px; height: 40px; flex-shrink: 0; border: 1px solid #ffffff60; border-radius: 50%; font-size: 16px; transition: background .2s; }
.contact-hub-call:hover .contact-hub-call-line > i { background: #ffffff25; }
.contact-hub-form { display: flex; flex-direction: column; padding: 32px; border-radius: 4px; color: #143b69; background: #f5faff; text-decoration: none; border-top: 4px solid #7ac7ff; transition: background .2s; }
.contact-hub-form-top { display: flex; align-items: center; gap: 14px; font: 700 15px/1.5 var(--font-jp); }
.contact-hub-form-top > i { font-size: 24px; color: #1264c4; }
.contact-hub-form > strong { margin: 24px 0 14px; font: 700 30px/1.5 var(--font-jp); }
.contact-hub-form-note { font: 400 14px/1.7 var(--font-jp); color: #476483; }
.contact-hub-form-bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: auto; padding-top: 24px; font: 700 16px/1.5 var(--font-jp); }
.contact-hub-form-bottom > i { display: grid; place-items: center; width: 40px; height: 40px; background: #1264c4; color: #fff; border-radius: 50%; }
.contact-hub-form:hover { background: #e5f3ff; color: #143b69; }
.contact-hub a:focus-visible { outline: 3px solid #a5d8ff; outline-offset: 5px; }
@media(max-width:1000px) {
 .contact-hub-options { gap: 32px; }
 .contact-hub-call strong { font-size: 30px; }
 .contact-hub-form { padding: 24px; }
}
@media(max-width:760px) {
 .contact-hub .contact-hub-assurance { display: none; }
 .contact-hub-promises { grid-template-columns: 1fr; gap: 20px; padding: 24px 0; margin-bottom: 28px; }
 .contact-hub-promises span { margin-top: 4px; }
 body #contact:has(.contact-hub), body.lower_page #contact:has(.contact-hub) { padding: 48px 0; }
 .contact-hub-heading { display: block; margin-bottom: 32px; }
 body #contact .contact-hub h2 { font-size: 30px; }
 .contact-hub .contact-hub-lead { margin-top: 20px; font-size: 16px; }
 .contact-hub-options { grid-template-columns: 1fr; }
 .contact-hub-call strong { font-size: 28px; }
 .contact-hub-form > strong { font-size: 28px; }
}
@media(max-width:360px) {
 body #contact .contact-hub h2 { font-size: 26px; }
 .contact-hub-form > strong { font-size: 24px; }
 .contact-hub-call strong { font-size: 24px; }
 .contact-hub-call-line { gap: 8px; }
}
.service-intro { background: #fff; padding: 40px 0; }
.service-intro p { max-width: 880px; margin: 0; color: #435e7e; font: 500 18px/1.9 var(--font-jp); }
.service-guide { padding: 72px 0; background: linear-gradient(115deg,#f0f6fc 0%,#f8fafc 65%,#fff 100%); }
.service-guide-heading { border-top: 0; padding-top: 0; margin-bottom: 40px; }
.service-guide-heading > p, .service-local-label { color: #1264c4; font: 600 18px/1.3 'Barlow Condensed',sans-serif; margin: 0 0 12px; }
.service-guide h2 { color: #153b6a; font: 800 32px/1.5 var(--font-jp); margin: 0; }
.service-guide-grid { display: grid; grid-template-columns: 1fr; gap: 0; border-top: 2px solid #153b6a; }
.service-guide-grid > section { display: grid; grid-template-columns: 80px minmax(0,280px) minmax(0,1fr); align-items: start; gap: 32px; padding: 36px 0; border-bottom: 1px solid #c5d5e6; background: none; min-width: 0; }
.service-guide-number { display: block; color: #1264c4; font: 600 72px/1 'Barlow Condensed',sans-serif; font-variant-numeric: tabular-nums; }
.service-guide h3 { font: 700 23px/1.65 var(--font-jp); margin: 0; color: #153b6a; word-break: auto-phrase; overflow-wrap: break-word; text-wrap: pretty; }
.service-guide-grid p { word-break: auto-phrase; overflow-wrap: break-word; text-wrap: pretty; }
.service-guide-grid p, .service-local > p:not(.service-local-label) { color: #435e7e; font: 400 16px/1.9 var(--font-jp); margin: 0; }
.service-local { margin-top: 40px; border-left: 3px solid #1264c4; padding: 8px 0 8px 24px; max-width: 900px; }
.service-local .service-source { margin-top: 16px !important; font-size: 14px !important; }
.service-source a, .service-guide-contact a { color: #124b91; text-decoration: underline; text-underline-offset: 4px; }
.service-guide-contact { margin-top: 32px; padding-top: 24px; border-top: 1px solid #bdcde2; font-size: 16px; line-height: 1.8; }
.service-guide-contact a { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; font-weight: 700; }
@media(max-width:800px) {
 .service-guide-grid > section { grid-template-columns: 60px minmax(0,1fr); gap: 20px 24px; padding: 28px 0; }
 .service-guide-number { font-size: 56px; }
 .service-guide h3 { font-size: 21px; align-self: center; }
 .service-guide-grid p { grid-column: 2; }
 .service-guide { padding: 40px 0; }
 .service-guide h2 { font-size: 26px; }
 .service-intro p { font-size: 16px; }
}
@media(max-width:480px) {
 .service-guide-grid > section { grid-template-columns: 44px minmax(0,1fr); gap: 20px 16px; }
 .service-guide-number { font-size: 44px; }
 .service-guide h3 { font-size: 20px; }
 .service-guide-grid p { grid-column: 1/-1; }
}

.contact-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; list-style: none; padding: 0; margin: 0 0 28px; }
.contact-steps li { padding: 12px 0; border-bottom: 2px solid #bdcde2; color: #536b89; font-size: 16px; font-weight: 700; letter-spacing: 0; }
.contact-steps li[aria-current="step"] { color: #124b91; border-color: #1264c4; }
.contact-form-note { margin-bottom: 28px; font-size: 16px; line-height: 1.8; color: #435e7e; }
.contact-review { margin: 0; }
.contact-review dt { font-weight: 700; }
.contact-review dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.8; }
.contact-errors { padding: 20px; border-left: 3px solid #b54236; background: #fff1ef; color: #8d3029; margin-bottom: 24px; }
body.detail-contact-page .subb { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; margin-top: 32px; }
body.detail-contact-page .contact-back { padding: 16px; color: #124b91; text-decoration: underline; text-underline-offset: 5px; }
body.detail-contact-page #contact .contact-form-item :is(input,textarea) { background: #fff; border: 1px solid #9ab2d0; }
body.lower_page, body.detail-contact-page { background: #f7f9fc; color: #153b6a; }
body.lower_page main, body.detail-contact-page main { padding-top: 80px; }
body.lower_page main > article { padding: 0; margin: 0; width: 100%; max-width: none; }
body.lower_page :is(h2,h3,h4,p,a,dt,dd,summary), body.detail-contact-page :is(h2,p,label,input,textarea,button) { letter-spacing: 0; }
body.lower_page :is(section,nav)[id] { scroll-margin-top: 96px; }
.detail-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; width: min(1180px,calc(100% - 48px)); margin: 0 auto; padding: 22px 0; color: #536b89; font-size: 14px; line-height: 1.6; }
.detail-breadcrumb a { color: #153b6a; text-decoration: underline; text-underline-offset: 4px; }
.detail-hero { position: relative; isolation: isolate; min-height: 520px; display: flex; align-items: center; overflow: hidden; background: #143d70; }
.detail-hero__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 55%; }
.detail-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,rgba(10,38,82,.9),rgba(10,38,82,.64) 42%,rgba(10,38,82,.05) 80%); }
.detail-hero__inner { padding-top: 64px; padding-bottom: 64px; }
body.lower_page .detail-eyebrow { margin: 0 0 24px; font: 600 20px/1.3 'Barlow Condensed',sans-serif; color: #a6cffa; }
body.lower_page .detail-hero h1 { margin: 0; padding: 0; border: 0; color: #fff; font: 900 60px/1.35 var(--font-jp); text-align: left; background: none; text-shadow: none; max-width: 800px; }
.detail-hero__subtitle { margin: 16px 0 0; color: #fff; font-size: 24px; font-weight: 700; line-height: 1.5; }
body.lower_page .detail-hero h1 > span { display: inline-block; }
.detail-hero__area { margin: 24px 0 0; color: #e0ecfb; font-size: 16px; line-height: 1.6; }
.detail-hero__contact { display: inline-flex; align-items: center; justify-content: space-between; gap: 40px; margin-top: 28px; padding: 16px 20px; background: #fff; color: #153b6a; font-size: 16px; font-weight: 700; border-bottom: 3px solid #35b4d0; }
.detail-hero__contact:hover { background: #dbeafd; }
.detail-image-note { position: absolute; right: 24px; bottom: 16px; color: #fff; font-size: 14px; padding: 4px 8px; background: #153b6ac9; }
.detail-nav { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; padding: 28px 0; }
.detail-nav a { display: flex; align-items: center; gap: 14px; min-height: 56px; padding: 10px 24px; border-left: 1px solid #bdcde2; color: #153b6a; font-size: 16px; font-weight: 700; }
.detail-nav a:first-child { border-left: 0; padding-left: 0; }
.detail-nav span { color: #1264c4; font: 600 28px/1 'Barlow Condensed',sans-serif; }
.detail-nav i { margin-left: auto; color: #1264c4; font-size: 14px; }
body.lower_page .cases { width: 100%; margin: 0; padding: 64px 0 72px; background: #fff; }
body.lower_page .cases .namebox, body.lower_page #faq .namebox { display: block; margin: 0 0 32px; padding: 0; text-align: left; }
body.lower_page .cases .namebox h2, body.lower_page #faq .namebox h2 { margin: 0; font: 800 36px/1.45 var(--font-jp); color: #153b6a; text-align: left; }
body.lower_page .cases .namebox p { position: static; margin: 12px 0 0; padding: 0; color: #1264c4; font: 700 16px/1.5 var(--font-jp); text-align: left; transform: none; opacity: 1; }
body.lower_page .namebox::before, body.lower_page .namebox::after, body.lower_page .cases .namebox p::before, body.lower_page .cases .namebox p::after { display: none; }
body.lower_page .cases .namebox.second_block { margin-top: 72px; padding-top: 32px; border-top: 2px solid #153b6a; }
body.lower_page .cases_container.forFour { width: 100%; max-width: none; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 40px; margin: 0 0 24px; counter-reset: symptom; }
body.lower_page .case_block { position: relative; display: grid; grid-template-columns: 104px minmax(0,1fr); grid-template-rows: auto 1fr; gap: 12px 24px; width: 100%; padding: 28px 0; margin: 0; border: 0; border-top: 1px solid #bdcde2; background: transparent; box-shadow: none; border-radius: 0; transform: none; }
body.lower_page .case_block:hover { transform: none; box-shadow: none; }
body.lower_page .case_block::before, body.lower_page .case_block::after { display: none; }
body.lower_page .case_block h3 { grid-column: 2; grid-row: 1; margin: 0; padding: 0; border: 0; font: 800 22px/1.5 var(--font-jp); text-align: left; color: #153b6a; }
body.lower_page .case_block h3 br { display: none; }
body.lower_page .case_block h3 small { font-size: 14px; }
body.lower_page .case_block figure { grid-column: 1; grid-row: 1 / 3; width: 104px; height: 112px; max-width: none; margin: 0; padding: 12px; align-self: start; background: #edf3fb; border-radius: 0; }
body.lower_page .case_block figure img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain; mix-blend-mode: multiply; }
body.lower_page .case_block p { grid-column: 2; grid-row: 2; margin: 0; font: 400 16px/1.85 var(--font-jp); color: #435e7e; text-align: left; }
body.lower_page .flowtextbox { width: 100%; max-width: none; margin: 48px 0 0; padding: 24px 0 24px 24px; border: 0; border-left: 4px solid #1264c4; border-radius: 0; background: #edf3fb; box-shadow: none; text-align: left; }
body.lower_page .flowtextbox::before, body.lower_page .flowtextbox::after { display: none; }
body.lower_page .flowtextbox p { margin: 0; padding: 4px 20px 4px 0; border: 0; font: 500 16px/1.85 var(--font-jp); color: #153b6a; text-align: left; }
body.lower_page #faq { padding: 72px 0; background: #f0f5fb; }
body.lower_page .faq-container { max-width: none; margin: 0; }
body.lower_page .faq-container details { margin: 0; padding: 0; border: 0; border-bottom: 1px solid #bdcde2; border-radius: 0; background: none; box-shadow: none; }
body.lower_page .faq-container summary { position: relative; padding: 24px 48px 24px 40px; background: transparent; color: #153b6a; font: 700 19px/1.6 var(--font-jp); cursor: pointer; }
body.lower_page .faq-container summary::before { content: 'Q'; position: absolute; top: 24px; left: 0; width: auto; height: auto; padding: 0; background: none; color: #1264c4; font: 600 24px/1.3 'Barlow Condensed',sans-serif; }
body.lower_page .faq-container summary::after { content: '+'; position: absolute; right: 8px; top: 24px; width: 24px; height: 24px; border: 0; transform: none; background: none; color: #1264c4; font: 400 28px/1 sans-serif; }
body.lower_page .faq-container details[open] summary::after { content: '-'; transform: none; }
body.lower_page .faq-container details p { margin: 0; padding: 0 40px 28px; background: none; color: #435e7e; font: 400 16px/1.9 var(--font-jp); }
body.lower_page .faq-container details p::before { display: none; }
.detail-related { padding-top: 56px; padding-bottom: 56px; }
.detail-related > p { margin-bottom: 24px; color: #153b6a; font-size: 24px; font-weight: 800; }
.detail-related > div { display: flex; flex-wrap: wrap; gap: 12px 28px; }
.detail-related a { min-height: 44px; display: inline-flex; align-items: center; color: #1264c4; font-size: 16px; text-decoration: underline; text-underline-offset: 6px; }
body.lower_page #contact { padding: 64px 0; background: #12396f; }
body.lower_page #contact::before, body.lower_page #contact::after { display: none; }
body.lower_page #contact .namebox { margin: 0 0 24px; padding: 0; text-align: left; }
body.lower_page #contact .namebox h2 { color: #fff; font: 800 36px/1.5 var(--font-jp); text-align: left; }
body.lower_page #contact .namebox p { position: static; margin: 8px 0; font: 600 18px/1.5 'Barlow Condensed',sans-serif; color: #a6cffa; }
body.lower_page #contact .namebox p::before, body.lower_page #contact .namebox p::after { display: none; }
body.lower_page #contact .contact-container { max-width: 1180px; text-align: left; }
body.lower_page #contact .conactmsg { font-size: 16px; color: #dae6f7; }
body.lower_page #contact .contactbox { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; margin: 28px 0; }
body.lower_page #contact .contact-card { display: block; min-width: 0; padding: 24px 0; background: none; border: 0; border-top: 1px solid #6d8b93; border-radius: 0; box-shadow: none; transform: none; }
body.lower_page #contact .contact-icon { display: none; }
body.lower_page #contact .contact-info h3 { color: #dae6f7; font-size: 16px; text-align: left; }
body.lower_page #contact .tel a { color: #fff; font: 600 48px/1.4 'Barlow Condensed',sans-serif; letter-spacing: 0; white-space: nowrap; }
body.lower_page #contact .shopopen { color: #dae6f7; font-size: 15px; }
body.lower_page #contact .contact-cta a { border-radius: 0; background: #fff; color: #153b6a; font-size: 16px; box-shadow: none; }
body.lower_page a:focus-visible, body.lower_page summary:focus-visible { outline: 2px solid #1264c4; outline-offset: 5px; }
body.detail-contact-page #contact { background: #f7f9fc; color: #153b6a; padding: 64px 0; }
body.detail-contact-page #contact::before { display: none; }
body.detail-contact-page #contact .namebox { margin: 0 0 40px; padding: 0; text-align: left; }
body.detail-contact-page #contact .namebox h2 { color: #153b6a; font-size: 44px; text-shadow: none; padding: 0; }
body.detail-contact-page #contact .namebox p { position: static; margin-top: 12px; font-size: 18px; color: #1264c4; }
body.detail-contact-page #contact .namebox p::before, body.detail-contact-page #contact .namebox p::after { display: none; }
body.detail-contact-page #contact .form-container { max-width: 880px; margin: 0 auto; padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; }
body.detail-contact-page .contact-form-item { display: grid; grid-template-columns: 180px minmax(0,1fr); align-items: start; gap: 24px; padding: 24px 0; margin: 0; border-top: 1px solid #bdcde2; }
body.detail-contact-page .contact-form-item label { padding-top: 12px; color: #153b6a; font-size: 17px; font-weight: 700; }
body.detail-contact-page .contact-form-item :is(input,textarea) { width: 100%; min-width: 0; padding: 14px 16px; background: #fff; color: #153b6a; border: 1px solid #9ab2d0; border-radius: 0; font: 400 16px/1.6 var(--font-jp); }
body.detail-contact-page .contact-form-item :is(input,textarea):focus { outline: 2px solid #1264c4; outline-offset: 2px; }
body.detail-contact-page .subb button { min-height: 56px; padding: 14px 56px; border: 0; border-radius: 0; background: #1264c4; color: #fff; font: 700 18px/1.5 var(--font-jp); box-shadow: none; }
@media (max-width: 900px) {
  body.lower_page .detail-hero h1 { font-size: 44px; }
  body.lower_page .cases_container.forFour { gap: 20px; }
  body.lower_page .case_block { grid-template-columns: 72px minmax(0,1fr); gap: 12px 16px; }
  body.lower_page .case_block figure { width: 72px; height: 88px; padding: 8px; }
  body.lower_page .case_block h3 { font-size: 20px; }
  .detail-nav a { padding: 8px 12px; gap: 8px; font-size: 14px; }
}
@media (max-width: 640px) {
  body.lower_page main, body.detail-contact-page main { padding-top: 84px; }
  .detail-breadcrumb { width: calc(100% - 36px); padding: 16px 0; gap: 8px; }
  .detail-hero { min-height: 480px; align-items: flex-end; }
  .detail-hero::before { background: linear-gradient(0deg,rgba(10,38,82,.94),rgba(10,38,82,.7) 50%,rgba(10,38,82,.1)); }
  .detail-hero__inner { padding: 48px 0 56px; }
  body.lower_page .detail-eyebrow { font-size: 18px; margin-bottom: 16px; }
  body.lower_page .detail-hero h1 { font-size: 36px; }
  .detail-hero__subtitle { font-size: 20px; }
  .detail-hero__area { margin-top: 20px; font-size: 15px; }
  .detail-nav { grid-template-columns: 1fr; padding: 16px 0; }
  .detail-nav a, .detail-nav a:first-child { padding: 12px 0; border: 0; border-bottom: 1px solid #bdcde2; font-size: 16px; }
  body.lower_page .cases, body.lower_page #faq { padding: 40px 0; }
  body.lower_page .cases .namebox h2, body.lower_page #faq .namebox h2 { font-size: 28px; }
  body.lower_page .cases_container.forFour { grid-template-columns: 1fr; gap: 0; }
  body.lower_page .case_block { grid-template-columns: 64px minmax(0,1fr); padding: 24px 0; }
  body.lower_page .case_block figure { width: 64px; height: 80px; }
  body.lower_page .case_block p { grid-column: 1 / -1; grid-row: 2; }
  body.lower_page .case_block figure { grid-row: 1; }
  body.lower_page .cases .namebox.second_block { margin-top: 40px; }
  body.lower_page .flowtextbox { padding-left: 16px; margin-top: 28px; }
  body.lower_page .faq-container summary { font-size: 17px; padding-left: 30px; padding-right: 32px; }
  body.lower_page .faq-container details p { padding: 0 0 24px 30px; }
  body.lower_page #contact .contactbox { grid-template-columns: 1fr; gap: 0; }
  body.lower_page #contact .namebox h2 { font-size: 28px; }
  body.lower_page #contact .tel a { font-size: 40px; }
  body.detail-contact-page #contact .namebox h2 { font-size: 32px; }
  body.detail-contact-page .contact-form-item { grid-template-columns: 1fr; gap: 12px; }
  body.detail-contact-page .contact-form-item label { padding: 0; }
}

body.contact-entry #contact { padding: 56px 0 80px; background: linear-gradient(110deg,#edf3fa,#fff 65%); }
.contact-layout { display: grid; grid-template-columns: 320px minmax(0,1fr); gap: 72px; align-items: start; }
.contact-intro { position: sticky; top: 112px; }
body.contact-entry #contact .namebox { display: flex; flex-direction: column-reverse; gap: 16px; margin: 0 0 24px; }
body.contact-entry #contact .namebox h2 { font: 800 40px/1.4 var(--font-jp); }
body.contact-entry #contact .namebox p { display: flex; align-items: center; gap: 12px; margin: 0; font: 600 14px/1.4 'Inter',sans-serif; color: #1264c4; }
body.contact-entry #contact .namebox p::before { display: block; content: ''; position: static; width: 28px; height: 2px; background: #1264c4; transform: none; }
body.contact-entry #contact .contact-intro-lead { font: 700 22px/1.75 var(--font-jp); color: #153b6a; }
body.contact-entry #contact .contact-form-note { font: 500 15px/1.8 var(--font-jp); color: #4c617e; margin-bottom: 32px; }
.contact-intro-image { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; margin: 28px 0; }
.contact-intro-phone { padding-top: 20px; border-top: 1px solid #b6cbe1; }
.contact-intro-phone p { margin: 0 0 12px; font: 700 15px/1.6 var(--font-jp); }
.contact-intro-phone a { display: flex; align-items: center; justify-content: space-between; color: #124b91; font: 600 28px/1.4 'Inter',sans-serif; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.contact-intro-phone i { font-size: 18px; transform: rotate(45deg); }
.contact-intro-phone small { display: block; margin-top: 10px; color: #536b89; font: 500 14px/1.7 var(--font-jp); }
.contact-phone-link { display: block; padding: 24px; color: #fff; background: linear-gradient(120deg,#0c2b58,#155f9e); border-radius: 4px; text-decoration: none; }
.contact-phone-top { display: flex; align-items: center; justify-content: space-between; font: 700 15px/1.5 var(--font-jp); }
.contact-phone-top i { font-size: 18px; color: #a8d8ff; }
.contact-phone-link strong { display: block; margin: 18px 0 20px; font: 600 27px/1.2 'Inter',sans-serif; letter-spacing: 0; white-space: nowrap; }
.contact-phone-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 16px; border-top: 1px solid #ffffff40; color: #d6e9ff; font: 500 14px/1.7 var(--font-jp); }
.contact-phone-bottom b { margin-left: 6px; font: 600 14px/1.7 'Inter',sans-serif; }
.contact-phone-bottom > i { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid #a8d8ff80; color: #fff; font-size: 14px; }
.contact-phone-link:hover { color: #fff; background: linear-gradient(120deg,#113e76,#1974b7); }
.contact-phone-link:focus-visible { outline: 3px solid #1264c4; outline-offset: 4px; }
body.contact-entry #contact .form-container { width: 100%; max-width: none; margin: 0; }
.contact-entry .contact-steps { gap: 0; border-bottom: 1px solid #b6cbe1; }
.contact-entry .contact-steps li { display: flex; gap: 12px; align-items: center; padding: 12px 16px 20px; border: 0; color: #6c7d93; font: 700 17px/1.4 var(--font-jp); }
.contact-entry .contact-steps li:first-child { padding-left: 0; }
.contact-entry .contact-steps span { font: 600 38px/1 'Inter',sans-serif; font-variant-numeric: tabular-nums; letter-spacing: 0; }
.contact-entry .contact-steps li[aria-current] { border-bottom: 3px solid #1264c4; color: #124b91; }
body.contact-entry #contact-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px 24px; }
body.contact-entry .contact-form-item { display: flex; flex-direction: column; gap: 10px; padding: 0; border: 0; margin: 0; }
body.contact-entry .contact-form-item:nth-child(n+4), body.contact-entry .subb { grid-column: 1/-1; }
body.contact-entry .contact-form-item label { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0; font: 700 18px/1.5 var(--font-jp); }
.contact-required { color: #a94636; font: 500 13px/1.5 var(--font-jp); }
body.contact-entry #contact .contact-form-item :is(input,textarea) { background: #fff; border: 1px solid #b5c8de; border-bottom: 2px solid #859fbf; border-radius: 4px; padding: 14px; transition: border-color .15s,box-shadow .15s; }
body.contact-entry #contact .contact-form-item :is(input,textarea):focus { border-color: #1264c4; outline: 2px solid #1264c4; outline-offset: 3px; box-shadow: 0 0 0 5px #e2edfc; }
body.contact-entry .subb { margin: 4px 0 0; justify-content: stretch; }
body.contact-entry #contact .subb button { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 20px 24px; background: linear-gradient(110deg,#102f61,#165ea8); color: #fff; border-radius: 4px; font-size: 18px; }
body.contact-entry #contact .subb button:hover { background: linear-gradient(110deg,#164579,#2077c1); }
@media(max-width:1000px) {
 .contact-layout { grid-template-columns: 260px minmax(0,1fr); gap: 36px; }
 body.contact-entry #contact-form { grid-template-columns: 1fr; gap: 24px; }
 body.contact-entry #contact .namebox h2 { font-size: 34px; }
 .contact-intro-phone a { font-size: 24px; }
 .contact-phone-link { padding: 18px; }
 .contact-phone-link strong { font-size: 23px; }
}
@media(max-width:700px) {
 body.contact-entry #contact { padding: 32px 0 56px; }
 .contact-layout { grid-template-columns: 1fr; gap: 36px; }
 .contact-intro { position: static; }
 .contact-intro-image { aspect-ratio: 3/1; margin: 20px 0; }
 body.contact-entry #contact .contact-intro-lead { font-size: 20px; }
 body.contact-entry #contact .namebox h2 { font-size: 36px; }
 .contact-entry .contact-steps li { gap: 8px; padding-right: 8px; padding-left: 8px; font-size: 14px; }
 .contact-entry .contact-steps span { font-size: 28px; }
}

.service-intro-copy { max-width: 1000px; border-left: 3px solid #1264c4; padding-left: 24px; }
.service-intro .service-intro-copy p { max-width: none; margin: 0 0 10px; font-size: 16px; font-weight: 400; line-height: 1.9; text-wrap: pretty; word-break: auto-phrase; overflow-wrap: break-word; }
.service-intro .service-intro-copy p:last-child { margin-bottom: 0; }
.service-intro .service-intro-copy .service-intro-lead { font-size: 22px; font-weight: 700; line-height: 1.65; color: #153b6a; margin-bottom: 20px; text-wrap: balance; }
body.lower_page .cases .namebox { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding-bottom: 24px; border-bottom: 2px solid #153b6a; margin-bottom: 24px; }
body.lower_page .cases .namebox p { margin: 0; font-size: 14px; flex-shrink: 0; }
body.lower_page .cases .namebox.second_block { border-top: 0; margin-top: 56px; padding-top: 0; }
body.lower_page .cases_container.forFour { gap: 20px; align-items: stretch; }
body.lower_page .case_block { display: grid; grid-template-columns: 88px minmax(0,1fr); grid-template-rows: auto 1fr; gap: 20px; padding: 28px; border: 1px solid #d7e3f0; border-radius: 4px; background: linear-gradient(135deg,#edf4fc,#fff 65%); counter-increment: symptom; }
body.lower_page .case_block::after { display: block; content: counter(symptom,decimal-leading-zero); position: absolute; top: 16px; right: 20px; color: #89a6c8; font: 600 16px/1 'Inter',sans-serif; background: none; width: auto; height: auto; }
body.lower_page .case_block figure { grid-column: 1; grid-row: 1; width: 88px; height: 96px; padding: 8px; background: none; }
body.lower_page .case_block h3 { grid-column: 2; grid-row: 1; align-self: center; padding-right: 8px; font-size: 22px; line-height: 1.6; text-wrap: balance; word-break: auto-phrase; overflow-wrap: anywhere; }
body.lower_page .case_block h3 small { display: block; font-size: 14px; line-height: 1.6; font-weight: 500; margin-top: 6px; }
body.lower_page .case_block p { grid-column: 1/-1; grid-row: 2; font-size: 16px; line-height: 1.9; color: #3f5675; text-wrap: pretty; word-break: normal; overflow-wrap: break-word; }
body.lower_page .cases_container.forFour:has(> .case_block:nth-child(3):last-child) { grid-template-columns: repeat(3,minmax(0,1fr)); }
body.lower_page .cases_container.forFour:has(> .case_block:nth-child(3):last-child) .case_block { grid-template-columns: 1fr; grid-template-rows: auto auto 1fr; }
body.lower_page .cases_container.forFour:has(> .case_block:nth-child(3):last-child) h3 { grid-column: 1; grid-row: 2; padding: 0; font-size: 21px; text-align: left; }
body.lower_page .cases_container.forFour:has(> .case_block:nth-child(3):last-child) p { grid-row: 3; }
@media(max-width:1000px) {
 body.lower_page .case_block { padding: 24px; grid-template-columns: 64px minmax(0,1fr); gap: 16px; }
 body.lower_page .case_block figure { width: 64px; height: 80px; }
 body.lower_page .case_block h3 { font-size: 20px; }
 body.lower_page .cases_container.forFour:has(> .case_block:nth-child(3):last-child) { grid-template-columns: 1fr; }
 body.lower_page .cases_container.forFour:has(> .case_block:nth-child(3):last-child) .case_block { grid-template-columns: 64px minmax(0,1fr); grid-template-rows: auto 1fr; }
 body.lower_page .cases_container.forFour:has(> .case_block:nth-child(3):last-child) h3 { grid-column: 2; grid-row: 1; }
 body.lower_page .cases_container.forFour:has(> .case_block:nth-child(3):last-child) p { grid-row: 2; }
}
@media(max-width:640px) {
 .service-intro-copy { padding-left: 16px; }
 .service-intro .service-intro-copy .service-intro-lead { font-size: 20px; text-wrap: pretty; }
 body.lower_page .cases .namebox { display: block; }
 body.lower_page .cases .namebox p { margin-top: 8px; }
 body.lower_page .case_block { padding: 24px 18px; gap: 16px 12px; }
 body.lower_page .case_block h3, body.lower_page .cases_container.forFour:has(> .case_block:nth-child(3):last-child) h3 { font-size: 19px; }
}
