/* ================================================================
   FINNUSA Classifieds — Stylesheet v2.0
   Colors matched to finnusa.org: navy #1a3a5c, gold #c8972b, white
   ================================================================ */

:root {
    --fc-navy:       #1a3a5c;
    --fc-navy-dk:    #0f2540;
    --fc-gold:       #c8972b;
    --fc-gold-lt:    #e8b84b;
    --fc-white:      #ffffff;
    --fc-off-white:  #f5f7fa;
    --fc-border:     #d0d7e0;
    --fc-text:       #1c2833;
    --fc-muted:      #6b7a8d;
    --fc-success:    #1a7a4a;
    --fc-error:      #c0392b;
    --fc-warning:    #b7770d;
    --fc-radius:     6px;
    --fc-radius-lg:  10px;
    --fc-shadow-sm:  0 1px 4px rgba(0,0,0,.08);
    --fc-shadow:     0 3px 12px rgba(0,0,0,.12);
    --fc-shadow-lg:  0 6px 24px rgba(0,0,0,.16);
    --fc-transition: .2s ease;

    /* Category colors */
    --fc-sale:       #1a5c2e;
    --fc-wanted:     #4a2080;
    --fc-charter:    #1a4a6b;
    --fc-transport:  #7a3a10;
}

/* ── Reset helpers ───────────────────────────────────────── */
.fc-board *, .fc-form-wrap *, .fc-my-ads * { box-sizing: border-box; }

/* ── Notices ─────────────────────────────────────────────── */
.fc-notice {
    padding: 14px 18px;
    border-radius: var(--fc-radius);
    margin-bottom: 22px;
    border-left: 4px solid;
    line-height: 1.6;
    font-size: .95rem;
}
.fc-notice--success { background: #e8f8f0; color: var(--fc-success); border-color: var(--fc-success); }
.fc-notice--error   { background: #fdf0ee; color: var(--fc-error);   border-color: var(--fc-error);   }
.fc-notice--warning { background: #fef9ec; color: var(--fc-warning); border-color: var(--fc-warning); }

/* ── Board / listing ─────────────────────────────────────── */
.fc-board { max-width: 1100px; margin: 0 auto; }

/* Filter bar */
.fc-filterbar {
    background: var(--fc-navy);
    border-radius: var(--fc-radius-lg);
    padding: 16px 20px;
    margin-bottom: 28px;
}
.fc-filter-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
}

/* Category pills */
.fc-cat-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.fc-pill {
    display: inline-block;
    padding: 6px 16px;
    border-radius: 30px;
    font-size: .85rem;
    font-weight: 600;
    text-decoration: none;
    border: 2px solid rgba(255,255,255,.35);
    color: rgba(255,255,255,.85);
    transition: var(--fc-transition);
    letter-spacing: .02em;
}
.fc-pill:hover,
.fc-pill--active {
    background: var(--fc-gold);
    border-color: var(--fc-gold);
    color: var(--fc-white);
}

/* Search */
.fc-search-wrap { display: flex; }
.fc-search-wrap input {
    padding: 8px 14px;
    border: 1px solid rgba(255,255,255,.3);
    border-right: none;
    border-radius: var(--fc-radius) 0 0 var(--fc-radius);
    font-size: .9rem;
    background: rgba(255,255,255,.12);
    color: var(--fc-white);
    width: 220px;
}
.fc-search-wrap input::placeholder { color: rgba(255,255,255,.55); }
.fc-search-wrap input:focus { outline: none; background: rgba(255,255,255,.2); }
.fc-search-wrap button {
    padding: 8px 14px;
    background: var(--fc-gold);
    border: none;
    border-radius: 0 var(--fc-radius) var(--fc-radius) 0;
    cursor: pointer;
    font-size: 1rem;
    transition: var(--fc-transition);
    color: var(--fc-white);
}
.fc-search-wrap button:hover { background: var(--fc-gold-lt); }

.fc-result-count { color: var(--fc-muted); font-size: .88rem; margin-bottom: 18px; }
.fc-result-count strong, .fc-result-count em { color: var(--fc-navy); }

/* Ad grid */
.fc-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 22px;
    margin-bottom: 32px;
}

/* Ad card */
.fc-card {
    background: var(--fc-white);
    border: 1px solid var(--fc-border);
    border-radius: var(--fc-radius-lg);
    box-shadow: var(--fc-shadow-sm);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
    transition: var(--fc-transition);
}
.fc-card:hover {
    box-shadow: var(--fc-shadow-lg);
    transform: translateY(-2px);
}

/* Card top stripe by category */
.fc-card--for-sale    { border-top: 4px solid var(--fc-sale); }
.fc-card--wanted      { border-top: 4px solid var(--fc-wanted); }
.fc-card--charter-available { border-top: 4px solid var(--fc-charter); }
.fc-card--transportation    { border-top: 4px solid var(--fc-transport); }

/* Badge */
.fc-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: 3px 10px;
    border-radius: 4px;
    color: var(--fc-white);
    z-index: 2;
}
.fc-badge--for-sale            { background: var(--fc-sale); }
.fc-badge--wanted              { background: var(--fc-wanted); }
.fc-badge--charter-available   { background: var(--fc-charter); }
.fc-badge--transportation      { background: var(--fc-transport); }

