/* Tejapro Castilla - estilos de todas las páginas. Versión 20260918. */
/* Tipografías servidas desde el propio dominio (antes Google Fonts): Space Grotesk e Inter, licencia SIL OFL. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(inter-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(inter-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(spacegrotesk-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(spacegrotesk-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(spacegrotesk-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(spacegrotesk-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(spacegrotesk-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(spacegrotesk-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


  :root{
    --red-600:#C81E1E;
    --red-700:#A81717;
    --red-800:#8A1212;
    --red-50:#FBEAEA;
    --ink-900:#181A1E;
    --ink-800:#22252B;
    --ink-700:#3A3E46;
    --grey-600:#63676F;
    --grey-400:#9498A0;
    --grey-200:#E4E3DF;
    --paper:#FAF8F5;
    --paper-2:#F2EFEA;
    --white:#FFFFFF;
    --green-wa:#17813F;
    --radius-sm:6px;
    --radius-md:10px;
    --radius-lg:18px;
    --shadow-sm:0 1px 2px rgba(24,26,30,.06), 0 1px 1px rgba(24,26,30,.04);
    --shadow-md:0 8px 24px -8px rgba(24,26,30,.18);
    --shadow-lg:0 24px 48px -16px rgba(24,26,30,.28);
    --container:1200px;
    --ff-head:'Space Grotesk', 'Inter', sans-serif;
    --ff-body:'Inter', sans-serif;
  }
  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  }
  html{max-width:100%; overflow-x:hidden;}
  body{
    margin:0;
    max-width:100%;
    overflow-x:hidden;
    overflow-wrap:break-word;
    word-break:break-word;
    font-family:var(--ff-body);
    color:var(--ink-900);
    background:var(--paper);
    -webkit-font-smoothing:antialiased;
    line-height:1.55;
  }
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  ul{margin:0; padding:0; list-style:none;}
  h1,h2,h3,h4{font-family:var(--ff-head); margin:0; line-height:1.12; letter-spacing:-0.01em; font-weight:600;}
  p{margin:0;}
  button{font-family:inherit; cursor:pointer;}
  .wrap{max-width:var(--container); margin:0 auto; padding:0 24px;}
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
    color:var(--red-700);
  }
  .eyebrow::before{content:""; width:22px; height:2px; background:var(--red-600); display:inline-block;}
  .script{
    font-family:'Space Grotesk', sans-serif; font-style:italic; font-weight:500;
    color:var(--red-700);
  }
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:10px;
    padding:14px 26px; border-radius:var(--radius-sm); font-weight:700; font-size:.95rem;
    border:1.5px solid transparent; transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
    white-space:nowrap; position:relative; overflow:hidden;
  }
  .btn svg{width:18px; height:18px; flex-shrink:0; transition:transform .25s ease;}
  .btn:hover{transform:translateY(-3px);}
  .btn:hover svg{transform:scale(1.22);}
  .btn:active{transform:translateY(0) scale(.96); transition-duration:.08s;}
  .btn-primary::after, .btn-whatsapp::after, .btn-dark::after{
    content:""; position:absolute; inset:0; pointer-events:none; z-index:-1;
    background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.65) 48%, rgba(255,255,255,.2) 54%, transparent 70%);
    transform:translateX(-140%);
    animation:btnShine 4.5s ease-in-out infinite;
  }
  .btn-whatsapp::after{animation-delay:1.1s;}
  .btn-dark::after{animation-delay:2.2s;}
  .cta-band .btn-dark::after{background:linear-gradient(115deg, transparent 30%, rgba(200,30,30,.35) 48%, rgba(200,30,30,.12) 54%, transparent 70%);}
  @keyframes btnShine{
    0%{transform:translateX(-140%);}
    28%{transform:translateX(140%);}
    100%{transform:translateX(140%);}
  }
  .btn-primary{background:var(--red-600); color:#fff; box-shadow:var(--shadow-sm);}
  .btn-primary:hover{background:var(--red-700); box-shadow:var(--shadow-md);}
  .btn-whatsapp{background:var(--green-wa); color:#fff;}
  .btn-whatsapp:hover{background:#12672F; box-shadow:var(--shadow-md);}
  .btn-dark{background:var(--ink-900); color:#fff;}
  .btn-dark:hover{background:#000;}
  .btn-outline{background:transparent; color:var(--ink-900); border-color:var(--grey-200);}
  .btn-outline:hover{border-color:var(--ink-900);}

  /* ===== Top utility bar ===== */
  .topbar{background:var(--ink-900); color:#D8D9DC; font-size:.82rem;}
  .topbar .wrap{display:flex; align-items:center; justify-content:space-between; height:38px;}
  .topbar-left{display:flex; gap:20px;}
  .topbar-left span{display:inline-flex; align-items:center; gap:6px;}
  .topbar-left svg{width:14px; height:14px; color:var(--red-600);}
  .topbar-social{display:flex; align-items:center; gap:12px;}
  .topbar-social a{width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.08); display:inline-flex; align-items:center; justify-content:center; transition:background .18s;}
  .topbar-social a:hover{background:var(--red-600);}
  .topbar-social svg{width:13px; height:13px;}

  /* ===== Header ===== */
  header.site{
    position:sticky; top:0; z-index:100; background:#fff;
    border-bottom:1px solid var(--grey-200);
    transition:box-shadow .25s ease;
  }
  header.site.scrolled{box-shadow:var(--shadow-sm);}
  .nav-row{display:flex; align-items:center; justify-content:space-between; height:108px; gap:28px;}
  .logo{display:flex; align-items:center; gap:14px;}
  .logo-mark{width:58px; height:58px; flex-shrink:0;}
  .roof-dark{color:var(--ink-900);}
  .footer-brand .roof-dark{color:#fff;}
  .logo-text{line-height:1.15;}
  .logo-text .brand{font-family:var(--ff-head); font-weight:700; font-size:1.5rem; letter-spacing:-.01em; display:block;}
  .logo-text .brand em{color:var(--red-600); font-style:normal;}
  .logo-text .brand .pro{color:var(--red-600);}
  .logo-text .tagline{display:block; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--grey-600); font-weight:600; margin-top:3px;}
  nav.main-nav{display:flex; align-items:center; gap:34px;}
  nav.main-nav a{font-size:1.02rem; font-weight:600; color:var(--ink-700); position:relative; padding:8px 0; white-space:nowrap;}
  nav.main-nav{flex-shrink:0;}
  .logo-text{min-width:0;}
  .logo-text .brand{white-space:nowrap;}
  nav.main-nav a::after{content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--red-600); transition:width .2s ease;}
  nav.main-nav a:hover{color:var(--ink-900);}
  nav.main-nav a:hover::after{width:100%;}
  .header-actions{display:flex; align-items:center; gap:12px;}
  .header-actions .btn{padding:13px 22px; font-size:.94rem;}
  .burger{display:none; width:44px; height:44px; align-items:center; justify-content:center; background:none; border:1px solid var(--grey-200); border-radius:var(--radius-sm);}
  .burger svg{width:22px; height:22px;}
  .mobile-nav{display:none; flex-direction:column; background:#fff; border-top:1px solid var(--grey-200);}
  .mobile-nav.open{display:flex;}
  .mobile-nav a{padding:14px 24px; border-bottom:1px solid var(--grey-200); font-weight:600;}
  .mobile-nav .mnav-actions{display:flex; flex-direction:column; gap:10px; padding:16px 24px;}

  /* ===== Hero ===== */
  .hero{position:relative; overflow:hidden; background:var(--ink-900); padding:0;}
  .hero-bg{position:absolute; inset:0;}
  .hero-bg img{width:100%; height:100%; object-fit:cover; object-position:55% 25%;}
  .hero-bg::after{
    content:""; position:absolute; inset:0;
    background:
      linear-gradient(100deg, rgba(20,16,15,.94) 0%, rgba(24,18,16,.86) 32%, rgba(30,20,17,.55) 55%, rgba(40,20,18,.35) 75%);
  }
  .hero-inner{position:relative; z-index:2; padding:88px 24px 96px; max-width:var(--container); margin:0 auto;}
  .hero-content{max-width:640px;}
  .hero-badge{
    display:inline-block; background:var(--red-600); color:#fff; font-weight:700; font-size:.78rem;
    letter-spacing:.04em; text-transform:uppercase; padding:8px 16px; border-radius:4px; margin:18px 8px 22px 0;
  }
  .hero-badge-alt{background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.35); backdrop-filter:blur(4px);}
  .hero h1{color:#fff; font-size:clamp(2.1rem, 4.6vw, 3.4rem); font-weight:700;}
  .hero-sub{color:#E7E4DF; font-size:1.05rem; max-width:520px; margin-top:20px;}
  .hero-script{margin-top:14px; font-size:1.2rem;}
  .hero-script.script{color:#F0A5A5;}
  .hero-ctas{display:flex; flex-wrap:wrap; gap:12px; margin-top:32px;}
  .hero-trust{display:flex; gap:26px; margin-top:44px; flex-wrap:wrap;}
  .hero-trust div{color:#fff;}
  .hero-trust strong{display:block; font-family:var(--ff-head); font-size:1.5rem;}
  .hero-trust span{font-size:.78rem; color:#C9C6C0; text-transform:uppercase; letter-spacing:.05em;}

  /* ===== Feature strip ===== */
  .feature-strip{background:#fff; margin-top:50px; margin-bottom:0; position:relative; z-index:3;}
  #servicios{padding-top:60px;}
  .feature-card-row{
    background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg);
    display:grid; grid-template-columns:repeat(4,1fr);
  }
  .feature-item{padding:30px 26px; display:flex; gap:16px; align-items:flex-start; border-right:1px solid var(--grey-200);}
  .feature-item:last-child{border-right:none;}
  .feature-icon{width:44px; height:44px; border-radius:var(--radius-sm); background:var(--red-50); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .feature-icon svg{width:22px; height:22px; color:var(--red-600);}
  .feature-item .feature-title{font-family:var(--ff-head); font-weight:600; line-height:1.12; letter-spacing:-0.01em; font-size:.95rem; margin-bottom:5px; color:var(--ink-900);}
  .feature-item p{font-size:.84rem; color:var(--grey-600);}

  /* ===== Section shell ===== */
  section{padding:100px 0;}
  .section-head{max-width:640px; margin:0 auto 56px; text-align:center;}
  .section-head h2{font-size:clamp(1.7rem, 3vw, 2.35rem); margin-top:14px;}
  .section-head p{margin-top:16px; color:var(--grey-600); font-size:1.02rem;}
  .center{text-align:center;}

  /* ===== Servicios ===== */
  .services-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:10px;}
  .services-grid > *, .why-stats > *, .faq-grid > *, .footer-grid > *, .zone-grid > *{min-width:0;}
  .service-card{
    background:#fff; border:1px solid var(--grey-200); border-radius:var(--radius-md);
    padding:30px 24px; transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  }
  .service-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:transparent;}
  .service-icon{width:52px; height:52px; border-radius:12px; background:var(--ink-900); display:flex; align-items:center; justify-content:center; margin-bottom:20px;}
  .service-icon svg{width:26px; height:26px; color:#fff;}
  .service-card h3{font-size:1.02rem; margin-bottom:10px;}
  .service-card p{font-size:.87rem; color:var(--grey-600);}
  .service-card.wide{grid-column:span 2;}

  /* ===== Why us dark band ===== */
  .why-band{background:var(--ink-900); color:#fff; padding:64px 0;}
  .why-inner{display:flex; align-items:center; gap:48px; flex-wrap:wrap;}
  .why-head{flex:1 1 260px;}
  .why-head .eyebrow{color:#F0A5A5;}
  .why-head .eyebrow::before{background:var(--red-600);}
  .why-head h2{color:#fff; font-size:clamp(1.4rem,2.4vw,1.9rem); margin-top:12px;}
  .why-stats{flex:2 1 560px; display:grid; grid-template-columns:repeat(4,1fr); gap:0;}
  .why-stat{padding:0 22px; border-left:1px solid rgba(255,255,255,.14);}
  .why-stat svg{width:26px; height:26px; color:var(--red-600); margin-bottom:14px;}
  .why-stat strong{display:block; font-family:var(--ff-head); font-size:1.5rem; margin-bottom:4px;}
  .why-stat span{font-size:.8rem; color:#B7B5B0;}

  /* ===== Trabajos / gallery ===== */
  .gallery-shell{position:relative;}
  .gallery-track{display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:8px; scrollbar-width:none;}
  .gallery-track::-webkit-scrollbar{display:none;}
  .gallery-item{scroll-snap-align:start; flex:0 0 auto; width:300px;}
  .ba-frame{position:relative; border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid var(--grey-200); aspect-ratio:4/3;}
  .ba-frame img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
  .gallery-item:hover .ba-frame img{transform:scale(1.06);}
  .ba-tag{position:absolute; top:10px; left:10px; background:rgba(24,26,30,.78); color:#fff; font-size:.65rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:4px 10px; border-radius:4px; z-index:2;}
  .gallery-caption{margin-top:14px; font-weight:600; font-size:.92rem;}
  .gallery-nav{display:flex; gap:10px; justify-content:center; margin-top:28px;}
  .gnav-btn{width:44px; height:44px; border-radius:50%; border:1px solid var(--grey-200); background:#fff; display:flex; align-items:center; justify-content:center; transition:.18s;}
  .gnav-btn:hover{background:var(--ink-900); border-color:var(--ink-900); color:#fff;}
  .gnav-btn svg{width:18px; height:18px;}
  .gallery-note{text-align:center; margin-top:20px; font-size:.82rem; color:var(--grey-400);}

  /* ===== Zona de trabajo ===== */
  .zone-section{background:var(--paper-2);}
  .zone-grid{display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:36px; align-items:center;}
  .zone-text h2{font-size:clamp(1.5rem,2.6vw,2rem); margin-top:12px;}
  .zone-text p{margin-top:16px; color:var(--grey-600);}
  .zone-text .script{display:block; margin-top:16px; font-size:1.1rem;}
  .map-wrap{display:flex; flex-direction:column; align-items:center; gap:10px;}
  .map-wrap img{width:100%; max-width:400px; height:auto; filter:drop-shadow(0 18px 30px rgba(24,26,30,.16)); transition:transform .4s ease;}
  .map-wrap:hover img{transform:translateY(-4px) scale(1.015);}
  .map-credit{font-size:.68rem; color:var(--grey-400);}
  .contact-box{background:#fff; border-radius:var(--radius-lg); padding:34px 30px; box-shadow:var(--shadow-md);}
  .contact-box h3{font-size:1.15rem;}
  .contact-box .script{display:block; margin:10px 0 20px;}
  .contact-line{display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--grey-200); font-weight:600;}
  .contact-line:last-of-type{border-bottom:none;}
  .contact-line svg{width:18px; height:18px; color:var(--red-600); flex-shrink:0;}
  .contact-box .btn{width:100%; margin-top:20px;}

  /* ===== FAQ ===== */
  .faq-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px 24px; margin-top:10px;}
  .faq-item{border:1px solid var(--grey-200); border-radius:var(--radius-md); background:#fff; overflow:hidden;}
  .faq-q{width:100%; background:none; border:none; text-align:left; padding:20px 22px; display:flex; align-items:center; justify-content:space-between; gap:16px; font-weight:600; font-size:.95rem; color:var(--ink-900);}
  .faq-q svg{width:18px; height:18px; color:var(--red-600); flex-shrink:0; transition:transform .25s ease;}
  .faq-item.open .faq-q svg{transform:rotate(45deg);}
  .faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
  .faq-a p{padding:0 22px 20px; color:var(--grey-600); font-size:.9rem;}

  /* ===== CTA band ===== */
  .cta-band{background:linear-gradient(120deg, var(--red-700), var(--red-800)); color:#fff; text-align:center; padding:70px 0;}
  .cta-band h2{color:#fff; font-size:clamp(1.5rem,2.8vw,2.1rem);}
  .cta-band p{margin-top:14px; color:#F6D9D9; max-width:520px; margin-left:auto; margin-right:auto;}
  .cta-band .hero-ctas{justify-content:center; margin-top:28px;}
  .cta-band .btn-dark{background:#fff; color:var(--red-700);}
  .cta-band .btn-dark:hover{background:#F2EFEA;}

  /* ===== Footer ===== */
  footer{background:var(--ink-900); color:#C9C6C0; padding:64px 0 0;}
  .footer-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:36px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.1);}
  .footer-brand .logo-text .brand{color:#fff;}
  .footer-brand .logo-text .tagline{color:var(--grey-400);}
  .footer-brand p{margin-top:12px; font-size:.87rem; line-height:1.7; max-width:340px;}
  .footer-col h2{color:#fff; font-size:.85rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:18px;}
  .footer-col ul li{margin-bottom:11px; font-size:.88rem;}
  .footer-col a:hover{color:#fff;}
  .footer-col .contact-line{border:none; padding:0 0 12px; font-weight:500; font-size:.88rem; align-items:flex-start;}
  .footer-bottom{display:flex; justify-content:space-between; align-items:center; padding:24px 0; font-size:.8rem; color:#9EA1A8; flex-wrap:wrap; gap:10px;}
  .footer-bottom a:hover{color:#fff;}

  /* ===== Cookie banner ===== */
  .cookie-banner{position:fixed; left:20px; right:20px; bottom:20px; z-index:400; max-width:560px; margin:0 auto; background:var(--ink-900); color:#fff; border-radius:var(--radius-md); padding:22px 24px; box-shadow:var(--shadow-lg); display:none;}
  .cookie-banner.show{display:block;}
  .cookie-banner p{font-size:.85rem; color:#C9C6C0; margin-bottom:16px;}
  .cookie-banner p a{color:#fff; text-decoration:underline;}
  .cookie-actions{display:flex; gap:10px; flex-wrap:wrap;}
  .cookie-actions .btn{flex:1 1 auto; padding:11px 16px; font-size:.85rem;}
  .cookie-actions .btn-outline{color:#fff; border-color:rgba(255,255,255,.35);}
  .cookie-actions .btn-outline:hover{border-color:#fff;}

  /* ===== Floating actions ===== */
  .scroll-progress{position:fixed; top:0; left:0; height:3px; width:100%; z-index:300; background:transparent;}
  .scroll-progress-bar{height:100%; width:0%; background:linear-gradient(90deg, var(--red-700), var(--red-600)); transform-origin:left;}
  .fab-stack{position:fixed; right:20px; bottom:24px; z-index:200; display:flex; flex-direction:column; gap:12px;}
  .fab{width:54px; height:54px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-lg); color:#fff; transition:transform .2s ease;}
  .fab:hover{transform:scale(1.08);}
  .fab svg{width:24px; height:24px;}
  .fab-call{background:var(--red-600); position:relative;}
  .fab-call::after{
    content:""; position:absolute; inset:0; border-radius:50%; border:2px solid var(--red-600);
    animation:fabPing 2.4s ease-out infinite;
  }
  .fab-wa{background:var(--green-wa);}
  .fab-quote{background:var(--ink-900);}
  @keyframes fabPing{
    0%{transform:scale(1); opacity:.7;}
    100%{transform:scale(1.7); opacity:0;}
  }


  @media (max-width:1080px){
    .services-grid{grid-template-columns:repeat(2,1fr);}
    .service-card.wide{grid-column:span 1;}
    .why-inner{flex-direction:column; align-items:flex-start;}
    .why-head{flex:none;}
    .why-stats{width:100%; grid-template-columns:repeat(2,1fr); row-gap:28px;}
    .zone-grid{grid-template-columns:1fr; gap:44px;}
    .map-wrap{order:2;}
    .footer-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:840px){
    nav.main-nav, .header-actions{display:none;}
    .burger{display:flex;}
    .nav-row{height:78px;}
    .logo-mark{width:44px; height:44px;}
    .logo-text .brand{font-size:1.1rem; white-space:nowrap;}
    .logo-text .tagline{font-size:.6rem;}
    .feature-card-row{grid-template-columns:repeat(2,1fr);}
    .feature-item{border-bottom:1px solid var(--grey-200);}
    .feature-item:nth-child(2){border-right:none;}
    .why-stats{grid-template-columns:1fr 1fr;}
    .faq-grid{grid-template-columns:1fr;}
    section{padding:70px 0;}
    .topbar .wrap{font-size:.72rem;}
    .topbar-left span:nth-child(2){display:none;}
  }
  @media (max-width:560px){
    .feature-card-row{grid-template-columns:1fr;}
    .feature-item{border-right:none;}
    .why-stats{grid-template-columns:1fr;}
    .why-stat{border-left:none; border-top:1px solid rgba(255,255,255,.14); padding-top:18px;}
    .footer-grid{grid-template-columns:1fr;}
    .hero-trust{gap:20px;}
    .gallery-item{width:78vw;}
    .hero-bg img{object-position:48% 20%;}
    .hero-bg::after{background:linear-gradient(180deg, rgba(20,16,15,.68) 0%, rgba(20,16,15,.42) 40%, rgba(20,16,15,.8) 100%);}
    .hero-inner{padding:36px 24px 40px;}
    .hero h1{font-size:1.9rem;}
    .hero-sub{font-size:.95rem; margin-top:14px;}
    .hero-script{margin-top:10px; font-size:1.05rem;}
    .hero-ctas{margin-top:22px; gap:10px;}
    .hero-ctas .btn{padding:12px 20px; font-size:.88rem;}
    .hero-trust{margin-top:28px;}
    .hero-badge{margin:12px 8px 14px 0;}
  }

  /* ===== 18-09-2026: cabecera sin cortes en portátiles (PROB-033) ===== */
  header.site .nav-row{max-width:1440px;}
  .btn-wa-icon{padding-left:14px !important; padding-right:14px !important;}
  .btn-wa-icon svg{width:20px; height:20px;}
  @media (max-width:1439px){
    nav.main-nav{gap:24px;}
    .nav-row{gap:20px;}
  }
  @media (max-width:1300px){
    nav.main-nav{gap:18px;}
    nav.main-nav a{font-size:.95rem;}
    .logo-mark{width:50px; height:50px;}
    .logo-text .brand{font-size:1.32rem;}
    .header-actions .btn{padding:12px 16px; font-size:.9rem;}
    nav.main-nav a.nav-inicio{display:none;}
  }
  @media (max-width:1140px){
    nav.main-nav, .header-actions{display:none;}
    .burger{display:flex;}
    .nav-row{height:78px;}
  }

  @media (max-width:400px){
    header.site .wrap{padding:0 14px;}
    .nav-row{gap:10px;}
    .logo{gap:10px;}
    .logo-mark{width:38px; height:38px;}
    .logo-text .brand{font-size:1rem;}
    .logo-text .tagline{font-size:.55rem; letter-spacing:.04em;}
    .burger{flex-shrink:0;}
  }

  /* ===== Enlaces a las páginas de servicio ===== */
  .service-card{display:flex; flex-direction:column;}
  .service-card p{flex:1;}
  .service-link{display:inline-flex; align-items:center; gap:6px; margin-top:16px; font-size:.86rem; font-weight:700; color:var(--red-700);}
  .service-link svg{width:15px; height:15px; transition:transform .2s ease;}
  .service-link:hover{color:var(--red-800);}
  .service-link:hover svg{transform:translateX(3px);}
  .service-card h3 a:hover{color:var(--red-700);}
  .footer-bottom nav a{color:inherit;}
  .footer-bottom nav a:hover{color:#fff;}
  .footer-legal{display:inline-flex; flex-wrap:wrap; gap:4px 14px;}

  /* ===== Páginas de servicio ===== */
  .sp-hero{background:var(--paper-2); padding:48px 0 64px;}
  .breadcrumb{font-size:.84rem; color:var(--grey-600); margin-bottom:22px; display:flex; flex-wrap:wrap; gap:6px;}
  .breadcrumb a{text-decoration:underline; text-underline-offset:3px;}
  .breadcrumb a:hover{color:var(--red-700);}
  .sp-hero-grid{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:52px; align-items:center;}
  .sp-hero h1{font-size:clamp(1.9rem,3.4vw,2.7rem); font-weight:700; margin-top:14px;}
  .sp-lead{margin-top:18px; font-size:1.08rem; color:var(--ink-700); max-width:580px;}
  .sp-hero .hero-ctas{margin-top:28px;}
  .sp-photo{margin:0; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); aspect-ratio:4/3; background:var(--grey-200);}
  .sp-photo img{width:100%; height:100%; object-fit:cover;}
  .sp-photo figcaption{font-size:.8rem; color:var(--grey-600); padding:10px 4px 0;}
  .sp-photo-wrap figcaption{font-size:.8rem; color:var(--grey-600); margin-top:10px;}
  .sp-body{padding:80px 0;}
  .sp-grid{display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:60px; align-items:start;}
  .sp-text h2{font-size:clamp(1.35rem,2.2vw,1.75rem); margin:44px 0 6px;}
  .sp-text h2:first-child{margin-top:0;}
  .sp-text p{color:var(--ink-700); margin-top:14px; line-height:1.75; font-size:1.02rem;}
  .sp-list{margin-top:18px; display:grid; gap:12px;}
  .sp-list li{position:relative; padding-left:32px; color:var(--ink-700); line-height:1.6;}
  .sp-list li::before{content:""; position:absolute; left:0; top:3px; width:20px; height:20px; border-radius:50%; background:var(--red-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C81E1E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/12px no-repeat;}
  .sp-steps{margin:20px 0 0; padding:0; list-style:none; display:grid; gap:14px; counter-reset:paso;}
  .sp-steps li{counter-increment:paso; display:grid; grid-template-columns:40px 1fr; gap:14px; align-items:start; background:#fff; border:1px solid var(--grey-200); border-radius:var(--radius-md); padding:16px 18px;}
  .sp-steps li::before{content:counter(paso); width:40px; height:40px; border-radius:50%; background:var(--ink-900); color:#fff; font-family:var(--ff-head); font-weight:700; display:flex; align-items:center; justify-content:center;}
  .sp-steps strong{display:block; font-family:var(--ff-head); font-size:1rem; margin-bottom:3px;}
  .sp-steps span{color:var(--grey-600); font-size:.94rem; line-height:1.6;}
  .sp-aside{position:sticky; top:132px;}
  .sp-aside .contact-box .btn{margin-top:18px;}
  .sp-faq{padding:0 0 90px;}
  .sp-faq .faq-grid{grid-template-columns:1fr;  max-width:820px; margin:0 auto;}
  .sp-related{background:var(--paper-2); padding:70px 0;}
  .sp-related h2{font-size:clamp(1.3rem,2.2vw,1.7rem); text-align:center;}
  .sp-related-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:30px;}
  .sp-related-grid a{display:flex; justify-content:space-between; align-items:center; gap:12px; background:#fff; border:1px solid var(--grey-200); border-radius:var(--radius-md); padding:18px 20px; font-weight:600; transition:border-color .2s ease, transform .2s ease;}
  .sp-related-grid a:hover{border-color:var(--red-600); transform:translateY(-3px);}
  .sp-related-grid svg{width:16px; height:16px; color:var(--red-600); flex-shrink:0;}
  @media (max-width:960px){
    .sp-hero-grid, .sp-grid{grid-template-columns:1fr; gap:36px;}
    .sp-aside{position:static;}
    .sp-related-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:560px){
    .services-grid{grid-template-columns:1fr;}
    .sp-hero{padding:32px 0 44px;}
    .sp-body{padding:56px 0;}
    .sp-related-grid{grid-template-columns:1fr;}
    .sp-steps li{grid-template-columns:34px 1fr; padding:14px;}
    .sp-steps li::before{width:34px; height:34px;}
  }

  /* ===== Página 404 ===== */
  .e404{padding:90px 0 100px; text-align:center;}
  .e404 .code{font-family:var(--ff-head); font-weight:700; font-size:clamp(4rem,12vw,7rem); color:var(--red-600); line-height:1;}
  .e404 h1{font-size:clamp(1.6rem,3vw,2.2rem); margin-top:14px;}
  .e404 p{color:var(--grey-600); margin:16px auto 0; max-width:520px;}
  .e404 .hero-ctas{justify-content:center;}
  .e404 ul{display:flex; flex-wrap:wrap; justify-content:center; gap:10px 22px; margin-top:34px;}
  .e404 ul a{text-decoration:underline; text-underline-offset:3px; font-weight:600;}

  /* ===== Textos legales con formato notarial (filosofía fija, ver Obsidian) ===== */
  .legal-doc{padding:48px 0 96px; background:var(--paper-2);}
  .legal-hoja{
    --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;
    max-width:800px; margin:0 auto; padding:52px 72px 60px; background:#fff; border:1px solid var(--grey-200); box-shadow:var(--shadow-md);
    font-family:var(--serif); color:#25272e;
  }
  .legal-docs{display:flex; flex-wrap:wrap; justify-content:center; gap:2px 22px; font-family:var(--ff-body); padding-bottom:26px;}
  .legal-docs a{font-size:13px; color:var(--grey-600); padding:5px 0; min-height:24px; display:inline-block;}
  .legal-docs a:hover{color:var(--ink-900); text-decoration:underline;}
  .legal-docs a[aria-current="page"]{color:#25272e; text-decoration:underline; text-underline-offset:4px;}
  .legal-cabecera{text-align:center; padding:26px 0 30px; border-top:3px double #25272e; border-bottom:1px solid #25272e;}
  .legal-hoja .legal-cabecera p{text-align:center; hyphens:manual; margin:8px 0 0;}
  .legal-hoja .legal-cabecera .legal-antetitulo{font-size:12px; letter-spacing:.28em; text-transform:uppercase; color:#5b5e68; margin-top:0;}
  .legal-cabecera h1{font-family:var(--serif); font-weight:600; font-size:clamp(24px,3.4vw,32px); color:#1d1f25; letter-spacing:.14em; text-transform:uppercase; line-height:1.25; margin:12px 0 0; text-wrap:balance;}
  .legal-hoja .legal-cabecera .legal-sub{font-style:italic; font-size:16px; color:#4a4d57;}
  .legal-hoja .legal-cabecera .legal-fecha{font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; color:#5b5e68; margin-top:16px;}
  .legal-preambulo{padding-top:26px;}
  .legal-hoja p, .legal-hoja li{font-size:16.5px; line-height:1.8; text-align:justify; hyphens:auto; -webkit-hyphens:auto; color:#25272e; margin:14px 0 0;}
  .legal-preambulo p{font-style:italic; color:#3c3f48;}
  .legal-clausula{margin-top:38px;}
  .legal-clausula h2{font-family:var(--serif); font-size:15.5px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; line-height:1.5; color:#1d1f25; margin:0; padding-bottom:8px; border-bottom:1px solid rgba(37,39,46,.18);}
  .legal-ord{font-weight:400; letter-spacing:.09em;}
  .legal-n{font-variant-numeric:tabular-nums; font-weight:600; margin-right:4px;}
  .legal-letras{list-style:none; counter-reset:letra; margin:6px 0 0; padding-left:34px;}
  .legal-letras li{counter-increment:letra; position:relative; margin-top:8px;}
  .legal-letras li::before{content:counter(letra, lower-alpha) ")"; position:absolute; left:-26px; font-style:italic;}
  .legal-hoja a{color:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; overflow-wrap:anywhere;}
  .legal-hoja a:hover{color:var(--red-700);}
  .legal-tabla-caja{overflow-x:auto; margin-top:16px;}
  .legal-tabla{width:100%; border-collapse:collapse; font-size:14.5px; line-height:1.5;}
  .legal-tabla th, .legal-tabla td{border:1px solid rgba(37,39,46,.22); padding:8px 10px; text-align:left; vertical-align:top;}
  .legal-tabla th{font-weight:700; font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; background:#f6f4ef;}
  .legal-hoja .legal-cierre{text-align:center; margin-top:52px; padding-top:18px; border-top:1px solid #25272e; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:#5b5e68;}
  @media (max-width:700px){
    .legal-doc{padding:0 0 56px; background:#fff;}
    .legal-hoja{border:0; box-shadow:none; padding:26px 20px 40px;}
    .legal-hoja p, .legal-hoja li{font-size:16px; line-height:1.75; text-align:left;}
    .legal-letras{padding-left:26px;}
    .legal-letras li::before{left:-22px;}
    .legal-tabla, .legal-tabla thead, .legal-tabla tbody, .legal-tabla tr, .legal-tabla td{display:block;}
    .legal-tabla thead{display:none;}
    .legal-tabla tr{border:1px solid rgba(37,39,46,.22); margin-top:10px; padding:6px 0;}
    .legal-tabla td{border:0; padding:3px 12px;}
    .legal-tabla td:first-child{font-weight:700;}
  }
  @media print{
    .topbar, header.site, footer, .fab-stack, .cookie-banner, .scroll-progress, .legal-docs{display:none !important;}
    .legal-doc{background:#fff; padding:0;}
    .legal-hoja{border:0; box-shadow:none; padding:0; max-width:none;}
  }
