/*
 * Brighto — Elementor skin.
 * Loaded AFTER every Elementor stylesheet, with a high-specificity prefix
 * (body .elementor .elementor-element.X) so brand styling always wins.
 */

/* ---------- kill Elementor's default type so Cairo is used ---------- */
body .elementor-widget,
body .elementor-widget .elementor-heading-title,
body .elementor-widget .elementor-icon-box-title,
body .elementor-widget .elementor-image-box-title,
body .elementor-widget .elementor-icon-list-text,
body .elementor-widget .elementor-button{font-family:var(--ff)}

/* =====================================================
   SECTION BANDS
   ===================================================== */
body .elementor .e-con.bf-sec{padding-block:var(--sec-y)}

body .elementor .e-con.blue-sec{background-color:var(--blue);color:#fff}
body .elementor .e-con.blue-sec .elementor-heading-title{color:#fff}
body .elementor .e-con.blue-sec .elementor-widget-text-editor,
body .elementor .e-con.blue-sec .elementor-widget-text-editor p{color:var(--muted-on-blue)}

body .elementor .e-con.blue-sec.has-swoosh{overflow:hidden;position:relative}
body .elementor .e-con.blue-sec.has-swoosh::before{
  content:"";position:absolute;width:min(760px,72vw);aspect-ratio:1;border-radius:50%;
  inset-block-start:-24%;inset-inline-start:-14%;pointer-events:none;z-index:0;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.13),rgba(255,255,255,0) 62%);
}
body .elementor .e-con.blue-sec.has-swoosh > *{position:relative;z-index:1}

/* =====================================================
   TYPE HELPERS
   ===================================================== */
body .elementor .elementor-element.h-xl .elementor-heading-title{font-size:clamp(2.1rem,5.2vw,4rem);font-weight:800;line-height:1.18}
body .elementor .elementor-element.h-lg .elementor-heading-title{font-size:clamp(1.8rem,3.8vw,2.9rem);font-weight:800;line-height:1.24}
body .elementor .elementor-element.h-md .elementor-heading-title{font-size:clamp(1.35rem,2.4vw,1.95rem);font-weight:800;line-height:1.3}
body .elementor .elementor-element.h-sm .elementor-heading-title{font-size:clamp(1.08rem,1.6vw,1.3rem);font-weight:800;line-height:1.45}
body .elementor .elementor-element.txt-blue .elementor-heading-title{color:var(--blue-deep)}
body .elementor .elementor-element.lead,
body .elementor .elementor-element.lead p{font-size:clamp(1rem,1.3vw,1.1rem);color:var(--muted);line-height:1.9;margin:0}
body .elementor .e-con.blue-sec .elementor-element.lead,
body .elementor .e-con.blue-sec .elementor-element.lead p{color:var(--muted-on-blue)}

