
:root{color-scheme: light; --ink: #4b4b44; --green: #86b31a; --yellow: #fffbd1; --pale: #faffE9; --teal: #228f97; --orange: #ffa22d; --shadow: 0 4px 7px #454e302b;}
*{box-sizing: border-box;}
html{scroll-behavior: smooth; scroll-padding-top: 56px; background: rgb(250, 250, 250);}
body{margin: 0px; color: var(--ink); background: rgb(250, 250, 250); font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif; font-size: 16px; line-height: 1.65; text-size-adjust: 100%;}
a{color: var(--teal); text-decoration: none; -webkit-tap-highlight-color: transparent; touch-action: manipulation;}
button{font: inherit; -webkit-tap-highlight-color: transparent; cursor: pointer; color: inherit; touch-action: manipulation;}
input{font: inherit; -webkit-tap-highlight-color: transparent;}
button:focus-visible{outline: rgb(0, 93, 104) solid 3px; outline-offset: 4px;}
a:focus-visible{outline: rgb(0, 93, 104) solid 3px; outline-offset: 4px;}
summary:focus-visible{outline: rgb(0, 93, 104) solid 3px; outline-offset: 4px;}
input:focus-visible{outline: rgb(0, 93, 104) solid 3px; outline-offset: 4px;}
img{display: block; max-width: 100%;}
svg{display: block;}
h1{margin: 0px;}
h2{margin: 0px; line-height: 1.5; font-size: 24px; font-weight: 800; color: var(--green); text-align: center; letter-spacing: -0.035em;}
h3{margin: 0px; font-size: 18px; line-height: 1.55;}
p{margin: 0px; overflow-wrap: anywhere;}
ul{margin: 0px; padding: 0px; list-style: none;}
ol{margin: 0px; padding: 0px; list-style: none;}
dl{margin: 0px;}
dd{margin: 0px;}
h2 .eyebrow{display: block; font-size: 18px; font-weight: 700; letter-spacing: 0px; margin-bottom: 5px;}
strong{font-weight: 700;}
.svg-defs{position: absolute; width: 0px; height: 0px; overflow: hidden;}
.icon{width: 28px; height: 28px; fill: none; stroke: currentcolor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto;}
.site-strip{height: 23px; background: rgb(245, 245, 245); border-bottom: 1px solid rgb(238, 238, 238); font-size: 11px; line-height: 23px; text-align: center; white-space: nowrap; overflow: hidden; padding: 0px 8px;}
.site-header{background: rgb(255, 255, 255); box-shadow: rgba(0, 0, 0, 0.133) 0px 2px 4px; position: relative; z-index: 5;}
.header-inner{max-width: 768px; height: 70px; padding: 0px 16px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px;}
.brand{min-width: 0px; display: flex; align-items: center; min-height: 56px; flex-shrink: 0;}
.brand img{width: 128px; height: auto;}
.header-nav{display: flex; align-items: center; gap: 0px;}
.header-nav > a{width: 44px; min-height: 56px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; border: 0px; background: none; font-size: 10px; font-weight: 700; line-height: 1.6; color: var(--teal); white-space: nowrap;}
.menu-toggle{width: 44px; min-height: 56px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; border: 0px; background: none; font-size: 10px; font-weight: 700; line-height: 1.6; color: var(--teal); white-space: nowrap;}
.header-nav .icon{width: 22px; height: 22px;}
.header-nav .consult-nav{color: rgb(237, 150, 44);}
.menu-panel{background: rgb(255, 255, 255); border-top: 1px solid rgb(238, 238, 238); max-width: 768px; padding: 12px 24px 20px; margin: auto;}
.menu-panel[hidden]{display: none;}
.menu-panel a{display: flex; align-items: center; min-height: 48px; border-bottom: 1px solid rgb(238, 238, 238); font-weight: 700;}
.menu-panel a::after{content: "›"; margin-left: auto;}
.page{max-width: 768px; margin: 0px auto; background: rgb(255, 255, 255);}
.hero{height: 260px; position: relative; isolation: isolate; overflow: hidden; background: rgb(237, 236, 230);}
.hero-image{width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; position: absolute; inset: 0px; z-index: -2;}
.hero::after{content: ""; position: absolute; inset: 0px; background: linear-gradient(90deg, rgba(238, 240, 230, 0.65) 0%, rgba(244, 242, 232, 0.24) 46%, transparent 64%); z-index: -1;}
.hero-copy{padding: 8px 16px 0px;}
.hero-label{display: table; margin-bottom: 4px; padding: 0px 9px; background: rgba(255, 255, 255, 0.92); color: var(--ink); font-size: 13px; line-height: 18px; font-weight: 700; white-space: nowrap;}
.hero h1{font-size: 23px; line-height: 1.45; letter-spacing: 0.015em; font-weight: 800;}
.hero h1 span{display: table; background: rgba(255, 255, 255, 0.92); margin: 0px 0px 4px; padding: 0px 9px; white-space: nowrap;}
.hero h1 span:last-child{color: var(--green); margin-bottom: 12px;}
.hero-points{font-size: 16px; line-height: 1.45; font-weight: 700; letter-spacing: -0.045em; text-shadow: rgb(255, 255, 255) 0px 1px 3px, rgb(255, 255, 255) 0px 0px 8px;}
.hero-points li{display: flex; align-items: flex-start; gap: 4px; margin-top: 4px;}
.point-num{border-radius: 50%; background: var(--green); color: rgb(255, 255, 255); font-size: 12px; width: 17px; height: 17px; line-height: 17px; text-align: center; flex: 0 0 auto; margin-top: 3px; text-shadow: none;}
.conversion-band{background: var(--yellow); padding: 16px 16px 28px;}
.form-card{max-width: 480px; margin: auto; background: rgb(255, 255, 255); border: 1px solid var(--orange); border-radius: 11px; overflow: hidden;}
.form-title{background: var(--orange); color: rgb(255, 255, 255); font-size: 19px; letter-spacing: 0px; padding: 9px 6px; text-align: center;}
.form-body{padding: 4px 10px 2px; margin: 0px;}
.form-lead{text-align: center; font-weight: 700; margin: 0px 0px 3px;}
.field-grid{display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 4px;}
.field label{display: block; font-weight: 700; line-height: 1.5; margin-bottom: 2px; font-size: 14px;}
.required{font-size: 11px; font-weight: 500; color: rgb(187, 85, 17); margin-left: 6px;}
.field input{width: 100%; min-width: 0px; height: 44px; padding: 8px; border: 1px solid rgb(204, 204, 204); border-radius: 7px; background: rgb(255, 255, 255); color: rgb(51, 51, 51); box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 2px inset; font-size: 16px;}
.field input::placeholder{color: rgb(145, 145, 139); font-size: 14px;}
.privacy-note{font-size: 13px; line-height: 1.6; margin-top: 12px;}
.text-link{text-decoration: underline; text-underline-offset: 3px; display: inline-flex; align-items: center; min-height: 44px;}
.cta{display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 56px; width: 100%; border: 0px; border-radius: 10px; background: linear-gradient(110deg, rgb(255, 192, 0), rgb(255, 149, 0)); box-shadow: rgba(69, 78, 48, 0.17) 0px 4px 7px; color: rgb(255, 255, 255); font-size: 18px; line-height: 1.55; font-weight: 800; text-align: center; padding: 13px 17px; position: relative; transition: filter 0.2s, transform 0.2s;}
.cta:hover{filter: brightness(1.045); transform: translateY(-1px);}
.cta:active{transform: translateY(1px);}
.form-submit{background: linear-gradient(110deg, rgb(255, 175, 69), rgb(255, 161, 43)); font-size: 17px; padding: 13px 12px;}
.submit-note{margin-top: 8px; font-size: 13px; line-height: 1.6; text-align: center; white-space: nowrap;}
.privacy-link{display: flex; align-items: center; justify-content: center; width: fit-content; max-width: 100%; min-height: 44px; margin: 0px auto; font-size: 13px; line-height: 1.6; text-decoration: underline; text-underline-offset: 3px;}
.facts{max-width: 480px; margin: 20px auto 25px; color: var(--green); position: relative;}
.fact-label{display: block; text-align: center; border-radius: 24px; background: var(--green); color: rgb(255, 255, 255); font-size: 16px; font-weight: 500; line-height: 1.45; padding: 4px 10px; margin: 0px 5px 8px;}
.fact-line{display: block; font-size: 28px; line-height: 1.4; font-weight: 900; letter-spacing: -0.055em; white-space: nowrap;}
.fact-line small{font-size: 13px; font-weight: 700; letter-spacing: -0.045em;}
.fact-note{font-size: 16px; line-height: 1.6; margin: 6px 5px 0px;}
.photo-banner{display: grid; grid-template-columns: minmax(0px, 1fr) 104px; max-width: 344px; margin: 0px auto; background: rgb(255, 255, 255); min-height: 126px; border: 2px solid rgb(178, 212, 84);}
.photo-banner > img{height: auto; min-height: 0px; width: 100%; aspect-ratio: 3 / 2; object-fit: contain; align-self: center;}
.photo-banner-copy{display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: 12px 6px; font-size: 16px; font-weight: 700; line-height: 1.3; min-width: 0px;}
.photo-banner-copy a{font-size: 13px; background: linear-gradient(90deg, rgb(136, 201, 203), rgb(186, 219, 125)); color: rgb(255, 255, 255); padding: 4px 2px; min-height: 44px; display: flex; align-items: center; justify-content: center; text-align: center; line-height: 1.4; letter-spacing: -0.04em; white-space: nowrap;}
.section-inner{width: calc(100% - 48px); max-width: 576px; margin: auto;}
.intro{padding: 30px 0px 40px; position: relative; isolation: isolate; overflow: hidden; background: rgb(255, 255, 255);}
.intro::before{content: "✦"; position: absolute; color: rgb(246, 251, 227); font-size: 140px; line-height: 1; z-index: -1; top: 0px; right: 5px; transform: rotate(12deg);}
.intro::after{content: "✦"; position: absolute; color: rgb(246, 251, 227); font-size: 140px; line-height: 1; z-index: -1; bottom: 2px; left: -28px;}
.intro h2{font-size: 28px;}
.intro h2 .eyebrow{color: var(--ink); font-size: 18px;}
.intro-description{margin-top: 17px; font-size: 16px; line-height: 1.75;}
.benefit-box{background: rgb(251, 255, 233); border-radius: 10px; margin-top: 28px; padding: 18px 15px 20px; position: relative;}
.benefit-box h3{font-size: 16px; padding-right: 66px; margin-bottom: 12px;}
.benefit-box ul{position: relative; z-index: 1;}
.benefit-box li{display: flex; align-items: flex-start; gap: 6px; margin: 8px 0px; font-size: 16px; line-height: 1.65; font-weight: 700;}
.benefit-box li::before{content: "★"; color: rgb(244, 217, 99); font-size: 17px; flex: 0 0 auto;}
.benefit-box mark{color: inherit; background: linear-gradient(transparent 65%, rgb(255, 241, 161) 65%);}
.benefit-photo{position: absolute; top: -23px; right: 12px; width: 72px; height: 72px; object-fit: cover; object-position: 33% 36%; border-radius: 50%; border: 4px solid rgb(255, 255, 255);}
.intro-links{display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 24px;}
.outline-button{display: flex; align-items: center; justify-content: center; text-align: center; min-height: 62px; border: 2px solid var(--teal); border-radius: 10px; background: rgb(255, 255, 255); color: var(--teal); box-shadow: rgba(69, 78, 48, 0.17) 0px 4px 7px; font-size: 17px; line-height: 1.35; font-weight: 700; padding: 10px 24px 10px 10px; position: relative;}
.outline-button::after{content: "›"; position: absolute; right: 9px; top: 50%; transform: translateY(-50%); font-size: 28px; line-height: 1;}
.intro-links .outline-button{flex-direction: column; gap: 4px; height: 100%; padding: 10px 28px 10px 8px;}
.intro-link-title{width: 100%;}
.intro-link-note{display: block; width: 100%; font-size: 13px; line-height: 1.5; letter-spacing: -0.025em;}
.intro-link-note span{display: inline-block;}
.page-tabs{display: grid; grid-template-columns: repeat(3, 1fr); background: rgb(255, 255, 255); border-top: 1px solid rgb(238, 238, 238); border-bottom: 1px solid rgb(238, 238, 238); position: sticky; top: 0px; z-index: 15; box-shadow: rgba(65, 80, 27, 0.047) 0px 2px 4px;}
.page-tabs a{min-height: 56px; display: flex; align-items: center; justify-content: center; gap: 5px; border-right: 1px solid rgb(221, 221, 221); color: var(--ink); font-size: 14px; font-weight: 700;}
.page-tabs a:last-child{background: rgb(255, 255, 255); color: var(--ink); border: 0px;}
.page-tabs a::after{content: ""; width: 6px; height: 6px; border-bottom: 2px solid; border-right: 2px solid; transform: rotate(45deg); margin-top: -4px;}
.rates-band{padding: 28px 0px; background: var(--yellow);}
.map-box{background: rgb(232, 245, 176); border-radius: 11px; padding: 18px 12px 14px; margin-top: 22px;}
.map-box h3{font-size: 16px; text-align: center; letter-spacing: -0.045em; line-height: 1.6;}
.map-box h3 .icon{display: inline-block; vertical-align: middle; color: rgb(255, 179, 93); width: 20px; height: 20px; margin-right: 2px;}
.japan-map{height: 278px; position: relative; max-width: 360px; margin: 10px auto 0px;}
.japan-map > svg{position: absolute; width: 100%; height: 100%; color: rgb(145, 191, 39);}
.region-link{position: absolute; background: rgb(255, 255, 255); min-height: 56px; min-width: 84px; border-radius: 10px; box-shadow: rgba(69, 78, 48, 0.17) 0px 4px 7px; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 700; line-height: 1.35; color: rgb(85, 85, 85);}
.region-kanto{right: 0px; top: 46%;}
.region-tokai{right: 0px; bottom: auto; top: 74%;}
.region-kansai{left: 36%; bottom: auto; top: 79%;}
.region-link:hover{color: var(--teal);}
.rates-caption{margin: 24px 0px 12px; text-align: center; font-size: 17px;}
.region-rates{display: grid; gap: 0px; scroll-margin-top: 0px;}
.rate-row{background: rgb(255, 255, 255); border-radius: 0px 0px 9px 9px; overflow: hidden; scroll-margin-top: 24px; border-width: 0px 1px 1px; border-style: none solid solid; border-color: currentcolor rgb(229, 233, 204) rgb(229, 233, 204); border-image: none; display: block; grid-template-columns: 67px 1fr;}
.rate-row > h3{background: rgb(232, 245, 176); display: flex; align-items: center; justify-content: center; color: rgb(93, 128, 21); font-size: 18px; position: absolute; width: 1px; height: 1px; padding: 0px; overflow: hidden; clip-path: inset(50%); white-space: nowrap;}
.rate-row dl{padding: 8px 14px;}
.rate-row dl > div{display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 0px; border-bottom: 1px dotted rgb(221, 221, 221); font-size: 16px; line-height: 1.5; min-height: 48px;}
.rate-row dl > div:last-child{border: 0px; display: block;}
.rate-row dt small{font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 16px; line-height: 1.5; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; display: block;}
.rate-row dd{white-space: nowrap; font-weight: 700; color: rgb(86, 127, 18);}
.rate-row dl > div:last-child dd{text-align: right;}
.rates-note{font-size: 13px; line-height: 1.65; margin: 16px 0px 0px; scroll-margin-top: 80px;}
.shift-box{margin-top: 20px; padding: 14px 12px; background: rgb(255, 255, 255); border-radius: 11px;}
.shift-box h3{text-align: center; font-size: 19px;}
.shift-box h3 .icon{display: inline-block; vertical-align: middle; margin-right: 7px; color: rgb(255, 179, 93); width: 24px; height: 24px;}
.shift-tags{display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin: 12px 0px;}
.shift-tags span{font-size: 16px; font-weight: 700; color: var(--teal); background: rgb(241, 249, 247); border: 1px solid rgb(202, 230, 223); border-radius: 5px; padding: 5px; text-align: center; line-height: 1.5;}
.shift-box p{font-size: 16px; line-height: 1.75; margin-bottom: 12px;}
.shift-box .outline-button{font-size: 17px;}
.pale-area{background: var(--pale);}
.flow-section{padding: 24px 0px 0px;}
.flow-eyebrow{text-align: center; font-weight: 700; font-size: 17px; line-height: 1.6; margin-bottom: 6px;}
.flow-eyebrow::before{content: "\\ "; color: var(--green);}
.flow-eyebrow::after{content: " /"; color: var(--green);}
.flow-subtitle{font-size: 16px; text-align: center; margin: 7px 0px 20px;}
.steps{background: rgb(255, 255, 255); border-radius: 10px; padding: 6px 16px 0px;}
.step{display: grid; grid-template-columns: 78px 1fr; gap: 15px; padding: 18px 0px; position: relative; border-bottom: 3px solid rgb(224, 224, 224);}
.step:not(:last-child)::after{content: ""; width: 13px; height: 13px; position: absolute; left: 50%; bottom: -9px; background: rgb(255, 255, 255); transform: rotate(45deg); border-right: 3px solid rgb(224, 224, 224); border-bottom: 3px solid rgb(224, 224, 224);}
.step:last-child{border: 0px;}
.step-sign{display: flex; flex-direction: column; align-items: center; gap: 11px; padding-top: 4px; color: var(--green);}
.step-label{border: 2px solid rgb(154, 187, 60); border-radius: 30px; line-height: 1.2; font-size: 12px; white-space: nowrap; padding: 1px 8px;}
.step-sign .icon{width: 43px; height: 43px; stroke-width: 1.65;}
.step h3{font-size: 18px; line-height: 1.5; letter-spacing: -0.03em; margin-bottom: 5px;}
.highlight{background: linear-gradient(transparent 65%, rgb(255, 240, 163) 65%);}
.step p{font-size: 16px; line-height: 1.65;}
.step .cta{font-size: 16px; margin-top: 12px; padding: 10px; min-height: 56px;}
.flow-note{font-size: 16px; line-height: 1.65; margin: 18px 2px;}
.section-cta{max-width: 480px; margin: 18px auto 0px;}
.divided-section{margin-top: 40px; padding-top: 31px; border-top: 4px solid rgb(217, 235, 161);}
.faq-section{border-top-color: rgb(185, 220, 91); padding-top: 26px; margin-top: 22px;}
.faq-section h2{margin-bottom: 24px; position: relative; padding-left: 30px; padding-right: 30px;}
.faq-list{background: rgb(255, 255, 255); border-radius: 10px; padding: 0px 16px;}
.faq-item{border-bottom: 1px dotted rgb(221, 221, 221); padding: 16px 0px;}
.faq-item:last-child{border: 0px;}
.faq-item summary{display: flex; align-items: flex-start; gap: 9px; list-style: none; min-height: 44px; cursor: pointer; position: relative; padding-right: 27px; font-size: 17px; font-weight: 700; line-height: 1.6;}
.faq-item summary::-webkit-details-marker{display: none;}
.faq-item summary::after{content: ""; width: 9px; height: 9px; border-top: 3px solid rgb(170, 170, 170); border-right: 3px solid rgb(170, 170, 170); transform: rotate(135deg); position: absolute; right: 5px; top: 13px;}
.faq-item[open] summary::after{transform: rotate(-45deg); top: 17px;}
.qa-label{border-radius: 50%; width: 39px; height: 39px; display: flex; align-items: center; justify-content: center; background: rgb(188, 228, 81); color: rgb(255, 255, 255); font-size: 23px; font-weight: 800; flex: 0 0 auto; line-height: 1;}
.answer-wrap{margin-top: 12px; display: grid; grid-template-columns: 39px 1fr; gap: 9px; align-items: start;}
.answer-wrap .qa-label{color: rgb(101, 116, 61); background: rgb(255, 234, 64);}
.answer-text{font-size: 16px; line-height: 1.65;}
.wrap-phrase{white-space: nowrap;}
.faq-link{display: flex; align-items: center; justify-content: flex-end; min-height: 44px; font-size: 16px; line-height: 1.6; margin-top: 6px; text-align: right; gap: 5px;}
.faq-link::after{content: "›"; font-size: 24px; font-weight: 700; flex: 0 0 auto;}
.concerns h2{font-size: 23px;}
.concerns-lead{margin: 12px 0px 14px; font-size: 16px;}
.concern-grid{display: grid; gap: 14px;}
.concern-card{background: rgb(255, 255, 255); border: 1px solid rgb(208, 212, 196); border-radius: 12px; box-shadow: rgba(69, 78, 48, 0.17) 0px 4px 7px; overflow: hidden;}
.concern-body{padding: 0px 14px 8px;}
.concern-top{display: block; align-items: center; gap: 14px; margin: 0px -14px 6px;}
.concern-top img{width: 100%; height: 184px; border-radius: 0px; object-fit: cover; flex: 0 0 auto;}
.concern-card:nth-child(1) img{object-position: 50% 8%;}
.concern-card:nth-child(2) img{object-position: center center; height: auto; aspect-ratio: 840 / 570;}
.concern-card:nth-child(3) img{object-position: 50% 12%;}
.concern-top h3{font-size: 18px; line-height: 1.5; letter-spacing: -0.04em; font-weight: 800; padding: 8px 14px 0px;}
.concern-body p{font-size: 16px; line-height: 1.6;}
.card-link{position: relative; display: flex; align-items: center; justify-content: center; border-top: 1px solid rgb(239, 239, 239); min-height: 56px; color: var(--teal); font-weight: 700; font-size: 17px;}
.card-link::after{content: "›"; position: absolute; right: 12px; font-size: 28px;}
.concerns > .outline-button{margin-top: 18px;}
.guide-section{padding-bottom: 16px; margin-top: 16px; padding-top: 16px; scroll-margin-top: 12px;}
.guide-section h2{margin-bottom: 12px;}
.guide-list{background: rgb(255, 255, 255); border: 1px solid rgb(220, 224, 209); border-radius: 11px; box-shadow: rgba(64, 73, 54, 0.15) 0px 3px 7px; overflow: hidden;}
.guide-card{display: grid; grid-template-columns: 48px minmax(0px, 1fr); gap: 6px; align-items: center; position: relative; padding: 6px 16px 6px 10px; min-height: 80px; border-bottom: 1px solid rgb(221, 221, 221); color: var(--ink);}
.guide-card:last-child{border: 0px;}
.guide-card::after{content: "›"; position: absolute; right: 9px; font-size: 26px; font-weight: 800; color: var(--teal);}
.guide-icon{width: 48px; height: 48px; background: rgb(239, 247, 233); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--teal);}
.guide-icon .icon{width: 32px; height: 32px; stroke-width: 1.5;}
.guide-card:nth-child(2n) .guide-icon{background: rgb(237, 246, 247);}
.guide-card h3{font-size: 16px; line-height: 1.5;}
.guide-card p{font-size: 16px; line-height: 1.5; margin-top: 3px;}
.basics-section{background: rgb(255, 255, 255); padding: 18px 0px 0px;}
.basics-section h2{font-size: 22px; margin-bottom: 14px;}
.basics-list{border: 1px solid rgb(230, 230, 230); border-radius: 9px; padding: 16px;}
.basics-list > div + div{border-top: 1px solid rgb(238, 238, 238); padding-top: 18px; margin-top: 18px;}
.basics-list dt{font-size: 17px; font-weight: 700; margin-bottom: 7px;}
.basics-list dd{font-size: 16px; line-height: 1.8;}
.large-consult{display: block; position: relative; margin: 20px auto; background: rgb(255, 255, 255); border: 3px solid rgb(255, 174, 0); border-radius: 12px; box-shadow: rgba(69, 78, 48, 0.17) 0px 4px 7px; overflow: hidden; color: var(--ink); max-width: 480px;}
.large-consult-top{display: block; background: linear-gradient(110deg, rgb(255, 187, 0), rgb(255, 153, 0)); color: rgb(255, 255, 255); text-align: center; font-size: 17px; font-weight: 700; padding: 8px;}
.large-consult-main{min-height: 100px; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 15px 24px 15px 12px; font-size: 21px; line-height: 1.55; font-weight: 800;}
.large-consult-main .icon{width: 44px; height: 44px; color: var(--teal);}
.large-consult-main b{color: rgb(245, 148, 0);}
.large-consult::after{content: "›"; position: absolute; right: 9px; bottom: 36px; font-size: 30px; color: rgb(245, 148, 0);}
.legal-section{padding-bottom: 32px;}
.legal-section h2{font-size: 19px; color: var(--ink); letter-spacing: 0px; text-align: left; margin-bottom: 12px;}
.legal-table{border: 1px solid rgb(231, 231, 231); border-radius: 9px; overflow: hidden; font-size: 13px; line-height: 1.6;}
.legal-table > div{padding: 0px; display: grid; gap: 0px; border-bottom: 1px solid rgb(238, 238, 238); grid-template-columns: 80px minmax(0px, 1fr);}
.legal-table > div:last-child{border: 0px;}
.legal-table dt{font-weight: 500; font-size: 13px; line-height: 1.6; background: rgb(250, 250, 247); padding: 4px 6px;}
.legal-table dd{font-size: 13px; line-height: 1.6; padding: 4px 7px;}
.site-footer{background: rgb(245, 245, 245); padding: 18px 16px 0px;}
.footer-logo{display: inline-flex; min-height: 48px; align-items: center;}
.footer-logo img{width: 128px; height: auto; aspect-ratio: 391 / 144;}
.footer-links{display: flex; flex-wrap: wrap; gap: 0px 14px; margin: 8px 0px 4px; align-items: center;}
.footer-links a{min-height: 44px; font-size: 13px; display: flex; align-items: center; text-decoration: none; text-underline-offset: 3px; line-height: 1.6;}
.photo-note{font-size: 12px; margin: 8px 0px 0px; line-height: 1.6;}
.copyright{text-align: center; background: rgb(255, 255, 255); font-size: 11px; line-height: 1.7; margin: 16px -16px 0px; padding: 12px 16px 14px;}
.sticky-consult{position: fixed; z-index: 20; bottom: calc(12px + env(safe-area-inset-bottom,0px)); left: 50%; transform: translateX(-50%); width: calc(100% - 20px); background: rgb(255, 255, 255); backdrop-filter: none; border: 1px solid rgb(229, 229, 221); padding: 10px 8px; box-shadow: rgba(38, 51, 33, 0.25) 0px 3px 24px; transition: opacity 0.15s, visibility 0.15s; max-width: 748px; border-radius: 14px;}
.sticky-consult[hidden]{display: none;}
.sticky-caption{text-align: left; font-size: 11px; font-weight: 500; margin: 0px 0px 4px; line-height: 1.5; display: block; white-space: nowrap; letter-spacing: -0.035em;}
.page-end-space{height: 116px; background: rgb(255, 255, 255);}
.fact-content{display: grid; grid-template-columns: minmax(0px, 1fr) 94px; align-items: center; gap: 2px;}
.fact-art{width: 94px; height: 96px; fill: none; stroke: currentcolor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;}
.photo-banner-copy .banner-logo{width: 72px; height: auto; margin: 0px auto;}
.page-tabs a[aria-current="location"]{background: rgb(146, 191, 0); color: rgb(255, 255, 255);}
.region-link[aria-current="true"]{box-shadow: var(--teal) 0px 0px 0px 2px, rgba(69, 78, 48, 0.17) 0px 4px 7px; color: var(--teal);}
.region-tabs{display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px;}
.region-tabs button{min-height: 56px; border: 1px solid rgb(202, 220, 145); border-radius: 8px 8px 0px 0px; background: rgb(245, 249, 232); color: rgb(93, 128, 21); font-size: 17px; font-weight: 700;}
.region-tabs button[aria-selected="true"]{background: rgb(145, 187, 40); color: rgb(255, 255, 255); border-color: rgb(145, 187, 40);}
.rate-row[hidden]{display: none;}
.faq-section h2 .faq-heading-icon{position: absolute; right: 0px; bottom: -12px; width: 38px; height: 44px; color: var(--green); stroke-width: 1.6; transform: rotate(9deg);}
.answer-text strong{display: block; font-size: 17px; font-weight: 800; line-height: 1.6; margin-bottom: 8px;}
.basics-box{border: 1px solid rgb(230, 230, 230); border-radius: 9px; padding: 14px;}
.basics-box .basics-list{border: 0px; border-radius: 0px; padding: 0px;}
.basics-extra{margin-top: 12px;}
.basics-extra > summary{list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: flex-end; min-height: 44px; width: max-content; margin-left: auto; padding: 0px 12px; background: rgb(250, 250, 250); border-radius: 7px; box-shadow: rgba(0, 0, 0, 0.133) 0px 2px 4px; font-size: 14px; gap: 7px;}
.basics-extra > summary::-webkit-details-marker{display: none;}
.basics-extra > summary::after{content: ""; width: 6px; height: 6px; border-right: 2px solid; border-bottom: 2px solid; transform: rotate(45deg); margin-top: -4px;}
.basics-extra[open] > summary::after{transform: rotate(225deg); margin-top: 4px;}
.basics-extra[open] > .basics-list{margin-top: 18px; border-top: 1px solid rgb(238, 238, 238); padding-top: 18px;}
.sticky-card-link{display: grid; grid-template-columns: 54px minmax(0px, 1fr) 72px; gap: 7px; align-items: center; color: var(--ink); min-height: 64px;}
.sticky-photo{display: block; width: 54px; height: 54px; border-radius: 50%; background: url("photos/care-hero-1152.jpg") 78% 12% / 260% no-repeat rgb(240, 244, 221); border: 2px solid rgb(240, 244, 221);}
.sticky-main{display: block; background: rgb(145, 187, 40); color: rgb(255, 255, 255); font-size: 15px; line-height: 1.5; font-weight: 800; padding: 3px 4px; letter-spacing: -0.055em; white-space: nowrap;}
.sticky-action{display: flex; align-items: center; justify-content: center; gap: 3px; min-height: 56px; border-left: 1px solid rgb(236, 238, 228); color: rgb(223, 130, 0); font-size: 14px; font-weight: 800; line-height: 1.5; text-align: center;}
.sticky-action .arrow{font-size: 25px; line-height: 1;}
.sticky-close{position: absolute; right: -4px; top: -23px; width: 44px; height: 44px; background: none; border: 0px; padding: 0px; display: grid; place-items: center;}
.sticky-close span{display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid rgb(221, 221, 221); background: rgb(255, 255, 255); color: rgb(153, 153, 153); border-radius: 50%; font-size: 23px; line-height: 1;}
.footer-links a:hover{text-decoration: underline; text-underline-offset: 3px;}
.shift-box > p{font-size: 13px; line-height: 1.65;}
.faq-item:not([open]){padding-top: 6px; padding-bottom: 6px;}
.faq-item:not([open]) summary{align-items: center; font-size: 16px;}
.faq-item:not([open]) summary::after{top: calc(50% - 7px);}
.concerns{margin-top: 20px; padding-top: 16px;}
.concerns > .section-cta{margin-top: 18px;}
.header-nav > a:nth-child(-n+2){color: rgb(237, 150, 44);}
.sticky-backdrop{position: fixed; z-index: 19; bottom: 0px; left: 50%; transform: translateX(-50%); width: min(100%, 768px); height: calc(120px + env(safe-area-inset-bottom,0px)); background: rgba(0, 0, 0, 0.68); pointer-events: none;}
.sticky-backdrop[hidden]{display: none;}
.region-other{left: 0px; top: 24%; min-width: 104px; padding: 0px 12px; flex-direction: column; gap: 3px; white-space: nowrap;}
.region-other small{font-size: 13px; line-height: 1.35; font-weight: 400;}
.faq-item[open]{padding-top: 12px; padding-bottom: 12px;}
.concern-picture{display:block}
.skip-link{position: fixed; top: 8px; left: 8px; z-index: 100; min-height: 44px; padding: 10px 16px; border: 2px solid var(--teal); border-radius: 6px; background: rgb(255, 255, 255); color: var(--teal); font-weight: 700; transform: translateY(calc(-100% - 16px));}
.skip-link:focus{transform: translateY(0px);}

