/* Public site polish — refines the existing dark + orange XXXCLUB brand.
 * Purely additive (loaded after main.css/response.css). No brand/color change. */

/* --- Mobile: one anketa card per row up to tablets (was cramped 2-up,
 *     Contact button overflowed in the 576–767px range) --- */
@media (max-width: 767.98px) {
    .block-anketa {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }
}

/* --- Anketa cards: softer elevation + subtle hover lift --- */
.block-anketa .anketa {
    box-shadow: 0 2px 6px rgba(0, 0, 0, .45), 0 10px 26px rgba(0, 0, 0, .30);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.block-anketa .anketa:hover {
    transform: translateY(-3px);
    border-color: rgba(255, 165, 0, .55);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .5), 0 16px 38px rgba(255, 165, 0, .10);
}
.block-anketa .anketa .main_image { transition: filter .18s ease; }
.block-anketa .anketa:hover .main_image { filter: brightness(1.05); }

/* --- Contact button --- */
.block-anketa .right_block .contact_block .contact {
    border-radius: 9px;
    padding: 8px 14px;
    box-shadow: 0 2px 8px rgba(255, 165, 0, .25);
    transition: background .15s ease, transform .12s ease, box-shadow .15s ease;
}
.block-anketa .right_block .contact_block .contact:hover {
    background: #ffb733;
    border-color: #ffb733;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(255, 165, 0, .4);
}

