:root{--red:#D90429;--red-d:#A80320;--black:#111;--white:#fff;--soft:#F5F5F5;--radius:16px}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:'Poppins',system-ui,sans-serif;color:var(--black);background:#fff;overflow-x:hidden}
.text-red{color:var(--red)}
h1,h2,h3,h4,h5{font-weight:700;letter-spacing:-.02em}
.section{padding:80px 0}.bg-soft{background:var(--soft)}
.section-head{max-width:640px;margin:0 auto 40px}
.section-head p{color:#666}
.eyebrow{display:inline-block;color:var(--red);font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px;position:relative;padding:0 34px}
.eyebrow::before,.eyebrow::after{content:"";position:absolute;top:50%;width:22px;height:2px;background:currentColor}
.eyebrow::before{left:0}.eyebrow::after{right:0}
.hero .eyebrow,.featured .eyebrow,.request-card .eyebrow{padding-left:0}.hero .eyebrow::before,.featured .eyebrow::before,.request-card .eyebrow::before{display:none}
.btn-mc{background:var(--red);color:#fff;border:0;border-radius:10px;font-weight:600;padding:.6rem 1.4rem;transition:.25s}
.btn-mc:hover{background:var(--red-d);color:#fff;transform:translateY(-2px);box-shadow:0 8px 20px rgba(217,4,41,.3)}
.btn-lg{padding:.8rem 1.6rem;font-size:1rem}
.btn-outline-dark{border-radius:10px;font-weight:600}
.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;transition:.3s;background:transparent}
.site-header.scrolled{background:rgba(255,255,255,.96);backdrop-filter:blur(8px);box-shadow:0 2px 20px rgba(0,0,0,.08)}
.navbar{padding:.7rem 0}
.brand-mark{display:inline-block;background:var(--red);color:#fff;font-weight:800;font-size:.8rem;line-height:1.05;padding:6px 10px;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}
.nav-link{color:var(--black);font-weight:500;font-size:.92rem}
.nav-link:hover{color:var(--red)}
@media(max-width:991px){.navbar-collapse{background:#fff;margin-top:10px;padding:16px;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.12)}}
.hero{position:relative;padding:130px 0 0;background:linear-gradient(180deg,#fdeef0 0%,#fff 100%);overflow:hidden}
.hero-shape{position:absolute;top:0;right:0;width:58%;height:560px;background:linear-gradient(135deg,var(--red),var(--red-d));clip-path:polygon(30% 0,100% 0,100% 100%,0 100%)}
.hero-title{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:800;line-height:1.1;margin-bottom:1rem}
.lead-text{color:#555;max-width:480px;margin-bottom:1.6rem}
.hero-stats{display:flex;gap:32px;margin-top:2rem}
.hero-stats strong{display:block;font-size:1.5rem;font-weight:800;color:var(--red)}
.hero-stats span{font-size:.8rem;color:#666}
.hero-car{min-height:300px;background-size:contain;background-repeat:no-repeat;background-position:center;filter:drop-shadow(0 25px 25px rgba(0,0,0,.35));animation:float 5s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-8px)}}
@media(max-width:991px){.hero-shape{width:100%;height:420px;clip-path:polygon(0 35%,100% 0,100% 100%,0 100%);top:300px;opacity:.95}.hero{padding-top:100px}}
.search-box{position:relative;margin:50px auto -60px;background:#fff;border-radius:var(--radius);box-shadow:0 20px 50px rgba(0,0,0,.14);padding:22px;z-index:5}
.search-tabs{list-style:none;display:flex;gap:6px;padding:0;margin:0 0 16px}
.search-tabs li{cursor:pointer;padding:6px 16px;border-radius:8px;font-size:.85rem;font-weight:600;color:#666}
.search-tabs li.active{background:var(--red);color:#fff}
.search-box .form-label{font-size:.75rem;font-weight:600;color:#666;margin-bottom:4px}
.form-select,.form-control{border-radius:10px;border:1px solid #e3e3e3;padding:.6rem .8rem;font-size:.9rem}
.form-select:focus,.form-control:focus{border-color:var(--red);box-shadow:0 0 0 .2rem rgba(217,4,41,.12)}
#categorias{padding-top:130px}
.cat-card{position:relative;display:block;border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.07);cursor:pointer;transition:.3s;text-align:center;padding:20px 16px 18px}
.cat-card:hover{transform:translateY(-6px);box-shadow:0 14px 34px rgba(0,0,0,.14)}
.cat-card img{width:100%;height:110px;object-fit:cover;border-radius:12px;margin-bottom:10px}
.cat-card strong{display:block}.cat-card span{font-size:.8rem;color:var(--red);font-weight:600}
.v-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 6px 24px rgba(0,0,0,.07);transition:.3s;height:100%;display:flex;flex-direction:column}
.v-card:hover{transform:translateY(-6px);box-shadow:0 16px 36px rgba(0,0,0,.15)}
.v-img{position:relative;aspect-ratio:16/10;background:#eee;overflow:hidden}
.v-img img{width:100%;height:100%;object-fit:cover;transition:.5s}
.v-card:hover .v-img img{transform:scale(1.06)}
.v-tag{position:absolute;top:12px;left:12px;background:var(--red);color:#fff;font-size:.7rem;font-weight:600;padding:4px 10px;border-radius:20px}
.v-tag.dark{background:var(--black)}
.v-body{padding:18px;display:flex;flex-direction:column;flex:1}
.v-body h5{font-size:1.05rem;margin:0}.v-brand{font-size:.72rem;color:var(--red);font-weight:600;text-transform:uppercase;letter-spacing:.1em}
.v-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.78rem;color:#666;margin:12px 0}
.v-meta i{color:var(--red);margin-right:4px}
.price{color:var(--red);font-weight:700}
.v-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px}
.v-foot .btn{padding:.4rem .9rem;font-size:.82rem}
.featured{background:linear-gradient(120deg,#111 55%,#2a0a10);padding:90px 0;overflow:hidden;position:relative}
.featured::after{content:"";position:absolute;right:-10%;top:0;width:45%;height:100%;background:var(--red);clip-path:polygon(30% 0,100% 0,100% 100%,0 100%);opacity:.9}
.featured .container{position:relative;z-index:2}
.feat-img{min-height:300px;background-size:contain;background-repeat:no-repeat;background-position:center;filter:drop-shadow(0 25px 25px rgba(0,0,0,.5))}
.feat-specs{display:flex;flex-wrap:wrap;gap:10px}
.feat-specs span{background:rgba(255,255,255,.1);color:#fff;border-radius:20px;padding:5px 14px;font-size:.8rem}
.service-card{background:#fff;border-radius:var(--radius);padding:28px 22px;height:100%;box-shadow:0 6px 24px rgba(0,0,0,.07);transition:.3s;border-bottom:3px solid transparent}
.service-card:hover{border-bottom-color:var(--red);transform:translateY(-5px)}
.service-card i{font-size:2rem;color:var(--red)}.service-card h5{margin:12px 0 6px;font-size:1.05rem}.service-card p{color:#666;font-size:.9rem;margin:0}
.why-list{list-style:none;padding:0;margin:24px 0 0}
.why-list li{display:flex;gap:14px;margin-bottom:18px}.why-list i{color:var(--red);font-size:1.4rem}
.why-list strong{display:block}.why-list span{color:#666;font-size:.9rem}
.quote{background:#111;color:#fff;border-radius:var(--radius);padding:36px;min-height:220px}
.quote i{font-size:2.6rem;color:var(--red)}.quote p{font-size:1.05rem;margin:0 0 14px}
#whySwiper{padding-bottom:36px}.swiper-pagination-bullet-active{background:var(--red)!important}
.request-card{background:linear-gradient(120deg,var(--red),var(--red-d));border-radius:24px;padding:44px}
.request-card .form-control{border:0}
.contact-item{display:flex;gap:16px;align-items:flex-start;background:#fff;border-radius:14px;padding:16px 18px;margin-bottom:12px;box-shadow:0 4px 16px rgba(0,0,0,.05)}
.contact-item i{font-size:1.3rem;color:#fff;background:var(--red);width:42px;height:42px;border-radius:10px;display:grid;place-items:center;flex:none}
.contact-item strong{display:block;font-size:.9rem}.contact-item span{color:#666;font-size:.88rem}
.contact-form{background:#fff;border-radius:var(--radius);padding:26px;box-shadow:0 6px 24px rgba(0,0,0,.07)}
.site-footer{background:#111;color:#fff;padding:60px 0 20px}
.site-footer h6{font-weight:600;margin-bottom:14px}.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:8px}.site-footer a{color:rgba(255,255,255,.65);text-decoration:none;font-size:.9rem}.site-footer a:hover{color:var(--red)}
.socials{display:flex;gap:10px}.socials a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);display:grid;place-items:center}.socials a:hover{background:var(--red);color:#fff}
.copy{border-top:1px solid rgba(255,255,255,.1);margin-top:36px;padding-top:18px;text-align:center;font-size:.8rem;color:rgba(255,255,255,.5)}
.wa-float{position:fixed;right:18px;bottom:18px;z-index:1100;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;font-size:1.9rem;box-shadow:0 8px 24px rgba(37,211,102,.5);animation:pulse 2.4s infinite}
.wa-float:hover{color:#fff;transform:scale(1.08)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}
#modalSwiper{border-radius:14px;overflow:hidden;background:#eee}
#modalSwiper img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.spec{background:var(--soft);border-radius:10px;padding:10px 14px;font-size:.85rem}.spec small{display:block;color:#888}
.swiper-button-next,.swiper-button-prev{color:var(--red)!important;--swiper-navigation-size:22px}
@media(max-width:575px){.section{padding:56px 0}.request-card{padding:28px 20px}.hero-stats{gap:20px}}

.brand-logo{height:40px;width:auto;display:block}.footer-logo{height:46px}
@media(max-width:575px){.brand-logo{height:34px}}
.feat-img.is-photo{background-size:cover;border-radius:20px;min-height:340px;filter:drop-shadow(0 20px 30px rgba(0,0,0,.45))}

/* Grupos de fotos */
.v-photos{position:absolute;right:12px;bottom:12px;background:rgba(17,17,17,.78);color:#fff;font-size:.72rem;font-weight:600;padding:4px 10px;border-radius:20px;backdrop-filter:blur(4px)}
.v-photos i{margin-right:4px}
.v-img[data-detail]{cursor:pointer}
.v-foot .btn small{opacity:.85;font-weight:500}
.price-ask{color:#666;font-weight:600;font-size:.92rem}
#mPrice.price{white-space:nowrap}
#modalSwiper .swiper-pagination-fraction{width:auto;left:auto;right:12px;bottom:12px;background:rgba(17,17,17,.75);color:#fff;border-radius:20px;padding:2px 12px;font-size:.78rem;font-weight:600}
#modalSwiper.single .swiper-button-next,#modalSwiper.single .swiper-button-prev,#modalSwiper.single .swiper-pagination{display:none}
.m-thumbs{display:flex;gap:8px;overflow-x:auto;padding:10px 2px 4px;scrollbar-width:thin}
.m-thumbs:empty{display:none}
.m-thumb{flex:0 0 auto;width:84px;aspect-ratio:16/10;padding:0;border:2px solid transparent;border-radius:10px;overflow:hidden;background:#eee;opacity:.65;transition:.2s;cursor:pointer}
.m-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.m-thumb.active{border-color:var(--red);opacity:1}
.m-thumb:hover{opacity:1}
@media(max-width:575px){.m-thumb{width:68px}}


/* Búsqueda externa y solicitud de presupuesto */
.external-search-section{background:#fff}
.external-search-card,.external-quote-card{background:#fff;border:1px solid #ececec;border-radius:20px;padding:28px;box-shadow:0 8px 28px rgba(0,0,0,.055)}
.external-search-card .form-label,.external-quote-card .form-label{font-size:.82rem;font-weight:600;color:#555}
.external-search-note{display:flex;gap:12px;align-items:flex-start;background:#fff5f6;border:1px solid #f7dadd;border-radius:14px;padding:16px;color:#555;font-size:.84rem}
.external-search-note i{font-size:1.2rem;color:var(--red);flex:none}
.external-results{border-top:1px solid #eee;margin-top:24px;padding-top:24px}
.external-site{display:flex;align-items:center;gap:12px;height:100%;min-height:78px;border:1px solid #e8e8e8;border-radius:13px;padding:14px;color:var(--black);text-decoration:none;transition:.2s}
.external-site:hover{border-color:var(--red);transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.07);color:var(--red)}
.external-site-icon{width:42px;height:42px;border-radius:10px;background:#fff0f2;color:var(--red);display:grid;place-items:center;font-size:1.25rem;flex:none}
.external-site strong,.external-site small{display:block}.external-site strong{font-size:.9rem}.external-site small{font-size:.72rem;color:#777;margin-top:3px}
.external-quote-card h3{font-size:1.55rem}.external-quote-card textarea{resize:vertical}
@media(max-width:575px){.external-search-card,.external-quote-card{padding:20px 16px}.external-site{min-height:68px}}


/* ===== Ajustes responsive complementarios; conserva todas las secciones y componentes ===== */
html, body { max-width: 100%; }
img, svg, video, canvas { max-width: 100%; }
.container, .container-fluid { min-width: 0; }
.row > * { min-width: 0; }
button, .btn, .nav-link, a { overflow-wrap: anywhere; }
.form-control, .form-select { max-width: 100%; }
.contact-item { min-width: 0; }
.contact-item > div { min-width: 0; overflow-wrap: anywhere; }
.contact-item a { color: inherit; text-decoration: none; }
.contact-item a:hover { color: var(--red); text-decoration: underline; }
.external-search-card, .external-quote-card, .request-card, .search-box { min-width: 0; }
.search-tabs { flex-wrap: wrap; }
.v-foot { flex-wrap: wrap; }
@media (max-width: 991.98px) {
  .section { padding: 64px 0; }
  .hero { padding-top: 100px; }
  .hero-title { font-size: clamp(2rem, 6vw, 3.2rem); }
  .hero-stats { flex-wrap: wrap; gap: 18px 26px; }
  .search-box { margin-top: 36px; margin-bottom: -40px; padding: 18px; }
  #categorias { padding-top: 100px; }
  .featured { padding: 68px 0; }
  .external-search-card, .external-quote-card { padding: 24px; }
}
@media (max-width: 767.98px) {
  .section { padding: 52px 0; }
  .section-head { margin-bottom: 28px; }
  .hero { padding-top: 88px; }
  .hero-title { font-size: clamp(1.85rem, 8vw, 2.7rem); }
  .hero-shape { top: 260px; height: 330px; }
  .hero-car { min-height: 230px; }
  .hero-stats strong { font-size: 1.25rem; }
  .search-box { margin: 24px 0 -30px; padding: 16px; border-radius: 14px; }
  #categorias { padding-top: 78px; }
  .cat-card { padding: 14px 10px; }
  .cat-card img { height: 88px; }
  .v-body { padding: 15px; }
  .v-foot { align-items: stretch; }
  .v-foot .btn { flex: 1 1 auto; }
  .featured { padding: 56px 0; }
  .feat-img, .feat-img.is-photo { min-height: 230px; }
  .service-card { padding: 22px 18px; }
  .contact-item { gap: 12px; }
  .contact-item > i { flex: 0 0 auto; }
  .contact-form, .contact-form .form-control, .contact-form .form-select { width: 100%; }
  .external-search-card, .external-quote-card { padding: 20px 16px; border-radius: 16px; }
  .external-quote-card h3 { font-size: 1.3rem; }
  .modal-dialog { margin: .5rem; }
}
@media (max-width: 575.98px) {
  .container { padding-left: 16px; padding-right: 16px; }
  .section { padding: 44px 0; }
  .eyebrow { font-size: .68rem; letter-spacing: .1em; }
  .hero-title { font-size: clamp(1.75rem, 9vw, 2.35rem); }
  .lead-text { font-size: .94rem; }
  .hero-stats { gap: 14px 18px; }
  .hero-stats > div { min-width: 76px; }
  .hero-stats strong { font-size: 1.15rem; }
  .hero-stats span { font-size: .72rem; }
  .search-box { padding: 13px; }
  .search-tabs { gap: 4px; }
  .search-tabs li { padding: 6px 10px; font-size: .78rem; }
  .v-card:hover, .cat-card:hover, .service-card:hover { transform: none; }
  .v-meta { gap: 6px 10px; }
  .v-foot .btn { font-size: .76rem; padding: .45rem .6rem; }
  .contact-item { align-items: flex-start; }
  .contact-item span { font-size: .9rem; }
  .external-site { gap: 10px; padding: 12px; }
  .external-site-icon { width: 36px; height: 36px; }
  .m-thumb { width: 62px; }
  .brand-logo { max-width: 150px; height: 32px; object-fit: contain; }
  .footer-logo { max-width: 170px; height: auto; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
