
/* =========================================================
   S08 — Plans
   One outer white Premium Glass.
   Two plan columns separated by a divider; no nested cards.
   ========================================================= */

.plans-wrap{
  max-width:1600px;
  margin:0 auto 74px;
  padding:0 28px;
  position:relative;
}

.plans-glass{
  position:relative;
  overflow:hidden;
  border-radius:34px;
  background:rgba(249,252,255,.875);
  backdrop-filter:blur(30px) saturate(126%);
  -webkit-backdrop-filter:blur(30px) saturate(126%);
  box-shadow:
    0 24px 72px rgba(7,27,59,.18),
    inset 0 1px 0 rgba(255,255,255,.40),
    inset 0 -1px 0 rgba(59,106,171,.04);
}

.plans-intro{
  padding:52px 58px 30px;
  text-align:center;
}

.plans-kicker{
  margin:0 0 13px;
  color:#4d8aca;
  font-size:15px;
  line-height:1.6;
  font-weight:600;
  letter-spacing:.03em;
}

.plans-intro h2{
  margin:0;
  color:#082f74;
  font-family:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  font-size:clamp(44px,3.18vw,52px);
  line-height:1.28;
  font-weight:700;
  letter-spacing:.002em;
  word-break:normal;
  line-break:strict;
  text-wrap:balance;
}

.plans-lead{
  max-width:1100px;
  margin:22px auto 0;
  color:#17395f;
  font-size:clamp(16px,1.02vw,19px);
  line-height:1.78;
  font-weight:400;
  text-wrap:pretty;
}

.plans-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  margin:0 58px;
  border-top:1px solid rgba(47,98,161,.14);
  border-bottom:1px solid rgba(47,98,161,.14);
}

.plan-column{
  min-width:0;
  padding:36px 44px 40px;
  position:relative;
}

.plan-column + .plan-column{
  border-left:1px solid rgba(47,98,161,.14);
}

.plan-standard::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(
      135deg,
      rgba(199,228,255,.26),
      rgba(222,239,255,.15) 52%,
      rgba(230,243,255,.08));
  pointer-events:none;
}

.plan-head{
  min-height:118px;
}

.plan-label{
  margin:0 0 8px;
  color:#3e82c5;
  font-size:14px;
  line-height:1.5;
  font-weight:600;
  letter-spacing:.03em;
}

.plan-head h3{
  margin:0;
  color:#082f74;
  font-size:clamp(27px,1.95vw,36px);
  line-height:1.35;
  font-weight:700;
}

.plan-summary{
  margin:10px 0 0;
  color:#29496c;
  font-size:clamp(15px,.98vw,18px);
  line-height:1.65;
  font-weight:400;
}

.plan-price{
  margin-top:24px;
  min-height:150px;
}

.plan-promo{
  margin:0 0 5px;
  color:#2d70b7;
  font-size:14px;
  line-height:1.5;
  font-weight:600;
}

.plan-period{
  margin:0;
  color:#315f91;
  font-size:15px;
  line-height:1.55;
  font-weight:500;
}

.plan-amount{
  margin:7px 0 0;
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:5px;
  color:#0b3978;
}

.plan-amount strong{
  font-size:clamp(42px,3.2vw,58px);
  line-height:1;
  font-weight:700;
  letter-spacing:-.035em;
}

.plan-amount span{
  font-size:16px;
  line-height:1.4;
  font-weight:600;
}

.plan-amount small{
  font-size:17px;
  line-height:1.4;
  font-weight:600;
}

.plan-after{
  margin:10px 0 0;
  color:#526f8c;
  font-size:14px;
  line-height:1.55;
  font-weight:400;
}

.plan-price-free{
  padding-top:23px;
}

.plan-features{
  margin:22px 0 0;
  padding:0;
  list-style:none;
}

.plan-features li{
  position:relative;
  margin:10px 0 0;
  padding-left:22px;
  color:#24496f;
  font-size:15px;
  line-height:1.62;
  font-weight:400;
}

.plan-features li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  color:#1882dc;
  font-weight:700;
}

.plan-primary-cta{
  margin-top:28px;
  width:min(100%,390px);
  background:
    radial-gradient(120% 180% at 8% -20%,
      rgba(255,255,255,.42) 0%,
      rgba(255,255,255,.14) 34%,
      transparent 60%),
    radial-gradient(70% 150% at 90% 110%,
      rgba(110,192,255,.24) 0%,
      rgba(255,255,255,.04) 50%,
      transparent 76%),
    linear-gradient(112deg,
      rgba(34,126,255,.86),
      rgba(19,87,207,.88) 46%,
      rgba(14,58,163,.92));
}

