/* =========================================================
   Townly — design system
   Extracted from the Townly design artifact.
   Palette, type scale and component styles live here so the
   UX Builder pages stay structural and editable.
   ========================================================= */

:root{
  --tw-green:#0E7A5F;
  --tw-green-deep:#0A5C48;
  --tw-ink:#182420;
  --tw-cream:#F7F6F1;
  --tw-body:#4A554F;
  --tw-muted:#6B756F;
  --tw-faint:#9AA29C;
  --tw-border:#E4E1D6;
  --tw-rule:#EEECE4;
  --tw-mint:#E9F3EE;
  --tw-mint-ink:#7FC7AF;
  --tw-dark-card:#22312B;
  --tw-dark-card-br:#2E4038;
  --tw-orange:#DD8324;
  --tw-amber:#8A5A12;
  --tw-amber-bg:#FBEEDB;
  --tw-display:'Bricolage Grotesque',sans-serif;
}

/* ---------- Base ---------- */
body{background:var(--tw-cream);color:var(--tw-ink);-webkit-font-smoothing:antialiased;}
p{color:var(--tw-body);}
h1,h2,h3,h4,h5{font-family:var(--tw-display);letter-spacing:-0.02em;}
h1{letter-spacing:-0.03em;line-height:1.05;}
a{color:var(--tw-green);}
a:hover{color:var(--tw-green-deep);}

/* ---------- Eyebrow (house style: bare h6) ---------- */
h6{
  font-family:'Public Sans',sans-serif;
  font-size:14px;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--tw-green);
  margin:0 0 14px;
}
.dark h6,.tw-dark h6{color:var(--tw-mint-ink);}

/* ---------- Buttons: pill everywhere ---------- */
.button,button,input[type=submit]{
  border-radius:99px;
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
  font-family:'Public Sans',sans-serif;
}
.button.is-outline{border-width:1.5px;}
.button.primary:not(.is-outline){box-shadow:0 8px 24px rgba(14,122,95,0.28);}

/* ---------- Header ---------- */
#header .header-main{height:72px;}
#header.stuck .header-main,#header .header-main{
  background:rgba(247,246,241,0.88);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--tw-border);
}
#header .nav > li > a{
  font-size:15px;font-weight:600;color:var(--tw-body);
  padding:9px 16px;border-radius:99px;text-transform:none;letter-spacing:0;
}
#header .nav > li > a:hover{color:var(--tw-green);}
#header .nav > li.current-menu-item > a,
#header .nav > li.active > a{background:var(--tw-mint);color:var(--tw-green-deep);}
#header .nav > li.tw-nav-cta > a{
  background:var(--tw-ink);color:var(--tw-cream);padding:11px 20px;
}
#header .nav > li.tw-nav-cta > a:hover{background:var(--tw-green);color:#fff;}
.header-wrapper{border:0;}

/* Logo lockup */
.tw-logo{display:flex;align-items:center;gap:11px;}
.tw-logo-mark{
  width:34px;height:34px;border-radius:10px;background:var(--tw-green);
  display:grid;place-items:center;flex:0 0 34px;
}
.tw-logo-mark i{width:14px;height:14px;background:var(--tw-cream);border-radius:3px;transform:rotate(45deg);display:block;}
.tw-logo-word{font-family:var(--tw-display);font-weight:700;font-size:21px;letter-spacing:-0.02em;color:var(--tw-ink);}

/* ---------- Hero ---------- */
.tw-pill{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--tw-mint);color:var(--tw-green-deep);
  font-size:13.5px;font-weight:600;padding:7px 14px;border-radius:99px;margin-bottom:26px;
}
.tw-pill::before{content:"";width:7px;height:7px;border-radius:99px;background:var(--tw-green);}
.tw-hero h1{font-size:58px;line-height:1.04;margin:0 0 22px;text-wrap:balance;}
.tw-hero-lead{font-size:19px;line-height:1.6;color:var(--tw-body);margin:0 0 32px;max-width:520px;}
.tw-ticks{margin-top:30px;display:flex;gap:26px;flex-wrap:wrap;font-size:14px;color:var(--tw-muted);}

