/* =========================================================
   Webtender AI – Single Stylesheet
   ========================================================= */

/* ---------------------------------------------------------
   1. Custom Properties
   --------------------------------------------------------- */
:root {
  /* Brand greens */
  --clr-primary:       #2aba75;
  --clr-primary-dark:  #239960;
  --clr-primary-deeper:#1c7a4c;
  --clr-primary-deep:  #155c3a;

  /* Surfaces */
  --clr-bg-dark:   #0a1f16;
  --clr-bg-light:  #f0faf5;
  --clr-bg-white:  #ffffff;
  --clr-text:      #1a1a1a;
  --clr-text-muted:#5a6a62;
  --clr-text-inv:  #f0faf5;
  --clr-border:    #d4e8de;

  /* Fluid type */
  --fs-hero:   clamp(2.25rem, 5vw + 1rem, 4.5rem);
  --fs-h1:     clamp(2rem, 3.5vw + .5rem, 3.5rem);
  --fs-h2:     clamp(1.5rem, 2.5vw + .5rem, 2.5rem);
  --fs-h3:     clamp(1.125rem, 1.5vw + .25rem, 1.5rem);
  --fs-body:   clamp(.9375rem, .5vw + .75rem, 1.0625rem);
  --fs-sm:     clamp(.8125rem, .3vw + .7rem, .9375rem);

  /* Spacing scale */
  --sp-xs:  .5rem;
  --sp-sm:  1rem;
  --sp-md:  1.5rem;
  --sp-lg:  2.5rem;
  --sp-xl:  4rem;
  --sp-2xl: 6rem;
  --sp-3xl: 8rem;

  /* Misc */
  --radius:     .75rem;
  --radius-lg:  1.5rem;
  --radius-xl:  2rem;
  --shadow:     0 4px 24px rgba(0,0,0,.08);
  --shadow-lg:  0 12px 48px rgba(0,0,0,.12);
  --transition: .3s cubic-bezier(.4,0,.2,1);
  --nav-h:      4.5rem;
}

/* ---------------------------------------------------------
   2. Reset & Base
   --------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 1.5rem)}
body{
  font-family:'Poppins',system-ui,-apple-system,sans-serif;
  font-size:var(--fs-body);
  line-height:1.7;
  color:var(--clr-text);
  background:var(--clr-bg-white);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,video,svg{display:block;max-width:100%}
a{color:var(--clr-primary-dark);text-decoration:none;transition:color var(--transition)}
a:hover{color:var(--clr-primary)}
ul,ol{list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:none;background:none}
h1,h2,h3,h4{line-height:1.2;font-weight:700}
h1{font-size:var(--fs-h1)}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3)}

.sr-only{
  position:absolute;width:1px;height:1px;
  margin:-1px;padding:0;overflow:hidden;
  clip:rect(0,0,0,0);border:0;white-space:nowrap;
}

body.overflow-hidden{overflow:hidden}

/* ---------------------------------------------------------
   3. Layout
   --------------------------------------------------------- */
.container{
  width:100%;max-width:1280px;
  margin-inline:auto;padding-inline:var(--sp-md);
}
.section{padding:var(--sp-3xl) 0}
.section--dark{background:var(--clr-bg-dark);color:var(--clr-text-inv)}
.section--light{background:var(--clr-bg-light)}
.section__header{text-align:center;max-width:720px;margin-inline:auto;margin-bottom:var(--sp-xl)}
.section__header p{color:var(--clr-text-muted);margin-top:var(--sp-xs)}
.section--dark .section__header p{color:rgba(240,250,245,.65)}
.section__label{
  display:inline-block;font-size:var(--fs-sm);font-weight:600;
  text-transform:uppercase;letter-spacing:.08em;
  color:var(--clr-primary);margin-bottom:var(--sp-xs);
}

.grid{display:grid;gap:var(--sp-lg)}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}

