:root {
  --teal-900:#0b2b2a; --teal-800:#0f3b3a; --teal-700:#17504c; --teal-600:#1f6a63;
  --gold:#c9973f; --gold-soft:#e8c888; --cream:#f6efe0; --paper:#fdfaf3; --white:#ffffff;
  --ink:#16292a; --muted:#566a68; --line:#e6dfcd;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --shadow: 0 18px 40px -18px rgba(11,43,42,.35);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font-family:var(--sans); color:var(--ink); background:var(--paper); line-height:1.65; -webkit-font-smoothing:antialiased; }
a { color:var(--teal-600); }
.wrap { max-width:1080px; margin:0 auto; padding:0 24px; }

/* header */
header { position:sticky; top:0; z-index:20; background:rgba(253,250,243,.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
header .wrap { display:flex; justify-content:space-between; align-items:center; padding-top:14px; padding-bottom:14px; }
.brand { display:flex; align-items:center; gap:10px; font-family:var(--serif); font-weight:700; font-size:1.15rem; color:var(--teal-800); letter-spacing:.2px; text-decoration:none; }
.brand img { width:32px; height:32px; display:block; }
nav { display:flex; align-items:center; gap:6px; }
nav a { color:var(--muted); text-decoration:none; margin-left:18px; font-size:.95rem; }
nav a:hover { color:var(--teal-600); }
nav a.nav-cta { background:var(--teal-800); color:var(--cream); padding:8px 16px; border-radius:999px; font-weight:600; }
nav a.nav-cta:hover { background:var(--teal-700); color:var(--white); }

/* buttons */
.btn { display:inline-block; background:var(--gold); color:var(--teal-900); padding:14px 26px; border-radius:999px; text-decoration:none; font-weight:700; letter-spacing:.2px; transition:transform .15s ease, box-shadow .15s ease, background .15s ease; box-shadow:0 8px 20px -10px rgba(201,151,63,.9); }
.btn:hover { transform:translateY(-2px); background:#d7a74d; }
.btn.alt { background:transparent; color:var(--cream); border:1.5px solid rgba(246,239,224,.55); box-shadow:none; margin-left:10px; }
.btn.alt:hover { background:rgba(246,239,224,.1); }
.btn.dark { background:var(--teal-800); color:var(--cream); box-shadow:none; }
.btn.dark:hover { background:var(--teal-700); }

/* hero */
.hero-band { background:radial-gradient(1200px 520px at 85% -10%, rgba(201,151,63,.22), transparent 60%), linear-gradient(160deg, var(--teal-900), var(--teal-700)); color:var(--cream); }
.hero { display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:center; padding:84px 0 92px; }
.eyebrow { display:inline-block; font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-soft); border:1px solid rgba(232,200,136,.4); padding:6px 14px; border-radius:999px; margin-bottom:22px; }
.hero h1 { font-family:var(--serif); font-size:3rem; line-height:1.1; margin:0 0 20px; font-weight:700; }
.hero h1 em { font-style:italic; color:var(--gold-soft); }
.hero p { font-size:1.1rem; color:rgba(246,239,224,.82); max-width:560px; margin:0 0 30px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:10px 0; align-items:center; }

/* illustrative chat card */
.chat { background:var(--paper); color:var(--ink); border-radius:20px; padding:22px; box-shadow:var(--shadow); position:relative; }
.chat-label { font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; }
.bubble { padding:12px 16px; border-radius:16px; font-size:.95rem; margin-bottom:12px; max-width:92%; line-height:1.5; }
.bubble.in { background:var(--cream); border:1px solid var(--line); border-bottom-left-radius:4px; }
.bubble.out { background:var(--teal-800); color:var(--cream); margin-left:auto; border-bottom-right-radius:4px; }
.chat-foot { font-size:.75rem; color:var(--muted); margin-top:4px; }
.chat::after { content:""; position:absolute; inset:auto -14px -14px auto; width:90px; height:90px; background:var(--gold); border-radius:22px; z-index:-1; opacity:.9; }

/* trust strip */
.strip { background:var(--cream); border-bottom:1px solid var(--line); }
.strip .wrap { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding-top:26px; padding-bottom:26px; }
.strip div { text-align:center; }
.strip strong { display:block; font-family:var(--serif); font-size:1.15rem; color:var(--teal-800); }
.strip span { font-size:.9rem; color:var(--muted); }

/* sections */
section { padding:76px 0; }
section + section { border-top:1px solid var(--line); }
.kicker { font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); font-weight:700; margin:0 0 10px; }
section h2 { font-family:var(--serif); margin:0 0 18px; font-size:2.1rem; line-height:1.2; color:var(--teal-800); }
.lead { font-size:1.1rem; color:var(--muted); max-width:720px; }
.note { color:var(--muted); font-size:.92rem; }
.callout { background:var(--cream); border-left:4px solid var(--gold); padding:16px 20px; border-radius:0 12px 12px 0; color:var(--muted); font-size:.95rem; margin-top:24px; }

/* offers */
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:24px; margin-top:36px; }
.card { position:relative; background:var(--white); border:1px solid var(--line); border-radius:20px; padding:32px 28px; display:flex; flex-direction:column; transition:transform .2s ease, box-shadow .2s ease; }
.card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.card.featured { background:linear-gradient(180deg, var(--teal-800), var(--teal-900)); color:var(--cream); border-color:var(--teal-800); box-shadow:var(--shadow); }
.badge { position:absolute; top:-13px; left:28px; background:var(--gold); color:var(--teal-900); font-size:.72rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; padding:6px 14px; border-radius:999px; }
.card h3 { font-family:var(--serif); margin:0 0 6px; font-size:1.3rem; }
.price { font-family:var(--serif); font-size:2.6rem; font-weight:700; color:var(--teal-800); margin:8px 0 16px; line-height:1; }
.price small { font-family:var(--sans); font-size:.9rem; font-weight:400; color:var(--muted); }
.card.featured .price { color:var(--gold-soft); }
.card.featured .price small { color:rgba(246,239,224,.7); }
.card ul { list-style:none; padding:0; margin:0 0 26px; flex:1; }
.card li { padding:7px 0 7px 28px; position:relative; color:var(--muted); font-size:.96rem; }
.card.featured li { color:rgba(246,239,224,.88); }
.card li::before { content:""; position:absolute; left:0; top:13px; width:14px; height:8px; border-left:2.5px solid var(--gold); border-bottom:2.5px solid var(--gold); transform:rotate(-45deg); }
.card .btn { text-align:center; margin:0; }
.card:not(.featured) .btn { background:var(--teal-800); color:var(--cream); box-shadow:none; }
.card:not(.featured) .btn:hover { background:var(--teal-700); }

/* steps */
.steps { list-style:none; counter-reset:step; padding:0; margin:36px 0 0; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:22px; }
.steps li { counter-increment:step; background:var(--white); border:1px solid var(--line); border-radius:16px; padding:56px 22px 22px; position:relative; color:var(--muted); font-size:.96rem; }
.steps li::before { content:counter(step); position:absolute; top:18px; left:22px; width:30px; height:30px; border-radius:50%; background:var(--teal-800); color:var(--gold-soft); font-family:var(--serif); font-weight:700; display:flex; align-items:center; justify-content:center; }

/* contact band */
.cta-band { background:linear-gradient(160deg, var(--teal-900), var(--teal-700)); color:var(--cream); border-radius:24px; padding:52px 40px; text-align:center; }
.cta-band h2 { color:var(--cream); }
.cta-band p { color:rgba(246,239,224,.82); max-width:560px; margin:0 auto 24px; }
.cta-band a:not(.btn) { color:var(--gold-soft); }
.cta-band .btn.alt { margin-left:10px; }

/* footer */
footer { background:var(--teal-900); color:rgba(246,239,224,.7); padding:34px 0 44px; font-size:.9rem; }
footer a { color:var(--gold-soft); }

/* legal pages */
.doc { padding:56px 0; max-width:720px; }
.doc h1 { font-family:var(--serif); color:var(--teal-800); margin-top:0; }
.doc h2 { font-family:var(--serif); color:var(--teal-800); margin-top:32px; font-size:1.25rem; }

@media (max-width:820px) {
  .hero { grid-template-columns:1fr; padding:56px 0 64px; gap:36px; }
  .hero h1 { font-size:2.3rem; }
  .strip .wrap { grid-template-columns:1fr; gap:12px; }
  section { padding:56px 0; }
  section h2 { font-size:1.7rem; }
  nav a:not(.nav-cta) { display:none; }
  .btn.alt { margin-left:0; }
  .cta-band { padding:40px 22px; }
  .chat::after { display:none; }
}


/* ===== motion layer ===== */
.progress { position:fixed; top:0; left:0; right:0; height:3px; z-index:50; transform-origin:0 50%; transform:scaleX(0); background:linear-gradient(90deg, var(--gold), var(--gold-soft)); pointer-events:none; }
header { transition:box-shadow .25s ease, background .25s ease; }
header.scrolled { box-shadow:0 10px 30px -18px rgba(11,43,42,.45); background:rgba(253,250,243,.97); }

/* hero: drifting light, entrance, animated gold word */
.hero-band { position:relative; overflow:hidden; }
.hero-band .wrap { position:relative; z-index:2; }
.orb { position:absolute; border-radius:50%; filter:blur(60px); pointer-events:none; z-index:1; transform:translate(var(--mx,0), var(--my,0)); transition:transform .6s ease-out; }
.orb-a { width:360px; height:360px; top:-120px; right:6%; background:rgba(201,151,63,.38); animation:drift 14s ease-in-out infinite alternate; }
.orb-b { width:300px; height:300px; bottom:-140px; left:-60px; background:rgba(31,106,99,.7); animation:drift 18s ease-in-out infinite alternate-reverse; }
.orb-c { width:200px; height:200px; top:38%; left:44%; background:rgba(232,200,136,.18); animation:drift 22s ease-in-out infinite alternate; }
@keyframes drift { from { margin:0 0 0 0; } to { margin:34px 0 0 -42px; } }

.hero .eyebrow, .hero h1, .hero p, .hero-actions { animation:rise .8s cubic-bezier(.2,.7,.2,1) both; }
.hero .eyebrow { animation-delay:.05s; }
.hero h1 { animation-delay:.18s; }
.hero p { animation-delay:.32s; }
.hero-actions { animation-delay:.46s; }
@keyframes rise { from { opacity:0; transform:translateY(26px); } to { opacity:1; transform:none; } }

.hero h1 em { background:linear-gradient(100deg, var(--gold-soft) 20%, #fff6dc 45%, var(--gold-soft) 70%); background-size:220% 100%; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; animation:sheen 5s ease-in-out infinite; }
@keyframes sheen { 0%,100% { background-position:100% 0; } 50% { background-position:0 0; } }

/* chat card: floats, bubbles arrive one after another */
.chat { animation:rise .9s .3s cubic-bezier(.2,.7,.2,1) both, bob 6s 1.2s ease-in-out infinite; }
@keyframes bob { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-9px); } }
.chat::after { animation:spin-soft 10s ease-in-out infinite alternate; }
@keyframes spin-soft { from { transform:rotate(0deg) scale(1); } to { transform:rotate(14deg) scale(1.1); } }
.bubble { opacity:0; transform:translateY(12px) scale(.96); animation:pop .5s cubic-bezier(.2,.9,.3,1.2) forwards; }
.bubble.in { animation-delay:.9s; transform-origin:0 100%; }
.bubble.out { animation-delay:2.3s; transform-origin:100% 100%; }
.chat-foot { opacity:0; animation:rise .6s 3.2s ease forwards; }
@keyframes pop { to { opacity:1; transform:none; } }
.bubble.in::after { content:""; display:block; }

/* buttons: shimmer sweep */
.btn { position:relative; overflow:hidden; }
.btn::before { content:""; position:absolute; top:0; left:-70%; width:50%; height:100%; background:linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent); transform:skewX(-20deg); animation:shimmer 4.5s ease-in-out infinite; pointer-events:none; }
.btn.alt::before, .card:not(.featured) .btn::before { opacity:.5; }
@keyframes shimmer { 0%,55% { left:-70%; } 85%,100% { left:130%; } }
.btn:active { transform:translateY(0) scale(.98); }
.nav-cta { transition:transform .15s ease, background .15s ease; }
.nav-cta:hover { transform:translateY(-1px); }

