/* =========================================================
   CasinoList — Corporate Japan Design
   Navy / Gold / White / Noto JP
   ========================================================= */

:root {
  --navy-900:#081527;
  --navy-950:#0A1E36;
  --navy-800:#0B1D3D;
  --navy-700:#12305F;
  --navy-600:#1C3A6E;
  --gold-300:#E8C977;
  --gold-400:#D9B25F;
  --gold-500:#C8A24B;
  --gold-600:#A88233;
  --red-500:#C0342E;
  --ink:#1B2430;
  --muted:#5B6675;
  --bg:#F4F6F9;
  --card:#FFFFFF;
  --line:#E1E6EE;
  --serif:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --maxw:1180px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.85;font-size:16px;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:color .2s}
ul,ol{list-style:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}

.site-wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}
main{min-height:55vh}
::selection{background:var(--gold-300);color:var(--navy-900)}
.center{text-align:center}

/* ===== Utility bar ===== */
.ut-bar{background:var(--navy-900);color:#c9d4e4;font-size:12.5px}
.ut-inner{display:flex;justify-content:space-between;align-items:center;min-height:34px;gap:16px}
.ut-list{display:flex;gap:20px}
.ut-list a{color:#c9d4e4}
.ut-list a:hover{color:var(--gold-300)}
.ut-tel{text-align:right;white-space:nowrap}

/* ===== Main header ===== */
.hd-main{background:#fff;box-shadow:0 1px 0 var(--line),0 4px 14px rgba(11,29,61,.06)}
.hd-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:72px}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{flex:none}
.brand-text{display:flex;flex-direction:column;line-height:1.2}
.brand-name{font-family:var(--serif);font-size:26px;font-weight:900;letter-spacing:.02em;color:var(--navy-800)}
.brand-name .accent{color:var(--gold-600)}
.brand-sub{font-size:11px;letter-spacing:.28em;color:var(--muted)}

/* ===== Primary nav ===== */
.primary-nav{display:flex;align-items:center;gap:6px}
.primary-nav > a,.nav-drop-btn{
  display:inline-block;padding:24px 14px;font-weight:600;font-size:14.5px;color:var(--navy-700);
  border-bottom:3px solid transparent;position:relative;white-space:nowrap;
}
.primary-nav > a:hover,.primary-nav > a.is-active,.nav-drop-btn:hover{color:var(--gold-600);border-bottom-color:var(--gold-500)}
.nav-drop{position:relative}
.nav-drop-btn{display:flex;align-items:center;gap:6px}
.caret{border:solid currentColor;border-width:0 2px 2px 0;padding:2.5px;transform:rotate(45deg) translateY(-1px);color:var(--gold-600)}
.nav-drop-menu{position:absolute;top:100%;left:0;min-width:200px;background:#fff;border:1px solid var(--line);
  box-shadow:0 10px 30px rgba(11,21,61,.14);padding:8px 0;opacity:0;pointer-events:none;transform:translateY(6px);transition:.2s;z-index:50;border-top:3px solid var(--gold-500)}
.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{opacity:1;pointer-events:auto;transform:none}
.nav-drop-menu li a{display:block;padding:10px 18px;font-size:14px;color:var(--ink)}
.nav-drop-menu li a:hover{background:#F3F6FB;color:var(--gold-600)}

.nav-toggle{display:none;flex-direction:column;gap:5px;padding:10px 6px;border:1px solid var(--line);border-radius:6px}
.nav-toggle span{width:22px;height:2px;background:var(--navy-800);border-radius:1px;transition:.2s}
.nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.is-open span:nth-child(2){opacity:0}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ===== Hero ===== */
.hero{position:relative;background:
    radial-gradient(900px 500px at 85% -10%,rgba(40,75,138,.55),transparent 60%),
    linear-gradient(135deg,var(--navy-800) 0%,var(--navy-950) 65%);
  color:#fff;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:
  repeating-linear-gradient(115deg,transparent 0 74px,rgba(232,201,119,.06) 74px 75px),
  linear-gradient(180deg,rgba(255,255,255,.06) 0,transparent 26%);
  pointer-events:none}
.hero-inner{position:relative;padding:100px 20px 110px;max-width:920px;margin:0 auto;text-align:center}
.hero-eyebrow{display:inline-block;letter-spacing:.34em;font-size:12.5px;color:var(--gold-300);
  border:1px solid rgba(200,162,75,.55);border-radius:999px;padding:7px 18px 7px 22px;margin-bottom:26px}
.hero-title{font-family:var(--serif);font-size:42px;font-weight:900;line-height:1.55;letter-spacing:.02em;margin-bottom:22px;text-wrap:balance}
.hero-sub{font-size:16px;color:#c9d4e0;line-height:1.9;margin-bottom:38px;text-wrap:balance}
.hero-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.hero-emblem{position:absolute;right:-40px;bottom:-60px;font-family:var(--serif);font-size:340px;font-weight:900;
  color:rgba(200,162,75,.10);user-select:none;pointer-events:none;line-height:1}

/* ===== Buttons ===== */
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15px;border-radius:3px;
  padding:14px 34px;transition:.2s;border:1.5px solid transparent}
.btn-gold{background:linear-gradient(180deg,var(--gold-400) 0%,var(--gold-500) 55%,var(--gold-600) 100%);color:var(--navy-900);box-shadow:0 6px 18px rgba(200,162,75,.35)}
.btn-gold:hover{filter:brightness(1.06);transform:translateY(-2px)}
.btn-outline{border-color:rgba(232,201,119,.55);color:var(--gold-300)}
.btn-outline:hover{background:rgba(200,162,75,.14);border-color:var(--gold-300)}
.btn-navy{background:var(--navy-800);color:#fff;box-shadow:0 6px 16px rgba(11,29,61,.25)}
.btn-navy:hover{background:var(--navy-700);transform:translateY(-2px)}

/* ===== Sections ===== */
.section{padding:64px 0}
.section-odd{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:34px;border-bottom:2px solid var(--navy-800)}
.sec-title{position:relative;font-family:var(--serif);font-size:28px;font-weight:900;color:var(--navy-800);padding-bottom:14px;margin:0}
.sec-title::after{content:"";position:absolute;left:0;bottom:-2px;width:64px;height:3px;background:linear-gradient(90deg,var(--gold-500),var(--gold-300))}
.sec-title::before{content:"■";color:var(--gold-600);font-size:15px;margin-right:10px}
.sec-more{font-size:14px;font-weight:600;color:var(--gold-600);white-space:nowrap}
.sec-more:hover{text-decoration:underline}

/* ===== Trust band (home) ===== */
.trustband{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.trust-item{position:relative;padding:8px 6px 8px 0;border-left:1px solid var(--line)}
.trust-item + .trust-item{padding-left:34px;border-left:1px solid var(--line)}
.trust-num{font-family:var(--serif);font-size:13px;color:var(--gold-600);letter-spacing:.1em;display:block;margin-bottom:8px}
.trust-t{font-family:var(--serif);font-size:18px;font-weight:700;color:var(--navy-800);margin-bottom:8px}
.trust-t::before{content:"◆";color:var(--gold-500);margin-right:6px;font-size:12px}
.trust-d{font-size:13.5px;color:var(--muted);line-height:1.8}

/* ===== Post cards ===== */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.post-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);
  border-radius:6px;padding:26px;transition:.22s;box-shadow:0 2px 10px rgba(11,29,61,.05)}
.post-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(11,29,61,.12);border-color:var(--gold-500)}
.pc-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.pc-meta time{font-size:12px;color:var(--muted);letter-spacing:.04em}
.pc-cats{display:flex;gap:6px;flex-wrap:wrap}
.pc-cats li span{display:inline-block;font-size:11px;font-weight:600;color:var(--gold-600);
  border:1px solid var(--gold-500);background:#FBF7EE;border-radius:999px;padding:2px 10px}
.pc-title{font-family:var(--serif);font-size:18px;font-weight:700;color:var(--navy-800);line-height:1.6;margin-bottom:10px}
.post-card:hover .pc-title{color:var(--gold-600)}
.pc-excerpt{font-size:13.5px;color:var(--muted);margin-bottom:18px;flex:1}
.pc-read{font-size:13px;font-weight:700;color:var(--gold-600)}
.pc-read b{transition:transform .2s;display:inline-block;font-weight:700}
.post-card:hover .pc-read b{transform:translateX(4px)}

/* ===== Category chips ===== */
.cat-chips{display:flex;flex-wrap:wrap;gap:14px}
.chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);
  border-radius:4px;padding:13px 20px;font-weight:600;font-size:15px;color:var(--navy-700);transition:.2s;box-shadow:0 2px 8px rgba(11,29,61,.05)}
.chip:hover{border-color:var(--gold-500);color:var(--gold-600);transform:translateY(-2px)}
.chip-count{font-family:var(--serif);font-size:12px;background:var(--navy-800);color:var(--gold-300);
  border-radius:999px;padding:1px 9px}

/* ===== About panel ===== */
.about-panel{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center;background:#fff;
  border:1px solid var(--line);border-left:6px solid var(--gold-500);border-radius:6px;padding:40px}
.about-text{margin:12px 0 24px;color:var(--muted);font-size:15px}
.about-points{border-left:1px solid var(--line);padding-left:30px}
.about-points li{position:relative;padding:12px 0;border-bottom:1px dashed var(--line);font-size:14.5px;color:var(--ink)}
.about-points li:last-child{border-bottom:none}
.about-points li span{color:var(--gold-600);font-weight:900;margin-right:8px}

/* ===== Page head ===== */
.page-head{background:
    radial-gradient(700px 320px at 90% -20%,rgba(40,75,138,.5),transparent 70%),
    linear-gradient(120deg,var(--navy-800),var(--navy-600));
  color:#fff;padding:34px 0 40px}
.breadcrumb{margin-bottom:18px;font-size:12.5px}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:6px;color:#b9c6d8}
.breadcrumb a:hover{color:var(--gold-300)}
.breadcrumb li:not(:last-child)::after{content:"›";margin-left:6px;color:var(--gold-500);opacity:.7}
.breadcrumb [aria-current]{color:var(--gold-300)}
.page-title{font-family:var(--serif);font-size:34px;font-weight:900;line-height:1.4;margin-bottom:10px;letter-spacing:.01em}
.page-desc{font-size:14.5px;color:#c9d4e0;max-width:760px}

/* ===== Pagination ===== */
.pagination{display:flex;justify-content:center;gap:8px;margin-top:44px;flex-wrap:wrap}
.pagination .page-link{min-width:40px;padding:9px 14px;background:#fff;border:1px solid var(--line);
  border-radius:4px;font-weight:600;font-size:14px;color:var(--navy-700);text-align:center}
.pagination .page-link:hover{border-color:var(--gold-500);color:var(--gold-600)}
.pagination .page-item.active .page-link,.pagination .page-item.current .page-link{background:var(--gold-500);border-color:var(--gold-500);color:#fff}
.pagination .page-item.disabled .page-link{opacity:.45;pointer-events:none}
.list-note{font-size:13.5px;color:var(--muted);margin-bottom:22px}

/* ===== Single post layout ===== */
.post-single{padding:44px 0 70px}
.post-layout{display:grid;grid-template-columns:1fr 300px;gap:40px;align-items:start}
.post-main{background:#fff;border:1px solid var(--line);border-radius:6px;padding:44px}
.post-header{border-bottom:1px solid var(--line);padding-bottom:28px;margin-bottom:30px}
.post-meta-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.post-meta-row time{font-size:13px;color:var(--muted)}
.post-title{font-family:var(--serif);font-size:30px;font-weight:900;line-height:1.5;color:var(--navy-800);margin-bottom:16px}
.post-lead{font-size:15px;color:var(--muted);line-height:1.9}
.post-author{display:flex;align-items:center;gap:10px;margin-top:20px;font-size:13px;color:var(--muted)}
.auth-badge{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--navy-800);color:var(--gold-300);font-family:var(--serif);font-weight:700}

/* ===== TOC ===== */
.toc{background:#F7F9FC;border:1px solid var(--line);border-left:4px solid var(--gold-500);border-radius:4px;padding:20px 22px;margin-bottom:30px}
.toc-title{font-family:var(--serif);font-size:15px;font-weight:700;color:var(--navy-800);margin-bottom:10px}
.toc ul{list-style:none}
.toc li{margin:4px 0}
.toc a{font-size:14px;color:var(--navy-600);display:block;padding:5px 0;border-bottom:1px dashed var(--line)}
.toc a:hover{color:var(--gold-600)}
.toc ul ul{margin-left:18px}

/* ===== Post content prose ===== */
.post-content{font-size:16px;line-height:2}
.post-content h2{font-family:var(--serif);font-size:24px;font-weight:900;color:var(--navy-800);
  padding:12px 0 12px 18px;margin:48px 0 22px;border-left:6px solid var(--gold-500);
  border-bottom:1px solid var(--line);position:relative}
.post-content h3{font-family:var(--serif);font-size:19px;font-weight:700;color:var(--navy-700);margin:38px 0 16px;padding-left:16px;position:relative}
.post-content h3::before{content:"";position:absolute;left:0;top:.42em;width:8px;height:8px;background:var(--gold-500)}
.post-content h4{font-size:16.5px;font-weight:700;color:var(--navy-700);margin:28px 0 12px}
.post-content p{margin:0 0 22px}
.post-content strong{color:var(--navy-800)}
.post-content a{color:var(--gold-600);border-bottom:1px solid var(--gold-500)}
.post-content a:hover{color:var(--red-500);border-bottom-color:var(--red-500)}
.post-content ul,.post-content ol{margin:0 0 24px;padding-left:8px}
.post-content ul li{position:relative;padding-left:20px;margin:8px 0}
.post-content ul li::before{content:"◆";position:absolute;left:0;top:.15em;color:var(--gold-500);font-size:11px}
.post-content ol{counter-reset:li}
.post-content ol li{position:relative;counter-increment:li;padding-left:30px;margin:8px 0}
.post-content ol li::before{content:counter(li,decimal-leading-zero);position:absolute;left:0;top:.1em;
  font-family:var(--serif);font-size:12px;font-weight:700;color:#fff;background:var(--navy-700);
  border-radius:3px;min-width:22px;text-align:center;padding:1px 3px}
.post-content blockquote{border-left:4px solid var(--gold-500);background:#FBF7EE;padding:18px 22px;margin:26px 0;border-radius:0 4px 4px 0}
.post-content blockquote p{color:var(--navy-700);margin:0}
.post-content hr{border:none;border-top:1px solid var(--line);margin:32px 0}

/* ===== Tables ===== */
.w-table{overflow-x:auto;margin:24px 0}
.post-content table{width:100%;border-collapse:collapse;font-size:14.5px;min-width:560px}
.post-content thead th{background:var(--navy-800);color:#fff;font-family:var(--serif);font-weight:700;
  padding:13px 14px;text-align:left;border:1px solid var(--navy-700);white-space:nowrap}
.post-content thead th[style*="center"],.post-content thead th:first-child{text-align:center}
.post-content tbody td{padding:12px 14px;border:1px solid var(--line);vertical-align:top}
.post-content tbody tr:nth-child(even){background:#F7F9FC}
.post-content tbody tr:hover{background:#FBF7EE}
.post-content td[style*="center"]{text-align:center}

/* ===== Notices (shortcodes) ===== */
.notice{border-radius:4px;padding:18px 22px;margin:26px 0;font-size:14.5px;border-left:5px solid}
.notice p{margin:0}
.notice-info{background:#F0F6FF;border-color:var(--navy-500);color:var(--navy-700)}
.notice-warn{background:#FDF1EF;border-color:var(--red-500);color:#8F2B24}

/* ===== Prev / next ===== */
.post-end-links{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:46px;padding-top:30px;border-top:1px solid var(--line)}
.pn-link{display:flex;flex-direction:column;gap:6px;background:#F7F9FC;border:1px solid var(--line);border-radius:4px;padding:16px 18px;transition:.2s}
.pn-link:hover{border-color:var(--gold-500);background:#FBF7EE}
.pn-link small{font-size:12px;color:var(--muted)}
.pn-link span{font-size:14px;font-weight:600;color:var(--navy-700);line-height:1.6}
.pn-link.next{text-align:right}

/* ===== Sidebar ===== */
.post-side{position:sticky;top:20px;display:flex;flex-direction:column;gap:24px}
.side-box{background:#fff;border:1px solid var(--line);border-top:4px solid var(--gold-500);border-radius:4px;padding:22px}
.side-title{font-family:var(--serif);font-size:16px;font-weight:700;color:var(--navy-800);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.side-cats li{border-bottom:1px dashed var(--line)}
.side-cats li:last-child{border-bottom:none}
.side-cats a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 2px;font-size:14px;color:var(--navy-700);font-weight:600}
.side-cats a:hover{color:var(--gold-600)}
.side-posts li{border-bottom:1px dashed var(--line)}
.side-posts li:last-child{border-bottom:none}
.side-posts a{display:block;padding:11px 2px;font-size:13.5px;color:var(--navy-700);line-height:1.6}
.side-posts a:hover{color:var(--gold-600)}

/* ===== Footer ===== */
.site-footer{background:var(--navy-900);color:#BFCCDD;margin-top:40px}
.ft-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px;padding:60px 0 44px;border-bottom:1px solid rgba(200,210,230,.14)}
.ft-brand{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.ft-brand-name{font-family:var(--serif);font-size:22px;font-weight:900;color:#fff}
.ft-desc{font-size:13.5px;line-height:1.9;color:#AEBDCC;max-width:320px}
.ft-title{font-family:var(--serif);font-size:15px;font-weight:700;color:var(--gold-300);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid rgba(200,162,75,.3)}
.ft-list li,.ft-meta li{margin-bottom:9px}
.ft-list a{font-size:13.5px;color:#c8d3e2}
.ft-list a:hover{color:var(--gold-300)}
.ft-meta{font-size:12.5px;color:#8fa0b8;line-height:1.9}
.ft-meta a{color:#c8d3e2}
.ft-meta a:hover{color:var(--gold-300)}
.ft-disclaimer{padding:22px 0;border-bottom:1px solid rgba(200,210,230,.14)}
.ft-disclaimer p{font-size:12px;color:#8fa0b8;line-height:1.9}
.ft-bottom{padding:20px 0 26px}
.ft-copy{font-size:12.5px;color:#7d8ea8;letter-spacing:.06em}
.empty-note{color:var(--muted);padding:20px 0}

/* ===== Responsive ===== */
@media (max-width:1024px){
  .post-layout{grid-template-columns:1fr}
  .post-side{position:static;flex-direction:row;flex-wrap:wrap;gap:20px}
  .side-box{flex:1 1 260px}
  .post-grid{grid-template-columns:repeat(2,1fr)}
  .hero-title{font-size:34px}
}

@media (max-width:820px){
  .ut-tel{display:none}
  .nav-toggle{display:flex}
  .primary-nav{position:fixed;inset:0 0 0 auto;width:min(320px,86vw);background:#fff;flex-direction:column;
    align-items:stretch;padding:88px 26px 30px;gap:0;box-shadow:-12px 0 40px rgba(11,29,61,.18);
    transform:translateX(100%);transition:transform .28s;z-index:90;overflow-y:auto}
  .primary-nav[data-open="true"]{transform:none}
  .primary-nav > a,.nav-drop-btn{padding:16px 6px;border-bottom:1px solid var(--line);font-size:15px}
  .nav-drop-menu{position:static;opacity:1;pointer-events:auto;transform:none;box-shadow:none;border:none;border-top:none;padding:0}
  .nav-drop-menu li a{padding:12px 12px;color:var(--muted)}
  .brand-name{font-size:22px}
  .hero{text-align:center}
  .hero-inner{padding:70px 20px 80px}
  .trust-grid{grid-template-columns:1fr;gap:22px}
  .trust-item + .trust-item{padding-left:6px}
  .ft-grid{grid-template-columns:1fr 1fr;gap:28px}
}

@media (max-width:600px){
  body{font-size:15px}
  .site-wrap{padding:0 16px}
  .hero-title{font-size:27px}
  .hero-sub{font-size:14.5px}
  .hero-actions .btn{width:100%;justify-content:center}
  .section{padding:46px 0}
  .sec-title{font-size:23px}
  .post-grid{grid-template-columns:1fr}
  .post-main{padding:28px 20px}
  .post-title{font-size:23px}
  .page-title{font-size:25px}
  .about-panel{grid-template-columns:1fr;padding:26px 20px}
  .post-end-links{grid-template-columns:1fr}
  .pn-link.next{text-align:left}
  .ft-grid{grid-template-columns:1fr}
  .ut-inner{justify-content:center}
  .ut-list{display:none}
}