:root {
  --graphite: #151617;
  --graphite-2: #202124;
  --ink: #262626;
  --muted: #686b70;
  --soft: #f7f6f1;
  --soft-2: #fffaf2;
  --line: #e8e5de;
  --white: #ffffff;
  --red: #ff4338;
  --orange: #ff9f2f;
  --yellow: #f5d436;
  --green: #07a357;
  --lime: #cbdc3e;
  --blue: #0866c8;
  --purple: #79349a;
  --magenta: #f13d95;
  --radius: 24px;
  --shadow: 0 22px 55px rgba(22, 22, 22, .14);
  --shadow-soft: 0 16px 40px rgba(22, 22, 22, .08);
  --max: 1180px;
}

/* ==========================================================================
   Base
   ========================================================================== */

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--soft);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.45;
  text-rendering: optimizeLegibility;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
textarea,
select {
  font: inherit;
}

/* ==========================================================================
   Layout y utilidades
   ========================================================================== */

.container {
  width: min(var(--max), calc(100% - 40px));
  margin-inline: auto;
}

.skip-link {
  position: absolute;
  top: auto;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.skip-link:focus {
  top: 18px;
  left: 18px;
  z-index: 9999;
  width: auto;
  height: auto;
  padding: 12px 16px;
  border-radius: 12px;
  background: var(--ink);
  color: #fff;
}

.section {
  padding: 86px 0;
}

.section.light {
  background: #fff;
}

.section.soft {
  background: linear-gradient(180deg, #fff 0%, var(--soft-2) 100%);
}

.two-col {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 58px;
  align-items: start;
}

.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}

/* ==========================================================================
   Cabecera y navegación
   ========================================================================== */

.site-header {
  position: sticky;
  top: 0;
  z-index: 80;
  height: 78px;
  border-bottom: 1px solid rgba(0, 0, 0, .06);
  background: rgba(255, 255, 255, .96);
  backdrop-filter: blur(20px);
}

.nav-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 78px;
  gap: 24px;
}

.brand {
  display: flex;
  align-items: center;
  min-width: 170px;
}

.brand img {
  width: 154px;
  height: auto;
}

.nav {
  display: flex;
  align-items: center;
  gap: 28px;
  font-size: 14px;
  font-weight: 650;
}

.nav a {
  position: relative;
  white-space: nowrap;
}

.nav a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -10px;
  left: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--red), var(--magenta));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s;
}

.nav a:hover::after,
.nav a.active::after {
  transform: scaleX(1);
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.menu-toggle {
  display: none;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  cursor: pointer;
}

.menu-toggle span {
  display: block;
  height: 2px;
  margin: 7px 8px;
  border-radius: 2px;
  background: var(--ink);
}

/* ==========================================================================
   Botones y tipografía
   ========================================================================== */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 22px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 750;
  letter-spacing: -.01em;
  white-space: nowrap;
  cursor: pointer;
  transition: transform .2s, box-shadow .2s, background .2s;
}

.btn-primary {
  color: #fff;
  background: linear-gradient(100deg, var(--orange), var(--red) 48%, var(--magenta));
  box-shadow: 0 14px 24px rgba(241, 61, 149, .22);
}

.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 30px rgba(241, 61, 149, .28);
}

.btn-outline {
  color: inherit;
  border-color: rgba(255, 255, 255, .55);
  background: rgba(255, 255, 255, .04);
}

.btn-outline:hover {
  transform: translateY(-2px);
  background: rgba(255, 255, 255, .12);
}

.btn-outline.dark {
  border-color: #d3d0c8;
  background: #fff;
  color: var(--ink);
}

.eyebrow {
  margin: 0 0 12px;
  color: var(--red);
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.section-title {
  margin: 0;
  font-size: clamp(31px, 3.3vw, 50px);
  line-height: 1.02;
  letter-spacing: -.05em;
}

.section-copy {
  max-width: 720px;
  color: var(--muted);
  font-size: 18px;
}

.section-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 28px;
}

.section-actions .btn {
  padding: 12px 20px;
}

.dark-band .section-actions .btn-outline {
  color: #fff;
  border-color: rgba(255, 255, 255, .55);
  background: rgba(255, 255, 255, .04);
}

.dark-band .section-actions .btn-outline:hover {
  background: rgba(255, 255, 255, .12);
}

/* ==========================================================================
   Hero principal
   ========================================================================== */

.hero {
  position: relative;
  min-height: 800px;
  overflow: hidden;
  background: #0e0f10;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image:
    linear-gradient(
      180deg,
      rgba(0, 0, 0, .10) 0%,
      rgba(0, 0, 0, .28) 38%,
      rgba(0, 0, 0, .78) 100%
    ),
    url("../img/hero-1920.webp");
  background-size: cover;
  background-position: center center;
}

.hero .container {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  min-height: 800px;
}

.hero-full {
  min-height: calc(100svh - 78px);
}

.hero-full .container {
  justify-content: center;
  align-items: flex-end;
  min-height: calc(100svh - 78px);
  padding-bottom: clamp(120px, 17vh, 190px);
}

.hero-content {
  max-width: 650px;
  padding-top: 30px;
  color: #fff;
}

.hero-content-centered {
  max-width: 940px;
  margin-inline: auto;
  padding-top: 0;
  text-align: center;
}

.hero-content-centered h1,
.hero-content-centered p {
  margin-inline: auto;
}

.hero-content-centered h1 {
  max-width: 940px;
}

.hero-content-centered p {
  max-width: 720px;
}

.hero h1 {
  margin: 0 0 22px;
  font-size: clamp(46px, 6vw, 78px);
  line-height: .98;
  letter-spacing: -.075em;
}

.hero p {
  max-width: 620px;
  margin: 0 0 30px;
  color: rgba(255, 255, 255, .9);
  font-size: clamp(17px, 1.7vw, 21px);
}

/* Centrado específico del subtítulo del hero principal */
.hero .hero-content-centered p {
  max-width: 720px;
  margin: 0 auto 30px;
  text-align: center;
}


.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
}

.hero-content-centered .hero-actions {
  justify-content: center;
}

.hero-shapes,
.hero-full .hero-shapes {
  display: none;
}

.scroll-cue {
  position: absolute;
  bottom: 28px;
  left: 50%;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 9px;
  color: rgba(255, 255, 255, .72);
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -.02em;
  text-decoration: none;
  transform: translateX(-50%) scale(.8);
}

.scroll-mouse {
  position: relative;
  display: block;
  width: 42px;
  height: 66px;
  border: 2px solid rgba(255, 255, 255, .58);
  border-radius: 999px;
}

.scroll-mouse span {
  position: absolute;
  top: 14px;
  left: 50%;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .65);
  transform: translateX(-50%);
  animation: scrollDot 1.7s ease-in-out infinite;
}

.scroll-label {
  color: rgba(255, 255, 255, .72);
}

@keyframes scrollDot {
  0% {
    opacity: .25;
    transform: translate(-50%, 0);
  }

  35% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    transform: translate(-50%, 24px);
  }
}

/* ==========================================================================
   Servicios y sectores
   ========================================================================== */

.service-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.service-card,
.plain-card {
  position: relative;
  min-height: 128px;
  padding: 25px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.service-card::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 24px;
  height: 24px;
  background: var(--accent, var(--red));
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.service-card h3 {
  margin: 0;
  font-size: 17px;
  line-height: 1.13;
  letter-spacing: -.02em;
}

.icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  margin-bottom: 16px;
  color: var(--accent, var(--red));
}

.icon svg {
  width: 34px;
  height: 34px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dark-band {
  position: relative;
  overflow: hidden;
  background: linear-gradient(100deg, #171819, #232426);
  color: #fff;
}

.dark-band::after {
  content: "";
  position: absolute;
  top: 0;
  right: -120px;
  width: 300px;
  height: 100%;
  pointer-events: none;
  background:
    linear-gradient(
      135deg,
      transparent 0 42%,
      rgba(7, 163, 87, .55) 42% 60%,
      rgba(203, 220, 62, .45) 60% 72%,
      transparent 72%
    );
}

.sectors-row {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 40px;
  align-items: center;
}

.sector-icons {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0;
}

.sector-item {
  padding: 12px 18px;
  border-left: 1px solid rgba(255, 255, 255, .16);
  text-align: center;
}

.sector-item .icon {
  margin-inline: auto;
}

.sector-item span {
  font-size: 14px;
  font-weight: 750;
}

.mini-line {
  width: 180px;
  height: 3px;
  margin-top: 24px;
  border-radius: 8px;
  background: linear-gradient(90deg, var(--red), var(--orange), var(--yellow), var(--green), var(--blue), var(--purple));
}

/* ==========================================================================
   Portfolio destacado y portfolio interior
   ========================================================================== */

.portfolio-row {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 52px;
  align-items: start;
}

.portfolio-row .section-title {
  max-width: 280px;
}

.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px 20px;
}

.project-card {
  min-width: 0;
}

.thumb {
  position: relative;
  overflow: hidden;
  border-radius: 13px;
  aspect-ratio: 1/1;
  box-shadow: var(--shadow-soft);
}

.thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.play {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, rgba(0, 0, 0, .05), rgba(0, 0, 0, .2));
}

