/*
Theme Name: RaceLine
Theme URI: https://example.com/raceline
Author: Your Name
Author URI: https://example.com
Description: モータースポーツ速報メディア向けの自作WordPressテーマです。ライブティッカー、セクター別ニュースグリッド、ドライバーズスタンディング帯を備えています。
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: raceline
*/

:root{
  --bg:#F5F6F7;
  --bg-raise:#FFFFFF;
  --bg-card:#FFFFFF;
  --line:#E4E6E9;
  --line-strong:#CBCED3;
  --text:#14161A;
  --text-dim:#565B62;
  --text-faint:#8A8F96;
  --red:#D6241C;
  --red-deep:#8F1712;
  --blue:#0B4FA3;
  --yellow:#B67E00;
  --font-display:'Rajdhani', sans-serif;
  --font-body:'Inter', sans-serif;
  --font-mono:'JetBrains Mono', monospace;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img,svg{display:block;max-width:100%;}
ul{list-style:none;}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px;}

/* ---------- sector timing bar (signature accent) ---------- */
/* F1中継のセクタータイム表示(紫=全体最速 / 緑=自己ベスト / 黄=通常)を
   モチーフにした、細い3色バー。光の帯が流れるアニメーション付き。 */
.sector-bar{
  height:4px;
  display:flex;
  position:relative;
  overflow:hidden;
  background:var(--bg-raise);
}
.sector-bar .seg{flex:1;}
.sector-bar .seg.s1{background:#7B2FF7;}
.sector-bar .seg.s2{background:#00C853;}
.sector-bar .seg.s3{background:#FFB300;}
.sector-bar::after{
  content:'';
  position:absolute;
  top:0;left:-30%;
  width:30%;height:100%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.85), transparent);
  animation:sectorSweep 3.4s ease-in-out infinite;
}
@keyframes sectorSweep{
  0%{left:-30%;}
  100%{left:130%;}
}

/* ---------- header ---------- */
.site-header{
  border-bottom:1px solid var(--line);
  background:var(--bg-raise);
  position:relative;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.site-header.has-bg-image::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, var(--header-tint-start, rgba(255,255,255,.90)), var(--header-tint-end, rgba(255,255,255,.94)));
  z-index:0;
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:var(--header-padding, 34px) 0;
  position:relative;
  z-index:1;
}
.logo{
  display:flex;align-items:center;gap:10px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:26px;
  letter-spacing:.02em;
  color:var(--text);
}
.logo .flag-icon{
  flex:0 0 auto;
  display:block;
}
.logo span.accent{color:var(--red);}
.main-nav ul{display:flex;gap:6px;}
.main-nav li{position:relative;}
.main-nav a{
  font-family:var(--font-display);
  font-weight:600;
  font-size:15px;
  letter-spacing:.03em;
  padding:8px 14px;
  border-radius:4px;
  color:var(--text-dim);
  transition:color .15s ease, background .15s ease;
  display:flex;
  align-items:center;
  gap:5px;
}
.main-nav a:hover{color:var(--text);background:var(--bg);}
.main-nav .current-menu-item>a,
.main-nav .current_page_item>a{color:var(--red);}

/* ---------- 子カテゴリのドロップダウン(サブメニュー) ---------- */
.main-nav li.menu-item-has-children > a::after{
  content:'';
  width:6px;height:6px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
  opacity:.6;
}
.main-nav .sub-menu{
  display:none;
  flex-direction:column;
  gap:0;
  position:absolute;
  top:100%;
  left:0;
  min-width:200px;
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:6px;
  box-shadow:0 14px 28px rgba(20,22,26,.10);
  padding:6px;
  z-index:60;
}
.main-nav li:hover > .sub-menu,
.main-nav li:focus-within > .sub-menu{
  display:flex;
}
.main-nav .sub-menu a{
  padding:9px 14px;
  font-size:14px;
  font-weight:500;
  white-space:nowrap;
  border-radius:4px;
  color:var(--text-dim);
}
.main-nav .sub-menu a:hover{background:var(--bg);color:var(--text);}
.main-nav .sub-menu li.menu-item-has-children > a::after{
  transform:rotate(-45deg) translateX(-2px);
}
.main-nav .sub-menu .sub-menu{
  top:0;
  left:100%;
}

.header-actions{display:flex;align-items:center;gap:12px;}