/* Card image */
.fc-card__img-wrap { display: block; overflow: hidden; height: 200px; }
.fc-card__img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.fc-card:hover .fc-card__img-wrap img { transform: scale(1.04); }
.fc-card__no-img {
    height: 200px;
    background: var(--fc-off-white);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--fc-muted);
    font-size: 2.2rem;
    gap: 6px;
}
.fc-card__no-img small { font-size: .78rem; }

/* Card body */
.fc-card__body { padding: 16px; flex: 1; display: flex; flex-direction: column; gap: 8px; }
.fc-card__title { margin: 0; font-size: 1rem; line-height: 1.4; font-weight: 700; }
.fc-card__title a { color: var(--fc-navy); text-decoration: none; }
.fc-card__title a:hover { color: var(--fc-gold); }
.fc-card__price { font-size: 1.3rem; font-weight: 800; color: var(--fc-navy); }
.fc-card__price--contact { font-size: .95rem; font-weight: 500; color: var(--fc-muted); font-style: italic; }
.fc-card__meta { display: flex; flex-direction: column; gap: 4px; font-size: .82rem; color: var(--fc-muted); }
.fc-card__excerpt { font-size: .88rem; color: var(--fc-text); line-height: 1.55; flex: 1; }
.fc-btn--view {
    display: inline-block;
    margin-top: auto;
    padding: 9px 18px;
    background: var(--fc-navy);
    color: var(--fc-white) !important;
    border-radius: var(--fc-radius);
    font-size: .88rem;
    font-weight: 600;
    text-decoration: none;
    text-align: center;
    transition: var(--fc-transition);
    border: none;
    cursor: pointer;
}
.fc-btn--view:hover { background: var(--fc-gold); color: var(--fc-white) !important; }

/* Pagination */
.fc-pagination { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.fc-page-btn {
    display: inline-block;
    padding: 7px 14px;
    border: 1px solid var(--fc-border);
    border-radius: var(--fc-radius);
    color: var(--fc-navy);
    text-decoration: none;
    font-size: .9rem;
    transition: var(--fc-transition);
}
.fc-page-btn:hover,
.fc-page-btn--active { background: var(--fc-navy); color: var(--fc-white); border-color: var(--fc-navy); }

/* Empty state */
.fc-empty {
    text-align: center;
    padding: 60px 20px;
    color: var(--fc-muted);
    background: var(--fc-off-white);
    border: 2px dashed var(--fc-border);
    border-radius: var(--fc-radius-lg);
}
.fc-empty span { font-size: 3rem; display: block; margin-bottom: 12px; }

/* ── Form styles ─────────────────────────────────────────── */
.fc-form-wrap { max-width: 760px; margin: 0 auto; }
.fc-form-title {
    color: var(--fc-navy);
    font-size: 1.5rem;
    margin-bottom: 6px;
    border-bottom: 3px solid var(--fc-gold);
    padding-bottom: 10px;
}
.fc-form-intro { color: var(--fc-muted); margin-bottom: 28px; line-height: 1.6; font-size: .95rem; }

.fc-form-group { margin-bottom: 22px; }
.fc-form-row   { display: flex; gap: 18px; }
.fc-form-row > * { flex: 1; }

.fc-label {
    display: block;
    font-weight: 700;
    color: var(--fc-navy);
    margin-bottom: 7px;
    font-size: .93rem;
}
.fc-required { color: var(--fc-error); }
.fc-label-note {
    font-weight: 400;
    color: var(--fc-muted);
    font-size: .82rem;
    margin-left: 6px;
}
.fc-hint { display: block; font-size: .8rem; color: var(--fc-muted); margin-top: 5px; }

.fc-input, .fc-textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1.5px solid var(--fc-border);
    border-radius: var(--fc-radius);
    font-size: .95rem;
    color: var(--fc-text);
    background: var(--fc-white);
    transition: border-color var(--fc-transition), box-shadow var(--fc-transition);
    font-family: inherit;
}
.fc-input:focus, .fc-textarea:focus {
    outline: none;
    border-color: var(--fc-navy);
    box-shadow: 0 0 0 3px rgba(26,58,92,.12);
}
.fc-input:invalid:not(:placeholder-shown),
.fc-textarea:invalid:not(:placeholder-shown) { border-color: var(--fc-error); }
.fc-textarea { resize: vertical; min-height: 140px; }

