
.nd-service-document { display:block; width:100%; max-width:none; padding:0; margin:0; font-size:16px; }
.nd-service-document :where(h1,h2,h3,h4) { border:0; border-radius:0; padding:0; background:none; box-shadow:none; }
.nd-service-document :where(h1,h2,h3,h4)::before,
.nd-service-document :where(h1,h2,h3,h4)::after { content:none; }
.nd-service-document :where(p) { margin:0 0 1em; }

.nd-service-document {
    --brown:#6F4F2F;
    --dark:#1F2524;
    --body:#4B4A44;
    --bg:#F4EFE6;
    --card:#FFFDF7;
    --line:#D8CDBB;
    --green:#7E9065;
    --green-deep:#5C6F49;
    --terracotta:#C17B52;
    --gold:#BD9A5C;
    --blush:#EAD2C5;
    --mint:#DCE6D0;
    --sand:#F0E1C4;
  }
.nd-service-document * {box-sizing:border-box;}
.nd-service-document {
    margin:0;
    color:var(--body);
    line-height:1.9;
    font-family:'Noto Sans JP',sans-serif;
    background-color:var(--bg);
    background-repeat:no-repeat;
    background-image:
      radial-gradient(760px 620px at 18% 5%,  rgba(193,123,82,.14), transparent 70%),
      radial-gradient(820px 680px at 86% 13%, rgba(126,144,101,.17), transparent 70%),
      radial-gradient(820px 680px at 14% 32%, rgba(126,144,101,.13), transparent 70%),
      radial-gradient(760px 620px at 88% 45%, rgba(193,123,82,.12), transparent 70%),
      radial-gradient(820px 680px at 16% 59%, rgba(234,210,197,.32), transparent 70%),
      radial-gradient(760px 620px at 86% 71%, rgba(126,144,101,.15), transparent 70%),
      radial-gradient(760px 620px at 20% 86%, rgba(189,154,92,.14), transparent 70%),
      radial-gradient(820px 680px at 90% 97%, rgba(126,144,101,.13), transparent 70%);
  }
.nd-service-document h1,
.nd-service-document h2,
.nd-service-document h3,
.nd-service-document h4 {
    font-family:'Noto Serif JP',serif;
    color:var(--dark);
    margin:0;
    font-weight:700;
  }
.nd-service-document .eyebrow {
    font-size:14.5px;
    letter-spacing:.16em;
    color:var(--brown);
  }
.nd-service-document .eyebrow.c-green { color:var(--green-deep); }
.nd-service-document .eyebrow.c-terracotta { color:var(--terracotta); }
.nd-service-document .br-sp { display:none; }
  @media (max-width:800px){
.nd-service-document .br-sp { display:inline; }
  }
.nd-service-document .br-pc { display:inline; }
  @media (max-width:800px){
.nd-service-document .br-pc { display:none; }
  }
.nd-service-document .ph {
    display:flex;
    align-items:center;
    justify-content:center;
    color:#9c9280;
    font-size:13px;
    letter-spacing:.05em;
    border-radius:3px;
  }
.nd-service-document .ph.ph-outline {
    background:#E7E0D2;
    border:1px dashed #C9BCA2;
  }
