/**
Theme Name: VIDEO TOKYO
Author: VIDEO TOKYO
Author URI: https://publink.me/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: video-tokyo
Template: astra
*/

/* ===== RESET & BASE ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}
body{font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  line-height:1.8;color:#1a1a2e;background:#fff;overflow-x:hidden;
  -webkit-font-smoothing:antialiased}
img,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}

/* ===== CSS VARIABLES ===== */
:root{
  --c-primary:#0047AB;
  --c-primary-dark:#003380;
  --c-accent:#FF6B00;
  --c-accent-dark:#E05A00;
  --c-accent-light:#FFF3E0;
  --c-bg:#F8F9FA;
  --c-bg-dark:#E8EDF2;
  --c-text:#1a1a2e;
  --c-text-sub:#555;
  --c-white:#fff;
  --c-border:#ddd;
  --c-success:#28a745;
  --shadow-sm:0 2px 8px rgba(0,0,0,.08);
  --shadow-md:0 4px 20px rgba(0,0,0,.12);
  --shadow-lg:0 8px 40px rgba(0,0,0,.16);
  --radius:12px;
  --radius-sm:8px;
  --transition:all .3s cubic-bezier(.4,0,.2,1);
  --max-w:1080px;
}

/* ===== UTILITY ===== */
.lp-section{padding:80px 20px}
.lp-inner{max-width:var(--max-w);margin:0 auto}
.lp-section:nth-child(even){background:var(--c-bg)}
.section-label{display:inline-block;font-size:.75rem;font-weight:700;
  letter-spacing:.15em;text-transform:uppercase;color:var(--c-primary);
  background:rgba(0,71,171,.08);padding:6px 16px;border-radius:20px;margin-bottom:16px}
.section-title{font-size:clamp(1.5rem,4vw,2.25rem);font-weight:900;
  line-height:1.4;margin-bottom:24px;color:var(--c-text)}
.section-title span{color:var(--c-accent)}
.section-lead{font-size:1.05rem;color:var(--c-text-sub);line-height:1.9;margin-bottom:40px}

/* ===== §1 FIRST VIEW ===== */
.fv{position:relative;min-height:100vh;display:flex;align-items:center;
  justify-content:center;text-align:center;overflow:hidden;
  background:linear-gradient(135deg,#0a0a23 0%,#0047AB 50%,#003380 100%)}
.fv::before{content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 30% 40%,rgba(255,107,0,.15) 0%,transparent 60%);
  pointer-events:none;z-index:1}
.fv-bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.18;z-index:0}
.fv-content{position:relative;z-index:2;max-width:800px;padding:40px 20px}
.fv-badge{display:inline-block;font-size:.8rem;font-weight:700;
  color:var(--c-accent);background:rgba(255,107,0,.15);
  border:1px solid rgba(255,107,0,.3);padding:8px 20px;border-radius:30px;
  margin-bottom:24px;letter-spacing:.08em;animation:fadeInDown .8s ease-out}
.fv h1{font-size:clamp(1.75rem,5.5vw,3rem);font-weight:900;color:#fff;
  line-height:1.35;margin-bottom:16px;letter-spacing:-.02em;
  text-shadow:0 2px 20px rgba(0,0,0,.3);animation:fadeInUp .8s ease-out}
.fv h1 em{font-style:normal;color:var(--c-accent);position:relative}
.fv h1 em::after{content:"";position:absolute;bottom:-2px;left:0;width:100%;
  height:3px;background:var(--c-accent);border-radius:2px}
.fv-sub{font-size:clamp(1rem,2.5vw,1.25rem);color:rgba(255,255,255,.85);
  margin-bottom:32px;line-height:1.7;animation:fadeInUp 1s ease-out .2s both}
.fv-numbers{display:flex;justify-content:center;gap:40px;margin-bottom:40px;
  animation:fadeInUp 1s ease-out .4s both}
.fv-num-item{text-align:center}
.fv-num-item .num{font-size:clamp(2rem,5vw,3rem);font-weight:900;color:var(--c-accent);line-height:1}
.fv-num-item .num-label{font-size:.8rem;color:rgba(255,255,255,.7);margin-top:4px}

