/* ============================================================
   Alive Unlocked v2, brand design system
   Palette + type per Website Redesign Brief (Section 2)
   ============================================================ */

/* Headline serif, self hosted (latin subset), no external CDN dependency */
@font-face{
  font-family:'Lora'; font-style:normal; font-weight:400; font-display:swap;
  src:url('fonts/lora-400-normal.woff2') format('woff2');
}
@font-face{
  font-family:'Lora'; font-style:normal; font-weight:500; font-display:swap;
  src:url('fonts/lora-500-normal.woff2') format('woff2');
}
@font-face{
  font-family:'Lora'; font-style:normal; font-weight:600; font-display:swap;
  src:url('fonts/lora-600-normal.woff2') format('woff2');
}
@font-face{
  font-family:'Lora'; font-style:italic; font-weight:400; font-display:swap;
  src:url('fonts/lora-400-italic.woff2') format('woff2');
}

/* Brand script, wordmark and short accent lines only */
@font-face{
  font-family:"Tirelesslyloveyou";
  src:url("fonts/tirelesslyloveyou.otf") format("opentype");
  font-weight:normal; font-style:normal; font-display:swap;
}

:root{
  --brown:#675553;
  --brown-deep:#4a3d3b;
  --sage:#8E9379;
  --sage-deep:#6f7560;
  --linen:#EAD5C4;
  --linen-soft:#F7EDE5;
  --linen-wash:#FCF7F3;
  --white:#FFFFFF;

  --body-text:#5c4f4d;
  --muted:#8a7c79;
  --line:rgba(103,85,83,0.14);
  --line-strong:rgba(103,85,83,0.26);
  --shadow-soft:0 1px 3px rgba(103,85,83,0.06);
  --shadow-card:0 10px 30px -22px rgba(103,85,83,0.55);
  --shadow-lift:0 22px 48px -26px rgba(103,85,83,0.6);

  --script:"Tirelesslyloveyou","Snell Roundhand","Brush Script MT",cursive;
  --heading:"Lora",Georgia,"Iowan Old Style","Times New Roman",serif;
  --body:"Avenir Next","Optima",-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;

  --radius:26px;
  --radius-sm:16px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html,body{ margin:0; padding:0; }
body{
  background:var(--white);
  color:var(--body-text);
  font-family:var(--body);
  font-size:17px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.modal-open{ overflow:hidden; }
img{ max-width:100%; display:block; }
a{ color:inherit; }

.wrap{ max-width:1160px; margin:0 auto; padding:0 32px; }
.wrap-narrow{ max-width:780px; margin:0 auto; padding:0 32px; }
@media (max-width:560px){
  .wrap,.wrap-narrow{ padding:0 22px; }
}

:focus-visible{ outline:2px solid var(--sage); outline-offset:3px; border-radius:4px; }
.visually-hidden{
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap;
}

/* ---------- type ---------- */
h1,h2,h3,h4{
  margin:0; color:var(--brown); text-wrap:balance;
  font-family:var(--heading); font-weight:500; line-height:1.2;
}
.head{ font-family:var(--heading); font-weight:500; line-height:1.2; }
h1.head{ font-size:clamp(2.2rem,4.6vw,3.5rem); }
h2.head{ font-size:clamp(1.8rem,3.1vw,2.5rem); }
h3.head{ font-size:clamp(1.25rem,2vw,1.6rem); }
.display{
  font-family:var(--script); font-weight:400; line-height:1.1; letter-spacing:0.01em;
}
h1.display{ font-size:clamp(2.9rem,6vw,4.6rem); }
h2.display{ font-size:clamp(2.4rem,4.4vw,3.4rem); }

.h-sans{
  font-family:var(--body); font-weight:600; color:var(--brown);
  font-size:clamp(1.02rem,1.5vw,1.18rem); line-height:1.4;
}
.label{
  font-family:var(--body); font-size:0.92rem; font-weight:700;
  letter-spacing:0.15em; text-transform:uppercase; color:var(--sage-deep);
  margin:0 0 18px;
}
.label-sm{
  font-family:var(--body); font-size:0.74rem; font-weight:700;
  letter-spacing:0.14em; text-transform:uppercase; color:var(--sage-deep);
  margin:0 0 10px;
}
.lede{ font-size:1.14rem; line-height:1.75; color:var(--body-text); }
.lede-lg{ font-size:1.24rem; line-height:1.68; color:var(--body-text); }
.muted{ color:var(--muted); }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }
strong{ color:var(--brown); font-weight:600; }

/* ---------- header ---------- */
.site-header{
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,0.92);
  backdrop-filter:saturate(160%) blur(10px);
  position:sticky; top:0; z-index:60;
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding-top:16px; padding-bottom:16px;
}
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; flex-shrink:0; padding-left:2px; }
.brand-logo{ width:44px; height:44px; object-fit:contain; flex-shrink:0; }
.brand-word{ font-family:var(--script); font-size:2rem; color:var(--brown); line-height:1; }

