/* ===== AUTOKEY SHARED STYLES v1 — Inspired by KillPin design system ===== */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;0,9..40,800;1,9..40,400&family=JetBrains+Mono:wght@400;500;600;700&display=swap');

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --blue-900:#0a1628;--blue-800:#0f1f3d;--blue-700:#142952;--blue-600:#1a3a6e;
  --blue-500:#2563eb;--blue-400:#3b82f6;--blue-300:#60a5fa;--blue-200:#93c5fd;
  --blue-glow:rgba(37,99,235,0.25);--blue-soft:rgba(37,99,235,0.08);--blue-mid:rgba(37,99,235,0.15);
  --cta:#f97316;--cta-glow:rgba(249,115,22,0.3);--cta-hover:#fb923c;
  --white:#ffffff;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;
  --gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;
  --surface:rgba(15,31,61,0.5);--border:rgba(255,255,255,0.08);--border-light:rgba(255,255,255,0.12);
  --font:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif;--mono:'JetBrains Mono',monospace;
}
html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--blue-500) var(--blue-900)}
html{overflow-x:hidden}
body{font-family:var(--font);background:var(--blue-900);color:var(--white);overflow-x:hidden;-webkit-font-smoothing:antialiased;width:100%}
::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--blue-900)}::-webkit-scrollbar-thumb{background:var(--blue-500);border-radius:3px}
img{display:block;max-width:100%}a{text-decoration:none;color:inherit}
.icon-svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* TOP BAR */
.top-bar{background:rgba(10,22,40,0.6);border-bottom:1px solid var(--border);padding:8px 0;font-size:.75rem;color:var(--gray-400)}
.top-bar-inner{max-width:1240px;margin:0 auto;padding:0 20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.top-bar a{color:var(--gray-300);transition:color .25s}.top-bar a:hover{color:var(--white)}
.top-bar-left{display:flex;align-items:center;gap:20px}
.top-bar-right{display:flex;align-items:center;gap:16px}
.lang-switch{font-weight:600;color:var(--blue-300)}

/* NAV */
.nav{position:sticky;top:0;z-index:9999;background:rgba(10,22,40,0.88);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--border);transition:all .5s cubic-bezier(.22,1,.36,1)}
.nav-inner{max-width:1240px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;width:100%}
.nav-logo{display:flex;align-items:center;gap:10px;color:var(--white);font-weight:800;font-size:1.3rem;letter-spacing:-.5px}
.nav-logo-mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--blue-500),var(--blue-400));display:grid;place-items:center;box-shadow:0 0 20px var(--blue-glow)}
.nav-logo-mark svg{width:17px;height:17px;stroke:white;fill:none;stroke-width:2.5;stroke-linecap:round}
.nav-logo-img{width:38px;height:38px;border-radius:9px;object-fit:contain}
.nav-links{display:flex;align-items:center;gap:24px;list-style:none}
.nav-links a{color:var(--gray-400);font-size:.82rem;font-weight:500;transition:color .25s}
.nav-links a:hover,.nav-links a.active{color:var(--white)}
.nav-cta-link{color:var(--white)!important;background:var(--cta);padding:9px 22px;border-radius:980px;font-weight:600!important;font-size:.8rem!important;box-shadow:0 0 16px var(--cta-glow);transition:all .25s!important}
.nav-cta-link:hover{filter:brightness(1.1);transform:scale(1.03)}
.nav-waze{background:var(--blue-500)!important;box-shadow:0 0 16px var(--blue-glow)!important}
.nav-phone{color:var(--white)!important;font-weight:700;font-size:.9rem;display:flex;align-items:center;gap:6px}
.nav-phone svg{width:16px;height:16px}

/* Dropdown */
.has-dropdown{position:relative}
.has-dropdown .dropdown{display:none;position:absolute;top:100%;left:-16px;background:rgba(10,22,40,0.95);backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:12px;padding-top:20px;padding-bottom:12px;min-width:240px;z-index:100;margin-top:0}
.has-dropdown:hover .dropdown{display:block}
.dropdown a{display:block;padding:8px 24px;font-size:.8rem;color:var(--gray-400);transition:all .2s}
.dropdown a:hover{color:var(--white);background:rgba(255,255,255,0.04)}

