/* ============================================================
   LP: 請求書発送代行 (invoice) — styles
   Figma書き出しHTMLの<style>を分離。url()はimg/相対参照に調整済み。
   ============================================================ */
:root{
  --red:#e93249;
  --pink:#ec7286;
  --grad:linear-gradient(90deg,#ec7286 0%,#e93249 100%);
  --grad-rev:linear-gradient(90deg,#e93249 0%,#ec7286 100%);
  --ink:#3e3e40;
  --ink2:#55555a;
  --ink3:#5b5b60;
  --muted:#666;
  --yellow:#fffa5f;
  --ease:.3s cubic-bezier(.4,.4,0,1);
  --card-sh:0 0 16px rgba(0,0,0,.08);
  --card-sh-sm:0 4px 16px rgba(0,0,0,.04);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  color:var(--ink);background:#fff;line-height:1.8;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
body.invoice-menu-open{overflow:hidden;}
img{max-width:100%;display:block;height:auto}
a{text-decoration:none;color:inherit}
.zen{font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;}
.afacad{font-family:"Afacad",sans-serif;}
.wrap{max-width:1080px;margin:0 auto;padding:0 30px;}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}

/* English section label */
.en-label{
  font-family:"Afacad",sans-serif;font-weight:600;
  font-size:clamp(26px,5vw,36px);letter-spacing:3px;text-transform:capitalize;
  text-align:center;display:block;line-height:1.2;
  background:linear-gradient(90deg,rgba(233,50,73,.3),rgba(236,114,134,.3));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
}
.sec-h2{
  font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-weight:700;
  text-align:center;color:var(--ink);line-height:1.3;letter-spacing:1.5px;
  font-size:clamp(22px,5.2vw,40px);margin-top:10px;
}
.sec-h2 .big{font-size:clamp(30px,5.8vw,44px);}
.sec-sub{text-align:center;color:var(--muted);font-weight:500;margin-top:16px;font-size:clamp(15px,2.4vw,18px);letter-spacing:1.08px;}

/* ============ HEADER ============ */
.announce{
  background:linear-gradient(90deg,#ffecec 0%,#fff171 100%);
  text-align:center;padding:10px 90px 14px;
}
.announce p{
  font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-weight:700;
  background:linear-gradient(0deg,#ec7286,#e93249);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  letter-spacing:2.16px;line-height:1.6;font-size:clamp(18px,3vw,36px);
}
.announce .a1{font-size:clamp(22px,3.8vw,46px);}
@media(max-width:680px){
  .announce{padding:8px 24px;}
  .announce p{letter-spacing:.9px;}
  .announce .a1{font-size:22px;}
  .announce .a-no{font-size:15px;}
  .announce .a2{font-size:18px;}
}
.site-header{position:sticky;top:0;z-index:1000;}
.header-bar{
  background:rgba(255,255,255,.96);backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 24px;box-shadow:0 2px 12px rgba(0,0,0,.04);
}
.header-bar .logo{height:46px;width:auto;}
.header-actions{display:flex;align-items:center;gap:14px;}
.header-receipt-link{
  width:180px;height:50px;padding:5px 12px;
  display:flex;align-items:center;justify-content:center;
  border:1px solid #eee;border-radius:12px;background:#fff;
  transition:border-color var(--ease),background-color var(--ease);
}
.header-receipt-link img{width:150px;max-width:100%;height:auto;}
.header-receipt-link:hover,.header-receipt-link:focus-visible{
  border-color:rgba(54,135,198,.38);background:#fafdff;
}
.header-cta{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--grad);color:#fff;border-radius:96px;
  padding:0 26px;height:50px;font-weight:700;font-size:16px;letter-spacing:.6px;
  font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  transition:var(--ease);white-space:nowrap;
}
.header-cta:hover{transform:translateY(-2px);}
.header-cta img{width:22px;height:22px;}
.invoice-mobile-actions,.invoice-mobile-menu{display:none;}
@media(max-width:1100px){
  .header-receipt-link{width:150px;padding-right:10px;padding-left:10px;}
  .header-receipt-link img{width:126px;}
  .header-cta{padding-right:18px;padding-left:18px;}
}
@media(max-width:880px){
  .header-bar{padding-right:18px;padding-left:18px;}
  .header-actions{gap:10px;}
  .header-receipt-link{width:130px;height:46px;padding-right:8px;padding-left:8px;}
  .header-receipt-link img{width:110px;}
  .header-cta{height:46px;padding-right:14px;padding-left:14px;font-size:14px;}
}
@media(max-width:680px){
  .site-header{height:58px;}
  .header-bar{padding:8px 14px;}
  .header-bar .logo{height:34px;}
  .header-actions{display:none;}
  .invoice-mobile-actions{display:flex;align-items:center;gap:8px;margin-left:auto;}
  .invoice-round-action{
    width:34px;height:34px;border-radius:50%;display:flex;align-items:center;
    justify-content:center;background:var(--grad);
  }
  .invoice-round-action img{width:20px;height:20px;}
  .invoice-round-action[href^="tel:"] img{filter:brightness(0) invert(1);}
  .invoice-menu-toggle{
    position:relative;width:30px;height:34px;margin-left:4px;padding:0;border:0;
    background:transparent;cursor:pointer;
  }
  .invoice-menu-bars,.invoice-menu-bars::before,.invoice-menu-bars::after{
    position:absolute;left:50%;width:25px;height:1.5px;background:#111;
    transform:translateX(-50%);
  }
  .invoice-menu-bars{top:50%;transform:translate(-50%,-50%);}
  .invoice-menu-bars::before,.invoice-menu-bars::after{content:"";left:0;transform:none;}
  .invoice-menu-bars::before{top:-8px;}
  .invoice-menu-bars::after{top:8px;}
  .invoice-menu-close{
    display:none;position:absolute;inset:0;
    background:url("../../site/img/icon-menu.svg") center/25px 21px no-repeat;
  }
  .invoice-menu-toggle[aria-expanded="true"] .invoice-menu-bars{display:none;}
  .invoice-menu-toggle[aria-expanded="true"] .invoice-menu-close{display:block;}
  .invoice-mobile-menu{
    position:fixed;z-index:999;top:58px;right:0;bottom:0;left:0;padding:30px 20px;
    overflow-y:auto;background:#fff;outline:0;
  }
  .invoice-mobile-menu:not([hidden]){display:block;}
  .invoice-mobile-nav{
    width:220px;margin:0 auto;display:flex;flex-direction:column;align-items:center;
    gap:10px;text-align:center;
  }
  .invoice-mobile-nav a{
    width:100%;font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:15px;font-weight:500;line-height:2;letter-spacing:.9px;
  }
  .invoice-mobile-cta-list{
    width:min(100%,330px);margin:30px auto 0;display:flex;flex-direction:column;gap:16px;
  }
  .invoice-mobile-cta{
    width:100%;height:76px;padding:8px 22px;border-radius:96px;display:flex;
    flex-direction:column;align-items:center;justify-content:center;
    font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  }
  .invoice-mobile-cta small{
    padding:2px 9px;border-radius:100px;background:var(--yellow);color:var(--red);
    font-size:12px;font-weight:700;line-height:1.5;
  }
  .invoice-mobile-cta strong{font-size:17px;line-height:1.6;letter-spacing:1px;}
  .invoice-mobile-cta--primary{background:var(--grad);color:#fff;}
  .invoice-mobile-cta--outline{border:2px solid var(--red);background:#fff;color:var(--red);}
  .invoice-receipt-card{
    width:min(100%,325px);min-height:164px;margin:30px auto 0;padding:24px 30px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
    border-radius:20px;background:#fff;box-shadow:var(--card-sh);
  }
  .invoice-receipt-card>img{width:256px;height:auto;}
  .invoice-receipt-card span{
    display:flex;align-items:center;gap:8px;font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
    font-size:16px;font-weight:500;letter-spacing:.96px;
  }
  .invoice-receipt-card span svg{flex:0 0 18px;}
}

/* ============ HERO ============ */
.hero{
  position:relative;overflow:hidden;padding:64px 0 80px;
  background:
    url('img/hero-illust.webp') no-repeat,
    radial-gradient(circle at 85% 12%,rgba(236,114,134,.14),transparent 42%),
    radial-gradient(circle at 8% 82%,rgba(233,50,73,.12),transparent 42%),
    #fff;
  background-position:right -20px top 80px, 0 0, 0 0, 0 0;
  background-size:clamp(540px,52vw,920px) auto, auto, auto, auto;
}
.hero-top{
  display:flex;align-items:center;gap:40px;
  min-height:560px;
}
.hero-copy{flex:0 0 auto;width:min(520px,100%);position:relative;z-index:2;}
.hero h1{
  font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-weight:700;
  letter-spacing:3px;line-height:1.4;margin-bottom:8px;color:var(--ink);
}
.hero h1 .l1{font-size:clamp(28px,5.6vw,50px);}
.hero h1 .l1b{font-size:clamp(30px,5.8vw,51px);}
.hero h1 .sm{font-size:clamp(24px,4.3vw,38px);}
.hero h1 .auto{font-size:clamp(48px,9vw,82px);line-height:1.25;}
.hero p.lead{font-size:clamp(15px,2.6vw,20px);color:var(--ink2);line-height:2;margin:18px 0;font-weight:500;letter-spacing:.8px;}
.hero p.lead .miss{color:var(--red);}
.hero p.lead .zero{color:var(--red);font-size:1.5em;font-weight:700;font-family:"Afacad",sans-serif;vertical-align:-2px;}
.price-tag{
  display:inline-flex;align-items:baseline;gap:6px;
  position:relative;padding:10px 24px;
  margin-right:14px;margin-bottom:12px;
}
.price-tag::before{
  content:"";position:absolute;inset:0;
  border-top:1.5px solid var(--red);border-left:1.5px solid var(--red);
  border-radius:20px 0 0 0;pointer-events:none;
}
.price-tag::after{
  content:"";position:absolute;inset:0;
  border-bottom:1.5px solid var(--red);border-right:1.5px solid var(--red);
  border-radius:0 0 20px 0;
  transform:translate(14px,12px);pointer-events:none;
}
.price-tag .u{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;color:var(--red);font-size:clamp(14px,2.4vw,18px);}
.price-tag .n{font-family:"Afacad",sans-serif;font-weight:700;color:var(--red);font-size:clamp(49px,8vw,64px);line-height:1;}
.price-tag .y{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;color:var(--red);font-size:clamp(20px,3.4vw,26px);}
.hero-art{flex:1 1 auto;align-self:stretch;}

/* hero white card */
.hero-card{
  background:#fff;border-radius:32px;box-shadow:0 8px 30px rgba(0,0,0,.07);
  padding:34px 30px;margin:46px auto 0;max-width:1024px;text-align:center;
  position:relative;z-index:3;
}
.hero-card .lead-ttl{
  font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;color:var(--red);
  font-size:clamp(23px,3.8vw,31px);margin-bottom:20px;line-height:1.4;
}
.hero-card .lead-ttl .mid{color:var(--ink2);font-size:clamp(19px,2.9vw,23px);}
.hero-card .lead-ttl .nobr{white-space:nowrap;}
.hero-card .lead-ttl .sp-br{display:none;}
.hero-flow{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:18px;}
.hero-flow .steps{display:flex;align-items:flex-end;gap:8px;position:relative;padding-top:24px;}
.hero-flow .steps .cap{
  position:absolute;top:0;left:50%;transform:translateX(-30%);white-space:nowrap;
  font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;color:var(--ink2);font-size:13px;letter-spacing:.8px;
}
.hf-icn{width:58px;height:58px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.hf-icn.box{background:linear-gradient(90deg,rgba(236,114,134,.08),rgba(233,50,73,.08));}
.hf-icn img{width:34px;height:34px;}
.hf-icn .t{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;color:var(--red);font-size:10px;letter-spacing:.4px;margin-top:2px;}
.hf-arrow{color:var(--pink);font-weight:700;font-size:18px;}
.hero-flow .desc{font-family:"Hiragino Sans","Noto Sans JP";font-weight:500;color:var(--ink2);font-size:clamp(15px,2.4vw,20px);line-height:1.8;text-align:left;letter-spacing:.8px;}
.hero-service-notice{
  margin:20px 0 0;padding-top:12px;border-top:1px solid rgba(233,50,73,.12);
  color:#8b7f82;font-size:12px;font-weight:500;letter-spacing:.25px;line-height:1.6;
}

/* CTA buttons (shared) */
.cta-row{display:flex;flex-wrap:wrap;gap:22px;justify-content:center;margin-top:36px;}
.btn{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  height:80px;border-radius:96px;padding:0 30px;min-width:300px;flex:0 1 408px;
  font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;transition:var(--ease);text-align:center;
}
.btn .pill{
  background:var(--yellow);color:var(--red);font-size:13px;letter-spacing:.78px;
  border-radius:100px;padding:8px 9px 5px;line-height:1.2;
}
.btn .main{font-size:clamp(20px,3.4vw,24px);letter-spacing:0;line-height:1.2;}
.btn-fill{background:var(--grad);color:#fff;}
.btn-fill:hover{transform:translateY(-3px);}
.btn-outline{background:#fff;border:2px solid var(--red);color:var(--red);}
.btn-outline:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(233,50,73,.18);}

@media(max-width:880px){
  .hero{
    background:
      radial-gradient(circle at 85% 12%,rgba(236,114,134,.14),transparent 42%),
      radial-gradient(circle at 8% 82%,rgba(233,50,73,.12),transparent 42%),
      #fff;
  }
  .hero-top{flex-direction:column;min-height:auto;gap:0;}
  .hero-copy{display:contents;}
  .hero h1{order:1;text-align:center;}
  .hero-art{order:2;flex:none;width:100%;min-height:280px;background:url('img/hero-illust.webp') center center/contain no-repeat;margin:6px auto;}
  .price-tag{order:3;margin:6px auto 12px;}
  .hero p.lead{order:4;text-align:center;}
}
@media(max-width:680px){
  /* Hero white-card heading: force clean 2-line break, keep まるごと代行 whole */
  .hero-card .lead-ttl{font-size:21px;}
  .hero-card .lead-ttl .mid{font-size:18px;}
  .hero-card .lead-ttl .sp-br{display:inline;}
  /* Hero step-icon row: shrink boxes/gaps so the 4-icon row fits the card at 320px */
  .hf-icn{width:52px;height:52px;}
  .hf-icn img{width:30px;height:30px;}
  .hero-flow .steps{gap:6px;}
  .hf-arrow{font-size:15px;}
  .hero-service-notice{margin-top:16px;padding-top:10px;font-size:11px;letter-spacing:0;}
  /* Shared button min-width overflows small phones */
  .btn{min-width:0;}
}
/* Extra-small phones (<=340px): tighten further so nothing overflows the card */
@media(max-width:340px){
  .hero-card .lead-ttl{font-size:19px;}
  .hero-card .lead-ttl .mid{font-size:16px;}
  .hf-icn{width:46px;height:46px;}
  .hf-icn img{width:26px;height:26px;}
  .hero-flow .steps{gap:4px;}
  .hf-arrow{font-size:13px;}
  .cv-card h3{font-size:19px;letter-spacing:0;}
  .cv-card{padding:36px 18px;}
  .cv-card .btn{padding:0 14px;}
  .cv-card .btn-outline .main{font-size:15px;}
  .cv-card .btn-fill .main{font-size:19px;}
}

/* ============ PROBLEM ============ */
.sec{padding:clamp(64px,9vw,100px) 0;}
.problem{background:linear-gradient(180deg,#fff,#f8f8f8 56%,#fff);position:relative;overflow:hidden;}
/* 基本（モバイル）：縦積み。イラストは見出しとカードの間に中央配置 */
.problem .wrap{display:flex;flex-direction:column;}
.problem .prob-main{display:contents;}
.problem .prob-head{order:1;}
.problem .deco{order:2;align-self:center;display:block;width:min(300px,72%);height:auto;margin:8px auto 36px;opacity:1;pointer-events:none;}
.problem .pain-grid{order:3;}
/* デスクトップ：コンテンツ（見出し＋カード）はページ中央寄せのまま。
   イラストはその中央ブロックの「すぐ左」にアクセント配置（Figma準拠）。
   余白が足りない幅ではカード背面に潜り込ませる（z-index）。 */
@media(min-width:1281px){
  .problem .wrap{display:block;}
  .problem .prob-main{display:block;}
  /* 見出し・カードは絶対配置イラストより前面に（万一の重なり保護） */
  .problem .prob-head{position:relative;z-index:2;}
  .problem .deco{
    position:absolute;
    right:calc(50% + 405px);left:auto;
    width:min(447px,calc(50% - 413px));height:auto;
    top:50%;transform:translateY(-50%);
    object-position:center;margin:0;z-index:0;
  }
}
.prob-head h2{margin-bottom:50px;}
.prob-head .hl{background:linear-gradient(transparent 85%,rgba(236,114,134,.32) 85%);padding:0 3px;}
.prob-head .stress{color:var(--red);font-size:1.2em;}
.pain-grid{display:flex;flex-wrap:wrap;gap:30px;max-width:920px;margin:0 auto;justify-content:center;position:relative;z-index:2;}
.pain-card{
  background:#fff;border:1px solid #f0f0f0;border-radius:24px;
  box-shadow:var(--card-sh);display:flex;align-items:center;gap:14px;
  padding:29px 31px;flex:1 1 410px;max-width:445px;min-height:140px;transition:var(--ease);
}
.pain-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(0,0,0,.1);}
.pain-ic{width:42px;height:42px;border-radius:32px;background:#f1f1f1;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.pain-ic img{width:24px;height:24px;}
.pain-card p{font-family:"Hiragino Sans","Noto Sans JP";font-weight:600;font-size:clamp(15px,2.4vw,18px);line-height:1.6;letter-spacing:1px;}
.pain-card p .r{color:var(--red);}
/* Problem SP overrides */
@media(max-width:768px){
  .problem{padding-top:40px;padding-bottom:60px;}
  .prob-head .stress{font-size:1.2em;}
  .pain-card{padding:16px 21px;}
  .pain-ic{width:22px;height:22px;border-radius:32px;}
  .pain-ic img{width:14px;height:14px;}
  .problem .pain-grid{margin-left:-20px;margin-right:-20px;}
  .problem .pain-card{flex:1 1 350px;max-width:350px;}
  .problem .deco{width:180px;height:142px;object-fit:cover;margin:10px auto 10px;}
}

/* ============ SOLUTION ============ */
.solution-outer{position:relative;}
.sol-badge{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  z-index:10;display:flex;flex-direction:column;align-items:center;
}
.sol-badge-pill{
  display:inline-block;background:#fff;border-radius:80px;margin-top:-29px;
  padding:5px 36px;font-family:"Zen Kaku Gothic New","Noto Sans JP";
  font-weight:700;color:var(--red);font-size:clamp(20px,5.3vw,26px);letter-spacing:1.56px;
  box-shadow:0 4px 16px rgba(0,0,0,.06);white-space:nowrap;
}
.sol-badge-pill .stress{letter-spacing:3.64px;}
.sol-badge-tri{width:0;height:0;border:10px solid transparent;border-top-color:#fff;margin-top:-1px;}
.solution{
  position:relative;
  background:linear-gradient(-68deg,#ffecec 6%,#fffce4 98%);
  padding:clamp(78px,9vw,104px) 0;
}
/* 右写真：右上に大きく、上端・右端から見切れ、左側の角のみ丸め */
.solution .photo.right{
  position:absolute;top:-50px;right:0;z-index:0;
  width:clamp(340px,30vw,572px);aspect-ratio:572/390;height:auto;
  object-fit:cover;object-position:center;
  border-radius:60px 0 0 60px;
}
/* 左写真：左下に配置、全角丸め、見切れなし */
.solution .photo.left{
  position:absolute;bottom:-36px;left:clamp(0px,4vw,100px);z-index:0;
  width:clamp(280px,24vw,453px);aspect-ratio:453/315;height:auto;
  object-fit:cover;border-radius:60px;
}
.sol-inner{position:relative;z-index:2;text-align:center;max-width:680px;margin:0 auto;}
.sol-logo-row{display:flex;align-items:flex-end;justify-content:center;gap:6px;flex-wrap:wrap;}
.sol-logo-row img{height:clamp(62px,16vw,85px);width:auto;}
.sol-logo-row .de{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;color:var(--ink2);font-size:clamp(20px,3.6vw,28px);line-height:51px;}
.sol-sub{display:inline-flex;flex-direction:column;align-items:center;margin-top:6px;}
.sol-sub p{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;font-size:clamp(32px,8.5vw,44px);line-height:1.16;}
.sol-sub p .g{color:var(--red);}
.sol-sub p .nm{color:var(--ink2);font-size:.77em;}
.sol-inner .sol-p{margin-top:26px;font-family:"Hiragino Sans","Noto Sans JP";font-weight:500;color:var(--ink2);font-size:clamp(16px,4.1vw,18px);line-height:2;letter-spacing:1.08px;}
.sol-photos-sp{display:none;}
@media(max-width:900px){
  .solution{overflow:hidden;padding:48px 0 56px;}
  .solution .photo{display:none;}
  .sol-inner{max-width:none;}
  .sol-badge-pill{padding:2px 26px;}
  /* SP: reflow the paragraph naturally (desktop-only hard breaks) */
  .sol-p .dt-br{display:none;}
  /* SP: shrink headline + logo row so nothing clips the viewport edge at <=390px */
  .sol-logo-row img{height:clamp(54px,14vw,85px);}
  .sol-logo-row .de{font-size:clamp(18px,3.2vw,28px);}
  .sol-sub p{font-size:clamp(26px,7.2vw,44px);}
  .sol-inner .sol-p{line-height:1.8;letter-spacing:.96px;}
  /* SP：2枚を画面端まで全幅で横並び、内側の角のみ丸め */
  .sol-photos-sp{display:flex;gap:20px;margin-top:40px;width:100vw;margin-left:calc(50% - 50vw);}
  .sol-photos-sp img{flex:1 1 0;min-width:0;aspect-ratio:185/138;object-fit:cover;}
  .sol-photos-sp img:first-child{border-radius:0 30px 30px 0;}
  .sol-photos-sp img:last-child{border-radius:30px 0 0 30px;}
}

/* ============ STRENGTHS ============ */
.strengths{padding:100px 0 140px;}
.str-list{display:flex;flex-direction:column;gap:48px;max-width:1024px;margin:48px auto 0;}
.str-card{
  background:#fff;border-radius:30px;
  display:flex;align-items:center;overflow:hidden;position:relative;
}
.str-card .txt{flex:0 0 500px;max-width:500px;padding:40px 0;}
.str-card .img{flex:0 0 524px;align-self:center;display:flex;align-items:center;}
.str-card .img img{width:100%;height:auto;object-fit:contain;}
.str-point{font-family:"Afacad",sans-serif;font-weight:700;line-height:1;margin-bottom:8px;
  background:linear-gradient(90deg,rgba(236,114,134,.2),rgba(233,50,73,.2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}
.str-point .p{display:block;font-size:15px;letter-spacing:2px;}
.str-point .num{display:block;font-size:clamp(55px,12vw,125px);}
.str-card h3{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;color:var(--ink);font-size:clamp(20px,4vw,30px);line-height:1.55;letter-spacing:1.8px;margin:-10px 0 16px;}
.str-card h3 .r{color:var(--red);}
.str-card h3 .big{color:var(--red);font-family:"Afacad",sans-serif;font-size:1.667em;vertical-align:-3px;}
.str-card h3 .xl{color:var(--red);font-size:clamp(26px,5vw,40px);letter-spacing:2.4px;display:inline-block;}
.str-card .txt p{font-family:"Hiragino Sans","Noto Sans JP";font-weight:400;color:var(--ink3);font-size:clamp(15px,2.3vw,18px);line-height:2;letter-spacing:1.08px;}
@media(max-width:820px){
  .strengths{padding:50px 0;}
  .str-list{gap:32px;}
  .str-card,.str-card.rev{flex-direction:column;}
  .str-card .img{order:1;flex:0 0 auto;width:min(330px,100%);max-width:330px;margin:0 auto 30px;align-self:center;}
  .str-card .img img{height:236px;object-fit:contain;}
  .str-card .txt{order:0;flex:1 1 auto;max-width:none;padding:24px 0;}
  .str-card .str-point{text-align:center;}
  .str-card h3{text-align:center;line-height:1.3;letter-spacing:1.2px;margin-top:0;}
  .str-card h3 .xl{letter-spacing:1.56px;}
  .str-card h3 .big{font-size:2em;}
  .str-card .txt p{letter-spacing:.9px;}
}

/* ============ FLOW ============ */
.flow{background:linear-gradient(135deg,#fdf6f7 14%,rgba(253,246,247,.4) 84%);padding:100px 0 140px;}
.flow-list{max-width:840px;margin:56px auto 0;}
.flow-card{
  background:#fff;border-radius:24px;box-shadow:var(--card-sh-sm);
  display:flex;align-items:center;gap:30px;padding:30px 36px 40px;
}
.flow-card.first{justify-content:center;gap:40px;flex-wrap:wrap;}
.flow-card .comp{width:294px;max-width:100%;flex-shrink:0;}
.flow-icn{
  width:98px;height:98px;border-radius:10px;flex-shrink:0;
  background:linear-gradient(90deg,rgba(236,114,134,.06),rgba(233,50,73,.06));
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
}
.flow-icn img{width:45px;height:45px;}
.flow-icn .t{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;color:var(--red);font-size:14px;letter-spacing:.84px;}
.flow-card .body{flex:1;}
.flow-tag{display:inline-block;border-radius:96px;padding:2px 14px;font-family:"Hiragino Sans","Noto Sans JP";font-weight:600;font-size:13px;letter-spacing:.5px;margin-bottom:6px;}
.flow-tag.you{background:#fffce4;color:var(--red);}
.flow-tag.cm{background:#fef3f5;color:var(--red);}
.flow-card .body h3{font-family:"Hiragino Sans","Noto Sans JP";font-weight:600;color:var(--ink);font-size:clamp(16px,2.8vw,20px);line-height:1.5;letter-spacing:1.2px;}
.flow-card .body p{font-family:"Hiragino Sans","Noto Sans JP";font-weight:500;color:var(--ink3);font-size:clamp(15px,2.3vw,16px);line-height:1.6;letter-spacing:.96px;margin-top:4px;}
.flow-arrow{display:flex;justify-content:center;padding:12px 0;}
.flow-arrow img{width:40px;height:26px;}
.flow-card.first .body{flex:0 1 388px;}
@media(max-width:680px){
  .flow{padding:50px 0 70px;}
  .flow-list{margin-top:34px;}
  .flow .sec-h2{font-size:22px;letter-spacing:1.32px;line-height:1.2;}
  .flow .sec-sub{letter-spacing:.9px;}
  .flow-card{flex-direction:column;text-align:center;gap:13px;padding:30px 36px 40px;}
  .flow-card.first{padding:30px 30px 40px;gap:20px;}
  /* SP column layout: reset desktop body flex-basis (was applied as height) */
  .flow-card.first .body{flex:0 0 auto;width:100%;}
  .flow .sec-sub{line-height:1.6;}
  .flow-card .body h3{line-height:1.78;}
  .flow-card .body p{line-height:1.8;}
  .flow-card.first .body h3{line-height:1.5;}
  .flow-card .comp{width:274px;}
  .flow-card .body h3,.flow-card .body p{text-align:center;}
  .flow-card .body h3{letter-spacing:.96px;}
  .flow-card .body p{letter-spacing:.9px;}
  .flow-card .body .flow-tag{margin-bottom:10px;}
  .flow-tag{margin-left:auto;margin-right:auto;}
}

/* ============ PRICE ============ */
.price{padding-top:clamp(50px,9vw,100px);padding-bottom:clamp(70px,12vw,140px);}
.price-main{display:flex;gap:30px;align-items:stretch;margin-top:clamp(20px,6vw,56px);flex-wrap:wrap;}
.price-hero{
  flex:1 1 520px;border-radius:36px;padding:clamp(32px,4vw,48px);color:#fff;position:relative;overflow:hidden;
  background:linear-gradient(120deg,#e93249 3%,#ec7286 90%);
}
.price-hero .ttl{display:flex;align-items:center;gap:9px;font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;font-size:20px;letter-spacing:1px;}
.price-hero .ttl .tag{background:rgba(255,255,255,.22);border-radius:96px;padding:2px 14px;font-size:12px;font-weight:700;letter-spacing:.6px;}
.price-hero .amount{display:flex;align-items:baseline;gap:6px;margin:14px 0 6px;flex-wrap:wrap;}
.price-hero .amount .n{font-family:"Afacad",sans-serif;font-weight:700;font-size:clamp(50px,12vw,88px);line-height:1;color:#fffacc;}
.price-hero .amount .y{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;font-size:clamp(18px,4.6vw,34px);color:#fffacc;}
.price-hero .amount .from{font-weight:700;font-size:24px;}
.price-hero .amount .per{font-family:"Hiragino Sans","Noto Sans JP";font-weight:700;font-size:18px;letter-spacing:1px;}
.price-hero .desc{border-top:1px solid rgba(255,255,255,.25);padding-top:19px;margin-top:18px;font-family:"Hiragino Sans","Noto Sans JP";font-weight:600;font-size:clamp(15px,2.3vw,18px);line-height:1.7;letter-spacing:.8px;color:rgba(255,255,255,.92);}
.price-hero .desc .y{color:#fffacc;}
.price-hero .note{margin-top:12px;font-family:"Hiragino Sans","Noto Sans JP";font-weight:500;font-size:13px;color:rgba(255,255,255,.85);letter-spacing:.6px;}
.price-side{flex:1 1 360px;display:flex;flex-direction:column;gap:20px;}
.price-item{background:#fff;border:1px solid #eee;border-radius:24px;box-shadow:var(--card-sh);padding:31px 33px;flex:1;display:flex;flex-direction:column;justify-content:center;}
.price-item .lab{display:flex;align-items:center;gap:10px;font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;color:var(--ink3);font-size:20px;letter-spacing:1px;}
.price-item .lab img{width:38px;height:38px;}
.price-item .v{font-family:"Afacad",sans-serif;font-weight:700;color:var(--ink);font-size:42px;line-height:1.1;margin-top:12px;}
.price-item .v .y{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-size:20px;}
.price-item .sub{font-family:"Hiragino Sans","Noto Sans JP";font-weight:500;color:#888;font-size:13px;margin-top:2px;}

/* flow steps (導入) */
.guide{margin-top:clamp(50px,9vw,140px);}
/* 料金ブロック非表示時は STEP がセクション先頭になるので上マージンを詰める */
.price-no-fee .guide{margin-top:0;}
.guide-head{text-align:center;}
.guide-head .small{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;color:var(--ink);font-size:clamp(16px,2.6vw,20px);letter-spacing:1px;}
.guide-head .big{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;font-size:clamp(30px,5vw,36px);letter-spacing:2px;margin-top:6px;}
.guide-head .big .mid{font-size:clamp(22px,4.4vw,32px);}
.guide-steps{display:flex;gap:30px;justify-content:space-between;flex-wrap:wrap;margin-top:clamp(54px,9vw,74px);}
.guide-card{
  background:#fff;border:1px solid #f0f0f0;border-radius:24px;box-shadow:var(--card-sh);
  width:320px;max-width:100%;padding:33px 27px;position:relative;text-align:center;
}
.guide-card .step-no{position:absolute;top:-40px;left:0;right:0;font-family:"Afacad",sans-serif;font-weight:700;color:var(--pink);line-height:1;}
.guide-card .step-no .s{display:block;font-size:19px;letter-spacing:2px;}
.guide-card .step-no .d{display:block;font-size:49px;}
.guide-card img.illust{width:272px;max-width:100%;margin:14px auto 0;}
.guide-card h4{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;color:var(--ink);font-size:20px;letter-spacing:1px;margin:18px 0 6px;}
.guide-card p{font-family:"Hiragino Sans","Noto Sans JP";font-weight:500;color:var(--muted);font-size:clamp(15px,2.3vw,16px);line-height:1.6;letter-spacing:.8px;}
.price .sec-sub{font-size:13px;letter-spacing:.78px;}
/* Price/Guide SP overrides */
@media(max-width:680px){
  .price-hero{padding:40px 30px;}
  .price-item{padding:31px 33px 42px;}
  .guide-steps{gap:60px;}
}

/* ============ CONTACT ============ */
.contact{background:linear-gradient(180deg,#fdf6f7,#fceef0);padding:clamp(70px,9vw,96px) 0;}
.contact .en-label{line-height:28.8px;}
.cv-grid{display:flex;gap:26px;justify-content:center;flex-wrap:wrap;max-width:920px;margin:56px auto 0;}
.cv-card{
  background:#fff;border:1px solid #eef0ef;border-radius:30px;
  box-shadow:0 10px 15px rgba(0,0,0,.06);padding:45px 41px;
  display:flex;flex-direction:column;align-items:center;text-align:center;flex:1 1 400px;max-width:446px;
}
.cv-card .cv-ic{width:80px;height:80px;margin-bottom:22px;}
.cv-card .cv-lab{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;color:var(--pink);font-size:14px;letter-spacing:.84px;margin-bottom:6px;}
.cv-card h3{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;color:var(--ink);font-size:clamp(22px,5.6vw,22px);line-height:1.43;letter-spacing:1.32px;margin-bottom:24px;}
.cv-card .btn{width:100%;max-width:368px;flex:none;min-width:0;}
/* Contact SP overrides */
@media(max-width:680px){
  .contact{padding-top:50px;padding-bottom:96px;}
  .contact .sec-h2{font-size:22px;letter-spacing:1.32px;line-height:1.2;}
  .contact .sec-h2 .big{display:block;font-size:30px;letter-spacing:1.8px;line-height:1.6;}
  .cv-grid{margin-top:20px;gap:24px;}
  /* Reduce card side padding + H3 tracking/size so 'まずはサービスの詳細が' fits one line */
  .cv-card{padding:40px 26px;}
  .cv-card h3{font-size:21px;letter-spacing:.5px;white-space:nowrap;}
  .cv-card .btn{height:70px;max-width:278px;}
  .cv-card .btn-fill .main{font-size:22px;}
  .cv-card .btn-outline .main{font-size:18px;white-space:nowrap;}
}

/* ============ FAQ ============ */
.faq{padding-top:clamp(50px,9vw,96px);padding-bottom:clamp(70px,9vw,96px);}
.faq .sec-h2{font-size:clamp(22px,4.4vw,32px);letter-spacing:.5px;}
.faq-list{max-width:840px;margin:56px auto 0;display:flex;flex-direction:column;gap:16px;}
.faq-item{background:#fff;border:1px solid #ececec;border-radius:22px;box-shadow:0 4px 16px rgba(0,0,0,.04);overflow:hidden;transition:border-color 280ms cubic-bezier(.4,.4,0,1),box-shadow 280ms cubic-bezier(.4,.4,0,1);}
/* JS有効時は .is-faq-open で開閉の見た目を制御（[open] は JS 無効時のフォールバック） */
.faq-item:not(.is-faq-enhanced)[open],
.faq-item.is-faq-open{border-color:rgba(233,50,73,.3);box-shadow:var(--card-sh);}
/* .faq-item は .reveal も持つため、reveal の transition に枠/影分を足して上書き防止 */
.faq-item.reveal{transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1),border-color 280ms cubic-bezier(.4,.4,0,1),box-shadow 280ms cubic-bezier(.4,.4,0,1);}
.faq-q{list-style:none;cursor:pointer;display:flex;align-items:center;gap:18px;padding:24px 28px;}
.faq-q::-webkit-details-marker{display:none;}
.faq-q .qm{font-family:"Afacad",sans-serif;font-weight:700;color:var(--red);font-size:24px;flex-shrink:0;line-height:1;}
.faq-q .qt{font-family:"Hiragino Sans","Noto Sans JP";font-weight:600;color:var(--ink);font-size:clamp(15px,2.5vw,18px);letter-spacing:1.08px;line-height:1.5;flex:1;}
.faq-q .pl{flex-shrink:0;width:30px;height:30px;border-radius:50%;background:rgba(233,50,73,.1);display:flex;align-items:center;justify-content:center;transition:var(--ease);}
.faq-q .pl::before{content:"+";font-size:18px;font-weight:700;color:var(--red);line-height:1;font-family:"Afacad",sans-serif;}
.faq-item:not(.is-faq-enhanced)[open] .faq-q .pl::before,
.faq-item.is-faq-open .faq-q .pl::before{content:"−";}
/* 既定は非表示。display:flex を直に当てると閉じた <details> の非表示を上書きし、
   閉じても本文が残る（高さが跳ね戻る）ため、表示は [open] 時のみに限定する。 */
.faq-a{padding:0 28px 26px 64px;gap:8px;display:none;}
.faq-item[open] .faq-a{display:flex;}
.faq-a p{font-family:"Hiragino Sans","Noto Sans JP";font-weight:500;color:var(--ink3);font-size:15px;line-height:1.9;letter-spacing:.96px;}
@media(max-width:560px){
  .faq-list{margin-top:18px;}
  .faq-q{padding-left:20px;padding-right:20px;gap:8px;}
  .faq-q .qt{letter-spacing:.9px;}
}

/* ============ CTA BAND ============ */
.cta-band{background:linear-gradient(90deg,#ffecec,#fffbd8);padding:38px 0;}
.cta-band .cta-row{margin-top:0;}
@media(max-width:680px){
  .cta-band .btn{height:70px;}
  .cta-band .cta-row{gap:18px;}
}

/* ============ FOOTER ============ */
.footer{background:#fff;border-top:1px solid #eee;padding:clamp(56px,8vw,100px) 0 40px;}
.foot-top{display:flex;justify-content:space-between;gap:40px 60px;flex-wrap:wrap;}
.foot-logo img{height:70px;width:auto;margin-bottom:14px;}
.foot-logo .cname{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:700;color:var(--ink);font-size:20px;letter-spacing:2px;line-height:2;}
.foot-logo .addr{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:500;color:var(--ink);font-size:16px;line-height:1.6;letter-spacing:1.6px;}
.foot-right{display:flex;gap:50px;flex-wrap:wrap;align-items:flex-start;}
.foot-links{display:flex;flex-direction:column;gap:12px;}
.foot-links a{font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:500;color:var(--ink);font-size:18px;letter-spacing:1.08px;transition:var(--ease);}
.foot-links a:hover{color:var(--red);}
.foot-service{
  background:#fff;border-radius:20px;box-shadow:var(--card-sh);
  height:164px;padding:40px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;width:325px;max-width:100%;
  transition:transform var(--ease),box-shadow var(--ease);
}
.foot-service img{width:256px;height:auto;}
.foot-service:hover,.foot-service:focus-visible{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.12);}
.foot-service .svc-link{display:flex;align-items:center;gap:8px;padding:0 30px;font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:500;color:var(--ink);font-size:16px;letter-spacing:1px;}
.foot-copy{text-align:center;margin-top:52px;font-family:"Zen Kaku Gothic New","Noto Sans JP";font-weight:500;color:var(--ink);font-size:13px;letter-spacing:1.3px;}
@media(max-width:760px){
  .foot-top{justify-content:center;text-align:center;}
  .foot-logo{width:100%;}
  .foot-right{justify-content:center;}
  .foot-logo img{height:52px;margin-inline:auto;}
  .foot-right{max-width:100%;}
  .foot-service{width:100%;max-width:325px;}
  .foot-logo .cname{font-size:16px;letter-spacing:1.6px;}
  .foot-logo .addr{font-size:13px;line-height:1.6;letter-spacing:1.3px;}
  .foot-links a{font-size:15px;letter-spacing:.9px;}
  .foot-copy{font-size:10px;letter-spacing:1px;}
}

/* reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:none;}

/* WP標準の視覚的非表示ユーティリティ（スクリーンリーダー向け見出し等） */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;white-space:nowrap;word-wrap:normal!important;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;transition:none;}
  .faq-item,.faq-item.reveal,.faq-q .pl{transition:none;}
}
