/* =========================================================
   しるべHP トップページ専用（body.page-home）
   index.html だけが読み込む。style.css の後に読み込むこと
   ========================================================= */

.page-home {
  background:#fff;
}

.page-home .ed-kicker {
  font-family:Arial, sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.22em;
  color:var(--green);
  margin:0 0 10px;
}

.page-home .ed-kicker.light {
  color:#BFE3A6;
}

.page-home .ed-num {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--green);
  margin:0 0 8px;
}

.page-home .ed-num.light {
  color:#BFE3A6;
}

.page-home .ed-section-head {
  margin-bottom:36px;
}

.page-home .ed-section-head h2,.page-home .ed-price-text h2,.page-home .ed-message h2,.page-home .ed-area h2,.page-home .ed-reason h2 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:clamp(26px,3vw,40px);
  line-height:1.4;
  letter-spacing:.04em;
  color:var(--ink);
  margin:0;
}

.page-home .ed-link {
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:18px;
  padding-bottom:4px;
  border-bottom:1px solid var(--green);
  color:var(--green-dark);
  font-weight:900;
  font-size:14px;
}

.page-home .ed-link:after {
  content:"→";
}

.page-home .ed-hero {
  position:relative;
  background:#fff;
}

.page-home .ed-hero-sticky {
  position:sticky;
  top:var(--header-h,0px);
  height:calc(100vh - var(--header-h,0px));
  overflow:hidden;
}

.page-home .ed-hero-stage {
  position:relative;
  display:flex;
  height:100%;
  width:100%;
  align-items:stretch;
  overflow:hidden;
}

.page-home .ed-hero-stage:before {
  content:"";
  position:absolute;
  inset:0;
  background:url('shirube.img/fv-photo.webp') center/cover;
}

.page-home .ed-piece {
  position:relative;
  z-index:1;
  width:50%;
  height:100%;
  background-image:url('shirube.img/fv-photo.webp');
  background-repeat:no-repeat;
  background-size:200% 100%;
  will-change:transform;
}

.page-home .ed-piece.p1 {
  background-position:left center;
  transform:translateX(var(--ed-left-x,-100%));
}

.page-home .ed-piece.p2 {
  background-position:right center;
  transform:translateX(var(--ed-right-x,100%));
}

.page-home .ed-hero-sticky:after {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(20,18,14,.42) 0%,rgba(20,18,14,.30) 38%,rgba(20,18,14,.62) 100%);
  opacity:var(--ed-veil,.55);
}

.page-home .ed-hero-copy {
  position:absolute;
  z-index:2;
  left:0;
  right:0;
  bottom:14vh;
  padding:0 6vw;
  color:#fff;
  opacity:var(--ed-copy-opacity,1);
  transform:translateY(var(--ed-copy-y,0px));
  will-change:opacity,transform;
}

.page-home .ed-eyecatch {
  display:inline-block;
  margin:0 0 18px;
  padding:8px 18px;
  border:1px solid rgba(255,255,255,.6);
  border-radius:999px;
  font-size:13px;
  font-weight:700;
  letter-spacing:.06em;
}

.page-home .ed-hero-copy h1 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:clamp(34px,6vw,80px);
  line-height:1.3;
  letter-spacing:.03em;
  color:#fff;
  margin:0 0 18px;
  text-shadow:0 2px 24px rgba(0,0,0,.3);
}

.page-home .ed-hero-lead {
  max-width:640px;
  margin:0;
  font-size:clamp(14px,1.2vw,18px);
  font-weight:700;
  line-height:2;
  text-shadow:0 2px 18px rgba(0,0,0,.38);
}

.page-home .ed-hero-boxes {
  position:absolute;
  z-index:3;
  left:0;
  right:0;
  top:50%;
  transform:translateY(-50%);
  padding:0 4vw;
  opacity:var(--ed-boxes-o,0);
  pointer-events:var(--ed-boxes-pe,none);
}

.page-home .ed-boxes-kicker {
  margin:0 0 18px;
  text-align:center;
  font-family:Arial, sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.24em;
  color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.5);
  opacity:var(--ed-box-text-o,0);
}

.page-home .ed-boxes-row {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  max-width:1180px;
  margin:0 auto;
}

.page-home .ed-pbox {
  position:relative;
  min-height:190px;
  box-shadow:0 30px 60px rgba(20,18,14,.3);
  text-align:left;
  overflow:hidden;
  will-change:transform,opacity;
}

.page-home .ed-pbox.b1,.page-home .ed-pbox.b3 {
  background:rgba(255,255,255,.96);
  border-top:3px solid var(--green);
}

.page-home .ed-pbox.b1 {
  transform:translateX(var(--ed-box-left,-130%));
  opacity:var(--ed-box-side-o,0);
}

.page-home .ed-pbox.b3 {
  transform:translateX(var(--ed-box-right,130%));
  opacity:var(--ed-box-side-o,0);
}

.page-home .ed-pbox.b2 {
  background:transparent;
  box-shadow:none;
  opacity:var(--ed-box-center-o,0);
}

.page-home .ed-half {
  position:absolute;
  top:0;
  bottom:0;
  width:50.4%;
  background:rgba(255,255,255,.96);
  border-top:3px solid var(--green);
  box-shadow:0 30px 60px rgba(20,18,14,.3);
  will-change:transform;
}

.page-home .ed-half.hl {
  left:0;
  transform:translateX(var(--ed-half-l,-50vw));
}

.page-home .ed-half.hr {
  right:0;
  transform:translateX(var(--ed-half-r,50vw));
}