/* Hamburger */
.hamburger{display:none;background:none;border:none;color:var(--white);cursor:pointer;width:28px;height:20px;position:relative}
.hamburger span{position:absolute;left:0;width:100%;height:2px;background:var(--white);border-radius:2px;transition:all .3s}
.hamburger span:nth-child(1){top:0}.hamburger span:nth-child(2){top:9px}.hamburger span:nth-child(3){top:18px}
.hamburger.open span:nth-child(1){top:9px;transform:rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){top:9px;transform:rotate(-45deg)}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:8px;padding:16px 34px;border-radius:980px;font-family:var(--font);font-weight:600;font-size:.95rem;cursor:pointer;border:none;transition:all .35s cubic-bezier(.22,1,.36,1)}
.btn-cta{background:var(--cta);color:var(--white);box-shadow:0 0 30px var(--cta-glow),0 4px 16px rgba(0,0,0,.2)}
.btn-cta:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 0 50px var(--cta-glow),0 8px 24px rgba(0,0,0,.3);background:var(--cta-hover)}
.btn-outline{background:rgba(255,255,255,.08);color:var(--white);border:1px solid var(--border-light);backdrop-filter:blur(8px)}
.btn-outline:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2);transform:translateY(-2px)}
.btn-blue{background:var(--blue-500);color:var(--white);box-shadow:0 0 24px var(--blue-glow)}
.btn-blue:hover{background:var(--blue-400);transform:translateY(-2px)}
.btn .arrow{transition:transform .25s}.btn:hover .arrow{transform:translateX(3px)}

/* LAYOUT */
.section-pad{padding:140px 24px}
.container{max-width:1240px;margin:0 auto;padding:0 32px}
.section-eyebrow{font-family:var(--mono);font-size:.65rem;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--blue-400);margin-bottom:14px}
.section-heading{font-size:clamp(2rem,4vw,3rem);font-weight:800;letter-spacing:-1.5px;line-height:1.1;margin-bottom:16px}
.section-sub{font-size:1.05rem;color:var(--gray-400);max-width:500px;line-height:1.6}
.bg-deep{background:linear-gradient(180deg,var(--blue-900) 0%,#060d1a 100%)}
.bg-mid{background:linear-gradient(180deg,var(--blue-800) 0%,var(--blue-900) 100%)}
.bg-rich{background:linear-gradient(135deg,var(--blue-900) 0%,#0d1a33 50%,var(--blue-900) 100%)}
.bg-glow{position:relative}.bg-glow::before{content:'';position:absolute;width:800px;height:800px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.06) 0%,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}

/* HERO SLIDER */
.hero-slider{position:relative;width:100%;height:100vh;min-height:600px;overflow:hidden}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s cubic-bezier(.22,1,.36,1);z-index:0}
.slide.active{opacity:1;z-index:1}
.slide-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.08);transition:transform 10s ease-out}
.slide.active .slide-bg{transform:scale(1)}
.slide-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(10,22,40,.88) 0%,rgba(10,22,40,.5) 50%,rgba(10,22,40,.8) 100%)}
.slide-content{position:relative;z-index:2;height:100%;display:flex;align-items:center;max-width:1240px;margin:0 auto;padding:0 40px}
.slide-text{max-width:640px}
.slide-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--blue-300);margin-bottom:24px;opacity:0;transform:translateY(20px);transition:all .8s .2s cubic-bezier(.22,1,.36,1)}
.slide.active .slide-eyebrow{opacity:1;transform:translateY(0)}
.pulse-dot{width:6px;height:6px;background:var(--blue-400);border-radius:50%;box-shadow:0 0 8px var(--blue-glow);animation:dotP 2s infinite}
@keyframes dotP{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}
.slide-title{font-size:clamp(2.8rem,6vw,5rem);font-weight:800;letter-spacing:-2.5px;line-height:.98;margin-bottom:20px;opacity:0;transform:translateY(30px);transition:all .8s .35s cubic-bezier(.22,1,.36,1)}
.slide.active .slide-title{opacity:1;transform:translateY(0)}
.slide-title .accent{background:linear-gradient(135deg,var(--blue-300),var(--cta));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.slide-desc{font-size:1.1rem;color:var(--gray-300);line-height:1.65;max-width:480px;margin-bottom:36px;opacity:0;transform:translateY(20px);transition:all .8s .5s cubic-bezier(.22,1,.36,1)}
.slide.active .slide-desc{opacity:1;transform:translateY(0)}
.slide-btns{display:flex;gap:14px;flex-wrap:wrap;opacity:0;transform:translateY(20px);transition:all .8s .65s cubic-bezier(.22,1,.36,1)}
.slide.active .slide-btns{opacity:1;transform:translateY(0)}
.slider-dots{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);z-index:10;display:flex;gap:10px}
.s-dot{width:10px;height:10px;border-radius:50%;border:2px solid rgba(255,255,255,.4);background:transparent;cursor:pointer;transition:all .3s}
.s-dot.active{background:var(--cta);border-color:var(--cta);box-shadow:0 0 12px var(--cta-glow)}
.scroll-hint{position:absolute;bottom:90px;left:50%;transform:translateX(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:6px}
.scroll-hint span{font-family:var(--mono);font-size:.6rem;letter-spacing:2px;text-transform:uppercase;color:var(--gray-500)}
.scroll-line{width:1px;height:32px;background:linear-gradient(to bottom,var(--blue-400),transparent);animation:scrollP 2s infinite}
@keyframes scrollP{0%{opacity:1;height:32px}50%{opacity:.3;height:16px}100%{opacity:1;height:32px}}

/* TRUST BAR */
.trust-bar{background:linear-gradient(180deg,var(--blue-800) 0%,var(--blue-900) 100%);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:48px 0}
.trust-grid{max-width:1240px;margin:0 auto;padding:0 32px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.trust-item h3{font-size:clamp(2rem,3vw,2.8rem);font-weight:900;letter-spacing:-1px;margin-bottom:4px;background:linear-gradient(135deg,var(--white),var(--blue-200));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.trust-item p{font-size:.82rem;color:var(--gray-400);font-weight:500}

/* FULL-WIDTH IMAGE BREAK */
.image-break{width:100%;height:50vh;min-height:340px;position:relative;overflow:hidden}
.image-break img{width:100%;height:100%;object-fit:cover}
.image-break-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,22,40,.65) 0%,rgba(10,22,40,.25) 40%,rgba(10,22,40,.65) 100%)}
.image-break-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;z-index:2}
.image-break-text h2{font-size:clamp(1.8rem,4vw,3rem);font-weight:800;letter-spacing:-1px;margin-bottom:12px}
.image-break-text p{font-size:1.05rem;color:var(--gray-300);max-width:540px}

