@import url('https://fonts.googleapis.com/css2?family=Fraunces:wght@400;600&family=DM+Sans:wght@300;400;500&display=swap');

/* FLOATING BUBBLE */
#hc-fab {
    position:fixed;bottom:24px;right:24px;z-index:9998;
    width:56px;height:56px;border-radius:50%;
    background:#1a2e1a;border:none;cursor:pointer;
    box-shadow:0 4px 20px rgba(0,0,0,0.3);
    display:flex;align-items:center;justify-content:center;
    font-size:24px;transition:transform .2s,box-shadow .2s;
}
#hc-fab:hover{transform:scale(1.08);box-shadow:0 6px 28px rgba(0,0,0,0.4);}
#hc-fab .hc-badge{
    position:absolute;top:-2px;right:-2px;
    width:14px;height:14px;background:#4a7a4a;border-radius:50%;
    border:2px solid white;
    animation:pulse 2s infinite;
}
#hc-window {
    position:fixed;bottom:90px;right:24px;z-index:9999;
    width:min(600px, calc(100vw - 32px));
    max-height:calc(100vh - 110px);
    display:none;
    border-radius:16px;
    overflow-y:auto;
    overflow-x:hidden;
    box-shadow:0 12px 48px rgba(0,0,0,0.25);
    animation:slideUp .25s ease;
    scroll-behavior:smooth;
}
#hc-window.open{display:block;}
@keyframes slideUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* WIDGET BASE – bubble (#hcb) és shortcode (#hcs) közös szabályai */
#hcb,
#hcs {
    --f:#1a2e1a;--m:#2d4a2d;--s:#4a7a4a;--mi:#7ab87a;--ms:#e8f0e8;
    --cr:#f7f4ee;--ba:#8b6914;--st:#6b6b5a;--wh:#ffffff;
    font-family:'DM Sans',sans-serif;
}
#hcs {
    max-width:760px;margin:0 auto;
}
#hcb .hc-widget {
    display:flex;flex-direction:column;
}
#hcs .hc-widget {
    border-radius:16px;box-shadow:0 8px 40px rgba(26,46,26,0.18);overflow:hidden;border:1px solid rgba(74,122,74,0.15);
}
/* Sticky fejléc – mindig látható tetején */
#hcb .hc-header {
    position:sticky;top:0;z-index:20;
}
/* Sticky input+footer – mindig látható alján */
#hcb .hc-sticky-bottom {
    position:sticky;bottom:0;z-index:20;
}
#hcs .hc-sticky-bottom {
    border-top:1px solid rgba(74,122,74,0.1);
}

#hcb .hc-header,
#hcs .hc-header{background:var(--f);padding:14px 18px;display:flex;align-items:center;gap:12px;flex-shrink:0;}
#hcb .hc-avatar,
#hcs .hc-avatar{width:38px;height:38px;background:var(--s);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
#hcb .hc-header-text h3,
#hcs .hc-header-text h3{font-family:'Fraunces',serif;color:var(--wh);font-size:15px;font-weight:600;margin:0 0 1px;}
#hcb .hc-header-text p,
#hcs .hc-header-text p{color:var(--mi);font-size:11px;font-weight:300;margin:0;}
#hcb .hc-close,
#hcs .hc-close{margin-left:auto;background:none;border:none;color:rgba(255,255,255,0.5);font-size:18px;cursor:pointer;padding:4px;line-height:1;border-radius:6px;transition:color .2s;}
#hcb .hc-close:hover,
#hcs .hc-close:hover{color:var(--wh);}
#hcb .hc-dot,
#hcs .hc-dot{width:7px;height:7px;background:var(--mi);border-radius:50%;animation:hc-pulse 2s infinite;margin-right:4px;}
@keyframes hc-pulse{0%,100%{opacity:1}50%{opacity:.4}}
#hcb .hc-status,
#hcs .hc-status{display:flex;align-items:center;color:var(--mi);font-size:11px;}