.page-home .ed-pbox-body {
  position:relative;
  z-index:1;
  padding:26px 24px 28px;
}

.page-home .ed-pbox.b2 .ed-pbox-body {
  opacity:var(--ed-box-text-o,0);
}

.page-home .ed-pbox h2 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:22px;
  line-height:1.45;
  color:var(--ink);
  margin:0 0 10px;
}

.page-home .ed-pbox p:last-child {
  margin:0;
  font-size:14px;
  font-weight:500;
  color:var(--sub);
  line-height:1.9;
}

.page-home .ed-scroll-hint {
  position:absolute;
  z-index:4;
  right:24px;
  bottom:24px;
  display:flex;
  align-items:center;
  gap:10px;
  font-family:Arial, sans-serif;
  font-size:10px;
  letter-spacing:.24em;
  color:#fff;
  opacity:var(--ed-copy-opacity,1);
}

.page-home .ed-scroll-hint span {
  position:relative;
  display:block;
  width:1px;
  height:40px;
  background:rgba(255,255,255,.6);
  overflow:hidden;
}

.page-home .ed-scroll-hint span:after {
  content:"";
  position:absolute;
  left:0;
  top:-40px;
  width:1px;
  height:40px;
  background:#fff;
  animation:edScroll 1.8s ease-in-out infinite;
}

.page-home .ed-hero-space {
  height:260vh;
}

.page-home .ed-reveal-block {
  padding:120px 0;
  background:var(--cream);
}

.page-home .ed-reveal {
  max-width:920px;
  margin:0 auto;
  text-align:center;
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:clamp(20px,2.4vw,34px);
  line-height:2;
  letter-spacing:.04em;
  color:var(--ink);
}

.js-on .page-home .ed-reveal .w {
  display:inline-block;
  opacity:.12;
  filter:blur(6px);
  transition:opacity .4s ease, filter .4s ease;
}

.page-home .ed-reveal .w.is-on {
  opacity:1;
  filter:blur(0);
}

.js-on .page-home [data-fade] {
  opacity:0;
  transform:translateY(24px) scale(1.01);
  transition:opacity .8s ease, transform .8s ease;
}

.page-home [data-fade].is-in {
  opacity:1;
  transform:none;
}

.page-home .ed-service {
  padding:110px 0;
}

.page-home .ed-service-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
}

.page-home .ed-service-card figure {
  margin:0 0 22px;
  overflow:hidden;
  aspect-ratio:4/3;
}

.page-home .ed-service-card img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 1.2s cubic-bezier(.2,.8,.2,1);
}

.page-home .ed-service-card:hover img {
  transform:scale(1.06);
}

.page-home .ed-service-text h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:26px;
  color:var(--ink);
  margin:0 0 10px;
}

.page-home .ed-service-text p {
  margin:0;
  font-size:15px;
  font-weight:500;
  color:var(--text);
}

.page-home .ed-stats-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.page-home .ed-stats-grid div {
  padding:38px 24px;
  text-align:center;
  border-right:1px solid var(--line);
}

.page-home .ed-stats-grid div:last-child {
  border-right:0;
}

.page-home .ed-stats-grid small {
  display:block;
  font-size:11px;
  letter-spacing:.16em;
  color:var(--sub);
  margin-bottom:10px;
}

.page-home .ed-stats-grid strong {
  display:block;
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:clamp(22px,2.4vw,34px);
  color:var(--ink);
  line-height:1.3;
}

.page-home .ed-stats-grid span {
  display:block;
  margin-top:8px;
  font-size:12px;
  font-weight:700;
  color:var(--sub);
}

.page-home .ed-reason {
  position:relative;
  padding:120px 0;
  overflow:hidden;
}

.page-home .ed-reason-bg {
  position:absolute;
  inset:0;
  z-index:0;
}

.page-home .ed-reason-bg img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.page-home .ed-reason-bg:after {
  content:"";
  position:absolute;
  inset:0;
  background:rgba(24,22,18,.72);
}

.page-home .ed-reason-inner {
  position:relative;
  z-index:1;
  color:#fff;
}

.page-home .ed-reason h2 {
  color:#fff;
  margin-bottom:44px;
}

.page-home .ed-reason-list {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:28px;
}

.page-home .ed-reason-list article {
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.28);
}

.page-home .ed-reason-list h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:19px;
  color:#fff;
  margin:0 0 10px;
  line-height:1.5;
}

.page-home .ed-reason-list p {
  margin:0;
  font-size:13px;
  font-weight:500;
  color:rgba(255,255,255,.82);
  line-height:1.9;
}

.page-home .ed-works {
  padding:110px 0;
}

.page-home .ed-ba {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

.page-home .ed-ba figure {
  position:relative;
  margin:0;
  overflow:hidden;
}

.page-home .ed-ba img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}

.page-home .ed-ba figcaption {
  position:absolute;
  top:0;
  left:0;
  padding:8px 18px;
  background:rgba(24,22,18,.78);
  color:#fff;
  font-family:Arial, sans-serif;
  font-size:11px;
  letter-spacing:.18em;
}

.page-home .ed-ba figure:last-child figcaption {
  background:var(--green);
}

.page-home .ed-works-meta {
  margin-top:30px;
  max-width:720px;
}

.page-home .ed-works-meta h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:24px;
  color:var(--ink);
  margin:0 0 10px;
}

.page-home .ed-works-meta p {
  margin:0;
  font-weight:500;
}

.page-home .ed-price {
  padding:0 0 110px;
}

.page-home .ed-price-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:center;
}