/* BIG TEXT REVEAL */
.big-text-section{padding:180px 24px;display:flex;align-items:center;justify-content:center;position:relative}
.big-text-inner{max-width:900px;text-align:center}
.big-text{font-size:clamp(1.8rem,4.5vw,3.2rem);font-weight:700;line-height:1.35;letter-spacing:-1px}
.reveal-word{display:inline;transition:color .5s;color:var(--gray-600)}

/* BENTO GRID */
.bento-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.bento-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:40px 32px;position:relative;overflow:hidden;transition:all .5s cubic-bezier(.22,1,.36,1);cursor:default;backdrop-filter:blur(8px)}
.bento-card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(37,99,235,.3),transparent);opacity:0;transition:opacity .5s}
.bento-card:hover::before{opacity:1}
.bento-card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.12);box-shadow:0 20px 60px rgba(0,0,0,.3)}
.bento-card::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(37,99,235,.05),transparent 60%);pointer-events:none;opacity:0;transition:opacity .3s}
.bento-card:hover::after{opacity:1}
.bento-card.span-2{grid-column:span 2}
.bento-icon{width:52px;height:52px;border-radius:14px;background:var(--blue-soft);border:1px solid var(--blue-mid);display:grid;place-items:center;margin-bottom:24px;color:var(--blue-400)}
.bento-card h3{font-size:1.15rem;font-weight:700;letter-spacing:-.3px;margin-bottom:10px}
.bento-card p{font-size:.88rem;color:var(--gray-400);line-height:1.6}
.bento-card-img{padding:0;display:flex;flex-direction:column}
.bento-card-img .bento-img{width:100%;height:200px;object-fit:cover;border-radius:20px 20px 0 0}
.bento-card-img .bento-body{padding:28px 32px}
.bento-stat{font-size:clamp(3rem,5vw,4.2rem);font-weight:900;letter-spacing:-3px;line-height:1;margin-bottom:8px;background:linear-gradient(135deg,var(--blue-300),var(--cta));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.bento-stat-label{font-size:.85rem;color:var(--gray-400);font-weight:500}
.bento-card a.card-link{position:absolute;inset:0;z-index:2}

/* SERVICE CARDS */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.service-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:36px 28px;position:relative;overflow:hidden;transition:all .5s cubic-bezier(.22,1,.36,1);backdrop-filter:blur(8px);text-decoration:none;color:inherit;display:block}
.service-card:hover{transform:translateY(-6px);border-color:var(--border-light);box-shadow:0 20px 60px rgba(0,0,0,.3)}
.service-card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(37,99,235,.3),transparent);opacity:0;transition:opacity .5s}
.service-card:hover::before{opacity:1}
.service-card .service-icon{width:52px;height:52px;border-radius:14px;background:var(--blue-soft);border:1px solid var(--blue-mid);display:grid;place-items:center;margin-bottom:20px;color:var(--blue-400)}
.service-card h3{font-size:1.05rem;font-weight:700;margin-bottom:8px}
.service-card p{font-size:.85rem;color:var(--gray-400);line-height:1.6;margin-bottom:16px}
.service-card .card-arrow{font-size:.8rem;color:var(--cta);font-weight:600;display:flex;align-items:center;gap:4px;transition:gap .25s}
.service-card:hover .card-arrow{gap:8px}