/* ---------- mobile menu toggle ---------- */
.menu-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:32px;height:32px;
  padding:0;
  background:none;
  border:1px solid var(--line-strong);
  border-radius:4px;
  cursor:pointer;
  flex:0 0 auto;
}
.menu-toggle span{
  display:block;
  width:16px;height:2px;
  margin:0 auto;
  background:var(--text);
  border-radius:1px;
  transition:transform .18s ease, opacity .18s ease;
}
.menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle.is-open span:nth-child(2){opacity:0;}
.menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media (max-width:860px){
  .menu-toggle{display:flex;}
  .header-search{display:none;}
  .main-nav{
    display:none;
    position:absolute;
    top:100%;left:0;right:0;
    background:#FFFFFF;
    border-bottom:1px solid var(--line);
    box-shadow:0 12px 20px rgba(20,22,26,.08);
    z-index:50;
  }
  .main-nav.is-open{display:block;}
  .main-nav ul{flex-direction:column;gap:0;padding:8px 0;}
  .main-nav a{display:flex;padding:13px 28px;border-radius:0;}
  .main-nav .sub-menu{
    display:flex;
    position:static;
    flex-direction:column;
    border:none;
    box-shadow:none;
    border-radius:0;
    padding:0;
    background:var(--bg);
  }
  .main-nav .sub-menu a{padding:12px 28px 12px 44px;font-size:13.5px;}
  .main-nav .sub-menu .sub-menu a{padding-left:60px;}
  .main-nav li.menu-item-has-children > a::after{display:none;}
}
@media (min-width:861px){
  .main-nav{display:block !important;}
}

/* ---------- TOPIC ticker ---------- */
.topic-ticker{
  background:var(--bg);
  border-bottom:1px solid var(--line);
}
.topic-ticker-inner{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:12px;
  height:42px;
}
.topic-label{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:7px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:12px;
  letter-spacing:.1em;
  color:var(--red);
  white-space:nowrap;
}
.topic-label::before{
  content:'';
  flex:0 0 auto;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--red);
  animation:topicPulse 1.6s ease-in-out infinite;
}
@keyframes topicPulse{
  0%,100%{opacity:1;}
  50%{opacity:.25;}
}
.topic-divider{
  flex:0 0 auto;
  width:1px;
  height:16px;
  background:var(--line-strong);
}
.topic-slides{
  position:relative;
  flex:1 1 auto;
  min-width:0;
  height:18px;
  overflow:hidden;
}
.topic-slide{
  position:absolute;
  top:0;left:0;right:0;
  display:flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  font-weight:500;
  color:var(--text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  opacity:0;
  transform:translateX(8px);
  transition:opacity .45s ease, transform .45s ease;
  pointer-events:none;
}
.topic-slide::before{
  content:'›';
  flex:0 0 auto;
  color:var(--red);
  font-weight:700;
}
.topic-slide.is-active{
  opacity:1;
  transform:translateX(0);
  pointer-events:auto;
}
.topic-slide:hover{color:var(--red);text-decoration:underline;}
.topic-dots{
  flex:0 0 auto;
  display:flex;
  gap:5px;
}
.topic-dots span{
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--line-strong);
  transition:background .3s ease, transform .3s ease;
}
.topic-dots span.is-active{
  background:var(--red);
  transform:scale(1.3);
}
@media (max-width:480px){
  .topic-dots{display:none;}
}

/* ---------- hero ---------- */
.hero{padding:44px 0 56px;}
.hero-grid{
  display:grid;
  grid-template-columns:1.7fr 1fr;
  gap:24px;
}
@media (max-width:860px){ .hero-grid{grid-template-columns:1fr;} }

