/*
Theme Name: VIG Corporate
Theme URI: https://vig.co.jp
Author: VIG Inc.
Author URI: https://vig.co.jp
Description: 株式会社ヴィグ コーポレートサイト オリジナルテーマ
Version: 1.0.3
License: GNU General Public License v2 or later
Text Domain: vig-theme
*/

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#EDEDEB;--bg2:#E3E3DF;--bg3:#D9D9D5;--surface:#F5F5F3;--text:#1A1A1A;--text2:#555;--text3:#888;--accent:#FF5722;--radius:12px}
html{scroll-behavior:smooth}
body{font-family:'Zen Kaku Gothic New',sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;-webkit-font-smoothing:antialiased}
.en{font-family:'Plus Jakarta Sans',sans-serif}
a{color:inherit;text-decoration:none}
*{cursor:none!important}
.cursor{position:fixed;top:0;left:0;width:12px;height:12px;background:var(--accent);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%)}
.cursor-ring{position:fixed;top:0;left:0;width:40px;height:40px;border:1.5px solid var(--accent);border-radius:50%;pointer-events:none;z-index:9999;transition:width .3s,height .3s;transform:translate(-50%,-50%)}
.cursor-ring.hover{width:60px;height:60px;background:rgba(255,87,34,.06)}
.nav{position:fixed;top:0;left:0;right:0;z-index:999;padding:16px 32px;display:flex;justify-content:space-between;align-items:center;background:rgba(237,237,235,.92);backdrop-filter:blur(24px);border-bottom:1px solid rgba(0,0,0,.05)}
.nav-left{display:flex;align-items:center;gap:10px}
.nav-left img{height:36px;width:auto}
.nav-logo{font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:20px;letter-spacing:3px}
.nav-links{display:flex;gap:28px}
.nav-links a{font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;font-weight:500;letter-spacing:1px;text-transform:uppercase;color:var(--text3);transition:color .3s}
.nav-links a:hover,.nav-links a.active{color:var(--text)}
.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:none!important;padding:4px}
.nav-hamburger span{display:block;width:22px;height:2px;background:var(--text)}
.mobile-menu{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(237,237,235,.98);z-index:998;flex-direction:column;justify-content:center;align-items:center;gap:32px}
.mobile-menu.open{display:flex}
.mobile-menu a{font-family:'Plus Jakarta Sans',sans-serif;font-size:20px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text)}
.mobile-menu .close-btn{position:absolute;top:20px;right:24px;font-size:28px;cursor:none!important;color:var(--text)}
.marquee-wrap{overflow:hidden;white-space:nowrap;padding:14px 0;border-top:1px solid rgba(0,0,0,.06);border-bottom:1px solid rgba(0,0,0,.06)}
.marquee-track{display:inline-flex;animation:m 30s linear infinite}
.marquee-track.rev{animation-direction:reverse}
.marquee-track span{font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text3);padding:0 40px}
.marquee-track span em{font-style:normal;color:var(--accent)}
@keyframes m{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
section{padding:100px 48px}
.container{max-width:1200px;margin:0 auto}
.sec-header{margin-bottom:64px}
.sec-tag{font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.sec-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(26px,4vw,44px);font-weight:800;line-height:1.2;letter-spacing:-.5px}
.page-hero{padding:160px 48px 72px;border-bottom:1px solid rgba(0,0,0,.06)}
.page-hero .sec-tag{margin-bottom:20px}
.page-hero h1{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(32px,5.5vw,56px);font-weight:800;line-height:1.1;letter-spacing:-1px}
.page-hero p{font-size:14px;color:var(--text2);line-height:2;max-width:520px;margin-top:18px}
footer{padding:48px 32px 24px;background:var(--text);color:rgba(255,255,255,.25)}
.footer-inner{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:flex-start}
.footer-logo{font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;font-weight:800;letter-spacing:3px;color:rgba(255,255,255,.5);margin-bottom:12px}
.footer-info{font-size:11px;line-height:2.2}
.footer-links{display:flex;gap:20px}
.footer-links a{font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;transition:color .3s}
.footer-links a:hover{color:var(--accent)}
.footer-copy{max-width:1200px;margin:36px auto 0;padding-top:16px;border-top:1px solid rgba(255,255,255,.05);font-family:'Plus Jakarta Sans',sans-serif;font-size:10px;letter-spacing:1px;color:rgba(255,255,255,.12)}
.js-ready .reveal{opacity:0;transform:translateY(32px);transition:all .8s cubic-bezier(.22,1,.36,1)}.js-ready .reveal.v{opacity:1;transform:translateY(0)}.reveal-d1{transition-delay:.1s}.reveal-d2{transition-delay:.2s}
@media(max-width:768px){
  .nav{padding:14px 16px}.nav-links{display:none}.nav-hamburger{display:flex}
  section{padding:64px 20px}.page-hero{padding:110px 20px 48px}
  .footer-inner{flex-direction:column;gap:24px}.footer-links{flex-wrap:wrap;gap:14px}
  *{cursor:auto!important}.cursor,.cursor-ring{display:none!important}
}



/* === Front Page (index) === */
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:100px 0 64px}
.hero-marquee{overflow:hidden;white-space:nowrap;margin-bottom:6px;width:100%}
.hero-marquee-track{display:inline-flex;animation:hm 20s linear infinite}
.hero-marquee.rev .hero-marquee-track{animation-direction:reverse}
.hero-marquee.slow .hero-marquee-track{animation-duration:25s}
.hero-marquee.fast .hero-marquee-track{animation-duration:18s}
.hero-marquee-track span{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(32px,7vw,88px);font-weight:800;letter-spacing:-1px;padding:0 16px;color:var(--text)}
.hero-marquee-track span.stroke{-webkit-text-stroke:1.5px var(--text);color:transparent}
.hero-marquee-track span.accent{color:var(--accent)}
.hero-marquee-track span.dim{color:var(--bg2)}
@keyframes hm{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.hero-bottom{padding:40px 48px 0;display:flex;justify-content:space-between;align-items:flex-end}
.hero-desc{font-size:13px;color:var(--text2);line-height:2;max-width:400px}
.hero-cta{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;background:var(--text);color:var(--bg);font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;border-radius:100px;transition:all .4s;flex-shrink:0}
.hero-cta:hover{background:var(--accent);transform:scale(1.05)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.svc-card{padding:44px 32px;background:var(--surface);position:relative;overflow:hidden;cursor:none!important;transition:all .5s cubic-bezier(.22,1,.36,1)}
.svc-card::before{content:'';position:absolute;inset:0;background:var(--text);transform:translateY(100%);transition:transform .5s cubic-bezier(.22,1,.36,1);z-index:0}
.svc-card:hover::before{transform:translateY(0)}.svc-card>*{position:relative;z-index:1}.svc-card:hover{color:var(--bg)}
.svc-card:hover .svc-num{color:var(--accent)}
.svc-num{font-family:'Plus Jakarta Sans',sans-serif;font-size:64px;font-weight:800;color:rgba(0,0,0,.12);line-height:1;margin-bottom:16px;transition:color .5s}
.svc-section .svc-name{font-family:"Plus Jakarta Sans",sans-serif;font-size:clamp(22px,3vw,32px);font-weight:800;margin-bottom:4px}
.svc-jp{font-size:11px;color:var(--text3);margin-bottom:14px;transition:color .5s}.svc-card:hover .svc-jp{color:rgba(255,255,255,.35)}
.svc-text{font-size:13px;line-height:1.9;color:var(--text2);transition:color .5s}.svc-card:hover .svc-text{color:rgba(255,255,255,.6)}
.svc-more{display:inline-block;margin-top:16px;font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);opacity:0;transform:translateY(8px);transition:all .4s}
.svc-card:hover .svc-more{opacity:1;transform:translateY(0)}
.numbers{background:var(--text);color:var(--bg);padding:64px 48px}
.num-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);text-align:center}
.num-value{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(40px,5vw,64px);font-weight:800;color:var(--accent);line-height:1}
.num-label{font-size:11px;color:rgba(255,255,255,.6);margin-top:10px}
.top-news{background:var(--surface)}
.news-item{display:flex;gap:16px;align-items:baseline;padding:20px 0;border-bottom:1px solid rgba(0,0,0,.06);transition:all .3s}
.news-item:hover{padding-left:10px}
.news-date{font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;color:var(--text3);min-width:90px}
.news-badge{font-family:'Plus Jakarta Sans',sans-serif;font-size:10px;font-weight:700;padding:2px 10px;background:var(--accent);color:#fff;border-radius:100px}
.news-title{font-size:13px;color:var(--text2);transition:color .3s}.news-item:hover .news-title{color:var(--text)}
.news-more{display:inline-flex;align-items:center;gap:6px;margin-top:24px;font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;font-weight:600;color:var(--accent)}
.cta{background:var(--text);color:var(--bg);padding:120px 48px;text-align:center}
.cta h2{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(24px,4vw,44px);font-weight:800;margin-bottom:12px}
.cta p{font-size:13px;color:rgba(255,255,255,.4);margin-bottom:36px}
.cta-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 40px;border:1.5px solid var(--accent);color:var(--accent);font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;border-radius:100px;transition:all .4s}
.cta-btn:hover{background:var(--accent);color:#fff}
@media(max-width:768px){.hero{padding:80px 0 40px}.hero-marquee-track span{font-size:clamp(56px,14vw,100px);padding:0 14px;letter-spacing:-2px}.hero-bottom{padding:24px 16px 0;flex-direction:column;gap:20px;align-items:flex-start}.svc-grid,.num-grid{grid-template-columns:1fr}.numbers{padding:48px 20px}.cta{padding:80px 20px}.news-item{flex-wrap:wrap;gap:8px}}


/* === About Page === */
.about-lead{font-size:clamp(16px,2vw,21px);line-height:2.2;font-weight:300;max-width:780px;margin-bottom:72px}
.vm-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:72px}
.vm-card{padding:48px 40px;background:var(--surface);border-radius:var(--radius);position:relative;overflow:hidden}
.vm-card::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:var(--accent);border-radius:2px}
.vm-tag{font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.vm-text{font-size:clamp(18px,2.2vw,24px);font-weight:700;line-height:1.6}
.culture-label{font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:24px}
.culture-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:52px}
.culture-item{padding:22px 26px;background:var(--surface);border-radius:10px;border:1px solid transparent;transition:border-color .3s}
.culture-item:hover{border-color:var(--accent)}
.culture-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:700;margin-bottom:6px;display:flex;align-items:center;gap:8px}
.culture-name .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}
.culture-desc{font-size:13px;color:var(--text2);line-height:1.9}
@media(max-width:768px){.vm-row,.culture-grid{grid-template-columns:1fr}}