/* Fieldset */
.fc-fieldset {
    border: 1.5px solid var(--fc-border);
    border-radius: var(--fc-radius-lg);
    padding: 20px 22px 16px;
    background: var(--fc-off-white);
    margin-bottom: 22px;
}
.fc-legend {
    font-weight: 800;
    color: var(--fc-navy);
    font-size: .95rem;
    padding: 0 8px;
}

/* Category radio cards */
.fc-cat-radio-group {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 12px;
}
.fc-cat-radio input[type="radio"] { display: none; }
.fc-cat-radio__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 16px 12px;
    border: 2px solid var(--fc-border);
    border-radius: var(--fc-radius-lg);
    cursor: pointer;
    transition: var(--fc-transition);
    background: var(--fc-white);
    text-align: center;
}
.fc-cat-radio__icon  { font-size: 1.6rem; }
.fc-cat-radio__label { font-size: .85rem; font-weight: 700; color: var(--fc-navy); }
.fc-cat-radio input:checked + .fc-cat-radio__inner { border-color: var(--fc-navy); background: var(--fc-navy); }
.fc-cat-radio input:checked + .fc-cat-radio__inner .fc-cat-radio__label { color: var(--fc-white); }

/* Upload zone */
.fc-upload-zone { position: relative; }
.fc-upload-zone input[type="file"] { display: none; }
.fc-upload-label {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 28px;
    border: 2px dashed var(--fc-border);
    border-radius: var(--fc-radius-lg);
    cursor: pointer;
    background: var(--fc-off-white);
    transition: var(--fc-transition);
    text-align: center;
}
.fc-upload-label:hover,
.fc-upload-zone.fc-drag-over .fc-upload-label { border-color: var(--fc-navy); background: #e8f0f8; }
.fc-upload-icon  { font-size: 2rem; }
.fc-upload-text  { font-weight: 600; color: var(--fc-navy); font-size: .95rem; }
.fc-upload-hint  { font-size: .8rem; color: var(--fc-muted); }

.fc-image-previews { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.fc-preview-item {
    position: relative;
    width: 88px;
    height: 88px;
    border-radius: var(--fc-radius);
    overflow: hidden;
    border: 1px solid var(--fc-border);
}
.fc-preview-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fc-preview-rm {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(0,0,0,.65);
    color: #fff;
    border: none;
    cursor: pointer;
    font-size: 13px;
    line-height: 22px;
    text-align: center;
    padding: 0;
}

/* Existing images (edit form) */
.fc-existing-images { display: flex; flex-wrap: wrap; gap: 12px; }
.fc-existing-img {
    position: relative;
    width: 100px;
    height: 100px;
    border-radius: var(--fc-radius);
    overflow: hidden;
    border: 1.5px solid var(--fc-border);
}
.fc-existing-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fc-featured-badge {
    position: absolute;
    bottom: 4px;
    left: 4px;
    background: var(--fc-gold);
    color: #fff;
    font-size: .65rem;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 3px;
    text-transform: uppercase;
}
.fc-del-label {
    position: absolute;
    top: 4px;
    right: 4px;
    background: rgba(192,57,43,.85);
    color: #fff;
    font-size: .7rem;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 3px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 3px;
}
.fc-del-label input { width: 12px; height: 12px; margin: 0; }

/* Duration slider */
.fc-duration-wrap { display: flex; align-items: center; gap: 14px; margin-bottom: 6px; }
.fc-range {
    flex: 1;
    -webkit-appearance: none;
    height: 6px;
    border-radius: 3px;
    background: var(--fc-border);
    outline: none;
}
.fc-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--fc-navy);
    cursor: pointer;
    border: 3px solid var(--fc-white);
    box-shadow: 0 0 0 1px var(--fc-navy);
}
.fc-range::-moz-range-thumb {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--fc-navy);
    cursor: pointer;
    border: 3px solid var(--fc-white);
}
.fc-duration-output {
    min-width: 80px;
    font-weight: 700;
    color: var(--fc-navy);
    font-size: .95rem;
    text-align: right;
}
.fc-duration-dates { font-size: .85rem; color: var(--fc-muted); }
.fc-duration-dates strong { color: var(--fc-navy); }

