/* =====================================================================
   Профіль компанії
   ===================================================================== */

body.page-company { background: var(--bg-base); }

body { display: flex; flex-direction: column; min-height: 100vh; }
.page { flex: 1 0 auto; display: flex; flex-direction: column; }

.preview-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 20px;
    background: rgba(201, 168, 107, 0.12);
    border-bottom: 1px solid rgba(201, 168, 107, 0.28);
    color: #D7BC85;
    font-size: var(--t-sm);
}
.preview-bar svg { width: 14px; height: 14px; }

.profile { flex: 1; }

/* --- Обкладинка ------------------------------------------------------- */
.hero {
    position: relative;
    padding: 0;
    background: var(--bg-raised);
    border-bottom: 1px solid var(--line);
    overflow: hidden;
}
.hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: var(--hero-image, none);
    background-size: cover;
    background-position: center;
    opacity: var(--cover-opacity, 0.9);
}
.hero__overlay {
    position: absolute;
    inset: 0;
    background: var(--hero-overlay);
}
.hero__inner {
    position: relative;
    max-width: 1240px;
    margin: 0 auto;
    padding: 68px 28px 26px;
    min-height: 300px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 20px;
}

.hero__back {
    position: absolute;
    top: 20px;
    left: 28px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 12px;
    border: 1px solid var(--line-strong);
    border-radius: var(--r-md);
    background: var(--glass);
    backdrop-filter: var(--blur-light);
    -webkit-backdrop-filter: var(--blur-light);
    font-size: var(--t-sm);
    color: var(--text-soft);
    transition: all var(--fast) var(--ease);
}
.hero__back:hover { color: var(--text); border-color: var(--line-bright); }

.hero__head { display: flex; align-items: flex-end; gap: 18px; }
.hero__title-block { min-width: 0; }
.hero__title { overflow-wrap: anywhere; }
.hero__logo {
    width: 84px; height: 84px;
    border-radius: var(--r-lg);
    background: var(--glass-strong);
    backdrop-filter: var(--blur-light);
    -webkit-backdrop-filter: var(--blur-light);
    border-color: var(--line-strong);
    font-size: var(--t-2xl);
}
.hero__title {
    font-size: var(--t-4xl);
    font-weight: 550;
    letter-spacing: -0.03em;
    margin-bottom: 8px;
}
.hero__meta {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    font-size: var(--t-md);
    color: var(--text-soft);
}
.hero__meta a:hover { color: var(--text); }
.hero__sep { color: var(--text-faint); }
.hero__badges { display: flex; gap: 6px; margin-top: 10px; flex-wrap: wrap; }
.hero__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.hero__actions .btn.is-following {
    border-color: var(--accent-line);
    background: var(--accent-soft);
    color: var(--accent-text);
}

/* --- Сітка профілю ---------------------------------------------------- */
.profile__grid {
    max-width: 1240px;
    margin: 0 auto;
    padding: 32px 28px 72px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 34px;
    align-items: start;
}

.profile__main { min-width: 0; }

