/*
 * Los Altillos — Páginas Geográficas (compartido)
 * Archivo: assets/pilar-geo.css
 * Prefijo: geo-
 * Depende de: assets/main.css
 *
 * Este archivo es compartido por TODAS las páginas de país.
 * No contiene datos específicos de ningún país.
 * ============================================================ */

/* BREADCRUMB */
.geo-bc { background:var(--color-bg-secondary); border-bottom:1px solid var(--color-border); padding:.75rem 0; }
.geo-bc__i { max-width:var(--container-max); margin:0 auto; padding:0 2rem; display:flex; align-items:center; gap:.5rem; font-size:.8125rem; color:var(--color-text-subtle); }
.geo-bc a { color:var(--color-text-subtle); transition:color var(--transition-fast); }
.geo-bc a:hover { color:var(--color-accent); }
.geo-bc__sep { color:var(--color-steel); }
.geo-bc__cur { color:var(--color-text-muted); font-weight:500; }

/* HERO */
.geo-hero { position:relative; min-height:400px; display:flex; align-items:flex-end; background:linear-gradient(135deg,#010c1e 0%,#011e45 50%,#02234f 100%); overflow:hidden; }
.geo-hero::before { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px); background-size:48px 48px; }
.geo-hero::after { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent 0%,var(--color-accent) 35%,var(--color-accent-light) 65%,transparent 100%); }
.geo-hero__wash { position:absolute; inset:0; background:radial-gradient(ellipse 60% 70% at 85% 30%,rgba(2,55,120,.5) 0%,transparent 65%),radial-gradient(ellipse 40% 50% at 5% 85%,rgba(199,8,29,.12) 0%,transparent 55%); pointer-events:none; }
.geo-hero__flag { position:absolute; right:4rem; bottom:2rem; font-size:8rem; line-height:1; opacity:.12; pointer-events:none; user-select:none; }
.geo-hero__in { position:relative; z-index:1; max-width:var(--container-max); width:100%; margin:0 auto; padding:2.5rem 2rem; }
.geo-hero__ey { display:inline-flex; align-items:center; gap:.45rem; padding:.35rem .875rem; background:rgba(199,8,29,.18); border:1px solid rgba(199,8,29,.38); border-radius:100px; font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.82); margin-bottom:1rem; }
.geo-hero__ey svg { width:11px; height:11px; flex-shrink:0; }
.geo-hero__h1 { font-family:var(--font-display); font-size:clamp(1.875rem,4.5vw,3rem); line-height:1.05; letter-spacing:-.02em; color:#FFF; margin-bottom:.875rem; max-width:720px; }
.geo-hero__sub { font-size:clamp(.9375rem,1.8vw,1.0625rem); line-height:1.65; color:rgba(255,255,255,.55); max-width:560px; margin-bottom:1.75rem; }
.geo-hero__meta { display:flex; flex-wrap:wrap; gap:1.25rem; padding-top:1.125rem; border-top:1px solid rgba(255,255,255,.1); }
.geo-hero__mi { display:flex; align-items:center; gap:.4rem; font-size:.8125rem; color:rgba(255,255,255,.4); }
.geo-hero__mi svg { width:13px; height:13px; flex-shrink:0; }

/* TOC MOBILE */
.geo-tocm { display:none; background:var(--color-bg-secondary); border-bottom:1px solid var(--color-border); }
.geo-tocm__btn { width:100%; padding:.875rem 1.5rem; display:flex; align-items:center; justify-content:space-between; background:none; border:none; font-family:var(--font-body); font-size:.875rem; font-weight:600; color:var(--color-text); cursor:pointer; }
.geo-tocm__chev { width:16px; height:16px; stroke:var(--color-text-subtle); fill:none; transition:transform var(--transition-fast); flex-shrink:0; }
.geo-tocm__btn.is-open .geo-tocm__chev { transform:rotate(180deg); }
.geo-tocm__list { display:none; padding:0 1.5rem 1rem; list-style:none; }
.geo-tocm__list.is-open { display:block; }
.geo-tocm__list li { border-bottom:1px solid var(--color-border); }
.geo-tocm__list li:last-child { border-bottom:none; }
.geo-tocm__list a { display:block; padding:.625rem 0; font-size:.8125rem; color:var(--color-text-muted); }

/* LAYOUT */
.geo-lay { max-width:var(--container-max); margin:0 auto; padding:3.5rem 2rem 5rem; display:grid; grid-template-columns:1fr 240px; gap:4rem; align-items:start; }

/* SIDEBAR */
.geo-sb { position:sticky; top:calc(var(--header-height) + 1.5rem); }
.geo-toc { background:var(--color-bg-secondary); border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:1.375rem; }
.geo-toc__lbl { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--color-accent); margin-bottom:.875rem; display:flex; align-items:center; gap:.4rem; }
.geo-toc__lbl svg { width:11px; height:11px; flex-shrink:0; }
.geo-toc__ul { list-style:none; display:flex; flex-direction:column; gap:.1rem; }
.geo-toc__ul li a { display:block; padding:.4375rem .75rem; font-size:.8125rem; line-height:1.4; color:var(--color-text-subtle); border-radius:var(--radius-sm); border-left:2px solid transparent; transition:all var(--transition-fast); }
.geo-toc__ul li a:hover, .geo-toc__ul li a.is-active { color:var(--color-accent); background:rgba(199,8,29,.05); border-left-color:var(--color-accent); font-weight:600; }
.geo-toc__div { height:1px; background:var(--color-border); margin:.5rem 0; }

