/* スマホ専用・1カラム。基本設定、各セクション、フォーム、レスポンシブの順です。 */
:root{--green: #116641; --green-dark: #084a31; --green-light: #edf6ef; --orange: #c94e0b; --orange-hover: #ab3e03; --ink: #24362e; --text: #45544b; --muted: #65736a; --line: #dbe5de; --cream: #fff8e9; --white: #fff; --shadow: 0 8px 25px #193b2710; --radius: 10px;}
*{box-sizing: border-box;}
html{scroll-behavior: smooth; scroll-padding-top: 155px;}
body{margin: 0px; font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; color: var(--ink); font-size: 16px; line-height: 1.85; background: rgb(255, 255, 255); -webkit-font-smoothing: antialiased;}
a{color: inherit; text-decoration: none;}
button, input, textarea{font: inherit;}
a, button, input, summary, textarea{-webkit-tap-highlight-color: transparent;}
button{cursor: pointer;}
img{display: block; max-width: 100%; height: auto;}
svg.icon{width: 24px; height: 24px; flex: 0 0 auto;}
h1, h2, h3, p{margin-top: 0px;}
p{margin-bottom: 1em;}
h1, h2, h3{line-height: 1.6; overflow-wrap: anywhere;}
a:focus-visible, button:focus-visible, summary:focus-visible{outline: rgb(221, 116, 11) solid 3px; outline-offset: 5px;}
.wrap{width: min(1180px, 100% - 64px); margin-inline: auto;}
.section{padding-block: 76px;}
.skip{position: fixed; z-index: 100; top: -100px; left: 15px; background: rgb(255, 255, 255); padding: 12px;}
.skip:focus{top: 10px;}
.header{position: sticky; top: 0px; z-index: 30; background: rgba(255, 255, 255, 0.973); backdrop-filter: blur(12px); box-shadow: rgba(21, 57, 35, 0.04) 0px 2px 7px;}
.header-main{display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 17px;}
.brand{display: flex; align-items: center; gap: 9px; white-space: nowrap;}
.brand small{display: block; font-size: 16px; line-height: 1.4; letter-spacing: 0.16em;}
.brand strong{display: block; font-size: 27px; line-height: 1.5; color: var(--green); letter-spacing: 0.03em;}
.header-contact{display: flex; align-items: center; gap: 26px;}
.telephone{font-family: Arial, sans-serif; display: inline-flex; align-items: center; gap: 9px; font-weight: 750; font-size: 32px; line-height: 1.3; white-space: nowrap; color: var(--green); letter-spacing: 0.01em;}
.telephone svg.icon{width: 27px; height: 27px;}
.hours{font-size: 16px; line-height: 1.6; margin: 3px 0px 0px; color: var(--muted);}
.header-phone{text-align: center;}
.btn{border: 0px; display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 56px; padding: 16px 23px; border-radius: 7px; font-size: 16px; font-weight: 700; line-height: 1.5; transition: background 0.18s, box-shadow 0.18s, transform 0.18s;}
.btn .icon{width: 22px; height: 22px;}
.btn-orange{background: var(--orange); color: rgb(255, 255, 255); box-shadow: rgb(150, 57, 1) 0px 4px 0px;}
.btn-orange:hover{background: var(--orange-hover); box-shadow: rgb(132, 51, 1) 0px 2px 0px; transform: translateY(2px);}
.btn-outline{background: rgb(255, 255, 255); color: var(--green); border: 1px solid var(--green); box-shadow: none;}
.btn-outline:hover{background: var(--green-light);}
.header-contact > .btn{font-size: 16px; min-height: 57px; padding: 15px 21px;}
.header-contact > .btn > .icon:first-child{display: none;}
#navigation{border-top: 1px solid rgb(231, 238, 233); border-bottom: 1px solid var(--line);}
#navigation > .wrap{display: grid; grid-template-columns: 1fr 1fr 1.5fr 1fr 1fr 1.2fr;}
#navigation a{font-size: 16px; font-weight: 700; text-align: center; padding: 13px 5px; position: relative;}
#navigation a::after{content: ""; height: 17px; width: 1px; background: var(--line); position: absolute; right: 0px; top: 19px;}
#navigation a:last-child::after, .menu-toggle{display: none;}
#navigation a:hover{background: var(--green-light); color: var(--green);}
.hero{background: linear-gradient(105deg, rgb(244, 249, 241) 0px, rgb(244, 249, 241) 53%, rgb(233, 242, 232) 53%, rgb(238, 246, 237) 100%); padding: 37px 0px 0px;}
.hero h1{font-size: clamp(32px, 3.25vw, 47px); line-height: 1.52; letter-spacing: 0.01em; margin: 0px 0px 18px; font-weight: 800; white-space: normal;}
.hero h1 > span{color: var(--green); background: linear-gradient(transparent 75%, rgb(245, 211, 108) 75%, rgb(245, 211, 108) 94%, transparent 94%);}
.section-heading{text-align: center; margin-bottom: 36px;}
.kicker{display: inline-block; color: var(--green); font-size: 16px; font-weight: 700; letter-spacing: 0.06em; margin: 0px 0px 11px;}
.kicker::after, .kicker::before{content: ""; display: inline-block; width: 19px; height: 2px; background: rgb(214, 178, 90); vertical-align: middle; margin: 0px 10px;}
.section-heading h2{font-size: 34px; line-height: 1.6; margin: 0px; font-weight: 800; letter-spacing: 0.025em;}
.section-heading h2 span{color: var(--green);}
.items-section{background: rgb(240, 246, 241); border-top: 1px solid rgb(224, 234, 222); border-bottom: 1px solid rgb(224, 234, 222);}
.condition-box{margin-top: 27px; border: 1px solid rgb(218, 205, 166); border-radius: 9px; background: rgb(255, 252, 244); padding: 23px 30px;}
.condition-box ul{list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0px; margin: 15px 0px;}
.condition-box li{border: 1px solid rgb(229, 213, 175); background: rgb(255, 255, 255); border-radius: 4px; padding: 5px 13px; font-size: 16px; color: var(--text);}
.condition-box p{font-size: 16px; color: var(--muted); margin: 0px; line-height: 1.8;}
.advisor-panel{display: grid; grid-template-columns: 155px 1fr 210px; gap: 27px; align-items: center; background: rgb(245, 248, 251); border: 1px solid rgb(216, 225, 232); border-radius: var(--radius); margin-top: 28px; padding: 28px;}
.advisor-panel figure{margin: 0px; text-align: center;}
.advisor-panel figure img{width: 155px; height: 160px; object-fit: cover; object-position: center 27%; border-radius: 5px;}
.advisor-panel figcaption{font-size: 16px; margin-top: 8px; color: var(--muted); line-height: 1.7;}
.advisor-panel figcaption strong{font-size: 17px; color: var(--ink); letter-spacing: 0.1em;}
.label-pill{display: inline-block; padding: 3px 13px; background: rgb(231, 240, 232); border: 1px solid rgb(201, 221, 203); border-radius: 4px; font-size: 16px; font-weight: 700; color: var(--green); line-height: 1.7;}
.advisor-panel h3{font-size: 22px; margin: 12px 0px;}
.contact-band{background: var(--green); border-radius: 11px; color: rgb(255, 255, 255); padding: 32px 37px; display: flex; align-items: center; justify-content: space-between; gap: 22px; box-shadow: rgba(18, 59, 37, 0.063) 0px 5px 18px;}
.contact-band h2{font-size: 23px; margin: 9px 0px 6px;}
.contact-band .telephone{color: rgb(255, 255, 255); font-size: 28px;}
.contact-band .telephone svg.icon{width: 23px; height: 23px;}
.contact-band .hours{color: rgb(229, 238, 231); font-size: 16px; text-align: center;}
.area-section{background: rgb(237, 244, 247); border-top: 1px solid rgb(227, 235, 239); border-bottom: 1px solid rgb(227, 235, 239);}
.faq-grid{max-width: 930px; margin: auto; display: grid; gap: 12px;}
details{border: 1px solid var(--line); border-radius: 7px; background: rgb(255, 255, 255); overflow: hidden;}
summary{list-style: none; cursor: pointer; padding: 19px 54px 19px 23px; display: flex; gap: 15px; align-items: baseline; position: relative; font-size: 16px; font-weight: 700; line-height: 1.8;}
summary > span{color: var(--green); font-family: Georgia, serif; font-size: 22px; line-height: 1.3;}
summary > i{position: absolute; right: 23px; top: 28px; width: 12px; height: 12px;}
summary > i::after, summary > i::before{content: ""; position: absolute; inset: 5px 0px auto; height: 2px; background: var(--green);}
summary > i::after{transform: rotate(90deg);}
details[open] summary{background: rgb(241, 247, 242);}
details[open] summary > i::after{transform: none;}
.faq-answer{display: flex; gap: 15px; padding: 17px 23px 22px;}
.faq-answer > span{font-size: 22px; line-height: 1.4; font-family: Georgia, serif; color: var(--orange);}
.faq-answer > p{line-height: 1.9; color: var(--text); margin: 0px;}
.contact-section{background: rgb(240, 246, 239); border-top: 1px solid rgb(226, 235, 225); position: relative;}
.form-card{background: rgb(255, 255, 255); padding: 31px 34px; border-radius: 11px; border: 1px solid rgb(212, 224, 213); box-shadow: var(--shadow);}
.optional, .required{display: inline-block; font-size: 16px; font-weight: 700; line-height: 1.5; padding: 2px 6px; border-radius: 3px; vertical-align: middle;}
.required{background: rgb(252, 236, 227); color: rgb(166, 58, 9);}
.optional{background: rgb(240, 243, 241); color: rgb(99, 115, 105);}
.field{margin-top: 20px;}
.field label{display: flex; align-items: center; gap: 9px; font-weight: 700; margin-bottom: 7px;}
.field input, .field textarea{font-size: 16px; color: var(--ink); border: 1px solid rgb(189, 203, 192); border-radius: 5px; padding: 11px 12px; width: 100%; background: rgb(255, 255, 255); line-height: 1.6;}
.field input::placeholder, .field textarea::placeholder{color: rgb(120, 135, 124); font-size: 16px;}
.field input:focus, .field textarea:focus{outline: 2px solid var(--green); outline-offset: 2px; border-color: var(--green);}
.field input:invalid:not(:placeholder-shown), .field textarea:invalid:not(:placeholder-shown){border-color: rgb(199, 91, 57);}
.field textarea{resize: vertical; min-height: 145px;}
.form-two{display: grid; grid-template-columns: 1fr 1fr; gap: 17px;}
.privacy-note{display: flex; gap: 8px; align-items: flex-start; background: rgb(246, 248, 246); padding: 12px; border-radius: 5px; margin: 20px 0px;}
.privacy-note > .icon{width: 18px; height: 18px; color: var(--green); margin-top: 2px;}
.privacy-note > p{font-size: 16px; margin: 0px; color: var(--muted);}
.privacy-note a{display: inline-block; color: var(--green); text-decoration: underline; text-underline-offset: 3px;}
.submit-button{width: 100%; font-size: 17px; min-height: 59px;}
.form-footnote{font-size: 16px; color: var(--muted); text-align: center; margin: 11px 0px 0px;}
.preview-notice{font-size: 16px; border-left: 3px solid rgb(180, 125, 37); padding: 9px 12px; background: rgb(255, 247, 231); color: rgb(115, 89, 34); margin: 18px 0px 0px;}
.company-overview{display: grid; grid-template-columns: 1fr 1.9fr; gap: 43px; margin-bottom: 34px;}
.company-table{margin: 0px; border-top: 1px solid var(--line);}
.company-table > div{display: grid; grid-template-columns: 130px 1fr; gap: 18px; border-bottom: 1px solid var(--line); padding: 13px 16px;}
.company-table dt{font-weight: 700;}
.company-table dd{margin: 0px; color: var(--text);}
.company-table dd a{text-decoration: underline; text-underline-offset: 3px;}
.office-map-link{display: flex; align-items: center; justify-content: center; gap: 10px; color: var(--green); font-size: 16px; font-weight: 700; padding: 14px; background: rgb(243, 248, 244);}
footer{background: rgb(21, 62, 46); color: rgb(255, 255, 255); padding: 37px 0px 20px;}
.footer-top{display: grid; grid-template-columns: 1fr 1.7fr; gap: 35px;}
.footer-top > div > p{font-size: 16px; margin: 0px; color: rgb(213, 226, 216);}
.footer-top > div > strong{font-size: 27px; display: block;}
.footer-top > div > small{display: block; font-size: 16px; color: rgb(213, 226, 216);}
.footer-top nav{display: grid; grid-template-columns: 1fr 1.5fr; gap: 8px 24px;}
.footer-top nav a:hover{text-decoration: underline;}
.footer-bottom{display: flex; gap: 20px; justify-content: space-between; align-items: center; margin-top: 28px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, 0.15);}
.footer-bottom p{font-size: 16px; margin: 0px; color: rgb(201, 218, 207);}
.footer-bottom small{font-size: 16px; color: rgb(201, 218, 207);}
.mobile-contact{display: none;}
dialog{border: 0px; border-radius: 12px; max-width: min(660px, 100% - 32px); width: 660px; padding: 27px; box-shadow: rgba(0, 0, 0, 0.267) 0px 20px 60px; max-height: 85vh; color: var(--ink);}
dialog::backdrop{background: rgba(17, 41, 31, 0.6); backdrop-filter: blur(4px);}
.dialog-top{display: flex; align-items: center; justify-content: space-between; gap: 10px;}
.dialog-top h2{font-size: 23px; margin: 0px;}
.icon-button{display: inline-flex; background: rgb(237, 244, 237); border: 0px; padding: 9px; color: var(--green); border-radius: 50%;}
dialog > p{font-size: 16px; color: var(--text); margin-top: 18px;}
#confirm-details{margin: 0px; border-top: 1px solid var(--line);}
#confirmation-status{background: rgb(255, 247, 229); color: rgb(121, 96, 38); padding: 12px; border-radius: 4px;}
#confirmation-status:empty{display: none;}
.dialog-actions{display: flex; gap: 12px; margin-top: 24px; justify-content: flex-end;}
.dialog-actions > .btn{font-size: 16px;}
.dialog-actions .btn:disabled{cursor: default; background: rgb(115, 128, 120); box-shadow: none; transform: none;}
 .company-table dd, .company-table dt, .faq-answer > p, .field label{font-size: 16px;}