.feature-card{
  position:relative;
  border-radius:8px;
  overflow:hidden;
  border:1px solid var(--line);
  background:#FFFFFF;
  box-shadow:0 1px 2px rgba(20,22,26,.04);
  min-height:420px;
  display:flex;
  flex-direction:column;
}
.feature-art{height:230px;position:relative;background:#F5F6F7;overflow:hidden;}
.feature-art img{width:100%;height:100%;object-fit:cover;}
.feature-body{padding:28px 30px 30px;}
.tag-row{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap;}
.tag{
  font-family:var(--font-display);
  font-weight:700;
  font-size:12px;
  letter-spacing:.09em;
  color:#FFF3F2;
  background:var(--red);
  padding:4px 10px;
  border-radius:2px;
}
.feature-meta{
  font-family:var(--font-mono);
  font-size:12px;color:var(--text-faint);
}
.feature-title{
  font-family:var(--font-display);
  font-weight:700;
  font-size:32px;
  line-height:1.2;
  margin:6px 0 12px;
  max-width:92%;
}
.feature-excerpt{color:var(--text-dim);font-size:14.5px;max-width:88%;}

.side-col{display:flex;flex-direction:column;gap:14px;}
.mini-card{
  background:#FFFFFF;
  border:1px solid var(--line);
  border-left:3px solid var(--line-strong);
  border-radius:6px;
  padding:16px 18px;
  flex:1;
  display:block;
  box-shadow:0 1px 2px rgba(20,22,26,.03);
  transition:border-left-color .15s ease, transform .15s ease;
}
.mini-card:hover{
  border-left-color:var(--red);
  transform:translateX(2px);
}
.mini-card .idx{
  font-family:var(--font-mono);
  font-size:11px;color:var(--text-faint);
  letter-spacing:.05em;
}
.mini-card h4{
  font-family:var(--font-display);
  font-weight:600;
  font-size:17px;
  margin:6px 0 6px;
  line-height:1.3;
  color:var(--text);
}
.mini-card p{font-size:13px;color:var(--text-dim);}

/* ---------- standings strip ---------- */
.standings{
  background:#FFFFFF;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:26px 0;
}
.standings-inner{
  display:flex;align-items:flex-start;gap:28px;
  overflow-x:auto;
}
.standings-label{
  flex:0 0 auto;
  font-family:var(--font-display);
  font-weight:700;
  font-size:13px;
  letter-spacing:.08em;
  color:var(--text-dim);
  display:flex;flex-direction:column;gap:2px;
  padding-top:6px;
}
.standings-label b{color:var(--text);font-size:15px;}
.pos-list{display:flex;gap:12px;flex:1;overflow-x:auto;padding-bottom:2px;}
.pos-item{
  flex:0 0 auto;
  width:176px;
  padding:14px 16px 13px;
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:8px;
  display:block;
  position:relative;
  overflow:hidden;
  box-shadow:0 1px 2px rgba(20,22,26,.03);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.pos-item::before{
  content:'';
  position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--red);
  opacity:.18;
  transition:opacity .16s ease;
}
.pos-item:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 22px rgba(20,22,26,.09);
  border-color:var(--line-strong);
}
.pos-item:hover::before{opacity:1;}
.pos-item.is-empty::before{background:var(--text-faint);}
.pos-item.is-empty{cursor:default;}
.pos-item.is-empty:hover{transform:none;box-shadow:0 1px 2px rgba(20,22,26,.03);}

.pos-item .p{
  font-family:var(--font-display);
  font-weight:700;
  font-size:13px;
  letter-spacing:.07em;
  color:var(--red);
  margin-bottom:8px;
  display:block;
}
.pos-item.is-empty .p{color:var(--text-faint);}
.pos-item .n{
  font-size:13.5px;
  color:var(--text);
  font-family:var(--font-body);
  font-weight:600;
  line-height:1.4;
  margin-bottom:10px;
  display:block;
  min-height:38px;
}
.pos-item .t{
  font-size:11px;
  color:var(--text-faint);
  font-family:var(--font-mono);
  display:flex;align-items:center;gap:6px;
}
.pos-item .t::before{
  content:'';
  width:6px;height:6px;border-radius:50%;
  background:#00C853;
  flex:0 0 auto;
}
.pos-item.is-empty .t::before{background:var(--text-faint);}

/* ---------- sector sections ---------- */
.sectors{padding:56px 0;}
.sector{margin-bottom:48px;}
.sector-head{
  display:flex;align-items:baseline;gap:16px;
  margin-bottom:20px;
  border-bottom:2px solid var(--text);
  padding-bottom:14px;
  flex-wrap:wrap;
}
.sector-num{
  font-family:var(--font-mono);
  font-size:13px;color:var(--red);
  letter-spacing:.1em;
  flex:0 0 auto;
}
.sector-name{
  font-family:var(--font-display);
  font-weight:700;
  font-size:21px;
}
.sector-sub{
  font-size:12.5px;color:var(--text-faint);
  margin-left:auto;
  font-family:var(--font-mono);
}
.card-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
}
@media (max-width:860px){ .card-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .card-grid{grid-template-columns:1fr;} }