/* TIPOGRAFÍA */
.geo-sec { padding-bottom:3rem; margin-bottom:3rem; border-bottom:1px solid var(--color-border); }
.geo-sec:last-of-type { border-bottom:none; margin-bottom:0; }
.geo-h2 { font-family:var(--font-display); font-size:clamp(1.375rem,2.5vw,1.875rem); line-height:1.15; letter-spacing:-.02em; color:var(--color-text); margin-bottom:1.25rem; scroll-margin-top:calc(var(--header-height) + 2rem); }
.geo-h3 { font-size:1.0625rem; font-weight:600; line-height:1.4; color:var(--color-text); margin-top:2rem; margin-bottom:.75rem; }
.geo-p { font-size:1.0625rem; line-height:1.8; color:var(--color-text-muted); margin-bottom:1.25rem; }
.geo-p:last-child { margin-bottom:0; }
.geo-note { padding:1rem 1.25rem; background:rgba(2,55,120,.05); border-left:3px solid var(--color-accent); border-radius:0 var(--radius-md) var(--radius-md) 0; font-size:.9375rem; color:var(--color-text-muted); line-height:1.7; margin:1.5rem 0; }
.geo-note strong { color:var(--color-text); }
.geo-ilink { color:var(--color-secondary); font-weight:600; }

/* SNIPPET */
.geo-snip { background:rgba(2,55,120,.05); border:1px solid rgba(2,55,120,.18); border-left:4px solid var(--color-secondary); border-radius:0 var(--radius-md) var(--radius-md) 0; padding:1.125rem 1.375rem; margin-bottom:1.75rem; }
.geo-snip__lbl { font-size:.675rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--color-secondary); margin-bottom:.5rem; }
.geo-snip__txt { font-size:1.0625rem; line-height:1.75; color:var(--color-text-muted); }
.geo-snip__txt strong { color:var(--color-text); }

/* AVISO PROFESIONAL */
.geo-aviso { background:rgba(199,8,29,.04); border:1px solid rgba(199,8,29,.2); border-left:4px solid var(--color-accent); border-radius:0 var(--radius-md) var(--radius-md) 0; padding:1.125rem 1.375rem; margin-bottom:1.75rem; display:flex; gap:.875rem; align-items:flex-start; }
.geo-aviso__ic { width:34px; height:34px; border-radius:var(--radius-sm); background:rgba(199,8,29,.1); display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:.1rem; }
.geo-aviso__ic svg { width:16px; height:16px; fill:none; stroke:var(--color-accent); stroke-width:1.75; }
.geo-aviso__t { font-size:.875rem; font-weight:600; color:var(--color-accent); margin-bottom:.25rem; }
.geo-aviso__d { font-size:.9375rem; line-height:1.7; color:var(--color-text-muted); }

/* STATS GRID */
.geo-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.75rem; }
.geo-stat { background:var(--color-bg-secondary); border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:1.375rem 1.25rem; }
.geo-stat__val { font-family:var(--font-display); font-size:1.875rem; line-height:1; letter-spacing:-.02em; color:var(--color-text); margin-bottom:.375rem; }
.geo-stat__val--accent { color:var(--color-accent); }
.geo-stat__label { font-size:.8125rem; color:var(--color-text-muted); line-height:1.5; }
.geo-stat__note { font-size:.7rem; color:var(--color-text-subtle); margin-top:.25rem; font-style:italic; }

