/* ==========================================================================
   Just One Thought — "Luxe" layer (v3.0)
   Loaded LAST on public pages and the sign-in / sign-up screens only.
   Purely visual and additive: no markup, copy, routes or app screens change.
   Self-hosted fonts, CSP-safe (no inline styles, no external requests).
   To roll back: remove the luxe.css <link> line in views/head.php.
   ========================================================================== */

/* ---------- fonts (self-hosted, latin subset) ---------- */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin-500-italic.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/inter-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/inter-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/inter-latin-600-normal.woff2) format('woff2')}

/* ---------- design tokens ---------- */
:root{
  --serif:'Cormorant Garamond','Iowan Old Style',Georgia,'Times New Roman',serif;
  --serif-2:'Cormorant Garamond','Iowan Old Style',Georgia,'Times New Roman',serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;

  --c-green:#003301;--c-green-2:#0a4a0e;--c-green-3:#125c17;--c-pink:#ec86cb;
  --c-ink:#14201a;
  --c-ink-soft:#2c3a31;
  --c-muted:#5f6b62;
  --c-muted-2:#7d887f;
  --c-paper:#fcf9f5;
  --c-paper-2:#f7f1ea;
  --c-line:#ebe2d8;
  --c-line-strong:#dccfbf;
  --c-pink-deep:#9c2f6e;
  --c-pink-soft:#fbeef4;

  --lx-gold:#b8975a;
  --lx-gold-deep:#8a6a30;
  --lx-gold-soft:#dcc592;
  --lx-ease:cubic-bezier(.22,.7,.2,1);
  --lx-deep:radial-gradient(110% 130% at 10% 0%,#0f4a16 0%,#06300b 46%,#021a05 100%);

  --shadow-xs:0 1px 2px rgba(20,32,26,.04);
  --shadow-sm:0 2px 8px rgba(20,32,26,.04),0 1px 2px rgba(20,32,26,.03);
  --shadow-md:0 24px 48px -28px rgba(10,40,16,.28),0 2px 6px rgba(20,32,26,.03);
  --shadow-lg:0 50px 90px -48px rgba(10,40,16,.42),0 10px 30px -18px rgba(20,32,26,.14);
}

/* ---------- base typography ---------- */
body.marketing{font-family:var(--sans);font-size:15px;line-height:1.75;font-feature-settings:'kern','liga';text-rendering:optimizeLegibility;
  background:
    radial-gradient(900px 520px at 100% 0,rgba(236,134,203,.06),transparent 62%),
    radial-gradient(800px 520px at 0 38%,rgba(184,151,90,.06),transparent 62%),
    var(--c-paper)}
body.marketing ::selection{background:#ecdcb8;color:#2a1f08}
body.marketing h1,body.marketing h2,body.marketing h3{font-family:var(--serif);font-weight:500;color:var(--c-ink)}
body.marketing .display{font-family:var(--serif);font-weight:500;letter-spacing:-.018em;line-height:1.02;font-size:clamp(40px,5.2vw,74px)}
body.marketing .display-sm{font-family:var(--serif);font-weight:500;letter-spacing:-.012em;line-height:1.08;font-size:clamp(32px,3.5vw,48px)}
body.marketing em,body.marketing h1.display em,body.marketing h2.display em,body.marketing .display-sm em{font-style:italic;font-weight:500}
body.marketing .hero-copy .display{font-size:clamp(44px,5.1vw,72px);line-height:1}
body.marketing .lede{font-size:clamp(15px,1.2vw,17px);line-height:1.85;color:var(--c-muted);font-weight:400}
body.marketing .tiny,body.marketing .muted-note{font-size:12px}
body.marketing .band{padding:clamp(70px,9vw,128px) 0}
body.marketing .band.tight{padding:clamp(44px,6vw,80px) 0}
body.marketing .band.surface{background:linear-gradient(180deg,#f9f3ec,#f5ede4)}

/* kickers: small gold caps with a hairline */
.kicker{font-size:10.5px;letter-spacing:.26em;font-weight:600;color:var(--lx-gold-deep)}
.kicker:before{width:28px;opacity:.7;background:var(--lx-gold)}
.kicker.on-dark,.insight-card .kicker,.cta .kicker,.lux .kicker,.band.dark .kicker{color:var(--lx-gold-soft)}
.kicker.on-dark:before,.insight-card .kicker:before,.cta .kicker:before,.lux .kicker:before,.band.dark .kicker:before{background:var(--lx-gold-soft)}
.hero-copy .kicker{background:rgba(255,255,255,.7);border-color:rgba(184,151,90,.4);padding:8px 16px 8px 14px}
.hero-copy .kicker:before{background:var(--lx-gold);box-shadow:0 0 0 4px rgba(184,151,90,.18)}

/* section heads: centred ornament */
.head.center .display:after,.head.center .display-sm:after{
  width:72px;height:9px;margin:22px auto 0;border-radius:0;
  background:
    linear-gradient(90deg,transparent,var(--lx-gold)) left center/30px 1px no-repeat,
    linear-gradient(270deg,transparent,var(--lx-gold)) right center/30px 1px no-repeat,
    radial-gradient(circle,var(--lx-gold) 0 2.2px,transparent 2.6px) center/9px 9px no-repeat}

/* ---------- buttons ---------- */
body.marketing .btn,.btn{font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:16px 28px;
  background:linear-gradient(165deg,#0b4012,#032a08);border:1px solid #032a08;
  box-shadow:0 14px 26px -14px rgba(3,42,8,.7),inset 0 0 0 1px rgba(220,197,146,.28),inset 0 1px 0 rgba(255,255,255,.1)}
body.marketing .btn:hover{background:linear-gradient(165deg,#12521a,#06330c);box-shadow:0 18px 32px -14px rgba(3,42,8,.75),inset 0 0 0 1px rgba(220,197,146,.5)}
.btn-lg{padding:18px 32px;font-size:11.5px}
.btn-sm{padding:11px 20px;font-size:10.5px;letter-spacing:.14em}
body.marketing .btn-ghost{background:rgba(255,255,255,.65);color:var(--c-green);border:1px solid var(--lx-gold);box-shadow:none;backdrop-filter:blur(4px)}
body.marketing .btn-ghost:hover{background:#fff;border-color:var(--lx-gold-deep);color:var(--c-green)}
body.marketing .btn-pink{background:linear-gradient(165deg,#e9bf86,#c9a05c);border-color:#b8975a;color:#2b1d05;
  box-shadow:0 14px 28px -16px rgba(138,106,48,.8),inset 0 1px 0 rgba(255,255,255,.4)}
body.marketing .btn-pink:hover{background:linear-gradient(165deg,#f0cb97,#d3aa66);color:#2b1d05}
.insight-card .btn,.cta .btn,.lux .btn,.band.dark .btn{background:linear-gradient(165deg,#ecc88f,#c9a05c);border-color:#b8975a;color:#2b1d05;
  box-shadow:0 16px 30px -16px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.4)}
.insight-card .btn:hover,.cta .btn:hover,.lux .btn:hover,.band.dark .btn:hover{background:linear-gradient(165deg,#f3d4a1,#d6ad69);color:#2b1d05}
body.marketing .band.dark .btn,body.marketing .cta .btn,body.marketing .lux .btn,body.marketing .insight-card .btn{color:#2b1d05}
.link-arrow,body.marketing a.link-arrow{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid var(--lx-gold)}
body.marketing a.link-arrow:hover{border-color:var(--lx-gold-deep);color:var(--lx-gold-deep)}
body.marketing a.link-arrow.u-link-light{border-color:rgba(220,197,146,.5)}
body.marketing a.link-arrow.u-link-light:hover{color:var(--lx-gold-soft)}
body.marketing :focus-visible{outline:2px solid var(--lx-gold-deep);outline-offset:3px}

/* ---------- masthead ---------- */
.mast{background:rgba(252,249,245,.86);border-bottom:1px solid rgba(184,151,90,.28)}
.mast.stuck{background:rgba(252,249,245,.96);box-shadow:0 14px 34px -26px rgba(10,40,16,.5)}
.mast-inner{padding-top:14px;padding-bottom:14px}
.mast .brand-logo{height:50px}
.mast-brand span{font-size:9px;letter-spacing:.24em;color:var(--lx-gold-deep);border-left-color:rgba(184,151,90,.45)}
.mast-nav a{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--c-ink-soft);padding:10px 12px}
.mast-nav a:hover,.mast-nav a[aria-current="page"]{background:transparent;color:var(--c-green)}
.mast-nav a:after{height:1px;background:var(--lx-gold);bottom:6px}
.mast-cta .login{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:500}
.mast-more summary{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;border-color:var(--lx-gold);background:rgba(255,255,255,.7)}
.mast-more summary:after{color:var(--lx-gold-deep)}
.nav-panel{border:1px solid var(--c-line-strong);box-shadow:var(--shadow-lg);border-radius:18px}
.nav-panel a{letter-spacing:.06em}
.scroll-bar{background:linear-gradient(90deg,var(--lx-gold),var(--lx-gold-soft) 60%,var(--c-pink));height:2px}

/* ---------- hero ---------- */
.hero-v2{padding-top:clamp(52px,6.5vw,100px)}
.hero-v2:before{background:radial-gradient(circle at 60% 40%,rgba(236,134,203,.16),rgba(236,134,203,0) 62%)}
.hero-v2:after{background:radial-gradient(circle at 50% 50%,rgba(184,151,90,.14),rgba(184,151,90,0) 65%)}
.hero-trust{font-size:12px;letter-spacing:.02em}
.hero-trust li:before{background-color:#f6efe2;box-shadow:inset 0 0 0 1px rgba(184,151,90,.45)}
.sheet{border:1px solid rgba(184,151,90,.25);border-radius:4px;background:#fffefc}
.sheet-back{background:linear-gradient(160deg,#fffefc,#f8f0e6)}
.sheet-top{border-bottom-color:rgba(184,151,90,.3)}
.sheet-top .sb{font-size:15px}
.sheet-kicker{color:var(--lx-gold-deep);letter-spacing:.22em}
.sheet-title{font-size:31px;font-weight:500;line-height:1.08}
.sheet-text{font-size:14.5px;line-height:1.7;color:#4a574d}
.sheet-moods span{border-color:rgba(184,151,90,.4)}
.sheet-moods span.on{background:#06300b;border-color:#06300b}
.float-chip{border:1px solid rgba(184,151,90,.3);border-radius:12px;box-shadow:var(--shadow-md);background:rgba(255,255,255,.92);backdrop-filter:blur(6px)}
.float-chip strong{font-size:24px;font-weight:500}
.float-chip small{letter-spacing:.14em}

/* ---------- strips, stats, marquee ---------- */
.trust-strip{background:linear-gradient(180deg,#06300b,#021a05);border-top:1px solid rgba(220,197,146,.35);border-bottom:1px solid rgba(220,197,146,.35)}
.trust-lead{font-size:19px;font-weight:500}
.trust-lead em,.trust-strip em{color:var(--lx-gold-soft)}
.trust-inner span:before{color:var(--lx-gold-soft)}
.stats-v2 strong{font-weight:500;font-size:clamp(38px,4.6vw,58px);letter-spacing:-.015em;background:linear-gradient(180deg,#0b4012,#1a6a22);-webkit-background-clip:text;background-clip:text}
.stats-v2 span{letter-spacing:.04em}
.marquee{background:linear-gradient(180deg,#fffefc,#f9f3ec);border-block:1px solid var(--c-line)}
.marquee span{font-size:clamp(19px,1.9vw,25px);font-weight:500;color:var(--c-ink-soft)}
.marquee span:after{color:var(--lx-gold);content:'◆';font-size:8px}

/* ---------- cards ---------- */
.feat,.prompt-card,.quote-card,.entry-paper,.tpl,.rr-card,.explore-card,.contact-card,.pv-card,.plan,.compare-wrap,.mock,.card{
  border-color:var(--c-line);box-shadow:var(--shadow-sm);background:#fffefc}
.feat{border-radius:18px;padding:30px 28px 28px}
.feat:before{background:linear-gradient(90deg,var(--lx-gold),var(--lx-gold-soft) 55%,transparent)}
.feat:hover,.prompt-card:hover,.rr-card:hover,.tpl:hover,.explore-card:hover,.plan:hover{box-shadow:var(--shadow-md);border-color:rgba(184,151,90,.55)}
.feat .ico{border-radius:50%;background:linear-gradient(160deg,#fffaf0,#f5ead6);border:1px solid rgba(184,151,90,.45);color:#06300b}
.feat h3{font-family:var(--serif);font-size:23px;font-weight:600;letter-spacing:-.005em}
.feat p,.prompt-card p+*{font-size:13.5px}
.feat .num{color:var(--lx-gold-soft);font-size:17px}
.feat .tags span{background:#faf4ea;border-color:var(--c-line);letter-spacing:.1em}
.prompt-card p{font-size:18px;line-height:1.45}
.prompt-card .cat:before{color:var(--lx-gold-deep)}
.prompt-card .qmark{color:#efe3cb;font-size:44px}
.quote-card{border-radius:18px;padding:30px 28px}
.quote-card p{font-size:19px;line-height:1.55;color:var(--c-ink-soft)}
.quote-card cite,.entry-paper .meta{letter-spacing:.14em}
.entry-paper h3{font-size:23px}
.entry-paper p{font-size:15px}
.tour-copy h3{font-weight:500;font-size:clamp(28px,3vw,38px)}
.mock{border-color:rgba(184,151,90,.28);box-shadow:var(--shadow-lg)}
.mock-editor .h{font-size:19px}

/* dark panels share one deep forest finish with a gold keyline */
body.marketing .band.dark,.lux{background:var(--lx-deep)}
.insight-card,.cta,.plan.featured{background:var(--lx-deep);border:1px solid rgba(220,197,146,.3);
  box-shadow:0 50px 90px -48px rgba(2,26,5,.85),inset 0 0 0 1px rgba(220,197,146,.08)}
.insight-card h2,.cta h2{font-weight:500;letter-spacing:-.012em;font-size:clamp(34px,4.2vw,56px)}
.insight-card h2{font-size:clamp(32px,3.6vw,48px)}
.insight-card em,.cta em,.lux em,.band.dark em{color:var(--lx-gold-soft)}
body.marketing .insight-card em,body.marketing .cta em,body.marketing .lux em,body.marketing .band.dark em,body.marketing .insight-card h2 em{color:var(--lx-gold-soft);-webkit-text-fill-color:var(--lx-gold-soft);background:none}
.insight-chart{border-color:rgba(220,197,146,.22);background:rgba(255,255,255,.04)}
.insight-chart .rows i{background:linear-gradient(180deg,#efd9ad,#c9a05c)}
.insight-chart .rows i:nth-child(7){background:linear-gradient(180deg,#9fe0a8,#3f9d4a)}
.cta:before{background:radial-gradient(circle,rgba(220,197,146,.22),transparent 62%)}
.cta p,.insight-card p{font-size:14.5px;line-height:1.85}

/* ---------- pricing ---------- */
.plan{border-radius:22px;padding:36px 30px}
.plan h3{font-size:28px;font-weight:500}
.plan .amount{font-size:58px;font-weight:500;letter-spacing:-.02em}
.plan .p-kicker{letter-spacing:.22em;color:var(--lx-gold-deep)}
.plan .badge{background:linear-gradient(120deg,#ecc88f,#c9a05c);color:#2b1d05;letter-spacing:.2em;border-radius:999px}
.plan li:before{color:var(--lx-gold-deep)}
.plan.featured .p-kicker{color:var(--lx-gold-soft)}
.plan.featured li:before{color:var(--lx-gold-soft)}
.plan.featured .amount,.plan.featured h3{color:#fff}

/* ---------- long-form pages ---------- */
.art-body p{font-size:clamp(17px,1.4vw,19.5px);line-height:1.85}
.art-body p.drop:first-letter,.prose p.drop:first-letter{color:var(--lx-gold-deep);font-weight:500}
.pull,.quote-banner-v2 p{font-weight:500;font-style:italic}
.pull{border-left-color:var(--lx-gold)}
.rr-lead,.try-box,.sec-facts,.honest-col{border-color:var(--c-line-strong)}
.rr-lead strong{font-weight:500}
.rr-glyph,.uc-art span{color:var(--lx-gold-soft)}
.steps-v3 li:before{color:var(--lx-gold-deep)}
.chip-btn{letter-spacing:.1em;text-transform:uppercase;font-size:10.5px}
.chip-btn.on{background:#06300b;border-color:#06300b}
.prose h2{font-weight:500;font-size:clamp(28px,2.8vw,36px)}
.prose h3{font-weight:600;font-size:23px}
.faq2 summary{font-family:var(--serif);font-size:20px;font-weight:600}
.compare th{letter-spacing:.14em;text-transform:uppercase;font-size:10.5px}

/* ---------- footer ---------- */
.foot{background:radial-gradient(90% 120% at 100% 0,#0b4212,transparent 58%),linear-gradient(180deg,#04260a,#011403)}
.foot:before{background:linear-gradient(90deg,transparent,var(--lx-gold),transparent);opacity:.9}
.foot-col h4{font-family:var(--sans);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--lx-gold-soft);font-weight:600}
.foot-col a{font-size:13px;letter-spacing:.01em}
.foot-col a:hover{color:var(--lx-gold-soft)}
.foot-brand p{font-family:var(--serif);font-size:19px;font-style:italic;line-height:1.5}
.foot-seal{border-color:rgba(220,197,146,.45);color:var(--lx-gold-soft);letter-spacing:.2em;text-transform:uppercase;font-size:9.5px}
.foot-bottom{border-top-color:rgba(220,197,146,.18)}
.to-top{border-color:var(--lx-gold);color:var(--lx-gold-deep)}
.to-top:hover{background:#fbf4e6}

/* ---------- scroll reveal (progressive; JS adds .lx-on) ---------- */
.lx-on .lx-r{opacity:0}
.lx-on .lx-r.lx-in{opacity:1;animation:lx-rise .95s var(--lx-ease) backwards;animation-delay:calc(var(--i,0) * 80ms)}
@keyframes lx-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.lx-on .lx-r{opacity:1}.lx-on .lx-r.lx-in{animation:none}}
@media print{.lx-on .lx-r{opacity:1}}

/* ---------- sign-in / sign-up / forgot / PIN ---------- */
.auth-layout{font-family:var(--sans);background:var(--c-paper)}
.auth-story{background:
    radial-gradient(70% 50% at 100% 0,rgba(236,134,203,.16),transparent 70%),
    linear-gradient(160deg,#fbf4ec,#f6eadf 55%,#efe2cf);
  border-right:1px solid rgba(184,151,90,.35)}
.auth-story:after{border-color:rgba(184,151,90,.7);box-shadow:0 0 0 26px rgba(184,151,90,.07),0 0 0 62px rgba(184,151,90,.05)}
.auth-story .brand-logo{height:70px;width:auto}
.auth-story .eyebrow,.auth-card .eyebrow{color:var(--lx-gold-deep);letter-spacing:.26em;font-weight:600;font-size:10px}
.auth-story h1{font-family:var(--serif);font-weight:500;font-size:clamp(46px,5vw,76px);line-height:1.02;letter-spacing:-.018em;color:var(--c-ink)}
.auth-story h1 em{color:var(--c-pink-deep);font-weight:500}
.auth-story>div>p:not(.eyebrow){font-size:15px;color:var(--c-muted)}
.auth-form-area{background:var(--c-paper)}
.auth-card{max-width:400px}
.auth-card h2{font-family:var(--serif);font-weight:500;font-size:46px;letter-spacing:-.012em}
.auth-card>p.muted{font-size:14px}
.auth-card label{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--c-ink-soft)}
.auth-card input{font-size:14.5px;padding:14px 16px;border-radius:10px;border:1px solid var(--c-line-strong);background:#fffefc;letter-spacing:0;text-transform:none;font-weight:400}
.auth-card input:focus{border-color:var(--lx-gold);box-shadow:0 0 0 4px rgba(184,151,90,.18)}
.auth-card .button,.auth-card button.button{font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;border-radius:999px;padding:17px 26px;
  background:linear-gradient(165deg,#0b4012,#032a08);border:1px solid #032a08;
  box-shadow:0 16px 28px -16px rgba(3,42,8,.75),inset 0 0 0 1px rgba(220,197,146,.3);transition:box-shadow .25s,transform .25s}
.auth-card .button:hover{background:linear-gradient(165deg,#12521a,#06330c);transform:translateY(-1px)}
.auth-links{font-size:12.5px}
.auth-links a{color:var(--c-green);text-decoration-color:var(--lx-gold)}
.auth-back{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase}
.auth-footer,.auth-story .fine{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--c-muted)}
.pin-input{font-family:var(--sans)}
.form-feedback{border-radius:10px}

/* ---------- small screens ---------- */
@media(max-width:720px){
  body.marketing{font-size:15px}
  body.marketing .hero-copy .display{font-size:clamp(42px,12.5vw,58px)}
  body.marketing .display{font-size:clamp(36px,10.5vw,48px)}
  body.marketing .display-sm{font-size:clamp(30px,8.8vw,38px)}
  .btn,body.marketing .btn{padding:17px 24px}
  .mast .brand-logo{height:42px}
  .plan .amount{font-size:52px}
  .auth-card h2{font-size:40px}
}

/* ---------- finishing touches ---------- */
.foot-brand .brand-logo{background:#fffefc;border:1px solid rgba(220,197,146,.5);border-radius:12px}
body.marketing .insight-card .kicker,body.marketing .cta .kicker,body.marketing .lux .kicker,body.marketing .band.dark .kicker,body.marketing .kicker.on-dark{color:var(--lx-gold-soft)}