/* === Service Page === */
.svc-section{padding:72px 0;border-bottom:1px solid rgba(0,0,0,.06)}.svc-section:last-of-type{border-bottom:none}
.svc-head{display:grid;grid-template-columns:240px 1fr;gap:48px;align-items:start}
.svc-section .svc-num{font-family:"Plus Jakarta Sans",sans-serif;font-size:96px;font-weight:800;color:rgba(0,0,0,.12);line-height:1}
.svc-section .svc-label{font-family:'Plus Jakarta Sans',sans-serif;font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.svc-section .svc-name{font-family:"Plus Jakarta Sans",sans-serif;font-size:clamp(22px,3vw,32px);font-weight:800;margin-bottom:4px}
.svc-section .svc-jp{font-size:12px;color:var(--text3);margin-bottom:18px}
.svc-section .svc-text{font-size:14px;color:var(--text2);line-height:2;max-width:500px}
.svc-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}
.svc-tags span{font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;padding:5px 14px;border:1px solid rgba(0,0,0,.1);border-radius:100px;color:var(--text3)}
.brands-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}
.brand-card{padding:48px 28px;background:var(--surface);border-radius:var(--radius);text-align:center;transition:all .5s cubic-bezier(.22,1,.36,1)}
.brand-card:hover{background:var(--text);color:var(--bg);transform:translateY(-6px);box-shadow:0 20px 40px rgba(0,0,0,.1)}
.brand-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:24px;font-weight:800;letter-spacing:2px;margin-bottom:6px}
.brand-card:hover .brand-name{color:var(--accent)}
.brand-type{font-size:12px;color:var(--text3);transition:color .5s}.brand-card:hover .brand-type{color:rgba(255,255,255,.45)}
@media(max-width:768px){.svc-head{grid-template-columns:1fr}.svc-num{font-size:64px}.brands-row{grid-template-columns:1fr}}


