/* =========================
   ADAPTIVE.CSS
   ========================= */

/* Планшеты */
@media (max-width: 1024px) {
    nav {
        padding: 18px 24px;
    }

    section {
        scroll-margin-top: 90px;
    }

    .hero-section {
        height: auto;
        min-height: 100svh;
        padding-top: 96px;
    }

    .hero-overlay {
        background: linear-gradient(
            90deg,
            rgba(15,15,15,0.92) 0%,
            rgba(15,15,15,0.65) 100%
        );
    }

    .service-card {
        padding: 40px;
    }
}

/* Телефоны */
@media (max-width: 768px) {
    body {
        font-size: 14px;
    }

    nav {
        padding: 16px 20px;
    }

    nav .max-w-7xl {
        gap: 16px;
    }

    section {
        padding-top: 72px;
        padding-bottom: 72px;
    }

    .hero-section {
        height: auto;
        min-height: 100svh;
        padding-top: 110px;
        padding-bottom: 56px;
        align-items: flex-start;
    }

    .hero-section .relative.z-10 {
        padding-top: 24px;
    }

    .hero-overlay {
        background: rgba(15,15,15,0.82);
    }

    .text-outline {
        -webkit-text-stroke: 1px rgba(255,255,255,0.35);
    }

    .service-card {
        padding: 32px 24px;
    }

    #cookie-banner {
        flex-direction: column;
        gap: 14px;
        text-align: center;
    }

    #cookie-banner button {
        width: 100%;
    }
}

/* Маленькие телефоны */
@media (max-width: 480px) {
    .text-outline {
        -webkit-text-stroke: 0.8px rgba(255,255,255,0.35);
    }

    .service-card {
        padding: 28px 20px;
    }

    form {
        padding: 28px 20px !important;
    }

    input,
    textarea,
    button {
        font-size: 11px;
    }
}

/* Landscape на телефонах */
@media (max-height: 520px) and (orientation: landscape) {
    .hero-section {
        height: auto;
        min-height: 100svh;
        padding-top: 96px;
        padding-bottom: 56px;
        align-items: flex-start;
        overflow: visible;
    }

    .hero-section .relative.z-10 {
        padding-top: 16px;
    }

    /* Скрываем номер только в верхней шапке */
    nav > .max-w-7xl > a[href^="tel:"] {
        display: none !important;
    }
}

/* Fullscreen mobile menu */
.mobile-menu {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-12px);
    transition:
        opacity 0.35s ease,
        visibility 0.35s ease,
        transform 0.35s ease;
}

.mobile-menu.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.mobile-menu .menu-content {
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 20px;
    padding-top: 90px;
    padding-bottom: 40px;
}

.mobile-menu .menu-content {
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 20px;
    padding: 96px 24px 40px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3em;
}

.mobile-menu-phone {
    margin-top: 8px;
    padding-top: 16px !important;
}
/* =========================
   ABOUT PAGE ADAPTIVE
   ========================= */

/* Планшеты */
@media (max-width: 1024px) {
    header {
        padding-top: 160px;
        padding-bottom: 80px;
    }

    header h1 {
        font-size: clamp(64px, 12vw, 120px);
    }
}

