/* ============================================================
   HUNT PROPERTY CAROUSEL v2 — FRONTEND STYLES
   100% CSS-var driven. Zero theme dependency.
   ============================================================ */

/* ── Scope reset ─────────────────────────────────────────── */
.hunt-property-carousel *, .hunt-property-carousel *::before, .hunt-property-carousel *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ── Default CSS vars ────────────────────────────────────── */
.hunt-property-carousel {
    --hunt-sec-bg:    #f8f7f5;
    --hunt-card-bg:   #ffffff;
    --hunt-accent:    #b8942a;
    --hunt-h-color:   #b8942a;
    --hunt-h-font:    13px;
    --hunt-h-ls:      3px;
    --hunt-h-align:   center;
    --hunt-addr-clr:  #2c2c2c;
    --hunt-addr-font: 14px;
    --hunt-price-clr: #b8942a;
    --hunt-price-fnt: 14px;
    --hunt-btn-txt:   #b8942a;
    --hunt-btn-bdr:   #b8942a;
    --hunt-btn-hbg:   #b8942a;
    --hunt-btn-htxt:  #ffffff;
    --hunt-btn-font:  11px;
    --hunt-btn-ls:    3px;
    --hunt-btn-br:    0px;
    --hunt-btn-align: center;
    --hunt-pt:        50px;
    --hunt-pb:        56px;
    --hunt-card-br:   3px;
    --hunt-card-pt:   14px;
    --hunt-card-pb:   18px;
    --hunt-card-ps:   16px;
    --hunt-img-ratio: 68%;
    --hunt-arr-sz-d:  36px;
    --hunt-arr-bg-d:  transparent;
    --hunt-arr-c-d:   #888;
    --hunt-arr-hbg-d: #b8942a;
    --hunt-arr-hc-d:  #fff;
    --hunt-arr-br-d:  0px;
    --hunt-arr-sz-m:  44px;
    --hunt-arr-bg-m:  #b8942a;
    --hunt-arr-c-m:   #fff;
    --hunt-arr-hbg-m: #8a6e1e;
    --hunt-arr-hc-m:  #fff;
    --hunt-arr-br-m:  50px;

    background:  var(--hunt-sec-bg);
    padding:     var(--hunt-pt) 60px var(--hunt-pb);
    overflow:    hidden; /* clips peek edges */
    position:    relative;
}

/* ── Heading ─────────────────────────────────────────────── */
.hunt-pc-heading-wrap { text-align: var(--hunt-h-align); margin-bottom: 32px; }
.hunt-pc-heading {
    display:        inline-block;
    font-size:      var(--hunt-h-font);
    font-weight:    600;
    letter-spacing: var(--hunt-h-ls);
    color:          var(--hunt-h-color);
    padding-bottom: 5px;
    line-height:    1.5;
}
.hunt-pc--heading-border .hunt-pc-heading { border-bottom: 1px solid var(--hunt-h-color); }

/* ── Carousel outer ──────────────────────────────────────── */
.hunt-pc-carousel-outer { position: relative; width: 100%; }
.hunt-pc-viewport        { overflow: visible;  width: 100%; }
.hunt-pc-track           { display: flex; transition: transform 0.45s cubic-bezier(0.25,0.46,0.45,0.94); will-change: transform; }

/* ── Cards ───────────────────────────────────────────────── */
.hunt-pc-card {
    flex-shrink: 0;
    background:    var(--hunt-card-bg);
    border-radius: var(--hunt-card-br);
    overflow:      hidden;
    box-shadow:    0 1px 6px rgba(0,0,0,0.07);
    transition:    box-shadow 0.3s ease, transform 0.3s ease;
}
.hunt-pc-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,0.13); transform: translateY(-3px); }

