:root {
  --bg: #f5f7fa;
  --surface: #ffffff;
  --text: #1d2733;
  --muted: #556274;
  --brand: #1b6ea9;
  --border: #d7dee7;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; color: var(--text); background: linear-gradient(180deg,#f9fbfd 0%,#eef3f8 100%); }
a { color: var(--brand); text-decoration: none; }
a:focus, button:focus, input:focus, textarea:focus { outline: 2px solid #0f89d8; outline-offset: 2px; }
button, input, textarea, select { font: inherit; }
.site-header { padding: 0; background: var(--surface); border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 20; }
.site-header-inner { display:flex; align-items:center; gap:1rem; padding: 0.9rem 0; width: min(1668px, calc(100vw - 16px)); margin: 0 auto; }
.hamburger { border:1px solid var(--border); background:#fff; padding:0.4rem 0.65rem; border-radius:8px; font-size:1.3rem; }
.logo { font-weight:700; color:var(--text); font-size:1.1rem; }
.logo img { height:72px; width:auto; display:block; }
.main-nav { margin-left:auto; display:none; gap:1rem; }
.main-nav a { color:var(--text); font-weight:400; }
.lang-switch { margin-left: .7rem; display:flex; align-items:center; gap:.35rem; }
.lang-switch a { border:1px solid var(--border); border-radius:7px; padding:.2rem .45rem; font-size:.8rem; color:var(--text); }
.lang-switch a.active { background:var(--brand); color:#fff; border-color:var(--brand); }
.container { max-width: 1160px; margin: 1rem auto 2rem; padding: 0 1rem; }
.hero-outer { margin: 0 0 2.5rem 0; padding: 0; }
.hero { width: min(1668px, calc(100vw - 16px)); margin: 0 auto; }
.carousel { position:relative; overflow:hidden; border-radius:0; background:transparent; }
.slide { display:none; position:relative; }
.slide.active { display:block; }
.slide img { width:100%; aspect-ratio: 1668 / 668; object-fit: cover; opacity:0.95; display:block; }
.slide-caption { position:absolute; left:6%; bottom:8%; background:transparent; color:#fff; padding:0; border-radius:0; max-width:70%; text-shadow:0 2px 8px rgba(0,0,0,.45); }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:46px; background: var(--brand); color:#fff; border:none; padding:0.55rem 0.9rem; border-radius:8px; margin-top:0.4rem; cursor:pointer; }
.carousel-prev, .carousel-next { position:absolute; top:50%; transform:translateY(-50%); border:none; background:transparent; color:#fff; font-size:2.2rem; width:40px; height:40px; border-radius:0; cursor:pointer; text-shadow:0 2px 8px rgba(0,0,0,.55); }
.carousel-prev { left: 10px; }
.carousel-next { right: 10px; }
.dots { position:absolute; left:0; right:0; bottom:10px; display:flex; justify-content:center; gap:8px; }
.dots button { width:10px; height:10px; border-radius:50%; border:0; background:#c8d2de; }
.dots button.active { background:#fff; }
.grid-2 { display:grid; grid-template-columns:1fr; gap:1rem; }
.home-intro-grid { display:grid; grid-template-columns:1fr; gap:1rem; }
.agenda-calendar { border:1px solid #dfe6ee; border-radius:10px; padding:.7rem; background:#fff; }
.agenda-month { text-align:center; font-weight:700; margin:.1rem 0 .55rem; color:#284a68; }
.agenda-weekdays, .agenda-days { display:grid; grid-template-columns:repeat(7,1fr); gap:.28rem; }
.agenda-weekdays span { text-align:center; font-size:.74rem; color:#6e7b8a; font-weight:700; }
.agenda-day { position:relative; min-height:36px; display:flex; align-items:center; justify-content:center; border:1px solid #e4ebf3; border-radius:8px; background:#f9fbfe; font-size:.86rem; color:#2b3a4b; }
.agenda-day.empty { border:0; background:transparent; }
.agenda-day.has-event { background:#eef6ff; border-color:#bfd7f0; font-weight:700; }
.agenda-day.is-today { outline:2px solid #87b8e0; outline-offset:0; }
.agenda-dot { position:absolute; bottom:5px; width:5px; height:5px; border-radius:999px; background:#2a7fc0; }
.card, .content-block, main > article, .grid-2 > article { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:1rem; margin-bottom:1rem; }
.about-layout { display:grid; grid-template-columns: 1.4fr 0.8fr; gap:1rem; align-items:start; }
.about-content { margin:0; }
.about-submenu { margin:0; }
.about-submenu a { display:block; padding:.55rem .6rem; border-bottom:1px solid #e7edf4; color:var(--text); font-weight:600; }
.about-submenu a:last-child { border-bottom:0; }
.about-submenu a.active { color:var(--brand); background:#eef5fc; }
.hero-image, .thumb { width:100%; border-radius:10px; margin-bottom:0.7rem; }
label { display:block; margin-bottom:0.75rem; font-weight:600; }
input, textarea, select {
  width:100%;
  max-width:100%;
  height:46px;
  padding:0.55rem 0.65rem;
  border:1px solid var(--border);
  border-radius:8px;
  margin-top:0.35rem;
  font-size:16px;
  line-height:1.25;
}
textarea { min-height:120px; height:auto; }
.phone-row { display:grid; grid-template-columns:minmax(210px,1fr) 1.4fr; gap:.6rem; margin:.2rem 0 .5rem; }
.phone-row input, .phone-row select { margin-top:0; }
.content-block, .card, main > article, .grid-2 > article { overflow-wrap:anywhere; }
.content-block img, .content-block video, .content-block iframe,
main > article img, main > article video, main > article iframe {
  max-width:100%;
}
.content-block iframe, main > article iframe { width:100%; }
table {
  width:100%;
  border-collapse:collapse;
  display:block;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
th, td {
  padding:.55rem .65rem;
  border:1px solid var(--border);
  text-align:left;
  white-space:nowrap;
}
.site-footer {
  padding:1.4rem 1rem 1.5rem;
  border-top:1px solid #d5dce4;
  text-align:center;
  color:#2f3a47;
  background:#f8fafc;
}
.footer-inner {
  max-width:1160px;
  margin:0 auto;
  display:grid;
  gap:.45rem;
}
.footer-logo {
  height:68px;
  width:auto;
  margin:0 auto .25rem;
  display:block;
}
.footer-info, .footer-contact, .footer-copy {
  margin:0;
  line-height:1.55;
  color:#5a6675;
}
.footer-contact { font-weight:400; color:#5a6675; }
.footer-copy {
  font-size:.76rem;
  letter-spacing:.01em;
}
.footer-social {
  margin:.65rem auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.8rem;
}
.footer-social::before,
.footer-social::after {
  content:"";
  width:78px;
  max-width:18vw;
  height:1px;
  background:#c7d0da;
}
.footer-social a {
  width:34px;
  height:34px;
  border:1px solid #c7d0da;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#4b5869;
  background:#fff;
  transition:background-color .18s ease, border-color .18s ease, color .18s ease;
}
.footer-social a:hover { background:#eef2f6; border-color:#b8c3cf; color:#2f3a47; }
.footer-social svg { width:18px; height:18px; fill:currentColor; }
.side-menu { position:fixed; top:0; left:-300px; width:280px; height:100%; background:#fff; border-right:1px solid var(--border); padding:1rem; z-index:50; transition:left .25s ease; }
.side-menu.open { left:0; }
.close-menu { border:0; background:none; font-size:2rem; line-height:1; margin-bottom:1rem; }
.side-link { display:flex; align-items:center; gap:0.7rem; padding:0.65rem 0.2rem; border-bottom:1px solid #eef1f5; color:var(--text); font-weight:400; }
.menu-icon { width:22px; height:22px; object-fit:cover; }
.menu-icon-svg { display:inline-flex; align-items:center; justify-content:center; }
.menu-icon-svg svg { width:22px; height:22px; display:block; fill:currentColor; }
.overlay { position:fixed; inset:0; background:rgba(0,0,0,.35); z-index:40; }
.ok { color:#0b7a2f; font-weight:700; }
.warn { color:#8a4b00; background:#fff4e5; border:1px solid #ffd8a8; padding:.55rem .7rem; border-radius:8px; }
.apply-wrap { border:0; background:transparent; padding:0; }
.apply-head { background:linear-gradient(135deg,#0e2f4d 0%,#1f6ea3 100%); color:#fff; border-radius:14px; padding:1.2rem 1.3rem; margin-bottom:1rem; }
.apply-badge-icon { display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border:2px solid rgba(255,255,255,.9); border-radius:14px; color:#fff; margin-bottom:.75rem; }
.apply-badge-icon svg { width:36px; height:36px; display:block; }
.apply-head h1 { margin:0 0 .35rem; font-size:1.45rem; }
.apply-head p { margin:0; opacity:.95; }
.apply-logo { height:74px; width:auto; display:block; margin-bottom:.7rem; }
.apply-form { display:grid; gap:1rem; }
.apply-card { background:#fff; border:1px solid var(--border); border-radius:14px; padding:1rem; }
.apply-card h3 { margin:.1rem 0 .8rem; font-size:1.05rem; }
.apply-grid { display:grid; grid-template-columns:1fr; gap:.75rem; }
.apply-form label { font-weight:400; }
.apply-terms { background:#f6f9fc; border:1px solid #e1e9f2; border-radius:10px; padding:.75rem .85rem; font-size:.95rem; color:#324255; }
.apply-consent { display:grid; grid-template-columns:1fr; gap:.6rem; margin-top:.8rem; }
.consent-item { background:#fff; border:1px solid #d9e3ee; border-radius:10px; padding:.6rem .7rem; font-weight:600; }
.consent-item input { width:auto; margin-right:.45rem; }
.apply-actions { display:flex; justify-content:flex-end; }
.contact-actions { display:flex; flex-wrap:wrap; gap:.6rem; margin:.5rem 0 .9rem; }
.btn.btn-ghost { background:#fff; color:var(--brand); border:1px solid #b9cce1; }
.contact-map { width:100%; min-height:520px; border:1px solid var(--border); border-radius:12px; overflow:hidden; margin:.35rem 0 1rem; background:#f7fafc; }
.contact-map .muted { padding:1rem; margin:0; }
.whatsapp-float-btn {
  position: fixed;
  inset: auto 14px 14px auto;
  z-index: 90;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .55rem .95rem;
  border-radius: 999px;
  background: #22c55e;
  color: #fff;
  font-weight: 700;
  border: 1px solid #16a34a;
  box-shadow: 0 10px 22px rgba(22, 163, 74, .35);
  max-width: calc(100vw - 28px);
  white-space: nowrap;
}
.whatsapp-float-btn:hover { background:#16a34a; color:#fff; }
@media (min-width: 700px) {
  .apply-grid { grid-template-columns:1fr 1fr; }
}
@media (min-width: 900px) {
  .main-nav { display:flex; }
  .grid-2 { grid-template-columns: 1fr 1fr; }
  .home-intro-grid { grid-template-columns: minmax(0, 1.7fr) minmax(260px, 0.9fr); align-items:start; }
  .home-intro-grid .content-block { margin-bottom:0; }
  .home-intro-grid .agenda-card { margin-bottom:0; }
}
@media (max-width: 899px) {
  .site-header-inner { width: min(800px, calc(100vw - 16px)); }
  .hero { width: min(800px, calc(100vw - 16px)); }
  .slide img { aspect-ratio: 800 / 1000; }
  .slide-caption { left:8%; bottom:7%; max-width:80%; }
  .about-layout { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .site-header-inner {
    gap:.55rem;
    padding:.65rem 0;
    width:calc(100vw - 12px);
  }
  .hamburger { padding:.35rem .5rem; font-size:1.15rem; }
  .logo img { height:56px; }
  .lang-switch { margin-left:auto; }
  .lang-switch a { font-size:.74rem; padding:.2rem .36rem; }
  .container { margin:.75rem auto 1.4rem; padding:0 .7rem; }
  .card, .content-block, main > article, .grid-2 > article { padding:.8rem; }
  .slide-caption { left:7%; right:7%; max-width:86%; }
  .slide-caption h2 { font-size:1.05rem; margin:0 0 .25rem; }
  .slide-caption p { font-size:.9rem; margin:0; }
  .apply-head { padding:1rem; }
  .apply-head h1 { font-size:1.15rem; }
  .apply-actions { justify-content:stretch; }
  .apply-actions .btn { width:100%; text-align:center; }
  .phone-row { grid-template-columns:1fr; }
  .footer-logo { height:58px; }
  .footer-info, .footer-contact { font-size:.9rem; }
  .footer-copy { font-size:.74rem; }
  .footer-social::before, .footer-social::after { width:44px; }
  .whatsapp-float-btn { inset:auto 10px 10px auto; min-height:44px; padding:.5rem .85rem; font-size:.92rem; max-width:calc(100vw - 20px); }
}