/* eyebrow pill — fit-content so it never stretches */
body .elementor .elementor-element.eyebrow .elementor-heading-title{
  display:inline-block;width:fit-content;max-width:100%;
  background:var(--blue-100);color:var(--blue-deep);
  font-size:.85rem;font-weight:700;padding:9px 20px;border-radius:999px;line-height:1.4;
}
body .elementor .e-con.blue-sec .elementor-element.eyebrow .elementor-heading-title,
body .elementor .e-con.bf-page-hero .elementor-element.eyebrow .elementor-heading-title{background:rgba(255,255,255,.18);color:#fff}
body .elementor .elementor-element.eyebrow{width:fit-content!important;max-width:100%}
body .elementor .elementor-element.eyebrow.elementor-widget[class*="align-center"]{margin-inline:auto}

/* white pill heading in the showcase */
body .elementor .elementor-element.pill-head .elementor-heading-title{
  display:inline-block;width:fit-content;max-width:100%;
  background:#fff;color:var(--blue-deep);padding:.08em .45em;border-radius:20px;
}
body .elementor .elementor-element.pill-head{width:fit-content;max-width:100%}

/* =====================================================
   HERO
   ===================================================== */
body .elementor .e-con.bf-hero{position:relative;overflow:hidden;background-color:var(--page)}
body .elementor .e-con.bf-hero > *{position:relative;z-index:3}
body .elementor .e-con.bf-hero::after{
  content:"";position:absolute;inset-block-end:-1px;inset-inline:0;height:clamp(44px,6.5vw,104px);
  background:var(--blue);z-index:2;pointer-events:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0 46c180 44 360 60 540 44s360-58 540-58 240 20 360 34v54H0z'/%3E%3C/svg%3E") no-repeat center/100% 100%;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0 46c180 44 360 60 540 44s360-58 540-58 240 20 360 34v54H0z'/%3E%3C/svg%3E") no-repeat center/100% 100%;
}
@media (max-width:980px){
  body .elementor .e-con.bf-hero{background-position:top center!important}
  body .elementor .e-con.bf-hero::before{
    content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(to bottom,rgba(249,249,251,.6),rgba(249,249,251,.95) 62%);
  }
  body .elementor .e-con.bf-hero::after{display:none}
}
/* hero social icons -> brand blue, not Elementor brand colours */
body .elementor .elementor-element.hero-socials .elementor-social-icon{
  background-color:var(--blue-deep)!important;color:#fff!important;
  width:50px;height:50px;border-radius:50%;
  box-shadow:0 10px 22px -12px rgba(2,77,184,.8);transition:transform .18s,background-color .18s;
}
body .elementor .elementor-element.hero-socials .elementor-social-icon:hover{transform:translateY(-3px);background-color:var(--blue-dark)!important}
body .elementor .elementor-element.hero-socials .elementor-social-icon i,
body .elementor .elementor-element.hero-socials .elementor-social-icon svg{color:#fff!important;fill:#fff!important;font-size:19px}

/* =====================================================
   INNER PAGE HERO
   ===================================================== */
body .elementor .e-con.bf-page-hero{position:relative;overflow:hidden;text-align:center;color:#fff}
body .elementor .e-con.bf-page-hero .elementor-heading-title{color:#fff}
body .elementor .e-con.bf-page-hero .elementor-widget-text-editor,
body .elementor .e-con.bf-page-hero .elementor-widget-text-editor p{color:#E4EEFC}
body .elementor .e-con.bf-page-hero::before,
body .elementor .e-con.bf-page-hero::after{
  content:"";position:absolute;border-radius:50%;pointer-events:none;z-index:0;
  background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.16),rgba(255,255,255,0) 64%);
}
body .elementor .e-con.bf-page-hero::before{width:min(640px,66vw);aspect-ratio:1;inset-block-start:-32%;inset-inline-end:-10%}
body .elementor .e-con.bf-page-hero::after{width:min(520px,54vw);aspect-ratio:1;inset-block-end:-36%;inset-inline-start:-8%}
body .elementor .e-con.bf-page-hero > *{position:relative;z-index:1}

/* =====================================================
   CARDS
   ===================================================== */
body .elementor .elementor-element.card{
  background:#fff;border-radius:var(--radius);
  padding:clamp(28px,3vw,40px) clamp(20px,2.4vw,30px);
  box-shadow:var(--shadow-card);text-align:center;height:100%;
  display:flex;flex-direction:column;
  transition:transform .24s ease,box-shadow .24s ease;
}
body .elementor .elementor-element.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lift)}
body .elementor .elementor-element.card .elementor-image-box-wrapper{display:flex;flex-direction:column;height:100%}
body .elementor .elementor-element.card .elementor-image-box-img{margin:0 auto 18px!important;width:auto!important}
body .elementor .elementor-element.card .elementor-image-box-img img{max-height:92px;width:auto}
body .elementor .elementor-element.card .elementor-image-box-title{
  color:var(--blue-deep);font-size:clamp(1.05rem,1.4vw,1.25rem);font-weight:800;margin:0 0 12px;line-height:1.5;
}
body .elementor .elementor-element.card .elementor-image-box-description{color:var(--muted);font-size:.96rem;line-height:1.85}
/* equal-height columns holding cards */
body .elementor .e-con > .e-con:has(> .elementor-element.card){display:flex}

/* trust strip */
body .elementor .elementor-element.trust-item .elementor-image-box-wrapper{display:flex;align-items:center;justify-content:center;gap:12px}
body .elementor .elementor-element.trust-item .elementor-image-box-img{margin:0!important;width:auto!important}
body .elementor .elementor-element.trust-item .elementor-image-box-img img{width:32px;height:32px}
body .elementor .elementor-element.trust-item .elementor-image-box-title{
  color:var(--blue-deep);font-weight:700;font-size:clamp(.9rem,1.2vw,1.02rem);margin:0;line-height:1.5;
}
body .elementor .elementor-element.trust-item .elementor-image-box-description{display:none}

/* =====================================================
   PHOTOS
   ===================================================== */
body .elementor .elementor-element.shot img,
body .elementor .elementor-element.gallery-shot img{
  border-radius:var(--radius);width:100%;display:block;object-fit:cover;
  box-shadow:0 26px 50px -26px rgba(0,0,0,.45);
}
body .elementor .elementor-element.shot img{aspect-ratio:4/3}
body .elementor .elementor-element.shot.tall img{aspect-ratio:3/4.4}
body .elementor .elementor-element.gallery-shot img{aspect-ratio:4/5;transition:transform .3s ease}
body .elementor .elementor-element.gallery-shot:hover img{transform:scale(1.03)}
@media (max-width:900px){
  body .elementor .elementor-element.shot.tall img{aspect-ratio:4/3}
  body .elementor .elementor-element.gallery-shot img{aspect-ratio:4/4.4}
}

/* showcase feature row */
body .elementor .e-con.feature-row-el{border-top:1px solid rgba(255,255,255,.24);padding-top:28px!important}
body .elementor .e-con.showcase-media-el{align-self:stretch}

/* =====================================================
   WHY US
   ===================================================== */
body .elementor .elementor-element.why-num .elementor-heading-title{
  font-size:clamp(1.85rem,3.2vw,2.5rem);font-weight:800;color:#fff;opacity:.62;
  line-height:1;font-variant-numeric:tabular-nums;
}
body .elementor .e-con.why-item-el{align-items:flex-start}

/* =====================================================
   STEPS
   ===================================================== */
body .elementor .e-con.step{text-align:center;align-items:center}
body .elementor .e-con.step .elementor-element.step-num .elementor-heading-title{
  width:76px;height:76px;margin:0 auto 26px;border-radius:50%;
  background:var(--blue);color:#fff;display:grid;place-items:center;
  font-weight:800;font-size:1.28rem;font-variant-numeric:tabular-nums;line-height:1;
  box-shadow:0 0 0 9px #fff,0 16px 30px -14px rgba(0,87,208,.7);
}
body .elementor .e-con.step .elementor-element.step-num{width:100%;margin-bottom:6px}
body .elementor .e-con.step .elementor-element.h-sm .elementor-heading-title{margin-bottom:8px}
body .elementor .e-con.step .elementor-element.lead p{max-width:34ch;margin-inline:auto}

/* connector line behind the step circles */
body .elementor .e-con.steps-row{position:relative}
body .elementor .e-con.steps-row::before{
  content:"";position:absolute;inset-block-start:38px;inset-inline:16.6%;height:2px;z-index:0;
  background:linear-gradient(to left,var(--blue-100),var(--blue-deep),var(--blue-100));
}
body .elementor .e-con.steps-row > .e-con{position:relative;z-index:1}
@media (max-width:820px){body .elementor .e-con.steps-row::before{display:none}}

/* =====================================================
   TILES / STATS / PROMISE
   ===================================================== */
body .elementor .e-con.tile-el{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);height:100%;
  transition:border-color .2s,box-shadow .2s,transform .2s;
}
body .elementor .e-con.tile-el:hover{border-color:var(--blue-100);box-shadow:var(--shadow-card);transform:translateY(-4px)}
body .elementor .e-con.blue-sec .e-con.tile-el{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22)}

