/*
 * Widgets Qualicons. Medidas del Figma "Qualicons-12-11-26" en un lienzo de 1440 px.
 * Los tokens (--qc-*) y botones/chips/etiquetas base viven en el tema hijo (qualicons-child/style.css).
 */

/* Elementor fuerza "img { height: auto; max-width: 100% }" dentro de sus widgets: las fotos de fondo ocupan su caja. */
.elementor :is(.qc-hero-split__media, .qc-cta__media, .qc-hero-plaza__frame, .qc-phase, .qc-slider__track, .qc-tile--photo, .qc-store__card) > img, .elementor .qc-modal__photo { height: 100%; max-width: none; }
/* Fotos de tipos de proyecto: como en el Figma (alto 118,6 % anclado arriba), el rótulo que traen abajo queda fuera. */
.elementor .qc-panel > .qc-panel__img { bottom: auto; height: 118.6%; max-width: none; object-position: center top; }
.elementor .qc-seal__ring { width: 150px; height: 150px; max-width: none; }

/* ---------- Muesca redondeada (esquina inferior derecha de los heros) ----------
 * Figma "Exclude": panel con radio 30 y un recorte de 378 × 115 con esquinas cóncavas de 30. */
.qc-notch { --qc-notch-w: 378px; --qc-notch-h: 115px; --qc-notch-r: 30px; --qc-notch-bg: var(--qc-white); position: relative; }
.qc-notch__box {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 2;
	box-sizing: border-box;
	width: var(--qc-notch-w);
	height: var(--qc-notch-h);
	border-top-left-radius: var(--qc-notch-r);
	background: var(--qc-notch-bg);
	color: var(--qc-ink);
	text-decoration: none;
}
.qc-notch::before,
.qc-notch::after {
	position: absolute;
	z-index: 2;
	width: var(--qc-notch-r);
	height: var(--qc-notch-r);
	background: radial-gradient(circle at 0 0, transparent calc(var(--qc-notch-r) - .5px), var(--qc-notch-bg) var(--qc-notch-r));
	content: "";
	pointer-events: none;
}
.qc-notch::before { right: 0; bottom: var(--qc-notch-h); }
.qc-notch::after { right: var(--qc-notch-w); bottom: 0; }

/* ---------- Hero con panel (2:2) ---------- */
.qc-hero-split {
	display: grid;
	grid-template-columns: minmax(0, 675fr) minmax(0, 725fr);
	gap: 9px;
	box-sizing: border-box;
	height: clamp(620px, calc(100vh - var(--qc-header-h) - 16px), 744px);
	padding: 0 16px 16px 15px;
}
.qc-hero-split__media { position: relative; overflow: hidden; border-radius: 0 0 20px 20px; background: #ccc; }
.qc-hero-split__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.qc-hero-split__media::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(0, 0, 0, .25)); content: ""; }
.qc-hero-split__panel {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 0 40px 115px 75px;
	border-radius: 0 0 30px 30px;
	background: var(--qc-soft);
}
.qc-hero-split__content { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; max-width: 533px; }
.qc-hero-split__content .qc-h1 { max-width: 500px; }
.qc-hero-split__text { max-width: 520px; }

/* Sello "+140" dentro de la muesca */
.qc-seal { display: flex; align-items: center; gap: 17px; padding: 0 16px 0 30px; transition: background-color .2s; }
.qc-seal__badge { position: relative; flex: none; width: 110px; height: 110px; margin-top: -42px; }
.qc-seal__ring { position: absolute; left: -20px; top: -16px; width: 150px; height: 150px; max-width: none; }
.qc-seal__img { position: absolute; left: 2px; top: 2px; width: 107px; height: 107px; border-radius: 54px; transition: transform .3s; }
.qc-seal:hover .qc-seal__img { transform: rotate(-8deg); }
.qc-seal__body { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding-top: 4px; }
.qc-seal__chip {
	padding: 1px 11px;
	border: 1px solid #dedede;
	border-radius: 33px;
	background: var(--qc-red-tag);
	color: var(--qc-white);
	font-size: 14px;
	font-weight: 700;
	line-height: 20px;
	letter-spacing: -.02em;
}
.qc-seal__text { max-width: 208px; font-size: 16px; line-height: 16px; letter-spacing: -.01em; }

