/*
Theme Name: RideThru Cinematic Demo
Theme URI: https://ridethrujapan.com/
Author: OpenAI
Description: Stable cinematic WordPress theme for Ride Thru Japan with Project 47 grids, Ride Thru Tested, sponsors/partners, support, contact, shop, WooCommerce styling, and SEO metadata without fragile virtual routing.
Version: 3.1.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: ridethru-cinematic
*/

:root{
  --rt-bg:#070708;
  --rt-panel:#101114;
  --rt-panel-2:#14161a;
  --rt-text:#ffffff;
  --rt-muted:#d0d3d9;
  --rt-line:rgba(255,255,255,.12);
  --rt-accent:#f1bf23;
  --rt-shadow:0 24px 80px rgba(0,0,0,.35);
  --rt-radius:22px;
  --rt-container:1480px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--rt-text);
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  background:
    radial-gradient(circle at 15% 20%, rgba(255,255,255,.05), transparent 25%),
    radial-gradient(circle at 90% 15%, rgba(255,255,255,.05), transparent 20%),
    linear-gradient(180deg,#0a0a0c,#060607 34%,#0a0a0d 100%);
  line-height:1.55;
}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%;height:auto}
.container{width:min(calc(100% - 36px), var(--rt-container));margin:0 auto}
.screen-reader-text{position:absolute;left:-9999px}
.site-header{
  position:sticky;top:0;z-index:80;
  background:rgba(5,5,7,.82);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.header-inner{
  min-height:74px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:26px;
}
.brand{
  font-size:clamp(1.4rem,2vw,2.3rem);
  line-height:1;
  letter-spacing:.03em;
  font-weight:900;
  text-transform:uppercase;
}
.custom-logo{max-height:64px;width:auto}
.primary-nav ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  justify-content:center;
  gap:26px;
  flex-wrap:wrap;
}
.primary-nav a{
  color:var(--rt-muted);
  font-size:.95rem;
  text-transform:uppercase;
  font-weight:800;
  letter-spacing:.08em;
}
.primary-nav a:hover,
.primary-nav .current-menu-item > a{color:#fff}
.header-tools{
  display:flex;
  align-items:center;
  gap:14px;
}
.icon-btn,.mobile-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;height:42px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  color:#fff;
  background:rgba(255,255,255,.03);
  font-size:1.1rem;
}
.mobile-toggle{display:none;width:auto;padding:0 14px;border-radius:12px;font-weight:800}