/* Checkbox */
.fc-check-label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: .9rem;
    color: var(--fc-text);
    cursor: pointer;
}
.fc-check-label input[type="checkbox"] { margin-top: 3px; flex-shrink: 0; accent-color: var(--fc-navy); }

/* Honeypot */
.fc-hp { display: none !important; visibility: hidden; position: absolute; left: -9999px; }

/* Buttons */
.fc-btn {
    display: inline-block;
    padding: 10px 22px;
    border-radius: var(--fc-radius);
    font-size: .9rem;
    font-weight: 700;
    cursor: pointer;
    border: 2px solid transparent;
    text-decoration: none;
    transition: var(--fc-transition);
    text-align: center;
    line-height: 1.3;
}
.fc-btn--submit {
    background: var(--fc-navy);
    color: var(--fc-white);
    padding: 13px 32px;
    font-size: 1rem;
}
.fc-btn--submit:hover { background: var(--fc-gold); color: var(--fc-white); }
.fc-btn--submit:disabled { opacity: .6; cursor: not-allowed; }
.fc-btn--secondary {
    background: transparent;
    color: var(--fc-navy);
    border-color: var(--fc-navy);
}
.fc-btn--secondary:hover { background: var(--fc-navy); color: var(--fc-white); }
.fc-btn--danger { background: var(--fc-error); color: var(--fc-white); }
.fc-btn--danger:hover { background: #a93226; }
.fc-btn--sm { padding: 6px 13px; font-size: .82rem; }

.fc-form-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; padding-top: 8px; }
.fc-submit-note { font-size: .82rem; color: var(--fc-muted); }

/* ── My Ads table ─────────────────────────────────────────── */
.fc-my-ads { max-width: 900px; }
.fc-my-ads h2 { color: var(--fc-navy); border-bottom: 3px solid var(--fc-gold); padding-bottom: 10px; margin-bottom: 20px; }
.fc-my-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.fc-my-table th { background: var(--fc-navy); color: var(--fc-white); padding: 11px 14px; text-align: left; font-weight: 600; }
.fc-my-table th:first-child { border-radius: var(--fc-radius) 0 0 0; }
.fc-my-table th:last-child  { border-radius: 0 var(--fc-radius) 0 0; }
.fc-my-table td { padding: 12px 14px; border-bottom: 1px solid var(--fc-border); vertical-align: middle; }
.fc-my-table tr:hover td { background: var(--fc-off-white); }
.fc-my-actions { display: flex; gap: 8px; }
.fc-status-note { color: var(--fc-muted); font-size: .82rem; }

.fc-status-dot { font-size: .82rem; font-weight: 700; }
.fc-status-dot--active   { color: var(--fc-success); }
.fc-status-dot--sold     { color: var(--fc-muted); }
.fc-status-dot--expired  { color: var(--fc-error); }
.fc-status-dot--inactive { color: var(--fc-warning); }

/* ── Single ad contact form ───────────────────────────────── */
.fc-contact-box {
    background: var(--fc-off-white);
    border: 1.5px solid var(--fc-border);
    border-radius: var(--fc-radius-lg);
    padding: 24px;
    margin-top: 30px;
}
.fc-contact-box h3 { color: var(--fc-navy); margin-top: 0; margin-bottom: 16px; font-size: 1.1rem; }
.fc-contact-box p  { color: var(--fc-muted); font-size: .9rem; margin-bottom: 16px; }
.fc-contact-success { display: none; }
.fc-contact-success.fc-visible { display: block; }