/* ---------- Encabezado de página (15:163) ---------- */
.qc-intro { padding: 75px var(--qc-gutter) 70px; }
.qc-intro__inner { display: flex; gap: 48px; align-items: flex-start; max-width: 1249px; margin-inline: auto; }
.qc-intro__tag { flex: none; min-width: 106px; padding-block: 10px; }
.qc-intro__tag .qc-tag { width: 100%; box-sizing: border-box; }
.qc-intro__body { display: flex; gap: 53px; align-items: flex-end; }
.qc-intro__title { flex: 0 1 469px; }
.qc-intro__text { flex: 0 1 523px; }

/* ---------- Imagen ancha (15:117) ---------- */
.qc-wide-image { padding: 0 16px; }
.qc-wide-image img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 488px;
	aspect-ratio: 1408 / 488;
	object-fit: cover;
	border-radius: 20px;
}

/* ---------- Proyectos por tipo (17:206 + carrusel 20:355) ---------- */
.qc-projects { padding-top: 84px; }
.qc-projects__head {
	display: flex;
	gap: 53px;
	align-items: flex-start;
	max-width: 1224px;
	margin: 0 auto 70px;
	padding-inline: var(--qc-gutter);
	box-sizing: border-box;
}
.qc-projects__title { flex: 0 1 534px; }
.qc-projects__aside { display: flex; flex: 0 1 561px; flex-direction: column; align-items: flex-start; gap: 17px; }
.qc-accordion { max-width: 1437px; margin-inline: auto; }
.qc-accordion__track {
	display: flex;
	height: 579px;
	overflow-x: auto;
	scroll-behavior: smooth;
	scroll-snap-type: x proximity;
	scrollbar-width: none;
}
.qc-accordion__track::-webkit-scrollbar { display: none; }
.qc-panel {
	position: relative;
	flex: 0 0 18.16%;
	min-width: 220px;
	overflow: hidden;
	scroll-snap-align: start;
	color: var(--qc-white);
	background: #222;
	transition: flex-basis .6s cubic-bezier(.22, .61, .36, 1);
}
.qc-panel + .qc-panel { border-left: 1px solid rgba(255, 255, 255, .55); }
.qc-panel.is-active { flex-basis: 45.3%; min-width: min(560px, 86vw); }
.qc-panel__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s; }
.qc-panel:hover .qc-panel__img { transform: scale(1.03); }
.qc-panel::before {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, .25) 0%, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, 0) 45%, rgba(0, 0, 0, .85) 100%), rgba(0, 0, 0, .3);
	content: "";
	transition: background-color .4s;
}
.qc-panel::before { z-index: 1; }
.qc-panel__top, .qc-panel__bottom { z-index: 2; }
.qc-panel.is-active::before { background-color: rgba(0, 0, 0, .05); }
.qc-panel__hit { position: absolute; inset: 0; z-index: 3; width: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; }
.qc-panel__hit:is(:hover, :focus) { background: transparent; }
.qc-panel__hit:focus-visible { outline: 2px solid var(--qc-white); outline-offset: -6px; }
.qc-panel.is-active .qc-panel__hit { display: none; }
.qc-panel__top {
	position: absolute;
	top: 53px;
	left: 37px;
	right: 43px;
	display: flex;
	justify-content: space-between;
	padding-top: 10px;
	border-top: 1px solid rgba(255, 255, 255, .6);
	font-size: 16px;
	pointer-events: none;
}
.qc-panel.is-active .qc-panel__top { left: 47px; right: 59px; }
.qc-panel__bottom { position: absolute; left: 36px; right: 36px; bottom: 69px; pointer-events: none; }
.qc-panel.is-active .qc-panel__bottom { left: 58px; right: 58px; bottom: 45px; pointer-events: auto; }
.qc-panel__title { margin: 0; color: var(--qc-white); font-size: 20px; font-weight: 700; line-height: normal; letter-spacing: .05em; }
.qc-panel__more { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .5s, opacity .3s; }
.qc-panel__more > * { min-height: 0; }
.qc-panel.is-active .qc-panel__more { grid-template-rows: 1fr; opacity: 1; transition-delay: .2s; }
.qc-panel__more p { margin: 6px 0 0; overflow: hidden; font-size: 16px; line-height: normal; opacity: .7; }
.qc-panel__more a { justify-self: end; margin-top: 8px; color: var(--qc-white); font-size: 16px; font-weight: 700; text-decoration: underline; overflow: hidden; }
.qc-panel__more a:hover { color: var(--qc-white); opacity: .8; }