/* --- Category chips → pill + hover fill --- */
.home-category-block a {
    border-radius: 999px !important;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.home-category-block a:hover {
    background: #ffa500 !important;
    color: #111 !important;
    border-color: #ffa500 !important;
}

/* --- "Show phone" subtle hover --- */
.block-anketa .anketa .name_phone .btn_show_phone,
.block-anketa .anketa .name_phone .phone .phone_link { transition: opacity .15s ease; }
.block-anketa .anketa .name_phone .btn_show_phone:hover { opacity: .8; }

/* --- Sticky header with depth (desktop only, to keep mobile space) --- */
@media (min-width: 768px) {
    header.text-bg-dark {
        position: sticky;
        top: 0;
        z-index: 1020;
        box-shadow: 0 2px 14px rgba(0, 0, 0, .45);
    }
}

/* --- General smoothing --- */
a { transition: color .15s ease; }

/* --- Country/city selector (modal): search + collapsible countries --- */
.cc-search-wrap { position: relative; margin-bottom: 14px; }
.cc-search-icon {
    position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
    width: 16px; height: 16px; color: #9a9a9a; pointer-events: none;
}
.cc-search.form-control {
    padding-left: 40px; border-radius: 999px;
    background: #1c1c1c; color: #fff; border: 1px solid #3a3a3a;
}
.cc-search.form-control:focus {
    background: #1c1c1c; color: #fff; border-color: #ffa500;
    box-shadow: 0 0 0 .2rem rgba(255, 165, 0, .2);
}
.cc-search.form-control::placeholder { color: #888; }
.cc-country { border-bottom: 1px solid rgba(128, 128, 128, .18); }
.cc-country .country-title {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    cursor: pointer; margin: 0; padding: 10px 4px; font-size: 1.05rem;
}
.cc-chevron { color: #ffa500; transition: transform .18s ease; }
.cc-country.open .cc-chevron { transform: rotate(180deg); }
.cc-cities { display: none; padding: 4px 2px 10px; }
.cc-country.open .cc-cities { display: block; }

/* --- Anketa page: balance + card sections --- */
/* Keep the photo in view while scrolling the long info/services column. */
@media (min-width: 576px) {
    .anketa-page > .row > .col-sm-4:first-child,
    .anketa-page > .row > .col-sm-3:first-child {
        position: sticky;
        top: 90px;
        align-self: flex-start;
    }
}
/* Section blocks become clean cards for visual separation/balance. */
.anketa-page .block_info {
    background: #121212;
    border: 1px solid #1f1f1f;
    border-radius: 14px;
    box-shadow: var(--m-shadow, 0 10px 26px rgba(0,0,0,.30));
    padding: 18px 20px;
}
.anketa-page .main_image {
    box-shadow: 0 8px 24px rgba(0, 0, 0, .45);
}
/* The "# id" chip — subtle, top-right. */
.anketa-page .block_info .mini-text {
    opacity: .55;
    font-size: .8rem;
}
/* Services: emphasise offered, mute the rest so the card isn't a wall of red ✗. */
.uslugi_block { transition: opacity .15s ease; }
.uslugi_block:has(.text-danger) { opacity: .42; }
.uslugi_block:has(.text-green) { opacity: 1; }
.uslugi_block:has(.text-green) a { color: #fff; font-weight: 600; }
.text-green { color: #2ecc71 !important; }
/* Section titles a touch more prominent. */
.anketa-page .block_info > .title,
.anketa-page .block_info > h2.title { font-weight: 700; letter-spacing: .2px; }

/* --- Home anketa cards: premium photo + tighter info --- */
.block-anketa .anketa .image_block {
    border-radius: 14px;
    overflow: hidden;
}
/* Override the inline 250x300 so the photo fills the column with a clean ratio. */
.block-anketa .anketa .image_block .main_image {
    width: 100% !important;
    height: 320px !important;
    object-fit: cover;
    transition: transform .35s ease, filter .2s ease;
}
.block-anketa .anketa:hover .image_block .main_image { transform: scale(1.05); }
/* Emphasise the price values. */
.block-anketa .right_block .price span:last-child { color: #ffa500; font-weight: 700; }
.block-anketa .anketa .name_phone .name a { font-size: 1.06rem; }
/* Hide the small addition-photo thumbnails on catalogue cards — their count
 * varies per anketa (0/1/2/3), which made cards look ragged and the squares
 * land in different spots. The full photo set lives on the anketa page. This
 * keeps every card uniform: photo + params + prices + location + contact. */
.block-anketa .right_block .addition_photo { display: none; }

/* --- Anketa gallery: clean rounded thumbnail grid + hover zoom --- */
.anketa-page .addition_elements .images { gap: 8px; }
.anketa-page .addition_elements .images a {
    width: calc(50% - 4px);
    border-radius: 10px;
    overflow: hidden;
}
.anketa-page .addition_elements .images img {
    height: 150px;
    border-radius: 10px;
    transition: transform .25s ease, filter .2s ease;
}
.anketa-page .addition_elements .images a:hover img {
    transform: scale(1.06);
    filter: brightness(1.08);
}
.anketa-page .addition_elements .nav-link.active { color: #ffa500; }

/* --- Geo "profiles in your city" suggestion bar --- */
.geo-suggest {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 10px 12px;
    padding: 10px 16px;
    background: linear-gradient(90deg, rgba(255, 165, 0, .14), rgba(255, 165, 0, .04));
    border: 1px solid rgba(255, 165, 0, .35);
    border-radius: 12px;
    color: #fff;
    font-size: .95rem;
}
.geo-suggest__txt b { color: #ffa500; }
.geo-suggest__go {
    margin-left: auto;
    padding: 6px 16px;
    border-radius: 999px;
    background: #ffa500;
    color: #111 !important;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}
.geo-suggest__go:hover { background: #ffb733; }
.geo-suggest__x {
    background: none;
    border: 0;
    color: #9a9a9a;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    padding: 4px 6px;
}
.geo-suggest__x:hover { color: #fff; }
@media (max-width: 575.98px) {
    .geo-suggest { flex-wrap: wrap; }
    .geo-suggest__go { margin-left: 0; }
}

/* ============================================================
   Forms & cards polish — auth / account / contact / generic (v7)
   Rounded corners, soft inputs, focus ring, button feedback.
   Scoped to avoid touching pill buttons & .cc-search.
   ============================================================ */

/* Cards: auth page + any .bg-gray panel (account, contact) */
#page-auth .card,
.card.bg-gray {
    border-radius: 18px !important;
    border: 1px solid rgba(255, 255, 255, .08) !important;
    background: rgba(24, 24, 26, .92) !important;
    box-shadow: 0 18px 50px rgba(0, 0, 0, .55), 0 2px 8px rgba(0, 0, 0, .40) !important;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}
#page-auth .card { padding: 8px; }
#page-auth .card-body { padding: 24px 28px 30px !important; }
#page-auth .card h3 { letter-spacing: .3px; margin-bottom: 6px; }

#page-auth .card hr,
.card.bg-gray hr {
    border: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .18), transparent);
    opacity: 1;
    margin: 14px 0 22px;
}

/* Inputs (exclude the pill-shaped country search) */
.form-control:not(.cc-search),
.form-select {
    border-radius: 12px !important;
    background-color: #161618 !important;
    border: 1px solid #313135 !important;
    color: #f1f1f1 !important;
    padding: 12px 16px !important;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.form-control:not(.cc-search)::placeholder { color: #777 !important; }
.form-control:not(.cc-search):hover,
.form-select:hover { border-color: #4a4a50 !important; }
.form-control:not(.cc-search):focus,
.form-select:focus {
    background-color: #1b1b1e !important;
    border-color: #ff9f1c !important;
    box-shadow: 0 0 0 3px rgba(255, 159, 28, .18) !important;
    outline: 0 !important;
}
.form-control.is-invalid { border-color: #e0556a !important; }

.form-label {
    color: #d7d7da;
    font-weight: 500;
    margin-bottom: 7px;
    letter-spacing: .2px;
}

/* Buttons inside forms/cards only (keeps header pills intact) */
#page-auth .btn,
.card .btn,
form .btn {
    border-radius: 12px !important;
}
#page-auth .btn-primary,
.card .btn-primary,
form .btn-primary {
    border: 0 !important;
    padding: 12px 18px !important;
    box-shadow: 0 6px 16px rgba(255, 159, 28, .28);
    transition: transform .12s ease, box-shadow .15s ease, filter .15s ease;
}
#page-auth .btn-primary:hover,
.card .btn-primary:hover,
form .btn-primary:hover {
    filter: brightness(1.06);
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(255, 159, 28, .38);
}
#page-auth .btn-primary:active,
.card .btn-primary:active,
form .btn-primary:active { transform: translateY(0); }

/* Alerts inside auth a touch softer */
#page-auth .alert { border-radius: 12px; }