.page-home .ed-price-text p {
  margin:16px 0 0;
  font-weight:500;
}

.page-home .ed-note {
  font-size:13px;
  color:var(--sub);
}

.page-home .ed-price-table {
  width:100%;
  border-collapse:collapse;
}

.page-home .ed-price-table th,.page-home .ed-price-table td {
  padding:20px 8px;
  border-bottom:1px solid var(--line);
  font-size:17px;
}

.page-home .ed-price-table th {
  text-align:left;
  font-weight:700;
  color:var(--sub);
}

.page-home .ed-price-table td {
  text-align:right;
  font-family:"Zen Maru Gothic", sans-serif;
  font-weight:700;
  color:var(--ink);
}

.page-home .ed-flow {
  padding:0 0 110px;
}

.page-home .ed-flow-list {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:24px;
}

.page-home .ed-flow-list li {
  padding-top:20px;
  border-top:2px solid var(--green);
}

.page-home .ed-flow-list span {
  display:block;
  font-family:Arial, sans-serif;
  font-size:12px;
  letter-spacing:.16em;
  color:var(--green);
  margin-bottom:10px;
}

.page-home .ed-flow-list h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:17px;
  color:var(--ink);
  margin:0 0 8px;
  line-height:1.5;
}

.page-home .ed-flow-list p {
  margin:0;
  font-size:13px;
  color:var(--sub);
  font-weight:500;
}

.page-home .ed-faq {
  padding:0 0 110px;
}

.page-home .ed-faq-list {
  display:grid;
  gap:0;
  border-top:1px solid var(--line);
}

.page-home .ed-faq-list article {
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:40px;
  padding:30px 0;
  border-bottom:1px solid var(--line);
}

.page-home .ed-faq-list h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:19px;
  color:var(--ink);
  margin:0;
  line-height:1.6;
}

.page-home .ed-faq-list p {
  margin:0;
  font-size:15px;
  font-weight:500;
  line-height:1.95;
}

.page-home .ed-message {
  padding:0 0 110px;
}

.page-home .ed-message-grid {
  display:grid;
  grid-template-columns:.75fr 1.25fr;
  gap:56px;
  align-items:center;
}

.page-home .ed-message-grid figure {
  margin:0;
  overflow:hidden;
}

.page-home .ed-message-grid img {
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
}

.page-home .ed-message-grid p {
  margin:16px 0 0;
  font-weight:500;
  line-height:2;
}

.page-home .ed-rep {
  font-family:"Zen Maru Gothic", sans-serif;
  font-weight:700;
  color:var(--ink);
}

.page-home .ed-area {
  display:grid;
  grid-template-columns:1.4fr .6fr;
  gap:40px;
  align-items:center;
  margin-top:80px;
  padding-top:50px;
  border-top:1px solid var(--line);
}

.page-home .ed-area p {
  margin:16px 0 0;
  font-weight:500;
}

.page-home .ed-area-map {
  width:190px;
  justify-self:center;
}

.page-home .ed-cta {
  padding:100px 0;
  background:var(--green-soft);
  text-align:center;
}

.page-home .ed-cta h2 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:clamp(24px,2.8vw,38px);
  line-height:1.5;
  color:var(--ink);
  margin:0 0 16px;
}

.page-home .ed-cta>.container>p {
  margin:0 auto 34px;
  max-width:720px;
  font-weight:500;
}

.page-home .ed-cta-buttons {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  max-width:940px;
  margin:0 auto;
}

.page-home .ed-btn {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:84px;
  padding:16px 20px;
  background:#fff;
  border:1px solid var(--line);
  font-weight:900;
  color:var(--ink);
  transition:transform .2s ease;
}

.page-home .ed-btn:hover {
  transform:translateY(-3px);
}

.page-home .ed-btn img {
  width:36px;
}

.page-home .ed-btn small {
  display:block;
  font-size:12px;
  font-weight:700;
  opacity:.85;
}

.page-home .ed-btn-line {
  background:var(--green);
  border-color:var(--green);
  color:#fff;
}

.page-home .ed-btn-mail {
  background:var(--orange);
  border-color:var(--orange);
  color:#fff;
}