body .elementor .e-con.stat-el{
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);
  border-radius:var(--radius);text-align:center;height:100%;
}
body .elementor .elementor-element.stat-num .elementor-heading-title{
  font-size:clamp(1.85rem,3.4vw,2.8rem);font-weight:800;line-height:1.1;color:#fff;
  font-variant-numeric:tabular-nums;
}

body .elementor .elementor-element.promise-el{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(24px,2.6vw,32px);height:100%;
  transition:border-color .2s,box-shadow .2s,transform .2s;
}
body .elementor .elementor-element.promise-el:hover{border-color:var(--blue-100);box-shadow:var(--shadow-card);transform:translateY(-4px)}
body .elementor .elementor-element.promise-el .elementor-icon{
  color:var(--blue-deep);font-size:28px;margin-bottom:14px;
  width:58px;height:58px;border-radius:16px;background:var(--blue-100);
  display:grid;place-items:center;
}
body .elementor .elementor-element.promise-el .elementor-icon-box-title{color:var(--blue-deep);font-size:1.08rem;font-weight:800;margin:0 0 8px}
body .elementor .elementor-element.promise-el .elementor-icon-box-description{color:var(--muted);font-size:.95rem;line-height:1.8}

/* =====================================================
   SERVICE DETAIL ROWS
   ===================================================== */