.qc-dots { display: flex; justify-content: center; gap: 12px; margin-top: 32px; }
.qc-dot { width: 23px; height: 23px; padding: 0; border: 0; border-radius: 50%; background: #d9d9d9; cursor: pointer; transition: background-color .2s; }
.qc-dot:is(:hover, :focus) { background: #bdbdbd; }
.qc-dot.is-active { background: var(--qc-red); }

/* ---------- Llamado a la acción (148:626) ---------- */
.qc-cta {
	--qc-cta-bg: var(--qc-white);
	display: grid;
	grid-template-columns: minmax(0, 737fr) minmax(0, 703fr);
	align-items: center;
	min-height: 570px;
	margin-top: 25px;
	background: var(--qc-cta-bg);
	overflow: hidden;
}
.qc-cta--gris { --qc-cta-bg: var(--qc-soft); }
.qc-cta__media { position: relative; align-self: stretch; margin: 22px 0 20px -56px; min-height: 360px; }
.qc-cta__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.qc-cta__media::after {
	position: absolute;
	inset: -1px;
	background:
		linear-gradient(180deg, var(--qc-cta-bg) 0%, transparent 15%),
		linear-gradient(0deg, var(--qc-cta-bg) 0%, transparent 40%),
		linear-gradient(270deg, var(--qc-cta-bg) 0%, transparent 41%),
		linear-gradient(90deg, var(--qc-cta-bg) 0%, transparent 38%);
	content: "";
}
.qc-cta__content { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; max-width: 533px; padding: 40px var(--qc-gutter) 40px 39px; box-sizing: content-box; }
.qc-cta__content .qc-text { max-width: 520px; }

/* ---------- Hero de proyecto (31:992) ---------- */
.qc-hero-plaza { padding: 0 16px 16px 17px; background: var(--qc-white); }
.qc-hero-plaza__frame {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	height: clamp(620px, calc(100vh - var(--qc-header-h) - 16px), 744px);
	overflow: hidden;
	border-radius: 0 0 30px 30px;
	background: #1b1b1b;
	color: var(--qc-white);
}
/* Foto con velo oscuro (en el Figma, degradados negros arriba y abajo). */
.qc-hero-plaza__bg { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(.55); }
.qc-hero-plaza__content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	max-width: 696px;
	padding: 0 24px 40px 108px;
	box-sizing: content-box;
}
.qc-hero-plaza__logo { width: 137px; height: auto; }
.qc-hero-plaza__content .qc-h1 { color: var(--qc-white); }
.qc-hero-plaza__text { margin: 0; font-size: 18px; line-height: normal; }
.qc-count { display: flex; align-items: center; gap: 22px; padding: 6px 24px 0 34px; }
.qc-count__num { font-size: 57px; font-weight: 700; line-height: 1; letter-spacing: -.07em; }
.qc-count__num span { color: var(--qc-red); }
.qc-count__text { max-width: 154px; font-size: 18px; line-height: normal; }
a.qc-count:hover .qc-count__text { color: var(--qc-red); }

/* ---------- Fases de obra (148:540) ---------- */
.qc-phases { padding-top: 42px; }
.qc-phases__track {
	display: flex;
	align-items: flex-end;
	gap: 25px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: none;
	cursor: grab;
}
.qc-phases__track::-webkit-scrollbar { display: none; }
.qc-phases__track.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.qc-phases__track:focus-visible { outline: 2px solid var(--qc-red); outline-offset: 4px; }
.qc-phase { position: relative; flex: 0 0 486px; height: 432px; margin: 0; overflow: hidden; scroll-snap-align: start; background: #333; }
.qc-phase--short { height: 390px; }
.qc-phase img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.qc-phase:not(.qc-phase--photo)::after { position: absolute; inset: auto 0 0; height: 231px; background: linear-gradient(180deg, transparent, #000); content: ""; }
.qc-phase figcaption { position: absolute; left: 46px; right: 46px; bottom: 37px; z-index: 1; margin: 0; color: var(--qc-white); font-style: normal; text-align: left; }
.qc-phase figcaption strong { display: block; margin: 0 0 18px 2px; font-size: 18px; font-weight: 700; line-height: normal; letter-spacing: .05em; }
.qc-phase__meta { display: flex; justify-content: space-between; padding-top: 10px; border-top: 1px solid rgba(255, 255, 255, .8); font-size: 16px; }
.qc-progress { display: flex; justify-content: center; gap: 9px; max-width: 1201px; margin: 42px auto 0; padding-inline: var(--qc-gutter); }
.qc-progress__seg { flex: 1 1 233px; height: 11px; border-radius: 32px; background: var(--qc-track); transition: background-color .3s; }
.qc-progress__seg.is-active { background: var(--qc-red); }

/* ---------- Descripción (39:137) ---------- */
.qc-about { padding: 82px var(--qc-gutter) 0; }
.qc-about__inner { display: flex; gap: 53px; max-width: 1198px; margin-inline: auto; }
.qc-about__head { display: flex; flex: 0 0 469px; flex-direction: column; align-items: flex-start; gap: 21px; }
.qc-about__text { flex: 1 1 676px; opacity: .84; }
.qc-about__text p { margin: 0 0 19px; font-size: 16px; line-height: normal; }
.qc-about__text p:last-child { margin-bottom: 0; }

/* ---------- Cifras (198:309) ---------- */
.qc-stats { padding: 82px var(--qc-gutter) 0; }
.qc-stats__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; max-width: 1205px; margin-inline: auto; }
.qc-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 18px;
	min-height: 242px;
	padding: 24px 32px;
	box-sizing: border-box;
	background: var(--qc-card);
	text-align: center;
}
.qc-stat--accent { background: var(--qc-red); color: var(--qc-white); }
.qc-stat__icon.is-white { filter: brightness(0) invert(1); }
.qc-stat__body { display: flex; flex-direction: column; gap: 7px; max-width: 191px; font-size: 20px; line-height: normal; letter-spacing: -.03em; }
.qc-stat__body strong { font-weight: 700; }

/* ---------- Proceso constructivo (212:215) ---------- */
.qc-process { padding: 82px 0 100px; }
.qc-process__head { display: flex; flex-direction: column; align-items: center; gap: 8px; margin-bottom: 59px; padding-inline: var(--qc-gutter); text-align: center; }
.qc-process__head .qc-chips { justify-content: center; }
.qc-process__panel[hidden] { display: none; }
.qc-process__panel { animation: qc-fade .4s ease; }
@keyframes qc-fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.qc-split { display: grid; grid-template-columns: minmax(0, 639fr) minmax(0, 705fr); gap: 69px; align-items: center; max-width: 1413px; margin-inline: auto; padding: 0 var(--qc-gutter) 0 27px; box-sizing: border-box; }
.qc-split__body { display: flex; flex-direction: column; align-items: flex-start; max-width: 571px; }
.qc-split__tag { padding-block: 10px 20px; }
.qc-split__text { opacity: .84; margin-bottom: 17px; }
.qc-split--lista { align-items: start; }
.qc-split--lista .qc-split__body { max-width: 690px; }

.qc-slider { position: relative; aspect-ratio: 639 / 516; overflow: hidden; border-radius: 20px; background: #333; }
.qc-slider__slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .6s; }
.qc-slider__slide.is-active { opacity: 1; }
.qc-slider::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(0, 0, 0, .65)); content: ""; pointer-events: none; }
.qc-slider__arrow {
	position: absolute;
	top: calc(400 / 516 * 100%);
	z-index: 1;
	width: 54px;
	height: 54px;
	padding: 8px;
	border: 0;
	background: transparent;
	line-height: 0;
	cursor: pointer;
	transition: transform .2s;
}
.qc-slider__arrow:is(:hover, :focus) { background: transparent; transform: scale(1.08); }
.qc-slider__arrow--prev { left: 38px; }
.qc-slider__arrow--next { right: 38px; }
.qc-slider__arrow img { display: block; }
/* En el Figma los íconos de flecha diagonal están girados 45° y 141° (este último reflejado). */
.qc-slider__arrow--next img { transform: rotate(45.14deg); }
.qc-slider__arrow--prev img { transform: rotate(141.14deg) scaleY(-1); }
.qc-slider__bars { position: absolute; left: 43px; right: 43px; top: calc(461 / 516 * 100%); z-index: 1; display: flex; gap: 28px; }
.qc-slider__bar { flex: 0 1 117px; height: 12px; padding: 0; border: 0; border-radius: 42px; background: rgba(217, 217, 217, .3); cursor: pointer; }
.qc-slider__bar:is(:hover, :focus) { background: rgba(217, 217, 217, .6); }
.qc-slider__bar.is-active { background: var(--qc-red); }

