/* ══════════════════════════════════════════
   GUICU — Identidad visual premium
   Versión 3.1 · Alineada a la guía de marca
   Blanco · Caliza · Gris · Negro · Montserrat
══════════════════════════════════════════ */

/* ── TOKENS (paleta oficial: 01_MARCA/guicu-brand-guide.html) ── */
:root {
  --bg:         #FFFFFF;   /* fondo principal */
  --bg-alt:     #F7F7F7;   /* fondo alterno suave */
  --bg-dark:    #000000;   /* fondo de impacto: hero, footer, splash */
  --ink:        #000000;   /* texto principal sobre fondo claro */
  --paper:      #FFFFFF;   /* texto principal sobre fondo oscuro */
  --accent:     #C4BDB0;   /* caliza — acento decorativo, labels, líneas */
  --accent-mid: #9E9890;   /* caliza oscuro — hover, enlaces con más contraste */
  --accent-deep:#6E6A64;   /* caliza profundo — texto sobre fondos claros si hace falta más contraste */
  --gris:       #888888;   /* texto secundario */
  --dim:        rgba(0,0,0,.45);      /* texto secundario sobre fondo claro */
  --dim-dark:   rgba(255,255,255,.45);/* texto secundario sobre fondo oscuro */
  --line:       rgba(0,0,0,.1);       /* líneas sobre fondo claro */
  --line-dark:  rgba(255,255,255,.14);/* líneas sobre fondo oscuro */
  --ease:       cubic-bezier(0.16,1,.3,1);
  --g:          clamp(1.5rem,6vw,7rem);
  --sans:       'Montserrat', system-ui, sans-serif;
}

/* ── RESET ───────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; overflow-x:hidden; }
body {
  font-family: var(--sans);
  background: var(--bg);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img,svg { display:block; max-width:100%; }
img { height:auto; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; cursor:pointer; border:0; background:none; }
ul,ol { list-style:none; }

/* ── GRAIN ───────────────────────────── */
.grain {
  position:fixed; inset:0; z-index:9999; pointer-events:none;
  opacity:.025;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='256' height='256' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:256px 256px;
  mix-blend-mode:multiply;
}

/* ── SKIP ────────────────────────────── */
.skip-link {
  position:absolute; left:-9999px; top:1rem;
  background:var(--ink); color:var(--paper);
  padding:.4rem .9rem; font-size:.65rem; font-weight:600; z-index:9999;
}
.skip-link:focus { left:1rem; }

/* ── SPLASH (fondo de impacto) ──────── */
.splash {
  position:fixed; inset:0; z-index:8000; background:var(--bg-dark);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  transition:opacity .8s var(--ease), visibility .8s;
}
.splash.is-out { opacity:0; visibility:hidden; pointer-events:none; }
.splash-logo {
  font-size:.6rem; letter-spacing:.65em; font-weight:600;
  text-transform:uppercase; color:var(--paper);
}
.splash-bar {
  width:2rem; height:1px;
  background:var(--line-dark); margin-top:1.8rem; overflow:hidden;
}
.splash-bar-fill {
  height:100%; width:0; background:var(--accent);
  animation:splashFill 1.4s var(--ease) forwards .35s;
}
@keyframes splashFill { to { width:100%; } }

/* ── NAV (transparente sobre el hero oscuro; sólido al hacer scroll) ── */
.nav {
  position:fixed; top:0; left:0; width:100%; z-index:500;
  padding:1.5rem var(--g);
  display:flex; justify-content:space-between; align-items:center;
  transition:background .4s var(--ease), backdrop-filter .4s var(--ease);
}
.nav::after {
  content:''; position:absolute; bottom:0; left:0; width:100%;
  height:1px; background:var(--line);
  opacity:0; transition:opacity .5s;
}
.nav.is-solid {
  background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
}
.nav.is-solid::after { opacity:1; }

.nav-logo {
  font-size:.58rem; letter-spacing:.55em; font-weight:600;
  text-transform:uppercase; color:var(--paper);
  transition:color .3s;
}
.nav.is-solid .nav-logo { color:var(--ink); }

