/*
Theme Name: Loopin
Theme URI: https://example.com/loopin
Author: Loopin
Author URI: https://example.com
Description: A landing-page theme for a "forms that deliver straight to WhatsApp" product. Built as a single front-page theme with a custom design system (Fraunces + Inter), an emerald/coral palette, and an animated chat-bubble hero.
Version: 1.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: loopin
*/

/* ===========================================================
   DESIGN TOKENS
   Palette: paper #FAF8F4, ink #16201B, emerald #0F5132,
   teal #1C7C6B, coral #FF6B4A, line #E4DFD3
   Display: 'Fraunces' (characterful serif, used sparingly)
   Body: 'Inter'
   Mono/util: 'JetBrains Mono' (timestamps, labels, eyebrows)
   =========================================================== */

:root{
  --paper: #FAF8F4;
  --paper-dim: #F1EDE3;
  --ink: #16201B;
  --ink-soft: #4A554E;
  --emerald: #0F5132;
  --emerald-deep: #0A3A24;
  --teal: #1C7C6B;
  --coral: #FF6B4A;
  --coral-deep: #E0532E;
  --line: #E4DFD3;
  --white: #FFFFFF;

  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;

  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --shadow-card: 0 1px 2px rgba(22,32,27,.04), 0 8px 24px rgba(22,32,27,.06);
  --shadow-pop: 0 20px 60px rgba(15,81,50,.18);
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
ul{ margin:0; padding:0; list-style:none; }

.container{
  max-width:1180px;
  margin:0 auto;
  padding:0 24px;
}

.eyebrow{
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--teal);
  font-weight:600;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  color:var(--ink);
  margin:0;
  font-weight:600;
  letter-spacing:-0.01em;
}

h1{ font-size:clamp(2.6rem, 5vw, 4.1rem); line-height:1.04; font-weight:500; }
h2{ font-size:clamp(1.9rem, 3.2vw, 2.7rem); line-height:1.12; }
h3{ font-size:1.3rem; }

p{ margin:0 0 1em; color:var(--ink-soft); }

.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:14px 26px;
  border-radius:100px;
  font-weight:600;
  font-size:15px;
  border:1px solid transparent;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn:hover{ transform:translateY(-1px); }

.btn-primary{
  background:var(--coral);
  color:var(--white);
  box-shadow:0 10px 24px rgba(255,107,74,.32);
}
.btn-primary:hover{ background:var(--coral-deep); }

.btn-ghost{
  background:transparent;
  border-color:var(--line);
  color:var(--ink);
}
.btn-ghost:hover{ border-color:var(--ink); }

.btn-light{
  background:var(--white);
  color:var(--emerald-deep);
}

/* ===== Header ===== */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(250,248,244,.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 24px;
}
.logo{
  font-family:var(--font-display);
  font-size:22px;
  font-weight:600;
  display:flex; align-items:center; gap:8px;
}
.logo-mark{
  width:26px;height:26px;border-radius:8px;
  background:linear-gradient(135deg,var(--emerald),var(--teal));
  display:inline-block;
}
.main-nav ul{ display:flex; gap:32px; align-items:center; }
.main-nav a{
  font-size:14.5px; font-weight:500; color:var(--ink-soft);
  transition:color .15s ease;
}
.main-nav a:hover{ color:var(--ink); }
.header-actions{ display:flex; align-items:center; gap:14px; }
.nav-toggle{ display:none; background:none; border:0; }

@media (max-width: 880px){
  .main-nav{ display:none; }
  .nav-toggle{ display:block; }
}

/* ===== Hero ===== */
.hero{
  padding:72px 0 40px;
  overflow:hidden;
}
.hero-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:56px;
  align-items:center;
}
.hero-copy p.lede{
  font-size:18px;
  max-width:480px;
  margin-top:18px;
}
.hero-cta{ display:flex; gap:14px; margin-top:30px; flex-wrap:wrap; }
.hero-note{
  margin-top:16px; font-size:13px; color:var(--ink-soft);
  font-family:var(--font-mono);
}