.header-actions{ display:flex; align-items:center; gap:16px; }
.nav{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.nav a{
  font-size:0.9rem; text-decoration:none; color:var(--body-text);
  transition:color 0.2s ease; white-space:nowrap; padding-bottom:3px;
  border-bottom:1px solid transparent;
}
.nav a:hover{ color:var(--brown); }
.nav a[aria-current="page"]{ color:var(--brown); border-bottom-color:var(--sage); }
.nav-toggle{
  display:none; background:none; border:1px solid var(--line-strong); border-radius:999px;
  padding:9px 18px; font-family:var(--body); font-size:0.85rem; font-weight:600;
  color:var(--brown); cursor:pointer;
}
.header-cta{ display:inline-flex; }
@media (max-width:1080px){
  .nav-toggle{ display:block; }
  /* needs .site-header prefix to outrank the later .btn display rule */
  .site-header .header-cta{ display:none; }
  .nav{
    display:none; width:100%; flex-direction:column; align-items:flex-start;
    gap:16px; padding:20px 0 8px; order:3;
  }
  .nav.open{ display:flex; }
  .header-inner{ flex-wrap:wrap; }
}

/* ---------- buttons ---------- */
.btn{
  font-family:var(--body); font-size:0.92rem; font-weight:600; letter-spacing:0.01em;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 28px; border-radius:999px; border:1px solid transparent;
  text-decoration:none; cursor:pointer; text-align:center;
  transition:background 0.24s ease, color 0.24s ease, transform 0.24s ease, box-shadow 0.24s ease;
}
.btn .arrow{ transition:transform 0.24s ease; }
.btn:hover .arrow{ transform:translateX(4px); }
.btn-sage{ background:var(--sage); color:var(--white); }
.btn-sage:hover{ background:var(--sage-deep); box-shadow:var(--shadow-card); }
.btn-brown{ background:var(--brown); color:var(--white); }
.btn-brown:hover{ background:var(--brown-deep); box-shadow:var(--shadow-card); }
.btn-outline{ background:transparent; color:var(--brown); border-color:var(--line-strong); }
.btn-outline:hover{ background:var(--brown); color:var(--white); border-color:var(--brown); }
.btn-linen{ background:var(--white); color:var(--brown); }
.btn-linen:hover{ background:var(--linen-soft); }
.btn-ghost{
  background:transparent; color:var(--sage-deep); padding:0; border:none;
  font-weight:600; font-size:0.92rem;
}
.btn-ghost:hover{ color:var(--brown); }
.btn-sm{ padding:11px 20px; font-size:0.86rem; }
.btn-row{ display:flex; gap:14px; flex-wrap:wrap; }

/* ---------- layout ---------- */
.section{ padding:88px 0; }
.section-tight{ padding:56px 0; }
.section-linen{ background:var(--linen-soft); }
.section-wash{ background:var(--linen-wash); }
.section-linen-deep{ background:var(--linen); }
.section-brown{ background:var(--brown); }
.section-brown h1,.section-brown h2,.section-brown h3{ color:var(--white); }
.section-brown p,.section-brown .lede{ color:rgba(255,255,255,0.88); }
.section-brown .label,.section-brown .label-sm{ color:var(--linen); }
.section-head{ max-width:64ch; margin-bottom:46px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }

.split{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:60px; align-items:center; }
@media (max-width:880px){
  .split{ grid-template-columns:1fr; gap:36px; }
  .split .photo-frame{ max-width:440px; }
}
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
@media (max-width:940px){ .grid-3,.grid-4{ grid-template-columns:1fr 1fr; } }
@media (max-width:700px){ .grid-2,.grid-3,.grid-4{ grid-template-columns:1fr; } }

/* ---------- hero ---------- */
.hero{ padding:76px 0 68px; position:relative; }
.hero-eyebrow{ margin-bottom:20px; }
.hero .btn-row{ margin-top:30px; }
.hero-note{ margin-top:22px; font-size:0.92rem; color:var(--muted); }

/* ---------- photo placeholders ---------- */
.photo-frame{
  border-radius:var(--radius);
  border:1.5px dashed var(--line-strong);
  background:
    repeating-linear-gradient(135deg, var(--linen-soft) 0 15px, transparent 15px 30px),
    var(--white);
  display:flex; align-items:center; justify-content:center; text-align:center;
  overflow:hidden;
}
.photo-frame__label{
  font-family:var(--body); font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--muted); padding:10px 18px; background:var(--white);
  border:1px solid var(--line); border-radius:999px; max-width:86%;
}
.photo-frame--portrait{ aspect-ratio:3/4; }
.photo-frame--square{ aspect-ratio:1/1; }
.photo-frame--wide{ aspect-ratio:16/9; }

