/* ============================================================
   DESIGN TOKENS — 湘南国際アカデミー準拠
============================================================ */
:root {
  --color-black:#333333; --color-white:#fff;
  --color-primary:#166bb2; --color-primary-light:#51c5ff;
  --color-primary-light-thin:#dcf0ff;
  --color-accent-orange:#f88649; --color-accent-yellow:#e4aa08;
  --color-accent-pink:#ed909c; --color-accent-green:#3aa366;
  --color-text-black:var(--color-black); --color-text-white:var(--color-white);
  --color-text-primary:var(--color-primary);
  --color-text-gray:#999999;
  --color-bg-white:var(--color-white); --color-bg-primary:var(--color-primary);
  --color-bg-primary-light:var(--color-primary-light);
  --color-bg-gray-light:#f7f7f7;
  --color-border-gray:#dddddd; --color-border-gray-dark:#8d8d8d;
  --ffEn:"Montserrat"; --ffJa:"Noto Sans JP";
  --header-h:100px;
  --border-radius-default:10px; --border-radius-medium:6px; --border-radius-small:3px;
  --shadow-default:0px 0px 10px 0px #ddd;
  --easing-default:cubic-bezier(0.17,0.56,0.58,1);
}
@media screen and (max-width:767px){:root{--header-h:60px;}}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--ffEn),var(--ffJa),"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;color:var(--color-text-black);background-color:var(--color-bg-white);line-height:1.7;font-size:clamp(14px,16/1440*100vw,16px);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:opacity .3s}
a:hover{opacity:.8}