/* ADVANTAGES / WHY CHOOSE */
.adv-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.adv-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;overflow:hidden;transition:all .5s cubic-bezier(.22,1,.36,1);position:relative;backdrop-filter:blur(6px)}
.adv-card:hover{transform:translateY(-6px);border-color:var(--border-light);box-shadow:0 30px 80px rgba(0,0,0,.35)}
.adv-card-img{width:100%;height:200px;object-fit:cover}
.adv-card-body{padding:32px}
.adv-card .card-num{font-family:var(--mono);font-size:.6rem;letter-spacing:3px;color:var(--blue-400);text-transform:uppercase;margin-bottom:16px}
.adv-card h3{font-size:1.3rem;font-weight:800;letter-spacing:-.5px;margin-bottom:12px}
.adv-card p{font-size:.9rem;color:var(--gray-400);line-height:1.7}

/* ABOUT / QUOTE */
.about-inner{max-width:800px;margin:0 auto;text-align:center;position:relative;z-index:2}
.about-quote-block{background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:56px 48px;margin-bottom:48px;position:relative;backdrop-filter:blur(8px)}
.about-quote-block::before{content:'"';position:absolute;top:20px;left:30px;font-size:4rem;color:var(--blue-400);opacity:.25;font-family:Georgia,serif;line-height:1}
.about-quote-text{font-size:1.3rem;font-weight:500;line-height:1.6;font-style:italic;color:var(--gray-200)}
.about-quote-text strong{color:var(--cta);font-style:normal;font-weight:700}
.about-body{font-size:1.05rem;color:var(--gray-400);line-height:1.7;max-width:640px;margin:0 auto}

/* AREAS SECTION */
.areas-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.area-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px 16px;text-align:center;transition:all .4s cubic-bezier(.22,1,.36,1);backdrop-filter:blur(6px);display:block;text-decoration:none;color:inherit}
.area-card:hover{transform:translateY(-4px);border-color:var(--border-light);box-shadow:0 16px 40px rgba(0,0,0,.3)}
.area-card .area-name{font-weight:700;font-size:.9rem;margin-bottom:4px}
.area-card .area-time{font-size:.75rem;color:var(--gray-500)}

/* BRANDS */
.brands-row{display:flex;flex-wrap:wrap;justify-content:center;gap:32px;opacity:.5}
.brands-row span{font-size:.85rem;font-weight:600;color:var(--gray-400);letter-spacing:.5px}

/* FAQ */
.faq-list{max-width:780px;margin:0 auto;display:flex;flex-direction:column;gap:8px}
.faq-item{border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:border-color .3s;background:var(--surface);backdrop-filter:blur(6px)}
.faq-item.open{border-color:var(--blue-mid)}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;padding:22px 28px;background:none;border:none;color:var(--white);font-family:var(--font);font-size:1rem;font-weight:600;text-align:left;cursor:pointer;transition:color .25s}
.faq-q:hover{color:var(--gray-200)}
.faq-chevron{width:24px;height:24px;min-width:24px;border-radius:50%;background:rgba(255,255,255,.05);display:grid;place-items:center;font-size:.85rem;color:var(--gray-400);transition:all .35s cubic-bezier(.22,1,.36,1)}
.faq-item.open .faq-chevron{background:var(--blue-soft);color:var(--blue-400);transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.22,1,.36,1)}
.faq-a-inner{padding:0 28px 24px;font-size:.9rem;color:var(--gray-400);line-height:1.7}

/* TESTIMONIALS */
.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.testimonial-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:36px 32px;position:relative;overflow:hidden;transition:all .5s cubic-bezier(.22,1,.36,1);backdrop-filter:blur(8px);display:flex;flex-direction:column}
.testimonial-card::before{content:'"';position:absolute;top:14px;right:24px;font-family:Georgia,serif;font-size:4.5rem;line-height:1;color:var(--blue-400);opacity:.18;pointer-events:none}
.testimonial-card::after{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(37,99,235,.3),transparent);opacity:0;transition:opacity .5s}
.testimonial-card:hover{transform:translateY(-6px);border-color:var(--border-light);box-shadow:0 20px 60px rgba(0,0,0,.3)}
.testimonial-card:hover::after{opacity:1}
.testimonial-stars{color:var(--cta);font-size:.95rem;letter-spacing:2px;margin-bottom:18px}
.testimonial-text{font-size:.98rem;color:var(--gray-200);line-height:1.7;margin-bottom:24px;flex:1;font-style:italic}
.testimonial-meta{display:flex;flex-direction:column;gap:2px;padding-top:20px;border-top:1px solid var(--border)}
.testimonial-name{font-weight:700;font-size:.95rem;color:var(--white);letter-spacing:-.2px}
.testimonial-context{font-family:var(--mono);font-size:.68rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--blue-300);margin-top:4px}