/* PRICE CARDS */
.geo-prices { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.75rem; }
.geo-price-card { background:var(--color-bg); border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:1.5rem; position:relative; overflow:hidden; transition:all var(--transition-base); }
.geo-price-card:hover { border-color:var(--color-border-dark); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.geo-price-card--featured { border-color:var(--color-accent); }
.geo-price-card--featured::before { content:'Más consultado'; position:absolute; top:.875rem; right:.875rem; font-size:.625rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--color-accent); background:rgba(199,8,29,.07); padding:.25rem .625rem; border-radius:100px; border:1px solid rgba(199,8,29,.2); }
.geo-price-card__type { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--color-text-subtle); margin-bottom:.75rem; }
.geo-price-card__name { font-family:var(--font-display); font-size:1.0625rem; color:var(--color-text); margin-bottom:.375rem; line-height:1.2; }
.geo-price-card__range { font-size:.875rem; color:var(--color-text-muted); margin-bottom:1rem; line-height:1.5; }
.geo-price-card__includes { display:flex; flex-direction:column; gap:.375rem; margin-bottom:.875rem; }
.geo-price-card__item { display:flex; align-items:center; gap:.5rem; font-size:.8125rem; color:var(--color-text-muted); }
.geo-price-card__item svg { width:12px; height:12px; stroke:var(--color-success); fill:none; stroke-width:2.5; flex-shrink:0; }
.geo-price-card__item--no svg { stroke:var(--color-text-subtle); }
.geo-price-card__note { font-size:.75rem; color:var(--color-text-subtle); line-height:1.5; padding-top:.875rem; border-top:1px solid var(--color-border); font-style:italic; }

/* FACTORS */
.geo-factors { display:flex; flex-direction:column; gap:.625rem; margin-top:1.75rem; }
.geo-factor { display:flex; align-items:flex-start; gap:.875rem; padding:1rem 1.25rem; background:var(--color-bg-secondary); border:1px solid var(--color-border); border-radius:var(--radius-md); transition:border-color var(--transition-fast); }
.geo-factor:hover { border-color:var(--color-border-dark); }
.geo-factor__ic { width:30px; height:30px; border-radius:var(--radius-sm); background:rgba(2,55,120,.08); display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:.1rem; }
.geo-factor__ic svg { width:14px; height:14px; fill:none; stroke:var(--color-secondary); stroke-width:1.75; }
.geo-factor__t { font-size:.9375rem; font-weight:600; color:var(--color-text); margin-bottom:.2rem; line-height:1.3; }
.geo-factor__d { font-size:.8125rem; line-height:1.6; color:var(--color-text-muted); }

/* COMPARISON TABLE */
.geo-comp-wrap { margin-top:1.75rem; border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--color-border); }
.geo-comp { width:100%; border-collapse:collapse; font-size:.9rem; }
.geo-comp thead { background:var(--color-bg-dark); }
.geo-comp thead th { padding:.875rem 1.125rem; text-align:left; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.55); }
.geo-comp tbody tr { border-bottom:1px solid var(--color-border); transition:background var(--transition-fast); }
.geo-comp tbody tr:last-child { border-bottom:none; }
.geo-comp tbody tr:hover { background:var(--color-bg-secondary); }
.geo-comp td { padding:.875rem 1.125rem; vertical-align:middle; color:var(--color-text-muted); }
.geo-comp td:first-child { font-weight:600; color:var(--color-text); }
.geo-comp td:nth-child(2) { color:var(--color-accent); font-weight:600; }

/* FAQ */
.geo-faq { margin-top:1.5rem; display:flex; flex-direction:column; gap:.5rem; }
.geo-faq__item { border:1px solid var(--color-border); border-radius:var(--radius-md); overflow:hidden; transition:border-color var(--transition-fast); }
.geo-faq__item.is-open { border-color:var(--color-accent); }
.geo-faq__btn { width:100%; padding:1.0625rem 1.25rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; background:none; border:none; text-align:left; cursor:pointer; font-family:var(--font-body); transition:background var(--transition-fast); }
.geo-faq__btn:hover, .geo-faq__item.is-open .geo-faq__btn { background:var(--color-bg-secondary); }
.geo-faq__n { font-size:.7rem; font-weight:700; color:var(--color-accent); font-family:monospace; flex-shrink:0; min-width:1.5rem; }
.geo-faq__q { flex:1; font-size:.9375rem; font-weight:600; color:var(--color-text); line-height:1.4; }
.geo-faq__ic { width:22px; height:22px; border-radius:50%; background:var(--color-bg-tertiary); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all var(--transition-fast); }
.geo-faq__ic svg { width:10px; height:10px; stroke:var(--color-text-subtle); fill:none; stroke-width:2; transition:transform var(--transition-fast); }
.geo-faq__item.is-open .geo-faq__ic { background:var(--color-accent); }
.geo-faq__item.is-open .geo-faq__ic svg { stroke:white; transform:rotate(45deg); }
.geo-faq__body { display:none; padding:0 1.25rem 1.25rem; }
.geo-faq__item.is-open .geo-faq__body { display:block; }
.geo-faq__a { font-size:.9375rem; line-height:1.8; color:var(--color-text-muted); border-top:1px solid var(--color-border); padding-top:1rem; }