/* ── Responsive ───────────────────────────────────────────── */
@media ( max-width: 680px ) {
    .fc-form-row { flex-direction: column; gap: 0; }
    .fc-filter-inner { flex-direction: column; align-items: stretch; }
    .fc-cat-pills { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
    .fc-search-wrap input { width: 100%; }
    .fc-grid { grid-template-columns: 1fr; }
    .fc-cat-radio-group { grid-template-columns: 1fr 1fr; }
    .fc-my-table { font-size: .8rem; }
    .fc-my-table th:nth-child(4),
    .fc-my-table td:nth-child(4) { display: none; } /* hide Expires col on mobile */
}

/* ================================================================
   SINGLE AD PAGE — gallery, details, contact form, lightbox
   ================================================================ */

/* ── Wrapper ─────────────────────────────────────────────── */
.fc-single-wrap { max-width: 1080px; margin: 0 auto; padding: 0 16px 60px; }

/* ── Breadcrumb ──────────────────────────────────────────── */
.fc-breadcrumb {
    font-size: .85rem;
    color: var(--fc-muted);
    margin-bottom: 22px;
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}
.fc-breadcrumb a { color: var(--fc-navy); text-decoration: none; }
.fc-breadcrumb a:hover { text-decoration: underline; }

/* ── Two-column layout ───────────────────────────────────── */
.fc-single-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}
@media (max-width: 760px) {
    .fc-single-inner { grid-template-columns: 1fr; gap: 24px; }
}

/* ── Gallery ─────────────────────────────────────────────── */
.fc-single-gallery { position: sticky; top: 80px; }

.fc-gallery-main {
    position: relative;
    background: #000;
    border-radius: var(--fc-radius-lg);
    overflow: hidden;
    aspect-ratio: 4/3;
    cursor: pointer;
}
.fc-gallery-main__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    transition: opacity .2s ease;
}
.fc-gallery-main__img.fc-loading { opacity: .4; }

/* Gallery zoom button */
.fc-gallery-zoom {
    position: absolute;
    bottom: 12px;
    right: 12px;
    background: rgba(255,255,255,.85);
    border: none;
    border-radius: 50%;
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--fc-navy);
    transition: var(--fc-transition);
    z-index: 2;
}
.fc-gallery-zoom:hover { background: var(--fc-white); transform: scale(1.1); }

/* Prev/next nav arrows */
.fc-gallery-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,.8);
    border: none;
    border-radius: 50%;
    width: 38px;
    height: 38px;
    font-size: 1.4rem;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--fc-navy);
    transition: var(--fc-transition);
    z-index: 2;
}
.fc-gallery-nav--prev { left: 10px; }
.fc-gallery-nav--next { right: 50px; }
.fc-gallery-nav:hover { background: var(--fc-white); }

.fc-gallery-counter {
    position: absolute;
    bottom: 12px;
    left: 12px;
    background: rgba(0,0,0,.55);
    color: #fff;
    font-size: .78rem;
    padding: 3px 9px;
    border-radius: 20px;
}

/* Thumbnail strip */
.fc-gallery-thumbs {
    display: flex;
    gap: 8px;
    margin-top: 10px;
    flex-wrap: wrap;
}
.fc-thumb {
    width: 72px;
    height: 54px;
    border-radius: var(--fc-radius);
    overflow: hidden;
    border: 2px solid var(--fc-border);
    padding: 0;
    cursor: pointer;
    background: none;
    transition: border-color var(--fc-transition);
    flex-shrink: 0;
}
.fc-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fc-thumb--active,
.fc-thumb:hover { border-color: var(--fc-navy); }

/* No photo placeholder */
.fc-no-photo {
    aspect-ratio: 4/3;
    background: var(--fc-off-white);
    border: 2px dashed var(--fc-border);
    border-radius: var(--fc-radius-lg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--fc-muted);
    font-size: 3rem;
    gap: 10px;
}
.fc-no-photo p { font-size: .9rem; margin: 0; }

/* Owner actions */
.fc-owner-actions { margin-top: 12px; }

/* ── Details column ──────────────────────────────────────── */
.fc-badge--inline {
    position: static;
    display: inline-block;
    margin-bottom: 10px;
    font-size: .8rem;
}
.fc-single-title {
    font-size: 1.6rem;
    line-height: 1.3;
    color: var(--fc-navy);
    margin: 0 0 10px;
    font-weight: 800;
}
.fc-single-price {
    font-size: 2rem;
    font-weight: 900;
    color: var(--fc-navy);
    margin-bottom: 18px;
    letter-spacing: -.02em;
}
.fc-single-price--contact {
    font-size: 1.1rem;
    font-weight: 500;
    color: var(--fc-muted);
    font-style: italic;
}