.nav-links { display:flex; gap:2.2rem; }
.nav-links a {
  font-size:.42rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--paper); opacity:.72; transition:opacity .3s, color .3s;
}
.nav-links a:hover { opacity:1; color:var(--accent); }
.nav.is-solid .nav-links a { color:var(--ink); }
.nav.is-solid .nav-links a:hover { color:var(--accent-deep); }

.nav-right { display:flex; align-items:center; gap:1.3rem; }

.nav-social {
  display:flex; color:var(--paper); opacity:.8;
  transition:opacity .3s, color .3s;
}
.nav-social svg { width:.85rem; height:.85rem; fill:currentColor; }
.nav-social:hover { opacity:1; color:var(--accent); }
.nav.is-solid .nav-social { color:var(--ink); }
.nav.is-solid .nav-social:hover { color:var(--accent-deep); }

.nav-cta {
  font-size:.46rem; letter-spacing:.22em; font-weight:500;
  text-transform:uppercase; color:var(--paper);
  border:1px solid rgba(255,255,255,.3);
  padding:.5rem 1.3rem;
  transition:border-color .3s, color .3s;
}
.nav-cta:hover { border-color:var(--accent); color:var(--accent); }
.nav.is-solid .nav-cta { color:var(--ink); border-color:rgba(0,0,0,.2); }
.nav.is-solid .nav-cta:hover { border-color:var(--accent-mid); color:var(--accent-deep); }

.nav-burger {
  display:none; flex-direction:column; gap:5px; width:20px;
}
.nav-burger span {
  display:block; height:1px; background:var(--paper);
  transition:transform .35s var(--ease), opacity .2s, background .3s;
}
.nav.is-solid .nav-burger span { background:var(--ink); }
.nav-burger.is-open span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.nav-burger.is-open span:nth-child(2) { opacity:0; }
.nav-burger.is-open span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }

.nav-mobile {
  display:none; position:fixed; inset:0; background:var(--bg-dark); z-index:400;
  flex-direction:column; align-items:center; justify-content:center; gap:2.5rem;
}
.nav-mobile.is-open { display:flex; }
.nav-mobile a {
  font-size:1.4rem; font-weight:200; letter-spacing:-.01em; color:var(--paper);
  transition:color .3s;
}
.nav-mobile a:hover { color:var(--accent); }
.nav-mobile-social {
  display:flex; align-items:center; gap:.5rem;
  font-size:.42rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--dim-dark); margin-top:1rem;
}
.nav-mobile-social svg { width:.85rem; height:.85rem; fill:currentColor; }
.nav-mobile-social:hover { color:var(--accent); }

/* ── HERO (fondo de impacto) ─────────── */
.hero {
  min-height:100svh; position:relative;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:0 var(--g) 7vh;
  background:var(--bg-dark); color:var(--paper);
  overflow:hidden;
}

.hero-media {
  position:absolute; inset:0; z-index:0;
  overflow:hidden;
}
.hero-media video, .hero-media img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:.55;
}
.hero-media::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.45) 45%, rgba(0,0,0,.55) 100%);
}
.hero > *:not(.hero-media) { position:relative; z-index:1; }

.hero-accent {
  position:absolute; top:22vh; right:var(--g);
  width:1px; height:18vh;
  background:linear-gradient(to bottom,transparent,var(--accent),transparent);
  opacity:.5; z-index:1;
}

.hero-eyebrow {
  font-size:.43rem; letter-spacing:.32em; font-weight:500;
  text-transform:uppercase; color:var(--accent);
  margin-bottom:2rem;
  opacity:0; transition:opacity .8s var(--ease);
}
.hero.is-loaded .hero-eyebrow { opacity:1; }

.hero-title {
  font-size:clamp(3rem,11vw,13rem);
  font-weight:200; line-height:.97; letter-spacing:-.035em;
  color:var(--paper); max-width:11ch; margin-bottom:5rem;
  opacity:0; transform:translateY(14px);
  transition:opacity 1s var(--ease), transform 1s var(--ease);
  transition-delay:.1s;
}
.hero.is-loaded .hero-title { opacity:1; transform:translateY(0); }

.hero-bottom {
  display:flex; justify-content:space-between; align-items:center;
  border-top:1px solid var(--line-dark); padding-top:1.5rem;
  opacity:0; transition:opacity .9s var(--ease);
  transition-delay:.3s;
}
.hero.is-loaded .hero-bottom { opacity:1; }

