
/* Overlay + dialog */
.abs-tmodal-overlay{display:none;position:fixed;inset:0;z-index:10002;background:rgba(11,31,58,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto;animation:abs-tmodal-fade .25s ease-out}
.abs-tmodal-overlay.open{display:flex}
.abs-tmodal-dialog{background:#fff;border-radius:18px;width:100%;max-width:820px;box-shadow:0 40px 100px rgba(0,0,0,.45),0 10px 30px rgba(0,0,0,.2);position:relative;overflow:hidden;animation:abs-tmodal-slide .32s cubic-bezier(.4,0,.2,1);margin:auto 0}
.abs-tmodal-close{position:absolute;top:18px;right:18px;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;z-index:3;transition:background .2s,transform .2s;font-family:inherit;display:flex;align-items:center;justify-content:center;padding:0}
.abs-tmodal-close:hover{background:rgba(255,255,255,.28);transform:rotate(90deg)}
/* Hero */
.abs-tform-container{background:#fff;border-radius:18px;overflow:hidden}
.abs-tform-hero{background:linear-gradient(135deg,#0B1F3A 0%,#0f2847 45%,#13425c 100%);padding:40px 44px 32px;color:#fff;position:relative;overflow:hidden;text-align:left}
.abs-tform-hero::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(-45deg,transparent,transparent 14px,rgba(255,255,255,.03) 14px,rgba(255,255,255,.03) 15px);pointer-events:none}
.abs-tform-hero::after{content:'';position:absolute;top:-40%;right:-20%;width:60%;height:160%;background:radial-gradient(circle,rgba(19,168,180,.22) 0,transparent 60%);pointer-events:none}
.abs-tform-hero > *{position:relative;z-index:1}
.abs-tform-eyebrow{color:#13A8B4;margin-bottom:16px;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;display:flex;align-items:center;gap:10px;justify-content:flex-start}
.abs-tform-eyebrow::before{content:'';display:block;width:24px;height:2px;background:#13A8B4}
.abs-tform-hero h2{font-family:'DM Serif Display',serif;font-size:clamp(1.6rem,2.8vw,2.4rem);color:#fff;margin:0 0 12px;line-height:1.15;letter-spacing:-.01em;font-weight:400}
.abs-tform-hero h2 em{font-style:italic;color:#13A8B4;font-weight:400}
.abs-tform-hero p{color:rgba(255,255,255,.78);font-size:.95rem;line-height:1.6;max-width:620px;margin:0}
/* Body */
.abs-tform-body{padding:36px 44px 32px;background:#fff}
.abs-tform-success{display:none;background:linear-gradient(180deg,#e8f6f8 0%,#d4efe3 100%);border:1px solid #0E7C86;border-radius:10px;padding:18px 22px;color:#0B1F3A;margin-bottom:20px;font-size:.95rem;line-height:1.55}
.abs-tform-success.show{display:block}
.abs-tform-error{display:none;background:#fff4f4;border:1px solid #e8b2b2;border-radius:10px;padding:14px 18px;color:#922;margin-bottom:20px;font-size:.9rem}
.abs-tform-error.show{display:block}
.abs-tform-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.abs-tform-row.single{grid-template-columns:1fr}
.abs-tform-field{display:flex;flex-direction:column;gap:6px}
.abs-tform-field label{font-size:.82rem;font-weight:600;color:#0B1F3A;letter-spacing:.01em}
.abs-tform-field label .req{color:#c0392b;margin-left:2px}
.abs-tform-field input,.abs-tform-field select,.abs-tform-field textarea{padding:12px 14px;border:1.5px solid #e1e6eb;background:#fafbfc;transition:all .18s;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:.92rem;color:#0B1F3A;width:100%;box-sizing:border-box}
.abs-tform-field input:hover,.abs-tform-field select:hover,.abs-tform-field textarea:hover{border-color:#c9dde0;background:#fff}
.abs-tform-field input:focus,.abs-tform-field select:focus,.abs-tform-field textarea:focus{border-color:#0E7C86;background:#fff;box-shadow:0 0 0 4px rgba(14,124,134,.1);outline:none}
.abs-tform-field textarea{min-height:110px;resize:vertical;font-family:inherit}
.abs-tform-field select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%230B1F3A' d='M6 8L0 0h12z'/></svg>");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}
.abs-tform-checkbox{display:flex;align-items:flex-start;gap:10px;margin:8px 0 18px;font-size:.88rem;color:#4a5662;line-height:1.5}
.abs-tform-checkbox input{width:16px;height:16px;margin-top:3px;accent-color:#0E7C86;flex-shrink:0}
.abs-tform-checkbox label{font-size:.85rem;color:#4a5662;font-weight:400}
.abs-tform-submit{width:100%;background:linear-gradient(135deg,#0E7C86 0%,#13A8B4 100%);color:#fff;border:0;border-radius:10px;padding:15px 24px;font-size:1rem;font-weight:700;letter-spacing:.02em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .15s,box-shadow .15s,filter .15s;text-transform:uppercase;font-family:inherit}
.abs-tform-submit:hover{transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 10px 24px rgba(14,124,134,.25)}
.abs-tform-submit:disabled{opacity:.7;cursor:not-allowed;transform:none}
.abs-tform-note{text-align:center;margin-top:16px;font-size:.85rem;color:#6b7680}
.abs-tform-note a{color:#0E7C86;font-weight:600;text-decoration:none}
.abs-tform-note a:hover{text-decoration:underline}
/* Animations */
@keyframes abs-tmodal-fade{from{opacity:0}to{opacity:1}}
@keyframes abs-tmodal-slide{from{opacity:0;transform:translateY(-20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
/* Mobile */
@media (max-width:640px){
  .abs-tmodal-overlay{padding:0}
  .abs-tmodal-dialog{border-radius:0;min-height:100vh}
  .abs-tform-hero{padding:32px 24px 24px}
  .abs-tform-body{padding:24px 24px 28px}
  .abs-tform-row{grid-template-columns:1fr}
}
