/* Holy Vision brand refinements: logo blue leads, logo pink is a sparing accent */
:root { --brand-blue:#184995; --brand-maroon:#0f3570; --brand-pink:#c2198e; }
#topbar.announcement-bar { display:block; background:var(--announcement-bg); color:var(--announcement-color); padding:0; height:38px; max-height:38px; overflow:hidden; }
#topbar.announcement-bar:has(.announcement-viewport):not(.hide) { height:38px; }
#topbar.announcement-bar:not(:has(.announcement-viewport)) { height:0; max-height:0; }
#topbar.announcement-bar.hide { height:0; max-height:0; }
.announcement-viewport { width:100%; height:38px; overflow:hidden; display:flex; align-items:center; }
.announcement-track { display:flex; width:max-content; animation:sfhlAnnouncements var(--announcement-duration) linear infinite; }
.announcement-group { display:flex; align-items:center; flex-shrink:0; justify-content:flex-start; }
.announcement-message { white-space:nowrap; display:flex; align-items:center; gap:12px; padding:0 24px; font-size:13px; font-weight:500; }
.announcement-bullet { font-size:8px; opacity:.7; }
.announcement-viewport:hover .announcement-track,.announcement-viewport:focus .announcement-track { animation-play-state:paused; }
@keyframes sfhlAnnouncements { to { transform:translateX(-50%); } }
.logo-img,.sb-logo-img,.footer-brand-logo img { filter:none!important; box-shadow:none!important; }
.footer-brand-logo { background:#fff; padding:10px 14px; border-radius:14px; }
.nav-book-btn,.btn-primary-about,.slide-btn,.btn-submit,.contact-submit-btn,.btn-primary { background:var(--brand-blue)!important; color:#fff!important; border-color:var(--brand-blue)!important; transition:background .25s,border-color .25s,transform .25s,box-shadow .25s; }
.nav-book-btn:hover,.btn-primary-about:hover,.slide-btn:hover,.btn-submit:hover,.contact-submit-btn:hover,.btn-primary:hover { background:var(--brand-maroon)!important; border-color:var(--brand-maroon)!important; color:#fff!important; box-shadow:0 5px 15px #0f357020; transform:translateY(-2px); }
a:focus-visible,button:focus-visible { outline:3px solid #0f357080; outline-offset:4px; }
.about-section .img-frame { margin-right:0; padding:12px; background:#f0f2f8; border-radius:20px; border:1px solid #dde1ed; }
.about-section .img-frame::before,.about-section .img-frame::after { display:none; }
.about-section .main-img { border-radius:12px; height:500px; box-shadow:none; }
.about-brand-panel { display:flex; align-items:center; gap:18px; background:#fff; padding:20px 12px 10px; border-radius:0 0 12px 12px; border-bottom:3px solid var(--brand-maroon); }
.about-brand-mark { flex:0 0 72px; width:72px; height:72px; display:grid; place-items:center; }
.about-brand-mark img { width:100%; height:100%; object-fit:contain; }
.about-brand-copy { display:flex; flex-direction:column; gap:5px; }
.about-brand-copy span { color:var(--brand-pink); text-transform:uppercase; letter-spacing:2px; font-size:10px; font-weight:700; }
.about-brand-copy strong { color:var(--brand-blue); font-size:15px; line-height:1.4; }
.about-brand-copy small { color:#697089; font-size:11px; letter-spacing:.5px; }
.mission-vision-page [style*="box-shadow"] { box-shadow:0 6px 25px #18499508!important; }
.mission-vision-page .badge { background:#eef0f7!important; color:var(--brand-maroon)!important; }
.mission-vision-page .col-12 > div:first-child { background:linear-gradient(120deg,#184995f2,#0f3570e8)!important; border-radius:18px!important; }
.mission-vision-page .col-12 > div[style*="display: flex"] { border-radius:18px!important; border:1px solid #dde1ed; box-shadow:none!important; background:#fff; }
.mission-vision-page div[style*="background: rgb(237, 233, 254)"] { background:#e8eef8!important; color:var(--brand-maroon)!important; border-radius:4px!important; letter-spacing:1px; }
.mission-vision-page h2,.mission-vision-page h3 { color:var(--brand-blue)!important; }
.mission-vision-page h4 { color:var(--brand-maroon)!important; }
.mission-vision-page div[style*="background: rgb(245, 243, 255)"] { background:#eef0f7!important; }
.home-contact-submit-btn,.bn-btn,.btn-contact,.btn-submit-contact { background:var(--brand-blue)!important; border-color:var(--brand-blue)!important; color:#fff!important; transition:background .25s,transform .25s; }
.home-contact-submit-btn:hover,.bn-btn:hover,.btn-contact:hover,.btn-submit-contact:hover { background:var(--brand-maroon)!important; border-color:var(--brand-maroon)!important; transform:translateY(-2px); }
.product-kicker { display:block; color:var(--brand-pink); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:2px; margin-bottom:14px; }
.clients-section { padding:65px 0; background:#f7f8fb; text-align:center; }
.client-slider { --client-columns:5; margin-top:30px; }
.client-viewport { overflow:hidden; }
.client-track { display:flex; transition:transform .5s ease; }
.client-item { flex:0 0 calc(100% / var(--client-columns)); padding:8px; min-width:0; }
.client-logo { background:#fff; border:1px solid #e4e7ef; border-radius:12px; height:130px; padding:20px; display:flex; align-items:center; justify-content:center; }
.client-logo img { max-width:100%; width:auto; max-height:90px; object-fit:contain; }
.client-dots { display:flex; justify-content:center; gap:10px; margin-top:24px; }
.client-dot { width:9px; height:9px; padding:0; border:0; border-radius:20px; background:#c8cde0; transition:width .25s,background .25s; }
.client-dot[aria-current="true"] { width:26px; background:var(--brand-pink); }
@media (max-width:1199px) { .d-nav .nav-link { padding-left:10px; padding-right:10px; font-size:13px; } }
@media (max-width:991px) { .client-slider { --client-columns:3; } .about-section .main-img { height:420px; } }
@media (max-width:575px) { .client-slider { --client-columns:2; } .client-logo { height:110px; padding:16px; } .about-section .main-img { height:360px; } .about-brand-panel { gap:12px; } .about-brand-copy strong { font-size:13px; } .announcement-message { font-size:12px; padding:0 20px; } }
@media (prefers-reduced-motion:reduce) { .announcement-track { animation:none; } .announcement-viewport { overflow-x:auto; } .announcement-group[aria-hidden] { display:none; } .client-track { transition:none; } }

/* Structured Mission & Vision cards */
.mission-vision-page { padding:48px 0 70px; }
.mv-page-header { background:linear-gradient(120deg,#184995,#0f3570); border-radius:18px; text-align:center; padding:50px 28px; margin-bottom:34px; color:#fff; }
.mv-eyebrow { display:block; color:#c1c9dd; text-transform:uppercase; letter-spacing:2px; font-size:10px; font-weight:650; margin-bottom:14px; }
.mv-page-header h1 { color:#fff; font-size:clamp(28px,3vw,40px); font-weight:750; margin-bottom:13px; }
.mv-page-header p { color:#d9dfed; font-size:16px; line-height:1.7; max-width:680px; margin:0 auto; }
.mv-entry-list { display:flex; flex-direction:column; gap:30px; }
.mv-entry { display:grid; grid-template-columns:minmax(0,42%) minmax(0,58%); border:1px solid #dde1ed; border-radius:18px; overflow:hidden; background:#fff; }
.mv-entry-image { min-height:300px; }
.mv-entry-image img { width:100%; height:100%; min-height:300px; object-fit:cover; display:block; }
.mv-entry-content { align-self:center; padding:36px 40px; min-width:0; }
.mv-entry-badge { display:inline-block; padding:8px 16px; border-radius:4px; background:#f5e9ec; color:#0f3570; text-transform:uppercase; font-size:12px; line-height:1.5; letter-spacing:.7px; font-weight:700; margin-bottom:18px; }
.mission-vision-page .mv-entry h2 { font-size:clamp(21px,2vw,27px); line-height:1.4; font-weight:750; margin:0 0 15px; color:#184995; }
.mv-entry-description { color:#69758e; font-size:16px; line-height:1.9; overflow-wrap:anywhere; }
.mv-entry-description p:last-child { margin-bottom:0; }
.mv-entry-description ul,.mv-entry-description ol { padding-left:22px; }
.mv-entry.mv-image-right { grid-template-columns:minmax(0,58%) minmax(0,42%); }
.mv-image-right .mv-entry-image { grid-column:2; grid-row:1; }
.mv-image-right .mv-entry-content { grid-column:1; grid-row:1; }
@media(max-width:767px) { .mission-vision-page { padding:28px 0 45px; } .mv-page-header { padding:36px 22px; } .mv-page-header p { font-size:14px; } .mv-entry,.mv-entry.mv-image-right { grid-template-columns:minmax(0,1fr); } .mv-entry-image,.mv-image-right .mv-entry-image { grid-column:1; grid-row:1; min-height:230px; } .mv-entry-image img { height:230px; min-height:230px; } .mv-entry-content,.mv-image-right .mv-entry-content { grid-column:1; grid-row:2; padding:27px 24px; } .mv-entry-description { font-size:14px; } }

/* Why Choose Us: photo on one side, reasons as a divided list on the other */
.why-page { padding:64px 0 80px; background:#fff; }
.why-layout { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:64px; align-items:start; }
.why-media { position:sticky; top:150px; padding:0 0 28px 28px; }
.why-media::before { content:""; position:absolute; left:0; bottom:0; width:70%; height:70%; border-radius:20px; background:#e8eef8; }
.why-photo { position:relative; border-radius:20px; overflow:hidden; aspect-ratio:4/5; }
.why-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.why-since { position:absolute; right:-22px; bottom:56px; background:var(--brand-blue); color:#fff; border-radius:16px; padding:18px 22px; display:flex; align-items:center; gap:12px; box-shadow:0 14px 34px rgba(24,73,149,.28); }
.why-since strong { font-size:38px; font-weight:800; line-height:1; letter-spacing:-1px; }
.why-since span { font-size:12px; line-height:1.35; color:#d6e0f2; text-transform:uppercase; letter-spacing:1px; }
.why-eyebrow { display:inline-flex; align-items:center; gap:10px; color:var(--brand-pink); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:2px; margin-bottom:14px; }
.why-eyebrow::before { content:""; width:28px; height:2px; background:var(--brand-pink); }
.why-content h1 { color:var(--brand-blue); font-size:clamp(28px,3.2vw,40px); font-weight:750; line-height:1.2; margin-bottom:12px; }
.why-lead { color:#5f6b85; font-size:16px; line-height:1.7; margin-bottom:18px; }
.why-list { list-style:none; margin:0; padding:0; }
.why-list li { display:flex; gap:18px; align-items:flex-start; padding:18px 0; border-bottom:1px solid #e6ebf3; }
.why-list li:last-child { border-bottom:0; }
.why-icon { flex:0 0 46px; width:46px; height:46px; border-radius:12px; border:1.5px solid #c9d6ee; color:var(--brand-blue); display:flex; align-items:center; justify-content:center; font-size:18px; transition:background .25s,color .25s,border-color .25s; }
.why-list li:hover .why-icon { background:var(--brand-blue); border-color:var(--brand-blue); color:#fff; }
.why-list h2 { color:#1d2b48; font-size:17px; font-weight:700; margin:2px 0 4px; }
.why-list p { color:#66728a; font-size:14px; line-height:1.65; margin:0; }
.why-empty { color:#66728a; }
.why-cta { margin-top:26px; padding-top:24px; border-top:2px solid var(--brand-blue); display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.why-cta p { margin:0; color:#5f6b85; font-size:15px; }
.why-cta p strong { color:var(--brand-blue); }
.why-cta-actions { display:flex; gap:10px; flex-wrap:wrap; }
.why-cta-call,.why-cta-link { display:inline-flex; align-items:center; gap:8px; padding:11px 20px; border-radius:10px; font-weight:600; font-size:14px; text-decoration:none; transition:background .25s,color .25s; }
.why-cta-call { background:var(--brand-blue); color:#fff; }
.why-cta-call:hover { background:var(--brand-maroon); color:#fff; }
.why-cta-link { color:var(--brand-blue); border:1px solid #c9d6ee; }
.why-cta-link:hover { background:#e8eef8; color:var(--brand-blue); }
@media (max-width:991px) { .why-layout { grid-template-columns:1fr; gap:48px; } .why-media { position:relative; top:auto; max-width:520px; margin:0 auto; width:100%; } .why-photo { aspect-ratio:4/3; } }
@media (max-width:575px) { .why-page { padding:40px 0 56px; } .why-media { padding:0 0 18px 18px; } .why-since { right:-6px; bottom:36px; padding:12px 16px; } .why-since strong { font-size:28px; } .why-list li { gap:14px; padding:16px 0; } .why-cta { flex-direction:column; align-items:flex-start; } }

/* Keep the extra Properties menu item and Inquire button inside the bar on laptop widths */
@media (min-width:992px) and (max-width:1399px) { .logo-a { margin-left:0; } .d-nav .nav-link { padding-left:9px; padding-right:9px; font-size:13px; } }
@media (min-width:992px) and (max-width:1099px) { .logo-img { height:80px; } .d-nav .nav-link { padding-left:7px; padding-right:7px; font-size:12px; } .nav-book-btn { padding-left:14px!important; padding-right:14px!important; } }

/* Our Team cards and profile popup */
.team-section { padding:64px 0 72px; background:#f7f9fc; }
.team-page { padding-top:56px; }
.team-head { text-align:center; max-width:640px; margin:0 auto 36px; }
.team-head h1,.team-head h2 { color:var(--brand-blue); font-size:clamp(28px,3.2vw,38px); font-weight:750; margin-bottom:10px; }
.team-head p { color:#5f6b85; font-size:16px; line-height:1.7; margin:0; }
.team-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.team-card { background:#fff; border-radius:16px; overflow:hidden; border:1px solid #e3e8f2; cursor:pointer; transition:transform .25s,box-shadow .25s; outline:none; }
.team-card:hover,.team-card:focus-visible { transform:translateY(-5px); box-shadow:0 14px 32px rgba(24,73,149,.12); }
.team-card:focus-visible { outline:3px solid #18499566; outline-offset:3px; }
.team-photo { position:relative; aspect-ratio:1/1.05; overflow:hidden; background:#e8eef8; }
.team-photo img { width:100%; height:100%; object-fit:cover; object-position:center top; transition:transform .4s; }
.team-card:hover .team-photo img { transform:scale(1.05); }
.team-view { position:absolute; left:50%; bottom:14px; transform:translate(-50%,10px); opacity:0; background:#fff; color:var(--brand-blue); font-size:12px; font-weight:600; padding:7px 14px; border-radius:20px; white-space:nowrap; transition:opacity .25s,transform .25s; }
.team-card:hover .team-view,.team-card:focus-visible .team-view { opacity:1; transform:translate(-50%,0); }
.team-body { padding:18px 16px 20px; text-align:center; }
.team-body h3 { color:#1d2b48; font-size:17px; font-weight:700; margin-bottom:4px; }
.team-body p { color:var(--brand-pink); font-size:13px; font-weight:600; margin-bottom:12px; }
.team-social { display:flex; justify-content:center; gap:8px; flex-wrap:wrap; }
.team-social a { width:32px; height:32px; border-radius:50%; background:#e8eef8; color:var(--brand-blue); display:inline-flex; align-items:center; justify-content:center; font-size:13px; text-decoration:none; transition:background .2s,color .2s; }
.team-social a:hover { background:var(--brand-blue); color:#fff; }
.team-modal .modal-content { border:0; border-radius:18px; overflow:hidden; position:relative; }
.team-modal-close { position:absolute; top:12px; right:12px; z-index:2; width:34px; height:34px; border-radius:50%; border:0; background:#fff; color:#1d2b48; box-shadow:0 2px 10px rgba(0,0,0,.12); }
.team-modal-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); }
.team-modal-about { padding:36px 34px; }
.team-modal-eyebrow { display:block; color:var(--brand-pink); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:2px; margin-bottom:10px; }
.team-modal-about h3 { color:var(--brand-blue); font-size:22px; font-weight:700; margin-bottom:14px; }
.team-modal-text { color:#5f6b85; font-size:15px; line-height:1.75; max-height:340px; overflow:auto; }
.team-modal-text p:last-child { margin-bottom:0; }
.team-modal-profile { background:#f2f5fb; padding:36px 26px; text-align:center; border-left:1px solid #e3e8f2; }
.team-modal-profile img { width:150px; height:150px; border-radius:50%; object-fit:cover; object-position:center top; border:5px solid #fff; box-shadow:0 8px 24px rgba(24,73,149,.15); margin-bottom:16px; }
.team-modal-profile h2 { color:#1d2b48; font-size:20px; font-weight:700; margin-bottom:4px; }
.team-modal-role { color:var(--brand-pink); font-size:13px; font-weight:600; margin-bottom:16px; }
.team-modal-contact { list-style:none; padding:0; margin:0 0 16px; text-align:left; }
.team-modal-contact li { display:flex; align-items:center; gap:10px; padding:8px 0; border-top:1px solid #e1e7f1; font-size:13px; min-width:0; }
.team-modal-contact li[hidden] { display:none; }
.team-modal-contact i { color:var(--brand-blue); width:16px; }
.team-modal-contact a { color:#3b4863; text-decoration:none; overflow-wrap:anywhere; }
@media (max-width:991px) { .team-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:767px) { .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; } .team-modal-grid { grid-template-columns:1fr; } .team-modal-profile { order:-1; border-left:0; border-bottom:1px solid #e3e8f2; padding:30px 20px 22px; } .team-modal-about { padding:24px 22px 28px; } .team-modal-text { max-height:none; } }
@media (max-width:420px) { .team-body { padding:14px 10px 16px; } .team-body h3 { font-size:15px; } .team-social a { width:28px; height:28px; } }

/* Footer */
.site-footer { background:#0b2350; color:#aab6cf; font-size:15px; }
.site-footer .footer-main { padding:64px 0 48px; }
.site-footer .footer-brand-logo img { height:96px; width:auto; display:block; }
.footer-about { color:#aab6cf; line-height:1.75; margin-bottom:20px; max-width:340px; }
.footer-social { display:flex; gap:10px; flex-wrap:wrap; }
.footer-social a { width:38px; height:38px; border-radius:50%; background:#ffffff14; color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:15px; text-decoration:none; transition:background .25s,transform .25s; }
.footer-social a:hover { background:var(--brand-blue); transform:translateY(-2px); color:#fff; }
.footer-title { color:#fff; font-size:18px; font-weight:700; margin-bottom:22px; padding-bottom:12px; position:relative; }
.footer-title::after { content:""; position:absolute; left:0; bottom:0; width:36px; height:3px; border-radius:3px; background:var(--brand-pink); }
.footer-links { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.footer-links a { color:#aab6cf; text-decoration:none; white-space:nowrap; display:inline-flex; align-items:center; gap:9px; transition:color .2s,transform .2s; }
.footer-links a i { font-size:10px; color:#6f85b3; }
.footer-links a:hover { color:#fff; transform:translateX(3px); }
.footer-contact { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.footer-contact li { display:flex; gap:12px; align-items:flex-start; min-width:0; }
.footer-contact a { color:#d4dcec; text-decoration:none; overflow-wrap:break-word; min-width:0; padding-top:6px; }
.footer-contact a:hover { color:#fff; }
.footer-contact strong { display:block; color:#fff; font-size:14px; font-weight:600; margin-bottom:2px; padding-top:5px; }
.footer-contact div span { display:block; color:#aab6cf; font-size:14px; line-height:1.6; }
.footer-icon { flex:0 0 34px; width:34px; height:34px; border-radius:10px; background:#ffffff12; color:#8fb0e8; display:inline-flex; align-items:center; justify-content:center; font-size:14px; }
.footer-map { border-radius:12px; overflow:hidden; border:1px solid #ffffff1f; margin-bottom:12px; }
.footer-map iframe { display:block; width:100%; height:170px; border:0; }
.footer-map-link { color:#d4dcec; text-decoration:none; font-size:14px; display:inline-flex; align-items:center; gap:8px; }
.footer-map-link:hover { color:#fff; }
.footer-bottom { border-top:1px solid #ffffff17; padding:18px 0; }
.footer-bottom .container-xl { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; }
.footer-bottom p { margin:0; color:#8d9bb8; font-size:14px; }
.footer-bottom strong { color:#fff; font-weight:600; }
.footer-motto { font-style:italic; letter-spacing:.5px; }
@media (max-width:767px) { .site-footer .footer-main { padding:48px 0 36px; } .footer-bottom .container-xl { justify-content:center; text-align:center; } }

/* Back to top (stacked above the WhatsApp button) */
.scroll-top-btn { width:48px; height:48px; border-radius:50%; border:0; background:var(--brand-blue); color:#fff; font-size:17px; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 14px rgba(24,73,149,.35); cursor:pointer; opacity:0; visibility:hidden; transform:translateY(10px); transition:opacity .3s,transform .3s,visibility .3s,background .2s; }
.scroll-top-btn.is-visible { opacity:1; visibility:visible; transform:translateY(0); }
.scroll-top-btn:hover { background:var(--brand-maroon); }
@media (max-width:576px) { .scroll-top-btn { width:44px; height:44px; font-size:16px; } }

/* Welcome popup */
.welcome-popup { position:fixed; inset:0; z-index:10050; display:flex; align-items:center; justify-content:center; padding:16px; background:rgba(8,27,61,.55); opacity:0; transition:opacity .3s; }
.welcome-popup[hidden] { display:none; }
.welcome-popup.is-open { opacity:1; }
.welcome-card { position:relative; width:100%; max-width:440px; background:#fff; border-radius:20px; padding:34px 30px 28px; text-align:center; box-shadow:0 24px 60px rgba(8,27,61,.35); transform:translateY(18px) scale(.97); transition:transform .35s ease; border-top:5px solid var(--brand-blue); }
.welcome-popup.is-open .welcome-card { transform:none; }
.welcome-close { position:absolute; top:12px; right:12px; width:34px; height:34px; border-radius:50%; border:0; background:#f0f3f9; color:#3b4863; display:flex; align-items:center; justify-content:center; }
.welcome-close:hover { background:#e2e8f4; }
.welcome-logo { height:96px; width:auto; margin-bottom:14px; }
.welcome-eyebrow { display:block; color:var(--brand-pink); font-size:12px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:6px; }
.welcome-card h2 { color:var(--brand-blue); font-size:22px; font-weight:750; line-height:1.3; margin-bottom:10px; }
.welcome-card p { color:#5f6b85; font-size:15px; line-height:1.7; margin-bottom:22px; }
.welcome-actions { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.welcome-primary,.welcome-secondary { display:inline-flex; align-items:center; gap:8px; padding:11px 20px; border-radius:10px; font-weight:600; font-size:14px; text-decoration:none; transition:background .2s; }
.welcome-primary { background:var(--brand-blue); color:#fff; }
.welcome-primary:hover { background:var(--brand-maroon); color:#fff; }
.welcome-secondary { border:1px solid #c9d6ee; color:var(--brand-blue); }
.welcome-secondary:hover { background:#e8eef8; color:var(--brand-blue); }
@media (prefers-reduced-motion:reduce) { .welcome-popup,.welcome-card,.scroll-top-btn { transition:none; } }

/* Contact form protection and live validation */
.hp-field { position:absolute!important; left:-10000px!important; width:1px; height:1px; overflow:hidden; }
.form-alert { font-size:14px; border-radius:10px; }
.char-counter { text-align:right; font-size:12px; color:#8a94a8; margin-top:4px; }
.char-counter.near-limit { color:#dc2626; }
form[data-contact-form] .is-invalid-live { border-color:#dc2626!important; box-shadow:0 0 0 3px rgba(220,38,38,.12)!important; }
form[data-contact-form] .is-valid-live { border-color:#16a34a!important; }
form[data-contact-form] .live-error-msg { display:none; color:#dc2626; font-size:.8rem; margin-top:5px; }
form[data-contact-form] .live-error-msg.show { display:block; }
form[data-contact-form] [type="submit"]:disabled { opacity:.75; cursor:wait; transform:none; }

/* Math security question */
.captcha-row { display:flex; align-items:flex-start; gap:12px; }
.captcha-question { flex:0 0 auto; display:inline-flex; align-items:center; height:46px; padding:0 18px; border-radius:10px; background:#e8eef8; color:var(--brand-blue); font-size:18px; font-weight:700; letter-spacing:1px; user-select:none; }
.captcha-input-wrap { flex:0 1 140px; min-width:0; }
.captcha-input { text-align:center; font-size:18px!important; font-weight:600; height:46px; }
.captcha-hint { display:block; color:#8a94a8; font-size:12px; margin-top:6px; }
.captcha-input-wrap .live-error-msg,.captcha-input-wrap .invalid-feedback { width:max-content; max-width:min(320px,70vw); }
/* Home page keeps the team preview to a single row of four on tablets too */
@media (min-width:768px) and (max-width:991px) { .team-section-home .team-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; } .team-section-home .team-body { padding:14px 10px 16px; } .team-section-home .team-body h3 { font-size:15px; } }