.footer-top nav{font-size: 16px;}
@media (prefers-reduced-motion: reduce) {
html{scroll-behavior: auto;}
*, ::after, ::before{transition: none !important;}
}
.campaign-page{--orange: #c34405; --orange-hover: #a93200; --green: #0d623f; --ink: #172e24;}
.campaign-page .section{padding-block: 64px;}
.campaign-page .header-main{padding-block: 13px;}
.campaign-page .btn{border-radius: 4px;}
.campaign-page .header-contact > .btn{background: rgb(195, 68, 5);}
.campaign-page .section-heading h2{font-size: 37px; font-weight: 800; line-height: 1.5;}
.campaign-page .section-heading h2 > span{color: rgb(13, 98, 63);}
.campaign-page .kicker{color: rgb(168, 61, 9);}
.campaign-page .kicker::after, .campaign-page .kicker::before{background: rgb(195, 68, 5);}
.campaign-page .condition-box{border: 2px solid rgb(221, 159, 56); border-radius: 4px; background: rgb(255, 249, 232);}
.campaign-page .items-section{background: rgb(238, 243, 239);}
.campaign-page .advisor-panel{border-radius: 4px;}
.campaign-page .form-card{border-top: 5px solid rgb(13, 98, 63); border-radius: 4px;}
.campaign-page .contact-section{background: rgb(245, 239, 223); border-top: 4px solid rgb(13, 98, 63);}
.campaign-page .contact-band{background: rgb(16, 63, 44); border-radius: 0px; padding: 35px 38px; box-shadow: none; position: relative; border-left: 8px solid rgb(245, 203, 82);}
.campaign-page .contact-band h2{font-size: 30px; font-weight: 800; line-height: 1.5;}
.campaign-page .contact-band .telephone{font-size: 32px;}
.campaign-page .contact-band .hours{font-size: 16px;}
.campaign-page .hero.campaign-hero{background: rgb(16, 63, 44); padding: 0px; overflow: hidden; color: rgb(255, 255, 255);}
.campaign-grid{display: grid; grid-template-columns: 1.05fr 1fr; gap: 0px; align-items: stretch; position: relative;}
.campaign-copy{padding: 35px 30px 34px 0px; position: relative; z-index: 2;}
.campaign-region{font-size: 16px; font-weight: 700; letter-spacing: 0.05em; margin: 0px 0px 14px; color: rgb(237, 243, 233);}
.campaign-eyebrow{display: inline-block; background: rgb(255, 218, 107); color: rgb(22, 55, 38); font-size: 18px; line-height: 1.5; font-weight: 800; padding: 6px 13px; margin: 0px 0px 21px; letter-spacing: 0.02em;}
.campaign-hero h1{font-size: 76px; letter-spacing: 0.035em; line-height: 1.17; font-weight: 900; margin: 0px 0px 24px; white-space: normal; overflow-wrap: normal;}
.campaign-hero h1 > span{color: rgb(255, 218, 107); background: 0px 0px;}
.campaign-lead{font-size: 17px; line-height: 1.9; margin: 0px 0px 15px; color: rgb(255, 255, 255);}
.campaign-lead strong{font-weight: 700;}
.campaign-cta{max-width: 470px;}
.campaign-cta .btn{width: 100%; background: rgb(195, 68, 5); color: rgb(255, 255, 255); min-height: 67px; font-size: 20px; box-shadow: rgb(121, 37, 0) 0px 4px 0px; border: 1px solid rgb(241, 156, 97); justify-content: space-between; padding: 18px 24px;}
.campaign-cta .btn:hover{background: rgb(169, 50, 0);}
.campaign-cta > span{font-size: 16px; display: block; line-height: 1.6; margin-top: 13px; color: rgb(220, 233, 221); text-align: center;}
.campaign-visual{position: relative; min-height: 650px; isolation: isolate; margin-right: calc(590px - 50vw);}
.campaign-main-photo{position: absolute; inset: 0px; height: 100%; width: 100%; object-fit: cover; object-position: 53% center; z-index: -2;}
.campaign-visual::before{content: ""; position: absolute; inset: 0px; background: linear-gradient(90deg, rgba(16, 63, 44, 0.2), transparent 50%), linear-gradient(0deg, rgba(14, 36, 29, 0.67), transparent 55%); z-index: -1;}
.campaign-assurance{border-top: 1px solid rgb(76, 114, 88); background: rgb(255, 255, 255); color: rgb(23, 62, 43); position: relative; z-index: 3;}
.campaign-assurance > .wrap{display: grid; grid-template-columns: 1fr 1fr 1fr;}
.campaign-assurance p{display: flex; align-items: center; justify-content: center; gap: 17px; margin: 0px; padding: 19px 8px; position: relative;}
.campaign-assurance p + p::before{content: ""; width: 1px; height: 33px; background: rgb(205, 217, 208); position: absolute; left: 0px;}
.campaign-assurance p > span{font-size: 16px; line-height: 1.5;}
.campaign-assurance strong{font-size: 23px; line-height: 1.5; font-weight: 800;}
.campaign-assurance p:first-child strong{color: rgb(180, 65, 11); font-size: 28px;}
#contact-form{scroll-margin-top: 165px;}
.brand-mark{display: block; width: 116px; height: 76px; overflow: hidden; flex: 0 0 auto;}
.brand-mark img{width: 116px; height: 116px; max-width: none; transform: translateY(-20px);}
.contact-v2-wrap{max-width: 780px; margin: auto;}
.contact-v2-heading{text-align: center; margin-bottom: 32px;}
.contact-v2-heading > p{display: inline-block; background: rgb(245, 223, 187); border: 1px solid rgb(186, 150, 95); border-radius: 4px; padding: 12px 28px; font-size: 26px; font-weight: 700; color: rgb(120, 83, 34); margin: 0px 0px 10px;}
.contact-v2-heading h2{font-family: "Yu Mincho", serif; font-size: 44px; color: rgb(64, 58, 51); margin: 0px 0px 14px;}
.contact-v2-heading > div{font-size: 20px; line-height: 1.7;}
.contact-v2 .field{margin-top: 26px;}
.contact-v2 .field label{font-size: 21px; margin-bottom: 10px; gap: 12px;}
.contact-v2 .optional, .contact-v2 .required{font-size: 16px; padding: 3px 8px;}
.contact-v2 .field input, .contact-v2 .field textarea{font-size: 20px; padding: 13px 16px; background: rgb(255, 255, 255); border: 1px solid rgb(137, 152, 141); border-radius: 4px; min-height: 56px;}
.contact-v2 .field textarea{min-height: 180px;}
.contact-v2 .form-two{display: block;}
 .contact-v2 .form-footnote, .contact-v2 .preview-notice, .contact-v2 .privacy-note p{font-size: 16px;}
.contact-v2 .submit-button{font-size: 23px; min-height: 70px; width: 100%; margin-top: 24px; background: rgb(230, 107, 32); border-bottom: 4px solid rgb(184, 75, 17); box-shadow: none; justify-content: center;}
.contact-v2-phone{display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; background: rgb(255, 248, 237); border: 1px solid rgb(186, 150, 95); border-radius: 6px; padding: 24px 20px; margin-top: 32px;}
.contact-v2-phone > span{font-size: 22px; font-weight: 700;}
.contact-v2-phone .telephone{font-size: 46px; color: rgb(65, 59, 51);}
.contact-v2-phone small{font-size: 19px;}
.form-trap{position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden;}
.header-phone .hours{white-space: nowrap;}
:root{--sp-green: #153e2e; --sp-orange: #c34405; --sp-line: #d7e1da;}
html{scroll-padding-top: calc(var(--mobile-header-height,64px) + 16px); scroll-padding-bottom: calc(var(--mobile-contact-height,104px) + 16px); scroll-behavior: smooth;}
body.sp-only{min-width: 0px; max-width: 680px; margin: 0px auto; padding-bottom: calc(var(--mobile-contact-height,104px) + 12px); font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 1rem; line-height: 1.75; color: rgb(36, 54, 46); background: rgb(255, 255, 255); overflow-wrap: anywhere;}
body.sp-only *{box-sizing: border-box; min-width: 0px;}
body.sp-only p{margin: 0px 0px 12px;}
body.sp-only h2, body.sp-only h3{letter-spacing: 0px; line-height: 1.5; white-space: normal;}
body.sp-only h2{font-size: 1.75rem;}
body.sp-only h3{font-size: 1.125rem;}
body.sp-only .wrap{width: calc(100% - 36px); margin-inline: auto;}
 body.sp-only .header-contact{display: none;}
body.sp-only .header{position: sticky; top: 0px; z-index: 50; background: rgb(255, 255, 255); backdrop-filter: none; box-shadow: rgba(21, 62, 46, 0.08) 0px 2px 10px;}
body.sp-only .header-main{width: 100%; padding: 9px 16px; min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 8px;}
body.sp-only .brand{display: flex; align-items: center; gap: 7px; white-space: normal;}
body.sp-only .brand-mark{width: 44px; height: 34px; overflow: hidden; flex-shrink: 0;}
body.sp-only .brand-mark img{width: 50px; height: 50px; max-width: none; transform: translate(-3px, -8px);}
body.sp-only .brand small{font-size: 0.8125rem; line-height: 1.35; letter-spacing: 0px;}
body.sp-only .brand strong{font-size: 1.1875rem; line-height: 1.3; letter-spacing: 0.02em;}
body.sp-only .menu-toggle{display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; border: 1px solid rgb(191, 206, 195); background: rgb(255, 255, 255); color: rgb(21, 62, 46); border-radius: 4px; padding: 0px;}
body.sp-only .menu-toggle .icon{width: 25px; height: 25px;}
body.sp-only #navigation{display: none; position: absolute; inset: 100% 0px auto; background: rgb(255, 255, 255); border: 1px solid var(--sp-line); max-height: calc(100dvh - 180px); overflow: auto;}
body.sp-only #navigation.is-open{display: block;}
body.sp-only #navigation .wrap{display: block; width: 100%; padding: 8px 18px;}
body.sp-only #navigation a{display: block; text-align: left; padding: 13px 0px; font-size: 1rem; border-bottom: 1px solid var(--sp-line);}
body.sp-only #navigation a::after{display: none;}
body.sp-only .hero.campaign-hero{padding: 0px; background: var(--sp-green); color: rgb(255, 255, 255);}
body.sp-only .wrap.campaign-grid{display: block; width: 100%; background: var(--sp-green);}
body.sp-only .campaign-copy{padding: 16px 14px 14px; text-align: center; background: var(--sp-green);}
body.sp-only .campaign-region{display: table; margin: 0px auto 9px; padding: 5px 9px; border: 1px solid rgb(163, 188, 173); font-size: 0.875rem; line-height: 1.5; color: rgb(255, 255, 255); letter-spacing: 0px;}
body.sp-only .campaign-eyebrow{display: table; margin: 0px auto 10px; padding: 6px 8px; background: rgb(255, 218, 107); color: rgb(21, 62, 46); font-size: clamp(1rem, 4.4vw, 1.3125rem); line-height: 1.5; letter-spacing: 0px; font-weight: 800;}
body.sp-only .campaign-hero h1{font-size: clamp(2.5rem, 12vw, 3.625rem); line-height: 1.13; letter-spacing: 0.01em; margin: 0px; color: rgb(255, 255, 255); overflow-wrap: anywhere;}
body.sp-only .campaign-hero h1 span{background: none; color: rgb(255, 187, 81);}
body.sp-only .campaign-visual{min-height: 0px; margin: 0px; border-top: 4px solid rgb(231, 121, 34); isolation: auto;}
body.sp-only .campaign-visual::before{display: none;}
body.sp-only .campaign-main-photo{position: static; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; object-position: center center; z-index: auto;}
body.sp-only .campaign-summary{padding: 16px 18px 20px; text-align: center;}
body.sp-only .campaign-lead{font-size: 1rem; line-height: 1.75; letter-spacing: -0.035em; margin: 0px 0px 14px;}
body.sp-only .campaign-lead strong{display: block;}
body.sp-only .campaign-lead br{display: none;}
body.sp-only .campaign-cta{max-width: none; margin: 0px;}
body.sp-only .campaign-cta .btn{display: flex; justify-content: center; width: 100%; min-height: 58px; padding: 13px 12px; gap: 7px; font-size: 1rem; line-height: 1.5; background: rgb(195, 68, 5); border: 1px solid rgb(241, 156, 97); box-shadow: rgb(121, 37, 0) 0px 3px 0px;}
body.sp-only .campaign-cta .icon{width: 19px; height: 19px;}
body.sp-only .campaign-cta > span{font-size: 0.875rem; line-height: 1.65; color: rgb(255, 255, 255); margin-top: 13px;}
body.sp-only .campaign-assurance{background: rgb(241, 245, 242);}
body.sp-only .campaign-assurance > .wrap{display: block; width: calc(100% - 36px); padding: 8px 0px;}
body.sp-only .campaign-assurance p{display: block; margin: 0px; padding: 10px 0px; text-align: center; border-bottom: 1px solid var(--sp-line);}
body.sp-only .campaign-assurance p:last-child{border: 0px;}
body.sp-only .campaign-assurance p::before{display: none;}
body.sp-only .campaign-assurance p span{font-size: 0.9375rem; margin-right: 8px;}
body.sp-only .campaign-assurance strong{font-size: 1.0625rem;}
body.sp-only .section{padding-block: 40px;}
body.sp-only .section-heading{margin: 0px 0px 20px; text-align: left;}
body.sp-only .section-heading h2{font-size: 1.75rem; line-height: 1.5; margin: 0px; text-wrap: pretty;}
body.sp-only .section-heading .kicker{display: block; font-size: 0.9375rem; line-height: 1.5; margin: 0px 0px 8px; letter-spacing: 0px; color: rgb(163, 64, 24);}
body.sp-only .kicker::before, body.sp-only .kicker::after{display: none;}
body.sp-only .section-photo{width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; margin: 0px 0px 20px; border-radius: 3px;}
body.sp-only .plain-list{list-style: none; padding: 0px; margin: 0px;}
body.sp-only .situation-list li{padding: 16px 0px; border-top: 1px solid var(--sp-line);}
body.sp-only .situation-list strong{font-size: 1.125rem; color: var(--sp-green);}
body.sp-only .situation-list p{margin: 4px 0px 0px;}
body.sp-only .items-section{background: rgb(240, 245, 241); border-block: 1px solid var(--sp-line);}
body.sp-only .item-list{display: block; background: rgb(255, 255, 255); border: 1px solid var(--sp-line); padding: 0px 15px;}
body.sp-only .item-list li{display: block; padding: 10px 0px; border-bottom: 1px solid var(--sp-line); font-size: 1.0625rem; font-weight: 700; line-height: 1.5;}
body.sp-only .item-list li:last-child{border: 0px;}
body.sp-only .item-list li::before{content: "✓"; color: rgb(48, 115, 72); margin-right: 10px;}
body.sp-only .item-list span{display: block; margin-top: 4px; font-size: 0.875rem; font-weight: 400;}
body.sp-only .short-note{font-size: 0.9375rem; margin: 12px 0px 0px;}
body.sp-only .condition-box{padding: 19px 16px; margin: 24px 0px 0px; border: 1px solid rgb(213, 173, 86); background: rgb(255, 248, 231); border-radius: 4px;}
body.sp-only .condition-box h3{font-size: 1.1875rem; color: var(--sp-green); margin: 0px 0px 13px;}
body.sp-only .condition-box ul{display: block; margin: 0px 0px 14px;}
body.sp-only .condition-box li{display: block; font-size: 1rem; line-height: 1.65; margin: 0px; padding: 9px 0px; border-width: 0px 0px 1px; border-style: none none solid; border-color: currentcolor currentcolor rgb(231, 217, 182); border-image: none; background: none; border-radius: 0px; color: rgb(36, 54, 46);}
body.sp-only .condition-box li:first-child{border-top: 1px solid rgb(231, 217, 182);}
body.sp-only .condition-box p{font-size: 0.9375rem; line-height: 1.7; margin: 0px; color: rgb(69, 84, 75);}
body.sp-only .reason-list{display: block;}
body.sp-only .reason-list article{display: block; padding: 20px 0px; border-bottom: 1px solid var(--sp-line);}
body.sp-only .reason-list article:first-child{padding-top: 0px;}
body.sp-only .reason-list h3{font-size: 1.1875rem; margin: 10px 0px 8px;}
body.sp-only .reason-list p{margin: 0px;}
body.sp-only .assurance-label{width: 112px; height: auto;}
body.sp-only .advisor-panel{display: block; padding: 20px 17px; background: rgb(244, 247, 244); border: 1px solid var(--sp-line); margin: 24px 0px 0px; border-radius: 4px;}
body.sp-only .advisor-panel .label-pill{display: inline-block; font-size: 0.875rem; margin: 0px 0px 10px;}
body.sp-only .advisor-panel h3{font-size: 1.125rem; margin: 0px 0px 9px;}
body.sp-only .advisor-panel p{font-size: 1rem; line-height: 1.75;}
body.sp-only .advisor-panel figure{display: block; text-align: center; margin: 16px 0px 0px;}
body.sp-only .advisor-panel figure img{width: 88px; height: 96px; object-fit: cover; margin: 0px auto 8px;}
body.sp-only .advisor-panel figcaption{font-size: 0.9375rem;}
body.sp-only .contact-band.disposal-band{display: block; padding: 0px; margin: 0px; background: rgb(21, 62, 46); border: 0px; border-radius: 4px; overflow: hidden;}
body.sp-only .disposal-band > img{width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover;}
body.sp-only .disposal-copy{padding: 20px 17px;}
body.sp-only .disposal-copy h2{font-size: 1.5rem; line-height: 1.5; margin: 0px 0px 12px; color: rgb(255, 255, 255);}
body.sp-only .disposal-copy > p{font-size: 1rem; line-height: 1.75; color: rgb(255, 255, 255); margin: 0px 0px 14px;}
body.sp-only .disposal-phone-row{display: block; text-align: center;}
body.sp-only .disposal-phone-row .telephone{font-size: 1.75rem; color: rgb(255, 255, 255); white-space: normal;}
body.sp-only .disposal-phone-row .hours{font-size: 0.875rem; line-height: 1.6; color: rgb(238, 243, 239); white-space: normal; margin: 7px 0px 0px;}
body.sp-only .steps{list-style: none; padding: 0px; margin: 0px;}
body.sp-only .steps li{display: block; padding: 17px 0px; border-top: 1px solid var(--sp-line);}
body.sp-only .steps li:last-child{padding-bottom: 0px;}
body.sp-only .step-number{display: inline-block; font-size: 0.875rem; line-height: 1.5; color: rgb(163, 64, 24); font-weight: 800; letter-spacing: 0.06em;}
body.sp-only .steps h3{font-size: 1.1875rem; margin: 5px 0px 7px;}
body.sp-only .steps p{margin: 0px;}
body.sp-only .area-section{background: rgb(238, 244, 239); color: rgb(36, 54, 46);}
body.sp-only .area-summary{display: block; border: 1px solid var(--sp-line); background: rgb(255, 255, 255); padding: 20px 17px;}
body.sp-only .area-summary h3{font-size: 1.125rem; margin: 0px 0px 8px; color: var(--sp-green);}
body.sp-only .area-summary h3:not(:first-child){border-top: 1px solid var(--sp-line); padding-top: 18px; margin-top: 18px;}
body.sp-only .area-summary p{font-size: 1rem; line-height: 1.85; margin: 0px;}
body.sp-only .faq-grid{display: block;}
body.sp-only .faq-grid details{display: block; margin: 0px 0px 10px; break-inside: avoid; background: rgb(255, 255, 255); border: 1px solid var(--sp-line); border-radius: 4px;}
body.sp-only .faq-grid summary{display: block; padding: 15px 32px 15px 14px; font-size: 1rem; line-height: 1.65; position: relative;}
body.sp-only .faq-grid summary > span{display: inline; font-size: 1rem; margin-right: 8px; padding: 0px; color: rgb(163, 64, 24); background: none;}
body.sp-only .faq-grid summary i{position: absolute; right: 13px; top: 23px;}
body.sp-only .faq-answer{display: block; padding: 0px 14px 16px;}
body.sp-only .faq-answer > span{display: none;}
body.sp-only .faq-answer p{font-size: 1rem; line-height: 1.75; margin: 0px;}
body.sp-only .contact-v2{padding: 40px 18px; background: rgb(255, 240, 231); border-top: 3px solid rgb(21, 62, 46);}
body.sp-only .contact-v2-wrap{max-width: none;}
body.sp-only .contact-v2-heading{text-align: center; margin: 0px 0px 22px;}
body.sp-only .contact-v2-heading > p{display: inline-block; font-size: 1rem; padding: 6px 10px; margin: 0px 0px 9px;}
body.sp-only .contact-v2-heading h2{font-size: 1.875rem; line-height: 1.5; margin: 0px 0px 8px;}
body.sp-only .contact-v2-heading > div{font-size: 1rem; line-height: 1.7; text-align: center;}
body.sp-only .contact-v2 .form-card{padding: 20px 16px; border: 1px solid rgb(199, 187, 173); border-radius: 5px; background: rgb(255, 255, 255);}
body.sp-only .contact-v2 .field{margin-top: 21px;}
body.sp-only .contact-v2 .field label{display: block; font-size: 1rem; line-height: 1.75; margin-bottom: 7px;}
body.sp-only .required, body.sp-only .optional{display: inline-block; font-size: 0.8125rem; margin-left: 5px; padding: 1px 6px; line-height: 1.5;}
body.sp-only .contact-v2 .field input, body.sp-only .contact-v2 .field textarea{display: block; width: 100%; min-height: 48px; padding: 12px; font-size: 1rem; border: 1px solid rgb(137, 152, 141); border-radius: 4px; background: rgb(255, 255, 255);}
body.sp-only .contact-v2 .field textarea{min-height: 150px; resize: vertical;}
body.sp-only .form-two{display: block;}
body.sp-only .privacy-note{display: block; padding: 12px; margin: 20px 0px 0px;}
body.sp-only .privacy-note > .icon{display: none;}
body.sp-only .privacy-note p{font-size: 0.875rem; line-height: 1.7; margin: 0px;}
body.sp-only .submit-button{width: 100%; display: flex; justify-content: center; min-height: 58px; font-size: 1rem; line-height: 1.5; padding: 13px 10px; margin-top: 20px; background: rgb(195, 68, 5); gap: 5px;}
body.sp-only .submit-button .icon{width: 18px;}
body.sp-only .contact-v2 .form-footnote, body.sp-only .contact-v2 .preview-notice{font-size: 0.875rem; line-height: 1.65; margin: 12px 0px 0px;}
body.sp-only .contact-v2-phone{display: block; text-align: center; padding: 19px 12px; margin: 20px 0px 0px; border: 1px solid rgb(195, 165, 109); background: rgb(255, 248, 237);}
body.sp-only .contact-v2-phone > span, body.sp-only .contact-v2-phone > small{display: block; font-size: 0.9375rem;}
body.sp-only .contact-v2-phone .telephone{display: block; font-size: 1.9375rem; line-height: 1.5; margin: 4px 0px; white-space: normal;}
body.sp-only .company-overview, body.sp-only .company-table{display: block; width: 100%; margin: 0px;}
body.sp-only .company-table > div{display: block; width: 100%; padding: 12px 0px; border-bottom: 1px solid var(--sp-line);}
body.sp-only .company-table dt, body.sp-only .company-table dd{display: block; width: 100%; margin: 0px; padding: 0px; font-size: 1rem; line-height: 1.75; background: none;}
body.sp-only .company-table dt{font-size: 0.875rem; font-weight: 700; color: rgb(83, 103, 89); margin-bottom: 3px;}
body.sp-only .office-map-link{display: flex; justify-content: center; align-items: center; gap: 6px; font-size: 0.9375rem; padding: 14px 8px;}
body.sp-only footer{background: rgb(21, 62, 46); color: rgb(255, 255, 255); padding: 28px 0px 20px;}
body.sp-only .footer-top, body.sp-only .footer-bottom{display: block; text-align: left; padding: 0px;}
body.sp-only .footer-top > div{margin-bottom: 18px;}
body.sp-only .footer-top > div p{font-size: 0.875rem; margin: 0px;}
body.sp-only .footer-top strong{font-size: 1.375rem;}
body.sp-only .footer-top small{display: block; font-size: 0.875rem;}
body.sp-only .footer-top nav{display: block;}
body.sp-only .footer-top nav a{display: block; font-size: 0.9375rem; padding: 10px 0px; border-bottom: 1px solid rgba(255, 255, 255, 0.15);}
body.sp-only .footer-bottom{border-top: 0px; padding-top: 20px; margin-top: 0px; font-size: 0.875rem;}
body.sp-only .footer-bottom p, body.sp-only .footer-bottom small{font-size: 0.8125rem; line-height: 1.65;}
body.sp-only .mobile-contact{position: fixed; inset: auto 0px 0px; max-width: 680px; width: 100%; margin-inline: auto; z-index: 70; display: flex; flex-direction: column; padding-bottom: env(safe-area-inset-bottom); background: rgb(255, 255, 255); box-shadow: rgba(21, 62, 46, 0.14) 0px -2px 12px; min-height: 0px; transform: none;}
body.sp-only .mobile-contact > a{display: flex; width: 100%; min-height: 50px; justify-content: center; align-items: center; gap: 8px; padding: 10px 12px; font-size: 1rem; line-height: 1.5; font-weight: 800;}
body.sp-only .mobile-contact > a:first-child{background: rgb(255, 255, 255); color: rgb(21, 62, 46); border-top: 1px solid rgb(202, 215, 205);}
body.sp-only .mobile-contact > a:last-child{background: rgb(195, 68, 5); color: rgb(255, 255, 255);}
body.sp-only .mobile-contact .icon{width: 21px; height: 21px;}
body.sp-only dialog{max-width: 500px; width: calc(100% - 24px); max-height: 85dvh; padding: 20px 16px; border-radius: 5px; overflow: auto;}
body.sp-only .dialog-top{display: flex; gap: 6px; justify-content: space-between; align-items: center;}
body.sp-only .dialog-top h2{font-size: 1.375rem; margin: 0px;}
body.sp-only .dialog-actions{display: flex; flex-direction: column; gap: 10px;}
body.sp-only .dialog-actions .btn{width: 100%; font-size: 1rem; min-height: 50px; padding: 12px 8px;}
body.sp-only #confirmation-status{font-size: 0.875rem; line-height: 1.7;}
@media (min-width: 681px) {
body.sp-only{box-shadow: rgba(21, 62, 46, 0.11) 0px 0px 32px;}
}
@media (prefers-reduced-motion: reduce) {
html{scroll-behavior: auto;}
}
body.mobile-v3 .section-heading, body.mobile-v3 .kicker, body.mobile-v3 h2, body.mobile-v3 h3{text-align: center;}
body.mobile-v3 .section-heading h2, body.mobile-v3 .disposal-copy h2{overflow-wrap: normal; word-break: normal; text-wrap: balance;}
body.mobile-v3 .heading-line{display: block; max-width: 100%; text-wrap: balance;}
body.mobile-v3 .section-heading h2{font-size: clamp(1.4rem, 6.1vw, 1.75rem);}
body.mobile-v3 #situations .section-heading h2{font-size: clamp(1.875rem, 8.2vw, 2.5rem); font-weight: 900; line-height: 1.35;}
body.mobile-v3 #situations .section-heading::after{content: ""; display: block; width: 96px; height: 5px; margin: 16px auto 0px; background: var(--sp-orange);}
body.mobile-v3 .inventory-photo{position: relative; width: 100%; aspect-ratio: 1006 / 456; overflow: hidden; margin: 0px 0px 16px; border-radius: 3px;}
body.mobile-v3 .inventory-photo img{display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 39%;}
body.mobile-v3 .situation-list{display: block;}
body.mobile-v3 .situation-list li{display: block; position: relative; padding: 16px 13px 16px 62px; margin: 0px 0px 10px; border-top: 0px; border-right: 0px; border-bottom: 0px; border-image: none; border-left: 6px solid var(--sp-green); border-radius: 5px; background: rgb(234, 244, 238);}
body.mobile-v3 .situation-list strong{display: block; font-size: 1.125rem; line-height: 1.5;}
body.mobile-v3 .situation-list p{font-size: 1rem; line-height: 1.7; margin: 5px 0px 0px;}
body.mobile-v3 .situation-icon{position: absolute; left: 13px; top: 20px; width: 36px; height: 36px; color: var(--sp-green);}
body.mobile-v3 #items > .wrap > .section-photo{object-fit: contain; background: rgb(255, 255, 255);}
body.mobile-v3 .company-note{font-size: 0.9375rem; line-height: 1.8; margin: 18px 0px;}
body.mobile-v3 .company-map{margin: 22px 0px 0px; border: 1px solid var(--sp-line); background: rgb(255, 255, 255);}
body.mobile-v3 .company-map img{display: block; width: 100%; height: auto;}
body.mobile-v3 .company-map figcaption{text-align: right; padding: 5px 8px; font-size: 0.8125rem; line-height: 1.5;}
body.mobile-v3 .company-map figcaption a{text-decoration: underline;}
body.mobile-v3 .office-map-link{border: 1px solid var(--sp-line); margin-top: 10px; min-height: 48px; background: rgb(240, 245, 241); text-align: center;}
body.mobile-v3 .reason-list .assurance-label{margin-inline: auto;}
body.mobile-v3 .steps .step-number{display: block; text-align: center;}
body.mobile-v3 .advisor-panel{text-align: center;}
@media (max-width: 350px) {
body.mobile-v3 .situation-list li{padding-left: 49px; padding-right: 10px;}
body.mobile-v3 .situation-icon{left: 9px; width: 28px; height: 28px;}
body.mobile-v3 .situation-list strong{font-size: 1rem;}
}
body.mobile-v4 .section-heading .kicker, body.mobile-v4 .campaign-assurance p span{font-size: 1.0625rem;}
body.mobile-v4 .inventory-photo{aspect-ratio: 3 / 2;}
body.mobile-v4 .inventory-photo img{object-position: center center;}
body.mobile-v4 #reasons .section-heading h2{font-size: clamp(1.25rem, 5.45vw, 1.625rem);}
body.mobile-v4 .skip{position: fixed; left: 12px; top: 12px; transform: translateY(-200%); z-index: 1000; background: rgb(255, 255, 255); color: rgb(21, 62, 46); padding: 10px 14px;}
body.mobile-v4 .skip:focus{transform: none;}
body.mobile-v4 :focus-visible{outline: rgb(195, 68, 5) solid 3px; outline-offset: 3px;}
body.mobile-v4 .form-trap{position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%);}

/* JavaScriptが無効な場合、確認画面を経由しない送信を防ぎます。 */
body.no-js .submit-button{display:none}
body.mobile-v4 .situation-icon .accent{stroke:var(--sp-orange);fill:var(--sp-orange)}
