/* =========================================================
   PSAS COMMUNITY CSS
   Public landing pages + auth pages
   ========================================================= */

:root{
  --bg:#fbf6ee;
  --bg2:#f4eadc;
  --panel:#ffffff;
  --text:#17251f;
  --muted:#66736d;
  --soft:#f8f2e8;
  --line:rgba(23,37,31,.10);

  --primary:#4cc28a;
  --primary-hover:#3fb67d;
  --primary-ink:#06301e;

  --navy:#173f5f;
  --navy2:#245b82;
  --cream:#fffaf2;

  --shadow:0 16px 40px rgba(23,37,31,.08);
  --shadow-soft:0 8px 24px rgba(23,37,31,.06);
  --radius:22px;
  --max:1120px;

  --wallpaper-url:none;
  --wallpaper-opacity:.06;
  --wallpaper-size:70%;
}

*,
*::before,
*::after{
  box-sizing:border-box;
}

html,
body{
  min-height:100%;
  margin:0;
  padding:0;
}

body{
  font-family:ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:
    radial-gradient(1000px 600px at 10% 0%, #fff 0%, var(--bg) 58%),
    radial-gradient(800px 420px at 92% 18%, rgba(76,194,138,.14) 0%, rgba(76,194,138,0) 60%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%);
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  background-image:var(--wallpaper-url);
  background-repeat:no-repeat;
  background-position:center;
  background-size:var(--wallpaper-size);
  opacity:var(--wallpaper-opacity);
}

img{
  max-width:100%;
  height:auto;
  display:block;
}

a{
  color:inherit;
  text-decoration:none;
}

.site-header,
.site-main,
.site-footer{
  position:relative;
  z-index:1;
}

.container{
  width:100%;
  max-width:var(--max);
  margin:0 auto;
  padding:0 20px;
}

.site-main{
  padding-bottom:46px;
}

/* Header */

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(251,246,238,.84);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

.header-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 0;
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  flex:0 0 auto;
  padding:7px 8px;
  border-radius:14px;
}

.brand-logo{
  width:32px;
  height:32px;
  object-fit:contain;
  border-radius:9px;
  flex:0 0 auto;
}

.brand-mark{
  width:34px;
  height:34px;
  border-radius:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--primary);
  color:#fff;
}

.brand-text{
  font-weight:900;
  letter-spacing:-.03em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex:1 1 auto;
}

.nav-link{
  padding:9px 13px;
  border:1px solid rgba(23,37,31,.08);
  border-radius:999px;
  color:var(--muted);
  background:rgba(255,255,255,.55);
  white-space:nowrap;
  font-size:14px;
}

.nav-link:hover{
  background:#fff;
  color:var(--text);
}

.nav-link.active{
  color:var(--text);
  background:rgba(76,194,138,.18);
  border-color:rgba(76,194,138,.34);
  font-weight:800;
}

.header-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
}

/* Buttons */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  padding:9px 14px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.68);
  color:var(--text);
  cursor:pointer;
  user-select:none;
  transition:transform .08s ease, box-shadow .14s ease, background .14s ease;
}

.btn:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(23,37,31,.10);
  background:#fff;
}

.btn:active{
  transform:translateY(0);
  box-shadow:none;
}

.btn-primary{
  background:var(--primary);
  border-color:rgba(76,194,138,.52);
  color:var(--primary-ink);
  font-weight:850;
}

.btn-primary:hover{
  background:var(--primary-hover);
}

.btn-ghost{
  background:rgba(255,255,255,.42);
}

/* General public landing */

.psas-hero{
  padding:34px 0 20px;
}

.psas-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
  gap:26px;
  align-items:center;
}

.psas-hero-copy{
  padding:22px 0;
}

.psas-eyebrow,
.psas-section-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
  color:#33795a;
  font-size:12px;
  font-weight:950;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.psas-hero h1,
.psas-page-hero h1{
  margin:0;
  max-width:760px;
  color:#14251f;
  font-size:clamp(40px, 6vw, 70px);
  line-height:.96;
  letter-spacing:-.065em;
  font-weight:950;
}

.psas-lead,
.psas-page-hero p,
.psas-section-head p,
.psas-split p,
.psas-final-inner p{
  color:#56665f;
  font-size:17px;
  line-height:1.75;
}

.psas-lead{
  max-width:720px;
  margin:20px 0 0;
}

.psas-hero-proof{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:22px 0 0;
}

.psas-hero-proof span{
  display:inline-flex;
  align-items:center;
  padding:9px 12px;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
  color:#214137;
  font-weight:800;
  font-size:13px;
}