@media (max-width:900px) {
.page-home .ed-hero-sticky {
    height:100svh;
  }.page-home .ed-hero-space {
    height:120vh;
  }.page-home .ed-hero-copy {
    bottom:16vh;
    padding:0 20px;
  }.page-home .ed-hero-copy h1 {
    font-size:30px;
    line-height:1.45;
  }.page-home .ed-hero-lead {
    font-size:14px;
    line-height:1.9;
  }.page-home .ed-eyecatch {
    font-size:11px;
    padding:6px 14px;
    margin-bottom:14px;
  }.page-home .ed-scroll-hint {
    right:14px;
    bottom:14px;
  }.page-home .ed-piece,.page-home .ed-hero-stage:before {
    background-image:url('shirube.img/fv-photo-sp.webp');
  }.page-home .ed-hero-boxes {
    padding:0 12px 12px;
  }.page-home .ed-boxes-kicker {
    margin-bottom:8px;
    font-size:10px;
  }.page-home .ed-boxes-row {
    grid-template-columns:1fr;
    gap:6px;
  }.page-home .ed-pbox {
    min-height:0;
  }.page-home .ed-pbox.b1,.page-home .ed-pbox.b3,.page-home .ed-half {
    border-top-width:2px;
  }.page-home .ed-pbox-body {
    padding:10px 14px;
  }.page-home .ed-pbox h2 {
    font-size:15px;
    margin-bottom:2px;
  }.page-home .ed-pbox .ed-num {
    margin-bottom:2px;
    font-size:10px;
  }.page-home .ed-pbox p:last-child {
    font-size:11px;
    line-height:1.6;
  }.page-home .ed-hero-space {
    height:220vh;
  }.page-home .ed-reveal-block {
    padding:64px 0;
  }.page-home .ed-reveal {
    font-size:18px;
    line-height:1.95;
    text-align:left;
  }.page-home .ed-service,.page-home .ed-works {
    padding:64px 0;
  }.page-home .ed-section-head {
    margin-bottom:24px;
  }.page-home .ed-service-grid {
    grid-template-columns:1fr;
    gap:32px;
  }.page-home .ed-service-text h3 {
    font-size:22px;
  }.page-home .ed-stats-grid {
    grid-template-columns:1fr 1fr;
  }.page-home .ed-stats-grid div {
    padding:22px 12px;
    border-bottom:1px solid var(--line);
  }.page-home .ed-stats-grid div:nth-child(2n) {
    border-right:0;
  }.page-home .ed-reason {
    padding:64px 0;
  }.page-home .ed-reason h2 {
    margin-bottom:26px;
  }.page-home .ed-reason-list {
    grid-template-columns:1fr;
    gap:18px;
  }.page-home .ed-ba {
    gap:10px;
  }.page-home .ed-works-meta h3 {
    font-size:20px;
  }.page-home .ed-price,.page-home .ed-flow,.page-home .ed-faq,.page-home .ed-message {
    padding-bottom:64px;
  }.page-home .ed-price-grid {
    grid-template-columns:1fr;
    gap:28px;
  }.page-home .ed-price-table th,.page-home .ed-price-table td {
    padding:15px 4px;
    font-size:15px;
  }.page-home .ed-flow-list {
    grid-template-columns:1fr;
    gap:16px;
  }.page-home .ed-faq-list article {
    grid-template-columns:1fr;
    gap:10px;
    padding:22px 0;
  }.page-home .ed-faq-list h3 {
    font-size:17px;
  }.page-home .ed-message-grid {
    grid-template-columns:1fr;
    gap:24px;
  }.page-home .ed-message-grid img {
    aspect-ratio:4/3;
  }.page-home .ed-area {
    grid-template-columns:1fr;
    margin-top:44px;
    padding-top:32px;
  }.page-home .ed-area-map {
    width:150px;
  }.page-home .ed-cta {
    padding:56px 0;
  }.page-home .ed-cta-buttons {
    grid-template-columns:1fr;
  }.page-home .ed-btn {
    min-height:70px;
    justify-content:flex-start;
  }
}

.page-home {
  height:100dvh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

.page-home .site-header {
  position:relative;
  flex:0 0 auto;
  z-index:100;
}

.page-home .dk-scroll {
  flex:1 1 auto;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  scroll-snap-type:y mandatory;
  overscroll-behavior-y:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  -ms-overflow-style:none;
}

.page-home .dk-scroll::-webkit-scrollbar {
  display:none;
}

.page-home main > section {
  min-height:var(--sec-h, 100svh);
  scroll-snap-align:start;
  scroll-snap-stop:always;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:28px 0;
}

.page-home .site-footer {
  scroll-snap-align:start;
}

.page-home .ed-hero {
  padding:0;
  justify-content:center;
  overflow:hidden;
  color:#fff;
}

.page-home .ed-hero-photo {
  position:absolute;
  inset:0;
  background:url('shirube.img/fv-photo.webp') center/cover;
}


.page-home .ed-hero-copy {
  position:relative;
  z-index:2;
  left:auto;
  right:auto;
  bottom:auto;
  width:min(var(--container), calc(100% - 48px));
  margin-inline:auto;
  padding:0;
  opacity:1;
  transform:none;
}

.page-home .ed-promise {
  background:var(--cream);
}

.page-home .ed-promise .ed-reveal {
  max-width:920px;
  margin:34px auto 0;
  text-align:center;
  font-size:clamp(19px, 1.9vw, 27px);
  line-height:1.95;
}

.page-home .ed-promise-head {
  margin:0 0 18px;
  text-align:center;
}

.page-home .ed-promise-head h2 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:32px;
  line-height:1.4;
  color:var(--ink);
  margin:0;
}

.page-home .ed-promise-list {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:22px;
}

.page-home .ed-promise-list article {
  background:#fff;
  border:1px solid var(--line);
  border-top:3px solid var(--green);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:24px 22px;
}

.page-home .ed-promise-list h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:22px;
  line-height:1.5;
  color:var(--ink);
  margin:0 0 10px;
}

.page-home .ed-promise-list p:last-child {
  margin:0;
  font-size:16px;
  line-height:1.85;
  color:var(--text);
}

.page-home .ed-stats,
.page-home .ed-flow {
  padding:0;
  margin-top:18px;
}

.page-home .ed-promise,
.page-home .ed-service,
.page-home .ed-works,
.page-home .ed-price,
.page-home .ed-faq,
.page-home .ed-cta,
.page-home .ed-message,
.page-home .ed-reason {
  padding-top:28px;
  padding-bottom:28px;
}

.page-home .ed-area {
  margin-top:28px;
  padding-top:24px;
}

.page-home .ed-service-card figure {
  aspect-ratio:auto;
  height:min(240px, 16vh);
  margin-bottom:12px;
}

.page-home .ed-service-card img {
  height:100%;
  object-fit:cover;
}

.page-home .ed-ba img {
  aspect-ratio:auto;
  height:min(360px, 34vh);
  object-fit:cover;
}

