 :root {
    --red: #a81e1e;
    --red2: #891818;
    --red-soft: #fdf0f0;
    --white: #ffffff;
    --bg: #f7f6f4;
    --bg2: #eeece8;
    --text: #181010;
    --text-mid: #504040;
    --text-light: #907070;
    --border: #ddd8d8;
    --nav-h: 72px;
    --dark: #1a0808;
    
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { font-family:'Plus Jakarta Sans',sans-serif; background:var(--white); color:var(--text); overflow-x:hidden; }
 
  /* NAV */
  nav {
    position:fixed; top:0; left:0; right:0; z-index:100;
    height:var(--nav-h);
    background:rgba(255,255,255,0.97);
    backdrop-filter:blur(16px);
    border-bottom:1px solid var(--border);
    display:flex; align-items:center; justify-content:space-between;
    padding:0 5vw;
  }
  .nav-logo img { height:46px; object-fit:contain; display:block; }
  .nav-links { display:flex; gap:2.5rem; list-style:none; }
  .nav-links a { font-size:0.82rem; font-weight:500; color:var(--text-mid); text-decoration:none; letter-spacing:0.02em; transition:color .2s; }
  .nav-links a:hover { color:var(--text); }
  .nav-cta {
    display:inline-block; background:var(--red); color:var(--white);
    padding:0.55rem 1.3rem; border-radius:8px;
    text-decoration:none; font-size:0.8rem; font-weight:700;
    transition:background .2s;
  }
  .nav-cta:hover { background:var(--red2); }
 
  /* HERO */
  .hero {
    margin-top:var(--nav-h);
    min-height:calc(100vh - var(--nav-h));
    display:grid; grid-template-columns:1fr 1fr; overflow:hidden;
  }
  .hero-left {
    padding:6vw 5vw; display:flex; flex-direction:column; justify-content:center;
    background:var(--white);
  }
  .hero-pill {
    display:inline-flex; align-items:center; gap:0.5rem;
    background:var(--red-soft); color:var(--red);
    font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
    padding:0.4rem 0.9rem; border-radius:100px; width:fit-content; margin-bottom:2.5rem;
  }
  .hero-pill-dot { width:6px; height:6px; background:var(--red); border-radius:50%; }
  .hero-h1 {
    font-size:clamp(2.5rem,4.5vw,4rem); font-weight:800; line-height:1.1;
    letter-spacing:-0.03em; color:var(--text); margin-bottom:1.5rem;
  }
  .hero-h1 .red { color:var(--red); }
  .hero-p { font-size:0.97rem; color:var(--text-mid); line-height:1.85; max-width:440px; margin-bottom:3rem; }
  .hero-btns { display:flex; gap:1rem; flex-wrap:wrap; }
  .btn-red {
    display:inline-block; background:var(--red); color:var(--white);
    padding:0.85rem 1.8rem; border-radius:10px;
    text-decoration:none; font-size:0.88rem; font-weight:700; transition:opacity .2s;
  }
  .btn-red:hover { opacity:.85; }
  .btn-outline {
    display:inline-block; border:1.5px solid var(--border); color:var(--text);
    padding:0.85rem 1.8rem; border-radius:10px;
    text-decoration:none; font-size:0.88rem; font-weight:600; transition:border-color .2s;
  }
  .btn-outline:hover { border-color:var(--text); }
  .hero-trust {
    margin-top:3.5rem; display:flex; align-items:center; gap:1rem;
    padding-top:2rem; border-top:1px solid var(--border);
  }
  .trust-badges { display:flex; gap:1.5rem; }
  .trust-badge { display:flex; flex-direction:column; gap:0.1rem; }
  .trust-val { font-size:1.3rem; font-weight:800; color:var(--text); letter-spacing:-0.02em; }
  .trust-val em { color:var(--red); font-style:normal; }
  .trust-lbl { font-size:0.68rem; color:var(--text-light); font-weight:500; text-transform:uppercase; letter-spacing:0.06em; }
  .trust-div { width:1px; height:40px; background:var(--border); }
  .hero-right { position:relative; overflow:hidden; background:var(--bg2); }
  .hero-right img { width:100%; height:100%; object-fit:cover; transition:transform 8s ease; }
  .hero-right:hover img { transform:scale(1.04); }
  
  /* SLIDESHOW */
  .hero-slideshow { position:relative; width:100%; height:100%; }
  .hero-slide { 
    position:absolute; top:0; left:0; width:100%; height:100%; 
    opacity:0; transition:opacity 1s ease-in-out;
  }
  .hero-slide.active { opacity:1; }
  .hero-slide img { width:100%; height:100%; object-fit:cover; }
  
  .slide-indicators {
    position:absolute; bottom:1.5rem; left:50%; transform:translateX(-50%);
    display:flex; gap:0.5rem; z-index:10;
  }
  .slide-dot {
    width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,0.4);
    cursor:pointer; transition:all .3s;
  }
  .slide-dot.active { width:24px; border-radius:4px; background:var(--red); }
  .hero-img-card {
    position:absolute; bottom:2.5rem; left:2.5rem; right:2.5rem;
    background:rgba(255,255,255,0.97); backdrop-filter:blur(10px);
    border-radius:14px; padding:1.4rem 1.6rem;
    display:flex; align-items:center; gap:1.2rem;
    box-shadow:0 8px 32px rgba(0,0,0,0.12);
  }
  .ic-icon {
    width:44px; height:44px; flex-shrink:0;
    background:var(--red-soft); border-radius:10px;
    display:flex; align-items:center; justify-content:center; font-size:1.3rem;
  }
  .ic-text strong { display:block; font-size:0.88rem; font-weight:700; color:var(--text); margin-bottom:0.15rem; }
  .ic-text span { font-size:0.75rem; color:var(--text-light); }
 
  /* SECTION COMMON */
  .s-tag { font-size:0.72rem; font-weight:700; color:var(--red); letter-spacing:0.14em; text-transform:uppercase; margin-bottom:0.7rem; }
  .s-h2 { font-size:clamp(1.8rem,3vw,2.6rem); font-weight:800; letter-spacing:-0.03em; line-height:1.15; margin-bottom:1rem; }
  .s-sub { font-size:0.95rem; color:var(--text-mid); line-height:1.8; max-width:560px; margin-bottom:3.5rem; }
 
  /* SERVICES */
  .services { background:var(--bg); padding:6rem 5vw; }
  .svc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
  .svc-card {
    background:var(--white); border:1.5px solid var(--border); border-radius:16px;
    padding:2rem 1.8rem; transition:all .3s; position:relative; overflow:hidden;
  }
  .svc-card::before {
    content:''; position:absolute; top:0; left:0; right:0;
    height:3px; background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .3s;
  }
  .svc-card:hover { box-shadow:0 16px 48px rgba(0,0,0,0.09); transform:translateY(-4px); border-color:transparent; }
  .svc-card:hover::before { transform:scaleX(1); }
  .svc-icon {
    width:48px; height:48px; background:var(--red-soft); border-radius:12px;
    display:flex; align-items:center; justify-content:center; font-size:1.3rem; margin-bottom:1.2rem;
  }
  .svc-title { font-size:0.95rem; font-weight:700; margin-bottom:0.5rem; line-height:1.3; }
  .svc-desc { font-size:0.78rem; color:var(--text-mid); line-height:1.7; }
 
  /* PROCESO */
  .proceso { padding:6rem 5vw; background:var(--white); }
  .proceso-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; margin-top:3.5rem; position:relative; }
  .proceso-steps::before {
    content:''; position:absolute; top:28px; left:10%; right:10%;
    height:1px; background:var(--border); z-index:0;
  }
  .step { position:relative; z-index:1; text-align:center; }
  .step-num {
    width:56px; height:56px; background:var(--white); border:2px solid var(--border); border-radius:50%;
    display:flex; align-items:center; justify-content:center; margin:0 auto 1.5rem;
    font-size:1rem; font-weight:800; color:var(--red); transition:all .3s;
  }
  .step:hover .step-num { background:var(--red); color:var(--white); border-color:var(--red); }
  .step-title { font-size:0.92rem; font-weight:700; margin-bottom:0.5rem; }
  .step-desc { font-size:0.8rem; color:var(--text-light); line-height:1.65; }
 
  /* ABOUT */
  .about { display:grid; grid-template-columns:1fr 1fr; }
  .about-photos { display:grid; grid-template-columns:1fr 1fr; gap:4px; overflow:hidden; }
  .ap-cell { overflow:hidden; position:relative; min-height:300px; }
  .ap-cell img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
  .ap-cell:hover img { transform:scale(1.06); }
  .ap-tall { grid-row:1/3; }
  .about-content {
    padding:5vw; display:flex; flex-direction:column; justify-content:center; background:var(--white);
  }
  .about-quote {
    font-size:1rem; font-weight:400; font-style:italic; color:var(--text-mid); line-height:1.8;
    border-left:3px solid var(--red); padding-left:1.5rem; margin:1.5rem 0;
  }
  .about-list { list-style:none; display:flex; flex-direction:column; gap:0.8rem; margin:1.5rem 0; }
  .about-list li { display:flex; align-items:flex-start; gap:0.75rem; font-size:0.88rem; color:var(--text-mid); line-height:1.5; }
  .al-icon {
    width:22px; height:22px; flex-shrink:0; background:var(--red-soft); border-radius:6px;
    display:flex; align-items:center; justify-content:center; color:var(--red); font-size:0.7rem; font-weight:700;
  }
 
  /* CTA */
  .cta-band {
    background:var(--dark); padding:5rem 5vw;
    display:grid; grid-template-columns:1fr auto; align-items:center; gap:3rem;
  }
  .cta-band h2 { font-size:clamp(1.6rem,3vw,2.4rem); font-weight:800; color:var(--white); letter-spacing:-0.03em; line-height:1.2; }
  .cta-band h2 em { color:var(--red); font-style:normal; }
  .cta-band p { font-size:0.9rem; color:rgba(255,255,255,.5); line-height:1.7; margin-top:0.7rem; }
  .btn-red-lg {
    display:inline-block; white-space:nowrap; background:var(--red); color:var(--white);
    padding:1rem 2.2rem; border-radius:10px; text-decoration:none; font-size:0.9rem; font-weight:700;
    transition:opacity .2s;
  }
  .btn-red-lg:hover { opacity:.85; }
 
  /* CONTACT */
  .contact { padding:6rem 5vw; display:grid; grid-template-columns:1fr 1.2fr; gap:6rem; align-items:start; }
  .contact-info-block { display:flex; flex-direction:column; gap:1.5rem; margin-top:2.5rem; }
  .ci-item { display:flex; align-items:flex-start; gap:1rem; }
  .ci-icon { width:44px; height:44px; flex-shrink:0; background:var(--red-soft); border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:1.1rem; }
  .ci-label { font-size:0.68rem; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; color:var(--text-light); margin-bottom:0.15rem; }
  .ci-val { font-size:0.88rem; font-weight:500; color:var(--text); }
  .ci-val a {color:var(--text); text-decoration:none; cursor:pointer;transition:color .2s, opacity .2s;}
  .contact-form { display:flex; flex-direction:column; gap:1.2rem; }
  .form-row { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
  .fg { display:flex; flex-direction:column; gap:0.45rem; }
  .fg label { font-size:0.72rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:var(--text-light); }
  .fg input,.fg select,.fg textarea {
    background:var(--bg); border:1.5px solid var(--border); border-radius:10px;
    padding:0.85rem 1rem; font-family:'Plus Jakarta Sans',sans-serif; font-size:0.9rem; color:var(--text);
    outline:none; transition:border-color .2s;
  }
  .fg input:focus,.fg select:focus,.fg textarea:focus { border-color:var(--red); background:var(--white); }
  .fg textarea { min-height:120px; resize:vertical; }
  .submit {
    background:var(--red); color:var(--white); border:none; border-radius:10px; padding:1rem;
    cursor:pointer; font-family:'Plus Jakarta Sans',sans-serif; font-size:0.9rem; font-weight:700; transition:opacity .2s;
  }
  .submit:hover { opacity:.85; }
 
  /* FOOTER */
  footer {
    background:var(--dark); padding:2.5rem 5vw;
    display:flex; align-items:center; justify-content:space-between;
    border-top:2px solid var(--red);
  }
  footer img { height:48px; object-fit:contain; }
  .foot-copy { font-size:0.78rem; color:rgba(255,255,255,.35); }
  .foot-links { display:flex; gap:2rem; list-style:none; }
  .foot-links a { font-size:0.78rem; color:rgba(255,255,255,.4); text-decoration:none; transition:color .2s; }
  .foot-links a:hover { color:var(--red); }
 
  @media(max-width:900px){
    nav{padding:0 1.5rem;} .nav-links{display:none;}
    .hero{grid-template-columns:1fr;} .hero-right{min-height:280px;} .hero-left{padding:3rem 1.5rem;}
    .svc-grid{grid-template-columns:1fr;}
    .proceso-steps{grid-template-columns:1fr 1fr;} .proceso-steps::before{display:none;}
    .services,.proceso,.contact{padding:4rem 1.5rem;}
    .about{grid-template-columns:1fr;} .about-content{padding:3rem 1.5rem;}
    .cta-band{grid-template-columns:1fr;padding:3rem 1.5rem;}
    .contact{grid-template-columns:1fr;gap:3rem;}
    footer{flex-direction:column;gap:1rem;text-align:center;padding:2rem 1.5rem;}
  }


  /** AVISO LEGAL CSS **/

  .nav-back { font-size:0.82rem; font-weight:600; color:var(--text-mid); text-decoration:none; transition:color .2s; }
  .nav-back:hover { color:var(--red); }
  
  .legal-container {
    max-width:800px; margin:0 auto; padding:calc(var(--nav-h) + 4rem) 2rem 4rem;
  }
  .legal-header {
    text-align:center; padding-bottom:3rem; border-bottom:2px solid var(--border); margin-bottom:3rem;
  }
  .legal-tag {
    font-size:0.72rem; font-weight:700; color:var(--red); letter-spacing:0.14em;
    text-transform:uppercase; margin-bottom:1rem;
  }
  h1 {
    font-size:clamp(2rem,4vw,3rem); font-weight:800; letter-spacing:-0.03em;
    line-height:1.1; margin-bottom:1rem;
  }
  .legal-date { font-size:0.88rem; color:var(--text-light); }
  
  h2 {
    font-size:1.5rem; font-weight:700; margin:2.5rem 0 1rem; color:var(--text);
    padding-top:1rem; border-top:1px solid var(--border);
  }
  h2:first-of-type { border-top:none; padding-top:0; }
  
  p { margin-bottom:1.2rem; font-size:0.95rem; color:var(--text-mid); }
  
  ul, ol { margin:1rem 0 1.5rem 1.5rem; }
  li { margin-bottom:0.7rem; font-size:0.95rem; color:var(--text-mid); }
  
  strong { color:var(--text); font-weight:700; }
  
  .info-box {
    background:var(--bg); border:1.5px solid var(--border);
    padding:1.5rem; border-radius:8px; margin:2rem 0;
  }
  
  .highlight-box {
    background:var(--red-soft); border-left:3px solid var(--red);
    padding:1.5rem; border-radius:8px; margin:2rem 0;
  }
  

  .foot-copy { font-size:0.78rem; color:var(--text-light); }
  
  @media(max-width:768px){
    nav { padding:0 1.5rem; }
    .legal-container { padding:calc(var(--nav-h) + 2rem) 1.5rem 2rem; }
  }


  /**PRIVACIDAD CSS**/

   .legal-container {
    max-width:800px; margin:0 auto; padding:calc(var(--nav-h) + 4rem) 2rem 4rem;
  }
  .legal-header {
    text-align:center; padding-bottom:3rem; border-bottom:2px solid var(--border); margin-bottom:3rem;
  }
  .legal-tag {
    font-size:0.72rem; font-weight:700; color:var(--red); letter-spacing:0.14em;
    text-transform:uppercase; margin-bottom:1rem;
  }

  .legal-date { font-size:0.88rem; color:var(--text-light); }
  
    
  ul, ol { margin:1rem 0 1.5rem 1.5rem; }
  li { margin-bottom:0.7rem; font-size:0.95rem; color:var(--text-mid); }
  
  strong { color:var(--text); font-weight:700; }
  
  .highlight-box {
    background:var(--red-soft); border-left:3px solid var(--red);
    padding:1.5rem; border-radius:8px; margin:2rem 0;
  }
  
  .foot-copy { font-size:0.78rem; color:var(--text-light); }
  
  @media(max-width:768px){
    nav { padding:0 1.5rem; }
    .legal-container { padding:calc(var(--nav-h) + 2rem) 1.5rem 2rem; }
  }

    .legalfooter {
    background:var(--bg); padding:2rem 5vw; text-align:center;
    border-top:1px solid var(--border); margin-top:4rem;
  }


  /** COOKIES CSS**/

  .nav-back { font-size:0.82rem; font-weight:600; color:var(--text-mid); text-decoration:none; transition:color .2s; }
  .nav-back:hover { color:var(--red); }

    .cookie-table {
    width:100%; border-collapse:collapse; margin:1.5rem 0;
    border:1px solid var(--border); border-radius:8px; overflow:hidden;
  }
  .cookie-table th {
    background:var(--red-soft); color:var(--red); font-weight:700;
    padding:1rem; text-align:left; font-size:0.85rem; letter-spacing:0.05em;
    text-transform:uppercase;
  }
  .cookie-table td {
    padding:1rem; border-top:1px solid var(--border);
    font-size:0.9rem; color:var(--text-mid);
  }
  .cookie-table tr:hover { background:var(--bg); }

    .legal-container {
    max-width:800px; margin:0 auto; padding:calc(var(--nav-h) + 4rem) 2rem 4rem;
  }
  .legal-header {
    text-align:center; padding-bottom:3rem; border-bottom:2px solid var(--border); margin-bottom:3rem;
  }
  .legal-tag {
    font-size:0.72rem; font-weight:700; color:var(--red); letter-spacing:0.14em;
    text-transform:uppercase; margin-bottom:1rem;
  }

  .legal-date { font-size:0.88rem; color:var(--text-light); }

    .cookie-table {
    width:100%; border-collapse:collapse; margin:1.5rem 0;
    border:1px solid var(--border); border-radius:8px; overflow:hidden;
  }
  .cookie-table th {
    background:var(--red-soft); color:var(--red); font-weight:700;
    padding:1rem; text-align:left; font-size:0.85rem; letter-spacing:0.05em;
    text-transform:uppercase;
  }
  .cookie-table td {
    padding:1rem; border-top:1px solid var(--border);
    font-size:0.9rem; color:var(--text-mid);
  }
  .cookie-table tr:hover { background:var(--bg); }
  
  .highlight-box {
    background:var(--red-soft); border-left:3px solid var(--red);
    padding:1.5rem; border-radius:8px; margin:2rem 0;
  }
  
  @media(max-width:768px){
    nav { padding:0 1.5rem; }
    .legal-container { padding:calc(var(--nav-h) + 2rem) 1.5rem 2rem; }
    .cookie-table { font-size:0.85rem; }
    .cookie-table th, .cookie-table td { padding:0.7rem; }
  }