/* ===== Lymo Solutions design tokens ===== */
:root{
  --lymo-teal:#00A88F;       /* brand accent: confirm with an eyedropper on your logo */
  --lymo-teal-deep:#007A68;  /* use for text, links and buttons: passes WCAG AA on white */
  --lymo-teal-tint:#E6F6F3;
  --lymo-ink:#2C3E50;
  --lymo-muted:#5F6F7E;
  --lymo-bg:#FFFFFF;
  --lymo-bg-soft:#F8F9FA;
  --lymo-line:#E3E8EC;
  --lymo-font-head:"Playfair Display",Georgia,"Times New Roman",serif;
  --lymo-font-body:"Inter","Open Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --lymo-radius:10px;
  --lymo-ease:cubic-bezier(.2,.7,.2,1);
}
body{font-family:var(--lymo-font-body);color:var(--lymo-ink);background:var(--lymo-bg)}
h1,h2,h3,h4{font-family:var(--lymo-font-head);color:var(--lymo-ink);font-weight:600;letter-spacing:-.01em;line-height:1.2}
a{color:var(--lymo-teal-deep)}
:focus-visible{outline:3px solid var(--lymo-teal);outline-offset:3px}
.lymo-icon{color:var(--lymo-teal);flex:none}

/* ===== Buttons (add class "lymo-btn" to Elementor buttons) ===== */
.lymo-btn,.fluentform .ff-btn-submit,.wpforms-submit{
  display:inline-block;background:var(--lymo-teal-deep)!important;color:#fff!important;border:0!important;
  padding:.9em 1.7em;border-radius:var(--lymo-radius);font:600 1rem var(--lymo-font-body);cursor:pointer;text-decoration:none;
  transition:transform .25s var(--lymo-ease),box-shadow .25s var(--lymo-ease),background .25s}
.lymo-btn:hover,.fluentform .ff-btn-submit:hover,.wpforms-submit:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,122,104,.28);background:#00695A!important}

/* ===== Reveal on scroll (JS adds .is-in) ===== */
.js-lymo .lymo-reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--lymo-ease),transform .7s var(--lymo-ease);transition-delay:var(--lymo-delay,0s)}
.js-lymo .lymo-reveal.is-in{opacity:1;transform:none}
.js-lymo .lymo-reveal.from-left{transform:translateX(-28px)}
.js-lymo .lymo-reveal.from-left.is-in{transform:none}

/* ===== Counters ===== */
.lymo-stat{text-align:center;padding:1rem}
.lymo-stat .lymo-icon{margin:0 auto .5rem;display:block}
.lymo-num{font:600 clamp(2.2rem,5vw,3.4rem)/1 var(--lymo-font-head);color:var(--lymo-ink)}
.lymo-label{margin-top:.4rem;color:var(--lymo-muted);font-size:.95rem}

