/* GIS · Golden Integral Services
   Sistema visual heredado del sitio original: navy #081b33, dorado #d4a741, crema #f8f6f0. */

:root{
  --navy:#081b33;
  --navy2:#0e2a48;
  --navy3:#122f4f;
  --gold:#d4a741;
  --gold-dark:#a97f28;
  --cream:#f8f6f0;
  --white:#ffffff;
  --ink:#14243a;
  --muted:#536174;
  --muted-light:#8b98a8;
  --line:#d8dfe7;
  --radius:4px;
  --wrap:1160px;
  --pad:clamp(20px,5vw,48px);
}

*,*::before,*::after{box-sizing:border-box;}

html{scroll-behavior:smooth;scroll-padding-top:88px;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important;transition-duration:.001ms !important;}
}

body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:Montserrat,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;height:auto;display:block;}
a{color:inherit;}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px;}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-inline:var(--pad);}
.skip{position:absolute;left:-9999px;}
.skip:focus{left:16px;top:16px;z-index:100;background:var(--gold);color:var(--navy);padding:10px 16px;font-weight:600;}

/* ---------------- tipografía ---------------- */
h1,h2,h3,h4{margin:0;line-height:1.12;letter-spacing:-.015em;text-wrap:balance;font-weight:700;}
h1{font-size:clamp(2.1rem,5.4vw,3.6rem);}
h2{font-size:clamp(1.7rem,3.8vw,2.6rem);}
h3{font-size:1.06rem;letter-spacing:-.005em;}
p{margin:0;}
em{font-style:normal;color:var(--gold);}
strong{font-weight:700;}

.kicker{
  font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold);margin:0;
}
.lede{color:var(--muted);max-width:62ch;font-size:1.06rem;}
.section-head{display:flex;flex-direction:column;gap:14px;margin-bottom:clamp(32px,5vw,56px);}

/* ---------------- botones ---------------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.94rem;font-weight:600;text-decoration:none;
  padding:15px 26px;border-radius:var(--radius);border:1px solid transparent;
  transition:transform .18s ease,background-color .18s ease,color .18s ease,border-color .18s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-gold{background:var(--gold);color:var(--navy);}
.btn-gold:hover{background:#e2b855;}
.btn-ghost{border-color:rgba(255,255,255,.35);color:var(--white);}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold);}
.btn-outline{border-color:var(--line);color:var(--ink);background:var(--white);}
.btn-outline:hover{border-color:var(--gold);color:var(--gold-dark);}
.btn .arrow{transition:transform .18s ease;}
.btn:hover .arrow{transform:translateX(3px);}

.text-link{
  display:inline-flex;align-items:center;gap:8px;
  font-weight:600;font-size:.94rem;text-decoration:none;color:var(--gold);
  border-bottom:1px solid transparent;
}
.text-link:hover{border-bottom-color:currentColor;}

/* ---------------- cabecera ---------------- */
.site-header{
  position:sticky;top:0;z-index:40;
  background:rgba(8,27,51,.96);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid rgba(255,255,255,.09);
}
.header-inner{display:flex;align-items:center;gap:20px;min-height:72px;}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;margin-right:auto;}
.brand img{width:38px;height:38px;}
.brand-text{display:flex;flex-direction:column;line-height:1.1;}
.brand-text b{color:var(--white);font-size:1.16rem;font-weight:700;letter-spacing:.02em;}
.brand-text span{color:var(--gold);font-size:8.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;}

.site-nav{display:flex;align-items:center;gap:28px;}
.site-nav a{
  color:rgba(255,255,255,.82);text-decoration:none;font-size:.88rem;font-weight:500;
  padding:6px 0;border-bottom:1px solid transparent;
}
.site-nav a:hover{color:var(--white);border-bottom-color:var(--gold);}

