﻿/* Responsive Styles for Ankur Roots Web */

/* Desktop & General Header Adjustments for Bootstrap Navbar */
.custom-header {
    border-bottom: 1px solid transparent;
}

.custom-header .navbar-brand {
    margin-right: 0;
}

/* Mobile Navbar Toggler Styling */
.navbar-toggler {
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 0.25rem 0.5rem;
}

.navbar-toggler:focus {
    box-shadow: none;
    border-color: #2eb85c;
}

.navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.8%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
    transition: background-image 0.2s ease-in-out;
}

.navbar-toggler:not(.collapsed) .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.8%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M7 7L23 23M7 23L23 7'/%3e%3c/svg%3e");
}

/* Base Responsive Typography */
@media (max-width: 768px) {
    .card-visual {
        padding: 16px;
    }

    .opt-status {
        width: 18px;
        height: 18px;
    }

    .opt-item {
        margin-bottom: 7px;
    }

    .section-title,
    .pricing-header h2,
    .case-header h2,
    .benefits-header h2,
    .cta-title {
        font-size: 28px !important;
        line-height: 1.2;
    }
}

/* Mobile Menu Adjustments */
@media (max-width: 991.98px) {
    .plan-desc {
        margin-bottom: 11px;
    }

    .services-section {
        padding-right: 0;
    }

    .custom-header {
        padding: 15px 16px !important;
        background-color: rgba(1, 1, 1, 0.98) !important;
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
    }

    /* The Bootstrap collapse menu is replaced on mobile by a custom
       slide-in panel (.mobile-nav-panel). Hide the desktop menu so
       it can never affect the header height or page layout. */
    .navbar-expand-lg .navbar-collapse,
    #navMenu {
        display: none !important;
    }
}

/* ---------- Mobile Navigation Panel (slide-in) ---------- */
.mobile-nav-backdrop,
.mobile-nav-panel {
    display: none;
}

@media (max-width: 991.98px) {
    /* The panel and backdrop both start exactly at the bottom of the
       header, so the logo + hamburger / X stay visible above them.
       --header-height is measured and set by main.js. */
    .mobile-nav-backdrop {
        display: block;
        position: fixed;
        top: var(--header-height, 70px);
        left: 0;
        right: 0;
        bottom: 0;
        background-color: rgba(0, 0, 0, 0.55);
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
        opacity: 0;
        pointer-events: none;
        z-index: 1050;
        transition: opacity 0.3s ease;
    }

    .mobile-nav-backdrop.open {
        opacity: 1;
        pointer-events: auto;
    }

    .mobile-nav-panel {
        display: flex;
        flex-direction: column;
        position: fixed;
        top: var(--header-height, 70px);
        left: 0;
        width: 82%;
        max-width: 360px;
        height: calc(100vh - var(--header-height, 70px));
        height: calc(100dvh - var(--header-height, 70px));
        padding: 24px 24px 32px;
        background-color: rgba(1, 1, 1, 0.98);
        backdrop-filter: blur(15px);
        -webkit-backdrop-filter: blur(15px);
        border-right: 1px solid rgba(255, 255, 255, 0.06);
        box-shadow: 10px 0 40px rgba(0, 0, 0, 0.5);
        transform: translateX(-100%);
        transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
        z-index: 1100;
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .mobile-nav-panel.open {
        transform: translateX(0);
    }

    /* Hide the back-to-top button while the mobile menu is open
       so the page underneath doesn't peek through the backdrop. */
    body.mobile-nav-open #scroll-top .scrollTop {
        opacity: 0 !important;
        pointer-events: none !important;
    }

    .mobile-nav-list {
        list-style: none;
        padding: 0;
        margin: 0 0 24px;
        display: flex;
        flex-direction: column;
    }

    .mobile-nav-link {
        display: block;
        padding: 14px 4px;
        color: #e5e5e5;
        text-decoration: none;
        font-family: 'Inter', sans-serif;
        font-size: 16px;
        font-weight: 500;
        border-bottom: 1px solid rgba(255, 255, 255, 0.06);
        transition: color 0.2s ease;
    }

    .mobile-nav-link:hover,
    .mobile-nav-link:focus,
    .mobile-nav-link.active {
        color: #2eb85c;
    }

    .mobile-nav-cta {
        display: block;
        background-color: #2eb85c;
        color: #fff;
        font-family: 'Inter', sans-serif;
        font-size: 15px;
        font-weight: 600;
        text-decoration: none;
        text-align: center;
        padding: 12px 20px;
        border-radius: 8px;
        transition: background-color 0.2s ease;
    }

    .mobile-nav-cta:hover {
        background-color: #269e4f;
        color: #fff;
    }
}

