/* ============================================================
   LOSOTERIC STUDIOS — Brand stylesheet (Elementor build)
   Design tokens + semantic type + components + layout + cursor
   ============================================================ */

:root{
  --bg:#FAFDF8; --surface:#F2F7F0; --white:#ffffff;
  --green-deep:#1B5E35; --green-mid:#2E8B57; --green-light:#5DBF85;
  --green-pale:#D4EDD9; --green-ghost:#EAF6EC; --green-mint:#A8E6C3;
  --text-dark:#162219; --text-mid:#4A6650; --text-muted:#7A9B7E; --text-faint:#B0C8B3;
  --border:#DFF0E2;
  --gradient:linear-gradient(135deg,#1B5E35 0%,#2E8B57 50%,#5DBF85 100%);
  --orb-pale:radial-gradient(circle,rgba(212,237,217,0.55) 0%,rgba(212,237,217,0) 70%);
  --orb-light:radial-gradient(circle,rgba(93,191,133,0.20) 0%,rgba(93,191,133,0) 70%);
  --font-display:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --maxw:1120px; --space-section:80px;
  --ease:cubic-bezier(0.22,0.61,0.36,1);
  --shadow-soft:0 1px 2px rgba(22,34,25,0.03),0 8px 24px rgba(22,34,25,0.04);
  --shadow-lift:0 4px 12px rgba(22,34,25,0.06),0 16px 40px rgba(22,34,25,0.07);
}

/* ---- Base ---- */
body{font-family:var(--font-body);color:var(--text-mid);background:var(--bg);font-weight:400;-webkit-font-smoothing:antialiased;}
body.elementor-page,.elementor-kit-8{background:var(--bg);}
.elementor *{box-sizing:border-box;}
a{color:var(--green-deep);text-decoration:none;}

/* ---- Container width ---- */
.elementor-section.elementor-section-boxed>.elementor-container,
.e-con.e-con-boxed>.e-con-inner{max-width:var(--maxw);}

/* ---- Type ---- */
.ls-eyebrow,.ls-eyebrow *{font-family:var(--font-body)!important;font-size:11px!important;font-weight:500!important;letter-spacing:.16em!important;text-transform:uppercase!important;color:var(--green-light)!important;line-height:1.4!important;}
.ls-h1,.ls-h1 *{font-family:var(--font-display)!important;font-size:clamp(38px,5.4vw,52px)!important;font-weight:400!important;line-height:1.08!important;letter-spacing:-.01em!important;color:var(--text-dark)!important;}
.ls-h2,.ls-h2 *{font-family:var(--font-display)!important;font-size:clamp(28px,4vw,36px)!important;font-weight:400!important;line-height:1.12!important;color:var(--text-dark)!important;}
.ls-h2-cta,.ls-h2-cta *{font-family:var(--font-display)!important;font-size:clamp(32px,4.6vw,44px)!important;font-weight:400!important;line-height:1.1!important;color:var(--white)!important;}
.ls-h3,.ls-h3 *{font-family:var(--font-body)!important;font-size:15px!important;font-weight:500!important;color:var(--text-dark)!important;letter-spacing:0!important;}
.ls-h3-serif,.ls-h3-serif *{font-family:var(--font-display)!important;font-size:22px!important;font-weight:500!important;color:var(--text-dark)!important;line-height:1.2!important;}
.ls-lead,.ls-lead *{font-family:var(--font-body)!important;font-size:15px!important;font-weight:400!important;line-height:1.6!important;color:var(--text-mid)!important;}
.ls-body,.ls-body *{font-family:var(--font-body)!important;font-size:14px!important;line-height:1.65!important;color:var(--text-muted)!important;}
.ls-small,.ls-small *{font-family:var(--font-body)!important;font-size:12px!important;line-height:1.55!important;color:var(--text-muted)!important;}
.ls-quote,.ls-quote *{font-family:var(--font-display)!important;font-style:italic!important;font-size:19px!important;line-height:1.45!important;color:var(--text-mid)!important;}
.ls-meta,.ls-meta *{font-family:var(--font-body)!important;font-size:11px!important;letter-spacing:.04em!important;color:var(--text-faint)!important;}
.ls-gradient-text,.ls-gradient-text *{background:var(--gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent!important;}
.ls-on-deep,.ls-on-deep *{color:var(--white)!important;}
.ls-on-deep .ls-body,.ls-on-deep .ls-body *{color:var(--green-mint)!important;}
.ls-on-deep .ls-eyebrow,.ls-on-deep .ls-eyebrow *{color:var(--green-mint)!important;}

/* ---- Buttons (Elementor button inside .ls-cta-* wrapper) ---- */
.ls-cta .elementor-button{font-family:var(--font-body);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;border-radius:4px;padding:13px 26px;border:.5px solid transparent;transition:transform .2s var(--ease),box-shadow .2s var(--ease),opacity .2s var(--ease),color .2s var(--ease);}
.ls-cta .elementor-button:active{transform:scale(.97);}
.ls-cta-primary .elementor-button{background:var(--gradient);color:#fff;}
.ls-cta-primary .elementor-button:hover{box-shadow:var(--shadow-lift);color:#fff;}
.ls-cta-outline .elementor-button{background:transparent;color:var(--text-muted);border-color:var(--border);}
.ls-cta-outline .elementor-button:hover{color:var(--text-dark);border-color:var(--green-light);}
.ls-cta-white .elementor-button{background:#fff;color:var(--green-deep);}
.ls-cta-white .elementor-button:hover{opacity:.92;}

/* ---- Cards ---- */
.ls-card{background:var(--surface)!important;border:.5px solid var(--border)!important;border-radius:4px!important;padding:32px 28px!important;height:100%;}
.ls-card.e-con,.ls-card>.e-con-inner{border-radius:4px;}
.ls-card--featured{background:var(--green-deep)!important;border-color:transparent!important;}
.ls-card--featured .ls-h3,.ls-card--featured .ls-h3-serif,.ls-card--featured .ls-h3 *{color:#fff!important;}
.ls-card--featured .ls-body,.ls-card--featured .ls-body *{color:var(--green-mint)!important;}
.ls-card--white{background:var(--white)!important;}

/* ---- Tag ---- */
.ls-tag{display:inline-block;font-family:var(--font-body);font-size:11px;letter-spacing:.04em;padding:5px 12px;border-radius:4px;background:var(--green-ghost);color:var(--green-deep);border:.5px solid var(--green-pale);}

/* ---- Icon container (icon-box) ---- */
.ls-icon .elementor-icon{background:var(--green-ghost)!important;border-radius:4px!important;width:44px!important;height:44px!important;display:flex;align-items:center;justify-content:center;}
.ls-icon .elementor-icon svg,.ls-icon .elementor-icon i{color:var(--green-deep)!important;fill:none;width:20px;height:20px;}
.ls-card--featured .ls-icon .elementor-icon{background:rgba(255,255,255,.1)!important;}
.ls-card--featured .ls-icon .elementor-icon svg{color:var(--green-mint)!important;}

/* ---- Sections / backgrounds ---- */
.ls-bg-surface{background:var(--surface)!important;}
.ls-bg-white{background:var(--white)!important;}
.ls-bg-deep{background:var(--green-deep)!important;}
.ls-section{padding-top:var(--space-section)!important;padding-bottom:var(--space-section)!important;}
.ls-hairline-top{border-top:.5px solid var(--border)!important;}

/* ---- Orbs (decorative) ---- */
.ls-orb{position:absolute;border-radius:50%;pointer-events:none;z-index:0;}
.ls-orb--pale{background:var(--orb-pale);}
.ls-orb--light{background:var(--orb-light);}

/* ---- Images ---- */
.ls-media img{border-radius:4px;display:block;width:100%;height:100%;object-fit:cover;}
.ls-round img{border-radius:50%;}

/* ---- Divider hairline ---- */
.ls-divider .elementor-divider-separator{border-top-color:var(--border)!important;border-top-width:.5px!important;}

/* ============================================================
   HEADER / FOOTER (Xpro Theme Builder)
   ============================================================ */
.xpro-theme-builder-header{position:sticky;top:0;z-index:100;background:rgba(250,253,248,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:.5px solid var(--border);}
.ls-logo a,.ls-logo .xpro-elementor-heading-title{font-family:var(--font-display)!important;font-weight:500!important;font-size:24px!important;letter-spacing:.04em!important;color:var(--green-deep)!important;}
/* Xpro horizontal menu */
.xpro-horizontal-menu .xpro-menu>li>a,.xpro-elementor-horizontal-menu a.xpro-menu-link,.xpro-horizontal-menu-wrapper a{font-family:var(--font-body)!important;font-size:13px!important;font-weight:500!important;letter-spacing:.02em!important;color:var(--text-mid)!important;text-transform:none;}
.xpro-horizontal-menu a:hover{color:var(--green-deep)!important;}
#xpro-theme-builder-footer,footer#xpro-theme-builder-footer{background:var(--green-deep);}
.ls-footer-wordmark,.ls-footer-wordmark *{font-family:var(--font-display)!important;font-weight:500!important;font-size:26px!important;color:#fff!important;letter-spacing:.04em!important;}

/* ============================================================
   ANIMATED TRAILING CURSOR
   ============================================================ */
@media (hover:hover) and (pointer:fine){
  .ls-cursor-on,.ls-cursor-on a,.ls-cursor-on button,.ls-cursor-on [role="button"],.ls-cursor-on input,.ls-cursor-on select,.ls-cursor-on textarea,.ls-cursor-on label,.ls-cursor-on .elementor-button{cursor:none;}
  .ls-cursor-dot,.ls-cursor-ring{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:99999;transform:translate(-50%,-50%);will-change:transform;}
  .ls-cursor-dot{width:7px;height:7px;background:var(--green-deep);}
  .ls-cursor-ring{width:38px;height:38px;border:1.5px solid rgba(27,94,53,.5);transition:width .25s var(--ease),height .25s var(--ease),border-color .25s var(--ease),background-color .25s var(--ease);}
  .ls-cursor-ring.is-active{width:56px;height:56px;border-color:rgba(46,139,87,.8);background:rgba(93,191,133,.12);}
  .ls-cursor-hidden{opacity:0;}
}

/* ---- Animations: fade-up on load ---- */
@keyframes lsFadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
.ls-fade .elementor-widget-container,.ls-fade>.e-con-inner{animation:lsFadeUp .7s var(--ease) both;}
.ls-fade-1{animation-delay:.05s;}.ls-fade-2{animation-delay:.15s;}.ls-fade-3{animation-delay:.25s;}.ls-fade-4{animation-delay:.35s;}

/* ---- Responsive ---- */
@media (max-width:1024px){:root{--space-section:60px;}}
@media (max-width:767px){:root{--space-section:48px;}.ls-card{padding:24px 20px!important;}.ls-quote,.ls-quote *{font-size:17px!important;}}

/* ---- Hero & CTA ethereal glows ---- */
.ls-hero{background:
  radial-gradient(circle at 82% 18%, rgba(93,191,133,0.18) 0%, rgba(93,191,133,0) 42%),
  radial-gradient(circle at 8% 88%, rgba(212,237,217,0.55) 0%, rgba(212,237,217,0) 46%),
  var(--bg)!important;overflow:hidden;}
.ls-cta-section{background:
  radial-gradient(circle at 85% 15%, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0) 40%),
  radial-gradient(circle at 12% 85%, rgba(255,255,255,0.045) 0%, rgba(255,255,255,0) 42%),
  var(--green-deep)!important;overflow:hidden;}
.ls-hero .ls-h1{margin-bottom:6px;}
.ls-eyebrow{margin-bottom:8px;}
.ls-card:hover{box-shadow:var(--shadow-soft);}
.ls-step-num,.ls-step-num *{font-family:var(--font-display)!important;font-size:40px!important;font-weight:500!important;line-height:1!important;}
.ls-meta{text-transform:uppercase;}
.ls-trustbar{border-top:.5px solid var(--border);border-bottom:.5px solid var(--border);}
.ls-process-step{position:relative;}
@media(min-width:768px){.ls-process-step.ls-hairline{border-left:.5px solid var(--border);padding-left:28px;}}
.ls-media img{box-shadow:var(--shadow-soft);}
.ls-card .ls-media img{box-shadow:none;}