.lang{display:flex;align-items:center;gap:2px;}
.lang a{
  color:rgba(255,255,255,.55);text-decoration:none;
  font-size:11px;font-weight:600;letter-spacing:.08em;padding:5px 8px;border-radius:3px;
}
.lang a:hover{color:var(--white);}
.lang a[aria-current="true"]{color:var(--navy);background:var(--gold);}

.nav-cta{
  color:var(--gold);border:1px solid rgba(212,167,65,.5);border-radius:var(--radius);
  padding:10px 18px;text-decoration:none;font-size:.86rem;font-weight:600;white-space:nowrap;
}
.nav-cta:hover{background:var(--gold);color:var(--navy);}

@media (max-width:520px){
  .brand-text span{display:none;}
  .brand img{width:34px;height:34px;}
  .lang a{padding:5px 6px;}
}

.menu-toggle{display:none;background:none;border:1px solid rgba(255,255,255,.25);border-radius:3px;color:var(--white);padding:8px 12px;font-size:.8rem;font-weight:600;cursor:pointer;}

@media (max-width:900px){
  .site-nav,.nav-cta{display:none;}
  .menu-toggle{display:block;}
  .site-header.open .site-nav{
    display:flex;flex-direction:column;align-items:flex-start;gap:4px;
    position:absolute;left:0;right:0;top:100%;
    background:var(--navy);padding:18px var(--pad) 26px;border-bottom:1px solid rgba(255,255,255,.1);
  }
  .site-header.open .site-nav a{width:100%;padding:11px 0;}
}

/* ---------------- hero ---------------- */
.hero{
  position:relative;
  background:
    radial-gradient(1100px 460px at 78% -10%,rgba(212,167,65,.16),transparent 62%),
    linear-gradient(180deg,var(--navy) 0%,var(--navy2) 100%);
  color:var(--white);
  padding:clamp(70px,10vw,120px) 0 clamp(56px,7vw,84px);
  overflow:hidden;
}
/* Fotografia de sala tecnica, difuminada bajo el degradado.
   El velo oscuro garantiza el contraste del texto en cualquier pantalla. */
.hero::before{
  content:"";
  position:absolute;inset:0;
  background:
    linear-gradient(100deg,rgba(8,27,51,.97) 0%,rgba(8,27,51,.90) 42%,rgba(8,27,51,.68) 100%),
    url("/assets/img/fondo-hero.webp") center right/cover no-repeat;
  z-index:0;
}
.hero > .wrap{position:relative;z-index:1;}
@media (max-width:900px){
  .hero::before{
    background:
      linear-gradient(180deg,rgba(8,27,51,.94) 0%,rgba(8,27,51,.88) 55%,rgba(8,27,51,.96) 100%),
      url("/assets/img/fondo-hero-movil.webp") center/cover no-repeat;
  }
}
.hero-grid{display:grid;gap:clamp(36px,6vw,72px);grid-template-columns:1fr;align-items:center;}
@media (min-width:980px){.hero-grid{grid-template-columns:1.35fr .85fr;}}
.hero h1{margin:18px 0 22px;}
.hero-copy{color:rgba(255,255,255,.78);max-width:56ch;font-size:1.1rem;}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}
.hero-meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;
  margin-top:38px;padding-top:26px;border-top:1px solid rgba(255,255,255,.14);
  font-size:.84rem;color:rgba(255,255,255,.6);letter-spacing:.04em;
}
.hero-meta b{color:var(--white);font-weight:600;}
.hero-meta .dot{width:4px;height:4px;border-radius:50%;background:var(--gold);}

.stat-card{
  /* Fondo propio y desenfoque: la tarjeta se apoya sobre la fotografia
     del hero, y sin el la letra pequena pierde contraste. */
  background:rgba(6,22,42,.62);
  backdrop-filter:blur(6px) saturate(120%);
  -webkit-backdrop-filter:blur(6px) saturate(120%);
  border:1px solid rgba(212,167,65,.34);
  border-radius:var(--radius);
  padding:clamp(28px,4vw,40px);
}
.stat-card b{display:block;font-size:clamp(3rem,7vw,4.4rem);font-weight:700;color:var(--gold);line-height:1;letter-spacing:-.03em;}
.stat-card p{margin-top:14px;color:rgba(255,255,255,.74);font-size:.95rem;line-height:1.55;}
.stat-note{margin-top:18px;font-size:11px;color:rgba(255,255,255,.58);line-height:1.5;}