/* featured card: slow glowing edge */
.card.featured { animation:glow 4s ease-in-out infinite; }
@keyframes glow { 0%,100% { box-shadow:var(--shadow), 0 0 0 0 rgba(201,151,63,.0); } 50% { box-shadow:var(--shadow), 0 0 34px 2px rgba(201,151,63,.38); } }
.badge { animation:pulse 2.6s ease-in-out infinite; }
@keyframes pulse { 0%,100% { transform:scale(1); } 50% { transform:scale(1.06); } }

/* checkmarks draw in on hover */
.card li::before { transition:transform .25s ease; }
.card li:hover::before { transform:rotate(-45deg) scale(1.25); }

/* card tilt (set by script.js on fine pointers) */
.card.tilt { transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)); transition:transform .15s ease-out, box-shadow .2s ease; will-change:transform; }
.card.tilt:hover { transform:perspective(900px) translateY(-6px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)); box-shadow:var(--shadow); }

/* steps: number badge pops on hover */
.steps li { transition:transform .2s ease, box-shadow .2s ease; }
.steps li:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.steps li::before { transition:transform .25s cubic-bezier(.2,.9,.3,1.4), background .2s ease; }
.steps li:hover::before { transform:scale(1.2) rotate(-8deg); background:var(--gold); color:var(--teal-900); }