.plan-free-cta{
  width:min(100%,330px);
}

.plans-notes{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin:0 58px;
  padding:30px 0 40px;
}

.plans-note{
  min-width:0;
  padding:0 28px;
}

.plans-note:first-child{padding-left:0}
.plans-note:last-child{padding-right:0}

.plans-note + .plans-note{
  border-left:1px solid rgba(47,98,161,.13);
}

.plans-note h3{
  margin:0;
  color:#0d356d;
  font-size:16px;
  line-height:1.5;
  font-weight:600;
}

.plans-note p{
  margin:8px 0 0;
  color:#61758d;
  font-size:13px;
  line-height:1.68;
  font-weight:400;
}

/* Tablet */
@media(max-width:1200px){
  .plans-wrap{padding:0 20px;margin-bottom:56px}
  .plans-intro{padding:44px 42px 27px}
  .plans-grid{margin:0 42px}
  .plan-column{padding:32px 30px 36px}
  .plan-head{min-height:110px}
  .plan-amount strong{font-size:44px}
  .plans-notes{margin:0 42px;padding:27px 0 35px}
  .plans-note{padding:0 20px}
}

/* Mobile */
@media(max-width:760px){
  .plans-wrap{padding:0 10px;margin-bottom:40px}
  .plans-glass{
    border-radius:26px;
    background:rgba(249,252,255,.875);
  }

  .plans-intro{
    padding:31px 20px 23px;
    text-align:left;
  }

  .plans-kicker{
    margin-bottom:10px;
    font-size:13px;
  }

  .plans-intro h2{
    font-size:31px;
    line-height:1.34;
    text-wrap:pretty;
  }

  .plans-lead{
    margin-top:18px;
    font-size:15px;
    line-height:1.76;
  }

  .plans-grid{
    display:block;
    margin:0 20px;
  }

  .plan-column{
    padding:28px 0 31px;
  }

  .plan-column + .plan-column{
    border-left:0;
    border-top:1px solid rgba(47,98,161,.14);
  }

  .plan-standard::before{
    inset:0 -10px;
  }

  .plan-head{
    min-height:0;
  }

  .plan-head h3{
    font-size:27px;
  }

  .plan-summary{
    font-size:15px;
  }

  .plan-price{
    min-height:0;
    margin-top:20px;
  }

  .plan-price-free{
    padding-top:0;
  }

  .plan-amount strong{
    font-size:46px;
  }

  .plan-features{
    margin-top:19px;
  }

  .plan-features li{
    font-size:14px;
    line-height:1.62;
  }

  .plan-primary-cta,
  .plan-free-cta{
    width:min(100%,330px);
    margin:24px auto 0;
  }

  .plans-notes{
    display:block;
    margin:0 20px;
    padding:24px 0 30px;
  }

  .plans-note{
    padding:18px 0;
  }

  .plans-note:first-child{padding-top:0}
  .plans-note:last-child{padding-bottom:0}

  .plans-note + .plans-note{
    border-left:0;
    border-top:1px solid rgba(47,98,161,.13);
  }

  .plans-note h3{
    font-size:15px;
  }

  .plans-note p{
    font-size:13px;
  }
}

@media(max-width:370px){
  .plans-intro h2{font-size:28px}
}

/* V42: keep PC plan CTAs perfectly aligned */
@media(min-width:761px){
  .plan-column{
    display:grid;
    grid-template-rows:auto auto 1fr auto;
  }

  .plan-head{
    min-height:118px;
  }

  .plan-price{
    min-height:150px;
  }

  .plan-features{
    align-self:start;
  }

  .plan-primary-cta{
    align-self:end;
    justify-self:start;
  }
}


/* V43 — desktop plan balance */
@media(min-width:761px){
  .plan-column{
    padding-left:34px;
    padding-right:34px;
  }

  .plan-column > .plan-head,
  .plan-column > .plan-price,
  .plan-column > .plan-features{
    width:min(100%,520px);
    margin-left:auto;
    margin-right:auto;
    text-align:left;
  }

  .plan-column > .plan-primary-cta{
    margin-left:auto;
    margin-right:auto;
    justify-self:center;
  }
}
