:root {
  --ink:#2E2A24;
  --text:#4C463B;
  --sub:#6B6252;
  --cream:#FBFEF4;
  --green:#2E9A47;
  --green-dark:#1C7A33;
  --green-soft:#EAF6D7;
  --green-mid:#BFE3A6;
  --orange:#E8871C;
  --line:rgba(46,42,36,.12);
  --shadow:0 12px 32px rgba(46,42,36,.08);
  --radius:18px;
  --container:1120px;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
}

body {
  margin:0;
  font-family:"Zen Kaku Gothic New", system-ui, sans-serif;
  color:var(--text);
  background:#fff;
  line-height:1.75;
  letter-spacing:.025em;
}

img {
  max-width:100%;
  height:auto;
  display:block;
}

a {
  color:inherit;
  text-decoration:none;
}

.container {
  width:min(var(--container), calc(100% - 48px));
  margin-inline:auto;
}

/* header */
.site-header {
  background:#fff;
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:100;
}

.header-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:14px 0 10px;
}

.brand img {
  width:190px;
  height:auto;
}

.header-actions {
  display:flex;
  align-items:center;
  gap:10px;
}

.header-actions a {
  min-height:52px;
  border-radius:10px;
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:900;
  line-height:1.25;
  white-space:nowrap;
}

.header-actions small {
  display:block;
  font-size:11px;
  font-weight:700;
  opacity:.85;
  margin-top:3px;
}

.header-tel {
  font-size:18px;
  color:var(--ink);
  padding:0 10px;
}

.header-tel img {
  width:24px;
}

.header-line {
  background:var(--green);
  color:#fff;
  padding:9px 16px;
  box-shadow:var(--shadow);
}

.header-line img {
  width:34px;
}

.header-mail {
  border:1px solid var(--line);
  padding:9px 14px;
  background:#fff;
}

.header-mail img {
  width:32px;
}

.menu-button {
  display:none;
  background:#fff;
  border:0;
  padding:8px;
  cursor:pointer;
  color:var(--ink);
  font-weight:800;
}

.menu-button span {
  display:block;
  width:34px;
  height:3px;
  background:var(--ink);
  margin:7px 0;
  border-radius:999px;
}

.menu-button em {
  font-style:normal;
  font-size:12px;
  display:block;
  margin-top:2px;
}

.global-nav {
  border-top:1px solid rgba(46,42,36,.06);
}

.nav-inner {
  display:grid;
  grid-template-columns:repeat(7,1fr);
}

.nav-inner a {
  text-align:center;
  padding:12px 6px 10px;
  font-size:13px;
  font-weight:900;
  color:var(--ink);
  position:relative;
}

.nav-inner span {
  display:block;
  font-size:10px;
  color:var(--green);
  font-family:Arial,sans-serif;
  letter-spacing:.09em;
}

.nav-inner a.active:after {
  content:"";
  position:absolute;
  left:28%;
  right:28%;
  bottom:0;
  height:3px;
  background:var(--green);
  border-radius:999px;
}

/* hero */
.hero-section {
  background:linear-gradient(90deg,#fff 0%,#fff 45%,#fbfcf7 100%);
  border-bottom:1px solid var(--line);
}

.hero-grid {
  display:grid;
  grid-template-columns:1.02fr .98fr;
  align-items:stretch;
  min-height:430px;
  gap:0;
}

.hero-copy {
  padding:42px 0 34px;
  position:relative;
  z-index:2;
}

.eyecatch {
  display:inline-block;
  background:var(--green-soft);
  color:var(--green-dark);
  font-weight:900;
  border-radius:999px;
  padding:6px 16px;
  margin:0 0 18px;
  font-size:14px;
}

.hero-copy h1 {
  font-family:"Zen Maru Gothic", sans-serif;
  color:var(--ink);
  font-size:34px;
  line-height:1.62;
  letter-spacing:.04em;
  margin:0 0 22px;
}

.hero-image {
  margin:0;
  display:flex;
  align-items:stretch;
  overflow:hidden;
  border-bottom-left-radius:40px;
}

.hero-image picture {
  display:block;
  width:100%;
  height:100%;
}

.hero-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.promise-row {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  box-shadow:var(--shadow);
  max-width:610px;
  overflow:hidden;
}

.promise-card {
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 14px;
  border-right:1px solid var(--line);
}

.promise-card:last-child {
  border-right:0;
}

.promise-card img {
  width:38px;
  flex:0 0 auto;
}

.promise-card p {
  margin:0;
  line-height:1.45;
}

.promise-card strong {
  display:block;
  font-size:13px;
  color:var(--ink);
}

.promise-card span {
  font-size:11px;
  font-weight:700;
  color:var(--sub);
}

.hero-cta {
  display:flex;
  gap:18px;
  margin-top:20px;
  max-width:610px;
}

.btn {
  border-radius:8px;
  min-height:62px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  font-weight:900;
  box-shadow:var(--shadow);
}

.btn img {
  width:38px;
}

.btn small {
  display:block;
  font-size:12px;
  font-weight:800;
  opacity:.9;
}

.btn-line {
  background:var(--green);
  color:#fff;
  flex:1.1;
}

.btn-phone {
  background:#fff;
  border:1px solid var(--line);
  color:var(--ink);
  flex:1;
}

.btn-mail {
  background:#fff;
  border:1px solid var(--line);
  color:var(--ink);
}

/* sections */
.section {
  padding:20px 0;
}

.center-title {
  text-align:center;
  font-family:"Zen Maru Gothic", sans-serif;
  color:var(--ink);
  font-size:24px;
  line-height:1.35;
  margin:0 0 16px;
  position:relative;
}

.center-title:after {
  content:"";
  display:block;
  width:34px;
  height:3px;
  background:var(--green);
  border-radius:999px;
  margin:6px auto 0;
}

.service-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
  align-items:stretch;
}

.image-card,.panel,.reason-grid {
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 8px 24px rgba(46,42,36,.045);
}

.service-card {
  min-height:160px;
  display:grid;
  grid-template-columns:1.2fr .9fr;
  overflow:hidden;
}

.card-text {
  padding:22px;
  display:flex;
  flex-direction:column;
}

.card-text h3,.panel h2,.panel h3,.reason-card h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  color:var(--ink);
  line-height:1.4;
  margin:0 0 9px;
}

.card-text h3 {
  font-size:20px;
}

.card-text p {
  font-size:13px;
  font-weight:700;
  margin:0 0 12px;
}

.card-text .text-link {
  margin-top:auto;
  align-self:flex-start;
  padding-top:6px;
}

.service-card>img {
  width:100%;
  height:100%;
  object-fit:cover;
  align-self:stretch;
}

.text-link {
  color:var(--green-dark);
  font-weight:900;
  font-size:14px;
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.text-link:after {
  content:"→";
  font-weight:900;
  margin-left:5px;
}

/* reason */
.reason-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  overflow:hidden;
}

.reason-card {
  padding:22px;
  border-right:1px solid var(--line);
}

.reason-card:last-child {
  border-right:0;
}

.reason-card span {
  display:inline-grid;
  place-items:center;
  width:46px;
  height:46px;
  background:var(--green);
  border-radius:999px;
  color:#fff;
  font-weight:900;
  font-size:18px;
  margin-bottom:10px;
}

.reason-card h3 {
  font-size:16px;
  color:var(--ink);
}

.reason-card p {
  font-size:13px;
  font-weight:700;
  margin:0;
  color:var(--text);
}

/* overview: 料金 / 事例 / 流れ */
.overview-grid {
  display:grid;
  grid-template-columns:1fr 1fr 1.08fr;
  gap:18px;
  align-items:stretch;
}

.panel {
  padding:22px;
  display:flex;
  flex-direction:column;
}

.panel h2 {
  font-size:19px;
  color:var(--ink);
}

.panel p {
  font-size:13px;
  font-weight:700;
  margin:0 0 12px;
}

.panel .text-link {
  margin-top:auto;
  align-self:flex-start;
  padding-top:14px;
}

.price-panel table {
  width:100%;
  border-collapse:collapse;
  background:#faf9f4;
  margin:12px 0;
}

.price-panel th,.price-panel td {
  border:1px solid var(--line);
  padding:5px 10px;
  font-size:13px;
}

.price-panel th {
  text-align:left;
  color:var(--ink);
  font-weight:900;
}

.price-panel td {
  text-align:right;
  color:var(--ink);
  font-weight:900;
}

.note {
  font-size:12px!important;
  color:var(--sub);
}

.ba-pair {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:12px;
}

.ba {
  position:relative;
  margin:0;
  border-radius:8px;
  overflow:hidden;
  border:1px solid var(--line);
}

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

.ba figcaption {
  position:absolute;
  top:6px;
  left:6px;
  padding:2px 9px;
  border-radius:999px;
  font-size:11px;
  font-weight:900;
  background:rgba(46,42,36,.72);
  color:#fff;
}

.ba.after figcaption {
  background:var(--green);
}

.work-panel h3 {
  font-size:15px;
  color:var(--ink);
}

