/* MeGiWeb UX polish: contact experience, Material fields and success feedback. */
.contact-section {
    position: relative;
    overflow: hidden;
    padding-top: 76px;
    padding-bottom: 86px;
    background:
        radial-gradient(circle at 12% 14%, rgba(33,150,243,.12), transparent 30%),
        radial-gradient(circle at 88% 82%, rgba(0,184,169,.11), transparent 31%),
        #f7fafc;
}
.contact-section::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .35;
    background-image: radial-gradient(rgba(33,150,243,.23) 1px, transparent 1px);
    background-size: 26px 26px;
    mask-image: linear-gradient(to bottom, transparent, #000 20%, #000 80%, transparent);
}
.contact-header { position: relative; z-index: 1; }
.contact-lead { max-width: 720px; margin: -24px auto 34px; color: #64748b; text-align: center; line-height: 1.65; }
.contact-experience { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, .95fr) minmax(380px, 1.05fr); gap: 32px; max-width: 1120px; margin: 0 auto; align-items: stretch; }
.contact-visual, .contact-container { border: 1px solid rgba(148,163,184,.22); border-radius: 24px; box-shadow: 0 22px 55px rgba(15,23,42,.10); }
.contact-visual { position: relative; min-height: 520px; overflow: hidden; padding: 28px; background: linear-gradient(145deg,#0d4775 0%,#0b6ba1 48%,#0a867f 100%); color: #fff; }
.contact-visual::after { content:""; position:absolute; inset:auto -70px -90px auto; width:260px; height:260px; border-radius:50%; background:rgba(255,255,255,.08); }
.contact-orbit-svg { display: block; width: 100%; height: 320px; overflow: visible; }
.contact-orbit { fill:none; stroke:rgba(255,255,255,.20); stroke-width:1.4; stroke-dasharray:6 8; transform-origin:260px 210px; animation: contactSpin 18s linear infinite; }
.contact-orbit-b { animation-direction: reverse; animation-duration: 13s; }
.contact-route { fill:none; stroke:rgba(255,255,255,.36); stroke-width:2; stroke-linecap:round; stroke-dasharray:5 9; }
.contact-node { fill:#fff; opacity:.92; transform-origin:center; animation: contactNodePulse 2.8s ease-in-out infinite; }
.contact-node-b { animation-delay:.7s; }.contact-node-c { animation-delay:1.25s; }
.contact-node-main { filter: drop-shadow(0 12px 24px rgba(0,0,0,.22)); animation: contactCorePulse 3s ease-in-out infinite; }
.contact-envelope { fill:none; stroke:#fff; stroke-width:5; stroke-linecap:round; stroke-linejoin:round; }
.contact-traveller { fill:#b7fff5; }
.contact-visual-copy { position: relative; z-index: 2; margin-top: -8px; }
.contact-kicker { display:inline-flex; padding:6px 10px; border:1px solid rgba(255,255,255,.28); border-radius:999px; background:rgba(255,255,255,.09); font-size:11px; font-weight:800; letter-spacing:.08em; }
.contact-visual-copy h3 { margin:15px 0 10px; font-size:28px; line-height:1.18; }
.contact-visual-copy p { margin:0; color:rgba(255,255,255,.84); line-height:1.65; }
.contact-chips { display:flex; flex-wrap:wrap; gap:9px; margin-top:20px; }
.contact-chips span { display:inline-flex; align-items:center; gap:7px; padding:8px 10px; border-radius:10px; background:rgba(255,255,255,.10); font-size:12px; font-weight:700; }
.contact-container { max-width:none; margin:0; padding:34px 36px; background:rgba(255,255,255,.96); backdrop-filter: blur(12px); }
.contact-consent { margin: 10px 0 8px; color:#475569; font-size:13px; line-height:1.45; }
.contact-submit-btn { margin-top:18px; min-height:48px; border-radius:12px !important; box-shadow:0 10px 24px rgba(33,150,243,.22) !important; }

/* Activate the existing generic Material/floating-label implementation on public forms. */
.contact-form .md-global-container,
.registration-content .md-global-container { margin-top: 18px; margin-bottom: 2px; }
.contact-form .md-global-container input.ui-inputfield,
.contact-form .md-global-container textarea.ui-inputtextarea,
.registration-content .md-global-container input.ui-inputfield,
.registration-content .md-global-container textarea.ui-inputtextarea,
.registration-content .md-global-container .ui-autocomplete input.ui-inputfield {
    min-height: 48px !important;
    border-radius: 10px !important;
    border-color: #cbd5e1 !important;
    background: #fff !important;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease !important;
}
.contact-form .md-global-container textarea.ui-inputtextarea { min-height: 132px !important; padding-top: 14px !important; }
.contact-form .md-global-container.md-is-focused input.ui-inputfield,
.contact-form .md-global-container.md-is-focused textarea.ui-inputtextarea,
.registration-content .md-global-container.md-is-focused input.ui-inputfield,
.registration-content .md-global-container.md-is-focused textarea.ui-inputtextarea {
    border-color:#2196f3 !important;
    box-shadow:0 0 0 3px rgba(33,150,243,.11) !important;
}
.contact-form .md-global-container label.md-global-label,
.registration-content .md-global-container label.md-global-label { left: 13px; }
.registration-field { gap: 2px; }

.registration-success { padding-top: 30px; }
.registration-success-visual { width:150px; height:150px; margin:0 auto 4px; }
.registration-success-svg { width:100%; height:100%; overflow:visible; }
.success-ring { fill:none; stroke:#38b27d; transform-origin:90px 90px; }
.success-ring-outer { stroke-width:2; stroke-dasharray:7 9; opacity:.36; animation: successSpin 10s linear infinite; }
.success-ring-inner { stroke-width:3; opacity:.22; animation: successRing 2.4s ease-in-out infinite; }
.success-core { fill:#e9fbf3; stroke:#57c493; stroke-width:2; transform-origin:90px 90px; animation: successCore 2.1s ease-in-out infinite; }
.success-check { fill:none; stroke:#188c5a; stroke-width:8; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:70; stroke-dashoffset:70; animation: successDraw .75s .12s cubic-bezier(.2,.8,.2,1) forwards; }
.success-spark { fill:#2196f3; transform-origin:center; animation: successSpark 2s ease-in-out infinite; }
.spark-b{animation-delay:.45s}.spark-c{animation-delay:.9s}
.registration-success > p, .registration-success .ui-panelgroup > p { max-width:660px; margin:8px auto 10px; color:#64748b; line-height:1.62; }

@keyframes contactSpin { to { transform:rotate(360deg); } }
@keyframes contactNodePulse { 0%,100%{opacity:.55; transform:scale(.85)} 50%{opacity:1; transform:scale(1.12)} }
@keyframes contactCorePulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.055)} }
@keyframes successSpin { to{transform:rotate(360deg)} }
@keyframes successRing { 0%,100%{transform:scale(.94);opacity:.18} 50%{transform:scale(1.06);opacity:.42} }
@keyframes successCore { 0%,100%{transform:scale(.98)} 50%{transform:scale(1.035)} }
@keyframes successDraw { to{stroke-dashoffset:0} }
@keyframes successSpark { 0%,100%{opacity:.18;transform:scale(.65)} 50%{opacity:1;transform:scale(1.25)} }

@media (max-width: 900px) {
    .contact-experience { grid-template-columns:1fr; max-width:680px; }
    .contact-visual { min-height:430px; }
    .contact-orbit-svg { height:260px; }
}
@media (max-width: 600px) {
    .contact-section { padding:58px 14px 66px; }
    .contact-visual { padding:20px; min-height:390px; }
    .contact-container { padding:24px 18px; }
    .contact-visual-copy h3 { font-size:23px; }
}
@media (prefers-reduced-motion: reduce) {
    .contact-orbit,.contact-node,.contact-node-main,.success-ring,.success-core,.success-spark,.success-check { animation:none !important; }
    .success-check { stroke-dashoffset:0; }
}

/* Barion compliance / trust surfaces */
.barion-catalog-item,.barion-order-state{display:none!important}.barion-payment-badge{display:flex;align-items:center;gap:.85rem;margin-top:.85rem;padding:.8rem 1rem;border:1px solid rgba(9,99,170,.15);border-radius:12px;background:#fff}.barion-payment-badge img{width:min(280px,48%);height:auto;background:#101010;padding:.55rem .65rem;border-radius:10px}.barion-payment-badge span{line-height:1.45;color:#526575}.barion-footer-trust{display:grid;gap:.45rem;margin:1rem 0}.barion-footer-trust img{width:min(280px,100%);height:auto;background:#101010;padding:.45rem .55rem;border-radius:10px}.barion-footer-trust span{font-size:.82rem;opacity:.86}@media(max-width:640px){.barion-payment-badge{align-items:flex-start;flex-direction:column}.barion-payment-badge img{width:min(300px,100%)}}