.profile__side {
    position: sticky;
    top: calc(var(--topbar-h) + 20px);
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.prose { color: var(--text-soft); font-size: var(--t-md); line-height: 1.72; max-width: 74ch; }
.prose p { margin-bottom: 1.1em; }
.prose h2, .prose h3 { color: var(--text); margin: 1.6em 0 0.6em; }
.prose ul, .prose ol { margin-bottom: 1.1em; }
.prose li { margin-bottom: 0.4em; }
.prose a { color: var(--accent-text); text-decoration: underline; text-underline-offset: 3px; }

/* --- Локації ---------------------------------------------------------- */
.locations { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
.locations__list { display: flex; flex-direction: column; gap: 10px; }
.locations__map {
    height: 100%;
    min-height: 320px;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    overflow: hidden;
    background: var(--bg-deep);
    position: sticky;
    top: calc(var(--topbar-h) + 20px);
}

.location {
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    background: var(--bg-raised);
    transition: border-color var(--fast) var(--ease), background var(--fast) var(--ease);
}
.location:hover { border-color: var(--line-strong); }
.location.is-hidden { display: none; }
.location.is-active { border-color: var(--accent-line); background: rgba(201, 174, 133, 0.06); }
.location__head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.location__type {
    font-size: var(--t-xs);
    font-weight: 500;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--accent-text);
}
.location__city { font-size: var(--t-lg); font-weight: 550; margin-bottom: 2px; }
.location__address { font-size: var(--t-base); color: var(--text-soft); margin-bottom: 6px; }
.location__hours {
    display: flex; align-items: center; gap: 6px;
    font-size: var(--t-sm); color: var(--text-muted); margin-bottom: 10px;
}
.location__actions { display: flex; gap: 6px; flex-wrap: wrap; }

/* --- Професійні матеріали ---------------------------------------------- */
.resources { display: flex; flex-direction: column; gap: 12px; }

.res-group {
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    background: var(--bg-raised);
    overflow: hidden;
}
.res-group__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--line);
    background: var(--tint-subtle);
}
.res-group__title {
    font-size: var(--t-xs);
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--text);
    margin-bottom: 3px;
}
.res-group__meta { font-size: var(--t-sm); color: var(--text-muted); }
.res-group__icon {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    color: var(--accent-text);
    background: var(--accent-soft);
}
.res-group__icon svg { width: 16px; height: 16px; }

.res-list { display: flex; flex-direction: column; }
.res-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 13px 18px;
    border-bottom: 1px solid var(--line);
    transition: background var(--fast) var(--ease);
}
.res-item:last-child { border-bottom: none; }
.res-item:hover { background: var(--tint-subtle); }
.res-item__body { flex: 1; min-width: 0; }
.res-item__title { font-size: var(--t-md); font-weight: 500; margin-bottom: 3px; }
.res-item__desc { font-size: var(--t-base); color: var(--text-muted); margin-bottom: 6px; }
.res-item__meta {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    font-size: var(--t-sm); color: var(--text-faint);
}
.res-item__actions { display: flex; gap: 6px; flex-shrink: 0; }

/* --- Галерея ----------------------------------------------------------- */
.gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 10px;
}
.gallery__item {
    position: relative;
    aspect-ratio: 8 / 5;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    overflow: hidden;
    background: var(--bg-inset);
    cursor: zoom-in;
    transition: border-color var(--fast) var(--ease), transform var(--normal) var(--ease);
}
.gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--slow) var(--ease); }
.gallery__item:hover { border-color: var(--line-bright); }
.gallery__item:hover img { transform: scale(1.03); }
.gallery__caption {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 22px 12px 9px;
    background: var(--image-caption);
    font-size: var(--t-sm);
    color: var(--text-soft);
    text-align: left;
}

/* --- Лайтбокс ---------------------------------------------------------- */
.lightbox {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    background: var(--overlay);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: fade-in var(--fast) var(--ease);
}
.lightbox img {
    max-width: 92vw;
    max-height: 84vh;
    object-fit: contain;
    border-radius: var(--r-md);
}
.lightbox__caption {
    position: absolute;
    bottom: 26px;
    left: 50%;
    transform: translateX(-50%);
    font-size: var(--t-base);
    color: var(--text-soft);
}
.lightbox__close, .lightbox__nav {
    position: absolute;
    display: flex; align-items: center; justify-content: center;
    width: 42px; height: 42px;
    border: 1px solid var(--line-strong);
    border-radius: var(--r-full);
    background: var(--glass);
    color: var(--text-soft);
    transition: all var(--fast) var(--ease);
}
.lightbox__close:hover, .lightbox__nav:hover { color: var(--text); border-color: var(--line-bright); }
.lightbox__close { top: 20px; right: 20px; }
.lightbox__nav--prev { left: 20px; top: 50%; transform: translateY(-50%); }
.lightbox__nav--next { right: 20px; top: 50%; transform: translateY(-50%); }