@media(max-width:1024px){.grid--4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){
  .grid--2,.grid--3,.grid--4{grid-template-columns:1fr}
}

/* ---------------------------------------------------------
   4. Buttons
   --------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-weight:600;font-size:var(--fs-sm);
  padding:.875rem 2rem;border-radius:100px;
  transition:all var(--transition);
  white-space:nowrap;
}
.btn--primary{
  background:linear-gradient(135deg,var(--clr-primary),var(--clr-primary-dark));
  color:#fff;
  box-shadow:0 4px 16px rgba(42,186,117,.3);
}
.btn--primary:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 28px rgba(42,186,117,.4);
  color:#fff;
}
.btn--outline{
  border:2px solid var(--clr-primary);
  color:var(--clr-primary);
}
.btn--outline:hover{
  background:var(--clr-primary);color:#fff;
}
.btn--outline-inv{
  border:2px solid rgba(255,255,255,.4);
  color:#fff;
}
.btn--outline-inv:hover{
  background:rgba(255,255,255,.1);
  border-color:rgba(255,255,255,.7);
  color:#fff;
}
.btn--sm{padding:.625rem 1.5rem;font-size:var(--fs-sm)}
.btn--lg{padding:1rem 2.5rem;font-size:1rem}

/* ---------------------------------------------------------
   5. Navigation
   --------------------------------------------------------- */
.site-nav{
  position:fixed;
  top:.75rem;left:.75rem;right:.75rem;
  z-index:1000;
  height:var(--nav-h);
  display:flex;align-items:center;
  border-radius:1rem;
  transition:background var(--transition),box-shadow var(--transition),border-radius var(--transition);
}
.site-nav--scrolled{
  background:rgba(10,31,22,.85);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:0 4px 24px rgba(0,0,0,.15);
}
.page-login .site-nav{
  background:rgba(10,31,22,.95);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:0 4px 24px rgba(0,0,0,.15);
}
.site-nav .container{
  display:flex;align-items:center;justify-content:space-between;
}