/* LAYOUT */
.l-container{margin:0 auto;padding:0 clamp(16px,30/1440*100vw,30px)}
.lp-section{padding:80px 0}
.lp-section--gray{background-color:var(--color-bg-gray-light)}
.lp-section--blue{background:linear-gradient(0deg,var(--color-primary),#0091d9);color:#fff}
.lp-section--navy{background-color:#0f2044;color:#fff}
.lp-section--thin{background-color:var(--color-primary-light-thin)}
.lp-section-divider{height:4px;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-light),var(--color-primary-light-thin))}

/* TYPOGRAPHY */
.c-headingXXL{color:var(--color-text-primary);font-weight:bold;line-height:1.5;font-size:clamp(22px,28/1440*100vw,28px)}
.c-headingXL{color:var(--color-text-primary);font-weight:bold;line-height:1.5;font-size:clamp(20px,25/1440*100vw,25px)}
.c-headingL{color:var(--color-text-primary);font-weight:bold;line-height:1.5;font-size:clamp(18px,22/1440*100vw,22px)}
.c-headingM{color:var(--color-text-primary);font-weight:bold;line-height:1.5;font-size:clamp(16px,19/1440*100vw,19px)}
.c-heading--black{color:var(--color-text-black)}
.c-heading--center{text-align:center}
.c-heading--white{color:#fff}
.c-txtDesc{font-size:clamp(15px,18/1440*100vw,18px);line-height:1.8}
.c-txtDescM{font-size:clamp(14px,16/1440*100vw,16px)}
.u-mt50{margin-top:50px} .u-mt40{margin-top:40px} .u-mt30{margin-top:30px}
.u-mt20{margin-top:20px} .u-mt15{margin-top:15px} .u-center{text-align:center}

/* BUTTONS */
.c-btnA{display:inline-block;background-color:var(--color-bg-primary);border-radius:calc(1px * infinity);color:var(--color-text-white);font-weight:bold;padding:10px 36px;transition:scale .3s ease;font-size:clamp(14px,16/1440*100vw,16px);cursor:pointer;border:2px solid var(--color-primary)}
.c-btnA:hover{scale:1.05;opacity:1}
.c-btnA--yellow{background-color:var(--color-accent-yellow);border-color:var(--color-accent-yellow);color:var(--color-text-black)}
.c-btnB{background-color:var(--color-bg-white);color:var(--color-text-primary);border-radius:calc(1px * infinity);border:1px solid var(--color-primary);font-weight:bold;line-height:1.4;font-size:clamp(15px,18/1440*100vw,18px);display:grid;grid-template-columns:1fr 28px;align-items:center;gap:16px;width:fit-content;padding:18px 36px;transition:all .3s ease;cursor:pointer}
.c-btnB:hover{opacity:1;background-color:var(--color-primary-light-thin)}
.c-btnB__iconR{width:100%;transition:transform .3s ease}
.c-btnB:hover .c-btnB__iconR{transform:translateX(4px)}
.c-hoverUp{display:inline-block;transition:translate .4s ease}
.c-hoverUp:hover{translate:0 -5px;opacity:1}

/* HEADER */
.l-header{z-index:10000;position:fixed;top:0;left:0;display:grid;align-content:center;background-color:var(--color-bg-white);height:var(--header-h);width:100%;padding:5px clamp(17px,30/1440*100vw,30px);transition:translate .5s ease;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.l-header.isHide{translate:0 -110%}
.l-header__inner{display:flex;align-items:center;justify-content:space-between;gap:20px}
.l-header__logo img{height:clamp(36px,50/1440*100vw,50px);width:auto}
.l-header__cta{display:flex;align-items:center;gap:12px}
.l-header__tel-wrap{display:flex;flex-direction:column;align-items:flex-end}
.l-header__tel-num{font-family:var(--ffEn);font-size:clamp(16px,20/1440*100vw,20px);font-weight:900;color:var(--color-text-primary);line-height:1}
.l-header__tel-time{font-size:11px;color:var(--color-text-gray)}
@media screen and (max-width:767px){.l-header__tel-wrap{display:none}.l-header__cta{gap:8px}}

/* KV */
.p-lp-kv{position:relative;padding-top:var(--header-h);overflow:hidden;background-color:var(--color-bg-white)}
.p-lp-kv::before{content:'';position:absolute;top:0;right:0;width:70%;height:100%;background:linear-gradient(90deg,#fff 10%,var(--btob-primary-thin) 45%);z-index:0}
.p-lp-kv::after{content:'';position:absolute;top:0;left:0;width:55%;height:100%;background:linear-gradient(90deg,#fff 0%,#fff 65%,rgba(255,255,255,0) 100%);z-index:1}
.p-lp-kv__inner{position:relative;z-index:2;min-height:calc(100vh - var(--header-h));display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding:60px 0 80px}
.p-lp-kv__text{grid-column:1}
.p-lp-kv__visual{grid-column:2;position:relative}
.p-lp-kv__badge{display:inline-flex;align-items:center;gap:6px;background-color:var(--color-accent-yellow);color:var(--color-text-black);font-weight:bold;font-size:13px;padding:5px 14px;border-radius:calc(1px * infinity);margin-bottom:20px;animation:lp-fadeUp .5s ease both}
.p-lp-kv__badge::before{content:'★';font-size:11px}
.p-lp-kv__ttl{font-weight:900;line-height:1.3;font-size:clamp(26px,42/1440*100vw,46px);color:var(--color-text-black);margin-bottom:10px;animation:lp-fadeUp .6s .1s ease both}
.p-lp-kv__ttl-em{color:var(--color-text-primary);display:block}
.p-lp-kv__sub{font-size:clamp(14px,17/1440*100vw,17px);color:var(--color-text-black);line-height:1.8;margin-bottom:32px;animation:lp-fadeUp .6s .2s ease both}
.p-lp-kv__stats{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:36px;animation:lp-fadeUp .6s .3s ease both}
.p-lp-kv__stat{background-color:var(--color-bg-white);border:2px solid var(--color-primary);border-radius:var(--border-radius-default);padding:12px 18px;text-align:center;min-width:110px;box-shadow:var(--shadow-default)}
.p-lp-kv__stat-num{font-family:var(--ffEn);font-size:clamp(22px,28/1440*100vw,28px);font-weight:900;color:var(--color-text-primary);line-height:1}
.p-lp-kv__stat-num sup{font-size:13px}
.p-lp-kv__stat-label{font-size:11px;color:var(--color-text-black);margin-top:5px;line-height:1.4;font-weight:bold}
.p-lp-kv__cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;animation:lp-fadeUp .6s .4s ease both}
.p-lp-kv__note{font-size:12px;color:var(--color-text-gray);margin-top:12px;animation:lp-fadeUp .6s .5s ease both}
.p-lp-kv__photo-wrap{position:relative;animation:lp-fadeUp .7s .3s ease both}
.p-lp-kv__photo{width:100%;height:auto;border-radius:20px;box-shadow:0 12px 48px rgba(22,107,178,.22);display:block;object-fit:cover}
.p-lp-kv__photo-badge{position:absolute;top:-14px;right:16px;background:var(--color-accent-yellow);color:var(--color-text-black);font-size:12px;font-weight:bold;padding:6px 14px;border-radius:calc(1px * infinity);white-space:nowrap;box-shadow:0 2px 8px rgba(228,170,8,.4);z-index:10;animation:lp-fadeUp .6s .7s ease both}
.p-lp-kv__target-badge{margin-top:14px;background:rgba(22,107,178,.08);border:1.5px solid rgba(22,107,178,.3);border-radius:10px;padding:12px 18px;display:flex;align-items:center;gap:12px;animation:lp-fadeUp .6s .8s ease both}
.p-lp-kv__target-badge-ttl{font-size:12px;font-weight:bold;color:var(--color-text-primary);line-height:1.6}
.p-lp-kv__target-badge-ttl span{color:var(--color-text-black);font-weight:normal}
@media screen and (max-width:900px){.p-lp-kv__inner{grid-template-columns:1fr;grid-template-rows:auto auto}.p-lp-kv__text{grid-column:1}.p-lp-kv__visual{grid-column:1;max-width:400px;margin:0 auto;width:100%}}
@media screen and (max-width:767px){.p-lp-kv::before{width:100%;background:linear-gradient(180deg,#fff 5%,var(--btob-primary-thin) 100%)}.p-lp-kv::after{display:none}.p-lp-kv__inner{min-height:auto;padding:36px 0 48px;gap:28px}.p-lp-kv__visual{display:none}}

/* SECTION HEAD */
.lp-section__head{margin-bottom:48px}
.lp-section__head--center{text-align:center}
.lp-section__label{font-family:var(--ffEn);font-size:12px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--color-primary-light);display:block;margin-bottom:8px}
.lp-section__label--dark{color:rgba(255,255,255,.6)}

/* PAIN CARDS */
.lp-pain-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
@media screen and (max-width:767px){.lp-pain-grid{grid-template-columns:1fr}}
.lp-pain-card{background-color:var(--color-bg-white);border:1px solid var(--color-border-gray);border-radius:var(--border-radius-default);padding:28px 24px;position:relative;overflow:hidden;box-shadow:var(--shadow-default);transition:translate .4s ease}
.lp-pain-card:hover{translate:0 -5px}
.lp-pain-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-light));border-radius:var(--border-radius-default) var(--border-radius-default) 0 0}
.lp-pain-icon{font-size:36px;margin-bottom:14px}
.lp-pain-ttl{font-size:clamp(15px,17/1440*100vw,17px);font-weight:bold;margin-bottom:10px;color:var(--color-text-black);line-height:1.5}
.lp-pain-desc{font-size:14px;color:var(--color-text-gray);line-height:1.7}

/* SOLUTION */
.lp-solution-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:40px}
@media screen and (max-width:767px){.lp-solution-grid{grid-template-columns:1fr}}
.lp-solution-card{background-color:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:var(--border-radius-default);padding:28px;display:flex;gap:20px;align-items:flex-start;transition:background .2s}
.lp-solution-card:hover{background-color:rgba(255,255,255,.13)}
.lp-solution-num{font-family:var(--ffEn);font-size:clamp(28px,34/1440*100vw,34px);font-weight:900;color:var(--color-accent-yellow);line-height:1;min-width:44px}
.lp-solution-ttl{font-size:clamp(15px,17/1440*100vw,17px);font-weight:bold;color:#fff;margin-bottom:8px}
.lp-solution-desc{font-size:14px;color:rgba(255,255,255,.75);line-height:1.7}

/* RESULTS */
.lp-result-rows{display:flex;flex-direction:column;gap:20px;margin-top:48px}
.lp-result-row{display:flex;align-items:center;gap:24px}
@media screen and (max-width:599px){.lp-result-row{flex-direction:column;gap:10px}}
.lp-result-year{min-width:80px;text-align:center;background-color:rgba(255,255,255,.08);border:2px solid rgba(255,255,255,.25);border-radius:var(--border-radius-medium);padding:10px 8px;flex-shrink:0}
.lp-result-year--gold{border-color:var(--color-accent-yellow);background-color:rgba(228,170,8,.12)}
.lp-result-year-num{font-family:var(--ffEn);font-size:22px;font-weight:900;color:rgba(255,255,255,.9);line-height:1}
.lp-result-year--gold .lp-result-year-num{color:var(--color-accent-yellow)}
.lp-result-year-sub{font-size:11px;color:rgba(255,255,255,.5);margin-top:3px}
.lp-result-card{flex:1;background-color:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:var(--border-radius-default);padding:20px 24px;display:flex;align-items:center;gap:24px}
.lp-result-card--gold{border-color:rgba(228,170,8,.4);background-color:rgba(228,170,8,.1)}
@media screen and (max-width:599px){.lp-result-card{flex-direction:column;gap:8px;align-items:flex-start}}
.lp-result-rate{font-family:var(--ffEn);font-size:clamp(36px,46/1440*100vw,46px);font-weight:900;line-height:1;white-space:nowrap;color:var(--color-primary-light)}
.lp-result-rate--gold{color:var(--color-accent-yellow)}
.lp-result-rate--teal{color:#0db8c0}
.lp-result-rate sup{font-size:18px}
.lp-result-detail{font-size:14px;color:rgba(255,255,255,.75);line-height:1.7}
.lp-result-detail strong{color:#fff;font-size:15px;display:block;margin-bottom:4px}

/* VISA CARDS */
.lp-visa-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:40px}
@media screen and (max-width:900px){.lp-visa-grid{grid-template-columns:repeat(2,1fr)}}
@media screen and (max-width:599px){.lp-visa-grid{grid-template-columns:1fr}}
.lp-visa-card{background-color:var(--color-bg-white);border:2px solid var(--color-border-gray);border-radius:var(--border-radius-default);padding:24px 20px;text-align:center;box-shadow:var(--shadow-default);transition:translate .4s ease,border-color .3s}
.lp-visa-card:hover{translate:0 -5px;border-color:var(--color-primary)}
.lp-visa-card__icon{font-size:36px;margin-bottom:12px}
.lp-visa-card__name{font-size:15px;font-weight:900;color:var(--color-text-primary);margin-bottom:8px}
.lp-visa-card__desc{font-size:13px;color:var(--color-text-black);line-height:1.7;text-align:left}
.lp-visa-card__tag{display:inline-block;font-size:10px;font-weight:bold;background-color:var(--color-primary-light-thin);color:var(--color-primary);border:1px solid var(--color-primary);border-radius:calc(1px * infinity);padding:2px 8px;margin-top:10px}

/* SERVICE DETAIL */
.lp-service-2col{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px}
@media screen and (max-width:767px){.lp-service-2col{grid-template-columns:1fr}}
.lp-service-card{background-color:var(--color-bg-white);border:1px solid var(--color-border-gray);border-radius:var(--border-radius-default);padding:32px 28px;box-shadow:var(--shadow-default)}
.lp-service-card--primary{border-color:var(--color-primary);border-width:2px}
.lp-service-card--green{border-color:var(--color-accent-green);border-width:2px}
.lp-service-card__head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.lp-service-card__icon{font-size:32px}
.lp-service-card__ttl{font-size:clamp(16px,19/1440*100vw,19px);font-weight:900;color:var(--color-text-primary)}
.lp-service-card__ttl--green{color:var(--color-accent-green)}
.lp-service-card__desc{font-size:14px;color:var(--color-text-black);line-height:1.8}
.lp-service-card__list{margin-top:14px;display:grid;gap:8px}
.lp-service-card__item{display:flex;align-items:flex-start;gap:8px;font-size:14px}
.lp-service-card__item::before{content:'✓';color:var(--color-accent-green);font-weight:900;font-size:15px;flex-shrink:0}
.lp-service-card__price{margin-top:16px;font-size:13px;color:var(--color-text-gray);padding-top:14px;border-top:1px solid var(--color-border-gray)}
.lp-service-card__price span{font-family:var(--ffEn);font-size:24px;font-weight:900;color:var(--color-text-primary)}

/* CYCLE */
.lp-cycle-wrap{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;margin-top:40px;background:linear-gradient(135deg,var(--color-primary-light-thin) 0%,rgba(255,255,255,0) 60%);border:1.5px solid var(--color-primary);border-radius:var(--border-radius-default);padding:36px 32px}
@media screen and (max-width:767px){.lp-cycle-wrap{grid-template-columns:1fr;padding:24px 20px}}
.lp-cycle-img{width:100%;max-width:380px;height:auto;display:block;margin:0 auto}
.lp-cycle-points{display:grid;gap:12px;margin-top:16px}
.lp-cycle-point{display:flex;align-items:flex-start;gap:10px;font-size:14px}
.lp-cycle-point-icon{width:24px;height:24px;border-radius:50%;background-color:var(--color-bg-primary);color:#fff;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}

/* MERIT（事業所のメリット） */
.lp-merit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
@media screen and (max-width:900px){.lp-merit-grid{grid-template-columns:repeat(2,1fr)}}
@media screen and (max-width:599px){.lp-merit-grid{grid-template-columns:1fr}}
.lp-merit-card{background-color:var(--color-bg-white);border:1px solid var(--color-border-gray);border-radius:var(--border-radius-default);padding:28px 24px;box-shadow:var(--shadow-default);transition:translate .4s ease}
.lp-merit-card:hover{translate:0 -5px}
.lp-merit-card__num{font-family:var(--ffEn);font-size:36px;font-weight:900;color:var(--color-primary-light-thin);line-height:1;margin-bottom:8px}
.lp-merit-card__ttl{font-size:clamp(14px,16/1440*100vw,16px);font-weight:bold;color:var(--color-text-primary);margin-bottom:10px;line-height:1.5}
.lp-merit-card__desc{font-size:13px;color:var(--color-text-gray);line-height:1.7}
.lp-merit-card__data{margin-top:10px;font-size:12px;font-weight:bold;color:var(--color-accent-green);background:rgba(58,163,102,.08);border:1px solid rgba(58,163,102,.3);border-radius:4px;padding:4px 10px;display:inline-block}

/* PRICE */
.lp-price-wrap{max-width:720px;margin:40px auto 0}
.lp-price-card{background-color:var(--color-bg-white);border-radius:var(--border-radius-default);padding:clamp(28px,44/1440*100vw,44px);box-shadow:0 4px 24px rgba(22,107,178,.14);border:1px solid var(--color-border-gray);position:relative;overflow:hidden}
.lp-price-card::before{content:'';position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-light))}
.lp-price-label{font-size:13px;color:var(--color-text-gray);margin-bottom:6px}
.lp-price-amount{font-family:var(--ffEn);font-size:clamp(48px,60/1440*100vw,60px);font-weight:900;color:var(--color-text-primary);line-height:1}
.lp-price-amount span{font-size:18px;color:var(--color-text-gray)}
.lp-price-tax{font-size:13px;color:var(--color-text-gray);margin-top:4px}
.lp-price-features{margin-top:24px;display:grid;gap:10px}
.lp-price-feature{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.6}
.lp-price-feature::before{content:'✓';color:var(--color-accent-green);font-weight:900;font-size:16px;flex-shrink:0;margin-top:1px}
.lp-price-feature strong{color:var(--color-accent-green)}
.lp-price-discount{margin-top:16px;padding:14px 18px;background:rgba(228,170,8,.1);border:1.5px solid rgba(228,170,8,.4);border-radius:var(--border-radius-medium);font-size:14px;font-weight:bold}
.lp-price-discount em{color:var(--color-accent-yellow);font-style:normal}

/* FLOW */
.lp-flow{position:relative;margin-top:48px}
.lp-flow::before{content:'';position:absolute;left:31px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--color-primary) 0%,var(--color-primary-light) 100%)}
.lp-flow-step{display:flex;gap:24px;margin-bottom:36px;align-items:flex-start}
.lp-flow-num{min-width:64px;height:64px;border-radius:50%;background-color:var(--color-bg-primary);display:flex;align-items:center;justify-content:center;font-family:var(--ffEn);font-size:20px;font-weight:900;color:#fff;flex-shrink:0;position:relative;z-index:1;box-shadow:0 4px 12px rgba(22,107,178,.3)}
.lp-flow-content{padding-top:12px}
.lp-flow-ttl{font-size:clamp(15px,17/1440*100vw,17px);font-weight:bold;margin-bottom:6px;color:var(--color-text-primary)}
.lp-flow-desc{font-size:14px;color:var(--color-text-black);line-height:1.7}

/* FAQ */
.lp-faq{margin-top:40px;display:grid;gap:14px}
.lp-faq-item{background-color:var(--color-bg-white);border:1px solid var(--color-border-gray);border-radius:var(--border-radius-default);overflow:hidden;box-shadow:var(--shadow-default)}
.lp-faq-q{display:flex;align-items:flex-start;gap:12px;padding:18px 20px;cursor:pointer;font-size:15px;font-weight:bold;color:var(--color-text-black);line-height:1.6;user-select:none}
.lp-faq-q-badge{min-width:32px;height:32px;border-radius:50%;background-color:var(--color-bg-primary);color:#fff;font-family:var(--ffEn);font-size:14px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.lp-faq-q-text{flex:1;padding-top:4px}
.lp-faq-q-arrow{font-size:12px;color:var(--color-text-gray);margin-top:6px;transition:transform .3s;flex-shrink:0}
.lp-faq-item.is-open .lp-faq-q-arrow{transform:rotate(180deg)}
.lp-faq-a{display:none;padding:0 20px 18px 64px;font-size:14px;color:var(--color-text-black);line-height:1.8;border-top:1px solid var(--color-border-gray)}
.lp-faq-item.is-open .lp-faq-a{display:block;padding-top:14px}
.lp-faq-a-badge{display:inline-block;font-family:var(--ffEn);font-size:13px;font-weight:900;color:var(--color-accent-green);margin-right:6px}

/* FOOTER CTA */
.l-footerCta{background:linear-gradient(0deg,#166BB2,#0091D9);padding:80px 0}
.l-footerCta__inner{text-align:center}
.l-footerCta__buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:36px}
.l-footerCta__btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;background-color:var(--color-accent-yellow);color:var(--color-text-black);font-weight:900;font-size:clamp(15px,17/1440*100vw,17px);padding:18px 40px;border-radius:calc(1px * infinity);cursor:pointer;transition:scale .3s ease;border:2px solid var(--color-accent-yellow)}
.l-footerCta__btn-primary:hover{scale:1.05;opacity:1}
.l-footerCta__btn-secondary{display:inline-flex;align-items:center;gap:10px;color:#fff;font-size:clamp(14px,16/1440*100vw,16px);font-weight:bold;padding:18px 32px;border:2px solid rgba(255,255,255,.5);border-radius:calc(1px * infinity);transition:border-color .3s,background .3s}
.l-footerCta__btn-secondary:hover{border-color:#fff;background:rgba(255,255,255,.1);opacity:1}
.l-footerCta__note{font-size:12px;color:rgba(255,255,255,.5);margin-top:16px}

/* FOOTER */
.l-footer{background-color:#1a1a2e;padding:48px 0 28px;color:rgba(255,255,255,.55)}
.l-footer__inner{display:flex;align-items:flex-start;gap:40px;margin-bottom:28px;flex-wrap:wrap}
.l-footer__logo img{height:42px;filter:brightness(0) invert(.7);margin-bottom:10px}
.l-footer__address{font-size:12px;line-height:1.9}
.l-footer__links{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;padding-top:50px}
.l-footer__links a{color:rgba(255,255,255,.45)}
.l-footer__links a:hover{color:rgba(255,255,255,.9);opacity:1}
.l-footer__copy{font-size:11px;color:rgba(255,255,255,.3);text-align:center;border-top:1px solid rgba(255,255,255,.07);padding-top:20px}

/* FLOAT CTA */
.lp-float-cta{display:none;position:fixed;bottom:0;left:0;right:0;z-index:9999;padding:10px 14px;background-color:rgba(255,255,255,.97);border-top:1px solid var(--color-border-gray);box-shadow:0 -2px 10px rgba(0,0,0,.08)}
.lp-float-cta a{display:block;text-align:center;background-color:var(--color-accent-yellow);color:var(--color-text-black);font-weight:bold;font-size:16px;padding:14px;border-radius:calc(1px * infinity)}
@media screen and (max-width:767px){.lp-float-cta{display:block}}

/* ANIMATIONS */
@keyframes lp-fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.lp-reveal{opacity:0;transform:translateY(28px);transition:opacity .6s var(--easing-default),transform .6s var(--easing-default)}
.lp-reveal.is-visible{opacity:1;transform:translateY(0)}
.lp-reveal-d1{transition-delay:.1s}
.lp-reveal-d2{transition-delay:.2s}
.lp-reveal-d3{transition-delay:.3s}

/* DATA HIGHLIGHT STRIP */
.lp-data-strip{display:flex;gap:0;background-color:var(--color-bg-primary);border-radius:var(--border-radius-default);overflow:hidden;margin-top:40px}
.lp-data-strip__item{flex:1;text-align:center;padding:24px 16px;border-right:1px solid rgba(255,255,255,.15)}
.lp-data-strip__item:last-child{border-right:none}
.lp-data-strip__num{font-family:var(--ffEn);font-size:clamp(24px,32/1440*100vw,32px);font-weight:900;color:#fff;line-height:1}
.lp-data-strip__num sup{font-size:14px}
.lp-data-strip__label{font-size:11px;color:rgba(255,255,255,.7);margin-top:6px;line-height:1.4;font-weight:bold}
@media screen and (max-width:599px){.lp-data-strip{flex-direction:column}.lp-data-strip__item{border-right:none;border-bottom:1px solid rgba(255,255,255,.15)}.lp-data-strip__item:last-child{border-bottom:none}}

/* MANARIE BADGE */
.lp-manarie-inline{display:flex;align-items:center;gap:12px;background:rgba(58,163,102,.08);border:1.5px solid rgba(58,163,102,.35);border-radius:var(--border-radius-default);padding:14px 20px;margin-top:16px}
.lp-manarie-inline img{height:40px;width:auto;flex-shrink:0}
.lp-manarie-inline-txt{font-size:13px;line-height:1.6;color:var(--color-text-black)}
.lp-manarie-inline-txt strong{color:var(--color-accent-green)}

/* ============================================================
   BtoB カラーオーバーライド
   メインアクセント：グリーン系（#2d8a5e）
   サイト標準のブルー（#166bb2）は補助色として維持
============================================================ */
:root {
  --btob-primary: #2d8a5e;          /* BtoB メインカラー（グリーン系） */
  --btob-primary-light: #4db88a;    /* ライトグリーン */
  --btob-primary-thin: #e8f5ef;     /* 極薄グリーン（背景用） */
  --btob-primary-dark: #1e6444;     /* ダークグリーン（ホバー等） */
}

/* KV背景グラデーション */
.p-lp-kv::before {
  background: linear-gradient(90deg, #fff 10%, var(--btob-primary-thin) 45%);
}

/* KVバッジ */
.p-lp-kv__badge {
  background-color: var(--btob-primary);
  color: #fff;
}
.p-lp-kv__badge::before { color: #fff; }

/* KV タイトルem */
.p-lp-kv__ttl-em { color: var(--btob-primary); }

/* KV 実績バッジ枠 */
.p-lp-kv__stat { border-color: var(--btob-primary); }
.p-lp-kv__stat-num { color: var(--btob-primary); }

/* KV ターゲットバッジ */
.p-lp-kv__target-badge {
  background: rgba(45,138,94,.08);
  border-color: rgba(45,138,94,.3);
}
.p-lp-kv__target-badge-ttl { color: var(--btob-primary); }

/* KV 写真バッジ */
.p-lp-kv__photo-badge {
  background: var(--btob-primary);
  color: #fff;
  box-shadow: 0 2px 8px rgba(45,138,94,.4);
}

/* 見出し系 */
.c-headingXXL, .c-headingXL, .c-headingL, .c-headingM { color: var(--btob-primary); }

/* セクションラベル */
.lp-section__label { color: var(--btob-primary-light); }

/* c-btnA（塗りつぶしボタン） */
.c-btnA {
  background-color: var(--btob-primary);
  border-color: var(--btob-primary);
}
.c-btnA:hover { background-color: var(--btob-primary-dark); border-color: var(--btob-primary-dark); }

/* c-btnB（アウトラインボタン） */
.c-btnB { color: var(--btob-primary); border-color: var(--btob-primary); }
.c-btnB:hover { background-color: var(--btob-primary-thin); }

/* header 電話番号 */
.l-header__tel-num { color: var(--btob-primary); }

/* PAINカード 上部ライン */
.lp-pain-card::before { background: linear-gradient(90deg, var(--btob-primary), var(--btob-primary-light)); }

/* SOLUTIONセクション背景 */
.lp-section--blue {
  background: linear-gradient(0deg, var(--btob-primary-dark), var(--btob-primary));
}

/* RESULTSセクション背景 */
.lp-section--navy { background-color: #0f2a1e; }

/* 実績レート（メインカラー） */
.lp-result-rate { color: var(--btob-primary-light); }

/* DATAストリップ */
.lp-data-strip { background-color: var(--btob-primary); }

/* VISAカードホバー */
.lp-visa-card:hover { border-color: var(--btob-primary); }
.lp-visa-card__tag {
  background-color: var(--btob-primary-thin);
  color: var(--btob-primary);
  border-color: var(--btob-primary);
}

/* サービスカード（プライマリ） */
.lp-service-card--primary { border-color: var(--btob-primary); }
.lp-service-card__ttl { color: var(--btob-primary); }

/* サイクル型ラップ */
.lp-cycle-wrap { border-color: var(--btob-primary); background: linear-gradient(135deg, var(--btob-primary-thin) 0%, rgba(255,255,255,0) 60%); }
.lp-cycle-point-icon { background-color: var(--btob-primary); }

/* MERITカード */
.lp-merit-card__num { color: rgba(45,138,94,.2); }
.lp-merit-card__ttl { color: var(--btob-primary); }

/* FLOWライン・番号 */
.lp-flow::before { background: linear-gradient(to bottom, var(--btob-primary) 0%, var(--btob-primary-light) 100%); }
.lp-flow-num { background-color: var(--btob-primary); box-shadow: 0 4px 12px rgba(45,138,94,.3); }
.lp-flow-ttl { color: var(--btob-primary); }

/* FAQ バッジ */
.lp-faq-q-badge { background-color: var(--btob-primary); }

/* PRICEカード上部ライン */
.lp-price-card::before { background: linear-gradient(90deg, var(--btob-primary), var(--btob-primary-light)); }
.lp-price-amount { color: var(--btob-primary); }

/* セクションディバイダー */
.lp-section-divider { background: linear-gradient(90deg, var(--btob-primary), var(--btob-primary-light), var(--btob-primary-thin)); }

/* フッターCTA */
.l-footerCta { background: linear-gradient(0deg, var(--btob-primary-dark), var(--btob-primary)); }
.l-footerCta__btn-primary {
  background-color: #fff;
  color: var(--btob-primary);
  border-color: #fff;
}
.l-footerCta__btn-primary:hover { background-color: var(--btob-primary-thin); }

/* ヘッダーCTAボタン */
.l-header .c-btnA {
  background-color: var(--btob-primary);
  border-color: var(--btob-primary);
}

/* フローティングCTA */
.lp-float-cta a {
  background-color: var(--btob-primary);
  color: #fff;
}

/* ============================================================
   PC横幅修正 — lp-jp-btc.css への追記用
   ・コンテンツ幅: 1200px
   ・セクション背景色: 画面幅いっぱいに広がる
   lp-jp-btc.css の末尾に追記してください
============================================================ */

/* ---- コンテナ最大幅を 1200px に統一 ---- */
.l-container {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
  box-sizing: border-box;
}

/* ---- ヘッダー内幅も同様に ---- */
.l-header__inner {
  width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
  box-sizing: border-box;
}

/* ============================================================
   背景を画面幅いっぱいに広げる
   ── 親要素の幅に縛られず 100vw に広げるテクニック ──
   section 自体を左に50%引き戻し width:100vw に設定する
============================================================ */

/* ---- KVセクション ---- */
.p-lp-kv {
  width: 100vw;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  box-sizing: border-box;
}
.p-lp-kv__inner {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
  box-sizing: border-box;
}

/* ---- 各セクション（背景あり）---- */
.lp-section,
.lp-section--gray,
.lp-section--blue,
.lp-section--navy,
.lp-section--primary-thin,
.lp-section-divider,
.l-footerCta,
.l-footer {
  width: 100vw;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  box-sizing: border-box;
}

/* ---- セクション内コンテナ：コンテンツを1200pxに制限 ---- */
.lp-section .l-container,
.l-footerCta .l-container,
.l-footer .l-container {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
  box-sizing: border-box;
}

/* ---- タブレット（1280px以下）：パディング縮小 ---- */
@media (max-width: 1280px) {
  .l-container,
  .l-header__inner,
  .p-lp-kv__inner,
  .lp-section .l-container,
  .l-footerCta .l-container,
  .l-footer .l-container {
    padding-left: 24px;
    padding-right: 24px;
  }
}

/* ---- スマホ（768px以下）：全幅・パディング縮小 ---- */
@media (max-width: 768px) {
  .l-container,
  .l-header__inner,
  .p-lp-kv__inner,
  .lp-section .l-container,
  .l-footerCta .l-container,
  .l-footer .l-container {
    max-width: 100%;
    padding-left: 16px;
    padding-right: 16px;
  }

  .p-lp-kv,
  .lp-section,
  .lp-section--gray,
  .lp-section--blue,
  .lp-section--navy,
  .lp-section--primary-thin,
  .lp-section-divider,
  .l-footerCta,
  .l-footer {
    width: 100%;
    left: 0;
    transform: none;
  }
}
