/*
Theme Name: Instituto Down Monterrey
Theme URI: https://downmonterrey.mx
Description: Tema del Instituto Down de Monterrey, A.B.P. Conserva la esencia del sitio original (pestañas cuadradas de color, logo en recuadro blanco y fondo de dibujos escolares) con un editor visual para que el personal actualice textos, fotos y productos sin tocar código.
Author: Instituto Down de Monterrey
Template: twentytwentyfive
Version: 1.0.3
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
Text Domain: instituto-down
*/

:root {
	--idm-ink: #1F2266;
	--idm-muted: #4D5180;
	--idm-line: #E3E5F0;
	--idm-soft: #F4F5FB;
	--idm-verde: #9BBA1F; --idm-verde-d: #55700A; --idm-verde-s: #F1F6E1;
	--idm-naranja: #FFA200; --idm-naranja-d: #9A5600; --idm-naranja-s: #FFF3DD;
	--idm-rojo: #C93636; --idm-rojo-d: #A82A2A; --idm-rojo-s: #FBE6E6;
	--idm-azul: #16C0E3; --idm-azul-d: #00708F; --idm-azul-s: #E2F6FB;
	--idm-indigo: #2E3192; --idm-indigo-s: #ECEDF8;
	--idm-shadow: 0 6px 18px rgba(46, 49, 146, 0.10);
	--idm-display: 'Bubblegum Sans', 'Trebuchet MS', Arial, sans-serif;
	--idm-c: var(--idm-indigo); --idm-cd: var(--idm-indigo); --idm-cs: var(--idm-indigo-s);
}
.idm-c-verde { --idm-c: var(--idm-verde); --idm-cd: var(--idm-verde-d); --idm-cs: var(--idm-verde-s); }
.idm-c-naranja { --idm-c: var(--idm-naranja); --idm-cd: var(--idm-naranja-d); --idm-cs: var(--idm-naranja-s); }
.idm-c-rojo { --idm-c: var(--idm-rojo); --idm-cd: var(--idm-rojo-d); --idm-cs: var(--idm-rojo-s); }
.idm-c-azul { --idm-c: var(--idm-azul); --idm-cd: var(--idm-azul-d); --idm-cs: var(--idm-azul-s); }
.idm-c-indigo { --idm-c: var(--idm-indigo); --idm-cd: var(--idm-indigo); --idm-cs: var(--idm-indigo-s); }

body {
	background-color: #FDFDFB;
	background-image: url(assets/fondo.png);
	background-repeat: repeat;
	background-size: 280px auto;
}
.editor-styles-wrapper { background-image: url(assets/fondo.png); background-size: 280px auto; }
img { border-radius: 0; }
a { text-underline-offset: 3px; }
:where(.wp-site-blocks) :focus-visible { outline: 3px solid var(--idm-azul-d); outline-offset: 2px; }
.wp-site-blocks { padding-top: 0; }

