/* ==========================================================================
   PrivateShop · Capa de diseño TEK-MOD
   Sistema de diseño común a la página de acceso independiente y al bloque
   integrado en el tema.
   Versión 3.0.0 · Compatible con PrestaShop 8.2.7 · Tema Warehouse
   --------------------------------------------------------------------------
   Personalización por tienda: no hace falta tocar este archivo. Basta con
   redefinir las variables de .tkm-scope en el custom.css del tema.
   ========================================================================== */

/* ---------- Tipografías autoalojadas ------------------------------------- */
@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/barlow-latin-400-normal.woff2') format('woff2');}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/barlow-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/barlow-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/barlow-condensed-latin-600-normal.woff2') format('woff2');}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/barlow-condensed-latin-700-normal.woff2') format('woff2');}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/barlow-condensed-latin-800-normal.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/ibm-plex-mono-latin-600-normal.woff2') format('woff2');}

/* ==========================================================================
   1. TOKENS
   ========================================================================== */
.tkm-scope{
  --tkm-navy:        #01143D;
  --tkm-navy-800:    #06214F;
  --tkm-navy-600:    #123A7E;
  --tkm-navy-400:    #3D6BB5;
  --tkm-red:         #DF0214;
  --tkm-red-dark:    #B00110;

  --tkm-ink:         #0D1B33;
  --tkm-body:        #43536E;
  --tkm-muted:       #6B7C97;
  --tkm-line:        #DEE5F0;
  --tkm-line-soft:   #EDF1F7;
  --tkm-surface:     #FFFFFF;
  --tkm-surface-2:   #F6F8FC;
  --tkm-bg:          #EFF3F9;

  --tkm-ok:          #0E7A4A;
  --tkm-danger:      #A11017;

  --tkm-radius:      20px;
  --tkm-radius-sm:   12px;
  --tkm-card-alpha:  1;
  --tkm-shadow:      0 1px 2px rgba(1,20,61,.05),
                     0 12px 28px -12px rgba(1,20,61,.18),
                     0 40px 80px -40px rgba(1,20,61,.28);
  --tkm-focus:       0 0 0 3px rgba(18,58,126,.18);

  --tkm-font:        'Barlow', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --tkm-font-head:   'Barlow Condensed', 'Barlow', -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --tkm-font-mono:   'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  font-family: var(--tkm-font);
  color: var(--tkm-ink);
  -webkit-font-smoothing: antialiased;
}

.tkm-scope *,
.tkm-scope *::before,
.tkm-scope *::after{ box-sizing:border-box; }

.tkm-scope img{ max-width:100%; height:auto; }
.tkm-scope h1,.tkm-scope h2,.tkm-scope h3{ margin:0; line-height:1.14; }
.tkm-scope p{ margin:0; }
.tkm-scope button{ font-family:inherit; }
.tkm-scope ul{ list-style:none; margin:0; padding:0; }

.tkm-sr{
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap;
}

/* ==========================================================================
   2. ESCENARIO
   ========================================================================== */
.tkm-stage{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:clamp(16px,3vw,40px) clamp(14px,4vw,40px) clamp(24px,4vw,44px);
}
.tkm-stage--left{ align-items:flex-start; }
.tkm-stage--right{ align-items:flex-end; }

/* Estructura de dos paneles (página de acceso independiente) */
.tkm-shell{
  width:100%; max-width:1140px;
  display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1fr);
  background:rgba(255,255,255,var(--tkm-card-alpha));
  border:1px solid var(--tkm-line);
  border-radius:var(--tkm-radius);
  box-shadow:var(--tkm-shadow);
  overflow:hidden;
}

/* ==========================================================================
   3. PANEL DE MARCA
   ========================================================================== */