.flow-list {
  list-style:none;
  padding:0;
  margin:0 0 12px;
}

.flow-list li {
  display:grid;
  grid-template-columns:30px 1fr;
  column-gap:9px;
  margin-bottom:8px;
}

.flow-list span {
  grid-row:span 2;
  background:var(--green);
  color:#fff;
  border-radius:999px;
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  font-size:11px;
  font-weight:900;
}

.flow-list strong {
  font-size:13px;
  color:var(--ink);
}

.flow-list p {
  margin:0!important;
  font-size:12px!important;
  color:var(--sub);
}

/* faq */
.faq-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  background:#fff;
}

.faq-item {
  padding:20px;
  border-right:1px solid var(--line);
}

.faq-item:last-child {
  border-right:0;
}

.faq-item h3 {
  display:grid;
  grid-template-columns:24px 1fr;
  column-gap:10px;
  align-items:start;
  margin:0;
  font-family:"Zen Kaku Gothic New", system-ui, sans-serif;
  font-size:15px;
  font-weight:900;
  line-height:1.6;
  color:var(--ink);
}

.faq-item h3:before {
  content:"Q";
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  background:var(--green);
  color:#fff;
  border-radius:50%;
  font-size:12px;
}

.faq-item p {
  display:grid;
  grid-template-columns:24px 1fr;
  column-gap:10px;
  align-items:start;
  font-size:13px;
  font-weight:700;
  margin:12px 0 0;
}

.faq-item p:before {
  content:"A";
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  background:var(--green-soft);
  color:var(--green-dark);
  border-radius:50%;
  font-size:12px;
  font-weight:900;
}

.center-link {
  text-align:center;
  margin-top:12px;
}

/* trust */
.trust-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  align-items:stretch;
}

.greeting-panel,.area-panel {
  display:grid;
  grid-template-columns:1.4fr .8fr;
  align-items:stretch;
  overflow:hidden;
  background:linear-gradient(180deg,#fff,#fbfdf6);
}

.greeting-text,.area-panel>div {
  display:flex;
  flex-direction:column;
}

.greeting-panel .text-link,.area-panel .text-link {
  margin-top:auto;
  align-self:flex-start;
  padding-top:14px;
}

.greeting-panel img {
  height:210px;
  width:100%;
  object-fit:contain;
  object-position:bottom;
  align-self:end;
}

.greeting-panel p,.area-panel p {
  font-size:13px;
}

.rep-name {
  font-weight:900;
  color:var(--ink);
}

.area-panel img {
  width:170px;
  margin:auto;
}

/* final cta */
.final-cta {
  background:linear-gradient(180deg,#fbfdf6,var(--green-soft));
  border-radius:var(--radius);
  padding:24px;
  border:1px solid var(--line);
  text-align:center;
}

.final-cta h2 {
  font-family:"Zen Maru Gothic";
  font-size:24px;
  color:var(--ink);
  margin:0 0 6px;
}

.final-cta p {
  font-weight:700;
  margin:0 0 16px;
}

.final-cta-buttons {
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:18px;
  max-width:960px;
  margin:auto;
}

.final-cta .btn {
  min-height:70px;
}

/* footer */
.site-footer {
  border-top:1px solid var(--line);
  background:#fff;
  padding:36px 0 20px;
}

.footer-grid {
  display:grid;
  grid-template-columns:1.15fr 1.45fr 1fr 1fr;
  gap:30px;
}

.footer-brand img {
  width:170px;
}

.site-footer h3 {
  font-family:"Zen Maru Gothic";
  font-size:15px;
  color:var(--ink);
  margin:0 0 8px;
}

.site-footer p,.site-footer a {
  display:block;
  font-size:13px;
  font-weight:700;
  color:var(--sub);
  margin:0 0 4px;
}

.copyright {
  text-align:center;
  font-size:12px!important;
  margin:24px 0 0!important;
}

.mobile-fixed-cta {
  display:none;
}

@media (max-width:900px) {

  body {
    padding-bottom:76px;
  }
  .container {
    width:calc(100% - 28px);
  }
  .header-top {
    padding:12px 0;
  }
  .brand img {
    width:152px;
  }
  .header-actions {
    display:none;
  }
  .menu-button {
    display:block;
  }
  .global-nav {
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    background:#fff;
    border-bottom:1px solid var(--line);
    box-shadow:var(--shadow);
  }
  .global-nav.is-open {
    display:block;
  }
  .nav-inner {
    width:100%;
    display:block;
    padding:8px 16px;
  }
  .nav-inner a {
    text-align:left;
    display:block;
    border-bottom:1px solid var(--line);
    padding:12px 4px;
  }
  .nav-inner a.active:after {
    display:none;
  }
  .nav-inner span {
    display:inline;
    margin-left:8px;
  }
  .hero-grid {
    display:block;
    min-height:0;
  }
  .hero-copy {
    padding:24px 0 18px;
  }
  .eyecatch {
    font-size:13px;
    margin-bottom:14px;
  }
  .hero-copy h1 {
    font-size:24px;
    line-height:1.7;
    margin-bottom:14px;
  }
  .hero-image {
    border-radius:0;
    margin:0 calc(50% - 50vw);
    width:100vw;
    max-height:320px;
  }
  .hero-image img {
    height:320px;
    object-position:center 30%;
  }
  .promise-row {
    grid-template-columns:1fr;
    max-width:none;
    border-radius:12px;
  }
  .promise-card {
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:12px;
  }
  .promise-card:last-child {
    border-bottom:0;
  }
  .hero-cta {
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
  .btn {
    min-height:58px;
  }
  .section {
    padding:16px 0;
  }
  .center-title {
    font-size:20px;
  }
  .service-grid {
    grid-template-columns:1fr;
    gap:12px;
  }
  .service-card {
    grid-template-columns:1fr .85fr;
    min-height:130px;
  }
  .card-text {
    padding:16px;
  }
  .card-text h3 {
    font-size:18px;
  }
  .card-text p {
    font-size:12px;
  }
  .desktop-only {
    display:none;
  }
  .reason-grid {
    grid-template-columns:1fr;
    border-radius:14px;
  }
  .reason-card {
    display:grid;
    grid-template-columns:45px 1fr;
    column-gap:12px;
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:15px;
  }
  .reason-card:last-child {
    border-bottom:0;
  }
  .reason-card span {
    grid-row:span 2;
    margin:0;
    width:38px;
    height:38px;
    font-size:14px;
  }
  .reason-card h3 {
    font-size:14px;
    margin:0 0 3px;
  }
  .reason-card p {
    font-size:12px;
  }
  .overview-grid {
    grid-template-columns:1fr;
    gap:12px;
  }
  .panel {
    padding:17px;
  }
  .faq-grid {
    display:block;
  }
  .faq-item {
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:16px;
  }
  .faq-item:last-child {
    border-bottom:0;
  }
  .trust-grid {
    grid-template-columns:1fr;
    gap:12px;
  }
  .greeting-panel,.area-panel {
    grid-template-columns:1fr;
  }
  .greeting-panel img {
    height:185px;
    order:-1;
  }
  .area-panel img {
    width:145px;
  }
  .final-cta {
    padding:20px 14px;
  }
  .final-cta h2 {
    font-size:20px;
  }
  .final-cta p {
    font-size:13px;
  }
  .final-cta-buttons {
    grid-template-columns:1fr;
    gap:10px;
  }
  .site-footer {
    padding-bottom:92px;
  }
  .footer-grid {
    grid-template-columns:1fr;
    gap:18px;
  }
  .footer-brand img {
    width:150px;
  }
  .mobile-fixed-cta {
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:120;
    background:#fff;
    border-top:1px solid var(--line);
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    box-shadow:0 -8px 24px rgba(46,42,36,.12);
  }
  .mobile-fixed-cta a {
    min-height:70px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    font-size:12px;
    font-weight:900;
    color:#fff;
    background:var(--green);
    border-right:1px solid rgba(255,255,255,.32);
  }
  .mobile-fixed-cta a:first-child {
    background:var(--green-dark);
  }
  .mobile-fixed-cta a:last-child {
    background:var(--orange);
  }
  .mobile-fixed-cta img {
    width:25px;
    filter:brightness(0) invert(1);
  }

}

@media (min-width:901px) and (max-width:1180px) {

  .container {
    width:calc(100% - 40px);
  }
  .hero-copy h1 {
    font-size:29px;
  }
  .header-actions {
    gap:6px;
  }
  .header-mail {
    display:none;
  }
  .service-grid {
    grid-template-columns:repeat(2,1fr);
  }
  .desktop-only {
    display:none;
  }
  .overview-grid {
    grid-template-columns:1fr 1fr;
  }
  .flow-panel {
    grid-column:span 2;
  }

}


/* =========================================================
   サービス紹介ページ（body.page-service）
   ========================================================= */
.page-service .page-head {
  padding:26px 0 34px;
  background:linear-gradient(90deg,#fff 0%,#f7fbef 52%,#fff 100%);
  border-bottom:1px solid var(--line);
  position:relative;
  overflow:hidden;
}

.page-service .page-head-grid {
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:42px;
  align-items:center;
}

.page-service .breadcrumb {
  display:flex;
  gap:10px;
  align-items:center;
  font-size:13px;
  font-weight:700;
  color:var(--sub);
  margin-bottom:24px;
}

.page-service .breadcrumb a {
  color:var(--green-dark);
}

.page-service .page-copy h1 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:clamp(30px,3.6vw,44px);
  line-height:1.5;
  letter-spacing:.05em;
  color:var(--ink);
  margin:0 0 18px;
}

.page-service .lead {
  font-size:16px;
  font-weight:700;
  line-height:2;
  max-width:580px;
  margin:0;
}

.page-service .page-anchor-row {
  display:flex;
  gap:16px;
  margin-top:26px;
  flex-wrap:wrap;
}

.page-service .anchor-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:13px 26px;
  min-width:230px;
  font-weight:900;
  border:1px solid var(--green);
  box-shadow:0 8px 24px rgba(46,42,36,.06);
}

.page-service .anchor-btn.green {
  background:var(--green);
  color:#fff;
}

.page-service .anchor-btn.orange {
  background:#fff;
  color:#8a5d17;
  border-color:var(--orange);
}

.page-service .page-main-photo {
  margin:0;
  border-radius:22px;
  overflow:hidden;
  box-shadow:var(--shadow);
}

.page-service .page-main-photo img {
  width:100%;
  height:390px;
  object-fit:cover;
}

.page-service .service-block {
  padding:52px 0 0;
}

.page-service .large-feature-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:28px;
  box-shadow:0 8px 24px rgba(46,42,36,.045);
  padding:34px;
  overflow:hidden;
}

.page-service .split-card {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  align-items:center;
  gap:36px;
}

.page-service .split-card.reverse .section-title-block {
  order:1;
}

.page-service .split-card.reverse figure {
  order:2;
}

.page-service .split-card figure {
  margin:0;
  border-radius:22px;
  overflow:hidden;
}

.page-service .split-card figure img {
  width:100%;
  height:300px;
  object-fit:cover;
}

.page-service .section-title-block {
  position:relative;
}

.page-service .service-number {
  position:absolute;
  left:-4px;
  top:-16px;
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:72px;
  line-height:1;
  font-weight:700;
  color:rgba(107,98,82,.15);
}

.page-service .section-kicker {
  margin:0 0 2px;
  padding-left:70px;
  font-size:13px;
  font-weight:900;
  letter-spacing:.12em;
  color:var(--green-dark);
}

.page-service .section-title-block h2 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:34px;
  color:var(--ink);
  margin:0 0 16px 70px;
}

