:root{
  /* 参考LP（ihin-kizuna.jp）と同じカラーパレット */
  --c-yellow-bg:#fbfae1;
  --c-yellow-hl:#ffec47;
  --c-orange:#f37e00;
  --c-orange-d:#e95200;
  --c-green:#34b61b;
  --c-green-d:#31a83c;
  --c-green-l:#86e32a;
  --c-red:#e95200;
  --c-text:#3e322f;
  --c-text-l:#5a4d4a;
  --c-beige:#f7f4ec;
  --c-bg:#ffffff;
  --c-line:#e0d8cf;
  --font-jp:"游ゴシック",YuGothic,"ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN",Roboto,"Droid Sans","メイリオ",Meiryo,"ＭＳ Ｐゴシック",Helvetica,Arial,sans-serif;
  --font-num:"Roboto",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-font-smoothing:antialiased}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:var(--font-jp);color:var(--c-text);background:var(--c-bg);line-height:1.7;font-weight:400;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:opacity .2s}
a:hover{opacity:.85}
.num{font-family:var(--font-num);font-feature-settings:"tnum";letter-spacing:.01em}
.inner{max-width:1280px;margin:0 auto;padding:0 40px}
.em-mark{background:linear-gradient(transparent 65%,var(--c-yellow-hl) 0%);font-weight:700;padding:0 2px}

