:root {
      --gp: #1d8c57;
      --gd: #155f3b;
      --gl: #e4f4ec;
      --gm: #2aaa6b;
      --gp2: #f2faf6;
      --gld: #d4a843;
      --txt: #222;
      --sub: #555;
      --r: 10px;
    }

    *,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      font-family: 'Noto Sans JP', sans-serif;
      color: var(--txt);
      background: #fff;
      overflow-x: hidden;
      line-height: 1.7;
      /* Text protection */
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }

    h1,
    h2,
    h3,
    h4,
    h5 {
      font-family: 'Noto Sans JP', sans-serif;
    }

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

    img {
      display: block;
      max-width: 100%;
      /* Image protection */
      pointer-events: none;
      -webkit-user-drag: none;
      -webkit-touch-callout: none;
    }

    .wrap {
      max-width: 1060px;
      margin: 0 auto;
      padding: 0 20px;
    }

    .sec {
      padding: 72px 20px;
    }

    .alt {
      background: var(--gp2);
    }

    /* ── headings ── */
    .en {
      font-size: .68rem;
      letter-spacing: .22em;
      color: var(--gm);
      font-weight: 700;
      text-transform: uppercase;
    }

    .ttl {
      font-size: 36px;
      font-weight: 800;
      color: var(--gd);
      line-height: 1.45;
      margin: 8px 0 4px;
    }

    .lead {
      font-size: .88rem;
      color: var(--sub);
      line-height: 1.9;
      margin-top: 10px;
    }

    .bar {
      width: 38px;
      height: 3px;
      background: linear-gradient(to right, var(--gp), var(--gld));
      border-radius: 99px;
      margin: 14px auto 0;
    }

    .bar.l {
      margin-left: 0;
    }

    .badge {
      display: inline-block;
      background: var(--gp);
      color: #fff;
      font-size: .68rem;
      font-weight: 700;
      letter-spacing: .12em;
      padding: 4px 14px;
      border-radius: 99px;
      margin-bottom: 10px;
    }

    .sp-br {
      display: none;
    }

    /* ── buttons ── */
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 15px 30px;
      border-radius: var(--r);
      font-weight: 700;
      font-size: .9rem;
      cursor: pointer;
      transition: opacity .18s, transform .18s;
      white-space: nowrap;
      font-family: 'Noto Sans JP', sans-serif;
    }

    .btn:hover {
      opacity: .86;
      transform: translateY(-2px);
    }

    .btn-g {
      background: var(--gp);
      color: #fff;
    }

    .btn-l {
      background: #06c755;
      color: #fff;
    }

    .btn-d {
      background: var(--gd);
      color: #fff;
    }

    /* ── HEADER ── */
    #hd {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 1000;
      background: rgba(255, 255, 255, .97);
      border-bottom: 1px solid var(--gl);
      box-shadow: 0 2px 14px rgba(0, 0, 0, .07);
    }

    .hdi {
      max-width: 1060px;
      margin: 0 auto;
      padding: 0 20px;
      height: 62px;
      display: flex;
      align-items: center;
      gap: 14px;
    }

    .logo-m {
      font-family: 'Noto Sans JP', sans-serif;
      font-weight: 800;
      font-size: 1.1rem;
      color: var(--gd);
      line-height: 1.1;
    }

    .logo-s {
      font-size: .6rem;
      color: var(--gm);
      margin-top: 2px;
      font-weight: 500;
    }

    .pcnav {
      display: flex;
      gap: 2px;
      margin-left: auto;
    }

    .pcnav a {
      font-size: .74rem;
      font-weight: 500;
      color: var(--txt);
      padding: 6px 9px;
      border-radius: 6px;
      transition: background .15s, color .15s;
      white-space: nowrap;
    }

    .pcnav a:hover {
      background: var(--gl);
      color: var(--gp);
    }

    .hcta {
      margin-left: 10px;
      flex-shrink: 0;
    }

    .hcta .btn {
      padding: 10px 20px;
      font-size: .8rem;
    }

    /* ── HAMBURGER ── */
    #hbg {
      display: none;
      flex-direction: column;
      gap: 5px;
      cursor: pointer;
      padding: 8px;
      background: none;
      border: none;
      margin-left: auto;
    }

    #hbg span {
      display: block;
      width: 22px;
      height: 2px;
      background: var(--gd);
      border-radius: 2px;
      transition: all .28s;
    }

    #hbg.open span:nth-child(1) {
      transform: translateY(7px) rotate(45deg);
    }

    #hbg.open span:nth-child(2) {
      opacity: 0;
    }

    #hbg.open span:nth-child(3) {
      transform: translateY(-7px) rotate(-45deg);
    }

    #spnav {
      display: none;
      position: fixed;
      top: 62px;
      left: 0;
      right: 0;
      bottom: 0;
      background: var(--gd);
      z-index: 999;
      padding: 28px 24px;
      overflow-y: auto;
    }

    #spnav.open {
      display: block;
    }

    #spnav a {
      display: block;
      color: rgba(255, 255, 255, .9);
      font-size: 1rem;
      font-weight: 500;
      padding: 14px 0;
      border-bottom: 1px solid rgba(255, 255, 255, .1);
      text-align: center;
    }

    .sncta {
      margin-top: 24px;
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    /* ── FV ── */
    #fv {
      position: relative;
      margin-top: 62px;
      overflow: hidden;
    }

    .fv-img-wrap {
      position: relative;
      width: 100%;
      line-height: 0;
    }

    .fv-img-pc {
      display: block;
      width: 100%;
      height: auto;
    }

    .fv-img-sp {
      display: none;
      width: 100%;
      height: auto;
    }


    /* ── STATS ── */
    #stats {
      background: var(--gd);
      padding: 0;
    }

    .stg {
      max-width: 900px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
    }

    .st {
      text-align: center;
      padding: 26px 16px;
      border-right: 1px solid rgba(255, 255, 255, .15);
    }

    .st:last-child {
      border-right: none;
    }

    .stn {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 2rem;
      font-weight: 800;
      color: #a8ffce;
      line-height: 1;
    }

    .stu {
      font-size: .85rem;
      color: #a8ffce;
    }

    .stl {
      font-size: .68rem;
      color: rgba(255, 255, 255, .72);
      margin-top: 5px;
    }

    /* ── WORRIES ── */
    #worries {
      position: relative;
      background: url('../img/sfvbg.jpg') no-repeat left center / cover;
      z-index: 1;
    }

    #worries::before {
      content: '';
      position: absolute;
      inset: 0;
      background: rgba(255, 255, 255, 0.6);
      z-index: -1;
    }

    .w-right {
      margin-left: 50%;
      /* 2-column layout width approx 50% split */
      text-align: left;
    }

    @media(max-width:767px) {
      .w-right {
        margin-left: 0;
      }
    }

    .wgrid {
      display: grid;
      gap: 12px;
    }

    .wcard {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 10px 0;
      border-bottom: 1px solid rgba(29, 140, 87, 0.1);
    }

    .wcard:last-child {
      border-bottom: none;
    }

    .wico {
      width: 24px;
      height: 24px;
      min-width: 24px;
      background: var(--gp);
      color: #fff;
      border-radius: 4px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 0.8rem;
      font-weight: 900;
      flex-shrink: 0;
    }

    .wico::before {
      content: '✓';
    }

    .wtxt {
      font-size: 0.95rem;
      font-weight: 500;
      line-height: 1.4;
      white-space: nowrap;
    }

    .wcta-msg {
      font-family: 'Noto Sans JP', sans-serif;
      margin-top: 60px;
      text-align: center;
      /* Restore centering as requested */
    }

    .wcta-s {
      display: block;
      font-size: 1.1rem;
      font-weight: 700;
      color: var(--sub);
      margin-bottom: 8px;
    }

    .wcta-l {
      display: block;
      font-size: 2rem;
      font-weight: 900;
      color: var(--gd);
      line-height: 1.3;
      letter-spacing: -0.02em;
    }

    .wcta-l span {
      color: var(--gm);
      position: relative;
      display: inline-block;
    }

    .wcta-l span::after {
      content: '';
      position: absolute;
      left: 0;
      bottom: 4px;
      width: 100%;
      height: 10px;
      background: rgba(42, 170, 107, .2);
      z-index: -1;
    }

    /* ── ABOUT ── */
    .about-g {
      max-width: 1000px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 52px;
      align-items: center;
    }

    .about-img {
      border-radius: 14px;
      overflow: hidden;
      box-shadow: 0 10px 40px rgba(29, 140, 87, .15);
      background: #f0f0f0;
    }

    .about-img img {
      width: 100%;
      height: auto;
    }

    .aqlist {
      margin-top: 22px;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .aq {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      background: #fff185;
      border-radius: 8px;
      padding: 12px 14px;
    }

    .aqico {
      color: var(--gld);
      font-size: 1.1rem;
      margin-top: -2px;
      flex-shrink: 0;
    }

    .aqtxt {
      font-size: .85rem;
      font-weight: 700;
      color: var(--gd);
    }

    /* ── POINTS ── */
    .ptg {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 22px;
      margin-top: 40px;
    }

    .ptc {
      background: #fff;
      border-radius: 14px;
      overflow: hidden;
      box-shadow: 0 4px 20px rgba(29, 140, 87, .1);
      transition: transform .22s, box-shadow .22s;
    }

    .ptc:hover {
      transform: translateY(-5px);
      box-shadow: 0 12px 32px rgba(29, 140, 87, .16);
    }

    .ptimg {
      width: 100%;
      aspect-ratio: 16/10;
      object-fit: cover;
      background: #eaeaea;
    }

    .ptbd {
      padding: 20px 22px;
    }

    .ptn {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      background: #ff7800;
      color: #fff;
      font-size: .68rem;
      font-weight: 800;
      letter-spacing: .1em;
      padding: 4px 12px;
      border-radius: 99px;
      margin-bottom: 10px;
    }

    .ptn::before {
      content: '';
      display: block;
      width: 6px;
      height: 6px;
      background: #fff;
      border-radius: 50%;
    }

    .ptttl {
      font-size: 24px;
      font-weight: 800;
      color: var(--gd);
      margin-bottom: 8px;
      line-height: 1.4;
    }

    .pttxt {
      font-size: .83rem;
      color: var(--sub);
      line-height: 1.8;
    }

    /* ── GUARANTEE ── */
    #grt {
      background: linear-gradient(rgba(21, 95, 59, 0.85), rgba(21, 95, 59, 0.85)), url('../img/price.jpg') no-repeat center / cover;
      padding: 100px 20px;
    }

    .grt-in {
      max-width: 1000px;
      margin: 0 auto;
      text-align: center;
    }

    .gbd {
      color: var(--txt);
      font-size: 1.05rem;
      line-height: 2.1;
      border: 3px solid var(--gld);
      padding: 60px 40px;
      border-radius: 16px;
      background: #fff;
      max-width: 900px;
      margin: 0 auto;
      box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
    }

    .shiny-ttl {
      position: relative;
      background: linear-gradient(110deg, #b8860b 0%, #ffcc00 25%, #fff 50%, #ffcc00 75%, #b8860b 100%);
      background-size: 200% auto;
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      font-size: 3.2rem !important;
      /* Slightly larger for impact */
      font-weight: 900 !important;
      display: inline-block;
      margin: 10px 0 24px;
      filter: drop-shadow(0 2px 2px rgba(184, 134, 11, 0.4));
      /* Stronger shadow for legibility */
      animation: shine-text 4s linear infinite;
    }

    @keyframes shine-text {
      to {
        background-position: 200% center;
      }
    }

    .btn-shine {
      position: relative;
      overflow: hidden;
    }

    .btn-shine::after {
      content: '';
      position: absolute;
      top: -50%;
      left: -100%;
      width: 50%;
      height: 200%;
      background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0) 100%);
      transform: rotate(30deg);
      animation: shine-btn 3s infinite;
    }

    @keyframes shine-btn {
      0% {
        left: -100%;
      }

      50% {
        left: 100%;
      }

      100% {
        left: 100%;
      }
    }

    .gbd p {
      margin-bottom: 12px;
    }

    .gimg {
      width: 100%;
      border-radius: 12px;
      opacity: .9;
      object-fit: cover;
      box-shadow: 0 20px 50px rgba(0, 0, 0, .3);
      background: #333;
      min-height: 200px;
    }

    .gbadge {
      display: inline-flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      width: 130px;
      height: 130px;
      border-radius: 50%;
      border: 3px solid var(--gld);
      color: var(--gld);
      font-family: 'M PLUS Rounded 1c', sans-serif;
      font-size: 1.1rem;
      font-weight: 800;
      line-height: 1.3;
      margin-bottom: 28px;
    }

    /* ── FLOW ── */
    .fw {
      max-width: 720px;
      margin: 48px auto 0;
    }

    .fimg {
      width: 100%;
      border-radius: 12px;
      box-shadow: 0 4px 20px rgba(29, 140, 87, .1);
      margin-bottom: 40px;
      background: #eaeaea;
      min-height: 150px;
    }

    .fsteps {
      display: flex;
      flex-direction: column;
    }

    .fst {
      display: flex;
      gap: 18px;
      align-items: flex-start;
      position: relative;
    }

    .fst:not(:last-child)::after {
      content: '';
      position: absolute;
      left: 17px;
      top: 36px;
      width: 2px;
      height: calc(100% - 8px);
      background: linear-gradient(to bottom, var(--gp), var(--gl));
    }

    .fci {
      width: 36px;
      height: 36px;
      min-width: 36px;
      background: var(--gp);
      color: #fff;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'M PLUS Rounded 1c', sans-serif;
      font-weight: 800;
      font-size: .78rem;
      z-index: 1;
    }

    .ftxt {
      padding: 4px 0 32px;
    }

    .fttl {
      font-size: 24px;
      font-weight: 800;
      color: var(--gd);
      margin-bottom: 5px;
    }

    .fdesc {
      font-size: .83rem;
      color: var(--sub);
      line-height: 1.8;
    }

    /* ── VOICE ── */
    #voice {
      background-image: 
        radial-gradient(rgba(0, 0, 0, 0.08) 1.5px, transparent 1.5px),
        linear-gradient(rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4)),
        url('../img/voicebg.jpg');
      background-position: 0 0, center, center;
      background-size: 8px 8px, cover, cover;
      background-repeat: repeat, no-repeat, no-repeat;
    }

    .swiper {
      padding-bottom: 44px !important;
    }

    .swiper-slide {
      height: auto;
    }

    .vc {
      background: #fff;
      border-radius: 14px;
      padding: 24px;
      height: 100%;
      box-shadow: 0 4px 18px rgba(29, 140, 87, .09);
    }

    .vch {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 14px;
    }

    .vcav {
      display: none;
    }

    .vcnm {
      font-size: .88rem;
      font-weight: 700;
      color: var(--gd);
    }

    .vctag {
      display: inline-block;
      background: var(--gl);
      color: var(--gp);
      font-size: .62rem;
      font-weight: 700;
      padding: 2px 8px;
      border-radius: 99px;
      margin-top: 3px;
    }

    .vcq {
      font-family: 'M PLUS Rounded 1c', sans-serif;
      font-size: 20px;
      font-weight: 700;
      color: var(--gd);
      line-height: 1.5;
      margin-bottom: 10px;
    }

    .vcb {
      font-size: .8rem;
      color: var(--sub);
      line-height: 1.85;
    }

    .vcn {
      font-size: .68rem;
      color: #aaa;
      margin-top: 10px;
    }

    .swiper-pagination-bullet-active {
      background: var(--gp) !important;
    }

    /* ── STAFF ── */
    .sfg {
      max-width: 1000px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 48px;
      align-items: center;
    }

    .sfimg {
      overflow: hidden;
    }

    .sfimg img {
      width: 100%;
      height: auto;
    }

    .sfnm {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 1.5rem;
      font-weight: 800;
      color: var(--gd);
      margin-bottom: 4px;
    }

    .sfrole {
      font-size: .75rem;
      color: var(--gm);
      margin-bottom: 16px;
      font-weight: 500;
    }

    .sftags {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 18px;
    }

    .sftag {
      background: var(--gl);
      color: var(--gd);
      font-size: .72rem;
      font-weight: 700;
      padding: 5px 13px;
      border-radius: 99px;
    }

    .sfbody {
      font-size: .88rem;
      color: var(--sub);
      line-height: 1.9;
    }

    .sfmsg {
      margin-top: 20px;
      background: var(--gp2);
      border-left: 3px solid var(--gld);
      padding: 16px 18px;
      border-radius: 0 10px 10px 0;
    }

    .sfmttl {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 1.2rem;
      font-weight: 800;
      color: var(--gd);
      margin-bottom: 7px;
    }

    .sfmp {
      font-size: .82rem;
      color: var(--sub);
      line-height: 1.9;
    }

    /* ── FAQ ── */
    .fql {
      max-width: 760px;
      margin: 40px auto 0;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .fqi {
      background: #fff;
      border-radius: 10px;
      overflow: hidden;
      box-shadow: 0 2px 10px rgba(29, 140, 87, .07);
    }

    .fqbtn {
      width: 100%;
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 18px 20px;
      background: none;
      border: none;
      cursor: pointer;
      text-align: left;
      font-family: 'Noto Sans JP', sans-serif;
    }

    .fqico {
      width: 26px;
      height: 26px;
      min-width: 26px;
      background: var(--gp);
      color: #fff;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: .72rem;
      font-weight: 800;
    }

    .fqtxt {
      font-size: 16px;
      font-weight: 700;
      color: var(--gd);
      flex: 1;
      text-align: left;
    }

    .fqarr {
      color: var(--gp);
      font-size: .85rem;
      margin-left: 4px;
      transition: transform .28s;
      flex-shrink: 0;
    }

    .fqi.open .fqarr {
      transform: rotate(180deg);
    }

    .fqa {
      max-height: 0;
      overflow: hidden;
      transition: max-height .35s ease, padding .3s;
      font-size: .83rem;
      color: var(--sub);
      line-height: 1.9;
      padding: 0 20px 0 58px;
    }

    .fqi.open .fqa {
      max-height: 500px;
      padding: 2px 20px 18px 58px;
    }

    /* ── ACCESS ── */
    .acg {
      max-width: 960px;
      margin: 40px auto 0;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 40px;
    }

    .acdl {
      display: flex;
      flex-direction: column;
    }

    .acrow {
      display: flex;
      padding: 12px 0;
      border-bottom: 1px solid var(--gl);
    }

    .acdt {
      width: 88px;
      min-width: 88px;
      font-size: .75rem;
      font-weight: 700;
      color: var(--gp);
    }

    .acdd {
      font-size: .85rem;
      line-height: 1.7;
    }

    .acmap {
      border-radius: 14px;
      overflow: hidden;
      box-shadow: 0 4px 20px rgba(29, 140, 87, .12);
      height: 400px;
      background: #eee;
    }

    .acmap iframe {
      width: 100%;
      height: 100%;
      border: 0;
    }

    .rbox {
      max-width: 680px;
      margin: 48px auto 0;
      background: var(--gp2);
      border: 2px solid var(--gl);
      border-radius: 16px;
      padding: 36px 32px;
      text-align: center;
    }

    .rttl {
      font-family: 'M PLUS Rounded 1c', sans-serif;
      font-size: 24px;
      font-weight: 800;
      color: var(--gd);
      margin-bottom: 6px;
    }

    .rsub {
      font-size: .82rem;
      color: var(--sub);
      margin-bottom: 24px;
    }

    .rbtns {
      display: flex;
      gap: 14px;
      justify-content: center;
      flex-wrap: wrap;
    }

    /* ── FOOTER ── */
    footer {
      background: var(--gd);
      color: rgba(255, 255, 255, .8);
      padding: 40px 20px;
      text-align: center;
    }

    .ftl {
      font-family: 'Noto Sans JP', sans-serif;
      font-size: 1.15rem;
      font-weight: 800;
      color: #fff;
      margin-bottom: 10px;
    }

    .ftcp {
      font-size: .65rem;
      opacity: .45;
      margin-top: 10px;
    }

    .ftnav {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 18px;
      margin: 18px 0;
    }

    .ftnav a {
      font-size: .75rem;
      color: rgba(255, 255, 255, .65);
    }

    .ftnav a:hover {
      color: #a8ffce;
    }

    /* ── BACK TOP ── */
    #bt {
      position: fixed;
      bottom: 88px;
      right: 18px;
      z-index: 900;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: var(--gp);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1rem;
      box-shadow: 0 4px 14px rgba(29, 140, 87, .35);
      transition: opacity .3s, transform .2s;
      cursor: pointer;
    }

    #bt:hover {
      transform: translateY(-3px);
    }

    #bt.hide {
      opacity: 0;
      pointer-events: none;
    }

    /* ── SP CTA ── */
    #spcta {
      display: none;
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 880;
      background: #fff;
      border-top: 1px solid var(--gl);
      box-shadow: 0 -4px 16px rgba(0, 0, 0, .1);
      padding: 10px 14px;
      gap: 10px;
      transition: transform 0.3s ease;
    }

    #spcta.hide {
      transform: translateY(100%);
    }

    #spcta a {
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      padding: 13px 10px;
      border-radius: 8px;
      font-weight: 700;
      font-size: .82rem;
      white-space: nowrap;
    }

    .sptel {
      background: var(--gp);
      color: #fff;
    }

    .spline {
      background: #06c755;
      color: #fff;
    }

    /* ── INFINITE SLIDER ── */
    .slide-wrap {
      width: 100%;
      overflow: hidden;
      margin-top: 60px;
    }

    .slide-track {
      display: flex;
      width: calc(300px * 10);
      animation: slide 30s linear infinite;
    }

    .slide-item {
      width: 300px;
      padding: 0 10px;
      flex-shrink: 0;
    }

    .slide-item img {
      width: 100%;
      height: 200px;
      object-fit: cover;
      border-radius: 8px;
    }

    @keyframes slide {
      0% {
        transform: translateX(0);
      }

      100% {
        transform: translateX(calc(-300px * 5));
      }
    }

    /* ── CTA SECTION ── */
    .cta-mid-section {
      background: #155f3b;
      padding: 60px 20px;
      color: #fff;
      text-align: center;
    }

    .cta-mid-in {
      max-width: 1000px;
      margin: 0 auto;
    }

    .cta-badge {
      display: inline-block;
      background: #ff7800;
      color: #fff;
      font-size: 16px;
      font-weight: 700;
      padding: 6px 24px;
      border-radius: 20px;
      margin-bottom: 20px;
    }

    .cta-ttl-mid {
      font-size: 36px;
      font-weight: 700;
      margin-bottom: 50px;
      letter-spacing: 0.05em;
    }

    .cta-g2 {
      display: grid;
      grid-template-columns: 1.1fr 0.9fr;
      gap: 50px;
      align-items: center;
      text-align: left;
    }

    .cta-img-mid img {
      width: 100%;
      height: auto;
      display: block;
      border-radius: 8px;
    }

    .cta-btns-mid {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .cta-btn-phone,
    .cta-btn-line {
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 14px 24px;
      border-radius: 50px;
      font-size: 22px;
      font-weight: 700;
      text-decoration: none;
      box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
      transition: .3s;
    }

    .cta-btn-phone {
      background: #ff7800;
      color: #fff;
    }

    .cta-btn-line {
      background: #fff;
      color: #06C755;
    }

    .cta-btn-phone:hover,
    .cta-btn-line:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
    }

    .icon-phone {
      display: inline-block;
      width: 1.1em;
      height: 1.1em;
      background-color: currentColor;
      -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5C20.55,15.5 21,15.95 21,16.5V20C21,20.55 20.55,21 20,21C10.61,21 3,13.39 3,4C3,3.45 3.45,3 4,3H7.5C8.05,3 8.5,3.45 8.5,4C8.5,5.25 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.59L6.62,10.79Z'/%3E%3C/svg%3E") no-repeat center / contain;
      mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5C20.55,15.5 21,15.95 21,16.5V20C21,20.55 20.55,21 20,21C10.61,21 3,13.39 3,4C3,3.45 3.45,3 4,3H7.5C8.05,3 8.5,3.45 8.5,4C8.5,5.25 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.59L6.62,10.79Z'/%3E%3C/svg%3E") no-repeat center / contain;
      vertical-align: middle;
      margin-right: 8px;
    }

    /* ── RESPONSIVE ── */
    @media(max-width:767px) {

      .pcnav,
      .hcta {
        display: none;
      }

      #hbg {
        display: flex;
      }

      #spcta {
        display: flex;
      }

      #bt {
        bottom: 100px;
        right: 14px;
      }

      .sec {
        padding: 52px 20px;
      }

      .wrap {
        padding: 0;
      }

      .ttl {
        font-size: 28px !important;
      }

      .ptttl,
      .fttl,
      .vcq,
      .rttl {
        font-size: 20px !important;
      }

      .fqtxt {
        font-size: 16px !important;
      }

      .fv-img-pc {
        display: none;
      }

      .fv-img-sp {
        display: block;
      }


      .btn {
        padding: 14px 20px;
        font-size: .85rem;
        width: 100%;
      }

      .stg {
        grid-template-columns: 1fr 1fr;
      }

      .st {
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, .1);
      }

      .st:nth-child(odd) {
        border-right: 1px solid rgba(255, 255, 255, .15);
      }

      .stn {
        font-size: 1.55rem;
      }

      .about-g {
        grid-template-columns: 1fr;
        gap: 24px;
      }

      .ptg {
        grid-template-columns: 1fr;
      }

      .sfg {
        grid-template-columns: 1fr;
        gap: 22px;
      }

      .sfimg {
        max-width: 260px;
        margin: 0 auto;
      }

      .cta-ttl-mid {
        font-size: 24px;
        margin-bottom: 30px;
      }

      .cta-g2 {
        grid-template-columns: 1fr;
        gap: 30px;
        text-align: center;
      }

      .cta-btns-mid {
        gap: 14px;
      }

      .cta-btn-phone,
      .cta-btn-line {
        font-size: 18px;
        padding: 12px 20px;
      }

      .acg {
        grid-template-columns: 1fr;
        gap: 24px;
      }

      .acmap {
        height: 220px;
      }

      .rbtns {
        flex-direction: column;
      }

      .rbtns .btn {
        width: 100%;
      }

      .wtxt {
        white-space: normal;
        font-size: 0.9rem;
      }

      .sp-br {
        display: inline;
      }

      .wcta-l {
        font-size: 28px !important;
      }
    }

    @media(min-width:768px) and (max-width:1023px) {
      .fv-h1 {
        font-size: 1.55rem;
      }

      .sfg {
        grid-template-columns: 220px 1fr;
        gap: 28px;
      }

      .grt-in {
        grid-template-columns: 1fr;
        text-align: center;
      }
    }