/* Hero + Slider wrapper.
   On desktop the wrapper is layout-invisible (display: contents) so the
   existing absolute positioning of .hero-content and .logo-slider-area is
   preserved. On small screens it becomes a flex column locked to 100vh so
   the hero text + slider together fill the first viewport and the next
   section ("Our Agents") only appears once the user scrolls. */
.hero-wrap {
    display: contents;
}

/* Hero Section Responsiveness */
@media (max-width: 768px) {
    .hero-wrap {
        display: flex;
        flex-direction: column;
        min-height: 100vh;
        min-height: 100dvh;
    }

    .hero-wrap > .hero-content {
        flex: 1 1 auto;
        justify-content: center;
    }

    .hero-wrap > .logo-slider-area {
        flex: 0 0 auto;
    }

    .hero-content {
        position: relative !important;
        top: 0 !important;
        left: 0 !important;
        transform: none !important;
        padding: 120px 20px 30px !important;
        margin: 0 auto;
    }

    .services-section {
        margin-top: 0 !important;
        padding-top: 60px !important;
    }

    .hero-title {
        font-size: clamp(36px, 9vw, 56px) !important;
        line-height: 1.12 !important;
    }

    .hero-subtitle {
        font-size: 15px;
        margin-bottom: 30px;
    }

    .hero-buttons {
        flex-direction: column;
        width: 100%;
        gap: 12px;
    }

    .hero-buttons a {
        width: 100%;
        justify-content: center;
        padding: 12px !important;
    }
}

/* Logo Slider Responsiveness */
@media (max-width: 768px) {
    .faq-section {
        padding: 40px 20px;
    }

    .testimonial-quote {
        margin-bottom: 22px;
    }

    .testimonial-quote {
        font-size: 14px;
        line-height: 24px;
    }

    .star-rating svg {
        width: 14px;
        height: 14px;
    }

    .plan-btn {
        margin-bottom: 24px;
    }

    .logo-slider-area {
        position: relative !important;
        bottom: 0 !important;
        padding: 20px 0 60px;
    }

    .slider-container {
        width: 100%;
        padding: 0 10px;
        overflow: hidden !important;
    }

    .slider-track {
        gap: 20px;
    }

    .slider-title {
        font-size: 12px;
    }

    /* Shrink background circles on mobile to prevent overflow */
    .big-circle {
        width: 300px !important;
        height: 300px !important;
    }

    .small-circle {
        width: 200px !important;
        height: 200px !important;
    }
}

/* Services Section Responsiveness */
@media (max-width: 991px) {
    .footer-tagline {
        margin-bottom: 8px;
    }

    .star-rating {
        margin-bottom: 19px;
    }

    .plan-features li svg {
        width: 15px;
    }

    .price-amount {
        font-size: 22px;
    }

    .benefits-section {
        padding: 40px 0;
    }

    .case-logo svg {
        width: 18px;
    }

    .case-logo {
        font-size: 16px;
        gap: 8px;
    }

    .case-study-section {
        padding: 40px 0 55px 0;
    }

    .opt-icon svg {
        width: 15px;
    }

    .mockup-item .item-check svg {
        width: 19px;
    }

    .mockup-item .item-icon svg {
        width: 17px;
    }

    .services-header {
        margin-bottom: 24px;
    }



    .services-content {
        flex-direction: column !important;
        gap: 40px;
        /* padding-bottom: 60px; */
        padding: 20px;
    }

    .services-content.second,
    .services-content.fourth {
        flex-direction: column !important;
    }

    .services-content>.service-text-content {
        order: 1;
        display: flex;
        flex-direction: column;
    }

    .services-content>.service-text-content .feature-badge {
        order: 1;
        align-self: center;
        width: fit-content;
    }

    .services-content>.service-text-content h3 {
        order: 2;
    }

    .services-content>.service-text-content p {
        order: 3;
    }

    .services-content>.service-text-content .feature-tags {
        order: 4;
    }

    .services-content>.square-box {
        order: 2;
    }

    .square-box {
        width: 100%;
        max-width: 100%;
        padding: 15px;
    }

    .service-image-card {
        padding: 15px;
    }

    .service-text-content {
        text-align: center;
        max-width: 100%;
    }

    .service-text-content h3 {
        font-size: 21px;
    }

    .feature-tags {
        justify-content: center;
        flex-wrap: wrap;
    }
}

