/* Límites compartidos: el contenido se adapta; solo los adornos se recortan. */
html{min-inline-size:0;overflow-x:clip}
body{inline-size:100%;min-inline-size:0;margin:0}
*,*::before,*::after{box-sizing:border-box}
main,section,header,footer,nav,figure,form,fieldset{min-inline-size:0}
img,video,canvas{max-inline-size:100%}
input,select,textarea{min-inline-size:0;max-inline-size:100%}
fieldset{min-width:0}
.hero-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}
.about-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
.gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
.red-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.red-fields,.history-origin,.family-photos,.history-photos{grid-template-columns:repeat(2,minmax(0,1fr))}
.completion-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.error-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.hero-grid>*,.about-grid>*,.red-layout>*,.red-fields>*,.history-origin>*,.completion-layout>*,.error-layout>*,.family-photos>*,.history-photos>*,.completion-social .red-socials>*,.hero-copy,.section-copy,.whatsapp-copy{min-width:0}
.hero-foot,.gallery-heading,.connect-heading,.album-heading,.album-meta,.album-pagination,.territory-bottom,.network-invite,.lightbox-bottom{flex-wrap:wrap}
.button,.journey-cta,.join-network{max-inline-size:100%;white-space:normal;text-align:center;overflow-wrap:anywhere}
.button>svg,.button>span[aria-hidden],.join-icon{flex-shrink:0}
.red-panel,.completion-card,.red-intro,.referral-card,.red-invitation,.existing-document,.access-referral>span,.zone-create-option>span,.error-next>a>span{min-inline-size:0}
.red-panel p,.completion-card p,.red-intro p,.access-modal p,.access-referral strong,.zone-create-option strong,.red-socials a,.consent>span,.history figcaption,.error-copy p{overflow-wrap:anywhere}
.red-panel .share-actions>*{min-inline-size:0;max-inline-size:100%}
.red-fields input:not([type=checkbox]):not([type=radio]),.red-fields select,.completion-card input:not([type=checkbox]):not([type=radio]),.referral-card input:not([type=checkbox]):not([type=radio]){width:100%;min-width:0}
.red-panel legend{white-space:normal}
.red-wide .d-flex{flex-wrap:wrap}
.red-wide .form-check{flex:1 1 115px;min-width:0}
.field-caption{white-space:normal;text-wrap:pretty}
.field-caption .optional{white-space:nowrap}
.error-art{overflow:clip}
.lightbox-bottom a{white-space:normal}

/* Cabecera de escritorio: tres columnas sin mínimos de contenido implícitos. */
.site-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(10px,1.3vw,22px);width:min(1370px,calc(100% - 160px));max-width:1370px;margin:16px auto 0;padding:14px 18px;z-index:40}
.site-header .brand{grid-column:1;grid-row:1;margin:0;min-width:0}
.site-header .navigation{grid-column:2;grid-row:1;display:flex;position:static;flex-wrap:wrap;justify-content:center;align-items:center;width:auto;min-width:0;gap:2px;padding:5px;overflow:visible}
.site-header .navigation a{padding:10px 9px;font-size:11px;white-space:normal;min-width:0;text-align:center}
.site-header .header-actions{grid-column:3;grid-row:1;margin:0;min-width:0;gap:7px}
.site-header .menu-toggle{display:none}
.site-header .navigation .join-network{white-space:nowrap}
.red-header{max-inline-size:calc(100% - 24px);flex-wrap:wrap}
.red-header .header-actions{min-width:0}

/* La ventana de acceso conserva un solo desplazamiento, vertical. */
.access-modal{inline-size:min(500px,calc(100% - 24px));max-inline-size:calc(100% - 24px);max-block-size:calc(100dvh - 24px);margin:auto;padding:clamp(20px,5vw,34px);overflow-x:hidden;overflow-y:auto}
.access-modal .password-field,.access-modal form>label,.access-modal .access-referral{min-width:0}
.access-modal .consent>span{min-width:0}
.access-modal input{min-width:0;max-width:100%}
.access-modal .access-referral{gap:10px}
.access-modal .eyebrow{display:block;overflow-wrap:anywhere}
.access-close{min-width:36px;min-height:36px}

