/* index.css — ページ固有スタイル */
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:768px){
  .nav-links{display:none!important}
  .nav-hamburger{display:flex!important}
  .nav-mobile-open .nav-links{display:flex!important;flex-direction:column;position:fixed;top:60px;left:0;right:0;background:rgba(10,15,30,.98);padding:24px;gap:0;z-index:999;animation:slideDown .2s ease;border-bottom:1px solid rgba(255,255,255,.1)}
  .nav-mobile-open .nav-links a{padding:14px 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:15px;color:rgba(255,255,255,.8)!important;letter-spacing:.04em}
  .nav-mobile-open .nav-links a:last-child{border-bottom:none;margin-top:12px;background:#2563eb;text-align:center;padding:14px}
  .cycle-circles{flex-direction:column!important;align-items:center!important}
  .cycle-arrows{flex-direction:row!important;transform:rotate(90deg)}
  .form-2col{grid-template-columns:1fr!important}
  .svc-sub-row{flex-direction:column!important}
}
@keyframes glow{0%,100%{opacity:.45;transform:translateX(-50%) scale(1)}50%{opacity:.65;transform:translateX(-50%) scale(1.07)}}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1)}
.reveal.in{opacity:1;transform:translateY(0)}
.d1{transition-delay:.12s}.d2{transition-delay:.24s}.d3{transition-delay:.36s}.d4{transition-delay:.48s}.d5{transition-delay:.6s}
.hero-eye{animation:fadeUp .9s cubic-bezier(.22,1,.36,1) .1s both}
.hero-h{animation:fadeUp 1s cubic-bezier(.22,1,.36,1) .28s both}
.hero-sub{animation:fadeUp .9s cubic-bezier(.22,1,.36,1) .5s both}
.hero-cta{animation:fadeUp .9s cubic-bezier(.22,1,.36,1) .7s both}
.hero-note{animation:fadeUp .8s cubic-bezier(.22,1,.36,1) .86s both}
.nav-a{color:rgba(255,255,255,.7);font-size:13px;letter-spacing:.05em;transition:color .2s}
.nav-a:hover{color:#fff}
.nav-scrolled{background:rgba(26,26,46,.97) !important;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.07) !important}
.section-label{font-size:10px;letter-spacing:.22em;color:#2563eb;font-weight:500;text-transform:uppercase;margin-bottom:16px}
.section-h{font-size:clamp(24px,3vw,40px);font-weight:700;letter-spacing:-.02em;line-height:1.25;margin-bottom:20px}
.section-accent{width:32px;height:2px;background:#2563eb;margin-bottom:44px}
.par-card{background:#fff;border:1px solid #E2E8F0;padding:36px 32px;border-top:3px solid #2563eb;transition:box-shadow .3s}
.par-card:hover{box-shadow:0 8px 32px rgba(26,26,46,.1)}
.sub-card{background:#fff;border:1px solid #E2E8F0;padding:20px 18px;flex:1;min-width:130px;transition:box-shadow .25s,transform .25s}
.sub-card:hover{box-shadow:0 4px 16px rgba(26,26,46,.09);transform:translateY(-2px)}
.fi{width:100%;background:#fff;border:1px solid #E2E8F0;color:#1a1a2e;padding:12px 14px;font-size:14px;outline:none;transition:border-color .2s;appearance:none;border-radius:0}
.fi:focus{border-color:#2563eb}
.fi::placeholder{color:#CBD5E1}
.fi-error{border-color:#EF4444 !important}
.err-msg{font-size:12px;color:#EF4444;margin-top:5px}
.footer-a{font-size:13px;color:rgba(255,255,255,.45);transition:color .2s}
.footer-a:hover{color:#fff}

/* hover states */
.hv1:hover{background:#1D4ED8;}
.hv2:hover{border-color:rgba(37,99,235,.8);}
.hv3:hover{border-color:rgba(37,99,235,.8);}
.hv4:hover{border-color:rgba(37,99,235,.7);transform:translateY(-3px);}
.hv5:hover{border-color:rgba(37,99,235,.7);transform:translateY(-3px);}
.hv6:hover{border-color:rgba(37,99,235,.7);transform:translateY(-3px);}
.hv7:hover{border-color:rgba(37,99,235,.7);transform:translateY(-3px);}
.hv8:hover{border-color:rgba(37,99,235,.7);transform:translateY(-3px);}
.hv9:hover{border-color:rgba(37,99,235,.7);transform:translateY(-3px);}
.hv10:hover{border-color:rgba(37,99,235,.8);}
.hv11:hover{border-color:#fff;}
.hv12:hover{border-color:rgba(255,255,255,.5);}
.hv13:hover{opacity:.88;}
.hv14:hover{opacity:.88;}
.hv15:hover{color:#fff;}
.hv16:hover{color:#fff;}
.hv17:hover{color:#fff;}
.hv18:hover{color:#fff;}
.hv19:hover{color:#fff;}

/* dark form fields */
.fi-dark{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);color:#fff;padding:12px 14px;font-size:14px;width:100%;outline:none;transition:border-color .2s;border-radius:0}
.fi-dark:focus{border-color:#2563eb}
.fi-dark::placeholder{color:rgba(255,255,255,.3)}
.fi-dark.fi-error{border-color:#EF4444}
.hv-op:hover{opacity:.88}
.hv-back:hover{border-color:rgba(255,255,255,.5)}

.wpcf7-list-item-label {font-size:12px;color:rgba(255,255,255,.8);line-height:1.5;}
.wpcf7-checkbox .wpcf7-list-item label {height: 100%;display:flex;align-items:center;gap:10px;padding:12px 14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);cursor:pointer;transition:border-color .2s;}
.wpcf7-checkbox .wpcf7-list-item label input {width: 16px; height: 16px;}
.wpcf7-form-control.wpcf7-checkbox.q1-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.wpcf7-list-item {margin-left: 0;}
.wpcf7-form-control-wrap textarea {height:120px; min-height:120px; resize:vertical;}
.wpcf7-acceptance label {display:flex;align-items:center;gap:12px;margin-bottom:20px;cursor:pointer;}
#f-agree {width: 18px; height: 18px;}
.wpcf7-submit {width:100%;background:linear-gradient(90deg,#2563eb 0%,#7c3aed 100%);color:#fff;border:none;padding:18px;font-size:15px;font-weight:700;cursor:pointer;letter-spacing:.06em;transition:opacity .2s;}
#contact-form .reveal br {display: none;}