@media(min-width:700px){
html{scroll-padding-top: 48px;}
.brand img{width: 145px;}
.header-nav{gap: 2px;}
.hero{height: 230px;}
.hero-image{width: 540px; height: 360px; object-position: center center; top: -18px; left: auto;}
.hero::after{background-image: linear-gradient(90deg, rgb(238, 236, 231) 0%, rgba(238, 236, 231, 0.867) 15%, rgba(239, 238, 231, 0.255) 34%, transparent 49%);}
.hero-copy{padding-top: 4px; padding-left: 216px;}
.hero h1{font-size: 24px; line-height: 1.38;}
.hero h1 span:last-child{margin-bottom: 10px;}
.hero-points li{margin-top: 2px;}
.form-body{padding: 10px 18px 2px;}
.fact-line{font-size: 36px;}
.fact-line small{font-size: 18px;}
.photo-banner{margin-top: 28px;}
.intro{padding-top: 42px; padding-bottom: 54px;}
.intro-description{margin-top: 18px;}
.benefit-box{padding: 24px 78px 24px 28px;}
.benefit-photo{top: 38px; right: 15px; width: 76px; height: 76px;}
.page-tabs a{min-height: 48px; font-size: 16px;}
.japan-map{height: 290px;}
.rates-caption{font-size: 18px;}
.rate-row{grid-template-columns: 80px 1fr;}
.shift-box{padding: 18px 24px;}
.shift-tags{grid-template-columns: repeat(3, 1fr);}
.steps{padding: 10px 30px;}
.step{grid-template-columns: 86px 1fr; gap: 22px; padding-top: 24px; padding-bottom: 24px;}
.step-sign .icon{width: 46px; height: 46px;}
.step h3{font-size: 19px;}
.step .cta{max-width: 280px;}
.faq-list{padding-right: 20px; padding-left: 20px;}
.faq-item summary{font-size: 18px;}
.concern-top img{height: 240px;}
.concern-top h3{font-size: 19px;}
.guide-card{grid-template-columns: 64px minmax(0px, 1fr); gap: 16px; padding: 10px 28px 10px 18px; min-height: 100px;}
.guide-icon{width: 64px; height: 64px;}
.guide-icon .icon{width: 39px; height: 39px;}
.guide-card h3{font-size: 19px;}
.legal-table > div{grid-template-columns: 124px minmax(0px, 1fr);}
.site-footer{padding-right: 24px; padding-left: 24px;}
.footer-logo img{width: 145px;}
.copyright{margin-right: -24px; margin-left: -24px;}
.sticky-consult{max-width: 560px;}
.sticky-caption{font-size: 14px;}
.faq-section h2 .eyebrow{display: inline; margin-right: 7px;}
.fact-content{grid-template-columns: minmax(0px, 1fr) 132px; gap: 8px;}
.fact-art{width: 132px; height: 112px;}
.sticky-card-link{grid-template-columns: 64px minmax(0px, 1fr) 100px; gap: 12px;}
.sticky-photo{width: 64px; height: 64px;}
.sticky-main{font-size: 20px;}
.sticky-action{font-size: 17px;}
}

