/* MIXED CSS PACK */
/* Template: factory/index.html */
/* Template mtime: 2026-02-23 02:42:24 */

/* external link (no embedded): https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap */
/* external link (no embedded): https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css */

/* ===== INLINE <style> BLOCK #1 ===== */
:root{
      --accent:#928d8d;
      --accent-dark:#7a7575;
      --ink:#1e1e1e;
      --muted:#5f5f5f;
      --soft-bg:#f9f9f9;
      --white:#ffffff;
      --radius-lg:24px;
      --radius-md:16px;
      --radius-sm:12px;
      --shadow-card:0 20px 35px -8px rgba(0,0,0,0.07), 0 5px 15px rgba(0,0,0,0.03);
      --shadow-hover:0 30px 45px -12px rgba(0,0,0,0.15), 0 8px 20px rgba(0,0,0,0.05);
      --shadow-btn:0 8px 18px rgba(146,141,141,0.2);
      --transition:all .25s cubic-bezier(.2,0,0,1);
      --nav-offset:88px;
    }

    *{ box-sizing:border-box; }
    html,body{ height:100%; scroll-behavior:smooth; }
    body{
      font-family:'Inter',system-ui,-apple-system,sans-serif;
      color:var(--ink);
      background:var(--white);
      overflow-x:hidden;
      line-height:1.5;
      font-weight:400;
    }

    html, body{ overflow-x:hidden; width:100%; }
    img, video{ max-width:100%; height:auto; }

    h1,h2,h3,h4,.h1,.h2,.h3,.h4{ font-weight:700; letter-spacing:-0.02em; }
    .fw-black{ font-weight:900; }
    .muted{ color:var(--muted); }
    .accent{ color:var(--accent); }

    section[id],[id].anchor-offset{ scroll-margin-top:var(--nav-offset); }

    .btn-accent{
      --bs-btn-bg:var(--accent);
      --bs-btn-border-color:var(--accent);
      --bs-btn-hover-bg:var(--accent-dark);
      --bs-btn-hover-border-color:var(--accent-dark);
      --bs-btn-color:#fff;
      --bs-btn-hover-color:#fff;
      --bs-btn-focus-shadow-rgb:146,141,141;
      --bs-btn-active-bg:var(--accent-dark);
      --bs-btn-active-border-color:var(--accent-dark);
      border-radius:60px;
      padding:.75rem 1.5rem;
      font-weight:600;
      font-size:1rem;
      transition:var(--transition);
      box-shadow:none;
    }
    .btn-accent:hover{ transform:translateY(-3px); box-shadow:var(--shadow-btn); }

    .btn-outline-accent{
      --bs-btn-color:var(--accent);
      --bs-btn-border-color:var(--accent);
      --bs-btn-hover-bg:var(--accent);
      --bs-btn-hover-border-color:var(--accent);
      --bs-btn-hover-color:#fff;
      --bs-btn-focus-shadow-rgb:146,141,141;
      --bs-btn-active-bg:var(--accent);
      --bs-btn-active-border-color:var(--accent);
      border-radius:60px;
      padding:.75rem 1.5rem;
      font-weight:600;
      font-size:1rem;
      transition:var(--transition);
    }
    .btn-outline-accent:hover{ transform:translateY(-3px); box-shadow:var(--shadow-btn); }

    .navbar{
      backdrop-filter:blur(12px);
      background:rgba(255,255,255,.85);
      border-bottom:1px solid rgba(0,0,0,.03);
      box-shadow:0 4px 20px rgba(0,0,0,.02);
    }
    .navbar .navbar-brand{
      font-weight:800;
      letter-spacing:-0.02em;
      color:var(--ink);
      font-size:1.2rem;
      display:flex;
      align-items:center;
      gap:10px;
      min-width:0;
    }
    .brand-mark{
      width:34px;height:34px;
      border-radius:12px;
      display:grid;place-items:center;
      background:rgba(146,141,141,.10);
      border:1px solid rgba(146,141,141,.15);
      flex:0 0 auto;
      overflow:hidden;
    }
    .brand-mark img{ width:22px;height:22px; object-fit:contain; display:block; }
    .navbar .navbar-brand span{
      display:block;
      max-width:100%;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .navbar .nav-link{
      font-weight:500;
      color:var(--ink);
      padding:.5rem 1rem !important;
      transition:var(--transition);
      border-radius:30px;
      font-size:.95rem;
    }
    .navbar .nav-link:hover{
      color:var(--accent);
      background:rgba(146,141,141,.05);
    }
    .navbar-toggler{
      border:1px solid rgba(0,0,0,.08);
      border-radius:12px;
      padding:.5rem .6rem;
      box-shadow:none;
    }
    .navbar-toggler:focus{
      box-shadow:none;
      border-color:var(--accent);
    }

    .section{ padding:100px 0; }
    .anchor-offset{ scroll-margin-top:90px; }

    .eyebrow{
      display:inline-flex;
      align-items:center;
      gap:.5rem;
      font-size:.8rem;
      font-weight:600;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:var(--accent);
      background:rgba(146,141,141,.08);
      padding:.4rem 1rem;
      border-radius:60px;
      border:1px solid rgba(146,141,141,.1);
      backdrop-filter:blur(4px);
    }
    .section-title{
      font-weight:800;
      font-size:clamp(2rem,4vw,2.8rem);
      letter-spacing:-.03em;
      margin-top:1rem;
      margin-bottom:1rem;
      line-height:1.2;
    }
    .section-subtitle{
      color:var(--muted);
      max-width:70ch;
      margin-inline:auto;
      font-size:1.1rem;
    }

    .hero{
      padding-top:140px;
      padding-bottom:80px;
      background:linear-gradient(145deg, rgba(146,141,141,.06) 0%, rgba(255,255,255,0) 70%);
    }
    .hero h1{
      font-weight:900;
      letter-spacing:-.03em;
      line-height:1.1;
      font-size:clamp(2.4rem,5vw,3.6rem);
      margin:1rem 0 1.2rem;
    }
    .hero p{
      color:var(--muted);
      font-size:1.1rem;
      max-width:65ch;
    }
    .hero-cta{
      display:flex;
      gap:1rem;
      flex-wrap:wrap;
      margin:2rem 0 1.5rem;
    }
    .hero-points{ margin:1.2rem 0 0; }
    .hero-point{
      display:flex;
      gap:.8rem;
      align-items:flex-start;
      color:var(--ink);
      font-weight:500;
      margin-bottom:.6rem;
    }
    .hero-point .dot{
      width:10px;height:10px;border-radius:50%;
      background:var(--accent);
      margin-top:.5rem;
      flex:0 0 auto;
      box-shadow:0 8px 18px rgba(146,141,141,.22);
    }

    .hero-media{
      border-radius:var(--radius-lg);
      background:var(--white);
      box-shadow:var(--shadow-card);
      border:1px solid rgba(0,0,0,.03);
      overflow:hidden;
      padding:12px;
      max-width:520px;
      margin-inline:auto;
      transition:var(--transition);
    }
    .hero-media:hover{ box-shadow:var(--shadow-hover); }
    .hero-media .frame{
      width:100%;
      aspect-ratio:1/1;
      background:var(--soft-bg);
      border-radius:calc(var(--radius-lg) - 8px);
      overflow:hidden;
      display:flex;
      align-items:center;
      justify-content:center;
    }
    .hero-media img{
      width:auto;
      max-width:100%;
      height:auto;
      max-height:100%;
      object-fit:contain;
      display:block;
    }

    .card-soft{
      border:1px solid rgba(0,0,0,.03);
      border-radius:var(--radius-md);
      background:var(--white);
      box-shadow:var(--shadow-card);
      transition:var(--transition);
      height:100%;
      overflow:hidden;
    }
    .card-soft:hover{
      box-shadow:var(--shadow-hover);
      transform:translateY(-5px);
    }
    .card-soft .card-body{ padding:1.8rem 1.5rem; }

    .icon-circle{
      width:52px;height:52px;
      border-radius:18px;
      display:flex;
      align-items:center;
      justify-content:center;
      background:rgba(146,141,141,.1);
      color:var(--accent);
      border:1px solid rgba(146,141,141,.15);
      margin-bottom:1.2rem;
      font-size:1.25rem;
      transition:var(--transition);
      flex:0 0 auto;
    }
    .card-soft:hover .icon-circle{
      background:var(--accent);
      color:#fff;
      border-color:var(--accent);
    }

    .service-item{
      display:flex;
      gap:1rem;
      align-items:flex-start;
      padding:1.2rem;
      border-radius:var(--radius-md);
      border:1px solid rgba(0,0,0,.03);
      background:var(--white);
      box-shadow:var(--shadow-card);
      height:100%;
      transition:var(--transition);
    }
    .service-item:hover{ box-shadow:var(--shadow-hover); transform:translateY(-4px); }
    .service-item .icon-circle{
      width:44px;height:44px;
      border-radius:14px;
      font-size:1.1rem;
      margin-bottom:0;
    }
    .service-item h3{
      font-size:1.05rem;
      font-weight:700;
      margin:0 0 .2rem;
    }
    .service-item p{
      font-size:.92rem;
      color:var(--muted);
      margin:0;
    }

    .pack-card .badge{
      border-radius:60px;
      font-weight:600;
      padding:.4rem .7rem;
    }
    .pack-list{
      margin:0;
      padding-left:1.1rem;
      color:var(--muted);
    }
    .pack-list li{ margin:.25rem 0; }

    .contact-box{
      border-radius:var(--radius-md);
      border:1px solid rgba(0,0,0,.03);
      background:var(--soft-bg);
      padding:2rem;
      height:100%;
    }
    .contact-line{
      display:flex;
      gap:1rem;
      align-items:flex-start;
      padding:1.2rem 0;
      border-bottom:1px solid rgba(0,0,0,.05);
    }
    .contact-line:last-child{ border-bottom:0; }
    .contact-label{
      font-weight:700;
      font-size:.85rem;
      text-transform:uppercase;
      letter-spacing:.03em;
      color:var(--muted);
      min-width:120px;
    }
    .contact-value{ font-weight:600; }
    .contact-value a{
      color:var(--ink);
      text-decoration:none;
      transition:var(--transition);
    }
    .contact-value a:hover{ color:var(--accent); }

    .form-control,.form-select{
      border-radius:var(--radius-sm);
      border:1px solid rgba(0,0,0,.1);
      padding:.8rem 1rem;
      font-size:.95rem;
      transition:var(--transition);
    }
    .form-control:focus,.form-select:focus{
      border-color:var(--accent);
      box-shadow:0 0 0 .25rem rgba(146,141,141,.15);
      outline:none;
    }
    .form-label{
      font-weight:600;
      font-size:.9rem;
      margin-bottom:.4rem;
      color:var(--ink);
    }

    /* ===== GALERÍA (NO ROMPER) ===== */
    .gal-gallery .carousel{
      max-width:980px;
      margin-inline:auto;
      position:relative;
    }
    .gal-frame{
      height:clamp(220px,50vh,460px);
      background:var(--soft-bg);
      border-radius:var(--radius-lg);
      overflow:hidden;
      box-shadow:var(--shadow-card);
      display:flex;
      align-items:center;
      justify-content:center;
      padding:12px;
      border:1px solid rgba(0,0,0,.02);
    }
    .gal-img{
      width:auto !important;
      max-width:100%;
      height:auto !important;
      max-height:100%;
      object-fit:contain !important;
      object-position:center;
      display:block;
      cursor:zoom-in;
      border-radius:8px;
    }
    .gal-gallery .carousel-control-prev,
    .gal-gallery .carousel-control-next{
      z-index:20;
      width:48px;height:48px;
      top:50%;
      transform:translateY(-50%);
      opacity:0;
      background:rgba(255,255,255,.9);
      backdrop-filter:blur(8px);
      border-radius:50%;
      margin:0 16px;
      border:1px solid rgba(0,0,0,.05);
      box-shadow:0 8px 18px rgba(0,0,0,.1);
      transition:var(--transition);
    }
    .gal-gallery:hover .carousel-control-prev,
    .gal-gallery:hover .carousel-control-next{ opacity:1; }
    .gal-gallery .carousel-control-prev-icon,
    .gal-gallery .carousel-control-next-icon{
      filter:none;
      width:1.5rem;height:1.5rem;
      background-size:100% 100%;
    }
    .gal-gallery .carousel-indicators{ bottom:-50px; z-index:10; }
    .gal-gallery .carousel-indicators button{
      width:8px;height:8px;border-radius:50%;
      background:rgba(146,141,141,.4);
      border:none;margin:0 6px;
      transition:var(--transition);
    }
    .gal-gallery .carousel-indicators button.active{
      background:var(--accent);
      width:24px;border-radius:20px;
    }
    .gal-gallery{ padding-bottom:70px; }
    #galLightbox .modal-content{
      background:rgba(0,0,0,.95);
      backdrop-filter:blur(12px);
    }
    #galLightboxImg{
      max-height:86vh;
      width:100%;
      height:auto;
      object-fit:contain;
    }
    .gal-lightbox-nav{
      position:absolute;
      top:50%;
      transform:translateY(-50%);
      border:0;
      width:54px;height:54px;
      border-radius:50%;
      background:rgba(255,255,255,.15);
      backdrop-filter:blur(8px);
      color:#fff;
      font-size:32px;
      line-height:54px;
      text-align:center;
      z-index:5;
      cursor:pointer;
      transition:var(--transition);
      border:1px solid rgba(255,255,255,.1);
    }
    .gal-lightbox-nav:hover{
      background:rgba(255,255,255,.3);
      transform:translateY(-50%) scale(1.05);
    }
    .gal-lightbox-nav.gal-prev{ left:24px; }
    .gal-lightbox-nav.gal-next{ right:24px; }

    /* Accordion */
    .accordion-item{
      border:1px solid rgba(0,0,0,.03);
      border-radius:var(--radius-md) !important;
      overflow:hidden;
      margin-bottom:12px;
      box-shadow:var(--shadow-card);
    }
    .accordion-button{
      font-weight:600;
      color:var(--ink);
      background:#fff;
      padding:1.2rem 1.5rem;
    }
    .accordion-button:not(.collapsed){
      color:var(--accent);
      background:rgba(146,141,141,.02);
      box-shadow:none;
    }
    .accordion-button:focus{ box-shadow:none; border-color:rgba(146,141,141,.2); }
    .accordion-body{ padding:1.2rem 1.5rem; color:var(--muted); }

    /* Footer */
    footer{ background:#111113; color:#fff; width:100%; overflow-x:hidden; }
    footer a{
      color:rgba(255,255,255,.8);
      text-decoration:none;
      transition:var(--transition);
      font-size:.95rem;
    }
    footer a:hover{ color:#fff; transform:translateX(4px); }
    .footer-top{
      padding:64px 0 40px;
      border-bottom:1px solid rgba(255,255,255,.05);
    }
    .footer-bottom{
      padding:24px 0;
      color:rgba(255,255,255,.6);
      font-size:.9rem;
    }
    .footer-brand{
      display:flex;
      align-items:center;
      gap:12px;
      margin-bottom:16px;
      min-width:0;
    }
    .footer-brand .icon-circle{
      background:rgba(255,255,255,.1);
      color:#fff;
      border-color:rgba(255,255,255,.15);
      margin-bottom:0;
    }

    /* Floats */
    .social-float{
      position:fixed;
      right:18px;
      bottom:18px;
      z-index:9999;
      display:flex;
      flex-direction:column;
      align-items:flex-end;
      gap:12px;
      font-family:inherit;
    }
    .wa-float{ position:relative; }
    .wa-btn{
      width:60px;height:60px;
      border-radius:50%;
      border:none;
      background:linear-gradient(135deg,#25D366,#128C7E);
      color:#fff;
      display:grid;
      place-items:center;
      cursor:pointer;
      box-shadow:0 10px 30px rgba(37,211,102,.45);
      transition:transform .3s, box-shadow .3s;
    }
    .wa-btn:hover{
      transform:translateY(-3px) scale(1.05);
      box-shadow:0 14px 36px rgba(37,211,102,.55);
    }
    .wa-card{
      position:absolute;
      right:0;
      bottom:74px;
      width:min(360px,92vw);
      background:#fff;
      border-radius:18px;
      border:1px solid #e3e6ea;
      box-shadow:0 18px 60px rgba(0,0,0,.25);
      overflow:hidden;
      transform:translateY(10px);
      opacity:0;
      transition:.3s;
    }
    .wa-card[aria-modal="true"]{ transform:none; opacity:1; }
    .wa-head{
      display:flex;
      align-items:center;
      gap:12px;
      padding:14px;
      background:linear-gradient(135deg,var(--accent),var(--accent-dark));
      color:#fff;
    }
    .wa-avatar{
      width:40px;height:40px;
      background:#fff;
      border-radius:8px;
      display:grid;
      place-items:center;
      overflow:hidden;
    }
    .wa-avatar img{ width:26px;height:26px; object-fit:contain; }
    .wa-title{ font-weight:700; }
    .wa-status{ font-size:.85rem; opacity:.9; }
    .wa-close{
      margin-left:auto;
      border:none;
      background:transparent;
      color:#fff;
      font-size:24px;
      cursor:pointer;
    }
    .wa-body{
      padding:14px;
      max-height:40vh;
      overflow:auto;
      background:#f8f9fa;
      display:flex;
      flex-direction:column;
      gap:8px;
    }
    .wa-bubble{
      max-width:88%;
      padding:10px 12px;
      border-radius:14px;
      font-size:.95rem;
      box-shadow:0 4px 10px rgba(0,0,0,.08);
    }
    .wa-bot{
      background:#fff;
      border:1px solid #e3e6ea;
      align-self:flex-start;
    }
    .wa-user{
      background:#eaf4f8;
      border:1px solid #cfe4ef;
      align-self:flex-end;
    }
    .wa-compose{
      display:grid;
      grid-template-columns:1fr auto;
      gap:8px;
      padding:10px;
      border-top:1px solid #e3e6ea;
      background:#fff;
    }
    .wa-compose textarea{
      resize:none;
      border-radius:12px;
      padding:10px;
      border:1px solid #e3e6ea;
      font-family:inherit;
    }
    .wa-send{
      background:var(--accent);
      color:#fff;
      border:none;
      border-radius:12px;
      padding:0 16px;
      cursor:pointer;
      transition:var(--transition);
    }
    .wa-send:hover{ background:var(--accent-dark); }

    /* Helpers */
    .no-overflow, .no-overflow *{
      overflow-wrap:anywhere;
      word-break:break-word;
    }

    /* Responsive */
    @media (max-width: 991.98px){
      .section{ padding:80px 0; }
      .hero{ padding-top:120px; }
      .navbar .nav-link:hover{ background:transparent; }
    }
    @media (max-width: 575.98px){
      .hero-cta .btn{ width:100%; }
      .navbar .navbar-brand{ max-width:calc(100% - 72px); }
      .navbar-collapse{ overflow-x:hidden; }
      .navbar-collapse .d-flex{ width:100%; flex-wrap:wrap; }
      .navbar-collapse .btn{ width:100%; }
      .footer-bottom .container{
        flex-direction:column;
        align-items:flex-start;
        gap:6px;
      }
      .gal-frame{ height:clamp(200px,40vh,320px); }
    }

    /* Honeypot */
    .hp-field{
      position:absolute !important;
      left:-9999px !important;
      top:auto !important;
      width:1px !important;
      height:1px !important;
      overflow:hidden !important;
    }