/* trust strip */
.strip strong { transition:color .2s ease, transform .2s ease; }
.strip div:hover strong { color:var(--gold); transform:translateY(-2px); }

/* CTA band drifting light */
.cta-band { position:relative; overflow:hidden; }
.cta-band::before { content:""; position:absolute; width:380px; height:380px; right:-120px; top:-160px; border-radius:50%; background:rgba(201,151,63,.25); filter:blur(50px); animation:drift 16s ease-in-out infinite alternate; pointer-events:none; }
.cta-band > * { position:relative; }

/* scroll reveal (class .js is set in the page head, and removed motion is handled below) */
.js .reveal { opacity:0; transform:translateY(28px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.js .reveal.in { opacity:1; transform:none; }
.js .card.reveal { transform:translateY(28px) scale(.97); }
.js .card.reveal.in { transform:none; }

/* respect reduced motion: everything static and visible */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .bubble, .chat-foot { opacity:1 !important; transform:none !important; }
  .js .reveal { opacity:1 !important; transform:none !important; }
  .hero h1 em { -webkit-text-fill-color:var(--gold-soft); color:var(--gold-soft); background:none; }
  .orb, .progress { display:none; }
}
@media (max-width:820px) {
  .orb-c { display:none; }
  .chat { animation:rise .9s .3s cubic-bezier(.2,.7,.2,1) both; }
}