@media(max-width:699px){
.text-unit{white-space: nowrap;}
.benefit-box li > span{text-wrap: balance;}
.step{grid-template-columns: 64px minmax(0px, 1fr); gap: 12px;}
.step p{text-wrap: pretty;}
.guide-card h3{text-wrap: pretty;}
.guide-card p{text-wrap: balance;}
}

@media(max-width:359px){
.header-inner{padding-right: 10px; padding-left: 10px; gap: 4px;}
.brand img{width: 115px;}
.hero h1{font-size: 21px;}
.conversion-band{padding-right: 12px; padding-left: 12px;}
.form-title{font-size: 16px; white-space: nowrap;}
.field input::placeholder{font-size: 12px; letter-spacing: -0.025em;}
.cta{text-wrap: balance;}
.fact-line{font-size: 25px;}
.fact-line small{font-size: 12px;}
.fact-note{text-wrap: pretty;}
.photo-banner-copy a{font-size: 12px;}
.section-inner{width: calc(100% - 32px);}
.intro-description{text-wrap: pretty;}
.benefit-box h3{text-wrap: balance;}
.intro-links{gap: 10px;}
.outline-button{font-size: 16px;}
.map-box h3{font-size: 14px; text-wrap: balance;}
.region-link{min-width: 76px;}
.region-other{min-width:104px}
.rates-note{text-wrap: wrap;}
.shift-box .outline-button{text-wrap: balance;}
.flow-subtitle{text-wrap: balance;}
.step{grid-template-columns: 56px minmax(0px, 1fr); gap: 8px;}
.step h3{text-wrap: balance;}
.step p{text-wrap: pretty;}
.flow-note{text-wrap: pretty;}
.answer-text{text-wrap: pretty;}
.faq-link{text-wrap: balance;}
.concerns h2{text-wrap: balance;}
.concerns-lead{text-wrap: pretty;}
.concern-body p{text-wrap: pretty;}
.basics-list dd{text-wrap: pretty;}
.legal-table > div{grid-template-columns: 76px minmax(0px, 1fr);}
.footer-logo img{width: 115px;}
.sticky-caption{font-size: 10px;}
.fact-content{grid-template-columns: minmax(0px, 1fr) 75px;}
.fact-art{width: 75px;}
.answer-text strong{text-wrap: balance;}
.sticky-card-link{grid-template-columns: 42px minmax(0px, 1fr) 60px; gap: 4px;}
.sticky-photo{width: 42px; height: 42px;}
.sticky-main{font-size: 13px;}
.sticky-action{font-size: 13px;}
.shift-box > p{text-wrap: pretty;}
.shift-tags span:last-child{font-size: 14px; white-space: nowrap;}
.question-text{text-wrap: balance;}
}

@media(min-width:390px) and (max-width:699px){
.intro-links .outline-button:first-child .intro-link-title{font-size: 16px; letter-spacing: -0.025em; white-space: nowrap;}
}

@media(max-width:389px){
.submit-note{font-size: 12px; letter-spacing: -0.075em;}
.intro-links{grid-template-columns: minmax(0px, 1fr); grid-auto-rows: 1fr; gap: 10px;}
.intro-links .outline-button{align-items: flex-start; padding: 10px 32px 10px 12px; font-size: 16px; text-align: left;}
.intro-link-title br{display: none;}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior: auto;}
  *, ::before, ::after{transition: none !important;}
}

/* 受付の状態は空の間は高さを持たせない。 */
.sform__err{color:#a52b16;font-size:14px;margin:4px 0 0}
.sform__status:empty{display:none}
.sform__status:not(:empty){padding:12px;background:#fff6d4;border:1px solid #e4b84e;border-radius:6px;font-weight:700;margin-top:14px}
.sform__status[data-state="ng"]{color:#a52b16}
.measurement-link{font-size:11px;color:#777;margin:2px 0 0}
/* 標準モードで生じるロゴの行末余白を除き、承認済みの位置を保つ。 */
.footer-logo{vertical-align:top}
