:root{
  --bg:#e9e1d2;
  --paper:#ffffff;
  --ink:#2f352f;
  --muted:#6d756d;
  --line:#d7cdbb;
  --green:#7d8e63;
  --green-dark:#5f714c;
  --green-soft:#edf2e7;
  --beige:#f0e8d8;
  --navy:#193248;
  --navy-deep:#102536;
  --orange:#dc7a32;
  --orange-dark:#bc5d1f;
  --orange-soft:#fff0e3;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  margin:0;
  background:
    radial-gradient(circle at 14% 18%,rgba(255,255,255,.42) 0 1px,transparent 1.5px),
    radial-gradient(circle at 78% 72%,rgba(93,78,52,.07) 0 1px,transparent 1.5px),
    linear-gradient(115deg,rgba(255,255,255,.16),transparent 44%),
    var(--bg);
  background-size:23px 23px,31px 31px,100% 100%,auto;
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  font-size:18px;
  line-height:1.9;
}
button,a{font:inherit}

.hero{
  min-height:auto;
  padding:42px 20px 30px;
  text-align:center;
  background:
    radial-gradient(circle at 18% 22%,rgba(255,255,255,.45) 0 1px,transparent 1.5px) 0 0/25px 25px,
    linear-gradient(180deg,#e9dfcf 0%,#f3ecdf 100%);
  border-bottom:1px solid var(--line);
}
.hero-inner{
  position:relative;
  isolation:isolate;
  display:flex;
  flex-direction:column;
  max-width:860px;
  margin:auto;
  padding:clamp(32px,5vw,56px);
  background:var(--paper);
  border:1px solid rgba(166,150,122,.42);
  border-top:7px solid var(--orange);
  box-shadow:
    7px 8px 0 #f8f2e7,
    -5px 14px 0 #eee4d3,
    0 20px 44px rgba(74,61,40,.15),
    0 2px 4px rgba(74,61,40,.08);
}
.hero-inner::before,.hero-inner::after{
  display:none;
}
.brand{
  order:1;
  align-self:center;
  display:inline-block;
  font-size:12px;
  letter-spacing:.22em;
  color:#fff;
  background:#4d5746;
  padding:7px 13px;
  font-weight:700;
  margin-bottom:18px;
}
h1{
  order:3;
  font-size:clamp(34px,6vw,58px);
  line-height:1.3;
  margin:0 0 18px;
  color:#30372f;
  font-weight:850;
  letter-spacing:-.025em;
}
.key-profit{color:var(--orange-dark)}
.key-stage{
  color:#4f6045;
  text-decoration:underline;
  text-decoration-color:rgba(220,122,50,.55);
  text-decoration-thickness:.14em;
  text-underline-offset:.13em;
}
.hero-question{
  display:block;
  margin-top:20px;
  color:#4f584e;
  font-size:clamp(21px,3vw,28px);
  font-weight:750;
  line-height:1.5;
  letter-spacing:0;
}
.hero-lead{
  order:5;
  max-width:680px;
  margin:0 auto 28px;
  color:var(--muted);
  font-size:20px;
}
.hero-visual{
  order:4;
  width:min(100%,560px);
  margin:4px auto 28px;
  padding:14px 18px 10px;
  border-top:1px solid rgba(125,142,99,.24);
  border-bottom:1px solid rgba(125,142,99,.24);
}
.b2b-label{
  order:2;
  margin:0 auto 14px;
  color:var(--orange-dark);
  font-size:12px;
  letter-spacing:.12em;
  font-weight:800;
}
.hero-visual svg{display:block;width:100%;height:auto}
.hero-inner>.choice-grid{order:6}
.hero-inner>.selected-note{order:7}

main{
  max-width:880px;
  margin:auto;
  padding:0 18px 100px;
}
.section{
  position:relative;
  isolation:isolate;
  margin-top:30px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:3px;
  padding:clamp(26px,5vw,48px);
  box-shadow:
    7px 8px 0 #f4ecde,
    0 15px 34px rgba(72,58,36,.09),
    0 2px 4px rgba(72,58,36,.05);
}
.section::before{
  display:none;
}
.section.first-after-hero{margin-top:22px}

.reveal{display:none;animation:turnPaper .42s cubic-bezier(.2,.72,.25,1) both;transform-origin:50% 0}
.reveal.show{display:block}
@keyframes turnPaper{
  from{opacity:0;transform:perspective(900px) translateY(16px) rotateX(-3deg)}
  to{opacity:1;transform:perspective(900px) translateY(0) rotateX(0)}
}

.eyebrow{
  display:inline-block;
  padding:4px 8px;
  background:#59634f;
  color:#fff;
  font-size:10px;
  letter-spacing:.14em;
  font-weight:700;
  margin-bottom:11px;
}
h2{
  margin:0 0 18px;
  font-size:clamp(31px,5.2vw,45px);
  line-height:1.5;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  font-weight:850;
  color:#30372f;
  letter-spacing:-.02em;
}
.service-name{
  margin:-3px 0 27px;
  color:var(--route,var(--green));
  font-size:clamp(24px,4vw,34px);
  line-height:1.35;
  font-weight:900;
  letter-spacing:.01em;
}
#final-cta h2{
  font-size:clamp(34px,6vw,58px);
  line-height:1.3;
  margin-bottom:24px;
}
#final-cta .customize-copy{
  font-size:clamp(18px,2.8vw,24px);
  line-height:1.85;
  font-weight:800;
}
h3{
  margin:30px 0 14px;
  font-size:24px;
}
p{margin:0 0 20px}
.section>p,.hero-lead,.concierge-speech p{
  line-height:1.9;
  background-image:repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent calc(1.9em - 1px),
    rgba(151,137,113,.13) calc(1.9em - 1px),
    rgba(151,137,113,.13) 1.9em
  );
  background-position:0 1px;
}