.play::before {
  content: "";
  width: 48px;
  height: 48px;
  border: 2px solid rgba(255, 255, 255, .85);
  border-radius: 50%;
  background: rgba(0, 0, 0, .2);
}

.play::after {
  content: "";
  position: absolute;
  margin-left: 4px;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 13px solid #fff;
}

.tag {
  display: inline-flex;
  margin-top: 12px;
  margin-bottom: 7px;
  padding: 4px 9px;
  border-radius: 999px;
  background: var(--accent, var(--red));
  color: #fff;
  font-size: 10px;
  font-weight: 850;
  text-transform: uppercase;
}

.project-card h3 {
  margin: 0;
  font-size: 16px;
  line-height: 1.15;
  letter-spacing: -.02em;
}

.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 32px;
}

.filter-btn {
  padding: 10px 15px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-weight: 750;
  cursor: pointer;
}

.filter-btn.active,
.filter-btn:hover {
  background: var(--ink);
  color: #fff;
}

.portfolio-cases {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.case-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.case-card img {
  width: 100%;
  aspect-ratio: 16/11;
  object-fit: cover;
}

.case-body {
  padding: 24px;
}

.case-body h3 {
  margin: 10px 0;
  font-size: 23px;
  line-height: 1.1;
  letter-spacing: -.035em;
}

/* ==========================================================================
   Referencias / publicaciones
   ========================================================================== */

.press-section {
  padding-top: 64px;
  padding-bottom: 82px;
  overflow: hidden;
  background: #fff;
}

.press-copy {
  max-width: 860px;
  margin: 0 auto 44px;
  text-align: center;
}

.press-copy .eyebrow,
.press-copy .section-title,
.press-copy p:not(.eyebrow) {
  text-align: center;
}

.press-copy .section-title {
  max-width: 820px;
  margin-inline: auto;
}

.press-copy p:not(.eyebrow) {
  max-width: 760px;
  margin: 18px auto 0;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.65;
}

.press-marquee {
  position: relative;
  width: 100%;
  padding: 22px 0;
  overflow: hidden;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

.press-marquee::before,
.press-marquee::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 2;
  width: 140px;
  pointer-events: none;
}

.press-marquee::before {
  left: 0;
  background: linear-gradient(90deg, #fff, rgba(255, 255, 255, 0));
}

.press-marquee::after {
  right: 0;
  background: linear-gradient(270deg, #fff, rgba(255, 255, 255, 0));
}

.press-track {
  display: flex;
  align-items: center;
  width: max-content;
  gap: 76px;
  animation: pressLogos 28s linear infinite;
}

.press-marquee:hover .press-track {
  animation-play-state: paused;
}

.press-logo {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: auto;
  height: auto;
  min-width: auto;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-decoration: none;
  opacity: .72;
  transition: opacity .25s ease, transform .25s ease, filter .25s ease;
}

.press-logo:hover {
  opacity: 1;
  transform: translateY(-2px);
}

.press-logo img {
  display: block;
  width: auto;
  max-width: 225px;
  max-height: 65px;
  object-fit: contain;
  filter: grayscale(1);
  opacity: .78;
}

.press-logo:hover img {
  filter: grayscale(0);
  opacity: 1;
}

@keyframes pressLogos {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

/* ==========================================================================
   Credenciales, reseñas y proceso
   ========================================================================== */

.credentials {
  display: grid;
  grid-template-columns: 260px repeat(4, 1fr);
  align-items: center;
  gap: 0;
}

.credential {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 15px 24px;
  border-left: 1px solid rgba(255, 255, 255, .16);
}

.credential p {
  margin: 0;
  font-weight: 750;
  line-height: 1.18;
}

.reviews-band {
  padding: 0 0 72px;
  background: linear-gradient(100deg, #171819, #252628);
  color: #fff;
}

.reviews-panel {
  position: relative;
  display: grid;
  grid-template-columns: 285px 1fr;
  gap: 34px;
  overflow: hidden;
  padding: 34px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 24px;
  background: rgba(255, 255, 255, .04);
  box-shadow: 0 25px 70px rgba(0, 0, 0, .25);
}

/* Sin elemento decorativo multicolor en reseñas */
.reviews-panel::after {
  display: none;
}

.google-block,
.review-cards {
  position: relative;
  z-index: 1;
}

.google-logo {
  margin: 20px 0 4px;
  font-size: 52px;
  font-weight: 900;
  letter-spacing: -.08em;
}

.google-logo span:nth-child(1),
.google-logo span:nth-child(4) {
  color: #4285f4;
}

.google-logo span:nth-child(2),
.google-logo span:nth-child(6) {
  color: #db4437;
}

.google-logo span:nth-child(3) {
  color: #f4b400;
}

.google-logo span:nth-child(5) {
  color: #0f9d58;
}

.stars {
  color: #ffd23c;
  font-size: 22px;
  letter-spacing: 2px;
  white-space: nowrap;
}

.review-score {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 24px;
  font-weight: 800;
}

.review-score small {
  display: block;
  margin-top: 4px;
  color: rgba(255, 255, 255, .74);
  font-size: 13px;
  font-weight: 500;
}

.review-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.review-card {
  min-height: 245px;
  padding: 24px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 16px;
  background: rgba(255, 255, 255, .08);
}

.review-card p {
  margin: 15px 0 24px;
  color: rgba(255, 255, 255, .86);
  font-size: 15px;
}

.reviewer {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: auto;
}

.avatar {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--accent, var(--green));
  color: #fff;
  font-weight: 850;
}

.reviewer strong {
  display: block;
}

.reviewer span {
  color: rgba(255, 255, 255, .65);
  font-size: 12px;
}

.reviews-link {
  grid-column: 2;
  margin-top: 12px;
  color: rgba(255, 255, 255, .8);
  font-size: 14px;
  text-align: center;
}

.process {
  background: #fff;
}

.process-grid {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 50px;
}

.steps {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  align-items: start;
  gap: 8px;
}

.step {
  position: relative;
  padding: 0 12px;
  text-align: center;
}

.step:not(:last-child)::after {
  content: "›";
  position: absolute;
  top: 56px;
  right: -5px;
  color: #666;
  font-size: 30px;
}

.step-num {
  margin-bottom: 10px;
  color: #ccc;
  font-size: 31px;
  font-weight: 850;
}

.step .icon {
  margin-inline: auto;
  color: #252525;
}

.step h3 {
  margin: 0 0 6px;
  font-size: 16px;
}

.step p {
  margin: 0;
  color: #555;
  font-size: 13px;
}

.progress-line,
.process .progress-line {
  display: none;
}

/* ==========================================================================
   CTA, barra multicolor y footer
   ========================================================================== */

.footer-color-strip {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: transparent;
  line-height: 0;
}

.footer-color-strip img {
  display: block;
  width: 100%;
  height: clamp(22px, 2.2vw, 42px);
  margin: 0;
  padding: 0;
  object-fit: fill;
}

.cta-band {
  position: relative;
  overflow: hidden;
  padding: 44px 0;
  background: #171819;
  color: #fff;
}

.cta-band .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}

.cta-band h2 {
  margin: 0;
  font-size: clamp(28px, 3vw, 44px);
  line-height: 1.05;
  letter-spacing: -.04em;
}

.cta-band h2::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 52px;
  margin-right: 22px;
  border-radius: 20px;
  background: linear-gradient(var(--red), var(--yellow), var(--green));
  vertical-align: middle;
}

.cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
}

.footer {
  position: relative;
  overflow: hidden;
  padding: 58px 0 26px;
  background: linear-gradient(100deg, #171819, #232426);
  color: #fff;
}

/* Sin elemento decorativo multicolor en footer */
.footer::after {
  display: none;
}

.footer-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.6fr repeat(4, 1fr);
  gap: 38px;
}

.footer-logo {
  width: 190px;
  margin-bottom: 18px;
  padding: 12px 14px;
  border-radius: 14px;
  background: #fff;
}

.footer-logo img {
  width: 160px;
}

.footer p,
.footer a {
  color: rgba(255, 255, 255, .78);
  font-size: 14px;
}

.footer h3 {
  margin: 0 0 14px;
  font-size: 13px;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.footer ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer li {
  margin: 7px 0;
}

.social {
  display: flex;
  gap: 10px;
  margin-top: 14px;
}

.social a {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 50%;
  color: #fff;
}

.copyright {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-top: 42px;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, .12);
  color: rgba(255, 255, 255, .58);
  font-size: 13px;
}

/* ==========================================================================
   Páginas interiores y componentes generales
   ========================================================================== */

.page-hero {
  position: relative;
  overflow: hidden;
  padding: 86px 0;
  background: linear-gradient(135deg, #fff, var(--soft-2));
}

.page-hero::after {
  content: "";
  position: absolute;
  top: 40px;
  right: -60px;
  width: 210px;
  height: 210px;
  background: conic-gradient(from 45deg, var(--red), var(--orange), var(--yellow), var(--green), var(--blue), var(--purple), var(--magenta), var(--red));
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
  opacity: .9;
}

.page-hero h1 {
  max-width: 850px;
  margin: 0 0 18px;
  font-size: clamp(44px, 5vw, 76px);
  line-height: .98;
  letter-spacing: -.07em;
}

.page-hero p {
  max-width: 720px;
  color: var(--muted);
  font-size: 20px;
}

.content-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.feature-card {
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.feature-card h2,
.feature-card h3 {
  margin-top: 0;
  letter-spacing: -.03em;
}

.feature-card p {
  color: var(--muted);
}

.image-card {
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  box-shadow: var(--shadow);
}

.image-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.list-check {
  margin: 20px 0;
  padding: 0;
  list-style: none;
}

.list-check li {
  position: relative;
  padding: 9px 0 9px 30px;
}

.list-check li::before {
  content: "";
  position: absolute;
  top: 15px;
  left: 0;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: linear-gradient(120deg, var(--orange), var(--magenta));
}

.contact-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 40px;
}

.form {
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 26px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.form label {
  display: block;
  margin: 14px 0 7px;
  font-weight: 750;
}

.form input,
.form textarea,
.form select {
  width: 100%;
  padding: 14px 15px;
  border: 1px solid #d9d6d0;
  border-radius: 14px;
  background: #fff;
}

.form textarea {
  min-height: 140px;
  resize: vertical;
}

.form .btn {
  margin-top: 18px;
}

.notice {
  margin: 18px 0;
  padding: 18px;
  border: 1px solid #f1df9b;
  border-radius: 16px;
  background: #fff8e1;
  color: #5d4b00;
}

.client-panel {
  display: none;
  margin-top: 26px;
}

.client-panel.show {
  display: block;
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.gallery-grid img {
  border-radius: 16px;
  aspect-ratio: 1/1;
  object-fit: cover;
}

.legal-content {
  max-width: 850px;
}

.legal-content h2 {
  margin-top: 42px;
}

.legal-content p,
.legal-content li {
  color: var(--muted);
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1050px) {
  .nav {
    position: fixed;
    top: 78px;
    right: 0;
    left: 0;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
    padding: 24px 32px;
    border-bottom: 1px solid var(--line);
    background: #fff;
  }

  .nav.open {
    display: flex;
  }

  .menu-toggle {
    display: block;
  }

  .header-actions .btn {
    display: none;
  }

  .two-col,
  .sectors-row,
  .portfolio-row,
  .credentials,
  .process-grid,
  .reviews-panel,
  .split,
  .contact-grid {
    grid-template-columns: 1fr;
  }

  .service-grid,
  .portfolio-grid,
  .steps,
  .footer-grid,
  .content-grid,
  .portfolio-cases {
    grid-template-columns: repeat(2, 1fr);
  }

  .sector-icons {
    grid-template-columns: repeat(4, 1fr);
  }

  .credentials {
    gap: 18px;
  }

  .credential {
    border-top: 1px solid rgba(255, 255, 255, .16);
    border-left: 0;
  }

  .review-cards {
    grid-template-columns: 1fr;
  }

  .reviews-link {
    grid-column: auto;
  }

  .press-track {
    gap: 60px;
  }
}

@media (max-width: 720px) {
  .container {
    width: min(100% - 28px, var(--max));
  }

  .site-header,
  .nav-wrap {
    height: 70px;
  }

  .brand img {
    width: 132px;
  }

  .nav {
    top: 70px;
  }

  .hero,
  .hero .container {
    min-height: 670px;
  }

  .hero::before {
    background-image:
      linear-gradient(
        180deg,
        rgba(0, 0, 0, .83) 0%,
        rgba(0, 0, 0, .63) 46%,
        rgba(0, 0, 0, .2) 100%
      ),
      url("../img/hero-1280.webp");
    background-position: center;
  }

  .hero-full,
  .hero-full .container {
    min-height: calc(100svh - 70px);
  }

  .hero-full .container {
    padding-bottom: 130px;
  }

  .hero-content {
    padding-top: 90px;
  }

  .hero-content-centered {
    padding-top: 0;
    text-align: center;
  }

  .hero h1,
  .hero-content-centered h1 {
    font-size: 40px;
  }

  .hero-content-centered p {
    font-size: 16px;
  }

  .hero-content-centered .hero-actions {
    justify-content: center;
  }

  .scroll-cue {
    bottom: 18px;
    transform: translateX(-50%) scale(.7);
  }

  .section {
    padding: 58px 0;
  }

  .service-grid,
  .portfolio-grid,
  .review-cards,
  .steps,
  .footer-grid,
  .content-grid,
  .portfolio-cases,
  .gallery-grid {
    grid-template-columns: 1fr;
  }

  .sector-icons {
    grid-template-columns: repeat(2, 1fr);
  }

  .cta-band .container {
    flex-direction: column;
    align-items: flex-start;
  }

  .copyright {
    flex-direction: column;
  }

  .page-hero h1 {
    font-size: 42px;
  }

  .reviews-panel {
    padding: 22px;
  }

  .portfolio-row,
  .process-grid {
    gap: 28px;
  }

  .review-card {
    min-height: auto;
  }

  .step:not(:last-child)::after {
    display: none;
  }

  .press-section {
    padding-top: 48px;
    padding-bottom: 64px;
  }

  .press-copy {
    margin-bottom: 32px;
  }

  .press-copy p:not(.eyebrow) {
    font-size: 16px;
  }

  .press-track {
    gap: 48px;
    animation-duration: 22s;
  }

  .press-logo img {
    max-width: 175px;
    max-height: 48px;
  }

  .press-marquee::before,
  .press-marquee::after {
    width: 70px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .press-track,
  .scroll-mouse span {
    animation: none;
  }
}


/* ==========================================================================
   CSS centralizado desde páginas HTML
   ========================================================================== */

/* ---- Estilos movidos desde blog.html (bloque 1) ---- */
/* Blog rediseñado Mimetiz */
.blog-hero-new{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 15% 20%, rgba(252,68,52,.22), transparent 34%),
    radial-gradient(circle at 88% 22%, rgba(4,68,135,.22), transparent 36%),
    linear-gradient(135deg, #101114 0%, #191b20 56%, #101114 100%);
  color:#fff;
  padding:clamp(82px, 9vw, 138px) 0 clamp(74px, 8vw, 120px);
}
.blog-hero-new::after{
  content:"";
  position:absolute;
  right:clamp(24px, 8vw, 140px);
  bottom:-120px;
  width:clamp(240px, 30vw, 480px);
  height:clamp(240px, 30vw, 480px);
  background:conic-gradient(from 45deg, var(--red), var(--orange), var(--yellow), var(--green), var(--blue), var(--purple), var(--magenta), var(--red));
  clip-path:polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
  opacity:.24;
  transform:rotate(14deg);
  pointer-events:none;
  display: none !important;
}
.blog-hero-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0, 1.16fr) minmax(300px, .84fr);
  gap:clamp(34px, 6vw, 78px);
  align-items:end;
}
.blog-hero-copy h1{
  margin:0;
  max-width:980px;
  font-size:clamp(48px, 7vw, 92px);
  line-height:.92;
  letter-spacing:-.07em;
}
.blog-hero-copy p{
  max-width:720px;
  color:rgba(255,255,255,.78);
  font-size:clamp(18px, 2vw, 22px);
  line-height:1.6;
  margin:26px 0 0;
}
.blog-hero-panel{
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.07);
  backdrop-filter:blur(12px);
  border-radius:32px;
  padding:28px;
  box-shadow:0 30px 90px rgba(0,0,0,.24);
}
.blog-hero-panel strong{
  display:block;
  color:#fff;
  font-size:24px;
  line-height:1.1;
  letter-spacing:-.04em;
  margin-bottom:12px;
}
.blog-hero-panel p{
  margin:0;
  color:rgba(255,255,255,.72);
  line-height:1.65;
}
.blog-topic-pills{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}
.blog-topic-pills span{
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  padding:8px 12px;
  color:rgba(255,255,255,.78);
  background:rgba(255,255,255,.06);
  font-size:14px;
}
.blog-section-head{
  max-width:880px;
  margin-bottom:42px;
}
.blog-section-head .section-title{
  max-width:820px;
}
.blog-featured-card{
  display:grid;
  grid-template-columns:minmax(0, .95fr) minmax(0, 1.05fr);
  gap:0;
  overflow:hidden;
  background:#101114;
  border-radius:34px;
  box-shadow:0 34px 90px rgba(0,0,0,.16);
  color:#fff;
}
.blog-featured-media{
  min-height:420px;
  position:relative;
  overflow:hidden;
}
.blog-featured-media img,
.blog-card-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transform:scale(1.01);
  transition:transform .45s ease;
}
.blog-featured-card:hover .blog-featured-media img,
.blog-card:hover .blog-card-media img{
  transform:scale(1.06);
}
.blog-featured-body{
  padding:clamp(32px, 5vw, 62px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.blog-featured-body h2{
  color:#fff;
  font-size:clamp(34px, 4vw, 56px);
  line-height:.98;
  letter-spacing:-.06em;
  margin:16px 0 18px;
}
.blog-featured-body p{
  color:rgba(255,255,255,.75);
  font-size:18px;
  line-height:1.65;
}
.blog-card-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:26px;
}
.blog-card{
  background:#fff;
  border:1px solid rgba(16,17,20,.08);
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 20px 60px rgba(16,17,20,.08);
  display:flex;
  flex-direction:column;
  min-height:100%;
}
.blog-card-media{
  aspect-ratio:1.28 / 1;
  overflow:hidden;
  background:#ddd;
}
.blog-card-body{
  padding:24px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.blog-label{
  display:inline-flex;
  align-items:center;
  width:max-content;
  border-radius:999px;
  padding:7px 11px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#101114;
  background:color-mix(in srgb, var(--accent, var(--red)) 18%, white);
  border:1px solid color-mix(in srgb, var(--accent, var(--red)) 34%, white);
}
.blog-card h2,
.blog-card h3{
  margin:16px 0 12px;
  color:#101114;
  font-size:clamp(23px, 2.2vw, 30px);
  line-height:1.02;
  letter-spacing:-.045em;
}
.blog-card p{
  color:var(--muted);
  line-height:1.62;
  margin:0 0 22px;
}
.blog-meta{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:13px;
  margin-top:auto;
  padding-top:4px;
}
.blog-link,
.article-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:max-content;
  color:#101114;
  text-decoration:none;
  font-weight:800;
  border-bottom:2px solid var(--accent, var(--red));
  padding-bottom:3px;
  margin-top:20px;
}
.blog-featured-body .blog-link{
  color:#fff;
}
.blog-idea-band{
  background:#101114;
  color:#fff;
  border-radius:34px;
  padding:clamp(30px, 5vw, 54px);
  display:grid;
  grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr);
  gap:32px;
  align-items:center;
}
.blog-idea-band h2{
  color:#fff;
  font-size:clamp(34px, 4vw, 54px);
  line-height:1;
  letter-spacing:-.06em;
  margin:0;
}
.blog-idea-band p{
  color:rgba(255,255,255,.72);
  line-height:1.7;
  margin:0;
}
.article-hero-new{
  background:linear-gradient(135deg, #101114, #1d2027);
  color:#fff;
  padding:clamp(76px, 8vw, 124px) 0 54px;
}
.article-hero-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.08fr) minmax(300px, .92fr);
  gap:clamp(32px, 5vw, 72px);
  align-items:end;
}
.article-hero-new h1{
  color:#fff;
  margin:18px 0 18px;
  max-width:960px;
  font-size:clamp(44px, 6vw, 82px);
  line-height:.94;
  letter-spacing:-.07em;
}
.article-hero-new .lead{
  color:rgba(255,255,255,.75);
  font-size:clamp(18px, 2vw, 22px);
  line-height:1.6;
  max-width:780px;
  margin:0;
}
.article-hero-media{
  border-radius:34px;
  overflow:hidden;
  aspect-ratio:4/3;
  box-shadow:0 34px 90px rgba(0,0,0,.28);
}
.article-hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.article-layout{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 330px;
  gap:clamp(34px, 5vw, 72px);
  align-items:start;
}
.article-main{
  max-width:860px;
}
.article-main h2{
  color:#101114;
  font-size:clamp(30px, 3vw, 44px);
  line-height:1.03;
  letter-spacing:-.055em;
  margin:42px 0 16px;
}
.article-main h3{
  color:#101114;
  font-size:25px;
  letter-spacing:-.035em;
  margin:28px 0 12px;
}
.article-main p,
.article-main li{
  color:#3b3b3b;
  font-size:18px;
  line-height:1.82;
}
.article-main p{
  margin:0 0 20px;
}
.article-main ul,
.article-main ol{
  padding-left:22px;
  margin:0 0 24px;
}
.article-quote{
  border-left:5px solid var(--accent, var(--red));
  padding:20px 0 20px 24px;
  margin:34px 0;
  font-size:24px;
  line-height:1.35;
  letter-spacing:-.035em;
  color:#101114;
  font-weight:800;
}
.article-aside{
  position:sticky;
  top:100px;
  background:#fff;
  border:1px solid rgba(16,17,20,.08);
  border-radius:28px;
  padding:24px;
  box-shadow:0 20px 60px rgba(16,17,20,.08);
}
.article-aside h3{
  margin:0 0 12px;
  color:#101114;
  font-size:24px;
  letter-spacing:-.04em;
}
.article-aside p,
.article-aside li{
  color:var(--muted);
  line-height:1.6;
}
.article-aside ul{
  margin:16px 0 20px;
  padding-left:18px;
}
.article-related{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}
.article-related a{
  text-decoration:none;
  color:#101114;
  background:#fff;
  border:1px solid rgba(16,17,20,.08);
  border-radius:22px;
  padding:20px;
  font-weight:800;
  line-height:1.25;
}
@media (max-width:980px){
  .blog-hero-grid,
  .blog-featured-card,
  .blog-idea-band,
  .article-hero-grid,
  .article-layout{
    grid-template-columns:1fr;
  }
  .blog-card-grid,
  .article-related{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .article-aside{
    position:static;
  }
}
@media (max-width:680px){
  .blog-card-grid,
  .article-related{
    grid-template-columns:1fr;
  }
  .blog-hero-new,
  .article-hero-new{
    padding-top:60px;
  }
  .blog-featured-media{
    min-height:260px;
  }
  .blog-card-body{
    padding:22px;
  }
}

/* ---- Estilos movidos desde clientes.html (bloque 1) ---- */
/* Ajustes específicos Área Clientes */
.clientes-page .page-hero::after{
  display:none !important;
}

.clientes-login-area .clientes-login-wrap{
  max-width:620px;
}

.clientes-login-form{
  width:100%;
  margin:0 auto;
}

.clientes-login-form .notice{
  margin-bottom:24px;
}

/* ---- Estilos movidos desde contacto.html (bloque 1) ---- */
/* Ajustes específicos Contacto */
    .contact-page .page-hero::after{
      display:none !important;
    }

    .contact-form-centered{
      display:flex;
      justify-content:center;
    }

    .contact-form-centered .form{
      width:100%;
      max-width:720px;
    }


    .hp-field{
      position:absolute !important;
      left:-9999px !important;
      width:1px !important;
      height:1px !important;
      overflow:hidden !important;
      opacity:0 !important;
      pointer-events:none !important;
    }

    .privacy-check{
      display:flex;
      align-items:flex-start;
      gap:12px;
      margin-top:8px;
      color:var(--ink);
      font-size:14px;
      line-height:1.45;
    }

    .privacy-check input{
      width:auto;
      margin-top:3px;
      flex:0 0 auto;
    }

    .privacy-check a{
      color:var(--ink);
      font-weight:800;
      text-decoration:underline;
      text-underline-offset:3px;
    }

    .form-help{
      margin:6px 0 8px;
      color:var(--muted);
      font-size:13px;
      line-height:1.5;
    }

/* ---- Estilos movidos desde error-contacto.html (bloque 1) ---- */
/* Ajustes específicos Contacto */
    .error-contacto-page .page-hero::after{
      display:none !important;
    }

    .contact-form-centered{
      display:flex;
      justify-content:center;
    }

    .contact-form-centered .form{
      width:100%;
      max-width:720px;
    }

.error-contacto-page .page-hero::after{display:none!important;}

/* ---- Estilos movidos desde gracias.html (bloque 1) ---- */
/* Ajustes específicos Contacto */
    .gracias-page .page-hero::after{
      display:none !important;
    }

    .contact-form-centered{
      display:flex;
      justify-content:center;
    }

    .contact-form-centered .form{
      width:100%;
      max-width:720px;
    }

.gracias-page .page-hero::after{display:none!important;}

/* ---- Estilos movidos desde portfolio.html (bloque 1) ---- */
/* Ajustes específicos de Portfolio */
.portfolio-page .page-hero::after{
  display:none !important;
}

.project-lightbox{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-weight:800;
  color:var(--ink);
  text-decoration:none;
}

.project-lightbox:hover{
  color:var(--red);
}

/* Lightbox Portfolio: 25% más grande, pero mostrando solo 1 pieza cada vez */
.portfolio-lightbox{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
}

.portfolio-lightbox.is-open{
  display:flex;
}

.lightbox-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.88);
  backdrop-filter:blur(8px);
}

