/* Sorov Typography Polish
   Goal: less oversized/bold, cleaner designer/developer portfolio feel.
*/

:root {
    --sorov-bg: #15171d;
    --sorov-card: rgba(255,255,255,.045);
    --sorov-border: rgba(255,255,255,.10);
    --sorov-text: rgba(255,255,255,.78);
    --sorov-muted: rgba(255,255,255,.56);
    --sorov-green: #00d88c;
}

/* Global text balance */
body {
    font-weight: 400 !important;
    letter-spacing: 0 !important;
}

p,
li,
span,
small,
input,
textarea,
select,
button,
a {
    font-weight: 400;
}

strong,
.fw-bold {
    font-weight: 650 !important;
}

/* Main headings: reduce huge bold style */
h1,
h2,
h3,
h4,
.premium-hero-title,
.premium-section-title,
.case-study-title,
.ds-1,
.ds-2,
.ds-3,
.ds-4 {
    font-weight: 700 !important;
    letter-spacing: -1.4px !important;
}

/* Hero */
.premium-hero {
    padding-top: 88px !important;
    padding-bottom: 60px !important;
    min-height: auto !important;
}

.premium-hero-title {
    font-size: clamp(48px, 5.6vw, 76px) !important;
    line-height: 1.02 !important;
    max-width: 850px !important;
    margin-bottom: 20px !important;
}

.premium-hero-text {
    font-size: 17px !important;
    line-height: 1.7 !important;
    max-width: 820px !important;
    color: var(--sorov-text) !important;
}

.premium-hero-badge {
    font-size: 14px !important;
    padding: 8px 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
}

/* Hero buttons */
.btn,
.btn-gradient,
.btn-outline-secondary {
    font-size: 14px !important;
    font-weight: 650 !important;
    padding: 13px 20px !important;
    border-radius: 12px !important;
}

/* Hero image should not peek outside */
.premium-hero .row {
    overflow: hidden !important;
}

@media (min-width: 992px) {
    .hero-orbit-wrap {
        transform: scale(.86) !important;
        transform-origin: center center !important;
        max-width: 430px !important;
        min-height: 420px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .hero-orbit-bg {
        width: 300px !important;
        height: 300px !important;
    }

    .hero-person-frame {
        width: 270px !important;
        height: 335px !important;
    }

    .hero-orbit-ring {
        width: 390px !important;
        height: 390px !important;
    }

    .hero-card-left {
        left: -8px !important;
        top: 225px !important;
    }

    .hero-card-right {
        right: -8px !important;
        bottom: 118px !important;
    }
}

/* Sections */
.premium-section,
.natural-about,
.case-study-hero {
    padding-top: 70px !important;
    padding-bottom: 70px !important;
}

.premium-section-title,
.case-study-title {
    font-size: clamp(34px, 4.2vw, 54px) !important;
    line-height: 1.12 !important;
    letter-spacing: -1.2px !important;
    max-width: 850px !important;
}

.premium-section-subtitle {
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: var(--sorov-muted) !important;
    max-width: 760px !important;
}

/* Reduce large empty gaps */
.premium-section .row.align-items-end {
    margin-bottom: 28px !important;
}

.mt-5 {
    margin-top: 2rem !important;
}

.mb-5 {
    margin-bottom: 2rem !important;
}

/* Stats / counters compact */
.stats-section,
.counter-section,
.funfact-section,
.premium-counter-section,
.experience-section {
    padding: 48px 0 !important;
    min-height: auto !important;
}

.stat-card,
.stats-card,
.counter-card,
.counter-item,
.funfact-card,
.funfact-item,
.premium-stat-card,
.experience-card {
    padding: 22px 24px !important;
    border-radius: 18px !important;
    min-height: auto !important;
}

.stat-card h2,
.stat-card h3,
.stats-card h2,
.stats-card h3,
.counter-card h2,
.counter-card h3,
.counter-item h2,
.counter-item h3,
.funfact-card h2,
.funfact-card h3,
.funfact-item h2,
.funfact-item h3,
.premium-stat-card h2,
.premium-stat-card h3,
.experience-card h2,
.experience-card h3,
.number,
.counter,
.count {
    font-size: clamp(32px, 4.5vw, 54px) !important;
    font-weight: 650 !important;
    line-height: 1.05 !important;
}

.stat-card p,
.stats-card p,
.counter-card p,
.counter-item p,
.funfact-card p,
.funfact-item p,
.premium-stat-card p,
.experience-card p {
    font-size: 15px !important;
    line-height: 1.35 !important;
    color: var(--sorov-muted) !important;
}

/* About section */
.natural-about-card {
    padding: 30px !important;
    border-radius: 22px !important;
}

.natural-about-card h2 {
    font-size: clamp(30px, 3.4vw, 44px) !important;
    line-height: 1.18 !important;
    font-weight: 650 !important;
    letter-spacing: -1px !important;
}

.natural-about-card p {
    font-size: 15.5px !important;
    line-height: 1.75 !important;
}

/* Service cards */
.premium-service-card {
    padding: 28px !important;
    border-radius: 22px !important;
    min-height: auto !important;
}

.premium-service-card h3,
.premium-service-card h4 {
    font-size: 24px !important;
    font-weight: 650 !important;
    line-height: 1.25 !important;
}

.premium-service-card p {
    font-size: 15px !important;
    line-height: 1.65 !important;
}

/* Portfolio grid: proper card, not tiny row */
.premium-behance-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)) !important;
    gap: 24px !important;
    column-count: initial !important;
}