.hero-cities {
  font-size:.41rem; letter-spacing:.28em; text-transform:uppercase; color:var(--dim-dark);
}
.hero-link {
  display:flex; align-items:center; gap:.5rem;
  font-size:.43rem; letter-spacing:.22em; font-weight:500;
  text-transform:uppercase; color:var(--accent);
  transition:gap .4s var(--ease);
}
.hero-link:hover { gap:.9rem; }

.hero-scroll {
  position:absolute; bottom:2rem; left:50%; transform:translateX(-50%);
  z-index:1;
}
.hero-scroll-line {
  width:1px; height:2.5rem;
  background:linear-gradient(to bottom,transparent,rgba(196,189,176,.7));
  animation:scrollPulse 2.5s ease-in-out infinite;
}
@keyframes scrollPulse {
  0%,100% { opacity:.3; transform:scaleY(1); transform-origin:top; }
  50%      { opacity:.9; transform:scaleY(.7); transform-origin:top; }
}

/* ── ABOUT ───────────────────────────── */
.about {
  padding:20vh var(--g) 18vh;
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(3rem,7vw,9rem); align-items:end;
  border-top:1px solid var(--line);
  background:var(--bg);
}
.about-quote {
  font-size:clamp(1.5rem,3vw,3.6rem); font-weight:200;
  line-height:1.25; letter-spacing:-.02em; color:var(--ink);
}
.about-quote em { font-style:italic; color:var(--accent-deep); }

.about-right { border-top:1px solid var(--line); padding-top:2rem; }
.about-kicker {
  font-size:.41rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--accent-mid); margin-bottom:1.5rem;
}
.about-body {
  font-size:.88rem; font-weight:300; line-height:1.95;
  color:rgba(0,0,0,.62);
}
.about-body+.about-body { margin-top:.9rem; }
.about-nums { margin-top:3rem; display:flex; gap:2.5rem; }
.about-num-val {
  display:block; font-size:2rem; font-weight:200;
  color:var(--accent-deep); letter-spacing:-.02em; line-height:1;
}
.about-num-label {
  display:block; font-size:.39rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--dim); margin-top:.4rem;
}

/* ── SERVICES ────────────────────────── */
.services { padding:0 var(--g) 18vh; background:var(--bg); }
.services-kicker {
  font-size:.41rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--accent-mid); margin-bottom:3.5rem;
}
.service-row {
  display:grid; grid-template-columns:1fr max-content 1.8rem;
  align-items:center; gap:2.5rem;
  padding:1.7rem 0;
  border-top:1px solid var(--line);
  text-decoration:none; color:inherit;
  transition:padding-left .5s var(--ease);
}
.service-row:last-child { border-bottom:1px solid var(--line); }
.service-row:hover { padding-left:.5rem; }
.service-name {
  font-size:clamp(1.1rem,2.5vw,2.5rem); font-weight:200;
  letter-spacing:-.015em; color:var(--ink);
  transition:color .3s;
}
.service-row:hover .service-name { color:var(--accent-deep); }
.service-desc {
  font-size:.5rem; font-weight:300; color:var(--dim);
  max-width:16rem; text-align:right; line-height:1.7;
}
.service-arrow {
  font-size:.68rem; color:var(--accent-deep);
  opacity:0; transform:translateX(-6px);
  transition:opacity .3s, transform .4s var(--ease);
}
.service-row:hover .service-arrow { opacity:1; transform:translateX(0); }

/* ── PROJECTS ────────────────────────── */
.projects { padding:0 0 18vh; background:var(--bg); }
.projects-head {
  padding:0 var(--g) 3rem;
  display:flex; justify-content:space-between; align-items:baseline;
}
.projects-kicker {
  font-size:.41rem; letter-spacing:.3em; text-transform:uppercase; color:var(--accent-mid);
}
.projects-grid { display:grid; grid-template-columns:1fr 1fr; gap:3px; }