#hcb .hc-messages,
#hcs .hc-messages{padding:14px 14px 6px;display:flex;flex-direction:column;gap:9px;}
#hcb .hc-messages::-webkit-scrollbar,
#hcs .hc-messages::-webkit-scrollbar{width:3px}
#hcb .hc-messages::-webkit-scrollbar-thumb,
#hcs .hc-messages::-webkit-scrollbar-thumb{background:var(--mi);border-radius:2px}
#hcb .hc-msg,
#hcs .hc-msg{display:flex;gap:8px;animation:hc-fadein .3s ease;}
@keyframes hc-fadein{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
#hcb .hc-msg.user,
#hcs .hc-msg.user{flex-direction:row-reverse;}
#hcb .hc-msg-av,
#hcs .hc-msg-av{width:26px;height:26px;border-radius:50%;background:var(--m);display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;margin-top:2px;}
#hcb .hc-msg.user .hc-msg-av,
#hcs .hc-msg.user .hc-msg-av{background:var(--ba);}
#hcb .hc-bubble,
#hcs .hc-bubble{max-width:80%;padding:9px 13px;border-radius:13px;font-size:13px;line-height:1.6;color:var(--f);}
#hcb .hc-msg.bot .hc-bubble,
#hcs .hc-msg.bot .hc-bubble{background:var(--wh);border:1px solid rgba(74,122,74,0.12);border-bottom-left-radius:3px;}
#hcb .hc-msg.user .hc-bubble,
#hcs .hc-msg.user .hc-bubble{background:var(--f);color:var(--wh);border-bottom-right-radius:3px;}
#hcb .hc-typing,
#hcs .hc-typing{display:flex;gap:4px;padding:2px 0;}
#hcb .hc-typing span,
#hcs .hc-typing span{width:5px;height:5px;background:var(--s);border-radius:50%;animation:hc-bounce 1.2s infinite;}
#hcb .hc-typing span:nth-child(2),
#hcs .hc-typing span:nth-child(2){animation-delay:.2s}
#hcb .hc-typing span:nth-child(3),
#hcs .hc-typing span:nth-child(3){animation-delay:.4s}
@keyframes hc-bounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-5px)}}

#hcb .hc-date-card,
#hcs .hc-date-card{background:var(--wh);border:1.5px solid rgba(74,122,74,0.2);border-radius:10px;padding:12px 14px;max-width:94%;}
#hcb .hc-date-card p,
#hcs .hc-date-card p{font-size:11px;color:var(--st);margin:0 0 8px;font-weight:500;}
#hcb .hc-date-row,
#hcs .hc-date-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
#hcb .hc-date-field,
#hcs .hc-date-field{display:flex;flex-direction:column;gap:2px;flex:1;min-width:110px;}
#hcb .hc-date-field label,
#hcs .hc-date-field label{font-size:10px;font-weight:500;color:var(--st);text-transform:uppercase;letter-spacing:.05em;}
#hcb .hc-date-field input[type=date],
#hcs .hc-date-field input[type=date]{border:1.5px solid rgba(74,122,74,0.25);border-radius:6px;padding:7px 8px;font-size:12px;font-family:'DM Sans',sans-serif;color:var(--f);background:var(--cr);outline:none;width:100%;}
#hcb .hc-nights,
#hcs .hc-nights{display:inline-flex;align-items:center;gap:3px;background:var(--ms);color:var(--m);font-size:10px;font-weight:500;padding:3px 8px;border-radius:20px;margin-bottom:8px;}
#hcb .hc-confirm-btn,
#hcs .hc-confirm-btn{background:var(--f);color:var(--wh);border:none;border-radius:7px;padding:8px 14px;font-size:12px;font-family:'DM Sans',sans-serif;font-weight:500;cursor:pointer;width:100%;transition:background .2s;}
#hcb .hc-confirm-btn:hover,
#hcs .hc-confirm-btn:hover{background:var(--s)}
#hcb .hc-confirm-btn:disabled,
#hcs .hc-confirm-btn:disabled{background:#ccc;cursor:not-allowed}

#hcb .hc-btns,
#hcs .hc-btns{display:flex;flex-wrap:wrap;gap:6px;padding:2px 0 4px 34px;}
#hcb .hc-btn,
#hcs .hc-btn{background:var(--ms);border:1px solid rgba(74,122,74,0.2);color:var(--m);font-size:12px;padding:6px 12px;border-radius:18px;cursor:pointer;transition:all .2s;font-family:'DM Sans',sans-serif;}
#hcb .hc-btn:hover,
#hcs .hc-btn:hover{background:var(--m);color:var(--wh);}

#hcb .hc-input-row,
#hcs .hc-input-row{padding:8px 12px 12px;background:var(--wh);border-top:1px solid rgba(74,122,74,0.1);display:flex;gap:7px;align-items:flex-end;position:sticky;bottom:0;z-index:20;}
#hcb .hc-input,
#hcs .hc-input{flex:1;border:1.5px solid rgba(74,122,74,0.2);border-radius:9px;padding:9px 12px;font-size:13px;font-family:'DM Sans',sans-serif;color:var(--f);background:var(--cr);outline:none;resize:none;min-height:38px;max-height:90px;line-height:1.5;}
#hcb .hc-input:focus,
#hcs .hc-input:focus{border-color:var(--s)}
#hcb .hc-input::placeholder,
#hcs .hc-input::placeholder{color:var(--st)}
#hcb .hc-send,
#hcs .hc-send{width:38px;height:38px;background:var(--f);border:none;border-radius:9px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;flex-shrink:0;}
#hcb .hc-send:hover,
#hcs .hc-send:hover{background:var(--s)}
#hcb .hc-send:disabled,
#hcs .hc-send:disabled{background:#ccc;cursor:not-allowed}
#hcb .hc-send svg,
#hcs .hc-send svg{fill:white;width:15px;height:15px}