.page-service .section-title-block p {
  margin:0;
  font-weight:700;
  max-width:720px;
}

.page-service .center-heading {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin:44px 0 20px;
}

.page-service .center-heading span {
  width:70px;
  height:1px;
  background:var(--green-mid);
}

.page-service .center-heading h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:24px;
  color:var(--ink);
  margin:0;
}

.page-service .consult-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  align-items:stretch;
}

.page-service .consult-panel {
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:28px 30px;
  box-shadow:0 8px 24px rgba(46,42,36,.045);
}

.page-service .consult-panel.warm {
  background:linear-gradient(180deg,#fff,#fffaf0);
}

.page-service .consult-panel h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:22px;
  color:var(--ink);
  margin:0 0 12px;
}

.page-service .check-list {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}

.page-service .check-list li {
  position:relative;
  padding-left:26px;
  font-size:14px;
  font-weight:700;
}

.page-service .check-list li:before {
  content:"✓";
  position:absolute;
  left:0;
  top:.25em;
  width:17px;
  height:17px;
  border-radius:50%;
  background:var(--green);
  color:#fff;
  font-size:11px;
  font-weight:900;
  display:grid;
  place-items:center;
}

.page-service .work-grid.five {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:16px;
  align-items:stretch;
}

.page-service .work-card {
  position:relative;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(46,42,36,.045);
}

.page-service .work-card img {
  width:100%;
  height:130px;
  object-fit:cover;
}

.page-service .work-no {
  position:absolute;
  left:12px;
  top:12px;
  z-index:2;
  width:38px;
  height:38px;
  border-radius:50%;
  background:var(--green);
  color:#fff;
  font-family:"Zen Maru Gothic", sans-serif;
  font-weight:700;
  display:grid;
  place-items:center;
}

.page-service .work-card h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:16px;
  color:var(--ink);
  margin:0;
  padding:18px 18px 6px;
}

.page-service .work-card p {
  margin:0;
  padding:0 18px 20px;
  font-size:13px;
  font-weight:700;
  color:var(--sub);
}

.page-service .note-band {
  margin:22px 0 34px;
  padding:18px 26px;
  border-radius:14px;
  background:linear-gradient(90deg,var(--green-soft),#f7fbf1);
  border:1px solid rgba(46,154,71,.12);
  text-align:center;
  font-weight:900;
  color:var(--green-dark);
}

.page-service .note-band.soft-orange {
  background:linear-gradient(90deg,#fff8e8,#fff3db);
  border-color:rgba(232,135,28,.18);
  color:#8a5d17;
}

.page-service .seizen-panel {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:34px;
  align-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:28px;
  box-shadow:0 8px 24px rgba(46,42,36,.045);
  padding:28px;
  margin-top:34px;
}

.page-service .seizen-panel figure {
  margin:0;
  border-radius:22px;
  overflow:hidden;
}

.page-service .seizen-panel figure img {
  width:100%;
  height:340px;
  object-fit:cover;
}

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

.page-service .seizen-panel>div>p {
  margin:0 0 18px;
  font-weight:700;
}

.page-service .icon-list {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:14px;
}

.page-service .icon-list li {
  position:relative;
  padding-left:38px;
}

.page-service .icon-list li:before {
  content:"✓";
  position:absolute;
  left:0;
  top:.2em;
  width:25px;
  height:25px;
  border-radius:50%;
  background:var(--green-soft);
  color:var(--green-dark);
  font-weight:900;
  font-size:13px;
  display:grid;
  place-items:center;
}

.page-service .icon-list strong {
  display:block;
  font-size:16px;
  color:var(--ink);
}

.page-service .icon-list span {
  display:block;
  font-size:13px;
  font-weight:700;
  color:var(--sub);
}

.page-service .sonosaki {
  padding-top:52px;
}

.page-service .after-grid {
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:22px;
  margin-top:24px;
  align-items:stretch;
}

.page-service .card-block {
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:28px;
  box-shadow:0 8px 24px rgba(46,42,36,.045);
}

.page-service .card-block h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:24px;
  color:var(--ink);
  margin:0 0 18px;
}

.page-service .after-photo {
  margin:20px 0 0;
  border-radius:16px;
  overflow:hidden;
}

.page-service .after-photo img {
  width:100%;
  height:180px;
  object-fit:cover;
}

.page-service .promise-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}

.page-service .promise-grid div {
  background:var(--cream);
  border:1px solid var(--line);
  border-radius:18px;
  padding:20px;
}

.page-service .promise-grid span {
  width:36px;
  height:36px;
  border-radius:50%;
  background:var(--green);
  color:#fff;
  font-weight:900;
  display:grid;
  place-items:center;
  margin-bottom:10px;
}

.page-service .promise-grid strong {
  display:block;
  font-size:15px;
  line-height:1.5;
  color:var(--ink);
}

.page-service .promise-grid p {
  margin:8px 0 0;
  font-size:13px;
  font-weight:700;
  color:var(--sub);
}

.page-service .price-section {
  padding:56px 0;
}

.page-service .price-grid {
  display:grid;
  grid-template-columns:.75fr 1fr .75fr;
  gap:32px;
  align-items:center;
}

.page-service .small-title .service-number {
  position:static;
  display:block;
  margin-bottom:8px;
}

.page-service .small-title h2 {
  margin:0 0 16px;
  font-size:30px;
}

.page-service .small-title p,.page-service .price-note p {
  margin:0;
  font-weight:700;
}

.page-service .price-table-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:0 8px 24px rgba(46,42,36,.045);
  padding:8px;
}

.page-service .price-table-card table {
  width:100%;
  border-collapse:collapse;
  font-weight:900;
}

.page-service .price-table-card th,.page-service .price-table-card td {
  padding:14px 18px;
  border-bottom:1px solid var(--line);
  text-align:left;
  font-size:14px;
}

.page-service .price-table-card th {
  background:var(--cream);
  color:var(--sub);
}

.page-service .price-table-card tr:last-child td {
  border-bottom:0;
}

.page-service .price-table-card td:last-child {
  text-align:right;
  color:var(--ink);
}

@media (max-width:1120px) {

  .page-service .work-grid.five {
    grid-template-columns:repeat(3,1fr);
  }
  .page-service .price-grid {
    grid-template-columns:1fr;
  }
  .page-service .after-grid {
    grid-template-columns:1fr;
  }
  .page-service .promise-grid {
    grid-template-columns:1fr;
  }

}