.hero{
  position:relative;
  overflow:hidden;
  border-bottom:1px solid var(--rt-line);
}
.hero::before{
  content:"";
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.72)),
    radial-gradient(circle at 75% 20%, rgba(255,255,255,.06), transparent 30%),
    radial-gradient(circle at 10% 10%, rgba(241,191,35,.14), transparent 18%);
  pointer-events:none;
}
.hero.has-image{
  background-size:cover;
  background-position:center;
}
.hero-inner{
  position:relative;
  z-index:1;
  padding:58px 0 34px;
  text-align:center;
}
.hero-media{
  width:min(100%, 980px);
  margin:0 auto 20px;
  border:4px solid rgba(0,0,0,.6);
  box-shadow:var(--rt-shadow);
  background:#000;
  position:relative;
}
.hero-media .hero-thumb{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
}
.play-overlay{
  position:absolute;
  inset:50% auto auto 50%;
  transform:translate(-50%,-50%);
  width:110px;height:78px;
  border-radius:20px;
  background:rgba(225,42,18,.9);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 30px rgba(0,0,0,.3);
}
.play-overlay:before{
  content:"";
  border-left:22px solid #fff;
  border-top:14px solid transparent;
  border-bottom:14px solid transparent;
  margin-left:6px;
}
.hero-title{
  font-size:clamp(2.2rem,5vw,4.2rem);
  line-height:.95;
  margin:0 0 10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:-.02em;
}
.hero-subtitle{
  margin:0 0 22px;
  font-size:clamp(1.2rem,2vw,2rem);
  color:#f0f0f2;
}
.hero-actions{
  display:flex;
  justify-content:center;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:16px;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:150px;
  padding:14px 22px;
  border-radius:8px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.btn-accent{background:var(--rt-accent);color:#000}
.btn-ghost{
  background:transparent;
  border:1px solid rgba(255,255,255,.16);
  color:#fff;
}
.hero-copy{
  width:min(100%, 760px);
  margin:0 auto;
  color:#f1f1f1;
  font-size:1.02rem;
}
.hero-copy a{color:var(--rt-accent);font-weight:900;text-transform:uppercase;letter-spacing:.04em}

.section{
  padding:28px 0 18px;
  border-bottom:1px solid var(--rt-line);
}
.section-header{
  margin-bottom:14px;
}
.section-title{
  margin:0;
  font-size:clamp(1.6rem,3vw,2.35rem);
  line-height:1;
  text-transform:uppercase;
  font-weight:900;
  letter-spacing:-.02em;
}
.section-title::after{
  content:"";
  display:block;
  width:160px;
  height:4px;
  margin-top:10px;
  background:var(--rt-accent);
}
.row{
  position:relative;
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(240px, 1fr);
  gap:18px;
  overflow:auto;
  padding:8px 2px 16px;
  scroll-snap-type:x proximity;
}
.row::-webkit-scrollbar{height:10px}
.row::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:999px}
.row-arrow{
  display:none;
}
.card{
  scroll-snap-align:start;
}
.video-card,.shop-card,.info-panel{
  background:linear-gradient(180deg,var(--rt-panel),var(--rt-panel-2));
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 10px 30px rgba(0,0,0,.18);
}
.video-card .thumb,.shop-card .thumb{
  position:relative;
  overflow:hidden;
  aspect-ratio:16/9;
  background:#0b0b0d;
}
.video-card .thumb img,.shop-card .thumb img{
  width:100%;height:100%;object-fit:cover;
}
.video-card h3,.shop-card h3{
  margin:14px 14px 6px;
  font-size:1.02rem;
  line-height:1.2;
}
.video-card p,.shop-card p{
  margin:0 14px 10px;
  color:var(--rt-muted);
  font-size:.93rem;
}
.card-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:0 14px 16px;
}
.watch-link,.read-link{
  font-size:.95rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.watch-link{
  background:var(--rt-accent);
  color:#000;
  padding:10px 14px;
}
.read-link{color:var(--rt-accent)}
.thumb-badge{
  position:absolute;
  left:12px;bottom:12px;
  padding:8px 12px;
  background:rgba(0,0,0,.72);
  border:1px solid rgba(255,255,255,.14);
  text-transform:uppercase;
  font-weight:900;
  font-size:.8rem;
  letter-spacing:.04em;
}
.merch-grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(0,1fr));
  gap:18px;
}

.store-row .shop-card .thumb{
  background:#111216;
}
.store-empty{
  padding:20px;
  max-width:520px;
}
.store-empty h3{
  margin:0 0 8px;
  font-size:1.4rem;
  text-transform:uppercase;
}
.store-empty .watch-link{
  display:inline-block;
  margin-top:8px;
}