/* ---------- Browser mockup ---------- */
.tw-browser{
  background:#fff;border-radius:16px;border:1px solid var(--tw-border);
  box-shadow:0 24px 60px rgba(24,36,32,0.14);overflow:hidden;
}
.tw-browser-bar{
  display:flex;align-items:center;gap:6px;padding:11px 14px;
  border-bottom:1px solid var(--tw-rule);background:#FBFAF7;
}
.tw-dot{width:10px;height:10px;border-radius:99px;background:var(--tw-border);}
.tw-url{flex:1;text-align:center;font-size:11.5px;color:var(--tw-faint);font-family:ui-monospace,monospace;}
.tw-alert{background:var(--tw-orange);color:#fff;font-size:12.5px;font-weight:600;padding:8px 16px;}
.tw-browser-nav{padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.tw-browser-brand{font-family:var(--tw-display);font-weight:700;font-size:15px;}
.tw-browser-links{display:flex;gap:14px;font-size:11.5px;color:var(--tw-muted);font-weight:600;}
.tw-search-card{
  margin:0 20px;border-radius:12px;padding:26px 24px;color:#fff;
  background:linear-gradient(135deg,var(--tw-green),var(--tw-green-deep));
}
.tw-search-card h4{font-family:var(--tw-display);font-weight:700;font-size:22px;line-height:1.15;margin:0 0 8px;color:#fff;}
.tw-search-field{
  background:rgba(255,255,255,0.94);border-radius:8px;padding:10px 14px;font-size:12.5px;
  color:var(--tw-faint);display:flex;justify-content:space-between;align-items:center;gap:10px;
}
.tw-search-field span:last-child{color:var(--tw-green);font-weight:700;}
.tw-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:18px 20px 22px;}
.tw-mini{border:1px solid var(--tw-rule);border-radius:10px;padding:12px;font-size:11.5px;font-weight:600;}
.tw-mini span{display:block;font-weight:400;color:var(--tw-faint);margin-top:3px;}

/* ---------- Dark band + tool cards ---------- */
.tw-dark{background:var(--tw-ink);color:var(--tw-cream);}
.tw-dark h1,.tw-dark h2,.tw-dark h3,.tw-dark h4{color:var(--tw-cream);}
.tw-dark p{color:#A8B5AE;}
.tw-tool{
  background:var(--tw-dark-card);border:1px solid var(--tw-dark-card-br);
  border-radius:18px;padding:32px;height:100%;
  transition:transform .2s ease,border-color .2s ease;
}
.tw-tool:hover{transform:translateY(-4px);border-color:var(--tw-mint-ink);}
.tw-tool-icon{
  width:46px;height:46px;border-radius:12px;background:var(--tw-green);
  display:grid;place-items:center;font-size:21px;margin-bottom:20px;
}
.tw-tool h3{font-family:var(--tw-display);font-weight:700;font-size:22px;margin:0 0 9px;color:var(--tw-cream);}
.tw-tool p{font-size:15.5px;line-height:1.6;color:#A8B5AE;margin:0;}

/* ---------- Step cards ---------- */
.tw-step{
  background:#fff;border:1px solid var(--tw-border);border-radius:18px;
  padding:34px 30px;height:100%;
}
.tw-step-n{font-family:var(--tw-display);font-weight:800;font-size:15px;color:var(--tw-green);margin-bottom:16px;}
.tw-step h3{font-family:var(--tw-display);font-weight:700;font-size:21px;margin:0 0 10px;}
.tw-step p{font-size:15.5px;line-height:1.65;color:var(--tw-body);margin:0;}

/* ---------- CTA band ---------- */
.tw-cta{
  background:linear-gradient(120deg,var(--tw-green),var(--tw-green-deep));
  border-radius:24px;padding:64px 56px;
  display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;
}
.tw-cta h2{font-size:36px;color:#fff;margin:0 0 10px;}
.tw-cta p{font-size:17px;color:#CFE8DE;margin:0;}
.tw-cta .button{background:#fff;color:var(--tw-green-deep);font-weight:700;border-color:#fff;margin:0;}
.tw-cta .button:hover{background:var(--tw-mint);color:var(--tw-green-deep);}

/* ---------- Feature-page mockups ---------- */
.tw-panel{
  background:#fff;border:1px solid var(--tw-border);border-radius:16px;
  padding:22px;box-shadow:0 18px 44px rgba(24,36,32,0.10);
}
.tw-dark .tw-panel{background:var(--tw-dark-card);border-color:var(--tw-dark-card-br);box-shadow:none;}
.tw-row-item{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:14px 4px;border-bottom:1px solid var(--tw-rule);
}
.tw-row-item:last-child{border-bottom:0;}
.tw-row-name{font-weight:700;font-size:14.5px;color:var(--tw-ink);}
.tw-row-type{font-size:12.5px;color:var(--tw-faint);margin-top:2px;}
.tw-badge{font-size:11.5px;font-weight:700;padding:5px 12px;border-radius:99px;white-space:nowrap;}
.tw-badge-ok{color:var(--tw-green-deep);background:var(--tw-mint);}
.tw-badge-review{color:var(--tw-amber);background:var(--tw-amber-bg);}
.tw-ord{padding:14px 4px;border-bottom:1px solid var(--tw-rule);}
.tw-ord:last-child{border-bottom:0;}
.tw-ord-ref{font-family:var(--tw-display);font-weight:700;font-size:14px;color:var(--tw-green);margin-bottom:4px;}
.tw-ord-text{font-size:14px;line-height:1.55;color:var(--tw-body);}
.tw-dark .tw-ord{border-color:var(--tw-dark-card-br);}
.tw-dark .tw-ord-ref{color:var(--tw-mint-ink);}
.tw-dark .tw-ord-text,.tw-dark .tw-row-name{color:#A8B5AE;}
.tw-dir-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.tw-dir{display:flex;align-items:center;gap:12px;border:1px solid var(--tw-rule);border-radius:12px;padding:14px;}
.tw-dir-av{
  width:40px;height:40px;border-radius:99px;background:var(--tw-mint);color:var(--tw-green-deep);
  display:grid;place-items:center;font-weight:700;font-size:13px;flex:0 0 40px;
}
.tw-dir-name{font-weight:700;font-size:14px;}
.tw-dir-role{font-size:12.5px;color:var(--tw-faint);}

/* ---------- Pricing ---------- */
.tw-plan{
  position:relative;display:flex;flex-direction:column;
  border-radius:20px;padding:36px 32px;height:100%;
  background:#fff;border:1px solid var(--tw-border);
}
.tw-plan--pop{
  background:var(--tw-ink);color:var(--tw-cream);border-color:var(--tw-ink);
  box-shadow:0 24px 56px rgba(24,36,32,0.28);
}
.tw-plan-tag{
  position:absolute;top:-13px;left:50%;transform:translateX(-50%);
  background:var(--tw-orange);color:#fff;
  font-size:12px;font-weight:700;white-space:nowrap;
  padding:5px 14px;border-radius:99px;
}
.tw-plan h3{font-family:var(--tw-display);font-weight:700;font-size:23px;margin:0 0 6px;}
.tw-plan--pop h3{color:var(--tw-cream);}
.tw-plan-tagline{font-size:14.5px;line-height:1.55;color:var(--tw-muted);margin:0 0 22px;min-height:66px;}
.tw-plan--pop .tw-plan-tagline{color:#A8B5AE;}
.tw-plan-price{font-family:var(--tw-display);font-weight:800;font-size:46px;letter-spacing:-0.03em;line-height:1;}
.tw-plan-per{font-size:15px;font-weight:600;color:var(--tw-muted);}
.tw-plan--pop .tw-plan-per{color:#A8B5AE;}
.tw-plan-note{font-size:13px;color:var(--tw-faint);margin:8px 0 24px;}
.tw-plan ul{list-style:none;margin:0 0 28px;padding:0;}
.tw-plan li{position:relative;padding-left:26px;margin-bottom:11px;font-size:14.5px;line-height:1.5;color:var(--tw-body);}
.tw-plan--pop li{color:#A8B5AE;}
.tw-plan li::before{content:"✓";position:absolute;left:0;top:0;font-weight:700;color:var(--tw-green);}
.tw-plan--pop li::before{color:var(--tw-mint-ink);}
.tw-plan .button{margin:auto 0 0;width:100%;text-align:center;background:var(--tw-ink);color:var(--tw-cream);border-color:var(--tw-ink);}
.tw-plan--pop .button{background:var(--tw-mint-ink);color:var(--tw-ink);border-color:var(--tw-mint-ink);}

/* Billing toggle */
.tw-toggle{display:inline-flex;gap:4px;background:#EDEBE2;border:0;border-radius:99px;padding:5px;}
.tw-toggle button{
  font-size:14px;font-weight:700;padding:9px 18px;border-radius:99px;
  background:transparent;color:var(--tw-body);border:0;cursor:pointer;box-shadow:none;
}
.tw-toggle button.is-on{background:var(--tw-ink);color:var(--tw-cream);}

/* ---------- FAQ ---------- */
.tw-faq{display:flex;flex-direction:column;gap:12px;max-width:760px;margin:0 auto;}
.tw-faq-item{background:#fff;border:1px solid var(--tw-border);border-radius:14px;overflow:hidden;}
.tw-faq-q{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;
  background:none;border:0;box-shadow:none;cursor:pointer;text-align:left;
  font-family:'Public Sans',sans-serif;font-weight:600;font-size:16.5px;color:var(--tw-ink);
  padding:20px 24px;margin:0;line-height:1.4;text-transform:none;letter-spacing:0;
}
.tw-faq-q:hover{color:var(--tw-green);background:none;}
.tw-faq-mark{font-size:18px;font-weight:700;color:var(--tw-green);flex:0 0 auto;line-height:1;}
.tw-faq-a{display:none;padding:0 24px 22px;font-size:15.5px;line-height:1.65;color:var(--tw-body);}
.tw-faq-item.is-open .tw-faq-a{display:block;}
/* ---------- Responsive ---------- */
@media only screen and (max-width:849px){
  .tw-hero h1{font-size:40px;}
  .tw-hero-lead{font-size:17px;}
  .tw-cta{padding:40px 28px;}
  .tw-cta h2{font-size:28px;}
  .tw-ticks{gap:14px;font-size:13px;}
  .tw-dir-grid{grid-template-columns:1fr;}
  .tw-plan-tagline{min-height:0;}
  .tw-tool{padding:26px;}
  .tw-faq-q{font-size:16.5px;}
}

/* ---------- Section heading scale (matches the design) ---------- */
.tw-h2 h2{font-size:42px;line-height:1.1;margin:0;text-wrap:balance;}
.tw-h2-c{max-width:600px;margin:0 auto 60px;text-align:center;}
.tw-h2-c h2{font-size:40px;line-height:1.1;margin:0 0 14px;}
.tw-h2-c p{font-size:17px;line-height:1.6;color:var(--tw-body);margin:0;}
.tw-h1 h1{font-size:50px;line-height:1.06;margin:0 auto 16px;max-width:700px;text-wrap:balance;}
.tw-h1 p{font-size:18px;line-height:1.6;color:var(--tw-body);max-width:620px;margin:0 auto;}
.tw-feat h2{font-size:36px;line-height:1.12;margin:0 0 16px;}
.tw-feat p{font-size:16.5px;line-height:1.65;color:var(--tw-body);}
.tw-dark .tw-feat p{color:#A8B5AE;}

@media only screen and (max-width:849px){
  .tw-h2 h2{font-size:30px;}
  .tw-h2-c{margin-bottom:34px;}
  .tw-h2-c h2{font-size:28px;}
  .tw-h1 h1{font-size:34px;}
  .tw-feat h2{font-size:26px;}
}
/* ---------- Feature blocks ---------- */
.tw-tag{display:inline-block;background:var(--tw-mint);color:var(--tw-green-deep);font-size:13px;font-weight:700;padding:6px 13px;border-radius:99px;margin-bottom:18px;}
.tw-dark .tw-tag{background:var(--tw-dark-card);color:var(--tw-mint-ink);}
.tw-checks{display:flex;flex-direction:column;gap:12px;font-size:15.5px;font-weight:500;margin-top:24px;}
.tw-checks div{display:flex;gap:10px;color:var(--tw-ink);}
.tw-checks div::before{content:"✓";color:var(--tw-green);font-weight:700;flex:0 0 auto;}
.tw-dark .tw-checks div{color:#A8B5AE;}
.tw-dark .tw-checks div::before{color:var(--tw-mint-ink);}
.tw-panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;}
.tw-panel-title{font-family:var(--tw-display);font-weight:700;font-size:16px;}
.tw-dark .tw-panel-title{color:var(--tw-cream);}
.tw-pending{font-size:12px;font-weight:700;color:var(--tw-green);background:var(--tw-mint);padding:4px 10px;border-radius:99px;white-space:nowrap;}
.tw-searchbox{border:1.5px solid var(--tw-green);border-radius:10px;padding:11px 15px;font-size:14px;color:var(--tw-body);display:flex;justify-content:space-between;gap:10px;margin-bottom:16px;}
.tw-searchbox b{color:var(--tw-green);}

/* Messaging mockup */
.tw-msg-body{background:var(--tw-ink);border:1px solid var(--tw-dark-card-br);border-radius:10px;padding:14px 16px;font-size:14px;color:#CFE8DE;line-height:1.55;margin-bottom:14px;}
.tw-chips{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;}
.tw-chip{font-size:12px;font-weight:700;background:var(--tw-green);color:#fff;padding:6px 12px;border-radius:99px;}
.tw-chip--off{background:transparent;border:1px solid var(--tw-dark-card-br);color:#A8B5AE;}
.tw-publish{background:var(--tw-mint-ink);color:var(--tw-ink);font-size:14px;font-weight:700;text-align:center;padding:12px;border-radius:10px;}
/* ---------- Logo lockup: beat Flatsome's #logo rules ---------- */
#logo{width:auto !important;max-width:none !important;margin-right:0;}
#logo a.tw-logo{display:flex !important;align-items:center;gap:11px;text-transform:none;padding:0;line-height:1;}
#logo img{display:none;}
.tw-logo-word{text-transform:none !important;letter-spacing:-0.02em;line-height:1;}
.header-main .flex-row{gap:24px;}

/* Kill the stock top bar entirely */
#top-bar{display:none !important;}

/* Page wrapper inherits the cream page colour */
#content,.page-wrapper,#wrapper,.dark #content{background-color:transparent;}
body#top{background:var(--tw-cream);}
/* ---------- Footer ---------- */
.tw-footer{background:var(--tw-ink);color:#A8B5AE;}
.tw-footer-inner{max-width:1180px;margin:0 auto;padding:56px 32px 40px;display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.tw-footer-logo{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.tw-footer-mark{width:28px;height:28px;border-radius:8px;background:var(--tw-green);display:grid;place-items:center;flex:0 0 28px;}
.tw-footer-mark i{width:11px;height:11px;background:var(--tw-cream);border-radius:2px;transform:rotate(45deg);display:block;}
.tw-footer-word{font-family:var(--tw-display);font-weight:700;font-size:18px;color:var(--tw-cream);}
.tw-footer-desc{font-size:14px;max-width:280px;line-height:1.6;color:#A8B5AE;margin:0;}
.tw-footer-cols{display:flex;gap:64px;font-size:14.5px;flex-wrap:wrap;}
.tw-footer-col{display:flex;flex-direction:column;gap:10px;}
.tw-footer-col b{font-weight:700;color:var(--tw-cream);margin-bottom:2px;}
.tw-footer-col a{color:#A8B5AE;}
.tw-footer-col a:hover{color:var(--tw-mint-ink);text-decoration:none;}
.tw-footer-legal{max-width:1180px;margin:0 auto;padding:0 32px 32px;font-size:13px;color:#5E6B64;}
.footer-wrapper .tw-footer{margin:0;}
@media only screen and (max-width:849px){
  .tw-footer-inner{padding:40px 24px 28px;gap:28px;}
  .tw-footer-cols{gap:40px;}
  .tw-footer-legal{padding:0 24px 24px;}
}
/* Stock absolute footer is replaced by the custom footer block */
.absolute-footer{display:none !important;}

/* Alternating feature rows: panel leads on desktop, copy leads on mobile */
.tw-flip{display:flex;flex-wrap:wrap;}
@media only screen and (max-width:849px){
  .tw-flip > .col:first-child{order:2;}
  .tw-flip > .col:last-child{order:1;}
}
.tw-tag{letter-spacing:0.01em;}

/* Billing toggle: keep both labels on one line at phone widths */
.tw-toggle button{white-space:nowrap;}
@media only screen and (max-width:549px){
  .tw-toggle{display:flex;width:100%;max-width:330px;margin:0 auto;}
  .tw-toggle button{flex:1 1 auto;font-size:13px;padding:10px 10px;}
}