@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&family=Noto+Sans+JP:wght@100;200;300;400;500;600;700;800;900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&family=Overpass:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");




/* フロントページ========= */
    :root {
      --black:   #090909;
      --dark:    #111318;
      --dark2:   #181c24;
      --dark3:   #1f242e;
      --gold:    #c9a84c;
      --gold-l:  #e8c96a;
      --gold-d:  #a07c28;
      --gold-bg: rgba(201,168,76,0.08);
      --white:   #f4f4f2;
      --gray:    #8a8f9a;
      --gray-l:  #b8bdc8;
      --red:     #dc2626;
      --radius:  14px;
    }
    

    * { margin:0; padding:0; box-sizing:border-box; }
    html { scroll-behavior:smooth; }

    body {
      font-family:'Hiragino Sans','Noto Sans JP','Yu Gothic',sans-serif;
      background:var(--black);
      color:var(--white);
      line-height:1.7;
    }

    /* ===== NAV ===== */
    nav {
      position:fixed; top:0; left:0; right:0; z-index:100;
      display:flex; align-items:center; justify-content:space-between;
      padding:0 44px; height:68px;
      background:rgba(9,9,9,0.93);
      backdrop-filter:blur(14px);
      border-bottom:1px solid rgba(201,168,76,0.18);
    }

    .nav-logo {
      font-size:1.3rem; font-weight:900; letter-spacing:.14em;
      color:var(--gold); text-decoration:none;
    }
    .nav-logo span { color:var(--white); }

    .nav-links { display:flex; gap:26px; list-style:none; }
    .nav-links a {
      color:var(--gray-l); text-decoration:none;
      font-size:.8rem; letter-spacing:.05em; font-weight:500;
      transition:color .2s;
    }
    .nav-links a:hover { color:var(--gold); }

    .nav-cta {
      background:var(--gold) !important; color:var(--black) !important;
      padding:8px 22px; border-radius:6px; font-weight:700 !important;
    }
    .nav-cta:hover { background:var(--gold-l) !important; }

    /* ===== HERO ===== */
    #hero {
      min-height:100vh;
      display:flex; align-items:center;
      position:relative; overflow:hidden;
      padding:100px 44px 60px;
    }

    .hero-bg-img {
      position:absolute; inset:0;
      background:url("../img/fv.jpg") center/cover no-repeat;
    }

    .hero-overlay {
      position:absolute; inset:0;
      background:linear-gradient(
        105deg,
        rgba(9,9,9,0.96) 0%,
        rgba(9,9,9,0.88) 50%,
        rgba(9,9,9,0.60) 100%
      );
    }

    .hero-inner {
      position:relative; z-index:1;
      max-width:1200px; margin:0 auto; width:100%;
      display:grid; grid-template-columns:1fr 420px; gap:72px; align-items:center;
    }

    .hero-tag {
      display:inline-flex; align-items:center; gap:8px;
      background:rgba(201,168,76,0.12);
      border:1px solid rgba(201,168,76,0.35);
      color:var(--gold); font-size:.73rem;
      letter-spacing:.18em; padding:6px 16px;
      border-radius:100px; margin-bottom:22px;
    }

    .hero-title {
      font-size:clamp(2.4rem,5.5vw,4.2rem);
      font-weight:900; color:var(--white);
      line-height:1.2; margin-bottom:22px;
    }
    .hero-title .gold { color:var(--gold-l); }

    .hero-lead {
      font-size:1rem; color:rgba(255,255,255,.72);
      line-height:1.95; margin-bottom:40px; max-width:520px;
    }

    .hero-btns { display:flex; gap:14px; flex-wrap:wrap; }

    .btn-gold {
      background:var(--gold); color:var(--black);
      padding:14px 34px; border-radius:7px;
      font-weight:800; font-size:.95rem;
      text-decoration:none; transition:all .2s; display:inline-block;
    }
    .btn-gold:hover { background:var(--gold-l); transform:translateY(-2px); box-shadow:0 8px 24px rgba(201,168,76,.35); }

    .btn-outline {
      border:1.5px solid rgba(255,255,255,.28);
      color:var(--white); padding:14px 34px; border-radius:7px;
      font-weight:600; font-size:.95rem;
      text-decoration:none; transition:all .2s; display:inline-block;
    }
    .btn-outline:hover { border-color:var(--gold); color:var(--gold); transform:translateY(-2px); }

    /* hero card */
    .hero-card {
      background:rgba(255,255,255,.05);
      border:1px solid rgba(201,168,76,.22);
      backdrop-filter:blur(10px);
      border-radius:18px; padding:32px 28px;
    }

    .hero-card-label {
      font-size:.7rem; letter-spacing:.18em;
      color:var(--gold); font-weight:700; margin-bottom:18px;
    }

    .hero-list { display:flex; flex-direction:column; gap:10px; margin-bottom:24px; }

    .hero-list-item {
      display:flex; align-items:center; gap:12px;
      background:rgba(255,255,255,.05);
      border-radius:9px; padding:11px 14px;
      font-size:.87rem; color:rgba(255,255,255,.85);
    }

    .hero-safety {
      background:rgba(220,38,38,.1);
      border:1px solid rgba(220,38,38,.28);
      border-radius:9px; padding:13px 16px;
      display:flex; gap:10px; align-items:center;
      font-size:.78rem; color:#fca5a5; line-height:1.6;
    }

    /* ===== SECTION COMMON ===== */
    section { padding:96px 24px; }
    .container { max-width:1120px; margin:0 auto; }

    .section-tag {
      display:inline-block; font-size:.68rem; letter-spacing:.26em;
      color:var(--gold); text-transform:uppercase; font-weight:700; margin-bottom:10px;
    }

    .section-title {
      font-size:clamp(1.8rem,3.5vw,2.7rem);
      font-weight:800; color:var(--white); line-height:1.3; margin-bottom:14px;
    }

    .section-lead {
      font-size:.95rem; color:var(--gray-l); line-height:1.95; max-width:640px;
    }

    .divider {
      width:44px; height:3px;
      background:linear-gradient(90deg,var(--gold),transparent);
      margin:14px 0;
    }

    /* ===== ABOUT ===== */
    #about { background:var(--dark); }

    .about-grid {
      display:grid; grid-template-columns:1fr 1fr;
      gap:72px; align-items:center;
    }

    .about-img {
      border-radius:20px; overflow:hidden;
      position:relative; height:440px;
    }

    .about-img img {
      width:100%; height:100%; object-fit:cover;
      display:block;
    }

    .about-img-badge {
      position:absolute; bottom:20px; left:20px;
      background:rgba(9,9,9,.88);
      border:1px solid rgba(201,168,76,.35);
      border-radius:10px; padding:12px 18px;
      display:flex; gap:10px; align-items:center;
      backdrop-filter:blur(8px);
    }

    .about-img-badge span { font-size:.78rem; color:var(--gold-l); line-height:1.5; }

    .about-values { display:flex; flex-direction:column; gap:14px; margin-top:32px; }

    .value-row {
      display:flex; gap:14px; align-items:flex-start;
      background:var(--dark2);
      border:1px solid rgba(201,168,76,.1);
      border-radius:11px; padding:18px;
      transition:border-color .2s;
    }
    .value-row:hover { border-color:rgba(201,168,76,.3); }

    .value-icon {
      flex-shrink:0; width:42px; height:42px;
      background:rgba(201,168,76,.12);
      border-radius:10px;
      display:flex; align-items:center; justify-content:center;
      font-size:1.25rem;
    }

    .value-body strong { display:block; font-size:.9rem; font-weight:700; margin-bottom:3px; }
    .value-body span { font-size:.79rem; color:var(--gray); }

    /* ===== SERVICES ===== */
    #services { background:var(--black); }

    .services-grid {
      display:grid; grid-template-columns:repeat(3,1fr);
      gap:18px; margin-top:52px;
    }

    .service-card {
      background:var(--dark2);
      border:1px solid rgba(255,255,255,.06);
      border-radius:var(--radius); overflow:hidden;
      transition:all .25s;
    }
    .service-card:hover { border-color:rgba(201,168,76,.3); transform:translateY(-4px); }

    .service-img {
      width:100%; height:160px; object-fit:cover; display:block;
    }

    .service-body { padding:24px 22px; }
    .service-emoji { font-size:1.7rem; margin-bottom:10px; }
    .service-body h3 { font-size:.97rem; font-weight:800; margin-bottom:8px; }
    .service-body p { font-size:.8rem; color:var(--gray); line-height:1.85; }

    .service-tag {
      display:inline-block; margin-top:12px;
      font-size:.67rem; background:rgba(201,168,76,.1);
      border:1px solid rgba(201,168,76,.25);
      color:var(--gold); padding:3px 10px;
      border-radius:100px; font-weight:700;
    }

    /* ===== EXPERIENCES ===== */
    #experiences { background:var(--dark); }

    .exp-hero-img {
      width:100%; height:280px; object-fit:cover;
      border-radius:18px; margin-bottom:48px;
      display:block;
    }

    .exp-grid {
      display:grid; grid-template-columns:repeat(2,1fr);
      gap:18px;
    }

    .exp-card {
      background:var(--dark2);
      border:1px solid rgba(255,255,255,.06);
      border-radius:var(--radius); overflow:hidden;
      transition:all .25s;
    }
    .exp-card:hover { border-color:rgba(201,168,76,.28); transform:translateY(-3px); }

    .exp-card-img { width:100%; height:180px; object-fit:cover; display:block; }

    .exp-card-body { padding:24px 22px; }
    .exp-card-body h3 { font-size:1rem; font-weight:800; margin-bottom:8px; }
    .exp-card-body p { font-size:.81rem; color:var(--gray); line-height:1.85; }

    .exp-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
    .exp-tag {
      font-size:.68rem;
      background:rgba(201,168,76,.1);
      border:1px solid rgba(201,168,76,.2);
      color:var(--gold); padding:3px 10px;
      border-radius:100px;
    }

    .exp-cta {
      margin-top:18px; grid-column:1/-1;
      background:rgba(201,168,76,.08);
      border:1px solid rgba(201,168,76,.22);
      border-radius:var(--radius); padding:28px 32px;
      display:flex; align-items:center;
      justify-content:space-between; gap:24px;
    }
    .exp-cta h3 { font-size:1.02rem; font-weight:800; margin-bottom:6px; }
    .exp-cta p { font-size:.83rem; color:var(--gray-l); }

    .btn-gold-outline {
      flex-shrink:0;
      border:1.5px solid var(--gold);
      color:var(--gold); padding:11px 28px;
      border-radius:7px; font-weight:700; font-size:.88rem;
      text-decoration:none; transition:all .2s; white-space:nowrap;
    }
    .btn-gold-outline:hover { background:var(--gold); color:var(--black); }

    /* ===== SAFETY ===== */
    #safety { background:var(--black); }

    .safety-split {
      display:grid; grid-template-columns:1fr 1fr;
      gap:60px; align-items:center; margin-bottom:48px;
    }

    .safety-img {
      border-radius:20px; overflow:hidden; height:380px;
      position:relative;
    }
    .safety-img img { width:100%; height:100%; object-fit:cover; display:block; }
    .safety-img-overlay {
      position:absolute; inset:0;
      background:linear-gradient(180deg,transparent 40%,rgba(9,9,9,.7) 100%);
    }
    .safety-img-tag {
      position:absolute; bottom:18px; left:18px;
      background:rgba(220,38,38,.85);
      border-radius:8px; padding:8px 14px;
      font-size:.75rem; font-weight:700; color:#fff;
      display:flex; align-items:center; gap:8px;
    }

    .safety-text .section-lead { max-width:100%; }

    .safety-points { display:flex; flex-direction:column; gap:12px; margin-top:24px; }
    .safety-point {
      display:flex; gap:12px; align-items:flex-start;
      background:var(--dark2);
      border-left:3px solid var(--gold);
      border-radius:0 9px 9px 0;
      padding:14px 16px;
    }
    .safety-point strong { display:block; font-size:.88rem; font-weight:700; margin-bottom:2px; }
    .safety-point span { font-size:.78rem; color:var(--gray); }

    .safety-cards {
      display:grid; grid-template-columns:repeat(3,1fr);
      gap:18px;
    }

    .safety-card {
      background:var(--dark2);
      border:1px solid rgba(255,255,255,.06);
      border-radius:var(--radius); padding:28px 24px;
      border-top:3px solid var(--gold);
    }

    .safety-card-icon { font-size:2rem; margin-bottom:14px; }
    .safety-card h4 { font-size:.92rem; font-weight:800; margin-bottom:10px; }
    .safety-card p { font-size:.79rem; color:var(--gray); line-height:1.85; }

    .protocol-wrap {
      margin-top:24px; background:var(--dark2);
      border-radius:var(--radius); padding:28px 36px;
    }
    .protocol-wrap h4 { font-size:.82rem; font-weight:700; color:var(--gray); letter-spacing:.1em; margin-bottom:20px; }
    .protocol-flow { display:flex; align-items:center; flex-wrap:wrap; gap:4px; }
    .p-step { flex:1; min-width:90px; display:flex; flex-direction:column; align-items:center; text-align:center; }
    .p-step-c {
      width:50px; height:50px; border-radius:50%;
      background:rgba(220,38,38,.1); border:2px solid rgba(220,38,38,.22);
      display:flex; align-items:center; justify-content:center;
      font-size:1.3rem; margin-bottom:7px;
    }
    .p-step span { font-size:.72rem; color:var(--gray-l); font-weight:600; }
    .p-arrow { color:var(--gray); font-size:1.1rem; margin-bottom:22px; flex-shrink:0; }

    /* ===== STRENGTHS ===== */
    #strengths { background:var(--dark); }

    .strengths-grid {
      display:grid; grid-template-columns:repeat(2,1fr);
      gap:18px; margin-top:52px;
    }

    .strength-card {
      background:var(--dark2);
      border:1px solid rgba(255,255,255,.06);
      border-radius:var(--radius); padding:30px 26px;
      display:flex; gap:18px; align-items:flex-start;
      transition:border-color .2s;
    }
    .strength-card:hover { border-color:rgba(201,168,76,.3); }

    .strength-icon {
      flex-shrink:0; width:48px; height:48px;
      background:rgba(201,168,76,.1);
      border:1px solid rgba(201,168,76,.25);
      border-radius:11px;
      display:flex; align-items:center; justify-content:center;
      font-size:1.45rem;
    }

    .strength-card h3 { font-size:.95rem; font-weight:800; margin-bottom:7px; }
    .strength-card p { font-size:.8rem; color:var(--gray); line-height:1.85; }

    /* ===== ATHLETE ===== */
    #athlete { background:var(--black); }

    .athlete-grid {
      display:grid; grid-template-columns:1fr 1fr;
      gap:60px; align-items:center;
    }

    .athlete-img {
      border-radius:20px; overflow:hidden; height:420px; position:relative;
    }
    .athlete-img img { width:100%; height:100%; object-fit:cover; display:block; }
    .athlete-img-overlay {
      position:absolute; inset:0;
      background:linear-gradient(180deg,transparent 50%,rgba(9,9,9,.75) 100%);
    }
    .athlete-img-label {
      position:absolute; bottom:18px; left:18px;
      background:rgba(9,9,9,.82);
      border:1px solid rgba(201,168,76,.3);
      border-radius:8px; padding:8px 14px;
      font-size:.75rem; color:var(--gold-l); font-weight:600;
    }

    .athlete-badges { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:18px; }
    .a-badge {
      background:rgba(201,168,76,.1);
      border:1px solid rgba(201,168,76,.25);
      color:var(--gold); font-size:.73rem; font-weight:700;
      padding:5px 12px; border-radius:100px;
    }

    .athlete-points { display:flex; flex-direction:column; gap:12px; margin-bottom:28px; }
    .a-point {
      display:flex; gap:12px; align-items:flex-start;
      font-size:.85rem;
    }
    .a-check {
      flex-shrink:0; width:20px; height:20px;
      background:var(--gold); border-radius:50%;
      display:flex; align-items:center; justify-content:center;
      color:var(--black); font-size:.65rem; font-weight:900; margin-top:3px;
    }

    .rank-box {
      background:var(--dark2);
      border:1px solid rgba(201,168,76,.15);
      border-radius:12px; padding:22px 20px; margin-top:24px;
    }
    .rank-box h4 { font-size:.82rem; font-weight:700; color:var(--gold); margin-bottom:14px; letter-spacing:.08em; }
    .rank-list { display:flex; flex-direction:column; gap:9px; }
    .rank-row {
      display:flex; align-items:center; gap:12px;
      background:var(--dark3); border-radius:8px; padding:11px 14px;
    }
    .rank-badge { width:68px; text-align:center; font-size:.68rem; font-weight:900; padding:4px 0; border-radius:5px; flex-shrink:0; letter-spacing:.06em; }
    .gold-r { background:var(--gold); color:#2a1a00; }
    .silver-r { background:#c8d0d8; color:#1a1a1a; }
    .bronze-r { background:#cd7f32; color:#1a1a1a; }
    .rank-desc { font-size:.79rem; color:var(--gray-l); }

    /* ===== RECRUIT ===== */
    #recruit { background:var(--dark); }

    .recruit-hero-img {
      width:100%; height:240px; object-fit:cover;
      border-radius:18px; margin-bottom:52px; display:block;
    }

    .recruit-grid {
      display:grid; grid-template-columns:repeat(2,1fr);
      gap:18px;
    }

    .recruit-card {
      background:var(--dark2);
      border:1px solid rgba(255,255,255,.07);
      border-radius:var(--radius); padding:32px 28px;
      transition:all .25s;
    }
    .recruit-card:hover { border-color:rgba(201,168,76,.25); transform:translateY(-3px); }
    .recruit-card.featured { border-color:rgba(201,168,76,.28); background:rgba(201,168,76,.04); }

    .recruit-icon { font-size:2.4rem; margin-bottom:14px; }
    .recruit-card h3 { font-size:1.02rem; font-weight:800; margin-bottom:8px; }
    .recruit-card > p { font-size:.82rem; color:var(--gray); line-height:1.85; margin-bottom:18px; }

    .recruit-perks { display:flex; flex-direction:column; gap:7px; margin-bottom:22px; }
    .r-perk { display:flex; align-items:center; gap:8px; font-size:.79rem; color:var(--gray-l); }
    .r-perk::before { content:'✓'; color:var(--gold); font-weight:900; }

    .r-btn {
      display:block; text-align:center;
      padding:11px 0; border-radius:7px;
      font-weight:700; font-size:.87rem;
      text-decoration:none; transition:all .2s;
    }
    .r-btn-gold { background:var(--gold); color:var(--black); }
    .r-btn-gold:hover { background:var(--gold-l); }
    .r-btn-outline { border:1.5px solid rgba(255,255,255,.22); color:rgba(255,255,255,.85); }
    .r-btn-outline:hover { border-color:var(--gold); color:var(--gold); }

    .recruit-note {
      margin-top:32px;
      background:rgba(201,168,76,.07);
      border:1px solid rgba(201,168,76,.2);
      border-radius:12px; padding:22px 26px;
      display:flex; gap:14px; align-items:flex-start;
      font-size:.82rem; color:var(--gray-l); line-height:1.9;
    }
    .recruit-note strong { color:var(--gold-l); }

    /* ===== CONTACT ===== */
    #contact { background:var(--black); }

    .contact-grid {
      display:grid; grid-template-columns:1fr 1fr;
      gap:60px; margin-top:52px;
    }

    .contact-cards { display:flex; flex-direction:column; gap:14px; }

    .contact-card {
      background:var(--dark2);
      border:1px solid rgba(255,255,255,.07);
      border-radius:12px; padding:24px;
      display:flex; gap:14px; align-items:flex-start;
    }

    .cc-icon {
      flex-shrink:0; width:46px; height:46px;
      background:rgba(201,168,76,.12);
      border:1px solid rgba(201,168,76,.25);
      border-radius:10px;
      display:flex; align-items:center; justify-content:center;
      font-size:1.35rem;
    }

    .contact-card h4 { font-size:.88rem; font-weight:800; margin-bottom:4px; }
    .contact-card p { font-size:.79rem; color:var(--gray); }
    .contact-card a {
      display:inline-block; margin-top:10px;
      background:var(--gold); color:var(--black);
      padding:7px 18px; border-radius:6px;
      font-size:.78rem; font-weight:700; text-decoration:none;
    }

    .contact-form {
      background:var(--dark2);
      border:1px solid rgba(201,168,76,.15);
      border-radius:18px; padding:36px 32px;
    }

    .contact-form h3 {
      font-size:1.05rem; font-weight:800;
      color:var(--gold-l); margin-bottom:24px;
    }

    .form-group { margin-bottom:16px; }
    .form-group label { display:block; font-size:.75rem; font-weight:700; color:var(--gray-l); margin-bottom:6px; }
    .form-group input,
    .form-group select,
    .form-group textarea {
      width:100%; padding:11px 14px;
      background:var(--dark3);
      border:1.5px solid rgba(255,255,255,.09);
      border-radius:8px; font-size:.87rem;
      font-family:inherit; color:var(--white);
      transition:border-color .2s;
    }
    .form-group input:focus,
    .form-group select:focus,
    .form-group textarea:focus { outline:none; border-color:var(--gold); }
    .form-group select option { background:var(--dark3); }
    .form-group textarea { resize:vertical; min-height:88px; }

    .form-submit {
      width:100%; padding:13px;
      background:var(--gold); color:var(--black);
      border:none; border-radius:7px;
      font-size:.95rem; font-weight:800;
      cursor:pointer; transition:all .2s; letter-spacing:.05em;
    }
    .form-submit:hover { background:var(--gold-l); transform:translateY(-1px); }

    /* ===== FOOTER ===== */
    footer {
      background:var(--dark);
      border-top:1px solid rgba(201,168,76,.12);
      padding:52px 24px 32px;
    }

    .footer-inner { max-width:1120px; margin:0 auto; text-align:center; }

    .footer-logo {
      font-size:1.5rem; font-weight:900; letter-spacing:.16em;
      color:var(--gold); margin-bottom:6px;
    }
    .footer-logo span { color:var(--white); }

    .footer-sub { font-size:.73rem; color:var(--gray); letter-spacing:.08em; margin-bottom:32px; }

    .footer-links { display:flex; flex-wrap:wrap; gap:22px; justify-content:center; margin-bottom:36px; }
    .footer-links a { font-size:.76rem; color:var(--gray); text-decoration:none; transition:color .2s; }
    .footer-links a:hover { color:var(--gold); }

    .footer-copy { font-size:.68rem; color:rgba(255,255,255,.18); padding-top:24px; border-top:1px solid rgba(255,255,255,.06); }

    /* ===== REVEAL ===== */
    .reveal { opacity:0; transform:translateY(20px); transition:opacity .65s ease,transform .65s ease; }
    .reveal.visible { opacity:1; transform:none; }

    /* ===== HAMBURGER ===== */
    .hamburger {
      display:none;
      flex-direction:column; justify-content:center; gap:5px;
      width:40px; height:40px; cursor:pointer;
      background:none; border:none; padding:4px;
    }
    .hamburger span {
      display:block; width:24px; height:2px;
      background:var(--gold); border-radius:2px;
      transition:all .28s ease;
    }
    .hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
    .hamburger.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
    .hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

    /* ===== RESPONSIVE ===== */
    @media(max-width:900px){
      /* NAV */
      nav { padding:0 18px; height:60px; }
      .hamburger { display:flex; }
      .nav-links {
        display:flex; flex-direction:column;
        position:fixed; top:60px; left:0; right:0;
        background:rgba(9,9,9,0.97);
        backdrop-filter:blur(16px);
        border-bottom:1px solid rgba(201,168,76,0.2);
        padding:20px 24px 28px;
        gap:0;
        transform:translateY(-110%);
        transition:transform .3s ease;
        z-index:99;
      }
      .nav-links.open { transform:translateY(0); }
      .nav-links li { border-bottom:1px solid rgba(255,255,255,.06); }
      .nav-links a {
        display:block; padding:14px 0;
        font-size:.95rem; color:var(--white);
      }
      .nav-links a:hover { color:var(--gold); }
      .nav-cta {
        margin-top:12px;
        background:var(--gold) !important;
        color:var(--black) !important;
        text-align:center; border-radius:7px !important;
        padding:13px 0 !important;
      }

      /* HERO */
      #hero { padding:80px 18px 52px; min-height:auto; }
      .hero-inner { grid-template-columns:1fr; gap:32px; }
      .hero-title { font-size:2.4rem; }
      .hero-lead { font-size:.92rem; margin-bottom:28px; }
      .hero-btns { flex-direction:column; gap:10px; }
      .btn-gold, .btn-outline { text-align:center; padding:14px 20px; }
      .hero-card { padding:22px 18px; }
      .hero-list-item { font-size:.84rem; padding:10px 12px; }

      /* SECTIONS */
      section { padding:64px 18px; }
      .section-title { font-size:1.8rem; }

      /* ABOUT */
      .about-grid { grid-template-columns:1fr; gap:32px; }
      .about-img { height:280px; }

      /* SERVICES */
      .services-grid { grid-template-columns:1fr; gap:14px; margin-top:32px; }
      .service-img { height:180px; }

      /* EXPERIENCES */
      .exp-grid { grid-template-columns:1fr; gap:14px; }
      .exp-hero-img { height:200px; margin-bottom:28px; }
      .exp-card-img { height:160px; }
      .exp-cta { flex-direction:column; gap:16px; padding:22px 18px; }

      /* SAFETY */
      .safety-split { grid-template-columns:1fr; gap:28px; margin-top:32px !important; }
      .safety-img { height:260px; }
      .safety-cards { grid-template-columns:1fr; gap:12px; }
      .protocol-flow { gap:6px; flex-wrap:wrap; justify-content:center; }
      .p-step { min-width:70px; }
      .protocol-wrap { padding:20px 18px; }

      /* STRENGTHS */
      .strengths-grid { grid-template-columns:1fr; gap:12px; margin-top:32px; }
      .strength-card { padding:22px 18px; }

      /* ATHLETE */
      .athlete-grid { grid-template-columns:1fr; gap:28px; }
      .athlete-img { height:280px; }
      .athlete-badges { gap:6px; }

      /* RECRUIT */
      .recruit-grid { grid-template-columns:1fr; gap:14px; }
      .recruit-hero-img { height:180px; margin-bottom:32px; }
      .recruit-card { padding:24px 20px; }
      .recruit-note { flex-direction:row; gap:12px; padding:18px; }

      /* CONTACT */
      .contact-grid { grid-template-columns:1fr; gap:32px; margin-top:32px; }
      .contact-form { padding:24px 18px; }
    }

    @media(max-width:480px){
      .hero-title { font-size:2rem; }
      .section-title { font-size:1.6rem; }
      .hero-card { display:none; }
      nav { height:56px; }
      .nav-links { top:56px; }
    }

    /* お問い合わせフォーム内の一番外側のクラスを指定 */
    .contact-form.reveal br {
      display: none;
    }