/* 看板下部の柔らかな色の重なりを、白い余白と曲線の帯で表現する。 */
:root {
  --green: #21735f;
  --green2: #308d70;
  --deep: #215448;
  --orange: #ad521e;
  --cream: #fff;
  --sign-orange-light: #fff8f2;
  --sign-green-light: #f4faf7;
  --sign-yellow-light: #fffdf6;
  --sign-gradient: linear-gradient(115deg,#ffd4b7 0%,#f9e9b0 48%,#bce4d3 100%);
  --sign-rule: #e4ebe7;
}
body#top .header { border-bottom-color: var(--sign-rule); }
body#top .header .contact-button { background: var(--deep); color: #fff; border-radius: 8px; }
body#top .header .phone-button { background: #f6f9f7; color: var(--deep); }
body#top .preview-ribbon { background: #f5f7f6; color: #56635d; }
body#top .topbar { background: var(--deep); }
body#top .quick-link.orange { background: #f3983e; border-color: transparent; color: #492b14; }
body#top .quick-link.orange :is(svg,.arrow) { color: #492b14; }
body#top .quick-link.orange:hover { background: #f6ad60; }
.home-page .quick { border-color: var(--sign-rule); border-radius: 16px; box-shadow: 0 12px 38px rgba(35,72,57,.045); }
.home-page .quick-link { border-color: var(--sign-rule); border-radius: 8px; }
.home-page .hero { background: #fff; }
.home-page .hero-copy h1 { color: #20352e; }
.home-page .hero-copy h1 em { color: var(--green); }
.home-page .hero-photo::after { background-image: linear-gradient(90deg,#fff,rgba(255,255,255,.75) 8%,rgba(255,255,255,.08) 31%,transparent 45%); }
.home-page .hero::after { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 145px; z-index: 0; background: url('/assets/img/sign-ribbon.svg') center bottom / 100% 100% no-repeat; pointer-events: none; }
.home-page .news-ticker { background: #fff; border-block: 1px solid var(--sign-rule); border-radius: 0; }
.home-page .service-card { border-color: var(--sign-rule); }
.home-page .service-card .service-icon { background: #f6faf8; color: var(--green); }
.home-page .service-card .service-category { background: #f4f8f6; color: var(--deep); }
.home-editorial .home-trust { background: radial-gradient(ellipse at 0 100%,#fff1e5,transparent 60%),radial-gradient(ellipse at 100% 100%,#e9f5ef,transparent 65%),#fffefa; }
.home-editorial .home-careers { background: radial-gradient(ellipse at 0 100%,#fff3e8,transparent 65%),radial-gradient(ellipse at 100% 0,#e8f6f0,transparent 65%),#fff; }
.home-editorial .home-button { border-radius: 8px; }
.home-editorial .home-button-filled { background: var(--deep); border-color: var(--deep); color: white; }
.home-editorial .home-button-filled:hover { background: var(--green); color: white; }
.home-editorial .home-eyebrow { color: var(--green); }
.facility-page .facility-title-band { background: radial-gradient(ellipse at 5% 100%,#fff4ea,transparent 50%),radial-gradient(ellipse at 100% 100%,#edf8f3,transparent 55%),#fff; }
.facility-page .facility-title-cat { background: #f0f7f3; color: var(--deep); }
.facility-page .feature-card { border-top-color: #c9dfd4; }
.facility-page .feature-number { color: var(--green); }
.facility-page .facility-facts { background: #f7faf8; }
.facility-page .facility-contact-band { background: var(--sign-gradient); }
.price-highlight { background: #f6faf8; border-color: #dfeae4; }
.price-highlight-question { margin-top: 0; font-size: 20px; }
.content-section-heading { border-left-color: #8fcbb3; }
/* 看板の帯を全ページの終わりに。本文は白地に濃色で読む。 */
body#top .footer { background: #f8fbf9; color: var(--deep); border-top: 0; padding-top: 120px; }
body#top .footer::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 90px; background: #fff url('/assets/img/sign-ribbon.svg') center / 100% 100% no-repeat; pointer-events: none; }
body#top .footer :is(.brand-copy,.footer-address,.footer-col a,.footer-bottom) { color: #385b4e; }
body#top .footer .footer-col h3 { color: #214b3b; }
body#top .footer .footer-bottom { border-top-color: #d8e7df; }
body#top .footer .footer-contact { border-color: #c9ded2; }
body#top .footer .footer-contact > a { background: var(--deep); color: #fff; }
body#top .footer .to-top { color: var(--deep); border-color: #9cbcaf; background: #fff; }
body#top .footer-watermark { filter: brightness(0); opacity: .035; }
body#top :is(a,button,summary):focus-visible { outline-color: var(--deep); }
@media(max-width:767px) {
  .home-page .hero-photo::after { background-image: linear-gradient(180deg,rgba(255,255,255,0) 38%,rgba(255,255,255,.86) 70%,#fff 96%); }
  .home-page .hero::after { height: 80px; }
  body#top .mobile-fixed-contact { background: #f3983e; color: #492b14; }
  .home-page .quick { border-radius: 12px; }
  body#top .footer { padding-top: 86px; }
  body#top .footer::before { height: 62px; }
}