/* === Company Page === */
.company-table{max-width:760px}.company-row{display:grid;grid-template-columns:160px 1fr;padding:22px 0;border-bottom:1px solid rgba(0,0,0,.06)}.company-row dt{font-size:13px;color:var(--text3);font-weight:500}.company-row dd{font-size:14px}
@media(max-width:768px){.company-row{grid-template-columns:1fr;gap:4px}}


/* === News Page === */
.news-item{display:flex;gap:16px;align-items:baseline;padding:22px 0;border-bottom:1px solid rgba(0,0,0,.06);transition:all .3s}.news-item:hover{padding-left:10px}
.news-date{font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;color:var(--text3);min-width:90px}
.news-badge{font-family:'Plus Jakarta Sans',sans-serif;font-size:10px;font-weight:700;padding:2px 10px;background:var(--accent);color:#fff;border-radius:100px}
.news-title{font-size:13px;color:var(--text2);transition:color .3s}.news-item:hover .news-title{color:var(--text)}
@media(max-width:768px){.news-item{flex-wrap:wrap;gap:8px}}


/* === Contact Page === */
.contact-wrap{max-width:560px}.contact-info{font-size:14px;color:var(--text2);line-height:2;margin-bottom:40px}.contact-info a{color:var(--accent)}
.form-group{margin-bottom:20px}.form-group label{display:block;font-family:'Plus Jakarta Sans',sans-serif;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3);margin-bottom:6px}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:12px 14px;font-family:'Zen Kaku Gothic New',sans-serif;font-size:14px;background:var(--surface);border:1px solid rgba(0,0,0,.08);border-radius:8px;color:var(--text);outline:none;transition:border-color .3s}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--accent)}
.form-group textarea{min-height:140px;resize:vertical}
.form-submit{display:inline-flex;align-items:center;gap:8px;padding:14px 40px;background:var(--text);color:var(--bg);font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;border:none;border-radius:100px;transition:all .4s}
.form-submit:hover{background:var(--accent);transform:scale(1.03)}