/* Process Section Responsiveness */
@media (max-width: 768px) {
    .benefits-header p.benefits-content {
        font-size: 15px;
        padding: 0 15px;
    }

    .case-header h2.automation {
        margin-top: 7px !important;
        margin-bottom: 24px !important;
    }

    .item-icon {
        width: 33px;
        height: 33px;
    }

    .process-section {
        padding: 60px 20px 40px;
    }

    .process-cards {
        gap: 20px;
    }

    .process-card {
        min-width: 100%;
        padding: 20px;
    }

    .process-card .card-title {
        font-size: 18px;
    }

    .card-visual {
        height: auto;
        min-height: 150px;
    }

    .analysis-container {
        flex-direction: column;
        gap: 15px;
    }

    .chart-pie {
        width: 70px;
        height: 70px;
    }

    .check-list {
        display: none;
    }
}

/* Case Study Section Responsiveness */
@media (max-width: 991px) {
    .faq-header h2 {
        font-size: 20px;
        line-height: 29px;
    }

    .testimonials-grid {
        padding: 0;
    }

    .plan-icon svg {
        width: 17px;
    }

    .plan-icon {
        font-size: 14px;
    }

    .case-slide {
        display: flex;
        flex-direction: column;
        width: 100vw;
        flex: 0 0 100vw;
        padding: 40px 20px;
        gap: 30px;
        height: auto;
    }

    .case-slider-container {
        width: 100%;
        padding: 0;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch;
    }

    .case-image {
        width: 100%;
        height: 220px;
        max-width: 100%;
    }

    .mobile-mockup {
        width: 90px;
        height: 180px;
        bottom: -5px;
        right: -10px;
    }

    .desktop-mockup {
        height: 90%;
    }

    .case-content {
        padding: 0;
        text-align: left;
    }

    .case-quote {
        font-size: 16px;
        line-height: 24px;
        margin-bottom: 15px;
    }

    .case-desc {
        font-size: 14px;
    }
}

/* Benefits Section Responsiveness */
@media (max-width: 768px) {
    .ankur-text {
        font-size: 18px;
    }

    .plan-price {
        margin-bottom: 8px;
    }

    .impact-list li::before {
        font-size: 15px;
    }

    .case-desc {
        font-size: 14px;
        line-height: 24px;
        margin-bottom: 22px;
    }

    .mockup-header-bar {
        padding-bottom: 13px;
        margin-bottom: 6px;
    }

    .mockup-item {
        padding: 8px 0;
    }

    .benefits-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .benefit-card {
        padding: 17px;
    }
}

