/*
Theme Name:   G&J Granite
Theme URI:    https://gjgranite.com/
Description:  Child theme of Kadence for G&J Granite and Floors. Brand: gold + charcoal. Modern, dynamic, responsive. Built by GBM Comunicaciones.
Author:       GBM Comunicaciones
Author URI:   https://gbmcomunicaciones.com/
Template:     kadence
Version:      0.2.0
Text Domain:  gj-granite
Tags:         child-theme, kadence, bilingual, business
*/

/* ============================================================
   G&J GRANITE — Modern, dynamic, responsive child theme
   ============================================================ */

/* --------------- 1. Tokens --------------- */
:root {
	--gj-gold:        #D4A028;
	--gj-gold-bright: #F0B500;
	--gj-gold-soft:   #F5E2A8;
	--gj-gold-glow:   rgba(212,160,40,.35);
	--gj-silver:      #B8B8B8;
	--gj-charcoal:    #1A1D21;
	--gj-graphite:    #2C2F33;
	--gj-ink:         #14171A;
	--gj-muted:       #5A6068;
	--gj-line:        #E6E8EC;
	--gj-bg:          #FAFAFA;
	--gj-card:        #FFFFFF;
	--gj-shadow-sm:   0 1px 2px rgba(20,23,26,.05), 0 4px 14px rgba(20,23,26,.06);
	--gj-shadow-md:   0 10px 30px rgba(20,23,26,.10);
	--gj-shadow-lg:   0 24px 60px rgba(20,23,26,.16);
	--gj-radius:      18px;
	--gj-radius-sm:   10px;
	--gj-radius-pill: 999px;
	--gj-maxw:        1180px;
	--gj-content:     780px;
	--gj-section:     clamp(44px, 5.5vw, 80px);
}