/* ---------- cards ---------- */
.card{
  border-radius:var(--radius); padding:34px 30px;
  background:var(--white); border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
}
.card-linen{ background:var(--linen-soft); border-color:transparent; box-shadow:none; }
.card-wash{ background:var(--linen-wash); border-color:transparent; box-shadow:none; }
.card h3{ margin-bottom:12px; }
.card p{ font-size:0.99rem; }

/* offering cards, the primary conversion unit */
.offer{
  display:flex; flex-direction:column; gap:16px;
  border-radius:var(--radius); padding:38px 34px;
  background:var(--white); border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
  transition:transform 0.3s cubic-bezier(.2,.8,.3,1), box-shadow 0.3s ease;
  position:relative; overflow:hidden;
}
.offer:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lift); }
.offer__meta{
  font-family:var(--body); font-size:0.8rem; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--muted);
}
.offer__body{ flex:1; }
.offer__actions{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:6px; }
.offer--sage{ background:var(--sage); border-color:transparent; }
.offer--sage h3,.offer--sage .offer__meta,.offer--sage p{ color:var(--white); }
.offer--sage .offer__meta{ color:rgba(255,255,255,0.78); }
.offer--brown{ background:var(--brown); border-color:transparent; }
.offer--brown h3,.offer--brown p{ color:var(--white); }
.offer--brown .offer__meta{ color:rgba(255,255,255,0.78); }

/* door cards on the home fork */
.door{
  display:flex; flex-direction:column; gap:18px;
  border-radius:var(--radius); padding:44px 38px;
  text-decoration:none; position:relative; overflow:hidden;
  transition:transform 0.32s cubic-bezier(.2,.8,.3,1), box-shadow 0.32s ease;
  box-shadow:var(--shadow-soft);
}
.door:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lift); }
.door::after{
  content:""; position:absolute; right:-70px; bottom:-80px;
  width:240px; height:240px; border-radius:50%;
  background:rgba(255,255,255,0.08); pointer-events:none;
}
.door--sage{ background:var(--sage); color:var(--white); }
.door--brown{ background:var(--brown); color:var(--white); }
.door h2{ color:var(--white); }
.door__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.door__list li{
  font-size:0.95rem; color:rgba(255,255,255,0.9); padding-left:22px; position:relative;
}
.door__list li::before{
  content:"›"; position:absolute; left:0; top:-1px; color:rgba(255,255,255,0.8); font-size:1.1rem;
}
.door__cta{
  display:inline-flex; align-items:center; gap:10px; margin-top:6px;
  font-weight:600; font-size:0.95rem; color:var(--white);
}
.door:hover .door__cta .arrow{ transform:translateX(4px); }
.door__cta .arrow{ transition:transform 0.24s ease; }

/* ---------- trust / proof ---------- */
.trust-strip{
  display:flex; flex-wrap:wrap; gap:14px 40px;
  align-items:center; justify-content:center; text-align:center;
  padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.trust-item{
  display:flex; align-items:center; gap:10px;
  font-size:0.92rem; color:var(--body-text);
}
.trust-item .dot{
  width:7px; height:7px; border-radius:50%; background:var(--sage); flex-shrink:0;
}
.proof-logos{
  display:flex; flex-wrap:wrap; gap:14px 40px; align-items:center; justify-content:center;
}
.proof-logo{
  font-family:var(--heading); font-size:1.02rem; color:var(--brown); opacity:0.75;
  text-decoration:none; transition:opacity 0.2s ease;
}
.proof-logo:hover{ opacity:1; }

.stat-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media (max-width:760px){ .stat-row{ grid-template-columns:1fr; gap:20px; } }
.stat__num{
  font-family:var(--heading); font-size:2.1rem; color:var(--brown); line-height:1.1; margin-bottom:6px;
}

/* ---------- quotes ---------- */
.pullquote{
  border-left:2px solid var(--sage); padding-left:26px;
  font-family:var(--heading); font-size:1.28rem; line-height:1.55;
  color:var(--brown); font-style:italic;
}
.quote-card{
  border-radius:var(--radius); padding:32px 28px; background:var(--linen-soft);
  display:flex; flex-direction:column; gap:16px;
}
.quote-card p{ font-family:var(--heading); font-style:italic; color:var(--brown); font-size:1.02rem; line-height:1.6; }
.quote-card .who{
  font-family:var(--body); font-style:normal; font-size:0.82rem; color:var(--muted); margin-top:auto;
}
.quote-mark{
  font-family:var(--heading); font-size:2.4rem; line-height:0.7; color:var(--sage); display:block;
}

/* ---------- ALIVE pillars ---------- */
.pillar-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
@media (max-width:1000px){ .pillar-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .pillar-grid{ grid-template-columns:1fr; } }
.pillar-card{
  border-radius:var(--radius-sm); padding:26px 22px; background:var(--white);
  border:1px solid var(--line); text-align:left; cursor:pointer;
  font-family:var(--body); color:var(--body-text);
  transition:transform 0.24s ease, box-shadow 0.24s ease, border-color 0.24s ease;
  display:flex; flex-direction:column; gap:10px;
}
.pillar-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-card); border-color:var(--sage); }
.pillar-card__letter{
  font-family:var(--script); font-size:2.5rem; line-height:1; color:var(--sage);
}
.pillar-card__name{ font-weight:600; color:var(--brown); font-size:0.98rem; line-height:1.35; }
.pillar-card__more{ font-size:0.8rem; color:var(--sage-deep); font-weight:600; margin-top:auto; }