/* CTA */
.final-cta{padding:0;text-align:center;position:relative;overflow:hidden}
.final-cta{position:relative;overflow:hidden}
.cta-hero-bg{position:absolute;inset:0;width:100%;height:100%}
.cta-hero-bg img{width:100%;height:100%;object-fit:cover}
.cta-hero-bg-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,22,40,.4) 0%,rgba(10,22,40,.75) 60%,rgba(10,22,40,.9) 100%)}
.cta-body{position:relative;z-index:2;padding:100px 24px 140px}
.cta-body .section-heading{font-size:clamp(2.5rem,5vw,4rem);margin-bottom:20px}
.cta-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:40px}
.cta-phone{margin-top:32px;font-family:var(--mono);font-size:1.5rem;font-weight:700}
.cta-phone a{color:var(--white);transition:color .25s}.cta-phone a:hover{color:var(--cta)}

/* FOOTER */
.footer{border-top:1px solid var(--border);padding:48px 24px;background:rgba(6,10,22,.6)}
.footer-inner{max-width:1240px;margin:0 auto}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px}
.footer-col h4{font-size:.85rem;font-weight:700;margin-bottom:16px;color:var(--white)}
.footer-col p,.footer-col a{font-size:.82rem;color:var(--gray-400);line-height:1.8;display:block;transition:color .25s}
.footer-col a:hover{color:var(--white)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:32px;border-top:1px solid var(--border)}
.footer-copy{font-size:.75rem;color:var(--gray-600)}
.footer-bottom-links{display:flex;gap:24px}
.footer-bottom-links a{color:var(--gray-500);font-size:.75rem;transition:color .25s}
.footer-bottom-links a:hover{color:var(--white)}

/* SCROLL REVEAL */
.sr{opacity:0;transform:translateY(50px);transition:all .9s cubic-bezier(.22,1,.36,1)}
.sr.vis{opacity:1;transform:translateY(0)}
.sr-d1{transition-delay:.1s}.sr-d2{transition-delay:.2s}.sr-d3{transition-delay:.3s}.sr-d4{transition-delay:.4s}.sr-d5{transition-delay:.5s}

/* RESPONSIVE */
@media(max-width:1024px){
  .nav-links{display:none}.hamburger{display:block}
  section,header,footer,.hero-slider,.image-break,.bg-glow{overflow-x:hidden;max-width:100vw}
  .top-bar{display:none}
  .container{padding:0 16px}
  .section-pad{padding:80px 16px}
  .services-grid{grid-template-columns:1fr 1fr}
  .testimonials-grid{grid-template-columns:1fr}
  .bento-grid{grid-template-columns:1fr}.bento-card.span-2{grid-column:span 1}
  .adv-cards{grid-template-columns:1fr}
  .trust-grid{grid-template-columns:repeat(2,1fr);padding:0 16px}
  .areas-grid{grid-template-columns:repeat(3,1fr)}
  .footer-top{grid-template-columns:1fr 1fr}
  .nav-links.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:rgba(10,22,40,.95);backdrop-filter:blur(24px);padding:20px 32px;gap:16px;border-bottom:1px solid var(--border)}
  .has-dropdown .dropdown{position:static;background:none;border:none;backdrop-filter:none;padding:4px 0 4px 16px;min-width:auto;margin-top:0;display:none!important}
  .has-dropdown:hover .dropdown{display:none!important}
  .has-dropdown.open .dropdown{display:block!important}
  .slide-content{padding:0 24px}
  .slide-btns{flex-direction:column;align-items:flex-start}
  .footer-bottom{flex-direction:column;gap:16px;text-align:center}
  .cta-buttons{flex-direction:column;align-items:center}
}
@media(max-width:640px){
  .services-grid{grid-template-columns:1fr}
  .areas-grid{grid-template-columns:repeat(2,1fr)}
  .footer-top{grid-template-columns:1fr}
  .trust-grid{grid-template-columns:1fr 1fr}
}

/* ===== ACCESSIBILITY (Wave 2b) ===== */

/* Skip-to-content link — visible on focus only */
.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: var(--cta, #f97316);
  color: #fff;
  padding: 8px 16px;
  z-index: 1000;
  text-decoration: none;
  border-radius: 0 0 8px 0;
  font-family: 'JetBrains Mono', monospace;
  font-size: 14px;
  font-weight: 600;
}
.skip-link:focus {
  top: 0;
  outline: 3px solid #fff;
  outline-offset: 2px;
}