@media (max-width:900px) {

  .page-service .page-head {
    padding:16px 0 26px;
  }
  .page-service .page-head-grid {
    grid-template-columns:1fr;
    gap:18px;
  }
  .page-service .breadcrumb {
    margin-bottom:14px;
    font-size:12px;
  }
  .page-service .page-copy h1 {
    font-size:26px;
    line-height:1.55;
  }
  .page-service .lead {
    font-size:14px;
    line-height:1.9;
  }
  .page-service .page-anchor-row {
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
  .page-service .anchor-btn {
    min-width:0;
    width:100%;
  }
  .page-service .page-main-photo img {
    height:220px;
  }
  .page-service .service-block {
    padding:32px 0 0;
  }
  .page-service .large-feature-card {
    padding:20px;
    border-radius:22px;
  }
  .page-service .split-card,.page-service .split-card.reverse {
    grid-template-columns:1fr;
    gap:18px;
  }
  .page-service .split-card.reverse .section-title-block,.page-service .split-card.reverse figure {
    order:initial;
  }
  .page-service .split-card figure img {
    height:200px;
  }
  .page-service .service-number {
    font-size:52px;
    top:-10px;
  }
  .page-service .section-kicker {
    padding-left:52px;
  }
  .page-service .section-title-block h2 {
    font-size:24px;
    margin-left:52px;
    margin-bottom:12px;
  }
  .page-service .section-title-block p {
    font-size:14px;
  }
  .page-service .center-heading {
    margin:30px 0 16px;
  }
  .page-service .center-heading span {
    width:36px;
  }
  .page-service .center-heading h3 {
    font-size:19px;
  }
  .page-service .consult-grid {
    grid-template-columns:1fr;
    gap:12px;
  }
  .page-service .consult-panel {
    padding:20px 18px;
  }
  .page-service .work-grid.five {
    grid-template-columns:1fr;
  }
  .page-service .work-card {
    display:grid;
    grid-template-columns:130px 1fr;
    align-items:center;
  }
  .page-service .work-card img {
    height:100%;
    min-height:110px;
  }
  .page-service .work-no {
    width:30px;
    height:30px;
    font-size:13px;
  }
  .page-service .work-card h3 {
    padding:14px 14px 4px;
    font-size:15px;
  }
  .page-service .work-card p {
    padding:0 14px 14px;
    font-size:12px;
  }
  .page-service .note-band {
    margin:18px 0 26px;
    padding:16px;
    text-align:left;
    font-size:14px;
  }
  .page-service .seizen-panel {
    grid-template-columns:1fr;
    gap:16px;
    padding:18px;
    border-radius:22px;
  }
  .page-service .seizen-panel figure img {
    height:210px;
  }
  .page-service .seizen-panel h3 {
    font-size:21px;
  }
  .page-service .card-block {
    padding:20px;
  }
  .page-service .after-photo img {
    height:150px;
  }
  .page-service .price-section {
    padding:34px 0;
  }
  .page-service .price-grid {
    gap:18px;
  }
  .page-service .small-title h2 {
    font-size:24px;
  }
  .page-service .price-table-card th,.page-service .price-table-card td {
    padding:12px;
  }

}

.page-service .promise-card {
  display:block;
  align-items:initial;
  gap:0;
  border-right:0;
  padding:28px;
}

/* --- サービス紹介ページ 下半分（2カラム構成） --- */
.page-service .lower-section {
  padding:40px 0 8px;
}

.page-service .lower-grid {
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:22px;
  align-items:start;
}

.page-service .lower-col {
  display:grid;
  gap:0;
  align-content:start;
}

.page-service .seizen-panel {
  display:block;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 8px 24px rgba(46,42,36,.045);
  padding:24px;
  margin:0;
}

.page-service .seizen-panel figure {
  margin:0 0 18px;
  border-radius:16px;
  overflow:hidden;
}

.page-service .seizen-panel figure img {
  width:100%;
  height:230px;
  object-fit:cover;
}

.page-service .seizen-panel h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:24px;
  color:var(--ink);
  margin:0 0 12px;
}

.page-service .seizen-panel>p {
  margin:0 0 16px;
  font-size:14px;
  font-weight:700;
}

.page-service .price-panel-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 8px 24px rgba(46,42,36,.045);
  padding:24px;
}

.page-service .price-panel-card h2 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:22px;
  color:var(--ink);
  margin:0 0 8px;
}

.page-service .price-panel-card>p {
  margin:0 0 14px;
  font-size:13px;
  font-weight:700;
}

.page-service .price-panel-body {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:16px;
  align-items:stretch;
}

.page-service .price-photo-box {
  margin:0;
  border-radius:14px;
  overflow:hidden;
  border:1px solid var(--line);
}

.page-service .price-photo-box img {
  width:100%;
  height:100%;
  min-height:170px;
  object-fit:cover;
}

.page-service .price-panel-card .note {
  margin:14px 0 0;
  font-size:12px;
  color:var(--sub);
  font-weight:700;
}

.page-service .sonosaki-panel {
  background:linear-gradient(180deg,#fff,#fbfdf6);
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 8px 24px rgba(46,42,36,.045);
  padding:26px;
}

.page-service .sonosaki-head {
  display:grid;
  grid-template-columns:1fr .85fr;
  gap:22px;
  align-items:center;
  margin-bottom:16px;
}

.page-service .round-no {
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--green);
  color:#fff;
  font-family:"Zen Maru Gothic", sans-serif;
  font-weight:700;
  font-size:18px;
  margin-bottom:10px;
}

.page-service .sonosaki-head h2 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:30px;
  color:var(--ink);
  margin:0;
}

.page-service .sonosaki-head figure {
  margin:0;
  border-radius:16px;
  overflow:hidden;
}

.page-service .sonosaki-head figure img {
  width:100%;
  height:170px;
  object-fit:cover;
}

.page-service .sonosaki-lead {
  margin:0 0 22px;
  font-size:14px;
  font-weight:700;
}

.page-service .mini-title {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:19px;
  color:var(--ink);
  text-align:center;
  margin:0 0 14px;
}

.page-service .mini-divider {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin:24px 0 14px;
}

.page-service .mini-divider span {
  width:52px;
  height:1px;
  background:var(--green-mid);
}

.page-service .mini-divider h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:19px;
  color:var(--ink);
  margin:0;
}

.page-service .icon-card-row {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  align-items:stretch;
}

.page-service .icon-card-row article {
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px 14px;
  text-align:center;
  box-shadow:0 6px 18px rgba(46,42,36,.04);
}

.page-service .icon-card-row img {
  width:48px;
  height:48px;
  margin:0 auto 10px;
}

.page-service .icon-card-row strong {
  display:block;
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:15px;
  line-height:1.5;
  color:var(--ink);
  margin-bottom:6px;
}

.page-service .icon-card-row p {
  margin:0;
  font-size:12px;
  font-weight:700;
  color:var(--sub);
  text-align:left;
}

.page-service .promise-row-3 article {
  background:var(--cream);
}

.page-service .sonosaki-panel .note-band {
  margin:22px 0 0;
}

/* CTA に葉の装飾 */
.page-service .final-cta {
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,#fbfdf6,var(--green-soft));
}

.page-service .final-cta:before,.page-service .final-cta:after {
  content:"";
  position:absolute;
  width:190px;
  height:190px;
  background:url('shirube.img/leaves.svg') center/contain no-repeat;
  opacity:.55;
  pointer-events:none;
}

.page-service .final-cta:before {
  left:-30px;
  bottom:-40px;
}

.page-service .final-cta:after {
  right:-30px;
  top:-40px;
  transform:scaleX(-1);
}

.page-service .final-cta h2,.page-service .final-cta>p,.page-service .final-cta-buttons {
  position:relative;
  z-index:1;
}

@media (max-width:1120px) {

  .page-service .lower-grid {
    grid-template-columns:1fr;
  }
  .page-service .icon-card-row {
    grid-template-columns:repeat(3,1fr);
  }

}

@media (max-width:900px) {

  .page-service .lower-section {
    padding:26px 0 0;
  }
  .page-service .lower-grid {
    gap:14px;
  }
  .page-service .seizen-panel,.page-service .price-panel-card,.page-service .sonosaki-panel {
    padding:18px;
  }
  .page-service .seizen-panel figure img {
    height:190px;
  }
  .page-service .price-panel-body {
    grid-template-columns:1fr;
  }
  .page-service .price-photo-box img {
    min-height:150px;
  }
  .page-service .sonosaki-head {
    grid-template-columns:1fr;
    gap:14px;
  }
  .page-service .sonosaki-head h2 {
    font-size:24px;
  }
  .page-service .sonosaki-head figure img {
    height:180px;
  }
  .page-service .icon-card-row {
    grid-template-columns:1fr;
  }
  .page-service .icon-card-row article {
    display:grid;
    grid-template-columns:52px 1fr;
    align-items:center;
    column-gap:12px;
    text-align:left;
    padding:14px;
  }
  .page-service .icon-card-row img {
    width:44px;
    height:44px;
    margin:0;
  }
  .page-service .icon-card-row strong {
    margin-bottom:2px;
  }
  .page-service .final-cta:before,.page-service .final-cta:after {
    width:120px;
    height:120px;
  }

}