.page-home .ed-message-grid img {
  max-height:44vh;
  object-fit:cover;
}

.page-home .ed-dots {
  display:none;
}

.page-home .dk-progress {
  display:block;
  position:fixed;
  z-index:99;
  top:var(--header-h, 96px);
  left:0;
  right:0;
  height:2px;
  background:rgba(46,42,36,.1);
}

.page-home .dk-progress span {
  display:block;
  height:100%;
  background:var(--green);
  transform:scaleX(var(--dk-progress, 0));
  transform-origin:left center;
  transition:transform .25s cubic-bezier(.2,.7,.2,1);
}

.page-home .dk-dots {
  display:flex;
  position:fixed;
  z-index:99;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  flex-direction:column;
  gap:10px;
}

.page-home .dk-dots button {
  width:9px;
  height:9px;
  padding:0;
  border:0;
  border-radius:50%;
  background:var(--ink);
  opacity:.22;
  cursor:pointer;
  transition:opacity .3s ease, transform .3s ease, background-color .3s ease;
}

.page-home .dk-dots button:hover {
  opacity:.6;
}

.page-home .dk-dots button.is-on {
  opacity:1;
  background:var(--green);
  transform:scale(1.5);
}

.page-home .dk-dots.on-photo button {
  background:#fff;
  opacity:.4;
}

.page-home .dk-dots.on-photo button.is-on {
  opacity:1;
  background:#fff;
}

.js-on .page-home main > section:not(.ed-hero) .container > *:not(:has([data-fade])),
.js-on .page-home .ed-promise-list > *,
.js-on .page-home .ed-service-grid > *,
.js-on .page-home .ed-stats-grid > *,
.js-on .page-home .ed-reason-list > *,
.js-on .page-home .ed-flow-list > *,
.js-on .page-home .ed-faq-list > *,
.js-on .page-home .ed-ba > *,
.js-on .page-home .ed-cta-buttons > * {
  opacity:0;
  transform:translateY(28px);
  transition:opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1);
}

.js-on .page-home main > section.is-in .container > *:not(:has([data-fade])),
.js-on .page-home .is-in .ed-promise-list > *,
.js-on .page-home .is-in .ed-service-grid > *,
.js-on .page-home .is-in .ed-stats-grid > *,
.js-on .page-home .is-in .ed-reason-list > *,
.js-on .page-home .is-in .ed-flow-list > *,
.js-on .page-home .is-in .ed-faq-list > *,
.js-on .page-home .is-in .ed-ba > *,
.js-on .page-home .is-in .ed-cta-buttons > * {
  opacity:1;
  transform:none;
}

.js-on .page-home .is-in .container > *:nth-child(2),
.js-on .page-home .is-in .ed-promise-list > *:nth-child(2),
.js-on .page-home .is-in .ed-service-grid > *:nth-child(2),
.js-on .page-home .is-in .ed-stats-grid > *:nth-child(2),
.js-on .page-home .is-in .ed-reason-list > *:nth-child(2),
.js-on .page-home .is-in .ed-flow-list > *:nth-child(2),
.js-on .page-home .is-in .ed-faq-list > *:nth-child(2),
.js-on .page-home .is-in .ed-ba > *:nth-child(2),
.js-on .page-home .is-in .ed-cta-buttons > *:nth-child(2) {
  transition-delay:.12s;
}

.js-on .page-home .is-in .container > *:nth-child(3),
.js-on .page-home .is-in .ed-promise-list > *:nth-child(3),
.js-on .page-home .is-in .ed-stats-grid > *:nth-child(3),
.js-on .page-home .is-in .ed-reason-list > *:nth-child(3),
.js-on .page-home .is-in .ed-flow-list > *:nth-child(3),
.js-on .page-home .is-in .ed-faq-list > *:nth-child(3),
.js-on .page-home .is-in .ed-cta-buttons > *:nth-child(3) {
  transition-delay:.24s;
}

.js-on .page-home .is-in .container > *:nth-child(4),
.js-on .page-home .is-in .ed-stats-grid > *:nth-child(4),
.js-on .page-home .is-in .ed-reason-list > *:nth-child(4),
.js-on .page-home .is-in .ed-flow-list > *:nth-child(4) {
  transition-delay:.36s;
}

.js-on .page-home .is-in .ed-flow-list > *:nth-child(5) {
  transition-delay:.48s;
}

.js-on .page-home [data-fade] {
  opacity:1;
  transform:none;
}