/* ---------- steps ---------- */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; counter-reset:step; }
@media (max-width:940px){ .steps{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .steps{ grid-template-columns:1fr; } }
.step{ display:flex; flex-direction:column; gap:10px; }
.step__num{
  font-family:var(--heading); font-size:0.86rem; letter-spacing:0.1em;
  color:var(--sage-deep); padding-bottom:12px; border-bottom:1px solid var(--line);
}

/* ---------- accordion ---------- */
details.accordion{ border-bottom:1px solid var(--line); }
details.accordion summary{
  cursor:pointer; list-style:none; padding:24px 0;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  font-family:var(--body); font-weight:600; color:var(--brown); font-size:1.02rem;
}
details.accordion summary::-webkit-details-marker{ display:none; }
details.accordion summary::after{
  content:"+"; font-size:1.5rem; color:var(--sage); line-height:1; flex-shrink:0; font-weight:400;
}
details.accordion[open] summary::after{ content:"−"; }
details.accordion .accordion-body{ padding:0 0 28px; max-width:72ch; }

/* ---------- lists ---------- */
.list-check{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:13px; }
.list-check li{ padding-left:28px; position:relative; }
.list-check li::before{
  content:"✓"; position:absolute; left:0; top:0; color:var(--sage); font-weight:700;
}
.chip-row{ display:flex; flex-wrap:wrap; gap:10px; }
.chip{
  font-family:var(--body); font-size:0.86rem; padding:10px 20px; border-radius:999px;
  background:var(--white); border:1px solid var(--line); color:var(--brown);
}
.chip-sage{ background:var(--sage); border-color:transparent; color:var(--white); }

/* ---------- modal ---------- */
.modal{
  position:fixed; inset:0; z-index:100;
  display:flex; align-items:center; justify-content:center; padding:24px;
}
.modal[hidden]{ display:none; }
.modal__backdrop{
  position:absolute; inset:0; background:rgba(46,36,34,0.55);
  backdrop-filter:blur(3px); animation:fade 0.2s ease;
}
.modal__panel{
  position:relative; z-index:1;
  background:var(--white); border-radius:var(--radius);
  max-width:640px; width:100%; max-height:86vh; overflow-y:auto;
  padding:44px 40px; box-shadow:0 40px 80px -30px rgba(46,36,34,0.6);
  animation:pop 0.24s cubic-bezier(.2,.8,.3,1);
}
@media (max-width:560px){ .modal__panel{ padding:34px 24px; } }
.modal__close{
  position:absolute; top:16px; right:16px;
  width:38px; height:38px; border-radius:50%;
  border:1px solid var(--line); background:var(--white);
  font-size:1.2rem; line-height:1; color:var(--brown); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background 0.2s ease;
}
.modal__close:hover{ background:var(--linen-soft); }
.modal__panel h2{ margin-bottom:14px; }
.modal__panel .list-check{ margin-top:18px; }
.modal__foot{ margin-top:28px; padding-top:22px; border-top:1px solid var(--line); }
@keyframes fade{ from{ opacity:0; } to{ opacity:1; } }
@keyframes pop{ from{ opacity:0; transform:translateY(14px) scale(0.985); } to{ opacity:1; transform:none; } }

/* ---------- forms ---------- */
.form-field{ display:flex; flex-direction:column; gap:8px; }
.form-field label{ font-size:0.84rem; letter-spacing:0.03em; color:var(--muted); }
.form-field input,.form-field textarea,.form-field select{
  font-family:var(--body); font-size:1rem; padding:14px 16px;
  border-radius:14px; border:1px solid var(--line-strong); background:var(--white); color:var(--brown);
}
.form-field textarea{ resize:vertical; min-height:150px; }
.optin{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:center; }
.optin input[type="email"]{
  flex:1 1 280px; padding:16px 20px; border-radius:999px;
  border:1px solid transparent; font-family:var(--body); font-size:1rem;
}

/* ---------- media list (press) ---------- */
.media-item{
  display:grid; grid-template-columns:1fr auto; gap:26px; align-items:center;
  padding:28px 0; border-top:1px solid var(--line);
}
.media-item:last-of-type{ border-bottom:1px solid var(--line); }
.media-outlet{
  font-family:var(--body); font-size:0.76rem; letter-spacing:0.12em;
  text-transform:uppercase; color:var(--sage-deep); margin-bottom:8px;
}
.media-title{
  font-family:var(--heading); color:var(--brown); font-size:1.16rem;
  line-height:1.4; margin-bottom:0;
}
@media (max-width:640px){ .media-item{ grid-template-columns:1fr; gap:16px; } }
.pending{
  font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--muted); border:1px solid var(--line); border-radius:999px; padding:6px 14px;
  display:inline-block; white-space:nowrap;
}

