:root { --brand: #149d84; --ink: #173c36; --soft: #eff9f5; }
body { font-family: 'Noto Serif JP', serif; color: #03201a; }
[hidden] { display: none !important; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible { outline: 3px solid #f0ac36; outline-offset: 5px; }
.review-banner { position: relative; z-index: 20; min-height: 38px; padding: 8px 20px; display: flex; justify-content: center; flex-wrap: wrap; gap: 5px 18px; background: #21473f; color: #fff; font-size: 12px; text-align: center; }
.l-header { position: relative; background: #fff; z-index: 10; box-shadow: 0 1px 0 #dbece6; }
.l-header__wrap { max-width: 1480px; padding: 12px 30px; margin: auto; gap: 24px; min-height: 92px; }
.l-header__logo { display: flex; align-items: center; gap: 12px; width: 220px; max-width: 60vw; flex-shrink: 0; margin: 0; padding: 0; }
.l-header__logo img { width: 62px; height: 66px; display: block; object-fit: contain; }
.l-header__logo span { font-size: 20px; line-height: 1.4; font-weight: 700; color: #08775e; }
.l-header__items { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px 17px; }
.l-header__nav { padding-bottom: 0; }
.l-header__item a { font-size: 14px; font-weight: 600; white-space: nowrap; }
.l-header__item a:hover { color: var(--brand); }
.l-header__hamburger { display: none; background: transparent; cursor: pointer; flex-shrink: 0; }
.l-drawer { position: absolute; top: 100%; height: auto; max-height: calc(100dvh - 160px); overflow: auto; background: white; inset-inline: 0; visibility: hidden; pointer-events: none; padding: 25px; box-shadow: 0 15px 30px #173c3620; }
.l-drawer.open { visibility: visible; pointer-events: auto; }
.l-drawer__items { display: grid; gap: 0; padding: 0; }
.l-drawer__item a { display: block; padding: 14px 12px; font-size: 17px; color: var(--ink); border-bottom: 1px solid #dbece6; }
.p-fv { padding-top: 45px; }
.p-about__items { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; max-width: 1120px; }
.p-about__item { padding: 0 40px; font-size: 18px; white-space: nowrap; }
.p-about__item span { font-size: 42px; }
.p-about__item::before,.p-about__item::after { width: 36px; }
.p-strengths__item { padding-right: 200px; min-height: 180px; }
.c-page { padding-top: 55px; }
.p-page-about,.p-page-voice { margin-top: 0; padding-top: 56px; }
.p-page-news { margin-top: 0; }
.p-page-news__bg { padding: 64px 25px; }
.p-page-news__title { display: block; width: 100%; max-width: 1040px; margin: 0 auto; font-size: 32px; line-height: 1.7; overflow-wrap: anywhere; text-wrap: balance; }
.p-page-blog__postcotnent { max-width: 920px; margin: 36px auto 0; padding-bottom: 48px; overflow-wrap: anywhere; font-size: 16px; line-height: 1.9; font-weight: 400; text-align: left; }
.p-page-blog__postcotnent p { font-size: 16px; line-height: 1.9; margin: 0 0 1.25em; }
.p-page-blog__postcotnent h2 { font-size: 28px; line-height: 1.6; margin: 2em 0 .8em; padding-bottom: 10px; border-bottom: 1px solid #c4dbd2; }
.p-page-blog__postcotnent h3 { font-size: 22px; line-height: 1.7; margin: 1.8em 0 .7em; }
.p-page-blog__postcotnent h4 { font-size: 19px; line-height: 1.7; margin: 1.5em 0 .6em; }
.p-page-blog__postcotnent li { margin: .35em 0; line-height: 1.9; }
.article-table-wrap { max-width: 100%; overflow-x: auto; margin: 24px 0; }
.p-page-blog__postcotnent table { width: 100%; border-collapse: collapse; display: table; table-layout: auto; }
.p-page-blog__postcotnent td,.p-page-blog__postcotnent th { padding: 10px; border: 1px solid #c4dbd2; width: auto !important; min-width: 80px; vertical-align: top; }
.p-page-blog__postcotnent .article-table--two-columns { table-layout: fixed; }
.p-page-blog__postcotnent .article-table--two-columns :is(td,th):first-child:not([colspan]) { width: 25% !important; }
.p-page-blog__postcotnent a { color: #08775e; text-decoration: underline; }
.p-page-blog__postcotnent ul,.p-page-blog__postcotnent ol { margin: 20px 0 20px 1.5em; list-style: revert; }
.p-faq__details { box-sizing: border-box; }
.p-faq__content { height: auto !important; opacity: 1; }
.faq-page { margin-top: 0; background: #e0f9dc; }
.faq-page .p-faq__wrap { margin-top: 0; }
.site-footer { background: var(--soft); padding: 56px 6vw 28px; display: grid; gap: 28px; justify-items: center; border-top: 1px solid #dbece6; }
.site-footer img { width: 110px; height: auto; }
.site-footer nav { max-width: 1050px; display: flex; flex-wrap: wrap; gap: 16px 25px; justify-content: center; font-size: 14px; }
.site-footer p { font-size: 13px; }
.review-page { padding: 65px 24px 90px; background: #fff; }
.review-page__inner { max-width: 1080px; margin: 0 auto; }
.review-page h1 { color: var(--brand); font-size: clamp(26px,4vw,42px); text-align: center; font-weight: 700; margin: 10px 0 48px; line-height: 1.5; }
.page-intro { text-align: center; line-height: 1.9; margin: 0 0 28px; }
.topic-links { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-bottom: 40px; }
.topic-links a { border: 1px solid var(--brand); border-radius: 30px; padding: 10px 20px; color: #08775e; font-size: 14px; }
.topic-links a:hover { background: var(--soft); }
.article-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.article-grid li { display: flex; }
.article-grid a { display: flex; flex-direction: column; width: 100%; gap: 20px; background: #fff; border: 1px solid #d4e7de; border-radius: 12px; padding: 30px; }
.article-grid a:hover { border-color: var(--brand); box-shadow: 0 8px 20px #173c3610; }
.article-grid h2 { font-size: 19px; font-weight: 600; line-height: 1.75; }
.article-card__label { font-size: 12px; color: #08775e; background: var(--soft); border-radius: 3px; align-self: flex-start; padding: 4px 12px; }
.article-card__more { margin-top: auto; font-size: 14px; color: #08775e; text-align: right; }
.legal-page .review-page__inner { max-width: 880px; font-size: 16px; line-height: 1.95; }
.legal-page h2 { font-size: 22px; margin: 38px 0 15px; font-weight: 700; }
.legal-page h3 { font-size: 18px; margin: 26px 0 12px; font-weight: 600; }
.legal-page p { margin: 10px 0; }
.legal-table-wrap { max-width: 100%; overflow-x: auto; margin: 20px 0; }
.legal-page table { width: 100%; border-collapse: collapse; font-size: 14px; }
.legal-page caption { text-align: left; font-weight: 600; margin-bottom: 10px; }
.legal-page th,.legal-page td { padding: 12px; text-align: left; vertical-align: top; border: 1px solid #bcd8cd; min-width: 90px; }
.legal-page th { background: var(--soft); font-weight: 600; }
.legal-page a { color: #08775e; text-decoration: underline; overflow-wrap: anywhere; }
.legal-review-note,.form-test-notice { padding: 18px 22px; background: #fff7df; border-left: 4px solid #c48e25; border-radius: 5px; line-height: 1.8; font-size: 14px; margin: 25px 0; }
.contact-page .review-page__inner { max-width: 800px; }
#contact-form { margin: 35px 0 0; }
#contact-form fieldset { border: 0; margin: 0 0 32px; }
#contact-form legend { margin-bottom: 15px; font-weight: 600; }
#contact-form fieldset label { display: block; margin: 12px 0; }
#contact-form [type=radio] { appearance: auto; width: 18px; height: 18px; margin-right: 10px; accent-color: var(--brand); }
.form-field { margin-bottom: 26px; }
.form-field > label { display: block; font-weight: 600; margin-bottom: 10px; }
.form-field label span,#contact-form legend span { color: #a32626; font-size: 12px; margin-left: 10px; }
.form-field label .optional { color: #56706a; }
.form-field input,.form-field textarea { border-radius: 6px; background: white; font-family: inherit; color: var(--ink); }
.field-error { color: #b33333; font-size: 14px; margin-top: 5px; }
[aria-invalid=true] { border-color: #b33333; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form-privacy { text-align: center; margin-bottom: 20px; font-size: 14px; }
.form-privacy a,.form-test-notice a { text-decoration: underline; color: #08775e; }
.form-submit { display: block; margin: auto; background: #149d84; color: white; padding: 20px 30px; width: min(100%,360px); border-radius: 5px; cursor: pointer; font-size: 18px; font-weight: 600; }
.form-submit:disabled { opacity: .6; cursor: wait; }
.form-result:empty { display: none; }
.form-result { margin-top: 25px; padding: 20px; background: var(--soft); border: 1px solid #b6dacc; line-height: 1.8; border-radius: 5px; }
.form-result.is-error { background: #fff0ed; border-color: #d99990; }
.line-direct { text-align: center; margin: 25px 0; }
.line-direct a { display: inline-block; padding: 16px 24px; color: white; background: #087c36; border-radius: 6px; }
.p-consultation__img img { width: 200px; height: 200px; margin: auto; }
@media(max-width:1100px) { .l-header__nav { display:none; } .l-header__hamburger { display:block; } .l-header__wrap { padding:15px 25px; min-height:85px; } }
@media(min-width:1101px) { .l-drawer { display:none !important; } }
@media(max-width:768px) { .review-banner { font-size:10px; padding:7px 12px; } .review-banner span { max-width:300px; } .l-header__logo { width:210px; } .l-header__wrap { padding:12px 20px; min-height:76px; } .review-page { padding:35px 18px 55px; } .review-page h1 { margin-bottom:30px; } .article-grid { grid-template-columns:1fr; gap:16px; } .article-grid a { padding:22px; } .article-grid h2 { font-size:17px; } .legal-page .review-page__inner { font-size:14px; } .legal-page h2 { font-size:19px; } .p-page-blog__item { max-width:100%; } .site-footer { padding:40px 22px 25px; } .site-footer nav { font-size:12px; gap:14px 18px; } .p-fv { padding-top:20px; } }
@media(max-width:768px) { .p-page-about,.p-page-voice { padding-top:32px; } .p-page-news { background:none; } .p-page-news__bg { padding:36px 15px; background-image:url('/assets/theme/images/news_sp.webp'); background-size:cover; background-position:center; } .p-page-news__title { font-size:26px; line-height:1.65; } .p-page-blog__postcotnent { margin-top:28px; } .p-page-blog__postcotnent h2 { font-size:23px; } .p-page-blog__postcotnent h3 { font-size:20px; } .p-page-blog__postcotnent h4 { font-size:18px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.001ms !important; transition-duration:.001ms !important; } }
@media(max-width:1024px) { .p-about__items { grid-template-columns: 1fr; gap: 38px; justify-items: center; } .p-about__item { font-size: 20px; } .p-about__item span { font-size: 40px; } }
@media(max-width:768px) { .p-strengths__item { padding-right: 0; min-height: 0; } .p-strengths__img { position: static; display: block; width: 90px; height: 90px; object-fit: contain; margin: 0 auto 18px; } .p-strengths__item:not(:nth-of-type(1)) { margin-top: 48px; } }
@media(max-width:768px) { .p-page-blog__postcotnent table { min-width: 560px; } .p-page-blog__postcotnent .article-table-wrap--single table { min-width: 0; } .article-table-wrap:not(.article-table-wrap--single)::before { content: '表は横にスクロールできます'; display: block; font-size: 12px; color: #56706a; margin-bottom: 8px; } }