.instagram-wrap{
  display:grid;
  grid-template-columns:1.3fr .7fr;
  gap:22px;
  align-items:center;
}
.instagram-strip{
  display:grid;
  grid-template-columns:repeat(8, 1fr);
  gap:10px;
}
.instagram-cell{
  aspect-ratio:1/1;
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(135deg,#212227,#141518);
  overflow:hidden;
}
.instagram-cell img{width:100%;height:100%;object-fit:cover}
.subscribe-box{
  padding:20px;
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,#121317,#0d0e12);
}
.subscribe-box h3{margin:0 0 10px;font-size:1.6rem;font-style:italic}
.subscribe-form{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
}
.subscribe-form input{
  width:100%;
  padding:14px;
  border:1px solid rgba(255,255,255,.12);
  background:#fff;
  color:#000;
}
.subscribe-form button{
  border:0;
  background:#4a4c53;
  color:#fff;
  padding:0 18px;
  font-weight:900;
  text-transform:uppercase;
}
.site-footer{
  padding:22px 0 28px;
  background:#09090b;
}
.footer-bar{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  flex-wrap:wrap;
}
.footer-links{
  display:flex;gap:18px;flex-wrap:wrap;
  color:var(--rt-muted);
}
.footer-links a:hover{color:#fff}
.footer-copy{color:var(--rt-muted);font-size:.92rem}

.single-wrap{
  padding:36px 0;
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:24px;
}
.panel{
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,var(--rt-panel),var(--rt-panel-2));
  padding:22px;
}
.embed{
  width:100%;
  aspect-ratio:16/9;
  border:0;
  background:#000;
  margin-bottom:20px;
}
.sidebar-meta{
  display:grid;
  gap:10px;
  color:var(--rt-muted);
}
.entry-content p{color:#d7d9de}
.entry-content h2,.entry-content h3,.entry-content h4{line-height:1.15}

@media (max-width: 1100px){
  .merch-grid{grid-template-columns:repeat(3, minmax(0,1fr))}
  
.store-row .shop-card .thumb{
  background:#111216;
}
.store-empty{
  padding:20px;
  max-width:520px;
}
.store-empty h3{
  margin:0 0 8px;
  font-size:1.4rem;
  text-transform:uppercase;
}
.store-empty .watch-link{
  display:inline-block;
  margin-top:8px;
}

.instagram-wrap{grid-template-columns:1fr}
  .instagram-strip{grid-template-columns:repeat(6,1fr)}
  .single-wrap{grid-template-columns:1fr}
}
@media (max-width: 820px){
  .header-inner{grid-template-columns:auto auto auto}
  .primary-nav{
    display:none;
    position:absolute;
    top:74px;left:0;right:0;
    background:#09090b;
    border-bottom:1px solid rgba(255,255,255,.08);
    padding:14px 18px;
  }
  .primary-nav.open{display:block}
  .primary-nav ul{display:grid;justify-content:start;gap:12px}
  .mobile-toggle{display:inline-flex}
  .hero-inner{padding-top:26px}
  .play-overlay{width:88px;height:62px}
  .row{grid-auto-columns:minmax(260px, 78%)}
}
@media (max-width: 620px){
  .container{width:min(calc(100% - 22px), var(--rt-container))}
  .merch-grid{grid-template-columns:repeat(2, minmax(0,1fr))}
  .instagram-strip{grid-template-columns:repeat(4,1fr)}
  .subscribe-form{grid-template-columns:1fr}
  .hero-title{font-size:2.45rem}
  .hero-subtitle{font-size:1.15rem}
}

/* Performance-focused additions */
.hero-media img,
.rt-lite-video img{
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
}
.section{
  content-visibility:auto;
  contain-intrinsic-size:1px 520px;
}
.archive-wrap{padding:36px 0}
.archive-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.rt-lite-video{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  background:#000;
  margin-bottom:20px;
  overflow:hidden;
}
.rt-lite-video__button{
  position:relative;
  display:block;
  width:100%;
  height:100%;
  background:#000;
}
.rt-lite-video__button img{
  height:100%;
}
.rt-lite-video .embed{
  display:block;
  height:100%;
  margin:0;
}
@media (max-width: 900px){
  .archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 620px){
  .archive-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
}

/* Project 47 page archive */
.compact-hero{
  padding:54px 0 20px;
}
.project-intro{
  max-width:820px;
  margin-top:16px;
}
.project-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.project-card{
  min-width:0;
}
@media (max-width:900px){
  .project-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:620px){
  .project-grid{grid-template-columns:1fr;}
}


/* v2.3 clean content hubs + shop rebuild */
.clean-grid-hero{
  border-bottom:1px solid var(--rt-line);
  background:
    radial-gradient(circle at 12% 20%, rgba(241,191,35,.14), transparent 22%),
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,0));
}
.eyebrow{
  margin:0 0 10px;
  color:var(--rt-accent);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:900;
  font-size:.85rem;
}
.page-intro{
  max-width:900px;
  margin:18px 0 0;
  color:#e2e4e9;
  font-size:clamp(1rem,1.5vw,1.18rem);
}
.clean-grid-section{
  padding-top:34px;
  padding-bottom:34px;
}
.content-card-grid,
.project-grid,
.product-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  align-items:stretch;
}
.content-card-grid .card,
.product-grid .card,
.project-grid .card{
  min-width:0;
  height:100%;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:18px;
}
.content-card-grid .card p,
.product-grid .card p,
.project-grid .card p{
  flex:1 1 auto;
}
.content-card-grid .card-actions,
.product-grid .card-actions,
.project-grid .card-actions{
  margin-top:auto;
}
.thumb-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;height:100%;
  color:var(--rt-muted);
  text-transform:uppercase;
  font-weight:900;
  letter-spacing:.08em;
  background:linear-gradient(135deg,#1b1c21,#0c0d10);
}
.section-header-split{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
}
.section-link{
  white-space:nowrap;
  padding-bottom:4px;
}
.empty-panel h3{
  margin-top:0;
  text-transform:uppercase;
}
.product-grid .shop-card .thumb,
.woocommerce ul.products li.product a img{
  background:#f2f2f2;
}
.product-card .price,
.shop-card .price,
.woocommerce .price{
  color:#fff;
  font-weight:900;
}
.product-card .price del,
.woocommerce .price del{
  color:var(--rt-muted);
  font-weight:500;
}
.product-actions .added_to_cart{
  color:var(--rt-accent);
  font-weight:900;
  text-transform:uppercase;
}