/* ===== Header (FV内ヘッダー) ===== */
.fv-header{padding:10px 0;background:var(--c-yellow-bg)}
.fv-header-inner{max-width:1280px;margin:0 auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{display:flex;align-items:center;gap:10px}
.logo-mark{width:56px;height:56px;background:var(--c-orange);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-weight:900;font-size:28px;border-radius:50%}
.logo-text{font-weight:900;font-size:17px;color:var(--c-text);line-height:1.2;letter-spacing:.02em}
.logo-text small{display:block;font-size:11px;color:var(--c-text-l);font-weight:500;margin-top:3px}
.fv-header ul{display:flex;align-items:center;gap:14px;list-style:none}
.fv-header .tel{display:flex;align-items:center;gap:10px}
.tel-ico{width:56px;height:56px;background:var(--c-green);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative}
.tel-ico .ico{width:24px;height:24px;color:#fff;stroke-width:2.5}
.tel-ico-label-old{display:none}
/* removed: now SVG icon used */
.tel-info{line-height:1.2}
.tel-info .num{font-size:26px;font-weight:700;color:var(--c-text);display:block}
.tel-info .time{font-size:10px;color:var(--c-text-l);display:block;margin-top:1px;font-weight:700}
.fv-header .contact .btn{background:linear-gradient(-135deg,var(--c-orange),var(--c-orange-d));color:#fff;padding:14px 22px;border-radius:50px;font-weight:900;font-size:14px;display:inline-flex;align-items:center;gap:6px;box-shadow:0 3px 0 #b83d1a}
.fv-header .contact .btn em{font-style:normal;background:var(--c-yellow-hl);color:var(--c-red);padding:2px 8px;border-radius:4px;font-size:12px;margin-left:4px}
@media(max-width:768px){
  .fv-header-inner{flex-wrap:wrap;justify-content:center;gap:10px}
  .logo-mark{width:42px;height:42px;font-size:20px}
  .logo-text{font-size:13px}
  .logo-text small{font-size:9px}
  .tel-ico{width:42px;height:42px;font-size:8px}
  .tel-info .num{font-size:18px}
  .fv-header .contact .btn{padding:10px 16px;font-size:12px}
}


/* MV装飾：雲・太陽 */
.mv-decor{position:absolute;inset:0;pointer-events:none;z-index:0}
.mv-decor .cloud{position:absolute;opacity:.95;filter:drop-shadow(0 4px 8px rgba(0,0,0,.08));animation:moveCloud linear infinite}
.mv-decor .cloud-1{top:6%;width:150px;animation-duration:45s;animation-delay:0s}
.mv-decor .cloud-2{top:18%;width:110px;animation-duration:38s;animation-delay:-10s}
.mv-decor .cloud-3{top:4%;width:170px;animation-duration:55s;animation-delay:-25s}
.mv-decor .cloud-4{top:26%;width:120px;animation-duration:42s;animation-delay:-18s}
.mv-decor .cloud-5{top:45%;width:100px;animation-duration:50s;animation-delay:-30s}
.mv-decor .sun{position:absolute;top:6%;right:6%;width:130px;animation:rotateSun 60s linear infinite;filter:drop-shadow(0 4px 12px rgba(245,183,0,.3))}
@keyframes moveCloud{0%{left:-20%}100%{left:120%}}
@keyframes rotateSun{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media(max-width:768px){
  .mv-decor .cloud{opacity:.7}
  .mv-decor .cloud-1{width:70px}
  .mv-decor .cloud-2{width:55px}
  .mv-decor .cloud-3{width:80px}
  .mv-decor .cloud-4{width:60px}
  .mv-decor .cloud-5{display:none}
  .mv-decor .sun{width:80px}
}

/* ===== Main Visual (FV) — 参考LP風 ===== */
.mv{background:var(--c-yellow-bg) url('../images/hero-bg.png') center bottom/100% auto no-repeat;padding:30px 0 60px;position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:max(calc(100vh - 76px),62vw)}
.mv::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--c-yellow-bg) 0%,rgba(251,250,225,.5) 50%,transparent 100%);pointer-events:none;z-index:0}
.mv-inner{max-width:1280px;margin:0 auto;padding:0 40px;position:relative;z-index:1;width:100%;flex:1;display:flex;flex-direction:column;justify-content:center}
.mv-box{display:grid;grid-template-columns:1.1fr .9fr;gap:0;align-items:center;min-height:auto;position:relative;width:100%;margin-bottom:8px}
.mv-text{position:relative;z-index:2;padding-top:0;text-align:center;padding-right:0}
.mv-ttl-01{display:inline-flex;align-items:center;gap:18px;color:var(--c-text);padding:0;font-size:24px;font-weight:900;margin-bottom:20px;background:none;border:none;box-shadow:none;line-height:1.5}
.mv-ttl-01 .bar-l,.mv-ttl-01 .bar-r{display:inline-block;width:3px;height:48px;background:var(--c-orange);position:relative}
.mv-ttl-01 .bar-l{transform:rotate(-18deg)}
.mv-ttl-01 .bar-r{transform:rotate(18deg)}
.mv-ttl-01 .bar-l::before,.mv-ttl-01 .bar-r::before{content:"";position:absolute;left:-8px;width:3px;height:36px;background:var(--c-orange)}
.mv-ttl-01 .bar-l::before{top:6px;transform:rotate(0deg)}
.mv-ttl-01 .bar-r::before{top:6px;left:8px;transform:rotate(0deg)}
.mv-ttl-01::before,.mv-ttl-01::after{content:"";width:18px;height:24px;border-top:3px solid var(--c-orange);border-bottom:3px solid var(--c-orange)}
.mv-ttl-01::before{border-left:3px solid var(--c-orange);border-top-left-radius:8px;border-bottom-left-radius:8px}
.mv-ttl-01::after{border-right:3px solid var(--c-orange);border-top-right-radius:8px;border-bottom-right-radius:8px}
.mv h1{font-size:48px;font-weight:900;line-height:1.45;letter-spacing:.01em;color:var(--c-text);margin-bottom:24px;text-align:center}
.mv h1 .line{display:block;white-space:nowrap}
.mv h1 strong{display:inline-block;white-space:nowrap}
.mv h1 em{font-style:normal;color:var(--c-orange);font-weight:900;background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);padding:0 6px}
.mv h1 strong{color:var(--c-red);font-weight:900;display:inline-block;padding:0;background:none;box-shadow:none;font-size:1em;margin-top:0;white-space:nowrap}
.mv-sub{font-size:15px;line-height:1.9;color:var(--c-text);font-weight:500;max-width:520px;background:rgba(255,255,255,.7);padding:12px 22px;border-radius:8px;backdrop-filter:blur(4px);margin:0 auto;display:inline-block}
.mv-pic{position:relative;align-self:end;margin-right:-20px}
.mv-pic img{width:100%;height:auto;display:block;border-radius:0;max-width:560px;max-height:68vh;object-fit:contain;object-position:bottom;filter:drop-shadow(0 12px 20px rgba(0,0,0,.15)) drop-shadow(0 4px 8px rgba(0,0,0,.08))}
.mv-pic::after{content:"";position:absolute;bottom:-10px;left:10%;right:10%;height:30px;background:radial-gradient(ellipse,rgba(0,0,0,.25),transparent 70%);filter:blur(8px);z-index:-1;border-radius:50%}
.satisfaction{position:absolute;top:20px;left:-50px;width:180px;height:180px;background:var(--c-yellow-hl);border:6px solid #fff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-weight:900;line-height:1.2;transform:rotate(-8deg);color:var(--c-text);z-index:3;box-shadow:0 0 0 4px rgba(255,236,71,.3),0 0 30px rgba(255,200,0,.4),0 0 60px rgba(255,200,0,.25),0 8px 24px rgba(0,0,0,.2);animation:glowPulse 2.5s ease-in-out infinite}
.satisfaction::before{content:"";position:absolute;top:-8px;right:-8px;width:24px;height:24px;background:radial-gradient(circle,#fff 30%,#ffec47 70%,transparent 100%);border-radius:50%;animation:sparkle 2s ease-in-out infinite;pointer-events:none}
.satisfaction::after{content:"";position:absolute;bottom:-6px;left:-6px;width:18px;height:18px;background:radial-gradient(circle,#fff 30%,#ffec47 70%,transparent 100%);border-radius:50%;animation:sparkle 2s ease-in-out infinite .8s;pointer-events:none}
@keyframes sparkle{0%,100%{transform:scale(.6);opacity:.4}50%{transform:scale(1.2);opacity:1}}
@keyframes glowPulse{0%,100%{box-shadow:0 0 0 4px rgba(255,236,71,.3),0 0 30px rgba(255,200,0,.4),0 0 60px rgba(255,200,0,.25),0 8px 24px rgba(0,0,0,.2)}50%{box-shadow:0 0 0 6px rgba(255,236,71,.45),0 0 50px rgba(255,200,0,.6),0 0 90px rgba(255,200,0,.4),0 8px 24px rgba(0,0,0,.2)}}
@keyframes lightFlicker{0%,100%{opacity:.9;transform:translateY(-50%) scale(1)}50%{opacity:1;transform:translateY(-50%) scale(1.05)}}
.satisfaction .top{font-size:11px;letter-spacing:.05em;color:var(--c-text)}
.satisfaction .big{font-family:var(--font-num);font-size:58px;color:var(--c-red);margin:2px 0;line-height:.9;font-weight:900}
.satisfaction .big small{font-size:24px}
.satisfaction .bot{font-size:10px;color:var(--c-text)}

/* 5ポイント横並び */
.mv-point{margin:0 auto;display:grid;grid-template-columns:repeat(5,1fr);gap:18px;clear:both;grid-column:1/-1;max-width:1100px;padding:0 20px;position:relative;z-index:5}
.mv-point li{background:linear-gradient(180deg,var(--c-orange),var(--c-orange-d));border:none;color:#fff;border-radius:50%;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:14px 10px;list-style:none;box-shadow:0 8px 0 #b83d1a,0 14px 24px rgba(233,82,0,.28);position:relative;min-height:160px;max-height:180px}
.mv-point li::before{content:attr(data-no);position:absolute;top:-8px;left:-4px;background:#fff;color:var(--c-orange);width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-size:14px;font-weight:900;border:2px solid var(--c-orange);box-shadow:0 2px 6px rgba(0,0,0,.2)}
.mv-point li strong{display:block;font-size:32px;font-weight:900;color:#fff;line-height:1.1;margin-bottom:6px;letter-spacing:.02em}
.mv-point li span{font-size:14px;font-weight:900;color:#fff;line-height:1.35}

@media(max-width:1100px){
  .mv-box{grid-template-columns:1fr 400px;gap:14px;min-height:auto}
  .mv-pic img{max-width:400px}
}
@media(max-width:900px){
  .mv-box{grid-template-columns:1fr 320px;gap:14px;min-height:auto}
  .mv h1{font-size:38px;line-height:1.4}
  .mv-pic img{max-width:320px}
  .satisfaction{width:130px;height:130px;left:-10px}
  .satisfaction .big{font-size:42px}
}
@media(max-width:768px){
  .mv{padding:30px 0 0;min-height:auto;background-size:200% auto;background-position:center bottom}
  .mv-inner{padding:0 20px}
  .mv-box{grid-template-columns:1fr;gap:20px;min-height:auto}
  .mv-text{padding-top:0;text-align:center}
  .mv h1{font-size:26px;line-height:1.5}
  .mv h1 strong{display:inline-block}
  .mv-ttl-01{font-size:15px;margin:0 auto 16px}
  .mv-ttl-01::before,.mv-ttl-01::after{width:12px;height:16px}
  .mv-sub{font-size:13px;max-width:none;margin:0 auto}
  .mv-pic{order:1;max-width:280px;margin:0 auto;align-self:center}
  .satisfaction{width:90px;height:90px;border-width:4px;top:-5px;left:auto;right:-5px;transform:rotate(-12deg)}
  .satisfaction .big{font-size:32px}
  .mv-point{grid-template-columns:repeat(5,1fr);gap:6px;margin-top:24px;padding:0 8px}
  .mv-point li{padding:6px 2px;min-height:80px;border-width:2px;box-shadow:0 4px 0 var(--c-orange-d)}
  .mv-point li strong{font-size:16px;margin-bottom:2px}
  .mv-point li span{font-size:9px}
  .mv-point li::before{width:22px;height:22px;font-size:10px;top:-6px;left:-2px;border-width:2px}
}

/* ===== 事業内容（FV最下部、8マス・参考LP風カード）===== */
.mv-service{background:linear-gradient(180deg,var(--c-green-l) 0%,var(--c-green) 100%);padding:0 0 24px;margin-top:auto;position:relative;z-index:4}
.mv-service .label-band{background:transparent;color:#fff;text-align:center;padding:12px 0 6px;font-size:18px;font-weight:900;letter-spacing:.15em;position:relative}
.mv-service .label-band::before,.mv-service .label-band::after{content:"";position:absolute;top:50%;width:40px;height:3px;background:var(--c-yellow-hl);transform:translateY(-50%)}
.mv-service .label-band::before{left:calc(50% - 110px)}
.mv-service .label-band::after{right:calc(50% - 110px)}
.mv-service .label-band::before{left:calc(50% - 110px)}
.mv-service .label-band::after{right:calc(50% - 110px)}
.mv-service .inner{padding:8px 40px 12px;max-width:1280px;margin:0 auto}
.mv-service ul{list-style:none;display:grid;grid-template-columns:repeat(8,1fr);gap:10px;max-width:1280px;margin:0 auto}
.mv-service li{background:#fff;border-radius:12px;padding:12px 6px;text-align:center;border:2px solid var(--c-orange);box-shadow:0 3px 0 var(--c-orange-d);transition:transform .2s}
.mv-service li:hover{transform:translateY(-3px)}
.mv-service li .ico{height:36px;margin-bottom:5px;display:flex;align-items:center;justify-content:center;color:var(--c-orange)}
.mv-service li .ico .ico{color:var(--c-orange);width:32px;height:32px;stroke-width:2}
.mv-service li .name{font-size:13px;font-weight:900;color:var(--c-text);line-height:1.3}
@media(max-width:900px){
  .mv-service .label-band{font-size:16px}
  .mv-service .label-band::before{left:calc(50% - 90px);width:30px}
  .mv-service .label-band::after{right:calc(50% - 90px);width:30px}
  .mv-service .inner{padding:24px 20px 30px}
  .mv-service ul{grid-template-columns:repeat(4,1fr);gap:10px}
  .mv-service li{padding:12px 6px}
  .mv-service li .ico{height:36px}
  .mv-service li .ico .ico{width:32px;height:32px}
  .mv-service li .name{font-size:11px}
}

/* ===== Slide (横スライダー風) ===== */
.slide{background:#fff;padding:0;overflow:hidden}
.slide-track{display:flex;gap:0;animation:slide 30s linear infinite}
.slide-track img{width:280px;height:200px;object-fit:cover;flex-shrink:0}
.slide-item{width:280px;height:200px;flex-shrink:0;background:linear-gradient(135deg,#dcd6c5,#b8aa92) center/cover;position:relative}
.slide-item::after{content:attr(data-l);position:absolute;bottom:8px;left:8px;background:rgba(62,50,47,.8);color:#fff;font-size:10px;padding:3px 8px;font-weight:700;border-radius:3px}
.slide-item.s1{background-image:linear-gradient(135deg,rgba(0,0,0,.3),rgba(0,0,0,.1)),url('../images/plan1-hero.png');background-size:cover;background-position:center}
.slide-item.s2{background-image:linear-gradient(135deg,rgba(0,0,0,.3),rgba(0,0,0,.1)),url('../images/ba-before.png');background-size:cover}
.slide-item.s3{background-image:linear-gradient(135deg,rgba(0,0,0,.3),rgba(0,0,0,.1)),url('../images/ba-after.png');background-size:cover}
.slide-item.s4{background-image:linear-gradient(135deg,rgba(0,0,0,.3),rgba(0,0,0,.1)),url('../images/plan2-hero.png');background-size:cover}
.slide-item.s5{background-image:linear-gradient(135deg,rgba(0,0,0,.3),rgba(0,0,0,.1)),url('../images/plan3-hero.png');background-size:cover}
.slide-item.s6{background-image:linear-gradient(135deg,rgba(0,0,0,.3),rgba(0,0,0,.1)),url('../images/plan4-interior.png');background-size:cover}
@keyframes slide{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ===== 悩み訴求 ===== */
.worry{padding:80px 0 60px;background:var(--c-bg)}
.worry-h{text-align:center;margin-bottom:50px}
.worry-h .pre{display:inline-block;background:var(--c-orange);color:#fff;padding:4px 22px;font-weight:900;font-size:13px;border-radius:50px;margin-bottom:14px;letter-spacing:.05em;font-family:var(--font-num)}
.worry h2{font-size:32px;font-weight:900;color:var(--c-text);line-height:1.4;letter-spacing:.02em}
.worry h2 em{font-style:normal;background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);font-weight:900;color:var(--c-red);padding:0 6px}
.worry-list{list-style:none;max-width:980px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.worry-list li{background:var(--c-yellow-bg);border:3px solid var(--c-orange);border-radius:14px;padding:22px 28px;font-size:19px;font-weight:700;color:var(--c-text);position:relative;padding-left:72px}
.worry-list li::before{content:"!";position:absolute;left:18px;top:50%;transform:translateY(-50%);width:36px;height:36px;background:var(--c-orange);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-weight:900;font-size:24px}
.worry-list li em{font-style:normal;background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);font-weight:900;color:var(--c-red);padding:0 4px}
@media(max-width:768px){
  .worry{padding:50px 0 40px}
  .worry h2{font-size:22px}
  .worry-list li{font-size:14px;padding:14px 18px 14px 50px}
  .worry-list li::before{width:28px;height:28px;font-size:18px;left:12px}
}

/* ===== 悩み解決例（ビフォーアフター+料金）===== */
.ex{padding:60px 0 80px;background:var(--c-bg)}
.ex-list{list-style:none;display:flex;flex-direction:column;gap:30px}
.ex-list li{background:var(--c-beige);border:4px solid var(--c-orange);border-radius:18px;padding:0;overflow:hidden}
.ex-h3{background:var(--c-orange);color:#fff;padding:20px 26px;font-size:22px;font-weight:900;line-height:1.5;display:flex;align-items:center;gap:14px}
.ex-h3::before{content:"";flex-shrink:0;width:50px;height:50px;background:#fff;color:var(--c-orange);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-family:var(--font-num);font-size:20px}
.ex-list li:nth-child(1) .ex-h3::before{content:"1"}
.ex-list li:nth-child(2) .ex-h3::before{content:"2"}
.ex-list li:nth-child(3) .ex-h3::before{content:"3"}
.ex-h3 em{font-style:normal;background:var(--c-yellow-hl);color:var(--c-red);padding:2px 10px;border-radius:6px;font-weight:900;font-size:.95em}
.ex-body{padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center;background:#fff}
.ex-mark{background:linear-gradient(-135deg,var(--c-green-l),var(--c-green));color:#fff;padding:12px 18px;border-radius:50px;font-weight:900;font-size:14px;display:inline-block;margin-bottom:16px;box-shadow:0 3px 0 var(--c-green-d)}
.ex-mark::before{content:"✓ ";color:var(--c-yellow-hl)}
.ex-solution{font-size:20px;font-weight:900;color:var(--c-text);line-height:1.55;margin-bottom:14px}
.ex-solution em{font-style:normal;color:var(--c-red);background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);padding:0 4px}
.ex-pics{display:flex;flex-direction:column;gap:10px}
.ex-pic{aspect-ratio:4/3;background:#ddd center/cover;border-radius:10px;position:relative;overflow:hidden;border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.1)}
.ex-pic.before{background-image:url('../images/ba-before.png')}
.ex-pic.after{background-image:url('../images/ba-after.png')}
.ex-pic::after{content:attr(data-l);position:absolute;top:8px;left:8px;background:var(--c-red);color:#fff;padding:4px 12px;font-weight:900;font-size:11px;border-radius:50px;letter-spacing:.1em;font-family:var(--font-num)}
.ex-pic.after::after{background:var(--c-green-d)}
.ex-price{background:var(--c-yellow-bg);border:3px dashed var(--c-orange);border-radius:12px;padding:16px;text-align:center;font-weight:700;font-size:13px;color:var(--c-text)}
.ex-price-label{font-size:12px;color:var(--c-text-l);margin-bottom:4px}
.ex-price .num{font-family:var(--font-num);font-size:38px;font-weight:900;color:var(--c-red);margin:0 4px;letter-spacing:0;line-height:1}
.ex-price small{font-size:13px;color:var(--c-text-l);font-weight:700}
.ex-attention{font-size:11px;color:var(--c-text-l);margin-top:6px;text-align:left}
@media(max-width:768px){
  .ex-h3{font-size:16px;padding:14px 18px}
  .ex-h3::before{width:36px;height:36px;font-size:16px}
  .ex-body{grid-template-columns:1fr;padding:18px}
  .ex-solution{font-size:16px}
  .ex-price .num{font-size:28px}
}

/* ===== マンガ ===== */
.manga{background:linear-gradient(180deg,var(--c-yellow-bg),#FFECB3);padding:60px 0}
.manga-box{background:#fff;border:5px solid var(--c-text);border-radius:24px;padding:48px;max-width:1080px;margin:0 auto}
.manga-h{text-align:center;font-size:24px;font-weight:900;color:var(--c-text);margin-bottom:30px;line-height:1.5}
.manga-h em{font-style:normal;background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);color:var(--c-red);padding:0 6px}
.manga-grid{margin-bottom:20px}
.manga-grid:last-child{margin-bottom:0}
.manga-char{width:120px;height:120px;border-radius:50%;overflow:hidden;border:4px solid var(--c-text);flex-shrink:0;background:#fff}
.manga-char img{width:100%;height:100%;object-fit:cover}
.manga-char.right{border-color:var(--c-orange)}
.manga-bubble{background:var(--c-yellow-bg);border:3px solid var(--c-text);border-radius:18px;padding:18px 24px;position:relative;font-weight:700;font-size:16px;line-height:1.75}
.manga-bubble.left::before{content:"";position:absolute;left:-14px;top:30%;border:8px solid transparent;border-right-color:var(--c-text)}
.manga-bubble.left::after{content:"";position:absolute;left:-10px;top:30%;border:8px solid transparent;border-right-color:var(--c-yellow-bg)}
.manga-bubble.right::before{content:"";position:absolute;right:-14px;top:30%;border:8px solid transparent;border-left-color:var(--c-text)}
.manga-bubble.right::after{content:"";position:absolute;right:-10px;top:30%;border:8px solid transparent;border-left-color:#FFF3E0}
.manga-bubble.right{background:#FFF3E0}
.manga-bubble strong{color:var(--c-red);background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);font-weight:900;padding:0 4px}
.manga-grid.r{display:grid;grid-template-columns:1fr 120px;gap:24px;align-items:center}
.manga-grid.l{display:grid;grid-template-columns:120px 1fr;gap:24px;align-items:center}
@media(max-width:768px){
  .manga-box{padding:24px 16px}
  .manga-h{font-size:18px}
  .manga-grid.r{grid-template-columns:1fr 60px;gap:14px}
  .manga-grid.l{grid-template-columns:60px 1fr;gap:14px}
  .manga-char{width:60px;height:60px;border-width:3px}
  .manga-bubble{padding:12px 16px;font-size:13px}
}

/* ===== お任せください ===== */
.leave{background:var(--c-bg);padding:60px 0}
.leave-inner{max-width:1280px;margin:0 auto;padding:0 40px;text-align:center}
.leave-h{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:30px;flex-wrap:wrap}
.leave-ttl-01{font-size:18px;font-weight:700;color:var(--c-text);background:var(--c-yellow-hl);padding:6px 18px;border-radius:50px;animation:bounce 2s ease-in-out infinite}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.leave-ttl-02{font-size:32px;font-weight:900;color:var(--c-red);line-height:1.5;letter-spacing:.02em}
.leave-ttl-02 em{font-style:normal;color:var(--c-orange);background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);padding:0 6px}
.leave-txt{font-size:15px;color:var(--c-text);line-height:2;margin-bottom:30px;font-weight:500}
.leave-points{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;max-width:780px;margin:0 auto 30px}
.leave-points li{background:#fff;border:3px solid var(--c-orange);border-radius:50%;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6px;list-style:none;box-shadow:0 3px 0 var(--c-orange-d);position:relative}
.leave-points li::before{content:attr(data-no);position:absolute;top:-6px;left:-6px;background:var(--c-orange);color:#fff;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-size:10px;font-weight:900}
.leave-points li strong{display:block;font-size:16px;font-weight:900;color:var(--c-red);margin-bottom:1px}
.leave-points li span{font-size:10px;font-weight:700;color:var(--c-text);line-height:1.2}
.satisfaction-leave{width:120px;height:120px;background:var(--c-yellow-hl);border:5px solid #fff;border-radius:50%;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-weight:900;line-height:1.2;box-shadow:0 4px 12px rgba(0,0,0,.15);transform:rotate(-8deg);color:var(--c-text)}
.satisfaction-leave .big{font-family:var(--font-num);font-size:38px;color:var(--c-red);line-height:.9;font-weight:900}
.satisfaction-leave .big small{font-size:18px}
.satisfaction-leave .top,.satisfaction-leave .bot{font-size:9px}
@media(max-width:768px){
  .leave-ttl-02{font-size:20px}
  .leave-points{grid-template-columns:repeat(5,1fr);gap:4px}
  .leave-points li{padding:4px}
  .leave-points li strong{font-size:11px}
  .leave-points li span{font-size:8px}
}

/* ===== 対応エリア ===== */
.area{background:var(--c-text);color:#fff;padding:60px 0}
.area-inner{max-width:1280px;margin:0 auto;padding:0 40px}
.area h2{text-align:center;font-size:32px;font-weight:900;line-height:1.5;margin-bottom:24px;color:#fff}
.area h2::before{content:"★";color:var(--c-yellow-hl);margin-right:10px;font-size:.7em}
.area h2::after{content:"★";color:var(--c-yellow-hl);margin-left:10px;font-size:.7em}
.area-sub{text-align:center;font-size:15px;color:var(--c-yellow-hl);margin-bottom:30px;font-weight:700}
.area-list{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;background:#fff;border-radius:14px;padding:30px;color:var(--c-text)}
.area-block h4{font-size:18px;font-weight:900;color:var(--c-red);margin-bottom:8px;padding-bottom:6px;border-bottom:3px solid var(--c-yellow-hl)}
.area-block p{font-size:13px;line-height:2;color:var(--c-text)}
@media(max-width:768px){
  .area h2{font-size:22px}
  .area-list{grid-template-columns:1fr;padding:20px}
}

/* ===== 基本サービス一覧 ===== */
.basic{background:var(--c-beige);padding:80px 0}
.basic-h{text-align:center;margin-bottom:40px}
.basic-h h2{font-size:30px;font-weight:900;color:var(--c-text);line-height:1.5}
.basic-h h2::before{content:"★";color:var(--c-orange);margin-right:10px;font-size:.7em}
.basic-h h2::after{content:"★";color:var(--c-orange);margin-left:10px;font-size:.7em}
.basic-h p{margin-top:10px;font-size:14px;color:var(--c-text-l)}
.basic-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:1280px;margin:0 auto;padding:0 40px}
.basic-card{background:#fff;border-radius:14px;padding:24px 16px;text-align:center;border:3px solid var(--c-yellow-hl);box-shadow:0 4px 0 #d4c136;transition:transform .2s}
.basic-card:hover{transform:translateY(-4px)}
.basic-card .icon{width:70px;height:70px;margin:0 auto 12px;background:var(--c-orange);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;border:3px solid #fff;box-shadow:0 3px 0 var(--c-orange-d)}
.basic-card h4{font-weight:900;font-size:14px;color:var(--c-text);margin-bottom:6px;line-height:1.4}
.basic-card p{font-size:11px;color:var(--c-text-l);line-height:1.7}
@media(max-width:768px){
  .basic-grid{grid-template-columns:repeat(2,1fr)}
  .basic-h h2{font-size:22px}
}

/* ===== 6つの安心 ===== */
.anshin{background:var(--c-bg);padding:80px 0}
.anshin-h{text-align:center;margin-bottom:40px}
.anshin-h h2{font-size:30px;font-weight:900;color:var(--c-text);line-height:1.5}
.anshin-h h2 em{font-style:normal;color:var(--c-orange);background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);font-weight:900}
.anshin-list{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:1280px;margin:0 auto;padding:0 40px}
.anshin-item{background:#fff;border-radius:14px;padding:24px;display:grid;grid-template-columns:90px 1fr;gap:20px;border:3px solid var(--c-orange);box-shadow:0 4px 0 var(--c-orange-d)}
.anshin-num{width:90px;height:90px;background:linear-gradient(-135deg,var(--c-orange),var(--c-orange-d));color:#fff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:900;line-height:1;font-family:var(--font-num);border:4px solid #fff;box-shadow:0 0 0 3px var(--c-orange)}
.anshin-num small{font-size:10px;letter-spacing:.05em;font-weight:700;margin-bottom:2px}
.anshin-num em{font-style:normal;font-size:38px;font-weight:900}
.anshin-body h4{font-weight:900;font-size:20px;color:var(--c-text);margin-bottom:8px;line-height:1.45}
.anshin-body h4 em{font-style:normal;color:var(--c-red);background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);padding:0 4px;font-weight:900}
.anshin-body p{font-size:13px;line-height:1.9;color:var(--c-text)}
@media(max-width:768px){
  .anshin-list{grid-template-columns:1fr}
  .anshin-item{padding:18px;grid-template-columns:60px 1fr;gap:14px}
  .anshin-num{width:60px;height:60px}
  .anshin-num em{font-size:24px}
  .anshin-h h2{font-size:22px}
}

/* ===== 料金表（他社比較）===== */
.price{background:var(--c-yellow-bg);padding:80px 0}
.price-h{text-align:center;margin-bottom:30px}
.price-h h2{font-size:30px;font-weight:900;color:var(--c-text);line-height:1.5}
.price-h h2 em{font-style:normal;color:var(--c-red);background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);padding:0 6px;font-weight:900}
.price-h p{margin-top:10px;font-size:14px;color:var(--c-text-l)}
.price-cmp{max-width:1280px;margin:0 auto;padding:0 40px}
.price-table{border:4px solid var(--c-red);border-radius:14px;overflow:hidden;background:#fff}
.price-row{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;border-bottom:1px solid #eee}
.price-row:last-child{border-bottom:none}
.price-row.head{background:var(--c-red);color:#fff}
.price-row.head>div{padding:16px 8px;text-align:center;font-weight:900;font-size:14px;letter-spacing:.05em}
.price-row.head .us{background:var(--c-yellow-hl);color:var(--c-red);position:relative;font-size:16px;font-weight:900}
.price-row.head .us::before{content:"★最安★";position:absolute;top:-10px;left:50%;transform:translateX(-50%);background:var(--c-red);color:var(--c-yellow-hl);font-size:10px;padding:3px 10px;border-radius:50px;font-weight:900;letter-spacing:.05em}
.price-cell{padding:16px 8px;text-align:center;font-size:14px;line-height:1.5}
.price-cell.label{background:var(--c-yellow-bg);text-align:left;padding-left:18px;font-weight:900;color:var(--c-text)}
.price-cell.us{background:#FFFDE7;color:var(--c-red);font-family:var(--font-num);font-weight:900;font-size:20px}
.price-cell.other{color:var(--c-text-l);text-decoration:line-through;font-family:var(--font-num);font-weight:500}
.price-note{margin-top:14px;font-size:12px;color:var(--c-text-l);text-align:right}

.campaign{background:linear-gradient(-135deg,var(--c-red),var(--c-orange-d));color:#fff;border-radius:18px;padding:30px 24px;margin-top:30px;text-align:center;border:5px dashed var(--c-yellow-hl);position:relative}
.campaign::before{content:"★";position:absolute;top:-18px;left:50%;transform:translateX(-50%);background:var(--c-yellow-hl);color:var(--c-red);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:900;border:3px solid #fff}
.campaign h3{font-weight:900;font-size:22px;line-height:1.55;margin-bottom:8px}
.campaign h3 em{font-style:normal;background:var(--c-yellow-hl);color:var(--c-red);padding:4px 14px;border-radius:6px;margin:0 6px;font-weight:900}
.campaign .big{font-family:var(--font-num);font-size:48px;font-weight:900;color:var(--c-yellow-hl);line-height:1;margin:10px 0;letter-spacing:0}
.campaign p{font-size:12px;opacity:.95}
@media(max-width:768px){
  .price-cmp{padding:0 16px}
  .price-row{grid-template-columns:1.5fr 1fr 1fr 1.1fr;font-size:11px}
  .price-row.head>div,.price-cell{padding:10px 4px;font-size:11px}
  .price-cell.label{padding-left:10px;font-size:11px;line-height:1.4}
  .price-cell.us{font-size:13px}
  .price-row.head .us{font-size:12px}
  .price-row.head .us::before{font-size:9px;padding:2px 6px;top:-8px}
  .price-h h2{font-size:20px}
  .campaign{padding:24px 16px}
  .campaign h3{font-size:16px}
  .campaign .big{font-size:32px}
}

/* ===== CTA中盤 ===== */
.cta-mid{background:linear-gradient(135deg,var(--c-orange),var(--c-red));padding:40px 20px;text-align:center;color:#fff;position:relative}
.cta-mid::before,.cta-mid::after{content:"";position:absolute;top:0;width:60px;height:100%;background:repeating-linear-gradient(45deg,transparent 0 10px,rgba(255,255,255,.1) 10px 20px)}
.cta-mid::before{left:0}
.cta-mid::after{right:0}
.cta-mid h3{font-weight:900;font-size:24px;margin-bottom:18px;line-height:1.5;position:relative;z-index:1}
.cta-mid h3 em{font-style:normal;background:var(--c-yellow-hl);color:var(--c-red);padding:2px 10px;border-radius:6px;font-weight:900}
.cta-mid-buttons{display:flex;gap:14px;justify-content:center;max-width:680px;margin:0 auto;flex-wrap:wrap;position:relative;z-index:1}
.cta-mid-buttons a{flex:1;min-width:240px;background:#fff;color:var(--c-text);padding:18px;border-radius:14px;box-shadow:0 5px 0 rgba(0,0,0,.2);line-height:1.3}
.cta-mid-buttons a.tel{color:var(--c-green-d)}
.cta-mid-buttons a.form{color:var(--c-orange)}
.cta-mid-buttons small{font-size:10px;font-weight:700;letter-spacing:.15em;display:block}
.cta-mid-buttons .num{font-family:var(--font-num);font-size:24px;font-weight:900;margin:2px 0}
.cta-mid-buttons .hours{font-size:10px;color:var(--c-text-l)}
.cta-mid-buttons a.form{font-weight:900;font-size:18px;display:flex;flex-direction:column;align-items:center;justify-content:center}
@media(max-width:768px){
  .cta-mid h3{font-size:18px}
  .cta-mid-buttons{flex-direction:column}
  .cta-mid-buttons a{min-width:auto}
}

/* ===== サービスの流れ ===== */
.flow{background:var(--c-bg);padding:80px 0}
.flow-h{text-align:center;margin-bottom:40px}
.flow-h h2{font-size:30px;font-weight:900;color:var(--c-text);line-height:1.5}
.flow-h h2::before{content:"★";color:var(--c-orange);margin-right:10px;font-size:.7em}
.flow-h h2::after{content:"★";color:var(--c-orange);margin-left:10px;font-size:.7em}
.flow-h p{margin-top:10px;font-size:14px;color:var(--c-text-l)}
.flow-list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1280px;margin:0 auto;padding:0 40px}
.flow-step{background:#fff;border:3px solid var(--c-orange);border-radius:14px;padding:24px 18px;text-align:center;position:relative;box-shadow:0 4px 0 var(--c-orange-d)}
.flow-step .step{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--c-orange);color:#fff;padding:4px 18px;border-radius:50px;font-family:var(--font-num);font-weight:900;font-size:12px;letter-spacing:.05em}
.flow-step .icon{font-size:0;height:48px;display:flex;align-items:center;justify-content:center;margin:8px 0 12px}
.flow-step h4{font-weight:900;font-size:16px;color:var(--c-text);margin-bottom:8px;line-height:1.45}
.flow-step p{font-size:12px;line-height:1.7;color:var(--c-text-l)}
@media(max-width:768px){
  .flow-list{grid-template-columns:1fr;gap:14px}
  .flow-h h2{font-size:22px}
}

/* ===== お客様の声 ===== */
.voice{background:var(--c-yellow-bg);padding:80px 0}
.voice-h{text-align:center;margin-bottom:40px}
.voice-h h2{font-size:30px;font-weight:900;color:var(--c-text);line-height:1.5}
.voice-h h2::before{content:"★";color:var(--c-orange);margin-right:10px;font-size:.7em}
.voice-h h2::after{content:"★";color:var(--c-orange);margin-left:10px;font-size:.7em}
.voice-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1280px;margin:0 auto;padding:0 40px}
.voice-card{background:#fff;border-radius:14px;padding:24px;border:3px solid var(--c-orange);box-shadow:0 4px 0 var(--c-orange-d)}
.voice-stars{color:var(--c-orange);font-size:20px;margin-bottom:10px;letter-spacing:.1em}
.voice-card h4{font-weight:900;font-size:17px;color:var(--c-red);margin-bottom:14px;line-height:1.6;background:linear-gradient(transparent 65%,var(--c-yellow-hl) 0%);padding:0 4px;display:inline-block}
.voice-card p{font-size:13px;line-height:1.9;color:var(--c-text);margin-bottom:16px}
.voice-meta{display:flex;align-items:center;gap:12px;border-top:2px dotted #ccc;padding-top:14px}
.voice-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(-135deg,var(--c-orange),var(--c-orange-d));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:20px;font-family:var(--font-num);border:3px solid #fff;box-shadow:0 0 0 2px var(--c-orange)}
.voice-meta .info{font-size:12px;color:var(--c-text-l);line-height:1.5}
.voice-meta .info strong{display:block;color:var(--c-text);font-weight:900}
@media(max-width:768px){
  .voice-list{grid-template-columns:1fr;gap:14px}
  .voice-h h2{font-size:22px}
}

/* ===== FAQ ===== */
.faq{background:var(--c-bg);padding:80px 0}
.faq-h{text-align:center;margin-bottom:40px}
.faq-h h2{font-size:30px;font-weight:900;color:var(--c-text);line-height:1.5}
.faq-h h2::before{content:"★";color:var(--c-orange);margin-right:10px;font-size:.7em}
.faq-h h2::after{content:"★";color:var(--c-orange);margin-left:10px;font-size:.7em}
.faq-list{max-width:980px;margin:0 auto;padding:0 40px}
.faq-item{background:#fff;margin-bottom:12px;border-radius:14px;border:3px solid var(--c-orange);overflow:hidden;box-shadow:0 3px 0 var(--c-orange-d)}
.faq-item summary{padding:18px 24px;cursor:pointer;display:flex;gap:16px;font-weight:900;font-size:16px;color:var(--c-text);list-style:none;align-items:flex-start;position:relative}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::before{content:"Q";flex-shrink:0;width:36px;height:36px;background:var(--c-orange);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-weight:900;font-size:18px}
.faq-item summary::after{content:"＋";position:absolute;right:22px;top:50%;transform:translateY(-50%);color:var(--c-orange);font-weight:900;font-size:22px}
.faq-item[open] summary::after{content:"−"}
.faq-answer{padding:0 24px 22px 76px;font-size:14px;line-height:1.9;color:var(--c-text);display:flex;gap:10px}
.faq-answer::before{content:"A";flex-shrink:0;width:28px;height:28px;background:var(--c-green-d);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-weight:900;font-size:14px;margin-top:2px}
@media(max-width:768px){
  .faq-item summary{font-size:14px;padding:14px 40px 14px 16px;gap:10px}
  .faq-item summary::before{width:28px;height:28px;font-size:14px}
  .faq-answer{padding:0 16px 16px 54px;font-size:13px}
  .faq-h h2{font-size:22px}
}

/* ===== Form ===== */
.form-sec{background:var(--c-beige);padding:80px 0}
.form-h{text-align:center;margin-bottom:30px}
.form-h h2{font-size:30px;font-weight:900;color:var(--c-text);line-height:1.5}
.form-h h2::before{content:"★";color:var(--c-orange);margin-right:10px;font-size:.7em}
.form-h h2::after{content:"★";color:var(--c-orange);margin-left:10px;font-size:.7em}
.form-h p{margin-top:10px;font-size:14px;color:var(--c-text-l)}
.form-box{max-width:900px;margin:0 auto;padding:0 40px}
.form-inner{background:#fff;border-radius:18px;padding:36px;border:3px solid var(--c-orange);box-shadow:0 5px 0 var(--c-orange-d)}
.form-row{margin-bottom:18px}
.form-row label{display:block;font-weight:900;font-size:14px;color:var(--c-text);margin-bottom:6px}
.form-row label .req{background:var(--c-red);color:#fff;font-size:10px;padding:2px 8px;border-radius:50px;margin-left:6px;font-weight:900;letter-spacing:.05em}
.form-row input,.form-row select,.form-row textarea{width:100%;padding:14px 16px;font-size:14px;border:2px solid #ddd;border-radius:10px;font-family:inherit;background:var(--c-beige);transition:border .2s}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:var(--c-orange);outline:none;background:#fff}
.form-row textarea{min-height:100px;resize:vertical}
.form-submit{text-align:center;margin-top:24px}
.form-submit button{background:linear-gradient(-135deg,var(--c-orange),var(--c-orange-d));color:#fff;border:none;padding:20px 64px;font-weight:900;font-size:20px;border-radius:50px;cursor:pointer;box-shadow:0 5px 0 #B83D1A;font-family:inherit}
.form-submit button:hover{transform:translateY(2px);box-shadow:0 3px 0 #B83D1A}
.form-note{font-size:11px;color:var(--c-text-l);text-align:center;margin-top:14px}
@media(max-width:768px){
  .form-inner{padding:24px 18px}
  .form-h h2{font-size:22px}
}

/* ===== Footer CTA ===== */
.foot-cta{background:linear-gradient(-135deg,var(--c-orange),var(--c-red));color:#fff;text-align:center;padding:60px 20px;position:relative}
.foot-cta::before{content:"";position:absolute;top:-30px;left:50%;transform:translateX(-50%);width:60px;height:60px;background:var(--c-yellow-hl);border-radius:50%;border:5px solid #fff;display:flex;align-items:center;justify-content:center}
.foot-cta h2{font-weight:900;font-size:32px;margin-bottom:14px;line-height:1.5;margin-top:20px}
.foot-cta h2 em{font-style:normal;color:var(--c-yellow-hl);background:none;font-size:1.2em;font-weight:900}
.foot-cta p{font-size:14px;margin-bottom:24px;line-height:1.9}
.foot-buttons{display:flex;gap:14px;justify-content:center;max-width:680px;margin:0 auto;flex-wrap:wrap}
.foot-buttons a{flex:1;min-width:240px;background:#fff;color:var(--c-text);padding:18px;border-radius:14px;box-shadow:0 5px 0 rgba(0,0,0,.2);line-height:1.3}
.foot-buttons .tel{color:var(--c-green-d)}
.foot-buttons .form{color:var(--c-orange);font-weight:900;font-size:17px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.foot-buttons small{font-size:10px;font-weight:700;letter-spacing:.15em;display:block}
.foot-buttons .num{font-family:var(--font-num);font-size:24px;font-weight:900;margin:2px 0}
@media(max-width:768px){
  .foot-cta h2{font-size:22px}
  .foot-buttons{flex-direction:column}
  .foot-buttons a{min-width:auto}
}

/* ===== Footer ===== */
footer{background:var(--c-text);color:#fff;padding:50px 0 20px}
.footer-inner{max-width:1280px;margin:0 auto;padding:0 40px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:30px}
.footer-logo .logo-text{color:#fff}
.footer-logo .logo-text small{color:var(--c-yellow-hl)}
.footer-desc{margin-top:14px;font-size:12px;line-height:1.85;color:#bbb}
.footer-block h5{font-weight:900;font-size:14px;color:var(--c-yellow-hl);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #555}
.footer-block p{font-size:12px;line-height:1.95;color:#ccc}
.footer-block .num{color:var(--c-yellow-hl);font-size:16px;font-weight:700}
.footer-bottom{border-top:1px solid #555;padding-top:20px;text-align:center;font-size:11px;color:#888;font-family:var(--font-num);letter-spacing:.1em}
@media(max-width:768px){
  .footer-inner{grid-template-columns:1fr;gap:24px}
}

/* ===== Mobile Float CTA ===== */
.fcta{display:none;position:fixed;bottom:0;left:0;width:100%;background:rgba(255,255,255,.97);padding:8px;gap:6px;z-index:99;box-shadow:0 -3px 12px rgba(0,0,0,.15);backdrop-filter:blur(8px)}
.fcta a{flex:1;text-align:center;padding:13px 6px;font-weight:900;font-size:13px;border-radius:10px;line-height:1.2;display:flex;flex-direction:column;justify-content:center}
.fcta .tel{background:var(--c-green-d);color:#fff;box-shadow:0 3px 0 #2E7031}
.fcta .form{background:var(--c-orange);color:#fff;box-shadow:0 3px 0 #B83D1A}
.fcta small{font-size:9px;font-weight:700;display:block;letter-spacing:.1em}
@media(max-width:768px){
  .fcta{display:flex}
  body{padding-bottom:64px}
}

/* SVG Icon Styles */
.ico{width:1em;height:1em;display:inline-block;vertical-align:middle;stroke:currentColor;flex-shrink:0}
.tel-ico{position:relative}
.tel-ico .ico{width:24px;height:24px;color:#fff;stroke-width:2.5;position:absolute;top:8px;left:50%;transform:translateX(-50%)}
.tel-ico-label{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);font-size:9px;font-weight:900;color:#fff;letter-spacing:.05em;line-height:1;white-space:nowrap}
.tel-ico::before{display:none}
.basic-card .icon .ico{width:32px;height:32px;color:#fff;stroke-width:2.2}
.basic-card .icon{padding:0}
.mv-service li .ico{font-size:32px;color:var(--c-orange);height:32px;display:flex;align-items:center;justify-content:center;margin-bottom:6px}
.mv-service li .ico .ico{color:var(--c-orange);width:30px;height:30px;stroke-width:2.2}
.flow-step .icon{font-size:0;height:48px;display:flex;align-items:center;justify-content:center;margin:8px 0 12px}
.flow-step .icon .ico{width:40px;height:40px;color:var(--c-orange);stroke-width:2}
.cta-mid h3 .ico,.foot-cta h2 .ico,.cta-mid-buttons small .ico,.foot-buttons small .ico,.fv-header li.contact .btn .ico,.fcta a small .ico{width:1em;height:1em;stroke-width:2.5;margin-right:4px}
.tel-label{font-size:9px;display:block;color:#fff;font-weight:900;line-height:1;margin-top:1px}

/* === Global Nav === */
.gnav{background:#fff;border-bottom:2px solid var(--c-yellow-hl);position:sticky;top:0;z-index:99;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.gnav-inner{max-width:1280px;margin:0 auto;padding:0 20px;display:flex;justify-content:center;align-items:center;gap:32px;height:54px}
.gnav a{font-size:13px;font-weight:700;color:var(--c-text);letter-spacing:.05em;padding:4px 0;border-bottom:2px solid transparent;transition:border .2s,color .2s}
.gnav a:hover{color:var(--c-orange);border-bottom-color:var(--c-orange);opacity:1}
.gnav a.is-current{color:var(--c-orange);border-bottom-color:var(--c-orange)}
@media(max-width:900px){.gnav-inner{gap:14px;overflow-x:auto;justify-content:flex-start;padding:0 14px}.gnav a{font-size:11px;white-space:nowrap;flex-shrink:0}}

/* =====================================================
   Sub Pages — Common (Header/Topbar/Container/Sec)
   ===================================================== */
.topbar{background:var(--c-text);color:#fff;font-size:12px;font-weight:700;padding:7px 20px;display:flex;justify-content:center;align-items:center;gap:18px;letter-spacing:.04em}
.topbar .tel{color:var(--c-yellow-hl);font-size:14px;font-weight:900;font-family:var(--font-num);letter-spacing:.04em}
.topbar .tel::before{content:"";display:inline-block;width:14px;height:14px;margin-right:6px;vertical-align:-2px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffec47' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/></svg>") center/contain no-repeat}
@media(max-width:768px){.topbar{display:none}}

.header{background:var(--c-bg);border-bottom:1px solid var(--c-line);padding:14px 0}
.header-inner{max-width:1280px;margin:0 auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.header .logo{display:flex;align-items:center;gap:10px}
.header-cta{display:flex;align-items:center;gap:18px}
.header-tel{line-height:1.2;text-align:right}
.header-tel small{display:block;font-size:10px;font-weight:900;color:var(--c-green-d);letter-spacing:.05em}
.header-tel .num{font-family:var(--font-num);font-size:24px;font-weight:900;color:var(--c-text);letter-spacing:.02em}
.header-btn{background:linear-gradient(-135deg,var(--c-orange),var(--c-orange-d));color:#fff;padding:14px 22px;border-radius:50px;font-weight:900;font-size:14px;box-shadow:0 3px 0 #b83d1a;display:inline-flex;align-items:center;gap:6px}
.header-btn::before{content:"";width:14px;height:14px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/><polyline points='22,6 12,13 2,6'/></svg>") center/contain no-repeat}
@media(max-width:768px){
  .header-inner{padding:0 16px;gap:10px}
  .header .logo .logo-mark{width:42px;height:42px;font-size:20px}
  .header .logo .logo-text{font-size:13px}
  .header .logo .logo-text small{font-size:9px}
  .header-tel{display:none}
  .header-btn{padding:10px 14px;font-size:12px}
}

.container{max-width:1280px;margin:0 auto;padding:0 40px}
@media(max-width:768px){.container{padding:0 20px}}

.sec{padding:90px 0}
@media(max-width:768px){.sec{padding:60px 0}}
.sec-h{text-align:center;margin-bottom:50px}
.sec-h .pre{display:inline-block;background:var(--c-orange);color:#fff;padding:5px 22px;font-weight:900;font-size:12px;border-radius:50px;margin-bottom:14px;letter-spacing:.1em;font-family:var(--font-num)}
.sec-h h2{font-size:34px;font-weight:900;color:var(--c-text);line-height:1.45;letter-spacing:.02em}
.sec-h h2 em{font-style:normal;color:var(--c-orange);background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);font-weight:900;padding:0 6px}
.sec-h .lead{margin-top:14px;font-size:15px;line-height:1.95;color:var(--c-text-l);font-weight:500}
@media(max-width:768px){
  .sec-h{margin-bottom:36px}
  .sec-h h2{font-size:24px}
  .sec-h .lead{font-size:13px}
}

/* =====================================================
   Page Hero (下層共通) — リッチ装飾版
   ===================================================== */
.page-hero{position:relative;background:linear-gradient(180deg,#FFFCE8 0%,var(--c-yellow-bg) 60%,#fff4cc 100%);padding:90px 0 80px;text-align:center;border-bottom:6px solid var(--c-yellow-hl);overflow:hidden}
.page-hero::before{content:"";position:absolute;top:-30px;right:-30px;width:220px;height:220px;background:radial-gradient(circle,#ffe27a 0%,transparent 70%);opacity:.55;pointer-events:none}
.page-hero::after{content:"";position:absolute;bottom:-80px;left:-50px;width:280px;height:280px;background:radial-gradient(circle,#a4ee76 0%,transparent 70%);opacity:.4;pointer-events:none}
.page-hero .container{position:relative;z-index:1}
.page-hero .pre{display:inline-block;background:var(--c-orange);color:#fff;padding:5px 24px;font-weight:900;font-size:12px;border-radius:50px;margin-bottom:18px;letter-spacing:.15em;font-family:var(--font-num);box-shadow:0 3px 0 var(--c-orange-d)}
.page-hero h1{font-weight:900;font-size:46px;color:var(--c-text);line-height:1.4;margin-bottom:18px;letter-spacing:.02em}
.page-hero h1 em{font-style:normal;color:var(--c-orange);background:linear-gradient(transparent 58%,var(--c-yellow-hl) 0%);padding:0 8px}
.page-hero p{font-size:16px;color:var(--c-text);line-height:1.95;font-weight:500}
.page-hero .breadcrumb{display:flex;justify-content:center;gap:8px;font-size:12px;color:var(--c-text-l);margin-top:22px;font-weight:700;letter-spacing:.04em}
.page-hero .breadcrumb a{color:var(--c-orange)}
.page-hero .breadcrumb span{color:var(--c-text-l)}
@media(max-width:768px){
  .page-hero{padding:54px 0 50px}
  .page-hero h1{font-size:26px;margin-bottom:12px}
  .page-hero p{font-size:14px}
}

/* =====================================================
   About — 代表挨拶 / 会社概要 / 沿革
   ===================================================== */
.message{background:var(--c-bg)}
.message-grid{display:grid;grid-template-columns:280px 1fr;gap:60px;align-items:start;max-width:1080px;margin:0 auto}
.message-portrait{position:relative}
.message-portrait .photo{width:280px;height:340px;border-radius:18px;background:linear-gradient(135deg,#fbe6c0,#f5b25e);border:5px solid #fff;box-shadow:0 8px 24px rgba(0,0,0,.12),0 0 0 4px var(--c-orange);overflow:hidden;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:18px;line-height:1.5;text-align:center}
.message-portrait .sticker{position:absolute;bottom:-16px;right:-12px;background:var(--c-yellow-hl);color:var(--c-red);padding:10px 16px;border-radius:50px;font-weight:900;font-size:13px;box-shadow:0 4px 12px rgba(0,0,0,.18);transform:rotate(-6deg);border:3px solid #fff;letter-spacing:.04em}
.message-body h3{font-size:28px;font-weight:900;color:var(--c-text);line-height:1.55;margin-bottom:22px;letter-spacing:.02em}
.message-body h3 em{font-style:normal;background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);color:var(--c-red);padding:0 6px;font-weight:900}
.message-body p{font-size:15px;line-height:2.05;color:var(--c-text);margin-bottom:18px;font-weight:500}
.message-body .sign{margin-top:24px;font-size:14px;color:var(--c-text-l);font-weight:700}
.message-body .sign strong{font-size:20px;color:var(--c-text);font-weight:900;margin-left:10px}
@media(max-width:768px){
  .message-grid{grid-template-columns:1fr;gap:30px;text-align:center}
  .message-portrait{margin:0 auto}
  .message-portrait .photo{width:240px;height:300px;margin:0 auto}
  .message-body h3{font-size:20px;text-align:left}
  .message-body p{font-size:14px;text-align:left}
}

.company-table{max-width:900px;margin:0 auto;background:#fff;border:3px solid var(--c-orange);border-radius:18px;overflow:hidden;box-shadow:0 5px 0 var(--c-orange-d)}
.company-table dl{display:grid;grid-template-columns:180px 1fr;border-bottom:1px solid #f0e6d6}
.company-table dl:last-child{border-bottom:none}
.company-table dt{background:var(--c-yellow-bg);color:var(--c-text);font-weight:900;font-size:14px;padding:18px 22px;display:flex;align-items:center;border-right:1px solid #f0e6d6}
.company-table dd{padding:18px 24px;font-size:14px;line-height:1.85;color:var(--c-text)}
.company-table dd strong{color:var(--c-orange);font-weight:900}
@media(max-width:768px){
  .company-table dl{grid-template-columns:1fr}
  .company-table dt{padding:10px 16px;font-size:13px;border-right:none;border-bottom:1px solid #f0e6d6}
  .company-table dd{padding:14px 16px;font-size:13px}
}

.history{max-width:880px;margin:0 auto;position:relative}
.history::before{content:"";position:absolute;left:120px;top:10px;bottom:10px;width:4px;background:repeating-linear-gradient(180deg,var(--c-orange) 0 8px,transparent 8px 14px);z-index:0}
.history-row{display:grid;grid-template-columns:120px 36px 1fr;gap:24px;padding:18px 0;align-items:start;position:relative;z-index:1}
.history-year{font-family:var(--font-num);font-weight:900;font-size:22px;color:var(--c-orange);text-align:right;line-height:1.1}
.history-dot{width:20px;height:20px;background:var(--c-orange);border:4px solid #fff;border-radius:50%;margin-top:6px;box-shadow:0 0 0 3px var(--c-yellow-hl);justify-self:center}
.history-text{font-size:14px;line-height:1.85;color:var(--c-text);font-weight:500;padding-top:2px}
.history-text strong{display:block;font-weight:900;font-size:16px;color:var(--c-text);margin-bottom:4px}
@media(max-width:768px){
  .history::before{left:60px}
  .history-row{grid-template-columns:60px 24px 1fr;gap:12px}
  .history-year{font-size:15px}
  .history-dot{width:14px;height:14px;margin-top:4px}
  .history-text{font-size:13px}
  .history-text strong{font-size:14px}
}

.philosophy{background:var(--c-yellow-bg)}
.philosophy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;max-width:1080px;margin:0 auto}
.philosophy-card{background:#fff;border:3px solid var(--c-orange);border-radius:18px;padding:32px 24px;text-align:center;box-shadow:0 5px 0 var(--c-orange-d);position:relative}
.philosophy-card .num{position:absolute;top:-18px;left:50%;transform:translateX(-50%);background:var(--c-yellow-hl);color:var(--c-red);width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-weight:900;font-size:18px;border:3px solid #fff;box-shadow:0 3px 8px rgba(0,0,0,.15)}
.philosophy-card .icon{width:72px;height:72px;background:linear-gradient(-135deg,var(--c-orange),var(--c-orange-d));border-radius:50%;margin:14px auto 18px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 12px rgba(233,82,0,.3)}
.philosophy-card .icon svg{width:34px;height:34px;stroke-width:2.2}
.philosophy-card h4{font-weight:900;font-size:18px;color:var(--c-text);line-height:1.5;margin-bottom:12px}
.philosophy-card h4 em{font-style:normal;color:var(--c-red);background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);padding:0 4px}
.philosophy-card p{font-size:13px;line-height:1.9;color:var(--c-text-l)}
@media(max-width:768px){
  .philosophy-grid{grid-template-columns:1fr;gap:34px}
}

/* About — area-box (対応エリア・下層) */
.area-box{background:#fff;border:4px solid var(--c-text);border-radius:18px;padding:36px;max-width:1080px;margin:0 auto;box-shadow:0 6px 0 #1a1a1a}
.area-box .area-list{background:transparent;padding:0;border-radius:0;color:var(--c-text);grid-template-columns:repeat(2,1fr);gap:28px}
@media(max-width:768px){.area-box{padding:22px}.area-box .area-list{grid-template-columns:1fr;gap:18px}}

/* =====================================================
   Services — 詳細カード（8事業）
   ===================================================== */
.svc-detail{background:var(--c-bg)}
.svc-list{display:flex;flex-direction:column;gap:36px;max-width:1080px;margin:0 auto}
.svc-card{background:#fff;border:4px solid var(--c-orange);border-radius:20px;overflow:hidden;box-shadow:0 6px 0 var(--c-orange-d)}
.svc-card .svc-head{background:linear-gradient(-135deg,var(--c-orange),var(--c-orange-d));color:#fff;padding:18px 28px;display:flex;align-items:center;gap:18px}
.svc-card .svc-head .no{width:54px;height:54px;background:#fff;color:var(--c-orange);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-weight:900;font-size:22px;flex-shrink:0;border:3px solid var(--c-yellow-hl)}
.svc-card .svc-head h3{font-size:22px;font-weight:900;line-height:1.4;letter-spacing:.02em}
.svc-card .svc-head h3 small{display:block;font-size:11px;font-weight:700;opacity:.9;font-family:var(--font-num);letter-spacing:.2em;margin-bottom:2px}
.svc-body{padding:30px;display:grid;grid-template-columns:240px 1fr;gap:30px;align-items:start}
.svc-body .visual{aspect-ratio:1;background:var(--c-yellow-bg);border:3px solid var(--c-yellow-hl);border-radius:14px;display:flex;align-items:center;justify-content:center;color:var(--c-orange);box-shadow:inset 0 0 0 4px #fff}
.svc-body .visual svg{width:100px;height:100px;stroke-width:1.6}
.svc-body .copy{font-size:18px;font-weight:900;color:var(--c-text);line-height:1.6;margin-bottom:14px}
.svc-body .copy em{font-style:normal;color:var(--c-red);background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);padding:0 6px}
.svc-body p.desc{font-size:14px;line-height:1.95;color:var(--c-text);margin-bottom:20px}
.svc-body .tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.svc-body .tags span{background:var(--c-yellow-bg);border:2px solid var(--c-orange);color:var(--c-orange);font-weight:900;font-size:12px;padding:5px 14px;border-radius:50px}
.svc-body .price-line{background:var(--c-yellow-bg);border:2px dashed var(--c-orange);border-radius:10px;padding:12px 16px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.svc-body .price-line .lbl{font-size:13px;font-weight:900;color:var(--c-text)}
.svc-body .price-line .val{font-family:var(--font-num);font-size:28px;font-weight:900;color:var(--c-red);letter-spacing:0}
.svc-body .price-line .unit{font-size:13px;color:var(--c-text-l);font-weight:700}
@media(max-width:768px){
  .svc-card .svc-head{padding:14px 18px}
  .svc-card .svc-head .no{width:42px;height:42px;font-size:18px}
  .svc-card .svc-head h3{font-size:17px}
  .svc-body{grid-template-columns:1fr;padding:20px;gap:18px}
  .svc-body .visual{max-width:180px;margin:0 auto}
  .svc-body .visual svg{width:70px;height:70px}
  .svc-body .copy{font-size:15px}
  .svc-body .price-line .val{font-size:22px}
}

/* =====================================================
   Works — 施工事例 (solution / category filter / case-grid)
   ===================================================== */
.solution{background:var(--c-bg)}
.sol-list{list-style:none;display:flex;flex-direction:column;gap:40px;max-width:1080px;margin:0 auto}
.sol-item{background:#fff;border:4px solid var(--c-orange);border-radius:20px;padding:0;overflow:hidden;box-shadow:0 6px 0 var(--c-orange-d);display:grid;grid-template-columns:1fr 1fr;gap:0}
.sol-item:nth-child(even){grid-template-columns:1fr 1fr}
.sol-pics{display:flex;flex-direction:column;gap:8px;padding:24px;background:var(--c-yellow-bg)}
.sol-pic{aspect-ratio:4/3;background:#ddd center/cover;border-radius:10px;position:relative;border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.1);overflow:hidden}
.sol-pic.before{background-image:url('../images/ba-before.png')}
.sol-pic.after{background-image:url('../images/ba-after.png')}
.sol-pic::after{content:attr(data-l);position:absolute;top:8px;left:8px;background:var(--c-red);color:#fff;padding:4px 14px;font-weight:900;font-size:11px;border-radius:50px;letter-spacing:.1em;font-family:var(--font-num)}
.sol-pic.after::after{background:var(--c-green-d)}
.sol-info{padding:30px 32px;display:flex;flex-direction:column;justify-content:center}
.sol-info h3{font-size:24px;font-weight:900;color:var(--c-text);line-height:1.55;margin-bottom:14px}
.sol-info h3 em{font-style:normal;color:var(--c-red);background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);padding:0 6px}
.sol-info p{font-size:14px;line-height:1.95;color:var(--c-text);margin-bottom:18px}
.sol-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.sol-meta span{background:var(--c-yellow-bg);border:2px solid var(--c-orange);color:var(--c-orange);font-weight:900;font-size:11px;padding:4px 12px;border-radius:50px}
.sol-price{background:var(--c-yellow-bg);border:2px dashed var(--c-orange);border-radius:12px;padding:14px 18px;text-align:center;font-size:13px;font-weight:700;color:var(--c-text)}
.sol-price .num{font-family:var(--font-num);font-size:32px;font-weight:900;color:var(--c-red);margin:0 6px;letter-spacing:0;line-height:1}
.sol-price small{font-size:12px;color:var(--c-text-l);font-weight:700;display:block;margin-top:4px}
@media(max-width:768px){
  .sol-item{grid-template-columns:1fr}
  .sol-info{padding:22px}
  .sol-info h3{font-size:18px}
  .sol-price .num{font-size:24px}
}

.cat-filter{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0 auto 40px;max-width:900px}
.cat-filter span{background:#fff;border:2px solid var(--c-orange);color:var(--c-orange);font-weight:900;font-size:13px;padding:8px 20px;border-radius:50px;letter-spacing:.04em}
.cat-filter span.is-active{background:var(--c-orange);color:#fff;box-shadow:0 3px 0 var(--c-orange-d)}

.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1280px;margin:0 auto}
.case-card{background:#fff;border:3px solid var(--c-orange);border-radius:14px;overflow:hidden;box-shadow:0 4px 0 var(--c-orange-d);transition:transform .2s}
.case-card:hover{transform:translateY(-4px)}
.case-card .thumb{aspect-ratio:4/3;background:linear-gradient(135deg,#f0d8b8,#d4b87e) center/cover;position:relative}
.case-card .thumb.t1{background-image:linear-gradient(135deg,rgba(0,0,0,.2),rgba(0,0,0,.05)),url('../images/plan1-hero.png');background-size:cover}
.case-card .thumb.t2{background-image:linear-gradient(135deg,rgba(0,0,0,.2),rgba(0,0,0,.05)),url('../images/ba-after.png');background-size:cover}
.case-card .thumb.t3{background-image:linear-gradient(135deg,rgba(0,0,0,.2),rgba(0,0,0,.05)),url('../images/plan2-hero.png');background-size:cover}
.case-card .thumb.t4{background-image:linear-gradient(135deg,rgba(0,0,0,.2),rgba(0,0,0,.05)),url('../images/plan3-hero.png');background-size:cover}
.case-card .thumb.t5{background-image:linear-gradient(135deg,rgba(0,0,0,.2),rgba(0,0,0,.05)),url('../images/plan4-interior.png');background-size:cover}
.case-card .thumb.t6{background-image:linear-gradient(135deg,rgba(0,0,0,.2),rgba(0,0,0,.05)),url('../images/ba-before.png');background-size:cover}
.case-card .thumb .cat{position:absolute;top:10px;left:10px;background:var(--c-orange);color:#fff;font-weight:900;font-size:11px;padding:4px 14px;border-radius:50px;letter-spacing:.05em}
.case-card .body{padding:18px 18px 20px}
.case-card .body h4{font-weight:900;font-size:15px;color:var(--c-text);line-height:1.55;margin-bottom:8px}
.case-card .body .meta{display:flex;justify-content:space-between;font-size:11px;color:var(--c-text-l);font-weight:700;border-top:2px dotted #ddd;padding-top:10px;margin-top:10px}
.case-card .body .meta .price{color:var(--c-red);font-family:var(--font-num);font-weight:900}
@media(max-width:900px){.case-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.case-grid{grid-template-columns:1fr}}

/* =====================================================
   Recruit — 働く魅力 / 募集職種 / 福利厚生 / 選考フロー
   ===================================================== */
.rec-merit{background:var(--c-yellow-bg)}
.merit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1080px;margin:0 auto}
.merit-card{background:#fff;border:3px solid var(--c-orange);border-radius:18px;padding:28px 22px;text-align:center;box-shadow:0 5px 0 var(--c-orange-d);position:relative}
.merit-card .num{position:absolute;top:-14px;left:-14px;background:var(--c-yellow-hl);color:var(--c-red);width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-weight:900;font-size:18px;border:3px solid #fff;box-shadow:0 3px 8px rgba(0,0,0,.15)}
.merit-card .icon{width:72px;height:72px;background:linear-gradient(-135deg,var(--c-green-l),var(--c-green));border-radius:50%;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 12px rgba(52,182,27,.3)}
.merit-card .icon svg{width:34px;height:34px;stroke-width:2.2}
.merit-card h4{font-weight:900;font-size:17px;color:var(--c-text);line-height:1.5;margin-bottom:10px}
.merit-card h4 em{font-style:normal;color:var(--c-red);background:linear-gradient(transparent 60%,var(--c-yellow-hl) 0%);padding:0 4px}
.merit-card p{font-size:13px;line-height:1.9;color:var(--c-text-l)}
@media(max-width:768px){.merit-grid{grid-template-columns:1fr}}

.rec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;max-width:1080px;margin:0 auto}
.rec-c{background:#fff;border:3px solid var(--c-orange);border-radius:18px;padding:30px;box-shadow:0 5px 0 var(--c-orange-d);position:relative}
.rec-t{display:inline-block;background:var(--c-orange);color:#fff;padding:5px 16px;border-radius:50px;font-size:11px;margin-bottom:14px;font-weight:900;letter-spacing:.08em}
.rec-c h3{font-size:22px;color:var(--c-text);font-weight:900;margin-bottom:10px;line-height:1.45}
.rec-sal{color:var(--c-red);font-weight:900;font-size:18px;font-family:var(--font-num);margin-bottom:16px;background:var(--c-yellow-bg);padding:8px 14px;border-radius:10px;display:inline-block;letter-spacing:.02em}
.rec-c p{font-size:13px;line-height:1.95;color:var(--c-text);margin-bottom:14px}
.rec-list{list-style:none;display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--c-text)}
.rec-list li{padding-left:20px;position:relative;line-height:1.7}
.rec-list li::before{content:"✓";position:absolute;left:0;color:var(--c-green-d);font-weight:900}
@media(max-width:768px){.rec-grid{grid-template-columns:1fr}}

.welfare{background:var(--c-bg)}
.welfare-list{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:1080px;margin:0 auto}
.welfare-list li{background:#fff;border:3px solid var(--c-yellow-hl);border-radius:14px;padding:22px 14px;text-align:center;box-shadow:0 4px 0 #d4c136;list-style:none}
.welfare-list li .ico-wrap{width:54px;height:54px;background:var(--c-yellow-bg);border-radius:50%;margin:0 auto 10px;display:flex;align-items:center;justify-content:center;color:var(--c-orange)}
.welfare-list li .ico-wrap svg{width:26px;height:26px;stroke-width:2.2}
.welfare-list li strong{display:block;font-weight:900;font-size:14px;color:var(--c-text);line-height:1.4;margin-bottom:4px}
.welfare-list li span{font-size:11px;color:var(--c-text-l);line-height:1.6}
@media(max-width:768px){.welfare-list{grid-template-columns:repeat(2,1fr)}}

.rec-flow{background:var(--c-yellow-bg)}
.rec-flow-list{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:1080px;margin:0 auto;position:relative}
.rec-flow-step{background:#fff;border:3px solid var(--c-orange);border-radius:14px;padding:22px 18px;text-align:center;box-shadow:0 4px 0 var(--c-orange-d);position:relative}
.rec-flow-step .step{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--c-orange);color:#fff;padding:4px 16px;border-radius:50px;font-family:var(--font-num);font-weight:900;font-size:11px;letter-spacing:.08em;white-space:nowrap}
.rec-flow-step .icon{width:54px;height:54px;background:var(--c-yellow-bg);border-radius:50%;margin:18px auto 12px;display:flex;align-items:center;justify-content:center;color:var(--c-orange)}
.rec-flow-step .icon svg{width:26px;height:26px;stroke-width:2.2}
.rec-flow-step h4{font-weight:900;font-size:15px;color:var(--c-text);margin-bottom:8px;line-height:1.5}
.rec-flow-step p{font-size:12px;line-height:1.8;color:var(--c-text-l)}
@media(max-width:900px){.rec-flow-list{grid-template-columns:repeat(2,1fr)}}

/* =====================================================
   News (お知らせ一覧)
   ===================================================== */
.news-list-page{max-width:1000px;margin:0 auto}
.news-row{display:grid;grid-template-columns:120px 96px 1fr;gap:24px;padding:22px 6px;border-bottom:1px solid #e5dccc;align-items:baseline;transition:background .2s}
.news-row:first-child{border-top:3px solid var(--c-orange)}
.news-row:hover{background:var(--c-yellow-bg)}
.news-row .d{font-family:var(--font-num);font-size:14px;color:var(--c-orange);font-weight:900;letter-spacing:.02em}
.news-row .c{font-size:11px;color:#fff;background:var(--c-orange);padding:3px 10px;text-align:center;justify-self:start;border-radius:50px;font-weight:900;letter-spacing:.05em;line-height:1.3}
.news-row .c.media{background:var(--c-green-d)}
.news-row .c.recruit{background:var(--c-red)}
.news-row .t{font-size:15px;color:var(--c-text);font-weight:700;line-height:1.7}
.news-pager{display:flex;justify-content:center;gap:8px;margin-top:48px}
.news-pager a,.news-pager span{min-width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-weight:900;font-size:14px;border-radius:8px;border:2px solid var(--c-orange);color:var(--c-orange);padding:0 12px}
.news-pager .is-current{background:var(--c-orange);color:#fff}
@media(max-width:768px){
  .news-row{grid-template-columns:90px 1fr;grid-template-rows:auto auto;gap:8px 14px;padding:16px 4px}
  .news-row .d{grid-row:1}
  .news-row .c{grid-row:1;justify-self:end}
  .news-row .t{grid-column:1/-1;font-size:13.5px}
}

/* =====================================================
   Contact 強化 (info-strip / form 改良)
   ===================================================== */
.contact-info{background:var(--c-yellow-bg);padding:48px 0}
.contact-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1080px;margin:0 auto;padding:0 40px}
.contact-info-card{background:#fff;border:3px solid var(--c-orange);border-radius:16px;padding:24px;text-align:center;box-shadow:0 4px 0 var(--c-orange-d)}
.contact-info-card .icon{width:60px;height:60px;background:linear-gradient(-135deg,var(--c-orange),var(--c-orange-d));border-radius:50%;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 3px 8px rgba(233,82,0,.2)}
.contact-info-card .icon svg{width:28px;height:28px;stroke-width:2.2}
.contact-info-card .lbl{font-size:12px;font-weight:900;color:var(--c-orange);letter-spacing:.1em;margin-bottom:6px}
.contact-info-card .val{font-family:var(--font-num);font-size:24px;font-weight:900;color:var(--c-text);line-height:1.2;letter-spacing:.01em}
.contact-info-card .sub{font-size:12px;color:var(--c-text-l);margin-top:6px;font-weight:700;line-height:1.6}
@media(max-width:768px){
  .contact-info{padding:30px 0}
  .contact-info-grid{grid-template-columns:1fr;gap:14px;padding:0 20px}
  .contact-info-card .val{font-size:20px}
}

.form-sec.std{padding:80px 0}
.form-sec.std .container{max-width:960px}
.form-sec.std .form-box{background:#fff;border:3px solid var(--c-orange);border-radius:20px;padding:40px;box-shadow:0 6px 0 var(--c-orange-d);max-width:100%;margin:0;padding:40px 44px}
@media(max-width:768px){.form-sec.std .form-box{padding:24px 18px}}

/* =====================================================
   Service Cards section — basic-grid override for sub-pages
   ===================================================== */
.sec.basic{background:var(--c-beige)}
.sec.basic .basic-grid{padding:0}

/* sub-page footer/CTA reset overrides */
.foot-cta h2 em{font-size:1.15em}

/* General utility text helpers */
.txt-center{text-align:center}
.mt-40{margin-top:40px}
.mt-60{margin-top:60px}

/* Print-safe svg color fallback inside .basic-card icon */
.basic-card .icon svg{color:#fff}

/* ===== ハンバーガーメニュー基盤（PC版は非表示） ===== */
.nav-toggle{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
.hamburger{display:none}
.fv-header li.burger{display:none}
.nav-backdrop{display:none}

/* =====================================================
   📱 Mobile UX Overhaul（スマホ版のみ・PC版に影響なし）
   - 設計者: スマホHPに強いデザイナー添削版
   - すべて @media(max-width:768px) でラップ、PC版未変更
   ===================================================== */
@media(max-width:768px){

  /* ---- iOSセーフエリア＆スクロール基盤 ---- */
  html{font-size:15px}
  body{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
  *,*::before,*::after{-webkit-tap-highlight-color:rgba(0,0,0,0)}
  a,button{touch-action:manipulation}

  /* ---- ヘッダー：ロゴ＋電話アイコン＋お見積りCTA＋ハンバーガー ---- */
  .fv-header{padding:8px 0;position:sticky;top:0;z-index:100;background:rgba(251,250,225,.96);backdrop-filter:saturate(140%) blur(6px);-webkit-backdrop-filter:saturate(140%) blur(6px);box-shadow:0 1px 4px rgba(0,0,0,.06)}
  .fv-header-inner{flex-wrap:nowrap;justify-content:space-between;gap:8px;padding:0 12px}
  .fv-header ul{gap:6px;flex-shrink:0;align-items:center}
  .fv-header .tel{gap:0}
  .fv-header li.tel .tel-info{display:none}             /* 大きな電話番号テキストは下部FCTAに集約 */
  .fv-header .tel-ico{width:36px;height:36px}
  .fv-header .tel-ico .ico{width:17px;height:17px;top:6px}
  .fv-header .tel-ico-label{font-size:7px;bottom:4px}
  .logo-mark{width:34px;height:34px;font-size:17px}
  .logo-text{font-size:11.5px;letter-spacing:0}
  .logo-text small{font-size:8px;margin-top:1px}
  .fv-header .contact .btn{padding:8px 10px;font-size:10.5px;box-shadow:0 2px 0 #b83d1a;border-radius:24px;gap:2px;line-height:1.2}
  .fv-header .contact .btn em{font-size:9.5px;padding:1px 4px;margin-left:2px}

  /* ハンバーガーボタン（fv-header / sub-page header どちらにも対応） */
  .fv-header li.burger{display:flex;list-style:none}
  .hamburger{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:36px;height:36px;border-radius:8px;background:#fff;border:2px solid var(--c-orange);box-shadow:0 2px 0 var(--c-orange-d);cursor:pointer;transition:.2s;flex-shrink:0}
  .hamburger:active{transform:translateY(1px);box-shadow:0 1px 0 var(--c-orange-d)}
  .hamburger span{display:block;width:18px;height:2.5px;background:var(--c-orange);border-radius:2px;transition:transform .25s,opacity .2s}
  /* 開閉時のアニメーション（×印に変化） */
  .nav-toggle:checked ~ .fv-header .hamburger span:nth-child(1),
  .nav-toggle:checked ~ .header .hamburger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
  .nav-toggle:checked ~ .fv-header .hamburger span:nth-child(2),
  .nav-toggle:checked ~ .header .hamburger span:nth-child(2){opacity:0}
  .nav-toggle:checked ~ .fv-header .hamburger span:nth-child(3),
  .nav-toggle:checked ~ .header .hamburger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

  /* サブページヘッダー（.header）にハンバーガー＋電話番号は省略 */
  .header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);backdrop-filter:saturate(140%) blur(6px);-webkit-backdrop-filter:saturate(140%) blur(6px);box-shadow:0 1px 4px rgba(0,0,0,.06)}
  .header-inner{padding:0 12px;gap:8px}
  .header-tel{display:none}
  .header-btn{padding:9px 14px;font-size:11.5px;box-shadow:0 2px 0 #b83d1a;border-radius:24px;gap:3px;line-height:1.2}
  .header .hamburger{margin-left:4px}

  /* ---- グローバルナビ：通常時は非表示、ハンバーガークリックでスライドダウン ---- */
  .gnav{position:fixed;top:0;right:0;width:78%;max-width:320px;height:100vh;background:#fff;z-index:120;box-shadow:-6px 0 20px rgba(0,0,0,.18);transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);overflow-y:auto;border-bottom:none;display:block;padding-top:64px}
  .nav-toggle:checked ~ .gnav{transform:translateX(0)}
  .gnav-inner{flex-direction:column;height:auto;padding:0;gap:0;mask-image:none;-webkit-mask-image:none;justify-content:flex-start;align-items:stretch}
  .gnav a{font-size:15px;font-weight:800;padding:18px 24px;border-bottom:1px solid #f0e6d6;width:100%;border-bottom-color:#f0e6d6;letter-spacing:.04em}
  .gnav a:hover,.gnav a.is-current{background:var(--c-yellow-bg);color:var(--c-orange);border-bottom-color:#f0e6d6}
  .gnav a.is-current::before{content:"●";color:var(--c-orange);margin-right:8px;font-size:.7em}

  /* 背景オーバーレイ（タップでメニューを閉じる） */
  .nav-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,0);z-index:110;pointer-events:none;transition:background .3s}
  .nav-toggle:checked ~ .nav-backdrop{background:rgba(0,0,0,.45);pointer-events:auto}

  /* メニュー開いている間はスクロール抑制 */
  .nav-toggle:checked ~ .mv,
  .nav-toggle:checked ~ section,
  .nav-toggle:checked ~ footer{overflow:hidden}

  /* ============================
     🎯 HERO 完全リデザイン（スマホ）
     - PC版の写真背景（家のイラスト）を活かす
     - 雲・太陽の装飾も小さめに復活
  ============================ */
  .mv{padding:16px 0 18px;min-height:auto;background:var(--c-yellow-bg) url('../images/hero-bg.png') center bottom/180% auto no-repeat;overflow:visible;position:relative}
  .mv::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--c-yellow-bg) 0%,rgba(251,250,225,.4) 35%,rgba(251,250,225,.1) 65%,transparent 100%);pointer-events:none;z-index:0;display:block}
  /* 雲と太陽は控えめに復活 */
  .mv-decor{display:block}
  .mv-decor .cloud{opacity:.85}
  .mv-decor .cloud-1{width:56px;top:4%;left:4%}
  .mv-decor .cloud-2{width:44px;top:14%;left:auto;right:8%}
  .mv-decor .cloud-3{width:50px;top:24%;left:8%}
  .mv-decor .cloud-4{display:none}
  .mv-decor .cloud-5{display:none}
  .mv-decor .sun{width:60px;top:2%;right:4%;opacity:.9}
  .mv-inner{padding:0 16px;min-height:auto;position:relative;z-index:1}

  /* mv-box: 縦積みに一本化、不要なgap除去 */
  .mv-box{display:block;gap:0;margin:0;min-height:auto;width:100%}
  .mv-text{order:0;text-align:center;padding:0;margin:0}

  /* 「経験豊富な職人」装飾→シンプルな黄色ピル1個に置換 */
  .mv-ttl-01{display:inline-flex;font-size:12px;font-weight:900;line-height:1.3;background:#fff;color:var(--c-text);padding:6px 16px;border-radius:50px;border:2px solid var(--c-orange);box-shadow:0 2px 0 var(--c-orange-d);margin:0 auto 14px;gap:0;align-items:center}
  .mv-ttl-01 .bar-l,.mv-ttl-01 .bar-r{display:none}
  .mv-ttl-01::before,.mv-ttl-01::after{display:none}
  .mv-ttl-01 br{display:none}

  /* h1: インパクト最大化。20px幅でも余裕で収まる設計 */
  .mv h1{font-size:26px;line-height:1.42;margin-bottom:12px;letter-spacing:-.01em;font-weight:900;text-shadow:0 1px 0 rgba(255,255,255,.6)}
  .mv h1 .line{display:block;white-space:normal}
  .mv h1 em{padding:0 6px;background:linear-gradient(transparent 58%,var(--c-yellow-hl) 0%);color:var(--c-orange-d)}
  .mv h1 strong{display:inline-block;font-size:1em;color:var(--c-red);margin-top:2px;letter-spacing:.01em}

  /* サブコピー：白フキダシ風で読みやすく */
  .mv-sub{font-size:12.5px;line-height:1.7;padding:10px 16px;border-radius:12px;background:rgba(255,255,255,.92);max-width:none;margin:0 0 14px;color:var(--c-text);font-weight:600;display:block;text-align:center}
  .mv-sub br{display:inline}

  /* 職人画像と満足度バッジを横並びコンパクト構図に */
  .mv-pic{order:1;max-width:none;margin:0 auto;position:relative;display:flex;justify-content:center;align-items:flex-end;min-height:200px}
  .mv-pic img{max-width:220px;max-height:280px;width:auto;margin:0 auto;filter:drop-shadow(0 6px 14px rgba(0,0,0,.18))}
  .mv-pic::after{display:none}

  /* 満足度バッジ：画像横にクリアに配置 */
  .satisfaction{position:absolute;width:96px;height:96px;top:12px;right:8px;left:auto;border-width:3px;transform:rotate(-8deg);box-shadow:0 0 0 3px rgba(255,236,71,.4),0 6px 14px rgba(0,0,0,.18);animation:none;background:var(--c-yellow-hl)}
  .satisfaction::before,.satisfaction::after{display:none}
  .satisfaction .top{font-size:10px;font-weight:900}
  .satisfaction .big{font-size:32px;line-height:.9}
  .satisfaction .big small{font-size:15px}
  .satisfaction .bot{font-size:9px}

  /* 5つのポイント：3+2の堂々レイアウト */
  .mv-point{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;padding:0;margin:18px auto 0;max-width:none;width:100%;justify-self:stretch}
  .mv-point li{grid-column:span 2;min-height:0;aspect-ratio:1;padding:14px 6px;border-radius:50%;background:linear-gradient(180deg,#ff8b1a,var(--c-orange-d));box-shadow:0 4px 0 #b83d1a,0 6px 14px rgba(233,82,0,.25);border:3px solid #fff}
  .mv-point li:nth-child(4){grid-column:2/span 2}
  .mv-point li:nth-child(5){grid-column:4/span 2}
  .mv-point li::before{display:none}
  .mv-point li strong{font-size:20px;font-weight:900;color:#fff;margin-bottom:3px;line-height:1;letter-spacing:-.03em;text-shadow:0 1px 2px rgba(0,0,0,.15)}
  .mv-point li span{font-size:11px;line-height:1.3;font-weight:900;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.1)}

  /* ---- サービス9マス → 4×2に整列 ---- */
  .mv-service{padding:0 0 18px}
  .mv-service .label-band{font-size:14px;padding:10px 0 4px;letter-spacing:.1em}
  .mv-service .label-band::before{left:calc(50% - 78px);width:24px}
  .mv-service .label-band::after{right:calc(50% - 78px);width:24px}
  .mv-service .inner{padding:14px 14px 18px}
  .mv-service ul{grid-template-columns:repeat(4,1fr);gap:8px}
  .mv-service li{padding:10px 4px;border-radius:10px;border-width:2px}
  .mv-service li .ico{height:30px;margin-bottom:4px}
  .mv-service li .ico .ico{width:24px;height:24px}
  .mv-service li .name{font-size:10.5px;line-height:1.25}

  /* ---- 横スライダー：高さ抑えめ ---- */
  .slide-item,.slide-track img{width:200px;height:140px}

  /* ---- 悩み訴求：折返しを整える ---- */
  .worry{padding:42px 0 30px}
  .worry .inner{padding:0 16px}
  .worry-h{margin-bottom:24px}
  .worry-h .pre{font-size:11px;padding:3px 16px;margin-bottom:10px}
  .worry h2{font-size:20px;letter-spacing:0;line-height:1.5}
  .worry-list{gap:12px}
  .worry-list li{font-size:13.5px;line-height:1.7;padding:13px 16px 13px 48px;border-width:2px;border-radius:12px}
  .worry-list li::before{width:26px;height:26px;font-size:16px;left:10px}

  /* ---- 解決例カード（ex）：タイトル崩れを完全修正 ---- */
  .ex{padding:30px 0 40px}
  .ex .inner{padding:0 14px}
  .ex-list{gap:22px}
  .ex-list li{border-width:3px;border-radius:14px}

  /* ★ ex-h3 の縦書きバグ修正：display:flexやめてblock＋left padding */
  .ex-h3{display:block;padding:14px 16px 14px 60px;font-size:15.5px;line-height:1.6;letter-spacing:0;position:relative;font-weight:900;text-align:left;background:var(--c-orange);color:#fff}
  .ex-h3::before{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:36px;height:36px;font-size:16px;margin:0}
  .ex-h3 em{display:inline;background:var(--c-yellow-hl);color:var(--c-red);padding:1px 6px;border-radius:4px;white-space:nowrap;font-size:.95em;margin:0 2px}

  .ex-body{padding:16px;gap:14px}
  .ex-pics{flex-direction:row;gap:8px}
  .ex-pics .ex-pic{flex:1;aspect-ratio:1;border-width:2px;border-radius:8px}
  .ex-pic::after{font-size:9px;padding:3px 8px;top:6px;left:6px}
  .ex-mark{padding:8px 14px;font-size:12px;margin-bottom:10px;box-shadow:0 2px 0 var(--c-green-d)}
  .ex-solution{font-size:15.5px;line-height:1.55;margin-bottom:10px}
  .ex-body>div>p[style]{font-size:12px !important;line-height:1.8 !important;margin-bottom:10px !important}
  .ex-price{padding:12px;border-width:2px;border-radius:10px}
  .ex-price-label{font-size:11px;margin-bottom:2px}
  .ex-price .num{font-size:26px}
  .ex-price small{font-size:11px}
  .ex-attention{font-size:10px;line-height:1.5;margin-top:6px}

  /* ---- マンガ：吹出しを読みやすく ---- */
  .manga{padding:40px 0}
  .manga .inner{padding:0 14px}
  .manga-box{padding:20px 14px;border-width:3px;border-radius:18px}
  .manga-h{font-size:16px;margin-bottom:20px;line-height:1.55}
  .manga-grid.r{grid-template-columns:1fr 56px;gap:10px}
  .manga-grid.l{grid-template-columns:56px 1fr;gap:10px}
  .manga-char{width:56px;height:56px;border-width:2px}
  .manga-bubble{font-size:12.5px;padding:11px 14px;border-width:2px;border-radius:14px;line-height:1.7}

  /* ---- お任せください ---- */
  .leave{padding:40px 0}
  .leave-inner{padding:0 16px}
  .leave-h{gap:12px;margin-bottom:20px}
  .leave-ttl-01{font-size:13px;padding:5px 14px}
  .leave-ttl-02{font-size:19px;line-height:1.5}
  .leave-txt{font-size:13px;line-height:1.85;margin-bottom:20px}
  .satisfaction-leave{width:96px;height:96px;border-width:4px}
  .satisfaction-leave .big{font-size:30px}
  .satisfaction-leave .big small{font-size:14px}

  /* 5ポイント円：MV同様3+2レイアウト＋番号バッジ非表示 */
  .leave-points{grid-template-columns:repeat(6,1fr);gap:10px;max-width:320px;padding:0;margin-left:auto;margin-right:auto}
  .leave-points li{grid-column:span 2;padding:10px 4px;border-width:2px;aspect-ratio:1}
  .leave-points li:nth-child(4){grid-column:2/span 2}
  .leave-points li:nth-child(5){grid-column:4/span 2}
  .leave-points li::before{display:none}
  .leave-points li strong{font-size:15px;line-height:1;margin-bottom:2px;letter-spacing:-.02em}
  .leave-points li span{font-size:10px;line-height:1.3}

  /* ---- 対応エリア ---- */
  .area{padding:40px 0}
  .area-inner{padding:0 16px}
  .area h2{font-size:19px;line-height:1.5;margin-bottom:14px}
  .area-sub{font-size:13px;margin-bottom:18px}
  .area-list{padding:18px;gap:14px;border-radius:12px}
  .area-block h4{font-size:15px;padding-bottom:5px;margin-bottom:6px;border-bottom-width:2px}
  .area-block p{font-size:12.5px;line-height:1.85}

  /* ---- 基本サービス一覧 ---- */
  .basic{padding:42px 0}
  .basic-h{margin-bottom:24px}
  .basic-h h2{font-size:20px}
  .basic-h p{font-size:12.5px;margin-top:6px}
  .basic-grid{gap:12px;padding:0 14px}
  .basic-card{padding:18px 10px;border-width:2px;box-shadow:0 3px 0 #d4c136}
  .basic-card .icon{width:56px;height:56px;margin-bottom:8px;border-width:2px;box-shadow:0 2px 0 var(--c-orange-d)}
  .basic-card .icon .ico{width:26px;height:26px}
  .basic-card h4{font-size:13.5px;margin-bottom:4px}
  .basic-card p{font-size:10.5px;line-height:1.55}

  /* ---- 6つの安心 ---- */
  .anshin{padding:42px 0}
  .anshin-h{margin-bottom:24px}
  .anshin-h h2{font-size:20px;line-height:1.5}
  .anshin-list{padding:0 14px;gap:14px}
  .anshin-item{padding:16px;grid-template-columns:54px 1fr;gap:12px;border-width:2px;border-radius:12px;box-shadow:0 3px 0 var(--c-orange-d)}
  .anshin-num{width:54px;height:54px;border-width:3px;box-shadow:0 0 0 2px var(--c-orange)}
  .anshin-num small{font-size:8px}
  .anshin-num em{font-size:22px}
  .anshin-body h4{font-size:16px;margin-bottom:5px;line-height:1.45}
  .anshin-body p{font-size:12.5px;line-height:1.8}

  /* ---- 料金比較表：列を整理しコンパクトに ---- */
  .price{padding:42px 0}
  .price-h{margin-bottom:18px}
  .price-h h2{font-size:18px;line-height:1.5;padding:0 16px}
  .price-h p{font-size:12px;padding:0 16px;margin-top:6px}
  .price-cmp{padding:0 12px}
  .price-table{border-width:3px;border-radius:12px}
  .price-row{grid-template-columns:1.4fr .9fr .9fr 1fr}
  .price-row.head>div{padding:9px 2px;font-size:10px;letter-spacing:0;line-height:1.2}
  .price-row.head .us{font-size:10.5px}
  .price-row.head .us::before{font-size:8px;padding:1px 5px;top:-7px;letter-spacing:0;white-space:nowrap}
  .price-cell{padding:10px 2px;font-size:11px;line-height:1.35}
  .price-cell.label{padding-left:8px;font-size:11px;font-weight:800}
  .price-cell.us{font-size:13px;letter-spacing:-.02em}
  .price-cell.other{font-size:11px}
  .price-note{font-size:10.5px;text-align:center;margin-top:10px;padding:0 4px}

  .campaign{padding:24px 16px 20px;margin-top:24px;border-radius:14px;border-width:4px}
  .campaign::before{width:30px;height:30px;font-size:16px;top:-15px;border-width:2px}
  .campaign h3{font-size:15px;line-height:1.55}
  .campaign h3 em{padding:3px 10px;margin:0 3px}
  .campaign .big{font-size:32px;margin:6px 0}
  .campaign p{font-size:11px;line-height:1.6}

  /* ---- CTA中盤 ---- */
  .cta-mid{padding:32px 16px}
  .cta-mid h3{font-size:17px;margin-bottom:14px;line-height:1.55}
  .cta-mid h3 em{padding:2px 8px}
  .cta-mid-buttons{gap:10px}
  .cta-mid-buttons a{padding:14px;border-radius:12px;box-shadow:0 4px 0 rgba(0,0,0,.2)}
  .cta-mid-buttons small{font-size:10px}
  .cta-mid-buttons .num{font-size:22px}
  .cta-mid-buttons .hours{font-size:10.5px}
  .cta-mid-buttons a.form{font-size:16px}

  /* ---- サービスの流れ ---- */
  .flow{padding:42px 0}
  .flow-h{margin-bottom:22px}
  .flow-h p{font-size:12.5px;margin-top:6px}
  .flow-list{grid-template-columns:1fr 1fr;gap:14px;padding:0 14px}
  .flow-step{padding:22px 10px 16px;border-width:2px;border-radius:12px;box-shadow:0 3px 0 var(--c-orange-d)}
  .flow-step .step{padding:3px 12px;font-size:10.5px;top:-10px}
  .flow-step .icon{height:38px;margin:6px 0 8px}
  .flow-step .icon .ico{width:30px;height:30px}
  .flow-step h4{font-size:13.5px;margin-bottom:4px}
  .flow-step p{font-size:11px;line-height:1.55}

  /* ---- お客様の声 ---- */
  .voice{padding:42px 0}
  .voice-h{margin-bottom:22px}
  .voice-list{padding:0 14px;gap:14px}
  .voice-card{padding:18px;border-width:2px;border-radius:12px;box-shadow:0 3px 0 var(--c-orange-d)}
  .voice-stars{font-size:17px;margin-bottom:6px}
  .voice-card h4{font-size:15px;margin-bottom:8px;line-height:1.55}
  .voice-card p{font-size:12.5px;line-height:1.85;margin-bottom:12px}
  .voice-meta{gap:10px;padding-top:10px}
  .voice-avatar{width:40px;height:40px;font-size:16px;border-width:2px}
  .voice-meta .info{font-size:11px;line-height:1.45}

  /* ---- FAQ：開閉感を明確に ---- */
  .faq{padding:42px 0}
  .faq-h{margin-bottom:22px}
  .faq-list{padding:0 14px}
  .faq-item{margin-bottom:10px;border-width:2px;border-radius:12px;box-shadow:0 2px 0 var(--c-orange-d)}
  .faq-item summary{padding:14px 38px 14px 14px;font-size:13.5px;gap:10px;line-height:1.55}
  .faq-item summary::before{width:26px;height:26px;font-size:13px;flex-shrink:0}
  .faq-item summary::after{right:14px;font-size:20px}
  .faq-answer{padding:0 14px 14px 50px;font-size:12.5px;line-height:1.85}
  .faq-answer::before{width:24px;height:24px;font-size:12px}

  /* ---- フォーム：入力UXの最適化（iOS Zoom防止＝font-size:16px厳守） ---- */
  .form-sec{padding:42px 0}
  .form-h{margin-bottom:20px}
  .form-box{padding:0 14px}
  .form-inner{padding:20px 16px;border-width:2px;border-radius:14px;box-shadow:0 4px 0 var(--c-orange-d)}
  .form-row{margin-bottom:14px}
  .form-row label{font-size:13px;margin-bottom:5px}
  .form-row label .req{font-size:9.5px;padding:1px 7px;margin-left:5px}
  .form-row input,.form-row select,.form-row textarea{padding:13px 14px;font-size:16px;border-radius:10px;border-width:2px}
  .form-row textarea{min-height:96px}
  .form-submit{margin-top:18px}
  .form-submit button{width:100%;padding:17px;font-size:17px;border-radius:50px;box-shadow:0 4px 0 #b83d1a}
  .form-note{font-size:10.5px;margin-top:10px}

  /* ---- フッターCTA ---- */
  .foot-cta{padding:46px 16px 40px}
  .foot-cta::before{width:48px;height:48px;top:-24px}
  .foot-cta h2{font-size:20px;line-height:1.5;margin-bottom:8px;margin-top:14px}
  .foot-cta p{font-size:13px;margin-bottom:18px;line-height:1.75}
  .foot-buttons{gap:10px}
  .foot-buttons a{padding:14px;border-radius:12px}
  .foot-buttons .num{font-size:22px}

  /* ---- フッター ---- */
  footer{padding:36px 0 16px}
  .footer-inner{padding:0 18px;gap:20px;margin-bottom:20px}
  .footer-logo .logo-mark{width:42px;height:42px;font-size:20px}
  .footer-logo .logo-text{font-size:14px}
  .footer-desc{font-size:11.5px;line-height:1.85;margin-top:10px}
  .footer-block h5{font-size:13px;margin-bottom:8px}
  .footer-block p{font-size:11.5px;line-height:1.85}
  .footer-block .num{font-size:15px}
  .footer-bottom{font-size:10px;padding-top:16px;line-height:1.5;padding-left:14px;padding-right:14px}

  /* ---- フローティングCTA：セーフエリア対応＆視認性UP ---- */
  .fcta{padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));gap:8px;box-shadow:0 -4px 16px rgba(0,0,0,.18)}
  .fcta a{padding:12px 6px;font-size:13.5px;border-radius:12px;gap:0;font-weight:900}
  .fcta a small{font-size:9.5px;margin-bottom:3px;opacity:.9}
  .fcta .tel{box-shadow:0 3px 0 #2E7031}
  .fcta .form{box-shadow:0 3px 0 #B83D1A}
}

/* 360px以下：超狭幅デバイス向けの追加調整 */
@media(max-width:360px){
  .mv h1{font-size:20.5px}
  .mv-point li strong{font-size:16px}
  .mv-point li span{font-size:9px}
  .leave-points li strong{font-size:12px}
  .leave-points li span{font-size:8.5px}
  .price-row.head>div,.price-cell{font-size:10px;padding:8px 1px}
  .price-cell.us{font-size:11.5px}
}

