/* The enquiry form and its card: shared by the landing page (banner, popup, contact section, chat panel) and the blog sidebar. */
        .card { background:#fff; color:var(--ink); border-radius:16px; padding:22px 18px; box-shadow:0 20px 50px rgba(0,0,0,.35); }
        .card h2 { font-family:var(--h-font); font-size:var(--h-size); font-weight:var(--h-weight); line-height:var(--h-lh); letter-spacing:0; }
        .card .sub { color:var(--muted); font-size:.9rem; margin:2px 0 16px; }
        .grid { display:grid; gap:12px; }
        .field label { display:block; font-size:.8rem; font-weight:600; margin-bottom:5px; }
        input, select, textarea {
            width:100%; font:inherit; font-size:16px; /* 16px stops iOS zoom on focus */
            padding:13px 14px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink);
            appearance:none; -webkit-appearance:none; transition:border-color .15s, box-shadow .15s;
        }
        select {
            padding-right:40px; cursor:pointer;
            background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 6 5 5 5-5'/%3E%3C/svg%3E") no-repeat right 14px center;
        }
        textarea { min-height:96px; resize:vertical; }
        input:focus, select:focus, textarea:focus { outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgba(209,26,42,.12); }
        .has-error input, .has-error select, .has-error textarea { border-color:var(--brand); }
        .err { color:var(--brand); font-size:.78rem; margin-top:4px; }
        .err:empty, .fgrid .formerr:has(.err:empty) { display:none; }
        .iti { width:100%; display:block; }
        /* Crisp vector flags instead of the library's tiny 16x12 image sheet (flag images are set from JS below) */
        .iti, .iti--container { --iti-flag-width:24px; --iti-flag-height:18px; }
        .iti__flag { background-size:cover; background-position:center; background-repeat:no-repeat; border-radius:3px; box-shadow:0 0 0 1px rgba(0,0,0,.14); }
        .iti input { padding-top:13px; padding-bottom:13px; }
        .iti__country-container { z-index:5; }
        .iti__dropdown-content { border-radius:10px; border-color:var(--line); box-shadow:0 10px 30px rgba(0,0,0,.15); }
        .iti__search-input { font-size:16px; }
        .hp { position:absolute; left:-9999px; height:0; overflow:hidden; }
        .captcha { overflow:hidden; }
        .btn { width:100%; margin-top:4px; padding:15px; border:0; border-radius:10px; background:var(--brand); color:#fff; font:inherit; font-weight:700; font-size:1rem; cursor:pointer; transition:background .15s; }
        .btn:hover { background:var(--brand-dark); }
        .btn:disabled { opacity:.6; cursor:wait; }
        .ok { background:#e8f7ee; color:#17653a; border:1px solid #b7e4c7; padding:12px 14px; border-radius:10px; margin-bottom:14px; font-weight:500; font-size:.92rem; }
        .note { text-align:center; font-size:.72rem; color:var(--muted); margin-top:10px; }
        .em-ok { text-align:center; padding:8px 0 6px; }
        .em-ok .ok { font-size:1.05rem; padding:18px; margin-bottom:18px; }

        @media (min-width:640px) { .card { padding:28px; } }

        /* Wide form card: short fields sit side by side. Based on the card's own width, not the screen. */
        .card { container-type:inline-size; }
        .fgrid > * { min-width:0; }
        .fgrid .two { display:contents; }
        @container (min-width:460px) {
            .fgrid { grid-template-columns:1fr 1fr; column-gap:16px; row-gap:12px; }
            .fgrid .full { grid-column:1 / -1; }
            .card input, .card select { padding-top:11px; padding-bottom:11px; }
            .card textarea { min-height:60px; }
            .card .sub { margin-bottom:12px; }
        }
        /* Very wide card: reCAPTCHA sits beside the Source field, message and button follow. */
        @container (min-width:560px) {
            .fgrid .cap { grid-column:auto; }
            .fgrid .cap .g-recaptcha { transform:scale(.93); transform-origin:0 0; }
            .fgrid .msg { order:1; }
            .fgrid .formerr { order:2; }
            .fgrid .btn { order:3; margin-top:0; }
        }
        @media (max-width:380px) { .captcha .g-recaptcha { transform:scale(.88); transform-origin:0 0; } }