/* =========================================================
   料金ページ（body.page-price）
   ========================================================= */
.page-price .page-head {
  background:linear-gradient(180deg,#fff 0%,var(--cream) 100%);
  border-bottom:1px solid var(--line);
  padding:30px 0 44px;
}

.page-price .page-head-grid {
  display:grid;
  grid-template-columns:1fr .86fr;
  gap:46px;
  align-items:center;
}

.page-price .breadcrumb {
  display:flex;
  gap:9px;
  align-items:center;
  font-size:13px;
  font-weight:700;
  color:var(--sub);
  margin-bottom:26px;
}

.page-price .breadcrumb a {
  color:var(--green-dark);
}

.page-price .page-copy h1 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:clamp(28px,3.4vw,42px);
  font-weight:700;
  line-height:1.55;
  letter-spacing:.05em;
  color:var(--ink);
  margin:0 0 20px;
}

.page-price .page-copy p {
  max-width:610px;
  margin:0;
  font-weight:700;
}

.page-price .page-photo {
  margin:0;
  border-radius:26px;
  overflow:hidden;
  box-shadow:var(--shadow);
}

.page-price .page-photo img {
  width:100%;
  height:330px;
  object-fit:cover;
}

.page-price .section {
  padding:44px 0;
}

.page-price .narrow {
  max-width:880px;
}

.page-price .section-title-number {
  display:flex;
  align-items:flex-start;
  gap:20px;
  margin-bottom:22px;
}

.page-price .section-title-number>span {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:48px;
  line-height:1;
  color:rgba(46,42,36,.15);
}

.page-price .section-title-number h2 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:28px;
  line-height:1.45;
  color:var(--ink);
  margin:0 0 8px;
}

.page-price .section-title-number p {
  margin:0;
  font-weight:700;
  font-size:14px;
}

.page-price .section-title-number.compact>span {
  font-size:42px;
}

.page-price .price-table-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:var(--shadow);
  overflow:hidden;
}

.page-price .price-table {
  width:100%;
  border-collapse:collapse;
  font-size:16px;
}

.page-price .price-table th,.page-price .price-table td {
  padding:15px 24px;
  border-bottom:1px solid var(--line);
  text-align:center;
}

.page-price .price-table tr:last-child td {
  border-bottom:0;
}

.page-price .price-table th {
  background:var(--green-soft);
  color:var(--green-dark);
  font-family:"Zen Maru Gothic", sans-serif;
  font-weight:900;
}

.page-price .price-table td {
  font-weight:900;
  color:var(--ink);
}

.page-price .green-note,.page-price .green-band,.page-price .soft-note {
  background:var(--green-soft);
  border:1px solid rgba(46,154,71,.12);
  border-radius:14px;
  padding:18px 22px;
  margin:22px 0 0;
  color:var(--green-dark);
  font-weight:900;
  font-size:14px;
}

.page-price .included-grid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:14px;
  align-items:stretch;
}

.page-price .work-card {
  position:relative;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 10px 24px rgba(46,42,36,.06);
  overflow:hidden;
}

.page-price .work-card img {
  width:100%;
  height:138px;
  object-fit:cover;
}

.page-price .work-num {
  position:absolute;
  z-index:2;
  top:10px;
  left:10px;
  width:36px;
  height:36px;
  border-radius:50%;
  background:var(--green);
  color:#fff;
  display:grid;
  place-items:center;
  font-weight:900;
}

.page-price .work-card h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:16px;
  color:var(--ink);
  line-height:1.45;
  margin:16px 14px 8px;
  text-align:center;
}

.page-price .work-card p {
  margin:0 14px 18px;
  font-size:12px;
  font-weight:700;
  color:var(--sub);
  text-align:left;
}

.page-price .split-card {
  display:grid;
  grid-template-columns:1fr 350px;
  gap:32px;
  align-items:center;
  background:#fff;
  border:1px solid var(--line);
  border-radius:26px;
  box-shadow:var(--shadow);
  padding:28px;
}

.page-price .split-card .section-title-number {
  margin-bottom:0;
}

.page-price .inline-photo {
  margin:0;
  border-radius:18px;
  overflow:hidden;
  border:1px solid var(--line);
}

.page-price .inline-photo img {
  width:100%;
  height:220px;
  object-fit:cover;
}

.page-price .factor-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  align-items:stretch;
}

.page-price .factor-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:26px 22px;
  text-align:center;
  box-shadow:0 10px 24px rgba(46,42,36,.05);
}

.page-price .factor-icon {
  width:60px;
  height:60px;
  border-radius:18px;
  margin:0 auto 14px;
  border:2px solid var(--green-mid);
  background:#f8fcf2;
  display:grid;
  place-items:center;
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:24px;
  color:var(--green-dark);
}

.page-price .factor-card h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:20px;
  color:var(--ink);
  margin:0 0 10px;
}

.page-price .factor-card p {
  margin:0;
  font-size:13px;
  font-weight:700;
  color:var(--sub);
}

.page-price .bottom-grid {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:24px;
  align-items:stretch;
}

.page-price .payment-card,.page-price .estimate-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:26px;
  box-shadow:var(--shadow);
  padding:28px;
}

.page-price .step-row {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}

.page-price .step-card {
  border:1px solid var(--line);
  border-radius:16px;
  padding:18px;
  background:linear-gradient(180deg,#fff,#fbfdf8);
}

.page-price .step-card span {
  width:34px;
  height:34px;
  border-radius:50%;
  background:var(--green);
  color:#fff;
  display:grid;
  place-items:center;
  font-weight:900;
  margin-bottom:12px;
}

.page-price .step-card h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:17px;
  color:var(--ink);
  margin:0 0 8px;
}

.page-price .step-card p {
  margin:0;
  font-size:12px;
  font-weight:700;
  color:var(--sub);
}

.page-price .estimate-card .text-link {
  margin-top:18px;
}

@media (max-width:1120px) {

  .page-price .included-grid {
    grid-template-columns:repeat(3,1fr);
  }
  .page-price .bottom-grid {
    grid-template-columns:1fr;
  }

}

@media (max-width:900px) {

  .page-price .page-head {
    padding:18px 0 30px;
  }
  .page-price .page-head-grid {
    grid-template-columns:1fr;
    gap:20px;
  }
  .page-price .breadcrumb {
    margin-bottom:16px;
    font-size:12px;
  }
  .page-price .page-copy h1 {
    font-size:26px;
    line-height:1.6;
  }
  .page-price .page-copy p {
    font-size:14px;
  }
  .page-price .page-photo img {
    height:220px;
  }
  .page-price .section {
    padding:30px 0;
  }
  .page-price .section-title-number {
    gap:12px;
  }
  .page-price .section-title-number>span {
    font-size:34px;
  }
  .page-price .section-title-number h2 {
    font-size:22px;
  }
  .page-price .price-table th,.page-price .price-table td {
    padding:13px 10px;
    font-size:14px;
  }
  .page-price .green-note,.page-price .green-band,.page-price .soft-note {
    padding:16px;
    font-size:13px;
  }
  .page-price .included-grid {
    grid-template-columns:1fr;
  }
  .page-price .work-card {
    display:grid;
    grid-template-columns:130px 1fr;
    align-items:center;
  }
  .page-price .work-card img {
    height:100%;
    min-height:120px;
  }
  .page-price .work-num {
    width:30px;
    height:30px;
    font-size:13px;
  }
  .page-price .work-card h3 {
    margin:14px 14px 4px;
    text-align:left;
    font-size:15px;
  }
  .page-price .work-card p {
    margin:0 14px 14px;
  }
  .page-price .split-card {
    grid-template-columns:1fr;
    padding:20px;
    gap:18px;
  }
  .page-price .inline-photo img {
    height:190px;
  }
  .page-price .factor-grid {
    grid-template-columns:1fr;
  }
  .page-price .payment-card,.page-price .estimate-card {
    padding:20px;
  }
  .page-price .step-row {
    grid-template-columns:1fr;
  }

}

/* =========================================================
   よくあるご質問ページ（body.page-faq）
   ========================================================= */















/* =========================================================
   トップページ（body.page-home）のCSSは home.css に分離
   ========================================================= */


















/* --- 01 ヒーロー：sticky＋分裂 --- */






/* 背景のFV写真（開いた時点でくっきり表示） */


/* 1枚の写真の左半分・右半分。両サイドから入ってきて中央で合体する */
















/* FVの上に重なる3つの約束（画面中央） */














/* 中央のボックスは2つに割れた状態で現れ、画像と同時にくっつく */






















@keyframes edScroll {
  0% { transform:translateY(0); }
  100% { transform:translateY(80px); }
}



/* --- 本文の単語リビール --- */








/* --- フェードイン共通 --- */




/* --- 03 サービス --- */