.lightbox-dialog{
  position:relative;
  z-index:1;
  width:min(1400px, calc(100vw - 48px));
  max-height:calc(100vh - 48px);
  display:flex;
  align-items:center;
  justify-content:center;
}

.lightbox-figure{
  width:100%;
  margin:0;
  color:#fff;
}

.lightbox-media{
  width:100%;
  min-height:min(520px, calc(100vh - 160px));
  display:flex;
  align-items:center;
  justify-content:center;
}

/* El JS inserta solo un elemento dentro de .lightbox-media: img, video o iframe */
.lightbox-media > img,
.lightbox-media > video,
.lightbox-media > iframe{
  display:block;
  border:0;
  border-radius:18px;
  box-shadow:0 30px 90px rgba(0,0,0,.52);
  background:#111;
}

.lightbox-media > img,
.lightbox-media > video{
  width:auto;
  height:auto;
  max-width:100%;
  max-height:calc(100vh - 120px);
  object-fit:contain;
}

.lightbox-media > iframe{
  width:100%;
  max-width:1400px;
  aspect-ratio:16/9;
  height:auto;
  max-height:calc(100vh - 120px);
}

.lightbox-figure figcaption{
  display:flex;
  justify-content:space-between;
  gap:18px;
  margin-top:14px;
  color:rgba(255,255,255,.82);
  font-size:14px;
}