.article-card{
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:8px;
  overflow:hidden;
  display:block;
  box-shadow:0 1px 2px rgba(20,22,26,.03);
  transition:transform .18s ease, box-shadow .18s ease;
}
.article-card:hover{
  transform:translateY(-3px);
  box-shadow:0 6px 16px rgba(20,22,26,.08);
}
.card-thumb{
  height:130px;position:relative;overflow:hidden;
  background:#F5F6F7;
  border-bottom:1px solid var(--line);
}
.card-thumb img{width:100%;height:100%;object-fit:cover;}
.card-body{padding:16px 18px 20px;}
.card-body .cat{
  font-family:var(--font-mono);
  font-size:11px;color:var(--red);
  letter-spacing:.06em;
  text-transform:uppercase;
}
.card-body h4{
  font-family:var(--font-display);
  font-weight:600;
  font-size:16.5px;
  margin:8px 0 8px;
  line-height:1.32;
  color:var(--text);
}
.card-body p{font-size:13px;color:var(--text-dim);margin-bottom:10px;}
.card-foot{
  display:flex;justify-content:space-between;
  font-family:var(--font-mono);
  font-size:11px;color:var(--text-faint);
}

/* ---------- generic content pages (single / archive / search) ---------- */
.content-wrap{padding:44px 0 64px;}
.page-title{
  font-family:var(--font-display);
  font-weight:700;
  font-size:28px;
  margin-bottom:28px;
  border-bottom:2px solid var(--text);
  padding-bottom:14px;
}
.single-article{
  background:#FFFFFF;
  border:1px solid var(--line);
  border-radius:8px;
  padding:36px 40px;
  box-shadow:0 1px 2px rgba(20,22,26,.03);
}
.single-article .cat{
  font-family:var(--font-mono);
  font-size:12px;color:var(--red);
  letter-spacing:.06em;
}
.single-article h1{
  font-family:var(--font-display);
  font-weight:700;
  font-size:30px;
  margin:10px 0 12px;
  line-height:1.25;
}
.single-article .feature-meta{margin-bottom:20px;display:block;}
.single-thumb{
  margin:20px 0;
  border-radius:6px;
  overflow:hidden;
  aspect-ratio:16/9;
  background:#F5F6F7;
}
.single-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  margin:0;
}
.single-article .entry-content{font-size:15.5px;color:var(--text);}
.single-article .entry-content p{margin-bottom:1.2em;}
.single-article .entry-content img{border-radius:6px;margin:1.2em 0;}

/* カスタムHTMLで埋め込んだiframe(Googleカレンダーなど)がモバイルではみ出さないように */
.entry-content iframe{
  max-width:100%;
  border:1px solid var(--line);
  border-radius:6px;
  margin:1.2em 0;
}
.single-article .entry-content .wp-block-image.is-style-rounded img{border-radius:32px;}
.single-article .entry-content .wp-block-image.is-style-default img{border-radius:6px;}
.single-article .entry-content .wp-block-image.is-style-square img{border-radius:0;}

/* 本文中の見出し(h2/h3/h5)。レベルごとに色とアイコン形状を変えて視認性を上げる */
.entry-content h2,
.entry-content h3,
.entry-content h5{
  display:flex;
  align-items:center;
  gap:13px;
  font-family:var(--font-display);
  color:var(--text);
}

