/*
Theme Name: japanese-slot-guide-child
Theme URI: https://japanese-slot-guide.com/
Description: Child theme for Japanese Slot Guide. Keeps Astra update-safe while providing the site's shared responsive UI and footer styling.
Author: Japanese Slot Guide
Template: astra
Version: 1.0.1
Text Domain: japanese-slot-guide-child
License: GPL-2.0-or-later
*/

:root{
  --jsg-bg:#f6f8fb;
  --jsg-surface:#fff;
  --jsg-surface-soft:#f1f5f9;
  --jsg-text:#172033;
  --jsg-muted:#5d687a;
  --jsg-border:#d9e1ec;
  --jsg-accent:#0b63b6;
  --jsg-accent-strong:#084d8e;
  --jsg-accent-soft:#eaf3fb;
  --jsg-radius:14px;
  --jsg-shadow:0 8px 24px rgba(23,32,51,.07);
  --jsg-content:72rem;
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--jsg-bg);color:var(--jsg-text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;text-rendering:optimizeLegibility}
body :where(button,input,select,textarea){font:inherit;font-size:16px}
body :where(a){color:var(--jsg-accent);text-underline-offset:.18em;text-decoration-thickness:.08em}
body :where(a:hover){color:var(--jsg-accent-strong)}
body :where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid rgba(11,99,182,.35);outline-offset:3px;border-radius:6px}
body :where(h1,h2,h3){color:var(--jsg-text);line-height:1.18;letter-spacing:-.018em;text-wrap:balance}
body h1{font-size:clamp(1.9rem,7vw,3rem);margin-block:.35em .55em}
body h2{font-size:clamp(1.35rem,4.8vw,2rem);margin-block:1.6em .65em}
body h3{font-size:clamp(1.12rem,4vw,1.4rem);margin-block:1.35em .5em}
body :where(p,li,dd){line-height:1.68}
body :where(.entry-content,.wp-block-post-content){font-size:1rem}
body :where(.entry-content,.wp-block-post-content) p{max-width:76ch}

