:root{
  --green:#1f6f63;
  --green-dark:#174e46;
  --mint:#eaf6f1;
  --soft:#f7fbf9;
  --line:#d9e8e1;
  --text:#243634;
  --muted:#657a76;
  --accent:#f3b76b;
  --radius:24px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--text);font-family:"Noto Sans JP",system-ui,-apple-system,sans-serif;line-height:1.8;background:#fff}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
.inner{width:min(1120px,calc(100% - 40px));margin:0 auto}
.narrow{width:min(780px,100%);margin:0 auto}
.eyebrow{margin:0 0 10px;font-size:12px;font-weight:800;letter-spacing:.16em;color:var(--green)}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;border-radius:999px;text-decoration:none;font-weight:700;transition:.25s ease;gap:8px}
.btn--primary{background:var(--green);color:#fff}
.btn--primary:hover{background:var(--green-dark)}
.btn--ghost{border:1px solid var(--green);color:var(--green);background:#fff}
.btn--line{background:#fff3e2;color:#8d5e22}
.btn--full{width:100%}
.link-more{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--green)}
.link-more::after{content:"→"}
.site-header{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid #edf3f0}
.header-bar{background:var(--green-dark);color:#fff;text-align:center;padding:8px 10px;font-size:12px}
.header-main{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0}
.site-logo{text-decoration:none;font-weight:800;font-size:24px;color:var(--green-dark)}
.global-nav{margin-left:auto}
.nav-list,.footer-nav{list-style:none;margin:0;padding:0;display:flex;gap:24px;align-items:center}
.nav-list a,.footer-nav a{text-decoration:none;font-weight:600}
.header-actions{display:flex;align-items:center;gap:12px}
.header-tel{text-decoration:none;font-weight:800;color:var(--green-dark)}
.hamburger{display:none;width:44px;height:44px;border:0;background:transparent;padding:0;position:relative;z-index:1100}
.hamburger span{display:block;width:24px;height:2px;background:var(--green-dark);margin:5px auto;transition:.25s}
.hamburger.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.is-active span:nth-child(2){opacity:0}
.hamburger.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);opacity:0;visibility:hidden;pointer-events:none;transition:.25s}
.nav-overlay.is-open{opacity:1;visibility:visible;pointer-events:auto}
.sp-nav-cta{display:none}
.split-hero{padding:52px 0 36px;background:linear-gradient(180deg,#f7fbf9 0%, #fff 100%)}
.split-hero__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:stretch}
.split-hero__content{background:#fff;border:1px solid var(--line);border-radius:32px;padding:48px;box-shadow:0 16px 40px rgba(34,61,56,.06)}
.split-hero__title{margin:0 0 18px;font-size:clamp(34px,4vw,56px);line-height:1.25;letter-spacing:.02em;color:var(--green-dark)}
.split-hero__text{margin:0 0 24px;color:var(--muted)}
.hero-buttons{display:flex;gap:14px;flex-wrap:wrap}
.split-hero__panel{display:grid;gap:18px}
.hero-card{padding:24px;border-radius:28px;background:#fff;border:1px solid var(--line)}
.hero-card--accent{background:var(--green);color:#fff;border-color:var(--green)}
.hero-card--muted{background:var(--soft)}
.hero-card__label{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.12em;opacity:.8}
.hero-card__value{margin:0;font-size:24px;line-height:1.5;font-weight:800}
.hero-list{margin:0;padding-left:1.2em}
.quick-links{padding:0 0 22px}
.quick-links__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.quick-link{display:block;padding:20px 22px;border-radius:22px;background:var(--soft);text-decoration:none;border:1px solid var(--line)}
.quick-link strong{display:block;font-size:18px;color:var(--green-dark)}
.quick-link span{display:block;font-size:13px;color:var(--muted)}
.feature-band{padding:22px 0 48px}
.feature-band__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.feature-box{background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px}
.feature-box__num{margin:0 0 12px;font-size:40px;font-weight:800;color:#dbeae5;line-height:1}
.feature-box h2{margin:0 0 12px;font-size:24px;line-height:1.5;color:var(--green-dark)}
.feature-box p{margin:0;color:var(--muted)}
.section-block{padding:64px 0}
.section-block--alt{background:var(--soft)}
.section-block--soft{background:linear-gradient(180deg,#fff 0%, #f9fcfb 100%)}
.section-head{text-align:center;margin-bottom:28px}
.section-head--left{text-align:left}
.section-head h2,.timeline-layout__head h2,.page-hero h1,.page-title{margin:0 0 10px;font-size:clamp(28px,3vw,40px);line-height:1.35;color:var(--green-dark)}
.section-head p,.timeline-layout__head p,.page-hero p{margin:0;color:var(--muted)}
.card-grid{display:grid;gap:22px}
.card-grid--three{grid-template-columns:repeat(3,1fr)}
.card-grid--two{grid-template-columns:repeat(2,1fr)}
.service-card__link,.voice-card__inner,.info-panel,.form-card,.thanks-box,.staff-panel>a{display:block;background:#fff;border:1px solid var(--line);border-radius:28px;overflow:hidden;text-decoration:none;box-shadow:0 12px 30px rgba(34,61,56,.05)}
.service-card__image,.service-card__placeholder,.staff-panel__img{aspect-ratio:16/10;background:linear-gradient(135deg,#ecf7f3,#d9ede6);overflow:hidden}
.service-card__image img,.staff-panel__img img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.service-card__link:hover .service-card__image img,.staff-panel>a:hover .staff-panel__img img{transform:scale(1.05)}
.service-card__body,.voice-card__inner,.staff-panel__body{padding:24px}
.service-chip{display:inline-block;margin-bottom:12px;padding:6px 12px;border-radius:999px;background:var(--mint);color:var(--green);font-size:12px;font-weight:800}
.service-card h3,.voice-card h3,.staff-panel h2{margin:0 0 12px;font-size:24px;line-height:1.5;color:var(--green-dark)}
.service-card p,.voice-card p,.staff-panel p,.news-row span{margin:0;color:var(--muted)}
.timeline-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;align-items:start}
.timeline-list{list-style:none;margin:0;padding:0;display:grid;gap:18px}
.timeline-list li{position:relative;padding:22px 24px 22px 74px;background:#fff;border:1px solid var(--line);border-radius:24px}
.timeline-list li::before{counter-increment:item;content:counter(item);position:absolute;left:24px;top:24px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-weight:800}
.timeline-list{counter-reset:item}
.timeline-list strong{display:block;margin-bottom:8px;font-size:20px;color:var(--green-dark)}
.dual-panel{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:start}
.info-panel{padding:28px}
.info-list{margin:0;display:grid;gap:14px}
.info-list div{padding-bottom:14px;border-bottom:1px solid #edf3f0}
.info-list dt{margin-bottom:4px;font-size:13px;font-weight:800;color:var(--green)}
.info-list dd{margin:0;color:var(--muted)}
.news-stack{display:grid;gap:14px}
.news-row a{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:center;padding:18px 22px;background:#fff;border:1px solid var(--line);border-radius:18px;text-decoration:none}
.news-row time{font-weight:700;color:var(--green)}
.cta-banner{padding:0 0 72px}
.cta-banner__inner{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;padding:36px;background:linear-gradient(135deg,var(--green-dark),var(--green));color:#fff;border-radius:32px}
.cta-banner__inner h2{margin:0 0 10px;font-size:clamp(28px,3vw,40px);line-height:1.4}
.cta-banner__inner p{margin:0}
.cta-banner__actions{display:flex;gap:12px;flex-wrap:wrap}
.site-footer{padding:56px 0 24px;background:#18322d;color:#fff}
.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;align-items:start}
.footer-brand{margin:0 0 10px;font-size:24px;font-weight:800}
.footer-text{margin:0 0 6px;color:rgba(255,255,255,.82)}
.footer-nav{flex-direction:column;align-items:flex-start;gap:10px}
.footer-nav a{color:#fff}
.footer-cta-box{padding:20px;border-radius:24px;background:rgba(255,255,255,.06)}
.footer-cta-title{margin:0 0 14px;font-weight:700}
.copyright{text-align:center;margin:24px 0 0;color:rgba(255,255,255,.72);font-size:12px}
.page-hero{padding:64px 0 26px;background:linear-gradient(180deg,#f7fbf9,#fff)}
.archive-wrap{padding:0 0 72px}
.single-layout{padding:48px 0 72px}
.entry-content p:first-child{margin-top:0}
.featured-image img{border-radius:24px}
.entry-meta-box,.thanks-box,.map-placeholder{padding:24px;background:var(--soft);border:1px solid var(--line);border-radius:24px}
.cta-inline{margin-top:24px}
.staff-showcase{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.staff-role{margin:0 0 8px;color:var(--green);font-size:13px;font-weight:800;letter-spacing:.08em}
.profile-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px;align-items:start}
.profile-layout__media img{border-radius:28px}
.faq-item{border:1px solid var(--line);border-radius:18px;background:#fff;padding:18px 20px;margin-bottom:14px}
.faq-item summary{cursor:pointer;font-weight:700;color:var(--green-dark)}
.faq-item__body{margin-top:12px;color:var(--muted)}
.access-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px}
.map-placeholder{min-height:360px;display:grid;place-items:center}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.form-grid label{display:block;font-weight:700;color:var(--green-dark)}
.form-grid label span{color:#d44}
.form-grid input,.form-grid textarea,.form-grid select{width:100%;margin-top:8px;padding:14px;border:1px solid var(--line);border-radius:16px;font:inherit}
.form-grid .full{grid-column:1 / -1}
@media (max-width: 960px){
  .pc-only{display:none}
  .hamburger{display:block}
  .global-nav{position:fixed;top:0;right:0;width:min(88vw,360px);height:100dvh;background:#fff;padding:90px 24px 24px;transform:translateX(100%);transition:.3s;z-index:1090}
  .global-nav.is-open{transform:translateX(0)}
  .nav-list{flex-direction:column;align-items:flex-start;gap:16px}
  .sp-nav-cta{display:grid;gap:10px;margin-top:20px}
  .split-hero__grid,.timeline-layout,.dual-panel,.footer-grid,.access-grid,.profile-layout{grid-template-columns:1fr}
  .quick-links__grid,.feature-band__grid,.card-grid--three{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 640px){
  .inner{width:min(100%,calc(100% - 32px))}
  .header-main{padding:14px 0}
  .site-logo{font-size:20px}
  .split-hero__content{padding:30px 24px;border-radius:24px}
  .split-hero__title{font-size:32px}
  .quick-links__grid,.feature-band__grid,.card-grid--three,.card-grid--two,.staff-showcase,.form-grid{grid-template-columns:1fr}
  .cta-banner__inner{grid-template-columns:1fr;padding:28px}
  .news-row a{grid-template-columns:1fr;gap:6px}
}
