/* Approved site layout refinements. Loaded after base and page-specific styles. */
:root[data-theme="light"]{--bg:#f2f5f8;--surface:#fff;--card:#fff;--line:#d3dee8;--txt:#182b3c;--sub:#4d6173;--muted:#52697c;--shadow:0 4px 16px #20364d0a;--shadow-soft:0 3px 12px #20364d08}
body{font-family:"Noto Sans JP","Hiragino Sans",Meiryo,sans-serif!important;background:var(--bg)!important}
body :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #357cdf!important;outline-offset:3px!important}
body :is(.card,.page-hero,.quick-link,.machine-list>li>a,.target-section){box-shadow:0 3px 14px #10283e0a!important}
body :is(h1,h2,h3){letter-spacing:.01em}
body :is(.page-hero,.card,.section){scroll-margin-top:20px}
body :is(.top-nav,.header-actions) a{min-height:44px;display:inline-flex;align-items:center}
body.account-page :is(.benefit,.trial,.notice){background:var(--card);color:var(--txt)}
body.account-page .trial.active{background:var(--go-bg,#eaf8f0);border-color:var(--go,#26734b)}
body.account-page .trial.expired{background:var(--warn-bg,#fff5dd);border-color:var(--warn,#996400)}
body.account-page .benefit{background:var(--info-bg);border-color:var(--info)}
body.account-page .benefit-label{color:var(--info)}
body.account-page .email-preference button{background:var(--surface);color:var(--txt);min-height:44px;border-color:var(--info)}
body.account-page .card p,body.account-page .trial span{font-size:14px}
body.account-page .logout{color:var(--sub);min-height:44px}
.design-shortcuts{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}
.design-shortcuts a{display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px 18px;border-radius:10px;background:#1769c2;color:white;font-size:16px;font-weight:800;text-decoration:none}
.design-shortcuts a+ a{background:var(--card);color:var(--txt);border:1px solid var(--line)}
.design-disclosure{border:1px solid var(--line);border-radius:12px;background:var(--card);margin:18px 0;padding:0 18px}
.design-disclosure>summary{cursor:pointer;padding:16px 0;font-size:16px;font-weight:700;min-height:48px}
.design-disclosure>section{padding:10px 0;box-shadow:none!important;border:0!important;margin:0!important}
body.home-page .home-discovery{grid-template-columns:1.25fr 1fr;align-items:stretch}
body.home-page .featured-list{grid-template-columns:1fr;gap:0}
body.home-page .featured-machine{grid-template-columns:minmax(0,1fr) auto;padding:12px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
body.home-page .featured-machine strong{font-size:16px;line-height:1.6}
body.home-page .featured-machine small{font-size:13px;line-height:1.6}
body.home-page .featured-list .upcoming-machine{min-height:0;padding:12px 0}
body.home-page .conversion-zone{grid-template-columns:1fr;gap:0;border:1px solid #c9a35a;border-radius:16px;overflow:hidden;background:var(--card)}
body.home-page .trial-copy{padding:22px 28px;min-height:0;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none}
body.home-page .join-panel{border:0;border-radius:0;padding:24px 28px;box-shadow:none;display:grid;grid-template-columns:1fr 1fr;gap:8px 28px;align-items:center}
body.home-page .limited-price{grid-column:1;grid-row:1 / span 5;margin:0}
body.home-page .join-label{justify-self:center}
body.home-page .join-panel>:not(.limited-price){grid-column:2}
body.home-page .join-price,body.home-page .join-panel>p{margin:0}
body.home-page .hero-actions{grid-template-columns:1.2fr 1fr 1fr}
body.home-page .member-preview{grid-template-columns:minmax(0,1.1fr) minmax(0,1.3fr);gap:28px;align-items:center}
body.home-page .preview-title{font-size:22px;font-weight:750;line-height:1.65;letter-spacing:0;margin:8px 0 12px}
body.home-page .preview-title span{display:inline-block;white-space:nowrap}
body.home-page .preview-lead{font-size:15px;line-height:1.9;margin:0;max-width:36em}
body.home-page .member-access-banner{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);align-items:center;gap:24px;padding:26px 28px;margin:0 0 20px;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:0 3px 14px #10283e0a}
body.home-page .member-access-copy h2{margin:0 0 8px;font-size:22px;line-height:1.5;color:var(--txt);text-wrap:balance}
body.home-page .member-access-copy p{margin:0;font-size:15px;line-height:1.8;color:var(--sub)}
body.home-page .member-access-actions{display:flex;flex-direction:column;gap:6px;text-align:center}
body.home-page .member-access-primary{display:flex;justify-content:center;align-items:center;min-height:52px;padding:12px 20px;border-radius:10px;background:#1769c2;color:#fff;text-decoration:none;font-size:17px;font-weight:700}
body.home-page .member-access-primary:hover{background:#12579f}
body.home-page .member-access-secondary{display:flex;justify-content:center;align-items:center;min-height:44px;font-size:14px;color:var(--sub);text-underline-offset:3px}
body.home-page .quick-link.primary{background:#1769c2;color:white;border-color:#1769c2}
body.home-page .quick-link.primary :is(small,strong),body.home-page .quick-link.primary::after{color:white}
body.public-list-page .page-hero{padding:24px 28px}
body.public-list-page .machine-list{gap:12px}
body.public-list-page .machine-list>li>a{border-radius:10px;border-top:1px solid var(--line);padding:17px 18px}
body.public-list-page .machine-list strong{font-size:17px;line-height:1.6}
body.public-list-page .machine-list small{font-size:13px;line-height:1.5}
body.public-list-page #all-machines-title{padding:18px 0 12px;border-bottom:2px solid #1769c2}
body.public-list-page .design-disclosure .machine-list{margin-top:0}
body.public-machine-page .page-hero{padding:24px 28px}
body.public-machine-page .page-jump-nav{margin:16px 0}
body.public-machine-page .search-answer{padding:22px 26px}
body.public-machine-page .search-answer-note{font-size:14px;line-height:1.7}
body.public-machine-page .summary-grid small{font-size:14px}
body.member-machine-page .section-kicker{color:var(--sub);font-size:14px}
body.member-machine-page .basic-spec-item dt{font-size:13px}
body.member-machine-page .page-jump-list a{font-size:14px}
body.member-list-page :is(.pill,.tag){font-size:13px}
body.register-page .card{align-items:start;border:0;background:transparent;box-shadow:none!important;overflow:visible;gap:20px}
body.register-page .register-header{display:flex;gap:12px;align-items:center;padding:10px 0!important;background:transparent;box-shadow:none}
body.register-page .register-header>a:first-child{margin-right:auto}
body.register-page .register-header .theme-toggle{position:static!important;flex-shrink:0}
body.register-page .register-header .logo{width:210px;max-width:42vw}
body.register-page .header-login{white-space:nowrap;min-height:44px;display:flex;align-items:center}
body.register-page .hero{border-radius:16px;align-self:start;overflow:hidden;padding:32px 28px}
body.register-page .hero::after{display:none}
body.register-page .content{border:1px solid var(--line);border-radius:16px;background:var(--card);padding:28px}
body.register-page .offer-summary{padding:18px;border-left-width:3px}
body.register-page .hero h1{font-size:30px;line-height:1.55}
body.register-page .lead{font-size:15px;line-height:1.7;white-space:normal}
body.register-page .preview-note{color:#cbd8e7;font-size:15px;line-height:1.8}
body.register-page .preview-meta span{font-size:15px;white-space:normal}
body.register-page .register-support{grid-column:1 / -1;display:grid;grid-template-columns:1.2fr 1fr;gap:24px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px 28px}
body.register-page .register-support .payment-methods{margin:0;padding:18px}
body.register-page .register-support .register-flow{margin:0;border:0;padding:18px 0}
body.register-page .register-support .actions{grid-column:1 / -1;margin:0}
body.register-page .payment-notes{font-size:15px;line-height:1.8}
body.register-page .register-flow li{font-size:15px}
@media(max-width:760px){
 body.home-page .member-preview{grid-template-columns:1fr;gap:20px}
 body.home-page .preview-title{font-size:20px;line-height:1.6}
 body.home-page .member-access-banner{grid-template-columns:1fr;gap:18px;padding:22px 20px}
 body.home-page .member-access-copy h2{font-size:20px}
 body:is(.public-list-page,.public-machine-page) .header-row{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;justify-content:space-between;align-items:center;gap:8px;padding-top:10px;padding-bottom:10px}
 body:is(.public-list-page,.public-machine-page) .header-row .logo{width:130px!important;max-width:130px!important;height:auto}
 body:is(.public-list-page,.public-machine-page) .top-nav{gap:5px;flex-wrap:nowrap;width:auto!important;flex:0 0 auto!important}
 body:is(.public-list-page,.public-machine-page) .top-nav a{font-size:12px!important;padding:0 8px!important;white-space:nowrap}
 body:is(.public-list-page,.public-machine-page) .top-nav .theme-toggle{width:44px;min-width:44px;height:44px}
 body.home-page .home-discovery,body.home-page .join-panel{grid-template-columns:1fr}
 body.home-page .limited-price{grid-column:auto;grid-row:auto;margin-bottom:8px}
 body.home-page .join-panel>:not(.limited-price){grid-column:auto}
 body.home-page .hero-actions{grid-template-columns:1fr 1fr}
 body.home-page .hero-actions .primary{grid-column:1 / -1}
 body.home-page .trial-copy,body.home-page .join-panel{padding:20px}
 body.public-list-page .page-hero,body.public-machine-page .page-hero{padding:20px}
 body.public-list-page .machine-list>li>a{padding:14px 16px}
 body.public-list-page .machine-list strong{font-size:16px}
 body.public-machine-page .search-answer{padding:18px}
 body.register-page .card{gap:16px}
 body.register-page .content{padding:20px 18px;width:100%;order:1}
 body.register-page .hero{padding:26px 22px;width:100%;order:2}
 body.register-page .register-support{display:block;padding:20px 18px;width:100%;order:3}
 body.register-page .register-support .register-flow{margin-top:18px}
 body.register-page .register-support .actions{margin-top:16px}
 body.register-page .hero h1{font-size:26px}
 body.register-page .price-progress{grid-template-columns:minmax(0,.65fr) 12px minmax(0,1.35fr);gap:5px;padding:0;margin:18px 0}
 body.register-page .price-step{padding:12px 8px}
 body.register-page .price-step.future strong{font-size:16px;white-space:nowrap}
}
