/* Shared responsive adjustments for small screens. */
img, iframe { max-width:100%; }

@media (max-width:768px) {
    body { overflow-x:hidden; }

    .hero { min-height:calc(100svh - 72px); padding:48px 20px; }
    .hero h1 { font-size:clamp(2rem, 10vw, 2.7rem); }
    .hero p { font-size:1rem; }

    .home-about {
        display:flex;
        flex-direction:column;
        grid-template-areas:"image" "content";
        gap:34px;
        padding:72px 24px;
        width:100%;
        max-width:100%;
        overflow:hidden;
    }
    .home-about-text { order:2; width:100%; max-width:none; }
    .home-about-image { order:1; width:100%; max-width:100%; min-width:0; min-height:0; margin:0; }
    .home-about .home-about-image .about-image-main { width:100%; max-width:100%; height:auto; }
    .photo { width:min(78vw, 320px); height:360px; }
    .position1 { top:0; left:4vw; }
    .position2 { top:10px; left:12vw; width:min(82vw, 340px); height:380px; }
    .position3 { top:26px; right:4vw; }

    .training { margin:72px auto; padding:0 24px; }
    .training-header h2, .testimonial-header h2, .clients-header h2 { font-size:32px; }
    .training-item { grid-template-columns:42px 1fr; gap:14px; padding:22px 0; }
    .training-right { grid-column:2; justify-content:flex-start; }
    .training-content h3 { font-size:19px; }

    .home-why, .home-testimonial, .home-clients { padding:72px 0; }
    .home-why-container, .home-testimonial-container { padding:0 24px; }
    .why-header { margin-bottom:48px; }
    .why-header h2 { font-size:32px; }
    .testimonial-list {
        display:flex;
        grid-template-columns:none;
        overflow-x:auto;
        gap:14px;
        padding:2px 24px 14px;
        margin:0 -24px;
        scroll-snap-type:x mandatory;
        scrollbar-width:none;
        -webkit-overflow-scrolling:touch;
    }
    .testimonial-list::-webkit-scrollbar { display:none; }
    .testimonial-item {
        flex:0 0 min(82vw, 340px);
        min-height:245px;
        padding:24px;
        scroll-snap-align:start;
    }
    .clients-header { padding:0 24px; margin-bottom:36px; }
    .clients-track { gap:18px; }
    .clients-track img { width:92px; height:92px; }

    .about { padding:72px 24px; gap:40px; }
    .about-text h2, .team h2, .clients h2, .gallery h2 { font-size:32px; }
    .team, .clients { padding:72px 24px; }
    .team-description, .clients-description { margin-bottom:42px; }
    .team-card img { height:300px; }

    .course-list { margin:72px auto; padding:0 24px; }
    .course-header { margin-bottom:42px; }
    .course-header h1 { font-size:34px; }
    .course-item { grid-template-columns:38px minmax(0, 1fr) 24px; gap:12px; padding:22px 0; }
    .course-title h2 { font-size:20px; line-height:1.35; }
    .course-arrow { font-size:22px; }
    .course-item:hover { padding-left:8px; }

    .contact-main { padding:0 16px 56px; }
    .contact-card, .contact-map-card { padding:20px; border-radius:14px; }
    .contact-card-info h2, .contact-card-form h2, .contact-map-card h2 { font-size:24px; }
    .contact-hour-row { align-items:flex-start; flex-direction:column; gap:4px; }
    .contact-map iframe { height:300px; }

    .trainer-detail { margin:60px auto; padding:0 24px; gap:40px; }
    .trainer-photo {
        position:static;
        overflow:visible;
        border-radius:18px;
        transform:none !important;
    }
    .trainer-photo img {
        display:block;
        width:100%;
        height:auto !important;
        min-height:0 !important;
        max-height:none !important;
        object-fit:contain;
        transform:none !important;
        border-radius:18px;
    }
    .trainer-back { margin:84px auto 20px; padding:0 24px; }
}

@media (max-width:380px) {
    .logo-text { max-width:170px; font-size:10px; }
    .logo-img { height:38px; }
    .home-about-image { min-height:320px; }
    .photo { height:320px; }
    .position2 { height:340px; }
    .footer { padding-left:20px; padding-right:20px; }
}