.psas-quiet-note{
  max-width:680px;
  margin:18px 0 0;
  color:#7a857f;
  font-size:14px;
  line-height:1.75;
}

/* Showcase mockup */

.psas-showcase{
  overflow:hidden;
  border-radius:28px;
  background:
    linear-gradient(135deg, rgba(23,63,95,.98), rgba(36,91,130,.92)),
    radial-gradient(400px 200px at 80% 0%, rgba(76,194,138,.25), transparent 60%);
  border:1px solid rgba(23,63,95,.22);
  box-shadow:0 24px 70px rgba(23,63,95,.20);
  color:#fff;
}

.psas-showcase-top{
  display:flex;
  align-items:center;
  gap:7px;
  padding:15px 16px;
  border-bottom:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.82);
}

.psas-window-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:rgba(255,255,255,.38);
}

.psas-showcase-top strong{
  margin-left:8px;
  font-size:13px;
}

.psas-preview-stack{
  display:grid;
  gap:14px;
  padding:18px;
}

.psas-preview-card,
.psas-mini-preview,
.psas-blog-preview{
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.14);
  border-radius:20px;
  padding:16px;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

.psas-preview-card-main{
  min-height:190px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  background:
    radial-gradient(160px 100px at 85% 20%, rgba(76,194,138,.38), transparent 70%),
    rgba(255,255,255,.12);
}

.psas-preview-tag,
.psas-blog-preview span,
.psas-mini-preview span{
  display:block;
  margin-bottom:7px;
  color:rgba(255,255,255,.72);
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.psas-preview-card h2{
  margin:0 0 8px;
  font-size:30px;
  line-height:1.03;
  letter-spacing:-.04em;
}

.psas-preview-card p{
  margin:0;
  color:rgba(255,255,255,.82);
  line-height:1.65;
}

.psas-preview-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.psas-mini-preview strong,
.psas-blog-preview strong{
  display:block;
  line-height:1.35;
}

.psas-blog-preview{
  display:flex;
  align-items:center;
  min-height:90px;
}

/* Sections */

.psas-section{
  padding:38px 0;
}

.psas-soft-section{
  margin:16px 0;
  padding:46px 0;
  background:rgba(255,255,255,.38);
  border-block:1px solid rgba(23,37,31,.06);
}

.psas-section-head{
  max-width:780px;
  margin-bottom:20px;
}

.psas-section-head h2,
.psas-split h2,
.psas-final-inner h2{
  margin:0;
  color:#14251f;
  font-size:clamp(30px, 4vw, 48px);
  line-height:1.04;
  letter-spacing:-.055em;
  font-weight:950;
}

.psas-section-head p{
  margin:14px 0 0;
}

.psas-feature-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:14px;
}

.psas-feature-grid-3{
  grid-template-columns:repeat(3, minmax(0,1fr));
}

.psas-feature-card,
.psas-content-card,
.psas-page-card{
  background:rgba(255,255,255,.82);
  border:1px solid var(--line);
  border-radius:22px;
  padding:20px;
  box-shadow:var(--shadow-soft);
}

.psas-feature-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  margin-bottom:14px;
  border-radius:15px;
  background:#eef9f2;
  font-size:22px;
}

.psas-feature-card h3{
  margin:0 0 9px;
  color:#14251f;
  font-size:19px;
  letter-spacing:-.025em;
}

.psas-feature-card p,
.psas-content-card p,
.psas-page-card span,
.psas-check-list{
  margin:0;
  color:#63736c;
  line-height:1.7;
}

/* Split sections */

.psas-split{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(330px,.9fr);
  gap:28px;
  align-items:center;
}

.psas-split-reverse{
  grid-template-columns:minmax(330px,.9fr) minmax(0,1fr);
}

.psas-split p{
  margin:14px 0 0;
}

.psas-check-list{
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
  margin-top:18px;
}

.psas-check-list li{
  position:relative;
  padding-left:28px;
}

.psas-check-list li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  width:20px;
  height:20px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(76,194,138,.18);
  color:#26714e;
  font-weight:900;
  font-size:12px;
}

/* Private preview */

.psas-private-preview{
  min-height:260px;
  border-radius:26px;
  padding:20px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.86), rgba(255,255,255,.58)),
    radial-gradient(220px 140px at 80% 20%, rgba(76,194,138,.20), transparent 70%);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}

.psas-blur-card{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  border-radius:18px;
  background:#fff;
  border:1px solid var(--line);
}