/* OTROS PAÍSES */
.geo-others { display:grid; grid-template-columns:repeat(3,1fr); gap:.875rem; margin-top:1.75rem; }
.geo-other-card { background:var(--color-bg-secondary); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:1.125rem; display:flex; align-items:center; gap:.75rem; transition:all var(--transition-fast); }
.geo-other-card:hover { border-color:var(--color-accent); background:rgba(199,8,29,.03); transform:translateX(3px); }
.geo-other-card__flag { font-size:1.5rem; line-height:1; flex-shrink:0; }
.geo-other-card__name { font-size:.9375rem; font-weight:600; color:var(--color-text); margin-bottom:.1rem; }
.geo-other-card__desc { font-size:.75rem; color:var(--color-text-subtle); }
.geo-other-card__arrow { margin-left:auto; flex-shrink:0; color:var(--color-text-subtle); }
.geo-other-card__arrow svg { width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2.5; }

/* CTA */
.geo-cta { background:var(--color-bg-dark); border-radius:var(--radius-xl); padding:2.5rem; margin-top:3.5rem; position:relative; overflow:hidden; }
.geo-cta::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 50% 80% at 100% 50%,rgba(11,74,161,.4) 0%,transparent 70%),radial-gradient(ellipse 35% 60% at 0% 80%,rgba(199,8,29,.14) 0%,transparent 60%); pointer-events:none; }
.geo-cta__in { position:relative; z-index:1; }
.geo-cta__ey { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--color-accent-light); margin-bottom:.625rem; }
.geo-cta__h { font-family:var(--font-display); font-size:clamp(1.375rem,2.5vw,1.875rem); color:white; line-height:1.2; margin-bottom:.75rem; }
.geo-cta__p { font-size:1rem; color:rgba(255,255,255,.55); line-height:1.7; max-width:520px; margin-bottom:1.75rem; }
.geo-cta__ls { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:.625rem; }
.geo-cta__l { display:flex; align-items:center; gap:.75rem; padding:.875rem 1.125rem; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius-md); transition:all var(--transition-base); }
.geo-cta__l:hover { background:rgba(255,255,255,.11); border-color:rgba(255,255,255,.22); transform:translateX(4px); }
.geo-cta__li { width:34px; height:34px; background:rgba(199,8,29,.22); border-radius:var(--radius-sm); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.geo-cta__li svg { width:15px; height:15px; stroke:rgba(255,255,255,.75); fill:none; stroke-width:1.5; }
.geo-cta__ll { font-size:.65rem; text-transform:uppercase; letter-spacing:.08em; color:rgba(255,255,255,.32); display:block; margin-bottom:.15rem; }
.geo-cta__lt { font-size:.8125rem; font-weight:600; color:rgba(255,255,255,.85); line-height:1.3; }
.geo-cta__ar { color:rgba(255,255,255,.25); flex-shrink:0; display:flex; }
.geo-cta__ar svg { width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2; }

/* RESPONSIVE */
@media(max-width:960px) {
  .geo-lay { grid-template-columns:1fr; gap:0; padding-top:2rem; }
  .geo-sb { display:none; }
  .geo-tocm { display:block; }
  .geo-prices { grid-template-columns:1fr; }
  .geo-stats { grid-template-columns:1fr 1fr; }
  .geo-others { grid-template-columns:1fr 1fr; }
}
@media(max-width:640px) {
  .geo-hero { min-height:320px; }
  .geo-hero__flag { display:none; }
  .geo-hero__in, .geo-bc__i, .geo-lay { padding-left:1.5rem; padding-right:1.5rem; }
  .geo-stats { grid-template-columns:1fr; }
  .geo-comp td:last-child { display:none; }
  .geo-cta { padding:1.75rem 1.5rem; }
  .geo-cta__ls { grid-template-columns:1fr; }
  .geo-others { grid-template-columns:1fr; }
}