/* Logo */
.nav-logo{display:flex;align-items:center;gap:.5rem;color:#fff;font-weight:700;font-size:1.125rem}
.nav-logo img{transition:filter .4s ease}
.nav-logo svg{height:2.25rem;width:auto}
.site-nav--invert:not(.site-nav--scrolled) .nav-logo img{filter:brightness(0) invert(1)}

/* Links */
.nav-links{display:flex;align-items:center;gap:var(--sp-lg)}
.nav-links a{
  color:rgba(255,255,255,.8);font-size:var(--fs-sm);font-weight:500;
  position:relative;padding:.25rem 0;transition:color var(--transition);
}
.nav-links a::after{
  content:'';position:absolute;bottom:0;left:0;
  width:0;height:2px;background:var(--clr-primary);
  transition:width var(--transition);
}
.nav-links a:hover,
.nav-links a.is-active{color:#fff}
.nav-links a:hover::after,
.nav-links a.is-active::after{width:100%}

.nav-cta{margin-left:var(--sp-sm);flex-shrink:0}

/* Hamburger */
.nav-hamburger{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:28px;height:28px;background:none;border:none;cursor:pointer;
  position:relative;z-index:1010;
}
.nav-hamburger span{
  display:block;width:100%;height:2px;background:#fff;
  border-radius:2px;transition:all var(--transition);
  transform-origin:center;
}
.nav-hamburger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-hamburger.is-open span:nth-child(2){opacity:0}
.nav-hamburger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:768px){
  .site-nav{top:.5rem;left:.5rem;right:.5rem}
  .nav-hamburger{display:flex}
  .nav-menu{
    position:fixed;top:0;right:0;
    width:min(320px,85vw);height:100vh;
    background:var(--clr-bg-dark);
    padding:calc(var(--nav-h) + var(--sp-xl)) var(--sp-lg) var(--sp-lg);
    flex-direction:column;align-items:flex-start;gap:var(--sp-md);
    transform:translateX(100%);transition:transform var(--transition);
    box-shadow:-8px 0 32px rgba(0,0,0,.3);
  }
  .nav-menu.is-open{transform:translateX(0)}
  .nav-links{flex-direction:column;align-items:flex-start;gap:var(--sp-md);width:100%}
  .nav-links a{font-size:1.125rem}
  .nav-cta{display:none}
}

/* ---------------------------------------------------------
   6. Hero
   --------------------------------------------------------- */
.hero{
  position:relative;
  min-height:calc(100vh - 1.5rem);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;color:#fff;
  margin:.75rem;
  border-radius:1.5rem;
}
.hero--compact{min-height:55vh}
.hero__video{
  position:absolute;inset:0;z-index:0;
}
.hero__video video{
  width:100%;height:100%;object-fit:cover;
  display:block;
  /* Scale slightly to crop any letterbox bars baked into the source video */
  transform:scale(1.08);
  transform-origin:center;
}
.hero__overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(10,31,22,.7) 0%,rgba(10,31,22,.85) 100%);
}
.hero__content{
  position:relative;z-index:2;
  text-align:center;max-width:860px;
  padding:var(--sp-3xl) var(--sp-md);
}
.hero__title{
  font-size:var(--fs-hero);
  margin-bottom:var(--sp-md);
  line-height:1.1;
}
.hero__title span{
  background:linear-gradient(135deg,var(--clr-primary),#5bd99e);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero__sub{
  font-size:clamp(1rem,1.5vw,.25rem,1.25rem);
  color:rgba(255,255,255,.75);
  margin-bottom:var(--sp-lg);
  max-width:640px;margin-inline:auto;
}
.hero__actions{display:flex;gap:var(--sp-sm);justify-content:center;flex-wrap:wrap}

/* Scroll indicator */
.hero__scroll{
  position:absolute;bottom:var(--sp-lg);left:50%;
  transform:translateX(-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
  color:rgba(255,255,255,.5);font-size:var(--fs-sm);
}
.hero__scroll-icon{
  width:24px;height:38px;border:2px solid rgba(255,255,255,.3);
  border-radius:12px;position:relative;
}
.hero__scroll-icon::after{
  content:'';position:absolute;top:6px;left:50%;
  width:4px;height:8px;margin-left:-2px;
  background:rgba(255,255,255,.5);border-radius:2px;
  animation:scrollBounce 2s infinite;
}
@keyframes scrollBounce{
  0%,100%{transform:translateY(0);opacity:1}
  50%{transform:translateY(10px);opacity:.3}
}

/* Compact hero (inner pages) */
.hero--compact .hero__content{padding:calc(var(--nav-h) + var(--sp-xl)) var(--sp-md) var(--sp-xl)}
.hero--compact{
  background:linear-gradient(135deg,var(--clr-bg-dark) 0%,#0f2e1f 100%);
  min-height:55vh;
}

/* Hero frame responsive */
@media(max-width:640px){
  .hero{margin:.5rem;border-radius:1rem;min-height:calc(100vh - 1rem)}
  .hero--compact{min-height:50vh}
}

/* ---------------------------------------------------------
   7. Cards
   --------------------------------------------------------- */
.card{
  background:var(--clr-bg-white);
  border-radius:var(--radius-lg);
  padding:var(--sp-lg);
  box-shadow:var(--shadow);
  transition:transform var(--transition),box-shadow var(--transition);
}
.card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-lg);
}
.card__icon{
  width:56px;height:56px;
  display:flex;align-items:center;justify-content:center;
  border-radius:var(--radius);
  background:var(--clr-bg-light);
  color:var(--clr-primary);
  margin-bottom:var(--sp-md);
}
.card__icon svg{width:28px;height:28px}
.card__title{margin-bottom:var(--sp-xs)}
.card__text{color:var(--clr-text-muted);font-size:var(--fs-sm)}

/* Dark variant */
.section--dark .card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}
.section--dark .card:hover{background:rgba(255,255,255,.1);transform:translateY(-4px)}
.section--dark .card__icon{background:rgba(42,186,117,.15)}
.section--dark .card__text{color:rgba(240,250,245,.55)}