/* Visible focus indicators for keyboard nav */
:focus-visible {
  outline: 3px solid var(--cta, #f97316);
  outline-offset: 2px;
  border-radius: 4px;
}
button:focus-visible,
a:focus-visible {
  outline-offset: 3px;
}
/* Remove default focus ring when mouse-focused (but keep for keyboard) */
:focus:not(:focus-visible) {
  outline: none;
}

/* === motorcycle brand pages =====================================
   Shared styles for the per-brand motorcycle-keys pages (honda, bmw,
   harley-davidson, yamaha, ducati, kawasaki, suzuki — EN + FR mirror).
   All rules are scoped under .moto-page (applied to <body>) so they
   do not leak onto other pages that share class names like .page-hero
   or .final-cta. Image URLs are absolute so the rule works from any
   page depth.
   ===================================================================*/

.moto-page .accent{color:var(--cta)}

/* PAGE HERO */
.moto-page .page-hero{position:relative;padding:180px 24px 120px;background:linear-gradient(135deg,rgba(10,20,40,.85) 0%,rgba(13,26,51,.78) 50%,rgba(10,20,40,.85) 100%),url('/images/moto-hero-bg.webp') center/cover no-repeat;overflow:hidden}
.moto-page .page-hero::before{content:'';position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.08) 0%,transparent 70%);top:20%;right:-10%;pointer-events:none}
.moto-page .page-hero-content{max-width:800px;margin:0 auto;text-align:center;position:relative;z-index:2}
.moto-page .breadcrumb{font-family:var(--mono);font-size:.7rem;letter-spacing:2px;text-transform:uppercase;color:var(--gray-500);margin-bottom:20px}
.moto-page .breadcrumb a{color:var(--blue-400);transition:color .25s}.moto-page .breadcrumb a:hover{color:var(--white)}

/* TECH CALLOUT */
.moto-page .tech-callout{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;max-width:1100px;margin:0 auto}
.moto-page .tech-callout-image{position:relative;border-radius:20px;overflow:hidden;border:1px solid var(--border);box-shadow:0 24px 60px rgba(0,0,0,.45)}
.moto-page .tech-callout-image img{width:100%;height:auto;display:block}
.moto-page .tech-callout-image::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent 50%,rgba(10,22,40,.4));pointer-events:none}
.moto-page .tech-callout-text .section-eyebrow{margin-bottom:14px}
.moto-page .tech-callout-text h2{font-size:clamp(1.7rem,3vw,2.4rem);font-weight:800;letter-spacing:-1px;line-height:1.15;margin-bottom:22px}
.moto-page .tech-callout-text p.lead{color:var(--gray-300);line-height:1.7;font-size:.98rem;margin-bottom:24px}
.moto-page .tech-callout-list{list-style:none;display:flex;flex-direction:column;gap:18px;margin-top:8px}
.moto-page .tech-callout-list li{display:flex;gap:16px;align-items:flex-start}
.moto-page .tech-callout-mark{flex-shrink:0;width:30px;height:30px;border-radius:8px;background:var(--blue-soft);border:1px solid var(--blue-mid);display:grid;place-items:center;color:var(--blue-300);font-size:.7rem;font-weight:700;font-family:var(--mono);margin-top:2px}
.moto-page .tech-callout-list strong{display:block;font-size:.92rem;color:var(--white);margin-bottom:4px;font-weight:600;letter-spacing:-.2px}
.moto-page .tech-callout-list span{font-size:.86rem;color:var(--gray-400);line-height:1.6}

/* MODEL TABLE */
.moto-page .model-table-wrap{max-width:920px;margin:0 auto;border:1px solid var(--border);border-radius:20px;overflow:hidden;background:var(--surface);backdrop-filter:blur(8px)}
.moto-page .model-table{width:100%;border-collapse:collapse;text-align:left}
.moto-page .model-table th{font-family:var(--mono);font-size:.66rem;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:var(--blue-300);padding:18px 24px;background:rgba(37,99,235,.06);border-bottom:1px solid var(--border)}
.moto-page .model-table td{padding:16px 24px;border-bottom:1px solid var(--border);font-size:.9rem;color:var(--gray-300);vertical-align:middle}
.moto-page .model-table td:first-child{font-weight:600;color:var(--white)}
.moto-page .model-table td.years{font-family:var(--mono);font-size:.82rem;color:var(--gray-400);white-space:nowrap}
.moto-page .model-table td.keytype{font-size:.82rem}
.moto-page .model-table tr:last-child td{border-bottom:none}
.moto-page .model-table tr:hover td{background:rgba(255,255,255,.02)}
.moto-page .pill{display:inline-block;font-family:var(--mono);font-size:.65rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;padding:4px 10px;border-radius:980px;border:1px solid var(--border-light)}
.moto-page .pill-hiss{background:rgba(37,99,235,.12);color:var(--blue-300);border-color:var(--blue-mid)}
.moto-page .pill-smart{background:rgba(249,115,22,.12);color:var(--cta);border-color:rgba(249,115,22,.3)}
.moto-page .pill-mech{background:rgba(255,255,255,.04);color:var(--gray-300)}