/* === Single Post === */
.post-content{max-width:760px;margin:0 auto}
.post-content h1,.post-content h2,.post-content h3{font-family:'Plus Jakarta Sans','Zen Kaku Gothic New',sans-serif;margin:2em 0 .8em;font-weight:700}
.post-content h1{font-size:clamp(24px,4vw,36px)}
.post-content h2{font-size:clamp(20px,3vw,28px)}
.post-content h3{font-size:clamp(18px,2.5vw,22px)}
.post-content p{font-size:14px;line-height:2;margin-bottom:1.5em;color:var(--text2)}
.post-content img{max-width:100%;height:auto;border-radius:var(--radius);margin:1.5em 0}
.post-content a{color:var(--accent);text-decoration:underline}
.post-content ul,.post-content ol{margin:1em 0 1.5em 1.5em;font-size:14px;line-height:2;color:var(--text2)}
.post-content blockquote{border-left:3px solid var(--accent);padding:1em 1.5em;margin:1.5em 0;background:var(--surface);border-radius:0 var(--radius) var(--radius) 0}
.post-meta{font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;color:var(--text3);margin-bottom:32px;display:flex;gap:16px}
.post-nav{display:flex;justify-content:space-between;margin-top:48px;padding-top:24px;border-top:1px solid rgba(0,0,0,.06)}
.post-nav a{font-size:13px;color:var(--accent)}
/* === 404 Page === */
.error-404{text-align:center;padding:200px 48px}
.error-404 h1{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(48px,8vw,96px);font-weight:800;color:var(--accent)}
.error-404 p{font-size:14px;color:var(--text2);margin:16px 0 32px}
.error-404 a{display:inline-flex;padding:14px 32px;background:var(--text);color:var(--bg);font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:600;letter-spacing:1px;border-radius:100px;transition:all .4s}
.error-404 a:hover{background:var(--accent);transform:scale(1.05)}
/* === WordPress Content === */
.wp-content-area{max-width:760px;margin:0 auto}
.wp-content-area p{font-size:14px;line-height:2;color:var(--text2)}