/* ITINERARY */
#hcb .hc-itinerary,
#hcs .hc-itinerary{padding:10px 12px;border-top:1px solid rgba(74,122,74,0.08);display:flex;flex-direction:row;gap:10px;flex-shrink:0;}
#hcb .hc-itin-left,
#hcs .hc-itin-left{flex:1;overflow-y:auto;min-width:0;max-height:300px;}
#hcb .hc-itin-header,
#hcs .hc-itin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
#hcb .hc-itin-title,
#hcs .hc-itin-title{font-family:'Fraunces',serif;font-size:14px;color:var(--f);font-weight:600;}
#hcb .hc-itin-nights,
#hcs .hc-itin-nights{font-size:10px;color:var(--st);background:var(--ms);padding:2px 8px;border-radius:20px;}
#hcb .hc-day-tabs,
#hcs .hc-day-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px;}
#hcb .hc-day-tab,
#hcs .hc-day-tab{background:var(--ms);border:1.5px solid transparent;color:var(--m);font-size:11px;font-weight:500;padding:4px 10px;border-radius:18px;cursor:pointer;transition:all .2s;font-family:'DM Sans',sans-serif;}
#hcb .hc-day-tab.active,
#hcs .hc-day-tab.active{background:var(--f);color:var(--wh);}
#hcb .hc-day-card,
#hcs .hc-day-card{background:var(--wh);border:1px solid rgba(74,122,74,0.12);border-radius:10px;overflow:hidden;}
#hcb .hc-day-head,
#hcs .hc-day-head{background:var(--f);padding:8px 12px;display:flex;align-items:center;justify-content:space-between;}
#hcb .hc-day-num,
#hcs .hc-day-num{font-size:9px;color:var(--mi);font-weight:500;text-transform:uppercase;letter-spacing:.05em;}
#hcb .hc-day-theme,
#hcs .hc-day-theme{font-family:'Fraunces',serif;font-size:13px;color:var(--wh);font-weight:600;}
#hcb .hc-day-date,
#hcs .hc-day-date{font-size:10px;color:rgba(255,255,255,0.6);}
#hcb .hc-weather,
#hcs .hc-weather{display:flex;align-items:center;gap:4px;background:rgba(255,255,255,0.1);border-radius:7px;padding:4px 8px;}
#hcb .hc-weather-temp,
#hcs .hc-weather-temp{font-size:12px;color:var(--wh);font-weight:500;}
#hcb .hc-weather-cond,
#hcs .hc-weather-cond{font-size:10px;color:rgba(255,255,255,0.75);}
#hcb .hc-activities,
#hcs .hc-activities{padding:6px 0;}
#hcb .hc-activity,
#hcs .hc-activity{display:flex;gap:8px;padding:6px 12px;border-bottom:1px solid rgba(74,122,74,0.06);cursor:pointer;transition:background .15s;}
#hcb .hc-activity:last-child,
#hcs .hc-activity:last-child{border-bottom:none;}
#hcb .hc-activity:hover,
#hcs .hc-activity:hover{background:rgba(74,122,74,0.04);}
#hcb .hc-act-time,
#hcs .hc-act-time{font-size:10px;font-weight:500;color:var(--s);min-width:34px;padding-top:2px;}
#hcb .hc-act-icon,
#hcs .hc-act-icon{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;}
#hcb .hc-act-icon.tura,
#hcs .hc-act-icon.tura{background:#e8f3de}
#hcb .hc-act-icon.latnivalo,
#hcs .hc-act-icon.latnivalo{background:#eeedfe}
#hcb .hc-act-icon.etterem,
#hcs .hc-act-icon.etterem{background:#faeeda}
#hcb .hc-act-icon.szallas,
#hcs .hc-act-icon.szallas{background:#e6f1fb}
#hcb .hc-act-icon.wellness,
#hcs .hc-act-icon.wellness{background:#fbeaf0}
#hcb .hc-act-body,
#hcs .hc-act-body{flex:1;}
#hcb .hc-act-title,
#hcs .hc-act-title{font-size:12px;font-weight:500;color:var(--f);margin-bottom:2px;}
#hcb .hc-act-desc,
#hcs .hc-act-desc{font-size:11px;color:var(--st);line-height:1.4;}
#hcb .hc-act-badges,
#hcs .hc-act-badges{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px;}
#hcb .hc-badge,
#hcs .hc-badge{font-size:9px;padding:2px 6px;border-radius:18px;font-weight:500;}
#hcb .hc-bg,
#hcs .hc-bg{background:#e8f3de;color:#27500a;}
#hcb .hc-ba,
#hcs .hc-ba{background:#faeeda;color:#633806;}
#hcb .hc-br,
#hcs .hc-br{background:#fcebeb;color:#791f1f;}
#hcb .hc-bp,
#hcs .hc-bp{background:#eeedfe;color:#3c3489;}
#hcb .hc-bb,
#hcs .hc-bb{background:#e6f1fb;color:#0c447c;}
#hcb .hc-guide-btn,
#hcs .hc-guide-btn{display:inline-flex;align-items:center;gap:3px;margin-top:4px;background:var(--f);color:var(--wh);border:none;border-radius:6px;padding:4px 9px;font-size:10px;font-family:'DM Sans',sans-serif;cursor:pointer;}
#hcb .hc-guide-box,
#hcs .hc-guide-box{display:none;background:var(--ms);border-radius:7px;padding:8px 10px;margin-top:4px;font-size:11px;line-height:1.8;color:var(--f);}
#hcb .hc-guide-box.open,
#hcs .hc-guide-box.open{display:block;}
#hcb .hc-guide-box a,
#hcs .hc-guide-box a{color:var(--s);}