/* --- Бренди ------------------------------------------------------------ */
.brands { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.brand-card {
    display: flex;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    background: var(--bg-raised);
}
.brand-card__body { min-width: 0; }
.brand-card__name { font-size: var(--t-md); font-weight: 550; margin-bottom: 3px; }
.brand-card__name a { display: inline-flex; align-items: center; gap: 4px; }
.brand-card__name a:hover { color: var(--accent-text); }
.brand-card__desc { font-size: var(--t-base); color: var(--text-muted); }

/* --- Акції -------------------------------------------------------------- */
.promos { display: flex; flex-direction: column; gap: 10px; }
.promo {
    padding: 16px 18px;
    border: 1px solid var(--line);
    border-left: 2px solid var(--accent);
    border-radius: var(--r-lg);
    background: var(--bg-raised);
}
.promo__body { min-width: 0; }
.promo__title { font-size: var(--t-lg); font-weight: 550; margin-bottom: 6px; }
.promo__desc { font-size: var(--t-base); color: var(--text-soft); margin-bottom: 8px; }
.promo__terms { font-size: var(--t-sm); color: var(--text-muted); margin-bottom: 10px; }
.promo__meta { display: flex; align-items: center; gap: 10px; font-size: var(--t-sm); }

/* --- Бічні картки ------------------------------------------------------- */
.side-card {
    padding: 16px 18px;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    background: var(--bg-raised);
}
.side-card__title {
    font-size: var(--t-xs);
    font-weight: 500;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--text-faint);
    margin-bottom: 12px;
}

.contacts { display: flex; flex-direction: column; gap: 2px; }
.contact {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 9px 0;
    border-bottom: 1px solid var(--line);
}
.contact:last-child { border-bottom: none; }
.contact:hover .contact__value { color: var(--accent-text); }
.contact__icon {
    width: 30px; height: 30px;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--line);
    border-radius: var(--r-sm);
    color: var(--text-muted);
    flex-shrink: 0;
}
.contact__body { min-width: 0; }
.contact__label {
    display: block;
    font-size: var(--t-xs);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--text-faint);
}
.contact__value {
    display: block;
    font-size: var(--t-base);
    color: var(--text);
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color var(--fast) var(--ease);
}

.socials { display: flex; gap: 6px; margin-top: 14px; flex-wrap: wrap; }
.social {
    width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--line-strong);
    border-radius: var(--r-md);
    color: var(--text-soft);
    transition: all var(--fast) var(--ease);
}
.social:hover { color: var(--text); border-color: var(--accent-line); background: var(--accent-soft); }

.similar { display: flex; flex-direction: column; gap: 2px; }
.similar__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 0;
    border-bottom: 1px solid var(--line);
}
.similar__item:last-child { border-bottom: none; }
.similar__item:hover .similar__name { color: var(--accent-text); }
.similar__body { min-width: 0; }
.similar__name { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--t-base); font-weight: 500; transition: color var(--fast) var(--ease); }
.similar__meta { display: block; font-size: var(--t-sm); color: var(--text-muted); }

/* --- Мобільна версія ---------------------------------------------------- */
@media (max-width: 1000px) {
    .profile__grid { grid-template-columns: minmax(0, 1fr); padding: 24px 18px 60px; gap: 26px; }
    .profile__side { position: static; }
    .locations { grid-template-columns: minmax(0, 1fr); }
    .locations__map { position: static; min-height: 260px; order: -1; }
}

@media (max-width: 640px) {
    .hero__inner { padding: 62px 18px 22px; min-height: 240px; }
    .hero__back { top: 14px; left: 18px; }
    .hero__head { align-items: flex-start; gap: 13px; }
    .hero__logo { width: 60px; height: 60px; font-size: var(--t-lg); }
    .hero__title { font-size: var(--t-2xl); }
    .hero__meta { font-size: var(--t-base); }
    .hero__actions .btn { flex: 1; min-width: 140px; }
    .hero__actions .btn--icon { flex: 0 0 auto; min-width: 44px; }
    .res-item { flex-direction: column; align-items: stretch; gap: 10px; }
    .res-item__actions .btn { flex: 1; }
    .gallery { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
    .block { margin-bottom: 34px; }
}
