html{scroll-behavior:smooth}
img{max-width:100%}

/* FAQ */
.faq-item{border-top:1px solid #e4e4e4}
.faq-item summary{list-style:none;display:flex;align-items:center;gap:16px;padding:22px 28px;cursor:pointer;min-height:44px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-n{flex:0 0 auto;font-size:11px;color:#6b6b6b}
.faq-q{flex:1 1 auto;font-size:18px;line-height:1.35;font-weight:600;letter-spacing:-0.01em}
.faq-item .ic-min{display:none}
.faq-item[open] .ic-min{display:block}
.faq-item[open] .ic-plus{display:none}
.faq-a{padding:0 28px 26px 72px;font-size:16px;line-height:1.6;color:#4a4a4a}

/* booking */
#booking .bk-step{color:#6b6b6b;margin-top:28px}
#booking .bk-step:first-child{margin-top:0}
.bk-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.pill,.slot,.day{min-height:44px;border:1px solid #c4c4c4;background:#fff;color:#0a0b0b;font:inherit;font-size:15px;font-weight:600;cursor:pointer}
.pill{padding:10px 18px;border-radius:999px}
.slot{flex:1 1 80px;padding:10px 8px;border-radius:10px}
.day{min-height:64px;padding:10px 4px;border-radius:12px}
.day .lab{display:block;font-size:11px;color:#6b6b6b}
.day strong{display:block;margin-top:4px;font-size:16px}
.pill.on,.slot.on,.day.on{background:#0a0b0b;border-color:#0a0b0b;color:#fff}
.day.on .lab{color:#c4c4c4}
.bk-fields{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}
.bk-fields label{flex:1 1 220px;min-width:0;display:flex;flex-direction:column;gap:6px;font-size:14px;color:#4a4a4a}
.bk-fields label.bk-wide{flex-basis:100%}
.bk-fields input,.bk-fields select{min-height:44px;box-sizing:border-box;padding:10px 14px;border:1px solid #c4c4c4;border-radius:10px;font:inherit;font-size:16px;color:#0a0b0b;background:#fff}
.bk-error{margin:16px 0 0;font-size:15px;color:#b42318;font-weight:600}
.bk-submit{margin-top:24px;width:100%;min-height:52px;padding:16px 28px;border-radius:999px;border:0;background:#0a0b0b;color:#fff;font:inherit;font-size:17px;font-weight:600;cursor:pointer}
.bk-note{margin:12px 0 0;font-size:13px;line-height:1.5;color:#6b6b6b;text-align:center}
.bk-note a{color:#4a4a4a;text-decoration:underline}
#booking-done{padding:24px 0}
.bk-check{width:48px;height:48px;border-radius:999px;background:#0a0b0b;color:#fff;display:flex;align-items:center;justify-content:center}
#booking-done h3{margin:24px 0 0;font-size:28px;letter-spacing:-0.02em}
.bk-confirm{margin:12px 0 0;font-size:17px;line-height:1.55;color:#4a4a4a}
.bk-again{margin-top:28px;min-height:44px;padding:12px 24px;border-radius:999px;border:1px solid #c4c4c4;background:#fff;color:#0a0b0b;font:inherit;font-size:15px;font-weight:600;cursor:pointer}

.bk-check-row{flex:1 1 100% !important;flex-direction:row !important;align-items:center;gap:12px !important;min-height:44px;font-size:15px !important;color:#0a0b0b !important;cursor:pointer}
.bk-check-row input{width:20px;height:20px;margin:0;accent-color:#0a0b0b;min-height:0 !important;padding:0 !important}
.bk-fields textarea{box-sizing:border-box;padding:10px 14px;border:1px solid #c4c4c4;border-radius:10px;font:inherit;font-size:16px;color:#0a0b0b;background:#fff;resize:vertical}

.bk-fallback{margin:16px 0 0;font-size:15px;line-height:1.55;color:#6b6b6b}
.bk-fallback a{color:#0a0b0b;font-weight:600;text-decoration:underline}
.bk-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.bk-actions .bk-again{margin-top:0}
.bk-copy{min-height:44px;padding:12px 24px;border-radius:999px;border:0;background:#0a0b0b;color:#fff;font:inherit;font-size:15px;font-weight:600;cursor:pointer}

/* sticky call-to-action on phones */
.mobile-cta{display:none}

/* whitepaper dialog */
#wp-dialog{width:min(480px,calc(100vw - 32px));max-height:calc(100vh - 32px);box-sizing:border-box;padding:36px;border:0;border-radius:20px;background:#fff;color:#0a0b0b}
#wp-dialog::backdrop{background:rgba(10,11,11,0.7)}
#wp-dialog h3{margin:0;font-size:26px;letter-spacing:-0.02em;padding-right:32px}
#wp-done h3{margin-top:24px}
.wp-intro{margin:10px 0 8px;font-size:16px;line-height:1.5;color:#4a4a4a}
.wp-close{position:absolute;top:16px;right:16px;width:44px;height:44px;border:0;border-radius:999px;background:#f6f6f6;color:#0a0b0b;font-size:24px;line-height:1;cursor:pointer}
.wp-hp{position:absolute !important;left:-9999px;width:1px;height:1px;overflow:hidden}
a.bk-submit{display:flex;align-items:center;justify-content:center;box-sizing:border-box;color:#fff}
.bk-submit[disabled]{opacity:.6;cursor:wait}

/* how it works */
.hiw-head p{margin:10px 0 0;font-size:17px;color:#9a9a9a}
.hiw-flow{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin:40px 0 0;padding:0;list-style:none}
.hiw-flow::before{content:"";position:absolute;top:31px;left:10%;right:10%;height:2px;background:repeating-linear-gradient(90deg,#3a3b3b 0 6px,transparent 6px 12px)}
.hiw-packet{position:absolute;top:28px;left:10%;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 10px 2px rgba(255,255,255,.7);opacity:0;animation:hiw-x 3.6s linear infinite}
.hiw-packet:nth-child(2){animation-delay:1.2s}
.hiw-packet:nth-child(3){animation-delay:2.4s}
@keyframes hiw-x{0%{left:10%;opacity:0}8%{opacity:1}92%{opacity:1}100%{left:90%;opacity:0}}
.hiw-step{position:relative;z-index:1;text-align:center}
.hiw-icon{position:relative;width:64px;height:64px;margin:0 auto;box-sizing:border-box;border:1px solid #4a4a4a;border-radius:18px;background:#141515;color:#fff;display:flex;align-items:center;justify-content:center}
.hiw-n{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;background:#0a0b0b;border:1px solid #4a4a4a;color:#c4c4c4;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
.hiw-step.key .hiw-icon{background:#fff;border-color:#fff;color:#0a0b0b}
.hiw-step.key .hiw-icon::after{content:"";position:absolute;inset:-1px;border-radius:18px;border:1px solid #fff;animation:hiw-pulse 2.4s ease-out infinite}
@keyframes hiw-pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.45);opacity:0}}
.hiw-step h4{margin:18px 0 0;font-size:16px;letter-spacing:-0.01em;color:#fff}
.hiw-step p{margin:6px auto 0;max-width:200px;font-size:14px;line-height:1.45;color:#9a9a9a}
.hiw-result{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:40px}
.hiw-box{box-sizing:border-box;border:1px solid #2a2b2b;border-radius:14px;padding:20px 22px;background:#141515}
.hiw-box .lab{font-size:11px;color:#9a9a9a}
.hiw-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.hiw-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid #2a2b2b;border-radius:999px;background:#0a0b0b;font-size:14px;color:#c4c4c4}
.hiw-chip i{width:8px;height:8px;border-radius:50%;background:#ff6b5e;box-shadow:0 0 8px rgba(255,107,94,.6)}
.hiw-chip.ok i{background:#4ade80;box-shadow:0 0 8px rgba(74,222,128,.5)}
.hiw-proof{display:flex;flex-wrap:wrap;gap:12px 28px;margin:28px 0 0;padding:0;list-style:none}
.hiw-proof li{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:#fff}
.hiw-proof li::before{content:"";width:18px;height:18px;flex:0 0 auto;background:no-repeat center/18px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
@media (max-width:860px){
  .hiw-flow{grid-template-columns:1fr;gap:22px}
  .hiw-flow::before{top:32px;bottom:32px;left:31px;right:auto;width:2px;height:auto;background:repeating-linear-gradient(180deg,#3a3b3b 0 6px,transparent 6px 12px)}
  .hiw-packet{left:28px;top:32px;animation-name:hiw-y}
  @keyframes hiw-y{0%{top:32px;opacity:0}8%{opacity:1}92%{opacity:1}100%{top:calc(100% - 40px);opacity:0}}
  .hiw-step{display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:center;text-align:left}
  .hiw-icon{margin:0}
  .hiw-step h4{margin:0}
  .hiw-step p{margin:4px 0 0;max-width:none}
  .hiw-result{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .hiw-packet{display:none}
  .hiw-step.key .hiw-icon::after{animation:none;opacity:0}
}

/* pilot timeline */
.plt{margin-top:56px}
.plt-rail{position:relative;height:4px;margin:0 0 28px;border-radius:4px;background:#e4e4e4}
.plt-fill{position:absolute;left:0;top:0;bottom:0;width:100%;border-radius:4px;background:#0a0b0b}
.plt-decision{position:absolute;left:66.6%;top:50%;transform:translate(-50%,-50%);padding:7px 14px;border-radius:999px;background:#0a0b0b;color:#fff;font-size:13px;font-weight:600;white-space:nowrap;box-shadow:0 0 0 6px #fff}
.plt-phases{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:16px;align-items:stretch}
.plt-phase{box-sizing:border-box;border:1px solid #e4e4e4;border-radius:20px;padding:28px;background:#f6f6f6}
.plt-phase .lab{color:#6b6b6b;font-size:11px}
.plt-phase ol{margin:20px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:20px}
.plt-phase li{display:grid;grid-template-columns:36px 1fr;gap:14px;align-items:start}
.plt-n{width:36px;height:36px;border-radius:50%;background:#0a0b0b;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px}
.plt-phase h3{margin:6px 0 0;font-size:19px;letter-spacing:-0.02em}
.plt-phase p{margin:6px 0 0;font-size:15px;line-height:1.5;color:#4a4a4a}
.plt-phase.key{background:#0a0b0b;border-color:#0a0b0b;transform:translateY(-12px);box-shadow:0 24px 48px -24px rgba(10,11,11,.45)}
.plt-phase.key .lab{color:#9a9a9a}
.plt-phase.key h3{color:#fff}
.plt-phase.key p{color:#c4c4c4}
.plt-phase.key .plt-n{background:#fff;color:#0a0b0b}
.plt-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.plt-badge{padding:6px 12px;border-radius:999px;background:#4ade80;color:#0a0b0b;font-size:12px;font-weight:700}
.plt-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;padding-top:20px;border-top:1px solid #2a2b2b}
.plt-chips span{padding:7px 12px;border:1px solid #2a2b2b;border-radius:999px;font-size:13px;color:#c4c4c4}
.plt-decide-m{display:none}
/* reveal when scrolled into view (site.js adds .reveal-ready and .in) */
.reveal-ready .plt .plt-fill{width:0;transition:width 1.6s cubic-bezier(.4,0,.2,1)}
.reveal-ready .plt .plt-decision{opacity:0;transition:opacity .4s ease 1.1s}
.reveal-ready .plt .plt-phase{opacity:0;translate:0 24px;transition:opacity .6s ease,translate .6s ease}
.reveal-ready .plt .plt-phase:nth-child(2){transition-delay:.35s}
.reveal-ready .plt .plt-phase:nth-child(4){transition-delay:.7s}
.reveal-ready .plt.in .plt-fill{width:100%}
.reveal-ready .plt.in .plt-decision,.reveal-ready .plt.in .plt-phase{opacity:1;translate:0 0}
@media (max-width:860px){
  .plt-rail{display:none}
  .plt-phases{grid-template-columns:1fr}
  .plt-phase.key{transform:none}
  .plt-decide-m{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:700;color:#0a0b0b}
  .plt-decide-m::before,.plt-decide-m::after{content:"";flex:1;height:2px;background:#0a0b0b}
  .plt-phase{padding:24px 20px}
}
@media (prefers-reduced-motion:reduce){
  .reveal-ready .plt .plt-fill,.reveal-ready .plt .plt-decision,.reveal-ready .plt .plt-phase{transition:none}
}

/* phones: smaller side gutters and section padding */
@media (max-width:640px){
  body div[style*="max-width: 1200px"]{padding-left:16px !important;padding-right:16px !important}
  body div[style*="padding: 112px"]{padding-top:72px !important;padding-bottom:72px !important}
  .site-nav a:not([href="#book"]){display:none}
  .site-brand{gap:10px !important}
  .site-brand img:first-child{height:22px !important}
  .site-brand img:last-child{height:16px !important}
  .site-brand span{font-size:12px !important}
  .faq-item summary{padding:18px 16px}
  .faq-a{padding:0 16px 22px 16px}
  #wp-dialog{padding:28px 20px}
  #how-it-works{padding:28px 20px !important}
  .mobile-cta{display:flex;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:50;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(10,11,11,0.96);border-top:1px solid #2a2b2b;transform:translateY(110%);transition:transform .2s ease}
  .mobile-cta.on{transform:none}
  .mobile-cta a{flex:1 1 0;display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:999px;border:1px solid #4a4a4a;color:#fff;font-size:16px;font-weight:600}
  .mobile-cta a.mobile-cta-main{flex-grow:1.6;background:#fff;border-color:#fff;color:#0a0b0b}
}