/* ---------------- secciones ---------------- */
section{padding:clamp(64px,8vw,104px) 0;}
.section-cream{background:var(--cream);}
.section-white{background:var(--white);}
.section-navy{background:var(--navy);color:var(--white);}
.section-navy.con-fondo{position:relative;overflow:hidden;}
.section-navy.con-fondo::before{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(8,27,51,.96) 0%,rgba(8,27,51,.90) 50%,rgba(8,27,51,.97) 100%),
    url("/assets/img/fondo-metodo.webp") center/cover no-repeat;
  z-index:0;
}
.section-navy.con-fondo > .wrap{position:relative;z-index:1;}
.section-navy .lede{color:rgba(255,255,255,.72);}
.section-navy .kicker{color:var(--gold);}

.grid{display:grid;gap:20px;}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}

.card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(24px,3vw,32px);display:flex;flex-direction:column;gap:12px;
}
.section-white .card{background:var(--cream);}
.card h3{color:var(--navy);}
.card p{color:var(--muted);font-size:.95rem;}
.card .num{
  font-size:11px;font-weight:700;letter-spacing:.16em;color:var(--gold);
  font-variant-numeric:tabular-nums;
}
.card-icon{
  width:42px;height:42px;border-radius:50%;
  display:grid;place-items:center;
  background:rgba(212,167,65,.14);color:var(--gold-dark);
  font-size:1.15rem;font-weight:700;
}

.statement{
  margin-top:clamp(34px,5vw,52px);
  padding:clamp(26px,4vw,36px) clamp(24px,4vw,40px);
  border-left:3px solid var(--gold);
  background:rgba(212,167,65,.08);
  font-size:clamp(1.05rem,2.1vw,1.3rem);
  line-height:1.5;
  color:var(--ink);
  max-width:70ch;
}
.section-navy .statement{background:rgba(255,255,255,.05);color:rgba(255,255,255,.9);}

/* valores desplegables */
.value details{border-top:1px solid var(--line);margin-top:auto;padding-top:12px;}
.value summary{
  cursor:pointer;list-style:none;font-size:.86rem;font-weight:600;color:var(--gold-dark);
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.value summary::-webkit-details-marker{display:none;}
.value summary::after{content:"+";font-size:1.1rem;line-height:1;}
.value details[open] summary::after{content:"–";}
.value details p{margin-top:12px;}

/* ---------------- servicios ---------------- */
.service{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(26px,3vw,34px);display:flex;flex-direction:column;gap:16px;
  border-top:3px solid var(--gold);
}
.service h3{font-size:1.22rem;color:var(--navy);}
.service .price{
  font-size:1.02rem;font-weight:700;color:var(--gold-dark);
  letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin-top:-6px;
}
.service > p:not(.price){color:var(--muted);font-size:.96rem;}
.prices-note{
  margin-top:22px;font-size:.85rem;color:var(--muted);max-width:70ch;
}
.service ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
.service li{
  position:relative;padding-left:22px;font-size:.92rem;color:var(--ink);
}
.service li::before{
  content:"";position:absolute;left:0;top:.55em;
  width:8px;height:8px;border-radius:50%;
  border:2px solid var(--gold);
}
.service details{border-top:1px solid var(--line);padding-top:14px;}
.service summary{
  cursor:pointer;list-style:none;font-size:.86rem;font-weight:600;color:var(--gold-dark);
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.service summary::-webkit-details-marker{display:none;}
.service summary::after{content:"+";font-size:1.1rem;line-height:1;}
.service details[open] summary::after{content:"–";}
.service details p{margin-top:12px;color:var(--muted);font-size:.92rem;}
.service details{margin-top:auto;}
.service .service-cta{margin-top:0;}

/* ---------------- método ---------------- */
.steps{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));counter-reset:step;}
.step{
  background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius);padding:clamp(26px,3vw,34px);
  display:flex;flex-direction:column;gap:12px;
}
.step .n{
  width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  border:1px solid var(--gold);color:var(--gold);font-weight:700;
  font-variant-numeric:tabular-nums;
}
.step h3{color:var(--white);}
.step p{color:rgba(255,255,255,.7);font-size:.94rem;}

