/*
Theme Name: TECHO Child
Theme URI: https://techo.com.bo
Description: Tema hijo de Astra para TECHO S.A. Contiene los widgets propios de Elementor, el botón flotante de WhatsApp y los ajustes de CSS que el Personalizador no cubre. Diseño editable con Elementor free.
Author: Desarrollo TI
Template: astra
Version: 1.0.0
Text Domain: techo-child
*/

/* ===== Variables de marca ===== */
:root{
	--tc-green:#12582D; --tc-green-dark:#0D3F20; --tc-orange:#F26222;
	--tc-orange-dark:#D44E14; --tc-red:#DA1C23; --tc-muted:#6B6B6B;
}

/* ===== Header ===== */
/* Container ancho del header (como producción: logo a la izquierda, menú a la derecha) */
#masthead .ast-container,
#masthead .site-primary-header-wrap .ast-container,
#masthead .ast-builder-grid-row-container-inner{max-width:1760px;}
#masthead .ast-container{padding-left:35px;padding-right:35px;}
/* Sombra del header como producción (Astra free no trae esta opción) */
#masthead{box-shadow:0 2px 14px rgba(0,0,0,.10);}
/* Menú en una sola línea (fuente, tamaño y espaciado se editan en Personalizar > Menú principal) */
#masthead .main-header-menu > .menu-item > a{white-space:nowrap;}
/* Sin flechita en "Promociones" en escritorio (el submenú se abre al pasar el mouse, como producción) */
#ast-hf-menu-1 > .menu-item-has-children > .menu-link .dropdown-menu-toggle{display:none;}
/* Quitar el padding 1em del logo que agranda el header (error conocido #10) */
#masthead .site-branding.ast-site-identity{padding:11px 0;}
/* Header fijo (sticky) en escritorio y móvil */
#masthead{position:sticky;top:0;z-index:100;}
.admin-bar #masthead{top:32px;}
@media (max-width:782px){.admin-bar #masthead{top:46px;}}
/* En celulares (≤600px) la barra de admin de WordPress se desplaza con la página: el header se pega arriba del todo */
@media (max-width:600px){.admin-bar #masthead{top:0;}}
/* Header compacto en tablet/celular (alto y ancho del logo se ajustan en Personalizar > Header) */
@media (max-width:921px){#masthead .site-branding.ast-site-identity{padding:6px 0;}}
/* Pantallas intermedias (922–1279px, antes del menú hamburguesa): el logo, el texto y el espaciado
   del menú se achican de forma gradual para que todo quepa en UNA línea.
   En 1280px quedan exactamente los valores de escritorio (logo 209, texto 13.5px, espaciado 11px). */
@media (min-width:922px) and (max-width:1279.98px){
	#masthead .ast-container{padding-left:calc(4.19vw - 18.63px);padding-right:calc(4.19vw - 18.63px);}
	#masthead .ast-builder-grid-row{grid-column-gap:calc(2.793vw - 15.75px);column-gap:calc(2.793vw - 15.75px);}
	#masthead .site-logo-img{padding-right:calc(2.235vw - 12.6px);}
	#masthead .site-logo-img .custom-logo-link img.custom-logo{width:calc(22.07vw - 73.5px);max-width:calc(22.07vw - 73.5px);height:auto;}
	#masthead #ast-hf-menu-1 > .menu-item > .menu-link{font-size:calc(5.276px + .6425vw);padding-left:calc(1.676vw - 10.45px);padding-right:calc(1.676vw - 10.45px);}
}

/* ===== Footer: 2 filas de 3 bloques (ícono naranja + título + dato), como el original ===== */
.site-footer .footer-widget-area .widget_block{margin:0;padding:0;}
.site-footer .wp-block-columns.tc-foot-row{max-width:1040px;margin:0 auto;gap:30px;text-align:center;align-items:flex-start;}
.site-footer .tc-foot-row .wp-block-column{flex:1 1 0;}
.site-footer .tc-foot-icon{display:inline-flex;justify-content:center;margin-bottom:10px;color:var(--tc-orange);line-height:0;}
.site-footer .tc-foot-row h4{font-family:'Montserrat',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.6px;font-size:1.1rem;line-height:1.2;color:#333;margin:0 0 .5em;}
.site-footer .tc-foot-row p{font-size:16px;line-height:1.65;color:var(--tc-muted);max-width:320px;margin:0 auto;}
.site-footer .tc-foot-row a{color:var(--tc-muted);text-decoration:none;}
.site-footer .tc-foot-row a:hover{color:var(--tc-orange);}
.site-footer .ast-footer-copyright p{margin:0;}
.site-footer .ast-footer-copyright{line-height:1.65;}
/* Astra agrega 10px bajo cada bloque del footer al apilarse en tablet/celular; el original no los tiene */
#colophon .site-footer-section{margin-bottom:0;}
/* Tablet/celular: bloques de a 2 por fila; los marcados con la clase tc-foot-ancho
   (Oficina Central y YouTube) ocupan todo el ancho. La clase se cambia en Apariencia > Widgets > bloque Columna > Avanzado. */
@media (max-width:860px){
	.site-footer .wp-block-columns.tc-foot-row{display:grid;grid-template-columns:1fr 1fr;gap:34px 16px;align-items:start;}
	.site-footer .tc-foot-row .wp-block-column{width:auto;min-width:0;margin:0;}
	.site-footer .tc-foot-row .wp-block-column.tc-foot-ancho{grid-column:1 / -1;}
}

/* ===== Divisor "techo" del original (picos en dos tonos) sobre los divisores de forma de Elementor.
   Se activa con la clase tc-techo-div en el contenedor; el SVG nativo se oculta. ===== */
.e-con.tc-techo-div > .elementor-shape,
.e-con.tc-techo-div > .e-con-inner > .elementor-shape{height:11vw;background-color:#fff;line-height:0;z-index:2;
	-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201280%20140'%20preserveAspectRatio='none'%3E%3Cg%20fill='%23000000'%3E%3Cpath%20d='M0%2090.72l140-28.28%20315.52%2024.14L796.48%2065.8%201140%20104.89l140-14.17V0H0v90.72z'%20fill-opacity='.5'/%3E%3Cpath%20d='M0%200v47.44L170%200l626.48%2094.89L1110%2087.11l170-39.67V0H0z'/%3E%3C/g%3E%3C/svg%3E") no-repeat;
	mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201280%20140'%20preserveAspectRatio='none'%3E%3Cg%20fill='%23000000'%3E%3Cpath%20d='M0%2090.72l140-28.28%20315.52%2024.14L796.48%2065.8%201140%20104.89l140-14.17V0H0v90.72z'%20fill-opacity='.5'/%3E%3Cpath%20d='M0%200v47.44L170%200l626.48%2094.89L1110%2087.11l170-39.67V0H0z'/%3E%3C/g%3E%3C/svg%3E") no-repeat;
	-webkit-mask-size:200% 11vw;mask-size:200% 11vw;}
.e-con.tc-techo-div .elementor-shape svg{display:none;}
.e-con.tc-techo-div > .elementor-shape-top,
.e-con.tc-techo-div > .e-con-inner > .elementor-shape-top{top:-1px;transform:none;}
.e-con.tc-techo-div > .elementor-shape-bottom,
.e-con.tc-techo-div > .e-con-inner > .elementor-shape-bottom{bottom:-1px;transform:scale(-1,-1);}
.e-con.tc-techo-div > .e-con-inner > .elementor-element:not(.elementor-absolute){position:relative;z-index:3;}
/* Variante alta (hero de páginas internas, como el original: 20vw) */
.e-con.tc-techo-div.tc-div-alto > .elementor-shape,
.e-con.tc-techo-div.tc-div-alto > .e-con-inner > .elementor-shape{height:20vw;-webkit-mask-size:200% 20vw;mask-size:200% 20vw;}
/* Variante media (hero compacto de páginas internas: 13vw) */
.e-con.tc-techo-div.tc-div-medio > .elementor-shape,
.e-con.tc-techo-div.tc-div-medio > .e-con-inner > .elementor-shape{height:13vw;-webkit-mask-size:200% 13vw;mask-size:200% 13vw;}
/* Divisor superior naranja cuando la sección de arriba es naranja (Proyectos) */
.e-con.tc-techo-div.tc-arriba-naranja > .elementor-shape-top,
.e-con.tc-techo-div.tc-arriba-naranja > .e-con-inner > .elementor-shape-top{background-color:var(--tc-orange);}

/* ===== Hero de páginas internas: texto gigante de fondo ("marca de agua") ===== */
.tc-watermark{pointer-events:none;overflow:hidden;}
.tc-watermark .elementor-heading-title{white-space:nowrap;}

/* ===== Banner de estadística: las negritas van en naranja ===== */
.tc-stat strong{color:var(--tc-orange);}

/* ===== Tarjetas de Proyectos (fondo naranja): ícono de línea verde ===== */
.tc-fstat-icon{display:flex;color:var(--tc-green);line-height:0;}

/* ===== Botón flotante de WhatsApp ===== */
.tc-wa-float{position:fixed;right:22px;bottom:22px;z-index:1500;width:58px;height:58px;border-radius:50%;background:#25d366;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.3);transition:transform .2s,background .2s !important;}
.tc-wa-float:hover{background:#1ebe5b;transform:scale(1.07);}
.tc-wa-float svg{width:32px;height:32px;fill:#fff;}

/* ===== Animaciones =====
   Elementor anula TODAS las transiciones (html *{transition-duration:0s!important}) cuando Windows/el sistema
   tiene "reducir movimiento" activado; el sitio original sí las muestra. Por eso las transiciones propias
   del sitio (slider, lista, galerías, visor, redes, botones, menú, WhatsApp) llevan !important. */
.elementor-button{transition:background-color .3s,color .3s !important;}
#masthead .main-header-menu .menu-link{transition:color .2s !important;}

/* ===== Botones (evitar que Astra pise el color al enfocar/hover) ===== */
.elementor-button:focus,.elementor-button:hover{color:#fff;}

/* ===== Slider TECHO (widget propio) ===== */
/* Alto como el original: clamp(320px, 38vw, 520px) — el control "Altura" del widget fija los 38vw */
.tc-slider{position:relative;width:100%;overflow:hidden;background:var(--tc-green-dark);min-height:320px;max-height:520px;}
.tc-slider .tc-slides{position:absolute;inset:0;}
.tc-slider .tc-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .8s ease !important;}
.tc-slider .tc-slide.is-active{opacity:1;}
/* Flechas y puntos: Astra estiliza todo <button> (padding, fondo, radio) y los ovalaba.
   Se fija tamaño exacto con especificidad mayor (error conocido #11). */
.tc-slider .tc-slider-arrow{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:48px;height:48px;min-width:48px;padding:0;margin:0;border:0;border-radius:50%;background:rgba(13,63,32,.45);color:#fff;font-size:20px;line-height:1;cursor:pointer;z-index:3;transition:background .2s !important;box-shadow:none;}
.tc-slider .tc-slider-arrow:hover,.tc-slider .tc-slider-arrow:focus{background:var(--tc-orange);color:#fff;}
.tc-slider .tc-slider-arrow.prev{left:18px;} .tc-slider .tc-slider-arrow.next{right:18px;}
.tc-slider-dots{position:absolute;bottom:18px;left:0;right:0;display:flex;justify-content:center;gap:10px;z-index:3;}
.tc-slider .tc-slider-dots .tc-dot{box-sizing:border-box;width:13px;height:13px;min-width:13px;padding:0;margin:0;border:2px solid #fff;border-radius:50%;background:transparent;cursor:pointer;transition:background .2s !important;}
.tc-slider .tc-slider-dots .tc-dot:hover,.tc-slider .tc-slider-dots .tc-dot:focus{background:rgba(255,255,255,.5);}
.tc-slider .tc-slider-dots .tc-dot.is-active{background:#fff;}
@media(max-width:560px){.tc-slider .tc-slider-arrow{display:none;}}

/* ===== Lista "Más Información" (widget propio, réplica del original) ===== */
.tc-info__item{padding:6px 0 14px;margin-bottom:14px;}
.tc-info__head{display:flex;align-items:center;gap:14px;}
.tc-info__check{display:inline-flex;flex:0 0 30px;width:30px;height:30px;align-items:center;justify-content:center;border-radius:50%;background:var(--tc-green);color:#fff;font-size:15px;line-height:1;}
.tc-info__title{font-family:'Montserrat',sans-serif;font-style:italic;font-weight:700;font-size:1.18rem;line-height:1.65;color:var(--tc-green);}
.elementor-widget-tc_info_list .tc-info .tc-info__toggle,
.elementor-widget-tc_info_list .tc-info .tc-info__toggle:hover,
.elementor-widget-tc_info_list .tc-info .tc-info__toggle:focus{display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;width:calc(100% - 44px);margin:6px 0 0 44px;padding:8px 0 12px;background:none;border:0;border-bottom:1px solid #e2e6e2;border-radius:0;box-shadow:none;color:inherit;font-size:inherit;line-height:1.4;text-align:left;text-transform:none;letter-spacing:0;cursor:pointer;}
.tc-info__more{font-family:'Montserrat',sans-serif;font-style:italic;font-weight:500;font-size:.98rem;color:var(--tc-muted);}
.tc-info__plus{display:inline-flex;flex:0 0 24px;width:24px;height:24px;align-items:center;justify-content:center;box-sizing:border-box;border-radius:50%;border:2px solid var(--tc-orange);color:var(--tc-orange);font-size:1rem;line-height:1;transition:transform .25s !important;}
.tc-info__item.is-open .tc-info__plus{transform:rotate(45deg);}
.tc-info__body{max-height:0;overflow:hidden;margin-left:44px;transition:max-height .35s ease !important;color:var(--tc-muted);}
.tc-info__item.is-open .tc-info__body{max-height:400px;}
.tc-info__text{padding-top:12px;}
.tc-info__text p:last-child{margin-bottom:0;}

/* ===== Redes sociales (home) ===== */
.tc-redes .elementor-social-icon{transition:transform .2s,background-color .2s !important;}
.tc-redes .elementor-social-icon:hover{transform:translateY(-5px);}

/* ===== Galería de fotos y de videos (widgets propios, réplica del original) ===== */
.tc-photo-grid,.tc-video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.tc-video-grid{gap:26px;}
/* Ancho definido: con "wrap" de Elementor en celular el alto se calculaba con el ancho intrínseco del iframe (300px) */
.e-con > .elementor-widget-tc_galeria_fotos,.e-con > .e-con-inner > .elementor-widget-tc_galeria_fotos,
.e-con > .elementor-widget-tc_galeria_videos,.e-con > .e-con-inner > .elementor-widget-tc_galeria_videos{width:100%;}
.elementor-widget-tc_galeria_fotos .tc-photo-grid .tc-photo-card,
.elementor-widget-tc_galeria_fotos .tc-photo-grid .tc-photo-card:hover,
.elementor-widget-tc_galeria_fotos .tc-photo-grid .tc-photo-card:focus{position:relative;display:block;box-sizing:border-box;width:100%;padding:0;margin:0;border:0;border-radius:8px;cursor:pointer;background:var(--tc-green-dark);overflow:hidden;line-height:0;}
.tc-photo-card{aspect-ratio:16/10;}
.tc-photo-card,.tc-video-card{box-shadow:0 8px 22px rgba(0,0,0,.14);transition:transform .45s cubic-bezier(.25,.8,.25,1),box-shadow .45s cubic-bezier(.25,.8,.25,1) !important;}
.tc-photo-card:hover,.tc-video-card:hover{transform:translateY(-5px);box-shadow:0 16px 32px rgba(0,0,0,.22);}
/* La foto siempre cubre la tarjeta (Elementor fuerza img{height:auto} y dejaba franjas verdes) */
.elementor-widget-tc_galeria_fotos .tc-photo-card img{width:100%;height:100%;max-width:none;object-fit:cover;display:block;backface-visibility:hidden;transition:transform .9s cubic-bezier(.2,.7,.2,1) !important;}
.elementor-widget-tc_galeria_fotos .tc-photo-card:hover img{transform:scale(1.06);}
.tc-video-card{position:relative;background:#000;border-radius:8px;overflow:hidden;aspect-ratio:16/9;}
.tc-video-card iframe{width:100%;height:100%;border:0;display:block;}
/* Miniatura con botón de play: se cambia por el reproductor al tocarla */
.elementor-widget-tc_galeria_videos .tc-video-grid .tc-video-facade,
.elementor-widget-tc_galeria_videos .tc-video-grid .tc-video-facade:hover,
.elementor-widget-tc_galeria_videos .tc-video-grid .tc-video-facade:focus{display:block;box-sizing:border-box;width:100%;padding:0;margin:0;border:0;border-radius:8px;background:#000;color:#fff;line-height:0;cursor:pointer;}
.elementor-widget-tc_galeria_videos .tc-video-facade img{width:100%;height:100%;max-width:none;object-fit:cover;display:block;opacity:.92;transition:opacity .25s !important;}
.elementor-widget-tc_galeria_videos .tc-video-facade:hover img{opacity:1;}
.tc-video-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.tc-video-play svg{filter:drop-shadow(0 2px 8px rgba(0,0,0,.5));opacity:.92;transition:transform .25s,opacity .25s !important;}
.tc-video-facade:hover .tc-video-play svg,.tc-video-facade:focus-visible .tc-video-play svg{transform:scale(1.12);opacity:1;}

/* Estilo "Documento" del widget de fotos: página completa sin recortar, en tarjeta blanca (Promoción) */
.elementor-widget-tc_galeria_fotos .tc-estilo-documento .tc-photo-card,
.elementor-widget-tc_galeria_fotos .tc-estilo-documento .tc-photo-card:hover,
.elementor-widget-tc_galeria_fotos .tc-estilo-documento .tc-photo-card:focus{aspect-ratio:auto;padding:1px 6px;background:#fff;border:1px solid #E2E6E2;border-radius:6px;}
.elementor-widget-tc_galeria_fotos .tc-estilo-documento .tc-photo-card{box-shadow:0 8px 22px rgba(0,0,0,.10);}
.elementor-widget-tc_galeria_fotos .tc-estilo-documento .tc-photo-card:hover{box-shadow:0 16px 32px rgba(0,0,0,.18);}
.elementor-widget-tc_galeria_fotos .tc-estilo-documento .tc-photo-card img{height:auto;object-fit:contain;}
.elementor-widget-tc_galeria_fotos .tc-estilo-documento .tc-photo-card:hover img{transform:none;}

/* Visor de fotos */
.tc-lightbox{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.9);display:none;align-items:center;justify-content:center;padding:30px;}
.tc-lightbox.is-open{display:flex;}
.tc-lightbox img{max-width:92vw;max-height:88vh;border-radius:6px;box-shadow:0 10px 40px rgba(0,0,0,.5);}
.tc-lightbox .tc-lightbox-close,.tc-lightbox .tc-lightbox-close:hover,.tc-lightbox .tc-lightbox-close:focus{position:absolute;top:20px;right:30px;padding:0;margin:0;background:none;border:0;box-shadow:none;color:#fff;font-size:44px;line-height:1;cursor:pointer;z-index:2;transition:color .2s !important;}
.tc-lightbox .tc-lightbox-close:hover{color:var(--tc-orange);}
.tc-lightbox .tc-lightbox-prev,.tc-lightbox .tc-lightbox-next{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;width:54px;height:54px;padding:0;margin:0;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:24px;line-height:1;cursor:pointer;z-index:2;transition:background .2s !important;box-shadow:none;}
.tc-lightbox .tc-lightbox-prev:hover,.tc-lightbox .tc-lightbox-next:hover,.tc-lightbox .tc-lightbox-prev:focus,.tc-lightbox .tc-lightbox-next:focus{background:var(--tc-orange);color:#fff;}
.tc-lightbox .tc-lightbox-prev{left:24px;} .tc-lightbox .tc-lightbox-next{right:24px;}
@media (max-width:560px){.tc-lightbox .tc-lightbox-prev,.tc-lightbox .tc-lightbox-next{width:44px;height:44px;font-size:20px;}.tc-lightbox .tc-lightbox-prev{left:10px;}.tc-lightbox .tc-lightbox-next{right:10px;}}

/* Título de sección con palabra destacada en naranja (p. ej. "Galería <span class=tc-acento>Fotográfica</span>") */
.tc-acento{color:var(--tc-orange);}

/* ===== Contacto: formulario Contact Form 7 (widget Shortcode con clase tc-contacto-form) ===== */
.tc-contacto-form .cf-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;}
.tc-contacto-form .cf-col{display:block;}
.tc-contacto-form input[type=text],.tc-contacto-form input[type=email],.tc-contacto-form input[type=tel],.tc-contacto-form textarea,
.tc-contacto-form input[type=text]:focus,.tc-contacto-form input[type=email]:focus,.tc-contacto-form input[type=tel]:focus,.tc-contacto-form textarea:focus,
.tc-contacto-form .wpcf7 input.wpcf7-form-control:not([type=submit]):not([type=checkbox]),.tc-contacto-form .wpcf7 textarea.wpcf7-form-control{
	box-sizing:border-box;width:100%;height:auto;border:0;border-radius:4px;background:rgba(245,247,245,.92);padding:16px 18px;font-family:'Pontano Sans',sans-serif;font-size:1rem;line-height:normal;color:#333;box-shadow:none;outline:0;}
.tc-contacto-form input:focus-visible,.tc-contacto-form textarea:focus-visible{box-shadow:0 0 0 2px var(--tc-orange);}
.tc-contacto-form input::placeholder,.tc-contacto-form textarea::placeholder{color:#777;opacity:1;}
.tc-contacto-form textarea{min-height:150px;resize:vertical;margin-bottom:18px;}
/* Astra pone los campos de CF7 a ancho completo: en la fila de envío la casilla va junto al botón */
.tc-contacto-form .cf-submit-row .wpcf7-form-control-wrap{display:inline-block;width:auto;}
.tc-contacto-form form p{margin:0;}
.tc-contacto-form .wpcf7-spinner{display:none;}
/* Fila final: casilla "Acepto ser contactado por WhatsApp" a la izquierda, botón Enviar a la derecha */
.tc-contacto-form .cf-submit-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin:0;}
.tc-contacto-form .cf-submit-row .wpcf7-checkbox,.tc-contacto-form .cf-submit-row .wpcf7-list-item{margin:0;}
.tc-contacto-form .cf-submit-row .wpcf7-list-item label{display:inline-flex;align-items:center;gap:10px;margin:0;cursor:pointer;color:#E7EFE9;font-size:1rem;line-height:1.4;}
.tc-contacto-form .cf-submit-row input[type=checkbox]{flex:0 0 22px;width:22px;height:22px;margin:0;accent-color:var(--tc-orange);cursor:pointer;}
.tc-contacto-form .cf-submit-row input[type=submit]{margin-left:auto;}
.tc-contacto-form input[type=submit],.tc-contacto-form input[type=submit]:focus{background:var(--tc-orange);color:#fff;border:0;border-radius:4px;font-family:'Montserrat',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:16px 46px;font-size:1rem;line-height:normal;cursor:pointer;box-shadow:none;transition:background .2s !important;}
.tc-contacto-form input[type=submit]:hover{background:var(--tc-orange-dark);color:#fff;}
.tc-contacto-form .wpcf7-response-output{color:#fff;border-color:rgba(255,255,255,.5);border-radius:4px;margin:14px 0 0;}
/* Avisos de validación en rojo coral claro (legible y armónico sobre el fondo verde) */
.tc-contacto-form .wpcf7-not-valid-tip{color:#FF8F80;font-size:.9rem;font-weight:600;margin-top:6px;}
.tc-contacto-form .wpcf7 input.wpcf7-form-control.wpcf7-not-valid:not([type=submit]):not([type=checkbox]),
.tc-contacto-form .wpcf7 textarea.wpcf7-form-control.wpcf7-not-valid{box-shadow:inset 0 0 0 2px #FF8F80;}
.tc-contacto-form .wpcf7 form.invalid .wpcf7-response-output,.tc-contacto-form .wpcf7 form.unaccepted .wpcf7-response-output,
.tc-contacto-form .wpcf7 form.failed .wpcf7-response-output,.tc-contacto-form .wpcf7 form.aborted .wpcf7-response-output,
.tc-contacto-form .wpcf7 form.spam .wpcf7-response-output{border-color:#FF8F80;background:rgba(255,143,128,.12);}
.tc-contacto-form .wpcf7 form.sent .wpcf7-response-output{border-color:#9BE3B0;background:rgba(155,227,176,.12);}
@media (max-width:1024px){.tc-contacto-form .cf-row{grid-template-columns:1fr;gap:14px;}}

/* Contacto: columna de datos (enlaces claros, naranja al pasar el mouse) */
.tc-contacto-info a{color:inherit;}
.tc-contacto-info a:hover{color:var(--tc-orange);}

/* Contacto: tarjetas de oficinas (enlazan a Google Maps) */
.tc-oficina{transition:transform .2s ease,box-shadow .2s ease !important;}
.tc-oficina:hover{transform:translateY(-4px);box-shadow:0 18px 34px rgba(0,0,0,.24) !important;}
.tc-oficina-icon{display:flex;color:#fff;opacity:.95;margin-top:2px;line-height:0;}