/* --- 04 数字バー --- */












/* --- 05 選ばれる理由（全面写真） --- */




















/* --- 06 作業事例 --- */


















/* --- 07 料金 --- */
















/* --- 08 流れ --- */












/* --- 09 FAQ --- */










/* --- 10 代表・エリア --- */


















/* --- 11 CTA --- */
























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

.page-ed .ed-num {
  font-family:Arial, sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:.2em;
  color:var(--green);
  margin:0 0 12px;
}

.page-ed .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-ed .ed-link:after {
  content:"→";
}

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

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

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

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

/* ページヘッダー */
.page-ed .edp-head {
  padding:56px 0 44px;
  border-bottom:1px solid var(--line);
}

.page-ed .edp-breadcrumb {
  display:flex;
  align-items:center;
  gap:9px;
  font-size:12px;
  font-weight:700;
  color:var(--sub);
  margin-bottom:28px;
}

.page-ed .edp-breadcrumb a {
  color:var(--green-dark);
}

.page-ed .edp-breadcrumb em {
  font-style:normal;
}

.page-ed .edp-head h1 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:clamp(30px,4vw,54px);
  line-height:1.4;
  letter-spacing:.04em;
  color:var(--ink);
  margin:0 0 18px;
}

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

.page-ed .sp-br {
  display:none;
}

.page-ed .pc-only {
  display:inline;
}

@media (max-width:900px) {
  .page-ed .pc-br {
    display:none;
  }
  .page-ed .sp-br {
    display:inline;
  }
  .page-ed .pc-only,
  .js-on .page-ed .ed-reveal .w.pc-only {
    display:none;
  }
}

.page-ed .edp-head h1 .edp-h1-sub {
  display:block;
  margin-top:10px;
  font-family:"Zen Kaku Gothic New", sans-serif;
  font-size:clamp(14px,1.3vw,17px);
  font-weight:700;
  line-height:1.7;
  letter-spacing:.02em;
  color:var(--sub);
}

.page-ed .edp-lead {
  max-width:820px;
  margin:0;
  font-size:16px;
  font-weight:500;
  line-height:2;
  color:var(--text);
}

/* 作業事例 */
.page-ed .edp-case {
  padding:80px 0 40px;
}

.page-ed .edp-case-item {
  margin-bottom:100px;
}

.page-ed .edp-case-item:last-child {
  margin-bottom:0;
}

.page-ed .edp-case-item h2 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:clamp(22px,2.4vw,32px);
  line-height:1.5;
  color:var(--ink);
  margin:0 0 30px;
}

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

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

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

.page-ed .edp-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-ed .edp-ba figure:last-child figcaption {
  background:var(--green);
}

.page-ed .edp-case-body {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:44px;
  align-items:start;
  margin-top:30px;
}

.page-ed .edp-spec {
  margin:0;
  border-top:1px solid var(--line);
}

.page-ed .edp-spec>div {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:12px;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}

.page-ed .edp-spec dt {
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--sub);
}

.page-ed .edp-spec dd {
  margin:0;
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:19px;
  font-weight:700;
  color:var(--ink);
}

.page-ed .edp-case-body>p {
  margin:0;
  font-size:16px;
  font-weight:500;
  line-height:2.05;
}

/* 帯 */
.page-ed .edp-band {
  margin-top:90px;
  padding:70px 0;
  background:var(--cream);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  text-align:center;
}

.page-ed .edp-band h2 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:clamp(22px,2.4vw,32px);
  color:var(--ink);
  margin:0 0 14px;
}

.page-ed .edp-band p {
  margin:0 auto;
  max-width:760px;
  font-weight:500;
}

.page-ed .edp-band-links {
  display:flex;
  justify-content:center;
  gap:32px;
  flex-wrap:wrap;
}

/* CTA（トップと共通の見た目） */
.page-ed .ed-cta {
  padding:100px 0;
  background:var(--green-soft);
  text-align:center;
}

.page-ed .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-ed .ed-cta>.container>p {
  margin:0 auto 34px;
  max-width:720px;
  font-weight:500;
}

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

.page-ed .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-ed .ed-btn:hover {
  transform:translateY(-3px);
}

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

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

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

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

/* 会社概要 */
.page-ed .edp-message {
  padding:90px 0;
}

.page-ed .edp-message-grid {
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  gap:60px;
  align-items:center;
}

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

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

.page-ed .edp-message-grid h2 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:clamp(24px,2.6vw,36px);
  color:var(--ink);
  margin:0 0 20px;
}

.page-ed .ed-reveal {
  font-size:clamp(16px,1.4vw,19px);
  line-height:2.1;
  color:var(--text);
  margin:0;
}

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

.page-ed .edp-outline {
  padding:0 0 90px;
}

.page-ed .edp-outline h2 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:clamp(22px,2.4vw,32px);
  color:var(--ink);
  margin:0 0 30px;
}

.page-ed .edp-table {
  width:100%;
  border-collapse:collapse;
  border-top:1px solid var(--line);
}

.page-ed .edp-table th,.page-ed .edp-table td {
  padding:22px 8px;
  border-bottom:1px solid var(--line);
  text-align:left;
  vertical-align:top;
  font-size:15px;
}

.page-ed .edp-table th {
  width:220px;
  font-weight:700;
  color:var(--sub);
  letter-spacing:.06em;
}

.page-ed .edp-table td {
  font-weight:500;
  color:var(--ink);
}

.page-ed .edp-area {
  padding:70px 0;
  background:var(--cream);
  border-top:1px solid var(--line);
}

.page-ed .edp-area-grid {
  display:grid;
  grid-template-columns:1.4fr .6fr;
  gap:40px;
  align-items:center;
}

.page-ed .edp-area-grid h2 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:clamp(22px,2.4vw,32px);
  color:var(--ink);
  margin:0 0 16px;
}

.page-ed .edp-area-grid p {
  margin:0;
  font-weight:500;
  line-height:2;
}

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

/* お問い合わせ */
.page-ed .edp-contact {
  padding:90px 0;
}

.page-ed .edp-contact-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.page-ed .edp-contact-card {
  display:flex;
  flex-direction:column;
  padding:36px 28px;
  border:1px solid var(--line);
  background:#fff;
  text-align:center;
  transition:transform .25s ease, box-shadow .25s ease;
}

.page-ed .edp-contact-card:hover {
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(46,42,36,.08);
}

.page-ed .edp-contact-card img {
  width:52px;
  height:52px;
  margin:0 auto 18px;
}

.page-ed .edp-contact-card h2 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:22px;
  color:var(--ink);
  margin:0 0 10px;
}

.page-ed .edp-contact-card .edp-big {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:26px;
  font-weight:700;
  color:var(--green-dark);
  margin:0 0 8px;
  letter-spacing:.02em;
}

.page-ed .edp-contact-card p {
  margin:0;
  font-size:14px;
  font-weight:500;
  color:var(--sub);
  line-height:1.9;
}

.page-ed .edp-contact-card .edp-cta-inline {
  margin-top:auto;
  padding-top:22px;
}

.page-ed .edp-contact-card .edp-cta-inline span {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:0 26px;
  background:var(--green);
  color:#fff;
  font-weight:900;
  font-size:14px;
}

.page-ed .edp-contact-card.is-tel .edp-cta-inline span {
  background:var(--ink);
}

.page-ed .edp-contact-card.is-mail .edp-cta-inline span {
  background:var(--orange);
}

.page-ed .edp-note-band {
  margin-top:40px;
  padding:26px 30px;
  background:var(--cream);
  border:1px solid var(--line);
  font-size:14px;
  font-weight:500;
  line-height:2;
  color:var(--text);
}