.psas-blur-avatar{
  width:44px;
  height:44px;
  border-radius:16px;
  background:linear-gradient(135deg, #4cc28a, #245b82);
}

.psas-blur-card strong,
.psas-blur-card span{
  display:block;
}

.psas-blur-card span{
  color:var(--muted);
  font-size:14px;
}

.psas-blur-lines{
  display:grid;
  gap:12px;
  margin:18px 0;
  filter:blur(4px);
  opacity:.55;
}

.psas-blur-lines span{
  height:42px;
  border-radius:14px;
  background:#dcece4;
}

.psas-lock-note{
  display:inline-flex;
  padding:10px 12px;
  border-radius:999px;
  background:#173f5f;
  color:#fff;
  font-weight:850;
  font-size:13px;
}

/* Shop mockup */

.psas-mock-shop{
  overflow:hidden;
  border-radius:26px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}

.psas-mock-shop-large{
  min-height:380px;
}

.psas-shop-header{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
  padding:18px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(135deg, #fff, #f5fbf7);
}

.psas-shop-header span,
.psas-shop-header em{
  display:block;
  color:#728178;
  font-size:12px;
  font-style:normal;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.psas-shop-header strong{
  display:block;
  margin-top:4px;
  font-size:22px;
  color:#14251f;
  letter-spacing:-.03em;
}

.psas-shop-banner{
  margin:16px 18px 0;
  padding:16px;
  border-radius:18px;
  background:#173f5f;
  color:#fff;
  line-height:1.55;
  font-weight:800;
}

.psas-product-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:12px;
  padding:18px;
}

.psas-product-card{
  min-height:150px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:9px;
  padding:12px;
  border-radius:18px;
  background:#fbf7ef;
  border:1px solid rgba(23,37,31,.07);
}

.psas-product-img{
  display:grid;
  place-items:center;
  height:70px;
  border-radius:14px;
  background:#fff;
  font-size:32px;
}

.psas-product-card strong{
  color:#14251f;
  line-height:1.25;
}

.psas-product-card span{
  color:#66736d;
  font-size:13px;
  font-weight:750;
}

/* Page hero / sub pages */

.psas-page-hero{
  padding:44px 0 18px;
}

.psas-page-hero-inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.42fr);
  gap:22px;
  align-items:stretch;
}

.psas-page-hero p{
  max-width:760px;
  margin:18px 0 0;
}

.psas-page-card{
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:#173f5f;
  color:#fff;
}

.psas-page-card strong{
  margin-bottom:8px;
  font-size:22px;
  line-height:1.15;
  letter-spacing:-.03em;
}

.psas-page-card span{
  color:rgba(255,255,255,.78);
}

.psas-content-list{
  display:grid;
  gap:14px;
}

.psas-content-card span{
  display:block;
  margin-bottom:8px;
  color:#33795a;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.1em;
}

.psas-content-card h2{
  margin:0 0 8px;
  color:#14251f;
  font-size:24px;
  letter-spacing:-.035em;
}

/* Final band */

.psas-final-band{
  padding-bottom:20px;
}

.psas-final-inner{
  border-radius:28px;
  padding:34px;
  background:
    radial-gradient(400px 220px at 90% 20%, rgba(76,194,138,.18), transparent 70%),
    #173f5f;
  color:#fff;
  box-shadow:0 20px 55px rgba(23,63,95,.18);
}

.psas-final-inner .psas-section-kicker{
  color:rgba(255,255,255,.72);
}

.psas-final-inner h2{
  color:#fff;
}

.psas-final-inner p{
  max-width:850px;
  color:rgba(255,255,255,.82);
}

/* Footer */

.site-footer{
  padding:20px 0 34px;
}

.footer-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding-top:18px;
  border-top:1px solid var(--line);
}

.footer-brand{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--muted);
  font-size:14px;
}

.footer-logo{
  width:24px;
  height:24px;
  object-fit:contain;
}

.footer-links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  flex-wrap:wrap;
}

.footer-links a{
  color:var(--muted);
  font-size:14px;
}

.footer-links a:hover{
  color:var(--text);
}

/* Modal */

body.modal-open{
  overflow:hidden;
}

.modal{
  position:fixed;
  inset:0;
  display:none;
  z-index:999;
}

.modal.open{
  display:block;
}

.modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.28);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}

.modal-panel{
  position:relative;
  width:min(520px, calc(100% - 28px));
  margin:12vh auto 0;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(0,0,0,.12);
  border-radius:20px;
  box-shadow:0 24px 70px rgba(0,0,0,.25);
  overflow:hidden;
}

.modal-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:15px 17px;
  border-bottom:1px solid rgba(0,0,0,.08);
}

.modal-title{
  font-weight:950;
  letter-spacing:-.025em;
}