/* WooCommerce shop, product, cart and checkout styling */
.woocommerce-page-wrap{
  padding:42px 0;
}
.woo-container,
.woocommerce-shell{
  color:var(--rt-text);
}
.woocommerce .woocommerce-breadcrumb{
  color:var(--rt-muted);
  margin:0 0 18px;
}
.woocommerce .woocommerce-breadcrumb a{color:var(--rt-accent);font-weight:800}
.woocommerce-products-header,
.woocommerce div.product,
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce,
.woocommerce-order{
  background:linear-gradient(180deg,var(--rt-panel),var(--rt-panel-2));
  border:1px solid rgba(255,255,255,.08);
  border-radius:22px;
  padding:24px;
  box-shadow:0 16px 50px rgba(0,0,0,.2);
}
.woocommerce-products-header{
  margin-bottom:24px;
}
.woocommerce-products-header__title,
.woocommerce div.product .product_title,
.woocommerce-page .entry-title{
  margin-top:0;
  font-size:clamp(1.8rem,3vw,3rem);
  line-height:1;
  text-transform:uppercase;
  letter-spacing:-.02em;
}
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count{
  color:var(--rt-muted);
}
.woocommerce .woocommerce-ordering select,
.woocommerce select,
.woocommerce input.input-text,
.woocommerce textarea,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea{
  width:100%;
  border:1px solid rgba(255,255,255,.16);
  background:#fff;
  color:#050506;
  padding:12px 14px;
  border-radius:8px;
}
.woocommerce ul.products{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;
  margin:24px 0 0;
  padding:0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{display:none}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  float:none;
  width:auto !important;
  margin:0 !important;
  background:linear-gradient(180deg,var(--rt-panel),var(--rt-panel-2));
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  padding:0 0 16px;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,.18);
}
.woocommerce ul.products li.product a img{
  width:100%;
  aspect-ratio:1/1;
  height:auto;
  object-fit:cover;
  margin:0 0 14px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2{
  color:#fff;
  font-size:1rem;
  line-height:1.2;
  padding:0 14px;
  margin:0 0 8px;
}
.woocommerce ul.products li.product .price{
  display:block;
  padding:0 14px;
  margin-bottom:12px;
}
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .button,
.woocommerce .cart .button,
.woocommerce .checkout-button,
.woocommerce ul.products li.product .button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:8px;
  background:var(--rt-accent) !important;
  color:#000 !important;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  padding:12px 16px;
  line-height:1.1;
}
.woocommerce ul.products li.product .button{
  margin:0 14px;
}
.woocommerce a.added_to_cart{
  display:inline-flex;
  margin:12px 14px 0;
  color:var(--rt-accent);
  font-weight:900;
  text-transform:uppercase;
}
.woocommerce span.onsale{
  min-height:auto;
  min-width:auto;
  padding:7px 10px;
  border-radius:999px;
  background:var(--rt-accent);
  color:#000;
  font-weight:900;
  line-height:1;
  text-transform:uppercase;
}
.woocommerce div.product div.images,
.woocommerce div.product div.summary{
  margin-bottom:0;
}
.woocommerce div.product div.images img{
  border-radius:16px;
  background:#f4f4f4;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  color:#fff;
  font-size:1.45rem;
}
.woocommerce div.product form.cart{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  margin-top:24px;
}
.woocommerce .quantity .qty{
  width:84px;
  height:44px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:8px;
  background:#fff;
  color:#000;
  font-weight:800;
}
.woocommerce-tabs,
.related.products,
.up-sells.products{
  margin-top:28px;
  background:linear-gradient(180deg,var(--rt-panel),var(--rt-panel-2));
  border:1px solid rgba(255,255,255,.08);
  border-radius:22px;
  padding:22px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs{
  padding:0;
  margin:0 0 18px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:#191b20;
  border:1px solid rgba(255,255,255,.08);
  border-radius:8px 8px 0 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{color:#fff}
.woocommerce table.shop_table{
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  color:#111;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td{
  border-color:rgba(0,0,0,.12);
}
.woocommerce-cart-form,
.cart-collaterals,
.woocommerce-checkout-review-order,
.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields,
.woocommerce-checkout-payment{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  padding:18px;
  margin-bottom:18px;
}
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals{
  float:none;
  width:100%;
}
.woocommerce-checkout #payment{
  background:#fff;
  color:#111;
  border-radius:14px;
}
.woocommerce-checkout #payment ul.payment_methods{
  border-bottom:1px solid rgba(0,0,0,.12);
}
.woocommerce-error,
.woocommerce-info,
.woocommerce-message{
  border-top-color:var(--rt-accent);
  background:#fff;
  color:#111;
}
.woocommerce-info::before,
.woocommerce-message::before{color:var(--rt-accent)}

@media (max-width: 1100px){
  .woocommerce ul.products{grid-template-columns:repeat(3,minmax(0,1fr));}
  .content-card-grid,.project-grid,.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 720px){
  .woocommerce-page-wrap{padding:24px 0;}
  .woocommerce-products-header,
  .woocommerce div.product,
  .woocommerce-cart .woocommerce,
  .woocommerce-checkout .woocommerce,
  .woocommerce-account .woocommerce,
  .woocommerce-order{padding:16px;border-radius:16px;}
  .woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
  .content-card-grid,.project-grid,.product-grid{grid-template-columns:1fr;gap:16px;}
  .section-header-split{display:block;}
  .section-link{display:inline-block;margin-top:12px;}
}
@media (max-width: 430px){
  .woocommerce ul.products{grid-template-columns:1fr;}
}

/* Ride Thru Tested hub */
.tested-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:26px;
}
.tested-tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:11px 16px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  color:#fff;
  background:rgba(255,255,255,.05);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.045em;
  font-size:.82rem;
}
.tested-tab:hover,
.tested-tab:focus{
  border-color:var(--rt-accent);
  color:var(--rt-accent);
}
.tested-tab.is-active{
  background:var(--rt-accent);
  border-color:var(--rt-accent);
  color:#000;
}
.section-kicker{
  color:var(--rt-muted);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.78rem;
}
@media (max-width:720px){
  .tested-tabs{gap:8px;margin-top:20px;}
  .tested-tab{width:100%;}
}