/* ---------- reveal on scroll ----------
   Content is visible by default. The hidden start state applies only when JS is
   running (html.js), so a script failure can never leave a section invisible. */
.reveal{ opacity:1; transform:none; }
html.js .reveal{
  opacity:0; transform:translateY(18px);
  transition:opacity 0.6s ease, transform 0.6s ease;
}
html.js .reveal.is-visible{ opacity:1; transform:none; }

/* ---------- footer ---------- */
.site-footer{ background:var(--linen-soft); padding:36px 0 0; margin-top:0; }
.footer-top{
  display:grid; grid-template-columns:1fr 1.9fr; gap:40px; align-items:start;
  padding-bottom:28px;
}
@media (max-width:740px){ .footer-top{ grid-template-columns:1fr; gap:26px; } }

.footer-logo{ width:118px; height:auto; }
.footer-tagline{
  font-family:var(--heading); font-style:italic; color:var(--brown);
  font-size:0.94rem; line-height:1.45; margin:12px 0 14px; max-width:28ch;
}

.footer-social{ display:flex; gap:10px; }
.footer-social a{
  width:36px; height:36px; border-radius:50%;
  border:1px solid var(--line-strong); color:var(--brown);
  display:flex; align-items:center; justify-content:center;
  transition:background 0.22s ease, color 0.22s ease, border-color 0.22s ease, transform 0.22s ease;
}
.footer-social a:hover{
  background:var(--brown); color:var(--white); border-color:var(--brown);
  transform:translateY(-2px);
}
.footer-social svg{ width:16px; height:16px; display:block; }

.footer-cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:600px){ .footer-cols{ grid-template-columns:1fr 1fr; gap:22px; } }
.footer-col{ display:flex; flex-direction:column; gap:8px; }
.footer-col__title{
  font-family:var(--body); font-size:0.7rem; font-weight:700;
  letter-spacing:0.14em; text-transform:uppercase; color:var(--sage-deep); margin:0 0 2px;
}
.footer-col a{
  font-size:0.88rem; line-height:1.4; text-decoration:none; color:var(--body-text);
  transition:color 0.2s ease;
}
.footer-col a:hover{ color:var(--brown); }

.footer-bottom{
  border-top:1px solid var(--line);
  padding:16px 0 20px;
  display:flex; flex-direction:column; align-items:center; gap:1px;
  text-align:center;
}
.footer-bottom p{
  margin:0; font-size:0.8rem; color:var(--muted); line-height:1.6;
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.001ms !important; transition-duration:0.001ms !important; }
  .reveal,html.js .reveal{ opacity:1; transform:none; }
}

/* ---------- testimonial cards (real quotes) ---------- */
.t-card{
  border-radius:var(--radius); padding:30px 28px;
  background:var(--white); border:1px solid var(--line);
  display:flex; flex-direction:column; gap:14px;
  box-shadow:var(--shadow-soft);
}
.t-card__head{ display:flex; align-items:center; gap:12px; }
.t-avatar{
  width:44px; height:44px; border-radius:50%; flex-shrink:0;
  background:var(--linen); color:var(--brown);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--heading); font-size:0.95rem; font-weight:600; letter-spacing:0.02em;
}
.t-card__name{ font-family:var(--body); font-weight:600; color:var(--brown); font-size:0.96rem; line-height:1.3; }
.t-card__org{ font-family:var(--body); font-size:0.78rem; color:var(--muted); line-height:1.3; }
.t-stars{ color:var(--sage); font-size:0.9rem; letter-spacing:0.14em; }
.t-card__quote{
  font-family:var(--heading); font-style:italic; color:var(--brown);
  font-size:1rem; line-height:1.62; margin:0;
}
.t-card__date{ font-family:var(--body); font-size:0.76rem; color:var(--muted); margin-top:auto; }