/* ---------------------------------------------------------
   8. Package Cards
   --------------------------------------------------------- */
.pkg{
  border-radius:var(--radius-xl);
  padding:var(--sp-xl) var(--sp-lg);
  position:relative;
  border:2px solid var(--clr-border);
  background:var(--clr-bg-white);
  transition:all var(--transition);
}
.pkg:hover{border-color:var(--clr-primary);box-shadow:var(--shadow-lg)}
.pkg--featured{
  border-color:var(--clr-primary);
  box-shadow:0 0 0 1px var(--clr-primary),var(--shadow-lg);
}
.pkg__badge{
  position:absolute;top:-14px;left:50%;transform:translateX(-50%);
  background:linear-gradient(135deg,var(--clr-primary),var(--clr-primary-dark));
  color:#fff;font-size:.75rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;padding:.375rem 1.25rem;border-radius:100px;
  white-space:nowrap;
}
.pkg__name{font-size:var(--fs-h3);margin-bottom:var(--sp-xs)}
.pkg__price{font-size:var(--fs-h1);font-weight:800;color:var(--clr-primary)}
.pkg__price small{font-size:var(--fs-body);font-weight:400;color:var(--clr-text-muted)}
.pkg__setup{font-size:var(--fs-sm);color:var(--clr-text-muted);margin-bottom:var(--sp-lg)}
.pkg__divider{border:none;border-top:1px solid var(--clr-border);margin:var(--sp-md) 0}
.pkg__features{margin-bottom:var(--sp-lg)}
.pkg__features li{
  display:flex;align-items:flex-start;gap:.75rem;
  padding:var(--sp-xs) 0;font-size:var(--fs-sm);
}
.pkg__features li svg{flex-shrink:0;width:20px;height:20px;color:var(--clr-primary);margin-top:2px}
.pkg__cta{width:100%}

/* ---------------------------------------------------------
   9. Stats / Marquee
   --------------------------------------------------------- */
.stats{
  padding:var(--sp-xl) 0;
  overflow:hidden;
  background:var(--clr-bg-dark);
}
.stats__track{
  display:flex;gap:var(--sp-3xl);
  animation:marquee 30s linear infinite;
  width:max-content;
}
.stats__item{
  display:flex;flex-direction:column;align-items:center;
  min-width:200px;flex-shrink:0;
}
.stats__number{
  font-size:clamp(3rem,6vw,6rem);
  font-weight:900;
  -webkit-text-stroke:2px var(--clr-primary);
  color:transparent;
  line-height:1;
}
.stats__label{
  font-size:var(--fs-sm);
  color:rgba(240,250,245,.5);
  text-align:center;
  margin-top:var(--sp-xs);
}
@keyframes marquee{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}

/* Trust logos marquee */
.trust{overflow:hidden;padding:var(--sp-xl) 0}
.trust__track{
  display:flex;gap:var(--sp-2xl);
  animation:marquee 90s linear infinite;
  width:max-content;
}
.trust__track:hover{animation-play-state:paused}
.trust__item{
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  opacity:.5;
  transition:opacity var(--transition);
  filter:grayscale(1);
}
.trust__item:hover{opacity:.85;filter:grayscale(0)}
.trust__item img{height:28px;width:auto;display:block;object-fit:contain}

/* ---------------------------------------------------------
   10. Steps / Process
   --------------------------------------------------------- */
.steps{display:flex;justify-content:center;gap:0;position:relative;flex-wrap:wrap}
.step{
  display:flex;flex-direction:column;align-items:center;
  text-align:center;flex:1;min-width:200px;max-width:300px;
  padding:var(--sp-md);position:relative;
}
.step__circle{
  width:72px;height:72px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--clr-primary),var(--clr-primary-dark));
  color:#fff;font-size:1.5rem;font-weight:800;
  margin-bottom:var(--sp-md);position:relative;z-index:1;
}
.step__title{font-weight:700;margin-bottom:var(--sp-xs)}
.step__text{font-size:var(--fs-sm);color:var(--clr-text-muted)}

