:root {
  --blue: #063b78;
  --blue-dark: #042d5c;
  --blue-mid: #2d5f96;
  --blue-light: #edf4fb;
  --ink: #17324d;
  --muted: #617083;
  --white: #ffffff;
  --line: #dbe5ee;
  --shadow: 0 20px 50px rgba(6, 59, 120, .10);
  --radius: 22px;
  --max: 1160px;
}
* { 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;
}
a { color: inherit; }
.container { width: min(calc(100% - 40px), var(--max)); margin: 0 auto; }
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background: rgba(255,255,255,.88); backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(219,229,238,.75);
}
.nav { min-height: 78px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; align-items:center; text-decoration:none; }
.brand img { display:block; width:auto; height:66px; max-height:68px; object-fit:contain; }
.nav-links { display:flex; align-items:center; gap:24px; font-size:.91rem; font-weight:650; }
.nav-links a { text-decoration:none; transition:.25s ease; }
.nav-links a:hover { color:var(--blue); }
.nav-whatsapp { color:#fff !important; background:var(--blue); padding:10px 17px; border-radius:999px; }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; }
.menu-toggle span { display:block; width:25px; height:2px; background:var(--blue); margin:5px; }

.section { position:relative; padding:72px 0; overflow:hidden; scroll-margin-top:102px; }
.section-soft { background:linear-gradient(180deg, #f5f9fc 0%, #edf4fa 100%); }
.hero { min-height:auto; padding-top:140px; padding-bottom:48px; display:flex; align-items:center; background:linear-gradient(135deg,#fff 0%,#f7fbff 62%,#edf5fc 100%); }
.hero-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:28px; width:min(calc(100% - 40px), var(--max)); margin:0 auto; }
.hero-copy { text-align:left; width:100%; box-sizing:border-box; }
.hero-media { display:flex; justify-content:flex-start; align-items:center; width:100%; }
.hero-image-wrapper {
  position: relative;
  width: 100%;
  max-width: 600px;
  margin-top: -40px;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(6, 59, 120, .10);
  background: transparent;
  transition: transform .35s ease, box-shadow .35s ease;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, 0.6) 3%, #000 8%, #000 100%);
  mask-image: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, 0.6) 3%, #000 8%, #000 100%);
}
.hero-image-wrapper:hover { transform:translateY(-4px); box-shadow:0 26px 60px rgba(6,59,120,.16); }
.hero-img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.hero h1 { margin:0; font-size:clamp(1.85rem,2.8vw,2.9rem); line-height:1.1; letter-spacing:-.035em; text-align:left; }
.hero h1 span { color:var(--blue); }
.eyebrow { display:inline-block; color:var(--blue); font-size:.76rem; letter-spacing:.15em; font-weight:800; margin-bottom:16px; }
.hero-subtitle { margin:18px 0 0; font-size:clamp(1.1rem,2vw,1.7rem); font-weight:800; color:var(--ink); line-height:1.18; letter-spacing:-.02em; text-align:left; white-space:nowrap; }
.hero-description { margin:20px 0 0; font-size:1.08rem; color:var(--muted); line-height:1.7; text-align:justify; text-justify:inter-word; }
.hero p { margin:24px 0; font-size:1.12rem; color:var(--muted); text-align:justify; text-justify:inter-word; }
.hero-actions { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:12px; margin-top:28px; }
.btn { display:inline-flex; justify-content:center; align-items:center; min-height:50px; padding:0 21px; border-radius:999px; text-decoration:none; font-weight:750; transition:transform .25s ease, box-shadow .25s ease, background .25s ease; }
.btn:hover { transform:translateY(-2px); box-shadow:0 12px 25px rgba(6,59,120,.14); }
.btn-primary { background:var(--blue); color:#fff; }
.btn-secondary { border:1px solid var(--line); background:#fff; color:var(--blue); }
.hero-note { display:flex; align-items:center; gap:9px; margin-top:25px; color:var(--muted); font-size:.88rem; }
.dot { width:8px; height:8px; border-radius:50%; background:var(--blue); }
.scroll-cue { position:absolute; bottom:28px; left:50%; transform:translateX(-50%); width:42px; height:42px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; text-decoration:none; color:var(--blue); }

.two-col { display:grid; grid-template-columns:.9fr 1.1fr; gap:90px; }
.section-heading { margin-bottom: 24px; }
.section-heading h2, .section-intro h2 { margin:0; font-size:clamp(1.5rem,2.4vw,2.35rem); line-height:1.2; letter-spacing:-.03em; }
.section-heading p, .section-intro p { color:var(--muted); }
.text-block { font-size:1.08rem; color:#526579; }
.text-block p { margin-top:0; margin-bottom:20px; }
.mini-points { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:30px; }
.mini-points div { border-top:2px solid var(--blue); padding-top:14px; text-align:center; }
.mini-points span { display:block; font-weight:700; font-size:.95rem; color:var(--ink); }

.section-intro { max-width:100%; margin-bottom:48px; }
.section-intro p { max-width:720px; }
@media (min-width: 980px) {
  .section-intro h2 { white-space: nowrap; }
}
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.step { padding:32px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; position:relative; transition:transform .3s ease, box-shadow .3s ease; }
.step:hover, .service-card:hover, .review:hover { transform:translateY(-5px); box-shadow:var(--shadow); }
.step-number { position:absolute; top:24px; right:26px; font-size:.78rem; color:#8aa0b5; font-weight:800; }
.icon-box { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; background:var(--blue-light); color:var(--blue); font-weight:900; margin-bottom:30px; }
.step h3, .service-card h3 { margin:0 0 10px; font-size:1.1rem; }
.step p { color:var(--muted); margin:0; font-size:.94rem; }
.service-card p { color:var(--muted); margin:0; font-size:.94rem; text-align:justify; text-justify:inter-word; }

.services-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.service-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 26px 22px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 220px;
  transition: transform .3s ease, box-shadow .3s ease;
}
.service-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:13px; background:var(--blue-light); color:var(--blue); margin-bottom:20px; }
.service-icon svg, .icon-box svg { display:block; }

.reviews-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.review { margin:0; padding:32px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; display:flex; flex-direction:column; transition:transform .3s ease, box-shadow .3s ease; }
.stars { color:#fbbc04; letter-spacing:3px; font-size:.95rem; }
.review p { font-size:1.02rem; font-weight:550; line-height:1.55; margin:16px 0 14px; }
.review cite { margin-top:auto; padding-top:12px; color:var(--muted); font-style:normal; font-size:.84rem; font-weight:600; }
.review-note { color:#8795a5; font-size:.75rem; margin-top:18px; }

.schedule-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:start; }
.schedule-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:8px 26px; box-shadow:0 15px 40px rgba(6,59,120,.06); }
.schedule-row { display:flex; justify-content:space-between; gap:20px; padding:18px 0; border-bottom:1px solid #e9eff4; font-size:.93rem; }
.schedule-row:last-child { border-bottom:0; }
.schedule-row span { color:var(--muted); }
.schedule-row strong { text-align:right; color:var(--ink); }
.schedule-row.closed strong { color:#8a96a3; }

.contact-section { padding-bottom:90px; }
.contact-card { border-radius:34px; padding:55px; background:linear-gradient(135deg,var(--blue),var(--blue-dark)); color:#fff; box-shadow:0 25px 55px rgba(6,59,120,.2); }
.contact-card .eyebrow { color:#cbdcf0; }
.contact-card h2 { max-width:700px; margin:0; font-size:clamp(2rem,4vw,3.4rem); line-height:1.05; letter-spacing:-.04em; }
.contact-card > div:first-child p { color:#d8e5f1; max-width:620px; }
.contact-actions { display:flex; gap:12px; margin:30px 0 35px; flex-wrap:wrap; }
.btn-light { background:#fff; color:var(--blue); }
.btn-outline-light { border:1px solid rgba(255,255,255,.45); color:#fff; }
.contact-details { display:grid; grid-template-columns:1.15fr 1fr 1fr; gap:30px; align-items:start; padding-top:28px; border-top:1px solid rgba(255,255,255,.2); }
.contact-email { justify-self:center; }
.contact-social { justify-self:end; }
.contact-details span { display:block; font-size:.75rem; color:#b9cde0; text-transform:uppercase; letter-spacing:.12em; margin-bottom:7px; }
.contact-details strong { display:block; font-size:.88rem; line-height:1.55; }
.contact-details a { color:#fff; text-decoration:none; }
.map-link { display:inline-flex; align-items:center; margin-top:10px; font-weight:700; font-size:.84rem; color:#cbdcf0 !important; text-decoration:underline !important; text-underline-offset:3px; transition:color .2s ease; }
.map-link:hover { color:#fff !important; }
.social-links { display:flex; gap:10px; align-items:center; }
.social-btn { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25); color:#fff !important; transition:background .25s ease, transform .25s ease, color .25s ease; text-decoration:none; }
.social-btn:hover { background:#fff; color:var(--blue) !important; transform:translateY(-2px); }
.social-btn svg { display:block; }

.footer { background:#f6f9fc; border-top:1px solid var(--line); padding:28px 0; }
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:25px; font-size:.78rem; }
.footer-inner strong { display:block; color:var(--blue); }
.footer-inner span { color:var(--muted); }
.footer-links { display:flex; gap:18px; }
.footer-links a { text-decoration:none; color:var(--muted); }
.footer-links a:hover { color:var(--blue); }

.floating-whatsapp { position:fixed; right:22px; bottom:22px; z-index:90; width:58px; height:58px; border-radius:50%; display:grid; place-items:center; background:var(--blue); color:#fff; text-decoration:none; font-size:1.5rem; box-shadow:0 12px 28px rgba(6,59,120,.28); transition:.25s ease; }
.floating-whatsapp svg { display:block; }
.floating-whatsapp:hover { transform:translateY(-3px) scale(1.03); }

.reveal { opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity:1; transform:none; }

@media (max-width: 980px) {
  .nav-links { gap:14px; font-size:.84rem; }
  .hero-grid, .two-col, .schedule-layout { grid-template-columns:1fr; gap:45px; }
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .service-card, .service-card:nth-child(1), .service-card:nth-child(2), .service-card:nth-child(3) { min-height:auto; }
  .contact-card { padding:35px 25px; border-radius:25px; }
  .contact-details { grid-template-columns:1fr; }
  .contact-email, .contact-social { justify-self:start; }
  .footer-inner { flex-direction:column; align-items:flex-start; }
  .floating-whatsapp { width:54px; height:54px; right:16px; bottom:16px; }
}
@media (max-width: 760px) {
  .container { width:min(calc(100% - 28px), var(--max)); }
  .site-header { background:#fff; }
  .nav { min-height:70px; }
  .brand img { width:auto; height:54px; max-height:56px; }
  .menu-toggle { display:block; }
  .nav-links { display:none; position:absolute; top:70px; left:14px; right:14px; padding:15px; background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); flex-direction:column; align-items:stretch; }
  .nav-links.open { display:flex; }
  .nav-links a { padding:10px 8px; }
  .nav-whatsapp { text-align:center; }
  .section { padding:80px 0; scroll-margin-top:90px; }
  .hero { padding-top:125px; }
  .hero h1 { font-size:clamp(1.7rem, 5.5vw, 2.2rem); }
  .mini-points, .steps, .reviews-grid, .services-grid { grid-template-columns:1fr; }
  .contact-card { padding:35px 25px; border-radius:25px; }
  .contact-details { grid-template-columns:1fr; }
  .footer-inner { flex-direction:column; align-items:flex-start; }
  .floating-whatsapp { width:54px; height:54px; right:16px; bottom:16px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; animation:none !important; }
  .reveal { opacity:1; transform:none; }
}
