:root{
    --bg:#FAFAF8;
    --bg-alt:#F2F1EC;
    --white:#FFFFFF;
    --ink:#232320;
    --ink-soft:#767268;
    --line:rgba(35,35,32,.10);
    --clay:#C1633E;
    --clay-soft:#E8CBBB;
    --beige:#A9906D;
    --beige-soft:#EFE6D3;
    --action:#5E564F;
    --action-soft:#E4E0DA;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;background:var(--bg);color:var(--ink);
    font-family:'Montserrat',sans-serif;font-weight:400;
    font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:'Montserrat',sans-serif;font-weight:600;
    line-height:1.15;margin:0 0 .5em;letter-spacing:-0.01em;color:var(--ink);
  }
  p{margin:0 0 1em;color:var(--ink-soft);font-weight:400;}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  .eyebrow{
    font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
    color:var(--clay);margin-bottom:14px;display:block;
  }
  .wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
  section{scroll-margin-top:84px;}

  /* ---- soft dot divider (signature, subtle) ---- */
  .dots{display:flex;gap:6px;margin-bottom:20px;}
  .dots span{width:5px;height:5px;border-radius:50%;background:var(--line);}
  .dots span:first-child{background:var(--clay);}
  .iso-mark{width:26px;height:26px;margin-bottom:18px;opacity:.9;}

  /* ---- Header ---- */
  header{
    position:sticky;top:0;z-index:50;background:rgba(250,250,248,.9);
    backdrop-filter:blur(8px);border-bottom:1px solid var(--line);
  }
  .nav{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;max-width:1180px;margin:0 auto;}
  .logo{font-weight:700;font-size:1.05rem;letter-spacing:-.01em;display:flex;align-items:center;gap:6px;}
  .logo .dot{color:var(--clay);}
  .logo-link{display:flex;align-items:center;}
  .iso-logo{height:36px;width:36px;display:block;}
  .foot-logo-img{height:34px;width:auto;margin-bottom:10px;}
  .navlinks{display:none;gap:36px;font-size:.88rem;font-weight:500;}
  .navlinks a{padding:4px 0;position:relative;}
  .navlinks a.active{color:var(--clay);}

  /* ---- Floating app-style bottom nav ---- */
  .floating-nav{
    position:fixed;left:50%;bottom:18px;transform:translateX(-50%);
    z-index:60;display:flex;gap:6px;
    background:rgba(255,253,249,.88);backdrop-filter:blur(10px);
    border:1px solid var(--line);border-radius:100px;
    padding:8px 10px;box-shadow:0 10px 30px rgba(35,32,28,.14);
  }
  .floating-nav a{
    display:flex;flex-direction:column;align-items:center;gap:3px;
    padding:7px 14px;border-radius:100px;color:var(--ink-soft);
    font-size:.62rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
    transition:background .2s ease, color .2s ease;
  }
  .floating-nav a svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7;}
  .floating-nav a.active{background:var(--action);color:#FFFFFF;}
  body{padding-bottom:88px;}

  /* ---- Buttons (soft, pill) ---- */
  .btn{
    display:inline-flex;align-items:center;gap:8px;
    font-size:.86rem;font-weight:600;
    background:var(--action);color:var(--white);
    padding:14px 26px;border-radius:100px;border:1px solid var(--action);
    transition:background .2s ease, color .2s ease, box-shadow .2s ease;
  }
  .btn:hover{background:var(--white);color:var(--action);box-shadow:0 4px 16px rgba(94,86,79,.18);}
  .btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);}
  .btn.ghost:hover{border-color:var(--action);color:var(--action);background:transparent;box-shadow:none;}
  .btn .arrow{transition:transform .2s ease;}
  .btn:hover .arrow{transform:translateX(3px);}

  /* ---- Hero ---- */
  .hero{padding:44px 0 56px;}
  .hero h1{font-size:2.15rem;max-width:15ch;}
  .hero h1 .accent{color:var(--clay);}
  .hero .sub{font-size:1rem;color:var(--ink-soft);margin-bottom:28px;max-width:32ch;font-weight:400;}
  .hero-media{margin-top:36px;border-radius:20px;overflow:hidden;aspect-ratio:4/5;position:relative;
    background:linear-gradient(160deg,var(--clay-soft),var(--beige-soft));}
  .hero-media::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(35,32,28,.12),rgba(35,32,28,.32) 45%,rgba(35,32,28,.12));
    pointer-events:none;
  }
  .hero-media .placeholder{
    position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:24px;
  }
  .hero-media .placeholder .eyebrow{margin-bottom:2px;}
  .hero-media .placeholder .note{font-size:.82rem;color:var(--ink-soft);max-width:20ch;font-weight:400;}
  .hero-media .mark{
    position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    text-align:center;padding:0 24px;
    font-family:'Montserrat',sans-serif;font-weight:300;
    font-size:clamp(2.4rem, 12vw, 3.4rem);letter-spacing:.01em;line-height:1;
    color:#FFFFFF;text-shadow:0 4px 24px rgba(0,0,0,.32);
  }

  /* ---- Intro ---- */
  .intro{padding-top:60px;padding-bottom:8px;text-align:left;}
  .intro h2{font-size:1.6rem;max-width:16ch;}
  .intro .lead{font-size:1rem;max-width:40ch;}

  /* ---- Ámbitos: image-forward cards, horizontal scroll on mobile ---- */
  .ambitos-wrap{padding:32px 0 64px;}
  .ambitos{display:flex;gap:16px;overflow-x:auto;padding:4px 24px 12px;scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;}
  .ambitos::-webkit-scrollbar{display:none;}
  .ambito-card{
    scroll-snap-align:start;flex:0 0 78%;background:var(--white);border-radius:18px;overflow:hidden;border:1px solid var(--line);
  }
  .ambito-media{aspect-ratio:4/3;overflow:hidden;}
  .ambito-media img{width:100%;height:100%;object-fit:cover;}
  .img-slot{
    width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
    background:linear-gradient(160deg,var(--action-soft),var(--bg-alt));text-align:center;padding:16px;
  }
  .img-slot .fname{font-family:monospace;font-size:.72rem;font-weight:600;color:var(--action);
    background:var(--white);padding:4px 10px;border-radius:6px;border:1px solid var(--line);}
  .img-slot .fspec{font-size:.7rem;color:var(--ink-soft);}
  .ambito-body{padding:20px;}
  .ambito-body .eyebrow{margin-bottom:8px;}
  .ambito-body h3{font-size:1.1rem;margin-bottom:6px;}
  .ambito-body p{font-size:.88rem;margin:0;}

  /* ---- Feature (imagen + texto corto) ---- */
  .feature{padding:48px 0;}
  .feature-media{border-radius:20px;overflow:hidden;aspect-ratio:1/1;}
  .feature-media img{width:100%;height:100%;object-fit:cover;}
  .feature-text{margin-top:28px;}
  .feature-text h2{font-size:1.45rem;max-width:16ch;}
  .feature-text p{font-size:.95rem;max-width:38ch;}

  /* ---- Servicios: compact cards, icon-first ---- */
  .servicios{padding-top:64px;padding-bottom:64px;}
  .servicios-head{max-width:48ch;margin-bottom:40px;}
  .servicios-head h2{font-size:1.7rem;}
  .servicio-grid{display:grid;gap:14px;}
  .servicio{
    background:var(--white);border:1px solid var(--line);border-radius:18px;padding:22px;
    display:flex;gap:16px;align-items:flex-start;
  }
  .servicio .icon{
    width:42px;height:42px;flex-shrink:0;border-radius:12px;background:var(--action);
    display:flex;align-items:center;justify-content:center;
  }
  .servicio .icon svg{width:20px;height:20px;stroke:var(--white);fill:none;stroke-width:1.6;}
  .servicio-body h3{font-size:1.02rem;margin-bottom:5px;}
  .servicio-body p{font-size:.86rem;margin:0;}

  /* ---- CTA banda (suave, no negro) ---- */
  .cta-band{
    position:relative;padding:88px 0;text-align:center;
    background:linear-gradient(180deg,rgba(35,32,28,.55),rgba(35,32,28,.72)),
      url('images/Fondo_CTA.jpg');
    background-size:cover;background-position:center 30%;
  }
  .cta-band .eyebrow{color:#F0E6D8;}
  .cta-band h2{font-size:1.55rem;max-width:18ch;margin:10px auto 26px;color:#FFFFFF;}
  .cta-band .btn{background:#FFFFFF;color:var(--action);border-color:#FFFFFF;}
  .cta-band .btn:hover{background:transparent;color:#FFFFFF;box-shadow:none;}

  /* ---- Footer ---- */
  footer{padding:52px 0 28px;background:var(--white);border-top:1px solid var(--line);}
  .foot-grid{display:grid;gap:32px;margin-bottom:36px;}
  .foot-col .eyebrow{margin-bottom:12px;color:var(--ink-soft);}
  .foot-col a{display:block;font-size:.88rem;padding:6px 0;color:var(--ink-soft);}
  .foot-bottom{display:flex;flex-direction:column;gap:16px;padding-top:22px;border-top:1px solid var(--line);
    font-size:.78rem;color:var(--ink-soft);}
  .foot-social{display:flex;gap:10px;}
  .foot-social a{width:32px;height:32px;border-radius:50%;background:var(--bg-alt);
    display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:600;}

  /* ---- Tablet / Desktop ---- */
  @media (min-width:768px){
    .navlinks{display:flex;}
    .floating-nav{display:none;}
    body{padding-bottom:0;}
    .hero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
    .hero h1{font-size:3rem;}
    .hero-media{margin-top:0;}
    .hero-media .mark{font-size:clamp(3rem, 6vw, 4.6rem);}
    .ambitos{overflow-x:visible;padding:4px 24px;display:grid;grid-template-columns:repeat(3,1fr);}
    .ambito-card{flex:auto;}
    .feature .wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
    .feature-text{margin-top:0;}
    .feature.reverse .wrap>.feature-media{order:2;}
    .servicio-grid{grid-template-columns:1fr 1fr;}
    .foot-grid{grid-template-columns:1.4fr 1fr 1fr 1fr;}
    .foot-bottom{flex-direction:row;justify-content:space-between;align-items:center;}
  }
  @media (min-width:1024px){
    .hero h1{font-size:3.4rem;}
  }

  /* ---- Interior pages: banner ---- */
  .page-banner{position:relative;aspect-ratio:3/2;overflow:hidden;}
  .page-banner img{width:100%;height:100%;object-fit:cover;}
  .page-banner .scrim{
    position:absolute;inset:0;
    background:linear-gradient(0deg,rgba(35,32,28,.62),rgba(35,32,28,0) 55%);
  }
  .page-banner .banner-copy{position:absolute;left:0;right:0;bottom:0;padding:24px;color:#FFFFFF;}
  .page-banner .banner-copy .eyebrow{color:#F0E6D8;margin-bottom:8px;}
  .page-banner .banner-copy h1{color:#FFFFFF;font-size:1.9rem;max-width:16ch;margin:0;}

  .page-body{padding-top:44px;padding-bottom:44px;}
  .page-body .lead{font-size:1.02rem;max-width:52ch;margin-bottom:8px;}

  .square-media{border-radius:20px;overflow:hidden;aspect-ratio:1/1;margin:32px 0;}
  .square-media img{width:100%;height:100%;object-fit:cover;}

  .pilares{display:grid;gap:14px;padding:8px 0 40px;}
  .pilar{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:22px;
    display:flex;gap:16px;align-items:flex-start;}
  .pilar .icon{width:42px;height:42px;flex-shrink:0;border-radius:12px;background:var(--action);
    display:flex;align-items:center;justify-content:center;}
  .pilar .icon svg{width:20px;height:20px;stroke:var(--white);fill:none;stroke-width:1.6;}
  .pilar-body h3{font-size:1.02rem;margin-bottom:6px;}
  .pilar-body p{font-size:.88rem;margin:0;}

  .bio-block{display:grid;gap:28px;padding:8px 0 8px;}
  .bio-media{border-radius:20px;overflow:hidden;aspect-ratio:1/1;}
  .bio-media img{width:100%;height:100%;object-fit:cover;}
  .bio-text h2{font-size:1.5rem;max-width:16ch;}
  .bio-text p{font-size:.96rem;max-width:52ch;}

  .info-grid{display:grid;gap:24px;padding:36px 0;border-top:1px solid var(--line);margin-top:16px;}
  .info-col h3{font-size:1.02rem;margin-bottom:8px;}
  .info-col p{font-size:.9rem;margin:0 0 4px;}

  @media (min-width:768px){
    .page-banner{aspect-ratio:21/9;}
    .page-banner .banner-copy{padding:0 0 48px;max-width:1180px;margin:0 auto;left:24px;right:24px;}
    .page-banner .banner-copy h1{font-size:2.6rem;}
    .pilares{grid-template-columns:1fr 1fr;}
    .bio-block{grid-template-columns:1fr 1.1fr;align-items:center;}
    .info-grid{grid-template-columns:1fr 1fr 1fr;}
  }