.lightbox-close,
.lightbox-nav{
  border:0;
  color:#fff;
  background:rgba(255,255,255,.12);
  cursor:pointer;
  transition:.2s;
}

.lightbox-close:hover,
.lightbox-nav:hover{
  background:rgba(255,255,255,.24);
}

.lightbox-close{
  position:absolute;
  top:-18px;
  right:-18px;
  z-index:3;
  width:48px;
  height:48px;
  border-radius:999px;
  font-size:32px;
  line-height:1;
}

.lightbox-nav{
  position:absolute;
  top:50%;
  z-index:3;
  width:58px;
  height:88px;
  border-radius:999px;
  font-size:52px;
  line-height:1;
  transform:translateY(-50%);
}

.lightbox-prev{
  left:-78px;
}

.lightbox-next{
  right:-78px;
}

@media (max-width:1580px){
  .lightbox-prev{
    left:16px;
  }

  .lightbox-next{
    right:16px;
  }
}

@media (max-width:720px){
  .portfolio-lightbox{
    padding:12px;
  }

  .lightbox-dialog{
    width:100%;
    max-height:calc(100vh - 24px);
  }

  .lightbox-media{
    min-height:min(320px, calc(100vh - 140px));
  }

  .lightbox-media > img,
  .lightbox-media > video,
  .lightbox-media > iframe{
    max-height:calc(100vh - 120px);
    border-radius:12px;
  }

  .lightbox-nav{
    width:42px;
    height:58px;
    font-size:34px;
  }

  .lightbox-prev{
    left:4px;
  }

  .lightbox-next{
    right:4px;
  }

  .lightbox-close{
    top:8px;
    right:8px;
  }

  .lightbox-figure figcaption{
    flex-direction:column;
    gap:4px;
    padding-inline:4px;
  }
}

