.drive-service-page { background: #f4f7fb; }
.drive-service-page .service-hero { min-height: 760px; padding: 150px 0 90px; }
.drive-service-page .service-hero-container { grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: 70px; }
.drive-service-page .service-hero-content { align-self: center; }
.drive-service-page .service-hero-content h1 { margin: 18px 0 25px; }
.drive-service-page .service-hero-content > p { max-width: 690px; color: #b8c8d9; font-size: 1.08rem; line-height: 1.75; }

.drive-service-kicker { display: flex; align-items: center; gap: 10px; color: #84dfff; font-family: ui-monospace, Consolas, monospace; font-size: .73rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.drive-service-kicker::before { width: 28px; height: 1px; background: currentColor; content: ""; }

.drive-action-note { display: grid; grid-template-columns: 40px 1fr; gap: 13px; max-width: 620px; margin-top: 30px; padding: 17px 18px; border: 1px solid rgba(255,191,63,.3); border-radius: 9px; background: rgba(255,191,63,.08); color: #d7e3ef; }
.drive-action-note svg { width: 25px; color: var(--drive-amber); }
.drive-action-note strong { display: block; margin-bottom: 3px; color: #fff; }
.drive-action-note span { color: #b8c8d9; font-size: .82rem; line-height: 1.55; }

.drive-service-visual { position: relative; min-height: 510px; transition: transform .5s var(--drive-ease); transform-style: preserve-3d; }
.drive-service-frame { position: absolute; inset: 40px 15px; overflow: hidden; border: 1px solid rgba(140,184,235,.22); border-radius: 20px; background: rgba(5,19,36,.78); box-shadow: 0 40px 80px rgba(0,8,22,.35); }
.drive-service-frame::before { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0/36px 36px,linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px) 0 0/36px 36px; content: ""; }
.drive-service-frame-head { position: relative; z-index: 2; display: flex; justify-content: space-between; padding: 20px 22px; border-bottom: 1px solid rgba(255,255,255,.1); color: #a9bdd0; font: 700 .7rem ui-monospace, Consolas, monospace; letter-spacing: .08em; text-transform: uppercase; }
.drive-service-frame-head span:last-child { color: var(--drive-mint); }
.drive-device-orbit { position: absolute; z-index: 1; inset: 88px 55px 72px; display: grid; place-items: center; border: 1px solid rgba(110,217,255,.18); border-radius: 50%; }
.drive-device-orbit::before,.drive-device-orbit::after { position: absolute; border: 1px solid rgba(110,217,255,.1); border-radius: 50%; content: ""; }
.drive-device-orbit::before { inset: 36px; }
.drive-device-orbit::after { inset: 78px; }
.drive-device-icon { position: relative; z-index: 2; display: grid; width: 150px; height: 150px; place-items: center; border: 1px solid rgba(140,184,235,.24); border-radius: 32px; background: linear-gradient(145deg, rgba(34,104,238,.27), rgba(8,31,58,.95)); box-shadow: 0 0 80px rgba(36,106,238,.25); }
.drive-device-icon img { width: 82px; height: 82px; filter: brightness(0) invert(1); opacity: .94; }
.drive-orbit-dot { position: absolute; z-index: 3; width: 9px; height: 9px; border-radius: 50%; background: var(--drive-mint); box-shadow: 0 0 17px var(--drive-mint); animation: orbitPulse 2s ease-in-out infinite; }
.drive-orbit-dot.one { top: 19%; left: 24%; }
.drive-orbit-dot.two { right: 15%; bottom: 30%; animation-delay: .7s; }
.drive-visual-label { position: absolute; z-index: 4; right: 30px; bottom: 24px; left: 30px; display: flex; justify-content: space-between; gap: 15px; color: #91a8bd; font-size: .7rem; }
.drive-visual-label strong { color: #fff; font: 700 .72rem ui-monospace, Consolas, monospace; }
@keyframes orbitPulse { 50% { transform: scale(1.6); opacity: .55; } }

.drive-evidence { position: relative; z-index: 3; margin-top: -35px; }
.drive-evidence-grid { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--drive-line); border-radius: 12px; background: #fff; box-shadow: 0 20px 50px rgba(9,31,61,.09); }
.drive-evidence-item { display: grid; grid-template-columns: 38px 1fr; gap: 12px; padding: 22px; border-right: 1px solid var(--drive-line); }
.drive-evidence-item:last-child { border-right: 0; }
.drive-evidence-item svg { width: 26px; color: var(--drive-blue); }
.drive-evidence-item strong { display: block; margin-bottom: 4px; font-size: .86rem; }
.drive-evidence-item span { color: var(--drive-muted); font-size: .72rem; line-height: 1.45; }

.drive-editorial-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 80px; align-items: start; }
.drive-editorial-intro { position: sticky; top: 120px; }
.drive-editorial-intro h2 { margin: 14px 0 20px; font-size: clamp(2.2rem, 4vw, 3.7rem); line-height: 1.05; letter-spacing: -.055em; }
.drive-editorial-intro p { color: var(--drive-muted); line-height: 1.8; }
.drive-signal-list { display: grid; gap: 1px; overflow: hidden; border: 1px solid var(--drive-line); border-radius: 12px; background: var(--drive-line); }
.drive-signal-card { display: grid; grid-template-columns: 52px 1fr; gap: 20px; padding: 30px; background: #fff; }
.drive-signal-card svg { width: 30px; color: var(--drive-blue); }
.drive-signal-card h3 { margin: 0 0 8px; font-size: 1.05rem; }
.drive-signal-card p { margin: 0; color: var(--drive-muted); line-height: 1.7; }

.drive-capability-band { background: var(--drive-navy); color: #fff; }
.drive-capability-band .section-label { color: var(--drive-cyan); }
.drive-capability-band .section-heading h2 { color: #fff; }
.drive-capability-band .section-heading p { color: #aebfd0; }
.drive-capability-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.drive-capability { min-height: 280px; padding: 30px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; background: rgba(255,255,255,.035); }
.drive-capability code { display: block; margin-bottom: 50px; color: var(--drive-mint); font: 700 .72rem ui-monospace,Consolas,monospace; }
.drive-capability h3 { margin-bottom: 12px; color: #fff; font-size: 1.2rem; }
.drive-capability p { color: #aebfd0; line-height: 1.7; }

.drive-process-grid { display: grid; grid-template-columns: repeat(4,1fr); counter-reset: process; }
.drive-process-step { position: relative; padding: 30px 28px 30px 0; border-top: 1px solid #aabbd0; counter-increment: process; }
.drive-process-step::before { position: absolute; top: -6px; left: 0; width: 11px; height: 11px; border: 3px solid #fff; border-radius: 50%; background: var(--drive-blue); box-shadow: 0 0 0 1px var(--drive-blue); content: ""; }
.drive-process-step small { color: var(--drive-blue); font: 800 .72rem ui-monospace,Consolas,monospace; }
.drive-process-step h3 { margin: 18px 0 10px; font-size: 1.05rem; }
.drive-process-step p { margin: 0; color: var(--drive-muted); font-size: .83rem; line-height: 1.65; }

.drive-protocol { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border-radius: 15px; background: #fff; box-shadow: 0 20px 60px rgba(9,31,61,.1); }
.drive-protocol-copy { padding: 48px; }
.drive-protocol-copy h2 { margin: 12px 0 18px; font-size: clamp(2rem,4vw,3.3rem); line-height: 1.06; letter-spacing: -.05em; }
.drive-protocol-list { display: grid; gap: 12px; margin-top: 26px; }
.drive-protocol-list li { display: grid; grid-template-columns: 26px 1fr; gap: 10px; color: var(--drive-muted); }
.drive-protocol-list li::before {
  display: block;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--drive-blue);
  content: "";
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='9' fill='black'/%3E%3Cpath d='m5.5 10 3 3 6-6' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='9' fill='black'/%3E%3Cpath d='m5.5 10 3 3 6-6' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}
.drive-protocol-panel { display: grid; align-content: center; gap: 18px; padding: 48px; color: #fff; background: linear-gradient(145deg,#0a2140,#123d77); }
.drive-protocol-panel .line { height: 1px; background: rgba(255,255,255,.15); }
.drive-protocol-panel strong { font-size: 1.15rem; }
.drive-protocol-panel p { color: #b9c9d9; line-height: 1.7; }

.drive-faq { display: grid; grid-template-columns: .7fr 1.3fr; gap: 70px; }
.drive-faq details { border-bottom: 1px solid var(--drive-line); }
.drive-faq summary { display: flex; justify-content: space-between; gap: 20px; padding: 22px 0; cursor: pointer; font-weight: 750; list-style: none; }
.drive-faq summary::after { color: var(--drive-blue); content: "+"; font-size: 1.2rem; }
.drive-faq details[open] summary::after { content: "−"; }
.drive-faq details p { max-width: 720px; margin: 0 0 24px; color: var(--drive-muted); line-height: 1.75; }

@media(max-width:980px){
  .drive-service-page .service-hero-container,.drive-editorial-grid,.drive-protocol,.drive-faq{grid-template-columns:1fr}
  .drive-service-visual{min-height:470px}
  .drive-evidence-grid,.drive-capability-grid,.drive-process-grid{grid-template-columns:repeat(2,1fr)}
  .drive-evidence-item:nth-child(2){border-right:0}.drive-evidence-item:nth-child(-n+2){border-bottom:1px solid var(--drive-line)}
  .drive-editorial-intro{position:static}
}
@media(max-width:620px){
  .drive-service-page .service-hero{padding-top:125px}
  .drive-service-page .service-hero-container{display:block}
  .drive-service-visual{min-height:390px;margin-top:40px}
  .drive-service-frame{inset:20px 0}.drive-device-orbit{inset:80px 32px 65px}.drive-device-icon{width:115px;height:115px}.drive-device-icon img{width:62px;height:62px}
  .drive-evidence-grid,.drive-capability-grid,.drive-process-grid{grid-template-columns:1fr}
  .drive-evidence-item{border-right:0;border-bottom:1px solid var(--drive-line)}
  .drive-evidence-item:last-child{border-bottom:0}
  .drive-signal-card{grid-template-columns:40px 1fr;padding:24px 20px}
  .drive-protocol-copy,.drive-protocol-panel{padding:30px 24px}
}