/* v2.5 SEO discovery and internal-linking upgrades */
.seo-home-intro,
.seo-copy-section,
.seo-path-section{
  content-visibility:auto;
  contain-intrinsic-size:1px 420px;
}
.seo-copy-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  gap:22px;
  align-items:stretch;
}
.seo-copy-main h2,
.seo-copy-side h2,
.seo-link-panel h2{
  margin:0 0 12px;
  font-size:clamp(1.35rem,2.2vw,2rem);
  line-height:1.05;
  text-transform:uppercase;
  letter-spacing:-.02em;
}
.seo-copy-main p,
.seo-copy-side li,
.seo-link-panel p,
.single-dek{
  color:#e0e3e8;
  font-size:1.02rem;
}
.seo-copy-main p:last-child{margin-bottom:0}
.seo-copy-side ul{
  margin:12px 0 0;
  padding-left:20px;
  color:#e0e3e8;
}
.seo-copy-side li{margin:8px 0}
.seo-actions{margin-top:24px;margin-bottom:0}
.seo-mini-links{
  display:grid;
  gap:10px;
  margin-top:14px;
}
.seo-mini-links a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  color:#fff;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.seo-mini-links a::after{content:"→";color:var(--rt-accent)}
.seo-link-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.seo-link-grid a{
  display:grid;
  gap:8px;
  padding:18px;
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;
  background:linear-gradient(180deg,var(--rt-panel),var(--rt-panel-2));
  min-height:150px;
}
.seo-link-grid strong{
  color:#fff;
  text-transform:uppercase;
  line-height:1.1;
  font-size:1.05rem;
}
.seo-link-grid span{color:var(--rt-muted)}
.seo-link-grid a:hover{
  border-color:rgba(241,191,35,.55);
  transform:translateY(-1px);
}
.seo-link-panel{
  margin-top:28px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.1);
}
.single-eyebrow{margin-top:0}
.single-dek{
  margin:0 0 18px;
  max-width:860px;
}
.project-seo-intro{padding-top:28px;padding-bottom:28px}
.seo-landing-hero .section-title{max-width:920px}
@media (max-width:900px){
  .seo-copy-grid{grid-template-columns:1fr}
  .seo-link-grid{grid-template-columns:1fr}
}


