:root{
  --navy:#062462;
  --navy-deep:#041538;
  --red:#cf1918;
  --red-dim:#a91312;
  --white:#ffffff;
  --sand:#f7f4ee;
  --mist:#eef1f8;
  --ink:#0c1a33;
  --slate:#5b6472;
  --line:#e2e2dd;
  --navline: rgba(6,36,98,0.14);
  --serif:'Fraunces', Georgia, serif;
  --sans:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --mono:'JetBrains Mono', monospace;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
section{position:relative;}
@media(max-width:720px){ .wrap{padding:0 20px;} }

a:focus-visible, button:focus-visible, summary:focus-visible{
  outline:2px solid var(--red); outline-offset:3px; border-radius:4px;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}

.eyebrow{
  font-family:var(--mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--red); font-weight:500; display:flex; align-items:center; gap:10px; margin-bottom:16px;
}
.eyebrow::before{content:"";width:22px;height:1.5px;background:var(--red);display:inline-block;}

h1,h2,h3{font-family:var(--serif); color:var(--navy); font-weight:600; letter-spacing:-0.01em;}

/* ================= NAVBAR ================= */
.nav{position:fixed; top:14px; left:0; right:0; z-index:100; display:flex; justify-content:center;}
.nav-inner{
  display:flex; align-items:center; gap:6px;
  background:rgba(4,21,56,0.82);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:100px; padding:8px 10px 8px 16px;
  box-shadow:0 10px 34px rgba(4,21,56,0.28);
  max-width:calc(100% - 32px);
}
.nav-logo{display:flex;align-items:center;gap:9px;margin-right:8px;flex-shrink:0;}
.nav-logo img{width:30px;height:30px;border-radius:50%;}
.nav-logo span{font-family:var(--serif);font-weight:600;color:#fff;font-size:15px;letter-spacing:.01em;white-space:nowrap;}
.nav-links{display:flex;align-items:center;gap:2px;}
.nav-links a{color:rgba(255,255,255,0.72); font-size:13.5px; font-weight:500; padding:9px 13px; border-radius:100px; transition:.2s;white-space:nowrap;}
.nav-links a:hover{color:#fff;background:rgba(255,255,255,0.08);}
.nav-links a.active{color:#fff;background:rgba(255,255,255,0.14);}
.nav-cta{background:var(--red); color:#fff; font-size:13.5px; font-weight:600; padding:10px 18px; border-radius:100px; margin-left:6px; white-space:nowrap; transition:.2s; flex-shrink:0;}
.nav-cta:hover{background:var(--red-dim);}
.nav-burger{display:none;background:none;border:0;color:#fff;padding:8px;cursor:pointer;}
@media(max-width:900px){ .nav-links{display:none;} .nav-burger{display:block;} .nav-inner{padding:8px 10px;} }
.mobile-menu{display:none; position:fixed; top:70px; left:16px; right:16px; z-index:99; background:var(--navy-deep); border-radius:20px; padding:14px; box-shadow:0 20px 50px rgba(0,0,0,.35);}
.mobile-menu.open{display:block;}
.mobile-menu a{display:block;color:rgba(255,255,255,.85);padding:13px 14px;font-size:14.5px;font-weight:500;border-radius:12px;}
.mobile-menu a:hover{background:rgba(255,255,255,.08);}
.mobile-menu .nav-cta{display:block;text-align:center;margin:8px 4px 2px;}

/* ================= HERO ================= */
.hero{
  background:var(--navy-deep);
  background-image:
    radial-gradient(ellipse 900px 500px at 82% -10%, rgba(207,25,24,0.28), transparent 60%),
    radial-gradient(ellipse 700px 500px at 8% 110%, rgba(6,36,98,0.9), transparent 60%),
    linear-gradient(180deg, #041538 0%, #071c4a 55%, #041538 100%);
  padding:150px 0 0; overflow:hidden; position:relative;
}
.hero-grid-lines{
  position:absolute; inset:0; opacity:.35; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(180deg, transparent, black 20%, black 70%, transparent);
}
.hero-content{position:relative;z-index:2;text-align:center;max-width:900px;margin:0 auto;padding:0 24px;}
.hero .eyebrow{justify-content:center;color:#ff8e7a;}
.hero .eyebrow::before{background:#ff8e7a;}
.hero h1{color:#fff; font-size:clamp(34px,5.6vw,64px); line-height:1.08; letter-spacing:-0.02em; margin-bottom:22px;}
.hero h1 em{font-style:italic;color:#ff9c8a;}
.hero p.lead{color:rgba(255,255,255,0.62); font-size:17px; line-height:1.65; max-width:600px; margin:0 auto 36px;}
.hero-ctas{display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-bottom:64px;}
.btn{display:inline-flex; align-items:center; gap:9px; padding:15px 26px; border-radius:100px; font-size:14.5px; font-weight:600; transition:.2s; cursor:pointer; border:none;}
.btn-primary{background:var(--red); color:#fff;}
.btn-primary:hover{background:var(--red-dim); transform:translateY(-1px);}
.btn-ghost{background:rgba(255,255,255,0.06); color:#fff; border:1px solid rgba(255,255,255,0.22);}
.btn-ghost:hover{background:rgba(255,255,255,0.13);}
.btn-dark{background:var(--navy); color:#fff;}
.btn-dark:hover{background:var(--navy-deep);}
.btn-outline-navy{background:transparent;border:1.5px solid var(--navy);color:var(--navy);}
.btn-outline-navy:hover{background:var(--navy);color:#fff;}

.route-strip{position:relative; z-index:2; padding:0; margin-top:-6px;}
.route-track{position:relative; height:150px; max-width:1180px; margin:0 auto; padding:0 40px;}
.route-line{position:absolute; left:40px; right:40px; top:50%; height:2px; background:repeating-linear-gradient(90deg, rgba(255,255,255,0.35) 0 10px, transparent 10px 20px);}
.route-node{position:absolute; top:50%; transform:translate(-50%,-50%); text-align:center;}
.route-node .dot{width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.18); display:flex;align-items:center;justify-content:center;margin:0 auto 10px; backdrop-filter:blur(6px);}
.route-node svg{width:24px;height:24px;stroke:#ff9c8a;}
.route-node span{color:rgba(255,255,255,0.55); font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase;}
.route-node.n1{left:6%;} .route-node.n2{left:36%;} .route-node.n3{left:66%;} .route-node.n4{left:94%;}
@media(max-width:720px){ .route-track{padding:0 10px;height:120px;} .route-line{left:10px;right:10px;} .route-node .dot{width:40px;height:40px;} .route-node svg{width:18px;height:18px;} .route-node span{font-size:9px;} }

.stat-bar{position:relative; z-index:2; border-top:1px solid rgba(255,255,255,0.1); margin-top:36px;}
.stat-bar .wrap{display:grid; grid-template-columns:repeat(4,1fr); padding:34px 32px;}
.stat{text-align:center; border-right:1px solid rgba(255,255,255,0.1);}
.stat:last-child{border-right:none;}
.stat b{display:block; font-family:var(--serif); font-size:30px; color:#fff; font-weight:600;}
.stat span{color:rgba(255,255,255,0.5); font-size:12.5px; letter-spacing:.03em;}
@media(max-width:720px){ .stat-bar .wrap{grid-template-columns:repeat(2,1fr); gap:24px 0; padding:28px 20px;} .stat{border-right:none;} }

/* ================= ABOUT ================= */
.about{padding:120px 0; background:var(--white);}
.about .wrap{display:grid; grid-template-columns:0.9fr 1.1fr; gap:76px; align-items:center;}
@media(max-width:900px){ .about .wrap{grid-template-columns:1fr; gap:48px;} }
.about-visual{position:relative; height:460px;}
.about-card{position:absolute; border-radius:22px; overflow:hidden; box-shadow:0 30px 60px -20px rgba(6,36,98,0.35); display:flex; align-items:center; justify-content:center; color:#fff;}
.ac1{width:64%; height:88%; left:0; top:0; background:linear-gradient(155deg,#0a2d70,#041538); z-index:1;}
.ac2{width:44%; height:56%; right:0; bottom:0; background:linear-gradient(155deg,var(--red),#7d0f0e); z-index:2; box-shadow:0 24px 50px -14px rgba(207,25,24,0.5);}
.ac1 .mark{width:56%; opacity:.9;}
.ac2 .mark-small{width:44%;}
.about-eyebrow-badge{position:absolute; top:20px; left:20px; background:rgba(255,255,255,.12); backdrop-filter:blur(6px); color:#fff; font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; padding:7px 12px; border-radius:100px; z-index:3; border:1px solid rgba(255,255,255,.2);}
.about h2{font-size:clamp(26px,3.4vw,38px); line-height:1.18; margin-bottom:20px;}
.about p{color:var(--slate); font-size:15.5px; line-height:1.75; margin-bottom:16px; max-width:560px;}
.about p b{color:var(--ink); font-weight:600;}
.about-actions{display:flex; align-items:center; gap:22px; margin-top:28px; flex-wrap:wrap;}

/* ================= ADVANTAGES ================= */
.advantages{padding:110px 0; background:var(--sand); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.adv-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:56px; gap:32px; flex-wrap:wrap;}
.adv-head h2{font-size:clamp(26px,3.4vw,36px); line-height:1.16; max-width:520px;}
.adv-head p{color:var(--slate); max-width:340px; font-size:14.5px; line-height:1.65;}
.adv-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:20px; overflow:hidden;}
@media(max-width:900px){ .adv-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:600px){ .adv-grid{grid-template-columns:1fr;} }
.adv-card{background:var(--white); padding:34px 30px; transition:.25s;}
.adv-card:hover{background:#fffaf9;}
.adv-icon{width:44px; height:44px; border-radius:12px; background:var(--mist); display:flex; align-items:center; justify-content:center; margin-bottom:20px;}
.adv-icon svg{width:21px;height:21px;stroke:var(--navy);}
.adv-card h3{font-family:var(--sans); font-size:16px; font-weight:700; color:var(--ink); margin-bottom:9px;}
.adv-card p{color:var(--slate); font-size:13.8px; line-height:1.65;}
.adv-idx{font-family:var(--mono); font-size:11px; color:var(--red); margin-bottom:14px; letter-spacing:.05em;}

/* ================= SERVICES ================= */
.services{padding:120px 0;}
.serv-head{text-align:center; max-width:660px; margin:0 auto 56px;}
.serv-head .eyebrow{justify-content:center;}
.serv-head h2{font-size:clamp(26px,3.6vw,40px); line-height:1.16;}
.serv-tabs{display:flex; justify-content:center; gap:10px; margin-bottom:40px; flex-wrap:wrap;}
.serv-tab{padding:11px 20px; border-radius:100px; font-size:13.5px; font-weight:600; color:var(--slate); background:var(--mist); border:1px solid transparent; cursor:pointer; transition:.2s;}
.serv-tab.active{background:var(--navy); color:#fff;}
.serv-panel{display:none; grid-template-columns:1fr 0.95fr; gap:0; border:1px solid var(--line); border-radius:24px; overflow:hidden; background:var(--sand);}
.serv-panel.active{display:grid;}
@media(max-width:860px){ .serv-panel.active{grid-template-columns:1fr;} }
.serv-info{padding:48px 44px;}
.serv-info .eyebrow{margin-bottom:14px;}
.serv-info h3{font-size:23px; margin-bottom:14px; line-height:1.28;}
.serv-info > p{color:var(--slate); font-size:14.5px; line-height:1.7; margin-bottom:28px;}
.serv-list{border-top:1px solid var(--navline);}
.serv-item{border-bottom:1px solid var(--navline);}
.serv-item summary{list-style:none; cursor:pointer; padding:16px 2px; display:flex; justify-content:space-between; align-items:center; font-weight:600; font-size:14.5px; color:var(--ink);}
.serv-item summary::-webkit-details-marker{display:none;}
.serv-item summary .plus{color:var(--red); font-size:17px; font-weight:400; transition:.2s;}
.serv-item[open] summary .plus{transform:rotate(45deg);}
.serv-item p{padding:0 2px 18px; color:var(--slate); font-size:13.6px; line-height:1.65;}
.serv-visual{position:relative; background:linear-gradient(160deg,#0a2d70,#041538); display:flex; align-items:center; justify-content:center; padding:40px; min-height:340px;}
.serv-visual svg{width:100%; max-width:320px; opacity:.95;}
.serv-visual .tag{position:absolute; top:24px; left:24px; background:rgba(255,255,255,.1); color:#fff; font-family:var(--mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; padding:7px 12px; border-radius:100px; border:1px solid rgba(255,255,255,.2);}

/* ================= CONTACT / FORM ================= */
.contact-section{padding:20px 0 110px;}
.contact-wrap{display:grid; grid-template-columns:1fr 1fr; gap:0; border-radius:32px; overflow:hidden; border:1px solid var(--line);}
@media(max-width:900px){ .contact-wrap{grid-template-columns:1fr;} }
.contact-info{background:linear-gradient(150deg, var(--red) 0%, #8f0f0e 100%); padding:56px 44px; color:#fff; position:relative;}
.contact-info::before{content:""; position:absolute; inset:0; background-image:radial-gradient(circle at 15% 20%, rgba(255,255,255,0.14), transparent 40%), radial-gradient(circle at 85% 85%, rgba(255,255,255,0.1), transparent 45%);}
.contact-info > *{position:relative; z-index:2;}
.contact-info h2{color:#fff; font-size:clamp(22px,3vw,30px); margin-bottom:14px;}
.contact-info p{color:rgba(255,255,255,.85); font-size:14.5px; line-height:1.65; margin-bottom:32px;}
.contact-list{display:flex; flex-direction:column; gap:18px;}
.contact-list a, .contact-list div{display:flex; align-items:center; gap:12px; color:#fff; font-size:14px; font-weight:500;}
.contact-list svg{width:18px;height:18px;stroke:#fff;flex-shrink:0;}
.contact-form{background:var(--sand); padding:56px 44px;}
.form-row{margin-bottom:18px;}
.form-row label{display:block; font-size:13px; font-weight:600; color:var(--ink); margin-bottom:7px;}
.form-row input, .form-row textarea, .form-row select{
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:10px; font-family:var(--sans);
  font-size:14px; background:#fff; color:var(--ink); transition:.2s;
}
.form-row input:focus, .form-row textarea:focus, .form-row select:focus{outline:none; border-color:var(--navy); box-shadow:0 0 0 3px rgba(6,36,98,0.1);}
.form-row textarea{resize:vertical; min-height:110px;}
.form-two{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media(max-width:520px){ .form-two{grid-template-columns:1fr;} }
.form-alert{padding:14px 16px; border-radius:10px; font-size:13.5px; margin-bottom:20px; font-weight:500;}
.form-alert.success{background:#e7f6ec; color:#1e7b3c; border:1px solid #b9e5c6;}
.form-alert.error{background:#fdeceb; color:var(--red-dim); border:1px solid #f4c1bf;}
.hp-field{position:absolute; left:-9999px; top:-9999px;}

/* ================= FOOTER ================= */
footer{padding:90px 0 34px; background:var(--white);}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:40px; padding-bottom:56px; border-bottom:1px solid var(--line);}
@media(max-width:820px){ .foot-grid{grid-template-columns:1fr 1fr; row-gap:40px;} }
@media(max-width:520px){ .foot-grid{grid-template-columns:1fr;} }
.foot-brand{display:flex; align-items:center; gap:11px; margin-bottom:16px;}
.foot-brand img{width:38px;height:38px;border-radius:50%;}
.foot-brand span{font-family:var(--serif); font-weight:600; color:var(--navy); font-size:17px;}
.foot-col p{color:var(--slate); font-size:13.8px; line-height:1.7; max-width:280px;}
.foot-col h4{font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:var(--ink); margin-bottom:18px; font-weight:700;}
.foot-col ul li{margin-bottom:11px;}
.foot-col ul li a{color:var(--slate); font-size:14px; transition:.15s;}
.foot-col ul li a:hover{color:var(--red);}
.foot-col ul li a.contact-line{display:flex; align-items:center; gap:9px;}
.foot-col ul li a.contact-line svg{width:15px;height:15px;stroke:var(--red);flex-shrink:0;}
.foot-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:26px; flex-wrap:wrap; gap:12px;}
.foot-bottom p{color:#9aa1ab; font-size:12.8px;}

.reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