/* dark and sage variants for rhythm inside a collage */
.t-card--brown{ background:var(--brown); border-color:transparent; }
.t-card--brown .t-card__quote,.t-card--brown .t-card__name{ color:var(--white); }
.t-card--brown .t-card__org,.t-card--brown .t-card__date{ color:rgba(255,255,255,0.7); }
.t-card--brown .t-avatar{ background:rgba(255,255,255,0.16); color:var(--white); }
.t-card--brown .t-stars{ color:var(--linen); }
.t-card--sage{ background:var(--sage); border-color:transparent; }
.t-card--sage .t-card__quote,.t-card--sage .t-card__name{ color:var(--white); }
.t-card--sage .t-card__org,.t-card--sage .t-card__date{ color:rgba(255,255,255,0.78); }
.t-card--sage .t-avatar{ background:rgba(255,255,255,0.2); color:var(--white); }
.t-card--sage .t-stars{ color:var(--white); }
.t-card--linen{ background:var(--linen-soft); border-color:transparent; box-shadow:none; }

/* masonry style column flow for the full wall */
.t-wall{ column-count:3; column-gap:22px; }
.t-wall > *{ break-inside:avoid; margin-bottom:22px; width:100%; }
@media (max-width:980px){ .t-wall{ column-count:2; } }
@media (max-width:640px){ .t-wall{ column-count:1; } }

/* ---------- video testimonial (lazy facade) ---------- */
.video-embed{
  position:relative; width:100%; aspect-ratio:9/16;
  border-radius:var(--radius-sm); overflow:hidden;
  background:linear-gradient(160deg, var(--linen) 0%, var(--linen-soft) 60%, var(--white) 100%);
  border:1px solid var(--line);
}
.video-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-embed__play{
  position:absolute; inset:0; width:100%; height:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  background:none; border:0; cursor:pointer; color:var(--brown);
  font-family:var(--body); padding:20px;
  transition:background 0.25s ease;
}
.video-embed__play:hover{ background:rgba(103,85,83,0.05); }
.video-embed__icon{
  width:58px; height:58px; border-radius:50%;
  background:var(--white); border:1px solid var(--line-strong);
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-card);
  transition:transform 0.25s ease, background 0.25s ease, color 0.25s ease;
}
.video-embed__play:hover .video-embed__icon{ transform:scale(1.06); background:var(--brown); color:var(--white); }
.video-embed__icon svg{ width:20px; height:20px; margin-left:3px; }
.video-embed__label{ font-size:0.84rem; font-weight:600; letter-spacing:0.02em; }
.video-embed__hint{ font-size:0.74rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted); }

/* ---------- marquee band ---------- */
.marquee{ overflow:hidden; padding:26px 0; }
.marquee__track{ display:flex; width:max-content; animation:marquee 56s linear infinite; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
.marquee__group{ display:flex; flex-shrink:0; }
.marquee__item{
  display:flex; align-items:center; padding-right:0.9em;
  font-family:var(--heading); font-style:italic; font-weight:500; white-space:nowrap;
  font-size:clamp(2.2rem,4.6vw,3.5rem); line-height:1.2; color:var(--brown);
}
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){
  .marquee__track{ animation:none; width:100%; justify-content:center; }
  .marquee__group[aria-hidden="true"]{ display:none; }
  .marquee__group .marquee__item:not(:first-child){ display:none; }
}

/* ---------- video cover (warm brand treatment over the real frame) ---------- */
.video-embed__img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:saturate(0.92) sepia(0.14) contrast(1.02);
  transition:transform 0.6s cubic-bezier(.2,.8,.3,1);
}
.video-embed__play{ justify-content:flex-end; align-items:flex-start; text-align:left; padding:0; }
.video-embed__play::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(to top, rgba(74,61,59,0.92) 0%, rgba(103,85,83,0.55) 34%, rgba(103,85,83,0.08) 62%, rgba(234,213,196,0.10) 100%);
}
.video-embed__play:hover{ background:none; }
.video-embed__play:hover .video-embed__img{ transform:scale(1.04); }
.video-embed__play .video-embed__icon{
  position:absolute; top:50%; left:50%; z-index:2; transform:translate(-50%,-50%);
  width:64px; height:64px; background:rgba(255,255,255,0.9); border:0; color:var(--brown);
  backdrop-filter:blur(4px);
}
.video-embed__play:hover .video-embed__icon{ transform:translate(-50%,-50%) scale(1.08); background:var(--white); color:var(--brown); }
.video-embed__play .video-embed__label,
.video-embed__play .video-embed__hint{ position:relative; z-index:2; margin:0 24px; }
.video-embed__play .video-embed__label{
  font-family:var(--script); font-weight:400; font-size:2.6rem; line-height:1;
  color:var(--white); letter-spacing:0.01em;
}
.video-embed__play .video-embed__hint{ color:var(--linen); margin-top:8px; margin-bottom:24px; }
@media (prefers-reduced-motion: reduce){ .video-embed__img{ transition:none; } }