/* Connecting line */
.step:not(:last-child)::after{
  content:'';position:absolute;top:36px;left:calc(50% + 36px);
  width:calc(100% - 72px);height:2px;
  background:linear-gradient(90deg,var(--clr-primary),var(--clr-primary-dark));
  z-index:0;
}
@media(max-width:768px){
  .steps{flex-direction:column;align-items:center}
  .step:not(:last-child)::after{display:none}
}

/* ---------------------------------------------------------
   11. Token Preview / Tables
   --------------------------------------------------------- */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.table{
  width:100%;border-collapse:collapse;
  font-size:var(--fs-sm);
}
.table th,.table td{
  padding:.875rem 1.25rem;text-align:left;
  border-bottom:1px solid var(--clr-border);
}
.table th{
  font-weight:600;font-size:var(--fs-sm);
  color:var(--clr-text-muted);text-transform:uppercase;
  letter-spacing:.05em;background:var(--clr-bg-light);
}
.table tr:hover td{background:var(--clr-bg-light)}
.table td:first-child{font-weight:500}

.section--dark .table th{background:rgba(255,255,255,.06);color:rgba(240,250,245,.6);border-color:rgba(255,255,255,.08)}
.section--dark .table td{border-color:rgba(255,255,255,.06)}
.section--dark .table tr:hover td{background:rgba(255,255,255,.04)}

/* ---------------------------------------------------------
   12. Feature Grid
   --------------------------------------------------------- */
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--sp-md)}
.feature{
  display:flex;align-items:flex-start;gap:var(--sp-sm);
  padding:var(--sp-md);border-radius:var(--radius);
  background:var(--clr-bg-light);transition:all var(--transition);
}
.feature:hover{background:var(--clr-bg-white);box-shadow:var(--shadow)}
.feature__icon{
  flex-shrink:0;width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  border-radius:var(--radius);
  background:linear-gradient(135deg,var(--clr-primary),var(--clr-primary-dark));
  color:#fff;
}
.feature__icon svg{width:20px;height:20px}
.feature__title{font-weight:600;margin-bottom:.25rem}
.feature__text{font-size:var(--fs-sm);color:var(--clr-text-muted)}

/* ---------------------------------------------------------
   13. Comparison Table
   --------------------------------------------------------- */