/* Pricing Section Responsiveness */
@media (max-width: 991px) {
    .footer-heading {
        margin-bottom: 11px;
    }

    .roots-text {
        font-size: 18px;
    }

    .testimonials-header h2 {
        font-size: 20px;
        line-height: 29px;
    }

    .testimonials-section {
        padding: 40px 20px;
    }

    .benefits-header {
        margin-bottom: 36px;
    }

    .service-text-content p {
        font-size: 14px;
        line-height: 25px;
    }

    .pricing-grid {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 0 40px;
    }

    .pricing-section {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .pricing-card.popular {
        transform: none !important;
    }

    .pricing-card {
        padding: 30px 15px;
        min-width: unset;
        width: 100%;
    }
}

/* Testimonials Section Responsiveness */
@media (max-width: 768px) {
    .faq-header p {
        font-size: 15px;
    }

    .faq-header {
        margin-bottom: 26px;
    }

    .user-name {
        font-size: 15px;
        margin-bottom: 3px;
    }

    .plan-features {
        gap: 6px;
    }

    .plan-icon {
        margin-bottom: 11px;
    }

    .drag-indicator svg {
        width: 20px;
    }

    .case-header p {
        font-size: 15px;
    }

    .process-card .card-desc {
        line-height: 24px;
        font-size: 14px;
    }

    .feature-tags .tag {
        padding: 8px 9px;
    }

    .testimonials-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .testimonial-card {
        padding: 17px;
    }
}

/* FAQ Section Responsiveness */
@media (max-width: 768px) {
    .testimonials-header {
        margin-bottom: 17px;
    }

    .testimonials-header p {
        font-size: 15px;
    }

    .pricing-toggle {
        margin-bottom: 35px;
    }

    .pricing-header p {
        font-size: 15px;
        margin-bottom: 32px;
    }

    .benefit-title {
        font-size: 17px;
    }

    .benefit-icon {
        margin-bottom: 13px;
    }

    .benefit-icon svg {
        width: 17px;
    }

    .faq-container {
        width: 100%;
        padding: 0 10px;
    }

    .faq-question {
        padding: 13px;
        font-size: 15px;
    }
}

/* CTA Section Responsiveness */
@media (max-width: 768px) {
    .cta-card {
        height: auto;
        min-height: 320px;
        padding: 40px 20px;
    }

    .cta-content {
        padding: 0;
    }

    .cta-btn {
        width: 100%;
        justify-content: center;
    }
}

/* Footer Section Responsiveness */
@media (max-width: 768px) {
    .faq-answer {
        padding: 0 13px;
        /* padding-bottom: 25px; */
    }

    .faq-question span {
        font-size: 15px;
    }

    .footer-section{
        padding-top:30px;
    }

    .footer-top {
        flex-direction: column;
        gap: 32px;
        padding: 0px 20px;
    }

    .brand-col {
        text-align: left;
    }

    .newsletter-box {
        flex-direction: column;
        gap: 12px;
        background: transparent;
        border: none;
        padding: 0;
    }

    .newsletter-input {
        width: 100%;
        background: #0d0d0d;
        border: 1px solid #222;
        padding: 12px 15px;
        border-radius: 8px;
    }

    .newsletter-btn {
        width: 100%;
        padding: 12px;
        border-radius: 8px;
        position: static;
    }

    .footer-col {
        width: 100%;
    }

    .footer-col {
        width: 100%;
    }

    .footer-col.brand-col{
        align-items:center;
        width:100%;
        margin:0 auto;
    }

    .footer-bottom {
        padding: 20px;
        text-align: center;
    }
}

@media (max-width: 575px) {
    .faq-question span {
        font-size: 14px;
    }

    .faq-answer p {
        font-size: 14px;
    }

    .plan-btn {
        font-size: 12px;
    }

    .drag-indicator {
        font-size: 13px;
    }

    .opt-title {
        font-size: 12px;
    }

    .process-card .card-title {
        font-size: 16px;
    }

    .square-box {
        padding: 12px;
    }

    .service-image-card {
        padding: 10px;
    }

    .hero-buttons a {
        padding: 10px !important;
    }

    .hero-buttons .btn-primary svg {
        width: 17px;
    }

    .badge-new {
        font-size: 11px;
    }

    .hero-subtitle {
        font-size: 14px;
    }

    .badge-text {
        font-size: 13px;
    }

    .hero-title {
        font-size: clamp(28px, 8vw, 36px) !important;
        line-height: 1.18 !important;
    }

    .pricing-grid {
        padding: 0 1px !important;
    }

    .pricing-section {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

@media (max-width: 1200px) {
    .section-subtitle {
        font-size: 15px;
        padding: 0 15px;
    }
}

/* Extracted from style.css */

@media (max-width: 900px) {
    .services-content {
        flex-direction: column-reverse;
        /* Text on top or Image on top? Screenshot shows image left. Usually stack Vertical */
        flex-direction: column;
        gap: 60px;
    }

    .services-section {
        margin-top: 100px;
        /* Reset header space on mobile if hero behaves differently */
    }

    .case-slide {
        flex-direction: column;
        width: 85vw;
        gap: 30px;
    }

    .case-image {
        width: 100%;
        height: 300px;
    }

    .case-header h2 {
        font-size: 36px;
    }

    .testimonials-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1024px) {
    .benefits-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 991px) {

    /* Tablet specific adjustments */
    .services-section {
        padding-top: 80px !important;
    }

    .section-title,
    .article-title,
    .contact-title,
    .error-title {
        font-size: 32px !important;
    }

    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }

    .values-grid {
        grid-template-columns: 1fr;
        max-width: 700px;
        margin: 0 auto;
    }

    .values-grid-container {
        padding: 0 30px;
    }

    .team-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }

    .blog-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }

    .blog-card {
        max-width: 100%;
    }

    .contact-container {
        max-width: 100%;
        padding: 0 30px 100px;
    }

    .article-content h2 {
        font-size: 24px;
    }
}