body .elementor .e-con.svc-row-el{border-bottom:1px solid var(--line)}
body .elementor .e-con.svc-row-el:last-child{border-bottom:0}
body .elementor .e-con.svc-media-el{
  background:var(--blue-50);border-radius:var(--radius);min-height:280px;
  box-shadow:var(--shadow-card);justify-content:center;align-items:center;
}
body .elementor .elementor-element.svc-icon-el img{max-height:150px;width:auto;margin-inline:auto}

/* =====================================================
   CONTACT
   ===================================================== */
body .elementor .elementor-element.info-card-el{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:18px 22px;transition:border-color .2s,box-shadow .2s,transform .2s;
}
body .elementor .elementor-element.info-card-el:hover{border-color:var(--blue-100);box-shadow:var(--shadow-card);transform:translateY(-3px)}
body .elementor .elementor-element.info-card-el .elementor-icon-box-wrapper{display:flex;align-items:center;gap:16px;text-align:start}
body .elementor .elementor-element.info-card-el .elementor-icon-box-icon{margin:0!important}
body .elementor .elementor-element.info-card-el .elementor-icon{
  width:50px;height:50px;border-radius:50%;background:var(--blue-100);color:var(--blue-deep);
  display:grid;place-items:center;font-size:19px;flex:none;
}
body .elementor .elementor-element.info-card-el .elementor-icon-box-title{color:var(--blue-deep);font-size:1rem;font-weight:800;margin:0 0 2px}
body .elementor .elementor-element.info-card-el .elementor-icon-box-description{color:var(--muted);font-size:.94rem;unicode-bidi:plaintext;margin:0}
body .elementor .e-con.form-card-el{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card)}

/* =====================================================
   AREA CHIPS
   ===================================================== */
body .elementor .elementor-element.area-chip{width:auto!important;flex:0 0 auto}
body .elementor .elementor-element.area-chip .elementor-heading-title{
  display:inline-block;background:#fff;border:1px solid var(--line);color:var(--blue-deep);
  font-size:.94rem;font-weight:700;padding:10px 20px;border-radius:999px;line-height:1.4;
  transition:border-color .18s,background .18s,transform .18s;
}
body .elementor .elementor-element.area-chip:hover .elementor-heading-title{
  border-color:var(--blue-deep);background:var(--blue-50);transform:translateY(-2px);
}

/* =====================================================
   ACCORDION (FAQ)
   ===================================================== */
