/* 既存の配色・共通パーツを保ち、独立ページ用の構成だけを追加。 */
.keep{display:inline-block}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.header nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}.breadcrumbs{width:84%;max-width:1240px;margin:18px auto 0;font-size:11px;color:#687361;display:flex;gap:10px}.breadcrumbs a{text-decoration:underline;text-underline-offset:4px}.page-heading{width:84%;max-width:1240px;margin:0 auto;padding:42px 0 37px;border-bottom:1px solid var(--line)}.page-heading h1{font-size:clamp(30px,3.3vw,46px);font-weight:500;letter-spacing:.045em;line-height:1.6;margin:15px 0 17px}.page-heading>p:last-child{font-size:14px;max-width:750px}.page-return{width:84%;max-width:1240px;margin:0 auto 52px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:12px}.page-return a:hover{text-decoration:underline}.home-about{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;padding:53px 0 38px;align-items:center}.home-about h2{font-size:29px;margin-top:14px}.home-about>div>p:not(.eyebrow){font-size:13px}.home-links{padding:0 0 54px;display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.home-links>a{display:flex;gap:15px;border-top:1px solid #98a08e;padding:19px 0;align-items:baseline}.home-links>a>span{font-family:Georgia,serif;font-size:19px;color:#77816b}.home-links h2{font-size:16px;line-height:1.7;letter-spacing:0}.home-links p{font-size:11px;margin-top:8px}.home-links b{font-weight:400;margin-left:auto}.home-links a:hover h2{text-decoration:underline;text-underline-offset:5px}.page-heading+.about{padding:48px 0}.page-heading~.services{padding:48px 0}.page-heading+.process{padding:30px 0 37px}.steps{margin-top:15px}.next-step{padding:30px 0 50px;border-top:1px solid var(--line)}.next-step h2{font-size:24px}.next-step p{font-size:13px;margin-top:15px}.research-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:65px;padding:40px 0}.research-layout h2{font-size:24px;margin:21px 0 13px}.research-layout p,.research-layout li{font-size:13px}.paper-badge{margin:0 0 3px;color:#4d5e40;border-color:#a3ae96;font-size:11px}.example-list{list-style:none;padding:0;margin:15px 0 23px}.example-list li{border-top:1px solid var(--line);padding:10px 0 10px 18px;position:relative}.example-list li:before{content:'—';position:absolute;left:0;color:#7e886f}.research-panel{background:#e9ece3;padding:10px 30px 20px;align-self:start;margin-top:5px}.research-panel h2{font-size:20px}.research-panel dt{border-top:1px solid #ccd2c3;padding-top:14px;font-size:11px;color:#607052}.research-panel dd{margin:6px 0 19px;font-size:13px}.research-notes{padding:10px 0 50px}.research-notes>h2{font-size:25px;margin-bottom:20px}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.principles article{border-top:1px solid var(--line);padding-top:19px}.principles h3{font-size:15px;font-weight:500}.principles p{font-size:12px;margin-top:11px}.page-heading+.faq{display:block;max-width:900px;padding:33px 0 50px}.page-heading+.contact{display:block;border-top:0;padding:32px 0 0}.contact-status{max-width:630px;text-align:left;border-left:3px solid #8a927b}.status-dot{display:none}.contact-status p br{display:none}.contact-guidance{padding:28px 0 48px}.contact-guidance h2{font-size:23px;margin-bottom:15px}.contact-guidance p{font-size:13px;max-width:780px}.policy-body{padding:30px 0 50px;max-width:900px}.policy-body h2{font-size:22px;margin:29px 0 12px}.policy-body p,.policy-body li{font-size:13px}.policy-body dl{margin:24px 0}.policy-body dt{border-top:1px solid var(--line);padding-top:16px;color:#64745a;font-size:12px}.policy-body dd{margin:5px 0 20px;font-size:14px}.policy-body .draft-note{margin-top:0}.page-heading~.section{scroll-margin-top:25px}
@media(max-width:850px){.breadcrumbs,.page-heading,.page-return{width:88%}.page-heading{padding:25px 0 30px}.page-heading h1{font-size:32px}.page-heading>p:last-child{font-size:13px}.home-about{gap:28px;grid-template-columns:1fr;padding:38px 0 30px}.home-about h2{font-size:27px}.home-links{grid-template-columns:1fr;gap:0;padding-bottom:30px}.home-links>a{padding:17px 0}.home-links h2{font-size:16px}.home-links p{margin-top:4px;font-size:12px}.research-layout{grid-template-columns:1fr;gap:24px;padding:30px 0}.research-layout h2{font-size:23px}.research-panel{padding:9px 25px 15px}.principles{grid-template-columns:1fr;gap:20px}.research-notes{padding:10px 0 38px}.page-return{margin-bottom:34px;flex-wrap:wrap;font-size:11px}.policy-body{padding-top:24px}.page-heading+.about{padding:32px 0}.page-heading~.services{padding:32px 0}.page-heading+.faq{padding-top:20px}.next-step h2{font-size:22px}.contact-status{padding:23px}.contact-guidance p{font-size:12px}}
@media(max-width:480px){.page-heading h1{font-size:28px}.page-heading>p:last-child{font-size:12px}.home-about h2{font-size:25px}.page-return{flex-direction:column;gap:12px}.breadcrumbs{font-size:10px}.research-panel h2{font-size:19px}.research-notes>h2{font-size:22px}.contact-status h3{font-size:16px}.policy-body h2{font-size:20px}.research-layout p,.research-layout li{font-size:12px}}
@media(max-width:480px){.page-about .about-body h2{font-size:clamp(20px,6.15vw,24px);letter-spacing:.02em}.page-contact .page-heading h1{font-size:clamp(20px,6.15vw,24px);letter-spacing:.01em}.home-about h2{font-size:clamp(21px,6.4vw,25px);letter-spacing:.02em}}
/* 全ページ共通の可読性を調整 */
.page-heading>p:last-child,.about-body>p,.service-list p,.steps p,.research-layout p,.research-layout li,.research-panel dd,.principles p,.faq-list details p,.contact-guidance p,.policy-body p,.policy-body li,.home-about>div>p:not(.eyebrow),.next-step p{font-size:16px;line-height:1.95}.page-heading{padding-bottom:30px}.breadcrumbs,.page-return,.text-link{font-size:14px}.research-panel dt,.process-note{font-size:14px}.faq-list summary{font-size:16px;line-height:1.8}.home-links p{font-size:14px}.home-links h2{font-size:18px}.home-contact{padding:0 0 45px}.home-contact h2{font-size:26px}.home-contact p{font-size:15px;margin-top:10px}.home-contact .text-link{margin-top:16px}.footer-top>div{font-size:14px}.footer-bottom small{font-size:12px}.contact-status p{font-size:16px}.contact-status small{font-size:13px}.section-label>span,.section-top>p,.section-top small{font-size:14px}.notice p{font-size:14px}.header nav{font-size:13px}.policy-body dd{font-size:16px}
@media(min-width:851px) and (max-width:1150px){.header nav{font-size:11px;gap:13px}}
@media(max-width:850px){.page-heading>p:last-child,.about-body>p,.service-list p,.steps p,.research-layout p,.research-layout li,.research-panel dd,.principles p,.faq-list details p,.contact-guidance p,.policy-body p,.policy-body li,.home-about>div>p:not(.eyebrow),.next-step p{font-size:15px}.header nav{font-size:15px}.home-links p{font-size:14px}.notice p{font-size:13px}.section{padding-top:38px;padding-bottom:38px}.home-links{padding-top:0}.home-contact{padding-top:0}.page-return{font-size:14px}.footer-top>div{font-size:14px}.section-top{display:block}.section-top>p{max-width:none;margin-top:15px}}
/* 事業3区分と個別見積もりの案内 */
.pillar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.pillar-grid article{border-top:1px solid #a1ab96;padding-top:18px}.pillar-grid article>span,.home-pillars>a>span{font:20px Georgia,serif;color:#77836d}.pillar-grid h3{font-size:19px;font-weight:500;margin:12px 0 15px}.pillar-grid p{font-size:15px;line-height:1.95}.pricing{border-top:1px solid var(--line);padding-top:42px;padding-bottom:48px}.pricing>h2{font-size:32px;margin:14px 0 27px}.pricing-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:42px;align-items:start}.pricing-grid p{font-size:15px;line-height:1.95}.pricing-note{font-size:14px!important;color:#5b6953;border-left:2px solid #8e9a82;padding-left:15px}.estimate-panel{background:#e9ece3;padding:26px}.estimate-panel h3{font-size:21px;font-weight:500;line-height:1.7;margin-bottom:18px}.home-pillars{padding:0 0 10px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.home-pillars>a{border-top:1px solid #a1ab96;padding:16px 0}.home-pillars h3{font-size:19px;font-weight:500;margin:7px 0}.home-pillars p{font-size:14px}.home-pillars>a:hover h3{text-decoration:underline;text-underline-offset:5px}.home-business-link{width:84%;max-width:1240px;margin:0 auto 35px}.home-business-link .text-link{margin-top:0}.contact-subheading{margin-top:30px}
@media(max-width:850px){.pillar-grid{grid-template-columns:1fr;gap:25px}.pillar-grid h3{font-size:20px}.pricing-grid{grid-template-columns:1fr;gap:25px}.pricing>h2{font-size:27px}.pricing{padding-top:30px}.estimate-panel{padding:23px}.home-pillars{gap:16px;padding-top:0;padding-bottom:8px}.home-pillars h3{font-size:17px}.home-pillars p{font-size:13px}.home-business-link{width:88%;margin-bottom:28px}.pricing-grid p,.pillar-grid p{font-size:15px}}
@media(max-width:480px){.home-pillars{grid-template-columns:1fr;gap:0}.home-pillars>a{display:grid;grid-template-columns:28px 85px 1fr;align-items:baseline;gap:12px;padding:13px 0}.home-pillars h3{margin:0;font-size:17px}.home-pillars p{font-size:13px}.home-pillars>a>span{font-size:16px}.pricing>h2{font-size:25px}.estimate-panel h3{font-size:20px}}
/* 共通の文字階層。本文はMedium、見出しはSemiboldを基本とする。 */
body{font-weight:500;line-height:1.95}
h1,h2,h3,.page-heading h1,.service-list h3,.steps h3,.principles h3,.contact-status h3,.pillar-grid h3,.estimate-panel h3,.home-pillars h3{font-weight:600}
.page-heading h1{line-height:1.5;letter-spacing:.035em}
.page-heading{position:relative}
.page-heading:after{content:'';position:absolute;bottom:-1px;left:0;width:56px;height:3px;background:#37413b}
.section-label>p{font-weight:600}.eyebrow,.section-label>span,.paper-badge{font-weight:600}
.header nav{font-weight:650}.brand>span{font-weight:650}.brand small{font-weight:500}
button,.menu-toggle,.text-link,.page-return a,.nav-contact,.home-links h2{font-weight:600}
.footer-top>div,.footer-bottom small,.breadcrumbs,.policy-body dt,.research-panel dt,.contact-status small{font-weight:500}
.home-pillars>a>span,.pillar-grid article>span,.steps span{font-weight:500}
.faq-list summary{font-weight:600;line-height:1.85}
@media(min-width:851px){
 :root{--content-width:1120px;--content-gutter:84%}
 .section,.breadcrumbs,.page-heading,.page-return,.home-business-link,.notice{width:var(--content-gutter);max-width:var(--content-width);margin-left:auto;margin-right:auto}
 .page-heading+.faq,.policy-body{max-width:var(--content-width)}
 .header{padding-left:max(8%,calc((100% - 1120px)/2));padding-right:max(8%,calc((100% - 1120px)/2));gap:22px}
 .header nav{gap:20px;font-size:12px}.header nav .nav-contact{padding:14px 18px;gap:14px}
 footer{padding-left:max(8%,calc((100% - 1120px)/2));padding-right:max(8%,calc((100% - 1120px)/2))}
 .policy-body>p,.policy-body>ul,.policy-body>dl,.faq-list{max-width:900px}
 .page-heading{padding-top:37px}
}
@media(min-width:851px) and (max-width:1100px){.header{padding-left:8%;padding-right:8%;gap:16px}.header nav{gap:12px;font-size:10px}.header nav .nav-contact{padding:12px;gap:8px}.header .brand>span{font-size:25px}}
.home-links b,.home-links>a>span{font-weight:500}
/* 長い見出しの末尾だけが次の行に残らないよう行を均衡させる。 */
.page-heading h1,.section h2,.section h3{text-wrap:balance}
.home-about{padding-top:36px}
.home-pillars>.sr-only{position:absolute}
.contact-status h2{font-size:18px;font-weight:600;line-height:1.7;margin:0 0 12px}
.policy-body p a{text-decoration:underline;text-underline-offset:4px}

/* 7項目のナビゲーションは、幅が足りない場合に2行に収める。 */
@media (min-width:851px) {
  .header nav { flex-wrap:wrap; justify-content:flex-end; gap:8px 16px; font-size:13px; }
  .header nav a { white-space:nowrap; padding-block:8px; }
  .header nav .nav-contact { padding:10px 14px; }
}
.home-pillars { margin-bottom:24px; }
.footer-top > div { max-width:760px; }
.page-pricing .services { padding-top:28px; }

/* ナビゲーションの項目間に控えめな区切りを入れる。 */
@media (min-width:851px) {
  .header nav { column-gap:12px; }
  .header nav a + a { position:relative; }
  .header nav a + a::before {
    content:"";
    position:absolute;
    left:-6px;
    top:50%;
    width:1px;
    height:12px;
    background:#b7beb4;
    transform:translateY(-50%);
  }
}
@media (max-width:850px) {
  .header nav a + a { border-top:1px solid var(--line); }
}

.about-links,.inquiry-actions { display:flex; flex-wrap:wrap; gap:12px 28px; }
.future-label { display:inline-block; padding:2px 9px; margin-bottom:10px; background:#e9ece3; }
.inquiry h2 { font-size:24px; margin-bottom:12px; }
.inquiry form { display:grid; max-width:720px; gap:10px; margin-top:24px; }
.inquiry form > label { font-weight:600; margin-top:8px; }
.inquiry input:not([type=checkbox]),.inquiry textarea,.inquiry select {
  width:100%; min-width:0; padding:10px; border:1px solid #9ba798;
  border-radius:3px; background:#fff; color:inherit; font:inherit;
}
.inquiry textarea { resize:vertical; }
.inquiry-consent { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:10px; }
.inquiry-consent a { text-decoration:underline; }
.inquiry-actions { margin-top:12px; }
.inquiry-actions button { padding:9px 15px; border:1px solid #37413b; background:#37413b; color:white; font:inherit; }
.inquiry-actions button:disabled { background:#e1e5dc; color:#4d594d; border-color:#a7b2a3; cursor:default; }
#inquiry-result:empty { display:none; }

.header .brand img {
  width: clamp(176px, 17vw, 224px);
  height: auto;
  mix-blend-mode: multiply;
}

@media (max-width: 850px) {
  .header .brand img { width: 194px; max-width: 52vw; }
}


.page-contact .page-heading h1 span { white-space: nowrap; }