/* BENTO note variant (extends the global .bento-card) */
.moto-page .bento-card .note{font-size:.8rem;color:var(--gray-500);font-style:italic;margin-top:12px}

/* STEPS GRID */
.moto-page .steps-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:1000px;margin:0 auto}
.moto-page .step-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:32px 28px;backdrop-filter:blur(8px);position:relative;transition:all .4s cubic-bezier(.22,1,.36,1)}
.moto-page .step-card:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.12);box-shadow:0 16px 48px rgba(0,0,0,.25)}
.moto-page .step-num{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--cta),var(--cta-hover));display:grid;place-items:center;font-weight:800;font-size:1.1rem;margin-bottom:20px;box-shadow:0 0 20px var(--cta-glow)}
.moto-page .step-card h3{font-size:1.1rem;font-weight:700;letter-spacing:-.3px;margin-bottom:10px}
.moto-page .step-card p{font-size:.86rem;color:var(--gray-400);line-height:1.6}

/* CTA (motorcycle variant — overrides the global .final-cta inside .moto-page) */
.moto-page .final-cta{padding:120px 24px;text-align:center;background:url('/images/keys/triumph-cta-bg.webp') center/cover no-repeat;position:relative}
.moto-page .final-cta::before{content:'';position:absolute;inset:0;background:rgba(6,10,22,0.55);pointer-events:none}
.moto-page .final-cta>*{position:relative;z-index:1}

/* SIBLING BRAND CTAS (intra-site) */
.moto-page .sibling-row{max-width:1000px;margin:48px auto 0;display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap}
.moto-page .sibling-row a{font-family:var(--mono);font-size:.7rem;letter-spacing:2px;text-transform:uppercase;color:var(--gray-400);padding:10px 18px;border:1px solid var(--border);border-radius:980px;transition:all .3s}
.moto-page .sibling-row a:hover{color:var(--white);border-color:var(--blue-mid);background:var(--blue-soft)}

/* RESPONSIVE (motorcycle-specific overrides) */
@media(max-width:1024px){
  .moto-page .page-hero{padding:120px 16px 80px}
  .moto-page .tech-callout{grid-template-columns:1fr;gap:32px}
  .moto-page .tech-callout-image{order:-1}
  .moto-page .model-table th,.moto-page .model-table td{padding:12px 14px;font-size:.82rem}
  .moto-page .model-table th{font-size:.58rem;letter-spacing:1.5px}
  .moto-page .model-table td.years{font-size:.74rem}
  .moto-page .steps-grid{grid-template-columns:1fr}
}

