/* mera-core: estilos de formularios públicos (CF7 + captcha custom) */

/* Grid 2 columnas para CF7 dentro de páginas */
.cf7-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:640px) { .cf7-row { grid-template-columns:1fr; } }

.wpcf7 label {
  display:block; font-weight:600; color:#0E4A26;
  margin-bottom:0.5rem; font-size:0.9375rem;
}
.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 input[type=tel],
.wpcf7 input[type=number],
.wpcf7 select,
.wpcf7 textarea {
  width:100%; padding:0.75rem 0.875rem;
  border:1.5px solid #D0DAD3; border-radius:8px;
  font-size:0.9375rem; font-family:inherit;
  margin-top:0.25rem; background:#fff;
  transition:border-color .15s, box-shadow .15s;
}
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus {
  border-color:#1F7A3F; outline:0; box-shadow:0 0 0 3px #1F7A3F22;
}
.wpcf7 textarea { resize:vertical; min-height:130px; }
.wpcf7 input[type=file] { padding:0.5rem; background:#F4F8F5; cursor:pointer; }

.wpcf7 .wpcf7-list-item { display:block; margin:0.375rem 0; font-weight:400; }
.wpcf7 .wpcf7-list-item label { display:inline; font-weight:400; }
.wpcf7 .wpcf7-acceptance label { font-weight:400 !important; font-size:0.875rem; color:#3A413E; }

.wpcf7 input[type=submit] {
  background:linear-gradient(135deg,#1F7A3F 0%,#0E4A26 100%);
  color:#fff; border:0; padding:1rem 2.5rem; border-radius:10px;
  font-size:1rem; font-weight:700; cursor:pointer; margin-top:1.5rem;
  box-shadow:0 4px 14px rgba(31,122,63,0.3);
  transition:transform .15s, box-shadow .15s;
}
.wpcf7 input[type=submit]:hover { transform:translateY(-2px); box-shadow:0 6px 18px rgba(31,122,63,0.4); }

/* Ticket form — botón rojo de envío */
.tk-form-panel .wpcf7 input[type=submit] {
  background:linear-gradient(135deg,#C0392B 0%,#7A1D14 100%);
  box-shadow:0 6px 18px rgba(192,57,43,0.35);
}
.tk-form-panel .wpcf7 input[type=submit]:hover { box-shadow:0 10px 24px rgba(192,57,43,0.45); }

/* Honeypots y campos trap — siempre ocultos */
.cf7-hp,
.website-wrap,
.empresa_web-wrap,
.fax_numero-wrap,
[class*="empresa_web"],
[class*="fax_numero"],
[class*="cf7-hp"] {
  display:none !important;
  position:absolute !important;
  left:-9999px !important;
}

/* Info callout LOTAIP */
.cf7-info {
  background:#FFF7E6; border-left:4px solid #F7A823; border-radius:8px;
  padding:1rem 1.25rem; margin-bottom:1.25rem;
}
.cf7-info p { margin:0; font-size:0.9375rem; color:#0E4A26; }

/* Ticket intro */
.ticket-intro {
  background:linear-gradient(135deg,#FFF7E6 0%,#FCE7B8 100%);
  border-left:4px solid #F7A823; border-radius:10px;
  padding:1rem 1.25rem; margin-bottom:1.5rem;
}
.ticket-intro p { margin:0; color:#7A4E0A; font-size:0.9375rem; }
.ticket-intro strong { color:#0E4A26; }

/* ─────────────────────────────────────────────────────────
 * CAPTCHA custom (MeraCaptcha)
 * ───────────────────────────────────────────────────────── */
.cf7-captcha {
  background:linear-gradient(135deg,#FFF7E6 0%,#FCE7B8 100%);
  border:2px solid #F7A823;
  border-radius:14px;
  padding:1.25rem 1.5rem;
  margin:1.5rem 0;
  display:flex; flex-direction:column; gap:0.5rem;
}
.cf7-captcha::before {
  content:'\1F6E1\FE0F  Anti-spam · Verificación humana';
  font-size:0.75rem; letter-spacing:0.12em; text-transform:uppercase;
  color:#B36A0A; font-weight:700;
}
.cf7-captcha label {
  color:#7A4E0A !important;
  font-weight:700 !important;
  margin:0 !important;
  display:block;
}
.cf7-captcha .mera-captcha-question {
  display:inline-block;
  background:#fff;
  padding:0.625rem 1rem;
  border-radius:8px;
  border:1px solid #F7A823;
  color:#0E4A26;
  font-size:1.125rem;
  font-weight:700;
  margin:0.375rem 0 0.5rem;
  max-width:100%;
}
.cf7-captcha input.mera-captcha-input {
  max-width:280px;
  border:1.5px solid #F7A823 !important;
  background:#fff !important;
  font-size:1.125rem !important;
  font-weight:600;
  padding:0.625rem 0.875rem !important;
  border-radius:8px;
  margin-top:0 !important;
}
.cf7-captcha input.mera-captcha-input:focus {
  border-color:#0E4A26 !important;
  outline:0;
  box-shadow:0 0 0 3px #F7A82344 !important;
}

/* Estados de respuesta */
.wpcf7-response-output {
  border-radius:10px !important;
  padding:1rem 1.25rem !important;
  font-size:0.9375rem;
  margin-top:1.5rem !important;
}
.wpcf7 form.sent .wpcf7-response-output {
  background:#E8F5EC; border:1.5px solid #1F7A3F !important; color:#0E4A26;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
  background:#FEEAE8; border:1.5px solid #C0392B !important; color:#7A1D14;
}
.wpcf7 form.spam .wpcf7-response-output {
  background:#FFF7E6; border:1.5px solid #F7A823 !important; color:#7A4E0A;
}
.wpcf7-not-valid-tip {
  color:#C0392B; font-size:0.8125rem; margin-top:0.25rem; font-weight:600;
}

/* ─────────────────────────────────────────────────────────
 * Ticket page (/contacto/quejas/)
 * ───────────────────────────────────────────────────────── */
.tk-hero {
  background:
    radial-gradient(circle at 15% 25%, rgba(247,168,35,0.18) 0%, transparent 50%),
    radial-gradient(circle at 85% 75%, rgba(192,57,43,0.18) 0%, transparent 55%),
    linear-gradient(135deg,#0E4A26 0%,#1F7A3F 50%,#37A961 100%);
  min-height:380px; padding:4rem 1.5rem; color:#fff; text-align:center;
  display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden;
}
.tk-hero__inner { max-width:820px; position:relative; z-index:2; }
.tk-hero__tag { color:#f7a823; font-size:0.8125rem; letter-spacing:0.2em; text-transform:uppercase; font-weight:700; margin:0 0 0.5rem; }
.tk-hero__icon { font-size:5rem; display:block; margin:0.25rem 0 0.75rem; line-height:1; filter:drop-shadow(0 4px 12px rgba(0,0,0,0.3)); }
.tk-hero h1 { color:#fff; font-size:clamp(2rem,4vw,3.25rem); font-weight:800; margin:0 0 0.75rem; line-height:1.05; }
.tk-hero__sub { color:#fff; font-size:1.125rem; opacity:0.95; margin:0 0 1.5rem; }
.tk-hero__pills { display:flex; gap:0.5rem; justify-content:center; flex-wrap:wrap; }
.tk-hero__pill { background:rgba(255,255,255,0.15); border:1px solid rgba(255,255,255,0.3); padding:0.375rem 0.875rem; border-radius:50px; font-size:0.8125rem; font-weight:600; color:#fff; }

.tk-wrap { max-width:1100px; margin:0 auto; padding:3rem 1.5rem; }

.tk-steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1rem; margin:-50px auto 3rem; max-width:1100px; padding:0 1.5rem; position:relative; z-index:10; }
.tk-step { background:#fff; border:1px solid #E5E9E7; border-radius:14px; padding:1.25rem; text-align:center; box-shadow:0 8px 22px rgba(14,74,38,0.1); }
.tk-step__num { display:inline-flex; width:32px; height:32px; background:#1F7A3F; color:#fff; border-radius:50%; align-items:center; justify-content:center; font-weight:800; margin-bottom:0.5rem; }
.tk-step__title { color:#0E4A26; font-weight:700; font-size:0.9375rem; margin:0 0 0.25rem; }
.tk-step__desc { color:#6B7670; font-size:0.8125rem; margin:0; }

.tk-security { background:#F4F8F5; border:1px solid #D0DAD3; border-radius:16px; padding:1.5rem; margin-bottom:2.5rem; }
.tk-security__title { color:#0E4A26; font-size:1.0625rem; margin:0 0 0.875rem; display:flex; align-items:center; gap:0.5rem; }
.tk-security__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:0.75rem; }
.tk-security__item { background:#fff; border:1px solid #D0DAD3; border-radius:10px; padding:0.875rem; display:flex; gap:0.625rem; align-items:flex-start; }
.tk-security__item__icon { font-size:1.5rem; flex:0 0 auto; }
.tk-security__item__txt { font-size:0.8125rem; color:#3A413E; line-height:1.4; }
.tk-security__item__txt strong { color:#1F7A3F; display:block; margin-bottom:0.125rem; }

.tk-form-panel { background:#fff; border:1px solid #D0DAD3; border-top:5px solid #C0392B; border-radius:20px; padding:2.5rem 2rem; box-shadow:0 8px 24px rgba(0,0,0,0.06); }
.tk-form-panel h2 { color:#0E4A26; font-size:1.5rem; margin:0 0 0.5rem; display:flex; align-items:center; gap:0.5rem; }
.tk-form-panel > p { color:#6B7670; margin:0 0 1.75rem; font-size:0.9375rem; }

.tk-help { background:#0E4A26; color:#fff; border-radius:16px; padding:2rem; margin-top:3rem; text-align:center; }
.tk-help h3 { color:#fff; font-size:1.25rem; margin:0 0 1rem; }
.tk-help p { color:#fff; margin:0 0 0.5rem; }
.tk-help__row { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-top:0.5rem; }
.tk-help__row a { background:#F7A823; color:#0E4A26; padding:0.625rem 1.25rem; border-radius:8px; text-decoration:none; font-weight:700; font-size:0.875rem; }
.tk-help__row a:hover { background:#fff; }

/* ─────────────────────────────────────────────────────────
 * Contacto page (/contacto/)
 * ───────────────────────────────────────────────────────── */
.contact-hero {
  background:
    radial-gradient(circle at 20% 30%, rgba(247,168,35,0.15) 0%, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(55,169,97,0.25) 0%, transparent 50%),
    linear-gradient(135deg,#0E4A26 0%,#1F7A3F 50%,#37A961 100%);
  min-height:420px; display:flex; align-items:center; justify-content:center;
  text-align:center; padding:4rem 1.5rem; color:#fff; position:relative; overflow:hidden;
}
.contact-hero::before {
  content:""; position:absolute; top:-50px; right:-50px; width:300px; height:300px;
  background:radial-gradient(circle, rgba(247,168,35,0.2) 0%, transparent 70%);
  border-radius:50%;
}
.contact-hero__icon { font-size:5rem; margin-bottom:1rem; display:block; line-height:1;
  filter:drop-shadow(0 4px 12px rgba(0,0,0,0.3)); animation:contactPulse 3s ease-in-out infinite; }
@keyframes contactPulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.05)} }
.contact-hero h1 { color:#fff; font-size:clamp(2.25rem,4.5vw,3.75rem); font-weight:800; margin:0 0 0.75rem; line-height:1.05; text-shadow:0 2px 8px rgba(0,0,0,0.2); }
.contact-hero__tag { color:#f7a823; font-size:0.875rem; letter-spacing:0.2em; text-transform:uppercase; font-weight:700; margin:0 0 0.5rem; }
.contact-hero__sub { color:#fff; font-size:1.25rem; margin:0; max-width:700px; opacity:0.95; }

.contact-wrap { max-width:1180px; margin:0 auto; padding:3.5rem 1.5rem; }

.contact-actions { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.5rem; margin:-90px auto 4rem; position:relative; z-index:10; max-width:1180px; padding:0 1.5rem; }
.contact-action { background:#fff; border-radius:20px; padding:2.25rem 1.5rem; text-align:center; text-decoration:none; color:inherit; box-shadow:0 12px 32px rgba(14,74,38,0.12); border:1px solid #E5E9E7; transition:transform .2s, box-shadow .2s, border-color .2s; display:flex; flex-direction:column; align-items:center; min-height:240px; }
.contact-action:hover { transform:translateY(-6px); box-shadow:0 20px 40px rgba(14,74,38,0.18); border-color:#1F7A3F; }
.contact-action__icon { font-size:3.5rem; line-height:1; width:90px; height:90px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:1rem; }
.contact-action__icon--green { background:linear-gradient(135deg,#E8F5EC 0%,#C5E5CF 100%); }
.contact-action__icon--orange { background:linear-gradient(135deg,#FFF7E6 0%,#FCE0AC 100%); }
.contact-action__icon--blue { background:linear-gradient(135deg,#E6F4F8 0%,#B8DDE9 100%); }
.contact-action__icon--red { background:linear-gradient(135deg,#FEEAE8 0%,#F5C2BC 100%); }
.contact-action__label { font-size:0.75rem; letter-spacing:0.12em; text-transform:uppercase; color:#6B7670; font-weight:700; margin:0 0 0.5rem; }
.contact-action__value { font-size:1.125rem; font-weight:700; color:#0E4A26; margin:0 0 0.75rem; line-height:1.3; word-break:break-word; }
.contact-action__btn { margin-top:auto; background:#1F7A3F; color:#fff; padding:0.625rem 1.25rem; border-radius:8px; font-size:0.875rem; font-weight:700; text-decoration:none; display:inline-block; }
.contact-action:hover .contact-action__btn { background:#0E4A26; }

.section-title { text-align:center; margin:0 0 0.75rem; font-size:2rem; color:#0E4A26; font-weight:800; }
.section-sub { text-align:center; color:#6B7670; margin:0 0 2.5rem; font-size:1.0625rem; }

.contact-map { background:#fff; border-radius:24px; overflow:hidden; box-shadow:0 8px 28px rgba(0,0,0,0.08); border:1px solid #E5E9E7; margin-bottom:4rem; }
.contact-map__header { padding:1.75rem 2rem; background:linear-gradient(90deg,#0E4A26 0%,#1F7A3F 100%); color:#fff; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
.contact-map__title { margin:0; font-size:1.375rem; color:#fff; display:flex; align-items:center; gap:0.625rem; }
.contact-map__title span { font-size:1.75rem; }
.contact-map__cta { background:#F7A823; color:#0E4A26; padding:0.625rem 1.25rem; border-radius:8px; text-decoration:none; font-weight:700; font-size:0.875rem; display:inline-flex; align-items:center; gap:0.5rem; }
.contact-map__cta:hover { background:#fff; }
.contact-map iframe { display:block; width:100%; height:480px; border:0; }
.contact-map__footer { padding:1.25rem 2rem; background:#F4F8F5; border-top:1px solid #E5E9E7; display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem; font-size:0.875rem; color:#3A413E; }
.contact-map__coords { font-family:ui-monospace,SFMono-Regular,monospace; color:#6B7670; }

.contact-schedule { background:linear-gradient(135deg,#0E4A26 0%,#1F7A3F 100%); border-radius:24px; padding:3rem 2rem; color:#fff; margin-bottom:4rem; text-align:center; position:relative; overflow:hidden; }
.contact-schedule::before { content:"🕐"; position:absolute; font-size:18rem; opacity:0.05; top:-2rem; right:-2rem; }
.contact-schedule h2 { color:#fff; font-size:1.875rem; margin:0 0 0.5rem; position:relative; }
.contact-schedule__sub { color:#f7a823; font-size:0.875rem; letter-spacing:0.15em; text-transform:uppercase; margin:0 0 2rem; font-weight:700; position:relative; }
.contact-schedule__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1rem; max-width:900px; margin:0 auto; position:relative; }
.contact-schedule__day { background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.15); border-radius:14px; padding:1.25rem 1rem; }
.contact-schedule__day--closed { background:rgba(0,0,0,0.2); opacity:0.65; }
.contact-schedule__day-name { font-size:0.75rem; letter-spacing:0.12em; text-transform:uppercase; color:#f7a823; font-weight:700; margin:0 0 0.5rem; }
.contact-schedule__day-hours { font-size:1.125rem; font-weight:700; margin:0; color:#fff; }

.contact-depts { background:#F4F8F5; border-radius:20px; padding:2.5rem 2rem; margin-bottom:4rem; }
.contact-depts__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1rem; margin-top:1.5rem; }
.contact-dept { background:#fff; border:1px solid #D0DAD3; border-radius:12px; padding:1.25rem; display:flex; gap:0.875rem; align-items:flex-start; transition:border-color .15s, transform .15s; }
.contact-dept:hover { border-color:#1F7A3F; transform:translateY(-2px); }
.contact-dept__icon { font-size:1.75rem; flex:0 0 auto; background:#E8F5EC; width:48px; height:48px; border-radius:10px; display:flex; align-items:center; justify-content:center; }
.contact-dept__body { flex:1; min-width:0; }
.contact-dept__name { font-weight:700; color:#0E4A26; margin:0 0 0.25rem; font-size:0.9375rem; }
.contact-dept__ext { font-size:0.8125rem; color:#6B7670; margin:0; }
.contact-dept__ext strong { color:#1F7A3F; }

.forms-jump { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; margin-bottom:3rem; }
@media (max-width:640px) { .forms-jump { grid-template-columns:1fr; } }
.forms-jump a { padding:2rem 1.5rem; border-radius:20px; text-decoration:none; text-align:center; display:flex; flex-direction:column; gap:0.5rem; transition:transform .15s, box-shadow .15s; box-shadow:0 6px 18px rgba(0,0,0,0.08); }
.forms-jump a:hover { transform:translateY(-3px); box-shadow:0 12px 28px rgba(0,0,0,0.12); }
.forms-jump__pqr { background:linear-gradient(135deg,#1F7A3F 0%,#0E4A26 100%); color:#fff; }
.forms-jump__lotaip { background:linear-gradient(135deg,#F7A823 0%,#D88A0A 100%); color:#0E4A26; }
.forms-jump__icon { font-size:3rem; line-height:1; }
.forms-jump__title { font-size:1.25rem; font-weight:800; }
.forms-jump__sub { font-size:0.875rem; opacity:0.9; }

.form-module { background:#fff; border:1px solid #D0DAD3; border-radius:20px; padding:2.25rem; margin-bottom:2.5rem; box-shadow:0 6px 20px rgba(0,0,0,0.06); scroll-margin-top:90px; }
.form-module--pqr { border-top:5px solid #1F7A3F; }
.form-module--lotaip { border-top:5px solid #F7A823; }
.form-module h2 { color:#0E4A26; font-size:1.5rem; margin:0 0 0.5rem; display:flex; align-items:center; gap:0.5rem; }
.form-module > p { color:#6B7670; margin:0 0 1.5rem; }

.contact-social { background:#fff; border:1px solid #D0DAD3; border-radius:20px; padding:2rem; margin-bottom:3rem; text-align:center; }
.contact-social__title { margin:0 0 1.25rem; color:#0E4A26; font-size:1.25rem; }
.contact-social__row { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.contact-social a { display:inline-flex; align-items:center; gap:0.5rem; padding:0.75rem 1.25rem; background:#F4F8F5; border:1px solid #D0DAD3; border-radius:50px; text-decoration:none; color:#0E4A26; font-weight:600; font-size:0.9375rem; transition:all .15s; }
.contact-social a:hover { background:#1F7A3F; color:#fff; border-color:#1F7A3F; }

@media (max-width:720px) {
  .contact-actions { margin-top:-60px; }
  .contact-schedule { padding:2rem 1.25rem; }
  .form-module { padding:1.5rem; }
  .contact-map iframe { height:360px; }
}

/* ─────────────────────────────────────────────────────────
 * Fix: romper contenedor del tema para hero full-bleed
 * + ocultar título duplicado del template en pages contacto/quejas
 * ───────────────────────────────────────────────────────── */
.page-id-204 .mera-section__head,
.page-id-213 .mera-section__head { display:none; }

.page-id-204 .mera-container,
.page-id-213 .mera-container { max-width:none !important; padding:0 !important; }

.page-id-204 .mera-page-content,
.page-id-213 .mera-page-content,
.page-id-204 .mera-page-content__body,
.page-id-213 .mera-page-content__body { padding:0 !important; margin:0 !important; max-width:none !important; }

.page-id-204 .mera-section,
.page-id-213 .mera-section { padding:0 !important; }

/* Forzar full-bleed por si el container persiste */
.contact-hero, .tk-hero {
  position:relative;
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}