/* ---------------- resultados ---------------- */
.result-grid{display:grid;gap:clamp(30px,5vw,60px);grid-template-columns:1fr;align-items:start;}
@media (min-width:900px){.result-grid{grid-template-columns:.9fr 1.1fr;}}
.big-stat{font-size:clamp(4rem,11vw,7rem);font-weight:700;color:var(--gold);line-height:.92;letter-spacing:-.04em;}
.result-list{display:flex;flex-direction:column;gap:22px;margin:0;padding:0;list-style:none;}
.result-list li{display:flex;gap:18px;align-items:flex-start;}
.result-list .n{color:var(--gold);font-size:12px;font-weight:700;letter-spacing:.14em;padding-top:5px;font-variant-numeric:tabular-nums;}
.result-list h3{color:var(--navy);margin-bottom:4px;}
.result-list p{color:var(--muted);font-size:.94rem;}

/* ---------------- bloque con foto ---------------- */
.split{display:grid;gap:clamp(30px,5vw,60px);grid-template-columns:1fr;align-items:center;}
@media (min-width:900px){.split{grid-template-columns:1fr 1fr;}}
.split figure{margin:0;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);}
.split img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
.split figcaption{
  font-size:.78rem;color:var(--muted);padding:10px 14px;background:var(--white);
  border-top:1px solid var(--line);
}

/* ---------------- fundador ---------------- */
.founder{
  display:flex;align-items:center;gap:18px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.13);
  border-radius:var(--radius);padding:20px 24px;margin-top:26px;
}
.founder .avatar{
  width:56px;height:56px;border-radius:50%;flex:0 0 auto;
  background:var(--gold);color:var(--navy);
  display:grid;place-items:center;font-weight:700;font-size:1.1rem;letter-spacing:.02em;
}
.founder b{display:block;color:var(--white);font-size:1rem;}
.founder span{color:rgba(255,255,255,.62);font-size:.84rem;}

/* ---------------- contacto ---------------- */
.contact-grid{display:grid;gap:clamp(30px,5vw,56px);grid-template-columns:1fr;}
@media (min-width:900px){.contact-grid{grid-template-columns:.9fr 1.1fr;}}
.contact-lines{display:flex;flex-direction:column;gap:14px;margin-top:28px;}
.contact-line{
  display:flex;align-items:center;gap:14px;text-decoration:none;
  padding:14px 18px;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);
  background:rgba(255,255,255,.04);
}
.contact-line:hover{border-color:var(--gold);}
.contact-line.wa{background:var(--gold);border-color:var(--gold);justify-content:center;}
.contact-line.wa b{color:var(--navy);}
.contact-line.wa:hover{background:#e2b855;}
.contact-line span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);display:block;}
.contact-line b{color:var(--white);font-weight:600;font-size:1rem;}
.hours{margin-top:18px;font-size:.85rem;color:rgba(255,255,255,.55);}