/* Lista numerada con barra roja (248:437) */
.qc-numlist { position: relative; width: 100%; padding-right: 31px; box-sizing: border-box; }
.qc-numlist__scroll {
	display: flex;
	flex-direction: column;
	max-height: 400px;
	margin: 0;
	padding: 0;
	overflow-y: auto;
	list-style: none;
	scrollbar-width: none;
	overscroll-behavior: contain;
}
.qc-numlist__scroll::-webkit-scrollbar { display: none; }
.qc-numlist__scroll li { display: flex; gap: 14px; padding: 30px 0; border-bottom: 1px solid rgba(0, 0, 0, .2); }
.qc-numlist__scroll li:first-child { padding-top: 6px; }
.qc-numlist__scroll li:last-child { border-bottom: 0; }
.qc-numlist__n { flex: none; min-width: 46px; color: var(--qc-red); font-size: 40px; font-weight: 700; line-height: 22px; letter-spacing: -.03em; }
.qc-numlist__scroll strong { display: block; margin-bottom: 7px; font-size: 20px; line-height: normal; letter-spacing: -.03em; }
.qc-numlist__scroll p { margin: 0; font-size: 15px; line-height: normal; letter-spacing: -.02em; opacity: .6; }
.qc-numlist__bar { position: absolute; top: 0; right: 0; bottom: 0; width: 9px; border-radius: 40px; background: #d9d9d9; }
.qc-numlist__bar span { position: absolute; left: 0; top: 0; width: 100%; height: 38%; border-radius: 40px; background: var(--qc-red); }

/* Mosaico (199:428) */
.qc-mosaic__head { display: flex; flex-direction: column; align-items: center; gap: 10px; margin: -10px 0 43px; padding-inline: var(--qc-gutter); text-align: center; }
.qc-mosaic {
	display: grid;
	grid-template-columns: minmax(0, 376fr) minmax(0, 376fr) minmax(0, 421fr);
	grid-template-rows: 298fr 47fr 12px 345fr;
	grid-template-areas:
		"a a b"
		"a a e"
		". . e"
		"c d e";
	column-gap: 16px;
	max-width: 1205px;
	height: 702px;
	margin-inline: auto;
	padding-inline: var(--qc-gutter);
	box-sizing: content-box;
}
.qc-tile { position: relative; display: flex; flex-direction: column; justify-content: flex-end; gap: 7px; overflow: hidden; box-sizing: border-box; background: var(--qc-tile); }
.qc-tile--1 { grid-area: a; padding: 0 51px 43px; }
.qc-tile--2 { grid-area: b; padding: 0 46px 40px; margin-bottom: 12px; }
.qc-tile--3 { grid-area: c; padding: 40px 40px 46px; }
.qc-tile--4 { grid-area: d; padding: 40px 40px 46px; }
.qc-tile--5 { grid-area: e; padding: 0 46px 20px; }
.qc-tile--photo { color: var(--qc-white); background: #333; }
.qc-tile--photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s; }
.qc-tile--photo:hover img { transform: scale(1.04); }
.qc-tile--photo::before { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(0, 0, 0, 0) 20%, rgba(0, 0, 0, .8) 100%); content: ""; }
.qc-tile__text { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 7px; max-width: 659px; }
.qc-tile--2 .qc-tile__text, .qc-tile--5 .qc-tile__text { max-width: 330px; }
.qc-tile strong { font-size: 20px; line-height: normal; letter-spacing: -.03em; }
.qc-tile p { margin: 0; font-size: 16px; line-height: normal; letter-spacing: -.03em; }
.qc-tile:not(.qc-tile--photo) { align-items: flex-start; }
.qc-tile:not(.qc-tile--photo) img { flex: none; width: auto; height: auto; }
.qc-tile:not(.qc-tile--photo) p { max-width: 307px; font-size: 15px; opacity: .5; }