/* === Company Map === */
.company-map{position:relative;overflow:hidden;border-radius:var(--radius)}
.company-map iframe{filter:grayscale(100%) contrast(1.1);transition:filter .5s ease;width:100%;display:block}
.company-map:hover iframe{filter:grayscale(30%) contrast(1.05)}

/* === Brand Card Links === */
a.brand-card{text-decoration:none;color:inherit;display:block}
a.brand-card:hover .brand-name{color:var(--accent)}

/* === WPForms Custom Styling === */
.wpforms-container{max-width:560px}
.wpforms-container *{font-family:'Zen Kaku Gothic New',sans-serif!important}
.wpforms-field{margin-bottom:20px!important}
.wpforms-field-label{display:block!important;font-family:'Plus Jakarta Sans',sans-serif!important;font-size:10px!important;font-weight:700!important;letter-spacing:1.5px!important;text-transform:uppercase!important;color:var(--text3)!important;margin-bottom:6px!important}
.wpforms-field-sublabel{font-size:10px!important;color:var(--text3)!important;margin-top:4px!important}
.wpforms-field input[type=text],.wpforms-field input[type=email],.wpforms-field input[type=tel],.wpforms-field input[type=url],.wpforms-field input[type=number],.wpforms-field textarea,.wpforms-field select{width:100%!important;padding:12px 14px!important;font-size:14px!important;background:var(--surface)!important;border:1px solid rgba(0,0,0,.08)!important;border-radius:8px!important;color:var(--text)!important;outline:none!important;transition:border-color .3s!important;box-shadow:none!important}
.wpforms-field input:focus,.wpforms-field textarea:focus,.wpforms-field select:focus{border-color:var(--accent)!important}
.wpforms-field textarea{min-height:140px!important;resize:vertical!important}
.wpforms-field-row{display:flex;gap:16px}
.wpforms-field-row .wpforms-field-row-block{flex:1}
div.wpforms-container-full .wpforms-form button[type=submit],
div.wpforms-container-full .wpforms-form .wpforms-submit{display:inline-flex!important;align-items:center!important;gap:8px!important;padding:14px 40px!important;background:var(--text)!important;color:var(--bg)!important;font-family:'Plus Jakarta Sans',sans-serif!important;font-size:12px!important;font-weight:600!important;letter-spacing:1.5px!important;text-transform:uppercase!important;border:none!important;border-radius:100px!important;cursor:pointer!important;transition:all .4s!important}
div.wpforms-container-full .wpforms-form button[type=submit]:hover,
div.wpforms-container-full .wpforms-form .wpforms-submit:hover{background:var(--accent)!important;transform:scale(1.03)!important}
.wpforms-confirmation-container-full{padding:24px!important;background:var(--surface)!important;border-radius:var(--radius)!important;border:1px solid rgba(0,0,0,.08)!important;color:var(--text)!important}
.wpforms-required-label{color:var(--accent)!important}