@media (max-width: 768px) {
    .cta-title {
        font-size: 40px;
    }

    .comparison-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .comparison-card {
        padding: 30px 20px;
    }

    .why-comparison-container {
        padding: 0 15px;
    }

    .cta-title {
        font-size: 32px !important;
    }
}

@media (max-width: 767px) {

    /* General Settings */
    .services-section {
        padding-top: 60px !important;
        padding-right: 0 !important;
    }

    .section-title,
    .article-title,
    .contact-title,
    .error-title {
        font-size: 26px !important;
        line-height: 1.2 !important;
    }

    .section-subtitle,
    .article-description,
    .contact-subtitle,
    .error-subtitle {
        font-size: 14px !important;
        padding: 0 10px;
    }

    /* About Page - Stats */
    .who-we-are-stats-container,
    .values-grid-container,
    .team-grid-container {
        padding: 0 15px !important;
    }

    .stats-grid {
        grid-template-columns: 1fr;
        gap: 15px;
        padding: 0;
    }

    .stat-card {
        padding: 20px;
    }

    .stat-value {
        font-size: 20px !important;
    }

    .who-we-are-stats-container {
        margin-top: 30px;
    }

    /* About Page - Values */
    .value-card {
        padding: 20px;
        border-radius: 10px;
    }

    .value-title {
        font-size: 17px;
    }

    /* Team */
    .team-grid {
        grid-template-columns: 1fr;
        max-width: 100%;
        padding: 0 15px;
        gap: 20px;
    }

    .team-grid-container {
        padding: 0 10px;
    }

    .team-name {
        font-size: 19px;
    }

    /* Blog List */
    .blog-grid {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 0 15px;
    }

    .blog-title {
        font-size: 18px;
    }

    .blog-card {
        padding: 15px;
        border-radius: 16px;
    }

    /* Blog Details Page */
    .blog-details-container {
        padding: 0 15px 60px;
    }

    .article-header {
        margin-bottom: 30px;
    }

    .article-featured-image {
        border-radius: 12px;
        margin-bottom: 30px;
        height: auto;
        aspect-ratio: 16/9;
    }

    .article-content h2 {
        font-size: 20px;
        margin-top: 30px;
    }

    .article-content p {
        font-size: 14px;
        line-height: 1.6;
    }

    .article-list li {
        font-size: 14px;
        padding-left: 25px;
    }

    /* Contact Page */
    .contact-container {
        padding: 0 15px 60px;
    }

    .contact-header {
        margin-bottom: 30px;
    }

    .contact-info-cards {
        grid-template-columns: 1fr;
        gap: 15px;
        margin-bottom: 30px;
    }

    .contact-info-card-single {
        padding: 15px;
    }

    .contact-form-container {
        padding: 20px;
        border-radius: 16px;
    }

    .form-row {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .form-group {
        margin-bottom: 15px;
    }

    .contact-submit-btn {
        padding: 11px;
        font-size: 13px;
    }

    /* FAQ Section */
    .faq-container {
        padding: 0 15px;
    }

    .faq-question {
        padding: 15px;
        font-size: 14px;
    }

    /* Error Page */
    .error-title {
        font-size: 24px !important;
        letter-spacing: -0.5px;
        margin: 20px 0;
    }

    .error-subtitle {
        font-size: 14px;
        margin-bottom: 30px;
    }

    .error-page-section {
        min-height: 50vh;
    }
}
