/* Dedicated /billing presentation layer. Checkout DOM and server contracts stay unchanged. */
.app-shell:has(.billing-server){--billing-page-width:1120px;width:min(100%,var(--billing-page-width));border-inline:0;background:#fffafc}
.app-shell:has(.billing-server) .site-header{display:none}
.server-page:has(.billing-server){padding:0!important;background:transparent}
.server-page:has(.billing-server)>.eyebrow,.server-page:has(.billing-server)>h1{display:none}
.billing-server{padding:0 28px 48px;color:#202132;background:linear-gradient(180deg,#fff8fb 0,#fff 42%,#fff9fb 100%)}
.billing-topbar{display:flex;align-items:center;justify-content:space-between;min-height:70px;margin:0;padding:0 28px;border-bottom:1px solid #eee9ee;background:#fff}
.billing-brand{color:#171821;font-size:30px;font-weight:850;letter-spacing:-.055em;text-decoration:none}.billing-brand small{margin-left:12px;color:#7d7e8c;font-size:13px;font-weight:650;letter-spacing:0}.billing-safety{display:flex;align-items:center;gap:8px;color:#687080;font-size:13px;font-weight:700}.billing-safety b{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;color:#f43669;background:#fff0f5;font-size:12px}
.billing-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:620px;margin:20px auto 26px;position:relative;counter-reset:billing-step}.billing-steps:before{content:"";position:absolute;top:14px;left:16.5%;right:16.5%;height:1px;background:#eadde3}.billing-step{display:grid;justify-items:center;gap:6px;position:relative;z-index:1;color:#8c8c98;font-size:13px;font-weight:750;text-align:center}.billing-step:before{counter-increment:billing-step;content:counter(billing-step);display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#f0f0f3;color:#7e7f8d;font-size:13px}.billing-step.is-current{color:#f43669}.billing-step.is-current:before{color:#fff;background:#f4507b;box-shadow:0 5px 13px rgba(244,80,123,.25)}
.billing-showcase{max-width:1064px;margin:auto;padding:26px;border:1px solid #f0ebee;border-radius:28px;background:#fff;box-shadow:0 18px 46px rgba(68,42,55,.08)}.billing-hero{min-height:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;text-align:center}.billing-hero:after,.billing-hero img{display:none!important}.billing-hero-copy{position:static!important;width:auto!important}.billing-hero-copy>span{display:inline-block;padding:8px 20px;border-radius:999px;color:#f43669;background:#ffe5ed;font-size:15px;font-weight:850;letter-spacing:0!important}.billing-hero-copy h1{margin:16px 0 8px!important;color:#171a2b;font-size:38px!important;line-height:1.2!important;letter-spacing:-.055em!important}.billing-hero-copy p{max-width:none!important;margin:0!important;color:#6e7180;font-size:15px!important;line-height:1.65!important}
.billing-card{margin:26px 0 0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;text-align:left!important}.billing-card form{gap:0;margin:0}.billing-plan-label,.billing-badge{display:none!important}.billing-plan-list{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:12px!important;margin:28px 0 20px!important}.billing-plan-option{display:grid!important;grid-template-rows:auto auto minmax(24px,1fr) auto!important;align-items:start!important;min-width:0!important;min-height:246px!important;gap:10px!important;padding:28px 16px 18px!important;border:1px solid #e7e5e9!important;border-radius:15px!important;background:#fff!important;text-align:center!important;box-shadow:0 3px 10px rgba(40,35,45,.025);cursor:pointer}.billing-plan-option.campaign{position:relative;border:2px solid #f4517c!important;background:linear-gradient(150deg,#fff9fb,#fff2f6)!important}.billing-plan-option:has(input:checked){border:2px solid #f4517c!important;background:linear-gradient(150deg,#fff9fb,#fff2f6)!important;box-shadow:0 10px 21px rgba(244,80,123,.12)!important}.billing-plan-option input{appearance:none;position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.billing-plan-option>span{display:grid!important;align-content:start!important;justify-items:center!important;gap:8px!important;min-width:0}.billing-plan-option>span strong{color:#1b2034!important;font-size:21px!important;line-height:1.2!important}.billing-plan-option>span small{position:absolute;top:-14px;left:50%;z-index:1;min-width:max-content;padding:7px 15px!important;transform:translateX(-50%);border-radius:999px;color:#fff!important;background:linear-gradient(100deg,#ff6b93,#f43669)!important;font-size:11px!important;font-weight:850!important;line-height:1!important;white-space:nowrap!important;box-shadow:0 5px 12px rgba(244,54,105,.19)}.billing-plan-option>span del{color:#9c9da8!important;font-size:13px!important;font-weight:650!important}.billing-plan-option>b{display:block;min-width:0;max-width:100%;overflow:visible;color:#182039!important;font-size:31px!important;font-weight:850;letter-spacing:-.055em!important;line-height:1!important;white-space:nowrap!important;font-variant-numeric:tabular-nums}.billing-plan-option:has(input:checked)>b{color:#f23c6d!important}.billing-plan-option:after{content:"";justify-self:center;align-self:end;width:26px!important;height:26px!important;border:2px solid #7a7e8b!important;border-radius:50%;background:#fff}.billing-plan-option:has(input:checked):after{border:7px solid #f43669!important}
.billing-benefits{display:grid!important;grid-template-columns:44px repeat(3,minmax(0,1fr))!important;align-items:center;gap:10px!important;margin:0 0 20px!important;padding:17px 20px!important;border:1px solid #fee2ea;border-radius:15px;background:linear-gradient(90deg,#fff3f7,#fffafb)!important}.billing-benefits:before{content:"★";display:grid;place-items:center;width:36px;height:36px;border-radius:11px;color:#f43669;background:#ffe0ea;font-size:20px}.billing-benefits:after{content:"Premium会員でできること";position:absolute;transform:translate(54px,-35px);color:#222536;font-size:14px;font-weight:850}.billing-benefits div{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;min-height:30px!important;padding:0!important}.billing-benefits span{display:none!important}.billing-benefits strong{color:#4f505d!important;font-size:12px!important;text-align:center!important}
.billing-purchase-confirm{margin:0 0 16px!important;padding:28px 32px!important;border:1px solid #eeeef2!important;border-radius:19px!important;background:#fff!important;box-shadow:0 8px 24px rgba(44,40,47,.04)!important}.billing-purchase-confirm>strong{display:block;margin-bottom:17px!important;padding-bottom:16px;border-bottom:1px solid #ecebf0;color:#171a2c;font-size:22px!important;line-height:1.3}.billing-purchase-confirm dl{display:grid!important;gap:0!important;margin:0!important}.billing-purchase-confirm dl>div{display:grid!important;grid-template-columns:190px minmax(0,1fr)!important;gap:20px!important;padding:11px 0!important;border:0!important}.billing-purchase-confirm dt{color:#646675!important;font-size:14px!important;line-height:1.65!important}.billing-purchase-confirm dd{margin:0!important;color:#25283a!important;font-size:15px!important;font-weight:650!important;line-height:1.65!important}.billing-purchase-confirm dl>div:nth-child(2) dd{font-size:23px!important;font-weight:850!important}
.billing-note{max-width:none!important;margin:0 0 18px!important;padding:17px 21px!important;border:1px solid #eceff2;border-radius:16px;background:#f7f8fa;color:#686b79!important;font-size:13px!important;line-height:1.7!important;text-align:left}.billing-note:before{content:"ご注意ください";display:block;margin-bottom:5px;color:#303340;font-size:14px;font-weight:850}.billing-purchase-confirm-check{display:flex!important;align-items:flex-start!important;gap:10px!important;margin:0!important;padding:0!important;border-radius:0!important;background:transparent!important;color:#303340!important;font-size:14px!important;line-height:1.65!important;text-align:left}.billing-purchase-confirm-check input{width:22px!important;height:22px!important;flex:0 0 22px!important;margin:1px 0 0!important;accent-color:#f43669}.billing-server #checkout>p{margin:10px 0 0!important;text-align:left!important}.billing-server #checkout>p a{color:#e44270!important;font-size:13px!important;font-weight:750!important}.billing-primary{min-height:68px!important;margin-top:24px!important;border-radius:999px!important;font-size:19px!important;box-shadow:0 14px 28px rgba(243,52,104,.25)!important}.billing-primary span{font-size:26px!important}.billing-renewal-note{margin:12px 0 0!important;color:#676975!important;font-size:13px!important;text-align:center!important}.billing-webhook{margin-top:12px!important}.billing-assurance{display:flex!important;justify-content:center!important;align-items:center!important;gap:9px!important;margin:22px 0 0!important;padding:0!important;border:0!important;background:transparent!important}.billing-assurance>span{display:grid!important;place-items:center!important;width:20px!important;height:20px!important;flex:0 0 20px!important;color:#637080!important;background:#edf0f4!important}.billing-assurance p{color:#757887!important;font-size:12px!important}.billing-assurance strong{display:inline!important;margin:0 4px 0 0!important;color:#555866!important;font-size:12px!important}
@media(max-width:760px){.app-shell:has(.billing-server){width:min(100%,430px);border-inline:1px solid #eee7ea}.billing-server{padding:0 14px 38px}.billing-topbar{min-height:58px;margin:0 -14px;padding:0 18px}.billing-brand{font-size:25px}.billing-brand small{display:none}.billing-safety{font-size:10px}.billing-safety b{width:17px;height:17px;font-size:10px}.billing-steps{margin:16px auto 19px}.billing-step{font-size:11px}.billing-showcase{padding:20px 14px;border-radius:22px}.billing-hero-copy>span{padding:7px 14px;font-size:12px}.billing-hero-copy h1{margin:14px 0 7px!important;font-size:28px!important}.billing-hero-copy p{font-size:12px!important}.billing-card{margin-top:22px!important}.billing-plan-list{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin:23px 0 15px!important}.billing-plan-option{min-height:188px!important;gap:7px!important;padding:22px 10px 13px!important}.billing-plan-option>span strong{font-size:17px!important}.billing-plan-option>b{font-size:25px!important}.billing-plan-option>span small{top:-12px;padding:6px 10px!important;font-size:9px!important}.billing-plan-option:after{width:21px!important;height:21px!important}.billing-benefits{grid-template-columns:32px 1fr!important;gap:5px 9px!important;margin-bottom:15px!important;padding:30px 13px 12px!important}.billing-benefits:before{width:29px;height:29px;font-size:16px}.billing-benefits:after{transform:translate(41px,-27px);font-size:12px}.billing-benefits div{justify-content:flex-start!important}.billing-benefits strong{font-size:11px!important;text-align:left!important}.billing-purchase-confirm{padding:20px 16px!important}.billing-purchase-confirm>strong{margin-bottom:11px!important;padding-bottom:11px;font-size:18px!important}.billing-purchase-confirm dl>div{grid-template-columns:92px minmax(0,1fr)!important;gap:11px!important;padding:9px 0!important}.billing-purchase-confirm dt{font-size:11px!important}.billing-purchase-confirm dd{font-size:12px!important}.billing-purchase-confirm dl>div:nth-child(2) dd{font-size:18px!important}.billing-note{padding:14px!important;font-size:11px!important}.billing-note:before{font-size:12px}.billing-purchase-confirm-check{font-size:11px!important}.billing-primary{min-height:59px!important;margin-top:18px!important;font-size:16px!important}.billing-assurance{align-items:flex-start!important;text-align:left}.billing-assurance p{font-size:10px!important}}
@media(max-width:359px){.billing-server{padding-inline:10px}.billing-showcase{padding-inline:10px}.billing-plan-list{gap:7px!important}.billing-plan-option{min-height:178px!important;padding-inline:6px!important}.billing-plan-option>b{font-size:22px!important;letter-spacing:-.07em!important}.billing-plan-option>span strong{font-size:16px!important}.billing-purchase-confirm{padding-inline:13px!important}.billing-purchase-confirm dl>div{grid-template-columns:82px minmax(0,1fr)!important;gap:8px!important}}
.billing-benefits{position:relative}
/* PC final polish: campaign messaging is deliberately lighter than the selected plan state. */
@media(min-width:761px){.billing-plan-option{min-height:202px!important;grid-template-rows:auto auto minmax(16px,1fr) auto!important;gap:7px!important;padding:24px 16px 16px!important}.billing-plan-option.campaign:not(:has(input:checked)){border:1px solid #f5c5d3!important;background:#fffafb!important;box-shadow:0 3px 10px rgba(40,35,45,.025)!important}.billing-plan-option.campaign:not(:has(input:checked))>b{color:#182039!important}.billing-plan-option>span{gap:5px!important}.billing-plan-option>span small{top:-12px!important}.billing-plan-option:after{width:24px!important;height:24px!important}.billing-benefits{grid-template-columns:44px repeat(2,minmax(0,1fr))!important}.billing-benefits div{justify-content:flex-start!important}.billing-benefits span{display:grid!important;place-items:center!important;width:18px!important;height:18px!important;border-radius:50%;color:#f43669!important;background:#ffe3ec!important;font-size:11px!important}.billing-benefits strong{font-size:13px!important;text-align:left!important}}
/* Comparison copy is display-only and follows the card's existing radio/price contract. */
@media(min-width:761px){.billing-card{margin-top:19px!important}.billing-plan-list{margin-top:20px!important}.billing-plan-option{grid-template-rows:auto auto auto auto auto!important;min-height:215px!important;gap:6px!important;padding:23px 16px 15px!important}.billing-plan-monthly{display:block;color:#6d7080;font-size:14px;font-weight:700;line-height:1.35;text-align:center}.billing-plan-saving{justify-self:center;padding:5px 9px;border-radius:8px;color:#ef4673;background:#ffe7ee;font-size:12px;font-weight:850;line-height:1.1;white-space:nowrap}.billing-plan-option:after{margin-top:2px}.billing-benefits{margin-bottom:17px!important;padding-block:16px!important}.billing-benefits:before{content:"✦"}.billing-benefits span{font-weight:850!important}}
@media(max-width:760px){.billing-plan-option{grid-template-rows:auto auto auto auto auto!important}.billing-plan-monthly{display:block;color:#6d7080;font-size:12px;font-weight:700;line-height:1.3;text-align:center}.billing-plan-saving{justify-self:center;padding:4px 7px;border-radius:7px;color:#ef4673;background:#ffe7ee;font-size:10px;font-weight:850;line-height:1.1;white-space:nowrap}.billing-plan-option:after{margin-top:1px}}
.billing-plan-regular{justify-self:center;color:#9c9da8;text-decoration:line-through;font-size:14px;font-weight:650;line-height:1.3}
/* SP-only layout guard. PC declarations above remain the visual source of truth. */
@media(max-width:760px){.billing-topbar{gap:10px}.billing-safety{max-width:178px;min-width:0;line-height:1.35;text-align:right}.billing-steps{padding-inline:4px}.billing-showcase{overflow:hidden}.billing-hero-copy h1{letter-spacing:-.045em!important}.billing-plan-list{width:100%;min-width:0}.billing-plan-option{min-width:0;overflow:visible}.billing-plan-option>b{font-size:clamp(20px,6.7vw,25px)!important;letter-spacing:-.065em!important}.billing-plan-monthly,.billing-plan-regular{min-width:0;white-space:nowrap}.billing-plan-saving{max-width:100%;overflow-wrap:anywhere}.billing-benefits{overflow:hidden}.billing-benefits div{min-width:0}.billing-benefits strong{overflow-wrap:anywhere}.billing-purchase-confirm dl>div{min-width:0}.billing-purchase-confirm dd{min-width:0;overflow-wrap:anywhere}.billing-purchase-confirm-check{min-width:0}.billing-server #checkout>p a{overflow-wrap:anywhere}.billing-primary{padding-inline:14px!important;white-space:nowrap}.billing-assurance{min-width:0}.billing-assurance p{min-width:0;overflow-wrap:anywhere}}
@media(max-width:390px){.billing-safety{max-width:158px;font-size:9px}.billing-step{font-size:10px}.billing-plan-option{min-height:184px!important;padding-inline:8px!important}.billing-plan-option>span small{max-width:calc(100% + 12px);overflow:hidden;text-overflow:ellipsis}.billing-purchase-confirm dl>div{grid-template-columns:84px minmax(0,1fr)!important}.billing-purchase-confirm dd{font-size:11px!important}.billing-purchase-confirm dl>div:nth-child(2) dd{font-size:17px!important}.billing-primary{font-size:15px!important}.billing-primary span{font-size:22px!important}}
/* Premium value card: only the two capabilities confirmed in the current terms are displayed. */
.billing-benefits{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;padding:48px 16px 16px!important;background:linear-gradient(135deg,#fff1f5,#fff9fb)!important}.billing-benefits:before{content:"Premiumで会話をはじめよう"!important;position:absolute;top:17px;left:19px;width:auto!important;height:auto!important;border-radius:0!important;color:#262334!important;background:transparent!important;font-size:16px!important;font-weight:850}.billing-benefits:after{display:none}.billing-benefits div{display:grid!important;grid-template-columns:42px minmax(0,1fr)!important;align-items:center!important;justify-content:stretch!important;gap:11px!important;min-height:82px!important;padding:13px!important;border:1px solid #f7dfe7;border-radius:13px;background:#fff;box-shadow:0 5px 13px rgba(125,71,89,.045)}.billing-benefits span{display:grid!important;place-items:center!important;width:38px!important;height:38px!important;border-radius:11px!important;color:#f13f70!important;background:#ffe1eb!important;font-size:18px!important;font-weight:850!important}.billing-benefit-copy{display:grid;gap:3px;min-width:0}.billing-benefit-copy strong{color:#2b2938!important;font-size:13px!important;line-height:1.35!important;text-align:left!important}.billing-benefit-copy small{color:#777383;font-size:11px;line-height:1.45}
@media(max-width:760px){.billing-benefits{grid-template-columns:1fr!important;gap:8px!important;padding:43px 11px 11px!important}.billing-benefits:before{top:14px;left:14px;font-size:14px!important}.billing-benefits div{grid-template-columns:36px minmax(0,1fr)!important;min-height:65px!important;padding:10px!important}.billing-benefits span{width:32px!important;height:32px!important;font-size:15px!important}.billing-benefit-copy strong{font-size:12px!important}.billing-benefit-copy small{font-size:10px}}
/* Flatten the benefit area into one continuous Premium band. */
.billing-benefits{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important;padding:48px 22px 18px!important}.billing-benefits div{grid-template-columns:38px minmax(0,1fr)!important;min-height:42px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}.billing-benefits span{width:34px!important;height:34px!important;border-radius:10px!important;font-size:16px!important}.billing-benefit-copy{gap:0!important}.billing-benefit-copy strong{font-size:13px!important;line-height:1.4!important}.billing-benefit-copy small{display:none!important}
@media(max-width:760px){.billing-benefits{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;padding:42px 11px 13px!important}.billing-benefits div{grid-template-columns:31px minmax(0,1fr)!important;gap:7px!important;min-height:34px!important}.billing-benefits span{width:29px!important;height:29px!important;border-radius:9px!important;font-size:14px!important}.billing-benefit-copy strong{font-size:11px!important;line-height:1.35!important}}
/* Benefit text must retain the width of its half-column; no nested grid constrains it. */
.billing-benefits{display:grid!important;width:100%!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}.billing-benefits div{display:flex!important;width:100%!important;min-width:0!important;align-items:center!important;justify-content:flex-start!important}.billing-benefit-copy{display:block!important;width:auto!important;max-width:none!important;min-width:0!important;flex:1 1 auto!important}.billing-benefit-copy strong{display:block!important;width:auto!important;max-width:none!important;min-width:0!important;word-break:normal!important;overflow-wrap:normal!important;white-space:nowrap!important}
@media(max-width:760px){.billing-benefits{grid-template-columns:repeat(2,minmax(0,1fr))!important}.billing-benefits div{gap:6px!important}.billing-benefit-copy strong{font-size:10px!important;letter-spacing:-.035em!important}}
/* Premium benefit band: one uninterrupted desktop card, with the editorial lead at left. */
@media(min-width:761px){
  .billing-benefits{grid-template-columns:minmax(0,32fr) minmax(0,34fr) minmax(0,34fr)!important;gap:0!important;margin-bottom:18px!important;padding:26px 30px!important;border-color:#f8dce5!important;border-radius:18px!important;background:linear-gradient(105deg,#fff4f7,#fffafb)!important}
  .billing-benefits:before,.billing-benefits:after{display:none!important;content:none!important}
  .billing-benefits .billing-benefit-intro{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;min-width:0!important;min-height:0!important;align-content:center!important;gap:7px!important;padding:0 30px 0 8px!important;border:0!important;border-right:1px solid #e6dfe3!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
  .billing-benefits .billing-benefit-intro strong{display:block!important;color:#1e2439!important;font-size:21px!important;font-weight:850!important;line-height:1.25!important;letter-spacing:-.035em!important;white-space:normal!important}
  .billing-benefits .billing-benefit-intro small{display:block!important;color:#858897!important;font-size:13px!important;line-height:1.55!important;white-space:normal!important}
  .billing-benefits>div:not(.billing-benefit-intro){display:flex!important;width:100%!important;min-width:0!important;min-height:0!important;align-items:center!important;gap:15px!important;padding:0 30px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
  .billing-benefits>div:not(.billing-benefit-intro)+div:not(.billing-benefit-intro){border-left:1px solid #e6dfe3!important}
  .billing-benefits span{width:48px!important;height:48px!important;flex:0 0 48px!important;border-radius:13px!important;font-size:23px!important}
  .billing-benefits .billing-benefit-copy{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:auto!important;min-width:0!important;flex:1 1 auto!important;gap:4px!important}
  .billing-benefits .billing-benefit-copy strong{width:100%!important;font-size:16px!important;line-height:1.35!important;letter-spacing:-.025em!important;white-space:normal!important}
  .billing-benefits .billing-benefit-copy small{display:block!important;width:100%!important;color:#848795!important;font-size:12px!important;line-height:1.55!important;white-space:normal!important}
  .billing-topbar{margin-inline:0!important;padding-inline:28px!important}
}