/* ---------- footer credit: pinned to the bottom of the "More" column ---------- */
.footer-top{ align-items:stretch; }
.footer-cols{ align-items:stretch; }
.footer-col .footer-credit{
  margin-top:auto; padding-top:18px;
  font-family:var(--heading); font-style:italic; font-size:0.84rem; color:var(--muted);
}
.footer-col .footer-credit:hover{ color:var(--brown); }

/* ---------- formats grid: closing CTA card spans the full row ---------- */
.format-cta{
  grid-column:1 / -1;
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 28px;
}
.format-cta h3, .format-cta p{ margin:0; }

/* ---------- Luma events embed ---------- */
.luma-embed{
  max-width:860px; margin:0 auto; border-radius:var(--radius); overflow:hidden;
  background:var(--white); border:1px solid var(--line); box-shadow:var(--shadow-soft);
}
.luma-embed iframe{ display:block; width:100%; height:520px; border:0; }
@media (max-width:560px){ .luma-embed iframe{ height:600px; } }

/* ---------- real photos in hero frames ---------- */
.hero-photo{
  width:100%; height:auto; aspect-ratio:3/4; object-fit:cover;
  border-radius:var(--radius); box-shadow:var(--shadow-card);
}
@media (max-width:880px){ .split .hero-photo{ max-width:440px; } }
h1.hero-title{ font-size:clamp(2rem,4vw,3rem); }

