/* ============================================================
 * site-premium.css - LPの視覚言語を既存ページへ安全に共有するoverride
 * body.site-premium の内側だけに作用する。ページ固有のgridと機能は保持する。
 * ============================================================ */

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}

body.site-premium{
  --brass:#C08A3E;
  --lp-canvas:#0A0A0B;
  --lp-canvas-2:#0E0E10;
  --lp-surface:#141416;
  --lp-paper:#F5F5F2;
  --lp-body:#C9C9C4;
  --lp-mute:#8A8A85;
  --lp-hair:#26262A;
  --lp-hair-2:#34343A;

  --canvas-night:var(--lp-canvas);
  --canvas-night-soft:var(--lp-canvas-2);
  --on-primary:var(--lp-paper);
  --on-primary-mute:var(--lp-body);
  --hairline:var(--lp-hair);
  --hairline-light:var(--lp-hair-2);
  --surface-1:rgba(255,255,255,.03);
  --surface-2:rgba(255,255,255,.055);
  --edge-light:transparent;
  --surface-border:var(--lp-hair);
  --surface-shadow:none;
  --glass-bg:rgba(10,10,11,.88);
  --glass-border:var(--lp-hair);
  --input-fill:var(--lp-canvas-2);
  --focus-ring:rgba(192,138,62,.2);
  --btn-fill:transparent;
  --btn-border:var(--lp-hair-2);
  --r-xs:2px;
  --r-sm:2px;
  --r-md:2px;
  --r-lg:2px;
  --r-pill:2px;
  --wrap:1180px;
  --ease-out:cubic-bezier(.23,1,.32,1);
  --font-display:"Arial Narrow","Helvetica Neue Condensed","Roboto Condensed",Arial,sans-serif;
  --font-body:Arial,Verdana,sans-serif;
  --font-heading:"Arial Narrow","Helvetica Neue Condensed","Roboto Condensed",Arial,
    "Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif;

  margin:0;
  background:var(--lp-canvas);
  color:var(--lp-paper);
  font-family:var(--font-jp);
  line-height:1.75;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

body.site-premium ::selection{background:var(--brass);color:var(--lp-canvas)}
body.site-premium .wrap{max-width:var(--wrap);padding-left:32px;padding-right:32px}

/* buttons */
body.site-premium .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:12px 22px;
  border:1px solid var(--lp-paper);
  border-radius:2px;
  background:var(--lp-paper);
  background-image:none;
  box-shadow:none;
  color:var(--lp-canvas);
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  line-height:1.2;
  letter-spacing:.16em;
  text-align:center;
  text-transform:uppercase;
  text-decoration:none;
  white-space:nowrap;
  transition:transform .2s var(--ease-out),background .2s ease,color .2s ease,border-color .2s ease;
}
body.site-premium .btn:hover{transform:translateY(-1px);background:var(--lp-paper);color:var(--lp-canvas);box-shadow:none;text-decoration:none}
body.site-premium .btn:active{transform:none;background:#E2E2DE;color:var(--lp-canvas)}
body.site-premium .btn.ghost,
body.site-premium .btn.teal{background:transparent;background-image:none;color:var(--lp-paper);border-color:var(--lp-hair-2);box-shadow:none}
body.site-premium .btn.ghost:hover,
body.site-premium .btn.teal:hover{background:transparent;color:var(--lp-paper);border-color:var(--lp-paper)}
body.site-premium .btn.solid{background:var(--lp-paper);background-image:none;color:var(--lp-canvas);border-color:var(--lp-paper);box-shadow:none}
body.site-premium .btn.solid:hover{background:#E6E6E1;color:var(--lp-canvas);border-color:#E6E6E1}
body.site-premium .btn.sm{min-height:40px;padding:10px 16px;font-size:11px;letter-spacing:.12em}
body.site-premium .btn.block{display:flex;width:100%}
body.site-premium .btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
body.site-premium button,
body.site-premium :is(input[type="button"],input[type="submit"],input[type="reset"]){border-radius:2px;box-shadow:none;background-image:none}

/* headings and rhythm */
body.site-premium :is(.display-xxl,.display-xl,.display-lg){font-family:var(--font-heading);color:var(--lp-paper);letter-spacing:-.01em}
body.site-premium .display-lg{font-size:clamp(1.8rem,4.6vw,3.25rem);line-height:1.16}
body.site-premium :is(.jp-head,.page-head h1,.legal h1,.legal h2){font-family:var(--font-jp)}
body.site-premium .section{padding:88px 0;border-bottom:1px solid var(--lp-hair);background:var(--lp-canvas)}
body.site-premium .section.soft{background:var(--lp-canvas-2)!important}
body.site-premium .band{padding:72px 0;background:var(--lp-canvas);border-bottom:1px solid var(--lp-hair)}
body.site-premium .band.soft{background:var(--lp-canvas-2)}
body.site-premium .band-head{margin-bottom:44px}
body.site-premium .section .sub{color:var(--lp-mute);opacity:1;line-height:1.95}
body.site-premium :is(.free-head,.gift-head,.ph-head,.sd-head,.mentor-hero,.tk-hero){padding:72px 0 28px}

/* shared navigation */
body.site-premium .lp-nav{
  position:sticky;
  top:0;
  left:auto;
  right:auto;
  z-index:30;
  padding:0;
  border-bottom:1px solid var(--lp-hair);
  background:rgba(10,10,11,.88);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  backdrop-filter:blur(18px) saturate(160%);
}
body.site-premium .lp-nav .wrap{height:68px;display:flex;align-items:center;justify-content:space-between;gap:18px}
body.site-premium .brandmark{
  display:inline-flex;
  align-items:center;
  gap:2px;
  flex:0 0 auto;
  color:var(--lp-paper);
  font-family:var(--font-jp);
  font-size:17px;
  font-weight:700;
  letter-spacing:.02em;
  text-transform:none;
  text-decoration:none;
  white-space:nowrap;
}
body.site-premium .brandmark:hover{text-decoration:none}
body.site-premium .brandmark .brand-icon{width:22px;height:22px;flex-basis:22px;margin-right:7px;border-radius:5px}
body.site-premium .brandmark .dot{color:var(--brass)}
body.site-premium .lp-nav .links{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:nowrap}

/* flat cards and list rows */
body.site-premium :is(.free-card,.cat-card,.cert,.sd-card,.card,.faq details){border:1px solid var(--lp-hair);border-radius:2px;background:var(--lp-surface);box-shadow:none}
body.site-premium :is(.ph-item,.item){margin:0;border:0;border-top:1px solid var(--lp-hair);border-radius:0;background:transparent;box-shadow:none}
body.site-premium :is(.free-more,.gift-cta,.ph-cta,.lock-callout,.sd-line,.sd-why){border-radius:0;background:var(--lp-canvas-2);box-shadow:none}
body.site-premium :is(.tag,.item .cat,.ph-links a,.free-links a){border-radius:2px;box-shadow:none}
body.site-premium :is(.cred,.mini,.stat){box-shadow:none}
body.site-premium :is(.feat,.step,.plan,.row,.drill-stage,.flash,.q-opt,.auth-card,#pwaHint){box-shadow:none}

/* FAQ */
body.site-premium .faq{gap:0;border-top:1px solid var(--lp-hair)}
body.site-premium .faq details{border-width:0 0 1px;border-color:var(--lp-hair);background:transparent}
body.site-premium .faq summary{padding:20px 44px 20px 0;color:var(--lp-paper)}
body.site-premium .faq summary:after{right:2px;color:var(--brass)}
body.site-premium .faq details[open] summary{border-bottom:0}
body.site-premium .faq .faq-body{padding:0 0 22px;color:var(--lp-body);opacity:1}

/* tables */
body.site-premium :is(.tk-table-wrap,.cmp-wrap){border:1px solid var(--lp-hair);border-radius:2px;background:transparent;box-shadow:none;overflow-x:auto;-webkit-overflow-scrolling:touch}
body.site-premium :is(.tk-table,.cmp-table){color:var(--lp-paper)}
body.site-premium :is(.tk-table,.cmp-table) :is(th,td){border-color:var(--lp-hair)}
body.site-premium :is(.tk-table,.cmp-table) thead th{background:var(--lp-canvas-2);color:var(--lp-mute)}
body.site-premium :is(.tk-table,.cmp-table) td{color:var(--lp-body)}

/* forms: range/checkbox/radio are functional controls and keep their own styling */
body.site-premium :is(input:not([type="range"]):not([type="checkbox"]):not([type="radio"]),select,textarea){
  border:1px solid var(--lp-hair);
  border-radius:2px;
  background:var(--lp-canvas-2);
  box-shadow:none;
  color:var(--lp-paper);
}
body.site-premium :is(input:not([type="range"]):not([type="checkbox"]):not([type="radio"]),select,textarea)::placeholder{color:var(--lp-mute);opacity:1}
body.site-premium :is(input:not([type="range"]):not([type="checkbox"]):not([type="radio"]),select,textarea):focus{outline:none;border-color:var(--lp-paper);box-shadow:0 0 0 3px var(--focus-ring)}

/* footer */
body.site-premium .lp-foot{padding:64px 0 48px;border-top:1px solid var(--lp-hair);background:var(--lp-canvas);color:var(--lp-mute);font-family:var(--font-jp);box-shadow:none}
body.site-premium .foot-grid{gap:40px;padding-bottom:44px}
body.site-premium .foot-brand .foot-mark{font-family:var(--font-jp);text-transform:none;color:var(--lp-paper)}
body.site-premium .foot-col h4{font-family:var(--font-display);color:var(--lp-mute);opacity:1;letter-spacing:.14em}
body.site-premium .foot-col :is(a,span){color:var(--lp-mute);opacity:1}
body.site-premium .foot-col a:hover{color:var(--lp-paper);text-decoration:none}
body.site-premium .foot-social .foot-ico{border-color:var(--lp-hair-2);border-radius:2px;color:var(--lp-mute);box-shadow:none}
body.site-premium .foot-social .foot-ico:hover{border-color:var(--lp-paper);color:var(--lp-paper)}
body.site-premium .foot-legal{border-color:var(--lp-hair);color:var(--lp-mute)}
body.site-premium .foot-legal a{color:var(--lp-mute);opacity:1}
body.site-premium .foot-legal a:hover{color:var(--lp-paper);text-decoration:none}
body.site-premium .site-foot{padding:28px 0;border-top:1px solid var(--lp-hair);background:var(--lp-canvas);color:var(--lp-mute);font-family:var(--font-jp)}
body.site-premium .site-foot .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px}
body.site-premium .site-foot p{margin:0;font-size:.78rem}
body.site-premium .site-foot nav{display:flex;flex-wrap:wrap;gap:12px 18px}
body.site-premium .site-foot a{color:var(--lp-mute);font-size:.78rem;text-decoration:none}
body.site-premium .site-foot a:hover{color:var(--lp-paper)}

/* keyboard focus */
body.site-premium :is(a,button,summary,input,select,textarea):focus-visible{
  outline:2px solid var(--brass);
  outline-offset:3px;
}

/* Progressive mobile navigation. Without JS, links remain horizontally reachable. */
body.site-premium .nav-mobile-primary,
body.site-premium .nav-toggle,
body.site-premium .nav-mobile-only{display:none}

@media(max-width:720px){
  body.site-premium .wrap{padding-left:20px;padding-right:20px}
  body.site-premium .section{padding:64px 0}
  body.site-premium .band{padding:60px 0}
  body.site-premium .band-head{margin-bottom:34px}
  body.site-premium :is(.free-head,.gift-head,.ph-head,.sd-head,.mentor-hero,.tk-hero){padding:56px 0 24px}
  body.site-premium .lp-foot{padding:52px 0 40px}
  body.site-premium .site-foot .wrap{align-items:flex-start;flex-direction:column}

  html:not(.site-nav-ready) body.site-premium .lp-nav .wrap{gap:12px}
  html:not(.site-nav-ready) body.site-premium .lp-nav .links{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  html:not(.site-nav-ready) body.site-premium .lp-nav .links::-webkit-scrollbar{display:none}

  html.site-nav-ready body.site-premium .lp-nav .wrap{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    gap:8px;
    height:68px;
  }
  html.site-nav-ready body.site-premium .brandmark{min-width:0;font-size:15px;overflow:hidden}
  html.site-nav-ready body.site-premium .brandmark .brand-icon{width:20px;height:20px;flex-basis:20px;margin-right:5px}
  html.site-nav-ready body.site-premium .nav-mobile-primary,
  html.site-nav-ready body.site-premium .nav-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:2px;font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
  html.site-nav-ready body.site-premium .nav-mobile-primary{padding:9px 11px;border:1px solid var(--lp-paper);background:var(--lp-paper);color:var(--lp-canvas)}
  html.site-nav-ready body.site-premium .nav-toggle{padding:9px 11px;border:1px solid var(--lp-hair-2);background:transparent;color:var(--lp-paper);cursor:pointer}
  html.site-nav-ready body.site-premium .lp-nav .links{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    z-index:40;
    display:none;
    max-height:calc(100dvh - 68px);
    overflow-y:auto;
    padding:14px 20px 20px;
    border-bottom:1px solid var(--lp-hair);
    background:rgba(10,10,11,.98);
    -webkit-backdrop-filter:blur(18px) saturate(160%);
    backdrop-filter:blur(18px) saturate(160%);
  }
  html.site-nav-ready body.site-premium .lp-nav.nav-open .links{display:flex;flex-direction:column;align-items:stretch;gap:8px}
  html.site-nav-ready body.site-premium .lp-nav .links > a{display:flex;width:100%;min-height:44px;align-items:center;justify-content:flex-start;padding:10px 12px;border:0;border-bottom:1px solid var(--lp-hair);border-radius:0;background:transparent;color:var(--lp-paper);font-family:var(--font-jp);font-size:14px;letter-spacing:.01em;text-transform:none;box-shadow:none}
  html.site-nav-ready body.site-premium .lp-nav .links > a:hover{transform:none;border-color:var(--lp-hair-2);background:var(--lp-canvas-2);color:var(--lp-paper)}
  html.site-nav-ready body.site-premium .lp-nav .links > a.nav-mobile-diagnosis-source{display:none}
  html.site-nav-ready body.site-premium .lp-nav .links > a.nav-mobile-only{display:flex}
}

@media(max-width:374px){
  body.site-premium .wrap{padding-left:14px;padding-right:14px}
  html.site-nav-ready body.site-premium .lp-nav .wrap{gap:6px}
  html.site-nav-ready body.site-premium .brandmark{font-size:14px}
  html.site-nav-ready body.site-premium .nav-mobile-primary,
  html.site-nav-ready body.site-premium .nav-toggle{padding-left:8px;padding-right:8px;font-size:9px;letter-spacing:.07em}
}

@media(prefers-reduced-transparency:reduce){
  body.site-premium .lp-nav,
  html.site-nav-ready body.site-premium .lp-nav .links{background:var(--lp-canvas);-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* gift.html print view must stay paper-white despite the stronger site scope. */
@media print{
  body.site-premium{background:#fff;color:#000}
  body.site-premium :is(.lp-nav,.gift-cta,.lp-foot){display:none}
  body.site-premium .item{border:1px solid #ccc;border-radius:0;background:#fff;box-shadow:none;margin:0 0 10px}
  body.site-premium .item :is(.en,.jp.q),
  body.site-premium .gift-sec h2{color:#000}
  body.site-premium .item :is(.jp,.note),
  body.site-premium :is(.gift-lead,.gift-sec .how){color:#333}
}