/* --------------- 2. Base & typography --------------- */
html { scroll-behavior: smooth; }
body {
	color: var(--gj-ink);
	background: var(--gj-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.entry-content { font-size: 1.05rem; line-height: 1.7; }
h1, .h1, h2, .h2, h3, .h3 {
	font-family: "Bebas Neue", "Oswald", Impact, sans-serif;
	letter-spacing: .005em;
	line-height: 1.05;
	color: var(--gj-ink);
}
h1, .h1 { font-size: clamp(2.4rem, 6vw, 4.6rem); font-weight: 700; }
h2, .h2 { font-size: clamp(1.9rem, 4.2vw, 3.1rem); font-weight: 700; margin-top: 1.2em; }
h3, .h3 { font-size: clamp(1.3rem, 2.6vw, 1.7rem); font-weight: 600; font-family: "Inter", sans-serif; letter-spacing: -.01em; }

.gj-eyebrow {
	display: inline-block;
	font-family: "Inter", sans-serif;
	font-size: .78rem; font-weight: 700;
	letter-spacing: .18em; text-transform: uppercase;
	color: var(--gj-gold);
	padding: 6px 12px;
	border: 1px solid var(--gj-gold);
	border-radius: var(--gj-radius-pill);
	margin-bottom: 18px;
}

.entry-title {
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: clamp(2.4rem, 5.5vw, 4rem);
	letter-spacing: .003em;
	margin: 0 0 1rem;
}

/* --------------- 3. Layout primitives --------------- */
.gj-section { padding: var(--gj-section) 0; position: relative; }
.gj-container, .gj-wrap { max-width: var(--gj-maxw); margin: 0 auto; padding: 0 22px; }
.gj-narrow { max-width: var(--gj-content); margin: 0 auto; padding: 0 22px; }
.gj-grid { display: grid; gap: 24px; }
.gj-grid-3 { grid-template-columns: repeat(3, 1fr); }
.gj-grid-4 { grid-template-columns: repeat(4, 1fr); }
.gj-grid-2 { grid-template-columns: repeat(2, 1fr); }

/* --------------- 4. Hero patterns --------------- */
.gj-hero {
	position: relative;
	min-height: clamp(520px, 70vh, 760px);
	display: flex; align-items: center;
	color: #fff; overflow: hidden;
	background:
	  radial-gradient(1100px 500px at 80% -10%, var(--gj-gold-glow), transparent 60%),
	  linear-gradient(160deg, var(--gj-ink) 0%, var(--gj-graphite) 100%);
}
.gj-hero::after {
	content: "";
	position: absolute; inset: 0;
	opacity: .05;
	background-image:
	  linear-gradient(rgba(255,255,255,.6) 1px, transparent 1px),
	  linear-gradient(90deg, rgba(255,255,255,.6) 1px, transparent 1px);
	background-size: 40px 40px;
	-webkit-mask-image: linear-gradient(180deg, transparent, #000 40%, transparent);
	        mask-image: linear-gradient(180deg, transparent, #000 40%, transparent);
}
.gj-hero__wrap { position: relative; z-index: 2; max-width: var(--gj-maxw); margin: 0 auto; padding: 0 22px; width: 100%; }
.gj-hero h1, .gj-hero .h1 { color: #fff; max-width: 18ch; margin: 0; }
.gj-hero p.lead {
	font-size: clamp(1.05rem, 1.6vw, 1.25rem);
	color: #c9d1da; max-width: 60ch;
	margin: 18px 0 32px; line-height: 1.6;
}
.gj-hero .gj-eyebrow { color: var(--gj-gold-bright); border-color: rgba(240,181,0,.5); background: rgba(240,181,0,.08); }

/* --------------- 5. Trust strip --------------- */
.gj-trust-strip {
	background: var(--gj-card);
	border-top: 1px solid var(--gj-line);
	border-bottom: 1px solid var(--gj-line);
	padding: 32px 0;
}
.gj-trust-strip .gj-wrap {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px; text-align: center;
	align-items: start;
}
.gj-trust-item {
	display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
}
.gj-trust-item b {
	display: flex; align-items: center; justify-content: center;
	min-height: 2.3em;                 /* reserva 2 líneas: alinea los subtítulos aunque uno salte de línea */
	font-family: "Bebas Neue", sans-serif;
	font-size: clamp(1.4rem, 2.1vw, 1.9rem);
	line-height: 1.05;
	color: var(--gj-gold);
	letter-spacing: .003em;
	margin-bottom: 6px;
	text-wrap: balance;
}
.gj-trust-item span { font-size: .85rem; color: var(--gj-muted); font-weight: 600; }

/* --------------- 6. Service grid --------------- */
.gj-services { padding: var(--gj-section) 0; background: linear-gradient(180deg, #fff 0%, var(--gj-bg) 100%); }
/* 8 servicios → 4 + 4 uniformes */
.gj-services__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 22px;
	margin-top: 36px;
}
.gj-service-card {
	background: var(--gj-card);
	border: 1px solid var(--gj-line);
	border-radius: var(--gj-radius);
	padding: 28px;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
	position: relative; overflow: hidden;
	text-decoration: none; color: inherit; display: block;
}
.gj-service-card::before {
	content: "";
	position: absolute; top: 0; left: 0; right: 0; height: 3px;
	background: linear-gradient(90deg, var(--gj-gold), var(--gj-gold-bright));
	transform: scaleX(0); transform-origin: left;
	transition: transform .3s ease;
}
.gj-service-card:hover { transform: translateY(-6px); border-color: var(--gj-gold-soft); box-shadow: var(--gj-shadow-md); }
.gj-service-card:hover::before { transform: scaleX(1); }
.gj-service-card__icon {
	width: 56px; height: 56px;
	border-radius: 14px;
	background: linear-gradient(135deg, var(--gj-gold-soft), #fff);
	color: var(--gj-gold);
	display: grid; place-items: center;
	font-size: 1.6rem;
	margin-bottom: 18px;
	border: 1px solid var(--gj-gold-soft);
}
.gj-service-card h3 {
	font-family: "Inter", sans-serif;
	font-size: 1.15rem; font-weight: 700;
	margin: 0 0 8px; color: var(--gj-ink);
}
.gj-service-card p { color: var(--gj-muted); font-size: .95rem; margin: 0 0 14px; line-height: 1.55; }
.gj-service-card__more {
	display: inline-flex; align-items: center; gap: 6px;
	color: var(--gj-gold); font-weight: 700; font-size: .9rem;
	transition: gap .2s ease;
}
.gj-service-card:hover .gj-service-card__more { gap: 12px; }

/* --------------- 7. Cards --------------- */
.gj-card {
	background: var(--gj-card);
	border: 1px solid var(--gj-line);
	border-radius: var(--gj-radius);
	padding: 24px;
	box-shadow: var(--gj-shadow-sm);
}

/* --------------- 8. CTA bands --------------- */
.gj-cta-band {
	position: relative;
	padding: clamp(60px, 9vw, 110px) 0;
	color: #fff;
	background:
	  radial-gradient(800px 400px at 10% 100%, var(--gj-gold-glow), transparent 60%),
	  linear-gradient(160deg, var(--gj-ink) 0%, var(--gj-graphite) 100%);
	overflow: hidden;
	text-align: center;
}
.gj-cta-band h2, .gj-cta-band .h2 { color: #fff; margin-top: 0; }
.gj-cta-band p { color: #c9d1da; max-width: 56ch; margin: 16px auto 28px; font-size: 1.1rem; }

/* --------------- 9. Buttons --------------- */
.gj-cta, .wp-block-button__link, .kb-button {
	display: inline-flex !important; align-items: center; gap: 10px;
	padding: 14px 28px;
	border-radius: var(--gj-radius-sm) !important;
	font-family: "Inter", sans-serif !important;
	font-weight: 700 !important;
	font-size: .98rem; letter-spacing: .005em;
	background: linear-gradient(135deg, var(--gj-gold) 0%, var(--gj-gold-bright) 100%) !important;
	color: var(--gj-charcoal) !important;
	border: 0 !important; cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease;
	text-decoration: none !important;
}
.gj-cta:hover, .wp-block-button__link:hover, .kb-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 32px var(--gj-gold-glow);
}
.gj-cta--ghost {
	background: rgba(255,255,255,.06) !important;
	color: #fff !important;
	border: 1.5px solid rgba(255,255,255,.25) !important;
}
.gj-cta--ghost:hover { background: rgba(255,255,255,.13) !important; box-shadow: none; }
.wp-block-buttons { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 0 !important; }

/* --------------- 10. Testimonials --------------- */
.gj-testimonials { padding: var(--gj-section) 0; }
.gj-testimonials__grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 36px;
}
.gj-testimonial {
	background: var(--gj-card);
	border: 1px solid var(--gj-line);
	border-radius: var(--gj-radius);
	padding: 26px;
	box-shadow: var(--gj-shadow-sm);
	transition: transform .25s ease, box-shadow .25s ease;
}
.gj-testimonial:hover { transform: translateY(-4px); box-shadow: var(--gj-shadow-md); }
.gj-testimonial__stars { color: var(--gj-gold); font-size: 1rem; letter-spacing: 2px; margin-bottom: 12px; }
.gj-testimonial p { font-size: 1.02rem; color: var(--gj-ink); line-height: 1.6; margin: 0 0 16px; }
.gj-testimonial__name { font-weight: 700; color: var(--gj-ink); font-size: .92rem; }
.gj-testimonial__meta { color: var(--gj-muted); font-size: .82rem; }

/* --------------- 11. Featured projects --------------- */
.gj-projects { padding: var(--gj-section) 0; background: #fff; }
.gj-projects__grid {
	display: grid; grid-template-columns: repeat(3, 1fr);
	gap: 20px; margin-top: 36px;
}
.gj-project-card {
	border-radius: var(--gj-radius);
	overflow: hidden;
	background: linear-gradient(135deg, var(--gj-graphite), var(--gj-charcoal));
	aspect-ratio: 4 / 3;
	position: relative; cursor: pointer;
	transition: transform .25s ease, box-shadow .25s ease;
	display: block;
}
.gj-project-card:hover { transform: scale(1.02); box-shadow: var(--gj-shadow-lg); }
.gj-project-card::after {
	content: "";
	position: absolute; inset: 0;
	background:
	  radial-gradient(circle at 30% 40%, rgba(212,160,40,.20), transparent 50%),
	  repeating-linear-gradient(45deg, rgba(255,255,255,.04) 0 6px, transparent 6px 14px);
}
.gj-project-card .gj-project-label {
	position: absolute; left: 18px; bottom: 16px; z-index: 2;
	color: #fff; font-weight: 700; font-size: .98rem;
	background: rgba(20,23,26,.5);
	padding: 6px 12px;
	border-radius: var(--gj-radius-pill);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}

/* --------------- 12. Scroll reveal --------------- */
.gj-reveal { opacity: 0; transform: translateY(30px); transition: opacity .7s ease, transform .7s ease; }
.gj-reveal.is-in { opacity: 1; transform: none; }
.gj-reveal-stagger > * { opacity: 0; transform: translateY(20px); transition: opacity .55s ease, transform .55s ease; }
/* Any direct child becomes visible when the container is in view… */
.gj-reveal-stagger.is-in > * { opacity: 1; transform: none; }
/* …with a staggered delay for the first several items */
.gj-reveal-stagger.is-in > *:nth-child(1) { transition-delay: .05s; }
.gj-reveal-stagger.is-in > *:nth-child(2) { transition-delay: .12s; }
.gj-reveal-stagger.is-in > *:nth-child(3) { transition-delay: .18s; }
.gj-reveal-stagger.is-in > *:nth-child(4) { transition-delay: .24s; }
.gj-reveal-stagger.is-in > *:nth-child(5) { transition-delay: .30s; }
.gj-reveal-stagger.is-in > *:nth-child(6) { transition-delay: .36s; }
.gj-reveal-stagger.is-in > *:nth-child(7) { transition-delay: .42s; }
.gj-reveal-stagger.is-in > *:nth-child(8) { transition-delay: .48s; }
.gj-reveal-stagger.is-in > *:nth-child(n+9) { transition-delay: .52s; }

@media (prefers-reduced-motion: reduce) {
	.gj-reveal, .gj-reveal-stagger > * { transition-duration: .01ms !important; }
}

/* --------------- 12.5 One-click language toggle (top-right, aligned with menu) --------------- */
.gj-lang-toggle {
	position: fixed;
	top: 32px; right: 24px;          /* alineado con el menú */
	z-index: 200;
	display: inline-flex; align-items: center; gap: 8px;
	padding: 10px 18px;
	background: rgba(20, 23, 26, .82);
	-webkit-backdrop-filter: blur(10px);
	        backdrop-filter: blur(10px);
	color: #fff !important;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 999px;
	font-family: "Inter", sans-serif;
	font-weight: 700;
	font-size: .82rem;
	letter-spacing: .12em;
	text-decoration: none !important;
	transition: background .22s ease, transform .15s ease, box-shadow .22s ease, color .22s ease, border-color .22s ease;
	box-shadow: 0 6px 22px rgba(0, 0, 0, .25);
}
/* Texto por defecto: current = blanco sólido, separador = blanco translúcido, other = oro brillante */
.gj-lang-toggle .gj-lang-toggle__current { color: #fff; opacity: 1; }
.gj-lang-toggle .gj-lang-toggle__sep     { color: rgba(255,255,255,.5); font-weight: 400; }
.gj-lang-toggle .gj-lang-toggle__other   { color: var(--gj-gold-bright); }

/* HOVER — fondo oscuro más sólido + borde dorado, texto SIEMPRE blanco visible */
.gj-lang-toggle:hover {
	background: rgba(20, 23, 26, .95) !important;
	border-color: var(--gj-gold-bright) !important;
	transform: translateY(-2px);
	box-shadow: 0 10px 28px var(--gj-gold-glow);
}
.gj-lang-toggle:hover .gj-lang-toggle__current { color: #fff !important; opacity: 1 !important; }
.gj-lang-toggle:hover .gj-lang-toggle__sep     { color: rgba(255,255,255,.7) !important; opacity: 1 !important; }
.gj-lang-toggle:hover .gj-lang-toggle__other   { color: var(--gj-gold-bright) !important; opacity: 1 !important; }

/* En home (header transparente sobre slider): translúcido + mismo top alineado al menú */
body.home .gj-lang-toggle, body.gj-front-page .gj-lang-toggle {
	background: rgba(20, 23, 26, .55);
	top: 34px;
}

/* Cuando hay admin bar (32px), empuja el botón un poco más abajo */
.admin-bar .gj-lang-toggle           { top: 64px; }
body.admin-bar.home .gj-lang-toggle,
body.admin-bar.gj-front-page .gj-lang-toggle { top: 66px; }

/* Al scrollear: header se vuelve sólido — el toggle más compacto y alineado */
body.gj-scrolled .gj-lang-toggle {
	background: rgba(20, 23, 26, .94);
	padding: 8px 14px;
	font-size: .78rem;
	top: 20px;
}
.admin-bar.gj-scrolled .gj-lang-toggle { top: 52px; }

@media (max-width: 640px) {
	.gj-lang-toggle { padding: 8px 14px; font-size: .76rem; top: 22px; right: 14px; }
	.admin-bar .gj-lang-toggle { top: 54px; }
}

/* --------------- 12.7 Site logo sizing --------------- */
/* Hide the text site title / tagline — we use the image logo only */
.site-branding .site-title,
.site-header .site-title,
.site-title-wrap .site-title,
.site-branding .site-description {
	display: none !important;
}
/* Logo image — full height, never clipped */
.site-header .custom-logo,
.site-branding img.custom-logo {
	height: 76px !important;
	width: auto !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: contain !important;
	display: block;
	transition: height .25s ease;
}
/* Make sure no ancestor clips the logo vertically */
.site-header .site-branding,
.site-header .custom-logo-link,
.site-header .site-branding a,
.site-header-item-inner,
.site-branding-wrap {
	overflow: visible !important;
	display: flex;
	align-items: center;
}
/* Give the header row enough height so a 60px logo breathes */
.site-main-header-inner-wrap,
.site-header-row-container-inner { min-height: 100px !important; }

/* Shrink a touch when the header turns solid on scroll */
body.gj-scrolled .site-header .custom-logo { height: 62px !important; }

/* Drop-shadow so the logo reads over any slide on home */
body.home .site-header .custom-logo,
body.gj-front-page .site-header .custom-logo {
	filter: drop-shadow(0 2px 6px rgba(0,0,0,.45));
}
@media (max-width: 640px) {
	.site-header .custom-logo { height: 56px !important; }
}

/* --------------- 13. Floating FAB --------------- */
.gj-fab {
	position: fixed; right: 18px; bottom: 18px;
	display: flex; flex-direction: column; gap: 12px; z-index: 90;
}
.gj-fab a {
	width: 56px; height: 56px; border-radius: 50%;
	display: grid; place-items: center; color: #fff;
	box-shadow: 0 10px 26px rgba(0,0,0,.25);
	transition: transform .15s ease, box-shadow .15s ease;
}
.gj-fab a:hover { transform: scale(1.08); box-shadow: 0 14px 30px rgba(0,0,0,.35); }
.gj-fab .gj-wa  { background: #25D366; }
.gj-fab .gj-tel { background: var(--gj-charcoal); }

/* --------------- 13.5 Interior page patterns --------------- */
.gj-page-hero {
	position: relative;
	min-height: clamp(440px, 60vh, 600px);
	display: flex; align-items: flex-end;
	padding-bottom: 70px; color: #fff; overflow: hidden;
	background-size: cover; background-position: center;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	width: 100vw !important; max-width: 100vw !important;
}
.gj-page-hero::before {
	content: ""; position: absolute; inset: 0;
	background:
	  linear-gradient(135deg, rgba(20,23,26,.88), rgba(20,23,26,.55) 50%, rgba(20,23,26,.82)),
	  linear-gradient(0deg, rgba(20,23,26,.6) 0%, transparent 35%);
}
.gj-page-hero::after {
	content: ""; position: absolute; top: 0; left: 0; right: 0; height: 200px;
	background: linear-gradient(180deg, rgba(20,23,26,.65) 0%, transparent 100%);
	pointer-events: none;
}
.gj-page-hero__content { position: relative; z-index: 2; padding-top: 200px; width: 100%; }
.gj-page-hero h1, .gj-page-hero .h1 { color: #fff; max-width: 20ch; margin: 0; }
.gj-page-hero p { color: #d3d8df; max-width: 60ch; margin: 16px 0 0; font-size: clamp(1rem, 1.5vw, 1.2rem); line-height: 1.6; }
.gj-page-hero .gj-eyebrow { color: var(--gj-gold-bright); border-color: rgba(240,181,0,.55); background: rgba(240,181,0,.10); }

.gj-section-intro { text-align: center; max-width: 740px; margin: 0 auto 36px; }
.gj-section-intro h2 { margin: 6px 0; }
.gj-section-intro p { color: var(--gj-muted); font-size: 1.05rem; margin-top: 12px; }

/* 4-step process */
.gj-process { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.gj-step {
	background: var(--gj-card); border: 1px solid var(--gj-line);
	border-radius: var(--gj-radius); padding: 28px 24px;
	transition: transform .25s, box-shadow .25s, border-color .25s;
}
.gj-step:hover { transform: translateY(-4px); box-shadow: var(--gj-shadow-md); border-color: var(--gj-gold-soft); }
.gj-step__num { display: block; font-family: "Bebas Neue", sans-serif; font-size: 2.6rem; line-height: 1; color: var(--gj-gold); margin-bottom: 8px; }
.gj-step h3 { font-family: "Inter"; font-size: 1.08rem; font-weight: 700; margin: 0 0 6px; }
.gj-step p { color: var(--gj-muted); font-size: .94rem; margin: 0; line-height: 1.55; }

/* 3-up feature/material cards */
.gj-features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.gj-feature {
	background: var(--gj-card); border: 1px solid var(--gj-line);
	border-radius: var(--gj-radius); padding: 28px; transition: .25s;
}
.gj-feature:hover { transform: translateY(-4px); box-shadow: var(--gj-shadow-md); border-color: var(--gj-gold-soft); }
.gj-feature h3 { font-family: "Inter"; font-size: 1.18rem; font-weight: 700; margin: 0 0 8px; display: flex; align-items: center; gap: 10px; color: var(--gj-ink); }
.gj-feature h3::before { content: "◆"; color: var(--gj-gold); font-size: 1rem; }
.gj-feature p { color: var(--gj-muted); font-size: .96rem; margin: 0 0 14px; line-height: 1.6; }
.gj-feature__range { display: inline-block; background: var(--gj-gold-soft); color: var(--gj-charcoal); font-weight: 700; font-size: .82rem; padding: 6px 12px; border-radius: 999px; }

/* FAQ (Q/A blocks) */
.gj-faq { display: grid; gap: 14px; }
.gj-faq-item {
	background: var(--gj-card); border: 1px solid var(--gj-line);
	border-radius: var(--gj-radius); padding: 22px 26px; transition: border-color .2s;
}
.gj-faq-item:hover { border-color: var(--gj-gold-soft); }
.gj-faq-item h3 { font-family: "Inter"; font-size: 1.05rem; font-weight: 700; margin: 0 0 8px; color: var(--gj-ink); }
.gj-faq-item p { color: var(--gj-muted); font-size: .98rem; line-height: 1.65; margin: 0; }

/* Service-area city grid */
.gj-cities-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.gj-city { background: var(--gj-card); border: 1px solid var(--gj-line); border-radius: 10px; padding: 12px 16px; text-align: center; font-weight: 600; color: var(--gj-ink); font-size: .95rem; transition: .15s; }
.gj-city:hover { border-color: var(--gj-gold); color: var(--gj-gold); }

/* 2-col info layout */
.gj-info-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px; align-items: start; }
.gj-info-card { background: var(--gj-card); border: 1px solid var(--gj-line); border-radius: var(--gj-radius); padding: 32px; }
.gj-info-card h3 { font-family: "Inter"; font-weight: 700; font-size: 1.2rem; margin: 0 0 18px; }
.gj-info-row { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid var(--gj-line); }
.gj-info-row:last-child { border-bottom: 0; }
.gj-info-icon { width: 38px; height: 38px; border-radius: 10px; background: var(--gj-gold-soft); color: var(--gj-gold); display: grid; place-items: center; flex: 0 0 auto; font-size: 1.1rem; }
.gj-info-row b { display: block; color: var(--gj-ink); font-weight: 600; margin-bottom: 2px; font-size: .94rem; }
.gj-info-row span, .gj-info-row a { color: var(--gj-muted); font-size: .98rem; text-decoration: none; }
.gj-info-row a:hover { color: var(--gj-gold); }

/* Inline chips */
.gj-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.gj-chip { background: var(--gj-gold-soft); color: var(--gj-charcoal); border-radius: 999px; padding: 8px 16px; font-weight: 600; font-size: .9rem; }

/* Gallery filter tabs */
.gj-gallery-filters { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 32px; }
.gj-gallery-filters button { background: var(--gj-card); border: 1.5px solid var(--gj-line); color: var(--gj-ink); font-weight: 600; font-size: .9rem; padding: 10px 18px; border-radius: 999px; cursor: pointer; transition: .15s; font-family: "Inter", sans-serif; }
.gj-gallery-filters button:hover { border-color: var(--gj-gold); color: var(--gj-gold); }
.gj-gallery-filters button.is-active { background: linear-gradient(135deg, var(--gj-gold), var(--gj-gold-bright)); color: var(--gj-charcoal); border-color: transparent; }
/* Masonry gallery (CSS columns) — portrait + landscape both show fully, no crop */
.gj-gallery-grid { column-count: 3; column-gap: 16px; }
.gj-gallery-item {
	display: block; break-inside: avoid; margin: 0 0 16px;
	border-radius: var(--gj-radius); overflow: hidden; position: relative;
	transition: transform .25s, box-shadow .25s; box-shadow: var(--gj-shadow-sm);
	background: var(--gj-graphite);
}
.gj-gallery-item img { width: 100%; display: block; height: auto; }
.gj-gallery-item:hover { transform: translateY(-3px); box-shadow: var(--gj-shadow-md); }

/* Entrance animation that runs on page LOAD (CSS-only, not scroll-gated) */
@keyframes gjGalIn { from { opacity: 0; transform: translateY(18px) scale(.98); } to { opacity: 1; transform: none; } }
.gj-gallery-grid .gj-gallery-item { animation: gjGalIn .55s ease both; }
.gj-gallery-grid .gj-gallery-item:nth-child(1) { animation-delay: .04s; }
.gj-gallery-grid .gj-gallery-item:nth-child(2) { animation-delay: .10s; }
.gj-gallery-grid .gj-gallery-item:nth-child(3) { animation-delay: .16s; }
.gj-gallery-grid .gj-gallery-item:nth-child(4) { animation-delay: .22s; }
.gj-gallery-grid .gj-gallery-item:nth-child(5) { animation-delay: .28s; }
.gj-gallery-grid .gj-gallery-item:nth-child(6) { animation-delay: .34s; }
.gj-gallery-grid .gj-gallery-item:nth-child(7) { animation-delay: .40s; }
.gj-gallery-grid .gj-gallery-item:nth-child(8) { animation-delay: .46s; }
.gj-gallery-grid .gj-gallery-item:nth-child(n+9) { animation-delay: .50s; }
@media (prefers-reduced-motion: reduce) { .gj-gallery-grid .gj-gallery-item { animation: none; } }
.gj-gallery-item .gj-gallery-cap {
	position: absolute; left: 12px; bottom: 12px; right: 12px;
	background: linear-gradient(0deg, rgba(20,23,26,.82), rgba(20,23,26,.0));
	color: #fff; padding: 22px 6px 8px; border-radius: 0; font-size: .88rem; font-weight: 600;
	opacity: 0; transform: translateY(6px); transition: .25s;
}
.gj-gallery-item:hover .gj-gallery-cap { opacity: 1; transform: none; }
@media (max-width: 960px) { .gj-gallery-grid { column-count: 2; } }
@media (max-width: 560px) { .gj-gallery-grid { column-count: 1; } }

/* Lightbox overlay */
.gj-lightbox {
	position: fixed; inset: 0; z-index: 9999;
	background: rgba(10,12,14,.94);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	display: flex; align-items: center; justify-content: center;
	opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s ease;
}
.gj-lightbox.is-open { opacity: 1; visibility: visible; }
.gj-lightbox__stage {
	max-width: 92vw; max-height: 86vh; position: relative;
	display: flex; flex-direction: column; align-items: center;
}
.gj-lightbox__img {
	max-width: 92vw; max-height: 80vh; width: auto; height: auto;
	border-radius: 12px; box-shadow: 0 24px 70px rgba(0,0,0,.6);
	background: var(--gj-graphite, #2C2F33);
	animation: gjLbIn .35s cubic-bezier(.2,1,.4,1) both;
}
@keyframes gjLbIn { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: none; } }
.gj-lightbox__cap {
	color: #fff; margin-top: 14px; font-weight: 600; font-size: .95rem;
	text-align: center; font-family: 'Inter', sans-serif;
}
.gj-lightbox__count { color: var(--gj-gold-bright, #F0B500); font-weight: 700; margin-left: 8px; }
.gj-lightbox__close, .gj-lightbox__prev, .gj-lightbox__next {
	position: absolute; background: rgba(255,255,255,.10);
	border: 1px solid rgba(255,255,255,.2); color: #fff; cursor: pointer;
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	display: grid; place-items: center; transition: background .2s, transform .2s;
	z-index: 2;
}
.gj-lightbox__close:hover, .gj-lightbox__prev:hover, .gj-lightbox__next:hover {
	background: linear-gradient(135deg, var(--gj-gold, #D4A028), var(--gj-gold-bright, #F0B500));
	color: var(--gj-charcoal, #1A1D21); transform: scale(1.06); border-color: transparent;
}
.gj-lightbox__close { top: 18px; right: 18px; width: 48px; height: 48px; border-radius: 50%; font-size: 1.6rem; line-height: 1; }
.gj-lightbox__prev, .gj-lightbox__next { top: 50%; transform: translateY(-50%); width: 54px; height: 54px; border-radius: 50%; font-size: 2rem; line-height: 1; }
.gj-lightbox__prev { left: 18px; }
.gj-lightbox__next { right: 18px; }
.gj-lightbox__prev:hover, .gj-lightbox__next:hover { transform: translateY(-50%) scale(1.06); }
@media (max-width: 600px) {
	.gj-lightbox__prev, .gj-lightbox__next { width: 44px; height: 44px; font-size: 1.5rem; }
	.gj-lightbox__prev { left: 8px; } .gj-lightbox__next { right: 8px; }
	.gj-lightbox__close { top: 10px; right: 10px; }
	.gj-lightbox__img { max-height: 72vh; }
}

.gj-bg-light { background: var(--gj-bg); }
.gj-bg-white { background: #fff; }

/* Collapse the double vertical gap when two same-colored sections stack.
   (When the bg color changes between sections, the spacing stays for separation.) */
.gj-section.gj-bg-white  + .gj-section.gj-bg-white,
.gj-section.gj-bg-light  + .gj-section.gj-bg-light,
.gj-section.gj-bg-white  + .gj-section:not([class*="gj-bg-"]),
.gj-section:not([class*="gj-bg-"]) + .gj-section.gj-bg-white {
	padding-top: 0 !important;
}
/* Tighten the centered intro block's bottom margin */
.gj-section-intro { margin-bottom: 26px; }

/* ===== Interior pages with our hero: match the front-page header ===== */
/* Hide Kadence's page-title band (we use our own .gj-page-hero) */
body.gj-has-hero .entry-hero,
body.gj-has-hero .page-hero-section,
body.gj-has-hero .entry-header { display: none !important; height: 0 !important; }

/* Transparent header overlaying the hero — cover every Kadence wrapper */
html body.gj-has-hero #masthead,
html body.gj-has-hero #main-header,
html body.gj-has-hero .site-header,
html body.gj-has-hero .site-header-wrap,
html body.gj-has-hero .site-header-inner-wrap,
html body.gj-has-hero .site-header-upper-wrap,
html body.gj-has-hero .site-header-upper-inner-wrap,
html body.gj-has-hero .site-header-row-container,
html body.gj-has-hero .site-header-row-container-inner,
html body.gj-has-hero .site-main-header-wrap,
html body.gj-has-hero .site-header-row,
html body.gj-has-hero .kadence-header-row-main {
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	border: none !important;
}
/* Float the header over the hero (high specificity to beat Kadence) */
html body.gj-has-hero #masthead.site-header {
	position: absolute !important;
	top: 0 !important; left: 0; right: 0; width: 100% !important; z-index: 100;
	padding-top: 22px !important;
	padding-bottom: 18px !important;
}
html body.gj-has-hero .site-main-header-inner-wrap,
html body.gj-has-hero .site-header-row-container-inner { min-height: 100px !important; }
/* White, legible menu text over the hero */
body.gj-has-hero .site-header .header-navigation a,
body.gj-has-hero .site-header #site-navigation-primary a,
body.gj-has-hero .site-header .menu-item > a,
body.gj-has-hero #masthead a {
	color: #fff !important; font-weight: 600 !important;
	text-shadow: 0 1px 8px rgba(0,0,0,.65), 0 0 16px rgba(0,0,0,.3);
}
body.gj-has-hero .site-header .menu-item > a:hover,
body.gj-has-hero #masthead a:hover { color: var(--gj-gold-bright) !important; }
body.gj-has-hero .site-header .custom-logo { filter: drop-shadow(0 2px 6px rgba(0,0,0,.45)); }
/* Scrim behind header for guaranteed legibility */
body.gj-has-hero #masthead::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(180deg, rgba(20,23,26,.45) 0%, rgba(20,23,26,.10) 70%, transparent 100%);
}
/* Zero the content top padding so the hero hits the very top */
body.gj-has-hero .site-content,
body.gj-has-hero .content-wrap,
body.gj-has-hero .content-container,
body.gj-has-hero .site-main,
body.gj-has-hero article.entry,
body.gj-has-hero .entry-content-wrap,
body.gj-has-hero .entry-content {
	margin-top: 0 !important; padding-top: 0 !important;
	max-width: none !important;
}
body.gj-has-hero article.content-bg { background: transparent !important; box-shadow: none !important; border: 0 !important; }
body.gj-has-hero .entry-content { padding-left: 0 !important; padding-right: 0 !important; }

/* When scrolled, header turns solid + sticky (higher specificity than the
   absolute rule above so position:fixed actually wins). */
/* On scroll: stick + turn solid, but KEEP the same height as at rest
   (same behavior as the home page — no shrink, so the logo never clips). */
html body.gj-scrolled.gj-has-hero #masthead.site-header {
	position: fixed !important;
	top: 0 !important;
	background: rgba(20,23,26,.96) !important;
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	box-shadow: 0 4px 20px rgba(0,0,0,.25) !important;
	padding-top: 22px !important;
	padding-bottom: 18px !important;
	animation: gjHeaderSlideDown .35s ease both;
}
html body.gj-scrolled.gj-has-hero .site-main-header-inner-wrap { min-height: 100px !important; }

@media (max-width: 960px) {
	.gj-process, .gj-features-grid, .gj-gallery-grid { grid-template-columns: repeat(2, 1fr); }
	.gj-cities-grid { grid-template-columns: repeat(3, 1fr); }
	.gj-info-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.gj-process, .gj-features-grid, .gj-gallery-grid { grid-template-columns: 1fr; }
	.gj-cities-grid { grid-template-columns: repeat(2, 1fr); }
	.gj-page-hero { min-height: 380px; padding-bottom: 40px; }
	.gj-page-hero__content { padding-top: 140px; }
	.gj-info-card { padding: 22px; }
}

/* --------------- 14. Divider --------------- */
.gj-divider {
	width: 60px; height: 4px;
	background: linear-gradient(90deg, var(--gj-gold), var(--gj-gold-bright));
	border-radius: 2px;
	margin: 14px auto 30px;
}
.gj-divider.is-left { margin-left: 0; margin-right: 0; }

/* --------------- 14.5 Full-screen Hero Slider --------------- */
/* Force full-bleed: escape parent container padding using negative margins + 100vw */
.gj-hero-slider,
.gj-trust-strip,
.gj-services,
.gj-projects,
.gj-testimonials,
.gj-cta-band {
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	width: 100vw !important;
	max-width: 100vw !important;
}
.gj-hero-slider {
	position: relative;
	height: 100vh;
	min-height: 600px;
	overflow: hidden;
	background: var(--gj-ink);
	margin-top: 0 !important;
}
.gj-slider__track { position: absolute; inset: 0; }
.gj-slide {
	position: absolute; inset: 0;
	background-size: cover;
	background-position: center;
	opacity: 0;
	transition: opacity 1.4s ease;
	display: flex; align-items: center;
	will-change: opacity, transform;
}
.gj-slide.is-active { opacity: 1; z-index: 2; }
.gj-slide.is-active .gj-slide__content { animation: gjSlideUp .9s ease both .2s; }
@keyframes gjSlideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }
.gj-slide::before {
	content: "";
	position: absolute; inset: 0;
	background:
	  linear-gradient(135deg, rgba(20,23,26,.88) 0%, rgba(20,23,26,.55) 45%, rgba(20,23,26,.85) 100%),
	  linear-gradient(0deg, rgba(20,23,26,.5) 0%, transparent 40%);
	z-index: 1;
}
/* Top dark band — ensures header menu is ALWAYS legible regardless of image brightness */
.gj-slide::after {
	content: "";
	position: absolute; top: 0; left: 0; right: 0; height: 180px;
	background: linear-gradient(180deg, rgba(20,23,26,.70) 0%, rgba(20,23,26,.20) 60%, transparent 100%);
	z-index: 1;
	pointer-events: none;
}
.gj-slide__content { z-index: 3 !important; }
.gj-slide__content {
	position: relative; z-index: 2;
	width: 100%;
	padding-top: 170px;
	color: #fff;
}
.gj-slide__content .gj-wrap { max-width: var(--gj-maxw); margin: 0 auto; padding: 0 22px; }
.gj-slide h1, .gj-slide .h1 {
	color: #fff; max-width: 18ch;
	font-size: clamp(2.6rem, 6.5vw, 5rem); line-height: 1.02; margin: 0;
}
.gj-slide p.lead {
	color: #d3d8df; font-size: clamp(1.05rem, 1.6vw, 1.25rem);
	max-width: 60ch; margin: 18px 0 32px; line-height: 1.6;
}
.gj-slide .gj-eyebrow {
	color: var(--gj-gold-bright);
	border-color: rgba(240,181,0,.55);
	background: rgba(240,181,0,.10);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

/* Slider indicators (bottom center, thin gold bars) */
.gj-slider__indicators {
	position: absolute; bottom: 36px; left: 50%; transform: translateX(-50%);
	z-index: 5; display: flex; gap: 10px;
}
.gj-slider__indicators button {
	width: 50px; height: 4px;
	background: rgba(255,255,255,.32);
	border: 0; padding: 0; cursor: pointer;
	border-radius: 2px;
	transition: background .3s ease, width .3s ease;
}
.gj-slider__indicators button:hover { background: rgba(255,255,255,.55); }
.gj-slider__indicators button.is-active {
	background: linear-gradient(90deg, var(--gj-gold), var(--gj-gold-bright));
	width: 70px;
}

/* Prev / Next arrows */
.gj-slider__nav { position: absolute; inset: 0; pointer-events: none; }
.gj-slider__nav button {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 52px; height: 52px;
	background: rgba(255,255,255,.08);
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	color: #fff; border: 1px solid rgba(255,255,255,.18);
	border-radius: 50%; font-size: 1.6rem; line-height: 1;
	cursor: pointer; pointer-events: auto;
	transition: background .2s ease, transform .2s ease;
	z-index: 10;
}
.gj-slider__nav button:hover { background: rgba(255,255,255,.20); transform: translateY(-50%) scale(1.06); }
.gj-slider__prev { left: 28px; }
.gj-slider__next { right: 28px; }

/* Scroll hint at bottom */
.gj-slider__scroll {
	position: absolute; bottom: 14px; left: 50%; transform: translateX(-50%);
	z-index: 5; color: rgba(255,255,255,.55);
	font-size: .72rem; letter-spacing: .2em; text-transform: uppercase;
	font-weight: 600;
	display: none;
}
@media (min-width: 960px) { .gj-slider__scroll { display: block; } }

/* --------------- 14.6 Transparent header on Home (more surgical) --------------- */
/* The slider sits at the very top; Kadence header floats over it transparent */
body.home #masthead,
body.home .site-header,
body.home .site-header-wrap,
body.home .site-header-inner-wrap,
body.home .site-header-row-container,
body.home .site-header-row,
body.home .kadence-header-row-top,
body.home .kadence-header-row-main,
body.home .kadence-header-row-bottom,
body.gj-front-page #masthead,
body.gj-front-page .site-header,
body.gj-front-page .site-header-wrap,
body.gj-front-page .site-header-inner-wrap {
	background: transparent !important;
	background-color: transparent !important;
	box-shadow: none !important;
	border: none !important;
}
body.home #masthead,
body.home .site-header,
body.gj-front-page #masthead,
body.gj-front-page .site-header {
	position: absolute !important;
	top: 0; left: 0; right: 0;
	width: 100% !important;
	z-index: 100;
	padding-top: 22px !important;
	padding-bottom: 18px !important;
}
/* Inner rows: add a touch of breathing room around brand+menu */
body.home .site-header-row,
body.home .kadence-header-row-main,
body.home .site-header-row-container-inner,
body.home .site-header-inner-wrap {
	padding-top: 8px !important;
	padding-bottom: 8px !important;
}
/* Force white legible text in the header on home */
body.home .site-branding .site-title a,
body.home .site-title a,
body.home .site-header .site-title,
body.home .header-menu-container ul li a,
body.home .header-navigation a,
body.home .header-menu-container > * a,
body.home #site-navigation-primary a,
body.home .menu > .menu-item > a {
	color: #fff !important;
	text-shadow: 0 1px 8px rgba(0,0,0,.35);
}
body.home .site-header a:hover,
body.home .site-header a:focus { color: var(--gj-gold-bright) !important; }
body.home .site-header svg { fill: #fff !important; }
/* Zero the top padding so the slider truly hits the very top */
body.home .site,
body.home .site-content,
body.home .content-wrap,
body.home .content-container,
body.home .entry-content {
	margin-top: 0 !important;
	padding-top: 0 !important;
}
body.home .content-container,
body.home .entry-content {
	max-width: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	width: 100% !important;
}
body.home .entry-content > *:first-child,
body.gj-front-page .entry-content > *:first-child { margin-top: 0 !important; }
body.home .entry-header,
body.gj-front-page .entry-header { display: none !important; }

/* Kill Kadence's page-title hero section on Home — our slider IS the hero */
body.home .entry-hero,
body.home .page-hero-section,
body.home .page-hero-section.entry-hero,
body.gj-front-page .entry-hero,
body.gj-front-page .page-hero-section { display: none !important; height: 0 !important; }

/* Zero ALL paddings/margins on Kadence wrappers between header and content on Home */
body.home #wrapper,
body.home main.wrap,
body.home main.site,
body.home .content-area,
body.home .content-container,
body.home .site-main,
body.home .content-wrap,
body.home article.entry,
body.home article.entry.content-bg,
body.home .entry-content-wrap,
body.home .entry-content.single-content,
body.gj-front-page main.wrap,
body.gj-front-page .content-area,
body.gj-front-page .site-main,
body.gj-front-page .content-wrap,
body.gj-front-page article.entry,
body.gj-front-page .entry-content-wrap,
body.gj-front-page .entry-content {
	margin: 0 !important;
	padding: 0 !important;
	max-width: none !important;
	width: 100% !important;
	background: transparent !important;
	box-shadow: none !important;
}

/* The article.content-bg class draws a white box around content — kill it on home */
body.home article.content-bg, body.gj-front-page article.content-bg {
	background: transparent !important;
	border: 0 !important;
}

/* Force any wrapper to allow full-bleed content (NO overflow-x:hidden — that breaks the scroll) */
body.home .site,
body.home .single-content,
body.home main.site-main,
body.home article.page,
body.home article > .entry-content {
	max-width: none !important;
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
/* Only kill horizontal overflow at the root */
html { overflow-x: hidden; }
body { overflow-x: hidden; overflow-y: auto !important; }

/* Push lang toggle below the admin bar when logged in */
.admin-bar .gj-lang-toggle { top: 50px; }

/* Stronger menu visibility on home (extra specificity + crisp shadow) */
body.home .site-header .header-navigation a,
body.home .site-header #site-navigation-primary a,
body.home .site-header .menu-item > a,
body.home .site-header .site-title a,
body.home #masthead a {
	color: #fff !important;
	font-weight: 600 !important;
	text-shadow: 0 1px 8px rgba(0,0,0,.65), 0 0 16px rgba(0,0,0,.3);
}
body.home .site-header .menu-item > a:hover,
body.home #masthead a:hover { color: var(--gj-gold-bright) !important; }
body.home #masthead svg, body.home .site-header svg {
	fill: #fff !important;
	filter: drop-shadow(0 1px 4px rgba(0,0,0,.5));
}

/* Add a subtle scrim behind the entire header on home for guaranteed legibility */
body.home #masthead::before,
body.gj-front-page #masthead::before {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(20,23,26,.45) 0%, rgba(20,23,26,.10) 70%, transparent 100%);
	pointer-events: none;
	z-index: -1;
}

/* On scroll, header turns solid for legibility */
body.gj-scrolled.home #masthead,
body.gj-scrolled.home .site-header,
body.gj-scrolled.gj-front-page #masthead,
body.gj-scrolled.gj-front-page .site-header {
	position: fixed !important;
	background: rgba(20,23,26,.96) !important;
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	box-shadow: 0 4px 20px rgba(0,0,0,.25) !important;
	animation: gjHeaderSlideDown .35s ease both;
}
@keyframes gjHeaderSlideDown { from { transform: translateY(-100%); } to { transform: none; } }

/* Mobile slider responsiveness */
@media (max-width: 640px) {
	.gj-hero-slider { min-height: 540px; height: 92vh; }
	.gj-slide__content { padding-top: 90px; }
	.gj-slider__nav button { display: none; }
	.gj-slider__indicators { bottom: 22px; }
	.gj-slider__indicators button { width: 36px; }
	.gj-slider__indicators button.is-active { width: 50px; }
}

/* --------------- 15. WP block overrides --------------- */
.wp-block-cover { min-height: 480px; }
.wp-block-cover__inner-container { max-width: var(--gj-maxw); margin: 0 auto; }
.entry-content > *:not(.alignfull):not(.alignwide):not(.wp-block-cover):not(.gj-hero):not(.gj-section):not(.gj-services):not(.gj-trust-strip):not(.gj-testimonials):not(.gj-projects):not(.gj-cta-band) {
	max-width: var(--gj-maxw);
	margin-left: auto; margin-right: auto;
	padding-left: 22px; padding-right: 22px;
}
body.home .entry-title { display: none; }
body.home .entry-content > *:first-child { margin-top: 0; }
body.home .entry-content { padding: 0 !important; }
body.home .content-container, body.home .content-wrap, body.home .site-container { padding: 0 !important; }

/* --------------- 16. Footer --------------- */
.site-footer, footer.site-footer {
	background: var(--gj-ink) !important;
	color: #c9d1da !important;
}
.site-footer a, footer.site-footer a { color: var(--gj-gold-bright) !important; }

/* --------------- 17. Responsive --------------- */
@media (max-width: 960px) {
	.gj-grid-3, .gj-testimonials__grid, .gj-projects__grid { grid-template-columns: repeat(2, 1fr); }
	.gj-grid-4, .gj-trust-strip .gj-wrap { grid-template-columns: repeat(2, 1fr); }
	/* Tablet: 2 columnas (8 servicios → 4 filas de 2) */
	.gj-services__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.gj-grid-3, .gj-grid-2, .gj-testimonials__grid, .gj-projects__grid,
	.gj-grid-4, .gj-trust-strip .gj-wrap { grid-template-columns: 1fr; }
	.gj-services__grid { grid-template-columns: 1fr; }
	.gj-hero { min-height: 480px; }
}

/* --------------- 18. Print --------------- */
@media print {
	.gj-fab, .gj-cta-band { display: none !important; }
	.gj-hero { min-height: auto; background: #fff !important; color: #000 !important; }
}