/* ===== CTA BUTTON ===== */
.cta-btn{display:inline-flex;align-items:center;gap:10px;
  font-size:1.15rem;font-weight:800;color:#fff;
  background:linear-gradient(135deg,var(--c-accent),var(--c-accent-dark));
  padding:18px 48px;border-radius:60px;border:none;cursor:pointer;
  box-shadow:0 4px 20px rgba(255,107,0,.4);
  transition:var(--transition);position:relative;overflow:hidden;
  text-decoration:none;letter-spacing:.03em}
.cta-btn::before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);
  transition:left .6s}
.cta-btn:hover{transform:translateY(-3px);box-shadow:0 8px 30px rgba(255,107,0,.5)}
.cta-btn:hover::before{left:100%}
.cta-btn svg{width:20px;height:20px;fill:currentColor;flex-shrink:0}
.cta-micro{font-size:.8rem;color:rgba(255,255,255,.65);margin-top:12px;
  animation:fadeInUp 1s ease-out .8s both}
.cta-micro strong{color:var(--c-accent)}

/* ===== FV BRIDGE（FV直下 数字帯） ===== */
.fv-bridge{background:linear-gradient(135deg,#0a0a23,#003380);padding:32px 20px}
.fv-bridge-inner{max-width:var(--max-w);margin:0 auto}
.fv-bridge-numbers{display:flex;justify-content:center;gap:48px;flex-wrap:wrap}
.fv-bridge-item{text-align:center}
.fv-bridge-item .num{font-size:clamp(2rem,5vw,3rem);font-weight:900;color:#FF6B00;line-height:1;display:block}
.fv-bridge-item .num small{font-size:.5em}
.fv-bridge-item .num-label{font-size:.8rem;color:rgba(255,255,255,.7);margin-top:4px;display:block}

/* ===== §2 PROBLEM ===== */
.problem-list{display:grid;gap:16px;margin-bottom:40px}
.problem-item{display:flex;align-items:flex-start;gap:16px;
  background:var(--c-white);padding:24px;border-radius:var(--radius);
  box-shadow:var(--shadow-sm);border-left:4px solid #dc3545;
  transition:var(--transition)}
.problem-item:hover{transform:translateX(4px);box-shadow:var(--shadow-md)}
.problem-icon{font-size:1.5rem;flex-shrink:0;margin-top:2px}
.problem-item h3{font-size:1.05rem;font-weight:700;margin-bottom:4px}
.problem-item p{font-size:.9rem;color:var(--c-text-sub);line-height:1.7}

/* ===== §3 AFFINITY ===== */
.affinity-box{background:var(--c-white);border-radius:var(--radius);
  padding:40px;box-shadow:var(--shadow-md);position:relative;
  border-top:4px solid var(--c-primary)}
.affinity-quote{font-size:1.1rem;line-height:2;color:var(--c-text);margin-bottom:24px;
  padding-left:20px;border-left:3px solid var(--c-primary)}
.affinity-profile{display:flex;align-items:center;gap:16px}
.affinity-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;
  border:3px solid var(--c-primary)}
.affinity-name{font-size:1rem;font-weight:700}
.affinity-role{font-size:.85rem;color:var(--c-text-sub)}

/* ===== §4 SOLUTION — 動画6本 ===== */
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:48px}
.video-card{background:var(--c-white);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow-sm);transition:var(--transition)}
.video-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.video-card .video-wrap{position:relative;aspect-ratio:16/9;background:#000;overflow:hidden}
.video-card video{width:100%;height:100%;object-fit:cover}
.video-card .video-poster{position:absolute;inset:0;display:flex;align-items:center;
  justify-content:center;background:rgba(0,0,0,.4);cursor:pointer;transition:var(--transition)}
.video-card .video-poster.is-hidden{opacity:0;pointer-events:none}
.video-card .play-btn{width:60px;height:60px;background:rgba(255,255,255,.9);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  transition:var(--transition)}
.video-card .play-btn::after{content:"";width:0;height:0;
  border-left:18px solid var(--c-primary);border-top:12px solid transparent;
  border-bottom:12px solid transparent;margin-left:4px}
.video-card:hover .play-btn{transform:scale(1.1);background:#fff}
.video-card .video-info{padding:20px}
.video-card .video-num{font-size:.7rem;font-weight:700;color:var(--c-primary);
  text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px}
.video-card h3{font-size:1rem;font-weight:700;line-height:1.5;margin-bottom:6px}
.video-card p{font-size:.85rem;color:var(--c-text-sub);line-height:1.6}

/* ===== §5 SOCIAL PROOF ===== */
.proof-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.proof-card{background:var(--c-white);border-radius:var(--radius);padding:32px;
  box-shadow:var(--shadow-sm);transition:var(--transition)}
.proof-card:hover{box-shadow:var(--shadow-md)}
.proof-stars{color:#FFB800;font-size:1rem;margin-bottom:12px;letter-spacing:2px}
.proof-text{font-size:.95rem;line-height:1.8;margin-bottom:16px;color:var(--c-text)}
.proof-author{font-size:.85rem;color:var(--c-text-sub);font-weight:600}
.proof-badges{display:flex;justify-content:center;gap:32px;margin-top:40px;flex-wrap:wrap}
.proof-badge{text-align:center}
.proof-badge img{height:60px;margin-bottom:8px;opacity:.85}
.proof-badge span{display:block;font-size:.75rem;color:var(--c-text-sub)}

/* ===== §6 REASONS ===== */
.reason-items{display:grid;gap:32px;counter-reset:reason}
.reason-item{display:flex;gap:24px;align-items:flex-start;
  background:var(--c-white);padding:32px;border-radius:var(--radius);
  box-shadow:var(--shadow-sm);transition:var(--transition)}
.reason-item:hover{box-shadow:var(--shadow-md);transform:translateX(4px)}
.reason-num{counter-increment:reason;flex-shrink:0;width:56px;height:56px;
  background:linear-gradient(135deg,var(--c-primary),var(--c-primary-dark));
  color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:1.25rem;font-weight:900}
.reason-num::before{content:counter(reason)}
.reason-body h3{font-size:1.1rem;font-weight:700;margin-bottom:8px}
.reason-body p{font-size:.95rem;color:var(--c-text-sub);line-height:1.8}

/* ===== §7 FLOW ===== */
.flow-steps{display:grid;gap:0;position:relative}
.flow-step{display:flex;gap:24px;align-items:flex-start;padding:32px 0;position:relative}
.flow-step:not(:last-child)::after{content:"";position:absolute;
  left:28px;top:72px;bottom:0;width:2px;background:var(--c-border)}
.flow-icon{flex-shrink:0;width:56px;height:56px;
  background:var(--c-primary);color:#fff;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;font-weight:900;z-index:1}
.flow-body h3{font-size:1.05rem;font-weight:700;margin-bottom:4px}
.flow-body p{font-size:.9rem;color:var(--c-text-sub);line-height:1.7}
.flow-body .flow-time{font-size:.8rem;color:var(--c-primary);font-weight:600;margin-top:4px}

/* ===== §8 FAQ ===== */
.faq-list{display:grid;gap:12px}
.faq-item{background:var(--c-white);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);overflow:hidden}
.faq-q{display:flex;align-items:center;gap:16px;padding:20px 24px;
  cursor:pointer;font-weight:700;font-size:1rem;
  transition:var(--transition);user-select:none}
.faq-q::before{content:"Q";flex-shrink:0;width:32px;height:32px;
  background:var(--c-primary);color:#fff;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.8rem;font-weight:800}
.faq-q::after{content:"+";margin-left:auto;font-size:1.5rem;color:var(--c-primary);
  transition:transform .3s}
.faq-item.is-open .faq-q::after{transform:rotate(45deg)}
.faq-q:hover{background:var(--c-bg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease;padding:0 24px}
.faq-item.is-open .faq-a{max-height:500px;padding:0 24px 20px 72px}
.faq-a p{font-size:.95rem;color:var(--c-text-sub);line-height:1.8}

/* ===== §9 AUTHORITY ===== */
.authority-card{background:var(--c-white);border-radius:var(--radius);
  padding:48px;box-shadow:var(--shadow-md);display:flex;gap:40px;align-items:center}
.authority-img{width:200px;flex-shrink:0}
.authority-img img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.authority-info h3{font-size:1.25rem;font-weight:800;margin-bottom:8px}
.authority-info .auth-role{font-size:.9rem;color:var(--c-primary);font-weight:600;margin-bottom:16px}
.authority-info p{font-size:.95rem;color:var(--c-text-sub);line-height:1.9}

/* ===== §10 CONTACT ===== */
.contact-section{background:linear-gradient(135deg,#0a0a23,var(--c-primary));color:#fff}
.contact-section .section-title{color:#fff}
.contact-section .section-lead{color:rgba(255,255,255,.8)}
.cf7-wrap{background:var(--c-white);border-radius:var(--radius);
  padding:48px;box-shadow:var(--shadow-lg);max-width:700px;margin:0 auto}
.cf7-wrap .wpcf7-form label{display:block;font-size:.9rem;font-weight:700;
  color:var(--c-text);margin-bottom:6px}
.cf7-wrap .wpcf7-form input[type="text"],
.cf7-wrap .wpcf7-form input[type="email"],
.cf7-wrap .wpcf7-form input[type="tel"],
.cf7-wrap .wpcf7-form textarea,
.cf7-wrap .wpcf7-form select{
  width:100%;padding:4px;border:2px solid var(--c-border);
  border-radius:var(--radius-sm);font-size:1rem;
  transition:var(--transition);font-family:inherit}
.cf7-wrap .wpcf7-form input:focus,
.cf7-wrap .wpcf7-form textarea:focus,
.cf7-wrap .wpcf7-form select:focus{
  border-color:var(--c-primary);outline:none;box-shadow:0 0 0 3px rgba(0,71,171,.1)}
.cf7-wrap .wpcf7-form textarea{min-height:120px;resize:vertical}
.cf7-wrap .wpcf7-form .form-row{margin-bottom:20px}
.cf7-wrap .wpcf7-form .required{color:#dc3545;margin-left:4px;font-size:.8rem}
.cf7-wrap .wpcf7-submit{
  display:block;width:100%;padding:18px;border:none;border-radius:60px;
  background:linear-gradient(135deg,var(--c-accent),var(--c-accent-dark));
  color:#fff;font-size:1.15rem;font-weight:800;cursor:pointer;
  transition:var(--transition);letter-spacing:.03em;margin-top:8px}
.cf7-wrap .wpcf7-submit:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(255,107,0,.4)}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
    color: #000;
}
/* ===== FOOTER ===== */
.lp-footer{background:#0a0a23;color:rgba(255,255,255,.6);
  text-align:center;padding:40px 20px;font-size:.8rem}
.lp-footer a{color:rgba(255,255,255,.8)}

/* ===== SP STICKY CTA ===== */
.sp-sticky-cta{display:none;position:fixed;bottom:0;left:0;right:0;z-index:9999;
  background:rgba(10,10,35,.95);backdrop-filter:blur(10px);
  padding:12px 16px;text-align:center;
  box-shadow:0 -4px 20px rgba(0,0,0,.3);
  transform:translateY(100%);transition:transform .4s ease}
.sp-sticky-cta.is-visible{transform:translateY(0)}
.sp-sticky-cta .cta-btn{width:100%;justify-content:center;padding:16px;font-size:1rem}

/* ===== ANIMATIONS ===== */
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-visible{opacity:1;transform:translateY(0)}

/* ===== RESPONSIVE ===== */
@media(max-width:768px){
  .lp-section{padding:60px 16px}
  .video-grid{grid-template-columns:1fr}
  .proof-cards{grid-template-columns:1fr}
  .authority-card{flex-direction:column;text-align:center;padding:32px 24px}
  .authority-img{width:160px}
  .fv-numbers{gap:24px}
  .reason-item{flex-direction:column;gap:16px}
  .cf7-wrap{padding:32px 20px}
  .sp-sticky-cta{display:block}
  .affinity-box{padding:28px 20px}
}
@media(max-width:480px){
  .fv h1{font-size:1.6rem}
  .fv-numbers{flex-direction:column;gap:16px}
  .proof-badges{gap:16px}
  .fv-bridge-numbers{gap:24px}
}

/* ===== WP ADMIN BAR FIX ===== */
html{margin-top:0!important}