/* ===== Showcase: filters ===== */
.lymo-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}
.lymo-filters button{background:var(--lymo-bg-soft);color:var(--lymo-ink);border:1px solid var(--lymo-line);border-radius:999px;padding:.55em 1.2em;font:500 .95rem var(--lymo-font-body);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.lymo-filters button:hover{border-color:var(--lymo-teal)}
.lymo-filters button.is-active{background:var(--lymo-teal-deep);border-color:var(--lymo-teal-deep);color:#fff}

/* ===== Showcase: carousel (CSS scroll-snap, no library) ===== */
.lymo-carousel{position:relative}
.lymo-track{display:flex;gap:1.25rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:.5rem .25rem 1.25rem;scrollbar-width:thin;scrollbar-color:var(--lymo-teal) transparent}
.lymo-card{flex:0 0 min(340px,82%);scroll-snap-align:start;background:#fff;border:1px solid var(--lymo-line);border-radius:var(--lymo-radius);overflow:hidden;transition:transform .35s var(--lymo-ease),box-shadow .35s var(--lymo-ease)}
.lymo-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(44,62,80,.14)}
.lymo-card[hidden]{display:none}
.lymo-card-img{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--lymo-teal-tint)}
.lymo-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--lymo-ease)}
.lymo-card:hover .lymo-card-img img{transform:scale(1.05)}
.lymo-ph{display:grid;place-items:center;height:100%}
.lymo-card-body{padding:1.2rem 1.3rem 1.4rem}
.lymo-card h3{font-size:1.25rem;margin:.6rem 0 .25rem}
.lymo-card h3 a{color:inherit;text-decoration:none}
.lymo-loc{color:var(--lymo-muted);font-size:.9rem;margin:0 0 .9rem;display:flex;gap:.4rem;align-items:center}
.lymo-more{font-weight:600;font-size:.92rem;text-decoration:none;display:inline-block;margin-top:.9rem}
.lymo-more:hover{text-decoration:underline}
.lymo-badge{display:inline-block;font:600 .78rem var(--lymo-font-body);padding:.3em .8em;border-radius:999px;background:var(--lymo-bg-soft);color:var(--lymo-ink)}
.lymo-badge.is-in-progress{background:var(--lymo-teal-tint);color:var(--lymo-teal-deep)}
.lymo-badge.is-completed{background:var(--lymo-teal-deep);color:#fff}
.lymo-badge.is-upcoming{background:#FFF4DD;color:#7A5200}
.lymo-nav{position:absolute;top:38%;z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid var(--lymo-line);background:#fff;color:var(--lymo-ink);font-size:1.6rem;line-height:1;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.12);transition:background .2s,color .2s}
.lymo-nav:hover{background:var(--lymo-teal-deep);color:#fff}
.lymo-nav.prev{left:-14px}.lymo-nav.next{right:-14px}
@media(max-width:767px){.lymo-nav{display:none}}

/* ===== Progress bar + timeline ===== */
.lymo-bar{height:6px;background:var(--lymo-line);border-radius:99px;overflow:hidden}
.lymo-bar i{display:block;height:100%;background:var(--lymo-teal);border-radius:99px;transition:width 1.1s var(--lymo-ease)}
.lymo-timeline-wrap{margin-top:3rem}
.lymo-h{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem}
.lymo-h span{font:600 1rem var(--lymo-font-body);color:var(--lymo-teal-deep)}
.lymo-timeline{list-style:none;margin:1.8rem 0 0;padding:0 0 0 2rem;position:relative}
.lymo-timeline::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:var(--lymo-line)}
.lymo-timeline li{position:relative;padding:0 0 1.8rem 1rem;display:block}
.lymo-timeline li:last-child{padding-bottom:0}
.lymo-dot{position:absolute;left:-2rem;top:2px;width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid var(--lymo-line);box-sizing:border-box}
.lymo-timeline li.is-done .lymo-dot{background:var(--lymo-teal);border-color:var(--lymo-teal)}
.lymo-timeline li.is-done .lymo-dot::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.lymo-timeline li.is-current .lymo-dot{border-color:var(--lymo-teal);box-shadow:0 0 0 5px var(--lymo-teal-tint)}
.lymo-timeline li.is-pending strong{color:var(--lymo-muted)}
.lymo-timeline strong{display:block;font-size:1.05rem}
.lymo-timeline small{color:var(--lymo-muted)}
.lymo-timeline p{margin:.35rem 0 0}

/* ===== Contact form styling (Fluent Forms / WPForms) ===== */
.fluentform .ff-el-form-control,.wpforms-field input,.wpforms-field select,.wpforms-field textarea{
  border:1px solid var(--lymo-line)!important;border-radius:8px!important;padding:.85em 1em!important;background:var(--lymo-bg-soft)!important;font-family:var(--lymo-font-body)!important;transition:border-color .2s,box-shadow .2s,background .2s}
.fluentform .ff-el-form-control:focus,.wpforms-field input:focus,.wpforms-field textarea:focus{border-color:var(--lymo-teal)!important;background:#fff!important;box-shadow:0 0 0 4px var(--lymo-teal-tint)!important;outline:0}
.fluentform .ff-el-input--label label{font-weight:600;color:var(--lymo-ink)}

/* ===== Reduced motion ===== */
@media(prefers-reduced-motion:reduce){
  .js-lymo .lymo-reveal{opacity:1;transform:none;transition:none}
  .lymo-card,.lymo-card *,.lymo-btn,.lymo-bar i{transition:none!important}
  .lymo-track{scroll-behavior:auto}
}
