.hbm-aff-box{
    margin:32px 0;
    padding:24px;
    border-radius:26px;
    background:
        radial-gradient(circle at top left,rgba(244,210,122,.22),transparent 32%),
        linear-gradient(135deg,#12110d,#302411 68%,#0d0b08);
    color:#fff;
    border:1px solid rgba(244,210,122,.35);
    box-shadow:0 22px 55px rgba(0,0,0,.18);
    overflow:hidden;
    position:relative;
    max-width:820px;
}

.hbm-aff-box:before{
    content:"";
    position:absolute;
    inset:1px;
    border-radius:25px;
    border:1px solid rgba(244,210,122,.18);
    pointer-events:none;
}

.hbm-aff-top,
.hbm-aff-head{
    display:flex;
    gap:16px;
    align-items:flex-start;
    justify-content:space-between;
    position:relative;
    z-index:2;
}

.hbm-aff-icon{
    width:54px;
    height:54px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:26px;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(244,210,122,.25);
    flex:0 0 auto;
}

.hbm-aff-kicker{
    display:inline-block;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.12em;
    color:#f4d27a;
    font-weight:800;
    margin-bottom:6px;
}

.hbm-aff-box h3,
.hbm-aff-head strong{
    margin:0 0 8px;
    font-size:clamp(24px,3vw,38px);
    line-height:1.05;
    color:#ffe4a3;
}

.hbm-aff-box p{
    margin:0;
    color:#fff6df;
    font-size:15px;
    line-height:1.6;
}

.hbm-aff-actions{
    margin-top:20px;
    position:relative;
    z-index:2;
}

.hbm-aff-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:48px;
    padding:13px 22px;
    border-radius:999px;
    background:linear-gradient(135deg,#d6ad61,#f4d58a);
    color:#15120d!important;
    text-decoration:none!important;
    font-weight:900;
    letter-spacing:.02em;
    box-shadow:0 10px 25px rgba(244,210,122,.24);
    transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.hbm-aff-btn:hover{
    transform:translateY(-2px);
    filter:brightness(1.04);
    box-shadow:0 14px 30px rgba(244,210,122,.33);
}

.hbm-aff-note{
    margin-top:16px;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    position:relative;
    z-index:2;
    font-size:12px;
    color:rgba(255,255,255,.72);
}

.hbm-aff-note span{
    display:inline-flex;
    align-items:center;
    padding:6px 10px;
    border-radius:999px;
    background:rgba(255,255,255,.08);
    color:#f8eac2;
    font-size:12px;
    border:1px solid rgba(255,255,255,.08);
}

/* Campaign shortcode card */
.hbm-aff-short-campaign{
    display:grid;
    grid-template-columns:160px 1fr;
    gap:18px;
    align-items:center;
    margin:24px 0;
    padding:18px;
    border-radius:22px;
    background:#fffdf8;
    border:1px solid #e7d7ad;
    box-shadow:0 12px 28px rgba(0,0,0,.08);
}

.hbm-aff-short-campaign-img{
    min-height:130px;
    border-radius:16px;
    background-size:cover;
    background-position:center;
}

.hbm-aff-short-campaign-body span{
    display:inline-block;
    font-size:12px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:#c69b2f;
    font-weight:800;
}

.hbm-aff-short-campaign-body h3{
    margin:6px 0;
    font-size:24px;
    line-height:1.15;
    color:#15120d;
}

.hbm-aff-short-campaign-body p{
    color:#4d4638;
}

.hbm-aff-short-campaign-body a{
    display:inline-block;
    background:#15120d;
    color:#f4d27a!important;
    padding:11px 17px;
    border-radius:999px;
    text-decoration:none;
    font-weight:800;
}

/* Native ad grid support */
.hbm-aff-ad-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:18px;
    margin:24px 0;
}

.hbm-aff-mini-card{
    overflow:hidden;
    border-radius:22px;
    background:#fffdf8;
    border:1px solid #e8d7a8;
    box-shadow:0 14px 32px rgba(0,0,0,.08);
}

.hbm-aff-mini-img{
    min-height:170px;
    background-size:cover;
    background-position:center;
}

.hbm-aff-mini-body{
    padding:20px;
}

.hbm-aff-mini-body span{
    display:inline-block;
    color:#c69b2f;
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.1em;
}

.hbm-aff-mini-body h3{
    margin:8px 0;
    font-size:22px;
    line-height:1.15;
    color:#17120b;
}

.hbm-aff-mini-body p{
    color:#4a4336;
}

.hbm-aff-mini-body a{
    display:inline-block;
    background:#f4d27a;
    color:#15120d!important;
    padding:12px 18px;
    border-radius:999px;
    font-weight:800;
    text-decoration:none;
}

@media(max-width:640px){
    .hbm-aff-box{
        padding:20px;
        border-radius:22px;
    }

    .hbm-aff-top,
    .hbm-aff-head{
        gap:12px;
        flex-direction:column;
    }

    .hbm-aff-icon{
        width:46px;
        height:46px;
        border-radius:15px;
        font-size:22px;
    }

    .hbm-aff-btn{
        width:100%;
    }

    .hbm-aff-short-campaign{
        grid-template-columns:1fr;
    }
}
/* Travelpayouts v1.8 production city placement */
.hbm-aff-city-section{
    padding:18px 20px 52px;
    background:transparent;
}

.hbm-aff-city-wrap{
    width:min(1180px,100%);
    margin:0 auto;
}

.hbm-aff-city-section .hbm-aff-travelpayouts{
    max-width:none;
    margin:0;
}

.hbm-aff-travelpayouts .hbm-aff-disclosure{
    margin-top:14px;
}

.hbm-aff-travelpayouts .hbm-aff-disclosure span{
    padding:0;
    border:0;
    background:transparent;
    color:rgba(255,255,255,.62);
    font-size:11px;
    letter-spacing:.03em;
}

@media(max-width:640px){
    .hbm-aff-city-section{
        padding:14px 14px 34px;
    }
}

/* Travelpayouts v1.9 multi-placement */
.hbm-aff-blog-section,
.hbm-aff-listing-content-section{
    margin:34px 0;
}

.hbm-aff-listing-section{
    padding:26px 20px 38px;
    background:#f4f7f4;
}

.hbm-aff-listing-wrap{
    width:min(1180px,100%);
    margin:0 auto;
}

.hbm-aff-listing-section .hbm-aff-travelpayouts,
.hbm-aff-listing-content-section .hbm-aff-travelpayouts,
.hbm-aff-blog-section .hbm-aff-travelpayouts{
    max-width:none;
}

@media(max-width:640px){
    .hbm-aff-blog-section,
    .hbm-aff-listing-content-section{
        margin:24px 0;
    }
    .hbm-aff-listing-section{
        padding:18px 14px 28px;
    }
}

/* v1.9.1: force readable Travelpayouts headline against theme heading overrides */
.hbm-aff-travelpayouts .hbm-tp-copy h3{
    color:#0b3d32 !important;
    -webkit-text-fill-color:#0b3d32;
    font-weight:700;
    text-shadow:none !important;
    opacity:1 !important;
}

/* v1.11 Auto Ads: distributed in-page units */
.hbm-aff-auto-unit{
    width:100%;
    padding:24px 20px 34px;
    margin:0;
    background:transparent;
}
.hbm-aff-auto-unit .hbm-aff-city-wrap{
    width:min(1180px,100%);
    margin:0 auto;
}
.hbm-aff-auto-unit .hbm-aff-travelpayouts{
    max-width:none;
    margin:0;
}
.hbm-aff-auto-blog-unit + .hbm-aff-auto-blog-unit{margin-top:42px}

/* Optional Auto Ads overlay format. Off by default. */
.hbm-aff-anchor{
    position:fixed;
    left:50%;
    bottom:14px;
    transform:translateX(-50%);
    z-index:9997;
    width:min(760px,calc(100% - 28px));
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:16px;
    align-items:center;
    padding:14px 18px;
    border:1px solid #d7c58e;
    border-radius:16px;
    background:rgba(255,253,248,.97);
    color:#163f35;
    box-shadow:0 16px 44px rgba(17,55,46,.22);
    backdrop-filter:blur(12px);
}
.hbm-aff-anchor-copy{min-width:0}
.hbm-aff-anchor-copy small{
    display:block;
    margin-bottom:2px;
    color:#8b6a20;
    font-size:10px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.hbm-aff-anchor-copy strong{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#0b4b3d;
    font-size:15px;
}
.hbm-aff-anchor>a{
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:40px;
    padding:9px 14px;
    border-radius:10px;
    background:#0b5747;
    color:#fff!important;
    text-decoration:none!important;
    font-size:13px;
    font-weight:800;
}
.hbm-aff-anchor-close{
    position:absolute;
    top:-10px;
    right:-8px;
    width:26px;
    height:26px;
    border-radius:50%;
    border:1px solid #d4d4d4;
    background:#fff;
    color:#50575e;
    font-size:18px;
    line-height:22px;
    cursor:pointer;
    box-shadow:0 3px 10px rgba(0,0,0,.12);
}
@media(max-width:640px){
    .hbm-aff-auto-unit{padding:18px 14px 26px}
    .hbm-aff-anchor{bottom:10px;width:calc(100% - 20px);padding:12px 13px;gap:10px;border-radius:13px}
    .hbm-aff-anchor-copy strong{font-size:13px}
    .hbm-aff-anchor>a{padding:8px 11px;font-size:12px}
}


/* v1.12 City SEO navigation: compact intent links + internal destinations */
.hbm-aff-city-seo-nav{
    padding:30px 20px;
    background:#f7f8f4;
    border-top:1px solid rgba(18,75,62,.08);
    border-bottom:1px solid rgba(18,75,62,.08);
}
.hbm-aff-city-seo-inner{width:min(1180px,100%);margin:0 auto}
.hbm-aff-city-seo-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,420px);gap:28px;align-items:end;margin-bottom:18px}
.hbm-aff-city-seo-kicker{display:block;color:#b18322;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;margin-bottom:5px}
.hbm-aff-city-seo-head h2{margin:0;color:#102f28;font-family:inherit;font-size:clamp(26px,3vw,38px);line-height:1.05}
.hbm-aff-city-seo-head p{margin:0;color:#65716c;font-size:14px;line-height:1.6}
.hbm-aff-city-seo-services{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.hbm-aff-city-seo-link{
    min-height:106px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;
    padding:16px 12px;border:1px solid #dce3df;border-radius:16px;background:#fff;color:#173e34!important;
    text-decoration:none!important;text-align:center;font-size:13px;font-weight:700;line-height:1.3;
    box-shadow:0 5px 18px rgba(20,59,49,.05);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.hbm-aff-city-seo-link:hover{transform:translateY(-2px);border-color:#d0af59;box-shadow:0 10px 24px rgba(20,59,49,.1)}
.hbm-aff-city-seo-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:#f7eed3;color:#9d741a;font-size:17px;font-weight:900}
.hbm-aff-popular-destinations{display:flex;gap:18px;align-items:flex-start;margin-top:18px;padding-top:17px;border-top:1px solid #e4e8e5}
.hbm-aff-popular-destinations>strong{flex:0 0 auto;color:#27483f;font-size:12px;line-height:28px}
.hbm-aff-popular-links{display:flex;flex-wrap:wrap;gap:7px 9px}
.hbm-aff-popular-links a{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border-radius:999px;background:#edf2ef;color:#32564c!important;text-decoration:none!important;font-size:12px;font-weight:700}
.hbm-aff-popular-links a:hover{background:#e3ece7;color:#0e4c3d!important}
.hbm-aff-bottom-disclosure{padding:20px 20px 30px;background:#fff;color:#66716d}
.hbm-aff-bottom-disclosure-inner{width:min(1180px,100%);margin:0 auto;border-top:1px solid #e5e8e6;padding-top:14px}
.hbm-aff-bottom-disclosure strong{display:block;color:#3e514b;font-size:12px;margin-bottom:4px}
.hbm-aff-bottom-disclosure p{margin:0;max-width:920px;font-size:11px;line-height:1.65}
@media(max-width:900px){
    .hbm-aff-city-seo-head{grid-template-columns:1fr;gap:8px}
    .hbm-aff-city-seo-services{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:640px){
    .hbm-aff-city-seo-nav{padding:24px 14px}
    .hbm-aff-city-seo-services{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:5px;gap:10px;-webkit-overflow-scrolling:touch}
    .hbm-aff-city-seo-link{flex:0 0 142px;min-height:96px;scroll-snap-align:start}
    .hbm-aff-popular-destinations{display:block}
    .hbm-aff-popular-destinations>strong{display:block;margin-bottom:7px;line-height:1.4}
    .hbm-aff-bottom-disclosure{padding:16px 14px 24px}
}
