/* ===== G-Force Top Page ===== */

/* Hide SWELL default content area styling on top */
.gf-top .l-mainContent { padding:0!important; }

/* Hero */
.gf-hero { position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden; }
.gf-hero-bg {
  position:absolute;inset:0;
  background:
    linear-gradient(135deg,rgba(11,11,13,0.85) 0%,rgba(11,11,13,0.6) 40%,rgba(11,11,13,0.45) 100%),
    var(--gf-hero-img, none);
  background-size:cover;background-position:center;
}
/* 画像がない場合のフォールバック（抽象的な線のパターン） */
.gf-hero:not([style*="--gf-hero-img"]) .gf-hero-bg {
  background:
    linear-gradient(135deg,rgba(11,11,13,0.92) 0%,rgba(11,11,13,0.7) 40%,rgba(11,11,13,0.5) 100%),
    linear-gradient(135deg,var(--gf-dark) 0%,var(--gf-dark3) 100%);
}
.gf-hero-bg::after { content:'';position:absolute;top:-20%;right:-10%;width:60%;height:140%;background:linear-gradient(135deg,transparent 40%,rgba(232,168,56,0.04) 50%,transparent 60%);transform:rotate(-15deg); }
.gf-hero-content { position:relative;z-index:2;width:100%;padding:40px 0; }

.gf-hero-label { display:inline-flex;align-items:center;gap:8px;background:rgba(232,168,56,0.12);border:1px solid rgba(232,168,56,0.25);padding:6px 16px;border-radius:4px;margin-bottom:24px; }
.gf-hero-dot { width:6px;height:6px;background:var(--gf-accent);border-radius:50%;animation:gfPulse 2s ease infinite; }
.gf-hero-label span { font-size:12px;font-weight:700;color:var(--gf-accent);letter-spacing:0.12em; }

@keyframes gfPulse { 0%,100%{opacity:1} 50%{opacity:0.6} }
@keyframes gfMarquee { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

.gf-hero-title { font-family:var(--gf-font-display);font-size:clamp(32px,6vw,64px);font-weight:900;line-height:1.15;color:var(--gf-white);margin-bottom:8px; }
.gf-hero-title em { font-style:normal;color:var(--gf-accent);position:relative; }
.gf-hero-title em::after { content:'';position:absolute;bottom:4px;left:0;right:0;height:3px;background:var(--gf-accent);opacity:0.3; }

.gf-hero-sub { font-size:clamp(15px,2vw,20px);color:var(--gf-text);font-weight:400;line-height:1.7;margin-bottom:32px;max-width:600px; }

.gf-hero-badges { display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px; }
.gf-hero-badge { display:flex;align-items:center;gap:8px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08);padding:8px 16px;border-radius:6px;font-size:13px;font-weight:600;color:var(--gf-text-bright); }
.gf-hero-badge .gf-icon { color:var(--gf-accent); }

.gf-hero-cta { display:flex;gap:12px;flex-wrap:wrap; }
.gf-hero-note { margin-top:16px;font-size:12px;color:var(--gf-gray-light); }

/* Marquee */
.gf-marquee { background:var(--gf-accent);padding:10px 0;overflow:hidden;white-space:nowrap; }
.gf-marquee-track { display:flex;animation:gfMarquee 30s linear infinite; }
.gf-marquee-track span { flex-shrink:0;padding:0 20px;font-family:var(--gf-font-display);font-size:13px;font-weight:800;color:var(--gf-black);letter-spacing:0.08em;text-transform:uppercase; }
.gf-marquee-track .sep { padding:0 4px;color:rgba(0,0,0,0.3);font-weight:400; }

/* Numbers */
.gf-numbers { padding:80px 0;background:var(--gf-dark);border-top:1px solid rgba(255,255,255,0.04);border-bottom:1px solid rgba(255,255,255,0.04); }
.gf-numbers-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,0.04);border-radius:12px;overflow:hidden; }
.gf-number-card { background:var(--gf-dark);padding:40px 24px;text-align:center; }
.gf-number-val { font-family:var(--gf-font-display);font-size:clamp(36px,5vw,56px);font-weight:900;color:var(--gf-accent);line-height:1;margin-bottom:4px; }
.gf-number-val .unit { font-size:16px;font-weight:600;color:var(--gf-accent-dark); }
.gf-number-label { font-size:13px;color:var(--gf-gray-light);margin-top:8px;font-weight:500; }