@media (max-width:900px) {
html:has(.page-home) {
    scroll-behavior:auto;
  }.page-home main > section,
  .page-home .ed-message-grid,
  .page-home .ed-area {
    padding:18px 0;
  }.page-home .ed-reveal-block,
  .page-home .ed-service,
  .page-home .ed-works,
  .page-home .ed-price,
  .page-home .ed-flow,
  .page-home .ed-faq,
  .page-home .ed-stats,
  .page-home .ed-cta {
    padding-top:18px;
    padding-bottom:18px;
  }.page-home .ed-hero {
    justify-content:center;
  }.page-home .ed-hero-copy {
    top:auto;
    bottom:auto;
    width:100%;
    padding:0 20px;
    transform:none;
  }.page-home .ed-hero-copy:before {
    content:"";
    position:absolute;
    z-index:-1;
    inset:-40px -20px;
    background:radial-gradient(115% 75% at 50% 50%, rgba(20,18,14,.58) 0%, rgba(20,18,14,.34) 55%, rgba(20,18,14,0) 100%);
  }.page-home .ed-hero-copy h1 {
    font-size:30px;
    line-height:1.45;
  }.page-home .ed-hero-lead {
    font-size:14px;
    line-height:1.9;
  }.page-home .ed-eyecatch {
    font-size:11px;
    padding:6px 14px;
    margin-bottom:14px;
  }.page-home .ed-scroll-hint {
    right:14px;
    bottom:14px;
  }.page-home .ed-section-head {
    margin-bottom:18px;
  }.page-home .ed-promise-list,
  .page-home .ed-service-grid,
  .page-home .ed-flow-list,
  .page-home .ed-faq-list {
    display:flex;
    gap:14px;
    margin:0;
    padding:4px 0 8px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    border-top:0;
  }.page-home .ed-promise-list::-webkit-scrollbar,
  .page-home .ed-service-grid::-webkit-scrollbar,
  .page-home .ed-flow-list::-webkit-scrollbar,
  .page-home .ed-faq-list::-webkit-scrollbar {
    display:none;
  }.page-home .ed-promise-list > *,
  .page-home .ed-service-grid > *,
  .page-home .ed-flow-list > *,
  .page-home .ed-faq-list > * {
    flex:0 0 84%;
    scroll-snap-align:center;
  }.page-home .ed-service-card img {
    height:clamp(130px, 20vh, 190px);
  }.page-home .ed-flow-list li {
    padding:18px 16px;
    border-top:2px solid var(--green);
    background:#fff;
    border-radius:14px;
    box-shadow:var(--shadow);
  }.page-home .ed-faq-list article {
    display:block;
    padding:20px 18px;
    border:1px solid var(--line);
    border-radius:14px;
    background:#fff;
    box-shadow:var(--shadow);
  }.page-home .ed-dots {
    display:flex;
    justify-content:center;
    gap:8px;
    margin-top:14px;
  }.page-home .ed-dots button {
    width:8px;
    height:8px;
    padding:0;
    border:0;
    border-radius:50%;
    background:var(--green-mid);
    opacity:.5;
    transition:opacity .3s ease, transform .3s ease;
  }.page-home .ed-dots button.is-on {
    opacity:1;
    transform:scale(1.4);
    background:var(--green);
  }.page-home .dk-dots {
    right:6px;
    gap:7px;
  }.page-home .dk-dots button {
    width:7px;
    height:7px;
  }.page-home .ed-reason {
    display:block;
    min-height:0;
    padding:0;
  }.page-home .ed-reason-inner {
    padding:18px 0;
  }.page-home .ed-reason h2 {
    margin-bottom:18px;
  }.page-home .ed-reason-list {
    grid-template-columns:1fr;
    gap:14px;
  }.page-home .ed-reason-list article {
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:16px 18px;
    border:1px solid rgba(255,255,255,.24);
    border-radius:16px;
    background:rgba(28,40,24,.42);
  }.page-home .ed-reason-list article:nth-child(1),
  .page-home .ed-reason-list article:nth-child(2) {
    min-height:calc((var(--sec-h, 100svh) - 36px - 106px) / 2 - 7px);
  }.page-home .ed-reason-list article:nth-child(3),
  .page-home .ed-reason-list article:nth-child(4) {
    min-height:calc((var(--sec-h, 100svh) - 36px) / 2 - 7px);
  }.page-home .ed-reason-list article:nth-child(3) {
    margin-top:36px;
    scroll-snap-align:start;
    scroll-snap-stop:always;
    scroll-margin-top:18px;
  }.page-home .ed-message-grid {
    gap:16px;
  }.page-home .ed-message-grid img {
    aspect-ratio:auto;
    max-height:22vh;
    width:100%;
    object-position:center 22%;
  }
}

@media (max-width:900px) and (max-height:780px) {
.page-home .ed-reveal {
    font-size:17px;
    line-height:1.9;
  }.page-home .ed-price-table th,
  .page-home .ed-price-table td {
    padding:11px 4px;
    font-size:14px;
  }.page-home .ed-message-grid img {
    max-height:17vh;
  }.page-home .ed-message-grid p {
    font-size:13px;
    line-height:1.8;
  }.page-home .ed-message h2,
  .page-home .ed-area h2 {
    margin-bottom:10px;
  }
}

@media (min-width:901px) and (max-height:880px) {
.page-home main > section {
    padding:16px 0;
  }.page-home .ed-reveal-block,
  .page-home .ed-service,
  .page-home .ed-works,
  .page-home .ed-price,
  .page-home .ed-faq,
  .page-home .ed-cta,
  .page-home .ed-message,
  .page-home .ed-reason {
    padding-top:16px;
    padding-bottom:16px;
  }.page-home .ed-section-head {
    margin-bottom:14px;
  }.page-home .ed-section-head h2,
  .page-home .ed-price-text h2,
  .page-home .ed-message h2,
  .page-home .ed-area h2,
  .page-home .ed-reason h2 {
    font-size:30px;
    margin-bottom:12px;
  }.page-home .ed-promise .ed-reveal {
    font-size:21px;
    line-height:1.9;
    margin-top:24px;
  }.page-home .ed-promise-head h2 {
    font-size:28px;
  }.page-home .ed-promise-list h3 {
    font-size:20px;
  }.page-home .ed-promise-list p:last-child {
    font-size:15px;
  }.page-home .ed-service-grid {
    gap:28px;
  }.page-home .ed-service-card figure {
    height:min(200px, 15vh);
    margin-bottom:10px;
  }.page-home .ed-service-text h3 {
    font-size:21px;
    margin-bottom:6px;
  }.page-home .ed-service-text p {
    font-size:14px;
  }.page-home .ed-stats,
  .page-home .ed-flow {
    margin-top:14px;
  }.page-home .ed-stats-grid div {
    padding:14px 10px;
  }.page-home .ed-flow-list {
    gap:16px;
  }.page-home .ed-flow-list li {
    padding-top:12px;
  }.page-home .ed-flow-list h3 {
    font-size:15px;
  }.page-home .ed-flow-list p {
    font-size:12px;
  }.page-home .ed-price-grid {
    gap:32px;
  }.page-home .ed-price-table th,
  .page-home .ed-price-table td {
    padding:11px 14px;
    font-size:15px;
  }.page-home .ed-ba img {
    height:min(300px, 26vh);
  }.page-home .ed-faq-list article {
    padding:18px 0;
  }.page-home .ed-message-grid {
    gap:32px;
  }.page-home .ed-message-grid img {
    max-height:32vh;
  }.page-home .ed-message-grid p {
    font-size:14px;
    line-height:1.9;
  }.page-home .ed-area {
    margin-top:16px;
    padding-top:14px;
  }.page-home .ed-area-map {
    width:150px;
  }
}


