/*
Theme Name: GCPDex
Theme URI: https://gcpdex.com
Author: GCPDex
Author URI: https://gcpdex.com
Description: Custom child theme for gcpdex.com — dark theme, global chain price index. Inherits Twenty Twenty-Five.
Template: twentytwentyfive
Version: 1.0.0
Text Domain: gcpdex
Tags: dark, custom-colors, full-site-editing, block-styles
License: GPL v2 or later
*/

/* All visual styles live in WPCode (Site Wide Header) so they can be updated without re-uploading the theme.
   This child theme provides: theme.json color palette, custom templates for hub & starbucks pages,
   header/footer parts. */




/* ===== Merged from wp-publish/styles.css ===== */

/* ===== Site footer chain links (rendered by functions.php wp_footer hook) ===== */
.gcpdex-chain-footer{display:block;background:#0a0a0a;border-top:1px solid #2a2a2a;padding:40px 24px 32px;color:#999;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:.9rem}
.gcpdex-chain-footer-inner{max-width:1200px;margin:0 auto}
.gcpdex-chain-footer .footer-top{display:flex;align-items:baseline;gap:16px;margin-bottom:14px;flex-wrap:wrap}
.gcpdex-chain-footer .footer-home{color:#00d4aa !important;text-decoration:none;font-weight:700;font-size:.95rem}
.gcpdex-chain-footer .footer-home:hover{text-decoration:underline}
.gcpdex-chain-footer .footer-section-label{color:#999;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em}
.gcpdex-chain-footer .footer-chain-links{display:flex;flex-wrap:wrap;gap:6px 16px;margin-bottom:24px;line-height:1.9}
.gcpdex-chain-footer .footer-chain-links a{color:#e8e8e8 !important;text-decoration:none;font-size:.92rem}
.gcpdex-chain-footer .footer-chain-links a:hover{color:#00d4aa !important}
.gcpdex-chain-footer .footer-chain-links .soon{color:#666;font-size:.92rem}
.gcpdex-chain-footer .footer-chain-links .soon em{font-style:normal;font-size:.78rem;opacity:.7}
.gcpdex-chain-footer .footer-credit{color:#666;font-size:.78rem;border-top:1px solid #1e1e1e;padding-top:18px;margin:0}

/* ===== Theme override: 黒テーマに統一 ===== */
:root{
  --wp--preset--color--base:#0a0a0a;
  --wp--preset--color--contrast:#e8e8e8;
  --wp--preset--color--primary:#00d4aa;
}
html,body{background:#0a0a0a !important;color:#e8e8e8 !important}
body.wp-singular,body.wp-admin-bar,body{background-color:#0a0a0a}
.wp-site-blocks,.wp-block-group,main,.entry-content{background:transparent;color:#e8e8e8}
.wp-block-template-part,header.wp-block-template-part,footer.wp-block-template-part{background:#0a0a0a !important;color:#e8e8e8;border-color:#2a2a2a}
.wp-block-site-title a,.wp-block-site-title,.site-title a{color:#e8e8e8 !important;text-decoration:none}
.wp-block-navigation,.wp-block-navigation-item__content,.wp-block-navigation a{color:#e8e8e8 !important}
.wp-block-navigation a:hover{color:#00d4aa !important}
.wp-block-post-title,.wp-block-post-title a,h1.wp-block-post-title{color:#e8e8e8 !important}
.wp-block-post-content a{color:#00d4aa}
.entry-header,.entry-title,.entry-title a{color:#e8e8e8 !important}
.wp-block-button__link{background:#00d4aa;color:#0a0a0a}
.wp-block-separator{border-color:#2a2a2a}
.wp-block-pullquote,.wp-block-quote{color:#e8e8e8;border-color:#2a2a2a}
hr{border-color:#2a2a2a}
input,textarea,select{background:#141414 !important;color:#e8e8e8 !important;border-color:#2a2a2a !important}
.wp-block-search__button{background:#00d4aa;color:#0a0a0a}
/* ページタイトル(WP標準H1)はハブ/スタバページでは非表示にする(独自ヒーローと重複するため) */
.page-id-37 .wp-block-post-title,
.page-id-38 .wp-block-post-title,
.page-id-39 .wp-block-post-title,
.page-id-40 .wp-block-post-title{display:none}
/* 投稿コンテンツのpadding/marginをリセット(独自ヒーローのフル幅対応) */
.page-id-37 .wp-block-post-content,.page-id-38 .wp-block-post-content,
.page-id-39 .wp-block-post-content,.page-id-40 .wp-block-post-content,
.page-id-41 .wp-block-post-content,.page-id-42 .wp-block-post-content,
.page-id-43 .wp-block-post-content,.page-id-44 .wp-block-post-content{padding:0 !important;max-width:none !important}
.page-id-37 .gcpdex-hub,.page-id-38 .gcpdex-hub,.page-id-39 .gcpdex-hub,.page-id-40 .gcpdex-hub{margin:0 calc(50% - 50vw);width:100vw}
/* ===== /Theme override ===== */

.gcpdex-sbx *{margin:0;padding:0;box-sizing:border-box}
.gcpdex-sbx{
  --gcpdex-bg:#0a0a0a;--gcpdex-surface:#141414;--gcpdex-surface2:#1e1e1e;
  --gcpdex-border:#2a2a2a;--gcpdex-text:#e8e8e8;--gcpdex-text2:#999;
  --gcpdex-accent:#00d4aa;--gcpdex-accent2:#00b894;--gcpdex-red:#ff6b6b;--gcpdex-gold:#ffd93d;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  background:var(--gcpdex-bg);color:var(--gcpdex-text);line-height:1.6;
}
.gcpdex-sbx a{color:var(--gcpdex-accent);text-decoration:none}
.gcpdex-sbx .container{max-width:1200px;margin:0 auto;padding:0 20px}
.gcpdex-sbx header{padding:60px 0 40px;text-align:center;border-bottom:1px solid var(--gcpdex-border)}
.gcpdex-sbx header h1{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:800;letter-spacing:-.02em;margin-bottom:8px}
.gcpdex-sbx header h1 span{color:var(--gcpdex-accent)}
.gcpdex-sbx header p.sub{font-size:1.1rem;color:var(--gcpdex-text2);max-width:600px;margin:0 auto 20px}
.gcpdex-sbx .badge{display:inline-block;background:var(--gcpdex-surface2);border:1px solid var(--gcpdex-border);border-radius:20px;padding:4px 14px;font-size:.8rem;color:var(--gcpdex-text2)}
.gcpdex-sbx .badge time{color:var(--gcpdex-accent)}
.gcpdex-sbx .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;padding:40px 0;border-bottom:1px solid var(--gcpdex-border)}
.gcpdex-sbx .stat{background:var(--gcpdex-surface);border:1px solid var(--gcpdex-border);border-radius:12px;padding:20px;text-align:center}
.gcpdex-sbx .stat .val{font-size:2rem;font-weight:700;color:var(--gcpdex-accent)}
.gcpdex-sbx .stat .label{font-size:.8rem;color:var(--gcpdex-text2);margin-top:4px}
.gcpdex-sbx section{padding:48px 0}
.gcpdex-sbx h2{font-size:1.6rem;font-weight:700;margin-bottom:8px}
.gcpdex-sbx h2 span{color:var(--gcpdex-accent)}
.gcpdex-sbx .section-desc{color:var(--gcpdex-text2);margin-bottom:24px;max-width:700px}
.gcpdex-sbx .tabs{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}
.gcpdex-sbx .tab{background:var(--gcpdex-surface);border:1px solid var(--gcpdex-border);border-radius:8px;padding:8px 16px;cursor:pointer;font-size:.85rem;color:var(--gcpdex-text2);transition:all .2s}
.gcpdex-sbx .tab:hover,.gcpdex-sbx .tab.active{background:var(--gcpdex-accent);color:var(--gcpdex-bg);border-color:var(--gcpdex-accent)}
.gcpdex-sbx .table-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--gcpdex-border)}
.gcpdex-sbx table{width:100%;border-collapse:collapse;font-size:.9rem}
.gcpdex-sbx thead{background:var(--gcpdex-surface)}
.gcpdex-sbx th{padding:12px 16px;text-align:left;font-weight:600;color:var(--gcpdex-text2);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;cursor:pointer;user-select:none;border-bottom:1px solid var(--gcpdex-border)}
.gcpdex-sbx th:hover{color:var(--gcpdex-accent)}
.gcpdex-sbx th.sorted-asc::after{content:" ▲";color:var(--gcpdex-accent)}
.gcpdex-sbx th.sorted-desc::after{content:" ▼";color:var(--gcpdex-accent)}
.gcpdex-sbx td{padding:10px 16px;border-bottom:1px solid var(--gcpdex-border);white-space:nowrap}
.gcpdex-sbx tr:hover{background:var(--gcpdex-surface2)}
.gcpdex-sbx .flag{margin-right:6px}
.gcpdex-sbx .bar-cell{position:relative;min-width:120px}
.gcpdex-sbx .bar{height:6px;border-radius:3px;background:var(--gcpdex-accent);transition:width .4s ease}
.gcpdex-sbx .bar-val{font-size:.8rem;color:var(--gcpdex-text2);margin-top:2px}
.gcpdex-sbx .rank{color:var(--gcpdex-text2);font-size:.85rem;width:30px;display:inline-block;text-align:center}
.gcpdex-sbx .cheap{color:var(--gcpdex-accent)}
.gcpdex-sbx .expensive{color:var(--gcpdex-red)}
.gcpdex-sbx .methodology{background:var(--gcpdex-surface);border:1px solid var(--gcpdex-border);border-radius:12px;padding:32px;margin-top:32px}
.gcpdex-sbx .methodology h3{font-size:1.1rem;margin-bottom:12px}
.gcpdex-sbx .methodology p,.gcpdex-sbx .methodology li{color:var(--gcpdex-text2);font-size:.9rem}
.gcpdex-sbx .methodology ul{padding-left:20px;margin-top:8px}
.gcpdex-sbx .methodology li{margin-bottom:4px}
.gcpdex-sbx .insight-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:32px}
.gcpdex-sbx .insight{background:var(--gcpdex-surface);border:1px solid var(--gcpdex-border);border-radius:12px;padding:24px}
.gcpdex-sbx .insight .title{font-size:.85rem;color:var(--gcpdex-text2);margin-bottom:8px}
.gcpdex-sbx .insight .value{font-size:1.5rem;font-weight:700}
.gcpdex-sbx .insight .detail{font-size:.85rem;color:var(--gcpdex-text2);margin-top:6px}
.gcpdex-sbx footer.gcpdex-footer{border-top:1px solid var(--gcpdex-border);padding:32px 0;text-align:center;color:var(--gcpdex-text2);font-size:.85rem}
@media(max-width:768px){
  .gcpdex-sbx .stats{grid-template-columns:repeat(2,1fr)}
  .gcpdex-sbx table{font-size:.8rem}
  .gcpdex-sbx td,.gcpdex-sbx th{padding:8px 10px}
}
.gcpdex-sbx .report{padding:48px 0;border-top:1px solid var(--gcpdex-border)}
.gcpdex-sbx .report-body{max-width:780px;margin-top:16px}
.gcpdex-sbx .report-body h3{font-size:1.25rem;font-weight:700;margin:32px 0 10px;color:var(--gcpdex-text);letter-spacing:-.01em}
.gcpdex-sbx .report-body h3:first-child{margin-top:0}
.gcpdex-sbx .report-body p{color:var(--gcpdex-text);font-size:1rem;line-height:1.75;margin-bottom:16px}
.gcpdex-sbx .report-body strong{color:var(--gcpdex-accent);font-weight:700}
.gcpdex-sbx .report-body ul{padding-left:22px;margin:8px 0 16px;color:var(--gcpdex-text)}
.gcpdex-sbx .report-body li{margin-bottom:8px;line-height:1.7}
.gcpdex-sbx .report-body em{color:var(--gcpdex-text2);font-style:normal;font-size:.9rem}

/* ===== Hub (premium homepage) ===== */
.gcpdex-hub *{margin:0;padding:0;box-sizing:border-box}
.gcpdex-hub{
  --gcpdex-bg:#0a0a0a;--gcpdex-surface:#141414;--gcpdex-surface2:#1e1e1e;
  --gcpdex-border:#2a2a2a;--gcpdex-text:#e8e8e8;--gcpdex-text2:#999;
  --gcpdex-accent:#00d4aa;--gcpdex-accent2:#00b894;--gcpdex-red:#ff6b6b;--gcpdex-gold:#ffd93d;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  background:var(--gcpdex-bg);color:var(--gcpdex-text);line-height:1.6;
}
.gcpdex-hub a{color:var(--gcpdex-accent);text-decoration:none}
.gcpdex-hub .container{max-width:1200px;margin:0 auto;padding:0 20px}

/* Hero */
.gcpdex-hub .hero{
  padding:80px 0 60px;text-align:center;
  background:
    radial-gradient(ellipse at top, rgba(0,212,170,.12) 0%, transparent 60%),
    radial-gradient(ellipse at bottom, rgba(0,212,170,.06) 0%, transparent 60%),
    var(--gcpdex-bg);
  border-bottom:1px solid var(--gcpdex-border);
}
.gcpdex-hub .hero-badge{display:inline-block;background:var(--gcpdex-surface2);border:1px solid var(--gcpdex-border);border-radius:999px;padding:6px 16px;font-size:.78rem;color:var(--gcpdex-text2);margin-bottom:24px;letter-spacing:.04em}
.gcpdex-hub .hero-title{font-size:clamp(2.2rem,6vw,4.2rem);font-weight:900;letter-spacing:-.03em;margin-bottom:20px;line-height:1.05}
.gcpdex-hub .hero-title span{background:linear-gradient(135deg,var(--gcpdex-accent),var(--gcpdex-accent2));-webkit-background-clip:text;background-clip:text;color:transparent}
.gcpdex-hub .hero-lead{font-size:1.15rem;color:var(--gcpdex-text2);max-width:760px;margin:0 auto 32px;line-height:1.65}
.gcpdex-hub .hero-cta{display:inline-block;background:var(--gcpdex-accent);color:var(--gcpdex-bg);font-weight:700;padding:14px 28px;border-radius:10px;font-size:1rem;transition:all .2s;box-shadow:0 8px 24px rgba(0,212,170,.25)}
.gcpdex-hub .hero-cta:hover{transform:translateY(-1px);background:var(--gcpdex-accent2);box-shadow:0 12px 32px rgba(0,212,170,.35)}

/* Quick nav chips (under hero) */
.gcpdex-hub .hub-quick-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:32px 0 0}
.gcpdex-hub .hub-chip{display:inline-block;padding:7px 14px;border:1px solid var(--gcpdex-border);background:var(--gcpdex-surface);border-radius:999px;font-size:.85rem;color:var(--gcpdex-text);text-decoration:none;transition:all .15s;line-height:1}
.gcpdex-hub .hub-chip:hover{background:var(--gcpdex-accent);color:var(--gcpdex-bg);border-color:var(--gcpdex-accent)}

/* Stats row */
.gcpdex-hub .stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;padding:48px 0 0}
.gcpdex-hub .stat{background:var(--gcpdex-surface);border:1px solid var(--gcpdex-border);border-radius:14px;padding:24px;text-align:center}
.gcpdex-hub .stat .val{font-size:2.2rem;font-weight:800;color:var(--gcpdex-accent);letter-spacing:-.02em}
.gcpdex-hub .stat .label{font-size:.82rem;color:var(--gcpdex-text2);margin-top:6px;text-transform:uppercase;letter-spacing:.05em}

/* Featured (Live Starbucks) */
.gcpdex-hub .featured-section{padding:56px 0 16px}
.gcpdex-hub .featured-card{
  display:block;background:linear-gradient(135deg,var(--gcpdex-surface) 0%,var(--gcpdex-surface2) 100%);
  border:1px solid var(--gcpdex-border);border-radius:20px;padding:40px;text-align:left;
  color:var(--gcpdex-text);transition:all .25s;position:relative;overflow:hidden;
}
.gcpdex-hub .featured-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gcpdex-accent),var(--gcpdex-accent2))}
.gcpdex-hub .featured-card:hover{border-color:var(--gcpdex-accent);transform:translateY(-2px);box-shadow:0 24px 48px rgba(0,0,0,.3)}
.gcpdex-hub .featured-head{margin-bottom:28px}
.gcpdex-hub .featured-label{display:inline-block;background:var(--gcpdex-accent);color:var(--gcpdex-bg);font-size:.7rem;font-weight:800;padding:4px 10px;border-radius:6px;letter-spacing:.1em;margin-bottom:12px}
.gcpdex-hub .featured-h{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;margin-bottom:8px;letter-spacing:-.02em}
.gcpdex-hub .featured-p{color:var(--gcpdex-text2);font-size:1rem;max-width:640px}
.gcpdex-hub .featured-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;padding:20px;background:rgba(0,0,0,.3);border-radius:12px}
.gcpdex-hub .f-stat{text-align:center}
.gcpdex-hub .f-val{font-size:1.4rem;font-weight:800;color:var(--gcpdex-accent)}
.gcpdex-hub .f-label{font-size:.7rem;color:var(--gcpdex-text2);margin-top:2px}
.gcpdex-hub .featured-cta{color:var(--gcpdex-accent);font-weight:600;font-size:.95rem}

/* Coming soon section */
.gcpdex-hub .soon-section{padding:48px 0}
.gcpdex-hub .section-h{font-size:1.5rem;font-weight:700;margin-bottom:6px}
.gcpdex-hub .section-desc{color:var(--gcpdex-text2);margin-bottom:24px}
.gcpdex-hub .chain-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.gcpdex-hub .chain-card{display:flex !important;flex-direction:column;align-items:center;justify-content:space-between;gap:10px;background:var(--gcpdex-surface);border:1px solid var(--gcpdex-border);border-radius:12px;padding:22px 14px 18px;text-align:center;text-decoration:none;color:var(--gcpdex-text);min-height:140px;transition:all .2s}
.gcpdex-hub .chain-card .chain-name{display:block !important;width:100%}
.gcpdex-hub a.chain-card:hover{border-color:var(--gcpdex-accent);transform:translateY(-2px);background:var(--gcpdex-surface2)}
.gcpdex-hub .chain-card.soon{opacity:.55;cursor:default}
.gcpdex-hub .chain-icon{width:40px;height:40px;filter:invert(1) brightness(.85)}
.gcpdex-hub .chain-name{font-size:.95rem;font-weight:600;line-height:1.3;color:var(--gcpdex-text)}
.gcpdex-hub .card-cta{font-size:.78rem;line-height:1;display:inline-block}
.gcpdex-hub .card-cta.live{color:var(--gcpdex-accent);font-weight:600}
.gcpdex-hub .card-cta.soon{color:var(--gcpdex-text2);text-transform:uppercase;letter-spacing:.05em}

/* Methodology + Footer */
.gcpdex-hub .methodology{background:var(--gcpdex-surface);border:1px solid var(--gcpdex-border);border-radius:14px;padding:32px;margin:32px 0}
.gcpdex-hub .methodology h3{font-size:1.1rem;margin-bottom:12px}
.gcpdex-hub .methodology p{color:var(--gcpdex-text2);font-size:.92rem}
.gcpdex-hub .gcpdex-footer{border-top:1px solid var(--gcpdex-border);padding:32px 0;text-align:center;color:var(--gcpdex-text2);font-size:.85rem}

@media(max-width:768px){
  .gcpdex-hub .hero{padding:60px 0 40px}
  .gcpdex-hub .featured-card{padding:28px}
  .gcpdex-hub .featured-stats{grid-template-columns:repeat(2,1fr)}
}