.cmp-table{
  border-radius:var(--radius-lg);overflow:hidden;
  border:1px solid var(--clr-border);
  background:var(--clr-bg-white);
}
.cmp-table .table th:first-child,
.cmp-table .table td:first-child{min-width:200px}
.cmp-table .table th{background:var(--clr-bg-dark);color:#fff;border-bottom:none}
.cmp-table .table td{vertical-align:middle}
.cmp-table .check{color:var(--clr-primary)}
.cmp-table .cross{color:var(--clr-text-muted);opacity:.4}

/* ---------------------------------------------------------
   14. Modal
   --------------------------------------------------------- */
.modal{
  position:fixed;inset:0;z-index:2000;
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;
  transition:opacity .3s,visibility .3s;
}
.modal[aria-hidden="false"]{opacity:1;visibility:visible}
.modal__backdrop{
  position:absolute;inset:0;
  background:rgba(10,31,22,.7);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.modal__card{
  position:relative;z-index:1;
  background:var(--clr-bg-white);
  border-radius:var(--radius-xl);
  padding:var(--sp-xl);
  width:min(520px,92vw);
  max-height:90vh;overflow-y:auto;
  transform:translateY(24px) scale(.96);
  transition:transform .3s cubic-bezier(.4,0,.2,1);
  box-shadow:var(--shadow-lg);
}
.modal[aria-hidden="false"] .modal__card{transform:translateY(0) scale(1)}
.modal__close{
  position:absolute;top:var(--sp-sm);right:var(--sp-sm);
  width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;background:var(--clr-bg-light);
  transition:background var(--transition);
}
.modal__close:hover{background:var(--clr-border)}
.modal__close svg{width:18px;height:18px;color:var(--clr-text)}
.modal__title{font-size:var(--fs-h3);margin-bottom:var(--sp-md)}

/* ---------------------------------------------------------
   15. Form Styles
   --------------------------------------------------------- */
.form-group{margin-bottom:var(--sp-md);position:relative}
.form-label{
  display:block;font-size:var(--fs-sm);font-weight:500;
  margin-bottom:.375rem;color:var(--clr-text);
}
.form-input,
.form-select,
.form-textarea{
  width:100%;padding:.75rem 1rem;
  border:1.5px solid var(--clr-border);
  border-radius:var(--radius);
  background:var(--clr-bg-white);
  font-size:var(--fs-body);
  transition:border-color var(--transition),box-shadow var(--transition);
}
.form-input:focus,
.form-select:focus,
.form-textarea:focus{
  outline:none;border-color:var(--clr-primary);
  box-shadow:0 0 0 3px rgba(42,186,117,.15);
}
.form-textarea{resize:vertical;min-height:120px}
.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%235a6a62' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}

/* Segmented radio */
.form-radio-group{display:flex;gap:var(--sp-xs)}
.form-radio{
  flex:1;position:relative;
}
.form-radio input{position:absolute;opacity:0;pointer-events:none}
.form-radio label{
  display:block;text-align:center;
  padding:.625rem 1rem;border-radius:100px;
  border:1.5px solid var(--clr-border);
  font-size:var(--fs-sm);font-weight:500;
  cursor:pointer;transition:all var(--transition);
}
.form-radio input:checked + label{
  border-color:var(--clr-primary);
  background:var(--clr-bg-light);
  color:var(--clr-primary-dark);
}

/* Checkbox */
.form-check{display:flex;align-items:flex-start;gap:.75rem;font-size:var(--fs-sm)}
.form-check input[type="checkbox"]{
  width:18px;height:18px;margin-top:2px;
  accent-color:var(--clr-primary);flex-shrink:0;
}

/* Success state */
.form-success{
  display:none;flex-direction:column;align-items:center;
  text-align:center;padding:var(--sp-xl) 0;
}
.form-success.is-visible{display:flex}
.form-success__check{
  width:72px;height:72px;margin-bottom:var(--sp-md);
}
.form-success__check circle{
  stroke:var(--clr-primary);stroke-width:3;
  fill:none;stroke-dasharray:166;stroke-dashoffset:166;
  animation:checkCircle .6s cubic-bezier(.4,0,.2,1) forwards;
}
.form-success__check path{
  stroke:var(--clr-primary);stroke-width:3;
  fill:none;stroke-dasharray:48;stroke-dashoffset:48;
  animation:checkMark .3s cubic-bezier(.4,0,.2,1) .35s forwards;
}
@keyframes checkCircle{to{stroke-dashoffset:0}}
@keyframes checkMark{to{stroke-dashoffset:0}}
.form-success__title{font-size:var(--fs-h3);margin-bottom:var(--sp-xs)}
.form-success__text{color:var(--clr-text-muted);font-size:var(--fs-sm)}

.form-hidden{display:none}

/* Full page form */
.contact-form .form-input,
.contact-form .form-select,
.contact-form .form-textarea{
  background:var(--clr-bg-light);
}

/* ---------------------------------------------------------
   16. Contact Info Sidebar
   --------------------------------------------------------- */
.contact-info{
  background:var(--clr-bg-dark);color:var(--clr-text-inv);
  border-radius:var(--radius-xl);padding:var(--sp-xl);
}
.contact-info__item{
  display:flex;align-items:flex-start;gap:var(--sp-sm);
  margin-bottom:var(--sp-lg);
}
.contact-info__item:last-child{margin-bottom:0}
.contact-info__icon{
  flex-shrink:0;width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  border-radius:var(--radius);background:rgba(42,186,117,.15);
  color:var(--clr-primary);
}
.contact-info__icon svg{width:20px;height:20px}
.contact-info__label{font-size:var(--fs-sm);color:rgba(240,250,245,.5);margin-bottom:.125rem}
.contact-info__text{font-weight:500}
.contact-info__text a{color:var(--clr-primary);transition:color var(--transition)}
.contact-info__text a:hover{color:#5bd99e}

/* ---------------------------------------------------------
   17. Login Placeholder
   --------------------------------------------------------- */
.login-card{
  max-width:440px;margin:0 auto;
  text-align:center;
  background:var(--clr-bg-white);
  border-radius:var(--radius-xl);
  padding:var(--sp-2xl) var(--sp-xl);
  box-shadow:var(--shadow-lg);
}
.login-card__icon{
  width:80px;height:80px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  background:var(--clr-bg-light);
  color:var(--clr-primary);
  margin:0 auto var(--sp-lg);
}
.login-card__icon svg{width:36px;height:36px}
.login-card__title{margin-bottom:var(--sp-xs)}
.login-card__text{color:var(--clr-text-muted);margin-bottom:var(--sp-lg)}

/* ---------------------------------------------------------
   18. Footer
   --------------------------------------------------------- */
.site-footer{
  background:var(--clr-bg-dark);color:var(--clr-text-inv);
  padding:var(--sp-3xl) 0 0;
}
.footer-grid{
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;
  gap:var(--sp-xl);margin-bottom:var(--sp-2xl);
}
.footer-brand{max-width:300px}
.footer-brand svg{height:2rem;margin-bottom:var(--sp-md)}
.footer-brand p{font-size:var(--fs-sm);color:rgba(240,250,245,.5);line-height:1.8}
.footer__heading{
  font-size:var(--fs-sm);font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;margin-bottom:var(--sp-md);
}
.footer-links a{
  display:block;color:rgba(240,250,245,.6);font-size:var(--fs-sm);
  padding:.375rem 0;transition:color var(--transition);
}
.footer-links a:hover{color:var(--clr-primary)}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);
  padding:var(--sp-md) 0;
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:var(--sp-sm);
  font-size:var(--fs-sm);color:rgba(240,250,245,.35);
}
.footer-bottom a{color:rgba(240,250,245,.5);transition:color var(--transition)}
.footer-bottom a:hover{color:var(--clr-primary)}
.footer-sms{display:flex;align-items:center;opacity:.6;transition:opacity var(--transition)}
.footer-sms:hover{opacity:1}
.footer-sms img{display:block}
.footer-legal{display:flex;gap:var(--sp-md);flex-wrap:wrap}
.footer-legal a{color:rgba(240,250,245,.5);font-size:var(--fs-sm);transition:color var(--transition)}
.footer-legal a:hover{color:var(--clr-primary)}

/* ---------------------------------------------------------
   Legal pages
   --------------------------------------------------------- */
.legal-content{max-width:800px;margin:0 auto;line-height:1.8}
.legal-content h2{font-size:var(--fs-lg);margin-top:var(--sp-xl);margin-bottom:var(--sp-sm);color:var(--clr-text)}
.legal-content h3{font-size:var(--fs-md);margin-top:var(--sp-lg);margin-bottom:var(--sp-xs);color:var(--clr-text)}
.legal-content p{margin-bottom:var(--sp-sm);color:var(--clr-text-muted)}
.legal-content ul{margin-bottom:var(--sp-sm);padding-left:var(--sp-lg);color:var(--clr-text-muted)}
.legal-content li{margin-bottom:var(--sp-xs)}
.legal-content address{font-style:normal;margin-bottom:var(--sp-md);line-height:1.9}

@media(max-width:768px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:var(--sp-lg)}
  .footer-brand{grid-column:1/-1}
}
@media(max-width:480px){
  .footer-grid{grid-template-columns:1fr}
}