.hunt-pc-card-image { position: relative; width: 100%; padding-top: var(--hunt-img-ratio); overflow: hidden; background: #e0dbd0; }
.hunt-pc-card-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
.hunt-pc-card:hover .hunt-pc-card-image img { transform: scale(1.04); }
.hunt-pc-no-img { display: flex; align-items: center; justify-content: center; color: #aaa; font-size: 13px; min-height: 180px; }

.hunt-pc-card-info    { padding: var(--hunt-card-pt) var(--hunt-card-ps) var(--hunt-card-pb); }
.hunt-pc-card-address { font-size: var(--hunt-addr-font); color: var(--hunt-addr-clr); line-height: 1.45; margin-bottom: 6px; }
.hunt-pc-card-price   { font-size: var(--hunt-price-fnt); color: var(--hunt-price-clr); }

/* ── Card link resets and button styling ────────────────── */
.hunt-pc-card-link-wrap,
.hunt-pc-card-image-link,
.hunt-pc-card-title-link {
    text-decoration: none;
    color: inherit;
    display: block;
}
.hunt-pc-card-title-link:hover {
    text-decoration: none;
    color: inherit;
}
.hunt-pc-card-btn {
    display: block;
    width: 100%;
    border: 1px solid var(--hunt-btn-bdr);
    color: var(--hunt-btn-txt);
    font-size: var(--hunt-btn-font);
    letter-spacing: var(--hunt-btn-ls);
    text-transform: uppercase;
    text-align: center;
    padding: 8px 0;
    border-radius: var(--hunt-btn-br);
    transition: background 0.25s, color 0.25s, border-color 0.25s;
    margin-top: 14px;
    font-weight: 500;
    text-decoration: none;
}
.hunt-pc-card-btn:hover {
    background: var(--hunt-btn-hbg);
    color: var(--hunt-btn-htxt);
    border-color: var(--hunt-btn-hbg);
}

/* ── Arrow base ──────────────────────────────────────────── */
.hunt-pc-arrow {
    background:      unset:
    color:           var(--hunt-arr-bg-d);
    border:          none;
    border-radius:   var(--hunt-arr-br-d);
    width:           var(--hunt-arr-sz-d);
    height:          var(--hunt-arr-sz-d);
    display:         flex;
    align-items:     center;
    justify-content: center;
    cursor:          pointer;
    padding:         0;
    transition:      background 0.2s, color 0.2s, opacity 0.2s;
    flex-shrink:     0;
}
.hunt-pc-arrow:hover    { background: unset; color: var(--hunt-arr-hc-d); }
.hunt-pc-arrow:disabled { opacity: 0.25; cursor: default; pointer-events: none; }
.hunt-pc-arrow svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ── Arrow: outside-track (desktop default) ──────────────── */
.hunt-pc--arrow-d-outside-track .hunt-pc-arrow-outer {
    position:  absolute;
    top:       50%;
    transform: translateY(-50%);
    z-index:   10;
}
.hunt-pc--arrow-d-outside-track .hunt-pc-arrow-outer.hunt-pc-arrow-prev { left:  -52px; }
.hunt-pc--arrow-d-outside-track .hunt-pc-arrow-outer.hunt-pc-arrow-next { right: -52px; }

/* ── Arrow: below-dots (desktop) ─────────────────────────── */
.hunt-pc--arrow-d-below-dots .hunt-pc-arrow-outer { display: none; }

/* ── Controls row ────────────────────────────────────────── */
.hunt-pc-controls-row { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 20px; }

/* Hide inner arrows when desktop position = outside-track */
.hunt-pc--arrow-d-outside-track .hunt-pc-arrow-inner { display: none; }

/* ── Dots ────────────────────────────────────────────────── */
.hunt-pc-dots { display: flex; align-items: center; gap: 8px; }
.hunt-pc-dot  { width: 8px; height: 8px; border-radius: 50%; background: #ccc; border: none; cursor: pointer; padding: 0; transition: background 0.25s, transform 0.25s; }
.hunt-pc-dot.is-active { background: var(--hunt-accent); transform: scale(1.35); }

/* ── View More ───────────────────────────────────────────── */
.hunt-pc-footer     { text-align: var(--hunt-btn-align); margin-top: 32px; }
.hunt-pc-view-more  {
    display:         inline-block;
    padding:         13px 52px;
    border:          1px solid var(--hunt-btn-bdr);
    color:           var(--hunt-btn-txt);
    font-size:       var(--hunt-btn-font);
    letter-spacing:  var(--hunt-btn-ls);
    text-transform:  uppercase;
    text-decoration: none;
    background:      transparent;
    font-weight:     500;
    border-radius:   var(--hunt-btn-br);
    transition:      background 0.25s, color 0.25s, border-color 0.25s;
}
.hunt-pc-view-more:hover { background: var(--hunt-btn-hbg); color: var(--hunt-btn-htxt); border-color: var(--hunt-btn-hbg); }

/* ═══ TABLET ≤900px ══════════════════════════════════════ */
@media (max-width: 900px) {
    .hunt-property-carousel { padding-left: 40px; padding-right: 40px; }
    .hunt-pc--arrow-d-outside-track .hunt-pc-arrow-outer.hunt-pc-arrow-prev { left: -36px; }
    .hunt-pc--arrow-d-outside-track .hunt-pc-arrow-outer.hunt-pc-arrow-next { right: -36px; }
}

/* ═══ MOBILE ≤580px ══════════════════════════════════════ */
@media (max-width: 580px) {
    .hunt-property-carousel { 
        padding: var(--hunt-pt) 15px var(--hunt-pb); 
    }
    
    .hunt-pc-heading {
        font-size: var(--hunt-h-font);
        text-align: center;
        width: 100%;
        margin-bottom: 24px;
    }

    .hunt-pc-card-address { font-size: var(--hunt-addr-font); }
    .hunt-pc-card-price   { font-size: var(--hunt-price-fnt); }
    .hunt-pc-view-more    { font-size: var(--hunt-btn-font); width: 100%; max-width: 200px; text-align: center; } 

    /* Mobile arrow base: use mobile vars */
    .hunt-pc-arrow {
        background:    var(--hunt-arr-bg-m);
        color:         var(--hunt-arr-c-m);
        border-radius: var(--hunt-arr-br-m);
        width:         var(--hunt-arr-sz-m);
        height:        var(--hunt-arr-sz-m);
    }
    .hunt-pc-arrow:hover { background: var(--hunt-arr-hbg-m); color: var(--hunt-arr-hc-m); }

    /* Mobile: on-image (overlaid on carousel, vertically centred on image) */
    .hunt-pc--arrow-m-on-image .hunt-pc-arrow-outer {
        position: absolute;
        top:      calc(var(--hunt-img-ratio) / 2);
        transform: translateY(-50%);
        z-index:  10;
        display: block;
    }
    .hunt-pc--arrow-m-on-image .hunt-pc-arrow-outer.hunt-pc-arrow-prev { left:  5px; }
    .hunt-pc--arrow-m-on-image .hunt-pc-arrow-outer.hunt-pc-arrow-next { right: 5px; }
    .hunt-pc--arrow-m-on-image .hunt-pc-arrow-inner { display: none; }

    /* Mobile: outside-track */
    .hunt-pc--arrow-m-outside-track .hunt-pc-arrow-outer {
        position:  absolute;
        top:       50%;
        transform: translateY(-50%);
        z-index:  10;
    }
    .hunt-pc--arrow-m-outside-track .hunt-pc-arrow-prev { left: -10px; }
    .hunt-pc--arrow-m-outside-track .hunt-pc-arrow-next { right: -10px; }
    .hunt-pc--arrow-m-outside-track .hunt-pc-arrow-inner { display: none; }

    /* Mobile: below-dots */
    .hunt-pc--arrow-m-below-dots .hunt-pc-arrow-outer { display: none; }
    .hunt-pc--arrow-m-below-dots .hunt-pc-arrow-inner { display: flex; }
}