.modal-x{
  border:0;
  background:transparent;
  font-size:24px;
  cursor:pointer;
  line-height:1;
  opacity:.7;
}

.modal-x:hover{
  opacity:1;
}

.modal-body{
  padding:16px 17px 18px;
}

.modal-text{
  margin:0 0 14px;
  color:var(--muted);
  line-height:1.65;
}

.modal-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

/* Auth pages */

.section{
  padding:26px 0;
}

.page-title{
  margin:0 0 8px;
  font-size:34px;
  letter-spacing:-.03em;
}

.section-sub{
  margin:0 0 16px;
  color:var(--muted);
  line-height:1.7;
}

.soft-panel{
  background:rgba(255,255,255,.84);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:18px;
}

.auth-wrap{
  padding:28px 0 60px;
}

.auth-card{
  max-width:600px;
  margin:0 auto;
}

.auth-error,
.auth-ok{
  margin:10px 0 14px;
  padding:10px 12px;
  border-radius:12px;
  font-weight:750;
}

.auth-error{
  background:rgba(176,0,32,.08);
  color:#7a0016;
  border:1px solid rgba(176,0,32,.18);
}

.auth-ok{
  background:rgba(10,122,61,.10);
  color:#0a5f33;
  border:1px solid rgba(10,122,61,.22);
}

.auth-form label{
  display:block;
  margin:12px 0 6px;
  font-weight:750;
}

.auth-form input{
  width:100%;
  padding:12px 42px 12px 12px;
  border:1px solid rgba(0,0,0,.14);
  border-radius:12px;
  background:#fff;
  outline:none;
}

.auth-form input:focus{
  border-color:rgba(76,194,138,.65);
  box-shadow:0 0 0 4px rgba(76,194,138,.16);
}

.password-wrap{
  position:relative;
}

.eye-btn{
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  cursor:pointer;
  font-size:18px;
  opacity:.62;
  user-select:none;
  border:0;
  background:transparent;
  padding:0;
  line-height:1;
}

.eye-btn:hover{
  opacity:1;
}

.auth-actions,
.auth-inline-actions{
  margin-top:16px;
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

.turnstile-wrap{
  margin-top:16px;
}

.bot-trap{
  display:none !important;
}

.auth-legal-note{
  margin:12px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.6;
}

.check{
  display:flex !important;
  align-items:flex-start;
  gap:10px;
  line-height:1.55;
}

.check input{
  width:auto;
  margin-top:4px;
  padding:0;
}

.check a{
  color:#26714e;
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:3px;
}

/* Responsive */

@media (max-width: 980px){
  .header-row{
    flex-wrap:wrap;
  }

  .nav{
    order:3;
    width:100%;
    justify-content:flex-start;
    flex-wrap:wrap;
  }

  .header-actions{
    margin-left:auto;
  }

  .psas-hero-grid,
  .psas-split,
  .psas-split-reverse,
  .psas-page-hero-inner{
    grid-template-columns:1fr;
  }

  .psas-feature-grid,
  .psas-feature-grid-3{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }

  .psas-hero{
    padding-top:22px;
  }
}

@media (max-width: 680px){
  .container{
    padding:0 14px;
  }

  .header-row{
    gap:9px;
  }

  .brand{
    padding:6px 4px;
  }

  .brand-logo{
    width:28px;
    height:28px;
  }

  .brand-text{
    font-size:14px;
  }

  .header-actions{
    gap:7px;
  }

  .btn{
    padding:8px 11px;
    min-height:38px;
    font-size:13px;
  }

  .nav-link{
    padding:8px 10px;
    font-size:13px;
  }

  .psas-hero h1,
  .psas-page-hero h1{
    font-size:42px;
    letter-spacing:-.055em;
  }

  .psas-lead,
  .psas-page-hero p,
  .psas-section-head p,
  .psas-split p,
  .psas-final-inner p{
    font-size:15px;
  }

  .psas-showcase{
    border-radius:22px;
  }

  .psas-preview-row,
  .psas-product-grid,
  .psas-feature-grid,
  .psas-feature-grid-3{
    grid-template-columns:1fr;
  }

  .psas-product-card{
    min-height:auto;
  }

  .psas-section{
    padding:28px 0;
  }

  .psas-soft-section{
    padding:34px 0;
  }

  .psas-final-inner{
    padding:24px;
    border-radius:22px;
  }

  .footer-row{
    align-items:flex-start;
    flex-direction:column;
  }

  .footer-links{
    justify-content:flex-start;
  }

  .auth-actions,
  .auth-inline-actions,
  .modal-actions{
    flex-direction:column;
    align-items:stretch;
  }

  :root{
    --wallpaper-size:120%;
    --wallpaper-opacity:.045;
  }
}

@media (max-width: 420px){
  .psas-hero h1,
  .psas-page-hero h1{
    font-size:36px;
  }

  .psas-section-head h2,
  .psas-split h2,
  .psas-final-inner h2{
    font-size:30px;
  }
}

/* =========================================================
   Public blog listing + public article pages
   ========================================================= */

.public-blog-shell{
  padding:16px 0 46px;
}

.public-blog-filter{
  display:grid;
  grid-template-columns:minmax(0, .8fr) minmax(320px, 1fr);
  gap:18px;
  align-items:end;
  margin-bottom:14px;
}

.public-blog-filter h2{
  margin:0 0 5px;
  color:#14251f;
  font-size:30px;
  letter-spacing:-.04em;
}

.public-blog-filter p{
  margin:0;
  color:var(--muted);
}

.public-blog-search{
  display:flex;
  gap:10px;
  align-items:center;
}

.public-blog-search input{
  width:100%;
  min-height:42px;
  padding:10px 13px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  outline:none;
}

.public-blog-search input:focus{
  border-color:rgba(76,194,138,.65);
  box-shadow:0 0 0 4px rgba(76,194,138,.14);
}

.public-blog-chips{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:16px 0 22px;
}

.public-blog-chip{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.7);
  color:var(--muted);
  font-weight:750;
  font-size:13px;
}