/* ---------------------------------------------------------
   19. CTA Section
   --------------------------------------------------------- */
.cta-section{
  text-align:center;
  padding:var(--sp-3xl) 0;
  background:linear-gradient(135deg,var(--clr-bg-dark) 0%,#0f2e1f 100%);
  color:#fff;
}
.cta-section h2{margin-bottom:var(--sp-sm)}
.cta-section p{color:rgba(255,255,255,.6);margin-bottom:var(--sp-lg);max-width:540px;margin-inline:auto}

/* ---------------------------------------------------------
   20. Animations (data-animate system)
   --------------------------------------------------------- */
[data-animate]{
  opacity:0;
  transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);
  will-change:opacity,transform;
}
[data-animate="fade-up"]{transform:translateY(50px)}
[data-animate="fade-down"]{transform:translateY(-50px)}
[data-animate="fade-left"]{transform:translateX(-50px)}
[data-animate="fade-right"]{transform:translateX(50px)}
[data-animate="scale-up"]{transform:scale(.88)}
[data-animate="fade-up-sm"]{transform:translateY(24px)}

[data-animate].is-visible{
  opacity:1;
  transform:translate(0) scale(1);
}

/* Stagger delays */
[data-delay="1"]{transition-delay:.1s}
[data-delay="2"]{transition-delay:.2s}
[data-delay="3"]{transition-delay:.3s}
[data-delay="4"]{transition-delay:.4s}
[data-delay="5"]{transition-delay:.5s}
[data-delay="6"]{transition-delay:.6s}

