/* Only bridges official SoluMo assets and PHP behaviour into the supplied template. */
.solumo-logo-dark { width: 198px; height: auto; object-fit: contain; }
.solumo-logo-light { width: 198px; height: auto; object-fit: contain; }
.solumo-mark { width: 44px; height: 44px; object-fit: contain; }
.solumo-hero-visual { max-height: 430px; width: min(897px, 90vw); object-fit: cover; object-position: center; }
.solumo-hero-photo { height: clamp(260px, 31vw, 430px); border-radius: 28px 28px 0 0; object-position: center 52%; box-shadow: 0 24px 70px rgba(20,46,110,.26); }
.solumo-service-image { width: 100%; height: 100%; object-fit: cover; }
.solumo-language { min-width: 54px; border: 1px solid rgba(26,26,28,.14); border-radius: 12px; background: #fff; padding: 10px 8px; color: #1a1a1c; font-size: 13px; font-weight: 600; }
.solumo-mobile-panel { position: fixed; z-index: 80; inset: 0; display: none; overflow-y: auto; background: #fff; padding: 24px; }
.solumo-mobile-panel.is-open { display: block; }
.solumo-mobile-panel nav { display: grid; margin-top: 38px; border-top: 1px solid rgba(26,26,28,.12); }
.solumo-mobile-panel a, .solumo-mobile-panel summary { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(26,26,28,.12); padding: 17px 0; color: #1a1a1c; font-size: 20px; text-decoration: none; }
.solumo-mobile-panel details a { padding: 12px 0 12px 18px; color: rgba(26,26,28,.65); font-size: 16px; }
.solumo-mobile-panel summary { cursor: pointer; list-style: none; }
.solumo-mobile-panel summary::-webkit-details-marker { display: none; }
.solumo-contact-form input, .solumo-contact-form textarea { width: 100%; border: 1px solid rgba(26,26,28,.14); border-radius: 12px; background: #fff; padding: 13px 14px; color: #1a1a1c; outline: 0; }
.solumo-contact-form input:focus, .solumo-contact-form textarea:focus { border-color: #864ffe; box-shadow: 0 0 0 3px rgba(134,79,254,.14); }
.solumo-contact-form label { display: grid; gap: 8px; color: rgba(26,26,28,.7); font-size: 14px; font-weight: 600; }
.solumo-form-status { margin: 0; font-size: 14px; }
.solumo-form-status.success { color: #14755d; }
.solumo-form-status.error { color: #a33f2d; }
[dir="rtl"] .solumo-mobile-panel details a { padding-right: 18px; padding-left: 0; }
@media (max-width: 1279px) { .solumo-desktop-only { display: none !important; } }
@media (min-width: 1280px) { .solumo-mobile-only { display: none !important; } }

/* Inner-page compositions retain the supplied financial-management-platform
   geometry while using SoluMo Group photography and copy. */
.sg-about-visual { position: relative; min-height: 560px; max-width: 1080px; margin-inline: auto; display: flex; align-items: flex-end; justify-content: center; }
.sg-about-photo { position: relative; z-index: 3; width: min(630px, 64vw); height: 500px; overflow: hidden; border-radius: 24px 24px 0 0; background: #c8ff69; }
.sg-about-photo::before { content: ""; position: absolute; inset: 110px 0 0; z-index: 0; border-radius: 22px 22px 0 0; background: #c8ff69; }
.sg-about-photo img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: contain; object-position: center bottom; filter: grayscale(1) contrast(1.03); }
.sg-about-orbit { position: absolute; z-index: 4; left: 34%; bottom: 175px; width: 210px; height: 92px; border: 3px solid #1a1a1c; border-radius: 50%; transform: rotate(19deg); pointer-events: none; }
.sg-about-orbit::after { content: ""; position: absolute; inset: 14px -8px; border: 3px solid #1a1a1c; border-radius: 50%; }
.sg-about-chart { position: absolute; z-index: 5; left: 0; bottom: 34px; width: 255px; min-height: 250px; padding: 24px; border-radius: 18px; background: #fff; }
.sg-about-chart strong { display: block; margin-top: 6px; color: #1a1a1c; font-size: 28px; font-weight: 500; }
.sg-bars { height: 130px; margin-top: 24px; display: flex; align-items: end; justify-content: space-between; gap: 10px; }
.sg-bars i { width: 18px; border-radius: 9px 9px 0 0; background: #864ffe; }
.sg-bars i:nth-child(1) { height: 45%; } .sg-bars i:nth-child(2) { height: 28%; } .sg-bars i:nth-child(3) { height: 72%; } .sg-bars i:nth-child(4) { height: 55%; } .sg-bars i:nth-child(5) { height: 86%; }
.sg-about-badge { position: absolute; z-index: 6; right: 7%; top: 110px; }
.sg-about-target { position: absolute; z-index: 6; right: 0; top: 190px; width: 160px; padding: 16px; border-radius: 16px; }
.sg-about-target small, .sg-about-target strong { display: block; }
.sg-about-target strong { margin-top: 7px; color: #c8ff69; font-size: 26px; font-weight: 500; }
.sg-about-balance { position: absolute; z-index: 6; right: -35px; bottom: 15px; width: 290px; padding: 24px; border-radius: 18px; background: #fff; }
.sg-about-balance small, .sg-about-balance strong { display: block; }
.sg-about-balance strong { margin: 8px 0 24px; font-size: 30px; font-weight: 500; }
.sg-about-balance div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sg-about-balance span { padding: 12px; border-radius: 12px; background: #f0f1f2; color: rgba(26,26,28,.68); font-size: 12px; }
.sg-mission-media { position: relative; min-height: 480px; padding: 26px; border-radius: 20px; background: rgba(255,255,255,.68); box-shadow: 0 24px 70px rgba(26,26,28,.08); }
.sg-mission-media img { width: 100%; height: 100%; min-height: 430px; border-radius: 16px; object-fit: cover; }
.sg-mission-note { position: absolute; left: 50%; bottom: -44px; width: min(360px, 78%); transform: translateX(-50%); padding: 22px; border-radius: 14px; background: #fff; box-shadow: 0 18px 45px rgba(26,26,28,.15); }
.sg-mission-note span, .sg-mission-note strong { display: block; }
.sg-mission-note span { color: #864ffe; font-size: 12px; font-weight: 600; text-transform: uppercase; }
.sg-mission-note strong { margin-top: 7px; color: #1a1a1c; font-size: 17px; line-height: 1.35; font-weight: 500; }
.sg-product-stage { position: relative; min-height: 610px; overflow: hidden; border-radius: 28px; background: #c8ff69; }
.sg-product-stage > figure { position: absolute; inset-block: 0; right: 0; width: 54%; }
.sg-product-stage > figure img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; filter: grayscale(.18); }
.sg-product-copy { position: relative; z-index: 3; width: 51%; min-height: 610px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 24px; padding: 70px; }
.sg-product-copy h2 { max-width: 520px; }
.sg-product-copy p { max-width: 520px; color: rgba(26,26,28,.7); }
.sg-product-float { position: absolute; z-index: 5; right: 40px; bottom: 40px; display: grid; min-width: 210px; padding: 22px; border-radius: 16px; background: #1a1a1c; color: #fff; }
.sg-product-float strong { font-size: 26px; font-weight: 500; }
.sg-product-float span { margin-top: 4px; color: #83e7ee; }
.sg-faq-plus { display: inline-flex; width: 34px; height: 34px; flex: 0 0 34px; align-items: center; justify-content: center; border-radius: 50%; background: #1a1a1c; color: #fff; font-size: 20px; transition: transform .25s ease; }
details[open] .sg-faq-plus { transform: rotate(45deg); }

@media (max-width: 1023px) {
  .sg-about-visual { min-height: 640px; }
  .sg-about-photo { width: 72vw; }
  .sg-about-chart { left: 2%; bottom: 0; }
  .sg-about-balance { right: 1%; }
  .sg-product-stage > figure { width: 48%; }
  .sg-product-copy { width: 58%; padding: 46px; }
}
@media (max-width: 767px) {
  .sg-about-visual { min-height: auto; display: grid; gap: 14px; grid-template-columns: 1fr 1fr; }
  .sg-about-photo { grid-column: 1 / -1; grid-row: 1; width: 100%; height: 430px; }
  .sg-about-chart, .sg-about-balance, .sg-about-target, .sg-about-badge { position: static; width: 100%; }
  .sg-about-chart { min-height: 220px; }
  .sg-about-target { align-self: stretch; }
  .sg-about-orbit { display: none; }
  .sg-product-stage { display: flex; flex-direction: column; }
  .sg-product-stage > figure { position: relative; width: 100%; height: 420px; order: 1; }
  .sg-product-copy { width: 100%; min-height: auto; padding: 38px 24px; order: 2; }
  .sg-product-float { right: 18px; top: 370px; bottom: auto; }
}
@media (max-width: 520px) {
  .sg-about-visual { grid-template-columns: 1fr; }
  .sg-about-photo { height: 370px; }
  .sg-about-badge { justify-self: start; }
  .sg-about-balance { grid-column: 1; }
  .sg-mission-media { padding: 12px; min-height: 390px; }
  .sg-mission-media img { min-height: 365px; }
  .sg-product-stage > figure { height: 340px; }
  .sg-product-float { top: 290px; }
}