/* Features */
.gf-features { padding:100px 0;background:var(--gf-black);position:relative; }
.gf-features::before { content:'';position:absolute;top:0;right:0;width:50%;height:100%;background:radial-gradient(ellipse at top right,rgba(232,168,56,0.03) 0%,transparent 60%); }
.gf-features-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:20px;position:relative;z-index:1; }
.gf-feature-card { background:var(--gf-dark);border:1px solid rgba(255,255,255,0.06);border-radius:12px;padding:36px 28px;transition:all 0.35s;position:relative;overflow:hidden; }
.gf-feature-card::before { content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--gf-accent);transform:scaleX(0);transform-origin:left;transition:transform 0.4s ease; }
.gf-feature-card:hover::before { transform:scaleX(1); }
.gf-feature-card:hover { border-color:rgba(232,168,56,0.2);transform:translateY(-4px);box-shadow:0 16px 48px rgba(0,0,0,0.3); }
.gf-feature-icon { width:48px;height:48px;background:rgba(232,168,56,0.1);border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:20px;color:var(--gf-accent); }
.gf-feature-icon .gf-icon { width:24px;height:24px; }
.gf-feature-card h3 { font-size:18px;font-weight:800;color:var(--gf-white);margin-bottom:10px;line-height:1.4; }
.gf-feature-card p { font-size:14px;color:var(--gf-gray-light);line-height:1.7; }

/* Process */
.gf-process { padding:100px 0;background:var(--gf-dark); }
.gf-process-steps { display:grid;grid-template-columns:repeat(3,1fr);gap:0;position:relative; }
.gf-process-steps::before { content:'';position:absolute;top:40px;left:16.67%;right:16.67%;height:2px;background:linear-gradient(90deg,var(--gf-accent),var(--gf-teal));z-index:0; }
.gf-process-step { text-align:center;position:relative;z-index:1;padding:0 20px; }
.gf-step-num { width:80px;height:80px;background:var(--gf-dark);border:3px solid var(--gf-accent);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-family:var(--gf-font-display);font-size:28px;font-weight:900;color:var(--gf-accent); }
.gf-step-num--2 { border-color:var(--gf-accent-light)!important;color:var(--gf-accent-light)!important; }
.gf-step-num--3 { border-color:var(--gf-teal)!important;color:var(--gf-teal)!important; }
.gf-process-step h3 { font-size:18px;font-weight:800;color:var(--gf-white);margin-bottom:8px; }
.gf-process-step p { font-size:13px;color:var(--gf-gray-light);line-height:1.7; }
.gf-time-badge { display:inline-block;margin-top:12px;background:rgba(56,200,176,0.1);border:1px solid rgba(56,200,176,0.25);color:var(--gf-teal);font-size:11px;font-weight:700;padding:4px 12px;border-radius:4px; }

/* Interviews */
.gf-interviews { padding:100px 0;background:var(--gf-black); }
.gf-interview-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:20px; }
.gf-interview-card { background:var(--gf-dark);border:1px solid rgba(255,255,255,0.06);border-radius:12px;overflow:hidden;transition:all 0.3s;display:flex;flex-direction:column;text-decoration:none;color:inherit; }
.gf-interview-card:hover { border-color:rgba(232,168,56,0.2);transform:translateY(-3px); }
.gf-interview-img { height:200px;background:var(--gf-dark3);display:flex;align-items:center;justify-content:center;overflow:hidden; }
.gf-interview-img img { width:100%;height:100%;object-fit:cover; }
.gf-placeholder-icon { width:56px;height:56px;color:var(--gf-gray);opacity:0.4; }
.gf-interview-body { padding:24px;flex:1;display:flex;flex-direction:column; }
.gf-interview-body h3 { font-size:16px;font-weight:700;color:var(--gf-white);line-height:1.5;margin-bottom:10px; }
.gf-interview-body p { font-size:13px;color:var(--gf-gray-light);line-height:1.7;flex:1; }
.gf-read-more { margin-top:16px;font-size:13px;font-weight:600;color:var(--gf-accent); }