/* ---------- "now offering" pop-out ---------- */
.now-offering{
  margin-top:28px; display:grid; grid-template-columns:220px 1fr; align-items:stretch;
  border-radius:var(--radius); overflow:hidden; background:var(--linen);
  box-shadow:var(--shadow-lift); position:relative;
}
html.js .now-offering.is-visible{ animation:offer-pop 0.7s cubic-bezier(.2,.9,.3,1.25) both; }
.now-offering__img{ width:100%; height:100%; min-height:220px; object-fit:cover; object-position:60% 55%; }
.now-offering__body{ padding:30px 32px; display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.now-offering__badge{
  font-family:var(--body); font-size:0.72rem; font-weight:700; letter-spacing:0.16em; text-transform:uppercase;
  background:var(--brown); color:var(--white); padding:6px 14px; border-radius:999px;
}
h3.now-offering__title{ font-size:clamp(1.4rem,2.4vw,1.85rem); }
.now-offering__body p{ margin:0 0 6px; }
@keyframes offer-pop{ 0%{ opacity:0; transform:scale(0.94) translateY(12px); } 100%{ opacity:1; transform:none; } }
@media (max-width:640px){
  .now-offering{ grid-template-columns:1fr; }
  .now-offering__img{ height:220px; min-height:0; }
  .now-offering__body{ padding:24px 22px; }
}
@media (prefers-reduced-motion: reduce){ .now-offering{ animation:none; } }

/* ---------- mobile hardening ---------- */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body{ overflow-wrap:break-word; }
.grid-2 > *, .grid-3 > *, .grid-4 > *, .split > *, .collage__col, .footer-cols > *,
.offer, .t-card, .card, .route-card, .media-item > *{ min-width:0; }
a[href^="mailto:"]{ overflow-wrap:anywhere; }
@media (max-width:560px){
  .section{ padding:64px 0; }
  .hero{ padding:48px 0 44px; }
  .btn-row .btn{ flex:1 1 auto; }
  .marquee__item{ font-size:1.9rem; }
  .modal{ padding:12px; align-items:flex-end; }
  .modal__panel{ max-height:88vh; max-height:88dvh; border-radius:var(--radius) var(--radius) 0 0; }
}

/* ---------- Blueprint preview beside the free guide signup ---------- */
.blueprint{
  display:grid; grid-template-columns:minmax(0,0.95fr) minmax(0,1.05fr);
  gap:56px; align-items:center;
}
.blueprint__img{
  width:100%; height:auto; border-radius:18px;
  box-shadow:0 30px 60px -28px rgba(0,0,0,0.55);
  transform:rotate(-1.5deg); transition:transform 0.5s cubic-bezier(.2,.8,.3,1);
}
.blueprint__img:hover{ transform:rotate(0deg) scale(1.01); }
html.js .blueprint__img.reveal.is-visible{ transform:rotate(-1.5deg); }
html.js .blueprint__img.reveal.is-visible:hover{ transform:rotate(0deg) scale(1.01); }
.blueprint__body{ text-align:left; }
.blueprint .optin{ justify-content:flex-start; }
@media (max-width:880px){
  .blueprint{ grid-template-columns:1fr; gap:34px; }
  .blueprint__img{ max-width:520px; margin:0 auto; }
  .blueprint__body{ text-align:center; }
  .blueprint .optin{ justify-content:center; }
}

/* ---------- About: smaller photo beside "In short" ---------- */
.split--photo-right{ grid-template-columns:minmax(0,1.3fr) minmax(0,0.7fr); }
.split--photo-right .hero-photo{ max-width:400px; justify-self:end; }
@media (max-width:880px){ .split--photo-right .hero-photo{ justify-self:center; } }

/* ---------- Home: slow drifting band of moments ---------- */
.moments{ overflow:hidden; padding:64px 0 76px; }
.moments__track{ display:flex; width:max-content; animation:moments-drift 80s linear infinite; }
.moments:hover .moments__track{ animation-play-state:paused; }
.moments__group{ display:flex; align-items:flex-start; gap:20px; padding-right:20px; flex-shrink:0; }
.moments__img{
  height:300px; width:auto; flex-shrink:0; object-fit:cover;
  border-radius:22px; box-shadow:var(--shadow-card);
}
.moments__img:nth-child(even){ margin-top:34px; }
@keyframes moments-drift{ to{ transform:translateX(-50%); } }
@media (max-width:560px){
  .moments{ padding:44px 0 54px; }
  .moments__img{ height:200px; border-radius:16px; }
  .moments__img:nth-child(even){ margin-top:22px; }
  .moments__group{ gap:14px; padding-right:14px; }
}
@media (prefers-reduced-motion: reduce){
  .moments{ overflow-x:auto; }
  .moments__track{ animation:none; }
  .moments__group[aria-hidden="true"]{ display:none; }
}

/* ---------- ALIVE pillar cards with photos (For Individuals page) ---------- */
.pillar-grid--photos .pillar-card{ align-items:center; text-align:center; padding:26px 20px 24px; }
.pillar-card__img{
  width:92px; height:92px; border-radius:50%; object-fit:cover;
  border:3px solid var(--white); box-shadow:0 10px 24px -14px rgba(103,85,83,0.6);
  transition:transform 0.3s cubic-bezier(.2,.8,.3,1);
}
.pillar-card:hover .pillar-card__img{ transform:scale(1.06); }
.pillar-grid--photos .pillar-card__letter{ margin-top:4px; }
@media (max-width:560px){
  .pillar-grid--photos .pillar-card{
    display:grid; grid-template-columns:68px 34px 1fr; grid-template-rows:auto auto;
    column-gap:12px; align-items:center; text-align:left; padding:16px 18px;
  }
  .pillar-grid--photos .pillar-card__img{ width:68px; height:68px; grid-row:1 / 3; }
  .pillar-grid--photos .pillar-card__letter{ grid-row:1 / 3; margin:0; text-align:center; }
  .pillar-grid--photos .pillar-card__name{ grid-column:3; align-self:end; }
  .pillar-grid--photos .pillar-card__more{ grid-column:3; align-self:start; margin:0; }
}

/* ---------- Home: compact testimonials band ---------- */
.proof-compact{ padding:64px 0; }
.proof-compact .section-head{ margin-bottom:26px; }
.proof-compact .proof-logos{ margin-bottom:34px; }
.proof-compact .t-card{ padding:24px 24px; gap:10px; }
.proof-compact .t-card__quote{ font-size:0.97rem; }
@media (max-width:560px){ .proof-compact{ padding:48px 0; } }

/* ---------- Speaking: side by side photo pair ---------- */
.photo-pair{
  display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);
  gap:22px; padding-top:72px; padding-bottom:8px;
}
.photo-pair__img{
  width:100%; height:380px; object-fit:cover;
  border-radius:var(--radius); box-shadow:var(--shadow-card);
}
@media (max-width:760px){
  .photo-pair{ gap:12px; padding-top:48px; }
  .photo-pair__img{ height:220px; border-radius:18px; }
}
@media (max-width:420px){ .photo-pair__img{ height:170px; } }

/* ---------- legal pages ---------- */
.legal h1{ margin-bottom:10px; }
.legal__updated{ font-size:0.9rem; color:var(--muted); margin-bottom:34px; }
.legal h2.h-sans{ margin:36px 0 12px; font-size:1.14rem; }
.legal p, .legal li{ font-size:1rem; line-height:1.75; }
.legal ul{ margin:0 0 1.1em; padding-left:22px; }
.legal li{ margin-bottom:8px; }
.legal li::marker{ color:var(--sage); }
.legal a{ color:var(--sage-deep); text-underline-offset:3px; }
.legal a:hover{ color:var(--brown); }