/* ---- Estilos movidos desde sectores.html (bloque 1) ---- */
/* Ajustes específicos página Sectores */
    .sectors-detail .content-grid{
      align-items:stretch;
    }

    .sectors-detail .feature-card{
      display:flex;
      flex-direction:column;
      min-height:100%;
    }

    .sector-card-intro{
      color:var(--muted);
      margin:12px 0 20px;
      font-size:16px;
      line-height:1.6;
    }

    .sector-card-block{
      margin-top:18px;
    }

    .sector-card-block h3{
      font-size:13px;
      text-transform:uppercase;
      letter-spacing:.07em;
      color:var(--ink);
      margin:0 0 10px;
    }

    .sectors-detail .list-check{
      margin:0;
    }

    .sectors-detail .list-check li{
      color:var(--muted);
      font-size:15px;
      line-height:1.45;
    }

    .sector-card-cta{
      margin-top:auto;
      padding-top:24px;
    }

    .sector-method-copy{
      display:grid;
      gap:18px;
    }

    .sector-method-copy .section-copy{
      margin:0;
    }

    @media (min-width:1051px){
      .sectors-detail .content-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
      }
    }

    /* Quitar figura/cuadrado multicolor del encabezado de Sectores */
    .sectores-page .page-hero::after{
      display:none !important;
    }

/* ---- Estilos movidos desde servicios.html (bloque 1) ---- */
/* Ajustes específicos para Servicios */
  .servicios-page .page-hero::after{
    display:none !important;
  }

  .servicios-page .footer::after{
    display:none !important;
  }