.tkm-brand{
  position:relative; isolation:isolate;
  padding:clamp(28px,3.2vw,40px);
  display:flex; flex-direction:column; gap:18px;
  color:#EAF0FA;
  background:
    radial-gradient(120% 90% at 0% 0%, #123A7E 0%, transparent 55%),
    radial-gradient(110% 80% at 100% 100%, #0A2A63 0%, transparent 60%),
    linear-gradient(160deg,#06214F 0%,#01143D 100%);
}
.tkm-brand::before{
  content:""; position:absolute; inset:0; z-index:-1; opacity:.5;
  background-image:repeating-linear-gradient(115deg,rgba(255,255,255,.055) 0 1px,transparent 1px 13px);
}
.tkm-brand::after{
  content:""; position:absolute; inset:0 0 auto 0; height:4px; z-index:1;
  background:linear-gradient(90deg,var(--tkm-red) 0 34%,rgba(255,255,255,.28) 34% 100%);
}
.tkm-brand__logo img{ height:34px; width:auto; display:block; }

.tkm-brand__kicker{
  display:inline-flex; align-items:center; gap:9px; align-self:flex-start;
  padding:6px 13px; border-radius:999px;
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.18);
  font-size:11.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
  color:#CFDCF2;
}
.tkm-brand__kicker svg{ width:14px; height:14px; color:#7FA6E4; }

.tkm-brand__title{
  font-family:var(--tkm-font-head);
  font-size:clamp(28px,2.9vw,38px); font-weight:700; letter-spacing:-.01em;
  color:#fff;
}
.tkm-brand__title em{
  font-style:normal; color:#fff; padding:0 2px;
  background:linear-gradient(transparent 62%,rgba(223,2,20,.85) 62% 92%,transparent 92%);
}
.tkm-brand__lead{ font-size:15px; line-height:1.6; color:#B7C7E2; max-width:42ch; }

.tkm-perks{ display:grid; }
.tkm-perks li{
  display:grid; grid-template-columns:auto 1fr auto; gap:0 13px; align-items:center;
  padding:11px 0; border-top:1px solid rgba(255,255,255,.10);
}
.tkm-perks li:last-child{ border-bottom:1px solid rgba(255,255,255,.10); }
.tkm-perks__icon{
  width:34px; height:34px; border-radius:10px; display:grid; place-items:center;
  background:rgba(223,2,20,.16); border:1px solid rgba(223,2,20,.30); color:#FF8A93;
}
.tkm-perks__icon svg{ width:17px; height:17px; }
.tkm-perks b{ display:block; color:#fff; font-size:14px; font-weight:700; }
.tkm-perks span{ display:block; color:#A2B5D4; font-size:13px; line-height:1.45; margin-top:1px; }
.tkm-perks__ref{
  font-family:var(--tkm-font-mono); font-size:10px; letter-spacing:.06em;
  color:#5E7CAE; white-space:nowrap; align-self:start; padding-top:3px;
}

.tkm-brand__foot{
  margin-top:auto; padding-top:20px; border-top:1px solid rgba(255,255,255,.12);
  display:flex; flex-wrap:wrap; gap:8px 20px; align-items:center;
  font-size:13px; color:#9FB3D4;
}
.tkm-brand__foot a{ color:#CFDCF2; text-decoration:none; font-weight:600; }
.tkm-brand__foot a:hover{ text-decoration:underline; color:#fff; }
.tkm-brand__foot svg{ width:15px; height:15px; vertical-align:-3px; margin-right:6px; }

/* ==========================================================================
   4. TARJETA DE FORMULARIO
   Dentro de .tkm-shell es la columna derecha. Suelta (bloque integrado en el
   tema y páginas de aviso) es una tarjeta centrada con borde y sombra.
   ========================================================================== */
.tkm-card{
  padding:clamp(26px,3.2vw,44px);
  display:flex; flex-direction:column;
  background:rgba(255,255,255,var(--tkm-card-alpha));
}
.tkm-stage > .tkm-card,
.tkm-stage .tkm-card:only-child{
  width:100%; max-width:560px;
  border:1px solid var(--tkm-line);
  border-radius:var(--tkm-radius);
  box-shadow:var(--tkm-shadow);
  position:relative; overflow:hidden;
}
.tkm-stage > .tkm-card::before{
  content:""; position:absolute; inset:0 0 auto 0; height:4px;
  background:linear-gradient(90deg,var(--tkm-red) 0 34%,var(--tkm-navy-600) 34% 100%);
}

.tkm-card__brand,
.tkm-card__head{ margin-bottom:22px; }
.tkm-card__logo{ margin-bottom:18px; }
.tkm-card__logo img{ max-height:42px; width:auto; display:block; }
.tkm-shell .tkm-card__logo{ display:none; }

.tkm-card__eyebrow{
  display:inline-flex; align-items:center; gap:7px;
  font-size:11.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:var(--tkm-red);
}
.tkm-card__eyebrow::before{ content:""; width:22px; height:2px; background:var(--tkm-red); border-radius:2px; }

.tkm-card__title{
  font-family:var(--tkm-font-head);
  font-size:clamp(26px,2.6vw,34px); font-weight:700; color:var(--tkm-ink);
  margin-top:10px;
}
.tkm-card__subtitle{ margin-top:8px; font-size:14.5px; line-height:1.6; color:var(--tkm-body); }

.tkm-shopname{
  display:inline-block; margin-bottom:6px;
  font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--tkm-muted);
}

/* ==========================================================================
   5. PESTAÑAS Y PANELES
   ========================================================================== */
.tkm-tabs{
  display:grid; grid-template-columns:1fr 1fr; gap:4px;
  padding:4px; margin-bottom:24px;
  background:var(--tkm-surface-2); border:1px solid var(--tkm-line); border-radius:14px;
}
.tkm-tab{
  position:relative; border:0; cursor:pointer; background:transparent;
  padding:11px 10px; border-radius:10px;
  font-size:14px; font-weight:700; color:var(--tkm-muted);
  transition:background .18s ease,color .18s ease,box-shadow .18s ease;
}
.tkm-tab:hover{ color:var(--tkm-navy-600); }
.tkm-tab.is-active{
  background:var(--tkm-surface); color:var(--tkm-navy);
  box-shadow:0 1px 2px rgba(1,20,61,.06),0 4px 12px -6px rgba(1,20,61,.24);
}
.tkm-tab.is-active::after{
  content:""; position:absolute; left:50%; transform:translateX(-50%);
  bottom:5px; width:20px; height:2px; border-radius:2px; background:var(--tkm-red);
}

.tkm-panels{ flex:1; }
.tkm-panel[hidden]{ display:none !important; }
.tkm-panel{ animation:tkm-in .22s ease both; }
@keyframes tkm-in{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }

.tkm-panel__head{ margin-bottom:20px; }
.tkm-panel__title{ font-family:var(--tkm-font-head); font-size:24px; font-weight:700; color:var(--tkm-ink); }
.tkm-panel__desc{ margin-top:7px; font-size:14px; line-height:1.6; color:var(--tkm-body); }

/* ==========================================================================
   6. CAMPOS
   ========================================================================== */
.tkm-field{ margin-bottom:16px; }

.tkm-label{
  display:block; margin-bottom:7px;
  font-size:13px; font-weight:700; color:var(--tkm-ink);
}
.tkm-req{ color:var(--tkm-red); margin-left:3px; }
.tkm-hint{ display:block; margin-top:6px; font-size:12.5px; color:var(--tkm-muted); }

.tkm-input-wrap{ position:relative; display:block; }
.tkm-input-wrap .tkm-icon{
  position:absolute; left:14px; top:50%; transform:translateY(-50%);
  width:18px; height:18px; color:#94A5C0; pointer-events:none; transition:color .18s ease;
}
.tkm-input-wrap:focus-within .tkm-icon{ color:var(--tkm-navy-600); }

.tkm-scope .tkm-input{
  width:100%; height:50px; padding:0 14px; margin:0;
  font-family:inherit; font-size:15px; line-height:normal; color:var(--tkm-ink);
  background:var(--tkm-surface); background-image:none;
  border:1px solid var(--tkm-line); border-radius:var(--tkm-radius-sm);
  outline:0; box-shadow:none;
  transition:border-color .18s ease,box-shadow .18s ease;
}
.tkm-input-wrap .tkm-input{ padding-left:44px; }
.tkm-scope .tkm-input::placeholder{ color:#9FADC4; opacity:1; }
.tkm-scope .tkm-input:hover{ border-color:#C6D2E4; }
.tkm-scope .tkm-input:focus{ border-color:var(--tkm-navy-600); box-shadow:var(--tkm-focus); }
.tkm-scope .tkm-input:disabled{ background:var(--tkm-surface-2); color:var(--tkm-muted); }
.tkm-scope .tkm-invalid,
.tkm-extrafields .tkm-invalid{ border-color:var(--tkm-red) !important; box-shadow:0 0 0 3px rgba(223,2,20,.12) !important; }
.tkm-scope textarea.tkm-input{ height:auto; min-height:112px; padding:13px 14px; line-height:1.55; resize:vertical; }
.tkm-scope select.tkm-input{
  appearance:none; -webkit-appearance:none; -moz-appearance:none; cursor:pointer; padding-right:36px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7C97' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; background-size:17px;
}

/* Mostrar / ocultar contraseña */
.tkm-pass .tkm-input{ padding-right:78px; }
.tkm-pass-toggle{
  position:absolute; right:6px; top:50%; transform:translateY(-50%);
  height:38px; padding:0 12px; border:0; border-radius:9px; cursor:pointer;
  background:var(--tkm-surface-2); color:var(--tkm-navy-600);
  font-size:12.5px; font-weight:700; transition:background .18s ease;
}
.tkm-pass-toggle:hover{ background:#E7EDF7; }

.tkm-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:0 14px; }
.tkm-date-grid{ display:grid; grid-template-columns:1fr 1.5fr 1fr; gap:10px; }

.tkm-divider{
  display:flex; align-items:center; gap:12px; margin:26px 0 18px;
  font-size:11.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:var(--tkm-muted);
}
.tkm-divider::after{ content:""; flex:1; height:1px; background:var(--tkm-line); }

.tkm-radios{ display:flex; gap:10px; flex-wrap:wrap; }
.tkm-radio{
  display:inline-flex; align-items:center; gap:8px; cursor:pointer;
  padding:10px 16px; border:1px solid var(--tkm-line); border-radius:10px;
  font-size:14px; color:var(--tkm-body); margin:0;
  transition:border-color .18s ease,background .18s ease;
}
.tkm-radio:hover{ border-color:#C6D2E4; }
.tkm-radio input{ accent-color:var(--tkm-navy-600); width:16px; height:16px; margin:0; }

.tkm-check{ display:flex; gap:11px; align-items:flex-start; margin-bottom:12px; }
.tkm-check input{ width:18px; height:18px; margin:1px 0 0; accent-color:var(--tkm-navy-600); flex:none; }
.tkm-check label{ font-size:13.5px; line-height:1.55; color:var(--tkm-body); cursor:pointer; margin:0; font-weight:400; }
.tkm-check label a{ color:var(--tkm-navy-600); font-weight:600; }

.tkm-helper-row{ display:flex; justify-content:flex-end; margin:-4px 0 20px; }

.tkm-link{
  border:0; background:none; padding:0; cursor:pointer;
  font-size:13.5px; font-weight:600; color:var(--tkm-navy-600);
  text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(18,58,126,.32);
}
.tkm-link:hover{ color:var(--tkm-red); text-decoration-color:currentColor; }

/* Campos inyectados por PrivateShop Extra Fields (hook displayCustomerAccountForm).
   Heredan el aspecto del sistema sin tener que tocar ese módulo. */
.tkm-extrafields .form-group,
.tkm-extrafields .form_group{ margin-bottom:16px; }
.tkm-extrafields label{
  display:block; margin-bottom:7px; font-size:13px; font-weight:700; color:var(--tkm-ink);
}
.tkm-extrafields input[type=text],
.tkm-extrafields input[type=email],
.tkm-extrafields input[type=tel],
.tkm-extrafields input[type=number],
.tkm-extrafields input[type=password],
.tkm-extrafields input[type=date],
.tkm-extrafields select,
.tkm-extrafields textarea{
  width:100%; height:50px; padding:0 14px;
  font-family:inherit; font-size:15px; color:var(--tkm-ink);
  background:var(--tkm-surface); border:1px solid var(--tkm-line);
  border-radius:var(--tkm-radius-sm); outline:0; box-shadow:none;
  transition:border-color .18s ease,box-shadow .18s ease;
}
.tkm-extrafields textarea{ height:auto; min-height:96px; padding:13px 14px; line-height:1.55; }
.tkm-extrafields select{
  appearance:none; -webkit-appearance:none; cursor:pointer; padding-right:36px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7C97' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; background-size:17px;
}
.tkm-extrafields input:focus,
.tkm-extrafields select:focus,
.tkm-extrafields textarea:focus{ border-color:var(--tkm-navy-600); box-shadow:var(--tkm-focus); }
.tkm-extrafields input[type=checkbox],
.tkm-extrafields input[type=radio]{ width:auto; height:auto; accent-color:var(--tkm-navy-600); }

/* ==========================================================================
   7. BOTONES
   ========================================================================== */
.tkm-actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:22px; }

.tkm-scope .tkm-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  height:52px; padding:0 24px; border-radius:var(--tkm-radius-sm);
  border:1px solid transparent; cursor:pointer;
  font-family:inherit; font-size:15px; font-weight:700; text-decoration:none; text-transform:none;
  transition:transform .16s ease,box-shadow .18s ease,background .18s ease,color .18s ease;
}
.tkm-btn svg{ width:18px; height:18px; flex:none; }
.tkm-btn:active{ transform:translateY(1px); }
.tkm-btn:focus-visible{ outline:0; box-shadow:var(--tkm-focus); }

.tkm-scope .tkm-btn--primary{
  flex:1 1 220px; color:#fff;
  background:linear-gradient(180deg,var(--tkm-navy-600) 0%,var(--tkm-navy) 100%);
  box-shadow:0 1px 2px rgba(1,20,61,.2),0 10px 22px -12px rgba(1,20,61,.7);
}
.tkm-scope .tkm-btn--primary:hover{
  color:#fff;
  background:linear-gradient(180deg,#1A4795 0%,#06214F 100%);
  box-shadow:0 2px 4px rgba(1,20,61,.22),0 16px 30px -14px rgba(1,20,61,.75);
}
.tkm-scope .tkm-btn--ghost{
  background:var(--tkm-surface); color:var(--tkm-navy); border-color:var(--tkm-line);
}
.tkm-scope .tkm-btn--ghost:hover{ border-color:var(--tkm-navy-400); background:var(--tkm-surface-2); color:var(--tkm-navy); }

.tkm-switch{
  margin-top:22px; padding-top:18px; border-top:1px solid var(--tkm-line-soft);
  font-size:14px; color:var(--tkm-body); text-align:center;
}
.tkm-switch button{
  border:0; background:none; padding:0 0 0 4px; cursor:pointer;
  color:var(--tkm-navy-600); font-weight:700;
  text-decoration:underline; text-underline-offset:3px;
}
.tkm-switch button:hover{ color:var(--tkm-red); }

/* Ayuda directa: teléfono y WhatsApp bajo el formulario de acceso */
.tkm-help{
  margin-top:20px; padding:16px 18px; border-radius:14px;
  background:var(--tkm-surface-2); border:1px solid var(--tkm-line);
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
}
.tkm-help__text{ font-size:13.5px; line-height:1.5; color:var(--tkm-body); flex:1 1 190px; }
.tkm-help__text b{ display:block; color:var(--tkm-ink); font-size:14px; }
.tkm-help__links{ display:flex; gap:8px; flex-wrap:wrap; }
.tkm-help__links a{
  display:inline-flex; align-items:center; gap:7px;
  padding:9px 14px; border-radius:10px; text-decoration:none;
  background:var(--tkm-surface); border:1px solid var(--tkm-line);
  font-size:13.5px; font-weight:700; color:var(--tkm-navy);
  transition:border-color .18s ease,background .18s ease;
}
.tkm-help__links a:hover{ border-color:var(--tkm-navy-400); background:#F0F4FA; color:var(--tkm-navy); }
.tkm-help__links svg{ width:16px; height:16px; }
.tkm-help__links .is-wa{ color:#0B7A44; }
.tkm-help__links .is-wa:hover{ color:#0B7A44; border-color:#8FD3B0; }

/* ==========================================================================
   8. AVISOS Y MENSAJES
   ========================================================================== */
.tkm-scope .alert{
  display:flex; gap:11px; align-items:flex-start;
  padding:14px 16px; border-radius:var(--tkm-radius-sm);
  font-size:14px; line-height:1.55; margin:0 0 18px;
  border:1px solid transparent;
}
.tkm-scope .alert svg{ width:19px; height:19px; flex:none; margin-top:1px; }
.tkm-scope .alert-info{ background:#EEF3FC; border-color:#CFDDF5; color:#123A7E; }
.tkm-scope .alert-success{ background:#EAF6F0; border-color:#BFE3D2; color:var(--tkm-ok); }
.tkm-scope .alert-danger{ background:#FDEDEE; border-color:#F6C9CD; color:var(--tkm-danger); }
.tkm-scope .alert ol,.tkm-scope .alert ul{ margin:0; padding-left:18px; }

.tkm-scope #error_holder:empty{ display:none; }

.tkm-note{
  margin-top:16px; padding:12px 14px; border-radius:var(--tkm-radius-sm);
  font-size:13px; line-height:1.55; color:var(--tkm-body);
  background:var(--tkm-surface-2); border:1px solid var(--tkm-line);
}
.tkm-note--info{ background:#EEF3FC; border-color:#CFDDF5; color:#123A7E; }

.tkm-scope #gif_loader{
  width:32px; height:32px; margin:16px auto 0;
  background-repeat:no-repeat; background-position:center; background-size:contain;
}

/* Páginas de aviso (restricted / deadend) */
.tkm-message{ text-align:center; padding:8px 0 4px; }
.tkm-message h1{
  font-family:var(--tkm-font-head); font-size:26px; font-weight:700;
  color:var(--tkm-ink); margin-bottom:10px;
}
.tkm-message p{ font-size:14.5px; line-height:1.65; color:var(--tkm-body); margin-bottom:10px; }
.tkm-badge{
  display:inline-grid; place-items:center; width:56px; height:56px; margin-bottom:18px;
  border-radius:16px; background:rgba(18,58,126,.07);
  border:1px solid rgba(18,58,126,.16); color:var(--tkm-navy-600);
}
.tkm-badge svg{ width:24px; height:24px; }

.tkm-card__foot{
  margin-top:26px; padding-top:18px; border-top:1px solid var(--tkm-line-soft);
  display:flex; align-items:center; gap:9px 14px; flex-wrap:wrap;
  font-size:12.5px; color:var(--tkm-muted);
}
.tkm-card__foot svg{ width:15px; height:15px; flex:none; color:var(--tkm-ok); }
.tkm-card__foot-links{ margin-left:auto; display:flex; gap:12px; flex-wrap:wrap; }
.tkm-card__foot-links a{ color:var(--tkm-muted); text-decoration:none; font-weight:600; }
.tkm-card__foot-links a:hover{ color:var(--tkm-navy-600); text-decoration:underline; }

.tkm-legal{
  margin-top:22px; text-align:center; max-width:640px;
  font-size:12.5px; line-height:1.7; color:var(--tkm-muted);
}
.tkm-legal a{ color:var(--tkm-navy-600); font-weight:600; text-decoration:none; }
.tkm-legal a:hover{ text-decoration:underline; }

/* ==========================================================================
   9. RESPONSIVE
   ========================================================================== */
@media (max-width:1023px){
  .tkm-shell{ grid-template-columns:1fr; max-width:620px; }
  .tkm-brand{ padding:30px 26px 28px; gap:16px; }
  .tkm-brand__lead{ max-width:none; }
  .tkm-perks{ display:none; }
  .tkm-brand__foot{ display:none; }
}

@media (max-width:600px){
  .tkm-stage{ padding:0 0 28px; }
  .tkm-shell{ border-radius:0; border-left:0; border-right:0; box-shadow:none; }
  .tkm-brand{ padding:26px 20px 24px; }
  .tkm-brand__logo img{ height:28px; }
  .tkm-brand__title{ font-size:27px; }
  .tkm-brand__lead{ font-size:14.5px; }
  .tkm-card{ padding:26px 20px 30px; }
  .tkm-grid-2{ grid-template-columns:1fr; }
  .tkm-date-grid{ grid-template-columns:1fr; }
  .tkm-actions{ flex-direction:column; }
  .tkm-scope .tkm-btn{ width:100%; flex:0 0 auto; height:52px; }
  .tkm-scope .tkm-input,
  .tkm-extrafields input,
  .tkm-extrafields select,
  .tkm-extrafields textarea{ font-size:16px; } /* evita el zoom automático en iOS */
  .tkm-help__links{ width:100%; }
  .tkm-help__links a{ flex:1; justify-content:center; }
  .tkm-legal{ padding:0 20px; }
  .tkm-tab{ font-size:13.5px; }
}

@media (prefers-reduced-motion:reduce){
  .tkm-scope *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

/* Uniform.js (lo carga el módulo en modo integrado) no debe tocar
   los campos del sistema de diseño */
.tkm-scope div.selector,
.tkm-scope div.checker,
.tkm-scope div.radio{ background:none !important; height:auto !important; width:auto !important; }
.tkm-scope div.selector select{ position:static !important; opacity:1 !important; height:50px !important; }

/* ==========================================================================
   10. PÁGINA DE ACCESO INDEPENDIENTE (sin cabecera ni pie del tema)
   ========================================================================== */
body.tkm-page{
  margin:0; min-height:100vh;
  font-family:'Barlow', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
  color:#0D1B33; background:#EFF3F9;
  background-image:
    radial-gradient(900px 520px at 15% -10%, rgba(18,58,126,.10), transparent 62%),
    radial-gradient(760px 480px at 105% 8%, rgba(223,2,20,.055), transparent 60%),
    linear-gradient(rgba(1,20,61,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(1,20,61,.035) 1px, transparent 1px);
  background-size:auto,auto,34px 34px,34px 34px;
  background-attachment:fixed;
  -webkit-text-size-adjust:100%;
}
/* Si el comerciante configura fondo propio en el módulo, manda el suyo */
body#bg-private-image,
body#bg-private-image_video,
body#bg-private-color{ background-image:none; }
body#bg-private-image[style],
body#bg-private-image_video[style]{ background-image:inherit; }

body.tkm-page > .tkm-stage{ min-height:100vh; min-height:100dvh; padding:0; }

/* Estructura a pantalla completa: sin márgenes y sin scroll de página.
   Si un panel (p. ej. el alta) es más alto que la ventana, se desplaza
   dentro de la tarjeta, no la página. */
body.tkm-page .tkm-shell{
  max-width:none; min-height:100vh; min-height:100dvh;
  border:0; border-radius:0; box-shadow:none;
  grid-template-columns:minmax(0,.78fr) minmax(0,1fr);
}
body.tkm-page .tkm-brand{ padding:clamp(32px,4vw,64px); }
body.tkm-page .tkm-brand__logo{ margin-bottom:auto; }
body.tkm-page .tkm-card{
  padding:clamp(28px,4vw,72px);
  max-height:100vh; max-height:100dvh; overflow-y:auto;
}
body.tkm-page .tkm-card > *{ width:100%; max-width:600px; margin-left:auto; margin-right:auto; }
body.tkm-page .tkm-card__head{ margin-top:auto; }
body.tkm-page .tkm-card__foot{ margin-bottom:auto; }
body.tkm-page .tkm-panels{ flex:0 0 auto; }

@media (max-width:1023px){
  body.tkm-page .tkm-shell{ grid-template-columns:1fr; min-height:100vh; min-height:100dvh; }
  body.tkm-page .tkm-brand{ padding:26px 22px 24px; }
  body.tkm-page .tkm-brand__logo{ margin-bottom:0; }
  body.tkm-page .tkm-card{ max-height:none; overflow:visible; }
  body.tkm-page .tkm-card__head{ margin-top:0; }
}