@media (max-width:900px) {

  .page-ed .edp-head {
    padding:32px 0 28px;
  }
  .page-ed .edp-breadcrumb {
    margin-bottom:18px;
  }
  .page-ed .edp-lead {
    font-size:14px;
    line-height:1.95;
  }
  .page-works .edp-lead {
    font-size:16px;
  }
  .page-company .edp-lead {
    font-size:12px;
  }
  .page-service .edp-head h1 {
    font-size:22px;
  }
  .page-service .ed-reveal {
    font-size:13px;
  }
  .page-company .edp-head h1 {
    font-size:28px;
  }
  .page-ed.page-service .edp-small {
    font-size:11px;
  }
  .page-ed .edp-case {
    padding:48px 0 20px;
  }
  .page-ed .edp-case-item {
    margin-bottom:64px;
  }
  .page-ed .edp-case-item h2 {
    margin-bottom:20px;
  }
  .page-ed .edp-ba {
    gap:10px;
  }
  .page-ed .edp-ba figcaption {
    padding:6px 12px;
    font-size:10px;
  }
  .page-ed .edp-case-body {
    grid-template-columns:1fr;
    gap:22px;
    margin-top:22px;
  }
  .page-ed .edp-case-body>p {
    font-size:15px;
    line-height:1.95;
  }
  .page-works .edp-case-body>p {
    font-size:14px;
  }
  .page-ed .edp-band {
    margin-top:56px;
    padding:44px 0;
  }
  .page-ed .edp-band-links {
    gap:20px;
  }
  .page-ed .ed-cta {
    padding:56px 0;
  }
  .page-ed .ed-cta-buttons {
    grid-template-columns:1fr;
  }
  .page-ed .ed-btn {
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:70px;
    padding:16px 24px;
  }
  .page-ed .ed-btn img {
    position:absolute;
    left:24px;
    top:50%;
    transform:translateY(-50%);
  }
  .page-ed .edp-message {
    padding:48px 0;
  }
  .page-ed .edp-message-grid {
    grid-template-columns:1fr;
    gap:24px;
  }
  .page-ed .edp-message-grid img {
    aspect-ratio:4/3;
  }
  .page-ed .edp-outline {
    padding-bottom:48px;
  }
  .page-ed .edp-table th,.page-ed .edp-table td {
    display:block;
    width:100%;
    padding:0;
  }
  .page-ed .edp-table th {
    padding:16px 0 4px;
    font-size:12px;
  }
  .page-ed .edp-table td {
    padding:0 0 16px;
    font-size:15px;
  }
  .page-ed .edp-table tr {
    display:block;
    border-bottom:1px solid var(--line);
  }
  .page-ed .edp-table td {
    border:0;
  }
  .page-ed .edp-table th {
    border:0;
  }
  .page-ed .edp-area {
    padding:44px 0;
  }
  .page-ed .edp-area-grid {
    grid-template-columns:1fr;
    gap:22px;
  }
  .page-ed .edp-area-map {
    width:150px;
  }
  .page-ed .edp-contact {
    padding:48px 0;
  }
  .page-ed .edp-contact-grid {
    grid-template-columns:1fr;
    gap:14px;
  }
  .page-ed .edp-contact-card {
    padding:26px 20px;
  }
  .page-ed .edp-note-band {
    padding:20px;
    font-size:13px;
  }

}



/* --- 下層ページ 追加パーツ（サービス紹介・料金・FAQ） --- */
.page-ed .edp-anchor {
  display:flex;
  gap:12px;
  margin-top:26px;
  flex-wrap:wrap;
}

.page-ed .edp-anchor a {
  display:inline-flex;
  align-items:center;
  min-height:48px;
  padding:0 26px;
  border:1px solid var(--green);
  color:var(--green-dark);
  font-weight:900;
  font-size:14px;
  transition:background .2s ease, color .2s ease;
}

.page-ed .edp-anchor a:hover {
  background:var(--green);
  color:#fff;
}

.page-ed .edp-hero-visual {
  margin:0;
  overflow:hidden;
}

.page-ed .edp-hero-visual img {
  width:100%;
  height:clamp(260px,42vw,520px);
  object-fit:cover;
}

.page-ed .edp-block {
  padding:90px 0;
}

.page-ed .edp-block+.edp-block {
  padding-top:0;
}

.page-ed .edp-h2 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:clamp(26px,3vw,42px);
  line-height:1.4;
  letter-spacing:.04em;
  color:var(--ink);
  margin:0 0 20px;
}

.page-ed .edp-h2.light {
  color:#fff;
}

.page-ed .edp-block>.container>p {
  margin:0 0 10px;
  font-weight:500;
  line-height:2;
}

.page-ed .edp-h3 {
  position:relative;
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:clamp(20px,2.2vw,28px);
  color:var(--ink);
  margin:70px 0 26px;
  padding-top:26px;
  border-top:1px solid var(--line);
}

.page-ed .edp-h3.no-line {
  margin-top:0;
  padding-top:0;
  border-top:0;
}

.page-ed .edp-need {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:44px;
  margin-top:44px;
}

.page-ed .edp-need h3 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:22px;
  color:var(--ink);
  margin:0 0 16px;
  padding-bottom:14px;
  border-bottom:2px solid var(--green);
}

.page-ed .edp-need ul {
  list-style:none;
  margin:0;
  padding:0;
}

.page-ed .edp-need li {
  position:relative;
  padding:12px 0 12px 26px;
  border-bottom:1px solid var(--line);
  font-size:15px;
  font-weight:500;
}

.page-ed .edp-need li:before {
  content:"";
  position:absolute;
  left:0;
  top:1.35em;
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--green-mid);
}

.page-ed .edp-work-grid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:20px;
}

.page-ed .edp-work-grid figure {
  position:relative;
  margin:0 0 16px;
  overflow:hidden;
}

.page-ed .edp-work-grid img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  transition:transform 1.2s cubic-bezier(.2,.8,.2,1);
}

.page-ed .edp-work-grid article:hover img {
  transform:scale(1.06);
}

.page-ed .edp-work-grid figure span {
  position:absolute;
  left:0;
  top:0;
  min-width:38px;
  padding:8px 10px;
  background:var(--green);
  color:#fff;
  font-family:Arial, sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-align:center;
}

.page-ed .edp-work-grid h4 {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:16px;
  line-height:1.5;
  color:var(--ink);
  margin:0 0 8px;
}

.page-ed .edp-work-grid p {
  margin:0;
  font-size:13px;
  font-weight:500;
  color:var(--sub);
  line-height:1.9;
}

.page-ed .edp-note {
  margin-top:30px;
  padding:20px 24px;
  background:var(--cream);
  border-left:3px solid var(--green);
  font-size:14px;
  font-weight:500;
  line-height:1.95;
  color:var(--text);
}

.page-ed .edp-split .edp-note {
  font-size:12px;
}

.page-ed .edp-split {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:56px;
  align-items:center;
  margin-top:80px;
  padding-top:60px;
  border-top:1px solid var(--line);
}

.page-ed .edp-split figure {
  margin:0;
  overflow:hidden;
}

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

.page-ed .edp-split>div>p {
  margin:0 0 24px;
  font-weight:500;
  line-height:2;
}

.page-ed .edp-list {
  margin:0;
}

.page-ed .edp-list>div {
  padding:16px 0;
  border-bottom:1px solid var(--line);
}

.page-ed .edp-list>div:first-child {
  border-top:1px solid var(--line);
}

.page-ed .edp-list dt {
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:16px;
  font-weight:700;
  color:var(--ink);
  margin-bottom:4px;
}

.page-ed .edp-list dd {
  margin:0;
  font-size:14px;
  font-weight:500;
  color:var(--sub);
  line-height:1.9;
}

/* 濃色セクション */
.page-ed .edp-dark {
  position:relative;
  padding:110px 0;
  overflow:hidden;
}

.page-ed .edp-dark-bg {
  position:absolute;
  inset:0;
  z-index:0;
}

.page-ed .edp-dark-bg img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 100%;
}

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

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

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

.page-ed .edp-dark-lead {
  max-width:900px;
  margin:0 0 50px;
  font-size:16px;
  font-weight:500;
  line-height:2.1;
  color:rgba(255,255,255,.88);
}

.page-ed .edp-icon-row {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.page-ed .edp-icon-row.promise {
  margin-top:24px;
}

.page-ed .edp-icon-row article {
  padding:30px 26px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.16);
}

.page-ed .edp-icon-row img {
  width:48px;
  height:48px;
  margin-bottom:16px;
  filter:brightness(0) saturate(100%) invert(85%) sepia(18%) saturate(500%) hue-rotate(48deg) brightness(96%);
}

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

.page-ed .edp-icon-row p {
  margin:0;
  font-size:13px;
  font-weight:500;
  color:rgba(255,255,255,.8);
  line-height:1.9;
}

.page-ed .edp-dark-note {
  margin:40px 0 0;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.24);
  font-size:15px;
  font-weight:700;
  color:#fff;
}

/* 料金表 */
.page-ed .edp-price-teaser {
  padding:90px 0;
}

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

.page-ed .edp-price-grid p {
  margin:0 0 10px;
  font-weight:500;
}

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

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

.page-ed .edp-price-table.full {
  margin-top:36px;
}

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

.page-ed .edp-price-table tr:first-child th,.page-ed .edp-price-table tr:first-child td {
  border-top:1px solid var(--line);
}

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

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

/* 金額が前後する理由 */
.page-ed .edp-factor {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  margin-top:36px;
}

.page-ed .edp-factor article {
  padding-top:22px;
  border-top:2px solid var(--green);
}

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

.page-ed .edp-factor p {
  margin:0;
  font-size:14px;
  font-weight:500;
  color:var(--sub);
  line-height:1.95;
}

.page-ed .edp-two {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:56px;
  align-items:start;
}

/* FAQ（新デザイン上書き） */



@media (max-width:1120px) {

  .page-ed .edp-work-grid {
    grid-template-columns:repeat(3,1fr);
  }

}