/* ---- Estilos movidos desde sobre-mimetiz.html (bloque 1) ---- */
/* Página Sobre Mimetiz · rediseño editorial */
    .about-page .page-hero::after{display:none!important}

    .about-hero{
      position:relative;
      overflow:hidden;
      padding:clamp(64px, 8vw, 112px) 0 clamp(58px, 7vw, 92px);
      background:
        radial-gradient(circle at 16% 18%, rgba(252,68,52,.13), transparent 28%),
        radial-gradient(circle at 78% 18%, rgba(4,68,135,.10), transparent 24%),
        linear-gradient(135deg, #fff, var(--soft-2));
    }

    .about-hero::before{
      content:"";
      position:absolute;
      left:-120px;
      bottom:-140px;
      width:360px;
      height:360px;
      background:conic-gradient(from 45deg, var(--red), var(--orange), var(--yellow), var(--green), var(--blue), var(--purple), var(--magenta), var(--red));
      clip-path:polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
      opacity:.08;
      pointer-events:none;
    }

    .about-hero-grid{
      display:grid;
      grid-template-columns:minmax(0, 1fr) minmax(320px, 430px);
      gap:clamp(40px, 7vw, 82px);
      align-items:center;
      position:relative;
      z-index:1;
    }

    .about-kicker{
      display:inline-flex;
      align-items:center;
      gap:10px;
      color:var(--muted);
      font-size:13px;
      line-height:1;
      text-transform:uppercase;
      letter-spacing:.09em;
      font-weight:800;
      margin:0 0 22px;
    }

    .about-kicker::before{
      content:"";
      width:38px;
      height:4px;
      border-radius:99px;
      background:linear-gradient(90deg, var(--red), var(--orange), var(--yellow), var(--green), var(--blue));
    }

    .about-title{
      font-size:clamp(46px, 6vw, 86px);
      line-height:.94;
      letter-spacing:-.075em;
      margin:0 0 22px;
      max-width:900px;
      color:var(--graphite);
    }

    .about-title span{
      display:block;
      color:rgba(16,17,20,.58);
    }

    .about-lead{
      max-width:760px;
      font-size:clamp(18px, 1.7vw, 23px);
      line-height:1.55;
      color:var(--muted);
      margin:0 0 30px;
    }

    .about-actions{
      display:flex;
      flex-wrap:wrap;
      gap:14px;
      margin:30px 0 0;
    }

    .about-stats{
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:14px;
      margin-top:38px;
      max-width:760px;
    }

    .about-stat{
      background:rgba(255,255,255,.72);
      border:1px solid rgba(0,0,0,.07);
      border-radius:22px;
      padding:20px;
      box-shadow:0 18px 42px rgba(0,0,0,.05);
    }

    .about-stat strong{
      display:block;
      font-size:clamp(24px, 2.5vw, 34px);
      line-height:1;
      letter-spacing:-.055em;
      color:var(--graphite);
      margin-bottom:8px;
    }

    .about-stat span{
      display:block;
      font-size:13px;
      line-height:1.35;
      color:var(--muted);
      font-weight:700;
    }

    .portrait-card{
      position:relative;
      max-width:430px;
      margin-left:auto;
    }

    .portrait-card::before{
      content:"";
      position:absolute;
      inset:30px -18px -18px 30px;
      border-radius:36px;
      background:linear-gradient(135deg, var(--red), var(--orange), var(--yellow), var(--green), var(--blue), var(--purple));
      opacity:.22;
      z-index:0;
    }

    .portrait-frame{
      position:relative;
      z-index:1;
      aspect-ratio:4/5.35;
      border-radius:36px;
      overflow:hidden;
      background:#ddd;
      box-shadow:0 32px 90px rgba(0,0,0,.22);
    }

    .portrait-frame img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      transform:scale(1.04);
    }

    .portrait-badge{
      position:absolute;
      left:-18px;
      bottom:28px;
      z-index:2;
      max-width:245px;
      background:#fff;
      border:1px solid rgba(0,0,0,.08);
      border-radius:24px;
      padding:18px 20px;
      box-shadow:0 20px 55px rgba(0,0,0,.14);
    }

    .portrait-badge strong{
      display:block;
      font-size:17px;
      letter-spacing:-.03em;
      margin-bottom:5px;
    }

    .portrait-badge span{
      color:var(--muted);
      font-size:13px;
      line-height:1.35;
      display:block;
    }

    .about-intro{
      padding:clamp(62px, 8vw, 104px) 0;
      background:#fff;
    }

    .about-intro-grid{
      display:grid;
      grid-template-columns:.82fr 1.18fr;
      gap:clamp(36px, 6vw, 76px);
      align-items:start;
    }

    .about-big-quote{
      position:sticky;
      top:110px;
      padding-left:26px;
      border-left:6px solid var(--red);
    }

    .about-big-quote h2{
      font-size:clamp(32px, 4vw, 56px);
      line-height:1;
      letter-spacing:-.065em;
      margin:0;
    }

    .about-copy p{
      font-size:18px;
      line-height:1.75;
      color:var(--muted);
      margin:0 0 22px;
    }

    .about-copy p strong{
      color:var(--graphite);
    }

    .versatile-section{
      background:linear-gradient(100deg, #171819, #252629);
      color:#fff;
      padding:clamp(58px, 7vw, 92px) 0;
      overflow:hidden;
      position:relative;
    }

    .versatile-section::after{
      content:"";
      position:absolute;
      right:-120px;
      top:-120px;
      width:360px;
      height:360px;
      border-radius:50%;
      background:radial-gradient(circle, rgba(252,165,68,.22), transparent 65%);
    }

    .versatile-grid{
      display:grid;
      grid-template-columns:.9fr 1.1fr;
      gap:clamp(34px, 6vw, 70px);
      align-items:center;
      position:relative;
      z-index:1;
    }

    .versatile-section .eyebrow,
    .versatile-section .section-title,
    .versatile-section p{
      color:#fff;
    }

    .versatile-section .section-title{
      max-width:620px;
    }

    .versatile-section .section-copy{
      color:rgba(255,255,255,.72);
      font-size:18px;
      line-height:1.72;
    }

    .territory-grid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0, 1fr));
      gap:16px;
    }

    .territory-card{
      background:rgba(255,255,255,.07);
      border:1px solid rgba(255,255,255,.12);
      border-radius:24px;
      padding:22px;
      backdrop-filter:blur(8px);
    }

    .territory-card h3{
      margin:0 0 8px;
      font-size:19px;
      color:#fff;
      letter-spacing:-.035em;
    }

    .territory-card p{
      color:rgba(255,255,255,.66);
      font-size:14px;
      line-height:1.55;
      margin:0;
    }

    .authority-band{
      padding:44px 0;
      background:var(--soft);
    }

    .authority-grid{
      display:grid;
      grid-template-columns:repeat(4, minmax(0, 1fr));
      gap:18px;
    }

    .authority-card{
      background:#fff;
      border:1px solid rgba(0,0,0,.07);
      border-radius:24px;
      padding:24px;
      box-shadow:var(--shadow-soft);
    }

    .authority-card .icon{
      width:48px;
      height:48px;
      margin-bottom:16px;
    }

    .authority-card h3{
      font-size:17px;
      letter-spacing:-.035em;
      margin:0 0 8px;
    }

    .authority-card p{
      margin:0;
      color:var(--muted);
      font-size:14px;
      line-height:1.5;
    }

    .values-section{
      background:#fff;
      padding:clamp(58px, 7vw, 92px) 0;
    }

    .values-grid{
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:22px;
      margin-top:34px;
    }

    .value-card{
      border-radius:28px;
      padding:30px;
      min-height:240px;
      background:linear-gradient(135deg, #fff, var(--soft));
      border:1px solid rgba(0,0,0,.07);
      box-shadow:var(--shadow-soft);
    }

    .value-card strong{
      display:block;
      color:var(--muted);
      font-size:14px;
      text-transform:uppercase;
      letter-spacing:.08em;
      margin-bottom:40px;
    }

    .value-card h3{
      font-size:28px;
      letter-spacing:-.055em;
      margin:0 0 12px;
    }

    .value-card p{
      color:var(--muted);
      line-height:1.65;
      margin:0;
    }

    .about-page .press-section{
      background:var(--soft);
    }

    .press-text-logo{
      min-width:220px;
      min-height:60px;
      font-size:21px;
      font-weight:900;
      letter-spacing:-.04em;
      color:var(--graphite);
      opacity:.78;
    }

    .about-page .reviews-band{
      background:#fff;
    }

    .about-page .reviews-panel::after{
      display:none!important;
    }

    .about-page .footer::after{
      display:none!important;
    }


    /* Corrección reseñas sobre fondo blanco */
    .about-page .reviews-band,
    .about-page .reviews-panel,
    .about-page .google-block,
    .about-page .review-card{
      color:var(--graphite)!important;
    }

    .about-page .reviews-panel h2,
    .about-page .reviews-panel p,
    .about-page .reviews-panel small,
    .about-page .review-card p,
    .about-page .reviewer strong,
    .about-page .review-score strong{
      color:var(--graphite)!important;
    }

    .about-page .reviews-panel .eyebrow,
    .about-page .reviews-panel small,
    .about-page .reviewer span{
      color:var(--muted)!important;
    }

    .about-page .review-card{
      background:#fff!important;
      border-color:rgba(0,0,0,.08)!important;
    }

    .about-page .stars,
    .about-page .review-score .stars{
      color:var(--orange)!important;
    }

    .about-page .reviews-link{
      color:var(--graphite)!important;
      border-color:rgba(0,0,0,.18)!important;
      background:rgba(0,0,0,.03)!important;
    }

    @media (max-width:980px){
      .about-hero-grid,
      .about-intro-grid,
      .versatile-grid{
        grid-template-columns:1fr;
      }

      .portrait-card{
        margin-inline:auto;
        width:min(100%, 430px);
      }

      .about-big-quote{
        position:relative;
        top:auto;
      }

      .authority-grid,
      .values-grid{
        grid-template-columns:1fr 1fr;
      }
    }

    @media (max-width:720px){
      .about-hero{
        padding-top:48px;
      }

      .about-stats,
      .territory-grid,
      .authority-grid,
      .values-grid{
        grid-template-columns:1fr;
      }

      .portrait-badge{
        left:16px;
        right:16px;
        bottom:16px;
        max-width:none;
      }

      .about-title{
        font-size:43px;
      }
    }

/* ---- Estilos inline convertidos en clases para mantener diseño exacto ---- */
.u-css-001{--accent:var(--red);}
.u-css-002{--accent:var(--orange);}
.u-css-003{--accent:var(--blue);}
.u-css-004{--accent:var(--purple);}
.u-css-005{--accent:var(--green);}
.u-css-006{--accent:var(--magenta);}
.u-css-007{margin-top:28px !important;}
.u-css-008{--accent:var(--yellow);}
.u-css-009{--accent:var(--red);color:var(--red) !important;}
.u-css-010{--accent:var(--orange);color:var(--orange) !important;}
.u-css-011{--accent:var(--lime);color:var(--lime) !important;}
.u-css-012{--accent:var(--blue);color:var(--blue) !important;}
.u-css-013{--accent:var(--purple);color:var(--purple) !important;}
.u-css-014{--accent:var(--magenta);color:var(--magenta) !important;}
.u-css-015{padding:48px 0 !important;}
.u-css-016{font-size:30px !important;line-height:1.08 !important;margin:0 !important;}
.u-css-017{color:var(--red) !important;}
.u-css-018{color:var(--orange) !important;}
.u-css-019{color:var(--yellow) !important;}
.u-css-020{color:var(--lime) !important;}
.u-css-021{color:var(--blue) !important;}
.u-css-022{color:var(--purple) !important;}
.u-css-023{color:var(--magenta) !important;}
.u-css-024{color:var(--green) !important;}


/* Ajuste de separación en títulos principales */
.hero h1,
.page-hero h1,
.about-title,
.blog-hero-copy h1,
.article-hero-new h1 {
  letter-spacing: -0.035em;
}





/* ============================================================================
   Landing Tu mejor versión · CSS optimizado
   Mantiene el estado final de la landing y elimina versiones antiguas acumuladas.
   ============================================================================ */

.shooting-page{background:#fff;}

/* Hero */
.shooting-hero-editorial{
  position:relative;
  min-height:clamp(856px,113svh,1076px);
  padding:clamp(74px,8vw,124px) 0 clamp(64px,8vw,110px);
  overflow:hidden;
  background:#101114;
  color:#fff;
}

.shooting-hero-editorial::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(16,17,20,1) 0%,rgba(16,17,20,.98) 36%,rgba(16,17,20,.58) 58%,rgba(16,17,20,.08) 82%,rgba(16,17,20,.18) 100%),
    linear-gradient(180deg,rgba(16,17,20,.50) 0%,rgba(16,17,20,0) 38%,rgba(16,17,20,.60) 100%);
}