/* Menú compacto para tabletas y teléfonos; mismo corte en interfaz.js. */
@media(max-width:1100px){
  :root{scroll-padding-top:100px}
  .social-rail{display:none}
  .container{width:calc(100% - 40px);max-width:960px}
  .site-header{width:calc(100% - 24px);max-width:960px;margin:8px auto 0;top:8px;min-height:70px;padding:10px 12px;grid-template-columns:minmax(0,1fr) auto auto;column-gap:8px;border-radius:18px}
  .site-header .brand>span{font-size:clamp(20px,5.5vw,27px);white-space:nowrap}
  .site-header .brand small{font-size:8px;letter-spacing:5px}
  .site-header .header-actions{grid-column:2;gap:6px}
  .site-header .header-actions .header-whatsapp,.site-header .header-actions .login-trigger{width:44px;height:44px;min-height:44px;flex-shrink:0;padding:10px;justify-content:center}
  .site-header .header-actions .header-whatsapp>span,.site-header .header-actions .login-trigger>span{display:none}
  .menu-ready .site-header .menu-toggle{grid-column:3;grid-row:1;display:flex;align-items:center;justify-content:center;flex-direction:column;width:44px;height:44px;margin:0;padding:10px;gap:6px;background:#edf3fb;border:1px solid #dce6f2;border-radius:12px}
  .menu-toggle span{display:block;height:2px;width:20px;border-radius:2px;background:var(--blue);transition:transform .2s}
  .menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}
  .site-header .navigation{grid-column:1/-1;grid-row:2;flex-direction:column;align-items:stretch;width:100%;max-width:100%;padding:7px;gap:3px;border-radius:14px;background:#fff;border:1px solid #dce5f1}
  .menu-ready .site-header .navigation{display:none;position:absolute;grid-area:auto;inset:calc(100% + 8px) 0 auto;max-height:min(65dvh,480px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;box-shadow:0 12px 35px #182e4914}
  .menu-ready .site-header[data-menu-open=true] .navigation{display:flex}
  .site-header .navigation a,.site-header .navigation .join-network{flex-shrink:0;min-height:46px;padding:13px 16px;font-size:14px;white-space:normal;text-align:left;border-radius:9px}
  .site-header .navigation .join-network{justify-content:flex-start}
}
@media(max-width:900px){
  .hero-grid,.about-grid,.red-layout,.completion-layout,.history-origin,.error-layout{grid-template-columns:minmax(0,1fr)}
  .hero-grid,.about-grid{gap:45px}
  .hero-copy{text-align:center}
  .hero-copy .actions,.hero-copy .hero-social,.hero-copy .eyebrow{justify-content:center}
  .hero-grid>.photo-scene{width:min(410px,86%);margin-inline:auto}
  .hero-copy h1{font-size:clamp(46px,9vw,80px);letter-spacing:-.045em}
  .red-layout{gap:28px;margin-block:35px}
  .red-intro,.referral-layout .red-intro,.completion-welcome{position:relative;top:auto}
  .history-origin{gap:28px}
  .red-intro{padding-top:0}
  .hero{max-height:none}
}
@media(max-width:760px){
  .container{width:calc(100% - 32px)}
  .gallery,.red-fields,.history-photos{grid-template-columns:minmax(0,1fr)}
  .hero-copy h1{font-size:clamp(43px,11.5vw,76px);line-height:1.05}
  .hero-copy h1 small{letter-spacing:clamp(5px,1.5vw,9px)}
  .hero-hashtag{font-size:clamp(19px,5.1vw,27px)}
  .hero-copy .intro{font-size:clamp(12px,3.4vw,15px)}
  .hero-copy .intro br{display:none}
  .hero-foot{justify-content:center;gap:14px;text-align:center}
  .hero-foot>.journey-cta{font-size:clamp(10px,2.6vw,12px)!important}
  .territory h2{font-size:clamp(32px,8.2vw,62px);letter-spacing:-.04em;overflow-wrap:anywhere}
  .territory-bottom{gap:14px 22px;line-height:1.8}
  .gallery-heading,.connect-heading,.album-heading{gap:20px}
  .album-heading>button{flex-shrink:1}
  .album-pagination{gap:10px;font-size:11px}
  .album-pagination .button{padding:11px 12px;gap:8px}
  .album-meta{gap:10px;line-height:1.6}
  .whatsapp-copy,.whatsapp-copy strong,.whatsapp-copy small{overflow-wrap:anywhere}
  .whatsapp-card{gap:17px;padding:23px 17px}
  .journey-cta{white-space:normal;gap:10px!important;padding-left:15px!important}
  .red-layout,.red-completed,.completion-layout{width:calc(100% - 24px)}
  .red-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;width:calc(100% - 24px);margin:12px auto;padding:12px}
  .red-header .brand{min-width:0;margin:0}
  .red-header .header-actions{grid-column:2;grid-row:1;gap:6px}
  .red-header .red-home{grid-column:1/-1;grid-row:2;min-width:0}
  .red-header .header-actions .header-whatsapp,.red-header .header-actions .login-trigger{width:44px;min-height:44px;justify-content:center;padding:10px}
  .red-header .header-actions .header-whatsapp>span,.red-header .header-actions .login-trigger>span{display:none}
  .red-panel,.completion-card,.completion-content>.account-ready{padding:24px clamp(14px,4vw,24px)}
  .red-intro h1,.red-completed h1,.completion-welcome h1{font-size:clamp(34px,9vw,46px)}
  .red-panel .red-fields{grid-template-columns:minmax(0,1fr)}
  .red-panel .birth-field{grid-column:auto}
  .red-panel input,.red-panel select,.access-modal input{font-size:16px}
  .referral-card,.referral-search .referral-card,.completion-card .referral-card{padding:14px}
  .residence-zone [data-ubicacion-territorial]{padding:14px}
  .residence-zone .select2-container,.residence-zone .select2-dropdown{max-width:100%}
  .residence-zone .select2-selection__rendered,.zone-create-option{overflow-wrap:anywhere}
  .location-action{padding:13px;gap:10px}
  .location-action-icon{width:38px;height:38px}
  .mobile-tabs{position:fixed;inset:auto max(8px,env(safe-area-inset-right,0px)) max(8px,env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));width:auto;max-width:560px;min-width:0;margin-inline:auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:7px 4px;border:1px solid #dce5f0;border-radius:21px;overflow:visible}
  .mobile-tabs>a{min-width:0;max-width:100%;min-height:52px;padding:4px 0;gap:5px;border-radius:14px;font-size:clamp(9px,2.5vw,11px);text-align:center}
  .mobile-tabs>a>span:not(.mobile-join-icon){display:block;max-width:100%;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
  .mobile-tabs>a>svg{width:21px;height:21px;flex-shrink:0}
  .mobile-tabs .mobile-join-icon{width:46px;height:46px;margin-top:-21px;flex-shrink:0}
  .footer{padding-bottom:calc(110px + env(safe-area-inset-bottom,0px));gap:20px;justify-content:center;text-align:center}
  .lightbox{padding:12px;width:calc(100% - 16px);max-width:calc(100% - 16px)}
  .lightbox-stage{gap:6px}.lightbox button{width:36px;height:36px}.lightbox-bottom{gap:8px}
  .error-layout{width:calc(100% - 32px)}
}
@media(max-width:360px){
  .site-header{width:calc(100% - 16px);padding-inline:8px;column-gap:5px}
  .site-header .brand>span{font-size:20px}.site-header .brand small{font-size:7px;letter-spacing:4px}
  .site-header .header-actions{gap:4px}
  .site-header .header-actions .header-whatsapp,.site-header .header-actions .login-trigger,.menu-ready .site-header .menu-toggle{width:40px;height:44px;padding:9px}
  .album-grid{gap:10px}.family-photos{gap:10px}
  .share-actions{gap:8px}.red-connect>.button{gap:9px;padding-inline:12px}
  .location-action-arrow{display:none}
}
@supports not (overflow:clip){html{overflow-x:hidden}}
@media print{.mobile-tabs,.menu-toggle{display:none!important}.site-header{position:static;width:100%}.site-header .navigation{position:static;display:flex;max-height:none}}

/* Acceso compacto: título, campos y dos enlaces, sin cabecera decorativa. */
.access-modal{width:min(380px,calc(100% - 24px));inline-size:min(380px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:22px;border-radius:18px}
.access-modal h2{font-size:25px;line-height:1.2;letter-spacing:-.6px;margin:0 35px 16px 0}
.access-modal .access-close{top:12px;right:12px;width:32px;height:32px;min-width:32px;min-height:32px;font-size:15px}
.access-modal form{margin:0}
.access-modal form>label:not(.consent){margin:0 0 12px;gap:5px;font-size:12px}
.access-modal input:not([type=checkbox]){min-height:44px;height:44px;padding:10px 11px;font-size:16px}
.access-modal .consent{gap:9px;margin:4px 0 6px!important;font-size:11px!important;line-height:1.55}
.access-modal .consent input{width:16px;height:16px;margin-top:2px}
.access-modal .data-notice{font-size:10px;line-height:1.6;margin:0}
.access-modal .data-notice p{margin:7px 0 0}
.access-modal .access-status:empty{display:none}
.access-modal .access-status{font-size:11px;line-height:1.5;margin:8px 0 0}
.access-modal form>.button{margin:12px 0 0;min-height:44px;padding:10px 14px;border-radius:10px}
.access-modal .access-register{font-size:11px;line-height:1.6;margin:14px 0 0;padding:12px 0 0}
.access-modal .access-referral-link{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:36px;font-size:11px;font-weight:600;color:var(--blue);margin-top:4px}
.access-modal .access-referral-link:hover{text-decoration:underline}
body.access-open .mobile-tabs{visibility:hidden}
@media(max-width:760px){
  /* Cinco celdas idénticas. El ancho se limita a la ventana visible, no al documento. */
  .mobile-tabs{inset:auto auto calc(8px + env(safe-area-inset-bottom,0px) + var(--tabs-bottom-offset,0px)) var(--tabs-center,50%);width:var(--tabs-width,min(560px,calc(100vw - 24px)));max-width:none;min-width:0;margin:0;transform:translateX(-50%);padding:5px max(4px,env(safe-area-inset-right,0px)) 5px max(4px,env(safe-area-inset-left,0px));grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;border-radius:18px}
  .mobile-tabs>a,.mobile-tabs .mobile-join{display:grid;grid-template-rows:32px auto;align-content:center;align-items:center;justify-items:center;min-width:0;min-height:56px;width:100%;max-width:100%;padding:3px 0;gap:3px;font-size:10px;line-height:1.2}
  .mobile-tabs>a>span:not(.mobile-join-icon){line-height:1.2;white-space:nowrap;overflow-wrap:normal}
  .mobile-tabs .mobile-join-icon{width:36px;max-width:100%;height:36px;margin:0;border-width:2px;border-radius:12px;transform:none;box-shadow:0 3px 10px #d3304625}
  .mobile-tabs .mobile-join:hover .mobile-join-icon,.mobile-tabs .mobile-join:focus-visible .mobile-join-icon{transform:translateY(-2px)}
  .mobile-tabs .mobile-join svg{width:22px;height:22px}
  .hero-copy .secondary-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;max-width:390px;margin-inline:auto}
  .hero-copy .secondary-actions>.join-network,.hero-copy .secondary-actions>.button{min-width:0;width:100%;min-height:48px;padding:9px 10px;font-size:11px;gap:7px;white-space:normal}
  .hero-copy .secondary-actions .join-icon{width:24px;height:24px;font-size:18px}
  .hero-copy .secondary-actions>.text-link{grid-column:1/-1;min-width:0;padding:7px 0}
}
@media(max-width:340px){.mobile-tabs>a,.mobile-tabs .mobile-join{font-size:9px}.access-modal{padding:18px}.access-modal h2{font-size:23px}}
@media print{.mobile-tabs{display:none!important}}

/* El consentimiento conserva su casilla, sin heredar el ancho de los campos. */
.completion-card .consent{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;margin:18px 0 16px;line-height:1.65;cursor:pointer}
.completion-card .consent input[type=checkbox]{width:18px;min-width:18px;max-width:18px;height:18px;min-height:18px;margin:2px 0 0;padding:0;accent-color:var(--blue)}
.completion-card .consent>span{min-width:0;white-space:normal;overflow-wrap:break-word;text-align:left}
@media(max-width:760px){
  .red-page,.history-page,.error-page{padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}
  .mobile-tabs .mobile-join[aria-current]{background:#fff0f2;color:#b9293e;outline-color:#efb9c1}
}
@media print{.red-page,.history-page,.error-page{padding-bottom:0}}

/* Crédito compartido, con espacio propio y ajuste natural en móviles. */
.footer{flex-wrap:wrap}
.developer-credit{display:flex;flex:0 0 100%;flex-wrap:wrap;align-items:center;justify-content:center;gap:5px 14px;width:100%;min-width:0;margin-top:16px;padding-top:16px;border-top:1px solid #1960ad1a;color:var(--muted);font-size:11px;line-height:1.8;text-align:center}
.developer-credit strong{color:var(--ink);font-weight:700}
.developer-credit .developer-author{min-width:0;overflow-wrap:anywhere}
.developer-credit a,.developer-credit .developer-name{color:var(--blue);font-weight:600}
.developer-credit a{text-decoration:none;text-underline-offset:4px}
.developer-credit a:hover{text-decoration:underline}
.developer-credit a:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:3px}
.legal-links{display:flex;flex:0 0 100%;width:100%;min-width:0;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin-top:14px;font-size:12px;line-height:1.7}
.legal-links a{color:var(--blue);text-decoration:underline;text-underline-offset:4px;padding:5px 0}
@media(max-width:760px){
  .legal-links{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;width:100%;margin-top:16px;text-align:center}
  .legal-links a{display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:0;max-width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:#f3f7fc;font-size:14px;line-height:1.5;white-space:normal;overflow-wrap:anywhere;text-decoration:none}
}
.data-notice a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}

/* Select2 visible al abrir la zona, con búsqueda usable en Safari/iPhone. */
.residence-zone .select2-container{width:100%!important;min-width:0}
.residence-zone select.select2-hidden-accessible{min-height:0!important;min-width:0!important;clip-path:inset(50%);pointer-events:none}
.residence-zone .select2-dropdown{z-index:1055;max-width:100%;box-sizing:border-box}
.residence-zone .select2-search__field{width:100%!important;min-width:0;font-size:16px!important;-webkit-appearance:none;appearance:none}
.residence-zone .select2-results__options{max-height:240px;max-height:min(240px,40dvh);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.residence-zone .select2-results__option{min-height:44px;white-space:normal;overflow-wrap:anywhere}
.residence-zone .form-check input{top:50%;margin:0;transform:translateY(-50%)}
.residence-zone .form-check label{min-height:48px;touch-action:manipulation}
body.zone-search-open .mobile-tabs{visibility:hidden}
.form-invitation{display:flex;align-items:center;gap:13px;position:relative;padding:18px;margin:0 0 25px;border:1px solid #cdddf4;border-left:4px solid var(--blue);border-radius:16px;background:linear-gradient(115deg,#eef5ff,#fff5f6)}
.form-invitation-icon{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:13px;background:#fff;color:var(--blue);box-shadow:0 4px 12px #1761be12}
.form-invitation-icon svg{width:23px;height:23px}.form-invitation>div{min-width:0;flex:1}
.form-invitation small{display:block;color:var(--blue);font-size:11px;font-weight:600;line-height:1.5}
.form-invitation strong{display:block;margin:4px 0;color:var(--ink);font-size:17px;line-height:1.4;overflow-wrap:anywhere}
.form-invitation p{font-size:11px;line-height:1.6;color:var(--muted);margin:0}.form-invitation-mark{color:var(--red);font-size:22px}
@media(max-width:380px){.form-invitation{padding:14px 12px;gap:10px}.form-invitation strong{font-size:15px}.form-invitation-mark{display:none}}

/* El envío muestra su estado junto al botón, también en pantallas pequeñas. */
#register-status:empty{display:none}
#register-status[data-state]{padding:14px 16px;border:1px solid #ecc5c7;border-radius:12px;background:#fff3f3;color:#92313c;line-height:1.65;margin:18px 0 10px;scroll-margin-block:100px}
#register-status[data-state=pending]{background:#edf4ff;border-color:#b5ceef;color:#174f91}
#register-status[data-state=success]{background:#edf9f1;border-color:#add5bd;color:#1b6840}
.red-submit[data-state=registering],.red-submit[data-state=checking]{display:flex;align-items:center;justify-content:center;gap:12px;opacity:1;cursor:wait}
.red-submit[data-state=registering]::before,.red-submit[data-state=checking]::before{content:"";display:block;flex:0 0 19px;width:19px;height:19px;border:2px solid #ffffff60;border-top-color:#fff;border-radius:50%;animation:register-spin .8s linear infinite}
.red-submit[data-state=success]{background:#187446;opacity:1}
@keyframes register-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.red-submit[data-state=registering]::before,.red-submit[data-state=checking]::before{animation:none}}