.premium-project-card {
    display: block !important;
    width: 100% !important;
    max-width: 420px !important;
    padding: 12px !important;
    border-radius: 20px !important;
}

.premium-project-image {
    width: 100% !important;
    display: block !important;
    border-radius: 16px !important;
    overflow: hidden !important;
}

.premium-project-image img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
    display: block !important;
}

.premium-project-meta {
    padding: 16px 2px 2px !important;
}

.premium-project-meta h3 {
    font-size: 22px !important;
    font-weight: 650 !important;
    line-height: 1.2 !important;
    letter-spacing: -.4px !important;
}

.premium-project-meta p {
    font-size: 14px !important;
    color: var(--sorov-muted) !important;
}

.premium-arrow {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
}

/* Pricing */
.pricing-card {
    padding: 28px !important;
    border-radius: 22px !important;
    max-width: 390px !important;
}

.pricing-card h3 {
    font-size: 25px !important;
    font-weight: 650 !important;
}

.pricing-price {
    font-size: 36px !important;
    font-weight: 700 !important;
}

.pricing-desc,
.pricing-note,
.pricing-features li {
    font-size: 15px !important;
    line-height: 1.6 !important;
}

/* Process / testimonials */
.premium-process-card,
.premium-testimonial-card {
    padding: 28px !important;
    border-radius: 22px !important;
    max-width: 390px !important;
}

.premium-process-card h3,
.premium-testimonial-card h3 {
    font-size: 24px !important;
    font-weight: 650 !important;
}

.premium-process-card p,
.premium-testimonial-card p {
    font-size: 15px !important;
    line-height: 1.65 !important;
}

/* CTA */
.premium-cta-box {
    padding: 42px !important;
    border-radius: 26px !important;
}

.premium-cta-box .premium-section-title {
    font-size: clamp(32px, 4vw, 48px) !important;
}

/* Contact */
.case-study-panel {
    padding: 28px !important;
    border-radius: 22px !important;
}

.case-study-panel label {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: rgba(255,255,255,.75) !important;
}

.case-study-panel input,
.case-study-panel textarea,
.case-study-panel select {
    font-size: 15px !important;
    padding: 13px 15px !important;
    border-radius: 13px !important;
}

.case-study-panel h4,
#contact h4 {
    font-size: 22px !important;
    font-weight: 650 !important;
    line-height: 1.3 !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
}

/* Desktop contact grid */
@media (min-width: 992px) {
    #contact .case-study-info-grid {
        grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr) !important;
        gap: 24px !important;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .premium-hero {
        padding-top: 46px !important;
        padding-bottom: 34px !important;
    }

    .premium-hero-title {
        font-size: 42px !important;
        line-height: 1.06 !important;
        letter-spacing: -1px !important;
    }

    .premium-hero-text {
        font-size: 15.5px !important;
        line-height: 1.65 !important;
    }

    .premium-section,
    .natural-about,
    .case-study-hero {
        padding-top: 54px !important;
        padding-bottom: 54px !important;
    }

    .premium-section-title,
    .case-study-title {
        font-size: 34px !important;
        line-height: 1.15 !important;
        letter-spacing: -.8px !important;
    }

    .premium-section-subtitle {
        font-size: 15px !important;
    }

    .btn,
    .btn-gradient,
    .btn-outline-secondary {
        padding: 13px 17px !important;
        font-size: 14px !important;
    }

    .hero-orbit-wrap {
        transform: scale(.78) !important;
        min-height: 390px !important;
        margin-top: 18px !important;
        margin-bottom: -28px !important;
    }

    .hero-card-left {
        left: -8px !important;
        top: 218px !important;
    }

    .hero-card-right {
        right: -8px !important;
        bottom: 116px !important;
    }

    .hero-float-card {
        transform: scale(.92) !important;
    }

    .premium-behance-grid {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }

    .premium-project-card,
    .pricing-card,
    .premium-process-card,
    .premium-testimonial-card {
        max-width: 100% !important;
    }

    .natural-about-card,
    .case-study-panel,
    .premium-service-card,
    .pricing-card,
    .premium-process-card,
    .premium-testimonial-card {
        padding: 24px !important;
        border-radius: 20px !important;
    }

    .natural-about-card h2 {
        font-size: 30px !important;
    }

    .pricing-price {
        font-size: 32px !important;
    }

    #contact h4,
    .case-study-panel h4 {
        font-size: 21px !important;
    }

    .premium-cta-box {
        padding: 28px !important;
    }
}

/* Very small screens */
@media (max-width: 390px) {
    .premium-hero-title {
        font-size: 38px !important;
    }

    .premium-section-title,
    .case-study-title {
        font-size: 31px !important;
    }
}