.p-card { position:relative; overflow:hidden; aspect-ratio:4/3; background:var(--bg-alt); }
.p-card:nth-child(3n) { grid-column:span 2; aspect-ratio:21/8; }
.p-card img {
  width:100%; height:100%; object-fit:cover;
  transform:scale(1.04);
  transition:transform 8s var(--ease);
}
.p-card:hover img { transform:scale(1.1); }
.p-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.82) 0%,transparent 55%);
  opacity:0; transition:opacity .4s;
}
.p-card:hover .p-overlay { opacity:1; }
.p-info {
  position:absolute; bottom:1.5rem; left:1.5rem;
  opacity:0; transform:translateY(5px);
  transition:opacity .4s, transform .4s var(--ease);
}
.p-card:hover .p-info { opacity:1; transform:translateY(0); }
.p-name { font-size:.8rem; font-weight:300; color:var(--paper); }
.p-location {
  font-size:.38rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--dim-dark); margin-top:.3rem;
}

/* ── ZONES ───────────────────────────── */
.zones {
  padding:10vh var(--g);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  display:flex; gap:4rem; align-items:flex-start;
  background:var(--bg-alt);
}
.zones-label {
  font-size:.39rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--accent-mid); flex-shrink:0; padding-top:.15rem; white-space:nowrap;
}
.zones-list { flex:1; display:flex; flex-wrap:wrap; gap:.3rem 1.5rem; }
.zone-link {
  font-size:clamp(.8rem,1.3vw,1.1rem); font-weight:200;
  color:rgba(0,0,0,.45); transition:color .3s;
}
.zone-link:hover { color:var(--ink); }

/* ── TESTIMONIALS ────────────────────── */
.testimonials { padding:18vh var(--g) 15vh; background:var(--bg); }
.testimonials-kicker {
  font-size:.41rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--accent-mid); margin-bottom:5rem;
}
.testimonial {
  padding:2.2rem 0; border-top:1px solid var(--line);
  display:grid; grid-template-columns:1fr auto; gap:3rem; align-items:end;
}
.testimonial:last-child { border-bottom:1px solid var(--line); }
.testimonial-text {
  font-size:clamp(.9rem,1.6vw,1.25rem); font-weight:200;
  line-height:1.75; font-style:italic; color:rgba(0,0,0,.72);
  max-width:55ch;
}
.testimonial-meta { text-align:right; }
.testimonial-name {
  font-size:.44rem; letter-spacing:.2em; text-transform:uppercase;
  font-weight:600; font-style:normal; color:var(--ink);
}
.testimonial-location {
  font-size:.4rem; letter-spacing:.15em; text-transform:uppercase;
  color:var(--dim); margin-top:.25rem;
}

/* ── FAQ ─────────────────────────────── */
.faq { padding:0 var(--g) 18vh; background:var(--bg); }
.faq-kicker {
  font-size:.41rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--accent-mid); margin-bottom:3.5rem;
}
details.faq-item { border-top:1px solid var(--line); }
details.faq-item:last-child { border-bottom:1px solid var(--line); }
details.faq-item summary {
  display:flex; justify-content:space-between; align-items:center; gap:2rem;
  padding:1.3rem 0; cursor:pointer; list-style:none;
  font-size:.82rem; font-weight:300; color:rgba(0,0,0,.75);
  transition:color .3s;
}
details.faq-item summary::-webkit-details-marker { display:none; }
details.faq-item summary:hover { color:var(--ink); }
details.faq-item summary::after {
  content:'+'; font-size:.85rem; font-weight:200; color:var(--accent-deep);
  flex-shrink:0; transition:transform .35s var(--ease);
}
details.faq-item[open] summary::after { transform:rotate(45deg); }
details.faq-item p {
  font-size:.82rem; font-weight:300; line-height:1.85;
  color:var(--dim); padding-bottom:1.5rem; max-width:55ch;
}

