/* ============ RESET ============ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  color:var(--ink-900);
  background:var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font:inherit;cursor:pointer;border:none;background:none}
h1,h2,h3,h4{font-family:var(--font-head);color:var(--forest-900);line-height:1.15;letter-spacing:-0.01em}
:focus-visible{outline:2px solid var(--gold-600);outline-offset:3px}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}

.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--sp-6)}
section{padding-block:var(--sp-9)}
.eyebrow{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--font-head);font-size:var(--step--1);font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--forest-700);
  margin-bottom:var(--sp-4);
}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--gold-500);border-radius:2px}
.section-head{max-width:640px;margin-bottom:var(--sp-8)}
.section-head.center{margin-inline:auto;text-align:center}
.section-head h2{font-size:var(--step-3);margin-bottom:var(--sp-4)}
.section-head p{color:var(--ink-700);font-size:var(--step-0)}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--font-head);font-weight:600;font-size:var(--step--1);
  padding:.95em 1.7em;border-radius:var(--radius-loop);
  transition:transform .35s var(--ease-loop), box-shadow .35s var(--ease-loop), background .3s;
  white-space:nowrap;
}
.btn-primary{background:var(--forest-700);color:#fff;box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--forest-800);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-ghost{background:transparent;color:var(--forest-900);border:1.5px solid var(--line)}
.btn-ghost:hover{border-color:var(--forest-700);background:var(--forest-100)}
.btn-gold{background:var(--gold-500);color:var(--forest-900)}
.btn-gold:hover{background:var(--gold-600);transform:translateY(-2px)}
.btn-on-dark.btn-ghost{border-color:rgba(255,255,255,.35);color:#fff}
.btn-on-dark.btn-ghost:hover{background:rgba(255,255,255,.1);border-color:#fff}

/* ============ NAV ============ */
.site-nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:var(--sp-5) 0;
  transition:background .4s var(--ease-loop), box-shadow .4s, padding .4s, backdrop-filter .4s;
}
.site-nav.scrolled{
  background:rgba(251,248,242,.72);
  backdrop-filter:blur(14px) saturate(150%);
  -webkit-backdrop-filter:blur(14px) saturate(150%);
  box-shadow:0 1px 0 rgba(18,51,38,.07);
  padding:var(--sp-3) 0;
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6)}
.logo{display:flex;align-items:center;gap:.6rem;font-family:var(--font-head);font-weight:700;font-size:1.05rem;color:var(--forest-900)}
.logo-mark{width:34px;height:34px;flex-shrink:0}
.logo-full{display:flex;flex-direction:column;line-height:1.05}
.logo-full small{font-family:var(--font-body);font-weight:500;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-500)}
.nav-links{display:flex;align-items:center;gap:var(--sp-7)}
.nav-links a{font-size:var(--step--1);font-weight:500;color:var(--ink-700);position:relative;padding-bottom:4px}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--gold-500);border-radius:2px;transition:width .3s var(--ease-loop)}
.nav-links a:hover{color:var(--forest-900)}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.nav-links a.active{color:var(--forest-800);font-weight:600}
.nav-cta{display:flex;align-items:center;gap:var(--sp-4)}
.nav-toggle{display:none;flex-direction:column;gap:5px;width:26px;z-index:110}
.nav-toggle span{height:2px;background:var(--forest-900);border-radius:2px;transition:transform .3s,opacity .3s}
.mobile-menu{
  position:fixed;inset:0;background:var(--forest-900);z-index:99;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-6);
  transform:translateY(-100%);transition:transform .5s var(--ease-loop);
}
.mobile-menu.open{transform:translateY(0)}
.mobile-menu a{font-family:var(--font-head);font-size:var(--step-2);color:#fff}
.mobile-menu .btn{margin-top:var(--sp-4)}

/* ============ HERO ============ */
.hero{
  position:relative;padding-top:calc(var(--sp-9) + 3rem);padding-bottom:var(--sp-9);
  overflow:hidden;
}
.hero-bg{position:absolute;inset:0;z-index:-2;background:
  radial-gradient(60% 50% at 85% 10%, rgba(212,175,55,.16), transparent 60%),
  radial-gradient(50% 45% at 10% 100%, rgba(31,94,59,.14), transparent 60%),
  var(--cream);
}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--sp-8);align-items:center}
.hero-copy h1{font-size:var(--step-5);margin-bottom:var(--sp-5)}
.hero-copy h1 .accent{color:var(--forest-700);position:relative;white-space:nowrap}
.hero-copy p{font-size:var(--step-1);color:var(--ink-700);max-width:46ch;margin-bottom:var(--sp-7)}
.hero-actions{display:flex;gap:var(--sp-4);flex-wrap:wrap}
.hero-trust{display:flex;gap:var(--sp-6);margin-top:var(--sp-8);flex-wrap:wrap}
.hero-trust div{font-family:var(--font-head);font-weight:700;font-size:var(--step-1);color:var(--forest-800)}
.hero-trust span{display:block;font-family:var(--font-body);font-weight:500;font-size:var(--step--1);color:var(--ink-500)}