/* Conditions section */
.gf-conditions-section { padding:100px 0;background:var(--gf-dark); }
.gf-table { width:100%;border-collapse:collapse;font-size:14px; }
.gf-table th,.gf-table td { padding:16px 20px;border-bottom:1px solid rgba(255,255,255,0.06);text-align:left;vertical-align:top; }
.gf-table th { width:180px;font-weight:700;color:var(--gf-accent);font-size:13px;background:rgba(232,168,56,0.04); }
.gf-table td { color:var(--gf-text); }
.gf-table td small { color:var(--gf-gray-light); }
.gf-table td strong { color:var(--gf-accent); }
.gf-conditions-note { margin-top:16px;font-size:12px;color:var(--gf-gray-light);padding:12px 16px;background:rgba(232,80,80,0.05);border-left:3px solid var(--gf-red);border-radius:0 6px 6px 0; }

/* FAQ */
.gf-faq { padding:100px 0;background:var(--gf-black); }
.gf-faq-list { max-width:800px;margin:0 auto; }
.gf-faq-item { border-bottom:1px solid rgba(255,255,255,0.06); }
.gf-faq-q { padding:20px 0;display:flex;align-items:flex-start;gap:16px;cursor:pointer;user-select:none; }
.gf-q-icon { flex-shrink:0;width:28px;height:28px;background:rgba(232,168,56,0.1);border-radius:6px;display:flex;align-items:center;justify-content:center;font-family:var(--gf-font-display);font-size:14px;font-weight:800;color:var(--gf-accent); }
.gf-faq-q h3 { font-size:15px;font-weight:700;color:var(--gf-white);line-height:1.5;flex:1; }
.gf-toggle { flex-shrink:0;font-size:20px;color:var(--gf-gray-light);transition:transform 0.3s; }
.gf-faq-item.is-open .gf-toggle { transform:rotate(45deg); }
.gf-faq-a { max-height:0;overflow:hidden;transition:max-height 0.4s ease,padding 0.3s ease; }
.gf-faq-item.is-open .gf-faq-a { max-height:300px;padding-bottom:20px; }
.gf-faq-a p { padding-left:44px;font-size:14px;color:var(--gf-gray-light);line-height:1.8; }

/* CTA section */
.gf-cta-section { padding:100px 0;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--gf-dark) 0%,rgba(232,168,56,0.08) 100%); }
.gf-cta-section::before { content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at center,rgba(232,168,56,0.06) 0%,transparent 40%); }
.gf-cta-section .gf-container { position:relative;z-index:1; }
.gf-cta-section h2 { font-family:var(--gf-font-display);font-size:clamp(28px,4vw,44px);font-weight:900;color:var(--gf-white);line-height:1.3;margin-bottom:16px; }
.gf-cta-section h2 em { font-style:normal;color:var(--gf-accent); }
.gf-cta-desc { font-size:16px;color:var(--gf-gray-light);margin-bottom:36px;max-width:600px;margin-left:auto;margin-right:auto; }
.gf-cta-buttons { display:flex;justify-content:center;gap:12px;flex-wrap:wrap; }
.gf-cta-note { margin-top:20px;font-size:12px;color:var(--gf-gray-light); }

/* Responsive */
@media(max-width:1024px) { .gf-features-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:768px) {
  .gf-hero { min-height:90vh; }
  .gf-numbers-grid { grid-template-columns:repeat(2,1fr); }
  .gf-features-grid { grid-template-columns:1fr; }
  .gf-process-steps { grid-template-columns:1fr;gap:32px; }
  .gf-process-steps::before { display:none; }
  .gf-interview-grid { grid-template-columns:1fr; }
  .gf-table th { width:120px;font-size:12px; }
  .gf-hero-badges { flex-direction:column; }
}