/* ---------- Directorio (44:286) ---------- */
.qc-directory { padding: 84px var(--qc-gutter) 0; }
.qc-directory__head { display: flex; gap: 48px; align-items: flex-start; max-width: 1204px; margin: 0 auto 64px; }
.qc-directory__intro { display: flex; flex-direction: column; gap: 11px; }
.qc-directory__intro .qc-h2 { max-width: 1050px; font-size: clamp(32px, 3.4vw, 48px); line-height: 1.083; letter-spacing: -.05em; }
.qc-directory__empty { max-width: 1210px; margin: 0 auto; color: var(--qc-muted); }
.qc-stores { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; max-width: 1210px; margin: 0 auto; padding: 0; list-style: none; }
.qc-store[hidden] { display: none; }
.qc-store { animation: qc-fade .35s ease; }
.qc-store__card {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 390 / 436;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: 3px;
	background: #333;
	color: var(--qc-white);
	font-family: var(--qc-font);
	text-align: left;
	cursor: pointer;
}
.qc-store__card:is(:hover, :focus) { background: #333; color: var(--qc-white); }
.qc-store__card:focus-visible { outline: 3px solid var(--qc-red); outline-offset: 3px; }
.qc-store__card > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s; }
.qc-store__card:hover > img { transform: scale(1.05); }
.qc-store__card::before {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(178deg, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, 0) 28%),
		linear-gradient(178deg, rgba(0, 0, 0, 0) 1.75%, rgba(0, 0, 0, .8) 126%);
	content: "";
	z-index: 1;
}
.qc-store__head, .qc-store__more { z-index: 2; }
.qc-store__head { position: absolute; top: 38px; left: 41px; right: 41px; display: flex; flex-direction: column; gap: 6px; }
.qc-store__name { font-size: 20px; font-weight: 700; line-height: normal; letter-spacing: .04em; text-transform: uppercase; }
.qc-store__hours { display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 300; letter-spacing: .01em; }
.qc-store__hours img { flex: none; }
.qc-store__hours b { font-weight: 700; }
.qc-store__more { position: absolute; right: 46px; bottom: 38px; font-size: 16px; letter-spacing: .01em; transition: transform .2s; }
.qc-store__card:hover .qc-store__more { transform: translateX(4px); }