/* Loop visual — signature element */
.loop-visual{position:relative;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}
.loop-visual svg{width:100%;height:100%;overflow:visible}
.loop-path{fill:none;stroke-linecap:round}
.loop-path.p1{stroke:var(--forest-700);stroke-width:3}
.loop-path.p2{stroke:var(--gold-500);stroke-width:3}
.loop-path.p3{stroke:var(--brown-500);stroke-width:2}
.loop-node{fill:var(--paper);stroke-width:2}
.loop-card{
  position:absolute;background:var(--paper);border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg);padding:var(--sp-4) var(--sp-5);
  display:flex;align-items:center;gap:var(--sp-3);
  font-family:var(--font-head);font-weight:600;font-size:var(--step--1);
  animation:float 6s ease-in-out infinite;
}
.loop-card .dot{width:10px;height:10px;border-radius:50%;background:var(--gold-500);flex-shrink:0}
.loop-card.c1{top:6%;left:0}
.loop-card.c2{bottom:14%;right:-4%;animation-delay:-2s}
.loop-card.c3{bottom:0;left:14%;animation-delay:-4s}

/* ============ CARDS (about) ============ */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6)}
.info-card{
  background:var(--paper);border-radius:var(--radius-lg);padding:var(--sp-7);
  border:1px solid var(--line);transition:transform .4s var(--ease-loop), box-shadow .4s;
}
.info-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.info-card .icon-wrap{
  width:52px;height:52px;border-radius:var(--radius-sm);
  background:var(--forest-100);display:flex;align-items:center;justify-content:center;
  margin-bottom:var(--sp-5);
}
.info-card .icon-wrap svg{width:26px;height:26px;stroke:var(--forest-700)}
.info-card h3{font-size:var(--step-1);margin-bottom:var(--sp-3)}
.info-card p{color:var(--ink-700);font-size:var(--step--1)}

/* ============ PRODUCT SECTION ============ */
.product-section{background:var(--forest-900);color:#fff;position:relative;overflow:hidden}
.product-section .eyebrow{color:var(--gold-300)}
.product-section .eyebrow::before{background:var(--gold-500)}
.product-section h2{color:#fff}
.product-section .section-head p{color:rgba(255,255,255,.72)}
.feature-list{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-5);margin-top:var(--sp-8)}
.feature-item{
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:var(--radius-md);padding:var(--sp-6);
  transition:background .35s,transform .35s var(--ease-loop);
}
.feature-item:hover{background:rgba(255,255,255,.09);transform:translateY(-4px)}
.feature-item .num{font-family:var(--font-head);color:var(--gold-500);font-weight:700;font-size:var(--step--1);margin-bottom:var(--sp-3);display:block}
.feature-item h4{color:#fff;font-family:var(--font-head);font-size:var(--step-0);margin-bottom:var(--sp-2)}
.feature-item p{color:rgba(255,255,255,.65);font-size:var(--step--1)}

.mockup-wrap{margin-top:var(--sp-8);display:flex;justify-content:center}
.device-mock{
  width:min(880px,100%);border-radius:22px;background:#0e2a1d;padding:14px;
  box-shadow:0 40px 90px rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.08);
}
.device-mock .screen{
  border-radius:12px;background:linear-gradient(160deg,var(--mist),#fff);
  aspect-ratio:16/9;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;
}
.device-mock .screen-label{font-family:var(--font-head);color:var(--ink-500);font-size:var(--step--1);text-align:center}

/* Phone screenshot gallery */
.phone-gallery{
  display:flex;justify-content:center;align-items:flex-end;gap:var(--sp-6);
  margin-top:var(--sp-8);flex-wrap:wrap;
}
.phone-frame{
  width:220px;border-radius:34px;background:#0e2a1d;padding:10px;
  box-shadow:0 30px 70px rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.08);
  transition:transform .4s var(--ease-loop);
}
.phone-frame:hover{transform:translateY(-8px)}
.phone-frame.tilt-left{transform:rotate(-4deg)}
.phone-frame.tilt-left:hover{transform:rotate(-4deg) translateY(-8px)}
.phone-frame.tilt-right{transform:rotate(4deg)}
.phone-frame.tilt-right:hover{transform:rotate(4deg) translateY(-8px)}
.phone-frame.lift{margin-bottom:var(--sp-6)}
.phone-frame .phone-screen{
  border-radius:24px;overflow:hidden;aspect-ratio:9/16;background:var(--forest-900);
}
.phone-frame .phone-screen img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.phone-frame figcaption{
  text-align:center;font-family:var(--font-head);font-size:.72rem;font-weight:600;
  color:rgba(255,255,255,.65);margin-top:var(--sp-2);letter-spacing:.02em;
}
.phone-single{display:flex;justify-content:center;margin-top:var(--sp-8)}
.phone-single .phone-frame{width:260px}

/* ============ WHY CHOOSE ============ */
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6)}
.feature-card{
  padding:var(--sp-7) var(--sp-6);border-radius:var(--radius-lg);
  background:var(--paper);box-shadow:var(--shadow-sm);
  border-top:3px solid var(--gold-500);
  transition:transform .4s var(--ease-loop), box-shadow .4s;
}
.feature-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.feature-card .icon-wrap{width:46px;height:46px;border-radius:50%;background:var(--brown-100);display:flex;align-items:center;justify-content:center;margin-bottom:var(--sp-5)}
.feature-card .icon-wrap svg{width:22px;height:22px;stroke:var(--brown-700)}
.feature-card h3{font-size:var(--step-0);margin-bottom:var(--sp-2)}
.feature-card p{color:var(--ink-700);font-size:var(--step--1)}