.shooting-hero-editorial::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2;
  height:7px;
  background:linear-gradient(90deg,var(--red),var(--orange),var(--yellow),var(--green),var(--blue),var(--purple),var(--magenta));
}

.shooting-hero-editorial-media{
  position:absolute;
  inset:0 0 0 42%;
  z-index:0;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:transparent;
}

.shooting-hero-editorial-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  transform:none;
}

.shooting-hero-editorial-grid{
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
  min-height:clamp(856px,113svh,1076px);
  padding-top:clamp(58px,8.3vh,100px);
  padding-bottom:clamp(127px,13.8vh,172px);
}

.shooting-hero-editorial-copy{
  position:relative;
  width:min(700px,100%);
  color:#fff;
}

.shooting-hero-editorial-copy::before{display:none!important;}

.shooting-hero-editorial-copy .eyebrow{
  color:rgba(255,255,255,.82);
  font-size:14px;
  letter-spacing:.055em;
}

.shooting-hero-editorial-copy h1{
  max-width:760px;
  margin:0 0 26px;
  color:#fff;
  font-size:clamp(54px,7.7vw,104px);
  line-height:.91;
  letter-spacing:-.025em;
}

.shooting-hero-editorial-copy .lead{
  max-width:660px;
  margin:0;
  color:rgba(255,255,255,.78);
  font-size:clamp(18px,1.9vw,23px);
  line-height:1.62;
}

.shooting-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-top:32px;
}

.shooting-hero-actions-featured{
  gap:18px;
  margin-top:42px;
}

.shooting-hero-actions-featured .btn{
  min-height:68px;
  padding:21px 38px;
  border-radius:999px;
  font-size:17px;
}

.shooting-main-cta{
  min-width:260px;
  box-shadow:0 24px 56px rgba(241,61,149,.38);
}

.shooting-secondary-cta{
  min-width:205px;
  border-color:rgba(255,255,255,.64);
  background:rgba(255,255,255,.08);
  color:#fff;
  box-shadow:0 20px 48px rgba(0,0,0,.22);
}

.shooting-secondary-cta:hover{background:rgba(255,255,255,.16);}
.shooting-scroll-cue{bottom:30px;}

/* Vídeo YouTube */
.shooting-video-band{
  width:100%;
  height:52.5svh;
  min-height:330px;
  max-height:52.5svh;
  overflow:hidden;
  background:#101114;
}

.shooting-video-frame{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
}

.shooting-video-frame iframe{
  position:absolute;
  top:50%;
  left:50%;
  width:100vw;
  height:56.25vw;
  min-width:177.78svh;
  min-height:100%;
  border:0;
  transform:translate(-50%,-50%);
  pointer-events:none;
}

/* Bloque problema + solución */
.shooting-intro-grid{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:clamp(34px,6vw,70px);
  align-items:start;
}