/* Signature element: phone chat-stream mockup */
.phone-mock{
  position:relative;
  background:var(--emerald-deep);
  border-radius:36px;
  padding:14px;
  width:320px;
  margin:0 auto;
  box-shadow:var(--shadow-pop);
}
.phone-screen{
  background:#0D2B1C;
  border-radius:26px;
  padding:18px 14px 80px;
  min-height:480px;
  position:relative;
  overflow:hidden;
}
.phone-screen::before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 20% 10%, rgba(255,255,255,.05), transparent 40%);
}
.chat-head{
  display:flex; align-items:center; gap:10px;
  color:#E8F3EC; font-size:13px; font-weight:600;
  padding-bottom:14px; margin-bottom:14px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.chat-avatar{
  width:30px;height:30px;border-radius:50%;
  background:linear-gradient(135deg,var(--coral),#ffb199);
}
.bubble{
  max-width:84%;
  padding:10px 13px;
  border-radius:14px;
  font-size:13px;
  margin-bottom:10px;
  opacity:0;
  transform:translateY(8px);
  animation:bubbleIn .5s ease forwards;
}
.bubble.in{
  background:#163826; color:#E8F3EC;
  border-bottom-left-radius:4px;
}
.bubble.out{
  background:var(--coral); color:#fff;
  margin-left:auto;
  border-bottom-right-radius:4px;
}
.bubble b{ display:block; font-size:11px; opacity:.7; margin-bottom:2px; font-family:var(--font-mono); font-weight:500;}
.bubble:nth-child(2){ animation-delay:.2s; }
.bubble:nth-child(3){ animation-delay:.9s; }
.bubble:nth-child(4){ animation-delay:1.6s; }
.bubble:nth-child(5){ animation-delay:2.3s; }
@keyframes bubbleIn{ to{ opacity:1; transform:translateY(0); } }

@media (prefers-reduced-motion: reduce){
  .bubble{ animation:none; opacity:1; transform:none; }
}

@media (max-width: 940px){
  .hero-grid{ grid-template-columns:1fr; }
  .phone-mock{ margin-top:20px; }
}

/* ===== Trust strip ===== */
.trust{
  padding:34px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.trust p{ text-align:center; margin-bottom:18px; }
.trust-logos{
  display:flex; flex-wrap:wrap; gap:36px;
  justify-content:center; align-items:center;
  font-family:var(--font-display);
  color:var(--ink-soft);
  opacity:.6;
  font-size:18px;
}

/* ===== How it works ===== */
.how{ padding:96px 0; }
.section-head{ max-width:620px; margin-bottom:56px; }
.section-head .eyebrow{ margin-bottom:10px; display:block; }

.steps{
  display:grid; grid-template-columns:repeat(3,1fr); gap:32px;
  counter-reset: step;
}
.step{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:30px 26px;
  position:relative;
}
.step-num{
  font-family:var(--font-mono);
  font-size:13px; color:var(--teal); font-weight:700;
  margin-bottom:14px;
}
.step h3{ margin-bottom:8px; }
.step p{ margin:0; font-size:14.5px; }

@media (max-width:880px){ .steps{ grid-template-columns:1fr; } }

/* ===== Compare ===== */
.compare{ padding:0 0 96px; }
.compare-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:24px;
}
.compare-card{
  border-radius:var(--radius-md);
  padding:32px;
}
.compare-card.bad{ background:var(--paper-dim); border:1px solid var(--line); }
.compare-card.good{ background:var(--emerald-deep); color:#fff; }
.compare-card h3{ margin-bottom:18px; }
.compare-card.good h3{ color:#fff; }
.compare-card li{
  display:flex; gap:10px; padding:9px 0;
  font-size:14.5px;
  border-bottom:1px solid rgba(0,0,0,.06);
}
.compare-card.good li{ border-bottom-color:rgba(255,255,255,.1); color:#E8F3EC; }
.compare-card.bad li::before{ content:"–"; color:#B7493B; font-weight:700; }
.compare-card.good li::before{ content:"✓"; color:var(--coral); font-weight:700; }

@media (max-width:780px){ .compare-grid{ grid-template-columns:1fr; } }

/* ===== Templates ===== */
.templates{ padding:0 0 96px; }
.template-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}
.template-card{
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  overflow:hidden;
  background:var(--white);
  transition:box-shadow .2s ease, transform .2s ease;
}
.template-card:hover{ box-shadow:var(--shadow-card); transform:translateY(-3px); }
.template-thumb{
  height:140px;
  background:linear-gradient(135deg,var(--paper-dim),var(--line));
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-mono); font-size:12px; color:var(--ink-soft);
  letter-spacing:.08em; text-transform:uppercase;
}
.template-body{ padding:20px; }
.template-body h3{ font-size:17px; margin-bottom:6px; }
.template-body p{ font-size:14px; margin-bottom:14px; }
.template-link{ font-size:13.5px; font-weight:600; color:var(--teal); }

@media (max-width:880px){ .template-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .template-grid{ grid-template-columns:1fr; } }

/* ===== Testimonials ===== */
.testimonials{ padding:0 0 96px; }
.testi-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}
.testi-card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:26px;
}
.testi-card p{ font-size:14.5px; color:var(--ink); margin-bottom:18px; }
.testi-who{ display:flex; align-items:center; gap:10px; }
.testi-avatar{
  width:36px;height:36px;border-radius:50%;
  background:linear-gradient(135deg,var(--teal),var(--emerald));
}
.testi-name{ font-size:13.5px; font-weight:600; }
.testi-role{ font-size:12.5px; color:var(--ink-soft); }

@media (max-width:880px){ .testi-grid{ grid-template-columns:1fr; } }

/* ===== FAQ ===== */
.faq{ padding:0 0 96px; }
.faq-list{ max-width:760px; }
.faq-item{
  border-bottom:1px solid var(--line);
}
.faq-q{
  width:100%; text-align:left; background:none; border:0;
  padding:20px 0; display:flex; justify-content:space-between; align-items:center;
  font-family:var(--font-display); font-size:18px; color:var(--ink);
}
.faq-q .plus{ font-family:var(--font-mono); font-size:18px; color:var(--coral); transition:transform .2s ease; }
.faq-item.open .plus{ transform:rotate(45deg); }
.faq-a{
  max-height:0; overflow:hidden; transition:max-height .25s ease;
}
.faq-a p{ padding-bottom:18px; font-size:14.5px; }

/* ===== Final CTA ===== */
.final-cta{
  background:var(--emerald-deep);
  color:#fff;
  border-radius:var(--radius-lg);
  margin:0 24px 96px;
  padding:72px 40px;
  text-align:center;
}
.final-cta h2{ color:#fff; max-width:600px; margin:0 auto 14px; }
.final-cta p{ color:#CFE3D6; max-width:480px; margin:0 auto 30px; }
.final-cta .hero-cta{ justify-content:center; }

.signup-form{
  max-width:420px;
  margin:0 auto;
  display:grid;
  gap:12px;
  text-align:left;
}
.signup-form input{
  width:100%;
  padding:13px 16px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.08);
  color:#fff;
  font-family:var(--font-body);
  font-size:14.5px;
}
.signup-form input::placeholder{ color:#B9D2C1; }
.signup-form input:focus-visible{ outline:2px solid var(--coral); outline-offset:2px; }
.signup-form button{ margin-top:4px; justify-content:center; }
.form-msg{
  max-width:420px; margin:0 auto 18px; padding:12px 16px;
  border-radius:10px; font-size:14px; text-align:left;
}
.form-msg.success{ background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.25); }
.form-msg.error{ background:rgba(224,83,46,.18); color:#fff; border:1px solid var(--coral); }

/* ===== Footer ===== */
.site-footer{
  border-top:1px solid var(--line);
  padding:64px 0 32px;
}
.footer-grid{
  display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:32px;
  margin-bottom:48px;
}
.footer-brand p{ max-width:280px; font-size:14px; }
.footer-col h4{
  font-family:var(--font-mono); font-size:12px; text-transform:uppercase;
  letter-spacing:.08em; color:var(--ink-soft); margin-bottom:14px; font-weight:600;
}
.footer-col li{ margin-bottom:10px; }
.footer-col a{ font-size:14px; color:var(--ink-soft); }
.footer-col a:hover{ color:var(--ink); }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center;
  border-top:1px solid var(--line); padding-top:24px;
  font-size:13px; color:var(--ink-soft); flex-wrap:wrap; gap:12px;
}

@media (max-width:780px){ .footer-grid{ grid-template-columns:1fr 1fr; } }

/* Focus visibility */
a:focus-visible, button:focus-visible{
  outline:2px solid var(--coral);
  outline-offset:2px;
}
