.geography-page { background: #f5f9ff; }
.geography-hero { min-height: auto; }
.geography-hero__grid { padding-bottom: 64px; }
.geography-section { padding-top: 76px; padding-bottom: 76px; }
.geography-section__title { max-width: 760px; }
.geography-layout { display: grid; grid-template-columns: minmax(0,1.36fr) minmax(285px,.64fr); gap: 26px; align-items: stretch; }
.latam-map { position: relative; min-height: 530px; overflow: hidden; border: 1px solid rgba(18,97,255,.19); border-radius: 28px; background: radial-gradient(circle at 45% 48%,rgba(0,215,255,.22),transparent 34%),radial-gradient(circle at 14% 15%,rgba(183,243,74,.18),transparent 22%),linear-gradient(145deg,#061a42,#093b77 58%,#087d88); box-shadow: 0 24px 54px rgba(7,47,103,.18); }
.latam-map::before,.latam-map::after { content:""; position:absolute; width:380px; height:380px; border:1px solid rgba(255,255,255,.08); border-radius:50%; pointer-events:none; }.latam-map::before { top:-225px; right:-105px; }.latam-map::after { bottom:-260px; left:-180px; }
.latam-map__art { position:absolute; inset:5% 4%; width:92%; height:90%; }.latam-map__art--real { display:block; object-fit:contain; object-position:center; filter:drop-shadow(0 18px 16px rgba(0,27,78,.28)); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }.country-pin { position:absolute; left:var(--x); top:var(--y); z-index:2; display:grid; width:34px; height:34px; place-items:center; border:2px solid rgba(255,255,255,.92); border-radius:50% 50% 50% 7px; color:#071a3b; background:#fff; box-shadow:0 8px 18px rgba(0,0,0,.27); transform:translate(-50%,-50%) rotate(-45deg); transition:transform .2s ease,box-shadow .2s ease,background .2s ease; }.country-flag { display:block; width:18px; height:12px; border-radius:2px; box-shadow:0 0 0 1px rgba(7,26,59,.12); transform:rotate(45deg); }.flag-pe { background:linear-gradient(90deg,#d91023 0 33%,#fff 33% 66%,#d91023 66%); }.flag-ec { background:linear-gradient(#f7d117 0 50%,#1455a4 50% 75%,#d71920 75%); }.flag-cl { background:linear-gradient(#fff 0 50%,#d52b1e 50%); }.flag-bo { background:linear-gradient(#d4232e 0 33%,#f4db28 33% 66%,#13723d 66%); }.flag-co { background:linear-gradient(#f6d51d 0 50%,#174ca0 50% 75%,#d4212d 75%); }.flag-mx { background:linear-gradient(90deg,#08773d 0 33%,#fff 33% 66%,#cb2832 66%); }.flag-ar { background:linear-gradient(#78b9e8 0 33%,#fff 33% 66%,#78b9e8 66%); }.flag-pa { background:conic-gradient(from 0deg,#d4202f 0 25%,#fff 0 50%,#1559a8 0 75%,#fff 0); }.flag-cr { background:linear-gradient(#164c9e 0 20%,#fff 20% 32%,#c9152b 32% 68%,#fff 68% 80%,#164c9e 80%); }.flag-do { background:conic-gradient(from 0deg,#c92235 0 25%,#fff 0 50%,#123e87 0 75%,#fff 0); }.flag-uy { background:repeating-linear-gradient(#fff 0 2px,#79bce6 2px 4px); }.flag-py { background:linear-gradient(#d72638 0 33%,#fff 33% 66%,#174a9d 66%); }.flag-gt,.flag-sv,.flag-hn,.flag-ni { background:linear-gradient(90deg,#4fa7df 0 33%,#fff 33% 66%,#4fa7df 66%); }.country-pin::after { position:absolute; top:-32px; left:50%; padding:5px 8px; border-radius:8px; color:#071a3b; background:#fff; box-shadow:0 6px 14px rgba(0,0,0,.18); content:attr(data-country); font-size:.72rem; font-weight:900; line-height:1; opacity:0; pointer-events:none; transform:translate(-50%,5px) rotate(45deg); transition:opacity .2s ease,transform .2s ease; white-space:nowrap; }.country-pin:hover,.country-pin:focus-visible { z-index:4; background:var(--lime); box-shadow:0 12px 28px rgba(183,243,74,.35); outline:0; transform:translate(-50%,-50%) rotate(-45deg) scale(1.16); }.country-pin:hover::after,.country-pin:focus-visible::after { opacity:1; transform:translate(-50%,0) rotate(45deg); }
.peru-cities { display:flex; flex-direction:column; padding:34px; border:1px solid rgba(18,97,255,.16); border-radius:28px; background:#fff; box-shadow:0 20px 48px rgba(7,42,94,.08); }.peru-cities h3 { margin:12px 0; color:#071a3b; font-size:clamp(1.55rem,2.2vw,2.1rem); line-height:1.13; letter-spacing:-.045em; }.peru-cities p { margin:0 0 23px; color:var(--muted); line-height:1.65; }
.city-link-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:auto; }.city-link-grid a { display:flex; min-height:44px; align-items:center; padding:8px 11px; border:1px solid #d9e4f1; border-radius:11px; color:#0b3265; background:#f8fbff; font-size:.84rem; font-weight:800; text-decoration:none; transition:border-color .2s ease,color .2s ease,transform .2s ease; }.city-link-grid a::after { content:"→"; margin-left:auto; color:var(--blue); }.city-link-grid a:hover,.city-link-grid a:focus-visible { border-color:var(--blue); color:var(--blue); outline:0; transform:translateY(-2px); }
.country-link-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:22px; }.country-link-grid a { display:flex; min-height:48px; align-items:center; gap:9px; padding:10px 13px; border:1px solid rgba(18,97,255,.14); border-radius:13px; color:#183b68; background:rgba(255,255,255,.78); font-size:.87rem; font-weight:800; text-decoration:none; transition:border-color .2s ease,box-shadow .2s ease,color .2s ease,transform .2s ease; }.country-link-grid a span { font-size:1.15rem; }.country-link-grid a:hover,.country-link-grid a:focus-visible { border-color:var(--blue); color:var(--blue); box-shadow:0 10px 22px rgba(18,97,255,.11); outline:0; transform:translateY(-2px); }
.geography-info { display:flex; align-items:center; justify-content:space-between; gap:32px; margin-bottom:76px; padding:38px; border-radius:26px; color:#fff; background:linear-gradient(135deg,#061a42,#0b4d86); }.geography-info h2 { margin:10px 0; color:#fff; font-size:clamp(1.8rem,3vw,2.75rem); letter-spacing:-.04em; }.geography-info p { max-width:680px; margin:0; color:#d4e2f4; line-height:1.65; }.geography-info .btn-primary { flex:0 0 auto; white-space:nowrap; }
@media(max-width:980px){.geography-layout{grid-template-columns:1fr}.latam-map{min-height:500px}.peru-cities{padding:28px}.city-link-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.country-link-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.geography-info{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.geography-section{padding-top:56px;padding-bottom:56px}.latam-map{min-height:390px;border-radius:22px}.latam-map__art{inset:4% 2%;width:96%;height:92%}.country-pin{width:28px;height:28px;border-width:1px}.country-flag{width:15px;height:10px}.country-pin::after{display:none}.peru-cities{padding:23px;border-radius:22px}.city-link-grid,.country-link-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.country-link-grid a{min-height:44px;padding:8px 10px;font-size:.8rem}.geography-info{margin-bottom:52px;padding:27px 23px}}