.choice-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:26px;
}
.choice-btn{
  position:relative;
  width:100%;
  border:2px solid #d7d2c9;
  border-bottom-color:#aaa79f;
  background:linear-gradient(180deg,#fff 0%,#fbfaf7 100%);
  color:var(--ink);
  border-radius:4px;
  padding:17px 48px 17px 16px;
  cursor:pointer;
  font-weight:700;
  font-size:18px;
  text-align:left;
  box-shadow:0 5px 0 #d3cec5,0 10px 20px rgba(31,48,60,.07);
  transition:.18s ease;
}
.choice-btn::after{
  content:"→";
  position:absolute;
  right:17px;
  top:50%;
  transform:translateY(-50%);
  color:var(--orange-dark);
  font-size:24px;
  line-height:1;
}
.choice-btn.with-icon{
  display:flex;
  align-items:center;
  gap:12px;
}
.choice-btn.center.with-icon{justify-content:center;text-align:left}
.choice-copy{display:block;line-height:1.5}
.choice-stage{
  display:block;
  width:max-content;
  margin:0 0 7px;
  padding:3px 10px;
  border-radius:999px;
  background:var(--orange-soft);
  color:var(--orange-dark);
  font-size:14px;
  font-weight:900;
  letter-spacing:.08em;
}
.choice-title{display:block}
.choice-copy small{display:block;margin-top:5px;color:var(--muted);font-size:13px;font-weight:600;line-height:1.5}
.choice-icon{
  flex:0 0 42px;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(125,142,99,.10);
  color:var(--green-dark);
}
.choice-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.choice-btn:hover{
  background:var(--orange-soft);
  border-color:#d59563;
  transform:translateY(-2px);
  box-shadow:0 7px 0 #d6a77f,0 14px 25px rgba(31,48,60,.12);
}
.choice-btn:active{transform:translateY(3px);box-shadow:0 2px 0 #bd9c82,0 5px 12px rgba(31,48,60,.08)}
.choice-btn.center{text-align:center}
.choice-btn.selected{
  background:#536047;
  border-color:#3d4936;
  color:#fff;
  box-shadow:0 4px 0 #071722,0 9px 18px rgba(16,37,54,.2);
}
.choice-btn.selected::after{content:"✓";color:#fff}
.choice-btn.selected .choice-icon{background:rgba(255,255,255,.14);color:#fff}
.choice-btn.selected .choice-stage{background:rgba(255,255,255,.16);color:#fff}
.choice-btn.selected .choice-copy small{color:rgba(255,255,255,.72)}
.choice-btn.hidden-choice{display:none}

.selected-note{
  display:none;
  margin:14px 0 0;
  padding:8px 12px;
  border:1px solid rgba(125,142,99,.34);
  border-left:4px solid var(--green);
  background:#fff;
  text-align:left;
  box-shadow:0 3px 9px rgba(70,60,40,.035);
}
.selected-note.show{display:block;animation:turnPaper .32s ease both}
.selected-note small{display:block;margin-bottom:1px;color:var(--muted);font-size:10px;letter-spacing:.1em;font-weight:700}
.selected-note strong{font-size:13px}

/* Herb風：人物＋吹き出しだけを独立 */

.demo-box{
  margin-top:22px;
  padding:21px;
  border-radius:3px;
  background:var(--beige);
  border:1px solid rgba(166,150,122,.28);
  box-shadow:inset 0 1px rgba(255,255,255,.55);
}
.service-demo{
  --demo-accent:var(--green);
  margin:26px 0;
  overflow:hidden;
  border:1px solid #c8d0d8;
  background:#fff;
  box-shadow:0 11px 25px rgba(35,48,57,.09);
}
.demo-browser{display:flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-bottom:1px solid #c8d0da;background:#e0e5eb}
.demo-browser i{width:8px;height:8px;border-radius:50%;background:#a8b2bf}
.demo-browser i:first-child{background:#b97872}.demo-browser i:nth-child(2){background:#c7a55d}.demo-browser i:nth-child(3){background:#789a81}
.demo-browser span{margin-left:auto;color:#687483;font-size:9px;font-weight:750;letter-spacing:.04em}
.demo-site-head{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:55px;padding:10px 19px;border-bottom:3px solid var(--demo-accent);background:#fff}
.demo-site-head b{color:var(--navy);font-size:18px;letter-spacing:.04em}.demo-site-head small{color:#707986;font-size:10px;font-weight:750}
.demo-screen{padding:24px;background:#fff}.demo-progress{display:flex;gap:5px;margin-bottom:17px}.demo-progress span{width:27px;height:4px;background:#dfe4e9}.demo-progress span:first-child{width:52px;background:var(--demo-accent)}
.demo-talk{display:flex;align-items:flex-start;gap:12px}.demo-talk>img,.demo-result>img{flex:0 0 54px;width:54px;height:54px;border:3px solid #fff;border-radius:50%;background:#eef1f4;box-shadow:0 5px 14px rgba(24,42,68,.17);object-fit:cover;object-position:50% 18%}
.demo-question{position:relative;flex:1;padding:14px 17px;border:1px solid #d3d9df;border-radius:3px 17px 17px 17px;background:#fff;color:var(--ink);font-size:18px;font-weight:850;line-height:1.65}
.demo-options{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:17px}.demo-options button{position:relative;min-height:52px;padding:10px 29px 10px 12px;border:1px solid #c7d0da;border-bottom:3px solid #9ba8b6;border-radius:2px;background:#fff;color:var(--ink);font-size:14px;font-weight:800;text-align:left;cursor:pointer;transition:.16s ease}.demo-options button i{position:absolute;right:12px;top:50%;color:var(--demo-accent);font-size:21px;font-style:normal;transform:translateY(-50%)}
.demo-options button:hover,.demo-options button.is-active{border-color:var(--demo-accent);background:#f8f5ee;transform:translateY(-1px)}
.demo-result{display:flex;align-items:flex-start;gap:12px;margin-top:19px;color:var(--ink);font-weight:750}.demo-result>div{display:grid;grid-template-columns:1fr auto;flex:1;gap:4px 16px;padding:15px 18px;border-left:5px solid var(--demo-accent);background:var(--navy);color:#fff}.demo-result small,.demo-result strong{grid-column:1}.demo-result small{color:#e8cf9e;font-size:10px;font-weight:850;letter-spacing:.08em}.demo-result strong{font-size:16px;line-height:1.6}.demo-result span{grid-column:2;grid-row:1/3;align-self:center;padding:5px 9px;border:1px solid #ffffff52;color:#fff;font-size:11px}
.demo-result.is-show{animation:demoResult .26s ease}.demo-footnote{margin:0!important;padding:8px 15px;border-top:1px solid #d4dbe2;background:#f4f6f8;color:#717c88;font-size:9px;text-align:right}@keyframes demoResult{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.demo-matching{--demo-accent:#bf805d}.demo-matching .demo-site-head b,.demo-crosssell .demo-site-head b{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;color:#5f3b2b}.demo-matching .demo-screen{background:linear-gradient(135deg,#fff 0,#fff8f2 100%)}
.demo-crosssell{--demo-accent:#809568}.demo-crosssell .demo-screen{background:#fbfdf9}.demo-follow{--demo-accent:#619079}.demo-follow .demo-site-head{background:#f2f8f4}
.phone-demo{
  width:min(100%,360px);
  margin:26px auto 8px;
  padding:10px;
  border:1px solid #bbb4a8;
  border-radius:30px;
  background:#353a36;
  box-shadow:0 14px 28px rgba(49,48,40,.16);
}
.phone-screen{
  min-height:390px;
  padding:25px 18px 20px;
  border-radius:22px;
  background:#fff;
  text-align:left;
}
.phone-speaker{width:44px;height:4px;margin:-13px auto 22px;border-radius:10px;background:#a7aaa6}
.mini-kicker{color:var(--green-dark);font-size:10px;letter-spacing:.13em;font-weight:700}
.mini-title{margin:7px 0 16px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:21px;font-weight:700;line-height:1.55}
.mini-options{display:grid;gap:8px}
.mini-option{
  width:100%;
  padding:11px 12px;
  border:1px solid #d8cfbf;
  border-radius:7px;
  background:#fff;
  color:var(--ink);
  cursor:pointer;
  text-align:left;
  font-size:14px;
  font-weight:700;
}
.mini-option:hover,.mini-option.active{border-color:#b49c77;background:#f6ead7}
.mini-result{display:none;margin-top:14px;padding:13px;border-left:3px solid #d39b62;background:#fbf3e7;font-size:13px;line-height:1.7}
.mini-result.show{display:block;animation:turnPaper .28s ease both}
.mini-result strong{display:block;margin-bottom:4px;color:#8b5e32}
.mini-caption{text-align:center;color:var(--muted);font-size:12px;margin-top:10px}

.route-new{--route:#d39b62;--route-soft:#fbf1e4}
.route-existing{--route:#809568;--route-soft:#edf3e8}
.route-daily{--route:#7397a6;--route-soft:#eaf2f5}
.route-phone{--route:#637488;--route-soft:#e9edf2}
.section.route-new,.section.route-existing,.section.route-daily,.section.route-phone{border-top:4px solid var(--route)}
.section.route-new .eyebrow,.section.route-existing .eyebrow,.section.route-daily .eyebrow,.section.route-phone .eyebrow{color:var(--route)}
.section.route-new .demo-box,.section.route-existing .demo-box,.section.route-daily .demo-box,.section.route-phone .demo-box{background:var(--route-soft)}
.section.route-new .point,.section.route-existing .point,.section.route-daily .point,.section.route-phone .point{border-left-color:var(--route)}
.point{
  border-left:4px solid var(--green);
  padding-left:15px;
  margin:24px 0;
  font-weight:700;
}
.next-wrap{
  text-align:center;
  margin-top:32px;
}
.next-btn,.demo-link{
  display:inline-block;
  border:0;
  border-radius:999px;
  color:#fff;
  padding:15px 30px;
  font-weight:700;
  cursor:pointer;
  text-decoration:none;
}
.demo-link{background:linear-gradient(180deg,#e98a43,var(--orange-dark));box-shadow:0 5px 0 #8d4218,0 10px 20px rgba(118,59,22,.18)}
.demo-link:hover{transform:translateY(-2px);box-shadow:0 7px 0 #8d4218,0 14px 24px rgba(118,59,22,.24)}.demo-link:active{transform:translateY(3px);box-shadow:0 2px 0 #8d4218}
.next-btn{background:var(--navy);box-shadow:0 5px 0 #0b1b29,0 10px 20px rgba(16,37,54,.18)}
.next-btn:hover{transform:translateY(-2px);box-shadow:0 7px 0 #0b1b29,0 14px 24px rgba(16,37,54,.24)}.next-btn:active{transform:translateY(3px);box-shadow:0 2px 0 #0b1b29}
.preparing{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:12px;
  padding:13px 20px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  background:#f7f5ef;
  font-weight:700;
}
.preparing small{
  font-size:11px;
  padding:3px 8px;
  border-radius:999px;
  background:#e9e5dc;
}
.experience-now{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin:18px 0 4px;
  padding:16px 18px;
  border:1px solid #d3c5ae;
  border-radius:4px;
  background:#fffaf0;
  color:var(--ink);
  font-weight:700;
}
.experience-now svg{flex:0 0 24px;width:24px;height:24px;fill:none;stroke:#b97942;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.experience-now small{display:block;margin-top:3px;color:var(--muted);font-size:12px;font-weight:500}

.flow{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:8px;
  margin:28px 0;
}
.flow div{
  text-align:center;
  background:var(--green-soft);
  border-radius:14px;
  padding:16px 8px;
  font-size:13px;
  font-weight:700;
}
.system{
  text-align:center;
  background:#fff;
}
.system-title{
  font-size:clamp(45px,8vw,78px);
  font-weight:800;
  line-height:1.2;
  margin:10px 0 24px;
  font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
}
.timeline{margin:25px 0;padding:0;list-style:none;counter-reset:flow}
.timeline li{display:grid;grid-template-columns:55px 1fr 2fr;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);counter-increment:flow}
.timeline li::before{content:"0" counter(flow);color:var(--orange-dark);font-size:12px;font-weight:900}
.timeline li span{color:var(--muted)}
.price-main{display:grid;grid-template-columns:1fr auto;gap:4px 20px;padding:24px;border-top:4px solid var(--orange);background:var(--navy);color:#fff}
.price-main small,.price-main b{grid-column:1}.price-main strong{grid-row:1/3;grid-column:2;align-self:center;color:#f1c18f;font-size:30px}.price-main span{grid-column:1/-1;padding-top:8px;border-top:1px solid #ffffff36}
.price-options{display:grid;gap:1px;margin-top:12px;background:var(--line)}
.price-options div{display:flex;justify-content:space-between;gap:14px;padding:16px;background:#fff}.price-options strong{color:#8a5a2f;text-align:right}.price-note{color:var(--muted);font-size:12px}
.consult-cta-wrap{
  margin:30px 0 38px;
  text-align:center;
}
.consult-cta{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:82px;
  border-radius:999px;
  background:linear-gradient(180deg,#ed914a,var(--orange-dark));
  color:#fff;
  padding:18px 28px;
  text-decoration:none;
  font-size:clamp(21px,3vw,27px);
  font-weight:850;
  box-shadow:0 6px 0 #8d4218,0 13px 26px rgba(118,59,22,.22);
  transition:transform .18s ease,box-shadow .18s ease;
}
.consult-cta:hover{transform:translateY(-2px);box-shadow:0 8px 0 #8d4218,0 16px 30px rgba(118,59,22,.25)}
.consult-cta:active{transform:translateY(3px);box-shadow:0 3px 0 #8d4218}
.other-toggle{display:block;margin:18px auto 0;padding:7px 4px;border:0;border-bottom:1px solid #aeb8c4;background:transparent;color:var(--navy);font-size:13px;font-weight:800;cursor:pointer}
.other-toggle span{display:inline-block;min-width:18px;margin-left:6px;color:var(--orange-dark);font-size:18px}
.other-services{margin:20px auto 0;padding:20px;border:1px solid #d8cfbf;background:#f8f4ea}
.other-services>p{margin:0 0 10px;color:var(--muted);font-size:12px;font-weight:800}
.other-services>div{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.other-services button{padding:12px;border:1px solid #cfc5b4;background:#fff;color:var(--navy);font-size:13px;font-weight:800;cursor:pointer}
.other-services button:hover{border-color:var(--orange);background:var(--orange-soft)}

.route-map{
  margin:30px 0 8px;
  padding:24px;
  border:1px solid #d8cfbf;
  background:#f8f4ea;
  text-align:left;
}
.route-map-title{margin-bottom:4px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:22px;font-weight:700}
.route-map-lead{margin-bottom:20px;color:var(--muted);font-size:13px}
.route-stage{position:relative}
.route-stage+.route-stage{margin-top:25px}
.route-stage+.route-stage::before{content:"";position:absolute;left:50%;top:-25px;width:1px;height:25px;background:#cfc4b3}
.route-step{margin-bottom:8px;color:var(--muted);font-size:10px;letter-spacing:.12em;font-weight:700;text-align:center}
.route-options{display:grid;gap:8px}
.route-options.two{grid-template-columns:repeat(2,1fr)}
.route-options.four{grid-template-columns:repeat(4,1fr)}
.route-node{
  min-height:52px;
  padding:10px 8px;
  border:1px solid #d5ccbc;
  border-radius:5px;
  background:#fffdf7;
  color:#77766f;
  cursor:pointer;
  font-size:12px;
  font-weight:700;
  text-align:center;
  transition:.18s ease;
}
.route-node:hover{border-color:#9caa8d;color:var(--ink);transform:translateY(-1px)}
.route-node.active{border-color:var(--green-dark);background:var(--green-dark);color:#fff;box-shadow:0 4px 11px rgba(65,79,54,.18)}
.route-node.related{border-color:#b9c5ad;background:#edf2e8;color:#465442}
.route-node strong{display:block;font-size:15px;line-height:1.35}
.route-node small{display:block;margin-top:3px;font-size:10px;line-height:1.35;font-weight:600;opacity:.78}
.route-map-hint{margin:17px 0 0;text-align:center;color:var(--muted);font-size:12px}

.faq-block{
  margin:36px 0 8px;
  padding-top:30px;
  border-top:1px solid var(--line);
}
.faq-title{
  margin:0 0 8px;
  font-size:clamp(25px,4vw,34px);
  line-height:1.45;
  font-weight:850;
}
.faq-item{
  border:1px solid #d8cfbf;
  border-radius:5px;
  background:#fff;
  overflow:hidden;
}
.faq-item+.faq-item{margin-top:10px}
.faq-item summary{
  position:relative;
  padding:18px 54px 18px 20px;
  cursor:pointer;
  list-style:none;
  font-size:16px;
  line-height:1.55;
  font-weight:800;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"＋";
  position:absolute;
  right:20px;
  top:50%;
  transform:translateY(-50%);
  color:var(--green-dark);
  font-size:23px;
  line-height:1;
}
.faq-item[open] summary{background:var(--green-soft)}
.faq-item[open] summary::after{content:"−"}
.faq-answer{
  padding:17px 20px 20px;
  border-top:1px solid #e4ddcf;
  font-size:14px;
  line-height:1.85;
  font-weight:600;
}

.site-footer{
  max-width:880px;
  margin:0 auto 40px;
  padding:26px 30px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:12px;
}
.site-footer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 28px}
.site-footer h2{margin:0 0 6px;font-size:13px;line-height:1.5;color:var(--ink)}

/* 右側追従 */
.back-home{
  position:fixed;
  right:18px;
  top:auto;
  bottom:18px;
  transform:none;
  z-index:50;
  border:1px solid #bcc6ae;
  background:rgba(73,85,63,.96);
  color:#fff;
  border-radius:999px;
  padding:11px 14px;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(70,80,55,.12);
}
.floating-consult{
  position:fixed;right:0;top:50%;z-index:49;
  display:flex;align-items:center;gap:8px;
  writing-mode:vertical-rl;
  padding:18px 13px;border-radius:14px 0 0 14px;
  background:linear-gradient(180deg,#68785c,#4c5942);color:#fff;
  text-decoration:none;font-size:15px;font-weight:850;letter-spacing:.08em;
  box-shadow:0 8px 24px rgba(51,64,44,.25);
  opacity:0;pointer-events:none;transform:translate(100%,-50%);
  transition:.25s ease;
}
.floating-consult.show{opacity:1;pointer-events:auto;transform:translate(0,-50%)}
.floating-consult:hover{background:linear-gradient(180deg,#e98a43,var(--orange-dark))}

@media(max-width:1180px){
  .back-home{
    right:14px;
    top:auto;
    bottom:14px;
    transform:none;
  }
}

@media(max-width:760px){
  body{font-size:16.5px}
  .hero{padding:18px 12px 22px}
  .hero-inner{padding:30px 20px 34px}
  main{padding-left:12px;padding-right:12px}
  .section{margin-top:22px}
  .route-map{padding:20px 14px}
  .route-options.four{grid-template-columns:repeat(2,1fr)}
  .choice-grid{grid-template-columns:1fr}
  .choice-btn{font-size:17px}
  .choice-copy small{font-size:12.5px}
  .hero-lead{font-size:17px}
  .choice-btn.center.with-icon{justify-content:flex-start}
  .hero-visual{padding-left:0;padding-right:0}
  .flow{grid-template-columns:1fr 1fr}
  .timeline li{grid-template-columns:34px 1fr}.timeline li span{grid-column:2}.price-main{grid-template-columns:1fr}.price-main strong{grid-row:auto;grid-column:1}.price-options div{display:grid}.price-options strong{text-align:left}
  .demo-screen{padding:18px 14px}.demo-talk>img,.demo-result>img{flex-basis:46px;width:46px;height:46px}.demo-options{grid-template-columns:1fr}.demo-result>div{grid-template-columns:1fr}.demo-result span{grid-column:1;grid-row:auto}.other-services>div{grid-template-columns:1fr}
  .site-footer{margin-bottom:24px;padding:22px 20px}
  .site-footer-grid{grid-template-columns:1fr}
  .back-home{
    right:8px;
    top:auto;
    bottom:76px;
    transform:none;
    padding:10px 12px;
    font-size:12px;
  }
  .floating-consult,.floating-consult.show{
    top:auto;right:12px;bottom:14px;left:12px;
    justify-content:center;writing-mode:horizontal-tb;
    padding:13px 18px;border-radius:999px;
    transform:translateY(120%);
  }
  .floating-consult.show{transform:none}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{animation:none}
  .choice-btn{transition:none}
}