/* ── CONTACT ─────────────────────────── */
.contact {
  padding:18vh var(--g) 18vh;
  border-top:1px solid var(--line);
  background:var(--bg);
}
.contact-kicker {
  font-size:.41rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--accent-mid); margin-bottom:3.5rem;
}
.contact-headline {
  font-size:clamp(2rem,5.5vw,7rem); font-weight:200;
  line-height:.97; letter-spacing:-.03em;
  color:var(--ink); margin-bottom:5rem; max-width:10ch;
}
.contact-phone {
  display:block;
  font-size:clamp(2rem,5vw,6.5rem); font-weight:200;
  letter-spacing:-.04em; color:var(--accent-deep);
  margin-bottom:2.5rem; line-height:1;
  transition:letter-spacing .55s var(--ease);
}
.contact-phone:hover { letter-spacing:-.01em; }
.contact-email {
  display:block; font-size:clamp(.9rem,1.5vw,1.5rem); font-weight:200;
  color:rgba(0,0,0,.5); margin-bottom:4rem;
  letter-spacing:-.01em; transition:color .3s;
}
.contact-email:hover { color:var(--ink); }
.contact-actions { display:flex; gap:1rem; flex-wrap:wrap; align-items:center; }
.btn-wa {
  display:inline-flex; align-items:center; gap:.65rem;
  font-size:.44rem; letter-spacing:.22em; font-weight:500;
  text-transform:uppercase; color:var(--paper);
  background:var(--ink);
  border:1px solid var(--ink); padding:.85rem 1.8rem;
  transition:background .3s, color .3s, border-color .3s;
}
.btn-wa:hover { background:var(--accent-deep); border-color:var(--accent-deep); color:var(--paper); }
.btn-call {
  display:inline-flex; align-items:center; gap:.45rem;
  font-size:.44rem; letter-spacing:.2em; font-weight:500;
  text-transform:uppercase; color:var(--dim);
  transition:color .3s;
}
.btn-call:hover { color:var(--ink); }

/* ── FOOTER (fondo de impacto) ───────── */
.footer {
  padding:2.5rem var(--g);
  border-top:1px solid var(--line-dark);
  background:var(--bg-dark); color:var(--paper);
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:1rem;
}
.footer-brand-group { display:flex; align-items:center; gap:1.1rem; }
.footer-brand {
  font-size:.48rem; letter-spacing:.5em; text-transform:uppercase; color:var(--paper);
}
.footer-social {
  display:flex; color:var(--dim-dark); transition:color .3s;
}
.footer-social svg { width:.8rem; height:.8rem; fill:currentColor; }
.footer-social:hover { color:var(--accent); }
.footer-links { display:flex; gap:1.8rem; flex-wrap:wrap; }
.footer-links a {
  font-size:.37rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--dim-dark); transition:color .3s;
}
.footer-links a:hover { color:var(--paper); }
.footer-copy {
  font-size:.37rem; letter-spacing:.12em; text-transform:uppercase; color:var(--dim-dark);
}

/* ── WHATSAPP FLOAT ──────────────────── */
.whatsapp-float {
  position:fixed; bottom:2rem; right:2rem; z-index:200;
  width:2.8rem; height:2.8rem; border-radius:50%;
  background:var(--ink); border:1px solid var(--ink);
  display:flex; align-items:center; justify-content:center;
  color:var(--accent); transition:background .3s, transform .3s;
}
.whatsapp-float svg { width:1.1rem; height:1.1rem; fill:currentColor; }
.whatsapp-float:hover { background:var(--accent-deep); transform:translateY(-3px); }

/* ── NOVEDADES (puente redes sociales → web) ── */
.updates { padding:16vh var(--g) 16vh; border-top:1px solid var(--line); background:var(--bg); }
.updates-head {
  display:flex; justify-content:space-between; align-items:flex-end; gap:2rem;
  flex-wrap:wrap; margin-bottom:3.5rem;
}
.updates-kicker {
  font-size:.41rem; letter-spacing:.3em; text-transform:uppercase; color:var(--accent-mid);
  margin-bottom:1rem;
}
.updates-head h2 {
  font-size:clamp(1.3rem,2.8vw,2.1rem); font-weight:200; letter-spacing:-.015em;
  color:var(--ink); max-width:26ch; line-height:1.25;
}
.updates-follow {
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.44rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink);
  border:1px solid rgba(0,0,0,.18); padding:.85rem 1.6rem; white-space:nowrap;
  transition:border-color .3s, color .3s, background .3s;
}
.updates-follow svg { width:.8rem; height:.8rem; fill:currentColor; }
.updates-follow:hover { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.updates-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:3px; }
.updates-feed { width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.updates-feed iframe.snapwidget-widget { display:block; width:100% !important; max-width:1020px; height:255px; border:none !important; margin:0 auto; }
.update-card { position:relative; overflow:hidden; aspect-ratio:1/1; }
.update-card img {
  width:100%; height:100%; object-fit:cover;
  transform:scale(1.04); transition:transform 6s var(--ease);
}
.update-card:hover img { transform:scale(1.12); }
.update-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.78) 0%,transparent 60%);
  opacity:0; transition:opacity .4s;
}
.update-card:hover .update-overlay { opacity:1; }
.update-caption {
  position:absolute; bottom:1rem; left:1rem; right:1rem;
  opacity:0; transform:translateY(5px);
  transition:opacity .4s, transform .4s var(--ease);
  font-size:.68rem; font-weight:300; color:var(--paper); line-height:1.4;
}
.update-card:hover .update-caption { opacity:1; transform:translateY(0); }
.updates-note {
  margin-top:2rem; font-size:.42rem; letter-spacing:.1em; color:var(--dim);
  text-transform:uppercase;
}

