*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:14px/1.65 Inter,"Noto Sans JP","Yu Gothic UI",system-ui,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}a{color:inherit}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{display:flex;align-items:center;justify-content:space-between}.brand{font-size:23px;font-weight:900;letter-spacing:-.055em;text-decoration:none}.brand i{font-style:normal;color:#7da600}.phase{font-size:10px;background:var(--navy);color:#fff;padding:5px 8px;border-radius:5px;margin-left:10px;letter-spacing:.06em}.desktop-nav{display:flex;align-items:center}.desktop-nav button,.desktop-nav a{border:0;background:none;text-decoration:none;font-weight:750;font-size:12px;cursor:pointer;padding:8px 0}.header-actions{display:flex;align-items:center}.btn{border:1px solid transparent;border-radius:9px;padding:12px 17px;font-weight:850;cursor:pointer;background:var(--lime);color:var(--ink);transition:180ms cubic-bezier(.2,.8,.2,1)}.btn.dark{background:var(--navy);color:#fff}.btn.dark:hover{background:var(--navy2)}.btn.ghost{background:#fff;border-color:#b8c4d1}.btn.text{padding-inline:8px}.btn.full{width:100%}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.routebar{position:fixed;right:18px;bottom:18px;z-index:60;width:min(330px,calc(100vw - 36px));background:rgba(6,26,56,.96);color:#fff;border:1px solid #29466b;border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.routebar summary{cursor:pointer;list-style:none;padding:13px 16px;font-size:12px;font-weight:850;display:flex;justify-content:space-between}.routebar summary:after{content:"画面を選択";font-weight:500;color:#b9c7d9}.route-list{max-height:55vh;overflow:auto;padding:5px 8px 10px}.route-list button{width:100%;border:0;background:transparent;color:#ced9e7;text-align:left;padding:9px 10px;border-radius:7px;font-size:11px;cursor:pointer}.route-list button:hover,.route-list button.active{background:#173b68;color:#fff}.route-list b{display:block;color:var(--lime);padding:10px;font-size:10px;letter-spacing:.08em}
.screen{min-height:calc(100vh - 72px)}.wrap{padding:0 24px;margin:auto}.eyebrow{font-weight:900;letter-spacing:.12em;text-transform:uppercase}.hero{background:var(--navy);color:#fff;overflow:hidden;position:relative}.hero:after{content:"";position:absolute;width:520px;height:520px;right:-110px;top:-250px;border-radius:50%;background:var(--lime);filter:blur(115px);opacity:.13}.hero-grid{min-height:620px;display:grid;grid-template-columns:1.07fr .93fr;gap:72px;align-items:center;position:relative;z-index:1}.hero h1{margin:16px 0 24px}.hero p{max-width:650px;margin:0 0 30px}.hero-actions{display:flex;gap:10px;align-items:center}.hero-note{margin-top:20px}.flow-card{border:1px solid rgba(255,255,255,.14);border-radius:24px;padding:28px;backdrop-filter:blur(14px)}.balance-label{font-size:11px;color:#b9c8da}.balance{font-size:42px;font-weight:900;letter-spacing:-.04em;margin:4px 0 25px}.flow-step{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:15px 0;border-top:1px solid rgba(255,255,255,.12)}.flow-step .num{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--lime);color:var(--navy);font-size:11px;font-weight:900}.flow-step small{color:#b9c8da}.flow-step strong:last-child{color:var(--lime)}
.trust-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);position:relative;z-index:2}.trust:last-child{border:0}.trust b{display:block}
.section{padding:82px 0}.section.soft{background:var(--soft)}.section-head{display:flex;justify-content:space-between;align-items:end}.section-head h2,.content-hero h1{margin:7px 0}.section-head p{max-width:600px;color:var(--muted);margin:0}.cards{display:grid;grid-template-columns:repeat(3,1fr)}.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:27px}.card h3{margin:12px 0 7px}.card p{color:var(--muted);font-size:12px;margin:0}.card .meta{display:inline-flex;border-radius:6px;padding:5px 8px;font-weight:850}.card.feature{box-shadow:0 14px 36px rgba(100,140,0,.09)}.card ul{padding-left:18px;color:var(--muted);font-size:12px}.inline-link{border:0;background:none;padding:0;font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.cta{background:linear-gradient(115deg,var(--navy),#0c376f);color:#fff;border-radius:26px;padding:55px;display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}.cta h2{font-size:34px;letter-spacing:-.04em;margin:0 0 7px}.cta p{margin:0;color:#bdcbe0}.site-footer{padding:55px 0 90px}.footer-grid{display:grid;grid-template-columns:1.4fr repeat(2,1fr)}.footer-grid h3{color:#fff}.footer-grid a,.footer-grid button{display:block;border:0;background:none;color:#afbed1;text-decoration:none;padding:5px 0;font-size:11px;cursor:pointer}
.content-hero{padding:72px 0 50px}.content-hero p{color:var(--muted);font-size:16px;max-width:690px}.content-grid{display:grid;padding:40px 0 90px}.side-nav{position:sticky;height:max-content;border:1px solid var(--line)}.side-nav-title{display:block;width:100%}.side-nav button,.side-nav a{display:block;width:100%;background:none;text-align:left;font-weight:700;color:var(--muted);cursor:pointer;text-decoration:none}.side-nav button.active,.side-nav button:hover,.side-nav a.active,.side-nav a:hover{background:var(--soft);color:var(--ink)}.article h2{letter-spacing:-.03em;margin:0 0 14px}.article h3{margin-top:34px}.article p,.article li{color:var(--muted)}.steps{counter-reset:step;display:grid}.step{counter-increment:step;border:1px solid var(--line);border-radius:12px;padding:22px 22px 22px 70px;position:relative}.step:before{content:counter(step);position:absolute;left:21px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:900}.compare{width:100%}.compare th,.compare td{text-align:left;border-bottom:1px solid var(--line)}.compare th{font-size:11px;color:var(--muted)}.compare td{font-size:12px}.compare tr:last-child td{border-bottom:0}.status-good{color:var(--green);font-weight:850}.search{display:flex}.search input,.search select{flex:1;border:1px solid #aebaca;border-radius:9px;padding:13px 14px;background:#fff}.faq summary{cursor:pointer;font-weight:800}.status-card{border:1px solid var(--line);border-radius:14px;display:flex;justify-content:space-between;align-items:center}.dot{width:10px;height:10px;background:var(--green);border-radius:50%;display:inline-block;margin-right:8px}.contact-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px}
.gb-service-card{display:flex;min-width:0;flex-direction:column}.gb-service-card h3,.gb-service-card p{margin:0}.gb-service-card-image{aspect-ratio:16/9;overflow:hidden;border-radius:10px;background:var(--soft)}.gb-service-card-image img{display:block;width:100%;height:100%;object-fit:contain}.gb-service-card .inline-link{margin-top:auto}.gb-service-empty{padding:22px;border:1px dashed var(--line);border-radius:12px;background:var(--soft)}
.auth-screen{background:var(--soft);min-height:calc(100vh - 72px);padding:58px 20px 90px}.auth-wrap{width:min(100%,500px);margin:auto}.auth-logo{text-align:center;margin-bottom:26px}.auth-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:0 18px 60px rgba(6,26,56,.08)}.progress{display:flex;margin-bottom:26px}.progress span{flex:1;background:#e0e6ed;border-radius:3px}.progress span.on{background:var(--lime)}.auth-card h1{font-size:28px;letter-spacing:-.04em;margin:0 0 8px}.auth-card>.lead{color:var(--muted);margin:0 0 26px}.field{display:block;margin:0 0 17px}.field>span{display:block;font-size:12px;font-weight:800;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;border:1px solid #aebaca;border-radius:8px;padding:13px 14px;background:#fff;color:var(--ink)}.field small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.field.error input{border-color:var(--red)}.error-text{color:var(--red)!important}.check{display:flex;gap:9px;align-items:flex-start;font-size:11px;color:var(--muted);margin:15px 0}.check input{margin-top:4px}.auth-foot{text-align:center;font-size:11px;color:var(--muted);margin-top:18px}.alert{border-left:4px solid var(--blue);background:#eef4ff;border-radius:7px;margin:14px 0}.alert.error{border-color:var(--red);background:#fff0f0}.code-row{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin:22px 0}.code-row input{text-align:center;font-size:22px;font-weight:850;width:100%;min-width:0;padding:11px 0;border:1px solid #aebaca;border-radius:8px}.success-mark{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:#e9f8ef;color:var(--green);font-size:31px;font-weight:900;margin:0 auto 20px}.center{text-align:center}.split{display:flex;justify-content:space-between;gap:10px;align-items:center}.divider{display:flex;align-items:center;gap:12px;color:#8996a7;font-size:10px;margin:20px 0}.divider:before,.divider:after{content:"";height:1px;background:var(--line);flex:1}
@media(max-width:900px){.desktop-nav{display:none}.mobile-menu{display:block}.hero-grid{grid-template-columns:1fr;min-height:auto;padding:70px 24px 90px}.flow-card{max-width:600px}.trust-strip{grid-template-columns:1fr 1fr}.trust:nth-child(2){border-right:0}.trust:nth-child(-n+2){border-bottom:1px solid var(--line)}.cards{grid-template-columns:1fr 1fr}.side-nav{overflow:auto}.side-nav-title,.side-nav button,.side-nav a{white-space:nowrap;width:auto}.contact-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.site-header{height:64px}.phase{display:none}.header-actions .btn.text{display:none}.hero-grid{padding:56px 20px 76px;gap:40px}.hero-actions{align-items:stretch;flex-direction:column}.hero-actions .btn{width:100%}.flow-card{padding:20px}.balance{font-size:34px}.trust{border-right:0;border-bottom:1px solid var(--line)}.section{padding:58px 0}.section-head{display:block}.section-head p{margin-top:10px}.cards{grid-template-columns:1fr}.cta{padding:32px 24px;grid-template-columns:1fr}.cta .btn{width:100%}.content-hero{padding:48px 0 30px}.content-grid{padding-top:30px}.wrap{padding:0 18px}.compare{overflow:auto}.auth-screen{padding:28px 14px 80px}.auth-card{padding:25px 20px}.routebar{right:10px;bottom:10px;width:calc(100vw - 20px)}.code-row{gap:5px}.site-footer{padding-bottom:130px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.member-screen{background:var(--soft);padding:56px 20px 96px}.member-wrap{max-width:1180px;margin:auto}.member-breadcrumb{display:flex;gap:10px;color:var(--muted);font-size:11px;margin-bottom:24px}.member-breadcrumb a{color:var(--muted);font-weight:750}.member-header{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:30px}.member-header h1{font-size:clamp(32px,4vw,52px);line-height:1.1;letter-spacing:-.05em;margin:8px 0}.member-lead{color:var(--muted);margin:0}.member-user{text-align:right;color:var(--muted);font-size:11px}.member-user strong{display:block;color:var(--ink);font-size:14px}.member-layout{display:grid;grid-template-columns:240px 1fr;gap:22px}.member-nav{background:var(--navy);border-radius:16px;padding:12px;height:max-content;position:sticky;top:92px}.member-nav a{display:flex;gap:10px;align-items:center;color:#c6d3e3;text-decoration:none;padding:13px 12px;border-radius:9px;font-size:12px;font-weight:750}.member-nav a span{color:var(--lime);font-size:10px;min-width:64px}.member-nav a.active,.member-nav a:hover{background:#173b68;color:#fff}.member-nav a.logout{border-top:1px solid #29466b;margin-top:10px;padding-top:18px}.member-content{min-width:0}.member-notice{padding:13px 16px;border-left:4px solid var(--blue);background:#eef4ff;border-radius:8px;margin-bottom:16px;font-size:12px}.member-notice.error{border-color:var(--red);background:#fff0f0}.member-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.member-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px;box-shadow:0 10px 32px rgba(6,26,56,.05)}.member-card .card-label{display:block;color:var(--muted);font-size:11px;font-weight:800}.member-card strong{display:block;font-size:28px;margin:12px 0 4px}.member-card small{display:block;color:var(--muted);font-size:11px}.member-context{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px}.member-context h2{margin:6px 0;font-size:24px}.member-context p{margin:0;color:var(--muted)}.member-balance{background:var(--navy);color:#fff;border-color:var(--navy)}.member-balance .card-label,.member-balance small{color:#c6d3e3}.member-table{width:100%;border-collapse:collapse;font-size:12px}.member-table th,.member-table td{text-align:left;padding:13px}.member-table th{color:var(--muted);font-size:11px}.member-table td[colspan]{text-align:center;color:var(--muted);padding:24px}.member-empty{text-align:center;min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center}.member-empty h2{margin:12px 0 5px;font-size:22px}.member-empty p{color:var(--muted);margin:0 0 10px}.empty-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#edf3fa;color:#638500;font-size:26px;font-weight:900}
@media(max-width:700px){.member-screen{padding:34px 14px 90px}.member-header{display:block}.member-user{text-align:left;margin-top:14px}.member-layout{grid-template-columns:1fr}.member-nav{position:static;display:flex;overflow:auto;gap:4px}.member-nav a{min-width:max-content;display:block;text-align:center;padding:10px}.member-nav a span{display:block;margin-bottom:3px}.member-nav a.logout{border:0;margin:0;padding-top:10px}.member-grid{grid-template-columns:1fr}}

/* EC-CUBE 2 layout adapter: keep the standard Smarty inheritance and neutralize legacy chrome. */
.frame_outer,#container,#main_content,#main_column{width:100%;max-width:none;margin:0;padding:0;background:transparent}
#container{min-height:0}
#main_column.colnum1{width:100%}
.gb-skip-link{position:fixed;left:16px;top:-80px;z-index:100;background:var(--lime);color:var(--ink);padding:11px 15px;border-radius:8px;font-weight:850}
.gb-skip-link:focus{top:12px}
.site-header .brand,.site-footer .brand{color:inherit}
.gb-hero-eyebrow{color:var(--lime)}
.gb-hero-secondary{background:transparent;color:#fff;border-color:#69809d}
.site-footer p,.site-footer .brand{max-width:310px}.site-footer p{font-size:11px}
.gb-copyright{border-top:1px solid #18304f;margin-top:38px;padding-top:22px;font-size:11px}
.gb-button-link{display:block;text-align:center;text-decoration:none}
.gb-code-input{text-align:center;font-size:24px!important;font-weight:850;letter-spacing:.35em}
.gb-link-button{border:0;background:transparent;padding:0}
.gb-phone-row{display:grid!important;grid-template-columns:115px 1fr;gap:8px;margin:0!important}
.gb-phone-row select,.gb-phone-row input{width:100%}
.gb-masked-destination{font-size:12px;color:var(--muted);margin:-2px 0 16px}

@media(max-width:900px){
  .site-header{position:sticky}
  .site-header .desktop-nav[data-open="true"]{display:flex;position:absolute;left:0;right:0;top:100%;padding:18px 24px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 18px 30px rgba(6,26,56,.1);flex-direction:column;align-items:stretch;gap:4px}
  .site-header .desktop-nav[data-open="true"] a{min-height:44px;display:flex;align-items:center}
}
@media(max-width:420px){.gb-phone-row{grid-template-columns:105px 1fr}}

/* GBank column contract: public pages are one-column, member pages are two-column. */
#container.layout-1column{display:block;width:100%;}
#container.layout-1column #main_content,
#container.layout-1column #main_column{width:100%;max-width:none;min-width:0;}
#container.layout-2column{display:grid;grid-template-columns:minmax(190px,240px) minmax(0,1fr);grid-template-areas:"left main";align-items:start;}
#container.layout-2column #topcolumn{grid-area:top;min-width:0;}
#container.layout-2column #leftcolumn{grid-area:left;min-width:0;width:100%;padding-top:0;overflow:visible;}
#container.layout-2column #main_content{grid-area:main;min-width:0;width:100%;}
#container.layout-2column #rightcolumn{grid-area:right;min-width:0;}
#container.layout-2column #bottomcolumn{grid-area:bottom;min-width:0;}
#container.layout-2column #main_column{width:100%;max-width:none;min-width:0;}
@media(max-width:760px){
  #container.layout-2column{display:block;}
  #container.layout-2column #leftcolumn,
  #container.layout-2column #rightcolumn{width:100%;}
}

.gb-language-switcher{position:relative;z-index:5}.gb-language-trigger{display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:9px;padding:7px 10px;font-weight:800;cursor:pointer}.gb-language-trigger:after{content:'⌄';font-size:13px}.gb-language-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:180px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 34px rgba(6,26,56,.16)}.gb-language-menu[hidden]{display:none}.gb-language-option{display:flex;align-items:center;gap:9px;padding:10px 9px;border-radius:7px;text-decoration:none;color:var(--ink)}.gb-language-option span{width:42px;color:var(--muted);font-weight:900}.gb-language-option b{margin-left:auto;color:#638500}.gb-language-option:hover,.gb-language-option.active{background:var(--soft)}.gb-language-switcher select{min-height:40px;border:1px solid #aebaca;border-radius:8px;background:#fff;padding:8px 10px;color:var(--ink)}
@media(max-width:900px){.header-actions .gb-language-switcher{order:1}.header-actions>a.btn.ghost{order:2}.header-actions>.btn:not(.text):not(.ghost){order:3}}

.gb-contact-card{width:100%;margin:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:0 12px 35px rgba(6,26,56,.06)}.gb-contact-note{color:var(--muted);font-size:12px;margin:0 0 22px}.gb-contact-form{display:grid;gap:17px}.gb-form-field label{display:block;font-size:12px;font-weight:800;margin-bottom:7px}.gb-form-field label span{color:var(--red)}.gb-form-field input,.gb-form-field select,.gb-form-field textarea{width:100%;border:1px solid #aebaca;border-radius:8px;padding:12px 13px;background:#fff;color:var(--ink)}.gb-form-field input+input,.gb-form-field select+input{margin-top:8px}.gb-form-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gb-form-pair.postal{grid-template-columns:130px 130px}.gb-form-pair.phone{grid-template-columns:1fr 1fr 1fr}.gb-form-error{display:block;min-height:1.2em;color:var(--red);font-size:11px;margin-top:5px}.gb-contact-actions{display:flex;justify-content:flex-end;margin-top:24px}.gb-contact-actions--center{justify-content:center}.gb-contact-review{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,2fr);margin:28px 0}.gb-contact-review dt,.gb-contact-review dd{padding:13px 0;border-bottom:1px solid var(--line);margin:0}.gb-contact-review dt{font-weight:800}.gb-contact-complete{text-align:center;padding:70px 30px}.gb-contact-complete p{color:var(--muted);max-width:500px;margin:10px auto 22px}.gb-contact-complete .btn{display:inline-block;text-decoration:none}
@media(max-width:600px){.gb-contact-card{padding:22px 18px}.gb-form-pair.postal{grid-template-columns:1fr 1fr}.gb-form-pair.phone{grid-template-columns:1fr}.gb-contact-review dt{padding-bottom:3px;border:0}.gb-contact-review dd{padding-top:0}.gb-contact-actions{display:grid;grid-template-columns:1fr}.gb-contact-actions .btn{width:100%}}

/* 規約本文はプレーンテキストとして改行を維持する。 */
.gb-kiyaku-list{display:grid;gap:22px}.gb-kiyaku-item{border:1px solid var(--line);border-radius:12px;background:#fff}.gb-kiyaku-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}
/* 公開画面のモーダル操作は共通フッターで中央配置する。 */
.gb-modal__footer{display:flex;align-items:center;justify-content:center;gap:16px}
body.gb-modal-open{overflow:hidden}.gb-kiyaku-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:rgba(4,20,45,.68)}.gb-kiyaku-overlay[hidden]{display:none}.gb-kiyaku-dialog{width:min(760px,100%);max-height:min(82vh,820px);display:flex;flex-direction:column;background:#fff;box-shadow:0 28px 80px rgba(4,20,45,.35);outline:0}.gb-kiyaku-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 22px;border-bottom:1px solid var(--line)}.gb-kiyaku-dialog-header h2{margin:0;font-size:22px}.gb-kiyaku-close{width:44px;height:44px;flex:0 0 44px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-size:25px;cursor:pointer}.gb-kiyaku-dialog-status{padding:28px 22px;color:var(--muted);text-align:center}.gb-kiyaku-dialog-body{overflow:auto;overscroll-behavior:contain}.gb-kiyaku-dialog-body .gb-kiyaku-item+.gb-kiyaku-item{margin-top:16px}
@media(max-width:600px){.gb-kiyaku-overlay{padding:0;align-items:end}.gb-kiyaku-dialog{width:100%;max-height:92vh;border-radius:16px 16px 0 0}.gb-kiyaku-dialog-header{padding:16px 18px}.gb-kiyaku-dialog-body{padding:18px}.gb-kiyaku-item{padding:18px}}

.faq-answer{white-space:pre-line}

/* マイページの共通レイアウトとログインフォームを整える。 */
.gb-mypage{min-height:calc(100vh - 72px)}
.gb-mypage .content-hero{background:transparent}
.gb-mypage-layout{display:grid;align-items:start}
.gb-mypage-main{min-width:0;container-type:inline-size}
.gb-mypage-nav{display:grid;margin:0;background:#fff;border:1px solid var(--line);border-radius:16px}
.gb-mypage-nav a{display:block;width:100%;border:1px solid transparent;color:var(--muted);font-weight:800;text-decoration:none;white-space:normal;overflow-wrap:anywhere}
.gb-mypage-card .gb-point-filters{margin-top:0;margin-bottom:24px}
@container(max-width:700px){.gb-mypage-main .gb-mypage-grid{grid-template-columns:1fr}}

.gb-mypage-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:0 12px 35px rgba(6,26,56,.06)}
.gb-mypage-card--fit{align-self:start}
.gb-mypage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.gb-mypage .content-hero{padding-bottom:28px}.gb-mypage .content-hero p{margin:0;max-width:620px}
.gb-mypage-dashboard{display:grid}.gb-mypage-points{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 20px;align-content:start;padding:30px;border-radius:18px;color:#fff;box-shadow:0 16px 40px rgba(6,26,56,.16)}
.gb-mypage-section-heading{display:flex;align-items:center;gap:12px;min-width:0}.gb-mypage-section-heading h2{margin:0;font-size:19px;line-height:1.35}.gb-icon-coins{--gb-icon:url("design/assets/lucide/coins.svg")}.gb-icon-clock{--gb-icon:url("design/assets/lucide/clock.svg")}.gb-icon-megaphone{--gb-icon:url("design/assets/lucide/megaphone.svg")}
.gb-mypage-points .gb-mypage-section-heading{grid-column:1/-1}.gb-mypage-points .gb-mypage-section-heading h2,.flow-card .gb-mypage-section-heading h2{color:#fff}.gb-mypage-points-value{grid-column:1/-1;font-size:clamp(42px,5vw,64px);letter-spacing:-.055em;line-height:1;font-variant-numeric:tabular-nums}.gb-mypage-payout{align-self:center;min-height:44px;white-space:nowrap}.gb-mypage-points .gb-mypage-payout{background:var(--lime);color:var(--ink)}.gb-mypage-point-summary{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:4px;border:1px solid #ffffff26;border-radius:12px;overflow:hidden;background:#ffffff26}.gb-mypage-point-summary>div{display:grid;grid-template-columns:42px minmax(0,1fr);gap:5px 9px;padding:16px;background:#fff;color:var(--muted);font-size:12px}.gb-mypage-point-summary .gb-mypage-icon{grid-row:span 2}.gb-mypage-point-summary strong{min-width:0;overflow-wrap:anywhere;color:var(--navy);font-size:18px;font-variant-numeric:tabular-nums}
.gb-mypage-side-stack{display:grid;gap:16px}.gb-mypage-card{min-width:0}.gb-mypage-notice p,.gb-mypage-recommendation,.gb-mypage-destinations>p{margin:18px 0 0;color:var(--muted);line-height:1.7}.gb-mypage-account-list{display:grid;gap:12px;margin:20px 0}.gb-mypage-account-list>div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:10px}.gb-mypage-account-list dt{color:var(--muted);font-size:12px}.gb-mypage-account-list dd{margin:0;overflow-wrap:anywhere;font-weight:850;text-align:right}.gb-status-good{color:var(--green)}.gb-status-muted{color:var(--muted)}.gb-mypage-secondary-action{min-height:44px}.gb-mypage-destinations{grid-column:1/-1}.gb-mypage-destinations h3{margin:22px 0 0;font-size:18px}.gb-mypage-destination-list{display:grid;gap:10px;margin:20px 0 22px;padding:0;list-style:none}.gb-mypage-destination-list li{display:flex;justify-content:space-between;gap:20px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}.gb-mypage-destination-list strong,.gb-mypage-destination-list span{overflow-wrap:anywhere}.gb-mypage-destination-list span{color:var(--muted);text-align:right}
@media(max-width:700px){.gb-mypage-destinations{grid-column:auto}.gb-mypage-points{padding:24px 20px}.gb-mypage-point-summary{grid-template-columns:1fr}.gb-mypage-destination-list li{display:grid;gap:5px}.gb-mypage-destination-list span{text-align:left}}
.gb-form-grid--two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.gb-form-field--half{grid-column:span 1;min-width:0}
.gb-form-field--full{grid-column:1/-1}
@media(max-width:700px){.gb-form-grid--two-column{grid-template-columns:1fr}.gb-form-field--half,.gb-form-field--full{grid-column:1/-1}}
.gb-login-error{min-height:1.4em;margin:0 0 16px}
.gb-login-form{display:grid}
.gb-login-form [hidden]{display:none!important}
.gb-login-field{position:relative;display:grid;gap:8px}
.gb-login-field label{font-weight:800}
.gb-login-field input{width:100%;border:1px solid #aebaca;border-radius:8px;background:#fff;color:var(--ink)}
.gb-login-field input:focus{border-color:var(--blue);outline:3px solid rgba(37,99,235,.14);outline-offset:0}
.gb-login-remember{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin:0;color:var(--muted);font-size:13px;line-height:1.5;cursor:pointer}
.gb-login-remember input{width:16px;height:16px;flex:0 0 auto;margin:0}
.gb-login-otp-panel{display:grid;gap:16px;padding-top:18px;border-top:1px solid var(--line)}
.gb-login-otp-panel p{margin:0;color:var(--muted);font-size:13px;line-height:1.7}
.gb-login-code-field input{text-align:center;letter-spacing:.24em;font-size:20px;font-variant-numeric:tabular-nums}
.gb-login-actions{display:grid;gap:10px}
.gb-login-otp-resend{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-weight:800;cursor:pointer}
.gb-login-otp-resend:hover,.gb-login-otp-resend:focus-visible{border-color:var(--blue);color:var(--blue)}
@media(max-width:600px){
	.gb-mypage{padding-bottom:70px}
	.gb-mypage .content-hero{padding-bottom:24px}
	.gb-mypage-card{padding:22px 18px}
	.gb-mypage-grid{grid-template-columns:1fr}
	.gb-mypage-nav{gap:6px}
}

/* 狭い画面でもヘッダー操作部が縦折れしないようにする。 */
@media(max-width:600px){

	.header-actions{gap:4px;flex:0 0 auto}
	.header-actions .gb-language-trigger{min-width:50px}
	.header-actions .gb-language-trigger span{display:none}
	.header-actions .gb-language-trigger b{font-size:9px;white-space:nowrap}
	.header-actions>.btn:not(.text):not(.ghost){padding:9px 8px}
	.header-actions .mobile-menu{white-space:nowrap}
}

/* 共通ヘッダー内のリンクボタンの配置と状態を揃える。 */
.site-header a.btn,
.site-header a.btn:link,
.site-header a.btn:visited,
.site-header a.btn:hover,
.site-header a.btn:focus-visible{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:auto;
	font:inherit;
	font-weight:850;
	text-align:center;
	text-shadow:none;
	text-decoration:none;
	white-space:nowrap;
}
.site-header a.btn,
.site-header a.btn:link,
.site-header a.btn:visited{color:var(--ink);background:var(--lime)}
.site-header a.btn:hover,
.site-header a.btn:focus-visible{color:var(--ink);background:var(--lime2)}
.site-header a.btn.dark,
.site-header a.btn.dark:link,
.site-header a.btn.dark:visited{color:#fff;background:var(--navy)}
.site-header a.btn.dark:hover,
.site-header a.btn.dark:focus-visible{color:#fff;background:var(--navy2)}
.site-header a.btn.text,
.site-header a.btn.text:link,
.site-header a.btn.text:visited,
.site-header a.btn.text:hover,
.site-header a.btn.text:focus-visible{color:var(--ink);background:transparent;border-color:transparent}

/* CTAのリンクボタンは濃緑の文字色を共有する。 */
.hero-actions a.btn,
.hero-actions a.btn:link,
.hero-actions a.btn:visited,
.hero-actions a.btn:hover,
.hero-actions a.btn:focus-visible,
.home-cta a.btn,
.home-cta a.btn:link,
.home-cta a.btn:visited,
.home-cta a.btn:hover,
.home-cta a.btn:focus-visible{color:#0b5d32}

.btn.ghost,
a.btn.ghost:link,
a.btn.ghost:visited,
a.btn.ghost:hover,
a.btn.ghost:focus-visible{color:#0b5d32}

/* 公開トップとマイページで共有する認証カードの表示だけを整える。 */
.home-login-card .gb-login-card{width:100%;margin:0}.gb-login-security{display:flex;gap:12px;align-items:center;font-weight:850}.gb-login-password-control{align-items:stretch;gap:8px}.gb-login-password-control input{min-width:0;flex:1}.gb-login-password-toggle{border-radius:8px;font-weight:800;cursor:pointer}.gb-login-password-toggle:hover,.gb-login-password-toggle:focus-visible{border-color:var(--blue);color:var(--blue)}.gb-login-forgot{color:var(--blue);font-weight:800}.content-main>.article+.article{margin-top:48px}.step-note{padding:12px 14px;border-radius:8px}.step-note strong{color:var(--ink)}.compare{overflow:hidden}.compare th,.compare td{border-right:1px solid var(--line)}.compare th:last-child,.compare td:last-child{border-right:0}.compare tr:not(:last-child) td,.compare tr:not(:last-child) th{border-bottom:1px solid var(--line)}.article>#faq-heading{margin-top:52px;margin-bottom:24px}@media(max-width:900px){.content-main>.article+.article{margin-top:32px}}@media(max-width:600px){.gb-login-security{align-items:flex-start;flex-direction:column;gap:5px}.gb-login-footer{text-align:right}}

.home-login-card .gb-login-error{min-height:0;margin:0 0 12px;font-size:11px}
.home-login-card .gb-login-error:empty{display:none}
.gb-home-hero .home-login-card .gb-login-error:not(:empty){color:var(--red);background:#fff0f0;border-left:4px solid var(--red);border-radius:7px;padding:12px 14px;line-height:1.6}
.gb-home-hero .home-login-card [id$="mypage-login-credentials"]{display:grid;gap:16px}

/* 公開ガイドで混在していたカード、ナビ、余白を確認済みデザインへ揃える。 */

.gb-login-passkey{margin-top:12px}
.gb-login-passkey-button{
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	min-height:44px;
	border:1px solid #b8c4d1;
	border-radius:9px;
	background:var(--white);
	color:#0b5d32;
	cursor:pointer;
	font-weight:800;
}
.gb-login-passkey-button:hover,.gb-login-passkey-button:focus-visible{border-color:var(--blue);color:#0b5d32}

.home-process .process-grid{gap:16px}
.home-process .card{
	border-color:#d8e2ee;
	flex-direction:column;
}
.home-process .step-note{padding-top:12px}
.gb-support-topics .card{padding-top:18px}
.gb-support-topics .card h3{margin-top:0}
.payout-methods{padding:86px 0;background:#f0f5fb}
.payout-method-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.gb-embed-frame{width:100%;min-height:24rem;border:0}
.payout-methods .card{min-height:150px;padding:24px}
.home-cta-section{padding-top:48px;padding-bottom:52px}
.home-cta{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:28px;
}
.content-grid{grid-template-columns:230px minmax(0,1fr)}

.side-nav{display:grid;gap:4px;background:var(--white)}
.side-nav-title{
	margin-bottom:2px;
	padding:11px 12px;
	border-radius:8px;
	background:#f0f4f8;
	color:var(--ink);
	font-size:12px;
	font-weight:850;
}
.side-nav button,.side-nav a{border:1px solid transparent;border-radius:8px;padding:11px 13px}
.side-nav button.active,.side-nav a.active{border-color:var(--blue);background:#f5f8ff;color:var(--ink)}
.side-nav button:hover,.side-nav a:hover{border-color:#b8c4d1;background:var(--soft);color:var(--ink)}
.caution-note{
	position:relative;
	margin-top:30px;
	min-height:148px;
	padding:24px 28px 24px 96px;
	border:1px solid #efd8a7;
	border-left:4px solid #b7791f;
	border-radius:10px;
	background:linear-gradient(110deg,#fff8e8,#fffaf0);
	color:var(--muted);
	font-size:16px;
}
.caution-note h3{margin:0 0 10px;color:var(--navy);font-size:22px;line-height:1.5}
.caution-note h3:before{
	content:"!";
	position:absolute;
	left:28px;
	top:26px;
	display:inline-grid;
	place-items:center;
	width:42px;
	height:42px;
	border-radius:50%;
	background:#b7791f;
	color:var(--white);
	font-size:26px;
	font-weight:900;
}
.caution-note p{margin:0;color:var(--muted);font-size:16px;line-height:1.9}

.gb-contact-complete h2{margin:0 0 8px;font-size:28px;letter-spacing:-.03em}
.policy-section{scroll-margin-top:100px}
body:has(#cookie-policy:target) .policy-nav-privacy{border-color:transparent;background:none;color:var(--muted)}
body:has(#cookie-policy:target) .policy-nav-cookie{border-color:var(--blue);background:#f5f8ff;color:var(--ink)}
@media(max-width:900px){
	.home-process .process-grid,.payout-method-grid{grid-template-columns:1fr}
	.home-cta{align-items:flex-start;flex-direction:column}

	.side-nav{display:flex;overflow-x:auto}

}
@media(max-width:600px){
	.home-process{padding-top:60px;padding-bottom:60px}

	.compare{max-width:100%}
}

/* FAQカテゴリー共通部品。 */
.faq-categories{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:14px;
	margin:28px 0 0;
}
.faq-category-card{
	display:block;
	min-height:142px;
	padding:20px;
	border:1px solid var(--line);
	border-radius:16px;
	background:var(--white);
	box-shadow:0 10px 28px rgba(6,26,56,.06);
	color:var(--ink);
	text-decoration:none;
}
.faq-category-card > .gb-card-icon{margin-bottom:18px}
.faq-category-card:hover,
.faq-category-card:focus-visible,
.faq-category-card.is-active{border-color:var(--blue);background:#f5f8ff}
.faq-category-card:focus-visible{outline:3px solid rgba(37,99,235,.18);outline-offset:2px}
@media(max-width:900px){
	.faq-categories{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
	.faq-categories{grid-template-columns:1fr}
	.faq-category-card{min-height:0}
}

.gb-home-intro{position:fixed;inset:0;z-index:1001;overflow:hidden;pointer-events:auto;background:rgba(6,26,56,.52);contain:strict}.gb-home-intro__defs{position:absolute;width:0;height:0;overflow:hidden}.gb-home-intro__mark{position:absolute;left:50%;top:50%;display:block;pointer-events:none;will-change:transform}.gb-home-intro__piece{position:absolute;left:0;top:0;display:block;pointer-events:none;will-change:transform,opacity}.gb-home-intro__svg{display:block;width:100%;height:100%;overflow:visible;animation:gb-home-intro-drift 3.1s ease-in-out forwards}.gb-home-intro__shell{fill:url(#gb-home-intro-palette)}.gb-home-intro__side{fill:#061a38}.gb-home-intro__top{fill:#81964a}.gb-home-intro__mark[data-tone="0"] .gb-home-intro__shell{fill:url(#gb-home-intro-palette)}.gb-home-intro__mark[data-tone="1"] .gb-home-intro__side{fill:#81964a}.gb-home-intro__mark[data-tone="2"] .gb-home-intro__top{fill:#d9efac}@keyframes gb-home-intro-drift{0%{transform:rotate(calc(var(--gb-home-intro-rotation) - var(--gb-home-intro-drift)))}55%{transform:rotate(calc(var(--gb-home-intro-rotation) + var(--gb-home-intro-drift)))}100%{transform:rotate(var(--gb-home-intro-rotation))}}
@media(prefers-reduced-motion:reduce){.gb-home-intro{display:none!important}}

/* 新デザイン共通部品。既存のクラス・IDと本文を維持する表示専用CSS。 */
:root {
	--amber: #a85a00;
	--navy: #061a38; --navy2: #0b2b59; --lime: #b7e52b; --lime2: #d2f56b;
	--ink: #10213a; --muted: #53657b; --line: #ccd7e3; --soft: #f4f7fa;
	--white: #fff; --blue: #1859a1; --red: #b42332; --green: #146c43;
	--cyan: #55d8ff; --content: 1200px; --r: 20px; --rs: 10px;
	--shadow: 0 14px 42px rgba(6,26,56,.08); --gb-dark-line: #54718c;
}
html { scroll-padding-top: 130px; }
body { background: var(--white); color: var(--ink); font-size: 15px; line-height: 1.75; }
button, a, input, select, textarea { touch-action: manipulation; }
button, .btn { min-height: 44px; }
button:disabled, .btn:disabled { cursor: not-allowed; opacity: .55; transform: none; }
:focus-visible { outline: 3px solid #2470b8; outline-offset: 3px; }
[hidden] { display: none !important; }
.wrap { width: 100%; max-width: var(--content); padding-inline: 28px; }
.site-header {
	position: sticky; top: 0; z-index: 50; width: 100%; max-width: none;
	height: auto; min-height: 80px; margin: 0; padding: 12px max(28px,calc((100% - var(--content))/2)); gap: 24px;
	border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: white; color: var(--navy);
	box-shadow: none; backdrop-filter: none;
}
.site-header .brand { color: var(--navy); font-size: 30px; line-height: 1; flex-shrink: 0; }
.site-header .brand i { color: #719309; }
.site-footer .brand { color: white; font-size: 30px; }
.site-footer .brand i { color: var(--lime); }
.desktop-nav { gap: 24px; margin-right: auto; }
.site-header .desktop-nav a { color: var(--navy); font-size: 13px; line-height: 1.5; min-height: 44px; display: flex; align-items: center; }
.site-header .desktop-nav a:hover { color: #719309; }
.header-actions { gap: 10px; flex-shrink: 0; }
.site-header .header-actions .btn { padding: 10px 14px; font-size: 13px; min-height: 44px; }
.gb-language-trigger { background: transparent; color: var(--navy); border-color: transparent; font-size: 13px; min-height: 44px; }
.gb-language-icon {
	display: inline-block;
	width: 20px;
	height: 20px;
	flex: 0 0 20px;
	background: currentColor;
	-webkit-mask: url("design/assets/lucide/globe.svg") center / contain no-repeat;
	mask: url("design/assets/lucide/globe.svg") center / contain no-repeat;
}

.gb-language-trigger b { color: var(--navy); font-size: 13px; }
.gb-language-trigger:after { color: var(--muted); }
.gb-button-arrow {
	display: inline-block;
	width: 20px;
	height: 20px;
	flex: 0 0 20px;
	margin-left: auto;
	background: currentColor;
	-webkit-mask: url("design/assets/lucide/chevron-right.svg") center / contain no-repeat;
	mask: url("design/assets/lucide/chevron-right.svg") center / contain no-repeat;
}
.gb-button-icon {
	width: 20px;
	height: 20px;
	flex: 0 0 20px;
	background: currentColor;
	-webkit-mask: var(--gb-button-icon) center / contain no-repeat;
	mask: var(--gb-button-icon) center / contain no-repeat;
}
.gb-icon-button-user { --gb-button-icon: url("design/assets/lucide/user.svg"); }
.gb-icon-button-send { --gb-button-icon: url("design/assets/lucide/send.svg"); }
.gb-icon-button-plus { --gb-button-icon: url("design/assets/lucide/plus.svg"); }
.gb-language-option { font-size: 14px; }
.gb-language-option span { font-size: 13px; }
.site-header a.btn.dark:is(:link,:visited,:hover,:focus-visible) { background: var(--lime); color: var(--navy); }
.btn, a.btn:is(:link,:visited,:hover,:focus-visible), input[type="submit"].btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 11px 22px; border-radius: 11px; font-size: 14px;
	line-height: 1.5; font-weight: 850; text-align: center; text-decoration: none; text-shadow: none;
	background: var(--lime); color: var(--navy);
	white-space: normal; transition: transform .18s, background .18s, box-shadow .18s;
}
.btn:hover { background: var(--lime2); transform: translateY(-1px); box-shadow: 0 8px 20px #91b32220; }
.btn:active { transform: translateY(0); }
.btn.ghost, a.btn.ghost:is(:link,:visited,:hover,:focus-visible), .hero .gb-login-submit { background: white; border-color: #8fa2b8; color: var(--navy); }
.btn.dark, a.btn.dark:is(:link,:visited,:hover,:focus-visible) { background: var(--navy); color: white; }
.btn.text { background: transparent; color: var(--blue); }
.btn.sub-smoky-blue, a.btn.sub-smoky-blue:is(:link,:visited,:hover,:focus-visible) { background: #dce7f1; color: #3c5b78; }
.btn.sub-sage-green, a.btn.sub-sage-green:is(:link,:visited,:hover,:focus-visible) { background: #e3ece1; color: #476344; }
.btn.sub-sand-beige, a.btn.sub-sand-beige:is(:link,:visited,:hover,:focus-visible) { background: #f3ebdd; color: #6e5b3c; }
.mobile-menu { display: none; }
.section { padding-block: 76px; }
.section-head { gap: 24px; margin-bottom: 32px; }
.section-head h2, .content-hero h1 { font-size: clamp(30px,3.4vw,46px); line-height: 1.3; letter-spacing: -.045em; overflow-wrap: anywhere; }
.section-head p, .article p, .article li { color: var(--muted); font-size: 15px; }
.cards { gap: 22px; }
.card, .auth-card, .gb-mypage-card, .gb-contact-card {
	border: 1px solid var(--line); border-radius: var(--r); background: white;
	padding: 28px; box-shadow: var(--shadow); min-width: 0;
}
.card h3 { font-size: 20px; line-height: 1.5; }
.card p, .card ul { font-size: 14px; color: var(--muted); }
.card .meta { background: #edf3fa; color: #365572; font-size: 12px; }
.card.feature { border-color: #8bab30; }
.eyebrow { color: #506c00; font-size: 12px; }
.step-note { font-size: 13px; background: #f5f8ed; border-left: 3px solid #83a520; }
.inline-link { color: var(--blue); font-size: 14px; }
.content-hero { padding-block: 52px 32px; background: var(--soft); }
.content-grid { gap: 38px; padding-block: 38px 76px; }
.content-main { min-width: 0; }
.side-nav { border-radius: 14px; padding: 10px; top: 126px; }
.side-nav a, .side-nav button { font-size: 14px; min-height: 44px; }
.article h2 { font-size: 28px; line-height: 1.4; }
.article h3 { font-size: 20px; line-height: 1.5; }
.article, .gb-kiyaku-body, .gb-kiyaku-item { overflow-wrap: anywhere; }
.field > span, .gb-form-field label, .gb-login-field label { font-size: 14px; line-height: 1.5; }
.field input, .field select, .field textarea, .gb-form-field input, .gb-form-field select,
.gb-form-field textarea, .gb-login-field input, .search input, .search select {
	min-width: 0; min-height: 48px; padding: 12px 14px; border: 1px solid #8c9eb2;
	border-radius: 10px; background: white; color: var(--ink); font-size: 16px; line-height: 1.5;
}
input::placeholder, textarea::placeholder { color: #69798c; opacity: 1; }
input:focus, select:focus, textarea:focus { border-color: #2470b8; box-shadow: 0 0 0 3px #2470b81a; }
input[type="checkbox"], input[type="radio"] { min-height: 20px; width: 20px; height: 20px; accent-color: #526e00; flex-shrink: 0; }
textarea { min-height: 144px; resize: vertical; }
.field small, .check, .gb-login-remember, .auth-foot { font-size: 13px; color: var(--muted); }
.gb-form-error, .error-text { color: var(--red); font-size: 13px; }
.gb-form-grid--two-column { gap: 22px; }
.gb-inner-card { min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); }
.gb-fieldset { margin: 0; }
.gb-fieldset.gb-stack { row-gap: 22px; }
.gb-fieldset > .gb-actions { margin-top: 0; }
.gb-fieldset > .gb-stack:empty { display: none; }
.gb-fieldset > legend { padding: 0 10px; }
.gb-fieldset > legend h3 { margin: 0; font-size: 16px; line-height: 1.5; }
.gb-form-field, .gb-login-field { min-width: 0; }
label span.gb-form-required { padding: 2px 7px; border-radius: 5px; background: #ffeaed; color: #bb2636; font-size: 12px; font-weight: 800; line-height: 1.4; }
#sms-phone-region-code { width: min(100%, 22rem); }
.gb-login-field label, .gb-login-field > span:not(.gb-button-icon) { font-size: 16px; line-height: 1.5; font-weight: 800; }
.gb-login-field > span:not(.gb-button-icon) { margin: 0; }
.gb-login-field .code-row { margin: 0; }
.gb-login-field input, .gb-login-field select { min-height: 56px; margin: 0; padding: 14px 18px; border-color: #bacbde; }
.gb-login-form > .gb-login-field { margin: 0; }
.gb-login-form > .gb-stack { gap: 20px; }
.gb-login-field:has(> .gb-button-icon) input { padding-inline-start: 56px; }
.gb-login-field > .gb-button-icon { position: absolute; bottom: 18px; left: 20px; color: var(--muted); pointer-events: none; }
.gb-login-password-control { position: relative; display: block; }
.gb-login-password-control input { padding-inline-end: 60px; }
.gb-login-password-toggle { position: absolute; top: 1px; right: 1px; bottom: 1px; width: 52px; min-height: 44px; padding: 0; margin: 0; border: 0; background: transparent; color: var(--muted); }
.gb-login-password-toggle:before { content: ""; display: block; width: 22px; height: 22px; margin: auto; background: currentColor; -webkit-mask: url("design/assets/lucide/eye.svg") center / contain no-repeat; mask: url("design/assets/lucide/eye.svg") center / contain no-repeat; }
.gb-login-password-toggle[aria-pressed="true"]:before { -webkit-mask-image: url("design/assets/lucide/eye-off.svg"); mask-image: url("design/assets/lucide/eye-off.svg"); }
.gb-login-security { flex-wrap: wrap; margin-bottom: 18px; font-size: 12px; line-height: 1.5; letter-spacing: .035em; }
.gb-login-card > header .gb-login-security-label { color: var(--lime); }
.gb-login-lead { margin: 0 0 16px; color: var(--muted); font-size: 14px; line-height: 1.7; }
.gb-login-card > header + .gb-login-lead { margin-bottom: 28px; }
.gb-login-footer { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--line); text-align: center; }
.gb-login-forgot { display: inline-flex; align-items: center; min-height: 36px; padding: 0; font-size: 14px; }
/* 登録・ログイン・パスワード再設定の1カラム共通カード。 */
.gb-login-card {
	--gb-login-card-padding: clamp(24px,4vw,32px);
	width: min(520px,100%); margin: 0 auto; padding: var(--gb-login-card-padding);
	border: 1px solid var(--line); border-radius: 16px; background: var(--white);
	box-shadow: 0 18px 52px rgba(6,26,56,.12); color: var(--ink);
}
.gb-login-card > header {
	position: relative; isolation: isolate; overflow: hidden; width: auto;
	margin: calc(-1 * var(--gb-login-card-padding)) calc(-1 * var(--gb-login-card-padding)) 24px;
	padding: 28px var(--gb-login-card-padding); border-bottom: 1px solid var(--line);
	border-start-start-radius: inherit; border-start-end-radius: inherit;
	background: linear-gradient(115deg,#08243f,#0c3452); color: #fff;
}
.gb-login-card > header::before {
	content: ""; position: absolute; z-index: -1; top: -64px; right: -44px;
	width: 220px; height: 220px; border: 24px solid rgba(30,111,171,.20); border-radius: 50%; pointer-events: none;
}
.gb-login-card :is(h1,h2) { margin: 0 0 10px; color: inherit; font-size: clamp(24px,2vw,28px); line-height: 1.4; letter-spacing: -.03em; text-wrap: balance; }
.gb-login-card > header.center h1 { justify-content: center; }
.gb-login-card > header > :last-child { margin-bottom: 0; }
.gb-login-card > header :is(h1,h2) { display: flex; align-items: center; gap: 14px; margin: 0; }
.gb-login-card > header .gb-button-icon { width: 32px; height: 32px; flex: 0 0 32px; color: inherit; }
.gb-login-card > header .auth-logo { margin: 0; line-height: 1.2; }
.gb-login-card > header .brand { color: #fff; font-size: 28px; }
.gb-login-card > header .brand i { color: var(--lime); }
.gb-login-card > .progress { margin: 0 0 20px; }
.gb-login-card > .auth-foot { margin-top: 16px; text-align: center; font-size: 13px; }
.gb-login-card > .auth-foot p { margin: 0 0 10px; }
.gb-login-card > .auth-foot .btn { min-height: 40px; padding: 6px 28px; }
.gb-login-card .gb-notice { margin: 0 0 24px; padding: 16px; gap: 12px; font-size: 14px; }
.gb-login-submit, a.btn.gb-login-submit { width: 100%; min-height: 56px; font-size: 18px; }
.gb-login-form { gap: 20px; }
.gb-login-otp-resend { min-height: 46px; font-size: 14px; }
.alert { padding: 16px 18px; font-size: 14px; }
.alert.error, .gb-login-error:not(:empty) { background: #fff0f1; color: #98192a; }
.progress { gap: 8px; }
.progress span { height: 5px; }

.compare, .member-table { width: 100%; font-size: 14px; }
.member-table { margin: 0; border: 0; }
.compare th, .compare td, .member-table th, .member-table td { padding: 16px; font-size: 14px; line-height: 1.65; }
.member-table th, .member-table td { border: 0; border-bottom: 1px solid var(--line); }
.member-table tbody tr:last-child td { border-bottom: 0; }
.compare th, .member-table th { background: #eef3f8; color: #3f5670; font-weight: 800; }
.member-table-wrap { max-width: 100%; margin-bottom: 0; overflow: auto; border: 1px solid var(--line); border-radius: 14px; }
.member-table-wrap[aria-disabled="true"] { position: relative; overflow: hidden; }
.member-table-wrap[aria-disabled="true"]::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; background: rgba(48,52,58,.72); }
.compare td, .member-table td { overflow-wrap: anywhere; }
.compare td > p { white-space: pre-line; }
.compare { border-radius: 14px; }
.search { flex-wrap: wrap; gap: 12px; }
.article > .search.card { margin-bottom: 24px; }
.search input, .search select { min-width: min(200px,100%); }
.gb-mypage { background: var(--soft); padding-bottom: 72px; }

.gb-mypage-nav a { min-height: 46px; padding: 11px 16px; font-size: 14px; border-radius: 10px; }
.gb-mypage-nav a.active { background: var(--navy); color: white; }
.gb-mypage-grid { gap: 22px; }
.gb-mypage-pagination { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.gb-mypage-pagination a, .gb-mypage-pagination strong { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; border: 1px solid var(--line); border-radius: 10px; }
.gb-mypage-pagination [aria-current="page"] { background: var(--navy); color: white; }
.gb-mypage-nav button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; border: 1px solid #8fa2b8; border-radius: 10px; background: white; color: var(--navy); font-size: 14px; font-weight: 800; text-decoration: none; }
.gb-mypage-nav button { display: block; width: 100%; text-align: left; white-space: normal; overflow-wrap: anywhere; }
.gb-button.gb-button--primary, .gb-button[aria-current="page"], .gb-mypage-nav a[aria-current="page"] { background: var(--navy); border-color: var(--navy); color: white; }
.gb-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	max-width: 100%;
	padding: 10px 16px;
	border: 1px solid transparent;
	border-radius: var(--gb-block-radius);
	background: var(--gb-block-blue);
	color: #fff;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.35;
	text-align: center;
	text-decoration: none;
	white-space: normal;
	overflow-wrap: anywhere;
}

.gb-button:hover,
.gb-button:focus-visible { background: #155cb5; color: #fff; }
.gb-button--secondary { border-color: var(--gb-block-line); background: var(--gb-block-surface); color: var(--gb-block-text); }
.gb-button--secondary:hover,
.gb-button--secondary:focus-visible { background: var(--gb-block-soft); color: var(--gb-block-text); }

/* 選択中の項目へ、管理画面と同じ光を重ねる。 */
.gb-mypage-nav a[aria-current="page"] { position: relative; overflow: hidden; }
.gb-mypage-nav a[aria-current="page"]::after {
	content: "";
	position: absolute;
	inset: -20% 0;
	width: 40%;
	pointer-events: none;
	opacity: 0;
	background: linear-gradient(105deg, transparent, #55d8ff18, #ffffffa6, #b7e52b35, transparent);
	transform: translateX(-140%) skewX(-12deg);
	animation: gb-mypage-nav-shine 5.333s ease-out infinite;
}
@keyframes gb-mypage-nav-shine {
	0% { opacity: 0; transform: translateX(-140%) skewX(-12deg); }
	3% { opacity: .7; }
	15% { opacity: .7; }
	18.75% { opacity: 0; transform: translateX(370%) skewX(-12deg); }
	100% { opacity: 0; transform: translateX(370%) skewX(-12deg); }
}
.gb-notice { min-width: 0; max-width: 100%; margin: 28px 0; padding: 24px; border: 1px solid #cce2fa; border-left: 4px solid #2470b8; border-radius: 12px; background: #eef6ff; color: var(--muted); font-size: 16px; line-height: 1.8; letter-spacing: normal; overflow-wrap: anywhere; }
.gb-notice--success { border-color: #abd4bb; border-left-color: #146c43; background: #edf8f1; color: #145734; }
.gb-notice--warning { border-color: #dbc79d; border-left-color: #976b10; background: #fff8e9; color: #75540b; }
.gb-notice--error { border-color: #e3b7bd; border-left-color: #b42332; background: #fff0f1; color: #98192a; }
.gb-meta-list { list-style: none; padding: 0; margin: 18px 0; }
.gb-meta-list li { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.gb-link-list { padding-left: 20px; }
.gb-link-list a { display: inline-block; padding: 8px 0; color: var(--blue); }
.gb-money, .gb-date { font-variant-numeric: tabular-nums; }
.gb-money { font-weight: 850; }
.gb-status.gb-status { display: inline-block; padding: 4px 10px; border-radius: 6px; background: #edf3fa; font-size: 13px; }
.gb-status.gb-status-warning { background: #fff0cc; color: #855400; }
.gb-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.gb-form-field label.check span:not(.gb-form-required) { color: var(--ink); }
.flow-card { background: var(--navy); color: white; }
.flow-card .balance-label { color: #c4d5e7; }
.gb-summary-card, .member-balance { background: var(--navy); color: white; border-radius: 20px; }
.gb-contact-card > h1, .gb-contact-card > h2, .gb-contact-card > .gb-mypage-section-heading :is(h1,h2) { margin: 0 0 14px; color: var(--navy); font-size: 24px; line-height: 1.5; }
.gb-contact-card > .gb-contact-note { font-size: 16px; line-height: 1.8; }
.gb-contact-form .gb-form-field input, .gb-contact-form .gb-form-field textarea { font-size: 16px; }
.gb-contact-form .gb-form-field input { min-height: 50px; }
.gb-contact-form output { display: block; margin-top: 4px; text-align: right; color: var(--muted); font-size: 13px; }
.gb-contact-review dt, .gb-contact-review dd { font-size: 16px; overflow-wrap: anywhere; }
.gb-contact-review dt { color: var(--navy); }
.gb-contact-review dd { color: var(--muted); }
.gb-contact-review dd > strong { color: var(--navy); font-size: 18px; }
.gb-verified-phone { margin: 0; padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); text-align: center; }
.gb-verified-phone h3 { margin: 0 0 8px; color: var(--navy); font-size: 18px; }
.gb-verified-phone p { margin: 0; color: var(--navy); font-size: clamp(24px, 3vw, 32px); font-weight: 800; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.gb-contact-actions { flex-wrap: wrap; gap: 12px; }
.gb-contact-card .btn, .gb-contact-card a.btn { justify-content: center; gap: 16px; font-size: 16px; }
.gb-contact-card .btn > .gb-button-arrow { margin-left: 0; mask-image: url("design/assets/arrow-right.svg"); }
.gb-contact-actions > .btn { flex: 1; }
.gb-contact-actions > .btn.full { flex-basis: 100%; }
.gb-contact-complete > .gb-contact-complete-id { max-width: none; padding: 20px; border: 0; background: var(--soft); font-size: 24px; font-weight: 800; }
.contact-grid > * { min-width: 0; align-self: start; }
.contact-grid > aside { gap: 18px; }
.contact-grid > aside > .card { padding: 20px; border-radius: 14px; }
.contact-grid > aside > .card:first-child { background: radial-gradient(circle at 100% 0, #bfeccb80, transparent 55%), linear-gradient(135deg, #eff9f8, #e7f4ff); }
.contact-grid > aside h3 { margin: 12px 0 10px; color: var(--navy); font-size: 20px; }
.contact-grid > aside p { font-size: 14px; line-height: 1.8; }
.contact-grid > aside .btn { display: flex; justify-content: center; align-items: center; gap: 12px; margin-top: 16px; white-space: normal; }
.contact-grid > aside .gb-notice { margin: 18px 0 0; padding: 14px; gap: 12px; }
.contact-grid > aside .gb-notice strong { font-size: 15px; }
.contact-grid > aside .gb-notice p { font-size: 12px; }
.status-card { width: 100%; padding: 12px; gap: 10px; margin-bottom: 8px; border-color: #e4eef7; text-align: left; text-decoration: none; color: var(--navy); }
.status-card > span:nth-child(2) { flex: 1; min-width: 0; }
.status-card strong { font-size: 14px; line-height: 1.5; }
.status-card small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; }

.faq p { font-size: 14px; }
.gb-kiyaku-dialog { border: 1px solid var(--line); border-radius: 20px; }
.gb-kiyaku-dialog-body { padding: 26px; }
dialog.gb-kiyaku-dialog:not([open]) { display: none; }
dialog.gb-kiyaku-dialog::backdrop { background: #04142db0; }
.check input { width: 20px; }
.gb-kiyaku-item { min-width: 0; padding: 28px; border-color: #edf3f8; font-size: 16px; box-shadow: 0 8px 28px #17365d08; }
.gb-kiyaku-item h3 { margin: 0 0 12px; padding-bottom: 10px; border-bottom: 1px solid #e8eff6; color: var(--navy); font-size: 24px; line-height: 1.5; }
.gb-kiyaku-item .gb-kiyaku-text { font-size: 16px; color: var(--muted); }
.site-footer { padding-block: 54px 38px; background: #031126; color: #b9c9dc; }
.footer-grid { gap: 32px; }
.footer-grid h3 { font-size: 14px; }
.footer-grid a, .footer-grid button, .site-footer p, .gb-copyright { font-size: 13px; color: #b9c9dc; }
.footer-grid a, .footer-grid button { min-height: 36px; }
/* トップだけ暗色ヒーロー。本文とフォームの正規構造は変更しない。 */
.gb-home-hero { background: white; }
.gb-home-hero .hero {
	background: #061a38 url("design/assets/gbank-portal.webp") center / cover no-repeat;
	background-image: image-set(url("design/assets/gbank-portal.avif") type("image/avif"), url("design/assets/gbank-portal.webp") type("image/webp"));
}
.gb-home-hero .hero:after { display: none; }
.hero .hero-grid { max-width: 1540px; min-height: 650px; grid-template-columns: minmax(0,1fr) minmax(380px,.7fr); gap: clamp(50px,12vw,200px); padding-block: 48px 94px; }
.hero h1 { font-size: clamp(46px,5.5vw,82px); line-height: 1.08; letter-spacing: -.065em; }
.hero p { font-size: 18px; color: #d1dfed; }
.hero .gb-hero-eyebrow { color: var(--lime); }
.hero-note { color: #c0d0e1; font-size: 13px; }
.hero a.btn.ghost:is(:link,:visited,:hover,:focus-visible), .hero .btn.ghost { background: #061a38b3; color: white; border-color: #89a0b8; }
.hero .home-login-card .gb-login-card, .hero .flow-card {
	padding: var(--gb-login-card-padding,28px); border: 1px solid #657d96; border-radius: 22px; background: #08223fe8;
	color: white; box-shadow: 0 22px 60px #0003; backdrop-filter: blur(12px);
}
.hero .home-login-card { width: 100%; max-width: 400px; justify-self: end; }
.hero .home-login-card .gb-login-card { padding: 26px; border-radius: 20px; }
.hero .gb-login-security-label { margin: 0 0 8px; color: #c5ee64; font-size: 11px; font-weight: 800; letter-spacing: .12em; line-height: 1.5; }
.hero .gb-login-card h2 { margin: 0 0 22px; font-size: 25px; line-height: 1.35; }
.hero .gb-login-form { gap: 16px; }
.hero .gb-login-field { margin: 0; gap: 8px; }
.hero .gb-login-field label { font-size: 14px; line-height: 1.5; }
.hero .gb-login-field input { min-height: 50px; padding: 12px 14px; font-size: 16px; line-height: 24px; }
.hero .gb-login-field input[type="email"] { padding-inline-start: 44px; }
.hero .gb-login-field > .gb-button-icon { left: 15px; bottom: 15px; }
.hero .gb-login-password-control input { padding-inline-end: 54px; }
.hero .gb-login-remember { margin: 0; gap: 9px; font-size: 12px; min-height: 24px; }
.hero .gb-login-remember input { accent-color: var(--lime); }
.hero .gb-login-submit { min-height: 50px; padding: 11px 16px; font-size: 16px; line-height: 26px; }
.hero .gb-login-submit .gb-button-arrow { margin-left: 0; }
.hero .gb-login-footer { margin: 8px 0 0; padding: 0; border: 0; }
.hero .gb-login-card input:not([type="checkbox"]) { background: #03172d; border-color: #71859b; color: white; }
.hero .gb-login-card input::placeholder { color: #a1b2c5; }
.hero .gb-login-card label, .hero .gb-login-remember { color: #d0ddeb; }
.hero .gb-login-forgot { min-height: 44px; padding: 0; font-size: 12px; color: #8ae4ff; }
.hero .gb-login-password-toggle { width: 46px; min-height: 44px; border-radius: 0 7px 7px 0; background: transparent; color: #cadbeb; border-color: #71859b; }
.hero .gb-login-card a.btn.ghost:is(:link,:visited,:hover,:focus-visible), .hero .gb-login-card .btn.ghost { color: white; border-color: #71859b; }
.hero .gb-login-passkey-button { background: transparent; color: white; border-color: #71859b; }
.hero .gb-login-passkey-button:hover, .hero .gb-login-passkey-button:focus-visible { background: #1c456f; color: white; }
.hero .gb-login-card .gb-login-lead { margin-bottom: 18px; font-size: 14px; }
.gb-login-field input:focus-visible, .gb-login-password-toggle:focus-visible, .field input:focus-visible, .gb-form-field :is(input,select,textarea):focus-visible { outline: 3px solid #2470b8; outline-offset: 3px; }
.hero .gb-login-field input:focus-visible, .hero .gb-login-password-toggle:focus-visible { outline-color: #55d8ff; }
.hero .gb-login-password-toggle:hover, .hero .gb-login-password-toggle:focus-visible { color: white; background: #1c456f; }
:is(.field,.gb-form-field,.gb-login-field) :is(input,select,textarea)[readonly] { background: #edf1f5; border-style: dashed; color: #46576b; }
:is(.field,.gb-form-field,.gb-login-field) :is(input,select,textarea):disabled { background: #e3e9ef; color: #53657b; cursor: not-allowed; }
.hero .gb-login-card input[readonly] { background: #213950; color: #e3ebf3; border-style: dashed; }
.hero .gb-login-card input:disabled { background: #34485b; color: #c6d2df; cursor: not-allowed; }
:is(.field,.gb-form-field,.gb-login-field) :is(input,select,textarea)[aria-invalid="true"], .hero .gb-login-card input[aria-invalid="true"] { border: 2px solid #b42332; box-shadow: 0 0 0 1px #b423321a; }
.hero .balance { font-size: 52px; }
.trust-strip { max-width: 1484px; width: calc(100% - 56px); padding: 8px; gap: 0; margin-bottom: -30px; border-radius: 24px; border-color: #3b5571; background: #071f3d; box-shadow: 0 18px 48px #061a3824; transform: translateY(-36px); }
.trust { position: relative; isolation: isolate; overflow: hidden; padding: 26px 20px 26px 76px; min-height: 138px; border: 1px solid #3b5571 !important; border-radius: 17px; background: #08213d; color: white; }
.trust b { font-size: 15px; line-height: 1.6; }
.trust small { display: block; margin-top: 5px; color: #bdcde0; font-size: 13px; }
/* 文言を補う装飾アイコン。ローカルSVGを単色で共有し、発光用の疑似要素は使わない。 */
.gb-mypage-icon, .gb-card-icon { display: inline-grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 50%; background: #eef4f8; color: #496079; }
.gb-card-icon { vertical-align: middle; border: 0; pointer-events: none; }
.gb-mypage-icon:before, .gb-card-icon:before { content: ""; width: 22px; height: 22px; background: currentColor; mask: var(--gb-icon) center / contain no-repeat; }
.gb-icon-shield-check { --gb-icon: url("design/assets/lucide/shield-check.svg"); --gb-button-icon: url("design/assets/lucide/shield-check.svg"); }

.gb-icon-credit-card { --gb-icon: url("design/assets/lucide/credit-card.svg"); }
.gb-icon-chart-no-axes-combined { --gb-icon: url("design/assets/lucide/chart-no-axes-combined.svg"); }
.gb-icon-user { --gb-icon: url("design/assets/lucide/user.svg"); }
.gb-icon-landmark { --gb-icon: url("design/assets/lucide/landmark.svg"); }
.gb-icon-globe { --gb-icon: url("design/assets/lucide/globe.svg"); }
.gb-icon-wallet { --gb-icon: url("design/assets/lucide/wallet.svg"); }
.trust .gb-card-icon { position: absolute; left: 20px; top: calc(50% - 21px); }
.trust-strip:before { content: ""; position: absolute; left: 7%; right: 7%; top: 50%; height: 1px; background: #80bbc466; pointer-events: none; }
body.LC_Page_Index .gb-home-hero .trust-strip:before { display: none; }
body.LC_Page_Index .gb-home-hero .trust-strip .trust:before { content: ""; position: absolute; left: 76px; right: 20px; top: calc(75% - 48px); height: 96px; z-index: 0; pointer-events: none; opacity: 0; clip-path: inset(0 100% 0 0); background: url("data:image/svg+xml,%3Csvg xmlns=%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox=%220 0 320 80%22 preserveAspectRatio=%22none%22%3E%3Cpolyline points=%220%2C40 80%2C40 100%2C30 120%2C40 148%2C40 160%2C8 172%2C40 200%2C40 320%2C40%22 fill=%22none%22 stroke=%22%23b7e52b%22 stroke-width=%221.4%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%2F%3E%3C%2Fsvg%3E") center / 100% 100% no-repeat; }
body.LC_Page_Index .gb-home-hero .trust-strip .trust > .gb-card-icon { z-index: 1; }
body.LC_Page_Index .gb-home-hero .trust-strip .trust > b, body.LC_Page_Index .gb-home-hero .trust-strip .trust > small { position: relative; z-index: 1; }
.gb-design-light { position: absolute; left: 0; top: 50%; z-index: 3; width: 6px; height: 6px; border-radius: 50%; background: #e5ffd4; box-shadow: 0 0 12px var(--lime); pointer-events: none; opacity: 0; transition: transform .9s ease, opacity .15s; }
.home-process { padding-top: 72px; padding-bottom: 76px; }
.home-process .card { display: grid; grid-template-columns: 44px minmax(0,1fr); align-content: start; position: relative; overflow: hidden; min-height: 270px; padding: 30px; background: white; box-shadow: var(--shadow); }
.home-process .card .meta { display: inline-block; width: auto; margin-bottom: 24px; font-size: 28px; line-height: 1; background: transparent; color: #587800; }
.home-process .gb-card-icon { margin-bottom: 12px; }
.home-process .card .gb-card-icon + .meta { justify-self: end; line-height: 44px; padding: 0; margin-bottom: 12px; }
.home-process .card > :is(h3,p) { grid-column: 1 / -1; }
.home-process .card h3 { font-size: 21px; }
.home-process .card p { font-size: 14px; }
.home-process .step-note { margin-top: 18px; font-size: 13px; }
.payout-methods .card { border-radius: 18px; background: white; }
.payout-methods .gb-card-icon { margin-right: 12px; }
.payout-methods .gb-card-icon + .meta { vertical-align: middle; }
.home-cta { background: #061a38; border-radius: 24px; padding: 48px; }
.home-cta h2 { font-size: clamp(28px,3vw,40px); line-height: 1.4; }
.home-cta p { font-size: 15px; }
/* 一枚ずつの発光。通常時は静止し、移動はtransformだけで行う。 */
.gb-design-card:after { content: ""; position: absolute; inset: -20% 0; width: 40%; z-index: 2; pointer-events: none; opacity: 0; background: linear-gradient(105deg,transparent,#55d8ff18,#ffffffa6,#b7e52b35,transparent); transform: translateX(-140%) skewX(-12deg); }
.gb-design-card.gb-design-playing:after { animation: gb-design-shine .9s ease-out 1 both; }
.gb-design-card.gb-design-paused:after { animation-play-state: paused; }
body.LC_Page_Index .gb-home-hero .trust-strip .trust.gb-design-card.gb-design-playing:before { animation: gb-design-trace 1.2s ease-out 1 both; }
body.LC_Page_Index .gb-home-hero .trust-strip .trust.gb-design-card.gb-design-playing:after { animation-duration: 1.2s; }
body.LC_Page_Index .gb-home-hero .trust-strip .trust.gb-design-card.gb-design-playing.gb-design-loop-wait:before, body.LC_Page_Index .gb-home-hero .trust-strip .trust.gb-design-card.gb-design-playing.gb-design-loop-wait:after { animation-delay: 1.2s; }
body.LC_Page_Index .gb-home-hero .trust-strip .trust.gb-design-card.gb-design-paused:before { animation-play-state: paused; }
@keyframes gb-design-shine {
	0% { opacity: 0; transform: translateX(-140%) skewX(-12deg); }
	18% { opacity: .7; }
	80% { opacity: .7; }
	100% { opacity: 0; transform: translateX(370%) skewX(-12deg); }
}
@keyframes gb-design-trace { 0% { opacity: .22; clip-path: inset(0 100% 0 0); filter: none; } 50% { opacity: .68; clip-path: inset(0 50% 0 0); filter: drop-shadow(0 0 .6px #f4ffd8) drop-shadow(0 0 2px #b7e52b); } 100% { opacity: 0; clip-path: inset(0); filter: none; } }
#undercolumn_error, #errorBox { max-width: 740px; margin: 40px auto; padding: 30px 24px; border: 1px solid var(--line); border-radius: 18px; background: white; }
.message_area { margin-bottom: 24px; font-size: 16px; }
.gb-error-page { min-height: 100vh; display: grid; place-items: center; padding: 48px 20px; background: var(--soft); }
#undercolumn_error.gb-error-card, #errorBox.gb-error-card { width: min(100%, 740px); max-width: none; margin: 0 !important; padding: clamp(32px, 7vw, 64px) clamp(24px, 7vw, 72px); text-align: center; border: 1px solid var(--line); border-radius: var(--r); background: var(--white); box-shadow: var(--shadow); }
.gb-error-brand { display: inline-block; margin-bottom: 28px; color: #f60; font-size: 30px; font-weight: 900; letter-spacing: -.055em; }
.gb-error-brand i { color: #7da600; font-style: normal; }
.gb-error-card h1 { display: flex; align-items: center; justify-content: center; gap: .35em; margin: 0 0 12px; color: var(--navy); font-size: clamp(25px, 4vw, 34px); line-height: 1.35; }
.gb-error-title-icon { display: inline-block; width: 1em; height: 1em; flex: 0 0 1em; background: var(--red); -webkit-mask: url("design/assets/lucide/alert-triangle.svg") center / contain no-repeat; mask: url("design/assets/lucide/alert-triangle.svg") center / contain no-repeat; }
.gb-error-card .error { margin: 0; color: var(--muted); font-size: 16px; white-space: pre-line; }
.gb-error-actions { margin-top: 30px; }
@media (max-width: 600px) { .gb-error-page { padding: 24px 14px; } .gb-error-card { padding: 32px 20px; } }
.footer_navi { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; padding: 18px; }
@media (max-width: 1180px) {
	.site-header { gap: 16px; }
	.desktop-nav { display: none; }
	.mobile-menu { display: inline-flex; }
	.site-header .desktop-nav[data-open="true"] { display: flex; position: absolute; top: 100%; left: 0; right: 0; padding: 20px 28px; background: white; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; box-shadow: none; flex-direction: column; align-items: stretch; }
	.hero .hero-grid { gap: 36px; grid-template-columns: minmax(0,1fr) minmax(340px,.8fr); }
	.hero h1 { font-size: clamp(44px,5.5vw,66px); }
	.trust-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.trust-strip:before, .gb-design-light { display: none; }
}
@media (max-width: 900px) {
	.hero .hero-grid { grid-template-columns: 1fr; padding-top: 38px; padding-bottom: 90px; min-height: 0; }
	.hero .home-login-card { justify-self: start; }
	.hero .flow-card { width: 100%; max-width: 580px; }
	.hero h1 { font-size: clamp(44px,7.5vw,66px); }
	.content-grid { grid-template-columns: 1fr; gap: 26px; }
	.side-nav { position: static; }
	.section-head { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 600px) {
	:root { --r: 16px; }
	html { scroll-padding-top: 160px; }
	.wrap { padding-inline: 18px; }
	.site-header { min-height: 0; padding: 10px 18px; gap: 8px; display: grid; grid-template-columns: minmax(0,1fr) auto auto; }
	.site-header .brand { font-size: 27px; grid-column: 1; grid-row: 1; }
	.header-actions { display: contents; }
	.header-actions .gb-language-switcher { grid-column: 2; grid-row: 1; }
	.header-actions .mobile-menu { grid-column: 3; grid-row: 1; min-height: 44px; padding: 8px 10px; font-size: 13px; }
	.site-header .header-actions > a.btn { grid-column: 1 / -1; grid-row: 2; min-height: 44px; white-space: normal; }
	.site-header .header-actions > a.btn.ghost { display: flex; grid-column: 1; font-size: 13px; }
	.site-header .header-actions > a.btn.ghost + a.btn { grid-column: 2 / -1; }
	.header-actions > .btn:not(.text):not(.ghost) { font-size: 13px; white-space: normal; }
	.header-actions .gb-language-trigger { display: flex; font-size: 13px; white-space: nowrap; padding: 8px 4px; gap: 6px; line-height: 1.5; }
	.header-actions .gb-language-trigger b, .header-actions .gb-language-trigger span { display: block; font-size: 13px; white-space: nowrap; }
	.header-actions .gb-language-trigger > span:not(.gb-language-icon) { display: none; }
	.gb-language-trigger:after { display: none; }
	.hero .hero-grid { gap: 32px; padding-block: 34px 74px; }
	.hero h1 { font-size: clamp(38px,10.8vw,54px); line-height: 1.13; letter-spacing: -.065em; }
	.hero p { font-size: 16px; }
	.hero-note { font-size: 13px; }
	.hero .flow-card { padding: 22px 18px; backdrop-filter: none; box-shadow: none; background: #08223ff5; }
	.hero .home-login-card .gb-login-card { padding: 24px; backdrop-filter: none; box-shadow: none; background: #08223ff5; }
	.gb-login-security, .gb-login-security-status { flex-direction: row; gap: 8px; font-size: 13px; }
	.gb-home-hero .hero { background-position: 61% top; background-size: auto 680px; background-repeat: no-repeat; background-image: linear-gradient(#061a3866,#061a3822),url("design/assets/gbank-portal-mobile.webp"); background-image: linear-gradient(#061a3866,#061a3822),image-set(url("design/assets/gbank-portal-mobile.avif") type("image/avif"),url("design/assets/gbank-portal-mobile.webp") type("image/webp")); }
	.trust-strip { width: calc(100% - 28px); grid-template-columns: 1fr; margin-inline: auto; transform: translateY(-28px); }
	.trust { min-height: 116px; padding-block: 20px; }
	.section, .home-process { padding-block: 52px; }
	.section-head h2 { font-size: 30px; line-height: 1.4; }
	.card, .auth-card, .gb-mypage-card, .gb-contact-card, .gb-kiyaku-item, .home-process .card { padding: 24px 20px; min-height: 0; }
	.home-process .card .meta { margin-bottom: 18px; }
	.home-cta { padding: 30px 24px; }
	.compare { display: block; overflow-x: auto; white-space: normal; }
	.compare th, .compare td { min-width: 130px; }
	.compare th, .compare td, .member-table th, .member-table td { padding: 12px; font-size: 13px; }
	.gb-contact-review { grid-template-columns: 1fr; }
	.footer-grid { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
	.gb-design-card:after { inset: 0 -20%; width: 140%; height: 40%; background: linear-gradient(180deg,transparent,#55d8ff18,#ffffffa6,#b7e52b35,transparent); }
	@keyframes gb-design-shine {
		0% { opacity: 0; transform: translateY(-140%); }
		18%,80% { opacity: .6; }
		100% { opacity: 0; transform: translateY(370%); }
	}
}
/* フッター共通の上部戻り。スクロール時に控えめに現れ、安全領域を避けて固定する。 */
.gb-back-to-top { position: fixed; right: 20px; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); z-index: 40; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid #7690ac; border-radius: 50%; background: #0b2947; color: #e6eff7; font-size: 25px; line-height: 1; cursor: pointer; box-shadow: 0 4px 16px #061a3826; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .2s, transform .2s, visibility .2s; }
.gb-back-to-top[hidden] { display: none; }
.gb-back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.gb-back-to-top:hover { background: #173c60; transform: translateY(-2px); }
.gb-back-to-top:focus-visible { outline: 3px solid #88d5f0; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
	.gb-design-card:after, .gb-design-light, .gb-mypage-nav a[aria-current="page"]::after { display: none !important; animation: none !important; }
	body.LC_Page_Index .gb-home-hero .trust-strip .trust:before { animation: none !important; opacity: .34 !important; clip-path: none !important; transform: none !important; }
	*, *:before, *:after { scroll-behavior: auto !important; transition: none !important; }
}

/* 共通外枠と移動可能なブロック。配置件数によるカラム判定は変更しない。 */
#container.layout-2column{width:min(1180px,calc(100% - 40px));margin:32px auto;gap:24px}
.gb-public-page { min-height: calc(100vh - 190px); }
.gb-public-page > .content-hero {
	position: relative;
	display: flex;
	align-items: flex-start;
	min-height: 224px;
	padding: 28px 24px;
	border-radius: 14px;
	background: linear-gradient(110deg, #eef6fd, #f1f8ff);
	overflow: hidden;
}
.gb-public-page > .content-hero > .wrap { position: relative; z-index: 1; margin: 0; }
.gb-public-page > .content-hero h1 { margin: 8px 0 16px; font-size: clamp(30px,4.2vw,50px); line-height: 1.2; font-weight: 900; }
.gb-public-page > .content-hero p { margin: 0; font-size: 16px; line-height: 1.8; }
.gb-public-page > .content-hero > svg {
	position: absolute;
	right: 48px;
	top: 50%;
	width: 160px;
	height: 160px;
	transform: translateY(-50%);
	color: #a2c9e9;
	opacity: .5;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
	pointer-events: none;
}
.gb-public-page > .content-hero + .wrap { padding-top: 28px; }
.gb-public-page > .wrap > .article { padding: 0; }
.wrap > .gb-contact-card { margin-bottom: 28px; }
.wsc-heading-actions { justify-content: flex-end; }
.gb-card-icon:has(> svg)::before, .gb-mypage-icon:has(> svg)::before { content: none; }
.gb-card-icon > svg, .gb-mypage-icon > svg { display: block; width: 22px; height: 22px; }
.gb-profile-info-icon {
	display: inline-block;
	width: 24px;
	height: 24px;
	flex: 0 0 24px;
	vertical-align: middle;
	background: #1683e5;
	mask: url("design/assets/lucide/info.svg") center / contain no-repeat;
}
.gb-profile-question-icon {
	display: inline-block;
	width: 24px;
	height: 24px;
	min-height: 24px;
	padding: 0;
	border: 0;
	vertical-align: middle;
	background: #31567b;
	mask: url("design/assets/lucide/circle-question-mark.svg") center / contain no-repeat;
}
.gb-mypage-main > .gb-mypage-card + .gb-mypage-card { margin-top: 22px; }
.gb-mypage-section-heading { flex-wrap: wrap; }
.gb-stack:has(> .gb-mypage-section-heading) { gap: 12px; }
.gb-stack > .gb-notice { margin: 0; }
.gb-mypage-points .gb-notice { margin: 0; padding: 0; border: 0; background: transparent; color: #d1dfed; font-size: 12px; line-height: 1.7; }
.gb-mypage-points-value > span { font-size: .5em; }
.gb-notice:has(> .gb-profile-info-icon) { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 0 18px; }
.gb-notice > .gb-profile-info-icon { grid-column: 1; grid-row: 1 / span 2; margin-top: 3px; }
.gb-notice > .gb-profile-info-icon ~ * { grid-column: 2; }
.gb-notice h3, .gb-notice p { margin: 0; }
.gb-notice h3 { color: var(--navy); font-size: 20px; line-height: 1.5; }
.gb-notice p { font-size: 14px; line-height: 1.8; }
.gb-notice b, .gb-notice strong { color: var(--navy); font-size: 18px; }
.gb-notice p + p, .gb-notice h3 + p { margin-top: 8px; }
.steps { gap: 18px; }
.steps .step {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	gap: 32px;
	align-items: center;
	min-height: 142px;
	padding: 24px 28px 24px 88px;
	border-color: #d8e6f4;
	background: var(--white);
	box-shadow: var(--shadow);
	letter-spacing: normal;
}
.step::before { top: 24px; width: 40px; height: 40px; font-size: 20px; }
.step:not(:last-child)::after { content: ""; position: absolute; left: 40px; top: 72px; bottom: -18px; border-left: 2px dotted #a2c4eb; }
.steps .gb-card-icon { justify-self: center; }
.step > div { display: flex; flex-direction: column; justify-content: center; min-height: 92px; padding-left: 28px; border-left: 1px solid #d6e4f3; }
.step h3 { margin: 0; color: var(--navy); font-size: 24px; line-height: 1.4; }
.step p { margin: 8px 0 0; font-size: 16px; line-height: 1.6; }
.gb-service-card { gap: 16px; border-color: #d8e6f4; border-radius: 14px; }
.gb-service-card h3 { color: var(--navy); font-size: 24px; }
.card h3 a:is(:link,:visited) { color: inherit; text-decoration: none; }
.gb-service-card p { font-size: 17px; line-height: 1.6; }
.gb-service-card .inline-link { display: flex; align-items: center; justify-content: flex-start; gap: 14px; padding-top: 20px; border-top: 1px solid #deebf7; color: #008be7; font-size: 18px; text-decoration: none; }
.gb-service-card .inline-link .gb-button-arrow { width: 20px; height: 20px; margin: 0; border: 0; transform: none; background: currentColor; mask: url("design/assets/arrow-right.svg") center / contain no-repeat; }
.compare { margin: 0; border-collapse: separate; border-spacing: 0; border: 0; padding: 14px; background: #fff; }
.compare th, .compare td { padding: 18px; border-color: #deebf7; font-size: 16px; }
.compare th { padding-block: 14px; background: #eff6fc; }
.compare th:first-child { border-radius: 10px 0 0 0; }
.compare th:last-child { border-radius: 0 10px 0 0; }
.compare td b { color: var(--navy); }
.compare td { color: var(--muted); }
.compare td > .gb-card-icon { margin-right: 12px; }
.search > .field { flex: 1 1 180px; margin: 0; }
.search > .field label { display: block; font-weight: 800; margin-bottom: 7px; }
.search { align-items: end; margin: 0; }
.search input, .search select { min-height: 56px; font-size: 18px; }
.search input[type="search"] { padding-left: 52px; background: white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23637287' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10' cy='10' r='7'/%3E%3Cpath d='m15 15 6 6'/%3E%3C/svg%3E") 18px center / 24px 24px no-repeat; }
.search > .btn { min-width: 116px; min-height: 56px; font-size: 18px; }
.faq-category-card h3 { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; color: var(--navy); font-size: 18px; line-height: 1.5; }
.faq-category-card p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.8; }
.faq-categories + h2 { padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.faq { display: grid; gap: 20px; border: 0; }
.faq details { padding: 0; border: 1px solid var(--line); border-radius: 14px; background: var(--white); box-shadow: var(--shadow); }
.faq summary { display: flex; align-items: center; gap: 16px; min-height: 60px; padding: 18px 24px; color: var(--navy); font-size: 20px; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before { content: ""; flex: 0 0 14px; height: 14px; background: #1264b2; clip-path: polygon(25% 0,100% 50%,25% 100%); }
.faq details[open] summary { background: #eff6fd; border-radius: 13px 13px 0 0; }
.faq details[open] summary::before { transform: rotate(90deg); }
.faq details > :not(summary) { margin: 0; padding: 24px 40px; }
@media (max-width: 600px) {
	.gb-public-page > .content-hero { min-height: 256px; padding: 24px 20px; }
	.gb-public-page > .content-hero > svg { right: 16px; }
	.gb-public-page > .content-hero h1 { font-size: 30px; }
	.gb-notice { padding: 20px 16px; }
	.caution-note { padding: 22px 20px 22px 76px; }
	.caution-note h3:before { left: 18px; top: 24px; }
	.caution-note h3, .step h3, .faq summary { font-size: 20px; }
	.compare th, .compare td { padding: 14px 12px; font-size: 14px; }
	.faq summary { padding: 20px; }
	.steps .step { grid-template-columns: 42px minmax(0, 1fr); gap: 12px; padding: 62px 16px 20px; }
	.step::before { left: 16px; top: 14px; width: 32px; height: 32px; font-size: 18px; }
	.step:not(:last-child)::after { display: none; }
	.step > div { padding-left: 12px; }
	.search > .btn { width: 100%; }
}
#container.layout-2column .wrap{width:100%;padding-left:0;padding-right:0}
#container.layout-2column #main_column .wrap{padding-left:0;padding-right:0}

.content-grid > .article{padding-left:24px;min-width:0}
#leftcolumn .side-nav{position:static;margin:0 0 24px}
#leftcolumn .hero-grid,#leftcolumn .cards,#leftcolumn .trust-strip{grid-template-columns:minmax(0,1fr)}
#container.layout-2column #leftcolumn .wrap{width:100%;padding:0 14px}
#leftcolumn .hero{padding:24px 0}
#leftcolumn .hero h1,#leftcolumn .gb-hero-title{font-size:30px;line-height:1.35}
#leftcolumn .hero-actions,#leftcolumn .section-head,#leftcolumn .cta{flex-direction:column;align-items:stretch}
#leftcolumn .flow-card,#leftcolumn .home-login-card{min-width:0;width:100%;max-width:100%}
#leftcolumn .section{padding:24px 0}
#leftcolumn .balance{font-size:28px;overflow-wrap:anywhere}
.gb-home-hero .gb-hero-title{font-size:clamp(32px,5vw,64px);line-height:1.2}
@media(max-width:900px){#container.layout-2column{display:block;width:calc(100% - 28px)}#container.layout-2column #leftcolumn{float:none;margin-bottom:24px}}
.gb-home-hero{min-height:0}

/* ページ内メニューは現在項目と矢印で、ヘッダーの三本線と区別する。 */
.gb-section-menu > .gb-section-toggle{display:none}
.gb-section-links{display:grid;gap:inherit;min-width:0}
@media(max-width:900px){
	.gb-mypage-main,.content-grid > .article{padding-left:0}
	.gb-section-menu{display:block;overflow:visible}
	.gb-section-menu > .gb-section-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--soft);color:var(--navy);font-size:14px;font-weight:800;text-align:left;white-space:normal;cursor:pointer}
	.gb-section-toggle::after{content:"";flex:0 0 8px;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:0 3px 4px}
	.gb-section-toggle[aria-expanded="true"]::after{transform:rotate(225deg);margin-top:6px}
	.gb-section-toggle[aria-expanded="false"] + .gb-section-links{display:none}
	.gb-section-toggle[aria-expanded="true"] + .gb-section-links{margin-top:10px}
	.gb-section-links a,.gb-section-links .side-nav-title{width:100%;white-space:normal;overflow-wrap:anywhere}
	.header-actions .mobile-menu{align-items:center;justify-content:center;min-width:44px;min-height:44px}
}

.gb-mypage-layout #leftcolumn { float: none; width: 100%; padding: 0; overflow: visible; }
.gb-mypage-layout #main_content { min-width: 0; }
.gb-mypage-layout #main_column { width: 100%; }
.gb-mypage > .wrap {
	width: min(1384px, calc(100% - 64px));
	max-width: none;
	padding: 28px 0 0;
}
.gb-mypage-layout {
	grid-template-columns: 264px minmax(0, 1fr);
	gap: 34px;
}
@media (max-width: 900px) and (min-width: 701px) {
	.gb-mypage-layout {
		grid-template-columns: 204px minmax(0, 1fr);
		gap: 24px;
	}
}
.gb-mypage-main { padding-left: 0; }
.gb-mypage-main-head {
	display: block;
}
.gb-mypage-main-head > *,
.gb-mypage-dashboard > *,
.gb-mypage-destinations { min-width: 0; }
.gb-mypage-main-head > .content-hero {
	padding: 0 0 18px;
	background: transparent;
}
.gb-mypage-main-head h1 {
	margin: 0 0 2px;
	font-size: clamp(30px, 3.1vw, 36px);
	line-height: 1.25;
}
.gb-mypage-main-head p {
	margin: 0;
	color: var(--muted);
	font-size: 14px;
}
.gb-mypage-section-heading h2 { overflow-wrap: anywhere; }
.gb-mypage-dashboard {
	grid-template-columns: minmax(0, 1.56fr) minmax(0, 1fr);
	gap: 20px;
}
.gb-mypage-points > .gb-mypage-points-value {
	grid-column: 1;
	grid-row: 2;
	min-width: 0;
	white-space: normal;
	overflow-wrap: anywhere;
	font-size: clamp(32px, 5vw, 64px);
}
.gb-mypage-points {
	background: linear-gradient(135deg, #173d68 0%, #0b294c 54%, #061a38 100%);
}
.gb-mypage-points > .gb-mypage-payout {
	grid-column: 2;
	grid-row: 2;
	justify-self: end;
	min-width: 258px;
}
.gb-mypage-points .gb-mypage-point-summary {
	grid-column: 1 / -1;
	grid-row: 3;
}
.gb-mypage-card > .gb-mypage-point-summary { gap: 0; border: 0; background: var(--soft); }
.gb-mypage-card > .gb-mypage-point-summary > div { background: transparent; }
.gb-mypage-card > .gb-mypage-point-summary > div + div { border-left: 1px solid var(--line); }
.gb-mypage-point-summary strong:has(> span) { font-size: 28px; }
.gb-mypage-point-summary strong > span { margin-left: 3px; font-size: .5em; }
@media (max-width: 700px) {
	.gb-mypage-card > .gb-mypage-point-summary > div + div { border-left: 0; border-top: 1px solid var(--line); }
}
.gb-mypage-dashboard + .gb-mypage-destinations { margin-top: 20px; }
.gb-mypage-destination-empty {
	display: flex;
	min-height: 220px;
	margin-top: 16px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 20px;
	border: 1px solid var(--line);
	border-radius: 12px;
	background: #fff;
	text-align: center;
}
.gb-mypage-destination-empty .gb-mypage-icon {
	margin-bottom: 12px;
}
.gb-mypage-destination-empty h3 { margin: 0 0 4px; }
.gb-mypage-destination-empty p { margin: 0 0 18px; color: var(--muted); }
.gb-mypage-secondary-action {
	max-width: 100%;
	overflow-wrap: anywhere;
}
.gb-mypage-account-list dt {
	display: flex;
	align-items: center;
	min-width: 0;
	gap: 2px;
}
.gb-mypage-account-list > div { gap: 8px; }
.gb-mypage-account-list dd { font-size: 13px; }
.gb-mypage-account-row-icon {
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
	background: currentColor;
	-webkit-mask: var(--gb-account-row-icon) center / contain no-repeat;
	mask: var(--gb-account-row-icon) center / contain no-repeat;
}
.gb-icon-account-code { --gb-account-row-icon: url("design/assets/lucide/users.svg"); color: #4f657d; }
.gb-icon-account-sms { --gb-account-row-icon: url("design/assets/lucide/shield-check.svg"); color: #168957; }
.gb-icon-account-birth { --gb-account-row-icon: url("design/assets/lucide/cake.svg"); color: #bc782e; }
.gb-icon-account-address { --gb-account-row-icon: url("design/assets/lucide/house.svg"); color: #1683e5; }
.gb-mypage-destination-empty .gb-mypage-primary-action {
	min-width: 236px;
	background: var(--lime);
	border-color: var(--lime);
	color: var(--ink);
}
.gb-mypage-nav {
	gap: 4px;
	padding: 12px 10px;
}
.gb-mypage-nav-group { display: grid; gap: 4px; }
.gb-mypage-nav-heading {
	margin: 2px 6px 6px;
	color: var(--muted);
	font-size: 13px;
	font-weight: 800;
}
.gb-mypage-nav a,
.gb-mypage-nav-logout button {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	min-height: 48px;
	padding: 9px 10px;
	border: 1px solid transparent;
	border-radius: 9px;
	color: var(--ink);
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
	text-align: left;
}
.gb-mypage-nav a[aria-current="page"] {
	background: var(--navy);
	border-color: var(--navy);
	color: #fff;
}
.gb-mypage-nav a:hover,
.gb-mypage-nav a:focus-visible,
.gb-mypage-nav-logout button:hover,
.gb-mypage-nav-logout button:focus-visible {
	background: var(--soft);
	border-color: var(--line);
}
.gb-mypage-nav-icon {
	width: 24px;
	height: 24px;
	flex: 0 0 24px;
	background: currentColor;
	-webkit-mask: var(--gb-mypage-nav-icon) center / contain no-repeat;
	mask: var(--gb-mypage-nav-icon) center / contain no-repeat;
}
.gb-icon-house { --gb-mypage-nav-icon: url("design/assets/lucide/house.svg"); }
.gb-icon-credit-card { --gb-mypage-nav-icon: url("design/assets/lucide/credit-card.svg"); }
.gb-icon-wallet { --gb-mypage-nav-icon: url("design/assets/lucide/wallet.svg"); }
.gb-icon-download { --gb-mypage-nav-icon: url("design/assets/lucide/download.svg"); }
.gb-icon-user { --gb-mypage-nav-icon: url("design/assets/lucide/user.svg"); }
.gb-icon-lock { --gb-mypage-nav-icon: url("design/assets/lucide/lock.svg"); }
.gb-icon-phone { --gb-mypage-nav-icon: url("design/assets/lucide/phone.svg"); }
.gb-icon-mail { --gb-mypage-nav-icon: url("design/assets/lucide/mail.svg"); }
.gb-icon-file-text { --gb-mypage-nav-icon: url("design/assets/lucide/file-text.svg"); }
.gb-icon-log-out { --gb-mypage-nav-icon: url("design/assets/lucide/log-out.svg"); }
.gb-mypage-nav-arrow {
	margin-left: auto;
	color: currentColor;
	font-size: 24px;
	line-height: 1;
}
.gb-mypage-nav-divider {
	height: 1px;
	margin: 8px 6px;
	background: var(--line);
}
.gb-mypage-nav-logout {
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--line);
}
.gb-mypage-nav-logout button {
	cursor: pointer;
	border-color: #8fa2b8;
	background: #fff;
}
@media (max-width: 700px) {
	.gb-mypage > .wrap {
		width: calc(100% - 28px);
		padding-top: 20px;
	}
	.gb-mypage-layout { grid-template-columns: 1fr; gap: 20px; }
	.gb-mypage-dashboard { grid-template-columns: 1fr; }
	.gb-mypage-points > .gb-mypage-points-value,
	.gb-mypage-points > .gb-mypage-payout,
	.gb-mypage-points .gb-mypage-point-summary {
		grid-column: 1 / -1;
		grid-row: auto;
	}
	.gb-mypage-points > .gb-mypage-payout {
		justify-self: stretch;
		min-width: 0;
	}
	.gb-mypage-destination-empty .gb-mypage-primary-action {
		width: min(100%, 236px);
		min-width: 0;
	}
}
@media (min-width: 701px) and (max-width: 1399px) {
	.gb-mypage-dashboard > .gb-mypage-points {
		grid-template-columns: 1fr;
	}
	.gb-mypage-points > .gb-mypage-points-value,
	.gb-mypage-points > .gb-mypage-payout {
		grid-column: 1;
		grid-row: auto;
	}
	.gb-mypage-points > .gb-mypage-payout {
		min-width: 220px;
		justify-self: end;
	}
}
@media (min-width: 1400px) and (max-width: 1499px) {
	.gb-mypage-points > .gb-mypage-points-value { font-size: clamp(32px, 4vw, 52px); }
}

.gb-icon-mail { --gb-icon: url("design/assets/lucide/mail.svg"); --gb-button-icon: url("design/assets/lucide/mail.svg"); }
.gb-icon-lock { --gb-icon: url("design/assets/lucide/lock.svg"); --gb-button-icon: url("design/assets/lucide/lock.svg"); }
.gb-icon-key { --gb-icon: url("design/assets/lucide/key-round.svg"); --gb-button-icon: url("design/assets/lucide/key-round.svg"); }
.gb-icon-log-in { --gb-button-icon: url("img/common/log-in.svg"); }
.gb-icon-phone { --gb-icon: url("design/assets/lucide/phone.svg"); }
.gb-icon-refresh { --gb-button-icon: url("design/assets/lucide/refresh-cw.svg"); }

/* 左メニューはホバー時の下線を出さず、選択中だけマイページボタンのように浮かせる。 */
.gb-mypage-nav a {
	transition: 180ms cubic-bezier(.2, .8, .2, 1);
}
.gb-mypage-nav a:hover,
.gb-mypage-nav a:focus-visible {
	text-decoration: none !important;
	background: var(--soft);
	border-color: var(--line);
	color: var(--ink);
	box-shadow: 0 6px 16px rgba(6, 26, 56, .10);
	transform: translateY(-1px);
}
.gb-mypage-nav a[aria-current="page"]:hover,
.gb-mypage-nav a[aria-current="page"]:focus-visible {
	background: var(--navy);
	border-color: var(--navy);
	color: #fff;
	box-shadow: 0 8px 20px rgba(6, 26, 56, .24);
	transform: translateY(-2px);
}

.gb-refusal-card form { margin: 0; }
.gb-refusal-heading {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 18px;
}
.gb-refusal-heading h2 {
	margin: 0;
	color: var(--navy);
	font-size: 28px;
	line-height: 1.35;
}
.gb-refusal-member-icon {
	width: 76px;
	height: 76px;
	flex-basis: 76px;
	border: 0;
	background: #fff0f1;
	color: #c93131;
}
.gb-refusal-member-icon:before { display: none; }
.gb-refusal-member-icon svg { width: 34px; height: 34px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.gb-refusal-notice {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	align-items: center;
	gap: 14px;
	margin: 20px 0 0;
	padding: 16px 20px;
}
.gb-refusal-notice .gb-refusal-alert-icon {
	--gb-icon: url("design/assets/lucide/alert-triangle.svg");
	width: 40px;
	height: 40px;
	flex-basis: 40px;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: #976b10;
}
.gb-refusal-notice .gb-refusal-alert-icon:before { width: 30px; height: 30px; }
.gb-refusal-notice-copy p { margin: 0; color: inherit; font-size: 16px; line-height: 1.65; }
.gb-refusal-notice-copy p + p { margin-top: 4px; }
.gb-refusal-notice-copy strong { color: #60420a; font-size: 18px; font-weight: 850; }
.gb-refusal-data-panel {
	margin-top: 20px;
	padding: 20px 24px;
	border-radius: 12px;
	background: #f3f6f9;
	color: var(--muted);
}
.gb-refusal-data-panel h3 { margin: 0; color: var(--navy); font-size: 18px; line-height: 1.45; }
.gb-refusal-data-panel ul { display: grid; gap: 4px; margin: 10px 0 0; padding-left: 28px; font-size: 17px; line-height: 1.55; }
.gb-refusal-divider { margin: 20px 0; border: 0; border-top: 1px solid var(--line); }
.gb-refusal-input-panel {
	margin: 0;
	padding: 24px;
	border-radius: 12px;
	background: #f3f6f9;
}
.gb-refusal-input-panel > p { margin: 0 0 16px; color: var(--muted); font-size: 16px; line-height: 1.6; }
.gb-refusal-input-panel > p strong { color: #c93131; font-weight: 850; }
.gb-refusal-input-panel .gb-form-field { display: grid; gap: 7px; }
.gb-refusal-input-panel label { margin: 0; color: var(--navy); font-size: 14px; font-weight: 800; }
.gb-refusal-input-panel input {
	width: 100%;
	min-height: 48px;
	padding: 10px 14px;
	border: 1px solid #a9bfd6;
	border-radius: 8px;
	background: #fff;
	color: var(--ink);
	font: inherit;
}
.gb-refusal-input-panel input::placeholder { color: #8395aa; }
.gb-refusal-input-panel .gb-form-error { margin: 0; }
.gb-refusal-actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin-top: 24px;
}
.gb-refusal-actions .btn { width: 100%; min-height: 66px; font-size: 16px; }
.gb-refusal-actions .btn.ghost { border-color: #315070; background: #fff; color: var(--navy); }
.gb-refusal-actions .btn.ghost:hover { background: #f4f7fa; }
.gb-refusal-actions .gb-refusal-next { background: var(--lime); color: var(--navy); }
.gb-refusal-actions .gb-refusal-next:hover { background: var(--lime2); color: var(--navy); }
.gb-refusal-card--input .gb-refusal-actions { display: flex; justify-content: center; }
.gb-refusal-card--input .gb-refusal-actions .gb-refusal-next { width: min(100%, 382px); }
.gb-refusal-actions .gb-refusal-delete { background: #c91f2d; color: #fff; }
.gb-refusal-actions .gb-refusal-delete:hover { background: #a81925; color: #fff; }
.gb-refusal-card--final .gb-refusal-actions .btn.ghost { border-color: #c91f2d; background: #c91f2d; color: #fff; }
.gb-refusal-card--final .gb-refusal-actions .btn.ghost:hover { border-color: #a81925; background: #a81925; color: #fff; }
.gb-refusal-card--final .gb-refusal-actions .gb-refusal-delete { border-color: #315070; background: #fff; color: var(--navy); }
.gb-refusal-card--final .gb-refusal-actions .gb-refusal-delete:hover { background: #f4f7fa; color: var(--navy); }
.gb-refusal-delete { display: inline-flex; align-items: center; justify-content: center; gap: 14px; }
.gb-refusal-delete svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 700px) {
	.gb-refusal-heading { gap: 12px; }
	.gb-refusal-heading h2 { font-size: 20px; }
	.gb-refusal-member-icon { width: 52px; height: 52px; flex-basis: 52px; }
	.gb-refusal-member-icon svg { width: 26px; height: 26px; }
	.gb-refusal-notice { grid-template-columns: 32px minmax(0, 1fr); gap: 10px; padding: 14px; }
	.gb-refusal-notice .gb-refusal-alert-icon { width: 32px; height: 32px; flex-basis: 32px; }
	.gb-refusal-notice .gb-refusal-alert-icon:before { width: 24px; height: 24px; }
	.gb-refusal-data-panel { padding: 16px; }
	.gb-refusal-data-panel ul { padding-left: 22px; font-size: 15px; }
	.gb-refusal-input-panel { padding: 16px; }
	.gb-refusal-actions { grid-template-columns: 1fr; gap: 10px; }
}

/* お問い合わせトップはフォームと履歴を参照画像のカード構成に揃える。 */

.gb-contact-page-intro { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.gb-contact-mail-icon { --gb-icon: url("design/assets/lucide/mail.svg"); }
.gb-contact-actions svg { width: 16px; height: 16px; flex: 0 0 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.gb-contact-history-list { display: grid; gap: 24px; }
.gb-contact-history-entry { min-width: 0; margin: 0; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.gb-contact-history-entry:last-child { padding-bottom: 0; border-bottom: 0; }
.gb-contact-history-meta {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 8px;
	margin: 0;
	padding: 0;
	background: transparent;
}
.gb-contact-history-meta > div { display: grid; justify-items: start; gap: 0; min-width: 0; padding: 0; text-align: left; }
.gb-contact-history-meta dd { min-width: 0; margin: 0; color: var(--navy); font-size: 16px; font-weight: 800; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.gb-contact-history-meta > div:first-child dd { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; font-size: 20px; }
.gb-contact-history-meta > div:first-child dd > span { color: #748aa2; font-size: 13px; font-weight: 500; letter-spacing: normal; white-space: nowrap; }
/* チャットとお問い合わせ履歴は同じ吹き出し部品を使う。 */
.gb-contact-history-message { display: flex; align-items: flex-start; gap: 12px; min-width: 0; margin: 18px 0; }
.gb-contact-history-message--answer { justify-content: flex-end; }
.gb-contact-history-message-content { min-width: 0; max-width: 42rem; }
.gb-contact-history-message-content > header { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 0; background: transparent; }
.gb-contact-history-message-content h3, .gb-contact-history-message-content > header > strong { margin: 0; color: var(--navy); font-size: 14px; font-weight: 800; line-height: 1.5; }
.gb-contact-history-message-content > header > :is(span,time) { color: #748aa2; font-size: 12px; font-variant-numeric: tabular-nums; line-height: 1.5; }
.gb-contact-history-message-content > p { margin: 6px 0 0; padding: 14px 16px; border-radius: 14px; background: #edf2f7; color: var(--ink); font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.gb-contact-history-message--inquiry .gb-contact-history-message-content > p { background: #edf8d9; }
.gb-contact-history-message-content > p[role="status"] { background: #fff5d6; color: #60420a; }
.gb-contact-history-empty { padding: 20px 16px; border: 1px solid var(--line); border-radius: 10px; background: #f7f9fb; text-align: center; }
.gb-contact-history-empty p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.gb-mypage-contact #contact-history .gb-mypage-pagination { margin-top: 16px; }
.gb-contact-complete-id { margin: 0; color: var(--navy); line-height: 1.5; }


/* ポイント通帳の絞り込みと履歴を、既存の会員カード・表に揃える。 */

.gb-point-card-heading {
	padding-bottom: 14px;
	margin-bottom: 20px;
	border-bottom: 1px solid var(--line);
}
.gb-point-ledger-heading { margin-bottom: 18px; }

.gb-point-setting-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: center;
}
.gb-point-setting {
	position: relative;
	display: flex;
	min-width: 0;
	min-height: 60px;
	align-items: center;
	gap: 18px;
	padding: 0 28px;
}
.gb-point-setting:first-child { padding-left: 0; }
.gb-point-setting:not(:last-child) { border-right: 1px solid var(--line); }
.gb-point-setting-summary {
	display: flex;
	width: 100%;
	min-width: 0;
	align-items: center;
	gap: 18px;
	cursor: pointer;
	list-style: none;
}
.gb-point-setting-summary::-webkit-details-marker { display: none; }
.gb-point-setting-copy { display: grid; min-width: 0; gap: 7px; }
.gb-point-setting-label { color: var(--muted); font-size: 14px; font-weight: 750; }
.gb-point-setting-value {
	display: flex;
	min-width: 0;
	align-items: center;
	gap: 12px;
	color: var(--navy);
	font-size: 16px;
	font-weight: 850;
	line-height: 1.35;
	white-space: nowrap;
}
.gb-point-setting-menu-holder[open] { z-index: 6; }
.gb-point-setting-menu {
	position: absolute;
	top: calc(100% + 8px);
	left: 16px;
	z-index: 7;
	display: grid;
	min-width: 190px;
	padding: 6px;
	border: 1px solid var(--line);
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 12px 28px rgba(6, 26, 56, .16);
}
.gb-point-setting-menu.gb-contact-form { padding: 16px; }
.gb-point-setting-menu a,
.gb-point-setting-menu button[type="submit"] {
	display: block;
	padding: 10px 12px;
	border-radius: 7px;
	color: var(--navy);
	font-size: 16px;
	font-weight: 750;
	text-decoration: none;
}
.gb-point-setting-menu button[type="submit"] {
	width: 100%;
	border: 0;
	background: transparent;
	font-family: inherit;
	line-height: inherit;
	text-align: left;
	cursor: pointer;
}
.gb-point-setting-menu button[type="submit"]:hover,
.gb-point-setting-menu button[type="submit"]:focus-visible,
.gb-point-setting-menu a:hover,
.gb-point-setting-menu a:focus-visible { background: var(--soft); }
.gb-point-setting-menu button[type="submit"][aria-current="page"],
.gb-point-setting-menu a[aria-current="page"] { background: #eef4f8; color: var(--navy); }
.gb-point-history .gb-point-filters {
	justify-content: flex-start;
	margin-top: 0;
	margin-bottom: 12px;
}
.gb-point-history .gb-point-filters .gb-button {
	min-height: 48px;
	border-color: #c4d9f0;
	color: #168bc4;
}
.gb-point-history .gb-point-filters .gb-button--primary,
.gb-point-history .gb-point-filters .gb-button[aria-current="page"] {
	border-color: var(--navy);
	background: var(--navy);
	color: #fff;
}
.gb-point-history .gb-point-filters .gb-button:hover { text-decoration: none; }
.gb-point-history .member-table-wrap { margin-bottom: 0; }
.gb-point-history .member-table { min-width: 760px; table-layout: fixed; }
.gb-point-history .member-table th:nth-child(1) { width: 20%; }
.gb-point-history .member-table th:nth-child(2),
.gb-point-history .member-table th:nth-child(3) { width: 24%; }
.gb-point-history .member-table th:nth-child(4) { width: 32%; }
.gb-point-history .member-table td[colspan] { padding: 0; }
.gb-point-history .member-table th {
	height: 54px;
	background: #eef5fb;
	color: #365572;
	font-size: 14px;
}
.gb-point-empty-state {
	display: flex;
	min-height: 108px;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
}
.gb-point-empty-state p { margin: 0; color: var(--navy); font-size: 15px; }
.gb-icon-file-text { --gb-icon: url("design/assets/lucide/file-text.svg"); }
@container (max-width: 760px) {
	.gb-point-setting-grid { grid-template-columns: 1fr; }
	.gb-point-setting,
	.gb-point-setting:first-child { padding: 12px 0; }
	.gb-point-setting:not(:last-child) { border-right: 0; border-bottom: 1px solid var(--line); }
	.gb-point-setting-menu { right: 0; left: 0; }
}
@media (max-width: 700px) {
	.gb-point-setting,
	.gb-point-setting-summary { gap: 14px; }
	.gb-point-history .gb-point-filters { gap: 8px; }
	.gb-point-history .gb-point-filters .gb-button { padding: 9px 12px; }
}

.gb-modal { display: none; }
.gb-modal.is-open { display: block; }
.gb-modal__overlay { position: fixed; inset: 0; z-index: 1000; overflow: auto; }
.gb-modal__container { position: absolute; border: 1px solid var(--line); border-radius: var(--rs); background: rgba(220,224,230,.72); box-shadow: var(--shadow); }
.gb-modal__container > .gb-kiyaku-close { position: absolute; top: 8px; right: 8px; z-index: 1; }
.gb-modal__content { position: absolute; left: 0; width: 100%; margin: 0; }
.gb-modal__content[hidden] { display: none; }
.gb-modal__content > .alert { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: max-content; max-width: calc(100% - 12px); padding: 8px; margin: 0; border: 0; background: rgba(48,52,58,.9); color: #fff; text-align: center; box-shadow: var(--shadow); overflow-wrap: anywhere; white-space: pre-line; }
.gb-modal__content > .alert.success { background: color-mix(in srgb, color-mix(in srgb, var(--lime) 65%, #253b12 35%) 90%, transparent); }
.gb-modal[aria-hidden="false"] > .gb-modal__overlay { animation: gb-modal-in 180ms ease-out both; }
.gb-modal[aria-hidden="true"] > .gb-modal__overlay { animation: gb-modal-out 180ms ease-in both; }
@keyframes gb-modal-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes gb-modal-out { from { opacity: 1; } to { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
	.gb-modal > .gb-modal__overlay { animation-duration: .01ms; }
}
.gb-passkey-modal .gb-kiyaku-dialog { width: min(600px, 100%); text-align: left; }
.gb-passkey-modal .gb-modal__footer .btn { flex: 1; min-width: 0; padding-inline: 12px; align-self: stretch; white-space: normal; }

/* Canvasの静的外観は共通CSS、描画寸法・表示状態はJSが管理する。 */
.gb-hero-portal { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; visibility: hidden; }

/* 選択状態は既存radioを正本とし、装飾の状態文字は読み上げから除外する。 */
.gb-choice-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.gb-choice-card { position: relative; display: grid; grid-template-rows: 42px auto 1fr auto; align-items: start; justify-items: start; gap: 12px; min-height: 226px; margin: 0; padding: 24px 18px 16px; border-radius: 12px; background: #eef1f5; color: #53657b; box-shadow: none; text-align: left; cursor: pointer; transition: background-color .16s,border-color .16s,box-shadow .16s,transform .16s; }
.gb-choice-card > strong { font-size: 18px; line-height: 1.35; overflow-wrap: anywhere; }
.gb-choice-card > p { margin: 0; font-size: 12px; line-height: 1.7; color: inherit; overflow-wrap: anywhere; }
.gb-choice-card > input[type="radio"] { appearance: none; position: absolute; top: 12px; right: 12px; width: 18px; height: 18px; min-height: 0; margin: 0; padding: 0; border: 1.5px solid #718299; border-radius: 50%; background: transparent; cursor: inherit; }
.gb-choice-card > input[type="radio"]:checked { border-color: var(--lime); background: var(--lime); }
.gb-choice-card > input[type="radio"]:checked::after { content: ""; display: block; width: 7px; height: 4px; margin: 4px 0 0 4px; border-left: 2px solid var(--navy); border-bottom: 2px solid var(--navy); transform: rotate(-45deg); }
.gb-choice-status { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; min-height: 27px; padding: 4px 14px; border-radius: 20px; background: #e0e5eb; color: #44556b; font-size: 12px; line-height: 1.5; font-weight: 700; overflow-wrap: anywhere; }
.gb-choice-status > span { display: none; }
.gb-choice-status > [data-choice-state="idle"] { display: inline; }
.gb-choice-card:has(input:checked) { background: var(--navy); border-color: var(--navy); color: white; box-shadow: 0 5px 14px rgba(6,26,56,.14); }
.gb-choice-card:has(input:checked) > strong { color: white; }
.gb-choice-card:has(input:checked) .gb-choice-status { background: var(--lime); color: var(--navy); }
.gb-choice-card:has(input:checked) [data-choice-state="idle"] { display: none; }
.gb-choice-card:has(input:checked) [data-choice-state="selected"] { display: inline; }
.gb-choice-card:focus-within { outline: 2px solid var(--navy); outline-offset: 4px; }
.gb-choice-card:has(input:disabled) { cursor: not-allowed; border-style: dashed; }
.gb-fieldset:has(> .gb-choice-grid) { min-width: 0; padding: 0; border: 0; }
.gb-fieldset:has(> .gb-choice-grid) > legend { padding: 0; margin-bottom: 6px; font-size: 20px; font-weight: 800; color: var(--navy); }
.gb-fieldset:has(> .gb-choice-grid) > .gb-help { margin: 0 0 20px; }
.gb-destinations-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; padding: 16px 20px; margin-bottom: 24px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft); }
.gb-destinations-summary > div { display: flex; align-items: center; gap: 12px; min-width: 0; }
.gb-destinations-summary p { margin: 0; color: var(--muted); font-size: 13px; overflow-wrap: anywhere; }
.gb-destinations-summary strong { color: var(--navy); font-size: 20px; font-weight: 800; }
.gb-destinations-detail { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.gb-destinations-summary > a { margin-left: auto; font-size: 13px; font-weight: 700; }
@media (hover: hover) and (pointer: fine) {
	.gb-choice-card:not(:has(input:checked)):not(:has(input:disabled)):hover { background: #f6fae9; border-color: var(--navy); color: var(--navy); box-shadow: 0 7px 16px rgba(6,26,56,.1); transform: translateY(-2px); }
	.gb-choice-card:not(:has(input:checked)):not(:has(input:disabled)):hover .gb-choice-status { background: #e8f1c8; color: var(--navy); }
	.gb-choice-card:not(:has(input:checked)):not(:has(input:disabled)):hover [data-choice-state="idle"] { display: none; }
	.gb-choice-card:not(:has(input:checked)):not(:has(input:disabled)):hover [data-choice-state="hover"] { display: inline; }
}
@container (max-width: 640px) {
	.gb-choice-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
	.gb-choice-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.gb-choice-card { padding: 24px 8px 14px; }
	.gb-choice-card > strong { font-size: 16px; }
	.gb-choice-status { padding-inline: 8px; }
	.gb-destinations-summary { padding: 14px; gap: 12px; }
	.gb-destinations-summary > a { flex-basis: 100%; margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.gb-choice-card { transition: none; }
	.gb-choice-card:not(:has(input:checked)):not(:has(input:disabled)):hover { transform: none; }
}
@media (forced-colors: active) {
	.gb-choice-card:has(input:checked) { border: 3px solid Highlight; }
	.gb-choice-card > input[type="radio"] { appearance: auto; }
	.gb-choice-card > input[type="radio"]:checked::after { content: none; }
}

/* メンテナンス・HTTPエラーで共用する独立画面。 */
html.gb-status-page { color-scheme: light; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.gb-status-page body { margin: 0; min-height: 100vh; display: grid; place-items: center; padding: 24px; color: #061a38; background: #eef3f7; font: inherit; line-height: normal; -webkit-font-smoothing: auto; }
.gb-status-page main { width: min(100%, 680px); }
.gb-status-page .card { overflow: hidden; padding: 0; border: 1px solid #d7e0e8; border-radius: 24px; background: #fff; box-shadow: 0 24px 70px rgba(6, 26, 56, .12); }
.gb-status-page .brand { padding: 24px 32px; color: #fff; background: #061a38; font-size: 1.35rem; font-weight: 800; letter-spacing: .08em; }
.gb-status-page .content { padding: clamp(32px, 7vw, 64px); }
.gb-status-page .status { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 24px; color: inherit; font-size: 1rem; font-weight: 700; }
.gb-status-page .status::before { width: 12px; height: 12px; border-radius: 50%; background: #b7e52b; box-shadow: 0 0 0 6px rgba(183, 229, 43, .22); content: ""; }
.gb-status-page h1 { margin: 0; font-size: clamp(2rem, 6vw, 3.3rem); line-height: 1.12; letter-spacing: -.03em; text-wrap: balance; }
.gb-status-page .description { margin: 24px 0 0; color: #35465d; font-size: 1.08rem; line-height: 1.8; }
.gb-status-page .schedule { margin: 32px 0 0; padding: 18px 20px; border-left: 5px solid #b7e52b; border-radius: 8px; background: #f4f8e9; color: inherit; font-size: 1rem; font-weight: 750; }
@media (max-width: 520px) {
	.gb-status-page body { padding: 14px; }
	.gb-status-page .brand { padding: 20px 24px; }
	.gb-status-page .card { border-radius: 18px; }
}
@media (prefers-reduced-motion: reduce) {
	.gb-status-page, .gb-status-page *, .gb-status-page *::before, .gb-status-page *::after { scroll-behavior: auto !important; transition: none !important; }
}
