/* Levant Immigration child theme.
 * The Home page is built with native Elementor widgets; this file holds only:
 *   (1) base/layout helpers the native containers need (full-bleed main, .lv-wrap),
 *   (2) decorative layers widgets can't express (backplates, washes, contours,
 *       scrims, maple leaves, wavy SVG, offset frames, carousel/tab/accordion skins),
 *   (3) the sticky header and the scroll-to-top button.
 * Every brand colour is referenced through the Elementor global CSS variable
 * (var(--e-global-color-*)); only one-off rgba()/gradient values are typed inline.
 * Typography (family/size/line-height/letter-spacing) lives in the widgets' linked
 * Global Fonts, never here.
 */

/* ===================== base / landmark ===================== */
body{margin:0;background:var(--e-global-color-paper,#F8F9FA)}
.levant-content{width:100%;max-width:none;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--levant-header-offset,90px)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Content column shared by every section (matches source .wrap). */
.lv-wrap{width:min(1200px,100% - 96px)!important;margin-inline:auto!important}
@media(max-width:1000px){.lv-wrap{width:calc(100% - 56px)!important}}
@media(max-width:700px){.lv-wrap{width:calc(100% - 40px)!important}}

/* small shared helpers.
 * Elementor 4 renders widgets without the .elementor-widget-container wrapper (optimized markup), so
 * rules target the widget element itself. Vertical spacing between widgets is set natively (each
 * widget's Advanced > Margin): CSS margin-bottom on a widget loses to Elementor's margin-block-end rule. */
.lv-eyebrow{line-height:1.5}
.lv-sec em{font-weight:400;font-style:italic}

/* ===================== HERO ===================== */
.lv-hero{position:relative;overflow:hidden;isolation:isolate}
.lv-hero::before{content:"";position:absolute;inset:0 0 0 66%;background:var(--e-global-color-beige,#EDEAE5);z-index:-1}
.lv-hero::after{content:"";position:absolute;left:0;bottom:0;width:32%;height:1px;background:rgba(195,11,35,.19)}
.lv-hero-copy{z-index:2}
.lv-hero-h1 em{color:var(--e-global-color-accent,#C30B23)}
.lv-hero-lead{border-left:2px solid var(--e-global-color-accent,#C30B23);padding-left:20px}
.lv-textlink a{color:var(--e-global-color-text,#1F2630);border-bottom:1px solid rgba(166,169,174,1);padding-bottom:9px;text-decoration:none}
/* inline links inside running prose (e.g. Privacy Policy) must not rely on colour alone — WCAG 1.4.1 */
.lv-prose a{text-decoration:underline}
.lv-hero-visual{position:relative}
.lv-hero-visual::before{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid rgba(27,38,59,.12);z-index:-1}
.lv-hero-photo img{display:block;width:100%;height:550px;min-height:480px;object-fit:cover;object-position:50% 35%}
.lv-hero-cred{background:var(--e-global-color-primary,#1B263B);border-left:4px solid var(--e-global-color-accent,#C30B23);min-height:102px;margin-top:0}
.lv-cred-seal{flex:0 0 auto}
.lv-cred-seal .elementor-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid rgba(255,255,255,.35);border-radius:50%;color:var(--e-global-color-white,#FFFFFF);font-size:18px}
.lv-hero-cred .elementor-heading-title{font-style:normal}
@media(min-width:1400px){.lv-hero-photo img{height:560px}}
@media(max-width:1000px){.lv-hero-photo img{height:470px;min-height:0}}
@media(max-width:700px){
  .lv-hero::before{inset:58% 0 0 25%}
  .lv-hero-photo img{height:440px}
}

/* ===================== TRUST BAND ===================== */
.lv-trust-grid .lv-metric{min-height:116px;padding:4px 42px;justify-content:flex-start}
.lv-trust-grid .lv-metric:first-child{padding-left:0}
.lv-trust-grid .lv-metric + .lv-metric{border-left:1px solid rgba(255,255,255,.15)}
.lv-metric-stars{margin-top:10px}
.lv-metric-stars{letter-spacing:4px}
.lv-metric-cap{margin-top:6px}
@media(max-width:1000px){.lv-trust-grid .lv-metric{padding:4px 26px}}
@media(max-width:700px){
  .lv-trust-grid .lv-metric,.lv-trust-grid .lv-metric:first-child{padding:20px 0;min-height:0}
  .lv-trust-grid .lv-metric + .lv-metric{border-left:0;border-top:1px solid rgba(255,255,255,.15)}
}

/* ===================== ABOUT ===================== */
.lv-about{position:relative;isolation:isolate;overflow:hidden;
  background:radial-gradient(ellipse at 100% 8%,rgba(238,229,225,.5) 0,transparent 55%),
             radial-gradient(ellipse at 0% 85%,rgba(229,235,239,.5) 0,transparent 50%),
             var(--e-global-color-warmwhite,#FAFAF8)!important}
.lv-about::before,.lv-about::after{content:"";position:absolute;top:0;bottom:0;width:max(30px,calc((100% - 1200px)/2 - 20px));z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 110px 360px at -65px 38%,transparent 69%,rgba(182,164,163,.38) 69.4%,rgba(182,164,163,.38) 70%,transparent 70.4%,transparent 83%,rgba(182,164,163,.27) 83.4%,rgba(182,164,163,.27) 84%,transparent 84.4%)}
.lv-about::before{left:0}
.lv-about::after{right:0;transform:rotate(180deg)}
@media(max-width:700px){.lv-about::before,.lv-about::after{width:16px;opacity:.6}}
.lv-about-head .elementor-heading-title{max-width:850px}
.lv-about-photo{position:relative;aspect-ratio:4/5;max-width:420px;align-self:center;margin-inline:auto;isolation:isolate}
.lv-about-photo::before,.lv-about-photo::after{content:"";position:absolute;width:56%;height:58%;border-radius:3px;z-index:0;pointer-events:none}
.lv-about-photo::before{inset:-18px auto auto -20px;background:var(--e-global-color-accent,#C30B23)}
.lv-about-photo::after{inset:auto -20px -18px auto;background:var(--e-global-color-primary,#1B263B)}
.lv-about-img{position:relative;z-index:1;width:100%;height:100%}
.lv-about-img img{height:100%}
.lv-about-img img{width:100%;height:100%;object-fit:cover;object-position:18% center;border-radius:3px;filter:drop-shadow(0 12px 16px rgba(27,38,59,.16))}
.lv-about-text strong{color:var(--e-global-color-primary,#1B263B);font-weight:600}
@media(max-width:700px){.lv-about-photo{width:calc(100% - 32px);max-width:390px}}

/* ===================== REVIEWS ===================== */
.lv-reviews{position:relative;isolation:isolate;overflow:hidden}
.lv-reviews::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url(../img/reviews-waves.svg) center/100% 100% no-repeat}
.lv-section-aside .lv-underlink{margin-top:4px}
.lv-underlink a{color:var(--e-global-color-accent,#C30B23);border-bottom:1px solid rgba(195,11,35,.25);padding-bottom:7px;text-decoration:none}
.lv-rating-num .elementor-heading-title span{font-family:var(--e-global-typography-secondary-font-family),Arial,sans-serif;font-size:14px;color:var(--e-global-color-captiongray,#69727E)}
.lv-rating-stars{letter-spacing:3px}
/* carousel card skin */
.lv-review-card{background:var(--e-global-color-white,#FFFFFF);border-top:2px solid rgba(195,11,35,.15);min-height:300px}
.lv-review-ph{font-style:italic}
.lv-review-person{border-top:1px solid rgba(27,38,59,.08);padding-top:20px;margin-top:auto}
.lv-avatar{flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:var(--e-global-color-redtint,#F4E8EB);display:flex;align-items:center;justify-content:center;text-align:center}
.lv-review-stars{color:var(--e-global-color-accent,#C30B23);margin-left:8px;letter-spacing:1px}
/* arrows (colours, size, position) are native carousel settings; only the dash-shaped pagination is skinned here */
.lv-reviews-carousel .swiper-pagination-bullet{width:22px;border-radius:0;opacity:1}
.lv-reviews-carousel .swiper-pagination-bullet-active{background:var(--e-global-color-accent,#C30B23)}

/* ===================== SERVICES ===================== */
/* nested tabs: vertical explorer on desktop */
.lv-services-tabs .e-n-tabs{gap:65px}
.lv-services-tabs .e-n-tabs-heading{border-top:1px solid var(--e-global-color-hairline,#DEDFE2);flex:0 0 36%;justify-content:flex-start;align-self:flex-start;align-content:flex-start}
.lv-services-tabs .e-n-tab-title,
.lv-services-tabs .e-n-tab-title[aria-selected="true"]{background:transparent!important;border-radius:0!important;box-shadow:none!important;border-top:0!important;border-left:0!important;border-right:0!important}
.lv-services-tabs .e-n-tab-title{counter-increment:lvtab;border-bottom:1px solid var(--e-global-color-hairline,#DEDFE2);padding:23px 12px 23px 0;gap:18px;justify-content:flex-start;color:var(--e-global-color-secondary,#58606B)}
.lv-services-tabs .e-n-tab-title-text{line-height:1.3}
.lv-services-tabs .e-n-tab-title::before{content:"0" counter(lvtab);font-family:var(--e-global-typography-secondary-font-family),Arial,sans-serif;font-size:10px;color:var(--e-global-color-captiongray,#69727E);margin-right:4px}
.lv-services-tabs .e-n-tab-title::after{content:"\2197";margin-left:auto;font-size:21px;color:var(--e-global-color-captiongray,#69727E);transition:transform .2s,color .2s}
.lv-services-tabs .e-n-tab-title[aria-selected="true"]{color:var(--e-global-color-primary,#1B263B);border-bottom-color:var(--e-global-color-accent,#C30B23)}
.lv-services-tabs .e-n-tab-title[aria-selected="true"]::before,
.lv-services-tabs .e-n-tab-title[aria-selected="true"]::after{color:var(--e-global-color-accent,#C30B23)}
.lv-services-tabs .e-n-tab-title[aria-selected="true"]::after{transform:translateX(5px)}
.lv-services-tabs .e-n-tabs-content{counter-reset:none}
.lv-service-detail{background:var(--e-global-color-paper,#F8F9FA);position:relative;overflow:hidden}
.lv-service-detail::before{content:"";position:absolute;width:260px;height:260px;right:-110px;top:-115px;border-radius:50%;border:50px solid rgba(195,11,35,.024);pointer-events:none}
.lv-service-photo{margin:-40px -44px 30px!important}
.lv-service-photo img{display:block;width:calc(100% + 88px);max-width:none;height:220px;object-fit:cover}
.lv-detail-list .elementor-icon-list-item{padding:16px 0!important;border-bottom:1px solid rgba(27,38,59,.06)}
.lv-detail-list .elementor-icon-list-icon{align-self:flex-start}
@media(max-width:700px){
  .lv-services-tabs .e-n-tabs{gap:25px}
  .lv-service-photo{margin:-28px -24px 25px!important}
  .lv-service-photo img{width:calc(100% + 48px);height:210px}
  .lv-services-tabs .e-n-tab-title{min-height:0;height:auto;align-items:center;padding:17px 0}
  /* tabs stay tabs on phones: the seven titles form a 2-column grid above the open panel */
  .lv-services-tabs .e-n-tabs-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px;flex:0 0 auto;width:100%;max-width:100%;box-sizing:border-box}
  .lv-services-tabs .e-n-tab-title{gap:8px;padding:14px 0;min-width:0;width:auto;justify-content:flex-start;text-align:start}
  .lv-services-tabs .e-n-tab-title-text{flex:1;min-width:0;text-align:start}
  .lv-services-tabs .e-n-tab-title:last-child{grid-column:1/-1}
}

/* ===================== SERVICE CTA BANNER ===================== */
.lv-service-cta{position:relative;overflow:hidden;isolation:isolate}
.lv-service-cta::after{content:"";position:absolute;top:0;right:0;bottom:0;width:max(28px,calc((100% - 1200px)/2 - 24px));pointer-events:none;z-index:-1;
  background:repeating-radial-gradient(ellipse 150px 210px at 170px 40%,transparent 0 22px,rgba(255,255,255,.27) 23px 24px,transparent 25px 45px)}
@media(max-width:700px){.lv-service-cta::after{width:16px;opacity:.7}}

/* ===================== APPROACH ===================== */
.lv-approach{position:relative;isolation:isolate;overflow:hidden;
  background:radial-gradient(ellipse at 100% 8%,rgba(238,229,225,.5) 0,transparent 55%),
             radial-gradient(ellipse at 0% 85%,rgba(229,235,239,.5) 0,transparent 50%),
             var(--e-global-color-warmwhite,#FAFAF8)!important}
.lv-approach::before{content:"🍁";position:absolute;bottom:-150px;left:-140px;font-size:550px;line-height:1;opacity:.075;filter:grayscale(1);mix-blend-mode:multiply;transform:rotate(-15deg);pointer-events:none;z-index:0}
.lv-approach-grid{position:relative;z-index:1}
.lv-approach-num{flex:0 0 48px;padding-top:2px}
.lv-approach-item{border-bottom:1px solid rgba(27,38,59,.12)}
.lv-approach-item:first-child{padding-top:0!important}
.lv-fine-rule{margin-top:35px}

/* ===================== PROCESS ===================== */
/* All native in Elementor: the blurred photo is the section's Background Overlay; the step cards'
   background, border, shadow, min height and staggered margins are the card containers' own settings. */

/* ===================== OFFICE ===================== */
.lv-office-intro{margin:20px 0 0}
.lv-office-addr{border-top:1px solid var(--e-global-color-hairline,#DEDFE2);padding-top:24px;margin-top:24px}
.lv-office-addr strong{color:var(--e-global-color-accent,#C30B23);font-weight:700;display:block}
.lv-office-contact a{color:var(--e-global-color-text,#1F2630);text-decoration:none;overflow-wrap:anywhere}
.lv-map{position:relative;width:100%;height:440px;overflow:hidden;background:var(--e-global-color-paper,#F8F9FA)}
.lv-map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.8)}
@media(max-width:700px){.lv-map{height:340px}}

/* ===================== FINAL CTA ===================== */
.lv-final{position:relative;overflow:hidden;isolation:isolate;
  background:radial-gradient(ellipse at 100% 100%,var(--e-global-color-ctadark,#8F0A20),transparent 65%),var(--e-global-color-accent,#C30B23)!important}
.lv-final::after{content:"🍁";position:absolute;right:-30px;top:5px;font-size:420px;line-height:1;opacity:.06;filter:grayscale(1) brightness(5);transform:rotate(15deg);pointer-events:none;z-index:0}
.lv-final-inner{position:relative;z-index:1}

/* ===================== FAQ ===================== */
/* layout, title/icon colours, padding and icon position are native accordion settings;
   the design rules each item (not each title), which the accordion's border controls can't express */
.lv-faq-accordion .e-n-accordion-item{border-bottom:1px solid var(--e-global-color-hairline,#DEDFE2)}
.lv-faq-accordion .e-n-accordion-item:first-child{border-top:1px solid var(--e-global-color-hairline,#DEDFE2)}
.lv-faq-accordion .e-n-accordion-item-title{gap:30px}
.lv-faq-answer a{color:var(--e-global-color-accent,#C30B23);text-decoration:underline}

/* ===================== scroll-to-top ===================== */
.levant-top{position:fixed;right:24px;bottom:24px;width:46px;height:46px;display:flex;
  align-items:center;justify-content:center;background:var(--e-global-color-accent,#C30B23);color:var(--e-global-color-white,#FFFFFF);border:0;
  cursor:pointer;z-index:999;opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .25s ease,transform .25s ease,background .2s ease;
  box-shadow:0 8px 24px rgba(27,38,59,.22)}
.levant-top svg{width:18px;height:18px;display:block}
/* The Kit's global button style targets every <button> (.elementor-kit-N button: padding 16/23, 12px font),
   which squeezed the 18px arrow to 0 width. This icon button keeps its own box. */
button.levant-top.levant-top{padding:0;line-height:1;font-size:0;min-width:0}
.levant-top svg{flex:0 0 18px}
.levant-top:hover{background:var(--e-global-color-redhover,#A2091D)}
.levant-top:focus-visible{outline:3px solid var(--e-global-color-primary,#1B263B);outline-offset:3px}
.levant-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
@media(max-width:700px){.levant-top{right:16px;bottom:16px;width:42px;height:42px}}
@media(prefers-reduced-motion:reduce){.levant-top{transition:none}}

/* ===================== Header (Theme Builder) ===================== */
/* Sticky header. Logo size, menu and the "Book a consultation" Button (Kit global button style) are native. */
[data-elementor-type="header"]{position:sticky;top:0;z-index:100;background:var(--e-global-color-white,#FFFFFF)}
[data-elementor-type="header"] .elementor-nav-menu .elementor-item{align-items:center}

/* Footer (Theme Builder): styled entirely in Elementor (widget typography/colours linked to globals). */
