/* Taller Carmen - landing (front-page.php) */

:root{
	color-scheme:dark;
	--tc-ink:#08090b;
	--tc-ink-2:#131417;
	--tc-card:#17181c;
	--tc-card-2:#1c1e23;
	--tc-line:rgba(255,255,255,.09);
	--tc-line-2:rgba(255,255,255,.15);
	--tc-paper:#f2f4f7;
	--tc-paper-dim:rgba(242,244,247,.66);
	--tc-blue:#0068a0;
	--tc-blue-2:#1b95e0;
	--tc-blue-3:#5cc4f5;
	--tc-blue-glow:rgba(27,149,224,.35);
	--tc-radius:18px;
	--tc-radius-lg:26px;
	--tc-shadow:0 20px 50px rgba(0,0,0,.5);
	--tc-shadow-lg:0 30px 70px rgba(0,0,0,.55);
	--tc-ease:cubic-bezier(.16,.8,.24,1);
	--tc-font-display:'Encode Sans', Arial, sans-serif;
	--tc-font-body:'Inter', system-ui, sans-serif;
}

html:has(body.tc-landing){ overflow-x:hidden; scroll-behavior:smooth; }
.tc-landing, .tc-landing *{ box-sizing:border-box; min-width:0; }
.tc-landing{
	background:var(--tc-ink);
	color:var(--tc-paper);
	font-family:var(--tc-font-body);
	line-height:1.6;
	-webkit-font-smoothing:antialiased;
	overflow-x:hidden;
	width:100%;
	overflow-wrap:break-word;
}
.tc-landing img,
.tc-landing svg,
.tc-landing iframe{ max-width:100%; }
.tc-landing h1,
.tc-landing h2,
.tc-landing h3,
.tc-landing h4{
	font-family:var(--tc-font-display);
	font-weight:700;
	letter-spacing:.005em;
	line-height:1.15;
	margin:0 0 .5em;
	color:#fff;
}
.tc-landing p{ margin:0 0 1em; }
.tc-landing a{ color:inherit; text-decoration:none; }
.tc-landing ul{ margin:0; padding:0; list-style:none; }
.tc-landing svg{ width:100%; height:100%; }
.tc-landing ::selection{ background:var(--tc-blue-2); color:#fff; }
.tc-landing :is(a,button):focus-visible{ outline:2px solid var(--tc-blue-3); outline-offset:3px; border-radius:4px; }

@media (prefers-reduced-motion: reduce){
	html:has(body.tc-landing){ scroll-behavior:auto; }
	.tc-landing *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
	.tc-reveal{ opacity:1 !important; transform:none !important; }
}

.tc-kicker{
	display:inline-flex;
	align-items:center;
	gap:.6em;
	font-family:var(--tc-font-display);
	text-transform:uppercase;
	letter-spacing:.16em;
	font-size:.78rem;
	font-weight:600;
	color:var(--tc-blue-2);
	margin-bottom:.9em;
}
.tc-kicker i{ display:block; width:28px; height:2px; background:linear-gradient(90deg, var(--tc-blue-2), transparent); border-radius:2px; flex:none; }

/* Scroll reveal */
.tc-reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--tc-ease), transform .7s var(--tc-ease); transition-delay:var(--tc-delay, 0ms); }
.tc-reveal--left{ transform:translate(-32px, 12px); }
.tc-reveal--right{ transform:translate(32px, 12px); }
.tc-reveal.tc-in{ opacity:1; transform:none; }

