  /* ===== IML Products Grid ===== */
  .section-padding{padding:56px 0;}
  .iml-products-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:20px;
    margin:0 auto;
    max-width:1200px;
  }

  .iml-card{
    min-width:0;
    container-type:inline-size;
    border:2px solid var(--maroon);
    border-radius:16px;
    padding:16px;
    background-color:var(--white);
    display:flex;
    flex-direction:column;
    gap:16px;
    transition:transform .3s cubic-bezier(.25,1,.5,1), box-shadow .3s ease;
  }
  .iml-card:hover{
    transform:translateY(-5px);
    box-shadow:0 15px 30px rgba(0,46,78,0.1);
  }

  .iml-card-img-wrapper{
    border:2px solid var(--maroon);
    border-radius:12px;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
    background-color:var(--white);
    aspect-ratio:4/3;
  }
  .iml-card-img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .5s cubic-bezier(.25,1,.5,1);
  }
  .iml-card:hover .iml-card-img{
    transform:scale(1.03);
  }

  .iml-card-footer{
    border:2px solid var(--maroon);
    border-radius:8px;
    padding:12px 4px;
    text-align:center;
    font-family:'Jost',sans-serif;
    font-size:clamp(9px,6cqi,18px);
    white-space:nowrap;
    letter-spacing:-0.02em;
    font-weight:700;
    color:var(--maroon);
    background-color:var(--white);
    transition:background-color .3s ease, color .3s ease;
  }
  .iml-card:hover .iml-card-footer{
    background-color:var(--maroon);
    color:var(--white);
  }

  /* ===== Modal Popup ===== */
  .modal{
    position:fixed;
    inset:0;
    z-index:1100;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:linear-gradient(180deg, rgba(0,28,48,0.82), rgba(0,46,78,0.74));
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
    opacity:0;
    visibility:hidden;
    transition:opacity .35s ease, visibility .35s ease;
  }
  .modal.open{opacity:1;visibility:visible;}

  .modal-content{
    position:relative;
    width:100%;
    max-width:880px;
    max-height:calc(100vh - 40px);
    display:grid;
    grid-template-columns:0.95fr 1.2fr;
    background:var(--white);
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 30px 80px rgba(0,15,28,0.35), 0 4px 16px rgba(0,15,28,0.12);
    transform:translateY(30px) scale(0.94);
    opacity:0;
    transition:transform .45s cubic-bezier(.22,1,.36,1), opacity .4s ease;
  }
  .modal.open .modal-content{
    transform:translateY(0) scale(1);
    opacity:1;
  }

  /* Close button */
  .modal-close{
    position:absolute;top:14px;right:14px;z-index:30;
    width:38px;height:38px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,0.94);
    color:var(--maroon);
    cursor:pointer;
    border:1px solid rgba(0,46,78,0.08);
    box-shadow:0 4px 12px rgba(0,28,48,0.14);
    transition:transform .3s cubic-bezier(.4,0,.2,1), background .3s ease, color .3s ease;
  }
  .modal-close:hover{transform:rotate(90deg) scale(1.06);background:var(--maroon);color:#fff;}
  .modal-close svg{width:16px;height:16px;}

  /* Mobile drag handle + bottom sheet */
  .modal-sheet-handle{
    display:none;
    position:absolute;top:10px;left:50%;transform:translateX(-50%);
    width:44px;height:5px;border-radius:3px;
    background:rgba(0,46,78,0.16);z-index:30;
  }

  @media (max-width:768px){
    .modal{padding:0;align-items:flex-end;}
    .modal-content{
      grid-template-columns:1fr;
      max-height:94vh;
      border-radius:24px 24px 0 0;
      overflow-y:auto;
      -webkit-overflow-scrolling:touch;
    }
    .modal-sheet-handle{display:block;}
    .modal-image-side{padding:36px 28px 26px;min-height:0;}
    .modal-product-img{max-height:200px;}
  }
  @media (max-width:480px){
    .modal-content{max-height:96vh;}
    .modal-image-side{padding:30px 22px 20px;}
    .modal-product-img{max-height:170px;}
  }

  /* Image side */
  .modal-image-side{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:48px 34px;
    min-height:300px;
    background:
      radial-gradient(circle at 20% 15%, rgba(74,159,216,0.18), transparent 55%),
      radial-gradient(circle at 85% 92%, rgba(0,166,153,0.14), transparent 50%),
      linear-gradient(165deg, #e9f3fb 0%, #f4f9fc 60%, #eff6fb 100%);
    overflow:hidden;
  }
  .modal-image-side::before,
  .modal-image-side::after{
    content:'';
    position:absolute;
    border-radius:50%;
    background:rgba(255,255,255,0.6);
    filter:blur(2px);
    pointer-events:none;
  }
  .modal-image-side::before{width:220px;height:220px;top:-60px;left:-70px;}
  .modal-image-side::after{width:260px;height:260px;bottom:-90px;right:-80px;}
  .modal-product-img{
    position:relative;
    z-index:2;
    max-height:340px;
    max-width:100%;
    width:auto;
    height:auto;
    object-fit:contain;
    filter:drop-shadow(0 22px 30px rgba(0,28,48,0.22));
    animation:modalFloat 5s ease-in-out infinite;
  }
  @keyframes modalFloat{
    0%,100%{transform:translateY(0);}
    50%{transform:translateY(-8px);}
  }

  .modal-info-side{
    display:flex;
    flex-direction:column;
    padding:34px 36px 30px;
    overflow-y:auto;
  }
  .modal-info-side::-webkit-scrollbar{width:8px;}
  .modal-info-side::-webkit-scrollbar-thumb{background:#dbe6ef;border-radius:4px;}
  @media (max-width:768px){.modal-info-side{padding:24px 22px 28px;overflow-y:visible;}}
  @media (max-width:480px){.modal-info-side{padding:16px 16px 20px;}}

  .modal-category{
    align-self:flex-start;
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:0.72rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:var(--gold);
    background:var(--blush);
    padding:6px 12px;
    border-radius:999px;
    margin-bottom:12px;
  }
  .modal-category::before{
    content:'';
    width:6px;height:6px;border-radius:50%;
    background:var(--gold);
  }

  .modal-title{
    font-family:'Fraunces',serif;
    font-size:clamp(1.4rem,2.4vw,1.75rem);
    font-weight:600;
    color:var(--maroon);
    line-height:1.18;
    margin-bottom:10px;
  }

  .modal-desc{
    font-size:0.9rem;
    color:#5b7489;
    line-height:1.65;
    margin-bottom:18px;
    padding-bottom:18px;
    border-bottom:1px dashed #dce7f0;
  }
  @media (max-width:480px){.modal-desc{display:none;}}

  .modal-features{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-bottom:22px;
  }
  .spec-card{
    display:flex;
    align-items:center;
    gap:10px;
    background:var(--cream);
    border:1px solid #e2edf5;
    border-radius:12px;
    padding:10px 12px;
    transition:transform .3s cubic-bezier(.4,0,.2,1), box-shadow .3s ease, border-color .3s ease;
  }
  .spec-card:hover{
    transform:translateY(-2px);
    box-shadow:0 8px 18px rgba(0,46,78,0.08);
    border-color:rgba(74,159,216,0.35);
  }
  .spec-icon{
    width:34px;height:34px;flex-shrink:0;border-radius:10px;
    display:flex;align-items:center;justify-content:center;
    background:var(--white);
    color:var(--gold);
    border:1px solid #dce7f0;
  }
  .spec-icon svg{width:17px;height:17px;}
  .spec-meta{
    display:flex;flex-direction:column;
    line-height:1.25;
    min-width:0;
  }
  .spec-label{
    font-size:0.66rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:0.07em;
    color:#7b93a8;
  }
  .spec-value{
    font-size:0.88rem;
    font-weight:600;
    color:var(--maroon);
    overflow-wrap:break-word;
    line-height:1.3;
  }
  @media (max-width:380px){.modal-features{grid-template-columns:1fr;}}

  /* Form */
  .form-title-custom{
    font-family:'Fraunces',serif;
    font-size:1.15rem;
    font-weight:600;
    color:var(--maroon);
    margin-bottom:4px;
  }
  .form-subtitle{
    font-size:0.8rem;
    color:#7b93a8;
    margin-bottom:18px;
  }
  .form-group{margin-bottom:14px;position:relative;}
  .form-group-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;}
  @media (max-width:600px){.modal-action-form .form-group-row{grid-template-columns:1fr;gap:0;}}
  .form-label{
    display:block;
    font-size:0.76rem;
    font-weight:600;
    letter-spacing:0.02em;
    color:var(--maroon);
    margin-bottom:6px;
  }
  .form-label .required{color:#E63946;}
  .form-input{
    width:100%;
    padding:11px 14px;
    border:1.5px solid #dde8f1;
    background:var(--white);
    border-radius:10px;
    font-family:'Jost',sans-serif;
    font-size:0.9rem;
    color:var(--ink);
    transition:border-color .25s ease, box-shadow .25s ease;
    outline:none;
  }
  .form-input::placeholder{color:#9db2c2;}
  .form-input:focus{
    border-color:var(--gold);
    box-shadow:0 0 0 4px rgba(74,159,216,0.15);
  }
  .form-error{
    font-size:0.74rem;
    color:#E63946;
    margin-top:5px;
    display:none;
  }
  .form-group.invalid .form-input{
    border-color:#E63946;
    box-shadow:0 0 0 4px rgba(230,57,70,0.12);
  }
  .form-group.invalid .form-error{display:block;}

  .modal-buttons-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-top:18px;
  }
  .modal-buttons-row .btn{
    width:100%;
    min-width:0;
    justify-content:center;
    border-radius:10px;
    padding:12px 18px;
    transition:transform .25s cubic-bezier(.4,0,.2,1), box-shadow .25s ease, background-color .25s ease;
  }
  .modal-buttons-row .btn:hover{transform:translateY(-2px);}
  .modal-buttons-row .btn:active{transform:translateY(0);}
  @media (max-width:380px){.modal-buttons-row{grid-template-columns:1fr;}}

  .btn-submit{
    background-color:var(--maroon);
    color:var(--white);
    font-family:'Jost',sans-serif;
    font-size:0.9rem;
    font-weight:600;
    gap:8px;
  }
  .btn-submit:hover{
    background-color:var(--maroon-dark);
    color:var(--white);
    box-shadow:0 10px 22px rgba(0,46,78,0.24);
  }
  .btn-submit:disabled{opacity:0.7;cursor:not-allowed;transform:none !important;}

  .btn-whatsapp{
    background-color:#25D366;
    color:var(--white);
    font-family:'Jost',sans-serif;
    font-size:0.9rem;
    font-weight:600;
    gap:8px;
  }
  .btn-whatsapp:hover{
    background-color:#1fb457;
    color:var(--white);
    box-shadow:0 10px 22px rgba(37,211,102,0.3);
  }

  /* Toast */
  .toast-container{
    position:fixed;top:30px;right:30px;z-index:1200;
    display:flex;flex-direction:column;gap:10px;
  }
  .toast{
    background-color:var(--white);
    color:var(--ink);
    padding:13px 18px;
    border-radius:12px;
    box-shadow:0 12px 34px rgba(0,28,48,0.16);
    border:1px solid #e6eef5;
    display:flex;
    align-items:center;
    gap:12px;
    transform:translateX(120%);
    opacity:0;
    transition:all .4s cubic-bezier(.175,.885,.32,1.275);
    font-size:0.92rem;
    min-width:260px;
  }
  .toast.show{transform:translateX(0);opacity:1;}
  .toast-icon{
    width:30px;height:30px;flex-shrink:0;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    color:var(--white);
    font-size:0.95rem;
    font-weight:bold;
  }
  .toast-success .toast-icon{background:#25D366;}
  .toast-error .toast-icon{background:#E63946;}
  .toast-message{font-weight:500;}
  @media (max-width:700px){
    .toast{min-width:0;max-width:calc(100vw - 32px);}
  }
  @media (max-width:480px){
    .toast-container{top:16px;right:16px;left:16px;}
    .toast{min-width:0;width:100%;}
  }


@media(max-width:768px){
  .iml-products-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%;gap:12px}
  .iml-card{padding:8px;gap:8px;border-radius:12px}
  .iml-card-img-wrapper{border-radius:8px}
  .iml-card-footer{padding:10px 2px;font-size:clamp(8px,6cqi,14px);line-height:1.4;white-space:nowrap}
}
