/* =============================================================================
   ROUTES OF PERU · contacto-nosotros.css
   Compartido: page-contactenos.php y page-nosotros.php
   Ruta: wp-content/themes/routes-custom/assets/css/contacto-nosotros.css
   ============================================================================= */

:root{
  --cn-gold:#C7B16E;
  --cn-gold-soft:#f7e7b5;
  --cn-gold-deep:#9c884b;
  --cn-ink:#101010;
  --cn-ink-2:#1a1a1a;
  --cn-cream:#f7f3ea;
  --cn-cream-2:#efe7d6;
  --cn-text:#23211c;
  --cn-muted:rgba(35,33,28,.66);
  --cn-line:rgba(199,177,110,.30);
  --cn-radius:20px;
  --cn-shadow:0 22px 60px rgba(16,16,16,.14);
  --cn-shadow-gold:0 18px 48px rgba(199,177,110,.22);
  --cn-ease:cubic-bezier(.16,1,.3,1);
  --cn-gap:clamp(24px,3.6vw,42px);
}

/* ---------------------------------------------------------------- BASE --- */
.cn-page{
  background:var(--cn-cream); color:var(--cn-text);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Inter,Arial,sans-serif;
  line-height:1.6; overflow-x:clip;
}
.cn-page .container{ width:min(1200px, calc(100% - 36px)); margin-inline:auto; }
.cn-page h1,.cn-page h2,.cn-page h3{ margin:0; line-height:1.12; }

.cn-walogo{ flex-shrink:0; display:inline-block; vertical-align:middle; position:relative;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.4)); }
.cn-btn--wa .cn-walogo::after{
  content:""; position:absolute; top:-2px; right:-2px; width:8px; height:8px; border-radius:50%;
  background:#3ee37a; box-shadow:0 0 0 2px #0c0c0c, 0 0 8px rgba(62,227,122,.9);
  animation:cnDotPulse 1.8s ease-in-out infinite;
}
@keyframes cnDotPulse{ 0%,100%{ transform:scale(1); opacity:1; } 50%{ transform:scale(1.35); opacity:.7; } }
@media (prefers-reduced-motion:reduce){ .cn-walogo::after{ animation:none !important; } }
.cn-ico-svg{ flex-shrink:0; display:inline-block; vertical-align:middle; }

/* ---------------------------------------------------------------- REVEAL - */
.cn-page .reveal{ opacity:0; transform:translateY(20px);
  transition:opacity .6s var(--cn-ease), transform .6s var(--cn-ease); }
.cn-page .reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .cn-page .reveal{ opacity:1; transform:none; transition:none; } }

/* ---------------------------------------------------------------- SECTION HEADS */
.cn-sec-head{ max-width:760px; margin:0 auto 22px; text-align:center; }
.cn-sec-eyebrow{ display:inline-block; margin-bottom:8px; font-size:13px; font-weight:900;
  letter-spacing:2px; text-transform:uppercase; color:var(--cn-gold); }
.cn-sec-title{ font-size:clamp(25px,4vw,38px); font-weight:900; color:var(--cn-ink);
  letter-spacing:-.5px; position:relative; display:inline-block; }
.cn-sec-title::after{
  content:""; position:absolute; left:50%; bottom:-8px; width:0; height:3px; border-radius:3px;
  background:linear-gradient(90deg,var(--cn-gold),var(--cn-gold-soft));
  transform:translateX(-50%); transition:width .6s var(--cn-ease) .2s;
}
.cn-sec-head.is-visible .cn-sec-title::after{ width:64px; }
.cn-sec-text{ margin:10px 0 0; color:var(--cn-muted); font-weight:500; }

/* ---------------------------------------------------------------- BOTONES --- */
.cn-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:54px; padding:0 26px; border-radius:999px;
  font-weight:900; letter-spacing:.3px; font-size:15px;
  border:2px solid transparent; cursor:pointer; text-decoration:none;
  position:relative; overflow:hidden; isolation:isolate;
  transition:transform .4s var(--cn-ease), box-shadow .4s ease, border-color .4s ease, color .35s ease;
}
.cn-btn:active{ transform:scale(.97); }