.shooting-problem-box{
  position:sticky;
  top:110px;
  border-radius:32px;
  padding:clamp(28px,4vw,42px);
  background:linear-gradient(135deg,#101114,#252629);
  color:#fff;
  box-shadow:0 26px 70px rgba(16,17,20,.18);
}

.shooting-problem-box h2{
  margin:0 0 18px;
  color:#fff;
  font-size:clamp(34px,4vw,56px);
  line-height:1;
  letter-spacing:-.045em;
}

.shooting-problem-box p{
  margin:0;
  color:rgba(255,255,255,.72);
  font-size:18px;
  line-height:1.7;
}

.shooting-doubts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.shooting-doubt{
  border:1px solid rgba(16,17,20,.08);
  border-radius:22px;
  padding:18px 20px;
  background:#fff;
  color:var(--graphite);
  box-shadow:var(--shadow-soft);
  font-weight:800;
  line-height:1.25;
  letter-spacing:-.02em;
}

.shooting-solution{
  margin-top:30px;
  border:1px solid rgba(16,17,20,.08);
  border-radius:28px;
  padding:clamp(26px,4vw,38px);
  background:linear-gradient(135deg,#fff,var(--soft-2));
}

.shooting-solution h3{
  margin:0 0 12px;
  color:var(--graphite);
  font-size:30px;
  line-height:1.05;
  letter-spacing:-.045em;
}

.shooting-solution p{
  margin:0;
  color:var(--muted);
  font-size:17px;
  line-height:1.72;
}

/* Cabeceras de sección */
.shooting-section-head{
  max-width:880px;
  margin-bottom:42px;
}

.shooting-section-head .section-title{max-width:780px;}

/* Dirección de modelo */
.posing-tips{background:#fff;}
.posing-tips-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;}

.posing-tip-card{
  position:relative;
  min-height:260px;
  overflow:hidden;
  border:1px solid rgba(16,17,20,.08);
  border-radius:28px;
  padding:24px;
  background:linear-gradient(135deg,#fff,var(--soft));
  box-shadow:var(--shadow-soft);
}

.posing-tip-card::after{
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  width:34px;
  height:34px;
  background:var(--tip-color,var(--red));
  clip-path:polygon(100% 0,100% 100%,0 100%);
}

.posing-tip-card span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  margin-bottom:18px;
  border-radius:999px;
  background:color-mix(in srgb,var(--tip-color,var(--red)) 16%,white);
  color:var(--tip-color,var(--red));
  font-weight:900;
}

.posing-tip-card h3{
  margin:0 0 10px;
  color:var(--graphite);
  font-size:22px;
  line-height:1.05;
  letter-spacing:-.04em;
}

.posing-tip-card p{
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.58;
}

.posing-tip-card:nth-child(1){--tip-color:var(--red);}
.posing-tip-card:nth-child(2){--tip-color:var(--orange);}
.posing-tip-card:nth-child(3){--tip-color:var(--yellow);}
.posing-tip-card:nth-child(4){--tip-color:var(--green);}
.posing-tip-card:nth-child(5){--tip-color:var(--blue);}
.posing-tip-card:nth-child(6){--tip-color:var(--purple);}
.posing-tip-card:nth-child(7){--tip-color:var(--magenta);}
.posing-tip-card:nth-child(8){--tip-color:var(--lime);}

/* Beneficios */
.shooting-benefits{
  background:linear-gradient(100deg,#171819,#252629);
  color:#fff;
}

.shooting-benefits .section-title,
.shooting-benefits .section-copy{color:#fff;}
.shooting-benefits .section-copy{color:rgba(255,255,255,.72);}

.shooting-benefit-grid,
.shooting-trust-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}

.shooting-benefit-grid{margin-top:34px;}

.shooting-benefit-card,
.shooting-trust-item{
  border:1px solid rgba(255,255,255,.13);
  border-radius:24px;
  padding:22px;
  background:rgba(255,255,255,.07);
}

.shooting-benefit-card{backdrop-filter:blur(8px);}

.shooting-benefit-card strong,
.shooting-trust-item strong{
  display:block;
  margin-bottom:8px;
  color:#fff;
  line-height:1.15;
  letter-spacing:-.03em;
}

.shooting-benefit-card strong{font-size:18px;}
.shooting-trust-item strong{font-size:25px;line-height:1;letter-spacing:-.05em;}

.shooting-benefit-card p,
.shooting-trust-item p{
  margin:0;
  color:rgba(255,255,255,.66);
  font-size:14px;
  line-height:1.55;
}

.shooting-trust-item p{color:rgba(255,255,255,.68);}
.shooting-trust-band{background:#101114;color:#fff;}
.shooting-trust-grid{gap:18px;}
.shooting-trust-item{padding:24px;}

/* Tipos de sesión */
.shooting-types-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
}

.shooting-type-card{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(16,17,20,.08);
  border-radius:30px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}

.shooting-type-media{
  overflow:hidden;
  aspect-ratio:1.15/1;
  background:#ddd;
}

.shooting-type-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s ease;
}

.shooting-type-card:hover .shooting-type-media img{transform:scale(1.06);}

.shooting-type-body{
  display:flex;
  flex:1;
  flex-direction:column;
  padding:24px;
}

.shooting-type-label{
  display:inline-flex;
  width:max-content;
  margin-bottom:14px;
  border-radius:999px;
  padding:7px 10px;
  background:color-mix(in srgb,var(--type-color,var(--red)) 15%,white);
  color:var(--graphite);
  font-size:11px;
  font-weight:850;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.shooting-type-card h3{
  margin:0 0 12px;
  color:var(--graphite);
  font-size:26px;
  line-height:1.05;
  letter-spacing:-.045em;
}

.shooting-type-card p{
  margin:0 0 15px;
  color:var(--muted);
  line-height:1.62;
}

.shooting-type-card .btn{margin-top:auto;}
.shooting-type-card:nth-child(1){--type-color:var(--orange);}
.shooting-type-card:nth-child(2){--type-color:var(--magenta);}
.shooting-type-card:nth-child(3){--type-color:var(--blue);}
.shooting-type-card:nth-child(4){--type-color:var(--green);}

/* Proceso */
.shooting-process{background:var(--soft);}

.shooting-process-grid{
  display:grid;
  grid-template-columns:320px 1fr;
  gap:clamp(34px,6vw,70px);
  align-items:start;
}

.shooting-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}

.shooting-step{
  border:1px solid rgba(16,17,20,.08);
  border-radius:26px;
  padding:24px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}

.shooting-step span{
  display:block;
  margin-bottom:18px;
  color:color-mix(in srgb,var(--red) 80%,var(--magenta));
  font-size:32px;
  font-weight:900;
  line-height:1;
  letter-spacing:-.06em;
}

.shooting-step h3{
  margin:0 0 8px;
  color:var(--graphite);
  font-size:22px;
  letter-spacing:-.04em;
}

.shooting-step p{margin:0;color:var(--muted);line-height:1.6;}

/* Sección emocional */
.shooting-emotional{overflow:hidden;background:#fff;}

.shooting-emotional-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);
  gap:clamp(34px,6vw,72px);
  align-items:center;
}

.shooting-emotional-copy h2{
  margin:0 0 22px;
  color:var(--graphite);
  font-size:clamp(38px,5vw,70px);
  line-height:.98;
  letter-spacing:-.04em;
}

.shooting-emotional-copy p{
  max-width:760px;
  margin:0 0 20px;
  color:var(--muted);
  font-size:18px;
  line-height:1.75;
}

.shooting-emotional-quote{
  border-left:6px solid var(--red);
  padding-left:24px;
  color:var(--graphite);
  font-size:25px;
  font-weight:850;
  line-height:1.35;
  letter-spacing:-.035em;
}

.shooting-emotional-image{
  overflow:hidden;
  border-radius:34px;
  box-shadow:var(--shadow);
  aspect-ratio:4/5;
}

.shooting-emotional-image img{width:100%;height:100%;object-fit:cover;}

/* Packs */
.shooting-packages{background:linear-gradient(180deg,#fff 0%,var(--soft-2) 100%);}
.shooting-package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;}

.shooting-package{
  display:flex;
  flex-direction:column;
  min-height:100%;
  border:1px solid rgba(16,17,20,.08);
  border-radius:30px;
  padding:30px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}

.shooting-package-featured{
  border-color:rgba(255,67,56,.24);
  box-shadow:0 28px 78px rgba(255,67,56,.13);
}

.shooting-package-kicker{
  display:inline-flex;
  width:max-content;
  margin-bottom:18px;
  border-radius:999px;
  padding:7px 11px;
  background:color-mix(in srgb,var(--orange) 20%,white);
  color:var(--graphite);
  font-size:12px;
  font-weight:850;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.shooting-package h3{
  margin:0 0 10px;
  color:var(--graphite);
  font-size:32px;
  line-height:1;
  letter-spacing:-.05em;
}

.shooting-package p{margin:0 0 20px;color:var(--muted);line-height:1.62;}
.shooting-package ul{margin:0 0 26px;padding:0;list-style:none;}

.shooting-package li{
  position:relative;
  padding:9px 0 9px 28px;
  color:var(--muted);
  line-height:1.45;
}

.shooting-package li::before{
  content:"";
  position:absolute;
  top:15px;
  left:0;
  width:12px;
  height:12px;
  border-radius:50%;
  background:linear-gradient(120deg,var(--orange),var(--magenta));
}

.shooting-package .btn{margin-top:auto;}

/* FAQ */
.shooting-faq{background:#fff;}

.shooting-faq-grid{
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(34px,6vw,70px);
  align-items:start;
}

.shooting-faq-list{display:grid;gap:12px;}

.shooting-faq-list details{
  border:1px solid rgba(16,17,20,.08);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 34px rgba(16,17,20,.06);
}

.shooting-faq-list summary{
  position:relative;
  padding:20px 54px 20px 22px;
  color:var(--graphite);
  cursor:pointer;
  font-weight:850;
  letter-spacing:-.025em;
  list-style:none;
}

.shooting-faq-list summary::-webkit-details-marker{display:none;}

.shooting-faq-list summary::after{
  content:"+";
  position:absolute;
  top:50%;
  right:22px;
  color:var(--red);
  font-size:24px;
  font-weight:700;
  transform:translateY(-50%);
}

.shooting-faq-list details[open] summary::after{content:"–";}
.shooting-faq-list p{margin:0;padding:0 22px 22px;color:var(--muted);line-height:1.65;}

/* CTA final */
.shooting-final-cta{
  position:relative;
  overflow:hidden;
  padding:clamp(64px,7vw,96px) 0;
  background:linear-gradient(125deg,#171819,#252629);
  color:#fff;
}

.shooting-final-cta::after{
  content:"";
  position:absolute;
  right:-120px;
  bottom:-150px;
  width:360px;
  height:360px;
  background:conic-gradient(from 45deg,var(--red),var(--orange),var(--yellow),var(--green),var(--blue),var(--purple),var(--magenta),var(--red));
  clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);
  opacity:.20;
}

.shooting-final-cta .container{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:30px;
  align-items:center;
}

.shooting-final-cta h2{
  max-width:900px;
  margin:0;
  color:#fff;
  font-size:clamp(36px,5vw,68px);
  line-height:.98;
  letter-spacing:-.04em;
}

.shooting-final-cta p{
  max-width:700px;
  margin:18px 0 0;
  color:rgba(255,255,255,.72);
  font-size:18px;
  line-height:1.65;
}

/* Responsive */
@media (max-width:1050px){
  .shooting-hero-editorial{min-height:1049px;}

  .shooting-hero-editorial::before{
    background:linear-gradient(180deg,rgba(16,17,20,.16) 0%,rgba(16,17,20,.20) 36%,rgba(16,17,20,1) 63%,rgba(16,17,20,1) 100%);
  }

  .shooting-hero-editorial-media{inset:0 0 47% 0;}

  .shooting-hero-editorial-grid{
    min-height:1049px;
    align-items:flex-end;
    padding-top:456px;
    padding-bottom:138px;
  }

  .shooting-hero-editorial-copy{width:100%;max-width:760px;}

  .shooting-intro-grid,
  .shooting-process-grid,
  .shooting-emotional-grid,
  .shooting-faq-grid,
  .shooting-final-cta .container{grid-template-columns:1fr;}

  .shooting-problem-box{position:relative;top:auto;}

  .posing-tips-grid,
  .shooting-benefit-grid,
  .shooting-types-grid,
  .shooting-trust-grid{grid-template-columns:repeat(2,minmax(0,1fr));}

  .shooting-package-grid{grid-template-columns:1fr;}
}

@media (max-width:720px){
  .shooting-hero-editorial{min-height:994px;}
  .shooting-hero-editorial-media{inset:0 0 50% 0;}

  .shooting-hero-editorial-grid{
    min-height:994px;
    padding-top:394px;
    padding-bottom:127px;
  }

  .shooting-hero-editorial-copy .eyebrow{
    font-size:12px;
    line-height:1.3;
  }

  .shooting-hero-editorial-copy h1{
    font-size:46px;
    line-height:.95;
  }

  .shooting-hero-editorial-copy .lead{
    font-size:17px;
    line-height:1.56;
  }

  .shooting-hero-actions-featured{
    width:100%;
    gap:12px;
    margin-top:30px;
  }

  .shooting-hero-actions-featured .btn{
    width:100%;
    min-width:0;
    min-height:58px;
    padding:17px 22px;
    font-size:15px;
  }

  .shooting-scroll-cue{bottom:20px;}

  .shooting-video-band{
    height:52.5svh;
    min-height:285px;
    max-height:52.5svh;
  }

  .shooting-doubts,
  .posing-tips-grid,
  .shooting-benefit-grid,
  .shooting-types-grid,
  .shooting-steps,
  .shooting-trust-grid{grid-template-columns:1fr;}

  .shooting-emotional-copy h2,
  .shooting-final-cta h2{font-size:38px;}
}