.entry-content h2{
  font-size:27px;
  font-weight:700;
  margin:2.3em 0 1em;
  padding-bottom:.5em;
  border-bottom:2px solid var(--line);
}
.entry-content h2:first-child{margin-top:0;}
.entry-content h2::before{
  content:'';
  flex:0 0 auto;
  width:16px;height:16px;
  background-image:
    linear-gradient(45deg,#14161A 25%,transparent 25%,transparent 75%,#14161A 75%),
    linear-gradient(45deg,#14161A 25%,transparent 25%,transparent 75%,#14161A 75%);
  background-size:8px 8px;
  background-position:0 0,4px 4px;
  background-color:#FFFFFF;
  border:1px solid var(--line-strong);
  border-radius:2px;
}

.entry-content h3{
  font-size:20px;
  font-weight:600;
  margin:1.9em 0 .8em;
}
.entry-content h3::before{
  content:'';
  flex:0 0 auto;
  width:11px;height:11px;
  border-radius:50%;
  border:2px solid var(--blue);
  background:#FFFFFF;
}

.entry-content h5{
  font-family:var(--font-mono);
  font-size:12.5px;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--text-dim);
  margin:1.6em 0 .6em;
}
.entry-content h5::before{
  content:'';
  flex:0 0 auto;
  width:8px;height:8px;
  background:#FFB300;
  transform:rotate(45deg);
}

/* 本文中の表(table) */
.entry-content .wp-block-table{
  overflow-x:auto;
  margin:0 0 1.6em;
  -webkit-overflow-scrolling:touch;
}
.entry-content table{
  width:100%;
  min-width:420px;
  border-collapse:collapse;
  margin:0;
  font-size:14px;
}
.entry-content th,
.entry-content td{
  padding:11px 15px;
  border-bottom:1px solid var(--line);
  text-align:left;
  vertical-align:top;
}
.entry-content thead th{
  font-family:var(--font-display);
  font-weight:700;
  font-size:13px;
  letter-spacing:.04em;
  color:#FFFFFF;
  background:var(--text);
  border-bottom:none;
  white-space:nowrap;
}
.entry-content tbody tr:nth-child(even){background:#F5F6F7;}
.entry-content tfoot td{
  font-family:var(--font-mono);
  font-weight:700;
  border-top:2px solid var(--text);
  border-bottom:none;
}

/* <table>タグを使わない表レイアウト(グループ+カラムブロック用) */
.entry-content .data-table{
  border:1px solid var(--line);
  border-radius:6px;
  overflow-x:auto;
  margin:0 0 1.6em;
  -webkit-overflow-scrolling:touch;
}
.entry-content .data-table .data-row{
  display:flex;
  min-width:420px;
  border-bottom:1px solid var(--line);
}
.entry-content .data-table .data-row:last-child{
  border-bottom:none;
}
.entry-content .data-table .data-row > *{
  flex:1;
  margin:0;
  padding:11px 15px;
  font-size:14px;
}
.entry-content .data-table .data-row.is-header{
  background:var(--text);
}
.entry-content .data-table .data-row.is-header > *{
  font-family:var(--font-display);
  font-weight:700;
  font-size:13px;
  letter-spacing:.04em;
  color:#FFFFFF;
}
.entry-content .data-table .data-row:not(.is-header):nth-child(even){
  background:#F5F6F7;
}

/* 本文中のリスト(ul/ol) */
.entry-content ul,
.entry-content ol{
  margin:0 0 1.6em 0;
  padding-left:0;
}
.entry-content li{
  position:relative;
  padding-left:26px;
  line-height:1.75;
  margin-bottom:.55em;
}
.entry-content li:last-child{margin-bottom:0;}

.entry-content ul li::before{
  content:'';
  position:absolute;
  left:4px;
  top:.75em;
  width:5px;
  height:5px;
  border-radius:50%;
  border:1.5px solid var(--text-faint);
}

.entry-content ol{counter-reset:raceline-item;}
.entry-content ol li{
  counter-increment:raceline-item;
  padding-left:36px;
}
.entry-content ol li::before{
  content:counter(raceline-item, decimal-leading-zero);
  position:absolute;
  left:0;
  top:-2px;
  font-family:var(--font-display);
  font-weight:600;
  font-size:21px;
  line-height:1.2;
  color:var(--red);
  opacity:.8;
}

.entry-content li > ul,
.entry-content li > ol{
  margin-top:.55em;
  margin-bottom:0;
  margin-left:8px;
}
.archive-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
}
@media (max-width:860px){ .archive-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .archive-grid{grid-template-columns:1fr;} }

.pagination{
  display:flex;gap:10px;margin-top:32px;
  font-family:var(--font-mono);font-size:13px;
}
.pagination a, .pagination span{
  padding:6px 12px;border:1px solid var(--line);border-radius:4px;color:var(--text-dim);
}
.pagination .current{color:var(--text);border-color:var(--line-strong);}

/* ---------- footer ---------- */
.site-footer{
  border-top:1px solid var(--line);
  padding:36px 0;
  background:#FFFFFF;
}
.footer-inner{
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:16px;
}
.footer-inner .logo{font-size:18px;}
.footer-links{display:flex;gap:22px;font-size:13px;color:var(--text-dim);}
.footer-links a:hover{color:var(--text);}
.footer-copy{font-size:12px;color:var(--text-faint);font-family:var(--font-mono);}