.cn-btn--wa{
  color:var(--cn-gold-soft);
  background:linear-gradient(140deg,#151310 0%, #0c0c0c 100%);
  border-color:rgba(199,177,110,.55);
  box-shadow:0 12px 30px rgba(0,0,0,.30), inset 0 0 0 1px rgba(199,177,110,.10);
}
.cn-btn--wa::before{ content:""; position:absolute; inset:0; z-index:-1; opacity:0;
  background:linear-gradient(120deg, transparent 20%, rgba(199,177,110,.28) 50%, transparent 80%);
  transform:translateX(-120%); transition:opacity .35s ease; }
.cn-btn--wa:hover::before{ opacity:1; animation:cnShine 1.6s var(--cn-ease); }
@keyframes cnShine{ from{ transform:translateX(-120%);} to{ transform:translateX(120%);} }

.cn-btn--ghost{ color:#fff; background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.28); }

.cn-btn--gold{
  color:#1a150a;
  background:linear-gradient(135deg, #f7e7b5 0%, #C7B16E 45%, #b8a155 100%);
  border:1.5px solid rgba(180,160,100,.45);
  box-shadow:0 4px 14px rgba(199,177,110,.22), inset 0 1px 0 rgba(255,255,255,.30);
  letter-spacing:.4px;
}
.cn-btn--gold::before, .cn-btn--gold::after{ display:none; }

.cn-submit{
  min-height:56px; padding:0 30px; font-size:15.5px; font-weight:900;
  gap:16px; justify-content:center; border-radius:14px;
}
.cn-submit__text{ flex:0 1 auto; }
.cn-submit__arrow{
  display:grid; place-items:center; width:32px; height:32px; flex-shrink:0;
  border-radius:50%; background:rgba(255,255,255,.38);
  transition:transform .35s var(--cn-ease), background .35s ease;
}
.cn-submit__arrow svg{ color:#5a4518; display:block; }

@media (hover:hover){
  .cn-btn--wa:hover{ transform:translateY(-3px); border-color:var(--cn-gold);
    box-shadow:0 18px 40px rgba(199,177,110,.30); color:#fff; }
  .cn-btn--ghost:hover{ border-color:var(--cn-gold); color:var(--cn-gold-soft); }
  .cn-btn--gold:hover{ transform:translateY(-2px);
    box-shadow:0 8px 24px rgba(199,177,110,.36), inset 0 1px 0 rgba(255,255,255,.30); }
  .cn-submit:hover .cn-submit__arrow{ transform:translateX(3px); background:rgba(255,255,255,.55); }
}

/* ---------------------------------------------------------------- HERO (COMPACTO) */
.cn-hero{
  position:relative; padding:clamp(110px,12vh,140px) 0 clamp(30px,4vw,50px);
  min-height:auto; display:flex; align-items:center;
  background:linear-gradient(180deg, #0c0c0c 0%, #141414 60%, #161616 100%);
  color:#fff; overflow:hidden; isolation:isolate;
}
.cn-hero__inner{ width:100%; }
.cn-hero__base{ position:absolute; inset:0; z-index:0; background:#0c0c0c; }
.cn-hero__slides{ position:absolute; inset:0; z-index:0; background:#0c0c0c; }
.cn-hero__slide{
  position:absolute; inset:0; background-size:cover; background-position:center;
  background-color:#0c0c0c;
  opacity:0; transform:scale(1.06);
  transition:opacity 1.6s ease-in-out, transform 7s ease;
  will-change:opacity; backface-visibility:hidden; -webkit-backface-visibility:hidden;
}
.cn-hero__slide.is-active{ opacity:.58; transform:scale(1); }

.cn-hero__veil{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(8,8,8,.72) 0%, rgba(10,10,10,.52) 45%, rgba(12,12,12,.82) 100%),
    radial-gradient(800px 360px at 18% 10%, rgba(199,177,110,.18), transparent 60%);
}

.cn-hero__orbs{ position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden; }
.cn-orb{ position:absolute; border-radius:50%; opacity:.45; }
.cn-orb--1{ width:240px; height:240px; left:-60px; top:20%;
  background:radial-gradient(circle, rgba(199,177,110,.32), transparent 68%);
  animation:cnFloat 16s ease-in-out infinite; }
.cn-orb--2{ width:180px; height:180px; right:8%; top:8%;
  background:radial-gradient(circle, rgba(247,231,181,.22), transparent 68%);
  animation:cnFloat 13s ease-in-out infinite reverse; }
.cn-orb--3{ width:200px; height:200px; right:18%; bottom:-40px;
  background:radial-gradient(circle, rgba(199,177,110,.20), transparent 68%);
  animation:cnFloat 18s ease-in-out infinite; }
@keyframes cnFloat{ 0%,100%{ transform:translate3d(0,0,0); } 50%{ transform:translate3d(20px,-26px,0); } }
@media (prefers-reduced-motion:reduce){ .cn-orb{ animation:none; } }

.cn-hero__inner{ position:relative; z-index:2; }
.cn-eyebrow{ display:inline-block; margin-bottom:13px; padding:7px 16px; border-radius:999px;
  border:1px solid var(--cn-line); background:rgba(199,177,110,.12);
  font-size:12px; font-weight:900; letter-spacing:1.6px; text-transform:uppercase;
  color:var(--cn-gold-soft); }
.cn-hero__title{
  font-size:clamp(32px,6vw,56px); font-weight:900; letter-spacing:-1px;
  background:linear-gradient(92deg,#fff 30%, var(--cn-gold-soft) 90%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  text-shadow:0 2px 30px rgba(0,0,0,.4);
}
.cn-hero__sub{ margin:15px 0 0; max-width:660px; color:rgba(255,255,255,.86);
  font-weight:500; font-size:clamp(15px,1.6vw,18px); }
.cn-hero__cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:24px; }

/* ---------------------------------------------------------- MAPA + INFO ----- */
.cn-map-section{ padding:var(--cn-gap) 0; background:var(--cn-cream); }
.cn-mapwrap{ display:grid; grid-template-columns:1.55fr 1fr; gap:22px; align-items:stretch; }
.cn-map{
  position:relative; border-radius:24px; overflow:hidden; min-height:380px;
  border:1px solid rgba(199,177,110,.25);
  box-shadow:0 30px 70px rgba(16,16,16,.22); background:#0e0e0e;
}
.cn-map::after{ content:""; position:absolute; left:0; right:0; top:0; height:3px;
  background:linear-gradient(90deg, transparent, var(--cn-gold), transparent); opacity:.85;
  z-index:1; pointer-events:none; }
.cn-map iframe{ width:100%; height:100%; min-height:380px; display:block; border:0; filter:grayscale(.3); }
.cn-mapinfo{
  background:linear-gradient(150deg,#0d0d0d,#1b1913); color:#fff;
  border:1px solid rgba(199,177,110,.25); border-radius:24px;
  padding:24px 22px; box-shadow:var(--cn-shadow);
  display:flex; flex-direction:column;
}
.cn-mapinfo__title{ font-size:18px; font-weight:900; color:var(--cn-gold-soft);
  margin-bottom:20px; padding-bottom:14px; border-bottom:1px solid rgba(199,177,110,.20); }
.cn-mapinfo__list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; flex:1; }
.cn-mapinfo__item{
  display:flex; align-items:flex-start; gap:12px; padding:12px 14px; border-radius:14px;
  background:rgba(255,255,255,.04); border:1px solid rgba(199,177,110,.16);
  transition:transform .4s var(--cn-ease), border-color .35s ease, background .35s ease;
}
.cn-mapinfo__ico{ flex-shrink:0; margin-top:2px; }
.cn-mapinfo__item div{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.cn-mapinfo__item strong{ font-size:14px; color:#fff; }
.cn-mapinfo__item span{ font-size:12.5px; color:rgba(255,255,255,.65); }
.cn-mapinfo__link{ font-size:12.5px; color:var(--cn-gold-soft); text-decoration:none;
  font-weight:600; transition:color .2s ease; display:inline-block; }
.cn-mapinfo__link:hover{ color:#fff; text-decoration:underline; }
@media (hover:hover){ .cn-mapinfo__item:hover{ transform:translateX(3px);
  border-color:var(--cn-line); background:rgba(199,177,110,.08); } }

/* ---------------------------------------------------------- CARDS (grid + carrusel) */
.cn-cards-section{ padding:0 0 var(--cn-gap); background:linear-gradient(180deg,var(--cn-cream),var(--cn-cream-2)); }
.cn-cards-grid{ display:grid; gap:18px; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); }
.cn-card{
  position:relative; display:flex; flex-direction:column; gap:6px;
  padding:24px 22px; border-radius:var(--cn-radius);
  background:linear-gradient(150deg,#0d0d0d,#1b1913); color:#fff;
  border:1px solid rgba(199,177,110,.25);
  box-shadow:0 14px 36px rgba(0,0,0,.14);
  text-decoration:none; overflow:hidden;
  transition:transform .4s var(--cn-ease), box-shadow .4s ease, border-color .4s ease;
}
.cn-card::before{ content:""; position:absolute; top:-40%; right:-30%;
  width:220px; height:220px; border-radius:50%;
  background:radial-gradient(circle, rgba(199,177,110,.2), transparent 65%);
  pointer-events:none; opacity:0; transition:opacity .4s ease; }
.cn-card__ico{ font-size:30px; line-height:1; }
.cn-card__label{ color:var(--cn-gold); font-weight:900; font-size:13px;
  letter-spacing:.6px; text-transform:uppercase; }
.cn-card__value{ font-size:16px; font-weight:800; color:#fff; word-break:break-word; }
.cn-card__badge{ margin-top:6px; align-self:flex-start; font-size:11.5px; font-weight:800;
  padding:5px 12px; border-radius:999px; background:rgba(199,177,110,.14);
  color:var(--cn-gold-soft); border:1px solid rgba(199,177,110,.28); }
@media (hover:hover){
  .cn-card:hover{ transform:translateY(-5px); box-shadow:var(--cn-shadow-gold); border-color:var(--cn-gold); }
  .cn-card:hover::before{ opacity:1; }
}

/* ---------------------------------------------------------- CARRUSEL (móvil) */
.cn-carousel{ display:none; position:relative; padding:0 6px; touch-action:pan-y; }
.cn-car__viewport{ overflow:hidden; border-radius:var(--cn-radius); }
.cn-car__track{ display:flex; transition:transform .6s var(--cn-ease);
  backface-visibility:hidden; -webkit-backface-visibility:hidden; transform:translateZ(0); }
.cn-car__slide{ flex:0 0 100%; padding:4px; box-sizing:border-box; backface-visibility:hidden; }
.cn-card-carousel{
  position:relative; display:block; overflow:hidden;
  background:linear-gradient(150deg,#0d0d0d 0%, #1c1a14 100%);
  border:1px solid rgba(199,177,110,.30); border-radius:18px;
  padding:24px 22px 22px; text-decoration:none; color:#fff;
  box-shadow:0 18px 40px rgba(0,0,0,.32);
}
.cn-card-carousel::before{ content:""; position:absolute; top:-40%; right:-30%;
  width:240px; height:240px; border-radius:50%;
  background:radial-gradient(circle, rgba(199,177,110,.22), transparent 65%); pointer-events:none; }
.cn-card-carousel__shine{ position:absolute; top:0; left:-60%; width:50%; height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.10), transparent);
  transform:skewX(-18deg); animation:cnCardShine 5s ease-in-out infinite; pointer-events:none; }
@keyframes cnCardShine{ 0%,70%{ left:-60%; } 100%{ left:140%; } }
.cn-card-carousel__top{ display:flex; align-items:center; gap:12px; position:relative; }
.cn-card-carousel__ico{ flex-shrink:0; }
.cn-card-carousel__name{ font-size:20px; font-weight:900; color:#fff; }
.cn-card-carousel__value{ margin:10px 0 0; font-size:16px; font-weight:800; color:#fff; word-break:break-word; }
.cn-card-carousel__badge{ display:inline-flex; margin-top:12px; font-size:11.5px; font-weight:800;
  padding:6px 14px; border-radius:999px; background:rgba(199,177,110,.14);
  color:var(--cn-gold-soft); border:1px solid rgba(199,177,110,.28); }
.cn-car__viewport{ position:relative; }
.cn-car__dots{ height:9px; }
.cn-car__nav{
  position:absolute; top:50%; transform:translateY(calc(-50% - 12px)); z-index:3;
  width:48px; height:48px; border-radius:50%; cursor:pointer;
  border:2px solid rgba(199,177,110,.55);
  background:radial-gradient(circle at 30% 30%, #1e1b14, #0b0b0b);
  color:var(--cn-gold-soft); display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px rgba(0,0,0,.4), 0 0 0 0 rgba(199,177,110,.35);
  transition:border-color .2s ease, box-shadow .25s ease, color .2s ease;
  animation:cnNavPulse 2.6s ease-in-out infinite;
}
@keyframes cnNavPulse{ 0%,100%{ box-shadow:0 10px 26px rgba(0,0,0,.4), 0 0 0 0 rgba(199,177,110,.40);}
  60%{ box-shadow:0 10px 26px rgba(0,0,0,.4), 0 0 0 10px rgba(199,177,110,0);} }
.cn-car__nav:hover{ border-color:var(--cn-gold); color:#fff; }
.cn-car__nav--prev{ left:2px; } .cn-car__nav--next{ right:2px; }
.cn-car__dots{ display:flex; gap:8px; justify-content:center; margin-top:16px; }
.cn-car__dot{ width:9px; height:9px; border-radius:50%; cursor:pointer; padding:0; border:0;
  background:rgba(35,33,28,.28); transition:all .25s ease; }
.cn-car__dot.is-active{ width:26px; border-radius:5px; background:var(--cn-gold); }

/* ---------------------------------------------------------- FORM + ASIDE ---- */
.cn-form-section{ padding:var(--cn-gap) 0; background:linear-gradient(180deg,var(--cn-cream),var(--cn-cream-2)); }
.cn-form-grid{ display:grid; grid-template-columns:1fr 1.15fr; gap:26px; align-items:stretch; }
.cn-form-aside{
  position:relative; overflow:hidden; border-radius:24px;
  padding:clamp(26px,4vw,40px);
  background:radial-gradient(500px 220px at 90% 0%, rgba(199,177,110,.18), transparent 60%),
              linear-gradient(150deg,#0c0c0c,#191712);
  color:#fff; border:1px solid rgba(199,177,110,.22); box-shadow:var(--cn-shadow);
}
.cn-aside__title{ font-size:clamp(22px,3vw,30px); font-weight:900; margin:8px 0 12px;
  background:linear-gradient(92deg,#fff, var(--cn-gold-soft));
  -webkit-background-clip:text; background-clip:text; color:transparent; }
.cn-aside__text{ color:rgba(255,255,255,.78); margin:0 0 18px; }
.cn-aside__list{ list-style:none; padding:0; margin:0 0 22px; display:flex; flex-direction:column; gap:12px; }
.cn-aside__list li{ display:flex; align-items:center; gap:12px; font-weight:600; color:rgba(255,255,255,.9); }
.cn-aside__check{ width:26px; height:26px; flex-shrink:0; border-radius:50%;
  display:grid; place-items:center; font-weight:900; font-size:13px; color:#0e0e0e;
  background:linear-gradient(180deg,var(--cn-gold),var(--cn-gold-soft)); }
.cn-aside__socials{ display:flex; gap:12px; }
.cn-social{ width:46px; height:46px; border-radius:50%; display:grid; place-items:center;
  background:rgba(255,255,255,.05); border:1px solid rgba(199,177,110,.3);
  text-decoration:none;
  transition:transform .3s var(--cn-ease), background .3s ease, border-color .3s ease, box-shadow .3s ease; }
.cn-social svg{ display:block; }
@media (hover:hover){ .cn-social:hover{ transform:translateY(-3px);
  background:rgba(199,177,110,.16); border-color:var(--cn-gold); box-shadow:0 10px 24px rgba(199,177,110,.18); } }
.cn-form-wrap{ background:#fff; border:1px solid rgba(16,16,16,.08);
  border-radius:24px; padding:clamp(24px,4vw,38px); box-shadow:0 18px 50px rgba(16,16,16,.10); }
.cn-form{ display:flex; flex-direction:column; gap:16px; }
.cn-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.cn-field{ display:flex; flex-direction:column; gap:7px; }
.cn-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.cn-field label{ font-weight:800; font-size:13.5px; color:var(--cn-ink); letter-spacing:.2px; }
.cn-field label span{ color:#c0392b; }
.cn-field input, .cn-field textarea{
  width:100%; box-sizing:border-box; font:inherit; color:var(--cn-ink);
  padding:14px 16px; border-radius:13px; background:#faf7f0;
  border:1.5px solid rgba(16,16,16,.12);
  transition:border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
.cn-field textarea{ resize:vertical; min-height:130px; }
.cn-field input::placeholder, .cn-field textarea::placeholder{ color:rgba(35,33,28,.4); }
.cn-field input:focus, .cn-field textarea:focus{ outline:none;
  border-color:var(--cn-gold); background:#fff; box-shadow:0 0 0 4px rgba(199,177,110,.18); }
.cn-submit{ width:100%; margin-top:4px; }
.cn-form__note{ margin:2px 0 0; font-size:12.5px; color:var(--cn-muted); text-align:center; }
.cn-alert{ display:flex; align-items:flex-start; gap:12px; padding:16px 18px; border-radius:14px; margin-bottom:18px; }
.cn-alert__ico{ font-size:22px; line-height:1; flex-shrink:0; }
.cn-alert p{ margin:4px 0 0; font-size:14px; }
.cn-alert--ok{ background:rgba(37,211,102,.12); border:1px solid rgba(37,211,102,.4); color:#0f5132; }
.cn-alert--ok strong{ color:#0b3d24; }
.cn-alert--err{ background:rgba(192,57,43,.10); border:1px solid rgba(192,57,43,.35); color:#7a1e16; }

/* ============================================================
   NOSOTROS — ¿QUIÉNES SOMOS?
   ============================================================ */
.cn-quienes{ padding:var(--cn-gap) 0; background:var(--cn-cream); }
.cn-quienes__grid{ display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(28px,5vw,52px); align-items:center; }
.cn-quienes__text{ padding-right:8px; }
.cn-quienes__text .cn-sec-title{ display:block; margin-bottom:16px; }
.cn-quienes__p{ margin:0 0 14px; color:var(--cn-text); font-weight:500; font-size:15.5px; line-height:1.75; }
.cn-quienes__p:last-child{ margin-bottom:0; }
.cn-quienes__p strong{ color:var(--cn-gold-deep); }
.cn-quienes__img{ position:relative; border-radius:24px; overflow:hidden;
  box-shadow:var(--cn-shadow); border:4px solid rgba(199,177,110,.18);
  max-height:380px; display:flex; align-items:center; }
.cn-quienes__img img{ width:100%; height:100%; display:block; border-radius:20px; object-fit:cover; }
.cn-quienes__badge{ position:absolute; bottom:16px; right:16px; padding:10px 18px; border-radius:999px;
  background:var(--cn-ink); color:var(--cn-gold-soft); font-weight:900; font-size:14px;
  border:1px solid var(--cn-line); box-shadow:0 8px 20px rgba(0,0,0,.3); }

/* ============================================================
   NOSOTROS — CONTADORES ANIMADOS
   ============================================================ */
.cn-counters{ padding:var(--cn-gap) 0; background:linear-gradient(135deg,#0c0c0c,#191712);
  border-top:1px solid rgba(199,177,110,.12); border-bottom:1px solid rgba(199,177,110,.12); }
.cn-counters__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.cn-counter{ text-align:center; padding:clamp(22px,3.6vw,34px) 14px; border-radius:18px;
  background:rgba(255,255,255,.025); border:1px solid rgba(199,177,110,.16);
  transition:transform .4s var(--cn-ease), border-color .35s ease, background .35s ease; }
@media (hover:hover){ .cn-counter:hover{ transform:translateY(-3px); border-color:var(--cn-gold); background:rgba(199,177,110,.06); } }
.cn-counter__num{ display:block; font-size:clamp(42px,6vw,62px); font-weight:900;
  color:var(--cn-gold-soft); letter-spacing:-1px; line-height:1; }
.cn-counter__suf{ display:inline-block; font-size:clamp(20px,2.8vw,28px); font-weight:900;
  color:var(--cn-gold); margin-left:2px; }
.cn-counter__label{ display:block; margin-top:8px; font-size:13px; font-weight:700;
  color:rgba(255,255,255,.65); letter-spacing:.4px; text-transform:uppercase; }

/* ============================================================
   NOSOTROS — ¿POR QUÉ ELEGIRNOS?
   ============================================================ */
.cn-benefits{ padding:var(--cn-gap) 0; background:linear-gradient(180deg,var(--cn-cream),var(--cn-cream-2)); }
.cn-benefits__grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(280px,1fr)); gap:18px; }
.cn-benefit-card{
  position:relative; overflow:hidden; padding:clamp(22px,3vw,30px) clamp(18px,2.5vw,24px);
  border-radius:var(--cn-radius); background:#fff;
  border:1px solid rgba(16,16,16,.08);
  box-shadow:0 10px 30px rgba(16,16,16,.06);
  transition:transform .4s var(--cn-ease), box-shadow .4s ease, border-color .4s ease;
}
.cn-benefit-card::before{ content:""; position:absolute; top:-40%; right:-30%; width:200px; height:200px;
  border-radius:50%; background:radial-gradient(circle, rgba(199,177,110,.16), transparent 65%);
  pointer-events:none; opacity:0; transition:opacity .4s ease; }
.cn-benefit-card__ico{ display:block; margin-bottom:14px; }
.cn-benefit-card__ico svg{ display:block; }
.cn-benefit-card__title{ font-size:19px; font-weight:900; color:var(--cn-ink); margin-bottom:8px; }
.cn-benefit-card__text{ margin:0; color:var(--cn-muted); font-size:14px; line-height:1.65; }
@media (hover:hover){
  .cn-benefit-card:hover{ transform:translateY(-5px); box-shadow:var(--cn-shadow-gold); border-color:var(--cn-gold); }
  .cn-benefit-card:hover::before{ opacity:1; }
}

/* ============================================================
   NOSOTROS — MISIÓN + VISIÓN
   ============================================================ */
.cn-mv{ padding:0 0 var(--cn-gap); background:linear-gradient(180deg,var(--cn-cream-2),var(--cn-cream)); }
.cn-mv__grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.cn-mv-card{ position:relative; overflow:hidden; padding:clamp(26px,4vw,38px); border-radius:24px;
  background:linear-gradient(150deg,#0d0d0d,#1b1913); color:#fff;
  border:1px solid rgba(199,177,110,.25); box-shadow:var(--cn-shadow);
  transition:transform .4s var(--cn-ease), border-color .35s ease; }
.cn-mv-card::before{ content:""; position:absolute; top:-40%; right:-30%; width:240px; height:240px;
  border-radius:50%; background:radial-gradient(circle, rgba(199,177,110,.18), transparent 65%); pointer-events:none; }
.cn-mv-card__ico{ font-size:38px; display:block; margin-bottom:10px; }
.cn-mv-card__title{ font-size:24px; font-weight:900; margin-bottom:12px;
  background:linear-gradient(92deg,#fff,var(--cn-gold-soft)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.cn-mv-card__text{ margin:0; color:rgba(255,255,255,.78); font-size:15px; line-height:1.72; }
@media (hover:hover){ .cn-mv-card:hover{ transform:translateY(-4px); border-color:var(--cn-gold); } }

/* ============================================================
   NOSOTROS — VALORES
   ============================================================ */
.cn-valores{ padding:0 0 var(--cn-gap); background:linear-gradient(180deg,var(--cn-cream),var(--cn-cream-2)); }
.cn-valores__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.cn-valor{ text-align:center; padding:clamp(24px,3vw,32px) 14px; border-radius:18px; background:#fff;
  border:1px solid rgba(16,16,16,.08); box-shadow:0 8px 24px rgba(16,16,16,.05);
  transition:transform .4s var(--cn-ease), box-shadow .4s ease, border-color .4s ease; }
.cn-valor__ico{ display:block; font-size:36px; margin-bottom:10px; }
.cn-valor__txt{ font-weight:900; font-size:15px; color:var(--cn-ink); letter-spacing:.2px; }
@media (hover:hover){ .cn-valor:hover{ transform:translateY(-4px); box-shadow:var(--cn-shadow-gold); border-color:var(--cn-gold); } }

/* ---------------------------------------------------------- RESPONSIVE NOSOTROS */
@media (max-width:900px){
  .cn-quienes__grid{ grid-template-columns:1fr; }
  .cn-quienes__img{ order:-1; max-height:340px; }
  .cn-quienes__img img{ object-fit:cover; height:100%; }
  .cn-counters__grid{ grid-template-columns:repeat(2,1fr); }
  .cn-valores__grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:700px){
  .cn-mv__grid{ grid-template-columns:1fr; }
}
@media (max-width:600px){
  .cn-benefits__grid{ grid-template-columns:1fr; }
  .cn-counters__grid{ gap:10px; }
  .cn-counter{ padding:18px 10px; border-radius:14px; }
  .cn-counter__num{ font-size:clamp(34px,10vw,48px); }
  .cn-counter__suf{ font-size:clamp(16px,5vw,22px); }
  .cn-mv-card__ico{ font-size:30px; }
  .cn-mv-card__title{ font-size:20px; }
  .cn-valor__ico{ font-size:28px; }
  .cn-valor__txt{ font-size:13px; }
}

/* ---------------------------------------------------------- TOUCH EFFECTS --- */
@media (hover:none){
  .cn-card.is-touched{ transform:translateY(-5px); box-shadow:var(--cn-shadow-gold); border-color:var(--cn-gold); }
  .cn-card.is-touched::before{ opacity:1; }
  .cn-card-carousel.is-touched{ border-color:var(--cn-gold); box-shadow:0 24px 50px rgba(199,177,110,.28); }
  .cn-card-carousel.is-touched .cn-card-carousel__shine{ animation:cnCardShine 1.6s var(--cn-ease); }
  .cn-btn--wa.is-touched::before{ opacity:1; animation:cnShine 1.6s var(--cn-ease); }
  .cn-btn--wa.is-touched{ transform:translateY(-2px); border-color:var(--cn-gold); color:#fff;
    box-shadow:0 18px 40px rgba(199,177,110,.30); }
  .cn-btn--gold.is-touched{ transform:translateY(-2px);
    box-shadow:0 8px 24px rgba(199,177,110,.36), inset 0 1px 0 rgba(255,255,255,.30); }
  .cn-btn--ghost.is-touched{ border-color:var(--cn-gold); color:var(--cn-gold-soft); }
  .cn-social.is-touched{ transform:translateY(-3px); background:rgba(199,177,110,.16);
    border-color:var(--cn-gold); box-shadow:0 10px 24px rgba(199,177,110,.18); }
  .cn-mapinfo__item.is-touched{ transform:translateX(3px); border-color:var(--cn-line);
    background:rgba(199,177,110,.08); }
  .cn-submit.is-touched .cn-submit__arrow{ transform:translateX(3px); background:rgba(255,255,255,.55); }
  .cn-counter.is-touched{ transform:translateY(-3px); border-color:var(--cn-gold); background:rgba(199,177,110,.06); }
  .cn-benefit-card.is-touched{ transform:translateY(-5px); box-shadow:var(--cn-shadow-gold); border-color:var(--cn-gold); }
  .cn-benefit-card.is-touched::before{ opacity:1; }
  .cn-mv-card.is-touched{ transform:translateY(-4px); border-color:var(--cn-gold); }
  .cn-valor.is-touched{ transform:translateY(-4px); box-shadow:var(--cn-shadow-gold); border-color:var(--cn-gold); }
}

/* ---------------------------------------------------------- RESPONSIVE GENERAL */
@media (min-width:861px){
  .cn-cards-grid{ display:grid; }
  .cn-carousel{ display:none; }
}
@media (max-width:860px){
  .cn-cards-grid{ display:none; }
  .cn-carousel{ display:block; padding:0 8px; }
  .cn-carousel .cn-card-carousel{ margin:0 14px; }
  .cn-car__nav{ width:44px; height:44px; }
  .cn-car__nav--prev{ left:-2px; } .cn-car__nav--next{ right:-2px; }
}
@media (max-width:980px){
  .cn-mapwrap, .cn-form-grid{ grid-template-columns:1fr; }
}
@media (max-width:600px){
  .cn-page .container{ width:min(1200px, calc(100% - 28px)); }
  .cn-hero{ min-height:auto; padding-top:clamp(96px,14vh,120px); display:flex; align-items:center; }
  .cn-hero__inner{ width:100%; }
  .cn-hero__title{ font-size:clamp(34px,9vw,46px); }
  .cn-hero__sub{ font-size:15.5px; }
  .cn-btn{ width:100%; }
  .cn-hero__cta{ flex-direction:column; }
  .cn-field-row{ grid-template-columns:1fr; }
  .cn-map{ min-height:300px; border-radius:18px; }
  .cn-map iframe{ min-height:300px; }
  .cn-form-wrap{ padding:22px 18px; }
  .cn-car__dots{ margin-top:10px; }
  .cn-orb{ display:none; }
}

/* ---------------------------------------------------------- CTA FINAL -------- */
.cn-final{ padding:0 0 clamp(18px,2.6vw,28px); }
.cn-final__inner{
  position:relative; overflow:hidden; border-radius:26px;
  padding:clamp(28px,5vw,50px);
  background:radial-gradient(600px 240px at 85% 0%, rgba(199,177,110,.18), transparent 60%),
              linear-gradient(135deg,#0c0c0c,#191919);
  color:#fff; box-shadow:var(--cn-shadow);
  border:1px solid rgba(199,177,110,.22); text-align:center;
}
.cn-final__inner::before{ content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image:repeating-linear-gradient(60deg, rgba(199,177,110,.05) 0 2px, transparent 2px 24px);
  -webkit-mask-image:radial-gradient(60% 60% at 50% 0%, #000, transparent);
  mask-image:radial-gradient(60% 60% at 50% 0%, #000, transparent); }
.cn-final__shine{ position:absolute; top:0; left:-40%; width:40%; height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.07), transparent);
  transform:skewX(-18deg); animation:cnCardShine 7s ease-in-out infinite; pointer-events:none; }
.cn-final__text{ position:relative; }
.cn-final__title{ font-size:clamp(26px,4.4vw,40px); font-weight:900; margin:6px 0 12px;
  background:linear-gradient(92deg,#fff, var(--cn-gold-soft));
  -webkit-background-clip:text; background-clip:text; color:transparent; }
.cn-final__text p{ margin:0 auto; max-width:560px; color:rgba(255,255,255,.80); }
.cn-final__actions{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin:22px 0 0; position:relative; }
.cn-final__nota{ margin:16px 0 0; color:rgba(255,255,255,.62); font-size:13.5px; position:relative; }
@media (max-width:600px){
  .cn-final__actions .cn-btn{ width:100%; }
  .cn-final__inner{ padding:24px 20px; }
  .cn-final__shine{ display:none; }
}
