/**
 * QES single PRO listing profile.
 *
 * Brand: Navy var(--pro-navy, #0d2952) / var(--pro-navy-700, #1b3f6e), Crimson #8B1A3C, Gold var(--pro-star, #f6c358), WhatsApp var(--pro-whatsapp, #25d366).
 * Layout: full-bleed Navy header band, then a two-column body (main + sticky
 * sidebar) that collapses to one column with a fixed mobile contact bar.
 */

.qes-sl{--navy:var(--pro-navy, #0d2952);--navy2:var(--pro-navy-700, #1b3f6e);--crimson:var(--pro-crimson, #C8102E);--gold:var(--pro-star, #f6c358);--wa:var(--pro-whatsapp, #25d366);--wa2:var(--pro-whatsapp-hover, #1faa52);--ink:var(--pro-navy, #0d2952);--muted:var(--pro-muted, #667085);--line:var(--pro-line, #e6e9f0);position:relative;color:var(--ink);font-family:var(--pro-font, -apple-system,"Segoe UI",Roboto,Arial,sans-serif);}
.qes-sl *{box-sizing:border-box;}

/* The sidebar uses position:sticky, which breaks if any ancestor has overflow
   other than visible (or a constrained height). Elementor wraps the widget in
   a container chain — clear overflow on the wrappers that hold our profile so
   the sticky scope reaches the real page scroller. */
.elementor-widget-qes_single_listing,
.elementor-widget-qes_single_listing .elementor-widget-container{overflow:visible;}
.elementor-element:has(> .elementor-widget-container > .qes-sl),
.elementor-element:has(.qes-sl){overflow:visible;}

/* ---- Header band ----
   Default: full-bleed (breaks out of the Elementor container to 100vw).
   --boxed: stays inside the container; --inner width is capped by --qes-sl-head-max
   (set inline from the widget, falls back to 1400px). */
.qes-sl__head{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);background:linear-gradient(115deg,var(--navy),var(--navy2));color:#fff;padding:34px 0;}
.qes-sl__head--boxed{width:auto;max-width:none;margin-left:0;border-radius:16px;}
.qes-sl__head-inner{max-width:var(--qes-sl-head-max, 1400px);margin:0 auto;padding:0 20px;display:flex;gap:22px;align-items:flex-start;flex-wrap:wrap;}
.qes-sl__logo{width:96px;height:96px;border-radius:18px;background:#fff;flex:0 0 auto;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 6px 20px rgba(0,0,0,.18);}
.qes-sl__logo img{width:100%;height:100%;object-fit:cover;}
.qes-sl__logo span{font-size:38px;font-weight:800;color:var(--navy);}
.qes-sl__head-main{flex:1 1 320px;min-width:0;}
.qes-sl__badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.qes-sl__b{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:5px 11px;border-radius:999px;}
.qes-sl__b svg{width:13px;height:13px;}
.qes-sl__b--verified{background:#fff;color:var(--navy);}
.qes-sl__b--partner{background:var(--crimson);color:#fff;}
.qes-sl__b--premium{background:var(--gold);color:var(--navy);}
.qes-sl__b--featured{background:rgba(255,255,255,.16);color:#fff;}
.qes-sl__name{font-size:30px;line-height:1.15;font-weight:800;margin:0 0 8px;color:#fff;}
.qes-sl__meta{display:flex;gap:18px;flex-wrap:wrap;align-items:center;font-size:14px;opacity:.92;}
.qes-sl__mi{display:inline-flex;align-items:center;gap:6px;}
.qes-sl__mi svg{opacity:.85;}
.qes-sl__stars{color:var(--gold);letter-spacing:1px;}
.qes-sl__stars .qes-star{color:var(--gold);}
.qes-sl__stars .qes-star.is-empty{color:rgba(255,255,255,.35);}
.qes-sl__head-cta{display:flex;flex-direction:column;gap:10px;flex:0 0 auto;width:240px;max-width:100%;}

/* ---- Buttons ---- */
.qes-sl__btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:12px;font-weight:800;font-size:15px;border:0;cursor:pointer;padding:0 18px;text-decoration:none;transition:background-color .15s ease,filter .15s ease;}
.qes-sl__btn svg{width:18px;height:18px;}
.qes-sl__btn--block{width:100%;}
.qes-sl__btn--wa{background:var(--wa);color:#fff;}
.qes-sl__btn--wa:hover{background:var(--wa2);}
.qes-sl__btn--call{background:#fff;color:var(--navy);border:1.5px solid transparent;}
.qes-sl__btn--call:hover{background:var(--pro-sunken, #eef2f8);}
.qes-sl__btn--ghost{background:transparent;color:var(--navy);border:1.5px solid var(--line);margin-top:14px;}
.qes-sl__btn--ghost:hover{border-color:var(--navy);}
/* In the sidebar the Call button sits on white, so give it a border. */
.qes-sl__contact .qes-sl__btn--call{border-color:var(--line);}

/* Social icon row — sits under the header CTAs, on the navy band. */
.qes-sl__socials{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;}
.qes-sl__social{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.12);color:#fff;text-decoration:none;transition:background-color .15s ease;}
.qes-sl__social:hover{background:rgba(255,255,255,.28);}
.qes-sl__social svg{width:18px;height:18px;}

/* ---- Body grid ---- */
.qes-sl__body{display:grid;grid-template-columns:1fr 340px;gap:28px;padding:30px 0 60px;align-items:start;}
/* position:sticky breaks if an ancestor has overflow other than visible — some
   Elementor/theme wrappers set overflow on the section. Keep our own chain clear
   and make the sidebar column itself the sticky element. */
.qes-sl,.qes-sl__body,.qes-sl__side{overflow:visible;}
.qes-sl__side{align-self:start;position:-webkit-sticky;position:sticky;top:18px;}
.qes-sl__card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:22px;box-shadow:0 2px 10px rgba(13,41,82,.04);}
.qes-sl__sec{font-size:19px;font-weight:800;margin:0 0 14px;display:flex;align-items:center;gap:10px;color:var(--navy);}
.qes-sl__sec--sm{font-size:16px;}
.qes-sl__sec-sub{font-size:14px;color:var(--muted);font-weight:600;}
.qes-sl__muted{color:var(--muted);font-size:14.5px;}

/* About */
.qes-sl__desc{color:var(--pro-ink, #3a4a63);font-size:15px;margin-bottom:16px;}
.qes-sl__desc p{margin:0 0 10px;}
.qes-sl__kv{display:flex;gap:26px;flex-wrap:wrap;}
.qes-sl__k{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700;margin-bottom:4px;}
.qes-sl__v{font-size:16px;font-weight:700;}
.qes-sl__tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;}
.qes-sl__tag{font-size:13px;font-weight:600;background:var(--pro-sunken, #eef2f8);color:var(--navy);padding:7px 13px;border-radius:8px;}
.qes-sl__tag--lang{background:var(--pro-sunken, #f3f0fb);color:var(--pro-navy, #0d2952);}

/* Pricing */
.qes-sl__price-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
.qes-sl__price-label{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:#1f7a44;background:#e7f7ee;padding:7px 13px;border-radius:8px;}
.qes-sl__price-amt{font-size:22px;font-weight:800;color:var(--navy);}

/* Gallery */
.qes-sl__gal{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.qes-sl__gal a{display:block;aspect-ratio:4/3;border-radius:10px;overflow:hidden;line-height:0;background:var(--pro-sunken, #eef2f8);}
.qes-sl__gal img{width:100%;height:100%;object-fit:cover;}

/* Video embed — responsive 16:9 wrapper around the oEmbed iframe. */
.qes-sl__video{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#000;}
.qes-sl__video iframe,.qes-sl__video video,.qes-sl__video embed,.qes-sl__video object{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* FAQ */
.qes-sl__faq details{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;overflow:hidden;}
.qes-sl__faq summary{cursor:pointer;padding:14px 16px;font-weight:700;font-size:15px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.qes-sl__faq summary::-webkit-details-marker{display:none;}
.qes-sl__faq summary::after{content:"+";font-size:20px;color:var(--crimson);flex:0 0 auto;}
.qes-sl__faq details[open] summary::after{content:"\2013";}
.qes-sl__faq p{padding:0 16px 14px;margin:0;color:var(--pro-ink, #3a4a63);font-size:14.5px;}

/* Reviews */
.qes-sl__rev{border-bottom:1px solid var(--line);padding:16px 0;}
.qes-sl__rev:first-of-type{padding-top:4px;}
.qes-sl__rev-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;}
.qes-sl__rev-who{font-weight:700;}
.qes-sl__rev-date{font-size:12px;color:var(--muted);}
.qes-sl__rev-stars{color:var(--gold);font-size:13px;margin-bottom:4px;}
.qes-sl__rev-stars .qes-star.is-empty{color:var(--pro-line, #d8deea);}
.qes-sl__rev p{margin:0;color:var(--pro-ink, #3a4a63);font-size:14.5px;}

/* ---- Sidebar ---- */
.qes-sl__sticky{position:static;}
.qes-sl__contact .qes-sl__btn{margin-bottom:8px;}
.qes-sl__stats{margin-top:8px;}
.qes-sl__stat{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;}
.qes-sl__stat:last-child{border-bottom:0;}
.qes-sl__stat .qes-sl__k{margin:0;text-transform:none;letter-spacing:0;font-size:14px;color:var(--muted);font-weight:400;}
.qes-sl__stat .qes-sl__v{font-size:14px;text-align:right;}
/* Clickable Location → Google Maps */
.qes-sl__loc-link{display:inline-flex;align-items:center;gap:4px;color:var(--navy);font-weight:700;text-decoration:none;}
.qes-sl__loc-link:hover{color:var(--crimson);text-decoration:underline;}
.qes-sl__loc-link svg{width:14px;height:14px;flex:0 0 auto;opacity:.8;}

/* Small embedded map under the stats */
.qes-sl__map{margin-top:14px;border-radius:12px;overflow:hidden;border:1px solid var(--line);line-height:0;}
.qes-sl__map iframe{width:100%;height:170px;border:0;display:block;filter:grayscale(.1);}

/* Lead form (Premium/Sponsor) — Navy card */
.qes-sl__lead-wrap{background:linear-gradient(160deg,var(--pro-navy, #0d2952),var(--pro-navy-700, #1b3f6e));border:0;color:#fff;}
.qes-sl__lead-wrap .qes-sl__sec{color:#fff;}
.qes-lead__label{display:block;font-size:12.5px;font-weight:700;margin:12px 0 5px;opacity:.9;}
.qes-lead__input{width:100%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;border-radius:9px;padding:11px 13px;font-size:14px;}
.qes-lead__input::placeholder{color:rgba(255,255,255,.55);}
.qes-lead__input:focus{outline:none;border-color:var(--gold);}
.qes-lead__textarea{min-height:90px;resize:vertical;}
.qes-lead select.qes-lead__input{appearance:auto;}
.qes-lead select.qes-lead__input option{color:var(--pro-navy, #0d2952);}
/* !important: the theme styles every submit button (purple); override it. */
.qes-sl .qes-lead__submit{width:100%;margin-top:16px;min-height:48px;border:0;border-radius:12px;background:var(--wa) !important;color:#fff !important;font-weight:800;font-size:15px;cursor:pointer;transition:background-color .15s ease,filter .15s ease;}
.qes-sl .qes-lead__submit:hover{background:var(--wa2) !important;filter:none;}
.qes-sl .qes-lead__submit:disabled{opacity:.6;cursor:default;}
.qes-lead__note{font-size:12px;color:rgba(255,255,255,.6);margin:8px 0 0;}
.qes-lead__status{border-radius:9px;padding:10px 12px;font-size:13.5px;margin-bottom:6px;}
.qes-lead__status.is-ok{background:rgba(37,211,102,.18);color:#d8ffe7;}
.qes-lead__status.is-err{background:rgba(255,90,90,.18);color:#ffd9d9;}

/* Related */
.qes-sl__rel{display:flex;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;}
.qes-sl__rel:last-child{border-bottom:0;}
.qes-sl__rel-logo{width:42px;height:42px;border-radius:10px;background:var(--pro-sunken, #eef2f8);flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--navy);overflow:hidden;}
.qes-sl__rel-logo img{width:100%;height:100%;object-fit:cover;}
.qes-sl__rel-name{display:block;font-weight:700;font-size:14px;color:var(--navy);}
.qes-sl__rel-sub{display:block;font-size:12px;color:var(--muted);}

/* ---- Mobile sticky contact bar ---- */
.qes-sl__mbar{display:none;}

@media(max-width:900px){
	.qes-sl__body{grid-template-columns:1fr;}
	.qes-sl__side{position:static;top:auto;}
	.qes-sl__head-cta{width:100%;flex-direction:row;}
	.qes-sl__head-cta .qes-sl__btn{flex:1;}
	.qes-sl__mbar{display:flex;position:fixed;left:0;right:0;bottom:0;gap:10px;padding:10px 14px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 16px rgba(13,41,82,.1);z-index:50;}
	.qes-sl__mbar .qes-sl__btn{flex:1;min-height:46px;}
	.qes-sl__mbar .qes-sl__btn--call{border-color:var(--line);}
}
@media(max-width:560px){
	.qes-sl__gal{grid-template-columns:repeat(2,1fr);}
	.qes-sl__name{font-size:24px;}
}