/* Botones */
.tc-btn{
	position:relative;
	display:inline-flex;
	align-items:center;
	gap:.5em;
	padding:.9em 1.7em;
	border-radius:999px;
	font-family:var(--tc-font-display);
	font-weight:600;
	font-size:.92rem;
	border:1px solid transparent;
	transition:transform .25s var(--tc-ease), box-shadow .25s var(--tc-ease), background .25s var(--tc-ease), border-color .25s var(--tc-ease);
	white-space:nowrap;
	overflow:hidden;
	isolation:isolate;
}
.tc-btn span{ position:relative; z-index:1; display:inline-flex; align-items:center; gap:.5em; }
.tc-btn > svg{ position:relative; z-index:1; flex:none; }
svg.tc-btn-icon{ width:18px; height:18px; flex:none; }
.tc-btn::before{
	content:'';
	position:absolute; inset:0;
	background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.35) 48%, transparent 66%);
	transform:translateX(-120%);
	transition:transform .7s var(--tc-ease);
	z-index:0;
}
.tc-btn:hover::before{ transform:translateX(120%); }
.tc-btn.tc-btn--primary{
	background:linear-gradient(135deg, var(--tc-blue-2), var(--tc-blue));
	color:#fff;
	box-shadow:0 10px 30px var(--tc-blue-glow);
}
.tc-btn--primary:hover{ transform:translateY(-3px); box-shadow:0 16px 40px var(--tc-blue-glow); }
.tc-btn.tc-btn--ghost{
	border-color:rgba(255,255,255,.25);
	color:#fff;
}
.tc-btn--ghost:hover{ border-color:#fff; background:rgba(255,255,255,.06); transform:translateY(-3px); }
.tc-btn.tc-btn--light{
	background:#fff;
	color:var(--tc-blue);
	box-shadow:0 10px 30px rgba(0,0,0,.25);
}
.tc-btn--light:hover{ transform:translateY(-2px); background:var(--tc-paper); }
.tc-btn.tc-btn--whatsapp{
	background:rgba(255,255,255,.06);
	border:1px solid var(--tc-line);
	color:#fff;
	padding:.62em 1.15em;
	font-size:.82rem;
}
.tc-btn--whatsapp:hover{ background:rgba(255,255,255,.14); border-color:var(--tc-line-2); }
.tc-btn--whatsapp svg{ width:18px; height:18px; flex:none; }

/* Header */
.tc-header{
	position:sticky;
	top:0;
	z-index:60;
	display:grid;
	grid-template-columns:1fr auto 1fr;
	align-items:center;
	gap:1.5rem;
	padding:.85rem clamp(1.25rem, 4vw, 3rem);
	background:rgba(8,9,11,.78);
	backdrop-filter:blur(14px);
	-webkit-backdrop-filter:blur(14px);
	border-bottom:1px solid var(--tc-line);
}
.tc-brand{ display:flex; align-items:center; gap:.75rem; justify-self:start; }
.tc-header .tc-btn--whatsapp{ justify-self:end; }
.tc-mark{ width:40px; height:40px; flex:none; border-radius:50%; overflow:hidden; box-shadow:0 0 0 1px var(--tc-line-2), 0 4px 14px rgba(0,0,0,.4); }
.tc-mark img{ display:block; width:100%; height:100%; object-fit:cover; }
.tc-brand-text{ display:flex; flex-direction:column; line-height:1.2; }
.tc-brand-text strong{
	font-family:var(--tc-font-display);
	font-weight:800;
	font-size:1.05rem;
	color:#fff;
	background:linear-gradient(135deg, #fff, var(--tc-blue-2));
	-webkit-background-clip:text;
	background-clip:text;
	-webkit-text-fill-color:transparent;
}
.tc-brand-text em{ font-style:normal; font-size:.72rem; color:var(--tc-paper-dim); }
.tc-nav{ display:flex; align-items:center; justify-content:center; gap:clamp(.9rem, 2vw, 1.8rem); flex-wrap:wrap; }
.tc-nav a{ position:relative; font-size:.88rem; font-weight:500; color:var(--tc-paper-dim); transition:color .15s ease; padding:.2em 0; }
.tc-nav a::after{ content:''; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:linear-gradient(90deg, var(--tc-blue-2), var(--tc-blue-3)); border-radius:2px; transition:right .25s var(--tc-ease); }
.tc-nav a:hover{ color:#fff; }
.tc-nav a:hover::after{ right:0; }

/* Dropdown "Servicios" (escritorio): hover/focus revela las 7 paginas
   directas, sin JS - el link principal sigue funcionando normal (ancla al
   home o a la seccion). */
.tc-nav-item{ position:relative; }
.tc-nav-chevron{ display:inline-block; width:11px; height:11px; vertical-align:-1px; margin-left:.3em; transition:transform .2s ease; }
.tc-nav-item:hover .tc-nav-chevron,
.tc-nav-item:focus-within .tc-nav-chevron{ transform:rotate(180deg); }
.tc-nav-dropdown{
	position:absolute; top:100%; left:50%;
	min-width:240px;
	margin-top:.6rem;
	padding:.5rem;
	background:var(--tc-card);
	border:1px solid var(--tc-line-2);
	border-radius:14px;
	box-shadow:var(--tc-shadow-lg);
	opacity:0; visibility:hidden;
	transform:translate(-50%, 6px);
	transition:opacity .2s var(--tc-ease), transform .2s var(--tc-ease), visibility 0s linear .2s;
	z-index:61;
}
.tc-nav-item:hover .tc-nav-dropdown,
.tc-nav-item:focus-within .tc-nav-dropdown{
	opacity:1; visibility:visible; transform:translate(-50%, 0);
	transition:opacity .2s var(--tc-ease), transform .2s var(--tc-ease), visibility 0s;
}
.tc-nav-dropdown a{
	display:block; padding:.6em .9em; border-radius:8px;
	font-size:.85rem; font-weight:500; color:var(--tc-paper-dim); white-space:nowrap;
	transition:background .15s ease, color .15s ease;
}
.tc-nav-dropdown a::after{ content:none; }
.tc-nav-dropdown a:hover{ background:rgba(27,149,224,.14); color:#fff; }

/* Mobile menu toggle */
.tc-menu-toggle{
	display:none;
	justify-self:end;
	width:42px; height:42px;
	border-radius:12px;
	border:1px solid var(--tc-line);
	background:rgba(255,255,255,.05);
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:5px;
	cursor:pointer;
}
.tc-menu-toggle span{ display:block; width:20px; height:2px; background:#fff; border-radius:2px; transition:transform .3s var(--tc-ease), opacity .3s var(--tc-ease); }
.tc-menu-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.tc-menu-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.tc-menu-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.tc-mobile-nav{
	position:fixed; inset:0;
	z-index:55;
	background:rgba(8,9,11,.98);
	backdrop-filter:blur(10px);
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:2.4rem;
	opacity:0;
	visibility:hidden;
	transform:translateY(-12px);
	transition:opacity .35s var(--tc-ease), transform .35s var(--tc-ease), visibility 0s linear .35s;
}
.tc-mobile-nav.is-open{ opacity:1; visibility:visible; transform:none; transition:opacity .35s var(--tc-ease), transform .35s var(--tc-ease); }
.tc-mobile-nav nav{ display:flex; flex-direction:column; align-items:center; gap:1.6rem; }
.tc-mobile-nav a{ font-family:var(--tc-font-display); font-size:1.6rem; font-weight:600; color:#fff; }
.tc-mobile-nav nav a{ opacity:.85; }
.tc-mobile-nav nav a:hover{ opacity:1; color:var(--tc-blue-3); }

/* Disclosure "Ver los 7 servicios" del menu movil - nativo (<details>), sin JS. */
.tc-mobile-servicios{ text-align:center; }
.tc-mobile-servicios summary{
	list-style:none;
	cursor:pointer;
	display:flex; align-items:center; justify-content:center; gap:.35em;
	font-family:var(--tc-font-display); font-size:1rem; font-weight:600;
	color:var(--tc-blue-3);
}
.tc-mobile-servicios summary::-webkit-details-marker{ display:none; }
.tc-mobile-servicios summary::after{ content:'▾'; font-size:.8rem; transition:transform .2s ease; }
.tc-mobile-servicios[open] summary::after{ transform:rotate(180deg); }
.tc-mobile-nav .tc-mobile-servicios-list{
	display:flex; flex-direction:column; align-items:center; gap:1rem;
	margin-top:1.1rem;
}
.tc-mobile-nav .tc-mobile-servicios-list a{ font-size:1.05rem; font-weight:500; opacity:.75; }
.tc-mobile-nav .tc-mobile-servicios-list a:hover{ opacity:1; color:var(--tc-blue-3); }

/* Hero */
.tc-hero{ position:relative; padding:clamp(4.5rem, 12vw, 8rem) clamp(1.25rem, 4vw, 3rem) clamp(4rem, 9vw, 6rem); overflow:hidden; }
.tc-hero-bg{
	position:absolute; inset:0;
	background:
		linear-gradient(180deg, rgba(8,9,11,.6), rgba(8,9,11,.9) 62%, var(--tc-ink) 100%),
		linear-gradient(120deg, rgba(0,104,160,.4), rgba(8,9,11,0) 55%),
		radial-gradient(60% 50% at 85% 0%, rgba(27,149,224,.22), transparent),
		url('img/hero-bg.jpg?v=20260912') center 30%/cover no-repeat;
	z-index:0;
}
.tc-hero-grain{
	position:absolute; inset:0; z-index:1; pointer-events:none;
	opacity:.5; mix-blend-mode:overlay;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E");
}
.tc-hero-inner{ position:relative; z-index:2; max-width:760px; }
.tc-badge{
	display:inline-flex; align-items:center; gap:.5em;
	padding:.5em 1em;
	border-radius:999px;
	background:rgba(27,149,224,.12);
	border:1px solid rgba(27,149,224,.35);
	color:var(--tc-blue-3);
	font-size:.78rem;
	font-weight:600;
	letter-spacing:.04em;
	margin-bottom:1.4em;
}
.tc-badge svg{ width:14px; height:14px; flex:none; }
.tc-eyebrow{ font-family:var(--tc-font-display); text-transform:uppercase; letter-spacing:.14em; font-size:.8rem; color:var(--tc-paper-dim); margin-bottom:1em; }
.tc-hero h1{ font-size:clamp(2.2rem, 5.4vw, 3.6rem); max-width:17ch; }
.tc-hero h1 em{
	font-style:normal;
	background:linear-gradient(120deg, #fff 10%, var(--tc-blue-3) 55%, var(--tc-blue-2) 90%);
	-webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.tc-lead{ font-size:1.08rem; color:var(--tc-paper-dim); max-width:52ch; }
.tc-hero-actions{ display:flex; flex-wrap:wrap; gap:1rem; margin:1.6rem 0 2.4rem; }
.tc-hero-stats{ display:flex; flex-wrap:wrap; gap:0; border-top:1px solid var(--tc-line); padding-top:1.6rem; }
.tc-hero-stats li{ display:flex; flex-direction:column; padding:0 clamp(1.2rem, 3vw, 2.2rem); border-left:1px solid var(--tc-line); }
.tc-hero-stats li:first-child{ padding-left:0; border-left:0; }
.tc-hero-stats strong{ font-family:var(--tc-font-display); font-size:1.6rem; font-weight:800; color:#fff; }
.tc-hero-stats span{ font-size:.8rem; color:var(--tc-paper-dim); }
.tc-scroll-cue{
	position:absolute; left:50%; bottom:clamp(1rem, 3vw, 2rem); transform:translateX(-50%);
	width:34px; height:34px; z-index:2;
	color:var(--tc-paper-dim);
	animation:tc-bounce 2.2s ease-in-out infinite;
}
.tc-scroll-cue:hover{ color:#fff; }
@keyframes tc-bounce{ 0%,100%{ transform:translate(-50%,0); } 50%{ transform:translate(-50%,8px); } }

/* Secciones genericas */
.tc-section-head{ text-align:center; max-width:640px; margin:0 auto 2.8rem; }
.tc-section-head .tc-kicker{ justify-content:center; }
.tc-section-head h2{ font-size:clamp(1.7rem, 3.6vw, 2.3rem); }

.tc-nosotros,
.tc-servicios,
.tc-spotlight,
.tc-split,
.tc-video,
.tc-gallery,
.tc-instagram,
.tc-reviews,
.tc-contacto,
.tc-servicio-proceso,
.tc-servicio-otros{ padding:clamp(3.8rem, 8vw, 6.5rem) clamp(1.25rem, 4vw, 3rem); position:relative; }

.tc-nosotros,
.tc-spotlight,
.tc-video,
.tc-reviews,
.tc-contacto,
.tc-servicio-otros{ background:var(--tc-ink-2); }
.tc-nosotros::before,
.tc-spotlight::before,
.tc-video::before,
.tc-reviews::before,
.tc-contacto::before,
.tc-servicio-otros::before{
	content:''; position:absolute; top:0; left:0; right:0; height:1px;
	background:linear-gradient(90deg, transparent, var(--tc-line-2), transparent);
}

/* "Otros servicios" (cruce entre paginas de servicio) siempre va seguido de
   Contacto (mismo fondo ink-2) - mismo criterio de recorte de padding ya
   usado en Split->Galeria y Reseñas->Contacto del home. */
.tc-servicio-otros{ padding-bottom:clamp(1.5rem, 3vw, 2.5rem); }

/* Quienes somos */
.tc-nosotros{
	display:grid;
	grid-template-columns:.85fr 1.15fr;
	gap:clamp(2rem, 5vw, 3.5rem);
	align-items:center;
}
.tc-nosotros-photo{ position:relative; aspect-ratio:3/2; }
.tc-nosotros-photo img{ width:100%; height:100%; object-fit:cover; border-radius:var(--tc-radius-lg); box-shadow:var(--tc-shadow-lg); display:block; }
.tc-photo-frame{
	position:absolute; inset:14px; border-radius:calc(var(--tc-radius-lg) - 8px);
	border:1px solid rgba(255,255,255,.35);
	pointer-events:none;
}
.tc-nosotros-text h2{ font-size:clamp(1.6rem, 3.4vw, 2.1rem); max-width:20ch; }
.tc-nosotros-text p{ color:var(--tc-paper-dim); }

/* Grid servicios */
.tc-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));
	gap:1.4rem;
	max-width:1200px;
	margin:0 auto;
}
.tc-card{
	display:block;
	position:relative;
	background:linear-gradient(160deg, var(--tc-card-2), var(--tc-card));
	border:1px solid var(--tc-line);
	border-radius:var(--tc-radius);
	padding:1.9rem 1.7rem;
	overflow:hidden;
	color:inherit;
	transition:transform .3s var(--tc-ease), border-color .3s var(--tc-ease), box-shadow .3s var(--tc-ease);
}
.tc-card::after{
	content:'';
	position:absolute; inset:0;
	background:linear-gradient(120deg, transparent 40%, rgba(27,149,224,.14) 50%, transparent 60%);
	transform:translateX(-140%);
	transition:transform .8s var(--tc-ease);
}
.tc-card:hover{ transform:translateY(-6px); border-color:rgba(27,149,224,.45); box-shadow:0 22px 44px rgba(0,0,0,.4); }
.tc-card:hover::after{ transform:translateX(140%); }
.tc-card-index{
	position:absolute; top:.6rem; right:1rem;
	font-family:var(--tc-font-display); font-weight:800; font-size:2.4rem;
	color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.12);
	line-height:1; user-select:none;
}
.tc-card-icon{
	display:flex; align-items:center; justify-content:center;
	width:52px; height:52px;
	border-radius:15px;
	background:linear-gradient(135deg, rgba(27,149,224,.25), rgba(0,104,160,.1));
	border:1px solid rgba(27,149,224,.3);
	color:var(--tc-blue-3);
	padding:12px;
	margin-bottom:1.2rem;
	position:relative;
	z-index:1;
}
.tc-card h3{ font-size:1.05rem; margin-bottom:.4em; position:relative; z-index:1; }
.tc-card p{ color:var(--tc-paper-dim); font-size:.92rem; margin:0; position:relative; z-index:1; }
.tc-card-link{
	display:flex; align-items:center; justify-content:space-between; gap:.6em;
	margin-top:1.2rem; padding-top:.9rem;
	border-top:1px solid var(--tc-line);
	font-family:var(--tc-font-display);
	font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em;
	color:var(--tc-blue-3);
	position:relative; z-index:1;
	transition:color .25s ease, border-color .25s ease;
}
.tc-card-link span{
	display:flex; align-items:center; justify-content:center;
	width:22px; height:22px; flex:none;
	border-radius:50%;
	background:rgba(27,149,224,.15);
	color:var(--tc-blue-3);
	font-size:1rem; line-height:1;
	transition:transform .25s var(--tc-ease), background .25s ease, color .25s ease;
}
.tc-card:hover .tc-card-link{ color:#fff; border-color:var(--tc-line-2); }
.tc-card:hover .tc-card-link span{ transform:translateX(4px); background:var(--tc-blue); color:#fff; }

/* Spotlight */
.tc-spotlight{
	display:grid;
	grid-template-columns:1.05fr .95fr;
	gap:clamp(2rem, 5vw, 3.5rem);
	align-items:center;
}
.tc-spotlight-text h2{ font-size:clamp(1.6rem, 3.4vw, 2.1rem); max-width:18ch; }
.tc-spotlight-text p{ color:var(--tc-paper-dim); max-width:48ch; }
.tc-check-list{ margin:1.4rem 0 1.8rem; display:flex; flex-direction:column; gap:.65rem; }
.tc-check-list li{ position:relative; padding-left:1.7em; font-size:.95rem; color:var(--tc-paper-dim); }
.tc-check-list li::before{
	content:'';
	position:absolute; left:0; top:.35em;
	width:1.05em; height:1.05em;
	border-radius:50%;
	background:linear-gradient(135deg, var(--tc-blue-2), var(--tc-blue));
	box-shadow:0 0 0 3px rgba(27,149,224,.15);
}
.tc-spotlight-panel{ position:relative; border-radius:var(--tc-radius-lg); overflow:hidden; box-shadow:var(--tc-shadow-lg); aspect-ratio:4/3; }
.tc-spotlight-panel img{ width:100%; height:100%; object-fit:cover; display:block; }
.tc-corner{ position:absolute; width:34px; height:34px; border-color:rgba(255,255,255,.75); pointer-events:none; }
.tc-corner--tl{ top:14px; left:14px; border-top:2px solid; border-left:2px solid; border-radius:6px 0 0 0; }
.tc-corner--br{ bottom:14px; right:14px; border-bottom:2px solid; border-right:2px solid; border-radius:0 0 6px 0; }
.tc-panel-badge{
	position:absolute; bottom:14px; right:14px;
	width:64px; height:64px;
	border-radius:50%;
	overflow:hidden;
	border:2px solid rgba(255,255,255,.85);
	box-shadow:0 8px 20px rgba(0,0,0,.4);
}
.tc-panel-badge img{ width:100%; height:100%; object-fit:cover; }

/* Split 2 columnas */
.tc-split{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:clamp(1.6rem, 4vw, 2.6rem);
}
.tc-split-col h2{ font-size:1.5rem; max-width:18ch; }
.tc-split-col p{ color:var(--tc-paper-dim); }
.tc-split-photo{ display:block; border-radius:var(--tc-radius); overflow:hidden; margin-bottom:1.4rem; box-shadow:var(--tc-shadow); aspect-ratio:3/2; }
.tc-split-photo img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--tc-ease); }
.tc-split-col:hover .tc-split-photo img{ transform:scale(1.05); }

/* Split y Galeria van seguidas sin cambio de fondo entre ellas: se recorta el padding
   de esa union para que no se acumule un bloque de espacio vacio de mas. */
.tc-split{ padding-bottom:clamp(1.5rem, 3vw, 2.5rem); }
.tc-gallery{ padding-top:clamp(1.5rem, 3vw, 2.5rem); }

/* Galeria e Instagram van seguidas, mismo fondo por defecto sin quiebre visual
   entre ambas - mismo criterio de recorte de padding ya usado arriba. */
.tc-gallery{ padding-bottom:clamp(1.5rem, 3vw, 2.5rem); }
.tc-instagram{ padding-top:clamp(1.5rem, 3vw, 2.5rem); }

/* Video del taller */
.tc-video{
	display:grid;
	grid-template-columns:1.05fr .95fr;
	gap:clamp(2rem, 5vw, 3.5rem);
	align-items:center;
}
.tc-video-text h2{ font-size:clamp(1.6rem, 3.4vw, 2.1rem); max-width:20ch; }
.tc-video-text p{ color:var(--tc-paper-dim); max-width:46ch; }
.tc-video-card{
	position:relative;
	width:100%;
	max-width:360px;
	margin:0 auto;
	aspect-ratio:9/16;
	border-radius:var(--tc-radius-lg);
	overflow:hidden;
	box-shadow:var(--tc-shadow-lg);
	background:var(--tc-card);
}
.tc-video-card video{ width:100%; height:100%; object-fit:cover; display:block; cursor:pointer; }
.tc-video-mute{
	position:absolute; bottom:14px; right:14px; z-index:2;
	width:42px; height:42px; border-radius:50%;
	background:rgba(19,20,23,.7);
	backdrop-filter:blur(6px);
	border:1px solid var(--tc-line-2);
	color:#fff;
	display:flex; align-items:center; justify-content:center;
	padding:10px;
	cursor:pointer;
	transition:background .2s ease, transform .2s ease;
}
.tc-video-mute:hover{ background:var(--tc-blue); transform:scale(1.06); }
.tc-video-mute svg{ width:100%; height:100%; }
.tc-video-mute .tc-icon-unmuted{ display:none; }
.tc-video-mute.is-unmuted .tc-icon-muted{ display:none; }
.tc-video-mute.is-unmuted .tc-icon-unmuted{ display:block; }

/* Galeria */
.tc-gallery-wrap{ position:relative; max-width:1200px; margin:0 auto; }
.tc-gallery-track{
	display:flex;
	gap:1.1rem;
	overflow-x:auto;
	scroll-snap-type:x mandatory;
	padding:.3rem .1rem 1rem;
	scrollbar-width:none;
	mask-image:linear-gradient(90deg, transparent 0, #000 3%, #000 97%, transparent 100%);
	-webkit-mask-image:linear-gradient(90deg, transparent 0, #000 3%, #000 97%, transparent 100%);
}
.tc-gallery-track::-webkit-scrollbar{ display:none; }
.tc-gallery-item{
	position:relative;
	flex:0 0 clamp(230px, 32vw, 320px);
	scroll-snap-align:start;
	border-radius:var(--tc-radius);
	overflow:hidden;
	aspect-ratio:4/3;
	margin:0;
	box-shadow:var(--tc-shadow);
	cursor:pointer;
}
.tc-gallery-item img{
	width:100%; height:100%; object-fit:cover; display:block;
	filter:grayscale(.35) saturate(1.05);
	transform:scale(1.02);
	transition:transform .6s var(--tc-ease), filter .6s var(--tc-ease);
}
.tc-gallery-item:hover img{ transform:scale(1.1); filter:grayscale(0) saturate(1.15); }
.tc-gallery-zoom{
	position:absolute; inset:0;
	display:flex; align-items:center; justify-content:center;
	background:rgba(8,9,11,.35);
	opacity:0; transition:opacity .3s ease;
}
.tc-gallery-zoom svg{ width:34px; height:34px; color:#fff; }
.tc-gallery-item:hover .tc-gallery-zoom{ opacity:1; }
.tc-gallery-nav{
	position:absolute; top:50%; transform:translateY(-50%);
	width:44px; height:44px; border-radius:50%;
	background:rgba(19,20,23,.85);
	backdrop-filter:blur(6px);
	border:1px solid var(--tc-line-2);
	color:#fff; font-size:1.4rem; line-height:1;
	cursor:pointer; z-index:2;
	display:flex; align-items:center; justify-content:center;
	transition:background .2s ease, transform .2s ease;
}
.tc-gallery-prev{ left:-8px; }
.tc-gallery-next{ right:-8px; }
.tc-gallery-nav:hover{ background:var(--tc-blue); transform:translateY(-50%) scale(1.06); }

/* Instagram */
.tc-instagram{
	display:grid;
	grid-template-columns:1.05fr .95fr;
	gap:clamp(2rem, 5vw, 3.5rem);
	align-items:center;
}
.tc-instagram-text h2{ font-size:clamp(1.6rem, 3.4vw, 2.1rem); max-width:20ch; }
.tc-instagram-text p{ color:var(--tc-paper-dim); max-width:46ch; }
.tc-instagram-text .tc-check-list{ margin-top:1.2rem; }
.tc-instagram-text .tc-btn{ margin-top:.4rem; }
.tc-instagram-panel{ position:relative; width:100%; max-width:420px; margin:0 auto; }
.tc-instagram-grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:.5rem;
	border-radius:var(--tc-radius-lg);
	overflow:hidden;
	box-shadow:var(--tc-shadow-lg);
}
.tc-instagram-grid a{ display:block; aspect-ratio:1/1; overflow:hidden; }
.tc-instagram-grid img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--tc-ease); }
.tc-instagram-grid a:hover img{ transform:scale(1.08); }
.tc-panel-badge--instagram{
	display:flex; align-items:center; justify-content:center;
	padding:15px;
	background:linear-gradient(135deg, var(--tc-blue-2), var(--tc-blue));
	color:#fff;
}

/* Resenas de Google */
.tc-reviews-summary{
	display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:1.6rem 2.4rem;
	max-width:820px; margin:0 auto 2.6rem; text-align:center;
}
.tc-reviews-score{ display:flex; flex-direction:column; align-items:center; gap:.3rem; }
.tc-reviews-score strong{ font-family:var(--tc-font-display); font-size:clamp(2rem, 5vw, 2.6rem); font-weight:800; color:#fff; line-height:1; }
.tc-reviews-stars{ display:flex; gap:.15rem; color:var(--tc-blue-3); }
.tc-reviews-stars svg{ width:20px; height:20px; }
.tc-reviews-score span{ font-size:.86rem; color:var(--tc-paper-dim); }

.tc-reviews-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
	gap:1.4rem;
	max-width:1200px;
	margin:0 auto;
}
.tc-review-card{
	display:flex;
	flex-direction:column;
	height:100%;
	background:linear-gradient(160deg, var(--tc-card-2), var(--tc-card));
	border:1px solid var(--tc-line);
	border-radius:var(--tc-radius);
	padding:1.6rem 1.5rem;
}
.tc-review-head{ display:flex; align-items:center; gap:.8rem; margin-bottom:.9rem; flex:none; }
.tc-review-avatar{ width:44px; height:44px; border-radius:50%; object-fit:cover; flex:none; }
.tc-review-avatar--fallback{
	display:flex; align-items:center; justify-content:center;
	background:linear-gradient(135deg, var(--tc-blue-2), var(--tc-blue));
	color:#fff; font-family:var(--tc-font-display); font-weight:700; font-size:.9rem;
}
.tc-review-head strong{ display:block; font-size:.92rem; color:#fff; }
.tc-review-stars{ display:flex; gap:.1rem; color:var(--tc-blue-3); margin-top:.15rem; }
.tc-review-stars svg{ width:14px; height:14px; }
.tc-review-card p{
	flex:1;
	font-size:.9rem; color:var(--tc-paper-dim); margin:0 0 .8rem;
	/* Recorte a 6 lineas: reseñas de largo muy dispar quedan del mismo alto,
	   en vez de que cada tarjeta crezca segun cuanto escribio cada cliente. */
	display:-webkit-box; -webkit-line-clamp:6; -webkit-box-orient:vertical; line-clamp:6;
	overflow:hidden;
}
.tc-review-time{ font-size:.78rem; color:var(--tc-paper-dim); opacity:.7; flex:none; }

p.tc-reviews-attribution{
	display:flex; align-items:center; justify-content:center; gap:.5rem;
	margin:clamp(2.6rem, 5vw, 3.4rem) 0 0; font-size:.78rem; color:var(--tc-paper-dim); opacity:.75;
}
.tc-google-icon{ display:block; width:16px; height:16px; flex:none; }

/* Resenas y Contacto van seguidas, mismo fondo (ink-2) sin quiebre visual
   entre ambas - mismo criterio ya aplicado en la union Split/Galeria. */
.tc-reviews{ padding-bottom:clamp(1.5rem, 3vw, 2.5rem); }
.tc-contacto{ padding-top:clamp(1.5rem, 3vw, 2.5rem); }

/* Contacto */
.tc-contacto{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:clamp(2rem, 5vw, 3.5rem);
}
.tc-info-block{ margin-bottom:1.5rem; display:flex; gap:1rem; align-items:flex-start; }
.tc-info-icon{
	flex:none; width:38px; height:38px; border-radius:11px;
	background:rgba(27,149,224,.14); border:1px solid rgba(27,149,224,.3);
	color:var(--tc-blue-3); padding:9px;
}
.tc-info-block h4{ font-family:var(--tc-font-display); font-size:.82rem; text-transform:uppercase; letter-spacing:.1em; color:var(--tc-blue-2); margin-bottom:.4em; }
.tc-info-block p{ margin:0; color:var(--tc-paper-dim); }
.tc-info-block a:hover{ color:#fff; }
.tc-social{ display:flex; gap:.8rem; margin-top:1.6rem; }
.tc-social a{
	width:42px; height:42px; border-radius:50%;
	background:rgba(255,255,255,.06);
	border:1px solid var(--tc-line);
	display:flex; align-items:center; justify-content:center;
	padding:10px;
	color:#fff;
	transition:background .2s ease, transform .2s ease, border-color .2s ease;
}
.tc-social a:hover{ background:var(--tc-blue); border-color:var(--tc-blue-3); transform:translateY(-3px); }
.tc-map{ position:relative; border-radius:var(--tc-radius-lg); overflow:hidden; box-shadow:var(--tc-shadow-lg); min-height:340px; border:1px solid var(--tc-line); }
.tc-map-placeholder{
	position:absolute; inset:0; z-index:0;
	display:flex; align-items:center; justify-content:center;
	background:
		radial-gradient(circle at 50% 40%, rgba(27,149,224,.18), transparent 60%),
		repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 1px, transparent 1px 32px),
		repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 32px),
		var(--tc-ink-2);
}
.tc-map-placeholder svg{ width:44px; height:44px; color:var(--tc-blue-3); opacity:.6; }
.tc-map iframe{ position:relative; z-index:1; width:100%; height:100%; min-height:340px; border:0; display:block; background:transparent; }

/* Footer */
.tc-footer{
	position:relative;
	display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:1rem 1.6rem;
	text-align:center;
	padding:2rem 1.25rem;
	font-size:.82rem;
	color:var(--tc-paper-dim);
	border-top:1px solid var(--tc-line);
}
.tc-footer-brand{ display:flex; align-items:center; gap:.6rem; font-family:var(--tc-font-display); font-weight:700; color:#fff; font-size:.92rem; }
.tc-footer-brand .tc-mark{ width:28px; height:28px; }
.tc-footer p{ margin:0; }
.tc-footer-top{
	width:36px; height:36px; border-radius:50%;
	border:1px solid var(--tc-line-2);
	display:flex; align-items:center; justify-content:center;
	color:#fff; padding:9px;
	transition:background .2s ease, transform .2s ease;
}
.tc-footer-top:hover{ background:var(--tc-blue); transform:translateY(-2px); }

/* WhatsApp flotante */
.tc-whatsapp-float{
	position:fixed; right:1.2rem; bottom:1.2rem; z-index:50;
	width:56px; height:56px; border-radius:50%;
	background:linear-gradient(135deg, var(--tc-blue-2), var(--tc-blue)); color:#fff;
	display:flex; align-items:center; justify-content:center;
	padding:14px;
	box-shadow:0 12px 30px var(--tc-blue-glow);
	transition:transform .2s var(--tc-ease), box-shadow .2s var(--tc-ease);
}
.tc-whatsapp-float:hover{ transform:scale(1.08); box-shadow:0 16px 40px var(--tc-blue-glow); }

/* Paginas individuales de servicio (template-servicio.php) */
.tc-breadcrumb{
	max-width:1200px; margin:0 auto; padding:1.4rem clamp(1.25rem, 4vw, 3rem) 0;
	display:flex; flex-wrap:wrap; gap:.4em;
	font-size:.82rem; color:var(--tc-paper-dim);
}
.tc-breadcrumb a:hover{ color:#fff; }
.tc-breadcrumb .tc-breadcrumb-current{ color:#fff; }

.tc-service-hero{
	position:relative; overflow:hidden;
	padding:2rem clamp(1.25rem, 4vw, 3rem) clamp(3rem, 7vw, 4.5rem);
}
.tc-service-hero-inner{
	position:relative; z-index:2;
	max-width:800px; margin:0 auto; text-align:center;
}
.tc-service-hero-bg{
	position:absolute; inset:0; z-index:0;
	background-size:cover; background-position:center 40%; background-repeat:no-repeat;
}
.tc-service-hero .tc-kicker{ justify-content:center; }
.tc-service-hero h1{ font-size:clamp(2rem, 4.6vw, 3rem); }
.tc-service-hero .tc-lead{ margin:0 auto 1.6rem; }
.tc-service-hero .tc-hero-actions{ justify-content:center; margin:0; }

.tc-service-gallery{
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
	gap:1.2rem;
	max-width:1200px;
	margin:2.6rem auto 0;
}
.tc-service-gallery img{
	width:100%; aspect-ratio:4/3; object-fit:cover; display:block;
	border-radius:var(--tc-radius);
	box-shadow:var(--tc-shadow);
}

/* Responsive */
@media (max-width: 900px){
	.tc-nav{ display:none; }
	.tc-menu-toggle{ display:flex; }
	.tc-header{ grid-template-columns:1fr auto; }
	.tc-header .tc-btn--whatsapp{ display:none; }
	.tc-nosotros,
	.tc-spotlight,
	.tc-split,
	.tc-video,
	.tc-instagram,
	.tc-contacto{ grid-template-columns:1fr; }
	.tc-spotlight-panel{ order:-1; aspect-ratio:16/10; }
	.tc-nosotros-photo{ order:-1; }
	.tc-video-card{ order:-1; max-width:300px; }
	.tc-instagram-panel{ order:-1; max-width:320px; }
	.tc-hero-stats{ gap:.6rem 0; }
}
@media (max-width: 560px){
	.tc-hero-stats li{ padding:0 1rem; }
	.tc-hero-stats li:nth-child(2){ border-left:1px solid var(--tc-line); }
	.tc-footer{ flex-direction:column; }
}