.page-home .pc-br {
  display:inline;
}

@media (max-width:900px) {
  .page-home .pc-br {
    display:none;
  }
}

/* FVのアイキャッチ：LPと同じ淡い黄緑のピル */
.page-home .ed-eyecatch {
  display:inline-block;
  margin:0 0 18px;
  padding:9px 22px;
  border:0;
  border-radius:999px;
  background:var(--green-soft);
  color:var(--green-dark);
  font-family:"Zen Maru Gothic", sans-serif;
  font-weight:700;
  font-size:clamp(15px, 1.35vw, 20px);
  letter-spacing:.02em;
  box-shadow:0 5px 18px rgba(45,80,58,.08);
}

/* FVの文字：LPと同じ「濃い色＋白い光彩」で写真の上に置く */
.page-home .ed-hero {
  color:var(--ink);
}

.page-home .ed-hero-copy h1 {
  color:var(--ink);
  text-shadow:0 1px 12px rgba(255,254,247,.9), 0 0 3px rgba(255,254,247,.85);
}

.page-home .ed-hero-lead {
  color:var(--ink);
  font-weight:700;
  text-shadow:0 0 4px rgba(255,255,255,1), 0 1px 3px rgba(255,255,255,.95);
}

.page-home .ed-scroll-hint {
  color:var(--ink);
  text-shadow:0 0 6px rgba(255,255,255,.95);
}

.page-home .ed-scroll-hint span {
  background:rgba(46,42,36,.35);
}

.page-home .ed-scroll-hint span:after {
  background:var(--ink);
}

/* 選ばれる理由：見出しを上に置き、カードは2列×2行 */
@media (min-width:901px) {
  .page-home .ed-reason {
    justify-content:center;
  }

  .page-home .ed-reason-inner {
    display:flex;
    flex-direction:column;
  }

  .page-home .ed-reason h2 {
    margin-bottom:26px;
  }

  /* 見出しのすぐ下からカードを置く（余白は下に逃がす） */
  .page-home .ed-reason-list {
    grid-template-columns:repeat(2, 1fr);
    grid-auto-rows:max-content;
    gap:44px 40px;
  }
}

/* 選ばれる理由：見出しを2行分の高さで固定し、4枚とも本文の開始位置を揃える */
@media (min-width:901px) {
  .page-home .ed-reason-list h3 {
    min-height:calc(19px * 1.5 * 2);
  }
}

/* =========================================================
   スマホ：1画面1セクションをやめて通常の縦スクロールに戻す
   ========================================================= */
@media (max-width:900px) {
  html:has(.page-home) {
    scroll-snap-type:none;
    scroll-behavior:auto;
  }

  .page-home {
    display:block;
    height:auto;
    overflow:visible;
  }

  .page-home .site-header {
    position:sticky;
    top:0;
  }

  .page-home .dk-scroll {
    display:block;
    height:auto;
    min-height:0;
    overflow:visible;
    scroll-snap-type:none;
  }

  .page-home main > section,
  .page-home .dk-pane {
    display:block;
    min-height:0;
    scroll-snap-align:none;
    scroll-snap-stop:normal;
    padding:56px 0;
  }

  .page-home .site-footer {
    scroll-snap-align:none;
  }

  /* PC用の移動ドット・進捗バーはスマホでは出さない */
  .page-home .dk-progress,
  .page-home .dk-dots {
    display:none;
  }

  /* FV：写真＋コピー（画面いっぱいではなく自然な高さ） */
  .page-home .ed-hero {
    display:flex;
    align-items:center;
    min-height:76svh;
    padding:0;
  }

  .page-home .ed-hero-copy {
    padding:48px 20px 80px;
  }

  /* 横スライドをやめて縦積みに戻す */
  .page-home .ed-promise-list,
  .page-home .ed-service-grid,
  .page-home .ed-flow-list,
  .page-home .ed-faq-list {
    display:grid;
    grid-template-columns:1fr;
    gap:18px;
    overflow:visible;
    scroll-snap-type:none;
    padding:0;
  }

  .page-home .ed-promise-list > *,
  .page-home .ed-service-grid > *,
  .page-home .ed-flow-list > *,
  .page-home .ed-faq-list > * {
    flex:none;
    scroll-snap-align:none;
  }

  .page-home .ed-dots {
    display:none;
  }

  .page-home .ed-service-card figure {
    height:min(220px, 30vh);
    margin-bottom:0;
  }

  .page-home .ed-service-card img {
    height:100%;
  }

  .page-home .ed-service-grid {
    gap:18px;
  }

  /* 選ばれる理由：2つずつの分割をやめて縦に4つ */
  .page-home .ed-reason {
    display:block;
    padding:56px 0;
  }

  .page-home .ed-reason-inner {
    display:block;
    padding:0;
  }

  .page-home .ed-reason-list {
    display:grid;
    grid-template-columns:1fr;
    gap:18px;
  }

  .page-home .ed-reason-list article,
  .page-home .ed-reason-list article:nth-child(1),
  .page-home .ed-reason-list article:nth-child(2),
  .page-home .ed-reason-list article:nth-child(3),
  .page-home .ed-reason-list article:nth-child(4) {
    min-height:0;
    margin-top:0;
    scroll-snap-align:none;
  }

  .page-home .ed-reason-list h3 {
    min-height:0;
  }

  /* 代表あいさつ・対応エリアの画面分割をやめる */
  .page-home .ed-message {
    display:block;
    padding:56px 0;
  }

  .page-home .ed-message-grid,
  .page-home .ed-area {
    display:grid;
    min-height:0;
    padding:0;
    scroll-snap-align:none;
  }

  .page-home .ed-area {
    margin-top:36px;
    padding-top:28px;
  }

  .page-home .ed-message-grid img {
    max-height:none;
    aspect-ratio:4/3;
  }
}