/* ============ JOURNEY / LOOP TIMELINE ============ */
.journey{position:relative}
.journey-track{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:var(--sp-4);margin-top:var(--sp-8)}
.journey-track::before{
  content:"";position:absolute;top:34px;left:0;right:0;height:2px;
  background:repeating-linear-gradient(90deg,var(--gold-500) 0 10px, transparent 10px 18px);
  z-index:0;
}
.journey-step{position:relative;z-index:1;text-align:center;padding-inline:var(--sp-2)}
.journey-step .node{
  width:68px;height:68px;border-radius:50%;background:var(--paper);border:2px solid var(--forest-700);
  display:flex;align-items:center;justify-content:center;margin:0 auto var(--sp-4);
  font-family:var(--font-head);font-weight:700;color:var(--forest-700);
  transition:background .3s,color .3s;
}
.journey-step:hover .node{background:var(--forest-700);color:#fff}
.journey-step h4{font-family:var(--font-head);font-size:var(--step--1);margin-bottom:var(--sp-1)}
.journey-step p{font-size:.8rem;color:var(--ink-500)}

/* ============ STATS ============ */
.stats-section{background:var(--brown-100)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-6);text-align:center}
.stat-item .num{font-family:var(--font-head);font-weight:700;font-size:var(--step-4);color:var(--forest-800);display:block}
.stat-item span{color:var(--ink-700);font-weight:500}

/* ============ VISION ============ */
.vision-section{position:relative;padding-block:var(--sp-9);background:var(--forest-800);color:#fff;overflow:hidden}
.vision-section::before{
  content:"";position:absolute;width:70vw;height:70vw;border-radius:50%;
  border:1px dashed rgba(255,255,255,.12);top:-30%;right:-20%;
}
.vision-section .container{max-width:820px;text-align:center;position:relative}
.vision-section .eyebrow{color:var(--gold-300);justify-content:center}
.vision-section h2{color:#fff;font-size:var(--step-3);margin-bottom:var(--sp-5)}
.vision-section p{color:rgba(255,255,255,.78);font-size:var(--step-1)}

/* ============ CTA ============ */
.cta-section{padding-block:var(--sp-8)}
.cta-box{
  background:linear-gradient(135deg,var(--forest-700),var(--forest-900));
  border-radius:var(--radius-lg);padding:var(--sp-8);color:#fff;
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6);flex-wrap:wrap;
  position:relative;overflow:hidden;
}
.cta-box::after{content:"";position:absolute;width:340px;height:340px;border-radius:50%;background:rgba(212,175,55,.14);right:-120px;top:-140px}
.cta-box h2{color:#fff;font-size:var(--step-2);max-width:22ch}
.cta-actions{display:flex;gap:var(--sp-4);position:relative;flex-wrap:wrap}

/* ============ FOOTER ============ */
footer{background:var(--forest-900);color:rgba(255,255,255,.75);padding-top:var(--sp-8)}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:var(--sp-7);padding-bottom:var(--sp-7)}
.footer-brand .logo{color:#fff}
.footer-brand p{margin-top:var(--sp-4);font-size:var(--step--1);color:rgba(255,255,255,.6);max-width:32ch}
footer h5{font-family:var(--font-head);color:#fff;font-size:var(--step--1);letter-spacing:.04em;text-transform:uppercase;margin-bottom:var(--sp-4)}
footer ul li{margin-bottom:var(--sp-3)}
footer ul li a{font-size:var(--step--1);transition:color .25s}
footer ul li a:hover{color:var(--gold-300)}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);padding-block:var(--sp-5);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--sp-3);
  font-size:.82rem;color:rgba(255,255,255,.5);
}
.footer-socials{display:flex;gap:var(--sp-4)}