/* LEAFLET POPUP */
#hcb .leaflet-popup-content-wrapper,
#hcs .leaflet-popup-content-wrapper{padding:0!important;border-radius:12px!important;overflow:hidden!important;box-shadow:0 6px 24px rgba(0,0,0,0.18)!important;border:none!important;}
#hcb .leaflet-popup-content,
#hcs .leaflet-popup-content{margin:0!important;width:220px!important;}
#hcb .hcp,
#hcs .hcp{font-family:'DM Sans',sans-serif;width:220px;}
#hcb .hcp-img,
#hcs .hcp-img{width:100%;height:80px;display:flex;align-items:center;justify-content:center;font-size:28px;}
#hcb .hcp-body,
#hcs .hcp-body{padding:9px 11px 11px;}
#hcb .hcp-type,
#hcs .hcp-type{font-size:9px;font-weight:500;color:var(--s);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;}
#hcb .hcp-title,
#hcs .hcp-title{font-family:'Fraunces',serif;font-size:13px;font-weight:600;color:var(--f);margin-bottom:5px;line-height:1.3;}
#hcb .hcp-badges,
#hcs .hcp-badges{display:flex;gap:3px;flex-wrap:wrap;margin-bottom:6px;}
#hcb .hcp-desc,
#hcs .hcp-desc{font-size:10px;color:var(--st);line-height:1.4;margin-bottom:6px;max-height:44px;overflow:hidden;}
#hcb .hcp-details,
#hcs .hcp-details{padding-top:6px;border-top:1px solid rgba(74,122,74,0.1);margin-top:4px;}
#hcb .hcp-details a,
#hcs .hcp-details a{display:block;font-size:10px;color:var(--s);text-decoration:none;margin-bottom:2px;}
#hcb .hcp-details div,
#hcs .hcp-details div{font-size:10px;color:var(--st);}
#hcb .hcp-guide-btn,
#hcs .hcp-guide-btn{width:100%;background:var(--f);color:var(--wh);border:none;border-radius:6px;padding:5px;font-size:10px;font-family:'DM Sans',sans-serif;cursor:pointer;margin-top:5px;}
#hcb .hcp-guide-info,
#hcs .hcp-guide-info{display:none;background:var(--ms);border-radius:6px;padding:7px 8px;margin-top:5px;font-size:10px;line-height:1.8;color:var(--f);}
#hcb .hcp-guide-info.open,
#hcs .hcp-guide-info.open{display:block;}
#hcb .hcp-guide-info a,
#hcs .hcp-guide-info a{color:var(--s);}
#hcb .hcp-warn,
#hcs .hcp-warn{background:#fcebeb;border-radius:6px;padding:5px 8px;font-size:10px;color:#791f1f;margin-top:4px;}

#hcb .hc-map,
#hcs .hc-map{width:190px;flex-shrink:0;border-radius:10px;overflow:hidden;height:300px;}
#hcb .hc-footer,
#hcs .hc-footer{text-align:center;padding:6px;font-size:9px;color:var(--st);background:var(--cr);}

/* MOBIL – egymás alatt */
@media (max-width: 540px) {
    #hc-window {
        width:calc(100vw - 32px);
        right:16px;
        bottom:80px;
    }
    #hcb .hc-itinerary,
    #hcs .hc-itinerary {
        flex-direction:column;
    }
    #hcb .hc-itin-left,
    #hcs .hc-itin-left {
        max-height:none;
    }
    #hcb .hc-map,
    #hcs .hc-map {
        width:100%;
        height:220px;
        border-radius:10px;
    }
}