/* Astra shell */
.site-header,.ast-primary-header-bar,.ast-above-header-bar,.ast-below-header-bar{background:#fff;color:var(--jsg-text)}
.site-header{border-bottom:1px solid var(--jsg-border);box-shadow:0 1px 2px rgba(23,32,51,.035)}
.site-header .ast-container,.site-content .ast-container,.site-footer .ast-builder-grid-row-container-inner,.jsg-footer-nav .ast-container{max-width:var(--jsg-content);margin-inline:auto}
.site-header .ast-container,.site-content .ast-container,.jsg-footer-nav .ast-container{padding-inline:clamp(1rem,3vw,1.5rem)}
.ast-site-identity{padding-block:.55rem}
.site-title,.site-title a{color:var(--jsg-text)!important;font-weight:800;letter-spacing:-.02em;text-decoration:none}
.site-title a{font-size:clamp(1rem,2.2vw,1.16rem)}
.main-header-menu>.menu-item>.menu-link,.ast-builder-menu-1 .menu-item>.menu-link{min-height:48px;padding-inline:.78rem;color:#344055;font-size:.93rem;font-weight:700;text-decoration:none}
.main-header-menu>.menu-item>.menu-link:hover,.ast-builder-menu-1 .menu-item>.menu-link:hover{color:var(--jsg-accent)}
.main-header-menu>.current-menu-item>.menu-link,.main-header-menu>.current-menu-ancestor>.menu-link,.ast-builder-menu-1 .current-menu-item>.menu-link{color:var(--jsg-accent);background:var(--jsg-accent-soft);border-radius:9px}
.site-content{padding-block:clamp(1rem,3vw,2rem) 2.5rem}
body.home .entry-header{display:none}
.entry-title{color:var(--jsg-text);letter-spacing:-.02em}
.ast-separate-container .ast-article-single,.ast-separate-container .ast-article-post{border-radius:var(--jsg-radius);box-shadow:none}

/* Shared controls/cards */
.jsg-button,.jsg-button:visited{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.72rem 1rem;border:1px solid var(--jsg-accent);border-radius:10px;background:var(--jsg-accent);color:#fff!important;text-decoration:none;font-weight:700;line-height:1.2;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}
.jsg-button:hover{background:var(--jsg-accent-strong);border-color:var(--jsg-accent-strong);transform:translateY(-1px)}
.jsg-button--secondary,.jsg-button--secondary:visited{background:var(--jsg-surface);color:var(--jsg-accent)!important}
.jsg-eyebrow{margin:0 0 .5rem!important;color:var(--jsg-accent);font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.jsg-section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:.9rem}
.jsg-section-heading h2{margin:0}.jsg-section-heading>a{font-weight:700;white-space:nowrap}

/* Home */
.jsg-home{max-width:var(--jsg-content);margin-inline:auto;padding:clamp(.25rem,2vw,1rem) 0 2rem}
.jsg-home .jsg-hero{padding:clamp(1.3rem,5vw,3rem);border:1px solid #d5e4f3;border-radius:20px;background:linear-gradient(145deg,#edf5fd 0%,#fff 68%);box-shadow:var(--jsg-shadow)}
.jsg-home .jsg-hero h1{max-width:18ch;margin-top:.15em}
.jsg-home .jsg-hero-lead{max-width:62ch;color:var(--jsg-muted);font-size:clamp(1rem,3vw,1.16rem);margin-bottom:1.2rem}
.jsg-home .jsg-hero-actions{display:flex;flex-wrap:wrap;gap:.65rem}
.jsg-home .jsg-hero-points{display:flex;flex-wrap:wrap;gap:.45rem 1.1rem;padding:0;margin:1.25rem 0 0;list-style:none;color:var(--jsg-muted);font-size:.9rem}
.jsg-home .jsg-hero-points li::before{content:"✓";margin-right:.38rem;color:var(--jsg-accent);font-weight:800}
.jsg-home .jsg-home-section{padding:clamp(1.4rem,4vw,2.5rem) 0 .3rem}
.jsg-home .jsg-home-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}
.jsg-home .jsg-home-card{display:block;min-height:100%;color:inherit!important;text-decoration:none;padding:1.05rem;background:var(--jsg-surface);border:1px solid var(--jsg-border);border-radius:var(--jsg-radius);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.jsg-home .jsg-home-card:hover{border-color:#a9c9e7;box-shadow:var(--jsg-shadow);transform:translateY(-2px)}
.jsg-home .jsg-home-card strong{display:block;color:var(--jsg-text);font-size:1.04rem;margin-bottom:.35rem}
.jsg-home .jsg-home-card span{display:block;color:var(--jsg-muted);font-size:.9rem;line-height:1.5}
.jsg-home .jsg-learning-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

/* Index pages */
.machine-index,.guide-index{max-width:var(--jsg-content);margin-inline:auto}
.machine-index .machine-index-tools,.guide-index .guide-index-tools,.glossary-tools{margin:1rem 0 1.2rem!important;padding:1rem!important;background:var(--jsg-surface)!important;border:1px solid var(--jsg-border)!important;border-radius:var(--jsg-radius)!important;box-shadow:0 1px 2px rgba(23,32,51,.03)}
.machine-index .machine-index-controls,.guide-index .guide-index-controls{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(150px,1fr));gap:.75rem!important;align-items:end}
.machine-index .machine-index-controls label,.guide-index .guide-index-controls label{display:grid;gap:.38rem!important;color:var(--jsg-text);font-size:.86rem;font-weight:700!important}
.machine-index input,.machine-index select,.guide-index input,.guide-index select,#glossary-search{width:100%;box-sizing:border-box;min-height:48px!important;padding:.68rem .78rem!important;border:1px solid #bec9d7!important;border-radius:10px!important;background:#fff!important;color:var(--jsg-text)!important}
.machine-index .machine-index-count,.guide-index .guide-index-count,.glossary-result-count{margin:.75rem 0 0;color:var(--jsg-muted);font-size:.88rem!important}
.machine-index .machine-index-grid,.guide-index .guide-index-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.9rem!important;margin:1rem 0}
.machine-index .machine-index-card,.guide-index .guide-index-card{position:relative;padding:1rem!important;background:var(--jsg-surface)!important;border:1px solid var(--jsg-border)!important;border-radius:var(--jsg-radius)!important;box-shadow:0 1px 2px rgba(23,32,51,.03)}
.machine-index .machine-index-card h2,.guide-index .guide-index-card h2{font-size:1.08rem!important;margin:0 0 .4rem!important;line-height:1.35}
.machine-index .machine-index-card h2 a,.guide-index .guide-index-card h2 a{display:inline-flex;align-items:center;min-height:44px;color:var(--jsg-accent)!important;text-decoration:none}
.machine-index .machine-index-japanese-name,.guide-index .guide-index-meta{color:var(--jsg-muted)!important}
.machine-index .machine-index-card dl{margin:0;display:grid;gap:.35rem;font-size:.9rem;color:var(--jsg-muted)}
.machine-index .machine-index-card dl div{display:grid;grid-template-columns:7.5rem 1fr;gap:.5rem}
.machine-index .machine-index-card dt{font-weight:700;color:var(--jsg-text)}
.machine-index .machine-index-card dd{margin:0}
.machine-index .machine-index-empty,.guide-index .guide-index-empty{padding:1rem!important;border:1px dashed var(--jsg-border)!important;border-radius:var(--jsg-radius)!important;background:var(--jsg-surface-soft)!important;color:var(--jsg-muted)}
.glossary-search-row{display:grid!important;grid-template-columns:minmax(7rem,auto) 1fr;gap:.55rem .75rem!important;align-items:center!important}
.glossary-filters{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;gap:.45rem!important;margin-top:.8rem!important;padding-bottom:.25rem;-webkit-overflow-scrolling:touch}
.glossary-filter{flex:0 0 auto;min-height:42px;padding:.55rem .78rem!important;border:1px solid #b9c9da!important;border-radius:999px!important;background:#fff!important;color:var(--jsg-accent)!important;font-size:.9rem!important;font-weight:700;white-space:nowrap}
.glossary-filter[aria-pressed="true"]{border-color:var(--jsg-accent)!important;background:var(--jsg-accent)!important;color:#fff!important}
.glossary-entry[hidden],[data-glossary-category-heading][hidden]{display:none!important}
.glossary-entry{scroll-margin-top:5.5rem;margin:.75rem 0;padding:1rem;background:var(--jsg-surface);border:1px solid var(--jsg-border);border-radius:var(--jsg-radius)}

/* Machine profiles */
.machine-page{max-width:var(--jsg-content);margin-inline:auto}
.machine-page .machine-breadcrumb{overflow-x:auto;white-space:nowrap;margin:0 0 .85rem;padding:.2rem 0;-webkit-overflow-scrolling:touch}
.machine-page .machine-breadcrumb ol{display:flex;align-items:center;gap:.35rem;margin:0;padding:0;list-style:none;color:var(--jsg-muted);font-size:.82rem}
.machine-page .machine-breadcrumb li{display:inline-flex;align-items:center}.machine-page .machine-breadcrumb li+li::before{content:"/";margin-right:.35rem;color:#97a2b2}
.machine-page .machine-breadcrumb a{text-decoration:none;color:var(--jsg-muted)}
.machine-page .machine-key-terms{display:flex;align-items:center;gap:.45rem;overflow-x:auto;padding:.3rem 0 .45rem;margin:1rem 0;white-space:nowrap;-webkit-overflow-scrolling:touch}
.machine-page .machine-key-terms a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:38px;padding:.38rem .68rem;background:var(--jsg-accent-soft);border:1px solid #c8def0;border-radius:999px;text-decoration:none;font-size:.88rem;font-weight:700}
.machine-page .machine-contents{margin:1rem 0 1.15rem!important;padding:1rem!important;background:var(--jsg-surface)!important;border:1px solid var(--jsg-border)!important;border-radius:var(--jsg-radius)!important}
.machine-page .machine-contents ul{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;gap:.45rem!important;margin:.65rem 0 0!important;padding:0 0 .25rem!important;list-style:none;-webkit-overflow-scrolling:touch}
.machine-page .machine-contents li{flex:0 0 auto;margin:0!important}
.machine-page .machine-contents a{display:inline-flex;align-items:center;min-height:40px;padding:.45rem .7rem;border:1px solid var(--jsg-border);border-radius:999px;background:var(--jsg-surface-soft);color:var(--jsg-accent)!important;text-decoration:none;font-size:.86rem;font-weight:700;white-space:nowrap}
.machine-page details{scroll-margin-top:5.5rem;margin:.7rem 0;background:var(--jsg-surface);border:1px solid var(--jsg-border);border-radius:var(--jsg-radius);overflow:hidden}
.machine-page details>summary{position:relative;display:flex;align-items:center;min-height:52px;padding:.72rem 2.7rem .72rem .9rem;cursor:pointer;list-style:none;color:var(--jsg-text);font-size:.98rem}
.machine-page details>summary::-webkit-details-marker{display:none}.machine-page details>summary::after{content:"+";position:absolute;right:.95rem;top:50%;transform:translateY(-50%);font-size:1.35rem;color:var(--jsg-accent)}
.machine-page details[open]>summary{border-bottom:1px solid var(--jsg-border);background:#fbfdff}.machine-page details[open]>summary::after{content:"−"}
.machine-page details>h2{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;white-space:nowrap!important;border:0!important}
.machine-page details>:not(summary):not(h2){margin-left:.9rem;margin-right:.9rem}
.machine-page .machine-table-scroll{max-width:calc(100% - 1.8rem)!important;overflow-x:auto!important;margin:.8rem .9rem!important;border:1px solid var(--jsg-border);border-radius:10px;-webkit-overflow-scrolling:touch;background:#fff}
.machine-page .machine-table-scroll table{min-width:560px!important;width:100%;border-collapse:separate;border-spacing:0;margin:0!important;font-size:.9rem}
.machine-page table th,.machine-page table td{padding:.65rem .7rem;border-bottom:1px solid #e5eaf0;text-align:left;vertical-align:top}
.machine-page table th{background:#f5f8fb;color:#344055;font-weight:800;white-space:nowrap}.machine-page table tbody tr:nth-child(even) td{background:#fbfcfe}
.machine-page .glossary-term{font-weight:650}

/* Footer */
.jsg-footer-nav{background:#f3f6fa;border-top:1px solid var(--jsg-border);padding:.75rem 0 0}
.jsg-footer-nav__list{display:flex;flex-wrap:wrap;gap:.15rem 1rem;margin:0;padding:0;list-style:none}
.jsg-footer-nav__list a{display:inline-flex;align-items:center;min-height:44px;padding:.42rem 0;color:var(--jsg-muted);text-decoration:none;font-size:.86rem;line-height:1.35}
.jsg-footer-nav__list a:hover,.jsg-footer-nav__list a:focus{color:var(--jsg-accent);text-decoration:underline}
.site-footer{margin-top:0;background:#f3f6fa;color:var(--jsg-muted);border-top:0}.ast-footer-copyright{color:#6d7787;font-size:.82rem;line-height:1.5}

@media(max-width:921px){
  .site-header{position:relative;z-index:50}.ast-mobile-header-wrap .ast-primary-header-bar,.ast-mobile-header-wrap .ast-builder-grid-row{min-height:64px}
  .ast-button-wrap .menu-toggle.main-header-menu-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;padding:.5rem;border:1px solid var(--jsg-border);border-radius:10px;background:#fff;color:var(--jsg-text)}
  .ast-header-break-point .main-navigation .main-header-menu .menu-item>.menu-link,.ast-mobile-popup-content .main-header-menu .menu-item>.menu-link{display:flex;align-items:center;min-height:52px;padding:.72rem .7rem;border-bottom:1px solid #edf1f5;color:var(--jsg-text);font-size:1rem;font-weight:700;line-height:1.35;text-decoration:none}
  .site-content{padding-top:.8rem}
  header .custom-logo-link img{width:auto!important;max-width:240px!important;height:auto!important}
  .site-title{font-size:18px!important}
}
@media(max-width:600px){
  body{background:#fff}.site-header .ast-container,.site-content .ast-container{padding-inline:1rem}
  .jsg-home .jsg-home-grid,.jsg-home .jsg-learning-grid{grid-template-columns:1fr 1fr}
  .machine-index .machine-index-controls,.guide-index .guide-index-controls{grid-template-columns:1fr 1fr!important}
  .jsg-footer-nav__list{display:grid;grid-template-columns:1fr 1fr;gap:0 .9rem}
}
@media(max-width:560px){
  header .custom-logo-link img{max-width:180px!important}.site-title{font-size:16px!important}
  .jsg-home .jsg-hero{border-radius:14px;padding:1.25rem 1rem}.jsg-home .jsg-hero-actions{display:grid;grid-template-columns:1fr}.jsg-home .jsg-button{width:100%;box-sizing:border-box}
  .jsg-home .jsg-home-grid,.jsg-home .jsg-learning-grid{grid-template-columns:1fr}.machine-index .machine-index-controls,.guide-index .guide-index-controls,.machine-index .machine-index-grid,.guide-index .guide-index-grid{grid-template-columns:1fr!important}
  .glossary-search-row{grid-template-columns:1fr!important}.machine-page .machine-table-scroll table{font-size:.86rem}
}
@media(max-width:420px){.jsg-footer-nav__list{grid-template-columns:1fr}}
@media(hover:none){.jsg-button:hover,.jsg-home .jsg-home-card:hover{transform:none!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