/* ============ INNER PAGE HERO ============ */
.page-hero{padding-top:calc(var(--sp-9) + 2rem);padding-bottom:var(--sp-7);background:var(--forest-100);position:relative;overflow:hidden}
.page-hero h1{font-size:var(--step-4);max-width:16ch}
.page-hero p{color:var(--ink-700);max-width:56ch;margin-top:var(--sp-4);font-size:var(--step-0)}
.breadcrumb{font-size:var(--step--1);color:var(--ink-500);margin-bottom:var(--sp-5)}
.breadcrumb a{color:var(--forest-700);font-weight:600}

/* ============ FORMS ============ */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5)}
.field{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-5)}
.field.full{grid-column:1/-1}
.field label{font-family:var(--font-head);font-size:var(--step--1);font-weight:600;color:var(--forest-900)}
.field input,.field select,.field textarea{
  padding:.85em 1em;border:1.5px solid var(--line);border-radius:var(--radius-sm);
  font-family:var(--font-body);font-size:var(--step--1);background:var(--paper);
  transition:border-color .25s,box-shadow .25s;
}
.field textarea{resize:vertical;min-height:120px}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--forest-700);box-shadow:0 0 0 3px rgba(31,94,59,.12);outline:none;
}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--sp-8);align-items:start}
.contact-card{background:var(--paper);border-radius:var(--radius-lg);padding:var(--sp-7);border:1px solid var(--line)}
.contact-info-item{display:flex;gap:var(--sp-4);margin-bottom:var(--sp-6)}
.contact-info-item .icon-wrap{width:44px;height:44px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--forest-100);display:flex;align-items:center;justify-content:center}
.contact-info-item .icon-wrap svg{width:20px;height:20px;stroke:var(--forest-700)}
.contact-info-item h4{font-size:var(--step--1);margin-bottom:.2rem}
.contact-info-item p{color:var(--ink-700);font-size:var(--step--1)}
.map-placeholder{
  margin-top:var(--sp-6);border-radius:var(--radius-md);height:220px;
  background:repeating-linear-gradient(45deg,var(--forest-100),var(--forest-100) 10px,var(--mist) 10px,var(--mist) 20px);
  display:flex;align-items:center;justify-content:center;color:var(--forest-700);font-family:var(--font-head);font-weight:600;font-size:var(--step--1);
  border:1px solid var(--line);
}

/* ============ FAQ ============ */
.faq-item{border-bottom:1px solid var(--line)}
.faq-question{
  width:100%;display:flex;justify-content:space-between;align-items:center;
  padding:var(--sp-5) 0;font-family:var(--font-head);font-weight:600;font-size:var(--step-0);
  color:var(--forest-900);text-align:left;
}
.faq-question .plus{font-size:1.4rem;color:var(--gold-600);transition:transform .35s var(--ease-loop);flex-shrink:0;margin-left:var(--sp-4)}
.faq-item.open .faq-question .plus{transform:rotate(45deg)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .4s var(--ease-loop)}
.faq-answer p{color:var(--ink-700);padding-bottom:var(--sp-5);max-width:70ch;font-size:var(--step--1)}

/* ============ LEGAL PAGES ============ */
.legal-body{max-width:760px;margin-inline:auto}
.legal-body h2{font-size:var(--step-1);margin-top:var(--sp-8);margin-bottom:var(--sp-3)}
.legal-body h2:first-child{margin-top:0}
.legal-body p,.legal-body li{color:var(--ink-700);margin-bottom:var(--sp-3);font-size:var(--step--1)}
.legal-body ul{padding-left:var(--sp-5);list-style:disc}
.legal-updated{color:var(--ink-500);font-size:var(--step--1);margin-bottom:var(--sp-7)}

/* ============ UTILITIES ============ */
.text-center{text-align:center}
.mt-8{margin-top:var(--sp-8)}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease-loop), transform .8s var(--ease-loop)}
.reveal.in-view{opacity:1;transform:translateY(0)}