body .elementor .elementor-element.faq-el .elementor-accordion .elementor-accordion-item{
  border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:14px;
  overflow:hidden;background:#fff;
}
body .elementor .elementor-element.faq-el .elementor-tab-title{
  padding:20px 26px;font-weight:700;color:var(--blue-deep);
  font-size:clamp(.98rem,1.35vw,1.08rem);line-height:1.6;border:0;background:#fff;
}
body .elementor .elementor-element.faq-el .elementor-tab-title.elementor-active{background:var(--blue-50)}
body .elementor .elementor-element.faq-el .elementor-tab-title a{color:var(--blue-deep)}
body .elementor .elementor-element.faq-el .elementor-tab-content{
  padding:0 26px 22px;color:var(--muted);font-size:.98rem;line-height:1.9;border:0;background:#fff;
}
body .elementor .elementor-element.faq-el .elementor-accordion-icon{color:var(--blue-deep)}

/* =====================================================
   TICK LISTS
   ===================================================== */
body .elementor .elementor-element.tick-list .elementor-icon-list-item{align-items:flex-start;gap:12px}
body .elementor .elementor-element.tick-list .elementor-icon-list-icon{margin-top:4px}
body .elementor .elementor-element.tick-list .elementor-icon-list-icon i{color:var(--blue-deep);font-size:17px}
body .elementor .elementor-element.tick-list .elementor-icon-list-text{color:var(--ink);font-size:.97rem;line-height:1.75}
body .elementor .e-con.blue-sec .elementor-element.tick-list .elementor-icon-list-icon i{color:#fff}
body .elementor .e-con.blue-sec .elementor-element.tick-list .elementor-icon-list-text{color:var(--muted-on-blue)}

/* =====================================================
   BUTTONS
   ===================================================== */
body .elementor .elementor-widget-button .elementor-button{
  border-radius:999px;font-weight:700;padding:15px 34px;font-size:1rem;line-height:1;
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,color .18s ease;
}
body .elementor .elementor-widget-button .elementor-button:hover{transform:translateY(-2px)}
body .elementor .elementor-element.btn-primary .elementor-button{
  background-color:var(--blue-deep);color:#fff;box-shadow:0 12px 26px -12px rgba(2,77,184,.7);
}
body .elementor .elementor-element.btn-primary .elementor-button:hover{background-color:var(--blue-dark);color:#fff}
/* "white" button: on light backgrounds it needs a visible outline */
body .elementor .elementor-element.btn-white .elementor-button{
  background-color:#fff;color:var(--blue-deep);border:2px solid var(--blue-100);
}
body .elementor .elementor-element.btn-white .elementor-button:hover{background-color:var(--blue-50);border-color:var(--blue-deep);color:var(--blue-deep)}
body .elementor .e-con.blue-sec .elementor-element.btn-white .elementor-button{border-color:transparent;box-shadow:0 12px 26px -14px rgba(0,0,0,.4)}
body .elementor .elementor-element.btn-wa .elementor-button{background-color:#25D366;color:#06331a}

/* =====================================================
   CTA CARD
   ===================================================== */
body .elementor .e-con.cta-card{
  background:#fff;border-radius:clamp(24px,3vw,38px);overflow:hidden;
  box-shadow:0 40px 80px -40px rgba(0,0,0,.55);
}
body .elementor .e-con.cta-card .elementor-heading-title{color:var(--blue-deep)}
body .elementor .e-con.cta-card .elementor-widget-text-editor,
body .elementor .e-con.cta-card .elementor-widget-text-editor p{color:var(--muted)}
body .elementor .e-con.cta-card .elementor-element.cta-shot img{
  border-radius:0;height:100%;width:100%;object-fit:cover;min-height:320px;box-shadow:none;aspect-ratio:auto;
}
@media (max-width:900px){
  body .elementor .e-con.cta-card .elementor-element.cta-shot img{min-height:230px;max-height:320px}
}

/* booking form inside Elementor */
body .elementor .booking-el .bf-form{margin-top:6px}
