 .ws-contact-section {
     padding-top: 2rem;
     padding-bottom: 4rem;
     background: var(--ws-contact-bg, #f8fafc);
 }

 .ws-contact-grid {
     display: grid;
     gap: 2rem;
 }

 @media (min-width: 1024px) {
     .ws-contact-grid {
         grid-template-columns: 1fr 1.4fr;
         gap: 3rem;
     }
 }

 .ws-contact-info {
     position: relative;
     padding: 2rem 1.75rem;
     background: linear-gradient(165deg, #ffffff 0%, #f8fafc 50%, #f1f5f9 100%);
     border-radius: 1.25rem;
     border: 1px solid rgba(226, 232, 240, 0.9);
     box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
     overflow: hidden;
 }

 .ws-contact-info__shapes {
     position: absolute;
     inset: 0;
     pointer-events: none;
     overflow: hidden;
 }

 .ws-contact-info__shape {
     position: absolute;
     border-radius: 50%;
     opacity: 0;
     transform: scale(0.8);
     transition: opacity 0.6s ease, transform 0.6s ease;
 }

 .ws-contact-info.is-visible .ws-contact-info__shape,
 .ws-contact-section:hover .ws-contact-info__shape {
     opacity: 1;
     transform: scale(1);
 }

 .ws-contact-info__shape--1 {
     width: 120px;
     height: 120px;
     background: radial-gradient(circle, rgba(79, 70, 229, 0.12) 0%, transparent 70%);
     top: -20px;
     right: -20px;
     transition-delay: 0.05s;
 }

 .ws-contact-info__shape--2 {
     width: 80px;
     height: 80px;
     background: radial-gradient(circle, rgba(99, 102, 241, 0.15) 0%, transparent 70%);
     bottom: 60px;
     left: -15px;
     transition-delay: 0.15s;
 }

 .ws-contact-info__shape--3 {
     width: 160px;
     height: 160px;
     background: radial-gradient(circle, rgba(79, 70, 229, 0.06) 0%, transparent 65%);
     bottom: -40px;
     right: 20%;
     transition-delay: 0.25s;
 }

 .ws-contact-info__shape--blob {
     position: absolute;
     width: 140px;
     height: 100px;
     background: rgba(79, 70, 229, 0.06);
     border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
     bottom: 1.5rem;
     right: 1rem;
     opacity: 0;
     transform: translate(10px, 10px) rotate(-5deg);
     transition: opacity 0.5s ease 0.2s, transform 0.5s ease 0.2s;
 }

 .ws-contact-info.is-visible .ws-contact-info__shape--blob,
 .ws-contact-section:hover .ws-contact-info__shape--blob {
     opacity: 1;
     transform: translate(0, 0) rotate(0deg);
 }

 .ws-contact-info__content {
     position: relative;
     z-index: 2;
 }

 .ws-contact-info-list {
     display: flex;
     flex-direction: column;
     gap: 1rem;
 }

 .ws-contact-info-card {
     background: rgba(255, 255, 255, 0.85);
     backdrop-filter: blur(8px);
     border-radius: 1rem;
     box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
     padding: 1.5rem 1.5rem 1.5rem 1.5rem;
     transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.35s ease, background 0.3s ease;
     border: 1px solid rgba(226, 232, 240, 0.7);
     position: relative;
     z-index: 2;
     overflow: hidden;
     min-height: 100px;
 }

 .ws-contact-info-card__body {
     position: relative;
     z-index: 2;
     max-width: 100%;
 }

 .ws-contact-info-card__blob {
     position: absolute;
     top: 0;
     right: 0;
     width: 4px;
     height: 100%;
     border-radius: 0 1rem 1rem 0;
     background: linear-gradient(180deg, rgba(79, 70, 229, 0.08) 0%, rgba(79, 70, 229, 0.04) 50%, transparent 100%);
     z-index: 1;
     pointer-events: none;
     opacity: 0.7;
     transition: opacity 0.3s ease, width 0.3s ease;
 }

 .ws-contact-info-card__blob::before {
     content: "";
     position: absolute;
     top: 0;
     right: 0;
     width: 1px;
     height: 100%;
     background: rgba(79, 70, 229, 0.15);
     border-radius: 0 1rem 1rem 0;
     transition: opacity 0.3s ease;
 }

 .ws-contact-info-card:hover .ws-contact-info-card__blob,
 .ws-contact-info-card:focus-visible .ws-contact-info-card__blob {
     opacity: 1;
 }

 .ws-contact-info-card:hover .ws-contact-info-card__blob::before,
 .ws-contact-info-card:focus-visible .ws-contact-info-card__blob::before {
     opacity: 1;
     background: rgba(79, 70, 229, 0.25);
 }

 .ws-contact-info-card:hover {
     transform: translateY(-3px);
     box-shadow: 0 12px 32px rgba(79, 70, 229, 0.08);
     background: rgba(255, 255, 255, 0.95);
 }

 .ws-contact-info-card__icon {
     width: 2.75rem;
     height: 2.75rem;
     border-radius: 0.75rem;
     background: rgba(79, 70, 229, 0.1);
     color: var(--primary);
     display: flex;
     align-items: center;
     justify-content: center;
     margin-bottom: 0.75rem;
     transition: transform 0.3s ease, background 0.3s ease;
 }

 .ws-contact-info-card:hover .ws-contact-info-card__icon {
     transform: scale(1.08);
     background: rgba(79, 70, 229, 0.15);
 }

 .ws-contact-info-card__icon svg {
     width: 1.25rem;
     height: 1.25rem;
 }

 .ws-contact-info-card__title {
     font-size: 1rem;
     font-weight: 600;
     color: #1e293b;
     margin: 0 0 0.25rem 0;
 }

 .ws-contact-info-card__text {
     font-size: 0.9375rem;
     color: rgba(71, 85, 105, 0.9);
     line-height: 1.5;
     margin: 0;
 }

 .ws-contact-info-card__text a {
     color: var(--primary);
     text-decoration: none;
     transition: color 0.2s ease;
 }

 .ws-contact-info-list .ws-contact-info-card__text:hover {
     text-decoration: underline;
     color: #4338ca;
 }

 /* ----- Form card ----- */
 .ws-contact-form-card {
     background: #fff;
     border-radius: 1rem;
     box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
     padding: 2rem;
     border: 1px solid rgba(226, 232, 240, 0.8);
     position: relative;
     overflow: hidden;
 }

 .ws-contact-form-card::before {
     content: "";
     position: absolute;
     width: 180px;
     height: 90px;
     background: rgba(79, 70, 229, 0.06);
     right: -30px;
     bottom: -20px;
     border-radius: 8px;
     transform: skew(15deg, -5deg);
     pointer-events: none;
 }

 .ws-contact-form-card__title {
     font-size: 1.25rem;
     font-weight: 600;
     color: #1e293b;
     margin: 0 0 0.5rem 0;
 }

 .ws-contact-form-card__desc {
     font-size: 0.9375rem;
     color: rgba(71, 85, 105, 0.9);
     margin: 0 0 1.5rem 0;
     line-height: 1.5;
 }

 .ws-contact-form-wrap .ff-default .ff-el-form-control {
     display: block;
     width: 100%;
     padding: 0.625rem 1rem;
     font-size: 1rem;
     font-weight: 400;
     line-height: 1.5;
     color: #252930;
     background-color: #fff;
     border: 1px solid #e2e8f0;
     border-radius: 0.5rem;
     transition: border-color 0.2s ease, box-shadow 0.2s ease;
     font-family: inherit;
     appearance: none;
 }

 .ws-contact-form-wrap .ff-default .ff-el-form-control:focus {
     border-color: var(--primary);
     outline: none;
     box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.15);
 }

 .ws-contact-form-wrap .ff-default .ff-el-form-control::placeholder {
     color: #94a3b8;
 }

 .ws-contact-form-wrap textarea.ff-el-form-control {
     min-height: 140px;
     resize: vertical;
 }

 .ws-contact-form-wrap .ff-el-group {
     margin-bottom: 1.25rem;
 }

 .ws-contact-form-wrap .ff-el-input--label label,
 .ws-contact-form-wrap .ff-el-input--content label {
     font-size: 0.875rem;
     font-weight: 500;
     color: #334155;
     margin-bottom: 0.375rem;
     display: block;
 }

 .ws-contact-form-wrap .ff-message-success {
     border: none !important;
     box-shadow: none !important;
     color: #15803d;
     margin: 0 0 1rem 0 !important;
     padding: 0.75rem 1rem !important;
     text-align: center;
     background: rgba(34, 197, 94, 0.1);
     border-radius: 0.5rem;
 }

 .ws-contact-form-wrap .ff_submit_btn_wrapper {
     margin-top: 0.5rem;
     margin-bottom: 0;
 }

 .ws-contact-form-wrap .ff-btn.ff-btn-submit {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     padding: 0.75rem 1.5rem;
     font-size: 1rem;
     font-weight: 600;
     color: #fff;
     background: var(--primary) !important;
     border: none;
     border-radius: 0.5rem;
     cursor: pointer;
     transition: background 0.2s ease, transform 0.05s ease;
     font-family: inherit;
     width: 100%;
     margin-top: 12px;
 }

 .ws-contact-form-wrap .ff-btn.ff-btn-submit:hover:not(:disabled) {
     background: #4338ca;
 }

 .ws-contact-form-wrap .ff-btn.ff-btn-submit:active:not(:disabled) {
     transform: scale(0.98);
 }

 .ws-contact-form-wrap .ff-btn.ff-btn-submit:disabled {
     opacity: 0.6;
     cursor: not-allowed;
 }

 .ws-contact-form-wrap .ff-recaptcha-wrapper {
     margin-bottom: 1rem;
 }