/* ── REVEALS ─────────────────────────── */
.reveal { opacity:0; transform:translateY(16px); transition:opacity 1s var(--ease), transform 1s var(--ease); }
.reveal.is-visible { opacity:1; transform:translateY(0); }
.reveal-delay-1.is-visible { transition-delay:.15s; }
.reveal-delay-2.is-visible { transition-delay:.3s; }
.reveal-delay-3.is-visible { transition-delay:.45s; }

/* ── BREADCRUMB (páginas interiores) ─── */
.breadcrumb {
  position:absolute; top:0; left:0; width:100%; z-index:10;
  padding:5.7rem var(--g) 0;
  display:flex; align-items:center; gap:.5rem; flex-wrap:wrap;
  font-size:.4rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--dim-dark);
}
.breadcrumb a { color:var(--dim-dark); transition:color .3s; }
.breadcrumb a:hover { color:var(--paper); }
.breadcrumb span[aria-current] { color:var(--paper); }
.breadcrumb-sep { color:var(--line-dark); }

/* ── HERO SUB (páginas de ciudad / blog: foto fija, sin vídeo) ── */
.hero-sub { min-height:62vh; }
.hero-sub .hero-title { font-size:clamp(2.4rem,7vw,6rem); margin-bottom:3rem; }

/* ── PAGE INTRO (bloques de texto largo en páginas interiores) ── */
.page-copy { padding:12vh var(--g) 4vh; }
.page-copy h2 {
  font-size:clamp(1.4rem,3vw,2.2rem); font-weight:200; letter-spacing:-.015em;
  color:var(--ink); margin:3rem 0 1.2rem;
}
.page-copy h2:first-child { margin-top:0; }
.page-copy p {
  font-size:.92rem; font-weight:300; line-height:1.9; color:rgba(0,0,0,.68);
  margin-bottom:1.1rem; max-width:70ch;
}
.page-copy ul { margin:1.2rem 0 1.6rem; }
.page-copy li {
  font-size:.88rem; font-weight:300; line-height:1.8; color:rgba(0,0,0,.68);
  padding-left:1.2rem; position:relative; margin-bottom:.5rem;
}
.page-copy li::before { content:'—'; position:absolute; left:0; color:var(--accent-mid); }
.page-copy li strong { color:var(--ink); font-weight:500; }

/* ── SERVICE BLOCK (divide categorías dentro de una página de servicio) ── */
.service-block { padding-top:2.6rem; margin-top:2.6rem; border-top:1px solid var(--line); }
.service-block:first-of-type { padding-top:0; margin-top:0; border-top:none; }
.service-block h2 { margin-top:0; }

.page-copy .inline-img { width:100%; aspect-ratio:16/9; object-fit:cover; margin:2.5rem 0 .6rem; }
.page-copy .inline-caption {
  font-size:.4rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--dim); margin-bottom:2.2rem;
}

/* ── MINI GALLERY (2-3 fotos locales en páginas de ciudad) ── */
.mini-gallery { padding:0 0 14vh; }
.mini-gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; padding:0 var(--g); }
.mini-gallery .p-card { aspect-ratio:3/4; grid-column:auto; }

