/* Homepage — editorial composition with original job-site photography. */
.home-page { background:#fafaf6; }
.home-hero { display:grid; grid-template-columns:46% 54%; margin-top:var(--header-h); min-height:620px; }
.hero-copy { padding:54px 40px 24px max(48px,calc((100vw - 1200px)/2)); display:flex; flex-direction:column; align-items:flex-start; position:relative; }
.hero-eyebrow { display:flex; align-items:center; gap:10px; font-size:11px; font-weight:500; letter-spacing:.08em; margin:0 0 28px; }
.hero-eyebrow > span { width:6px; height:6px; border-radius:50%; background:#9aab81; }
.home-hero h1 { font-family:var(--font-head); font-weight:800; font-size:clamp(44px,4.4vw,68px); color:var(--green-text); letter-spacing:.065em; line-height:1.43; }
.home-hero h1 > span { letter-spacing:.16em; }
.hero-sub { font-size:14px; line-height:2.05; margin:24px 0 26px; color:#526056; }
.hero-contact { gap:40px; }
.hero-foot { width:100%; display:flex; justify-content:space-between; align-items:center; gap:14px; margin-top:auto; padding-top:36px; font:9px Arial,sans-serif; letter-spacing:.1em; color:#65715d; }
.hero-foot a { display:flex; align-items:center; gap:18px; min-height:36px; }
.hero-foot a span { font-size:20px; }
.hero-visual { position:relative; min-height:620px; overflow:hidden; background:#304133; }
.home-hero-media, .hero-slide { position:absolute; inset:0; }
.hero-slide { opacity:0; transition:opacity 1.2s; }
.hero-slide.is-active { opacity:1; }
.hero-slide img { width:100%; height:100%; object-fit:cover; object-position:56% center; }
.hero-visual::after { position:absolute; content:""; inset:50% 0 0; background:linear-gradient(transparent,#0a211cb3); pointer-events:none; }
.hero-photo-label { position:absolute; bottom:78px; left:36px; right:24px; z-index:1; color:#fff; }
.hero-photo-label span { display:block; font-family:var(--font-serif); font-size:18px; letter-spacing:.13em; }
.hero-photo-label small { display:block; margin-top:10px; font:9px Arial,sans-serif; letter-spacing:.2em; }
.hero-controls { position:absolute; left:36px; bottom:22px; z-index:2; display:flex; gap:12px; }
.hero-dot { min-width:46px; min-height:40px; border-top:1px solid #ffffff70; color:#fff; font:10px Arial,sans-serif; opacity:.65; }
.hero-dot.is-active { border-color:#fff; border-top-width:2px; opacity:1; }
.hero-pause { color:#fff; border:1px solid #ffffff60; border-radius:50%; width:34px; height:34px; font-size:12px; margin-left:12px; }
.home-facts { background:#edf0e6; }
.home-facts .container { display:grid; grid-template-columns:repeat(4,1fr); padding:30px 0; }
.home-facts .container > div { display:flex; align-items:center; gap:16px; padding:3px 24px; border-right:1px solid #cfd7c6; }
.home-facts .container > div:first-child { padding-left:0; }
.home-facts .container > div:last-child { border:0; padding-right:0; }
.fact-no { color:#788b68; font:italic 23px Georgia,serif; }
.home-facts p { margin:0; }
.home-facts small { display:block; font-size:10px; color:#5b6c52; }
.home-facts strong { display:block; font-size:16px; font-weight:500; letter-spacing:.04em; margin-top:3px; }
.home-section { padding:112px 0; }
.editorial-title { font-family:var(--font-head); font-weight:800; font-size:clamp(28px,2.75vw,40px); line-height:1.75; letter-spacing:.06em; }
.home-section .eyebrow { margin:0 0 22px; }
.about-layout { display:grid; grid-template-columns:1.05fr 1fr; gap:8%; align-items:center; }
.about-image { position:relative; padding-bottom:30px; }
.about-image img { width:100%; height:480px; object-fit:cover; object-position:29% center; }
.photo-note { position:absolute; bottom:0; left:0; font:10px Arial,var(--font-body); letter-spacing:.15em; color:#66725d; }
.about-copy .text { margin-top:24px; font-size:14px; }
.about-copy .text-link { margin-top:16px; }
.home-services { background:#f0f0e8; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:44px; }
.section-description { color:#5a6656; font-size:14px; line-height:2.05; margin:0 0 6px; }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.service-card { display:block; }
.service-image { position:relative; overflow:hidden; aspect-ratio:1.3; }
.service-image img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.service-card:hover img { transform:scale(1.04); }
.service-image > span { position:absolute; left:0; bottom:0; padding:10px 16px; background:#f0f0e8; font:9px Arial,sans-serif; letter-spacing:.12em; }
.service-copy { padding:20px 0; }
.service-copy h3 { display:flex; justify-content:space-between; gap:12px; align-items:center; font-size:20px; font-weight:500; }
.service-copy h3 span { font:25px Arial,sans-serif; }
.service-copy p { color:#5a6656; font-size:13px; line-height:1.95; margin-top:16px; }
.service-secondary { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:24px; }
.service-secondary > a { display:flex; gap:24px; align-items:center; padding:30px 0; border-block:1px solid #c9d0be; }
.service-number { font:22px Georgia,serif; color:#788b68; }
.service-secondary small { font:9px Arial,sans-serif; letter-spacing:.14em; color:#647158; }
.service-secondary h3 { font-size:19px; font-weight:500; margin-top:6px; }
.service-secondary p { font-size:12px; margin:8px 0 0; color:#5a6656; }
.service-secondary .round-arrow { margin-left:auto; }
.service-secondary a:hover .round-arrow, .project-card:hover .round-arrow { color:#fff; background:var(--green); }
.audience-links { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:32px; }
.audience-links a { display:flex; justify-content:space-between; padding:14px 0; font-size:13px; border-bottom:1px solid #c9d0be; }
.project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.project-image { position:relative; aspect-ratio:1.1; overflow:hidden; margin-bottom:24px; }
.project-image img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.project-card:hover img { transform:scale(1.04); }
.project-image .round-arrow { position:absolute; bottom:16px; right:16px; background:#fafaf6; border:0; }
.project-card small { font-size:10px; color:#657459; letter-spacing:.07em; }
.project-card h3 { margin-top:10px; font-size:16px; font-weight:500; line-height:1.7; }
.home-message { display:grid; grid-template-columns:1.08fr 1fr; background:var(--green-dark); color:#fff; }
.message-photo { min-height:550px; }
.message-photo img { width:100%; height:100%; object-fit:cover; }
.message-copy { padding:76px 48px 76px 14%; align-self:center; }
.message-copy .eyebrow { color:#c9d7b8; margin-bottom:24px; }
.message-copy .editorial-title { font-size:46px; }
.message-copy p:not(.eyebrow) { font-size:14px; line-height:2.2; margin-top:24px; color:#dce5d4; }
.message-copy .text-link { margin-top:8px; border-color:#68806b; }
.guide-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.guide-grid > a { position:relative; padding:32px 76px 32px 30px; background:#f1f2e9; border-top:1px solid #a6b39a; transition:background .2s; }
.guide-grid > a:hover { background:#e8eddf; }
.guide-label { font:10px Arial,sans-serif; color:#6b7d5d; letter-spacing:.12em; }
.guide-grid h3 { font-family:var(--font-head); font-weight:800; font-size:24px; margin-top:14px; }
.guide-grid p { margin-top:16px; font-size:13px; color:#5a6656; }
.guide-grid .round-arrow { position:absolute; right:25px; top:50%; transform:translateY(-50%); }
.home-area { background:#e8eddf; padding:80px 0; }
.area-layout { display:grid; grid-template-columns:1fr 1fr; gap:9%; align-items:center; }
.home-area .text { font-size:13px; margin-top:22px; }
.area-detail-title { font-family:var(--font-heading,var(--font-head)); font-size:22px; font-weight:700; color:var(--green-text); letter-spacing:.04em; margin:0 0 18px; }
.area-town-links { display:grid; grid-template-columns:1fr 1fr; gap:0 28px; }
.area-town-links a { display:flex; justify-content:space-between; border-bottom:1px solid #b9c6ad; padding:14px 0; font-size:12px; }
.area-town-links a:hover { color:#6e835c; }
.news-layout { display:grid; grid-template-columns:1fr 2.5fr; gap:8%; }
.home-news .text-link { font-size:12px; margin-top:18px; }
@media (min-width:1600px) { .home-hero { grid-template-columns:46% 54%; } .hero-copy { padding-top:70px; } .hero-visual { min-height:720px; } }
@media (max-width:1100px) {
  .hero-copy { padding-left:36px; padding-right:24px; }
  .home-hero h1 { font-size:48px; }
  .hero-foot > span { font-size:8px; }
  .home-facts .container > div { gap:12px; padding-inline:18px; }
  .home-facts strong { font-size:13px; }
  .home-facts small { font-size:9px; }
  .service-copy h3 { font-size:17px; }
  .service-secondary { gap:28px; }
  .service-secondary > a { gap:16px; }
  .service-secondary h3 { font-size:17px; }
  .service-secondary p { font-size:11px; }
}
@media (max-width:960px) {
  .home-hero { min-height:580px; }
  .hero-visual { min-height:580px; }
  .hero-copy { padding:44px 24px 20px 28px; }
  .home-hero h1 { font-size:42px; }
  .hero-eyebrow { font-size:9px; }
  .hero-sub { font-size:12px; }
  .hero-contact { padding:16px 20px; gap:20px; font-size:12px; }
  .hero-foot > span { display:none; }
  .home-section { padding:80px 0; }
  .about-layout { gap:6%; }
  .about-image img { height:440px; }
  .section-heading { gap:28px; }
  .section-description { font-size:12px; }
  .service-grid, .project-grid { gap:20px; }
  .service-copy h3 { font-size:15px; }
  .service-secondary > a { gap:12px; }
  .service-secondary p { display:none; }
  .message-copy { padding:60px 32px; }
  .message-copy .editorial-title { font-size:38px; }
  .guide-grid > a { padding-left:24px; }
  .guide-grid p { font-size:12px; }
}
@media (max-width:760px) {
  .home-hero { grid-template-columns:1fr; }
  .hero-copy { padding:36px 24px 28px; }
  .hero-eyebrow { font-size:10px; margin-bottom:20px; }
  .home-hero h1 { font-size:clamp(40px,10vw,62px); line-height:1.4; }
  .hero-sub { font-size:13px; margin:20px 0 24px; }
  .hero-contact { font-size:13px; gap:48px; min-height:54px; }
  .hero-foot { padding-top:20px; }
  .hero-foot > span { display:block; font-size:8px; }
  .hero-foot a { font-size:8px; gap:10px; }
  .hero-visual { min-height:0; height:360px; }
  .hero-slide img { object-position:center 60%; }
  .hero-photo-label { left:24px; bottom:74px; }
  .hero-photo-label span { font-size:16px; }
  .hero-photo-label small { font-size:8px; }
  .hero-controls { left:24px; bottom:18px; }
  .home-facts .container { grid-template-columns:1fr 1fr; padding:12px 0; }
  .home-facts .container > div { padding:16px 10px; gap:12px; }
  .home-facts .container > div:nth-child(odd) { padding-left:0; }
  .home-facts .container > div:nth-child(even) { border-right:0; }
  .home-facts .container > div:nth-child(-n+2) { border-bottom:1px solid #cfd7c6; }
  .home-facts strong { font-size:12px; }
  .home-facts small { font-size:9px; }
  .fact-no { font-size:20px; }
  .home-section { padding:64px 0; }
  .home-section .eyebrow { margin-bottom:16px; font-size:10px; }
  .editorial-title { font-size:27px; line-height:1.7; }
  .about-layout { grid-template-columns:1fr; gap:32px; }
  .about-image img { height:310px; }
  .about-copy .text { font-size:14px; }
  .section-heading { display:block; margin-bottom:30px; }
  .section-description { font-size:13px; margin-top:20px; }
  .section-heading > .text-link { margin-top:18px; }
  .service-grid { grid-template-columns:1fr; gap:22px; }
  .service-image { aspect-ratio:1.5; }
  .service-copy { padding:18px 0; }
  .service-copy h3 { font-size:21px; }
  .service-copy p { margin-top:12px; font-size:14px; }
  .service-secondary { grid-template-columns:1fr; gap:0; margin-top:10px; }
  .service-secondary > a { padding:24px 0; gap:20px; border-top:0; }
  .service-secondary > a:first-child { border-top:1px solid #c9d0be; }
  .service-secondary p { display:block; font-size:11px; }
  .audience-links { grid-template-columns:1fr; gap:8px; margin-top:24px; }
  .project-grid { grid-template-columns:1fr; gap:32px; }
  .project-image { aspect-ratio:1.3; margin-bottom:16px; }
  .project-card h3 { font-size:17px; }
  .home-message { grid-template-columns:1fr; }
  .message-photo { min-height:0; height:320px; }
  .message-copy { padding:48px 24px 56px; }
  .message-copy .editorial-title { font-size:38px; }
  .message-copy p:not(.eyebrow) { font-size:13px; }
  .guide-grid { grid-template-columns:1fr; gap:20px; }
  .guide-grid > a { padding:28px 68px 28px 20px; }
  .guide-grid h3 { font-size:22px; }
  .guide-grid p { font-size:12px; }
  .guide-grid .round-arrow { right:18px; width:36px; height:36px; }
  .area-layout { grid-template-columns:1fr; gap:30px; }
  .area-town-links { gap:0 24px; }
  .news-layout { grid-template-columns:1fr; gap:28px; }
  .home-news .text-link { margin-top:8px; }
  .home-news .news-rows a { padding:22px 0; }
}

/* Keep the original energetic, photo-led identity. */
.home-page { background:#fff; }
.home-hero { display:flex; position:relative; min-height:calc(100vh - var(--header-h)); min-height:calc(100svh - var(--header-h)); color:#fff; overflow:hidden; }
.hero-visual { position:absolute; inset:0; min-height:0; height:auto; }
.hero-slide img { object-position:center 58%; }
.hero-visual::after { inset:0; background:linear-gradient(90deg,rgba(0,25,15,.6),rgba(0,20,10,.12) 85%),linear-gradient(0deg,rgba(0,20,10,.45),transparent 75%); }
.hero-copy { width:min(1200px,100% - 96px); margin:auto; padding:84px 0 60px; z-index:3; pointer-events:none; }
.hero-copy a { pointer-events:auto; }
.hero-eyebrow { font-size:13px; font-weight:700; letter-spacing:.15em; }
.hero-eyebrow > span { background:#fff; }
.home-hero h1 { font-family:var(--font-head); font-weight:900; color:#fff; font-size:clamp(44px,4.8vw,66px); line-height:1.4; letter-spacing:.035em; text-shadow:0 2px 16px #001b1430; }
.hero-sub { color:#fff; font-size:16px; line-height:2; margin:26px 0 32px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:16px; }
.hero-contact { background:var(--blue); gap:28px; min-width:240px; }
.hero-contact:hover { background:var(--blue-dark); }
.hero-foot { max-width:540px; color:#fff; padding-top:42px; }
.hero-photo-label { display:none; }
.hero-controls { left:auto; right:36px; bottom:28px; z-index:4; }
.home-facts { background:#f3f8f0; }
.home-facts strong { font-weight:700; }
.fact-no, .service-number { font-family:var(--font-kaku); font-style:normal; font-weight:700; color:var(--green); }
.editorial-title { font-family:var(--font-head); font-weight:800; font-size:clamp(26px,2.5vw,34px); line-height:1.6; }
.home-services { background:var(--cream); }
.service-image, .project-image, .about-image img { border-radius:8px; }
.service-image > span { background:var(--cream); }
.service-copy h3, .service-secondary h3, .project-card h3 { font-weight:700; }
.home-message { background:var(--green); }
.message-copy .editorial-title { font-size:38px; }
.guide-grid > a { background:#f3f8f0; border-radius:8px; }
.guide-grid h3 { font-family:var(--font-head); font-weight:800; }
.home-area { background:var(--cream); }
.area-en { font-family:var(--font-kaku); font-weight:900; color:var(--green); }
.home-section .eyebrow { font-weight:700; }
@media (max-width:960px) {
  .hero-copy { width:calc(100% - 56px); }
  .home-hero h1 { font-size:48px; }
}
@media (max-width:760px) {
  .hero-copy { width:calc(100% - 40px); padding:58px 0 64px; }
  .home-hero h1 { font-size:clamp(27px,7.6vw,46px); line-height:1.5; }
  .hero-eyebrow { font-size:10px; letter-spacing:.1em; }
  .hero-sub { font-size:14px; margin:24px 0 28px; }
  .hero-actions { width:100%; gap:12px; flex-direction:column; }
  .hero-actions .btn { width:100%; font-size:14px; min-height:54px; }
  .hero-foot { padding-top:28px; }
  .hero-foot > span { font-size:8px; }
  .hero-controls { right:20px; bottom:16px; }
  .hero-dot { min-width:32px; min-height:32px; }
  .hero-pause { width:30px; height:30px; margin-left:2px; }
  .editorial-title { font-size:26px; }
  .message-copy .editorial-title { font-size:32px; }
}

/* ヒーロー見出し: PC は1行、助詞は小さく */
.home-hero h1 { white-space: nowrap; font-size: clamp(40px, 4.2vw, 60px); }
.home-hero h1 .h1-p { font-size: .62em; font-weight: 700; letter-spacing: .06em; margin: 0 .08em; vertical-align: .04em; }
.home-hero h1 br.sp { display: none; }
@media (max-width: 760px) {
  .home-hero h1 { white-space: normal; font-size: clamp(34px, 9vw, 44px); line-height: 1.35; }
  .home-hero h1 br.sp { display: inline; }
}