/* v2.5.2 Support page */
.support-hero .page-intro{max-width:900px;}
.support-grid.seo-link-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.support-grid.seo-link-grid a{min-height:170px;}
.support-shop-section .empty-panel{max-width:720px;}
@media (max-width:1100px){.support-grid.seo-link-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:720px){.support-grid.seo-link-grid{grid-template-columns:1fr;}}

/* v2.6 complete hub pages: fast shop + built-in contact */
.contact-layout{align-items:start;}
.contact-form-panel h2,
.contact-side-panel h2{margin-top:0;text-transform:uppercase;letter-spacing:-.02em;}
.rt-contact-form{display:grid;gap:16px;margin-top:18px;}
.rt-contact-form p{margin:0;}
.rt-contact-form label{display:block;margin:0 0 8px;color:#fff;font-weight:900;text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;}
.rt-contact-form label span{color:var(--rt-accent);}
.rt-contact-form input,
.rt-contact-form select,
.rt-contact-form textarea{
  width:100%;
  border:1px solid rgba(255,255,255,.14);
  background:#fff;
  color:#07080b;
  border-radius:10px;
  padding:13px 14px;
  font:inherit;
}
.rt-contact-form textarea{resize:vertical;min-height:180px;}
.rt-contact-form .two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.rt-hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.rt-form-notice{padding:13px 15px;border-radius:12px;margin:14px 0;color:#fff;font-weight:800;}
.rt-form-notice.is-ok{background:rgba(45,140,80,.22);border:1px solid rgba(75,200,120,.36);}
.rt-form-notice.is-error{background:rgba(160,40,40,.22);border:1px solid rgba(240,80,80,.36);}
.shop-grid-section .product-grid{margin-top:8px;}
.shop-help-section{padding-top:10px;}
.rt-hub-shop .shop-card,
.rt-hub-contact .panel,
.rt-hub-support .panel{box-shadow:0 18px 42px rgba(0,0,0,.22);}
@media (max-width:720px){.rt-contact-form .two-col{grid-template-columns:1fr;}.contact-side-panel{order:-1;}}


/* v2.7 support page hardening */
.support-page-main .support-donate-section { padding-top: 3rem; }
.support-donate-card {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(260px, .7fr);
  gap: 2rem;
  align-items: center;
}
.support-paypal-widget {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: .75rem;
}
.btn-paypal {
  background: #ffc439;
  color: #111 !important;
  border-color: #ffc439;
  box-shadow: 0 12px 30px rgba(255,196,57,.22);
}
.btn-paypal:hover { filter: brightness(.96); transform: translateY(-1px); }
.support-paypal-widget form { margin: 0; }
.support-paypal-widget input[type="image"] { max-width: 260px; height: auto; display: block; }
.support-admin-note { font-size: .85rem; opacity: .7; margin: 0; }
.support-grid.seo-link-grid a { min-height: 150px; }
@media (max-width: 760px) {
  .support-donate-card { grid-template-columns: 1fr; }
  .support-paypal-widget { align-items: stretch; }
  .support-paypal-widget .btn { text-align: center; }
}


/* v3.1 Sponsors / Partners section */
.partners-section{padding-top:clamp(44px,6vw,84px);padding-bottom:clamp(44px,6vw,84px);}
.partners-intro{max-width:880px;color:var(--rt-muted);font-size:1.04rem;margin:0 0 24px;}
.partners-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  align-items:stretch;
}
.partner-card{
  display:grid;
  grid-template-columns:minmax(150px,.34fr) minmax(0,.66fr);
  gap:20px;
  align-items:center;
  padding:24px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:var(--rt-radius);
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.026));
  box-shadow:0 18px 52px rgba(0,0,0,.22);
  min-height:230px;
}
.partner-logo-box{
  min-height:132px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.035);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  overflow:hidden;
}
.partner-logo-box img{max-height:96px;width:auto;object-fit:contain;}
.partner-text-logo{
  color:#fff;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-size:clamp(1.05rem,2vw,1.55rem);
  line-height:1.05;
  text-align:center;
}
.partner-body h3{margin:0 0 8px;font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.08;text-transform:uppercase;letter-spacing:-.02em;}
.partner-body p{margin:0 0 18px;color:#e1e3e8;font-size:1rem;}
.partner-body .read-link{font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--rt-accent);}
.partner-body .read-link::after{content:"";}
.partners-page .partners-section{padding-top:24px;}
@media (max-width:980px){.partners-grid{grid-template-columns:1fr}.partner-card{grid-template-columns:1fr}.partner-logo-box{min-height:112px}}