/* ── BLOG LISTA ──────────────────────── */
.blog-grid {
  padding:6vh var(--g) 16vh;
  display:grid; grid-template-columns:repeat(2,1fr); gap:4rem 3rem;
}
.blog-card { display:block; text-decoration:none; color:inherit; }
.blog-thumb {
  width:100%; aspect-ratio:16/10; overflow:hidden; margin-bottom:1.6rem; background:var(--bg-alt);
}
.blog-thumb img {
  width:100%; height:100%; object-fit:cover;
  transform:scale(1.04); transition:transform 5s var(--ease);
}
.blog-card:hover .blog-thumb img { transform:scale(1.12); }
.blog-cat {
  font-size:.4rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--accent-mid); margin-bottom:.9rem;
}
.blog-card h2 {
  font-size:clamp(1.1rem,2.2vw,1.5rem); font-weight:300; letter-spacing:-.01em;
  color:var(--ink); line-height:1.3; margin-bottom:.7rem; transition:color .3s;
}
.blog-card:hover h2 { color:var(--accent-deep); }
.blog-card p { font-size:.85rem; font-weight:300; line-height:1.75; color:var(--dim); }
.blog-meta { font-size:.38rem; letter-spacing:.16em; text-transform:uppercase; color:var(--dim); margin-top:1rem; display:block; }

/* ── ARTÍCULO ────────────────────────── */
.article-meta {
  padding:0 var(--g); display:flex; gap:1.5rem; align-items:center;
  font-size:.4rem; letter-spacing:.18em; text-transform:uppercase; color:var(--dim);
  margin-bottom:1.5rem;
}
.page-copy blockquote {
  border-left:2px solid var(--accent); padding:.2rem 0 .2rem 1.4rem;
  font-size:1rem; font-weight:200; font-style:italic; color:rgba(0,0,0,.72);
  margin:1.8rem 0; max-width:60ch;
}
.page-copy table { width:100%; border-collapse:collapse; margin:1.4rem 0 2rem; max-width:70ch; }
.page-copy th, .page-copy td {
  text-align:left; padding:.7rem .9rem; border-bottom:1px solid var(--line);
  font-size:.82rem; font-weight:300; color:rgba(0,0,0,.72);
}
.page-copy th { font-size:.4rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent-mid); font-weight:700; }
.article-cta {
  margin:3rem 0 1rem; padding:2rem 2.2rem; background:var(--bg-alt);
  display:flex; justify-content:space-between; align-items:center; gap:1.5rem; flex-wrap:wrap;
  max-width:70ch;
}
.article-cta p { margin:0; font-size:.85rem; color:rgba(0,0,0,.7); }
.article-cta a {
  flex-shrink:0; display:inline-flex; padding:.8rem 1.6rem; background:var(--ink); color:var(--paper);
  font-size:.42rem; letter-spacing:.2em; text-transform:uppercase; font-weight:500;
  transition:background .3s;
}
.article-cta a:hover { background:var(--accent-deep); }

/* ── RESPONSIVE ──────────────────────── */
@media (max-width:900px) {
  .nav-cta { display:none; }
  .nav-links { display:none; }
  .nav-burger { display:flex; }
  .hero-accent { display:none; }
  .hero-title { font-size:clamp(3rem,14vw,7rem); }
  .about { grid-template-columns:1fr; gap:3rem; }
  .about-quote { font-size:clamp(1.5rem,6vw,2.5rem); }
  .service-row { grid-template-columns:1fr 1.8rem; }
  .service-desc { display:none; }
  .projects-grid { grid-template-columns:1fr; }
  .p-card:nth-child(3n) { grid-column:auto; aspect-ratio:4/3; }
  .zones { flex-direction:column; gap:1.5rem; }
  .testimonial { grid-template-columns:1fr; gap:1rem; }
  .testimonial-meta { text-align:left; }
  .footer { flex-direction:column; align-items:flex-start; gap:1.5rem; }
  .mini-gallery-grid { grid-template-columns:1fr; }
  .breadcrumb { padding-top:5.5rem; }
  .blog-grid { grid-template-columns:1fr; gap:3rem; }
  .article-cta { flex-direction:column; align-items:flex-start; }
  .updates-grid { grid-template-columns:repeat(2,1fr); }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .hero-media video { display:none; }
}