.contact-form{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(26px,4vw,38px);display:grid;gap:18px;
}
.field{display:flex;flex-direction:column;gap:7px;}
.field label{font-size:.82rem;font-weight:600;color:var(--ink);letter-spacing:.02em;}
.field input,.field textarea{
  font-family:inherit;font-size:.95rem;color:var(--ink);
  border:1px solid var(--line);border-radius:var(--radius);
  padding:13px 15px;background:var(--cream);width:100%;
}
.field input:focus,.field textarea:focus{border-color:var(--gold);outline:none;background:var(--white);}
.field textarea{resize:vertical;min-height:130px;}
.consent{display:flex;align-items:flex-start;gap:11px;font-size:.85rem;color:var(--muted);line-height:1.5;}
.consent input{margin-top:3px;flex:0 0 auto;width:16px;height:16px;accent-color:var(--gold-dark);}
.consent a{color:var(--gold-dark);}
.honeypot{position:absolute !important;left:-9999px !important;opacity:0;height:0;width:0;}
.form-note{font-size:.85rem;color:var(--muted);}
.form-error{color:var(--crit,#98241f);border-left:3px solid currentColor;padding-left:12px;}
.form-note a{color:var(--gold-dark);}

/* ---------------- pie ---------------- */
.site-footer{background:var(--navy);color:rgba(255,255,255,.62);padding:clamp(46px,6vw,64px) 0 34px;border-top:1px solid rgba(255,255,255,.09);}
.footer-top{display:flex;flex-wrap:wrap;gap:28px;justify-content:space-between;align-items:flex-start;}
.footer-brand{display:flex;align-items:center;gap:12px;}
.footer-brand img{width:44px;height:44px;}
.footer-claim{color:rgba(255,255,255,.72);font-size:.92rem;max-width:34ch;margin-top:10px;}
.footer-links{display:flex;flex-wrap:wrap;gap:10px 26px;font-size:.86rem;}
.footer-links a{text-decoration:none;color:rgba(255,255,255,.68);}
.footer-links a:hover{color:var(--gold);}
.footer-bottom{
  margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);
  display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;
  font-size:.8rem;color:rgba(255,255,255,.45);
}

/* ---------------- páginas de texto ---------------- */
.page-hero{background:var(--navy);color:var(--white);padding:clamp(74px,9vw,110px) 0 clamp(40px,5vw,56px);}
.page-hero h1{margin-top:16px;}
.prose{padding:clamp(48px,6vw,76px) 0;}
.prose .wrap{max-width:760px;}
.prose h2{font-size:1.35rem;color:var(--navy);margin:44px 0 12px;}
.prose h2:first-of-type{margin-top:0;}
.prose h3{font-size:1.02rem;color:var(--navy);margin:26px 0 8px;}
.prose p,.prose li{color:var(--muted);font-size:.98rem;}
.prose p{margin-bottom:14px;}
.prose ul{padding-left:20px;display:flex;flex-direction:column;gap:8px;margin:0 0 18px;}
.prose table{width:100%;border-collapse:collapse;font-size:.92rem;margin-bottom:18px;}
.prose th,.prose td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--muted);}
.prose th{color:var(--ink);font-weight:600;}
.prose-scroll{overflow-x:auto;}
.todo{
  background:#fff6e2;border:1px solid var(--gold);border-radius:var(--radius);
  padding:18px 22px;margin-bottom:26px;color:#6b4f11;font-size:.92rem;
}
.todo b{display:block;margin-bottom:5px;color:#5a4109;}

/* página de gracias */
.thanks{min-height:62vh;display:grid;place-items:center;text-align:center;padding:clamp(70px,10vw,120px) 0;}
.thanks .wrap{max-width:640px;display:flex;flex-direction:column;align-items:center;gap:20px;}
.thanks .check{
  width:70px;height:70px;border-radius:50%;display:grid;place-items:center;
  background:rgba(212,167,65,.16);color:var(--gold-dark);font-size:2rem;
}
.thanks p{color:var(--muted);}

/* Revelado suave al hacer scroll.
   Se aplica solo cuando hay JavaScript: sin el, el contenido se ve siempre. */
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease;}
.js .reveal.visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;}}