/* === closed-today flashing badge === */
/* Used by config.php $hours_short when today is in $closed_dates. */
/* Pulse cycle is 1.4s (~0.7 Hz) — well under the WCAG 2.3.1 photosensitive */
/* seizure threshold of 3 flashes/sec. prefers-reduced-motion honored. */
.closed-today{
  display:inline-block;background:#dc2626;color:#fff;font-weight:700;
  font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;
  padding:3px 9px;border-radius:4px;margin-right:4px;
  animation:closedFlash 1.4s ease-in-out infinite;
  box-shadow:0 0 0 0 rgba(220,38,38,.7);
}
@keyframes closedFlash{
  0%,100%{background:#dc2626;opacity:1;box-shadow:0 0 0 0 rgba(220,38,38,.7)}
  50%    {background:#ef4444;opacity:.55;box-shadow:0 0 0 8px rgba(220,38,38,0)}
}
@media (prefers-reduced-motion:reduce){
  .closed-today{animation:none;opacity:1}
  /* scroll-reveal: keep the reveal, drop the motion */
  .sr{transition:opacity .01ms;transform:none}
  html{scroll-behavior:auto}
}

/* === quote-form inline validation errors (global, unscoped) === */
/* Used by contact-us/index.php + fr/contactez-nous/index.php: replaces the */
/* native HTML5 validation bubble (easily missed on mobile) with a visible */
/* inline message under the invalid field. */
.field-error{color:#fca5a5;font-size:.8rem;line-height:1.4;margin-top:6px;display:flex;gap:6px;align-items:flex-start}
.field-error::before{content:"⚠";flex:none}
.form-input[aria-invalid="true"],.form-select[aria-invalid="true"],.form-textarea[aria-invalid="true"]{border-color:#f87171}

/* === services section pages =====================================
   Shared styles for the services hub + 11 category pages (services/index.php,
   auto-locksmith, car-key-programming, car-keys-duplication, car-lockouts,
   car-remotes, ecu-programming, ignition-lock-repair-and-replacement,
   intelligent-smart-keys, motorcycle-keys, theft-prevention, transponder-keys).
   All rules are scoped under .service-page (applied to <body> on all 12
   pages) so they do not leak onto other sections. A second, narrower
   marker — .service-category-page — is applied only to the 7 breadcrumb-
   style category pages (car-key-programming, car-keys-duplication,
   car-remotes, ecu-programming, motorcycle-keys, theft-prevention,
   transponder-keys); it's needed for .page-hero rules specifically,
   because the other 5 "hub-style" pages (services/index, auto-locksmith,
   car-lockouts, ignition-lock-repair-and-replacement, intelligent-smart-
   keys) also have a `.page-hero` element but with a different look, and
   scoping those rules under plain .service-page would introduce a glow
   pseudo-element / wrong mobile padding that never existed on those pages
   (caught by Codex audit — see commit history).
   Rules here are only ones verified to have exactly one variant across
   every page carrying their scoping class — anything with a second,
   differently-styled occurrence (e.g. .page-hero-content, .page-hero
   h1/.accent/p on the "hub" pages, .bento-grid and .steps-grid, which each
   have 2+ incompatible variants) was deliberately left inline per-page to
   avoid specificity collisions between variants.
   ===================================================================*/

/* shared "category" page hero (breadcrumb-style pages) */
.service-category-page .page-hero::before{content:'';position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.08) 0%,transparent 70%);top:20%;right:-10%;pointer-events:none}
.service-category-page .breadcrumb{font-family:var(--mono);font-size:.7rem;letter-spacing:2px;text-transform:uppercase;color:var(--gray-500);margin-bottom:20px}
.service-category-page .breadcrumb a{color:var(--blue-400);transition:color .25s}
.service-category-page .breadcrumb a:hover{color:var(--white)}

/* shared 2-column content section (car-key-programming, car-keys-duplication,
   car-remotes, theft-prevention, transponder-keys) */
.service-page .content-section{padding:120px 24px}
.service-page .content-2col{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.service-page .content-text h2{font-size:clamp(1.8rem,3vw,2.5rem);font-weight:800;letter-spacing:-1px;margin-bottom:20px}
.service-page .content-text p{font-size:1rem;color:var(--gray-400);line-height:1.75;margin-bottom:16px}
.service-page .content-text ul{list-style:none;padding:0;margin:24px 0}
.service-page .content-text ul li{font-size:.95rem;color:var(--gray-300);line-height:1.8;padding-left:28px;position:relative;margin-bottom:12px}
.service-page .content-text ul li::before{content:'✓';position:absolute;left:0;color:var(--cta);font-weight:700}
.service-page .content-img{border-radius:20px;overflow:hidden;border:1px solid var(--border)}
.service-page .content-img img{width:100%;height:auto;object-fit:cover}

/* shared brand logo marquee (theft-prevention, transponder-keys) */
.service-page .logo-marquee{width:100%;overflow:hidden;background:#2a2a2a;border-radius:16px;border:1px solid var(--border);padding:30px 0;position:relative}
.service-page .logo-marquee::before,.service-page .logo-marquee::after{content:'';position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none}
.service-page .logo-marquee::before{left:0;background:linear-gradient(90deg,#2a2a2a 0%,transparent 100%)}
.service-page .logo-marquee::after{right:0;background:linear-gradient(90deg,transparent 0%,#2a2a2a 100%)}
.service-page .logo-track{display:flex;gap:60px;animation:scroll-left 40s linear infinite;width:max-content}
.service-page .logo-marquee:hover .logo-track{animation-play-state:paused}
.service-page .logo-track img{height:60px;width:auto;filter:brightness(0) invert(1);opacity:.85;transition:opacity .3s}
.service-page .logo-track img:hover{opacity:1}
@keyframes scroll-left{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* shared plain accent color (ecu-programming, motorcycle-keys — hub pages use
   their own .page-hero .accent gradient-clip variant, kept inline per page).
   Scoped to .service-category-page (not the broader .service-page) so it
   can't set a stray fallback color on the hub pages' gradient-clip accent
   spans in browsers/modes where background-clip:text doesn't apply
   (e.g. forced-colors) — Codex audit LOW finding. */
.service-category-page .accent{color:var(--cta)}

@media(max-width:1024px){
  .service-category-page .page-hero{padding:120px 16px 80px}
  .service-page .content-section{padding:80px 16px}
  .service-page .content-2col{grid-template-columns:1fr;gap:40px}
}
