/* jesusmanuelgonzalez.com v1.0.3
   Estilos complementarios. Tailwind se compila y sirve localmente. */

    :root { color-scheme: light; }
    html { scroll-behavior: smooth; }
    body {
      background:
        radial-gradient(circle at 12% 8%, rgba(255,255,255,.9), transparent 24%),
        radial-gradient(circle at 88% 16%, rgba(255,255,255,.6), transparent 26%),
        #F6F1E9;
    }
    .paper-noise {
      background-image:
        radial-gradient(rgba(46, 45, 41, .025) 1px, transparent 1px);
      background-size: 6px 6px;
    }
    .soft-card {
      border: 1px solid rgba(74, 68, 59, .09);
      background: rgba(255,255,255,.48);
      box-shadow: 0 10px 28px rgba(44, 40, 34, .08);
      backdrop-filter: blur(5px);
    }
    .icon-disc {
      background: linear-gradient(145deg, rgba(255,255,255,.95), rgba(218,224,208,.78));
      box-shadow: 0 7px 17px rgba(62, 78, 61, .13);
    }
    .underline-swoop {
      position: relative;
      display: inline-block;
    }
    .underline-swoop::after {
      content: "";
      position: absolute;
      height: 5px;
      left: 4%;
      right: 1%;
      bottom: -9px;
      background: #C95B2B;
      border-radius: 999px;
      transform: rotate(-1deg);
    }
    .nav-link.active {
      color: #263227;
    }
    .nav-link.active::after {
      width: 100%;
    }
    .nav-link::after {
      content: "";
      display: block;
      width: 0;
      height: 2px;
      margin-top: 6px;
      background: #4E7859;
      transition: width .2s ease;
    }
    .phone-shell {
      background: linear-gradient(145deg, #0e0e0f, #2c2d2d 55%, #0d0d0e);
      padding: 9px;
      border-radius: 45px;
      box-shadow: 0 22px 50px rgba(31,31,29,.24);
      border: 1px solid rgba(255,255,255,.28);
    }
    .phone-screen {
      border-radius: 37px;
      overflow: hidden;
      background: #EFE9DF;
    }
    .chat-bubble {
      max-width: 86%;
      border-radius: 15px;
      padding: 10px 12px;
      font-size: .82rem;
      line-height: 1.35;
      box-shadow: 0 2px 6px rgba(20,20,20,.06);
    }
    .chat-in { background: #fff; border-top-left-radius: 4px; }
    .chat-out { background: #D7EED2; border-top-right-radius: 4px; margin-left: auto; }
    .project-filter.active {
      background: #4E7859;
      color: white;
      border-color: #4E7859;
    }

    /* Sobre mí · bloque visual del hero.
       La anotación manuscrita vive en su propia columna:
       nunca se posiciona encima de la fotografía. */
    .about-visual {
      display: flex;
      align-items: flex-start;
      justify-content: center;
      gap: 20px;
      width: 100%;
      max-width: 500px;
      margin-inline: auto;
    }
    .about-portrait {
      width: min(100%, 340px);
      aspect-ratio: 5 / 7;
      object-fit: cover;
    }
    .about-note {
      display: none;
      flex: 0 0 110px;
      width: 110px;
      padding-top: 92px;
    }
    .about-note p {
      font-size: 31px;
      line-height: .96;
    }
    .about-note svg {
      display: block;
      width: 76px;
      height: 92px;
      margin-top: 12px;
      margin-left: -8px;
      overflow: visible;
    }
    @media (min-width: 1024px) {
      .about-portrait {
        width: 300px;
      }
      .about-note {
        display: block;
      }
    }
    @media (min-width: 1280px) {
      .about-visual {
        max-width: 560px;
        gap: 28px;
      }
      .about-portrait {
        width: 340px;
      }
      .about-note {
        flex-basis: 130px;
        width: 130px;
        padding-top: 88px;
      }
      .about-note p {
        font-size: 33px;
      }
    }
    .page { animation: pageIn .28s ease; }
    @keyframes pageIn {
      from { opacity: 0; transform: translateY(6px); }
      to { opacity: 1; transform: translateY(0); }
    }
    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .001ms !important;
        transition-duration: .001ms !important;
      }
    }
  

    /* Blog v1.1.0 · artículos nuevos */
    .article-content { color:#4E504B; font-size:1.04rem; line-height:1.78; }
    .article-content > * + * { margin-top:1.15rem; }
    .article-content h1 { display:none; }
    .article-content h2 { margin-top:3.1rem; color:#242522; font-size:1.75rem; line-height:1.18; font-weight:800; letter-spacing:-.025em; }
    .article-content h3 { margin-top:2rem; color:#2F5540; font-size:1.22rem; line-height:1.3; font-weight:750; }
    .article-content p { margin-top:1rem; }
    .article-content ul, .article-content ol { margin-top:1rem; padding-left:1.4rem; }
    .article-content ul { list-style:disc; }
    .article-content ol { list-style:decimal; }
    .article-content li + li { margin-top:.45rem; }
    .article-content strong { color:#242522; font-weight:750; }
    .article-content blockquote { margin:1.6rem 0; border-left:4px solid #C95B2B; border-radius:0 18px 18px 0; background:rgba(255,255,255,.52); padding:1rem 1.2rem; color:#242522; font-size:1.08rem; font-weight:650; }
    .article-content a { color:#2F5540; font-weight:700; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
    .article-content table { width:100%; min-width:620px; border-collapse:separate; border-spacing:0; overflow:hidden; border:1px solid rgba(74,68,59,.12); border-radius:18px; background:rgba(255,255,255,.5); }
    .article-content th, .article-content td { padding:.9rem 1rem; border-bottom:1px solid rgba(74,68,59,.09); text-align:left; vertical-align:top; }
    .article-content th { color:#242522; background:rgba(221,228,214,.55); font-weight:750; }
    .article-content tr:last-child td { border-bottom:0; }
    .article-content table { display:block; overflow-x:auto; }
    @media (min-width:768px) { .article-content { font-size:1.08rem; } .article-content h2 { font-size:2rem; } }


/* v1.3.0-RC2 — jerarquía móvil, autoridad y experiencia editorial */
.hero-cta-copy{display:flex;flex-direction:column;line-height:1.12;text-align:left}
.hero-primary-cta{width:100%}
.hero-phone{transition:width .2s ease}
.service-principle-card{backdrop-filter:blur(8px)}
.authority-status{display:inline-flex;border-radius:999px;background:rgba(78,120,89,.10);padding:.4rem .65rem;color:#2F5540;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.team-chip{display:flex;align-items:center;gap:.7rem;border:1px solid rgba(36,37,34,.08);border-radius:18px;background:#fff;padding:.8rem 1rem}
.team-chip span{display:grid;height:2.2rem;width:2.2rem;place-items:center;border-radius:50%;background:#DDE4D6;color:#2F5540;font-size:.72rem;font-weight:800}.team-chip strong{font-size:.9rem}
.faq-related a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;border:1px solid rgba(78,120,89,.18);border-radius:18px;background:rgba(221,228,214,.28);padding:.9rem 1rem;text-decoration:none}.faq-related span{font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#4E7859}.faq-related strong{font-size:.9rem;color:#242522}
.blog-card-visual{margin:-.15rem 0 1rem;border-radius:18px;background:linear-gradient(135deg,rgba(221,228,214,.9),rgba(255,255,255,.7));padding:1rem;min-height:110px;display:flex;align-items:center;justify-content:center}.blog-card-visual.split{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.blog-card-visual.split>div{display:flex;min-height:82px;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;border-radius:14px;background:#fff;color:#2F5540;text-align:center}.flow-mini{display:flex;align-items:center;gap:.45rem;font-size:.73rem}.flow-mini span{display:flex;align-items:center;gap:.35rem;border-radius:999px;background:#fff;padding:.65rem .75rem}.blog-tags,.article-tags{display:flex;flex-wrap:wrap;gap:.45rem}.blog-tags{margin-bottom:1rem}.blog-tags span,.article-tags span{border-radius:999px;background:rgba(78,120,89,.10);padding:.35rem .65rem;color:#2F5540;font-size:.7rem;font-weight:800}
.article-visual{margin-top:1.6rem;border:1px solid rgba(36,37,34,.08);border-radius:26px;background:linear-gradient(135deg,#fff,rgba(221,228,214,.55));padding:1.2rem;box-shadow:0 16px 45px rgba(70,60,46,.07)}.article-visual.flow{display:flex;align-items:center;justify-content:center;gap:.8rem;flex-wrap:wrap}.article-visual.flow span{display:flex;align-items:center;gap:.55rem;border-radius:999px;background:#fff;padding:.75rem 1rem;color:#2F5540}.article-visual.split{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem}.article-visual.split>div:not(.versus){display:flex;min-height:125px;flex-direction:column;align-items:center;justify-content:center;gap:.55rem;border-radius:18px;background:#fff;text-align:center;color:#2F5540}.article-visual small{color:#686A64}.article-visual .versus{font-size:.75rem;font-weight:900;color:#C95B2B}.article-summary{margin-top:1.2rem;border-left:4px solid #C95B2B;border-radius:0 20px 20px 0;background:rgba(255,255,255,.6);padding:1rem 1.2rem}.article-summary span{font-size:.68rem;font-weight:900;letter-spacing:.12em;color:#4E7859}.article-summary p{margin-top:.4rem;color:#242522;line-height:1.65}
.mobile-compact-cta{max-width:320px}
.project-photo{filter:saturate(.85) contrast(.98)}
@media(max-width:639px){.hero-primary-cta{align-self:center;max-width:310px;padding:.78rem 1rem!important;font-size:.94rem}.hero-primary-cta .hero-cta-copy{text-align:center;flex:1}.hero-secondary-cta{display:none!important}.hero-phone{width:270px!important}.hero-phone-screen{min-height:520px!important}.chat-bubble{max-width:94%!important;font-size:.78rem!important;line-height:1.4!important}.mobile-compact-cta{align-self:center;padding:.78rem 1rem!important;font-size:.9rem}.article-visual.split{grid-template-columns:1fr}.article-visual .versus{justify-self:center}.flow-mini{flex-wrap:wrap;justify-content:center}.faq-related a{grid-template-columns:1fr auto}.faq-related span{grid-column:1/-1}.blog-card-visual{min-height:96px}}

/* RC2 editorial maps */
.article-midmap{margin:2rem 0;padding:1.15rem;border:1px solid rgba(36,37,34,.10);border-radius:22px;background:rgba(255,255,255,.55);box-shadow:0 12px 28px rgba(36,37,34,.05)}
.article-midmap figcaption{font-size:.72rem;font-weight:800;letter-spacing:.14em;color:#4E7859;margin-bottom:1rem}
.midmap-flow,.midmap-grid{display:grid;gap:.65rem;align-items:center}
.midmap-flow{grid-template-columns:1fr auto 1fr auto 1fr auto 1fr}
.midmap-grid{grid-template-columns:repeat(3,1fr)}
.article-midmap span{display:flex;min-height:112px;flex-direction:column;justify-content:center;gap:.35rem;padding:.9rem;border-radius:16px;background:#F6F1E9;text-align:center}
.article-midmap span i{font-size:1.25rem;color:#4E7859}.article-midmap span b{font-size:.95rem}.article-midmap span small{color:#686A64;line-height:1.35}
.article-midmap span.human{background:#2F5540;color:white}.article-midmap span.human i,.article-midmap span.human small{color:rgba(255,255,255,.78)}
.article-midmap>.midmap-flow>i{color:#C95B2B}
@media(max-width:720px){.midmap-flow,.midmap-grid{grid-template-columns:1fr}.article-midmap>.midmap-flow>i{transform:rotate(90deg);justify-self:center}.article-midmap span{min-height:auto}.mobile-compact-cta{width:auto!important;max-width:300px;margin-inline:auto;padding:.8rem 1rem!important;font-size:.92rem;line-height:1.25}.hero-primary-cta{max-width:320px;margin-inline:auto}}

/* RC4 · Blog editorial con imágenes */
.blog-cover-photo{margin:-.15rem 0 1rem;overflow:hidden;border-radius:18px;aspect-ratio:16/9;background:#DDE4D6;box-shadow:0 12px 28px rgba(70,60,46,.08)}
.blog-cover-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.soft-card:hover .blog-cover-photo img{transform:scale(1.025)}
.article-photo{margin-top:1.6rem;overflow:hidden;border:1px solid rgba(36,37,34,.08);border-radius:26px;background:#fff;box-shadow:0 16px 45px rgba(70,60,46,.09)}
.article-photo img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.article-photo figcaption{padding:.7rem 1rem;background:rgba(255,255,255,.82);color:#686A64;font-size:.76rem;line-height:1.45}
.team-chip-copy{display:flex;min-width:0;flex-direction:column}.team-chip-copy small{margin-top:.12rem;color:#686A64;font-size:.72rem;font-weight:700}
@media(max-width:639px){.blog-cover-photo{aspect-ratio:16/10}.article-photo{border-radius:20px}.article-photo img{aspect-ratio:4/3}}

/* RC8 — fotografías reales del equipo */
.team-chip .team-avatar{height:3.25rem;width:3.25rem;flex:0 0 3.25rem;border-radius:16px;object-fit:cover;object-position:center;border:1px solid rgba(36,37,34,.08);box-shadow:0 6px 16px rgba(36,37,34,.08)}
@media(max-width:639px){.team-chip .team-avatar{height:3rem;width:3rem;flex-basis:3rem;border-radius:14px}}

/* RC11 · Legal pages */
.legal-content{display:grid;gap:1rem}
.legal-section{border:1px solid rgba(36,37,34,.08);border-radius:22px;background:rgba(255,255,255,.5);padding:1.25rem 1.35rem;box-shadow:0 8px 24px rgba(44,40,34,.045)}
.legal-section h2{color:#242522;font-size:1.15rem;line-height:1.35;font-weight:800}
.legal-section p,.legal-section li{color:#686A64;line-height:1.75}
.legal-section p{margin-top:.65rem}
.legal-section ul{margin-top:.65rem;padding-left:1.25rem;list-style:disc}
.legal-section li+li{margin-top:.4rem}
.legal-section a{color:#2F5540;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.legal-section strong{color:#242522}
@media(min-width:768px){.legal-section{padding:1.5rem 1.6rem}.legal-section h2{font-size:1.25rem}}

/* RC11 · Font Awesome convertido a SVG inline: sin webfonts ni CDN */
svg.svg-inline--fa:not(:root){overflow:visible;box-sizing:content-box}
.svg-inline--fa{display:inline-block;height:1em;overflow:visible;vertical-align:-.125em;flex-shrink:0}
.legal-footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.65rem 1rem;border-top:1px solid rgba(36,37,34,.06);padding:0 1.25rem 1.1rem;color:#686A64;font-size:.72rem}
.legal-footer-links a{transition:color .18s ease}.legal-footer-links a:hover{color:#2F5540}
/* RC14 legal tables */
.legal-table-wrap{margin-top:.8rem;overflow-x:auto;border:1px solid rgba(36,37,34,.08);border-radius:14px;background:rgba(255,255,255,.42)}
.legal-table{width:100%;min-width:680px;border-collapse:collapse;text-align:left;font-size:.9rem;color:#686A64}
.legal-table th,.legal-table td{padding:.75rem .8rem;border-bottom:1px solid rgba(36,37,34,.08);vertical-align:top;line-height:1.55}
.legal-table th{color:#242522;font-weight:800;background:rgba(240,236,229,.55)}
.legal-table tr:last-child td{border-bottom:0}
.legal-table code{font-size:.85em;color:#242522}

/* RC17 consent manager — editorial compact */
.consent-banner[hidden],.consent-modal[hidden]{display:none!important}
.consent-banner{position:fixed;z-index:120;left:0;right:0;bottom:0;padding:18px;pointer-events:none}
.consent-banner__card{pointer-events:auto;width:min(940px,calc(100vw - 36px));margin:0 auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;border:1px solid rgba(36,37,34,.10);border-radius:26px;background:rgba(248,245,239,.98);color:#242522;padding:18px 20px;box-shadow:0 20px 55px rgba(36,37,34,.18);backdrop-filter:blur(14px)}
.consent-banner__icon{display:grid;place-items:center;width:46px;height:46px;border-radius:16px;background:rgba(78,120,89,.11);color:#2F5540}.consent-banner__icon svg{width:24px;height:24px}
.consent-eyebrow{display:block;margin-bottom:.3rem;color:#C4622D;font-size:.65rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.consent-banner__copy strong{display:block;color:#242522;font-size:1.06rem;line-height:1.25}.consent-banner__copy p{max-width:620px;margin:.38rem 0 0;color:#686A64;font-size:.86rem;line-height:1.5}
.consent-policy-link{display:inline-flex;align-items:center;gap:.32rem;margin-top:.5rem;color:#2F5540;font-size:.78rem;font-weight:800;text-decoration:none}.consent-policy-link:hover{text-decoration:underline;text-underline-offset:3px}
.consent-banner__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:330px}.consent-btn{min-height:42px;border-radius:13px;padding:.66rem .9rem;font-size:.82rem;font-weight:800;line-height:1.15;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease}.consent-btn:hover{transform:translateY(-1px)}
.consent-banner__actions .consent-btn--primary,.consent-banner__actions .consent-btn--secondary{border:1px solid rgba(36,37,34,.20);background:#fff;color:#242522;box-shadow:none}.consent-banner__actions .consent-btn--primary:hover,.consent-banner__actions .consent-btn--secondary:hover{border-color:#4E7859;background:rgba(78,120,89,.06);color:#2F5540}
.consent-modal__actions .consent-btn--primary{border:1px solid #2F5540;background:#2F5540;color:#fff;box-shadow:0 8px 20px rgba(47,85,64,.15)}.consent-modal__actions .consent-btn--primary:hover{background:#3D6A50;border-color:#3D6A50}
.consent-modal__actions .consent-btn--secondary{border:1px solid rgba(36,37,34,.18);background:#fff;color:#242522}.consent-modal__actions .consent-btn--secondary:hover{border-color:rgba(36,37,34,.34)}
.consent-btn--text{grid-column:1/-1;min-height:34px;border:0;background:transparent;color:#686A64;padding:.25rem .6rem}.consent-btn--text:hover{color:#2F5540;text-decoration:underline;text-underline-offset:3px}
.consent-modal{position:fixed;z-index:130;inset:0;display:grid;place-items:center;padding:20px}.consent-modal__backdrop{position:absolute;inset:0;background:rgba(20,22,20,.58);backdrop-filter:blur(4px)}
.consent-modal__panel{position:relative;width:min(640px,100%);max-height:min(760px,92vh);overflow:auto;border:1px solid rgba(36,37,34,.08);border-radius:28px;background:#F8F5EF;color:#242522;padding:28px;box-shadow:0 28px 80px rgba(0,0,0,.28)}
.consent-modal__close{position:absolute;top:16px;right:16px;display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(36,37,34,.12);border-radius:50%;background:#fff;color:#242522;font-size:1.25rem;cursor:pointer}
.consent-modal__header{padding-right:44px}.consent-modal__header h2{margin:0;color:#242522;font-size:1.45rem;line-height:1.2}.consent-modal__header p{margin:.5rem 0 0;color:#686A64;font-size:.9rem;line-height:1.55}
.consent-preferences{display:grid;gap:10px;margin-top:20px}.consent-choice{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:15px 16px;border:1px solid rgba(36,37,34,.09);border-radius:18px;background:#fff}.consent-choice--locked{background:rgba(78,120,89,.06)}
.consent-choice__title{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.consent-choice strong{font-size:.92rem}.consent-choice p{margin:.28rem 0 0;color:#686A64;font-size:.82rem;line-height:1.42}.consent-badge{display:inline-flex;align-items:center;border-radius:999px;background:#F0ECE5;padding:.22rem .5rem;color:#686A64;font-size:.63rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.consent-badge--active{background:rgba(78,120,89,.10);color:#2F5540}
.consent-toggle{appearance:none;position:relative;width:46px;height:26px;flex:0 0 auto;border:1px solid rgba(36,37,34,.18);border-radius:999px;background:#E5E0D8;cursor:pointer;transition:background .18s ease,border-color .18s ease}.consent-toggle:before{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(36,37,34,.18);transition:transform .18s ease}.consent-toggle:checked{background:#4E7859;border-color:#4E7859}.consent-toggle:checked:before{transform:translateX(20px)}.consent-toggle:focus-visible{outline:3px solid rgba(196,98,45,.25);outline-offset:2px}
.consent-policy-link--modal{margin-top:15px}.consent-modal__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.consent-modal__actions .consent-btn{min-height:46px}
.consent-modal-open{overflow:hidden}.legal-footer-links [data-consent-settings]{cursor:pointer}
@media(max-width:860px){.consent-banner{padding:12px}.consent-banner__card{width:min(720px,calc(100vw - 24px));grid-template-columns:auto minmax(0,1fr);gap:14px;padding:16px}.consent-banner__actions{grid-column:1/-1;min-width:0;grid-template-columns:1fr 1fr}.consent-btn--text{grid-column:1/-1}.consent-banner__copy p{max-width:none}}
@media(max-width:560px){.consent-banner{padding:0}.consent-banner__card{width:100%;grid-template-columns:1fr;margin:0;border-left:0;border-right:0;border-bottom:0;border-radius:24px 24px 0 0;padding:18px 16px 14px;gap:10px}.consent-banner__icon{display:none}.consent-banner__copy strong{font-size:1rem}.consent-banner__copy p{font-size:.82rem;line-height:1.45}.consent-policy-link{margin-top:.4rem}.consent-banner__actions{grid-column:auto;grid-template-columns:1fr;gap:7px;margin-top:3px}.consent-btn--text{grid-column:auto}.consent-btn{min-height:42px}.consent-modal{padding:0;align-items:end}.consent-modal__panel{width:100%;max-height:88vh;border-radius:24px 24px 0 0;padding:22px 16px 18px}.consent-modal__header h2{font-size:1.3rem}.consent-choice{padding:14px;gap:12px}.consent-choice p{font-size:.79rem}.consent-modal__actions{grid-template-columns:1fr}.consent-policy-link--modal{margin-top:12px}}


/* RC21 — mobile brand + favicon release */
@media (max-width: 639px) {
  .jmg-header-row {
    gap: .625rem;
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: .875rem;
    padding-bottom: .875rem;
  }
  .jmg-brand {
    min-width: 0;
    flex: 1 1 auto;
    gap: .5rem;
  }
  .jmg-brand img {
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 auto;
  }
  .jmg-brand-copy {
    display: block;
    min-width: 0;
  }
  .jmg-brand-name {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .8125rem;
    line-height: 1.15;
    font-weight: 600;
    letter-spacing: -.01em;
  }
  .jmg-brand-tagline {
    display: none !important;
  }
  #mobileMenuButton {
    flex: 0 0 auto;
  }
}
@media (min-width: 640px) {
  .jmg-brand-copy { display: block; min-width: 0; }
  .jmg-brand-tagline { display: block; }
}


/* RC27 — fix robusto del modal de consentimiento en móvil
   Evita desbordamiento horizontal y conserva únicamente scroll vertical. */
html.consent-modal-open,
html.consent-modal-open body {
  overflow-x: hidden !important;
  overflow-y: hidden !important;
  max-width: 100%;
}
.consent-modal {
  box-sizing: border-box;
  width: 100%;
  max-width: 100vw;
  overflow: hidden;
}
.consent-modal__panel {
  box-sizing: border-box;
  min-width: 0;
  max-width: min(640px, 100%);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.consent-modal__header,
.consent-preferences,
.consent-choice,
.consent-choice__copy,
.consent-choice__title,
.consent-modal__actions,
.consent-policy-link--modal {
  min-width: 0;
  max-width: 100%;
}
.consent-choice {
  width: 100%;
}
.consent-choice__copy,
.consent-choice p,
.consent-modal__header p,
.consent-modal__actions .consent-btn {
  overflow-wrap: anywhere;
  word-break: normal;
}
.consent-modal__actions {
  width: 100%;
}
.consent-modal__actions .consent-btn {
  width: 100%;
  min-width: 0;
  white-space: normal;
}
@media (max-width: 560px) {
  .consent-modal {
    width: 100dvw;
    max-width: 100dvw;
    padding: 0;
    justify-items: stretch;
    align-items: end;
  }
  .consent-modal__panel {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    max-height: calc(100dvh - max(8px, env(safe-area-inset-top)));
    padding-left: max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
    padding-bottom: max(18px, env(safe-area-inset-bottom));
    border-radius: 24px 24px 0 0;
  }
  .consent-modal__close {
    right: max(16px, env(safe-area-inset-right));
  }
  .consent-choice {
    grid-template-columns: minmax(0, 1fr) 46px;
    gap: 10px;
  }
  .consent-toggle {
    width: 46px;
    min-width: 46px;
    max-width: 46px;
  }
}