/* スマホのFV：縦長写真を上寄せで見せる（人物が切れないように） */
@media (max-width:900px) {
  .page-home .ed-hero-photo {
    background-image:url('shirube.img/fv-photo-sp.webp');
    background-position:center bottom;
    background-size:cover;
  }
}

/* スマホ：スクロールを滑らかにする（重い描画を減らす） */
@media (max-width:900px) {
  .js-on .page-home main > section .container > *,
  .js-on .page-home .ed-promise-list > *,
  .js-on .page-home .ed-service-grid > *,
  .js-on .page-home .ed-stats-grid > *,
  .js-on .page-home .ed-reason-list > *,
  .js-on .page-home .ed-flow-list > *,
  .js-on .page-home .ed-faq-list > *,
  .js-on .page-home .ed-ba > *,
  .js-on .page-home .ed-cta-buttons > * {
    transform:none;
    transition:opacity .5s ease;
  }

  .page-home .ed-reason-bg img {
    will-change:auto;
  }

  .page-home .ed-service-card:hover img {
    transform:none;
  }

  .page-home .ed-service-card img {
    transition:none;
  }
}

/* =========================================================
   スマホ専用の調整（PCには一切影響しない）
   ========================================================= */
.page-home .sp-only {
  display:none;
}

@media (max-width:900px) {
  .page-home .pc-only {
    display:none;
  }

  .page-home .sp-only {
    display:inline;
  }

  /* FV：写真を画面サイズに合わせ、黒の重ねを写真全体にかける */
  .page-home .ed-hero {
    height:var(--sp-hero-h, 76svh);
    min-height:0;
  }

  .page-home .ed-hero-photo {
    background-position:center top;
    background-size:cover;
  }

  .page-home .ed-hero:after {
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(180deg, rgba(20,18,14,.30) 0%, rgba(20,18,14,.42) 45%, rgba(20,18,14,.62) 100%);
  }

  .page-home .ed-hero-copy {
    position:relative;
    z-index:2;
  }

  .page-home .ed-hero-copy:before {
    display:none;
  }

  .page-home .ed-eyecatch {
    display:block;
    text-align:center;
    margin:70px 0 18px;
  }

  .page-home .ed-hero-copy h1 {
    color:#fff;
    font-size:24px;
    margin-top:200px;
    text-shadow:0 2px 18px rgba(0,0,0,.45);
    transform:translateY(-30px);
  }

  .page-home .ed-hero-lead {
    color:#fff;
    text-shadow:0 2px 12px rgba(0,0,0,.5);
    transform:translateY(-30px);
  }

  .page-home .ed-scroll-hint {
    color:#fff;
    text-shadow:0 0 6px rgba(0,0,0,.5);
  }

  .page-home .ed-scroll-hint span {
    background:rgba(255,255,255,.5);
  }

  .page-home .ed-scroll-hint span:after {
    background:#fff;
  }

  /* よくあるご質問の見出しを2px小さく */
  .page-home .ed-faq h2 {
    font-size:calc(clamp(24px, 5.2vw, 40px) - 2px);
  }

  /* 代表あいさつの本文と署名を2px大きく */
  .page-home .ed-message-grid p {
    font-size:16px;
  }

  .page-home .ed-rep {
    font-size:16px;
  }

  /* CTAのh2：料金ページと同じサイズ */
  .page-home .ed-cta h2 {
    font-size:22px;
  }

  /* CTAボタン：料金ページと同じ配置（アイコンabsolute左固定・文字を中央） */
  .page-home .ed-btn {
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:70px;
    padding:16px 24px;
  }

  .page-home .ed-btn img {
    position:absolute;
    left:24px;
    top:50%;
    transform:translateY(-50%);
  }

  .page-home .ed-btn span {
    text-align:center;
  }

  .page-home .ed-btn small {
    text-align:center;
  }
}

/* PCだけに出す文字（読点・中黒）。スマホでは消す */
.page-home .pc-txt {
  display:inline;
}

@media (max-width:900px) {
  .page-home .pc-txt {
    display:none;
  }
}
