:root{--brand:#153b57;--accent:#b8863b;--text:#1d2730;--muted:#f4f6f7;--border:#dfe5e8;--max:1160px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;line-height:1.8;background:#fff}a{color:inherit}.container{width:min(calc(100% - 40px),var(--max));margin:auto}.narrow{max-width:820px}.center{text-align:center}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:12px;top:12px;z-index:9999;background:#fff;padding:8px}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid var(--border)}.header-inner{min-height:78px;display:flex;align-items:center;gap:24px}.branding{margin-right:auto}.site-title{font-weight:800;font-size:1.35rem;text-decoration:none}.custom-logo{max-height:52px;width:auto}.primary-nav ul,.site-footer ul{display:flex;gap:22px;list-style:none;margin:0;padding:0}.primary-nav a{text-decoration:none;font-weight:600}.phone-button,.button{display:inline-flex;align-items:center;justify-content:center;background:var(--brand);color:#fff;text-decoration:none;padding:11px 20px;border-radius:4px;border:0}.menu-toggle{display:none}.hero-slider{position:relative;width:100%;height:auto;aspect-ratio:1920/700;max-height:700px;overflow:hidden}.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .8s}.hero-slide::before{content:"";position:absolute;inset:0;background:transparent;pointer-events:none}.hero-slide.has-overlay::before{background:rgba(0,0,0,.42)}.hero-slide.is-active{opacity:1}.hero-content{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:center;color:#fff}.hero-content h1{font-size:clamp(2rem,5vw,4rem);max-width:850px;line-height:1.25;margin:0 0 18px}.hero-content p{font-size:1.1rem;max-width:680px}.hero-content .button{align-self:flex-start;background:#fff;color:var(--brand)}.section{padding:88px 0}.section-muted{background:var(--muted)}.section-heading{text-align:center;margin-bottom:40px}.section-heading h2{font-size:clamp(1.7rem,3vw,2.5rem);margin:0}.service-heading{margin-bottom:32px}.service-lead{max-width:760px;margin:14px auto 0;color:#52616b}.eyebrow{color:var(--accent);font-weight:800;letter-spacing:.15em}.lead{font-size:1.1rem}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card{padding:30px;border:1px solid var(--border);border-radius:8px;background:#fff}.text-link{font-weight:700;color:var(--brand)}.cta{padding:72px 0;text-align:center;background:var(--brand);color:#fff}.cta .button{background:#fff;color:var(--brand)}.page-hero{padding:70px 0;background:var(--brand);background-size:cover;background-position:center;color:#fff}.page-hero h1{margin:0}.page-hero.size-small h1{font-size:2rem}.page-hero.size-medium h1{font-size:2.7rem}.page-hero.size-large h1{font-size:3.4rem}.main-content{padding:42px 0 90px}.breadcrumb{display:flex;gap:8px;flex-wrap:wrap;font-size:.9rem;margin-bottom:36px}.entry-content img{max-width:100%;height:auto}.archive-item{padding:20px 0;border-bottom:1px solid var(--border)}.archive-item h2{font-size:1.15rem;margin:5px 0}.site-footer{padding:34px 0 0;background:#15232d;color:#fff}.footer-menu-wrap{display:flex;justify-content:center}.footer-navigation{width:100%}.site-footer .footer-menu{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:0;list-style:none;margin:0;padding:0}.site-footer .footer-menu li{position:relative;margin:0;padding:0 18px}.site-footer .footer-menu li+li::before{content:"";position:absolute;left:0;top:50%;width:1px;height:12px;background:rgba(255,255,255,.24);transform:translateY(-50%)}.site-footer .footer-menu a{position:relative;display:inline-block;padding:7px 0;color:rgba(255,255,255,.74);font-size:13px;font-weight:400;line-height:1.6;letter-spacing:.04em;text-decoration:none;transition:color .2s ease}.site-footer .footer-menu a::after{content:"";position:absolute;left:0;bottom:3px;width:100%;height:1px;background:#fff;transform:scaleX(0);transform-origin:left center;transition:transform .22s ease}.site-footer .footer-menu a:hover,.site-footer .footer-menu a:focus-visible{color:#fff}.site-footer .footer-menu a:hover::after,.site-footer .footer-menu a:focus-visible::after{transform:scaleX(1)}.copyright{text-align:center;margin-top:24px;padding:17px 20px;border-top:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.52);font-size:12px;font-weight:400;letter-spacing:.02em}@media(max-width:767px){.site-footer{padding-top:28px}.site-footer .footer-menu{row-gap:2px}.site-footer .footer-menu li{padding:0 11px}.site-footer .footer-menu li+li::before{height:10px}.site-footer .footer-menu a{font-size:12px;padding:6px 0}.copyright{margin-top:20px;padding:15px 20px}}
@media(max-width:820px){.menu-toggle{display:block}.primary-nav{display:none;position:absolute;top:78px;left:0;right:0;background:#fff;padding:20px}.primary-nav.is-open{display:block}.primary-nav ul{display:block}.primary-nav li{padding:10px 0;border-bottom:1px solid var(--border)}.phone-button{display:none}.cards,.footer-grid{grid-template-columns:1fr}.hero-slider{height:clamp(280px,55vw,360px);aspect-ratio:auto;min-height:0}.section{padding:64px 0}}
.hero-dots{position:absolute;z-index:3;left:50%;bottom:22px;display:flex;gap:10px;transform:translateX(-50%)}.hero-dot{width:9px;height:9px;border:1px solid #fff;border-radius:50%;background:transparent}.hero-dot.is-active{background:#fff}.hero-content p{margin:0 0 24px;text-shadow:0 1px 2px rgba(0,0,0,.25)}
@media(max-width:820px){.hero-slide{background-position:center}.hero-slide.has-overlay::before{background:rgba(0,0,0,.5)}.hero-content h1{font-size:clamp(1.65rem,7vw,2.5rem)}.hero-content p{font-size:.95rem;line-height:1.65;max-width:92%}.hero-content .button{padding:9px 16px}.hero-dots{bottom:14px}}
.wptemp-news-years{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 32px}.wptemp-news-years a{padding:7px 14px;border:1px solid var(--border);border-radius:999px;text-decoration:none}.news-archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.news-card{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff}.news-card-image{display:block;aspect-ratio:1200/630;background:var(--muted);overflow:hidden}.news-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.news-card:hover .news-card-image img{transform:scale(1.025)}.news-placeholder{display:flex;height:100%;align-items:center;justify-content:center;color:#82909a;font-weight:800;letter-spacing:.15em}.news-card-body{padding:22px}.news-card-body h2{font-size:1.25rem;line-height:1.5;margin:8px 0}.news-card-body h2 a{text-decoration:none}.news-card-body p{margin-bottom:0}.pdf-label{display:inline-block;font-size:.7rem;line-height:1;padding:5px 7px;margin-left:5px;background:#b13a3a;color:#fff;border-radius:3px;vertical-align:middle}.news-featured img{width:100%;height:auto}.page-kicker{margin:0 0 5px;font-size:.8rem;letter-spacing:.16em;font-weight:800}.wptemp-news-list .archive-item h3{font-size:1.08rem;margin:5px 0}
@media(max-width:820px){.news-archive-grid{grid-template-columns:1fr}}

/* Home news list: use the full row width on desktop. */
.home .wptemp-news-list .archive-item {
  position: relative;
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr) 28px;
  align-items: center;
  column-gap: 24px;
  width: 100%;
  min-height: 74px;
  padding: 18px 14px;
  border-bottom: 1px solid var(--border);
  transition: background-color .2s ease;
}
.home .wptemp-news-list .archive-item:first-child {
  border-top: 1px solid var(--border);
}
.home .wptemp-news-list .archive-item:hover {
  background: rgba(21, 59, 87, .035);
}
.home .wptemp-news-list .archive-item time {
  color: #68747d;
  font-size: .92rem;
  white-space: nowrap;
}
.home .wptemp-news-list .archive-item h3 {
  min-width: 0;
  margin: 0;
  font-size: 1.06rem;
  line-height: 1.6;
}
.home .wptemp-news-list .archive-item h3 a {
  display: block;
  text-decoration: none;
}
.home .wptemp-news-list .archive-item::after {
  content: "›";
  justify-self: end;
  color: var(--brand);
  font-size: 1.65rem;
  line-height: 1;
  transition: transform .2s ease;
}
.home .wptemp-news-list .archive-item:hover::after {
  transform: translateX(3px);
}
@media (max-width: 680px) {
  .home .wptemp-news-list .archive-item {
    grid-template-columns: 1fr 22px;
    gap: 4px 14px;
    min-height: 0;
    padding: 16px 8px;
  }
  .home .wptemp-news-list .archive-item time {
    grid-column: 1;
    font-size: .82rem;
  }
  .home .wptemp-news-list .archive-item h3 {
    grid-column: 1;
    font-size: 1rem;
  }
  .home .wptemp-news-list .archive-item::after {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
  }
}


/* Service card action button. */
.service-button{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-width:150px;margin-top:12px;padding:10px 20px;border:1px solid var(--brand);border-radius:4px;background:var(--brand);color:#fff;font-weight:700;line-height:1.5;text-decoration:none;transition:background-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}
.service-button span{font-size:1.05em;transition:transform .2s ease}
.service-button:hover,.service-button:focus-visible{background:#fff;color:var(--brand);transform:translateY(-1px);box-shadow:0 5px 14px rgba(21,59,87,.14)}
.service-button:hover span,.service-button:focus-visible span{transform:translateX(3px)}
.service-button:focus-visible{outline:3px solid rgba(21,59,87,.25);outline-offset:3px}
@media (max-width:680px){.service-button{width:100%;margin-top:10px}}


/* Global navigation: subtle hover feedback. */
@media (min-width: 821px) {
  .primary-nav a {
    position: relative;
    display: inline-block;
    padding: 8px 0;
    color: #34434d;
    transition: color .25s ease;
  }
  .primary-nav a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 3px;
    width: 100%;
    height: 1px;
    background: var(--brand);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .25s ease;
  }
  .primary-nav a:hover,
  .primary-nav a:focus-visible,
  .primary-nav .current-menu-item > a,
  .primary-nav .current_page_item > a {
    color: #111820;
  }
  .primary-nav a:hover::after,
  .primary-nav a:focus-visible::after,
  .primary-nav .current-menu-item > a::after,
  .primary-nav .current_page_item > a::after {
    transform: scaleX(1);
  }
  .primary-nav a:focus-visible {
    outline: 2px solid rgba(21, 59, 87, .28);
    outline-offset: 4px;
  }
}

/* First hero slide: slightly quieter headline and more breathing room. */
.hero-slide:first-child .hero-content h1 {
  font-size: clamp(2rem, 4.25vw, 3rem);
  line-height: 1.3;
  margin-bottom: 22px;
}
@media (max-width: 820px) {
  .hero-slide:first-child .hero-content h1 {
    font-size: clamp(1.55rem, 6.4vw, 2.3rem);
    line-height: 1.32;
    margin-bottom: 18px;
  }
}

/* Ver. 1.0.7: refined primary navigation and content page headers. */
.primary-nav a {
  font-weight: 400;
  letter-spacing: .03em;
}
.page-hero {
  padding-top: 60px;
  padding-bottom: 60px;
}
.page-hero .container {
  padding-right: 28px;
  padding-left: 28px;
}
.page-hero .page-kicker,
.page-hero h1 {
  position: relative;
}
@media (max-width: 767px) {
  .page-hero {
    padding-top: 46px;
    padding-bottom: 46px;
  }
  .page-hero .container {
    padding-right: 10px;
    padding-left: 10px;
  }
}

/* Ver. 1.0.8: quiet, lightweight typography. */
.primary-nav a {
  font-size: 14px;
  font-weight: 400;
  letter-spacing: .04em;
}

.page-hero h1,
.page-hero.size-small h1,
.page-hero.size-medium h1,
.page-hero.size-large h1 {
  font-weight: 500;
}

.hero-content h1,
.hero-slide:first-child .hero-content h1 {
  font-size: clamp(2rem, 3.7vw, 2.75rem);
  font-weight: 500;
  line-height: 1.25;
  margin-bottom: 22px;
}

.header-inner {
  min-height: 72px;
}

@media (max-width: 820px) {
  .hero-content h1,
  .hero-slide:first-child .hero-content h1 {
    font-size: clamp(1.55rem, 5.6vw, 2.15rem);
    font-weight: 500;
    line-height: 1.28;
    margin-bottom: 18px;
  }
}

@media (max-width: 767px) {
  .primary-nav a {
    font-size: 13px;
  }
}

/* Ver. 1.0.9: unified content typography across all pages. */
.page-hero h1,
.page-hero.size-small h1,
.page-hero.size-medium h1,
.page-hero.size-large h1 {
  font-size: clamp(2rem, 3.4vw, 2.5rem);
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: .02em;
}

.entry-content h2,
.wp-block-post-content h2,
.entry-content .wp-block-heading:is(h2),
.wp-block-post-content .wp-block-heading:is(h2) {
  margin-top: 2.2em;
  margin-bottom: .8em;
  font-size: clamp(1.65rem, 2.8vw, 2rem);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: .02em;
}

.entry-content h3,
.wp-block-post-content h3,
.entry-content .wp-block-heading:is(h3),
.wp-block-post-content .wp-block-heading:is(h3) {
  margin-top: 1.8em;
  margin-bottom: .65em;
  font-size: clamp(1.25rem, 2vw, 1.45rem);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: .02em;
}

.entry-content,
.wp-block-post-content {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.9;
}

.wptb-page-lead {
  margin: 0 0 28px;
  font-size: clamp(1.25rem, 2.2vw, 1.625rem);
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: .02em;
}

@media (max-width: 767px) {
  .page-hero h1,
  .page-hero.size-small h1,
  .page-hero.size-medium h1,
  .page-hero.size-large h1 {
    font-size: 1.8rem;
    line-height: 1.4;
  }

  .entry-content h2,
  .wp-block-post-content h2,
  .entry-content .wp-block-heading:is(h2),
  .wp-block-post-content .wp-block-heading:is(h2) {
    font-size: 1.55rem;
  }

  .entry-content h3,
  .wp-block-post-content h3,
  .entry-content .wp-block-heading:is(h3),
  .wp-block-post-content .wp-block-heading:is(h3) {
    font-size: 1.25rem;
  }

  .wptb-page-lead {
    margin-bottom: 22px;
    font-size: 1.25rem;
  }
}

/* ==========================================
   Service Button
========================================== */

.service-button {
    font-size: 13px;
    padding: 8px 16px;
    border-radius: 6px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