/* WooCommerce variation dropdown visibility fix */
.woocommerce div.product form.cart table.variations,
.woocommerce div.product form.cart .variations,
.woocommerce div.product form.cart .variations tbody,
.woocommerce div.product form.cart .variations tr,
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th{
  color:#fff;
}
.woocommerce div.product form.cart .variations label,
.woocommerce div.product form.cart .variations .label,
.woocommerce div.product form.cart .variations td.label,
.woocommerce div.product form.cart .variations th.label{
  color:#fff !important;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.woocommerce div.product form.cart .variations select,
.woocommerce div.product form.cart table.variations select,
.woocommerce div.product form.cart .variations td.value select,
.woocommerce div.product form.cart .variations .value select,
.woocommerce .variations select,
.woocommerce select[name^="attribute_"]{
  background:#111317 !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.28) !important;
  border-radius:8px;
  min-height:44px;
  padding:11px 14px;
  width:100%;
  max-width:100%;
}
.woocommerce div.product form.cart .variations select option,
.woocommerce .variations select option,
.woocommerce select[name^="attribute_"] option{
  background:#111317 !important;
  color:#fff !important;
}
.woocommerce div.product form.cart .variations select:focus,
.woocommerce select[name^="attribute_"]:focus{
  outline:2px solid var(--rt-accent);
  outline-offset:2px;
}
.woocommerce div.product form.cart .variations .reset_variations{
  color:var(--rt-accent) !important;
  font-weight:800;
  margin-left:8px;
}
.woocommerce div.product .single_variation,
.woocommerce div.product .woocommerce-variation-description,
.woocommerce div.product .woocommerce-variation-price,
.woocommerce div.product .woocommerce-variation-availability{
  color:#fff;
}
.woocommerce div.product .stock,
.woocommerce div.product .woocommerce-variation-availability .stock{
  color:#fff !important;
}
/* Some variation/swatch plugins output buttons/spans instead of native selects. */
.woocommerce div.product .variations .button-variable-item,
.woocommerce div.product .variations .variable-item,
.woocommerce div.product .variations .swatch,
.woocommerce div.product .variations .cfvsw-swatches-option,
.woocommerce div.product .variations .wvs-archive-variable-wrapper .variable-item{
  color:#fff !important;
  border-color:rgba(255,255,255,.35) !important;
}
.woocommerce div.product .variations .button-variable-item span,
.woocommerce div.product .variations .variable-item span,
.woocommerce div.product .variations .cfvsw-swatches-option span{
  color:#fff !important;
}


/* Hard fix: WooCommerce variable product dropdowns on dark product pages.
   Some browsers/plugin styles use -webkit-text-fill-color or load after the theme,
   so this is deliberately specific and repeated late via functions.php too. */
body.single-product .summary form.variations_form table.variations select,
body.single-product .summary form.cart table.variations select,
body.single-product .summary .variations select,
body.single-product .summary select[name^="attribute_"],
body.single-product .summary select[id^="pa_"],
body.single-product .product .summary select,
.woocommerce.single-product div.product .summary select,
.woocommerce-page.single-product div.product .summary select,
.woocommerce div.product form.cart .variations td.value select,
.woocommerce div.product form.cart table.variations td.value select,
.woocommerce div.product form.variations_form .variations select,
.woocommerce div.product form.cart select[name*="attribute"],
.woocommerce div.product form.cart select[id^="pa_"]{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  caret-color:#ffffff !important;
  background-color:#111317 !important;
  background:#111317 !important;
  border-color:rgba(255,255,255,.35) !important;
  opacity:1 !important;
  text-shadow:none !important;
}
body.single-product .summary form.variations_form table.variations select option,
body.single-product .summary form.cart table.variations select option,
body.single-product .summary .variations select option,
body.single-product .summary select[name^="attribute_"] option,
body.single-product .summary select[id^="pa_"] option,
.woocommerce div.product form.cart .variations select option,
.woocommerce div.product form.variations_form .variations select option{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  background:#111317 !important;
}
body.single-product .summary form.variations_form table.variations select option:checked,
body.single-product .summary form.cart table.variations select option:checked,
.woocommerce div.product form.cart .variations select option:checked{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  background:#2a2d34 !important;
}
body.single-product .summary form.variations_form table.variations select:disabled,
body.single-product .summary form.cart table.variations select:disabled,
.woocommerce div.product form.cart .variations select:disabled{
  color:rgba(255,255,255,.72) !important;
  -webkit-text-fill-color:rgba(255,255,255,.72) !important;
}
body.single-product .summary form.variations_form table.variations select:-webkit-autofill,
body.single-product .summary form.cart table.variations select:-webkit-autofill{
  -webkit-text-fill-color:#ffffff !important;
  box-shadow:0 0 0 1000px #111317 inset !important;
}
body.single-product .summary form.variations_form table.variations .reset_variations,
body.single-product .summary form.cart table.variations .reset_variations,
.woocommerce div.product form.cart .variations .reset_variations{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  opacity:1 !important;
  text-decoration:underline;
  text-decoration-color:var(--rt-accent);
}
body.single-product .summary form.variations_form table.variations label,
body.single-product .summary form.cart table.variations label,
.woocommerce div.product form.cart .variations label{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}

/* v3.2 Ride Japan category hubs */
.ride-japan-article-section .tested-tabs,
.ride-japan-tabs{
  margin:0 0 26px;
}
.pagination-wrap{
  margin-top:34px;
}
.pagination-wrap .nav-links{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}
.pagination-wrap .page-numbers{
  display:inline-flex;
  min-width:40px;
  min-height:40px;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  color:#fff;
  background:rgba(255,255,255,.05);
  font-weight:800;
}
.pagination-wrap .page-numbers.current,
.pagination-wrap .page-numbers:hover{
  background:var(--rt-accent);
  color:#000;
  border-color:var(--rt-accent);
}