/* Parallax (driven by JS via --scroll-y custom property) */
[data-parallax]{transition:transform .1s linear;will-change:transform}

/* Hero entrance */
.hero__content>*{
  opacity:0;animation:heroIn .8s cubic-bezier(.4,0,.2,1) forwards;
}
.hero__content>*:nth-child(1){animation-delay:.2s}
.hero__content>*:nth-child(2){animation-delay:.4s}
.hero__content>*:nth-child(3){animation-delay:.6s}
.hero__content>*:nth-child(4){animation-delay:.8s}
@keyframes heroIn{
  from{opacity:0;transform:translateY(30px)}
  to{opacity:1;transform:translateY(0)}
}

/* ---------------------------------------------------------
   21. Reduced Motion
   --------------------------------------------------------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
  [data-animate]{opacity:1;transform:none}
  .stats__track,.trust__track{animation:none}
  html{scroll-behavior:auto}
}

/* ---------------------------------------------------------
   22. Responsive Fine-tuning
   --------------------------------------------------------- */
@media(max-width:640px){
  .section{padding:var(--sp-2xl) 0}
  .hero__title{font-size:clamp(1.75rem,6vw,2.75rem)}
  .hero__actions{flex-direction:column;align-items:center}
  .btn--lg{width:100%;max-width:320px}
  .pkg{padding:var(--sp-lg) var(--sp-md)}
  .cta-section{padding:var(--sp-2xl) 0}
}

@media(min-width:769px) and (max-width:1024px){
  .grid--3{grid-template-columns:repeat(2,1fr)}
}

/* ---------------------------------------------------------
   23. Utility classes
   --------------------------------------------------------- */
.text-center{text-align:center}
.text-primary{color:var(--clr-primary)}
.mt-sm{margin-top:var(--sp-sm)}
.mt-md{margin-top:var(--sp-md)}
.mt-lg{margin-top:var(--sp-lg)}
.mb-sm{margin-bottom:var(--sp-sm)}
.mb-md{margin-bottom:var(--sp-md)}
.mb-lg{margin-bottom:var(--sp-lg)}
.mx-auto{margin-inline:auto}
.max-w-prose{max-width:720px}