.public-blog-chip:hover,
.public-blog-chip.is-active{
  background:rgba(76,194,138,.18);
  border-color:rgba(76,194,138,.34);
  color:#193d2f;
}

.public-featured-blog{
  display:grid;
  grid-template-columns:minmax(320px, .8fr) minmax(0, 1fr);
  gap:0;
  overflow:hidden;
  margin:18px 0 22px;
  border-radius:26px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}

.public-featured-image,
.public-blog-card-image,
.public-article-hero{
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

.public-featured-image{
  min-height:310px;
  background-color:#dcece4;
}

.public-featured-image.is-empty,
.public-blog-card-image.is-empty{
  background:
    radial-gradient(120px 90px at 80% 20%, rgba(76,194,138,.22), transparent 70%),
    linear-gradient(135deg, #eef8f2, #f8f2e8);
}

.public-featured-copy{
  padding:28px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.public-featured-copy > span,
.public-blog-category{
  display:inline-flex;
  align-self:flex-start;
  margin-bottom:10px;
  color:#33795a;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.1em;
}

.public-featured-copy h2{
  margin:0;
  color:#14251f;
  font-size:clamp(28px, 4vw, 46px);
  line-height:1.04;
  letter-spacing:-.055em;
}

.public-featured-copy p{
  margin:14px 0 0;
  color:#5f6f68;
  line-height:1.75;
  font-size:16px;
}

.public-blog-meta{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:16px;
  color:#7a857f;
  font-size:13px;
  font-weight:700;
}

.public-blog-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:16px;
}

.public-blog-card{
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:100%;
  border-radius:22px;
  background:rgba(255,255,255,.86);
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
}

.public-blog-card-image{
  display:block;
  height:190px;
  background-color:#dcece4;
}

.public-blog-card-body{
  padding:17px;
  display:flex;
  flex-direction:column;
  flex:1;
}

.public-blog-card-body h3{
  margin:0 0 9px;
  color:#14251f;
  font-size:21px;
  line-height:1.16;
  letter-spacing:-.035em;
}

.public-blog-card-body h3 a:hover,
.public-featured-copy h2 a:hover{
  color:#26714e;
}

.public-blog-card-body p{
  margin:0;
  color:#62726b;
  line-height:1.65;
  flex:1;
}

.public-blog-pager{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  margin-top:24px;
}

.public-blog-pager a{
  display:grid;
  place-items:center;
  min-width:38px;
  height:38px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--muted);
  font-weight:850;
}

.public-blog-pager a:hover,
.public-blog-pager a.is-active{
  background:var(--primary);
  color:var(--primary-ink);
  border-color:rgba(76,194,138,.5);
}

.public-blog-empty{
  padding:28px;
  border-radius:22px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
}

.public-blog-empty h2{
  margin:0 0 8px;
}

.public-blog-empty p{
  margin:0;
  color:var(--muted);
}

/* Public article page */

.public-article-shell{
  padding:34px 0 52px;
  background:
    var(--blog-bg-image, none),
    linear-gradient(180deg, var(--blog-page-bg, #eef4f9), rgba(251,246,238,.65));
  background-size:cover;
  background-position:center;
}

.public-article-container{
  max-width:980px;
}

.public-article-card{
  overflow:hidden;
  border-radius:28px;
  background:rgba(255,255,255,.94);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}

.public-article-hero{
  height:min(460px, 52vw);
  min-height:260px;
  background-color:#dcece4;
}

.public-article-body{
  padding:32px;
}

.public-article-back{
  display:inline-flex;
  margin-bottom:18px;
  color:#33795a;
  font-weight:850;
}

.public-article-back:hover{
  color:#1f5f43;
}

.public-article-category{
  display:inline-flex;
  margin-bottom:12px;
  color:#33795a;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.1em;
}

.public-article-body h1{
  margin:0;
  max-width:820px;
  color:var(--blog-text-color, #1d2a39);
  font-size:clamp(34px, 5vw, 62px);
  line-height:1.02;
  letter-spacing:-.06em;
  font-weight:950;
}

.public-article-excerpt{
  max-width:790px;
  margin:16px 0 0;
  color:#5f6f68;
  font-size:18px;
  line-height:1.75;
}

.public-article-meta{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:16px;
  color:#7a857f;
  font-size:13px;
  font-weight:750;
}

.public-article-content{
  margin-top:30px;
  color:var(--blog-text-color, #1d2a39);
}

.public-render-heading{
  margin:28px 0 12px;
  color:var(--blog-text-color, #1d2a39);
  letter-spacing:-.04em;
  line-height:1.08;
}

.public-render-h1{font-size:42px;}
.public-render-h2{font-size:34px;}
.public-render-h3{font-size:28px;}
.public-render-h4{font-size:23px;}
.public-render-h5{font-size:20px;}
.public-render-h6{font-size:18px;}

.public-render-paragraph{
  margin:0 0 18px;
  color:var(--blog-text-color, #1d2a39);
  font-size:17px;
  line-height:1.85;
}

.public-render-quote{
  margin:24px 0;
  padding:18px 20px;
  border-left:5px solid var(--blog-accent-color, #4cc28a);
  border-radius:16px;
  background:rgba(76,194,138,.10);
  color:#253b32;
  font-size:18px;
  line-height:1.75;
  font-weight:750;
}

.public-render-divider{
  height:1px;
  margin:30px 0;
  background:rgba(0,0,0,.10);
}

.public-render-link{
  display:block;
  margin:20px 0;
  padding:16px;
  border-radius:18px;
  background:#f8f2e8;
  border:1px solid var(--line);
}

.public-render-link strong,
.public-render-link span{
  display:block;
}

.public-render-link span{
  margin-top:5px;
  color:var(--muted);
  font-size:13px;
  word-break:break-all;
}

.public-render-image-wrap,
.public-render-video-wrap{
  margin:26px 0;
}

.public-render-image,
.public-render-video{
  width:100%;
  max-height:680px;
  object-fit:contain;
  border-radius:22px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}

.public-render-caption{
  margin-top:8px;
  color:var(--muted);
  font-size:14px;
  text-align:center;
}

.public-article-gate{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:20px;
  align-items:center;
  margin:22px 0;
  padding:22px;
  border-radius:24px;
  background:#173f5f;
  color:#fff;
  box-shadow:0 18px 50px rgba(23,63,95,.18);
}

.public-article-gate span{
  display:block;
  margin-bottom:8px;
  color:rgba(255,255,255,.72);
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.1em;
}

.public-article-gate h2{
  margin:0;
  font-size:28px;
  line-height:1.08;
  letter-spacing:-.04em;
}

.public-article-gate p{
  margin:10px 0 0;
  color:rgba(255,255,255,.78);
  line-height:1.7;
}

.public-article-gate-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.public-related{
  margin-top:30px;
}

.public-related-head h2{
  margin:0 0 14px;
  color:#14251f;
  font-size:30px;
  letter-spacing:-.04em;
}

/* Public blog responsive */

@media (max-width: 900px){
  .public-blog-filter,
  .public-featured-blog,
  .public-article-gate{
    grid-template-columns:1fr;
  }

  .public-blog-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .public-featured-image{
    min-height:250px;
  }

  .public-article-gate-actions{
    justify-content:flex-start;
  }
}

@media (max-width: 640px){
  .public-blog-search{
    flex-direction:column;
    align-items:stretch;
  }

  .public-blog-grid{
    grid-template-columns:1fr;
  }

  .public-featured-copy,
  .public-article-body{
    padding:22px;
  }

  .public-article-hero{
    height:260px;
  }

  .public-render-h1{font-size:34px;}
  .public-render-h2{font-size:29px;}
  .public-render-h3{font-size:25px;}

  .public-render-paragraph{
    font-size:16px;
  }

  .public-article-gate{
    padding:20px;
  }

  .public-article-gate-actions{
    flex-direction:column;
    align-items:stretch;
  }
}

/* PUBLIC BLOG POLISH OVERRIDE */
.nav-link{
  font-weight:800;
  border:1px solid rgba(23,37,31,.16) !important;
  background:#fff !important;
  box-shadow:0 6px 16px rgba(23,37,31,.06);
}

.nav-link.active,
.nav-link:hover{
  background:#4cc28a !important;
  color:#06301e !important;
  border-color:rgba(76,194,138,.7) !important;
}

.public-blog-shell{
  padding:26px 0 60px !important;
}

.public-blog-filter{
  display:grid !important;
  grid-template-columns:1fr 420px !important;
  gap:22px !important;
  align-items:end !important;
  margin-bottom:18px !important;
}

.public-blog-filter h2{
  font-size:34px !important;
  margin:0 0 6px !important;
  color:#14251f !important;
}

.public-blog-filter p{
  color:#66736d !important;
  margin:0 !important;
}

.public-blog-search{
  display:flex !important;
  gap:10px !important;
}

.public-blog-search input{
  width:100% !important;
  min-height:44px !important;
  padding:11px 15px !important;
  border-radius:999px !important;
  border:1px solid rgba(23,37,31,.14) !important;
  background:#fff !important;
  font-size:14px !important;
}

.public-blog-chips{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  margin:16px 0 24px !important;
}

.public-blog-chip{
  padding:9px 13px !important;
  border-radius:999px !important;
  border:1px solid rgba(23,37,31,.12) !important;
  background:#fff !important;
  color:#66736d !important;
  font-weight:800 !important;
  box-shadow:0 6px 14px rgba(23,37,31,.05);
}

.public-blog-chip.is-active,
.public-blog-chip:hover{
  background:#4cc28a !important;
  color:#06301e !important;
  border-color:rgba(76,194,138,.7) !important;
}

.public-featured-blog{
  display:grid !important;
  grid-template-columns:minmax(320px,.82fr) minmax(0,1fr) !important;
  overflow:hidden !important;
  margin:20px 0 26px !important;
  border-radius:26px !important;
  background:#fff !important;
  border:1px solid rgba(23,37,31,.10) !important;
  box-shadow:0 16px 40px rgba(23,37,31,.08) !important;
}

.public-featured-image{
  display:block !important;
  min-height:320px !important;
  background-size:cover !important;
  background-position:center !important;
  background-color:#dcece4 !important;
}

.public-featured-copy{
  padding:30px !important;
}

.public-featured-copy > span,
.public-blog-category{
  display:inline-flex !important;
  margin-bottom:10px !important;
  color:#33795a !important;
  font-size:12px !important;
  font-weight:950 !important;
  letter-spacing:.1em !important;
  text-transform:uppercase !important;
}

.public-featured-copy h2{
  margin:0 !important;
  font-size:42px !important;
  line-height:1.05 !important;
  letter-spacing:-.05em !important;
  color:#14251f !important;
}

.public-featured-copy p{
  margin:14px 0 0 !important;
  color:#5f6f68 !important;
  line-height:1.75 !important;
  font-size:16px !important;
}

.public-blog-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:18px !important;
}

.public-blog-card{
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  background:#fff !important;
  border:1px solid rgba(23,37,31,.10) !important;
  border-radius:22px !important;
  box-shadow:0 10px 26px rgba(23,37,31,.07) !important;
}

.public-blog-card-image{
  display:block !important;
  height:200px !important;
  background-size:cover !important;
  background-position:center !important;
  background-color:#dcece4 !important;
}

.public-blog-card-image.is-empty,
.public-featured-image.is-empty{
  background:
    radial-gradient(120px 90px at 80% 20%, rgba(76,194,138,.22), transparent 70%),
    linear-gradient(135deg, #eef8f2, #f8f2e8) !important;
}

.public-blog-card-body{
  padding:18px !important;
}

.public-blog-card-body h3{
  margin:0 0 9px !important;
  font-size:22px !important;
  line-height:1.15 !important;
  letter-spacing:-.035em !important;
  color:#14251f !important;
}

.public-blog-card-body p{
  margin:0 !important;
  color:#62726b !important;
  line-height:1.65 !important;
}

.public-blog-meta{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:7px !important;
  margin-top:15px !important;
  color:#7a857f !important;
  font-size:13px !important;
  font-weight:700 !important;
}

@media (max-width:900px){
  .public-blog-filter,
  .public-featured-blog{
    grid-template-columns:1fr !important;
  }

  .public-blog-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media (max-width:640px){
  .public-blog-search{
    flex-direction:column !important;
  }

  .public-blog-grid{
    grid-template-columns:1fr !important;
  }

  .public-featured-copy{
    padding:22px !important;
  }

  .public-featured-copy h2{
    font-size:32px !important;
  }
}

/*button layout for logged out mobile */

@media (max-width:768px){

    .header-row{
        display:flex;
        flex-wrap:wrap;
        gap:12px;
    }

    .brand{
        width:100%;
    }

    .nav{
        width:100%;
        display:flex;
        gap:10px;
    }

    .header-actions{
        width:100%;
        display:flex;
        gap:10px;
    }

    .header-actions .btn,
    .nav-link{
        flex:1;
        text-align:center;
        justify-content:center;
    }
}

/* discover.php mobile buttons */

@media (max-width: 768px) {
  .site-header .header-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
  }

  .site-header .brand {
    flex: 1 1 100%;
    justify-content: flex-start;
  }

  .site-header .nav,
  .site-header .header-actions {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .site-header .nav-link,
  .site-header .header-actions .btn {
    flex: 1 1 0;
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    white-space: nowrap;
  }
}

.legal-page {
  padding: 48px 0 70px;
}

.legal-card {
  max-width: 980px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid rgba(16, 45, 36, 0.12);
  border-radius: 34px;
  box-shadow: 0 24px 70px rgba(16, 45, 36, 0.10);
  padding: clamp(28px, 5vw, 64px);
}

.legal-card h1 {
  font-size: clamp(2.5rem, 7vw, 4.8rem);
  line-height: 0.95;
  margin: 0 0 20px;
  color: #102d24;
  letter-spacing: -0.06em;
}

.legal-card h2 {
  font-size: clamp(1.55rem, 4vw, 2.7rem);
  line-height: 1.05;
  margin: 36px 0 16px;
  color: #102d24;
  letter-spacing: -0.035em;
}

.legal-card p,
.legal-card li {
  font-size: clamp(1.05rem, 2.8vw, 1.45rem);
  line-height: 1.42;
  color: #24352f;
}

.legal-updated {
  color: #6f7f78 !important;
  font-size: clamp(1.1rem, 3vw, 1.7rem) !important;
  margin-bottom: 34px;
}

.legal-card ul {
  padding-left: 28px;
}

.legal-card hr {
  margin: 40px 0 18px;
  border: 0;
  border-top: 1px solid rgba(16, 45, 36, 0.15);
}

@media (max-width: 768px) {
  .legal-page {
    padding: 28px 0 50px;
  }

  .legal-card {
    border-radius: 26px;
  }
}

/* =========================================================
   Public homepage scrapbook demo
   ========================================================= */

.psas-scrapbook-demo-section{
  padding-top:42px;
  padding-bottom:42px;
}

.psas-scrapbook-demo{
  display:grid;
  grid-template-columns:minmax(0,.75fr) minmax(420px,1.25fr);
  gap:28px;
  align-items:center;
}

.psas-scrapbook-demo-copy{
  max-width:470px;
}

.psas-scrapbook-demo-copy h2{
  margin:0;
  color:#14251f;
  font-size:clamp(32px, 4.8vw, 56px);
  line-height:1.02;
  letter-spacing:-.06em;
  font-weight:950;
}

.psas-scrapbook-demo-copy p{
  margin:16px 0 20px;
  color:#56665f;
  font-size:17px;
  line-height:1.75;
}

.psas-scrapbook-demo-images{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:16px;
  align-items:center;
}

.psas-scrapbook-demo-images img{
  width:100%;
  border-radius:24px;
  background:#fff;
  border:1px solid rgba(23,37,31,.12);
  box-shadow:0 18px 46px rgba(23,37,31,.12);
}

.psas-scrapbook-demo-images img:first-child{
  transform:rotate(-1.5deg);
}

.psas-scrapbook-demo-images img:last-child{
  transform:rotate(1deg);
}

@media (max-width:980px){
  .psas-scrapbook-demo{
    grid-template-columns:1fr;
  }

  .psas-scrapbook-demo-copy{
    max-width:760px;
  }

  .psas-scrapbook-demo-images{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:680px){
  .psas-scrapbook-demo-images{
    grid-template-columns:1fr;
  }

  .psas-scrapbook-demo-images img:first-child,
  .psas-scrapbook-demo-images img:last-child{
    transform:none;
  }
}