/* Key details list */
.fc-single-meta {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 6px 16px;
    font-size: .9rem;
    margin: 0 0 22px;
    padding: 16px;
    background: var(--fc-off-white);
    border-radius: var(--fc-radius);
    border: 1px solid var(--fc-border);
}
.fc-single-meta dt { font-weight: 700; color: var(--fc-navy); white-space: nowrap; }
.fc-single-meta dd { margin: 0; color: var(--fc-text); }

/* Description */
.fc-single-desc { margin-bottom: 28px; }
.fc-single-desc__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--fc-navy);
    border-bottom: 2px solid var(--fc-border);
    padding-bottom: 8px;
    margin-bottom: 14px;
}
.fc-single-desc__body {
    font-size: .95rem;
    line-height: 1.7;
    color: var(--fc-text);
}
.fc-single-desc__body p { margin: 0 0 1em; }

/* ── Contact box ─────────────────────────────────────────── */
.fc-contact-box {
    background: var(--fc-off-white);
    border: 2px solid var(--fc-navy);
    border-radius: var(--fc-radius-lg);
    padding: 24px;
}
.fc-contact-box h3 {
    color: var(--fc-navy);
    margin: 0 0 6px;
    font-size: 1.1rem;
}
.fc-contact-box > p {
    color: var(--fc-muted);
    font-size: .88rem;
    margin-bottom: 18px;
}
.fc-contact-form .fc-form-row { gap: 12px; }
.fc-contact-form .fc-form-group { margin-bottom: 14px; }
.fc-contact-error { display: none; margin-bottom: 12px; }

/* ── Price input ─────────────────────────────────────────── */
.fc-price-wrap {
    display: flex;
    align-items: center;
    border: 1.5px solid var(--fc-border);
    border-radius: var(--fc-radius);
    overflow: hidden;
    background: var(--fc-white);
    transition: border-color var(--fc-transition);
}
.fc-price-wrap:focus-within {
    border-color: var(--fc-navy);
    box-shadow: 0 0 0 3px rgba(26,58,92,.12);
}
.fc-price-symbol {
    padding: 10px 12px;
    background: var(--fc-off-white);
    color: var(--fc-muted);
    font-weight: 700;
    border-right: 1px solid var(--fc-border);
    font-size: 1rem;
    line-height: 1;
}
.fc-input--price {
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    flex: 1;
}
.fc-input--price:focus { outline: none; box-shadow: none !important; }

/* ── LIGHTBOX ─────────────────────────────────────────────── */
.fc-lightbox__overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.92);
    z-index: 99998;
}
.fc-lightbox {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.fc-lightbox__img-wrap {
    position: relative;
    max-width: 90vw;
    max-height: 88vh;
    display: flex;
    align-items: center;
    justify-content: center;
}
.fc-lightbox__img {
    max-width: 90vw;
    max-height: 85vh;
    object-fit: contain;
    border-radius: var(--fc-radius);
    box-shadow: 0 20px 60px rgba(0,0,0,.6);
    transition: opacity .2s ease;
    display: block;
}
.fc-lightbox__img.fc-loading { opacity: 0; }

.fc-lightbox__spinner {
    display: none;
    width: 44px;
    height: 44px;
    border: 4px solid rgba(255,255,255,.2);
    border-top-color: #fff;
    border-radius: 50%;
    animation: fc-spin .7s linear infinite;
    position: absolute;
}
.fc-lightbox__spinner.fc-visible { display: block; }
@keyframes fc-spin { to { transform: rotate(360deg); } }

.fc-lightbox__close {
    position: fixed;
    top: 16px;
    right: 20px;
    background: rgba(255,255,255,.15);
    border: none;
    color: #fff;
    font-size: 1.5rem;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--fc-transition);
    z-index: 100000;
}
.fc-lightbox__close:hover { background: rgba(255,255,255,.3); }

.fc-lightbox__nav {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,.15);
    border: none;
    color: #fff;
    font-size: 2.5rem;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--fc-transition);
    z-index: 100000;
    line-height: 1;
}
.fc-lightbox__nav:hover { background: rgba(255,255,255,.3); }
.fc-lightbox__nav--prev { left: 16px; }
.fc-lightbox__nav--next { right: 16px; }
.fc-lightbox__nav:disabled { opacity: .3; cursor: default; }

.fc-lightbox__counter {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0,0,0,.55);
    color: #fff;
    font-size: .85rem;
    padding: 5px 14px;
    border-radius: 20px;
    z-index: 100000;
}
