@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Montserrat:wght@600;700;800&display=swap');

:root {
  --brand-primary: #092d67;
  --brand-secondary: #00a6e8;
  --brand-accent: #c52f3b;
  --ink: #11243f;
  --muted: #60718a;
  --soft: #f2f7fb;
  --border: #dfe8f1;
  --shadow: 0 18px 50px rgba(9, 45, 103, .12);
  --radius: 24px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: #fff;
  font-family: 'Manrope', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  line-height: 1.65;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
a:hover { color: var(--brand-secondary); }
img { max-width: 100%; }
section { position: relative; }
.section-pad { padding: 92px 0; }
.section-pad-sm { padding: 64px 0; }
.text-muted-custom { color: var(--muted); }

.topbar {
  background: var(--brand-primary);
  color: rgba(255,255,255,.85);
  font-size: .82rem;
  padding: 8px 0;
}
.topbar a { color: rgba(255,255,255,.9); }
.topbar a:hover { color: #fff; }

.main-navbar {
  min-height: 86px;
  box-shadow: 0 1px 0 rgba(9,45,103,.08);
  transition: box-shadow .25s ease, min-height .25s ease;
  z-index: 1025;
}
.main-navbar.is-scrolled { box-shadow: 0 14px 35px rgba(9,45,103,.13); min-height: 74px; }
.navbar-brand img { width: 335px; max-height: 72px; object-fit: contain; object-position: left center; }
.navbar-nav .nav-link {
  padding: .7rem .88rem !important;
  color: #253a57;
  font-weight: 700;
  font-size: .92rem;
  border-radius: 10px;
}
.navbar-nav .nav-link:hover, .navbar-nav .nav-link.active { color: var(--brand-primary); background: rgba(0,166,232,.08); }
.btn-brand {
  color: #fff;
  background: linear-gradient(135deg, var(--brand-secondary), #0876c8);
  border: 0;
  border-radius: 12px;
  padding: .78rem 1.25rem;
  font-weight: 800;
  box-shadow: 0 12px 24px rgba(0,166,232,.23);
  transition: transform .2s ease, box-shadow .2s ease;
}
.btn-brand:hover { color:#fff; transform: translateY(-2px); box-shadow: 0 16px 30px rgba(0,166,232,.32); }
.btn-outline-light-custom { border:1px solid rgba(255,255,255,.55); color:#fff; border-radius:12px; font-weight:800; padding:.78rem 1.25rem; }
.btn-outline-light-custom:hover { background:#fff; color:var(--brand-primary); }
.btn-outline-brand { border:1px solid rgba(9,45,103,.25); color:var(--brand-primary); border-radius:12px; font-weight:800; padding:.72rem 1.2rem; }
.btn-outline-brand:hover { background:var(--brand-primary); color:#fff; }

.hero {
  min-height: 680px;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 16% 10%, rgba(0,166,232,.34), transparent 28%),
    radial-gradient(circle at 90% 20%, rgba(197,47,59,.18), transparent 22%),
    linear-gradient(118deg, #071f47 0%, #08386f 48%, #045d94 100%);
}
.hero::before { content:''; position:absolute; inset:0; background-image:url('../img/pattern-dominicana.svg'); opacity:.8; }
.hero::after { content:''; position:absolute; left:-10%; right:-10%; bottom:-82px; height:160px; background:#fff; border-radius:50% 50% 0 0/100% 100% 0 0; }
.hero .container { position:relative; z-index:2; }
.hero-kicker { display:inline-flex; align-items:center; gap:.55rem; padding:.48rem .8rem; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.1); backdrop-filter:blur(8px); border-radius:999px; text-transform:uppercase; letter-spacing:.08em; font-size:.76rem; font-weight:800; }
.hero h1 { font-family:'Montserrat', sans-serif; font-weight:800; font-size:clamp(2.35rem,5vw,4.9rem); line-height:1.04; letter-spacing:-.045em; margin:1.15rem 0 1.25rem; max-width:780px; }
.hero h1 span { color:#43c6f4; }
.hero p { font-size:1.13rem; max-width:690px; color:rgba(255,255,255,.82); }
.hero-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }
.hero-trust { display:flex; flex-wrap:wrap; gap:1.2rem; margin-top:2rem; color:rgba(255,255,255,.8); font-size:.9rem; }
.hero-trust span { display:flex; align-items:center; gap:.45rem; }
.hero-trust i { color:#60d1f7; }
.hero-visual { position:relative; padding-top:28px; }
.hero-visual img { width:min(720px, 100%); filter:drop-shadow(0 25px 45px rgba(0,0,0,.25)); animation:float 5.5s ease-in-out infinite; }
.hero-badge { position:absolute; left:4%; bottom:16%; background:rgba(255,255,255,.95); color:var(--ink); padding:.9rem 1rem; border-radius:16px; box-shadow:var(--shadow); display:flex; gap:.7rem; align-items:center; max-width:220px; }
.hero-badge i { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:rgba(0,166,232,.12); color:var(--brand-secondary); font-size:1.25rem; }
.hero-badge strong { display:block; color:var(--brand-primary); }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }

.eyebrow { color:var(--brand-secondary); text-transform:uppercase; font-size:.79rem; font-weight:800; letter-spacing:.11em; display:flex; align-items:center; gap:.55rem; margin-bottom:.8rem; }
.eyebrow::before { content:''; width:34px; height:3px; border-radius:9px; background:var(--brand-accent); }
.section-title { font-family:'Montserrat',sans-serif; font-weight:800; font-size:clamp(2rem,3.5vw,3.35rem); line-height:1.12; letter-spacing:-.035em; color:var(--brand-primary); }
.section-lead { color:var(--muted); font-size:1.05rem; max-width:760px; }

.intro-card { background:#fff; border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); padding:2.2rem; }
.intro-mark { width:64px; height:64px; display:grid; place-items:center; border-radius:18px; background:linear-gradient(135deg,rgba(0,166,232,.15),rgba(9,45,103,.08)); color:var(--brand-secondary); font-size:1.8rem; }

.stats-strip { margin-top:-34px; position:relative; z-index:5; }
.stats-card { background:#fff; border:1px solid var(--border); box-shadow:0 15px 45px rgba(9,45,103,.12); border-radius:24px; padding:1.25rem; }
.stat-item { padding:1rem; position:relative; }
.stat-item:not(:last-child)::after { content:''; position:absolute; right:0; top:20%; height:60%; width:1px; background:var(--border); }
.stat-value { font-family:'Montserrat'; font-size:1.65rem; font-weight:800; color:var(--brand-primary); }
.stat-label { color:var(--muted); font-size:.85rem; }

.service-card { height:100%; border:1px solid var(--border); border-radius:22px; padding:1.7rem; background:#fff; transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease; overflow:hidden; position:relative; }
.service-card::after { content:''; position:absolute; width:110px; height:110px; right:-60px; bottom:-60px; background:rgba(0,166,232,.08); border-radius:50%; transition:transform .25s ease; }
.service-card:hover { transform:translateY(-7px); box-shadow:var(--shadow); border-color:rgba(0,166,232,.32); }
.service-card:hover::after { transform:scale(1.35); }
.service-icon { width:58px; height:58px; border-radius:18px; display:grid; place-items:center; background:linear-gradient(135deg,var(--brand-primary),#0c5ea5); color:#fff; font-size:1.45rem; box-shadow:0 10px 24px rgba(9,45,103,.18); }
.service-card h3 { color:var(--brand-primary); font-size:1.12rem; font-weight:800; margin:1.15rem 0 .55rem; }
.service-card p { color:var(--muted); font-size:.94rem; margin:0; }
.service-card .more { display:inline-flex; gap:.35rem; align-items:center; margin-top:1.1rem; color:var(--brand-secondary); font-weight:800; font-size:.88rem; }

.benefits-section { background:linear-gradient(180deg,#f6fafd 0%,#eef5fa 100%); overflow:hidden; }
.benefit-item { display:flex; gap:1rem; padding:1.2rem; border-radius:18px; background:rgba(255,255,255,.75); border:1px solid rgba(9,45,103,.07); height:100%; }
.benefit-item i { flex:0 0 48px; height:48px; border-radius:14px; display:grid; place-items:center; color:var(--brand-secondary); background:rgba(0,166,232,.12); font-size:1.25rem; }
.benefit-item h3 { font-size:1rem; color:var(--brand-primary); font-weight:800; margin:0 0 .35rem; }
.benefit-item p { color:var(--muted); margin:0; font-size:.9rem; }

.dominican-panel { border-radius:28px; padding:2.4rem; color:#fff; background:linear-gradient(125deg,var(--brand-primary),#0b5d9f); position:relative; overflow:hidden; }
.dominican-panel::before { content:''; position:absolute; inset:0; background-image:url('../img/pattern-dominicana.svg'); }
.dominican-panel::after { content:''; position:absolute; right:-50px; top:-80px; width:270px; height:270px; border-radius:50%; border:32px solid rgba(255,255,255,.06); }
.dominican-panel > * { position:relative; z-index:2; }
.dominican-ribbon { height:9px; display:grid; grid-template-columns:1fr .42fr 1fr; margin-top:1.4rem; border-radius:99px; overflow:hidden; }
.dominican-ribbon span:nth-child(1) { background:#174a91; }
.dominican-ribbon span:nth-child(2) { background:#fff; }
.dominican-ribbon span:nth-child(3) { background:#ce2b37; }

.news-card { border-radius:20px; border:1px solid var(--border); padding:1.5rem; height:100%; background:#fff; transition:.22s ease; }
.news-card:hover { transform:translateY(-5px); box-shadow:var(--shadow); }
.news-meta { display:flex; gap:.65rem; align-items:center; font-size:.78rem; color:var(--muted); margin-bottom:.8rem; }
.news-category { color:var(--brand-accent); font-weight:800; }
.news-card h3 { font-size:1.1rem; color:var(--brand-primary); font-weight:800; }
.news-card p { color:var(--muted); font-size:.92rem; }

.testimonial-card { background:#fff; border:1px solid var(--border); border-radius:22px; padding:1.7rem; height:100%; }
.quote-icon { font-size:2rem; color:rgba(0,166,232,.25); }
.testimonial-card blockquote { color:#3b4c65; font-size:1rem; }
.testimonial-card strong { color:var(--brand-primary); }
.testimonial-card small { color:var(--muted); }

.cta-section { padding:30px 0 92px; }
.cta-box { background:linear-gradient(120deg,#082f68,#0875b5); border-radius:30px; color:#fff; padding:3rem; position:relative; overflow:hidden; box-shadow:0 22px 55px rgba(9,45,103,.23); }
.cta-box::before { content:''; position:absolute; width:260px; height:260px; border:48px solid rgba(255,255,255,.06); border-radius:50%; right:-85px; top:-100px; }
.cta-box h2 { font-family:'Montserrat'; font-weight:800; }
.cta-box p { color:rgba(255,255,255,.78); }
.cta-box > * { position:relative; z-index:2; }

.page-hero { padding:92px 0 80px; color:#fff; overflow:hidden; background:radial-gradient(circle at 80% 10%,rgba(0,166,232,.35),transparent 30%),linear-gradient(120deg,#071f47,#07588f); }
.page-hero::before { content:''; position:absolute; inset:0; background-image:url('../img/pattern-dominicana.svg'); }
.page-hero .container { position:relative; z-index:2; }
.page-hero h1 { font-family:'Montserrat'; font-weight:800; font-size:clamp(2.4rem,5vw,4.2rem); letter-spacing:-.04em; }
.page-hero p { color:rgba(255,255,255,.78); font-size:1.05rem; max-width:720px; }
.breadcrumb-custom { display:flex; flex-wrap:wrap; gap:.5rem; color:rgba(255,255,255,.68); font-size:.86rem; }
.breadcrumb-custom a { color:#fff; }

.about-visual { min-height:450px; border-radius:28px; background:linear-gradient(145deg,#0a4d8d,#083064); position:relative; overflow:hidden; box-shadow:var(--shadow); }
.about-visual::before { content:''; position:absolute; inset:0; background:url('../img/hero-glp.svg') center 70%/110% auto no-repeat; }
.about-visual-badge { position:absolute; left:24px; bottom:24px; right:24px; padding:1.2rem; border-radius:18px; background:rgba(255,255,255,.93); backdrop-filter:blur(8px); color:var(--ink); }
.value-chip { display:inline-flex; align-items:center; gap:.45rem; border:1px solid var(--border); padding:.6rem .85rem; border-radius:999px; font-weight:700; color:var(--brand-primary); background:#fff; }
.value-chip i { color:var(--brand-secondary); }
.mission-card { border:1px solid var(--border); border-radius:22px; padding:2rem; height:100%; background:#fff; }
.mission-card i { font-size:2rem; color:var(--brand-secondary); }
.mission-card h2 { color:var(--brand-primary); font-size:1.45rem; font-weight:800; margin:.8rem 0; }

.registration-strip { display:flex; flex-wrap:wrap; gap:.7rem; }
.registration-strip span { display:inline-flex; align-items:center; gap:.5rem; padding:.68rem .85rem; border:1px solid var(--border); background:#f8fbfd; color:var(--brand-primary); border-radius:13px; font-size:.84rem; font-weight:800; }
.registration-strip i { color:var(--brand-secondary); }
.board-card { display:flex; gap:1.35rem; align-items:flex-start; border:1px solid var(--border); border-radius:24px; padding:2rem; background:#fff; box-shadow:0 14px 36px rgba(9,45,103,.07); }
.board-card .service-icon { flex:0 0 58px; }
.board-card h2 { color:var(--brand-primary); font-size:1.5rem; font-weight:800; margin:.2rem 0 .75rem; }
.board-card p { color:var(--muted); margin:0; }
.values-panel { border:1px solid var(--border); border-radius:24px; padding:2rem; background:linear-gradient(145deg,#fff,#f4f9fc); }
.objectives-section { background:linear-gradient(180deg,#f7fbfe 0%,#eef6fb 100%); }
.objectives-count { display:inline-flex; align-items:center; justify-content:center; padding:.8rem 1.1rem; border-radius:999px; background:var(--brand-primary); color:#fff; font-weight:800; box-shadow:0 12px 28px rgba(9,45,103,.18); }
.objectives-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.objective-card { display:flex; gap:1rem; align-items:flex-start; padding:1.35rem; border:1px solid var(--border); border-radius:19px; background:#fff; box-shadow:0 10px 28px rgba(9,45,103,.055); transition:transform .2s ease, box-shadow .2s ease; }
.objective-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.objective-letter { flex:0 0 42px; width:42px; height:42px; display:grid; place-items:center; border-radius:13px; color:#fff; background:linear-gradient(135deg,var(--brand-primary),#0876b6); font-family:'Montserrat',sans-serif; font-weight:800; }
.objective-card p { margin:0; color:#41536d; font-size:.94rem; }

.service-detail { border:1px solid var(--border); border-radius:24px; padding:2rem; height:100%; background:#fff; }
.service-detail .service-icon { margin-bottom:1.25rem; }
.service-detail h2 { color:var(--brand-primary); font-weight:800; font-size:1.35rem; }
.service-detail p { color:var(--muted); }

.tariff-toolbar { background:#fff; border:1px solid var(--border); border-radius:18px; padding:1rem; box-shadow:0 10px 30px rgba(9,45,103,.07); }
.tariff-table { border:1px solid var(--border); border-radius:22px; overflow:hidden; box-shadow:0 14px 40px rgba(9,45,103,.08); }
.tariff-table table { margin:0; }
.tariff-table thead th { background:var(--brand-primary); color:#fff; padding:1.1rem; border:0; font-size:.85rem; text-transform:uppercase; letter-spacing:.04em; }
.tariff-table tbody td { padding:1.15rem; vertical-align:middle; border-color:var(--border); }
.tariff-table tbody tr:hover { background:#f7fbfe; }
.price-badge { display:inline-flex; padding:.5rem .75rem; border-radius:999px; background:rgba(0,166,232,.12); color:#066da4; font-weight:800; white-space:nowrap; }
.featured-row { border-left:4px solid var(--brand-accent); }
.notice-box { border-radius:18px; padding:1rem 1.2rem; background:#fff7ea; color:#6f4a0d; border:1px solid #f4deb6; }

.contact-card { border:1px solid var(--border); border-radius:24px; padding:2rem; background:#fff; height:100%; }
.contact-method { display:flex; gap:1rem; align-items:flex-start; padding:1rem 0; border-bottom:1px solid var(--border); }
.contact-method:last-child { border-bottom:0; }
.contact-method i { flex:0 0 48px; height:48px; border-radius:14px; display:grid; place-items:center; background:rgba(0,166,232,.11); color:var(--brand-secondary); font-size:1.25rem; }
.contact-method strong { display:block; color:var(--brand-primary); }
.contact-form-card { border-radius:28px; padding:2.2rem; background:#fff; box-shadow:var(--shadow); border:1px solid var(--border); }
.form-control, .form-select { border-color:#dbe5ee; border-radius:13px; padding:.8rem .95rem; }
.form-control:focus, .form-select:focus { border-color:var(--brand-secondary); box-shadow:0 0 0 .25rem rgba(0,166,232,.12); }
.form-label { font-weight:700; color:#32445e; font-size:.9rem; }
.map-placeholder { border-radius:24px; min-height:340px; display:grid; place-items:center; text-align:center; padding:2rem; background:linear-gradient(135deg,#eaf4fb,#f7fbfe); border:1px dashed #afcadd; color:var(--muted); }
.map-embed iframe { width:100%; min-height:340px; border:0; border-radius:24px; }

.site-footer { background:#061b3b; color:rgba(255,255,255,.74); position:relative; }
.footer-wave { height:10px; background:linear-gradient(90deg,#174a91 0 42%,#fff 42% 58%,#ce2b37 58%); }
.footer-logo {
    width: 400px;
    max-height: 115px;
    object-fit: contain;
    object-position: left center;
    border-radius: 14px;
    filter: saturate(0) invert(1) brightness(1.4) opacity(0.5);
    padding: .35rem .7rem;
}
.footer-copy { max-width:560px; }
.site-footer h3 { color:#fff; font-size:1rem; font-weight:800; margin-bottom:1rem; }
.footer-links, .contact-list { list-style:none; padding:0; margin:0; }
.footer-links li { margin:.55rem 0; }
.footer-links a { color:rgba(255,255,255,.7); }
.footer-links a:hover { color:#fff; }
.contact-list li { display:flex; gap:.7rem; margin:.8rem 0; }
.contact-list i { color:#4ac4f0; }
.contact-list a { color:rgba(255,255,255,.74); }
.social-links { display:flex; gap:.6rem; }
.social-links a { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; background:rgba(255,255,255,.08); color:#fff; }
.social-links a:hover { background:var(--brand-secondary); transform:translateY(-2px); }
.footer-bottom { padding:1.1rem 0; border-top:1px solid rgba(255,255,255,.08); font-size:.83rem; }

.whatsapp-float { position:fixed; right:22px; bottom:22px; z-index:1030; display:flex; align-items:center; gap:.55rem; background:#20ba5a; color:#fff; padding:.75rem 1rem; border-radius:999px; box-shadow:0 15px 35px rgba(17,141,66,.34); font-weight:800; }
.whatsapp-float:hover { color:#fff; transform:translateY(-3px); }
.whatsapp-float i { font-size:1.3rem; }
.back-to-top { position:fixed; left:20px; bottom:22px; width:44px; height:44px; border:0; border-radius:14px; background:var(--brand-primary); color:#fff; opacity:0; visibility:hidden; transform:translateY(10px); transition:.2s ease; z-index:1020; box-shadow:0 12px 25px rgba(9,45,103,.25); }
.back-to-top.show { opacity:1; visibility:visible; transform:translateY(0); }

.empty-state { padding:3rem; text-align:center; border:1px dashed #b9cada; border-radius:22px; color:var(--muted); background:#f8fbfd; }

@media (max-width: 991.98px) {
  .main-navbar { min-height:74px; }
  .navbar-brand img { width:250px; max-height:58px; }
  .navbar-collapse { background:#fff; padding:1rem; border-radius:18px; box-shadow:0 18px 45px rgba(9,45,103,.14); margin-top:.7rem; }
  .hero { min-height:auto; padding:80px 0 105px; }
  .hero-visual { margin-top:2rem; max-width:650px; }
  .stats-strip { margin-top:-24px; }
  .stat-item:nth-child(2)::after { display:none; }
  .section-pad { padding:72px 0; }
  .objectives-grid { grid-template-columns:1fr; }
}

@media (max-width: 767.98px) {
  .navbar-brand img { width:220px; }
  .hero h1 { font-size:2.55rem; }
  .hero p { font-size:1rem; }
  .hero-badge { left:0; bottom:8%; transform:scale(.88); transform-origin:left bottom; }
  .stat-item::after { display:none !important; }
  .stat-item { border-bottom:1px solid var(--border); }
  .stat-item:nth-last-child(-n+2) { border-bottom:0; }
  .cta-box { padding:2rem; }
  .footer-logo { width:290px; }
  .whatsapp-float span { display:none; }
  .whatsapp-float { width:56px; height:56px; padding:0; justify-content:center; }
  .page-hero { padding:72px 0 64px; }
  .board-card { flex-direction:column; }
}

@media (max-width: 575.98px) {
  .navbar-brand img { width:190px; }
  .hero { padding-top:62px; }
  .hero h1 { font-size:2.25rem; }
  .hero-actions .btn { width:100%; }
  .section-pad { padding:58px 0; }
  .section-title { font-size:2rem; }
  .contact-form-card, .contact-card, .intro-card { padding:1.35rem; }
  .tariff-table { overflow-x:auto; }
  .tariff-table table { min-width:760px; }
}

/* Galería pública */
.gallery-page-hero,.blog-page-hero{position:relative;overflow:hidden}.gallery-page-hero::after,.blog-page-hero::after{content:"";position:absolute;right:-8%;bottom:-70%;width:520px;height:520px;border-radius:50%;border:80px solid rgba(255,255,255,.05);pointer-events:none}.gallery-filters{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:center}.gallery-filters .btn{border:1px solid var(--border);background:#fff;color:var(--brand-primary);border-radius:999px;font-weight:800;padding:.65rem 1rem}.gallery-filters .btn.active,.gallery-filters .btn:hover{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff}.gallery-grid{columns:3 290px;column-gap:1rem}.gallery-card{display:inline-block;width:100%;margin:0 0 1rem;break-inside:avoid;border:1px solid var(--border);border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 12px 32px rgba(9,45,103,.07)}.gallery-open{position:relative;display:block;width:100%;padding:0;border:0;background:#edf4f8;overflow:hidden}.gallery-open img{width:100%;height:auto;min-height:220px;max-height:500px;object-fit:cover;transition:transform .35s ease}.gallery-overlay{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(180deg,transparent 40%,rgba(4,25,53,.7));color:#fff;opacity:0;transition:.25s ease;font-size:1.65rem}.gallery-card:hover .gallery-open img{transform:scale(1.035)}.gallery-card:hover .gallery-overlay{opacity:1}.gallery-card-body{padding:1rem 1.1rem 1.15rem}.gallery-card-body h2{font-size:1.05rem;color:var(--brand-primary);font-weight:800;margin:.45rem 0}.gallery-card-body p{color:var(--muted);font-size:.88rem;margin:0}.gallery-category{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-secondary)}.gallery-modal .modal-content{background:#031326;color:#fff}.gallery-modal .modal-header{position:absolute;z-index:4;top:0;left:0;right:0;background:linear-gradient(180deg,rgba(0,0,0,.8),transparent);color:#fff;padding:1.25rem 1.5rem}.gallery-modal-slide{height:100%;min-height:100vh;display:grid;place-items:center;position:relative;padding:72px 80px 40px}.gallery-modal-slide img{max-width:100%;max-height:calc(100vh - 110px);object-fit:contain;box-shadow:0 20px 70px rgba(0,0,0,.35)}.gallery-modal-caption{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);max-width:min(760px,80%);text-align:center;background:rgba(3,19,38,.72);backdrop-filter:blur(12px);padding:.8rem 1.25rem;border-radius:14px}.gallery-modal-caption h2{font-size:1.15rem;margin:0 0 .25rem}.gallery-modal-caption p{margin:0;color:rgba(255,255,255,.75);font-size:.88rem}.empty-content-card{max-width:760px;margin:auto;text-align:center;border:1px dashed #adc7d9;border-radius:26px;padding:4rem 1.5rem;background:linear-gradient(145deg,#fff,#f3f9fd);color:var(--muted)}.empty-content-card>i{font-size:3rem;color:var(--brand-secondary)}.empty-content-card h1,.empty-content-card h2{color:var(--brand-primary);font-weight:800;margin:1rem 0 .5rem}

/* Blog */
.blog-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 240px auto auto;gap:.75rem;padding:1rem;border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:0 12px 35px rgba(9,45,103,.07);margin-bottom:2rem}.blog-toolbar .input-group-text{border-color:#dbe5ee;background:#f6fafc;border-radius:13px 0 0 13px;color:var(--brand-primary)}.blog-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 14px 36px rgba(9,45,103,.065);transition:transform .25s ease,box-shadow .25s ease}.blog-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.blog-card-image{display:block;height:235px;background:#edf4f8;overflow:hidden}.blog-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.blog-card:hover .blog-card-image img{transform:scale(1.04)}.blog-image-placeholder{display:grid;place-items:center;width:100%;height:100%;font-size:3rem;color:var(--brand-secondary);background:linear-gradient(145deg,#e6f4fc,#f8fbfe)}.blog-card-body{display:flex;flex-direction:column;flex:1;padding:1.3rem}.blog-meta{display:flex;justify-content:space-between;gap:.5rem;color:var(--muted);font-size:.75rem;margin-bottom:.7rem}.blog-meta span{color:var(--brand-secondary);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.blog-card h2{font-size:1.22rem;line-height:1.35;font-weight:800;margin:0 0 .75rem}.blog-card h2 a{color:var(--brand-primary)}.blog-card p{color:var(--muted);font-size:.9rem}.blog-read-more{margin-top:auto;display:inline-flex;align-items:center;gap:.45rem;color:var(--brand-primary);font-weight:800}.blog-read-more:hover{color:var(--brand-secondary)}.pagination .page-link{color:var(--brand-primary);border-color:var(--border);font-weight:700}.pagination .page-item.active .page-link{background:var(--brand-primary);border-color:var(--brand-primary)}
.article-hero{padding:85px 0 70px;background:radial-gradient(circle at 85% 25%,rgba(0,166,232,.22),transparent 30%),linear-gradient(135deg,#061b3b,var(--brand-primary));color:#fff}.article-hero .breadcrumb-custom{margin-bottom:2rem}.article-category{display:inline-flex;padding:.5rem .75rem;border-radius:999px;background:rgba(255,255,255,.12);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.article-hero h1{max-width:1000px;font-family:'Montserrat',sans-serif;font-size:clamp(2.2rem,5vw,4.4rem);line-height:1.05;font-weight:800;margin:1rem 0}.article-meta{display:flex;flex-wrap:wrap;gap:1.2rem;color:rgba(255,255,255,.72)}.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:2.5rem;align-items:start}.article-featured{border-radius:26px;overflow:hidden;margin:0 0 2rem;box-shadow:var(--shadow)}.article-featured img{width:100%;max-height:600px;object-fit:cover}.article-lead{font-size:1.25rem;line-height:1.75;color:#334a68;font-weight:600;border-left:4px solid var(--brand-secondary);padding-left:1.2rem}.article-content{font-size:1.02rem;line-height:1.95;color:#34465f;white-space:normal}.article-sidebar{position:sticky;top:110px;display:grid;gap:1rem}.share-card,.article-cta{border-radius:21px;padding:1.35rem;border:1px solid var(--border);background:#fff}.share-card h2,.article-cta h2{font-size:1.12rem;color:var(--brand-primary);font-weight:800}.share-card p,.article-cta p{color:var(--muted);font-size:.86rem}.share-buttons{display:grid;gap:.55rem}.share-buttons a,.share-buttons button{display:flex;align-items:center;gap:.65rem;width:100%;border:1px solid var(--border);border-radius:11px;padding:.72rem .8rem;background:#fff;color:var(--brand-primary);font-weight:800;font-size:.85rem;text-align:left}.share-buttons a:hover,.share-buttons button:hover{border-color:var(--brand-secondary);color:var(--brand-secondary)}.share-buttons .share-whatsapp{background:#1fb85a;color:#fff;border-color:#1fb85a}.share-buttons .share-whatsapp:hover{color:#fff;background:#169c49}.article-cta{color:#fff;background:linear-gradient(145deg,var(--brand-primary),#0877b8);border:0}.article-cta i{font-size:2rem}.article-cta h2,.article-cta p{color:#fff}.article-cta p{opacity:.75}.article-gallery h2{font-size:1.4rem;color:var(--brand-primary);font-weight:800}.article-gallery-image{width:100%;height:170px;border:0;padding:0;border-radius:16px;overflow:hidden;background:#edf4f8}.article-gallery-image img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.article-gallery-image:hover img{transform:scale(1.04)}

/* Equipo de trabajo */
.team-section{background:linear-gradient(180deg,#f7fbfe,#eef6fb)}.team-heading{max-width:820px;margin-bottom:2.6rem}.president-card{max-width:920px;margin:0 auto 2.5rem;display:grid;grid-template-columns:310px 1fr;border-radius:30px;overflow:hidden;background:#fff;border:1px solid var(--border);box-shadow:0 24px 60px rgba(9,45,103,.14)}.president-photo{min-height:360px;background:linear-gradient(145deg,var(--brand-primary),#0b6eaa)}.president-photo img{width:100%;height:100%;min-height:360px;object-fit:cover}.president-photo>span{display:grid;place-items:center;height:100%;min-height:360px;color:#fff;font-size:6rem}.president-content{padding:2.4rem;display:flex;flex-direction:column;justify-content:center}.president-label{align-self:flex-start;display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .75rem;border-radius:999px;background:rgba(197,47,59,.1);color:var(--brand-accent);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.president-content h3{font-family:'Montserrat',sans-serif;font-size:2rem;color:var(--brand-primary);font-weight:800;margin:1rem 0 .2rem}.team-position{color:var(--brand-secondary);font-weight:800}.president-content p,.team-card p{color:var(--muted);margin-top:1rem}.team-contact-links{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.team-contact-links a{display:inline-flex;align-items:center;gap:.45rem;color:var(--brand-primary);font-size:.84rem;font-weight:700}.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}.team-card{border:1px solid var(--border);border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 12px 30px rgba(9,45,103,.065);transition:.25s ease}.team-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.team-photo{height:270px;background:linear-gradient(145deg,#dff1fb,#f8fbfd)}.team-photo img{width:100%;height:100%;object-fit:cover}.team-photo>span{display:grid;place-items:center;height:100%;font-size:4rem;color:var(--brand-secondary)}.team-card-body{padding:1.2rem}.team-card h3{font-size:1.15rem;color:var(--brand-primary);font-weight:800;margin:0 0 .2rem}.team-card p{font-size:.86rem}.team-socials{display:flex;gap:.45rem;margin-top:1rem}.team-socials a{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#eef6fb;color:var(--brand-primary)}.team-socials a:hover{background:var(--brand-primary);color:#fff}

@media(max-width:1199.98px){.article-layout{grid-template-columns:minmax(0,1fr) 290px}.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-toolbar{grid-template-columns:1fr 220px auto}.blog-toolbar .btn-outline-secondary{grid-column:1/-1;justify-self:start}}
@media(max-width:991.98px){.article-layout{grid-template-columns:1fr}.article-sidebar{position:static;grid-template-columns:1fr 1fr}.president-card{grid-template-columns:260px 1fr}.president-content{padding:1.7rem}.gallery-grid{columns:2 260px}}
@media(max-width:767.98px){.blog-toolbar{grid-template-columns:1fr}.article-sidebar{grid-template-columns:1fr}.president-card{grid-template-columns:1fr;max-width:520px}.president-photo,.president-photo img,.president-photo>span{min-height:350px}.team-grid{grid-template-columns:1fr}.gallery-modal-slide{padding:65px 18px 25px}.gallery-modal-caption{max-width:90%;bottom:14px}.article-hero{padding:65px 0 55px}.article-hero h1{font-size:2.35rem}}
@media(max-width:575.98px){.gallery-grid{columns:1}.blog-card-image{height:220px}.president-content h3{font-size:1.55rem}.team-contact-links{flex-direction:column}.article-gallery-image{height:120px}}
.home-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:190px;gap:.85rem}.home-gallery-grid a{position:relative;border-radius:18px;overflow:hidden;background:#e8f2f8}.home-gallery-grid a:first-child{grid-row:span 2}.home-gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.home-gallery-grid span{position:absolute;left:0;right:0;bottom:0;padding:2.2rem .9rem .75rem;background:linear-gradient(transparent,rgba(2,20,43,.82));color:#fff;font-size:.83rem;font-weight:700}.home-gallery-grid a:hover img{transform:scale(1.04)}@media(max-width:767.98px){.home-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:150px}.home-gallery-grid a:first-child{grid-row:span 1}}@media(max-width:480px){.home-gallery-grid{grid-template-columns:1fr;grid-auto-rows:220px}}


/* Mejoras 2026: fotografías reales, galería 4/2 y equipo 4/2 */
.hero-visual.has-real-photo{padding-top:0}.hero-visual .hero-real-photo{width:100%;height:500px;object-fit:cover;object-position:center;border:1px solid rgba(255,255,255,.18);border-radius:30px;animation:none;filter:none;box-shadow:0 28px 70px rgba(0,0,0,.3)}
.home-real-image-card{position:relative;min-height:480px;border-radius:30px;overflow:hidden;background:#dfeaf1;box-shadow:var(--shadow)}.home-real-image-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.home-real-image-card::after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(2,23,51,.9))}.home-real-image-caption{position:absolute;z-index:2;left:1.4rem;right:1.4rem;bottom:1.4rem;display:flex;align-items:center;gap:.9rem;color:#fff}.home-real-image-caption>i{flex:0 0 auto;width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:rgba(255,255,255,.16);backdrop-filter:blur(12px);font-size:1.35rem}.home-real-image-caption strong,.home-real-image-caption span{display:block}.home-real-image-caption strong{font-size:1.05rem}.home-real-image-caption span{color:rgba(255,255,255,.75);font-size:.86rem;margin-top:.2rem}
.dominican-panel.has-photo::before{background-image:linear-gradient(rgba(4,28,61,.12),rgba(4,28,61,.12)),url('../img/pattern-dominicana.svg')}.cta-box.has-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,27,61,.18),transparent);pointer-events:none}.cta-box.has-photo>*{position:relative;z-index:2}
.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;columns:auto}.gallery-card{display:block;margin:0;break-inside:auto}.gallery-open img{display:block;width:100%;height:auto;aspect-ratio:4/3;min-height:0;max-height:none;object-fit:cover}.gallery-card-body{min-height:112px}
.team-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.team-photo{height:245px}.team-card-body{padding:1.05rem}.team-card h3{font-size:1.02rem}
.home-gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:190px}.home-gallery-grid a:first-child{grid-row:span 1}
@media(max-width:1199.98px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767.98px){.hero-visual .hero-real-photo{height:390px}.home-real-image-card{min-height:390px}.gallery-grid,.team-grid,.home-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.gallery-card-body{padding:.8rem;min-height:96px}.gallery-card-body h2{font-size:.9rem}.gallery-card-body p{font-size:.76rem}.gallery-category{font-size:.64rem}.team-photo{height:190px}.team-card-body{padding:.85rem}.team-card h3{font-size:.94rem}.team-position{font-size:.78rem}.team-card p{font-size:.75rem;margin-top:.65rem}.team-socials{margin-top:.7rem}.team-socials a{width:32px;height:32px}.home-gallery-grid{grid-auto-rows:160px}.home-gallery-grid span{font-size:.72rem;padding:1.8rem .65rem .55rem}}
@media(max-width:420px){.team-photo{height:165px}.team-card-body{padding:.7rem}.team-card p{display:none}.gallery-card-body p{display:none}.gallery-card-body{min-height:78px}.home-gallery-grid{grid-auto-rows:140px}}
