:root {
  --navy: #14213d;
  --navy-2: #0b132b;
  --blue: #24577a;
  --sky: #d7e8f5;
  --cream: #fffaf0;
  --orange: #f4a261;
  --gold: #e9c46a;
  --coral: #e76f51;
  --ink: #1d2a35;
  --muted: #62717d;
  --white: #ffffff;
  --line: #dbe3e8;
  --success: #2a9d8f;
  --shadow: 0 18px 50px rgba(11, 19, 43, .12);
  --radius: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--white);
  line-height: 1.65;
}
img { display:block; max-width:100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor:pointer; }
.container { width:min(1160px, calc(100% - 36px)); margin-inline:auto; }
.section { padding: 88px 0; }
.section-sm { padding: 56px 0; }
.section-alt { background:#f7fafc; }
.eyebrow {
  display:inline-flex; align-items:center; gap:10px; margin:0 0 12px;
  color:var(--coral); font-size:.78rem; letter-spacing:.15em; font-weight:800; text-transform:uppercase;
}
.eyebrow::before { content:""; width:34px; height:3px; border-radius:999px; background:linear-gradient(90deg,var(--orange),var(--coral)); }
h1,h2,h3,h4 { margin:0 0 16px; line-height:1.12; color:var(--navy-2); }
h1 { font-size:clamp(2.6rem, 6.2vw, 5.4rem); letter-spacing:-.045em; }
h2 { font-size:clamp(2rem, 4vw, 3.35rem); letter-spacing:-.035em; }
h3 { font-size:1.32rem; }
p { margin:0 0 18px; }
.lead { font-size:clamp(1.05rem, 1.9vw, 1.24rem); color:#e7eef5; max-width:670px; }
.section-intro { max-width:700px; color:var(--muted); font-size:1.08rem; }
.muted { color:var(--muted); }
.text-center { text-align:center; }
.text-center .section-intro { margin-inline:auto; }

.topbar { background:var(--navy-2); color:#dbe8f1; font-size:.88rem; }
.topbar-inner { min-height:39px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.topbar-links { display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.topbar a:hover { color:var(--gold); }
.site-header { position:sticky; top:0; z-index:1000; background:rgba(255,255,255,.95); backdrop-filter:blur(12px); border-bottom:1px solid rgba(20,33,61,.08); }
.navbar { min-height:78px; display:flex; align-items:center; justify-content:space-between; gap:22px; }
.brand { display:flex; align-items:center; gap:12px; min-width:230px; }
.brand img { width:58px; height:58px; }
.brand-copy strong { display:block; color:var(--navy-2); font-size:1.02rem; letter-spacing:.02em; }
.brand-copy span { display:block; color:var(--muted); font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; }
.main-nav { display:flex; align-items:center; gap:6px; }
.main-nav a { padding:11px 12px; border-radius:10px; font-weight:700; color:#394a58; font-size:.94rem; }
.main-nav a:hover,.main-nav a.active { color:var(--navy); background:#eef4f8; }
.nav-cta { background:var(--coral)!important; color:var(--white)!important; box-shadow:0 8px 18px rgba(231,111,81,.24); }
.menu-toggle { display:none; width:46px; height:46px; border:0; border-radius:12px; background:#eef4f8; color:var(--navy); align-items:center; justify-content:center; }
.menu-toggle span,.menu-toggle::before,.menu-toggle::after { content:""; display:block; width:22px; height:2px; background:currentColor; position:absolute; transition:.25s ease; }
.menu-toggle span { transform:translateY(0); }
.menu-toggle::before { transform:translateY(-7px); }
.menu-toggle::after { transform:translateY(7px); }
.menu-toggle.open span { opacity:0; }
.menu-toggle.open::before { transform:rotate(45deg); }
.menu-toggle.open::after { transform:rotate(-45deg); }

.hero { position:relative; overflow:hidden; background:linear-gradient(125deg,var(--navy-2) 0%,#153453 50%,#285a75 100%); color:var(--white); }
.hero::before { content:""; position:absolute; width:680px; height:680px; border-radius:50%; right:-240px; top:-260px; background:radial-gradient(circle at 34% 34%,rgba(244,162,97,.8),rgba(231,111,81,.15) 42%,transparent 68%); }
.hero::after { content:""; position:absolute; inset:auto 0 0; height:170px; background:linear-gradient(to top,rgba(9,21,37,.42),transparent); pointer-events:none; }
.hero-inner { min-height:670px; display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:54px; position:relative; z-index:1; padding:74px 0 82px; }
.hero h1 { color:var(--white); max-width:760px; }
.hero h1 span { color:var(--gold); }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; margin-top:30px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:50px; padding:0 22px; border-radius:999px; border:1px solid transparent; font-weight:800; transition:.2s ease; }
.btn:hover { transform:translateY(-2px); }
.btn-primary { background:var(--coral); color:var(--white); box-shadow:0 12px 26px rgba(231,111,81,.28); }
.btn-light { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.35); color:var(--white); }
.btn-outline { border-color:var(--navy); color:var(--navy); background:transparent; }
.btn-dark { background:var(--navy-2); color:var(--white); }
.hero-visual { position:relative; }
.hero-visual img { width:100%; filter:drop-shadow(0 30px 45px rgba(0,0,0,.32)); }
.hero-badge { position:absolute; left:-25px; bottom:48px; width:190px; padding:17px 18px; background:rgba(255,255,255,.96); color:var(--navy-2); border-radius:17px; box-shadow:var(--shadow); }
.hero-badge strong { display:block; font-size:1.08rem; }
.hero-badge span { color:var(--muted); font-size:.86rem; }
.hero-points { margin-top:26px; display:flex; flex-wrap:wrap; gap:12px 20px; color:#dce8f0; font-size:.92rem; }
.hero-points span::before { content:"✓"; color:var(--gold); margin-right:7px; font-weight:900; }

.trust-strip { margin-top:-30px; position:relative; z-index:4; }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); background:var(--white); border-radius:18px; box-shadow:var(--shadow); overflow:hidden; }
.trust-item { padding:24px; border-right:1px solid var(--line); }
.trust-item:last-child { border-right:0; }
.trust-item strong { display:block; color:var(--navy-2); font-size:1.05rem; }
.trust-item span { color:var(--muted); font-size:.9rem; }

.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:44px; align-items:center; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 10px 32px rgba(20,33,61,.06); }
.service-card { overflow:hidden; transition:.22s ease; }
.service-card:hover { transform:translateY(-6px); box-shadow:var(--shadow); }
.service-card img { aspect-ratio:16/10; width:100%; object-fit:cover; background:#e8f0f5; }
.service-card-body { padding:25px; }
.service-card p { color:var(--muted); }
.service-link { display:inline-flex; align-items:center; gap:8px; color:var(--coral); font-weight:800; }
.service-link:hover { gap:12px; }

.icon-box { width:54px; height:54px; display:grid; place-items:center; border-radius:16px; background:linear-gradient(145deg,#fef0df,#ffe2d8); color:var(--coral); font-size:1.5rem; margin-bottom:18px; }
.feature-card { padding:26px; }
.feature-card p { color:var(--muted); margin-bottom:0; }

.about-visual { position:relative; padding:18px; }
.about-visual::before { content:""; position:absolute; inset:0 60px 60px 0; border-radius:32px; background:#e8f2f7; }
.about-visual img { position:relative; border-radius:26px; width:100%; box-shadow:var(--shadow); }
.about-tag { position:absolute; right:0; bottom:0; width:190px; min-height:135px; display:grid; place-items:center; text-align:center; background:var(--navy-2); color:var(--white); border-radius:24px; padding:20px; box-shadow:var(--shadow); }
.about-tag strong { display:block; color:var(--gold); font-size:2.4rem; line-height:1; }

.process { counter-reset:step; }
.process-step { position:relative; padding:30px 24px 24px 88px; min-height:155px; }
.process-step::before { counter-increment:step; content:"0" counter(step); position:absolute; left:24px; top:27px; font-size:2rem; font-weight:900; color:var(--coral); }
.process-step p { color:var(--muted); margin:0; }

.band { background:linear-gradient(120deg,var(--navy-2),#24577a); color:var(--white); border-radius:30px; padding:48px; display:flex; align-items:center; justify-content:space-between; gap:40px; position:relative; overflow:hidden; }
.band::after { content:""; position:absolute; width:260px; height:260px; border-radius:50%; right:-80px; top:-130px; background:rgba(244,162,97,.18); }
.band h2 { color:var(--white); max-width:700px; }
.band p { color:#d8e4ec; max-width:700px; margin-bottom:0; }
.band .btn { flex:0 0 auto; position:relative; z-index:1; }

.page-hero { background:linear-gradient(120deg,var(--navy-2),#274f6b); color:var(--white); padding:84px 0; position:relative; overflow:hidden; }
.page-hero::after { content:""; position:absolute; width:390px; height:390px; border-radius:50%; right:-100px; top:-190px; background:rgba(244,162,97,.22); }
.page-hero h1 { color:var(--white); font-size:clamp(2.5rem,5vw,4.6rem); }
.page-hero p { max-width:720px; color:#dce8f0; font-size:1.12rem; }
.breadcrumb { display:flex; gap:9px; align-items:center; font-size:.9rem; color:#bcd0de; margin-bottom:18px; }
.breadcrumb a:hover { color:var(--gold); }

.service-detail { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; padding:36px 0; border-bottom:1px solid var(--line); }
.service-detail:last-child { border-bottom:0; }
.service-detail:nth-child(even) .service-detail-media { order:2; }
.service-detail-media img { width:100%; border-radius:24px; box-shadow:var(--shadow); }
.check-list { list-style:none; padding:0; margin:22px 0 0; display:grid; gap:10px; }
.check-list li { position:relative; padding-left:30px; color:#43535f; }
.check-list li::before { content:"✓"; position:absolute; left:0; color:var(--success); font-weight:900; }

.stats { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:26px; }
.stat { padding:22px; border-radius:18px; background:#f2f7fa; }
.stat strong { display:block; color:var(--navy-2); font-size:1.55rem; }
.stat span { color:var(--muted); font-size:.9rem; }

.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.gallery-card { overflow:hidden; border-radius:20px; background:#e8f0f5; position:relative; box-shadow:0 10px 25px rgba(20,33,61,.08); }
.gallery-card img { width:100%; aspect-ratio:4/3; object-fit:cover; transition:.35s ease; }
.gallery-card:hover img { transform:scale(1.045); }
.gallery-caption { position:absolute; inset:auto 0 0; padding:42px 20px 18px; background:linear-gradient(to top,rgba(11,19,43,.85),transparent); color:var(--white); font-weight:800; }
.notice { padding:17px 20px; border-left:4px solid var(--orange); background:#fff5e8; color:#675038; border-radius:10px; }

.contact-grid { display:grid; grid-template-columns:.86fr 1.14fr; gap:34px; align-items:start; }
.contact-panel { padding:32px; background:var(--navy-2); color:var(--white); border-radius:26px; position:sticky; top:118px; }
.contact-panel h2,.contact-panel h3 { color:var(--white); }
.contact-panel p { color:#cfdee8; }
.contact-list { display:grid; gap:18px; margin-top:28px; }
.contact-item { display:grid; grid-template-columns:44px 1fr; gap:13px; align-items:start; }
.contact-item-icon { width:44px; height:44px; border-radius:13px; display:grid; place-items:center; background:rgba(255,255,255,.09); color:var(--gold); }
.contact-item strong { display:block; color:var(--white); }
.contact-item span,.contact-item a { color:#cfdee8; }
.form-card { padding:32px; }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.form-group { display:grid; gap:7px; }
.form-group.full { grid-column:1/-1; }
label { font-weight:800; color:var(--navy-2); font-size:.92rem; }
input,textarea,select { width:100%; border:1px solid #ccd7de; border-radius:12px; background:var(--white); padding:13px 14px; color:var(--ink); outline:none; transition:.2s ease; }
input:focus,textarea:focus,select:focus { border-color:var(--blue); box-shadow:0 0 0 4px rgba(36,87,122,.11); }
textarea { min-height:145px; resize:vertical; }
.honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.form-status { margin-top:15px; padding:12px 14px; border-radius:10px; display:none; }
.form-status.show { display:block; }
.form-status.success { background:#e8f7f3; color:#176b5f; }
.form-status.error { background:#ffebe6; color:#8a3828; }

.faq { display:grid; gap:14px; max-width:900px; margin-inline:auto; }
.faq-item { border:1px solid var(--line); border-radius:16px; overflow:hidden; background:var(--white); }
.faq-question { width:100%; padding:20px 22px; display:flex; align-items:center; justify-content:space-between; border:0; background:transparent; text-align:left; color:var(--navy-2); font-weight:850; }
.faq-question::after { content:"+"; font-size:1.5rem; color:var(--coral); }
.faq-item.open .faq-question::after { content:"−"; }
.faq-answer { max-height:0; overflow:hidden; transition:max-height .28s ease; }
.faq-answer-inner { padding:0 22px 20px; color:var(--muted); }

footer { background:var(--navy-2); color:#cad8e2; }
.footer-main { padding:64px 0 36px; display:grid; grid-template-columns:1.4fr .8fr 1fr 1fr; gap:38px; }
.footer-brand { display:flex; align-items:center; gap:12px; color:var(--white); margin-bottom:18px; }
.footer-brand img { width:58px; height:58px; }
.footer-brand strong { display:block; }
footer h3 { color:var(--white); font-size:1rem; margin-bottom:18px; }
.footer-links { display:grid; gap:9px; }
.footer-links a:hover { color:var(--gold); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding:20px 0; display:flex; justify-content:space-between; gap:20px; font-size:.86rem; }

@media (max-width: 980px) {
  .topbar-inner { justify-content:center; }
  .topbar-inner > span { display:none; }
  .menu-toggle { display:flex; position:relative; }
  .main-nav { position:absolute; left:18px; right:18px; top:78px; background:var(--white); box-shadow:var(--shadow); border-radius:18px; padding:14px; display:none; flex-direction:column; align-items:stretch; }
  .main-nav.open { display:flex; }
  .main-nav a { padding:13px 14px; }
  .hero-inner { grid-template-columns:1fr; min-height:auto; padding:70px 0 95px; }
  .hero-copy { text-align:center; }
  .hero-copy .lead { margin-inline:auto; }
  .hero-actions,.hero-points { justify-content:center; }
  .hero-visual { max-width:620px; margin-inline:auto; }
  .trust-grid { grid-template-columns:repeat(2,1fr); }
  .trust-item:nth-child(2) { border-right:0; }
  .trust-item:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .grid-4 { grid-template-columns:repeat(2,1fr); }
  .grid-3 { grid-template-columns:repeat(2,1fr); }
  .footer-main { grid-template-columns:1.2fr 1fr 1fr; }
  .footer-main > :first-child { grid-column:1/-1; max-width:700px; }
  .contact-grid { grid-template-columns:1fr; }
  .contact-panel { position:static; }
}

@media (max-width: 760px) {
  .section { padding:68px 0; }
  .topbar-links { gap:12px; justify-content:center; }
  .topbar-links a:nth-child(2) { display:none; }
  .brand-copy span { display:none; }
  .brand { min-width:0; }
  .brand img { width:50px; height:50px; }
  .brand-copy strong { font-size:.9rem; }
  .hero-inner { gap:35px; }
  .hero-badge { left:0; bottom:20px; }
  .grid-2,.service-detail { grid-template-columns:1fr; }
  .service-detail:nth-child(even) .service-detail-media { order:0; }
  .grid-3,.grid-4,.gallery-grid { grid-template-columns:1fr; }
  .band { padding:34px 26px; flex-direction:column; align-items:flex-start; }
  .form-grid { grid-template-columns:1fr; }
  .stats { grid-template-columns:1fr; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .footer-main > :first-child { grid-column:1/-1; }
  .footer-bottom { flex-direction:column; }
}

@media (max-width: 520px) {
  .container { width:min(100% - 24px,1160px); }
  .topbar-links a:nth-child(3) { display:none; }
  .trust-grid { grid-template-columns:1fr; }
  .trust-item { border-right:0; border-bottom:1px solid var(--line); }
  .trust-item:last-child { border-bottom:0; }
  .hero h1 { font-size:2.55rem; }
  .hero-actions .btn { width:100%; }
  .hero-points { align-items:flex-start; flex-direction:column; }
  .footer-main { grid-template-columns:1fr; }
  .footer-main > :first-child { grid-column:auto; }
  .form-card,.contact-panel { padding:24px; }
}