/* Modal del local (75:197) */
.qc-modal {
	width: min(1128px, calc(100vw - 32px));
	max-height: calc(100vh - 32px);
	padding: 0;
	overflow: hidden;
	border: 0;
	background: var(--qc-white);
	color: var(--qc-ink);
	box-shadow: 0 4px 24px rgba(0, 0, 0, .35);
}
.qc-modal[open] { display: grid; grid-template-columns: minmax(0, 514fr) minmax(0, 614fr); animation: qc-modal-in .3s ease; }
.qc-modal::backdrop { background: rgba(0, 0, 0, .6); backdrop-filter: blur(2px); }
@keyframes qc-modal-in { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
.qc-modal__media { position: relative; min-height: 660px; background: #222; }
.qc-modal__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 3px; }
.qc-modal__media::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(178deg, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, 0) 60%, rgba(0, 0, 0, .45) 100%);
	content: "";
}
.qc-modal__logo { position: absolute; top: 29px; left: 36px; z-index: 1; width: 115px; height: auto; }
.qc-modal__body { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 15px; padding: 53px 56px 52px 58px; overflow-y: auto; }
.qc-modal__title { margin: 0; padding-right: 40px; color: var(--qc-ink); font-size: 24px; font-weight: 700; line-height: normal; letter-spacing: .04em; text-transform: uppercase; }
.qc-modal__desc { max-width: 498px; font-size: 16px; line-height: 20px; opacity: .54; }
.qc-modal__desc p { margin: 0 0 20px; }
.qc-modal__desc p:last-child { margin-bottom: 0; }
.qc-modal__details { display: flex; flex-direction: column; gap: 12px; padding-top: 12px; }
.qc-modal__subtitle { font-size: 16px; line-height: 20px; }
.qc-modal__group { display: flex; flex-direction: column; gap: 10px; }
.qc-modal__group[hidden] { display: none; }
.qc-modal__label { font-size: 16px; line-height: 20px; opacity: .49; }
.qc-modal__value { margin: 0; font-size: 16px; line-height: normal; letter-spacing: .01em; white-space: pre-line; }
.qc-modal__value a { color: inherit; }
.qc-modal__hours { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.qc-modal__hours li { display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 300; letter-spacing: .01em; }
.qc-modal__hours b { font-weight: 700; }
.qc-modal__waze { margin-top: 0; }
.qc-modal__close {
	position: absolute;
	top: 25px;
	right: 26px;
	z-index: 2;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	background: transparent;
	line-height: 0;
	cursor: pointer;
	transition: transform .2s;
}
.qc-modal__close:is(:hover, :focus) { background: transparent; transform: rotate(90deg); }
html.qc-modal-open { overflow: hidden; }

/* ---------- Tablet ---------- */
@media (max-width: 1199px) {
	.qc-hero-split__panel { padding-left: 48px; }
	.qc-mosaic { height: auto; grid-template-rows: 298px 47px 12px 345px; }
	.qc-split { gap: 40px; }
}
@media (max-width: 1023px) {
	.qc-hero-split { grid-template-columns: 1fr; height: auto; gap: 12px; }
	.qc-hero-split__media { aspect-ratio: 4 / 3; border-radius: 0 0 20px 20px; }
	.qc-hero-split__media img { object-position: center 30%; }
	.qc-hero-split__panel { padding: 56px 32px 155px; border-radius: 20px; }
	.qc-intro__inner, .qc-directory__head { flex-direction: column; gap: 16px; }
	.qc-intro__tag { min-width: 0; padding: 0; }
	.qc-intro__body, .qc-projects__head, .qc-about__inner { flex-direction: column; align-items: flex-start; gap: 20px; }
	.qc-intro__title, .qc-intro__text, .qc-projects__title, .qc-projects__aside, .qc-about__head, .qc-about__text { flex-basis: auto; }
	.qc-projects { padding-top: 56px; }
	.qc-projects__head { margin-bottom: 40px; }
	.qc-cta { grid-template-columns: minmax(0, 1fr); min-height: 0; }
	.qc-cta__media { aspect-ratio: 16 / 10; min-height: 0; margin: 0; }
	.qc-cta__content { padding: 0 var(--qc-gutter) 64px; max-width: none; }
	.qc-hero-plaza__frame { height: auto; min-height: 640px; padding: 56px 0 155px; border-radius: 0 0 24px 24px; }
	.qc-hero-plaza__content { padding: 0 32px; }
	.qc-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.qc-split, .qc-split--lista { grid-template-columns: 1fr; padding: 0 var(--qc-gutter); gap: 32px; }
	.qc-split__body, .qc-split--lista .qc-split__body { max-width: none; }
	.qc-mosaic {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: auto;
		grid-template-areas: "a a" "b e" "c d";
		gap: 12px;
		height: auto;
		padding-inline: var(--qc-gutter);
		box-sizing: border-box;
	}
	.qc-tile { min-height: 300px; margin: 0; }
	.qc-tile--1 { min-height: 360px; }
	.qc-tile--2 { margin-bottom: 0; }
	.qc-stores { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.qc-modal[open] { grid-template-columns: 1fr; overflow-y: auto; }
	.qc-modal__media { min-height: 0; aspect-ratio: 16 / 10; }
	.qc-modal__body { padding: 32px 24px; overflow: visible; }
	.qc-modal__close { background: rgba(255, 255, 255, .85); border-radius: 50%; }
	.qc-modal__close:is(:hover, :focus) { background: rgba(255, 255, 255, .85); }
}

/* ---------- Móvil ---------- */
@media (max-width: 767px) {
	.qc-notch { --qc-notch-w: 100%; --qc-notch-h: 115px; }
	.qc-notch::after { display: none; }
	.qc-notch__box { border-top-left-radius: 24px; border-top-right-radius: 24px; }
	.qc-notch::before { display: none; }
	.qc-hero-split { padding: 0 12px 12px; }
	.qc-hero-split__panel { padding: 40px 20px 150px; }
	.qc-seal { padding-left: 20px; }
	.qc-hero-plaza { padding: 0 12px 12px; }
	.qc-hero-plaza__frame { min-height: 600px; padding: 40px 0 150px; }
	.qc-hero-plaza__content { padding: 0 20px; }
	.qc-hero-plaza__logo { width: 104px; }
	.qc-hero-plaza__text { font-size: 16px; }
	.qc-count { padding-left: 24px; }
	.qc-intro { padding: 48px var(--qc-gutter) 40px; }
	.qc-wide-image { padding: 0 12px; }
	.qc-wide-image img { aspect-ratio: 4 / 3; border-radius: 16px; }
	.qc-accordion__track { height: 520px; scroll-padding-inline: 16px; }
	.qc-panel { flex-basis: 64px; min-width: 64px; }
	.qc-panel.is-active { flex-basis: calc(100vw - 120px); min-width: 0; }
	.qc-panel__top { left: 20px; right: 20px; top: 32px; }
	.qc-panel.is-active .qc-panel__top { left: 24px; right: 24px; }
	.qc-panel:not(.is-active) .qc-panel__top span:first-child { display: none; }
	.qc-panel:not(.is-active) .qc-panel__bottom { left: 50%; right: auto; bottom: 32px; transform: rotate(-90deg); transform-origin: left bottom; white-space: nowrap; }
	.qc-panel.is-active .qc-panel__bottom { left: 24px; right: 24px; bottom: 32px; }
	.qc-panel__more p { font-size: 15px; }
	.qc-phases { padding-top: 24px; }
	.qc-phases__track { gap: 12px; padding-inline: 12px; scroll-padding-inline: 12px; }
	.qc-phase { flex-basis: 78vw; height: 340px; }
	.qc-phase--short { height: 300px; }
	.qc-phase figcaption { left: 24px; right: 24px; bottom: 24px; }
	.qc-progress { gap: 6px; margin-top: 24px; }
	.qc-progress__seg { height: 8px; }
	.qc-about, .qc-stats { padding-top: 56px; }
	.qc-stats__grid { grid-template-columns: 1fr; }
	.qc-stat { min-height: 190px; }
	.qc-process { padding: 56px 0 72px; }
	.qc-process__head { margin-bottom: 32px; }
	.qc-slider__arrow--prev { left: 12px; }
	.qc-slider__arrow--next { right: 12px; }
	.qc-slider__arrow { top: auto; bottom: 34px; }
	.qc-slider__bars { left: 80px; right: 80px; top: auto; bottom: 54px; gap: 8px; }
	.qc-slider__bar { height: 8px; }
	.qc-numlist__scroll { max-height: 440px; }
	.qc-numlist__n { min-width: 40px; font-size: 32px; }
	.qc-mosaic { grid-template-columns: 1fr; grid-template-areas: "a" "b" "e" "c" "d"; }
	.qc-tile--1, .qc-tile--2, .qc-tile--5 { padding: 0 24px 28px; min-height: 340px; }
	.qc-tile--3, .qc-tile--4 { padding: 28px 24px; min-height: 0; }
	.qc-directory { padding-top: 48px; }
	.qc-directory__head { margin-bottom: 32px; }
	.qc-stores { grid-template-columns: 1fr; gap: 16px; }
	.qc-store__card { aspect-ratio: 4 / 3.6; }
	.qc-store__head { top: 24px; left: 24px; right: 24px; }
	.qc-store__more { right: 24px; bottom: 24px; }
	.qc-modal { width: calc(100vw - 16px); max-height: calc(100vh - 16px); }
	.qc-modal__logo { width: 84px; top: 16px; left: 20px; }
	.qc-modal__title { font-size: 20px; }
}

@media (prefers-reduced-motion: reduce) {
	.qc-panel, .qc-panel__img, .qc-panel__more, .qc-slider__slide, .qc-store__card img, .qc-tile--photo img { transition: none; }
	.qc-process__panel, .qc-store, .qc-modal[open] { animation: none; }
	.qc-accordion__track, html { scroll-behavior: auto; }
}