@media (max-width:900px) {

  .page-ed .edp-anchor {
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
  .page-ed .edp-anchor a {
    justify-content:center;
  }
  .page-ed .edp-hero-visual img {
    height:220px;
  }
  .page-ed .edp-block {
    padding:48px 0;
  }
  .page-ed .edp-h3 {
    margin:44px 0 20px;
    padding-top:20px;
  }
  .page-ed .edp-need {
    grid-template-columns:1fr;
    gap:28px;
    margin-top:30px;
  }
  .page-ed .edp-work-grid {
    grid-template-columns:1fr;
    gap:14px;
  }
  .page-ed .edp-work-grid article {
    display:grid;
    grid-template-columns:130px 1fr;
    grid-template-rows:auto auto;
    gap:0 14px;
    align-items:center;
  }
  .page-ed .edp-work-grid figure {
    grid-column:1;
    grid-row:1 / span 2;
    align-self:center;
    margin:0;
  }
  .page-ed .edp-work-grid img {
    aspect-ratio:1/1;
  }
  .page-ed .edp-work-grid figure span {
    min-width:30px;
    padding:5px 7px;
    font-size:10px;
  }
  .page-ed .edp-work-grid h4 {
    grid-column:2;
    grid-row:1;
    align-self:end;
    font-size:15px;
    margin:0 0 6px;
  }
  .page-ed .edp-work-grid p {
    grid-column:2;
    grid-row:2;
    align-self:start;
    font-size:12px;
  }
  .page-ed .ed-cta h2 {
    font-size:22px;
  }
  .page-ed .ed-btn img {
    flex:0 0 auto;
  }
  .page-ed .ed-btn span {
    text-align:center;
  }
  .page-ed .ed-btn small {
    text-align:center;
  }
  .page-ed .edp-note {
    padding:16px 18px;
    font-size:13px;
  }
  .page-ed .edp-split {
    grid-template-columns:1fr;
    gap:24px;
    margin-top:48px;
    padding-top:36px;
  }
  .page-ed .edp-dark {
    padding:56px 0;
  }
  .page-ed .edp-dark-lead {
    font-size:14px;
    line-height:1.95;
    margin-bottom:30px;
  }
  .page-ed .edp-icon-row {
    grid-template-columns:1fr;
    gap:12px;
  }
  .page-ed .edp-icon-row article {
    padding:20px;
  }
  .page-ed .edp-price-teaser {
    padding:48px 0;
  }
  .page-ed .edp-price-grid {
    grid-template-columns:1fr;
    gap:24px;
  }
  .page-ed .edp-price-table th,.page-ed .edp-price-table td {
    padding:15px 4px;
    font-size:15px;
  }
  .page-ed .edp-factor {
    grid-template-columns:1fr;
    gap:18px;
  }
  .page-ed .edp-two {
    grid-template-columns:1fr;
    gap:40px;
  }

}


/* =========================================================
   よくあるご質問（body.page-faq）
   ========================================================= */
.page-faq .faq-section {
  padding:56px 0 90px;
}

.page-faq .faq-tabs-hint {
  display:none;
}

.page-faq .faq-tabs-wrap {
  position:relative;
}

.page-faq .faq-tabs {
  display:flex;
  gap:10px;
  margin:0 0 32px;
  padding:4px 0 12px;
  overflow-x:auto;
  scroll-snap-type:x proximity;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}

.page-faq .faq-tabs::-webkit-scrollbar {
  display:none;
}

.page-faq .faq-tab {
  flex:0 0 auto;
  scroll-snap-align:start;
  padding:14px 22px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  box-shadow:var(--shadow);
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:15px;
  font-weight:700;
  line-height:1.4;
  letter-spacing:.02em;
  color:var(--text);
  white-space:nowrap;
  cursor:pointer;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}

.page-faq .faq-tab:hover {
  transform:translateY(-2px);
  border-color:var(--green-mid);
}

.page-faq .faq-tab.is-on {
  background:var(--green);
  border-color:var(--green);
  color:#fff;
}

.page-faq .faq-list[hidden] {
  display:none;
}

@media (max-width:900px) {
  .page-faq .edp-head h1 {
    font-size:26px;
  }
  /* スワイプで切り替えられることを示すヒント */
  .page-faq .faq-tabs-hint {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin:0 0 10px;
    font-family:"Zen Maru Gothic", sans-serif;
    font-size:13px;
    font-weight:700;
    color:var(--sub);
  }
  .page-faq .faq-tabs-hint-arrow {
    color:var(--green);
    animation:faq-swipe 1.6s ease-in-out infinite;
  }
  @keyframes faq-swipe {
    0%,100% { transform:translateX(0); }
    50% { transform:translateX(6px); }
  }
  .page-faq .faq-tabs {
    margin:0 0 24px;
    scroll-padding-left:0;
  }
  /* 最後のタブの右に余白を作り、次のタブがチラ見えして「まだ続く」と分かるように */
  .page-faq .faq-tab {
    padding:12px 18px;
    font-size:14px;
  }
  .page-faq .faq-tab:last-child {
    margin-right:44px;
  }
  /* 右端をフェードして「横に続く」ことを視覚的に示す */
  .page-faq .faq-tabs-wrap::after {
    content:"";
    position:absolute;
    top:0;
    right:0;
    bottom:12px;
    width:40px;
    pointer-events:none;
    background:linear-gradient(90deg, rgba(255,255,255,0), #fff);
  }
}

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

.page-faq .faq-list details {
  border-bottom:1px solid var(--line);
}

.page-faq .faq-list summary {
  display:grid;
  grid-template-columns:34px 1fr 24px;
  align-items:start;
  column-gap:16px;
  padding:26px 0;
  cursor:pointer;
  list-style:none;
  font-family:"Zen Maru Gothic", sans-serif;
  font-size:18px;
  font-weight:700;
  line-height:1.6;
  color:var(--ink);
}

.page-faq .faq-list summary::-webkit-details-marker {
  display:none;
}

.page-faq .faq-list summary:before {
  content:"Q";
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:var(--green);
  color:#fff;
  font-size:15px;
  font-weight:900;
}

.page-faq .faq-list summary:after {
  content:"";
  justify-self:end;
  align-self:center;
  width:12px;
  height:12px;
  border-right:2px solid var(--green);
  border-bottom:2px solid var(--green);
  transform:rotate(45deg);
  transition:transform .25s ease;
}

.page-faq .faq-list details[open] summary:after {
  transform:rotate(-135deg);
}

.page-faq .faq-answer {
  display:grid;
  grid-template-columns:34px 1fr;
  column-gap:16px;
  padding:0 0 30px;
}

.page-faq .faq-answer:before {
  content:"A";
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:var(--green-soft);
  color:var(--green-dark);
  font-size:15px;
  font-weight:900;
}

.page-faq .faq-answer p {
  margin:0;
  font-size:15px;
  font-weight:500;
  line-height:2;
  color:var(--text);
}

.page-faq .faq-answer .text-link {
  grid-column:2;
  margin-top:14px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding-bottom:4px;
  border-bottom:1px solid var(--green);
  color:var(--green-dark);
  font-weight:900;
  font-size:13px;
}

.page-faq .faq-answer .text-link:after {
  content:"→";
}

.page-faq .faq-note {
  margin:40px 0 0;
  padding:22px 26px;
  background:var(--cream);
  border-left:3px solid var(--green);
  font-size:14px;
  font-weight:500;
  line-height:1.95;
  color:var(--text);
}

@media (max-width:900px) {

  .page-faq .faq-section {
    padding:34px 0 56px;
  }
  .page-faq .faq-list summary {
    grid-template-columns:28px 1fr 18px;
    column-gap:12px;
    padding:18px 0;
    font-size:16px;
  }
  .page-faq .faq-list summary:before {
    width:28px;
    height:28px;
    font-size:13px;
  }
  .page-faq .faq-answer {
    grid-template-columns:28px 1fr;
    column-gap:12px;
    padding-bottom:22px;
  }
  .page-faq .faq-answer:before {
    width:28px;
    height:28px;
    font-size:13px;
  }
  .page-faq .faq-answer p {
    font-size:14px;
    line-height:1.9;
  }
  .page-faq .faq-note {
    padding:18px;
    font-size:13px;
  }

}
/* =========================================================
   トップページ：1画面1セクション（内側スクロール＋スナップ）
   ページ自体は動かさず、枠の中だけをスクロールさせる
   ========================================================= */












/* FV：写真の上にコピー（1画面） */








/* 3つの約束（しるべの想いと同じ画面） */
















/* セクション内に入れ子にしたブロック（数字・ご依頼の流れ）は余白だけ整える */






/* 写真は画面の高さに合わせて収める */








/* 横スライドのドット（スマホのみ表示） */


/* 上部のスクロール進捗バー */




/* 右側のセクション移動ドット */












/* セクションに入るたび、中身が順に浮かび上がる（出入りで再生） */














/* スマホ */




/* PCで画面の高さが低い時（ノートPC）：1画面に収まるよう詰める */

@media (max-width:900px) {
  .page-contact .edp-head h1 {
    font-size:26px;
  }
}

/* サービス紹介：360px級の小さいスマホだけH1をさらに一段下げる（2行維持） */
@media (max-width:370px) {
  .page-service .edp-head h1 {
    font-size:20px;
  }
  .page-works .edp-case-body>p {
    font-size:13px;
  }
}