/* Телефоны */
@media (max-width: 768px) {
    header {
        padding-top: 140px;
        padding-bottom: 72px;
    }

    header h1 {
        font-size: clamp(48px, 16vw, 72px);
    }

    header p {
        max-width: 100%;
        line-height: 2;
        letter-spacing: 0.28em;
    }

    section .grid {
        gap: 48px;
    }

    section h2 {
        font-size: 28px;
    }

    .space-y-6.text-xs.uppercase {
        letter-spacing: 0.12em;
    }

    .space-y-6.text-xs.uppercase > div {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .space-y-6.text-xs.uppercase span {
        text-align: left;
    }
}

/* Маленькие телефоны */
@media (max-width: 480px) {
    header {
        padding-top: 125px;
        padding-bottom: 60px;
    }

    header h1 {
        font-size: 44px;
    }

    header p {
        font-size: 9px;
        letter-spacing: 0.22em;
    }

    section {
        padding-left: 20px;
        padding-right: 20px;
    }

    section h2 {
        font-size: 24px;
        line-height: 1.15;
    }

    .p-10 {
        padding: 28px !important;
    }

    .p-12 {
        padding: 28px 20px !important;
    }

    .tracking-\[0\.2em\] {
        letter-spacing: 0.12em !important;
    }
}

/* Landscape на телефонах */
@media (max-height: 520px) and (orientation: landscape) {
    header {
        padding-top: 110px;
        padding-bottom: 48px;
    }

    header h1 {
        font-size: 56px;
    }

    header p {
        letter-spacing: 0.25em;
    }
}

/* =========================
   PROJECTS PAGE ADAPTIVE
   ========================= */

/* Планшеты */
@media (max-width: 1024px) {
    .project-card {
        transform: none;
    }

    .project-card:hover {
        transform: none;
    }

    .project-card h2 {
        font-size: 34px;
    }
}

/* Телефоны */
@media (max-width: 768px) {
    .project-card {
        display: block;
    }

    .project-card > div {
        width: 100%;
    }

    .project-card .relative.overflow-hidden {
        height: 280px;
    }

    .project-card .p-12 {
        padding: 32px 24px !important;
    }

    .project-card h2 {
        font-size: 28px;
        line-height: 1.1;
    }

    .project-card .grid.grid-cols-2 {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .project-card ul li {
        align-items: flex-start;
        line-height: 1.6;
    }

    .project-card [data-lucide="check"] {
        margin-top: 4px;
        flex-shrink: 0;
    }
}

/* Маленькие телефоны */
@media (max-width: 480px) {
    .project-card .relative.overflow-hidden {
        height: 230px;
    }

    .project-card .p-12 {
        padding: 28px 20px !important;
    }

    .project-card h2 {
        font-size: 24px;
    }

    .project-card .absolute.top-6.left-6 {
        top: 16px;
        left: 16px;
        font-size: 9px;
        padding: 4px 10px;
        letter-spacing: 0.12em;
    }

    .project-card p,
    .project-card li {
        line-height: 1.7;
    }
}

/* Landscape на телефонах */
@media (max-height: 520px) and (orientation: landscape) {
    .project-card {
        display: block;
    }

    .project-card .relative.overflow-hidden {
        height: 260px;
    }

    .project-card .p-12 {
        padding: 28px !important;
    }

    .project-card h2 {
        font-size: 28px;
    }
}

/* =========================
   CONTACTS PAGE ADAPTIVE
   ========================= */

/* Планшеты */
@media (max-width: 1024px) {
    .contact-input {
        font-size: 12px;
    }
}

/* Телефоны */
@media (max-width: 768px) {

    /* Общий контейнер */
    .min-h-\[60vh\] {
        min-height: auto;
    }

    /* Контакты + форма в колонку */
    .grid.lg\:grid-cols-2 {
        gap: 56px;
    }

    /* Карточки контактов */
    .flex.items-start.gap-6 {
        gap: 16px;
    }

    .w-14.h-14 {
        width: 48px;
        height: 48px;
    }

    .w-14.h-14 i {
        width: 20px;
        height: 20px;
    }

    /* Телефон */
    .text-2xl.font-heading {
        font-size: 26px;
        line-height: 1.1;
    }

    /* Адрес */
    .text-lg.font-bold.uppercase {
        font-size: 14px;
        line-height: 1.7;
    }

    /* Форма */
    .border-t-8.border-aplus-orange {
        padding: 32px 24px !important;
    }

    .border-t-8.border-aplus-orange h3 {
        font-size: 28px;
    }

    .contact-input {
        padding: 16px;
        font-size: 11px;
    }

    .contact-input::placeholder {
        letter-spacing: 0.08em;
    }
}

/* Маленькие телефоны */
@media (max-width: 480px) {

    /* Заголовок страницы */
    .page-title {
        font-size: 34px !important;
    }

    /* Подзаголовок */
    header p {
        font-size: 9px;
        letter-spacing: 0.22em;
        line-height: 1.8;
    }

    /* Контактные блоки */
    .text-2xl.font-heading {
        font-size: 22px;
    }

    .text-lg.font-bold.uppercase {
        font-size: 12px;
    }

    /* Реквизиты */
    .tracking-\[0\.2em\] {
        letter-spacing: 0.12em !important;
    }

    /* Форма */
    .border-t-8.border-aplus-orange {
        padding: 28px 20px !important;
    }

    .border-t-8.border-aplus-orange h3 {
        font-size: 24px;
    }

    .contact-input {
        padding: 14px;
        font-size: 10px;
    }

    button {
        letter-spacing: 0.2em !important;
    }
}

/* Landscape телефоны */
@media (max-height: 520px) and (orientation: landscape) {

    .grid.lg\:grid-cols-2 {
        gap: 40px;
    }

    .space-y-12 > div {
        margin-bottom: 24px;
    }

    .border-t-8.border-aplus-orange {
        padding: 28px !important;
    }

    .border-t-8.border-aplus-orange h3 {
        font-size: 24px;
    }
}
/* =========================
   SERVICES PAGE ADAPTIVE
   ========================= */

@media (max-width: 768px) {
    .service-card.card-flex {
        padding: 32px 24px !important;
    }

    .service-card.card-flex h3 {
        font-size: 26px;
        line-height: 1.1;
    }

    .service-actions {
        grid-template-columns: 1fr;
    }

    .service-actions a {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .service-card.card-flex {
        padding: 28px 20px !important;
    }

    .service-card.card-flex h3 {
        font-size: 24px;
    }

    .service-actions a {
        padding: 18px 10px;
        font-size: 9px;
        letter-spacing: 0.22em;
    }
}
/* =========================
   SERVICE DETAIL PAGE FIXES
   ========================= */

.service-detail-page {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

.service-detail-page * {
    box-sizing: border-box;
}

.service-detail-page .max-w-7xl,
.service-detail-page .max-w-5xl,
.service-detail-page .max-w-xl,
.service-detail-page .max-w-2xl {
    max-width: 100%;
}

.service-detail-page .grid,
.service-detail-page .grid > *,
.service-detail-page .flex,
.service-detail-page .flex > * {
    min-width: 0;
}

.service-detail-page h1,
.service-detail-page h2,
.service-detail-page h3,
.service-detail-page p,
.service-detail-page li,
.service-detail-page a {
    max-width: 100%;
    overflow-wrap: break-word;
}

.service-detail-page .tracking-\[0\.5em\],
.service-detail-page .tracking-\[0\.4em\],
.service-detail-page .tracking-\[0\.3em\],
.service-detail-page .tracking-widest {
    letter-spacing: 0.12em !important;
}

/* Landscape телефоны */
@media (max-height: 520px) and (orientation: landscape) {
    .service-detail-page header {
        padding-top: 110px !important;
        padding-bottom: 40px !important;
    }

    .service-detail-page section {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    .service-detail-page .page-title {
        font-size: 34px !important;
        line-height: 1 !important;
    }

    .service-detail-page section h2 {
        font-size: 30px !important;
        line-height: 1.1 !important;
    }

    .service-detail-page .grid {
        grid-template-columns: 1fr !important;
    }

    .service-detail-page .flex.flex-wrap {
        flex-direction: column;
        align-items: stretch;
    }

    .service-detail-page .flex.flex-wrap a {
        width: 100%;
        text-align: center;
    }
}
@media (max-width: 1024px) {
    .back-to-services {
        display: inline-flex !important;
    }
}
@media (max-width: 768px) {
    .service-included-list {
        grid-template-columns: 1fr;
    }

    .service-included-list p {
        padding: 20px;
        min-height: auto;
    }
}

@media (max-width: 768px) {

    .service-included-list {
        grid-template-columns: 1fr;
    }

    .service-included-list div {
        padding: 20px;
        letter-spacing: 0.12em;
    }
}