.nd-service-document .ph.tint-a { background:var(--blush); color:#8a6a56; }
.nd-service-document .ph.tint-b { background:var(--mint); color:#56664a; }
.nd-service-document .ph.tint-c { background:var(--sand); color:#8a7446; }
.nd-service-document .ph.rounded { border-radius:10px; }
.nd-service-document .service-image {
    display:block;
    width:100%;
    max-width:100%;
    height:auto;
    object-fit:cover;
}
.nd-service-document .inner { max-width:1040px; margin:0 auto; padding:0 24px; position:relative; }
.nd-service-document .inner--read { max-width:620px; margin:0 auto; padding:0 24px; position:relative; }
.nd-service-document .reveal {
    opacity:0;
    transform:translateY(28px);
    filter:blur(6px);
    transition:opacity 1s cubic-bezier(.16,1,.3,1), transform 1s cubic-bezier(.16,1,.3,1), filter 1s cubic-bezier(.16,1,.3,1);
  }
.nd-service-document .reveal.in-view { opacity:1; transform:translateY(0); filter:blur(0); }
  @media (prefers-reduced-motion:reduce){
.nd-service-document .reveal { transition:none; opacity:1; transform:none; filter:none; }
  }
.nd-service-document .section-head .rule {
    width:40px; height:1px; background:var(--line);
    margin:18px auto 0; transform:scaleX(0); transform-origin:center;
    transition:transform 1s cubic-bezier(.16,1,.3,1); transition-delay:.3s;
  }
.nd-service-document .section-head.in-view .rule { transform:scaleX(1); }
.nd-service-document .section-head h2 { font-size:30px; margin-top:12px; line-height:1.6; }
.nd-service-document .ph-wrap { overflow:hidden; border-radius:3px; }
.nd-service-document .ph-wrap .ph { transition:transform .6s cubic-bezier(.16,1,.3,1); }
.nd-service-document .ph-wrap:hover .ph { transform:scale(1.035); }
.nd-service-document .ph-wrap .service-image { transition:transform .6s cubic-bezier(.16,1,.3,1); }
.nd-service-document .ph-wrap:hover .service-image { transform:scale(1.035); }
.nd-service-document .tier-badge {
    display:inline-block;
    font-family:'Noto Serif JP',serif;
    font-size:14px;
    letter-spacing:.12em;
    font-weight:700;
    color:#fff;
    padding:6px 15px;
    margin-bottom:14px;
    border-radius:2px;
  }
.nd-service-document .tier-badge.gold { background:var(--gold); }
.nd-service-document .tier-badge.sage { background:var(--green); }
.nd-service-document .tier-badge.terracotta { background:var(--terracotta); }
.nd-service-document .hero-banner { width:100%; position:relative; }
.nd-service-document .hero-banner .ph {
    width:100%;
    height:min(78vh,620px);
    border-radius:0;
  }
.nd-service-document .hero-banner .service-image {
    width:100%;
    height:min(78vh,620px);
    object-position:center;
}
.nd-service-document .hero-banner::after {
    content:'';
    position:absolute;
    left:0; right:0; bottom:0;
    height:140px;
    background:linear-gradient(to bottom, rgba(244,239,230,0), var(--bg));
    pointer-events:none;
  }
.nd-service-document .hero { padding:56px 0 0; position:relative; }
.nd-service-document .hero .eyebrow { text-align:center; margin-bottom:18px; }
.nd-service-document .hero h1 {
    font-size:44px;
    line-height:1.55;
    text-align:center;
    max-width:760px;
    margin:0 auto;
  }
.nd-service-document .lede { padding:76px 0 0; }
.nd-service-document .lede .inner--read { max-width:760px; text-align:center; }
.nd-service-document .lede p { font-size:16.5px; line-height:2; }
.nd-service-document .lede .nowrap { white-space:nowrap; }
.nd-service-document .lede p + p { margin-top:22px; }
.nd-service-document .why { padding:112px 0 0; position:relative; overflow:hidden; }
.nd-service-document .why::before {
    content:'';
    position:absolute;
    top:-130px; right:-170px;
    width:440px; height:440px;
    border:1px solid rgba(126,144,101,.18);
    border-radius:50%;
    pointer-events:none;
  }
.nd-service-document .why > .inner > .section-head { text-align:center; margin-bottom:70px; }
.nd-service-document .why-row {
    display:grid;
    grid-template-columns:0.95fr 1.05fr;
    gap:48px;
    align-items:center;
    margin-bottom:80px;
  }
.nd-service-document .why-row:last-child { margin-bottom:0; }
.nd-service-document .why-row.rev .ph-wrap { order:2; }
.nd-service-document .why-row.rev .why-text { order:1; }
.nd-service-document .why-row .ph { aspect-ratio:4/3; width:100%; }
.nd-service-document .why-row .service-image { height:auto; aspect-ratio:4/3; }
.nd-service-document .why-text .idx {
    font-family:'Noto Serif JP',serif;
    font-size:13.5px;
    color:var(--green-deep);
    letter-spacing:.1em;
    margin-bottom:14px;
    display:flex;
    align-items:center;
    gap:12px;
  }
.nd-service-document .why-text .idx::after {
    content:'';
    flex:0 0 auto;
    width:26px; height:1px;
    background:var(--green-deep);
    opacity:.5;
  }
.nd-service-document .why-text h3 { font-size:21px; line-height:1.6; margin-bottom:14px; }
.nd-service-document .why-text p { font-size:16px; margin:0; }
.nd-service-document .why-text .nowrap { white-space:nowrap; }
.nd-service-document .lineup { padding:124px 0 124px; }
.nd-service-document .lineup .section-head { text-align:center; margin-bottom:56px; }
.nd-service-document .lineup .lead { text-align:center; max-width:540px; margin:0 auto 60px; font-size:15.5px; }
.nd-service-document .lineup-row {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:32px;
  }
.nd-service-document .lineup-item .ph { aspect-ratio:4/3; width:100%; margin-bottom:18px; }
.nd-service-document .lineup-item h3 { font-size:17px; margin-bottom:8px; }
.nd-service-document .lineup-item p { font-size:14px; margin:0 0 10px; color:var(--body); }
.nd-service-document .lineup-item .spec-mini { font-size:13px; color:var(--brown); font-weight:500; letter-spacing:.01em; }
.nd-service-document .lineup-row .lineup-item:nth-child(1) { transition-delay:0s; }
.nd-service-document .lineup-row .lineup-item:nth-child(2) { transition-delay:.1s; }
.nd-service-document .lineup-row .lineup-item:nth-child(3) { transition-delay:.2s; }
.nd-service-document .flow { padding:124px 0; }
.nd-service-document .flow .section-head { text-align:center; margin-bottom:64px; }
.nd-service-document .flow-grid {
    display:grid;
    grid-template-columns:1fr auto 1fr auto 1fr;
    align-items:start;
    column-gap:10px;
    row-gap:48px;
    max-width:860px;
    margin:0 auto;
  }
.nd-service-document .flow-card { position:relative; }
.nd-service-document .flow-card .ph-box { position:relative; margin-bottom:16px; }
.nd-service-document .flow-card .ph { width:100%; aspect-ratio:4/3; }
.nd-service-document .flow-card .service-image { width:100%; height:auto; aspect-ratio:4/3; }
.nd-service-document .flow-card .step-badge {
    position:absolute;
    top:10px; left:10px;
    background:rgba(255,253,247,.94);
    padding:5px 13px;
    font-family:'Noto Serif JP',serif;
    font-size:13px;
    letter-spacing:.08em;
    color:var(--dark);
    border-radius:3px;
    z-index:2;
  }
.nd-service-document .flow-card h3 { font-size:17px; margin-bottom:8px; }
.nd-service-document .flow-card p { font-size:13.5px; margin:0; line-height:1.75; }
.nd-service-document .flow-card .nowrap { white-space:nowrap; }
.nd-service-document .flow-grid .flow-card:nth-child(1) { transition-delay:0s; }
.nd-service-document .flow-grid .flow-card:nth-child(3) { transition-delay:.1s; }
.nd-service-document .flow-grid .flow-card:nth-child(5) { transition-delay:.2s; }
.nd-service-document .flow-arrow {
    display:flex;
    align-items:center;
    justify-content:center;
    padding-top:100px;
    color:var(--green);
    font-size:26px;
    opacity:.8;
  }
.nd-service-document .flow-arrow .arrow-down { display:none; }
.nd-service-document .experience {
    padding:104px 0;
    background:linear-gradient(135deg,#55402A,#6F4F2F 55%,#8C6B45);
    position:relative;
    overflow:hidden;
  }
.nd-service-document .experience::before {
    content:'';
    position:absolute;
    top:-110px; left:-110px;
    width:340px; height:340px;
    border:1px solid rgba(243,230,205,.14);
    border-radius:50%;
    pointer-events:none;
  }
.nd-service-document .experience-grid {
    display:grid;
    grid-template-columns:0.9fr 1.1fr;
    gap:56px;
    align-items:center;
    max-width:920px;
    margin:0 auto;
    position:relative;
  }
.nd-service-document .experience-photo .ph { width:100%; aspect-ratio:4/3; }
.nd-service-document .experience-photo .service-image { width:100%; height:auto; aspect-ratio:4/3; }
.nd-service-document .experience-text { text-align:left; }
.nd-service-document .experience-text .eyebrow { color:#E0C8A3; margin-bottom:22px; display:block; }
.nd-service-document .experience-text h2 { color:#FBF4E8; font-size:24px; line-height:1.7; margin:0 0 20px; }
.nd-service-document .experience-text p { color:#E6D9C3; font-size:15px; max-width:420px; margin:0 0 14px; }
.nd-service-document .experience-text p.note-sm { font-size:12.5px; color:#CBB796; line-height:1.8; margin-bottom:0; }
.nd-service-document .cta { padding:114px 0 124px; text-align:center; position:relative; overflow:hidden; }
.nd-service-document .cta::before {
    content:'';
    position:absolute;
    bottom:-150px; left:50%;
    transform:translateX(-50%);
    width:560px; height:560px;
    border:1px solid rgba(111,79,47,.12);
    border-radius:50%;
    pointer-events:none;
  }
.nd-service-document .cta h2 { font-size:28px; margin:14px 0 18px; }
.nd-service-document .cta p { font-size:15.5px; max-width:480px; margin:0 auto 34px; }
.nd-service-document .cta-buttons {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    flex-wrap:wrap;
  }
.nd-service-document .cta a.btn {
    display:inline-block;
    background:var(--brown);
    color:#fff;
    font-size:16px;
    font-weight:500;
    text-decoration:none;
    padding:17px 40px;
    border-radius:999px;
    letter-spacing:.04em;
    box-shadow:0 14px 30px -16px rgba(111,79,47,.55);
    transition:transform .4s cubic-bezier(.16,1,.3,1), box-shadow .4s cubic-bezier(.16,1,.3,1);
  }
.nd-service-document .cta a.btn:hover { transform:translateY(-2px); box-shadow:0 18px 34px -14px rgba(111,79,47,.6); }
.nd-service-document .cta a.btn.outline {
    background:transparent;
    color:var(--brown);
    border:1.5px solid var(--brown);
    box-shadow:none;
    padding:15.5px 38.5px;
  }
.nd-service-document .cta a.btn.outline:hover { background:rgba(111,79,47,.06); box-shadow:none; }

  @media (max-width:800px){
.nd-service-document .hero-banner .ph { height:52vh; }
.nd-service-document .hero-banner .service-image { height:52vh; }
.nd-service-document .hero h1 { font-size:30px; }
.nd-service-document .why-row { grid-template-columns:1fr; gap:22px; margin-bottom:56px; }
.nd-service-document .why-row.rev .ph-wrap { order:0; }
.nd-service-document .why-row.rev .why-text { order:0; }
.nd-service-document .lineup-row { grid-template-columns:1fr; gap:36px; }
.nd-service-document .flow-grid { grid-template-columns:1fr; row-gap:40px; }
.nd-service-document .flow-arrow { padding-top:0; margin:-6px 0; }
.nd-service-document .flow-arrow .arrow-right { display:none; }
.nd-service-document .flow-arrow .arrow-down { display:inline; }
.nd-service-document .flow-card .ph-box {
      margin-left:calc(50% - 50vw);
      margin-right:calc(50% - 50vw);
      margin-bottom:14px;
    }
.nd-service-document .flow-card .ph { border-radius:0; }
.nd-service-document .flow-card .service-image { border-radius:0; }
.nd-service-document .flow-card .step-badge {
      top:14px; left:14px;
      font-size:15px;
      padding:7px 18px;
    }
.nd-service-document .flow-card h3,
.nd-service-document .flow-card p { padding:0 6px; }
.nd-service-document .experience-grid { grid-template-columns:1fr; gap:28px; text-align:center; }
.nd-service-document .experience-text { text-align:center; }
.nd-service-document .experience-text p { margin:0 auto 14px; }
.nd-service-document .cta-buttons { flex-direction:column; gap:14px; }
.nd-service-document .cta a.btn { width:100%; max-width:320px; }
  }