/* ===== franja superior ===== */
.idm-util { background: var(--idm-indigo); color: #FFFFFF; font-size: 15px; }
.idm-util > .wp-block-group { gap: 6px 20px; padding-top: 8px; padding-bottom: 8px; }
.idm-util p { margin: 0; color: #DADCF5; }
.idm-util .wp-block-navigation { gap: 6px 16px; font-size: 15px; }
.idm-util .wp-block-navigation a { color: #FFFFFF; font-weight: 700; text-decoration: none; }
.idm-util .wp-block-navigation a:hover { text-decoration: underline; }
.idm-util .wp-block-navigation .idm-donar a, .idm-util .wp-block-navigation-item.idm-donar > a { background: var(--idm-naranja); color: var(--idm-ink); padding: 5px 16px; font-weight: 800; }

/* ===== encabezado: logo y pestañas ===== */
.idm-header { position: relative; z-index: 5; }
.idm-header > .wp-block-group { align-items: flex-start !important; gap: 18px; flex-wrap: nowrap; }
.idm-logo { flex: none; width: 136px; height: 148px; background: #FFFFFF; box-shadow: 0 6px 16px rgba(0,0,0,0.18); display: flex; align-items: center; justify-content: center; margin: 0 !important; }
.idm-logo img { width: 112px !important; height: auto !important; }
.idm-tabs { flex: 1; min-width: 0; }
.idm-tabs .wp-block-navigation__container { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0 !important; width: 100%; align-items: start; }
.idm-tabs .wp-block-navigation-item { display: block; }
.idm-tabs .wp-block-navigation-item > a, .idm-tabs .wp-block-navigation-item__content {
	display: flex !important; align-items: center; justify-content: center; text-align: center;
	min-height: 86px; padding: 10px 8px !important; background: var(--idm-c); color: var(--idm-ink) !important;
	font-family: var(--idm-display); font-size: 20px; line-height: 1.05; text-transform: uppercase; text-decoration: none !important;
	transition: min-height .15s ease, filter .15s ease;
}
.idm-tabs .wp-block-navigation-item > a:hover { filter: brightness(1.06); min-height: 96px; }
.idm-tabs .wp-block-navigation-item.is-current > a, .idm-tabs .current-menu-item > a { min-height: 104px; box-shadow: inset 0 -6px 0 rgba(0,0,0,0.18); }
.idm-tabs .wp-block-navigation-item:nth-child(7n+1) { --idm-c: var(--idm-verde); }
.idm-tabs .wp-block-navigation-item:nth-child(7n+2) { --idm-c: var(--idm-naranja); }
.idm-tabs .wp-block-navigation-item:nth-child(7n+3) { --idm-c: var(--idm-rojo); }
.idm-tabs .wp-block-navigation-item:nth-child(7n+3) > a { color: #FFFFFF !important; }
.idm-tabs .wp-block-navigation-item:nth-child(7n+4) { --idm-c: var(--idm-azul); }
.idm-tabs .wp-block-navigation-item:nth-child(7n+5) { --idm-c: var(--idm-verde); }
.idm-tabs .wp-block-navigation-item:nth-child(7n+6) { --idm-c: var(--idm-indigo); }
.idm-tabs .wp-block-navigation-item:nth-child(7n+6) > a { color: #FFFFFF !important; }
.idm-tabs .wp-block-navigation-item:nth-child(7n+7) { --idm-c: var(--idm-naranja); }
.idm-tabs .wp-block-navigation__responsive-container-open { background: var(--idm-ink); color: #FFFFFF; padding: 12px 16px; }
.idm-tabs .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.idm-tabs .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item > a { min-height: 62px; width: 100%; }

@media (max-width: 1020px) {
	.idm-tabs .wp-block-navigation__container { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.idm-tabs .wp-block-navigation-item:last-child { grid-column: span 2; }
	.idm-tabs .wp-block-navigation-item > a { min-height: 62px; font-size: 18px; }
	.idm-tabs .wp-block-navigation-item > a:hover, .idm-tabs .wp-block-navigation-item.is-current > a { min-height: 62px; }
	.idm-logo { width: 112px; height: 124px; }
	.idm-logo img { width: 92px !important; }
}
@media (max-width: 599px) {
	.idm-header > .wp-block-group { align-items: center !important; justify-content: space-between; padding-top: 10px; padding-bottom: 10px; }
	.idm-logo { width: 92px; height: 100px; }
	.idm-logo img { width: 76px !important; }
	.idm-tabs { flex: none; }
}

/* ===== bandas de título ===== */
.idm-band { padding-top: 34px !important; padding-bottom: 38px !important; margin-top: 18px !important; }
.idm-band h1 { margin: 6px 0 10px; font-size: clamp(38px, 5vw, 58px); color: inherit; }
.idm-band p { max-width: 760px; font-size: 18px; }
.idm-band .idm-crumb { font-size: 14px; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; margin: 0; }
.idm-band .idm-crumb a { text-decoration: none; }
.has-rojo-background-color.idm-band, .has-indigo-background-color.idm-band { color: #FFFFFF; }

/* ===== secciones ===== */
.idm-sec { padding-top: 46px; padding-bottom: 46px; }
.idm-sec + .idm-sec { padding-top: 10px; }
.idm-sec > h2, .idm-sec .idm-sec-t { font-size: clamp(30px, 3.6vw, 42px); margin-bottom: 8px; }
.idm-sub { color: var(--idm-muted); font-size: 18px; max-width: 760px; }
.idm-panel { background: #FFFFFF; box-shadow: var(--idm-shadow); padding: 30px 32px !important; }
.idm-panel > *:first-child { margin-top: 0; }
.idm-photo img { width: 100%; height: 100%; object-fit: cover; box-shadow: var(--idm-shadow); }
.idm-cita { font-family: var(--idm-display); font-size: 30px; line-height: 1.2; border-left: 10px solid var(--idm-naranja); padding: 6px 0 6px 20px; margin: 0; color: var(--idm-indigo); }

/* tarjetas */
.idm-card { position: relative; background: #FFFFFF; box-shadow: var(--idm-shadow); border-top: 8px solid var(--idm-c); padding: 22px 24px 24px !important; }
.idm-card > * { margin-top: 0; margin-bottom: 8px; }
.idm-card h3 { font-size: 26px; margin: 0 0 6px; }
.idm-card p { color: var(--idm-muted); }
.idm-card.idm-has-img { padding: 0 !important; }
.idm-card.idm-has-img .wp-block-image { margin: 0; }
.idm-card.idm-has-img .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.idm-card.idm-has-img > :not(.wp-block-image) { padding-left: 20px; padding-right: 20px; }
.idm-card.idm-has-img > :last-child { padding-bottom: 20px; }
.idm-card .idm-more a, .idm-more a { font-weight: 800; color: var(--idm-cd); text-decoration: none; }
.idm-card .idm-more a:hover { text-decoration: underline; }

/* cifras */
.idm-stat { background: var(--idm-c); color: var(--idm-ink); padding: 20px 22px !important; }
.idm-stat.idm-c-rojo, .idm-stat.idm-c-indigo { color: #FFFFFF; }
.idm-stat .idm-n { font-family: var(--idm-display); font-size: 40px; line-height: 1; margin: 0 0 6px; }
.idm-stat p { margin: 0; font-weight: 700; }

/* misión, visión */
.idm-hmv > .wp-block-group { background: #FFFFFF; box-shadow: var(--idm-shadow); border-left: 10px solid var(--idm-c); padding: 24px 26px !important; }
.idm-hmv h3 { font-size: 30px; margin: 0 0 8px; color: var(--idm-cd); }

/* pasos */
.idm-steps { counter-reset: idmpaso; }
.idm-step { background: #FFFFFF; box-shadow: var(--idm-shadow); border-top: 8px solid var(--idm-c); padding: 22px 22px 24px !important; position: relative; }
.idm-step::before { counter-increment: idmpaso; content: counter(idmpaso); font-family: var(--idm-display); font-size: 22px; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: var(--idm-c); color: var(--idm-ink); margin-bottom: 10px; }
.idm-step.idm-c-rojo::before, .idm-step.idm-c-indigo::before { color: #FFFFFF; }
.idm-step h3 { font-size: 20px; font-weight: 800; font-family: inherit; margin: 0 0 6px; }
.idm-step p { margin: 0; color: var(--idm-muted); }

/* filas foto + texto */
.idm-row { background: #FFFFFF; box-shadow: var(--idm-shadow); border-top: 8px solid var(--idm-c); gap: 0 !important; margin-bottom: 26px !important; }
.idm-row > .wp-block-column { padding: 0; }
.idm-row > .wp-block-column:not(:has(.wp-block-image)) { padding: 28px 30px !important; }
.idm-row .wp-block-image { margin: 0; height: 100%; }
.idm-row .wp-block-image img { width: 100%; height: 100%; min-height: 260px; object-fit: cover; }
.idm-row h3 { font-size: 30px; margin-top: 0; }

/* chips */
.idm-chips { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 0; list-style: none; }
.idm-chips li { background: #FFFFFF; border: 2px solid var(--idm-line); padding: 8px 14px; font-weight: 700; font-size: 15px; margin: 0; }

/* testimonios y actividades */
.idm-quote { background: #FFFFFF; box-shadow: var(--idm-shadow); border-left: 10px solid var(--idm-c); padding: 24px 28px !important; margin: 0; }
.idm-quote p { font-size: 20px; font-style: italic; }
.idm-quote cite { font-weight: 800; font-style: normal; color: var(--idm-muted); font-size: 15px; }
.idm-event { background: #FFFFFF; box-shadow: var(--idm-shadow); gap: 0 !important; }
.idm-event > .wp-block-column:first-child { background: var(--idm-indigo); color: #FFFFFF; font-family: var(--idm-display); font-size: 22px; text-align: center; padding: 18px 10px !important; display: flex; align-items: center; justify-content: center; }
.idm-event > .wp-block-column:first-child p { margin: 0; }
.idm-event > .wp-block-column:last-child { padding: 18px 22px !important; }
.idm-event h3 { font-size: 20px; font-family: inherit; font-weight: 800; margin: 0 0 4px; }

/* llamados a la acción */
.idm-cta { padding: 34px 36px !important; }
.idm-cta h2 { font-size: 34px; margin-top: 0; }
.idm-cta.has-indigo-background-color { color: #FFFFFF; }
.idm-cta.has-indigo-background-color h2 { color: #FFFFFF; }

/* preguntas frecuentes */
.wp-block-details.idm-faq { background: #FFFFFF; box-shadow: var(--idm-shadow); padding: 16px 20px; margin-bottom: 10px; }
.wp-block-details.idm-faq summary { font-weight: 800; cursor: pointer; }
.wp-block-details.idm-faq p { color: var(--idm-muted); margin-bottom: 0; }

/* datos bancarios */
.idm-bank p { margin: 0 0 6px; }
.idm-bank strong { display: inline-block; min-width: 110px; }
.idm-copy { font: inherit; font-size: 13px; font-weight: 800; border: 2px solid var(--idm-ink); background: #FFFFFF; color: var(--idm-ink); padding: 2px 10px; margin-left: 8px; cursor: pointer; }

/* datos por confirmar */
mark.idm-tbc { background: rgba(255,255,255,0.75); color: var(--idm-muted); border: 2px dashed #9A9DC0; padding: 0 6px; font-weight: 700; font-size: .9em; }

/* ===== tiendita ===== */
.idm-shop-filter { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 12px; }
.idm-shop-filter button { font: inherit; font-weight: 700; font-size: 15px; background: #FFFFFF; color: var(--idm-ink); border: 2px solid var(--idm-line); padding: 8px 14px; cursor: pointer; }
.idm-shop-filter button[aria-pressed="true"] { border-color: var(--idm-c); background: var(--idm-cs); }
.idm-shop-count { color: var(--idm-muted); font-size: 15px; margin: 0 0 20px; }
.idm-prod { background: #FFFFFF; box-shadow: var(--idm-shadow); border-top: 8px solid var(--idm-c); padding: 0 0 16px !important; display: flex; flex-direction: column; gap: 6px !important; }
.idm-prod[hidden] { display: none !important; }
.idm-prod .wp-block-image { margin: 0 0 4px; border-bottom: 1px solid var(--idm-line); }
.idm-prod .wp-block-image img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; background: #FFFFFF; }
.idm-prod > :not(.wp-block-image) { padding-left: 16px; padding-right: 16px; margin: 0 !important; }
.idm-prod .idm-prod-cat { font-size: 12px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; color: var(--idm-cd); }
.idm-prod h3 { font-family: inherit; font-size: 18px; font-weight: 800; line-height: 1.25; }
.idm-prod .idm-prod-price { font-family: var(--idm-display); font-size: 28px; line-height: 1.1; color: var(--idm-indigo); }
.idm-prod .idm-prod-price mark.idm-tbc { font-family: 'Nunito', sans-serif; font-size: 14px; }
.idm-prod .idm-prod-desc { color: var(--idm-muted); font-size: 15px; }
.idm-prod .wp-block-buttons { margin-top: auto !important; padding-top: 8px; }
.idm-prod .wp-block-button__link { padding: 9px 16px; font-size: 15px; }
@media (max-width: 599px) {
	.idm-prod > :not(.wp-block-image) { padding-left: 12px; padding-right: 12px; }
	.idm-prod h3 { font-size: 16px; }
	.idm-prod .idm-prod-price { font-size: 24px; }
}

/* botones */
.wp-block-button__link { border-radius: 0 !important; font-weight: 800; }
.wp-block-button.is-style-outline > .wp-block-button__link { background: #FFFFFF; color: var(--idm-ink); border: 3px solid var(--idm-ink); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--idm-soft); }
.wp-block-button.is-style-idm-indigo > .wp-block-button__link { background: var(--idm-indigo); color: #FFFFFF; }

/* ===== formulario ===== */
.wpcf7 label { display: block; font-weight: 700; margin-bottom: 12px; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 select, .wpcf7 textarea {
	display: block; width: 100%; margin-top: 4px; padding: 10px 12px; font: inherit; font-weight: 400; border: 2px solid #C9CBE0; background: #FFFFFF; color: var(--idm-ink); border-radius: 0;
}
.wpcf7 input[type="submit"] { background: var(--idm-naranja); color: var(--idm-ink); border: 0; padding: 13px 22px; font: inherit; font-weight: 800; cursor: pointer; border-radius: 0; }
.wpcf7 .wpcf7-response-output { margin: 12px 0 0 !important; }

/* ===== pie ===== */
.idm-footer { background: var(--idm-indigo); color: #DADCF5; margin-top: 50px; }
.idm-footer h3 { color: #FFFFFF; font-size: 24px; margin-top: 0; }
.idm-footer a { color: #FFFFFF; }
.idm-footer ul { list-style: none; padding: 0; margin: 0; }
.idm-footer li { margin-bottom: 6px; }
.idm-strip { display: flex; height: 10px; }
.idm-strip span { flex: 1; }
.idm-footer-logo { background: #FFFFFF; width: 92px; height: 100px; display: flex; align-items: center; justify-content: center; flex: none; }
.idm-footer-logo img { width: 76px; height: auto; }
.idm-footer-base { border-top: 1px solid rgba(255,255,255,0.2); font-size: 14px; }

@media (max-width: 781px) {
	.idm-sec { padding-top: 30px; padding-bottom: 30px; }
	.idm-row .wp-block-image img { min-height: 200px; aspect-ratio: 16 / 9; }
	.idm-cita { font-size: 24px; }
}

/* aviso de catálogo de demostración */
.idm-demo-note { background: var(--idm-naranja-s); border: 3px dashed var(--idm-naranja-d); padding: 16px 20px !important; margin-bottom: 22px !important; }
.idm-demo-note h3 { font-size: 24px; margin: 0 0 4px; color: var(--idm-naranja-d); }
.idm-demo-note p { margin: 0; font-weight: 700; }

/* ajustes 1.0.1 */
main.wp-block-group > .wp-block-post-content { max-width: none !important; }
.wp-block-post-content > .alignfull { margin-left: calc(var(--wp--style--root--padding-left, 0px) * -1) !important; margin-right: calc(var(--wp--style--root--padding-right, 0px) * -1) !important; }
.idm-band > *, .idm-sec > p.idm-sub { max-width: 1200px !important; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box; }
.idm-band > p:not(.idm-crumb), .idm-sec > p.idm-sub { padding-right: clamp(0px, calc(100% - 900px), 400px); }
.idm-sec .is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)) !important; }
.idm-sec .is-layout-grid.idm-shop { grid-template-columns: repeat(auto-fill, minmax(min(210px, 100%), 1fr)) !important; }
.idm-sec .is-layout-grid.idm-stats { grid-template-columns: repeat(auto-fit, minmax(min(170px, 100%), 1fr)) !important; }
.idm-sec .is-layout-grid.idm-steps { grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr)) !important; }
p.idm-pill { display: inline-block; align-self: flex-start; background: var(--idm-verde-s); border: 2px solid var(--idm-verde); color: var(--idm-verde-d); font-weight: 800; font-size: 14px; letter-spacing: .5px; text-transform: uppercase; padding: 4px 12px; margin-left: 0 !important; width: fit-content; }
.idm-hero { padding-top: 34px; }
.idm-hero h1 { margin-top: 10px; }
@media (max-width: 599px) { .idm-sec .is-layout-grid.idm-shop { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px; } }

.idm-tabs .wp-block-navigation__responsive-container.is-menu-open { padding: 64px 16px 24px !important; }
.idm-tabs .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { width: 100%; padding: 0 !important; align-items: stretch; }
.idm-tabs .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { width: 100%; }

/* ajustes 1.0.2 */
@media (max-width: 1020px) { .idm-tabs .wp-block-navigation__container { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } .idm-tabs .wp-block-navigation-item:last-child { grid-column: auto !important; } }
.idm-tabs .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.idm-util .wp-block-navigation-item.idm-tienda > a { background: var(--idm-verde); color: var(--idm-ink) !important; padding: 5px 16px; font-weight: 800; }
.idm-util .wp-block-navigation-item.idm-tienda > a:hover, .idm-util .wp-block-navigation-item.idm-donar > a:hover { text-decoration: none; filter: brightness(1.08); }
.idm-step { counter-increment: idmpaso; }
.idm-step::before { counter-increment: none !important; }

/* plantillas ocultas al público */
body:not(.editor-styles-wrapper) .is-style-idm-oculto { display: none !important; }
.editor-styles-wrapper .is-style-idm-oculto { outline: 3px dashed #C93636; outline-offset: 4px; position: relative; opacity: .85; }
.editor-styles-wrapper .is-style-idm-oculto::before { content: 'PLANTILLA OCULTA AL PÚBLICO · Para publicarla: seleccione este bloque y en Estilos elija «Predeterminado»'; display: block; background: #C93636; color: #fff; font: 800 12px/1.3 Nunito, sans-serif; letter-spacing: .3px; padding: 6px 10px; margin-bottom: 10px; }
