/* ALJC México — styles */
:root{
    --ink:#0A0D0F;
    --panel:#10161A;
    --panel-2:#161E23;
    --bone:#F6F1E7;
    --muted:#A8B0AE;
    --line:rgba(246,241,231,.12);
    --red:#D62828;
    --orange:#F77F00;
    --gold:#FCBF49;
    --green:#2E8B57;
    --flame:linear-gradient(135deg,#FCBF49 0%,#F77F00 45%,#D62828 100%);
    --maxw:1180px;
    --ease:cubic-bezier(.22,.61,.36,1);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    background:var(--ink);
    color:var(--bone);
    font-family:'Archivo',system-ui,sans-serif;
    font-size:17px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
  h1,h2,h3{font-family:'Fraunces',Georgia,serif;font-weight:900;line-height:1.02;letter-spacing:-.01em}
  .flame-text{background:var(--flame);-webkit-background-clip:text;background-clip:text;color:transparent}
  .eyebrow{
    font-family:'Archivo',sans-serif;font-weight:700;font-size:.72rem;
    letter-spacing:.32em;text-transform:uppercase;color:var(--gold);
    display:inline-block;
  }
  a{color:inherit;text-decoration:none}

  /* ---------- NAV ---------- */
  header.nav{
    position:sticky;top:0;z-index:50;
    backdrop-filter:blur(14px);
    background:rgba(10,13,15,.72);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{display:flex;align-items:center;justify-content:space-between;height:74px}
  .brand{display:flex;align-items:center;gap:12px;font-family:'Fraunces',serif;font-weight:900;font-size:1.15rem;letter-spacing:.02em}
  .brand .mark{width:30px;height:38px;flex:none}
  .nav-links{display:flex;align-items:center;gap:22px}
  .nav-links a{font-size:.85rem;font-weight:600;color:var(--muted);transition:color .25s}
  .nav-links a:hover{color:var(--bone)}
  .lang{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;font-size:.74rem;font-weight:700}
  .lang button{background:none;border:0;color:var(--muted);padding:7px 13px;cursor:pointer;font-family:inherit;letter-spacing:.05em;transition:.25s}
  .lang button.active{background:var(--flame);color:#1a0c00}
  .burger{display:none;background:none;border:0;color:var(--bone);cursor:pointer;flex-direction:column;gap:5px;padding:8px}
  .burger span{width:24px;height:2px;background:var(--bone);display:block}

  /* ---------- HERO ---------- */
  .hero{position:relative;overflow:hidden;padding:110px 0 90px;text-align:center}
  .hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none;
    background:linear-gradient(180deg,rgba(10,13,15,.90) 0%,rgba(10,13,15,.72) 46%,rgba(10,13,15,.82) 74%,rgba(10,13,15,.97) 100%),url('assets/hero.jpg') center 32%/cover no-repeat}
  .hero-bg::before{
    content:"";position:absolute;left:50%;top:8%;transform:translateX(-50%);
    width:760px;height:760px;max-width:120vw;
    background:radial-gradient(circle,rgba(247,127,0,.30),rgba(214,40,40,.12) 38%,transparent 66%);
    filter:blur(8px);
  }
  .ember-field{position:absolute;inset:0}
  .ember{position:absolute;bottom:-12px;width:4px;height:4px;border-radius:50%;background:var(--orange);opacity:0;filter:blur(.5px)}
  .hero-inner{position:relative;z-index:2;max-width:960px;margin:0 auto}
  .scripture{font-family:'Fraunces',serif;font-style:italic;font-weight:500;color:var(--gold);font-size:1.02rem;margin-bottom:26px;letter-spacing:.01em}
  .hero h1{font-size:clamp(3.1rem,11vw,8.4rem);text-transform:uppercase;letter-spacing:-.02em}
  .hero h1 .big32{display:block;font-size:clamp(5rem,20vw,15rem);line-height:.86;margin-top:.02em}
  .hero-sub{max-width:620px;margin:30px auto 0;color:var(--muted);font-size:1.12rem}
  .cta-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:40px}
  .btn{
    font-family:'Archivo',sans-serif;font-weight:700;font-size:.86rem;letter-spacing:.06em;text-transform:uppercase;
    padding:15px 30px;border-radius:999px;cursor:pointer;border:1px solid transparent;transition:.3s var(--ease);
  }
  .btn-primary{background:var(--flame);color:#1a0c00}
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 40px rgba(247,127,0,.35)}
  .btn-ghost{border-color:var(--line);color:var(--bone)}
  .btn-ghost:hover{border-color:var(--gold);color:var(--gold)}

  /* ---------- STAT BAND ---------- */
  .stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel)}
  .stats-grid{display:grid;grid-template-columns:repeat(3,1fr)}
  .stat{padding:54px 24px;text-align:center;border-right:1px solid var(--line)}
  .stat:last-child{border-right:0}
  .stat .num{font-family:'Fraunces',serif;font-weight:900;font-size:clamp(3rem,7vw,5rem);line-height:1}
  .stat .lbl{margin-top:10px;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-weight:600}

  /* ---------- SECTION SHELL ---------- */
  section.block{padding:104px 0}
  .section-head{max-width:680px;margin-bottom:54px}
  .section-head.center{margin-left:auto;margin-right:auto;text-align:center}
  .section-head h2{font-size:clamp(2.2rem,5vw,3.6rem);margin-top:16px}
  .section-head p{margin-top:18px;color:var(--muted);font-size:1.08rem}

  /* ---------- ABOUT ---------- */
  .about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}
  .about-copy p{color:#D9D3C6;font-size:1.14rem;line-height:1.8}
  .about-copy p + p{margin-top:20px}
  .about-art{position:relative;aspect-ratio:1/1;border-radius:18px;overflow:hidden;border:1px solid var(--line);
    background:radial-gradient(circle at 50% 35%,rgba(247,127,0,.22),transparent 60%),var(--panel-2);
    display:flex;align-items:center;justify-content:center}
  .about-art .glyph{width:46%;opacity:.92}

  /* ---------- PILLARS ---------- */
  .pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .pillar{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:38px 32px;transition:.35s var(--ease)}
  .pillar:hover{transform:translateY(-6px);border-color:rgba(252,191,73,.4)}
  .pillar .ico{width:46px;height:46px;margin-bottom:22px}
  .pillar h3{font-size:1.5rem;margin-bottom:12px}
  .pillar p{color:var(--muted);font-size:1rem}
  .pillar .motto{font-family:'Fraunces',serif;font-weight:900;font-size:1.7rem;line-height:1.15;margin-bottom:10px}

  /* ---------- STATES GRID ---------- */
  .states-meta{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px;margin-bottom:34px}
  .states-count{font-family:'Fraunces',serif;font-weight:900;font-size:1.2rem}
  .states-count b{font-size:2.4rem;display:inline-block;vertical-align:-4px}
  .states-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:12px}
  .state{
    position:relative;aspect-ratio:1/1;border-radius:12px;border:1px solid var(--line);
    background:var(--panel);display:flex;align-items:flex-end;padding:10px;cursor:pointer;
    overflow:hidden;transition:.4s var(--ease);
  }
  .state .code{font-family:'Fraunces',serif;font-weight:900;font-size:1.05rem;color:var(--muted);transition:.3s;position:relative;z-index:2;line-height:1}
  .state .name{position:absolute;left:10px;right:10px;top:10px;font-size:.6rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:600;line-height:1.15;z-index:2;transition:.3s}
  .state::after{content:"";position:absolute;inset:0;background:var(--flame);opacity:0;transition:.4s var(--ease)}
  .state:hover,.state.lit{border-color:transparent;transform:translateY(-3px)}
  .state:hover::after,.state.lit::after{opacity:1}
  .state:hover .code,.state:hover .name,.state.lit .code,.state.lit .name{color:#1a0c00}
  .state:hover{box-shadow:0 12px 34px rgba(247,127,0,.34)}

  /* ---------- SOULS ---------- */
  .souls{position:relative;text-align:center;background:
    radial-gradient(circle at 50% 0%,rgba(214,40,40,.18),transparent 55%),var(--panel)}
  .souls .huge{font-family:'Fraunces',serif;font-weight:900;font-size:clamp(4rem,16vw,12rem);line-height:.9;letter-spacing:-.03em}
  .souls .unit{font-size:clamp(2rem,6vw,4rem);vertical-align:super}
  .souls p{max-width:620px;margin:24px auto 0;color:var(--muted);font-size:1.15rem}

  /* ---------- LEADERSHIP ---------- */
  .leaders{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .leader{background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:.35s var(--ease)}
  .leader:hover{transform:translateY(-6px);border-color:rgba(252,191,73,.4)}
  .leader .photo{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;
    background:radial-gradient(circle at 50% 40%,rgba(247,127,0,.20),transparent 65%),var(--panel-2);position:relative}
  .leader .monogram{font-family:'Fraunces',serif;font-weight:900;font-size:2.6rem;background:var(--flame);
    -webkit-background-clip:text;background-clip:text;color:transparent}
  .leader .body{padding:26px 26px 30px}
  .leader .role{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:700}
  .leader h3{font-size:1.4rem;margin:10px 0 4px}
  .leader .couple{color:var(--muted);font-size:.95rem;font-style:italic;font-family:'Fraunces',serif}
  .leader .loc{margin-top:14px;font-size:.85rem;color:var(--muted);display:flex;align-items:center;gap:7px}
  .editable-note{margin-top:36px;text-align:center;font-size:.86rem;color:var(--muted);border:1px dashed var(--line);
    border-radius:12px;padding:16px;background:var(--panel)}

  /* ---------- CTA / CONTACT ---------- */
  .join{text-align:center;background:var(--panel)}
  .join h2{font-size:clamp(2.4rem,6vw,4.4rem)}
  .join p{max-width:560px;margin:20px auto 0;color:var(--muted);font-size:1.12rem}
  .contact-row{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin-top:40px}
  .contact-card{background:var(--ink);border:1px solid var(--line);border-radius:14px;padding:22px 30px;min-width:200px}
  .contact-card .k{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:700}
  .contact-card .v{margin-top:8px;font-size:1.05rem;font-weight:600}

  /* ---------- FOOTER ---------- */
  footer{border-top:1px solid var(--line);padding:46px 0}
  .foot-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px}
  .foot-inner .brand{font-size:1rem}
  .foot-inner small{color:var(--muted);font-size:.82rem}
  .foot-social a{display:inline-flex;align-items:center;gap:8px;color:var(--bone);text-decoration:none;
    font-size:.86rem;transition:color .25s var(--ease)}
  .foot-social a:hover{color:var(--gold)}

  /* ---------- REVEAL ---------- */
  .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
  .reveal.in{opacity:1;transform:none}

  /* ---------- RESPONSIVE ---------- */
  @media(max-width:900px){
    .nav-links{position:fixed;inset:74px 0 auto 0;background:var(--ink);flex-direction:column;
      padding:24px 28px;gap:18px;border-bottom:1px solid var(--line);transform:translateY(-130%);transition:.4s var(--ease)}
    .nav-links.open{transform:none}
    .nav-links a{font-size:1rem}
    .burger{display:flex}
    .about-grid{grid-template-columns:1fr;gap:40px}
    .pillars,.leaders{grid-template-columns:1fr}
    .states-grid{grid-template-columns:repeat(4,1fr)}
    .stats-grid{grid-template-columns:1fr}
    .stat{border-right:0;border-bottom:1px solid var(--line)}
    .stat:last-child{border-bottom:0}
  }
  @media(max-width:480px){
    .states-grid{grid-template-columns:repeat(3,1fr);gap:8px}
    .state .name{font-size:.52rem}
    section.block{padding:74px 0}
  }
  @media(prefers-reduced-motion:reduce){
    *{animation:none!important;transition:none!important}
    .reveal{opacity:1;transform:none}
  }
  /* ---------- LOGO + OBISPO ---------- */
  .mark-logo{height:50px;width:auto;display:block}
  .hero-logo{width:min(330px,74vw);height:auto;margin:0 auto 28px;display:block;animation:logoIn 1s var(--ease) both}
  @keyframes logoIn{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
  .about-logo{width:74%;max-width:360px;height:auto}
  .obispo{display:grid;grid-template-columns:.82fr 1.18fr;background:var(--panel);border:1px solid var(--line);
    border-radius:20px;overflow:hidden;margin-bottom:30px}
  .obispo-photo{position:relative;min-height:400px}
  .obispo-photo img{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block}
  .obispo-body{padding:46px 50px;display:flex;flex-direction:column;justify-content:center}
  .obispo-body .role{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:700}
  .obispo-body h3{font-size:clamp(1.9rem,3.4vw,2.9rem);margin:12px 0 6px}
  .obispo-body .couple{color:var(--muted);font-style:italic;font-family:'Fraunces',serif;font-size:1.08rem}
  .obispo-body p{margin-top:18px;color:#D9D3C6;font-size:1.06rem;line-height:1.7}
  @media(max-width:760px){
    .obispo{grid-template-columns:1fr}
    .obispo-photo{min-height:360px}
    .obispo-body{padding:32px 28px}
    .mark-logo{height:42px}
  }
  /* ---------- REGIONS ---------- */
  .region{margin-bottom:38px}
  .region-head{display:flex;align-items:baseline;gap:14px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
  .region-name{font-family:'Fraunces',serif;font-weight:900;font-size:1.55rem;letter-spacing:-.01em}
  .region-tag{color:var(--muted);font-size:.85rem;font-style:italic;font-family:'Fraunces',serif}
  .region-count{margin-left:auto;font-family:'Fraunces',serif;font-weight:900;color:var(--gold);font-size:1.25rem}
  .region .states-grid{margin:0}
  .sub-head{font-family:'Fraunces',serif;font-weight:900;font-size:1.55rem;margin:16px 0 26px;text-align:center}
  .council-sub{color:var(--muted);text-align:center;max-width:620px;margin:-14px auto 28px}

  /* ---------- ARTICULOS DE FE (accordion) ---------- */
  .faith-list{max-width:830px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
  .faith-item{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}
  .faith-item summary{cursor:pointer;list-style:none;padding:17px 22px;font-family:'Fraunces',serif;font-weight:900;
    font-size:1.06rem;color:var(--bone);display:flex;justify-content:space-between;align-items:center;gap:14px;transition:color .2s}
  .faith-item summary::-webkit-details-marker{display:none}
  .faith-item summary::after{content:'+';color:var(--gold);font-size:1.5rem;line-height:1;font-family:'Archivo',sans-serif}
  .faith-item[open] summary::after{content:'\2013'}
  .faith-item summary:hover{color:var(--gold)}
  .faith-item[open] summary{color:var(--gold)}
  .faith-body{padding:2px 22px 20px;color:var(--muted);font-size:.96rem;line-height:1.75}
  .fe-download{text-align:center;margin-top:32px}

  /* ---------- MOMENTOS (gallery) ---------- */
  .gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
  .gallery-grid img{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:14px;border:1px solid var(--line);
    display:block;transition:transform .3s var(--ease),border-color .3s var(--ease)}
  .gallery-grid img:hover{transform:scale(1.02);border-color:rgba(252,191,73,.45)}
  .gallery-link{text-align:center;margin-top:26px}
  @media(max-width:600px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:10px}}

  /* ---------- OBISPO LOC ---------- */
  .obispo-loc{margin-top:14px;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.92rem}

  /* ---------- VIDEO ---------- */
  .video-frame{position:relative;aspect-ratio:16/9;border-radius:18px;overflow:hidden;border:1px solid var(--line);
    background:radial-gradient(circle at 50% 42%,rgba(247,127,0,.16),transparent 65%),var(--panel-2)}
  .video-embed{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:2}
  .video-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:16px;text-align:center;padding:24px;z-index:1}
  .video-ph p{color:var(--muted);max-width:360px;font-size:.96rem}

  /* ---------- GIVE ---------- */
  .give-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:6px}
  .give-card{background:var(--ink);border:1px solid var(--line);border-radius:18px;padding:34px 32px}
  .give-card h3{font-size:1.45rem;margin-bottom:26px}
  .bar-row{margin-bottom:20px}
  .bar-top{display:flex;justify-content:space-between;font-size:.92rem;margin-bottom:8px;color:#D9D3C6}
  .bar-top b{color:var(--gold)}
  .bar{height:9px;border-radius:99px;background:rgba(246,241,231,.08);overflow:hidden}
  .bar i{display:block;height:100%;background:var(--flame);border-radius:99px}
  .num-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
  .num-grid>div{display:flex;flex-direction:column;gap:4px}
  .num-grid b{font-family:'Fraunces',serif;font-weight:900;font-size:2.5rem;line-height:1}
  .num-grid span{font-size:.82rem;color:var(--muted);letter-spacing:.03em}

  /* ---------- NEWS ---------- */
  .news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .news-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:30px 28px;transition:.35s var(--ease)}
  .news-card:hover{transform:translateY(-6px);border-color:rgba(252,191,73,.4)}
  .news-meta{display:flex;align-items:center;gap:12px;margin-bottom:16px}
  .news-tag{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#1a0c00;
    background:var(--flame);padding:5px 12px;border-radius:99px}
  .news-date{font-size:.8rem;color:var(--muted)}
  .news-card h3{font-size:1.32rem;margin-bottom:10px}
  .news-card p{color:var(--muted);font-size:.97rem}

  /* ---------- INSTAGRAM EMBEDS ---------- */
  .ig-reel{display:flex;justify-content:center}
  .ig-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:24px;align-items:flex-start}
  .ig-grid .instagram-media{flex:0 0 336px;width:336px!important;max-width:336px!important;min-width:0!important;margin:0!important}
  .ig-follow{text-align:center;margin-top:30px}

  /* ---------- GIVING METHODS / CONTACT LINKS ---------- */
  .give-methods{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:26px}
  .give-way{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--panel);
    border:1px solid var(--line);border-radius:14px;padding:14px 22px;min-width:160px;text-decoration:none;transition:border-color .25s var(--ease)}
  a.give-way:hover{border-color:var(--gold)}
  .give-way b{font-family:'Fraunces',serif;color:var(--gold);font-size:1.02rem}
  .give-way span{color:var(--bone);font-size:.92rem}
  .contact-card .v a{color:var(--gold);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s}
  .contact-card .v a:hover{border-color:var(--gold)}

  /* ---------- NEWSLETTER ---------- */
  .newsletter-wrap{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
  .newsletter-wrap h2{font-size:clamp(1.9rem,3.6vw,2.8rem);margin:14px 0 12px}
  .newsletter-wrap p{color:var(--muted)}
  .newsletter-form{display:flex;gap:12px;flex-wrap:wrap}
  .newsletter-form input{flex:1;min-width:200px;background:var(--ink);border:1px solid var(--line);
    border-radius:999px;padding:15px 22px;color:var(--bone);font-family:inherit;font-size:1rem}
  .newsletter-form input:focus{outline:none;border-color:var(--gold)}
  .form-status{margin-top:14px;font-size:.92rem;min-height:1.2em}
  .form-status.ok{color:var(--green)}
  .form-status.err{color:var(--red)}

  @media(max-width:760px){
    .give-grid{grid-template-columns:1fr}
    .news-grid{grid-template-columns:1fr}
    .newsletter-wrap{grid-template-columns:1fr;gap:24px}
    .region-head{flex-wrap:wrap}
  }
  /* ---------- INTERACTIVE MAP ---------- */
  .map-meta{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:26px}
  .map-legend{display:flex;gap:18px}
  .lg-item{display:flex;align-items:center;gap:7px;font-size:.85rem;color:var(--muted)}
  .lg-dot{width:13px;height:13px;border-radius:50%;display:inline-block}
  .lg-dot.has{background:var(--bone);border:2px solid var(--gold);box-shadow:0 0 7px rgba(252,191,73,.85)}
  .lg-dot.open{background:var(--panel);border:1px solid var(--muted)}

  .map-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:30px;align-items:start}
  .mexmap{display:grid;grid-template-columns:repeat(9,1fr);grid-auto-rows:1fr;gap:8px;aspect-ratio:9/6}
  .mtile{position:relative;border:1px solid var(--line);border-radius:10px;background:var(--panel);
    color:var(--muted);font-family:'Archivo',sans-serif;font-weight:700;font-size:.68rem;letter-spacing:.02em;
    cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:.25s var(--ease)}
  .mtile:hover{transform:translateY(-2px);border-color:var(--gold);color:var(--bone)}
  .mtile .mcode{position:relative;z-index:2}
  .mtile.has-pastor{border-color:transparent;color:#1a0c00;background:var(--flame);box-shadow:0 8px 22px rgba(247,127,0,.28)}
  .mtile.has-pastor:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(247,127,0,.4)}
  .mtile .mdot{position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:#1a0c00;opacity:.55}
  .mtile.sel{outline:3px solid var(--gold);outline-offset:2px;color:var(--bone)}
  .mtile.has-pastor.sel{color:#1a0c00}
  .mtile:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

  .map-detail{position:sticky;top:96px;background:var(--panel);border:1px solid var(--line);
    border-radius:18px;padding:30px 28px;min-height:248px}
  .md-empty{color:var(--muted);font-size:1rem}
  .md-state{font-family:'Fraunces',serif;font-weight:900;font-size:1.7rem;margin-bottom:22px;line-height:1.05}
  .md-pastor{display:flex;gap:16px;align-items:center}
  .md-av{width:76px;height:76px;border-radius:50%;overflow:hidden;flex:none;display:flex;align-items:center;justify-content:center;
    background:radial-gradient(circle at 50% 40%,rgba(247,127,0,.25),transparent 70%),var(--panel-2)}
  .md-av img{width:100%;height:100%;object-fit:cover}
  .md-mono{font-family:'Fraunces',serif;font-weight:900;font-size:1.8rem;background:var(--flame);
    -webkit-background-clip:text;background-clip:text;color:transparent}
  .md-role{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:700}
  .md-name{font-family:'Fraunces',serif;font-weight:900;font-size:1.32rem;margin:3px 0 5px}
  .md-city{color:var(--muted);font-size:.92rem;display:flex;align-items:center;gap:6px}
  .md-open .md-otag{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:12px}
  .md-open p{color:var(--muted);margin-bottom:20px;font-size:.98rem}
  .btn-sm{padding:11px 22px;font-size:.78rem}

  @media(max-width:860px){
    .map-layout{grid-template-columns:1fr}
    .map-detail{position:relative;top:0;min-height:0}
  }
  @media(max-width:480px){
    .mexmap{gap:5px}
    .mtile{font-size:.54rem;border-radius:7px}
    .mtile .mdot{top:4px;right:4px;width:5px;height:5px}
  }
  /* ---------- MEXICO SVG MAP ---------- */
  .mexmap{display:block;aspect-ratio:auto;width:100%}
  .mexsvg{width:100%;height:auto;display:block;overflow:visible;filter:drop-shadow(0 18px 40px rgba(0,0,0,.45))}
  .state{fill:var(--rc);fill-opacity:.82;stroke:#0A0D0F;stroke-width:.5;stroke-linejoin:round;cursor:pointer;outline:none;
    transition:fill-opacity .22s var(--ease),stroke-width .22s var(--ease)}
  .state.has{fill-opacity:1;stroke:var(--bone);stroke-width:1.2;filter:drop-shadow(0 0 4px rgba(246,241,231,.5))}
  .state:hover,.state:focus{fill-opacity:1;stroke:var(--bone);stroke-width:1.4}
  .state.sel{fill-opacity:1;stroke:#fff;stroke-width:1.9;filter:drop-shadow(0 0 8px rgba(255,255,255,.7))}
  .mexsvg.dim .state{fill-opacity:.16;stroke-opacity:.45;transition:fill-opacity .25s}
  .mexsvg.dim .state.active{fill-opacity:1;stroke-opacity:1}
  /* ---------- DETAIL PHOTO ---------- */
  .md-photo{height:300px;border-radius:14px;overflow:hidden;border:1px solid var(--line);margin-bottom:18px}
  .md-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
  .md-name{font-family:'Fraunces',serif;font-weight:900;font-size:1.3rem;line-height:1.15;margin:4px 0 6px}

  /* ---------- DETAIL: MULTI-PASTOR LIST ---------- */
  .md-list{display:flex;flex-direction:column;gap:18px;margin-top:4px}
  .md-card{display:flex;gap:14px;align-items:center}
  .md-thumb{width:74px;height:74px;border-radius:13px;overflow:hidden;flex:none;display:flex;align-items:center;justify-content:center;
    background:radial-gradient(circle at 50% 38%,rgba(247,127,0,.22),transparent 70%),var(--panel-2);border:1px solid var(--line)}
  .md-thumb img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
  .md-thumb .md-mono{font-family:'Fraunces',serif;font-weight:900;font-size:1.5rem;background:var(--flame);-webkit-background-clip:text;background-clip:text;color:transparent}
  .md-info{min-width:0}
  .md-card .md-name{font-size:1.06rem;margin:2px 0 4px}
  .md-card .md-role{font-size:.62rem}
  .leader-img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}

  /* ---------- REGION LEGEND ---------- */
  .region-bar{margin:-6px 0 26px}
  .region-bar .eyebrow{display:block;margin-bottom:12px}
  .region-legend{display:flex;gap:10px;flex-wrap:wrap}
  .reg-chip{display:inline-flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);
    border-radius:999px;padding:8px 14px;color:var(--muted);font-family:inherit;font-size:.82rem;font-weight:600;cursor:pointer;transition:.2s}
  .reg-chip i{width:11px;height:11px;border-radius:3px;display:inline-block}
  .reg-chip b{color:var(--bone);font-weight:700}
  .reg-chip:hover{border-color:var(--gold);color:var(--bone)}
  .reg-chip.on{background:var(--bone);color:var(--ink);border-color:transparent}
  .reg-chip.on b{color:var(--ink)}
  .mexsvg.dim .pin{opacity:.18;transition:opacity .25s}
  .mexsvg.dim .pin.active{opacity:1}
  .md-region{font-family:'Archivo',sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;margin:0 0 20px}
  .md-state{margin-bottom:6px}
