*{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#071f49;
  --navy2:#0c2f6b;
  --blue:#145aa0;
  --gold:#b8882a;
  --gold2:#d2a447;
  --bg:#f6f9fc;
  --text:#17243a;
  --muted:#52687f;
  --line:#d8e4ef;
  --shadow:0 16px 48px rgba(7,31,73,.08);
}
html{scroll-behavior:smooth}
body{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Noto Sans JP",sans-serif;
  color:var(--text);
  background:#fff;
  line-height:1.85;
  letter-spacing:.02em;
}
a{text-decoration:none;color:inherit}
img{width:100%;height:100%;object-fit:cover;display:block}
.container{width:min(1120px,calc(100% - 40px));margin:auto}
.header{
  position:sticky;top:0;z-index:1000;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.nav{height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;}
.logo-img{height:44px;width:auto;display:block;}
.logo-tagline{
  font-family:'Montserrat','Noto Sans JP',sans-serif;
  font-size:10px;font-weight:600;
  color:var(--navy);letter-spacing:.08em;
  line-height:1.55;
  border-left:2px solid var(--blue);
  padding-left:10px;
}
.logo small{display:block;color:var(--blue);font-size:10px;letter-spacing:.22em;margin-top:2px}
.menu{display:flex;align-items:center;gap:18px;font-size:13px;font-weight:700;color:var(--muted)}
.menu a:hover{color:var(--blue)}
.nav-cta{background:var(--navy);color:#fff!important;padding:10px 16px;border-radius:3px}
.hero{
  position:relative;
  overflow:hidden;
  min-height:720px;
  display:flex;
  align-items:center;
  background:linear-gradient(135deg,#fff,#f8fbff 55%,#edf4fb);
}
#particles{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero-inner{
  position:relative;z-index:1;
  display:grid;grid-template-columns:1.05fr .95fr;
  gap:56px;align-items:center;
  padding:96px 0 80px;
}
.eyebrow,.kicker{
  font-size:11px;color:var(--blue);font-weight:900;
  letter-spacing:.28em;text-transform:uppercase;
  margin-bottom:12px;display:block;
}
.eyebrow:before{
  content:"";display:inline-block;width:30px;height:2px;background:var(--gold);
  margin-right:10px;vertical-align:middle;
}
h1{font-size:clamp(38px,5vw,64px);line-height:1.24;color:var(--navy);margin-bottom:22px}
h1 span{color:var(--blue)}
h2{font-size:clamp(28px,3.2vw,44px);line-height:1.35;color:var(--navy);margin-bottom:14px}
h3{color:var(--navy);margin-bottom:10px}
p,li{color:var(--muted)}
.lead{font-size:16px;margin-bottom:32px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:14px 26px;border-radius:3px;font-weight:900;font-size:14px;
  border:1px solid transparent;cursor:pointer;
}
.btn.primary{background:var(--navy);color:#fff}
.btn.secondary{background:#fff;color:var(--navy);border-color:var(--line)}
.btn.white{background:#fff;color:var(--navy)}
.badge-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.badge-list span{
  border:1px solid var(--line);background:#fff;color:var(--navy);
  padding:8px 12px;border-radius:20px;font-size:12px;font-weight:900;
}
.image-placeholder{background:linear-gradient(135deg,#eef4fa,#dbe8f5)}
.hero-image{
  height:500px;
  clip-path:polygon(18% 0,100% 0,100% 100%,0 100%);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.hero-image img,
.section-photo img,
.wide-photo img,
.future-photo img{
  background:linear-gradient(135deg,#eef4fa,#dbe8f5);
}
/* モバイル時に顔が切れないよう上部を表示 */
@media(max-width:900px){
  .future-photo img{
    object-position:center top;
  }
}
.section{padding:92px 0}
.section.alt{background:var(--bg)}
.section-head{margin-bottom:42px}
.section-head p{max-width:780px}
.trust{background:var(--navy);color:#fff;padding:56px 0}
.trust-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:center}
.trust-label,.gold{color:var(--gold2);font-weight:900;letter-spacing:.25em}
.trust h2{color:#fff;font-size:30px}
.trust-items{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.trust-item{border-left:1px solid rgba(255,255,255,.25);padding-left:20px}
.trust-item strong{display:block;color:#fff;font-size:17px;margin-bottom:8px}
.trust-item p{color:rgba(255,255,255,.72);font-size:13px}
.service-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:32px;align-items:center}
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.card,.step,.price-card,.compare-card,.flow-item,.contact-form,.reason-card{
  background:#fff;border:1px solid var(--line);padding:26px;
  box-shadow:0 8px 30px rgba(7,31,73,.04);
}
.card span,.step span,.flow-item span{
  color:var(--gold);font-size:12px;font-weight:900;letter-spacing:.18em;
}
.card p,.step p,.flow-item p{font-size:14px}
.section-photo{height:360px;overflow:hidden}
.section-photo.angled{clip-path:polygon(15% 0,100% 0,100% 100%,0 100%)}
.scheme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:1100px;margin:0 auto}
.wide-photo{
  height:280px;margin-top:32px;
  clip-path:polygon(8% 0,100% 0,92% 100%,0 100%);
  overflow:hidden;
}
.price-grid,.compare-grid,.reason-box,.contact-grid,.future-box{
  display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center;
}
.price-card{position:relative}
.price-card.recommend{border-color:rgba(184,136,42,.55)}
.price-card.recommend:before{
  content:"おすすめ";position:absolute;right:20px;top:18px;
  background:var(--gold);color:#fff;font-size:11px;font-weight:900;
  padding:5px 12px;border-radius:20px;
}
.amount{font-size:38px;font-weight:900;color:var(--navy);margin:8px 0}
.amount small{font-size:14px;color:var(--muted)}
.price-card ul,.compare-card ul{padding-left:20px}
.note{
  margin-top:22px;background:#f9fbfe;border-left:4px solid var(--gold);
  padding:18px;color:var(--muted);font-size:13px;
}
.center{text-align:center;margin-top:24px}
.reason-card{border-left:5px solid var(--gold)}
.reason-card strong{display:block;font-size:20px;color:var(--navy)}
.reason-card span{display:block;font-size:28px;font-weight:900;color:var(--blue);margin:8px 0}
.highlight{border:2px solid var(--navy)}


/* Flow redesign */
.flow-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
  margin-top:48px;
  position:relative;
}
.flow-item{
  position:relative;
  border-radius:22px;
  padding:38px 30px 30px;
  overflow:hidden;
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
  background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);
}

.flow-item{
  border:1px solid rgba(15,59,130,.06);
  backdrop-filter:blur(6px);
}
.flow-item::selection{background:#dbe8ff}
.flow-item .flow-bg-icon{
  position:absolute;
  right:18px;
  top:12px;
  font-size:74px;
  opacity:.22;
  line-height:1;
  filter:grayscale(40%);
  pointer-events:none;
}
.flow-item:before{
  box-shadow:0 0 40px rgba(15,59,130,.25);
}
.flow-item:after{
  box-shadow:0 4px 14px rgba(15,59,130,.08);
}
.flow-item h3{
  position:relative;
  z-index:2;
}
.flow-item p{
  position:relative;
  z-index:2;
}

.flow-item:before{
  content:"";
  position:absolute;
  left:0;top:0;
  width:100%;
  height:4px;
  background:linear-gradient(90deg,#0f3b82,#2d67c4);
}
.flow-item:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 40px rgba(7,31,73,.10);
  border-color:rgba(15,59,130,.18);
}
.flow-item span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  border-radius:18px;
  background:linear-gradient(135deg,#0f3b82,#2559aa);
  color:#fff !important;
  font-size:18px !important;
  letter-spacing:.04em !important;
  margin-bottom:22px;
  box-shadow:0 10px 24px rgba(15,59,130,.22);
}
.flow-item h3{
  font-size:24px;
  margin-bottom:14px;
}
.flow-item p{
  line-height:1.9;
  color:#5c667a;
}
.flow-item:after{
  content:"→";
  position:absolute;
  right:-16px;
  top:50%;
  transform:translateY(-50%);
  width:34px;
  height:34px;
  border-radius:999px;
  background:#f4f8ff;
  border:1px solid rgba(15,59,130,.12);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#1b4f9c;
  font-weight:900;
  z-index:5;
}
.flow-item:nth-child(3):after,
.flow-item:nth-child(6):after{
  display:none;
}
.flow-item{
  animation:flowFade .6s ease both;
}
.flow-item:nth-child(2){animation-delay:.08s}
.flow-item:nth-child(3){animation-delay:.16s}
.flow-item:nth-child(4){animation-delay:.24s}
.flow-item:nth-child(5){animation-delay:.32s}
.flow-item:nth-child(6){animation-delay:.40s}

@keyframes flowFade{
  from{
    opacity:0;
    transform:translateY(18px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@media(max-width:900px){
  .flow-grid{
    grid-template-columns:1fr;
  }
  .flow-item:after{
    content:"↓";
    right:50%;
    top:auto;
    bottom:-18px;
    transform:translateX(50%);
  }
  .flow-item:last-child:after{
    display:none;
  }
}

.future{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff}
.future h2{color:#fff}
.future p{color:rgba(255,255,255,.78)}
.future-photo{
  height:360px;clip-path:polygon(12% 0,100% 0,100% 100%,0 100%);
  overflow:hidden;
}
.faq-item{border-bottom:1px solid var(--line);padding:22px 0}
.faq-item h3{font-size:18px}
.final-cta{
  background:linear-gradient(135deg,var(--navy),var(--navy2));
  color:#fff;padding:86px 0;text-align:center;
}
.final-cta h2{color:#fff}
.final-cta p{color:rgba(255,255,255,.78);margin-bottom:28px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:block;font-size:12px;font-weight:900;color:var(--navy);margin-bottom:14px}
input,textarea,select{
  width:100%;margin-top:7px;padding:13px 14px;border:1px solid var(--line);
  border-radius:4px;font:inherit;background:#fff;
}
textarea{min-height:130px;resize:vertical}
.full{width:100%}
.footer{background:var(--navy);padding:56px 0 0;color:rgba(255,255,255,.7)}
.footer .container{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:48px;
  align-items:start;
  padding-bottom:48px;
  border-bottom:1px solid rgba(255,255,255,.1);
}
/* ブランド */
.footer-brand{}
.footer-logo-link{display:inline-block;margin-bottom:14px;}
.footer-logo-img{height:52px;width:auto;display:block;filter:brightness(0) invert(1);opacity:.9;}
.footer-tagline{color:#fff;font-weight:700;font-size:15px;letter-spacing:.05em;margin-bottom:6px;}
.footer-desc{color:rgba(255,255,255,.6);font-size:12.5px;line-height:1.85;}
/* ナビ横並び */
.footer-nav-wrap{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.footer-nav-col{}
.footer-nav-title{
  color:#fff;font-weight:700;font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;
  margin-bottom:14px;padding-bottom:8px;
  border-bottom:1px solid rgba(255,255,255,.15);
}
.footer-nav-col a{
  display:block;color:rgba(255,255,255,.6);
  font-size:13px;margin:8px 0;
  text-decoration:none;transition:color .2s;
}
.footer-nav-col a:hover{color:#fff;}
/* コピーライト帯 */
.footer-bottom{background:rgba(0,0,0,.25);padding:16px 0;}
.footer-bottom-inner{
  display:flex;justify-content:space-between;align-items:center;
  font-size:11.5px;color:rgba(255,255,255,.45);
}
/* モバイル */
@media(max-width:900px){
  .footer .container{grid-template-columns:1fr;}
  .footer-nav-wrap{grid-template-columns:repeat(2,1fr);}
  .footer-bottom-inner{flex-direction:column;gap:6px;text-align:center;}
}
@media(max-width:900px){
  .menu{display:none}
  .hero-inner,.trust-grid,.service-layout,.price-grid,.compare-grid,.reason-box,.contact-grid,.future-box,.footer-grid{
    grid-template-columns:1fr;
  }
  .trust-items,.scheme-grid,.flow-grid,.service-grid{grid-template-columns:1fr}
  .hero{min-height:auto}
  .hero-image,.section-photo,.wide-photo,.future-photo{height:280px;clip-path:none}
  .form-row{grid-template-columns:1fr}
}

/* 早期登録特典 */
.early-box{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px;}
.early-item{background:#fff;border:1px solid var(--line);border-radius:4px;padding:32px 24px;text-align:center;transition:box-shadow .3s;}
.early-item:hover{box-shadow:0 6px 24px rgba(12,36,84,0.1);}
.early-icon{font-size:36px;margin-bottom:14px;}
.early-item h3{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:10px;}
.early-item p{font-size:13px;line-height:1.9;color:var(--text);}
.early-item strong{color:var(--blue);}
/* ヒーローh1のspan */
.hero-copy h1 span{color:var(--blue);}
@media(max-width:900px){
  .early-box{grid-template-columns:1fr;}
}

/* ===== ACCORDION FAQ（みずほ・SBI風） ===== */
.accordion-wrap{max-width:800px;margin:0 auto;}
.accordion-item{
  background:#fff;
  border:1px solid var(--line);
  border-radius:4px;
  margin-bottom:8px;
  overflow:hidden;
  transition:box-shadow .3s;
}
.accordion-item:hover{box-shadow:0 4px 16px rgba(12,36,84,0.08);}
.accordion-item.open{
  border-color:var(--blue);
  box-shadow:0 4px 20px rgba(26,95,168,0.12);
}
.accordion-btn{
  width:100%;display:flex;align-items:center;gap:14px;
  padding:20px 24px;
  background:none;border:none;cursor:pointer;
  text-align:left;transition:background .2s;
}
.accordion-btn:hover{background:var(--bg);}
.accordion-item.open .accordion-btn{background:var(--bg);}
.accordion-q{
  flex-shrink:0;
  width:28px;height:28px;border-radius:50%;
  background:var(--navy);color:#fff;
  font-size:12px;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  font-family:'Montserrat',sans-serif;
  transition:background .3s;
}
.accordion-item.open .accordion-q{background:var(--blue);}
.accordion-title{
  flex:1;font-size:15px;font-weight:500;
  color:var(--navy);line-height:1.5;
}
.accordion-icon{
  flex-shrink:0;width:20px;height:20px;
  position:relative;margin-left:8px;
}
.accordion-icon::before,
.accordion-icon::after{
  content:'';position:absolute;
  background:var(--navy);border-radius:2px;
  transition:all .3s;
}
.accordion-icon::before{width:14px;height:2px;top:9px;left:3px;}
.accordion-icon::after{width:2px;height:14px;top:3px;left:9px;}
.accordion-item.open .accordion-icon::after{transform:rotate(90deg);opacity:0;}
.accordion-item.open .accordion-icon::before,
.accordion-item.open .accordion-icon::after{background:var(--blue);}
.accordion-body{
  max-height:0;overflow:hidden;
  transition:max-height .4s ease, padding .3s;
  padding:0 24px 0 66px;
}
.accordion-item.open .accordion-body{
  max-height:400px;
  padding:0 24px 20px 66px;
}
.accordion-body p{
  font-size:14px;line-height:1.95;
  color:var(--text);
  border-top:1px solid var(--line);
  padding-top:16px;
}

/* ===== GKM Premium Financial Design Tune v28 ===== */
:root{
  --navy:#061a3d;
  --navy2:#082b63;
  --blue:#115fa8;
  --blue2:#eaf3fb;
  --gold:#b68a32;
  --gold2:#d6ad58;
  --bg:#f4f8fc;
  --text:#17233a;
  --muted:#566a80;
  --line:#d7e4ef;
  --shadow:0 22px 60px rgba(6,26,61,.10);
  --shadow-soft:0 12px 34px rgba(6,26,61,.075);
}
body{background:linear-gradient(180deg,#fff 0%,#f8fbfe 100%);}
.header{background:rgba(255,255,255,.92);border-bottom:1px solid rgba(215,228,239,.82);box-shadow:0 10px 30px rgba(6,26,61,.045);}
.nav-cta,.btn.primary{background:linear-gradient(135deg,var(--navy),var(--blue));box-shadow:0 12px 26px rgba(6,26,61,.18);}
.btn,.nav-cta{border-radius:999px;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;}
.btn:hover,.nav-cta:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(6,26,61,.20);}
.hero{background:radial-gradient(circle at 16% 18%,rgba(17,95,168,.11),transparent 28%),radial-gradient(circle at 72% 34%,rgba(182,138,50,.13),transparent 24%),linear-gradient(135deg,#fff 0%,#f8fbff 52%,#edf5fb 100%);}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.35),rgba(255,255,255,0));z-index:0;pointer-events:none;}
.hero-image{border-radius:0 34px 34px 34px;box-shadow:0 30px 72px rgba(6,26,61,.18);}
.badge-list span{border-color:rgba(17,95,168,.18);background:rgba(255,255,255,.82);box-shadow:0 8px 24px rgba(6,26,61,.055);}
.trust,.future,.final-cta,.footer{background:linear-gradient(135deg,#061a3d 0%,#082b63 58%,#0c3f83 100%);}
.section.alt{background:linear-gradient(180deg,#f4f8fc 0%,#eef5fb 100%);}
.card,.step,.price-card,.compare-card,.flow-item,.contact-form,.reason-card,.early-item,.accordion-item,.apply-form{border-radius:18px;border:1px solid rgba(215,228,239,.9);box-shadow:var(--shadow-soft);}
.card:hover,.step:hover,.price-card:hover,.compare-card:hover,.flow-item:hover,.reason-card:hover,.early-item:hover{transform:translateY(-3px);box-shadow:0 18px 44px rgba(6,26,61,.11);}
.card,.step,.price-card,.compare-card,.flow-item,.reason-card,.early-item{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;}
.price-card.recommend{border-color:rgba(182,138,50,.72);box-shadow:0 22px 56px rgba(182,138,50,.14);}
.price-card.recommend:before{background:linear-gradient(135deg,var(--gold),var(--gold2));}
.amount{letter-spacing:-.03em;}
.note{border-radius:14px;background:linear-gradient(90deg,#fffaf1,#f7fbff);}
input,textarea,select{border-radius:12px;border-color:rgba(215,228,239,.95);box-shadow:inset 0 1px 0 rgba(255,255,255,.8);}
input:focus,textarea:focus,select:focus{outline:2px solid rgba(17,95,168,.16);border-color:rgba(17,95,168,.45);}
.footer-bottom{background:rgba(0,0,0,.30);}


/* ===== Pricing responsive fix v29 ===== */
.price-grid--plans{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  align-items:stretch;
}
.price-grid--plans .price-card{
  min-width:0;
  height:100%;
  padding-top:34px;
}
.price-grid--plans .price-card h3{
  padding-right:96px;
  line-height:1.25;
}
.price-grid--plans .price-card:not(.recommend) h3{
  padding-right:0;
}
.price-card.recommend:before{
  white-space:nowrap;
  right:18px;
  top:20px;
}
.price-grid--plans .amount{
  font-size:clamp(26px,3vw,38px);
  line-height:1.15;
  word-break:keep-all;
}
.price-grid--plans .amount small{
  display:block;
  margin-top:4px;
  line-height:1.5;
}
@media(max-width:1100px){
  .price-grid--plans{
    grid-template-columns:repeat(3,minmax(220px,1fr));
    gap:16px;
  }
  .price-grid--plans .price-card{padding:22px;}
  .price-grid--plans .price-card h3{font-size:20px;}
}
@media(max-width:860px){
  .price-grid--plans{
    grid-template-columns:1fr;
    max-width:560px;
    margin-left:auto;
    margin-right:auto;
  }
  .price-grid--plans .price-card{
    padding:26px;
  }
  .price-grid--plans .price-card h3{
    padding-right:112px;
  }
}
@media(max-width:420px){
  .price-grid--plans .price-card{padding:22px 18px;}
  .price-grid--plans .price-card h3{padding-right:0;padding-top:32px;}
  .price-card.recommend:before{left:18px;right:auto;top:18px;}
}

/* ===== Campaign readability + WHY card equal height fix v30 ===== */
.campaign-banner{
  position:relative;
  overflow:hidden;
  margin-top:32px;
  padding:18px 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px 22px;
  border-radius:18px;
  background:
    radial-gradient(circle at 78% 18%,rgba(255,255,255,.35),transparent 32%),
    linear-gradient(135deg,#061a3d 0%,#115fa8 58%,#eaf3fb 100%);
  border:1px solid rgba(255,255,255,.55);
  box-shadow:0 18px 44px rgba(6,26,61,.14);
}
.campaign-banner::after{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:17px;
  background:linear-gradient(90deg,rgba(255,255,255,.08),rgba(255,255,255,.32));
  pointer-events:none;
}
.campaign-main,
.campaign-note{
  position:relative;
  z-index:1;
}
.campaign-main{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:260px;
}
.campaign-label{
  background:#fff;
  color:var(--blue);
  font-size:11px;
  font-weight:900;
  letter-spacing:1px;
  padding:5px 13px;
  border-radius:999px;
  white-space:nowrap;
  box-shadow:0 8px 20px rgba(6,26,61,.12);
}
.campaign-title{
  color:#fff;
  font-size:15px;
  font-weight:900;
  margin:0;
  text-shadow:0 1px 8px rgba(6,26,61,.18);
}
.campaign-title span{
  font-size:22px;
  letter-spacing:-.5px;
}
.campaign-note{
  margin:0;
  padding:10px 14px;
  border-radius:12px;
  color:#061a3d;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(255,255,255,.65);
  font-size:12px;
  font-weight:800;
  line-height:1.65;
  box-shadow:0 10px 24px rgba(6,26,61,.10);
}
.campaign-note span{
  display:block;
  color:#6b4a0c;
  font-size:11px;
  font-weight:800;
}
.reason-box--why{
  align-items:stretch!important;
}
.reason-box--why .reason-card{
  height:100%;
  min-height:224px;
  justify-content:flex-start;
}
.reason-box--why .reason-card p{
  margin-top:auto;
}
@media(max-width:900px){
  .campaign-banner{
    padding:18px;
    border-radius:16px;
  }
  .campaign-main{
    width:100%;
    align-items:flex-start;
  }
  .campaign-note{
    width:100%;
  }
  .reason-box--why .reason-card{
    min-height:auto;
  }
  .reason-box--why .reason-card p{
    margin-top:0;
  }
}
@media(max-width:420px){
  .campaign-main{
    flex-direction:column;
    gap:10px;
  }
}


.service-title-en,
.section-label,
.heading-en {
    color: #d6b36a !important;
    text-shadow: 0 1px 6px rgba(214,179,106,.22);
}


/* ===== v35: index SERVICE「GKMのサービス」視認性修正 ===== */
#service .service-main-title{
  color:#163047 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.35);
}
#service .service-title-main{
  color:#163047 !important;
}
#service .service-title-accent{
  color:#163047 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.35);
}


/* 2x2 layout tuning */
.scheme-grid .step{
  min-height:auto;
}

@media(max-width:768px){
  .scheme-grid{
    grid-template-columns:1fr;
  }
}


/* === FINAL FIX: What GKM Supports STEP cards = 2 columns x 2 rows on desktop === */
.clarity-feature .scheme-grid{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:22px !important;
  width:100% !important;
  max-width:none !important;
  margin-top:34px !important;
  align-items:stretch !important;
}
.clarity-feature .scheme-card{
  width:auto !important;
  min-width:0 !important;
  height:auto !important;
  min-height:0 !important;
  padding:30px 24px 26px !important;
}
.clarity-feature .scheme-card h3{
  font-size:22px !important;
  line-height:1.45 !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
}
.clarity-feature .scheme-card p{
  font-size:14px !important;
  line-height:1.9 !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}
.clarity-feature .scheme-line{
  display:none !important;
}
@media(max-width:900px){
  .clarity-feature .scheme-grid{
    grid-template-columns:1fr !important;
  }
}

/* ========== ハンバーガーメニュー ========== */
.hamburger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  border-radius: 6px;
  flex-shrink: 0;
  z-index: 1001;
}
.hamburger span {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--navy);
  border-radius: 2px;
  transition: transform .3s ease, opacity .3s ease;
}
.hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity: 0; }
.hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ドロワー */
.drawer {
  position: fixed;
  top: 0;
  right: -280px;
  width: 260px;
  height: 100%;
  background: #fff;
  box-shadow: -4px 0 24px rgba(6,26,61,.12);
  z-index: 1000;
  transition: right .3s ease;
  padding: 80px 24px 40px;
  display: flex;
  flex-direction: column;
}
.drawer.open { right: 0; }

.drawer-nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.drawer-link {
  display: block;
  padding: 13px 16px;
  color: var(--navy);
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  border-radius: 8px;
  transition: background .18s;
}
.drawer-link:hover { background: #f0f4fa; }
.drawer-cta {
  display: block;
  margin-top: 20px;
  padding: 14px 16px;
  background: linear-gradient(135deg, var(--navy), var(--blue));
  color: #fff !important;
  font-size: 15px;
  font-weight: 700;
  text-align: center;
  border-radius: 999px;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(6,26,61,.18);
}

/* オーバーレイ */
.drawer-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.35);
  z-index: 999;
}
.drawer-overlay.open { display: block; }

/* PC でもハンバーガーを常に表示 */
@media (min-width: 901px) {
  .hamburger { display: flex; }
}
/* === GKM clarity sections added === */
.hero-service-strip{
  position:relative;
  z-index:5;
  background:#fff;
  border-top:1px solid rgba(10,42,87,.08);
  border-bottom:1px solid rgba(10,42,87,.08);
}
.hero-service-strip .strip-inner{
  max-width:1120px;
  margin:0 auto;
  padding:22px 24px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
.strip-item{
  background:linear-gradient(180deg,#fff,#f7f9fc);
  border:1px solid rgba(10,42,87,.12);
  border-radius:10px;
  padding:18px 16px;
  display:flex;
  align-items:center;
  gap:12px;
  box-shadow:0 10px 28px rgba(5,32,74,.05);
}
.strip-icon{
  width:38px;
  height:38px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#082b63;
  color:#d7a64a;
  font-weight:800;
  flex:0 0 auto;
}
.strip-text strong{
  display:block;
  color:#06295d;
  font-size:15px;
  line-height:1.4;
}
.strip-text span{
  display:block;
  color:#65758b;
  font-size:12px;
  margin-top:2px;
}
.clarity-section{
  padding:86px 24px;
  background:#fff;
}
.clarity-section.alt{
  background:linear-gradient(180deg,#f7f9fc,#fff);
}
.clarity-inner{
  max-width:1120px;
  margin:0 auto;
}
.clarity-head{
  margin-bottom:34px;
}
.clarity-kicker{
  font-size:12px;
  letter-spacing:.18em;
  color:#b58a35;
  font-weight:800;
  text-transform:uppercase;
  margin-bottom:10px;
}
.clarity-head h2{
  color:#06295d;
  font-size:clamp(28px,3.2vw,42px);
  line-height:1.35;
  margin:0 0 14px;
}
.clarity-head p{
  color:#596a80;
  max-width:780px;
  line-height:1.9;
}
.clarity-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.clarity-card{
  background:#fff;
  border:1px solid rgba(10,42,87,.12);
  border-radius:14px;
  padding:28px 24px;
  box-shadow:0 14px 40px rgba(5,32,74,.06);
}
.clarity-card .num{
  font-size:12px;
  color:#b58a35;
  letter-spacing:.16em;
  font-weight:800;
  margin-bottom:12px;
}
.clarity-card h3{
  color:#06295d;
  font-size:20px;
  margin:0 0 10px;
}
.clarity-card p,
.clarity-card li{
  color:#596a80;
  font-size:14px;
  line-height:1.85;
}
.clarity-card ul{
  margin:0;
  padding-left:1.1em;
}
.clarity-feature{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:34px;
  align-items:center;
  background:#071f49;
  border-radius:18px;
  padding:42px;
  overflow:hidden;
  position:relative;
}
.clarity-feature:after{
  content:"GKM";
  position:absolute;
  right:-18px;
  bottom:-55px;
  color:rgba(255,255,255,.045);
  font-size:140px;
  font-weight:900;
  letter-spacing:.08em;
}
.clarity-feature h2,
.clarity-feature h3{
  color:#fff;
}
.clarity-feature p,
.clarity-feature li{
  color:rgba(255,255,255,.75);
}
.feature-points{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
  position:relative;
  z-index:1;
}
.feature-point{
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.07);
  border-radius:12px;
  padding:18px;
}
.feature-point strong{
  display:block;
  color:#d7a64a;
  margin-bottom:6px;
}
.clarity-safe{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.safe-item{
  border-left:3px solid #b58a35;
  background:#fff;
  padding:20px;
  box-shadow:0 12px 34px rgba(5,32,74,.05);
}
.safe-item strong{
  color:#06295d;
  display:block;
  margin-bottom:6px;
}
.safe-item span{
  color:#596a80;
  font-size:13px;
  line-height:1.7;
}
@media(max-width:900px){
  .hero-service-strip .strip-inner,
  .clarity-grid,
  .clarity-safe,
  .feature-points{
    grid-template-columns:1fr;
  }
  .clarity-feature{
    grid-template-columns:1fr;
    padding:30px 22px;
  }
}

/* === GKM v38: dark card text contrast fix === */
.feature-point{
  background:rgba(255,255,255,.075) !important;
  border:1px solid rgba(255,255,255,.18) !important;
}
.feature-point strong{
  color:#d7a64a !important;
}
.feature-point span,
.feature-point p{
  color:rgba(255,255,255,.82) !important;
  line-height:1.8;
}


/* === GKM v39 support scheme upgrade === */
.scheme-grid,
.support-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:22px;
  margin-top:34px;
}
.scheme-card,
.support-card{
  position:relative;
  overflow:hidden;
  border-radius:18px;
  padding:34px 24px 26px;
  background:linear-gradient(180deg,#0d2b63,#081f49);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 18px 50px rgba(2,12,35,.16);
  transition:.25s ease;
}
.scheme-card:hover,
.support-card:hover{
  transform:translateY(-4px);
}
.scheme-card::before,
.support-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
   radial-gradient(circle at top right, rgba(215,166,74,.16), transparent 42%);
  pointer-events:none;
}
.scheme-icon{
  width:62px;
  height:62px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  margin-bottom:22px;
  font-size:28px;
  color:#d7a64a;
  backdrop-filter:blur(6px);
}
.scheme-step{
  font-size:11px;
  letter-spacing:.18em;
  color:#d7a64a;
  margin-bottom:10px;
  font-weight:700;
}
.scheme-card h3,
.support-card h3{
  color:#fff;
  font-size:21px;
  line-height:1.45;
  margin:0 0 14px;
}
.scheme-card p,
.support-card p{
  color:rgba(255,255,255,.78);
  line-height:1.9;
  font-size:14px;
}
.scheme-line{
  position:absolute;
  top:50%;
  right:-12px;
  width:24px;
  height:2px;
  background:#d7a64a;
  opacity:.5;
}
@media(max-width:960px){
  .scheme-grid,
  .support-grid{
    grid-template-columns:1fr;
  }
  .scheme-line{
    display:none;
  }
}


/* === GKM v40 scheme section upgrade === */
.gkm-scheme-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
  margin-top:38px;
}
.gkm-scheme-card{
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,#0d2b63,#071d44);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  padding:34px 24px 26px;
  box-shadow:0 20px 55px rgba(0,0,0,.18);
}
.gkm-scheme-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
   radial-gradient(circle at top right, rgba(215,166,74,.18), transparent 42%);
}
.gkm-scheme-icon{
  position:relative;
  z-index:1;
  width:62px;
  height:62px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  color:#d7a64a;
  font-size:28px;
  margin-bottom:22px;
}
.gkm-scheme-step{
  position:relative;
  z-index:1;
  font-size:11px;
  letter-spacing:.18em;
  color:#d7a64a;
  font-weight:700;
  margin-bottom:10px;
}
.gkm-scheme-card h3{
  position:relative;
  z-index:1;
  color:#fff;
  font-size:22px;
  line-height:1.45;
  margin:0 0 14px;
}
.gkm-scheme-card p{
  position:relative;
  z-index:1;
  color:rgba(255,255,255,.8);
  line-height:1.9;
  font-size:14px;
}
.gkm-scheme-arrow{
  position:absolute;
  right:-14px;
  top:50%;
  transform:translateY(-50%);
  color:#d7a64a;
  font-size:24px;
  opacity:.6;
}
@media(max-width:960px){
  .gkm-scheme-grid{
    grid-template-columns:1fr;
  }
  .gkm-scheme-arrow{
    display:none;
  }
}



/* === FINAL FIX: What GKM Supports STEP cards = 2 columns x 2 rows on desktop === */
.clarity-feature .scheme-grid{
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:22px !important;
  width:100% !important;
  max-width:none !important;
  margin-top:34px !important;
  align-items:stretch !important;
}
.clarity-feature .scheme-card{
  width:auto !important;
  min-width:0 !important;
  height:auto !important;
  min-height:0 !important;
  padding:30px 24px 26px !important;
}
.clarity-feature .scheme-card h3{
  font-size:22px !important;
  line-height:1.45 !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
}
.clarity-feature .scheme-card p{
  font-size:14px !important;
  line-height:1.9 !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}
.clarity-feature .scheme-line{
  display:none !important;
}
@media(max-width:900px){
  .clarity-feature .scheme-grid{
    grid-template-columns:1fr !important;
  }
}


/* Premium finance section: requested section only */
#needs{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 18% 8%, rgba(55,103,168,.28) 0%, rgba(55,103,168,0) 34%),
    radial-gradient(circle at 82% 78%, rgba(9,34,74,.9) 0%, rgba(9,34,74,0) 42%),
    linear-gradient(135deg,#07162e 0%,#0b2242 46%,#102b4d 100%);
}
#needs::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.28;
  background-image:
    linear-gradient(rgba(255,255,255,.22) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.22) 1px, transparent 1px);
  background-size:120px 120px;
  mask-image:linear-gradient(180deg, transparent 0%, #000 18%, #000 82%, transparent 100%);
}
#needs::after{
  content:"";
  position:absolute;
  right:-170px;
  top:-160px;
  width:420px;
  height:420px;
  z-index:0;
  pointer-events:none;
  border-radius:50%;
  opacity:.52;
  background:
    repeating-radial-gradient(circle, rgba(212,175,55,.38) 0 1px, transparent 1px 10px),
    radial-gradient(circle at 38% 62%, rgba(255,216,120,.42) 0 2px, transparent 3px),
    radial-gradient(circle, transparent 56%, rgba(212,175,55,.55) 57%, transparent 58%);
  filter:drop-shadow(0 0 20px rgba(212,175,55,.18));
}
#needs .clarity-inner{
  position:relative;
  z-index:1;
}
#needs .clarity-inner::before{
  content:"";
  position:absolute;
  left:-260px;
  bottom:-230px;
  width:440px;
  height:440px;
  border-radius:50%;
  pointer-events:none;
  opacity:.34;
  background:
    repeating-radial-gradient(circle, rgba(212,175,55,.32) 0 1px, transparent 1px 12px),
    radial-gradient(circle at 72% 28%, rgba(255,224,142,.38) 0 3px, transparent 4px),
    radial-gradient(circle, transparent 60%, rgba(212,175,55,.50) 61%, transparent 62%);
}
#needs .clarity-head{
  position:relative;
}
#needs .clarity-kicker{
  color:#d8b65f;
  letter-spacing:2px;
  text-shadow:0 0 18px rgba(216,182,95,.22);
}
#needs .clarity-kicker::before,
#needs .clarity-kicker::after{
  content:"";
  display:inline-block;
  width:54px;
  height:1px;
  margin:0 16px 4px;
  background:linear-gradient(90deg, transparent, rgba(216,182,95,.85), transparent);
}
#needs h2{
  color:#fff;
  text-shadow:0 8px 26px rgba(0,0,0,.26);
}
#needs .clarity-head p{
  color:rgba(255,255,255,.82);
}
#needs .clarity-grid{
  position:relative;
  z-index:2;
}
#needs .clarity-card{
  position:relative;
  overflow:hidden;
  background:linear-gradient(145deg, rgba(255,255,255,.105), rgba(255,255,255,.045));
  border:1px solid rgba(216,182,95,.34);
  border-radius:14px;
  box-shadow:0 20px 45px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(10px);
  transition:transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}
#needs .clarity-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,221,139,.78), transparent);
  opacity:.7;
}
#needs .clarity-card::after{
  content:"";
  position:absolute;
  right:-70px;
  top:-70px;
  width:150px;
  height:150px;
  border-radius:50%;
  border:1px solid rgba(216,182,95,.18);
  opacity:.55;
}
#needs .clarity-card:hover{
  transform:translateY(-4px);
  border-color:rgba(230,200,123,.58);
  box-shadow:0 24px 55px rgba(0,0,0,.26), 0 0 0 1px rgba(216,182,95,.08) inset;
}
#needs .clarity-card h3{
  color:#fff;
}
#needs .clarity-card p{
  color:rgba(255,255,255,.78);
}
#needs .clarity-card .num{
  display:flex;
  align-items:center;
  gap:12px;
  color:#e7c979;
  font-weight:700;
  font-size:12px;
  letter-spacing:.12em;
  margin-bottom:16px;
}
#needs .cap-icon{
  width:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  color:#e4c46d;
  background:radial-gradient(circle at 30% 20%, rgba(255,232,164,.28), rgba(212,175,55,.12) 45%, rgba(255,255,255,.04) 100%);
  border:1px solid rgba(216,182,95,.38);
  box-shadow:0 8px 22px rgba(0,0,0,.20), inset 0 1px 0 rgba(255,255,255,.12);
  flex-shrink:0;
}
#needs .cap-icon svg{
  width:24px;
  height:24px;
  stroke:currentColor;
  fill:none;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
@media(max-width:900px){
  #needs::before{background-size:82px 82px;opacity:.22;}
  #needs::after{right:-230px;top:-210px;opacity:.38;}
  #needs .clarity-inner::before{left:-310px;bottom:-270px;opacity:.24;}
  #needs .clarity-kicker::before,
  #needs .clarity-kicker::after{width:28px;margin:0 10px 4px;}
  #needs .clarity-grid{grid-template-columns:1fr !important;}
}

/* ===================================
   スマホ表示修正（追加分）
=================================== */
@media (max-width: 768px) {

  /* なぜGKMが選ばれるのか：2列→1列 */
  .why-grid,
  [class*="why"] .service-grid {
    grid-template-columns: 1fr !important;
  }

  /* WEB制作・運用事業：3列→1列 */
  .service-grid {
    grid-template-columns: 1fr !important;
  }

  /* 送客・メディア運営事業：2列→1列 */
  .sub-service-grid {
    grid-template-columns: 1fr !important;
  }

  /* MAINラベル・SUBラベルのセクションタイトル：2行化 */
  .section-label-row {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 4px !important;
  }

  .section-label-sub {
    margin-left: 0 !important;
  }
}

/* ===================================
   スマホ追加修正
=================================== */
@media (max-width: 768px) {

  /* なぜGKMが選ばれるのか：4ボックス 2列→1列 */
  .reason-box--why {
    grid-template-columns: 1fr !important;
  }

  /* WEB制作・運用事業 3列→1列 */
  .service-grid {
    grid-template-columns: 1fr !important;
  }

  /* 送客・メディア運営事業 2列→1列 */
  .sub-service-grid {
    grid-template-columns: 1fr !important;
  }

  /* MAIN・SUBラベル行：横並び→2行化 */
  .service-label-row,
  [style*="display:flex"][style*="align-items:center"][style*="border-bottom"] {
    flex-wrap: wrap !important;
  }

  /* サブテキスト（金融・ファクタリング会社専門 等）を改行 */
  [style*="display:flex"][style*="align-items:center"][style*="border-bottom"] span {
    width: 100% !important;
    margin-top: 4px !important;
    padding-left: 0 !important;
  }
}

/* ===================================
   スマホ表示 全修正（768px以下）
=================================== */
@media (max-width: 768px) {

  /* ① なぜGKMが選ばれるのか 4ボックス → 1列 */
  .reason-box--why {
    grid-template-columns: 1fr !important;
  }

  /* ② オプションサービス 8ボックス → 1列 */
  .reason-box {
    grid-template-columns: 1fr !important;
  }

  /* ③ ボックス内のアイコン+タイトル+バッジ → 縦並び */
  .reason-card > div[style*="display:flex"] {
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  /* ④ WEB制作・運用事業 3列 → 1列 */
  .service-grid {
    grid-template-columns: 1fr !important;
  }

  /* ⑤ 送客・メディア運営 2列 → 1列 */
  .sub-service-grid {
    grid-template-columns: 1fr !important;
  }

  /* ⑥ MAIN・SUBラベル行 → 2行化（サブテキストを改行） */
  div[style*="display:flex"][style*="border-bottom"] {
    flex-wrap: wrap !important;
  }
  div[style*="display:flex"][style*="border-bottom"] span {
    width: 100% !important;
    margin-top: 6px !important;
  }

  /* ⑦ gkm-scheme-grid 4列 → 1列 */
  .gkm-scheme-grid {
    grid-template-columns: 1fr !important;
  }

  /* ⑧ scheme-grid・support-grid → 1列 */
  .scheme-grid,
  .support-grid {
    grid-template-columns: 1fr !important;
  }
}


/* ============================================================
   お申し込みページ（apply.html）専用スタイル
   ※ apply.html の head 内 <style> から移設（インラインCSS全廃）
   ============================================================ */
.apply-hero{background:linear-gradient(135deg,var(--navy),var(--blue));padding:80px 0 40px;text-align:center;}
.apply-hero h1{color:#fff;font-size:28px;font-weight:700;margin-bottom:8px;}
.apply-hero p{color:rgba(255,255,255,.7);font-size:13px;}
.apply-body{max-width:720px;margin:0 auto;padding:60px 20px;}

/* --- フォーム本体 --- */
.apply-form{background:#fff;border:1px solid var(--line);border-radius:4px;padding:40px;box-shadow:0 4px 20px rgba(12,36,84,0.06);}
.apply-form h2{font-size:18px;font-weight:700;color:var(--navy);margin-bottom:24px;padding-bottom:14px;border-bottom:2px solid var(--bg);}
.fg{margin-bottom:20px;}
.fg label{display:block;font-size:11px;font-weight:700;letter-spacing:1px;color:var(--navy);margin-bottom:6px;text-transform:uppercase;}
.fg label .req{color:#e53e3e;margin-left:4px;}
.fg input,.fg textarea,.fg select{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:3px;font-size:14px;font-family:inherit;outline:none;transition:border-color .3s;background:#fff;color:var(--text);}
.fg input:focus,.fg textarea:focus,.fg select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(20,90,160,0.08);}
.fg textarea{height:120px;resize:vertical;}
.fg-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.agree-box{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:20px;margin:28px 0;}
.agree-box p{font-size:13px;color:var(--text);margin-bottom:12px;line-height:1.8;}
.agree-check{display:flex;align-items:center;gap:10px;cursor:pointer;}
.agree-check input[type="checkbox"]{width:18px;height:18px;cursor:pointer;accent-color:var(--blue);}
.agree-check span{font-size:14px;font-weight:600;color:var(--navy);}
.agree-check a{color:var(--blue);text-decoration:underline;}
.btn-apply{width:100%;background:var(--blue);color:#fff;padding:16px;border:none;border-radius:3px;font-size:15px;font-weight:700;cursor:pointer;transition:all .3s;margin-top:8px;font-family:inherit;}
.btn-apply:hover{background:var(--navy);transform:translateY(-2px);box-shadow:0 6px 20px rgba(12,36,84,0.2);}
.btn-apply:disabled{background:#ccc;cursor:not-allowed;transform:none;box-shadow:none;}
.apply-note{font-size:12px;color:#888;text-align:center;margin-top:12px;line-height:1.8;}
.success-msg{display:none;background:#f0fff4;border:1px solid #68d391;border-radius:4px;padding:24px;text-align:center;margin-top:20px;}
.success-msg h3{color:#276749;font-size:16px;margin-bottom:8px;}
.success-msg p{color:#2f855a;font-size:13px;}

/* 旧インラインstyleの置き換えクラス */
.agree-box.tight{margin-bottom:12px;}
.agree-box-title{font-weight:600;color:var(--navy);margin-bottom:14px;}
.agree-box-sub{font-size:12px;color:#888;margin-bottom:16px;}
.agree-check.gap-sm{margin-bottom:12px;}
.agree-check.gap-md{margin-bottom:16px;}

/* ============================================================
   プラン選択カード（タップで選択／4択）
   ============================================================ */
.apply-plan{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-bottom:40px;
}
.plan-option{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:5px;
  padding:24px 18px 20px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  cursor:pointer;
  transition:border-color .2s, box-shadow .2s, transform .2s, background .2s;
  -webkit-tap-highlight-color:transparent;
}
.plan-option:hover{
  border-color:var(--blue);
  box-shadow:0 8px 22px rgba(7,31,73,.10);
  transform:translateY(-2px);
}
/* 実ラジオは視覚的に隠す（操作・アクセシビリティは維持） */
.plan-radio{position:absolute;opacity:0;width:1px;height:1px;margin:0;}
/* 選択マーク（右上の丸＋チェック） */
.plan-badge{
  position:absolute;top:12px;right:12px;
  width:22px;height:22px;
  border:2px solid var(--line);border-radius:50%;
  background:#fff;transition:all .2s;
}
.plan-badge::after{
  content:"";position:absolute;top:4px;left:7px;
  width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;
  transform:rotate(45deg) scale(0);transition:transform .2s;
}
.plan-name{font-size:13px;font-weight:700;color:var(--navy);letter-spacing:1px;}
.plan-price{font-size:21px;font-weight:900;color:var(--blue);line-height:1.1;}
.plan-price small{font-size:12px;font-weight:400;color:var(--text);}
.plan-monthly{font-size:12px;color:var(--blue);font-weight:700;}
.plan-desc{font-size:11px;color:#7a869a;line-height:1.6;margin-top:2px;}

/* おすすめタグ（STANDARD） */
.plan-recommend{border-color:var(--blue);}
.plan-tag{
  position:absolute;top:-11px;left:50%;transform:translateX(-50%);
  background:linear-gradient(135deg,var(--blue),var(--navy2));
  color:#fff;font-size:10px;font-weight:700;letter-spacing:1.5px;
  padding:4px 14px;border-radius:20px;white-space:nowrap;
  box-shadow:0 3px 8px rgba(7,31,73,.2);
}

/* 相談カード（フル幅・下段） */
.plan-consult{
  grid-column:1 / -1;
  flex-direction:row;align-items:center;text-align:left;gap:16px;
  padding:20px 22px;
  background:linear-gradient(135deg,#fbfdff,#f1f6fc);
}
.plan-consult-icon{
  flex:0 0 auto;width:48px;height:48px;font-size:24px;
  display:flex;align-items:center;justify-content:center;
  background:#fff;border:1px solid var(--line);border-radius:12px;
}
.plan-consult-body{display:flex;flex-direction:column;gap:4px;}
.plan-consult .plan-name{letter-spacing:.5px;}
.plan-consult .plan-desc{margin-top:0;}

/* === 選択中（青く光る）=== JS:.is-selected と :has() の両対応 */
.plan-option.is-selected,
.plan-option:has(.plan-radio:checked){
  border-color:var(--blue);
  background:linear-gradient(135deg,#f3f8ff,#eaf2fc);
  box-shadow:0 0 0 3px rgba(20,90,160,.16), 0 10px 26px rgba(7,31,73,.12);
}
.plan-option.is-selected .plan-badge,
.plan-option:has(.plan-radio:checked) .plan-badge{
  background:var(--blue);border-color:var(--blue);
}
.plan-option.is-selected .plan-badge::after,
.plan-option:has(.plan-radio:checked) .plan-badge::after{
  transform:rotate(45deg) scale(1);
}
.plan-consult.is-selected,
.plan-consult:has(.plan-radio:checked){
  background:linear-gradient(135deg,#eef5ff,#e3eefb);
}
/* キーボード操作時のフォーカス可視化 */
.plan-radio:focus-visible + .plan-badge{box-shadow:0 0 0 3px rgba(20,90,160,.35);}

/* === レスポンシブ === */
@media(max-width:600px){
  .apply-plan{grid-template-columns:1fr;gap:12px;}
  .plan-tag{font-size:9px;padding:3px 12px;}
  .plan-consult{flex-direction:row;}
}
@media(max-width:900px){
  .fg-row{grid-template-columns:1fr;}
  .apply-form{padding:24px;}
}

/* --- 申込フォーム：必須未入力時のエラー表示（お問い合わせフォームと同一挙動）--- */
.form-error{display:none;color:#e03030;font-size:12px;margin-top:4px;}
.fg.has-error input,
.fg.has-error textarea,
.fg.has-error select{border-color:#e03030!important;background:#fff5f5!important;}
.fg.has-error .form-error{display:block;}
