/* ==============================================================
   Ilya Guide  —  Master Stylesheet
   ============================================================== */

/* ----------  COLOR PALETTE  ---------------------------------- */
:root{
  --base:           #FAF7ED;
  --primary-gold:   #D6BA73;
  --forest-green:   #4A6E57;
  --moss-gray:      #A9B7A0;
  --deep-ink:       #1A1A1A;
}

/* ----------  GLOBAL RESET  ----------------------------------- */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Instrument Sans',sans-serif;
  background:linear-gradient(to bottom,var(--base),#FFFDF7);
  color:var(--deep-ink);
  line-height:1.6;
}

/* ==============================================================
   TYPOGRAPHY
   ============================================================== */
h1,h2,h3{
  font-family:'Cormorant Garamond',serif;
  color:var(--deep-ink);
  margin:0 0 .5em 0;
}

/* Main hero H1 (index) */
h1{
  font-size:clamp(2.5rem,5vw,4rem);
  line-height:1.1;
  text-align:center;
}

/* Universal section H2s */
h2{
  font-size:1.8rem;
  text-align:center;
  position:relative;
  margin:0 auto 2.5rem;          /* centers the heading block */
}

h2::after{                        /* gold underline */
  content:'';
  display:block;
  width:70px;
  height:2px;
  background:var(--primary-gold);
  margin:.6rem auto 0;
}

/* Paragraph defaults */
p{
  font-size:1.125rem;
  max-width:60ch;
  margin:0 0 1em 0;
}
img{max-width:100%;display:block}

/* ==============================================================
   NAVIGATION
   ============================================================== */
.nav-bar{
  background:var(--forest-green);
  padding:1rem;
}
.nav-container{
  max-width:1100px;
  margin:auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.brand{
  font-family:'Cormorant Garamond',serif;
  font-size:1.5rem;
  color:#fff;
  text-decoration:none;
}
.nav-links .Nicebutton{margin-left:.5rem;color:#fff}

/* ==============================================================
   BUTTONS
   ============================================================== */
.Nicebutton{
  background:var(--forest-green);
  border:1px solid var(--forest-green);
  border-radius:6px;
  padding:.6rem 1.2rem;
  color:#fff;
  text-decoration:none;
  font-size:1rem;
  font-family:'Instrument Sans',sans-serif;
  display:inline-block;
  transition:background .2s ease,transform .2s ease;
}
.Nicebutton--large{
  font-size:1.125rem;
  padding:.9rem 1.9rem;
}
.Nicebutton.secondary{
  background:transparent;
  padding:.9rem 1.9rem;
  color:var(--forest-green);
  border-color:var(--forest-green);
}
.Nicebutton:hover{
  background:var(--primary-gold);
  color:var(--deep-ink);
  transform:translateY(-2px);
}
.Nicebutton:active{transform:translateY(0)}

/* ==============================================================
   LAYOUT HELPERS
   ============================================================== */
section{
  padding:clamp(3rem,8vw,6rem) 1.5rem;
}
.section-alt{background:#FBF9F1}

.content-wrapper{
  max-width:1100px;
  margin:auto;
}
.two-col{
  display:flex;
  flex-direction:column;
  gap:2rem;
}
@media(min-width:768px){
  .two-col{flex-direction:row;align-items:center}
}

/* ==============================================================
   HERO (Index)
   ============================================================== */
.hero-section{
  text-align:center;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  min-height:80vh;
  background:#FFFDF7;
}
.hero-section .subtitle{
  font-size:1.25rem;
  margin-bottom:2rem;
  max-width:60ch;
}
.hero-ctas{
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  justify-content:center;
}

/* ==============================================================
   SOCIAL-PROOF  (Logo grid + stats)
   ============================================================== */
.logo-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem;
  opacity:.85;
  animation:logoScroll 18s linear infinite;
}
@media(min-width:768px){
  .logo-grid{grid-template-columns:repeat(4,1fr)}
}
@keyframes logoScroll{
  0%{transform:translateY(0)}
  100%{transform:translateY(-40%)}
}
.stat-list{
  list-style:none;
  padding:0;
}
.stat-list li{
  margin:.5rem 0;
  font-size:1.15rem;
}

/* ==============================================================
   PROCESS STEPS
   ============================================================== */
.process-steps{
  display:flex;
  flex-wrap:wrap;
  gap:1.5rem;
  list-style:none;
  padding:0;
  justify-content:center;
}
.process-steps li{
  flex:0 0 220px;
  border:1px solid var(--moss-gray);
  border-radius:12px;
  padding:1.5rem;
  text-align:center;
  background:#fff;
}
.step-num{
  display:block;
  width:44px;height:44px;
  line-height:44px;
  border-radius:50%;
  background:var(--primary-gold);
  color:#000;
  font-weight:600;
  margin:0 auto 1rem;
}
.process-steps h3{
  margin:.3rem 0 .6rem;
  font-size:1.2rem;
}

/* ==============================================================
   FEATURE CARDS
   ============================================================== */
.feature-cards{
  display:grid;
  gap:1.5rem;
  list-style:none;
  padding:0;
  grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
}
.feature-cards li{
  border:1px solid var(--moss-gray);
  border-radius:12px;
  padding:1.5rem;
  background:#fff;
}
.feature-cards h3{
  margin-top:0;
  font-size:1.15rem;
}

/* ==============================================================
   WHY-EXISTS Image
   ============================================================== */
.section-img{
  border-radius:12px;
  box-shadow:0 8px 24px rgba(0,0,0,.08);
}

/* ==============================================================
   TESTIMONIALS
   ============================================================== */
.testimonial-row{
  display:grid;
  gap:1.5rem;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
}
.testimonial{
  background:#fff;
  border:1px solid var(--moss-gray);
  border-radius:12px;
  padding:1.5rem;
  font-size:1rem;
  font-style:italic;
}
.testimonial cite{
  display:block;
  margin-top:.8rem;
  font-style:normal;
  color:var(--forest-green);
  font-weight:500;
}

/* ==============================================================
   FAQ ACCORDION
   ============================================================== */
.faq-item{
  max-width:800px;
  margin:0 auto 1rem;
}
.faq-question{
  width:100%;
  background:#fff;
  border:1px solid var(--moss-gray);
  border-radius:8px;
  padding:1rem 1.2rem;
  font-weight:600;
  font-family:'Instrument Sans',sans-serif;
  text-align:left;
  cursor:pointer;
  position:relative;
}
.faq-question::after{
  content:'+';
  position:absolute;
  right:1rem;top:50%;
  transform:translateY(-50%);
  font-weight:700;
}
.faq-question.open::after{content:'−'}
.faq-answer{
  max-height:0;
  overflow:hidden;
  padding:0 1.2rem;
  transition:max-height .35s ease;
}
.faq-answer.open{max-height:300px;padding:1rem 1.2rem}

/* ==============================================================
   FINAL CALL-TO-ACTION
   ============================================================== */
.final-cta{
  background: #002E32;
  color:#fff;
  text-align:center;
}
.final-cta h2{
  color:#fff;
  margin-bottom:1.5rem;
  font-size:2rem;
}

/* ==============================================================
   FOOTER
   ============================================================== */
footer{
  text-align:center;
  border-top:1px solid var(--moss-gray);
  padding:2rem 0;
  background:#FFFDF7;
}
footer p{
  margin-bottom:.5rem;
  font-size:1rem;
  color:var(--forest-green);
  font-family: 'Playfair Display';
}
footer .Nicebutton{
  margin:.25rem;
  font-size:.9rem;
}

/* ==============================================================
   ABOUT / WHAT-WE-DO  HERO BLOCK
   ============================================================== */
.about-hero{
  text-align:center;
  max-width:900px;
  margin:0 auto;
  padding:clamp(3rem,8vw,6rem) 1.5rem;
}
.about-hero h1{
  font-size:clamp(2.25rem,5vw,3.5rem);
  margin-bottom:1rem;
}
.about-hero p{
  font-size:1.2rem;
  max-width:60ch;
  margin:0 auto;
}

/* ==============================================================
   RESPONSIVE TWEAKS
   ============================================================== */
@media(max-width:480px){
  h1{font-size:2rem}
  .logo-grid{grid-template-columns:repeat(2,1fr)}
  .feature-cards,
  .process-steps{grid-template-columns:1fr}
}

/* ----------  Utility: center body copy  ------------------------- */
.centered-copy{
  text-align:center;
  max-width:60ch;   /* keep line length comfortable           */
  margin:0 auto;    /* horizontally center the block itself   */
}

/* ==============================================================
   CHAT COMPONENTS (userflow.html + setup page)
   ============================================================== */

#chatContainer{
  height:92vh;
  max-width:1000px;
  margin:auto;
  display:flex;
  flex-direction:column;
  border:1px solid var(--moss-gray);
  border-radius:12px;
  background:#f8f8f8;
}

#chatLog{
  flex:1 1 auto;
  overflow-y:auto;
  padding:2rem;
  background:#fff;
  border-radius:12px 12px 0 0;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}

.chatRow{
  display:flex;
  margin:.5em 0;
}

/* flip alignment */
.chatRow.left  { justify-content: flex-end; }
.chatRow.right { justify-content: flex-start; }

/* bot bubble (right) */
.botBubble {
  background: var(--forest-green);
  color: #fff;
  padding: 8px 12px;
  border-radius: 18px 18px 0 18px;
  max-width: 75%;
}

/* user bubble (left) */
.userBubble {
  background: var(--moss-gray);
  color: #000;
  padding: 8px 12px;
  border-radius: 18px 0 18px 18px;
  max-width: 75%;
}

/* ensure bubbles wrap text */
.botBubble,
.userBubble {
  word-wrap: break-word;
  white-space: pre-wrap;
}


.chatComposer{
  display:flex;
  gap:.6rem;
  padding:1rem 1.25rem;
  border-top:1px solid #eee;
  background:#fff;
  border-radius:0 0 12px 12px;
}

.chatField{
  flex:1 1 auto;
  height:44px;
  padding:0 .9rem;
  font:400 1rem/1 'Cormorant Garamond',serif;
  color:#222;
  border:1px solid #d0d7de;
  border-radius:22px;
}
.chatSend{
  flex:0 0 44px;
  height:44px;
  display:grid;
  place-items:center;
  border:none;
  border-radius:50%;
  background:var(--forest-green);
  color:#fff;
  cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M2 21l21-9L2 3l4 9-4 9z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:18px;
}
.chatSend:hover{background:var(--primary-gold);}

.optionButton {
  background: var(--primary-gold);
  border: none;
  padding: .5rem 1rem;
  margin: .25rem;
  border-radius: 6px;
  cursor: pointer;
}
.optionButton:hover {
  background: var(--forest-green);
  color: #fff;
}

/* Progress bar container */
#progressContainer {
  height: 4px;
  background: var(--moss-gray);
  margin: 1rem auto 0 auto;
  max-width: 1000px;
  border-radius: 2px;
  overflow: hidden;
}

/* Filling bar */
#progressBar {
  width: 0%;
  height: 100%;
  background: var(--forest-green);
  transition: width 0.4s ease;
}

/* Typing indicator bubble */
.typing {
  font-style: normal;
  animation: blink 1s steps(2,end) infinite;
}
@keyframes blink {
  to { opacity: .3; }
}

.response-list {
  list-style:none;
  padding:0;
  max-width: 800px;
  margin: 0 auto;
}
.response-list li {
  margin: 1rem 0;
  padding: .75rem 1rem;
  border-left: 4px solid var(--forest-green);
  background: #fff;
  border-radius: 4px;
}
.response-list strong {
  display:block;
  font-family: 'Cormorant Garamond', serif;
  margin-bottom: .25rem;
}

/* ========================================
   LOGIN / REGISTER PAGES
   ======================================== */

body.loginBody {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  background: linear-gradient(to bottom, var(--base), #FFFDF7);
  font-family: 'Instrument Sans', sans-serif;
}

.loginCard {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.1);
  padding: 2.5rem 2rem;
  max-width: 400px;
  width: 90%;
  text-align: center;
}

.loginTitle {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.75rem;
  margin-bottom: 1.5rem;
  color: var(--deep-ink);
}

.loginForm {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.loginForm input {
  padding: 0.75rem 1rem;
  font-size: 1rem;
  border: 1px solid var(--moss-gray);
  border-radius: 8px;
  font-family: 'Instrument Sans', sans-serif;
}

.primaryButton {
  background-color: var(--forest-green);
  border: 1px solid var(--forest-green);
  color: #fff;
  font-size: 1rem;
  font-family: 'Instrument Sans', sans-serif;
  padding: 0.75rem;
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.15s ease;
}

.primaryButton:hover {
  background-color: var(--primary-gold);
  color: var(--deep-ink);
  transform: translateY(-2px);
}

.primaryButton:active {
  transform: translateY(0);
}

.loginFootnote {
  margin-top: 1.5rem;
  font-size: 0.9rem;
  color: var(--deep-ink);
}

.loginFootnote a {
  color: var(--forest-green);
  text-decoration: underline;
}

.loginFootnote a:hover {
  color: var(--primary-gold);
}

/* ==== Skip button above chat ==== */
.skip-container {
  text-align: center;
  margin-bottom: 1.5rem;
}
.skip-container .Nicebutton {
  background: var(--primary-gold);
  color: var(--deep-ink);
  border-color: var(--primary-gold);
  padding: 0.6rem 1.2rem;
}
.skip-container .Nicebutton:hover {
  background: var(--forest-green);
  color: #fff;
}
.summary {
  background: #fff;
  border: 1px solid var(--moss-gray);
  border-radius: 8px;
  padding: 1.5rem;
  margin-bottom: 2rem;
  line-height: 1.5;
}
.summary {
  background: #fff;
  border: 1px solid var(--moss-gray);
  border-radius: 8px;
  padding: 1.5rem;
  margin-bottom: 2rem;
  line-height: 1.5;
}

.raw-panel {
  font-size: 0.9rem;
  color: var(--deep-ink);
}
.raw-panel summary {
  cursor: pointer;
  font-weight: 600;
  margin-bottom: .5rem;
}
.raw-panel ul {
  list-style: disc inside;
  margin-top: .5rem;
}
.section-divider {
  margin: 2rem 0;
  border: none;
  border-top: 1px solid var(--moss-gray);
}

.summary-box {
  background: #fff;
  border: 1px solid var(--moss-gray);
  padding: 1.25rem;
  border-radius: 8px;
  line-height: 1.5;
}

.response-list {
  list-style: disc inside;
  padding-left: 1rem;
  margin-bottom: 2rem;
}

.workshop-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.5rem;
  margin-top: 1rem;
}

.workshop-card {
  background: #fdfdfc;
  border: 1px solid var(--moss-gray);
  padding: 1rem;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.workshop-card h4 {
  margin-top: 0;
}

.workshop-card .button {
  display: inline-block;
  margin-top: 0.5rem;
  padding: 0.4rem 0.8rem;
  background: var(--primary-gold);
  color: #fff;
  text-decoration: none;
  border-radius: 4px;
  font-weight: bold;
}

#question-box {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
}

/* ▸────────────────────  HERO  ────────────────────*/
.hg-hero{
  background: #002E32;           /* deep-teal like Hampton */
  color: #fff;
  padding: 7rem 0 6rem;
  text-align:center;
}
.hg-hero h1{
  font-family:"Playfair Display",serif;
  font-size:clamp(2.8rem,5.5vw,4.2rem);
  line-height:1.15;
  margin:0 0 1.4rem;
}
.hg-subtitle{font-size:1.25rem;max-width:700px;margin:0 auto 2.5rem;color:#E7E9E8}

/* ▸────────────  STATS  ────────────*/
.hg-stats__title{font-family:"Playfair Display",serif;margin:0 0 3rem;text-align:center}
.hg-stats__grid{display:flex;flex-wrap:wrap;justify-content:center;gap:3rem;padding:0;list-style:none}
.hg-stats__grid li{text-align:center}
.hg-stats__grid strong{display:block;font-size:2.2rem;color:var(--forest-green)}

/* ▸────────────  PEOPLE  ────────────*/
.hg-people{margin:5rem 0}
.hg-people__row{
  display:flex;overflow-x:auto;gap:1.5rem;padding-bottom:1rem;scroll-snap-type:x mandatory;
}
.person-card{
  flex:0 0 300px;background:#fff;border:1px solid #E4E4E4;border-radius:8px;
  display:flex;gap:1rem;padding:1rem;scroll-snap-align:start;
}
.person-card img{width:90px;height:90px;border-radius:6px;object-fit:cover}

.hg-people__row{
  animation:scrollRow 35s linear infinite;
}
@keyframes scrollRow{
  0%{transform:translateX(0)}
  100%{transform:translateX(calc(-300px * 6))} /* card width × #cards */
}


/* ▸────────────  WHY SECTION  ────────────*/
.hg-why{margin:6rem 0;gap:3rem}
.hg-why__text h2{margin-top:0;font-family:"Playfair Display",serif;font-size:2rem}
.hg-why__img-grid{
  display:grid;gap:.6rem;grid-template-columns:repeat(2,1fr);
}
.hg-why__img-grid img{border-radius:8px;width:100%;height:120px;object-fit:cover}

/* ▸────────────  BENEFIT GRID  ────────────*/
.benefit-grid{
  display:grid;gap:1.5rem;margin-top:3rem;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
}
.benefit-grid article{
  background:#fff;border:1px solid #E4E4E4;border-radius:8px;padding:2rem;
}
.benefit-grid h3{margin:0 0 .6rem;font-family:"Playfair Display",serif;font-size:1.25rem}

/* ▸────────────  LOGO STRIP  ────────────*/
.hg-logos{background:#fff;padding:3rem 0}
.logo-row{display:flex;flex-wrap:wrap;justify-content:center;gap:3rem;list-style:none;margin:0;padding:0}
.logo-row img{opacity:.8;max-width:120px}

/* ▸────────────  FINAL CTA  ────────────*/
.hg-cta{background:#002E32;color:#fff;text-align:center;padding:5rem 0}
.hg-cta h2{font-family:"Playfair Display",serif;font-size:2.2rem;margin:0 0 1rem}

/* ▸────────  Buttons reused  ─────────*/
.btn{display:inline-block;padding:.85rem 2rem;font:600 1rem/1 "Instrument Sans",sans-serif;border-radius:6px;text-decoration:none;transition:.25s}
.btn--accent{background:var(--primary-gold);color:var(--deep-ink);border:1px solid var(--primary-gold)}
.btn--outline{background:transparent;border:2px solid var(--primary-gold);color:#fff}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}

/* ▸────────────────  NAV (Hampton-style)  ───────────────*/
.hg-nav{
  position:sticky; top:0; z-index:999;
  background:#002E32;          /* deep teal bar */
  border-bottom:1px solid rgba(255,255,255,.08);
}
.hg-nav__inner{
  display:flex; align-items:center; gap:2rem;
  height:64px;
}
.hg-brand{
  font-family:"Playfair Display",serif;
  font-size:1.5rem; font-weight:600;
  color:#fff; text-decoration:none;
}
.hg-links{display:flex; gap:1.5rem; margin-left:auto}
.hg-links a{
  color:#E7E9E8; font-weight:500; text-decoration:none;
  transition:color .25s;
}
.hg-links a:hover{color:var(--primary-gold)}
.hg-cta-nav{margin-left:1.5rem}

/* ▸────────────  HERO text contrast  ────────────*/
.hg-hero{background:#002E32; color:#fff;}
.hg-hero h1{color:#fff}
.hg-hero .hg-subtitle{color:#E7E9E8}

/* ▸────────────  Pull page under nav on scroll  ─────────*/
body{scroll-margin-top:64px}   /* so #anchors aren’t hidden */

/* ▸────────────  Button accent tweak  ────────────*/
.btn--outline{
  border-color:var(--primary-gold); color:#fff;
}
.btn--outline:hover{background:var(--primary-gold); color:var(--deep-ink)}

/* ─ NAV BAR ─ */
.hg-nav{position:sticky;top:0;z-index:1000;background:#002E32;border-bottom:1px solid rgba(255,255,255,.08)}
.hg-nav__inner{display:flex;align-items:center;height:64px}
.hg-brand{flex:1;text-align:center;font:600 1.5rem/1 "Playfair Display";color:#fff;text-decoration:none}
.hg-cta-wrap .btn{margin-left:.75rem}
.hg-cta-wrap .btn--outline{background:transparent;border:2px solid var(--primary-gold);color:#fff}
.hg-cta-wrap .btn--outline:hover{background:var(--primary-gold);color:var(--deep-ink)}

/* burger */
.hg-burger{background:none;border:none;display:flex;flex-direction:column;gap:4px;margin-right:auto;cursor:pointer}
.hg-burger span{width:24px;height:2px;background:#fff;display:block}

/* ─ DRAWER ─ */
.hg-backdrop{position:fixed;inset:0;backdrop-filter:blur(2px);background:rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:.25s}
.hg-backdrop.show{opacity:1;pointer-events:auto}
.hg-drawer{position:fixed;top:0;left:-260px;width:260px;height:100vh;background:#002E32;color:#fff;padding:2rem 1.5rem;transition:left .3s ease;z-index:999}
.hg-drawer.open{left:0}
.hg-close{background:none;border:none;font-size:2rem;color:#fff;margin-left:auto;cursor:pointer}
.hg-drawer-links{display:flex;flex-direction:column;gap:1.25rem;margin-top:2rem}
.hg-drawer-links a{color:#fff;text-decoration:none;font-weight:500}
.hg-drawer-links hr{border:none;border-top:1px solid rgba(255,255,255,.1);margin:1.5rem 0}
.block-full{display:block;text-align:center;margin-top:.75rem}

/* keep content from jumping under nav when anchor-scrolling */
body{scroll-margin-top:64px}

img{
  width:100%;
  height:100%;
  object-fit:cover;   /* crop placeholder like real photos */
}

/* ───────── Fixes (14-Jun) ───────────────────────── */

/* hide thin chat-progress bar except on pages that opt-in */
#progressContainer{display:none}
body.showProgress #progressContainer{display:block}

/* ── NAV hair-line exterminator ─────────────────── */
.hg-nav{border-bottom:none}           /* wipes any border you may still have */
#progressContainer{display:none!important}   /* force-hide bar everywhere   */


/* PEOPLE row – static cards, no scrollbar */
.hg-people__row{
  display:flex; gap:1.5rem;
  overflow:hidden;           /* hide native scroll bar */
  padding:1rem 0;
}
.person-card{
  flex:0 0 280px;
  background:#fff;
  border:1px solid var(--moss-gray);
  border-radius:12px;
  overflow:hidden;
}
.person-card img{
  width:100%; height:180px; object-fit:cover;
}

/* Wider content + hero typography like Hampton */
.container{width:90%; max-width:1280px; margin:0 auto}
.hg-hero h1{
  font-size:clamp(2.8rem,6vw,4.5rem);
  line-height:1.1; color:#fff; margin:0 auto .75em;
}
.hg-hero .hg-subtitle{font-size:1.25rem; color:#E7E9E8}

/* NAV bar + drawer (if not already in your sheet) */
.hg-nav{position:sticky;top:0;z-index:1000;background:#002E32;border-bottom:1px solid rgba(255,255,255,.08)}
.hg-nav__inner{display:flex;align-items:center;height:64px}
.hg-brand{flex:1;text-align:center;font:600 1.5rem/1 \"Playfair Display\",serif;color:#fff;text-decoration:none}
.hg-burger{background:none;border:none;display:flex;flex-direction:column;gap:4px;margin-right:auto;cursor:pointer}
.hg-burger span{width:24px;height:2px;background:#fff}
.hg-cta-wrap .btn{margin-left:.75rem}
.hg-cta-wrap .btn--outline{background:transparent;border:2px solid var(--primary-gold);color:#fff}
.hg-cta-wrap .btn--outline:hover{background:var(--primary-gold);color:var(--deep-ink)}

/* Drawer */
.hg-backdrop{position:fixed;inset:0;backdrop-filter:blur(2px);background:rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:.25s}
.hg-backdrop.show{opacity:1;pointer-events:auto}
.hg-drawer{position:fixed;top:0;left:-260px;width:260px;height:100vh;background:#002E32;color:#fff;padding:2rem 1.5rem;transition:left .3s ease;z-index:999}
.hg-drawer.open{left:0}
.hg-close{background:none;border:none;font-size:2rem;color:#fff;margin-left:auto;cursor:pointer}
.hg-drawer-links{display:flex;flex-direction:column;gap:1.25rem;margin-top:2rem}
.hg-drawer-links a{color:#fff;text-decoration:none;font-weight:500}
.hg-drawer-links hr{border:none;border-top:1px solid rgba(255,255,255,.1);margin:1.5rem 0}
.block-full{display:block;text-align:center;margin-top:.75rem}

/* prevent anchor jump under sticky nav */
body{scroll-margin-top:64px}

/* ─────────  NAV / progress-bar line fix  ───────── */
#progressContainer{display:none;height:0}            /* never shows line */
body.showProgress #progressContainer{display:block;height:4px}

/* ─────────  HERO strip keeps same BG as bar  ───── */
.hg-hero{background:#002E32;color:#fff;padding:6rem 1rem;text-align:center}
.hg-hero .btn--outline{border-color:var(--primary-gold);color:#fff}

/* ─────────  PEOPLE CAROUSEL  ───────── */
.hg-carousel{position:relative;overflow:hidden;margin:3rem 0}
.hg-track{
  display:flex;gap:1.5rem;                        /* horizontally laid out */
  animation:scroll 40s linear infinite;
}
@keyframes scroll{
  to{transform:translateX(-50%)}                   /* will move half-track width; we doubled cards */
}

/* fade edges */
.hg-carousel::before,
.hg-carousel::after{
  content:"";position:absolute;top:0;bottom:0;width:80px;z-index:2;
  pointer-events:none;background:linear-gradient(to right,#FFFDF7,rgba(255,253,247,0));
}
.hg-carousel::after{
  left:auto;right:0;transform:scaleX(-1);        /* mirror for right side */
}

/* hide native scroll bar (just in case) */
.hg-track::-webkit-scrollbar{display:none}
.hg-track{scrollbar-width:none}

/* card visuals */
.person-card{flex:0 0 280px;background:#fff;border:1px solid var(--moss-gray);
             border-radius:12px;overflow:hidden}
.person-card img{width:100%;height:180px;object-fit:cover}

/* ─────────  WHY COPY left-aligned  ───────── */
.prose{text-align:left;max-width:600px}

/* ─────────  FOOTER polish  ───────── */
.footer{padding:3rem 0 4rem;background:#FAF7ED;text-align:center}
.footer__grid{display:flex;flex-direction:column;gap:1.5rem}
.footer__links{display:flex;gap:1.5rem;justify-content:center}

/* ── Benefit card grid ──────────────────────────── */
.hg-benefits{
  display:grid;
  gap:2rem;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  margin:4rem 0;
}
.benefit-card{
  background:#fff;
  border:1px solid #E2E4E2;
  border-radius:12px;
  padding:2rem 1.75rem;
  box-shadow:0 6px 14px rgba(0,0,0,.06);
  transition:transform .18s ease,box-shadow .18s ease;
}
.benefit-card:hover{
  transform:translateY(-4px);
  box-shadow:0 10px 18px rgba(0,0,0,.08);
}
.benefit-card h3{
  margin:.15rem 0 1rem;
  font-size:1.2rem;
  color:var(--deep-ink);
}
.benefit-card p{font-size:1rem;margin:0;line-height:1.5}

/* ───────── NAV: kill the last 1-px line ───────── */
.hg-nav,
.hg-nav::after,
.hg-nav::before{
  border-bottom:none!important;   /* if any border sneaked in */
  box-shadow:none!important;      /* removes subtle 1-px shadow some browsers add on sticky elems */
}
.hg-hero{margin-top:-1px}         /* pulls hero up that single pixel just in case */

/* ───────── Hampton-styled buttons (Apply / Log In) ───────── */
.btn{
  display:inline-block;
  font:600 0.95rem/1 var(--inter, 'Inter', sans-serif);
  padding:0.55rem 1.75rem;
  border-radius:6px;
  transition:transform .15s ease,filter .15s ease;
}
.btn:hover{transform:translateY(-2px);filter:brightness(1.05)}
.btn:active{transform:none}

.btn--gold{
  background:var(--primary-gold);
  border:2px solid var(--primary-gold);
  color:#1a1a1a;
}
.btn--outline{
  background:transparent;
  border:2px solid var(--primary-gold);
  color:#fff;
}

/* ───────── Center “What you get” / Benefit grid ───────── */
.hg-benefits{
  --max:1100px;
  max-width:var(--max);
  margin:4rem auto;               /* centres whole block */
}

/* ▸────────  FIT / PROCESS SECTION  ─────────*/
.hg-fit{
  max-width:900px;
  margin:4rem auto;
}
.hg-fit h2{
  font:600 2rem/1.2 "Playfair Display",serif;
  margin:0 0 1.25rem;
}
.hg-fit ol{
  margin-left:1.25rem;
  padding:0;
  line-height:1.6;
}

/* Ensure copy inside the dark CTA stays readable */
.hg-cta h2,
.hg-cta p{color:#fff}


.college-card {cursor:pointer; transition:box-shadow .2s, transform .2s;}
.college-card .details {display:none; margin-top:1rem; opacity:0; transition:opacity .25s;}

.college-card.open {
  transform:scale(1.03);
  box-shadow:0 12px 22px rgba(0,0,0,.12);
}

.college-card.open .details {
  display:block;          /* reveal */
  opacity:1;
}

/* small tweaks */
.college-card header {margin-bottom:.25rem;}
.college-card .stats {list-style:none;padding:0;margin:.75rem 0;}
.college-card .stats li {margin:.25rem 0;font-size:.95rem;}

/* overview card reveal */
.benefit-card {cursor:pointer; position:relative; transition:box-shadow .2s}
.benefit-card:hover{box-shadow:0 12px 22px rgba(0,0,0,.1)}
.benefit-card .card-details{max-height:0; overflow:hidden; transition:max-height .3s ease}
.benefit-card.open .card-details{ max-height:600px; margin-top:1rem}

/* ───── College cards: collapsible details ───────────────── */
.benefit-card {
  cursor: pointer;                 /* makes it obvious you can click   */
  transition: box-shadow .18s ease, transform .18s ease;
}
.benefit-card .card-details {
  display: none;                   /* hide by default                  */
  margin-top: 1rem;
  font-size: 0.95rem;
  line-height: 1.45;
}
.benefit-card.open .card-details {
  display: block;                  /* reveal when .open is applied     */
}

.overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    backdrop-filter: blur(10px);
    background: rgba(255, 255, 255, 0.8);
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .overlay-content {
    background: white;
    padding: 2rem;
    border-radius: 12px;
    max-width: 600px;
    width: 90%;
    box-shadow: 0 8px 24px rgba(0,0,0,.2);
    position: relative;
  }

  .overlay-close {
    position: absolute;
    top: 0.5rem;
    right: 0.75rem;
    font-size: 1.75rem;
    background: none;
    border: none;
    cursor: pointer;
    color: #333;
  }

  .workshop-card {
  position: relative;
  background:#fdfdfc;
  border:1px solid var(--moss-gray);
  padding:1rem;
  border-radius:8px;
  box-shadow:0 1px 3px rgba(0,0,0,0.05);
}
.workshop-card.locked {
  filter: grayscale(0.8) opacity(0.5);
  pointer-events:none;
}
.lock-overlay{
  position:absolute;
  inset:0;
  display:flex;
  justify-content:center;
  align-items:center;
  font-size:2rem;
  color:#c18c2b;   /* gold-ish lock */
  pointer-events:none;
}
.button.disabled{background:var(--moss-gray);cursor:not-allowed;}

.result-controls{
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  margin:1rem 0 1.5rem;
}

.match-grid{
  display:grid;
  gap:1rem;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
}

.match-card{
  border:1px solid var(--moss-gray);
  border-radius:10px;
  background:#fff;
  padding:1rem 1.25rem;
  box-shadow:0 4px 10px rgba(0,0,0,.05);
  display:flex;
  flex-direction:column;
  gap:.5rem;
}

.match-card h3{margin:.25rem 0;font-size:1.1rem;}
.match-card .small{font-size:.9rem;color:var(--deep-ink);}
.add-btn{
  align-self:flex-start;
  background:var(--primary-gold);
  border:none;
  border-radius:6px;
  padding:.35rem .75rem;
  cursor:pointer;
}
.add-btn:hover{background:var(--forest-green);color:#fff;}

/* ----- Quiz layout ----- */
.quiz-wrap{
  max-width:650px;
  margin:2.5rem auto;
  padding:2rem 2.25rem;
  background:#fff;
  border:1px solid var(--moss-gray);
  border-radius:12px;
  box-shadow:0 8px 22px rgba(0,0,0,.08);
}

.quiz-wrap h3{
  margin-top:0;
  font-family:"Playfair Display",serif;
  font-size:1.4rem;
  color:var(--deep-ink);
}

/* ----- Option buttons ----- */
.optionButton{
  display:block;
  width:100%;
  text-align:center;
  margin:.5rem 0;
  padding:.7rem 1rem;
  background:var(--primary-gold);
  border:none;
  border-radius:8px;
  font:600 1rem/1 "Instrument Sans",sans-serif;
  cursor:pointer;
  transition:background .2s ease, transform .15s ease;
}
.optionButton:hover{
  background:var(--forest-green);
  color:#fff;
  transform:translateY(-2px);
}
.optionButton:active{transform:none}

/* Back button variant */
.optionButton.back{
  background:transparent;
  border:2px solid var(--forest-green);
  color:var(--forest-green);
}
.optionButton.back:hover{
  background:var(--forest-green);
  color:#fff;
}

/* ----- Progress bar ----- */
#progressContainer{
  height:4px;
  background:var(--moss-gray);
  margin:0 auto;
  max-width:650px;
  border-radius:2px;
  overflow:hidden;
}
#progressBar{
  width:0%;
  height:100%;
  background:var(--forest-green);
  transition:width .4s ease;
}

/* ===== Result controls prettify ===== */
.result-controls{
  display:flex;
  gap:1.25rem;
  flex-wrap:wrap;
  margin:1.5rem 0;
  font-family:"Instrument Sans",sans-serif;
  align-items:center;
}

.result-controls label{
  font-weight:600;
  color:var(--deep-ink);
  display:flex;
  align-items:center;
  gap:.35rem;
}

/* Styled <select> element */
.result-controls select{
  appearance:none;
  background:var(--base);
  border:2px solid var(--primary-gold);
  border-radius:6px;
  padding:.45rem 1.8rem .45rem .7rem;      /* room for arrow */
  font:600 .95rem/1 "Instrument Sans",sans-serif;
  cursor:pointer;
  position:relative;
}

/* nice arrow */
.result-controls select::after{
  content:"▼";
}

/* optional hover */
.result-controls select:hover{
  border-color:var(--forest-green);
}

.search-box{
  position:relative;
  margin:.5rem 0 1rem;
}
.search-box input{
  width:100%;
  padding:.5rem .75rem;
  border:2px solid var(--moss-gray);
  border-radius:6px;
}
.search-list{
  position:absolute;
  left:0; right:0;
  background:#fff;
  border:1px solid var(--moss-gray);
  border-radius:6px;
  max-height:220px;
  overflow-y:auto;
  z-index:20;
  list-style:none;
  margin:0; padding:.25rem 0;
}
.search-list li{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:.4rem .75rem;
}
.search-list li:hover{background:var(--base);}
.search-list button{
  background:var(--primary-gold);
  border:none;
  border-radius:4px;
  padding:.2rem .6rem;
  cursor:pointer;
}

/* ----------  College-fit polish  --------------------------------- */

/* gold pill buttons */
.btn-pill{
  background:var(--primary-gold);
  border:none;
  color:var(--deep-ink);
  font:600 .9rem/1 "Instrument Sans",sans-serif;
  padding:.4rem 1.2rem;
  border-radius:6px;
  cursor:pointer;
  transition:transform .15s ease,filter .15s ease;
}
.btn-pill:hover   { filter:brightness(1.05); transform:translateY(-2px); }
.btn-pill:active  { transform:none; }

.add-btn      { composes: btn-pill; width:100%; }
.add-btn.saved{ background:var(--moss-gray); cursor:default; }

.match-card{
  border:1px solid var(--moss-gray);
  border-radius:8px;
  padding:1rem;
  background:#fff;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  transition:box-shadow .18s ease;
}
.match-card:hover{ box-shadow:0 6px 16px rgba(0,0,0,.08); }
.match-card h3{ margin:.25rem 0 .5rem; font-size:1rem; line-height:1.3; }
.match-card .small{ font-size:.8rem; color:var(--moss-gray); margin-bottom:.75rem }

.saved-card{position:relative;border:1px solid var(--moss-gray);
            border-radius:8px;padding:1rem;background:#fff}
.remove-btn{
  position:absolute;top:6px;right:6px;
  background:none;border:none;font-size:.95rem;
  cursor:pointer;color:#c23;
}
.remove-btn:hover{color:#000}

.person-card img {
  width: 100%;
  max-width: 200px;
  height: auto;
  object-fit: cover;
  border-radius: 8px;
}

.person-card img {
  width: 200px;
  height: 200px;
  object-fit: cover;
}
/* PEOPLE CAROUSEL – consistent portrait sizing  */
.person-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  width: 260px;            /* whatever your design allows */
  min-height: 420px;       /* keep all cards equal height */
  padding: 1.25rem;
  border: 1px solid #e0e0d5;
  border-radius: 12px;
  background: #fff;
}

.person-card img {
  width: 100%;
  height: 180px;           /* crop to this height */
  object-fit: cover;       /* ✨ keeps aspect & crops overflow */
  border-radius: 8px;
  margin-bottom: 1rem;
}

/* ── CLEAN LOGO MARQUEE ─────────────── */

.hg-logos {
  padding-block: 3rem;
  overflow: hidden;
}

.marquee-track {
  display: flex;
  flex-wrap: nowrap;
  width: max-content;
}

.logo-tile {
  width: 120px;
  height: 95px;
  display: flex;
  align-items: center;
  justify-content: center;

  /* Remove gray background if present */
  background: transparent !important;

  /* Optional: subtle border */
  border: 1px solid rgba(0, 0, 0, 0.08);
}

.marquee-track img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;

  /* REMOVE any filter! */
  filter: none !important;
  background: transparent !important;
}

/* Keyframes */
@keyframes scroll-ltr {
  0%   { transform: translateX(-50%); }
  100% { transform: translateX(0); }
}
@keyframes scroll-rtl {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Speeds + direction */
.marquee--slower {
  animation: scroll-ltr 90s linear infinite;
}
.marquee--slow {
  animation: scroll-ltr 70s linear infinite;
}
.marquee--fast {
  animation: scroll-rtl 40s linear infinite;
}

/* Each marquee track */
.marquee-track {
  display: flex;
  flex-wrap: nowrap;
  width: max-content;
  will-change: transform;
}

.marquee-track img {
  padding: 6px;
}


:root {
  --logo-tile-w: 90px;
  --logo-tile-h: 70px;
}

.hg-why.container.two-col {
  display: flex;
  align-items: flex-start;
  gap: 4rem;
  flex-wrap: wrap;
}

.hg-why__text {
  flex: 1 1 40ch;
  max-width: 500px;
}

.hg-why__img-grid-joinhampton {
  flex: 1 1 500px;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.hg-why__img-grid-joinhampton .top-image img {
  width: 100%;
  height: auto;
  border-radius: 12px;
  object-fit: cover;
  max-height: 300px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.hg-why__img-grid-joinhampton .bottom-images {
  display: flex;
  gap: 1rem;
}

.hg-why__img-grid-joinhampton .bottom-images img {
  flex: 1;
  height: 200px;
  object-fit: cover;
  border-radius: 12px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

/* Optional: mobile stack */
@media (max-width: 768px) {
  .hg-why.container.two-col {
    flex-direction: column;
  }
  .hg-why__img-grid-joinhampton .bottom-images {
    flex-direction: column;
  }
  .hg-why__img-grid-joinhampton .bottom-images img {
    height: auto;
  }
}

.tooltip-container {
  position: relative;
  display: inline-block;
}

.tooltip {
  display: none;
  position: absolute;
  top: -10px;
  left: 100%;
  margin-left: 10px;
  width: 200px;
  background: #eee;
  color: #333;
  padding: 0.5rem;
  border-radius: 5px;
  font-size: 0.85rem;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

.tooltip-container:hover .tooltip {
  display: block;
}

.input-tip-wrapper {
  position: relative;
  margin-bottom: 1.25rem;
}

.tip-bubble {
  font-size: 0.85rem;
  color: var(--moss-gray);
  margin-top: 0.25rem;
}

.resume-annotated-container {
  position: relative;
  width: fit-content;
  margin: 4rem auto;
}

.resume-img {
  width: 100%;
  max-width: 900px;
  display: block;
  margin: 0 auto;
  border-radius: 10px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.1);
}

.annotation-box {
  position: absolute;
  width: 280px;
  background: white;
  border: 1px solid #ccc;
  border-radius: 6px;
  padding: 0.75rem 1rem;
  font-size: 0.9rem;
  line-height: 1.4;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
  z-index: 10;
}

.annotation-box.right {
  transform: translateX(0%);
}

.annotation-box.left {
  transform: translateX(-100%);
  text-align: right;
}

.resume-annotated-container {
  position: relative;
  max-width: 900px;
  margin: 0 auto;
}

.resume-image {
  width: 100%;
  display: block;
  border-radius: 8px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.08);
}

.highlight-box {
  position: absolute;
  background-color: rgba(214, 186, 115, 0.25); /* soft gold */
  border-radius: 4px;
  z-index: 2;
}

.annotation {
  position: absolute;
  width: 200px;
  background: #fff;
  border: 1px solid #ccc;
  padding: 0.75rem;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  font-size: 0.9rem;
  z-index: 3;
}

.annotation::before {
  content: "";
  position: absolute;
  width: 2px;
  height: 40px;
  background: #D6BA73;
  left: 50%;
  top: -40px;
  transform: translateX(-50%);
}

.annotation.left {
  left: -240px;
}

.annotation.right {
  right: -240px;
}

.search-list .score{float:right;font-size:.85rem;color:#666;margin-left:.5rem;}

.gpt-strip .match-card { border: 2px solid #94693C; }  /* subtle bronze frame */

/* add to find_school.css (or <style> block) */
.search-list:empty {
  display: none;
}

.back-btn{
  display:inline-block;margin:2rem 0 1rem;font-size:.9rem;
  text-decoration:none;color:var(--deep-ink);border:1px solid #ccc;
  padding:.4rem 1rem;border-radius:6px;transition:all .15s;
}
.back-btn:hover{background:#f7f7f7}

/* 1 ⸺ make the nav bar the containing block */
.hg-nav{
  position:relative;                 /* new */
  display:flex;
  align-items:center;
  padding:0 .75rem;
  height:64px;                       /* whatever you use now */
}

/* 2 ⸺ burger-icon stays at the far left (unchanged) */
.hg-nav #drawerToggle{ margin-right:1rem; }

/* 3 ⸺ APPLY / Log-in stack stays at far right (unchanged) */
.hg-nav .nav-actions{ margin-left:auto; display:flex; gap:.75rem; }

/* 4 ⸺ the brand is *absolutely* centred in the bar */
.hg-nav .brand{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  font:600 1.35rem/1 "Playfair Display",serif;   /* whatever you use */
  pointer-events:none;                /* so clicks fall through */
}

/* ───────── NAV BAR CENTRE‐BRAND PATCH ───────── */
.hg-nav__inner{
  position:relative;              /* creates anchoring context   */
  display:flex;                   /* keeps burger ↔ cta spacing  */
  align-items:center;
  justify-content:space-between;  /* burger left, ctas right     */
}

/* brand floats dead-centre, regardless of the siblings’ width  */
.hg-brand{
  position:absolute;              /* pull it OUT of the flex     */
  left:50%;                       /* anchor stem in the middle   */
  transform:translateX(-50%);     /* perfect optical centre      */

  /* keep your existing type + colour */
  font:600 1.35rem/1 "Playfair Display", serif;
  color:#fff;

  /* optional: let clicks pass through if you don’t need a link */
  /* pointer-events:none; */
}

/* nothing else— no background edits, so your dark bar stays seamless */


 .dots-loader {
  display: flex;
  gap: 8px;
  margin-top: 1rem;
}

.dots-loader::before,
.dots-loader::after,
.dots-loader div {
  content: "";
  width: 12px;
  height: 12px;
  background: var(--primary-gold);
  border-radius: 50%;
  animation: bounce 1s infinite alternate;
}

.dots-loader::after {
  animation-delay: 0.3s;
}
.dots-loader div {
  animation-delay: 0.6s;
}

@keyframes bounce {
  to {
    transform: translateY(-10px);
    opacity: 0.5;
  }
}

.event-card {
  background: #fff;
  border: 1px solid var(--moss-gray);
  border-radius: 1rem;
  padding: 1.25rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 1px 5px rgba(0,0,0,0.05);
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.event-card__text {
  flex: 1 1 70%;
}

.event-card__buttons {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: flex-start;
}

.event-title {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.event-desc {
  font-size: 0.95rem;
  margin-top: 0.5rem;
}

/* ============ Chat Interface Styles ============ */
.chat-wrapper {
  max-width: 700px;
  margin: auto;
  padding: 2rem;
}

.chat-box {
  background: #f9f9f9;
  border: 1px solid #ccc;
  padding: 1rem;
  height: 400px;
  overflow-y: scroll;
  margin-bottom: 1rem;
  border-radius: 5px;
  display: flex;
  flex-direction: column;
}

.bot-msg, .user-msg {
  margin: 0.75rem 0;
  padding: 0.75rem 1rem;
  border-radius: 15px;
  max-width: 80%;
}

.bot-msg {
  background: #e2ebf7;
  align-self: flex-start;
}

.user-msg {
  background: #d6f5d6;
  align-self: flex-end;
  margin-left: auto;
}

#chat-form {
  display: flex;
  gap: 0.5rem;
}

#chat-form input[type="text"] {
  flex: 1;
  padding: 0.75rem;
  font-size: 1rem;
  border: 1px solid #ccc;
  border-radius: 5px;
}

#chat-form button {
  padding: 0.75rem 1.5rem;
  background-color: #4a6e57;
  color: white;
  border: none;
  border-radius: 5px;
  font-weight: bold;
  cursor: pointer;
}

#chat-form button:hover {
  background-color: #3b5846;
}

#chat-form textarea {
  flex: 1;
  padding: 0.75rem;
  font-size: 1rem;
  resize: vertical;
  min-height: 3rem;
  max-height: 15rem;
  border: 1px solid #ccc;
  border-radius: 5px;
}

/* — chips & pills — */
.chip {
  display:inline‑flex; align‑items:center; gap:.25rem;
  background:var(--moss-gray); color:#fff; font:500 .75rem/1 var(--font-sans);
  border-radius:9999px; padding:.15rem .55rem;
}
.chip--time { background:var(--primary-gold); }

.pill { border-radius:9999px; padding:.15rem .6rem; font-weight:600; text-transform:capitalize; }
.pill--draft      { background:#d1d5db; color:#374151; }
.pill--requested  { background:#facc15; color:#92400e; }
.pill--confirmed  { background:#60a5fa; color:#1e3a8a; }
.pill--submitted  { background:#4ade80; color:#065f46; }

/* — modal — */
.modal[hidden] { display:none; }
.modal   { position:fixed; inset:0; z-index:50; }
.modal‑backdrop { position:absolute; inset:0; background:rgba(0,0,0,.45); }
.modal‑card {
  position:relative; margin:6vh auto 0; background:var(--base);
  padding:1.75rem; border-radius:1rem; box-shadow:0 8px 24px rgba(0,0,0,.15);
}

/* — icon button — */
.icon‑btn { font-size:1.25rem; line-height:1; background:none; border:none; cursor:pointer; }

/* styles.css or inline */
textarea[data-q]{
  min-height:6rem;       /* 96 px – roomy */
  font:500 1rem/1.4 var(--font-sans);
}
@media(min-width:768px){
  textarea[data-q]{min-height:8rem;}   /* stretch on desktop */
}

.footer__grid{
  display:flex;            /* was grid-two-column */
  flex-direction:column;   /* stack the items   */
  align-items:center;      /* center ⬅➡         */
  gap:0.75rem;             /* breathing room     */
  text-align:center;       /* tidy link text     */
}

/* static/about.css  –– clean, unified */

/* Tokens */
:root{
  --page-bg:#f9f6ee;
  --deep-teal:#0c3a3f;
  --deep-teal-2:#0a444a;
  --accent:#C6A759;
  --bg-alt:#fafaf9;
  --radius:12px;
}

body{ background:var(--page-bg); }

/* Layout helpers */
.container{ max-width:960px; margin-inline:auto; padding:0 1.25rem; }
.container.narrow{ max-width:700px; }

.section-title{
  font:600 1.75rem/1.3 "Playfair Display",serif;
  text-align:center;
  position:relative;
  margin:0 0 2rem;
}
.section-title::after{
  content:"";
  display:block;
  width:60px; height:3px;
  margin:.85rem auto 0;
  background:var(--accent);
  border-radius:2px;
}
.centered-copy{ text-align:center; font-size:1.1rem; line-height:1.55; }

/* ───────────────── Hero (full-bleed, no box) ───────────────── */

.about-hero::after{
  content:"";
  position:absolute; left:0; right:0; bottom:-1px; height:70px;
  background:radial-gradient(120% 70px at 50% 0, var(--page-bg) 0%, rgba(249,246,238,0) 70%);
  pointer-events:none;
}
.about-hero > *{ width:min(100%,1100px); }


/* Bands / sections */
.section-alt{ background:#fafaf7; padding:3.5rem 0; }

/* Optional founder split (kept minimal if you add it later) */
.founder-grid{
  display:grid; gap:2.5rem; align-items:center;
  grid-template-columns:minmax(0,1fr);
}
.founder-pic{
  background:#d9d9d9 url('/static/placeholder-portrait.svg') center/cover no-repeat;
  width:180px; aspect-ratio:3/4; border-radius:var(--radius);
  justify-self:center;
}
@media (min-width:768px){
  .founder-grid{ grid-template-columns:220px 1fr; }
  .founder-pic{ justify-self:start; }
}

/* ── HERO: revert to centered, no background panel ─────────── */
.about-hero{
  text-align:center;
  max-width:900px;
  margin:0 auto;
  padding:clamp(3rem,8vw,6rem) 1.5rem;

  /* kill any earlier full-bleed overrides */
  width:auto; transform:none; background:transparent; color:inherit;
  box-shadow:none; border-radius:0; position:static; overflow:visible;
}
.about-hero h1{
  font-family:"Playfair Display",serif;
  font-weight:600;
  font-size:clamp(2.25rem,5vw,3.5rem);
  margin:0 0 1rem;
}
.about-hero h1::after{
  content:"";
  display:block; width:72px; height:3px; margin:.75rem auto 0;
  background:var(--accent,#C6A759); border-radius:2px;
}
.about-hero p{
  font-size:1.2rem;
  max-width:60ch;
  margin:0 auto;
}


/* Button: subtle gold → green on hover (Hampton vibe) */
.btn-try{
  display:inline-block;
  padding:.55rem 1rem;
  border-radius:9999px;
  font-weight:600;
  color:#fff; text-decoration:none;
  background:#C6A759;                         /* gold base */
  box-shadow:0 2px 4px rgba(0,0,0,.08);
  transition:transform .15s ease, box-shadow .15s ease, background .2s;
}
.btn-try:hover{
  background:linear-gradient(135deg,#C6A759 0%, #4a6e57 95%);
  transform:translateY(-1px);
  box-shadow:0 6px 14px rgba(0,0,0,.12);
}
.btn-try:active{ transform:translateY(0); box-shadow:0 2px 6px rgba(0,0,0,.12); }


/* static/about.css  – clean Hampton-y sections w/ neutral hero
   ------------------------------------------------------------ */

/* Tokens (match your palette) */
:root{
  --page-bg:#f9f6ee;
  --ink:#1c2b2b;
  --muted:#5e6c6c;
  --accent:#C6A759;               /* Hampton gold */
  --card:#ffffff;
  --ring:#eeeeee;
  --shadow:0 2px 10px rgba(0,0,0,.06);
  --radius:12px;
}

/* Page background */
body{ background:var(--page-bg); }

/* ---------- Simple neutral hero (no box, no gradient) ---------- */
.about-hero{
  text-align:center;
  max-width: 980px;
  margin: 0 auto;
  padding: clamp(3rem, 8vw, 6rem) 1.5rem;
  color: var(--ink);
}
.about-hero::after{ content:none !important; }  /* kill any old fades */
.hero-slope{ display:none !important; }         /* hide legacy SVG wedge */

.about-hero h1{
  font-family:"Playfair Display",serif;
  font-weight:600;
  font-size:clamp(2.25rem,5vw,3.25rem);
  line-height:1.2;
  margin:0 0 .75rem;
  color: var(--ink);                /* ensure not white */
}
.about-hero h1::after{
  content:"";
  display:block;
  width:72px;height:3px;
  margin:.85rem auto 0;
  background:var(--accent);
  border-radius:2px;
}
.about-hero p{
  font-family:"Instrument Sans",system-ui,sans-serif;
  font-size:1.05rem;
  line-height:1.6;
  color: var(--muted);
  max-width:60ch;
  margin:0 auto;
}

/* ---------- Section titles ---------- */
.section-title{
  font:600 1.8rem/1.3 "Playfair Display",serif;
  text-align:center;
  color:var(--ink);
  margin: 0 0 1.5rem;
}
.section-title::after{
  content:"";
  display:block;width:60px;height:3px;
  margin:.85rem auto 0;background:var(--accent);border-radius:2px;
}

/* ---------- Sections / spacing ---------- */
.tools,
.section-alt { padding: 3rem 1rem; }
.tools .section-title,
.section-alt .section-title { margin-top: 0; }

/* ---------- Grids (feature cards + tools) ---------- */
/* Use on your UL: class="feature-cards tools-grid" (but either class works) */
.feature-cards,
.tools-grid{
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  max-width: 1200px;               /* enough for 4 across */
  margin: 1.25rem auto 0;
  list-style: none;
  padding: 0;
}

/* Lock to 4-up on real desktops so you don't get a 3+1 wrap */
@media (min-width:1100px){
  .feature-cards,
  .tools-grid{
    grid-template-columns: repeat(4, 1fr);
  }
}

/* ---------- Card base ---------- */
.feature-cards > li,
.tools-grid .tool-card{
  background: var(--card, #fff);
  border: 1px solid var(--ring, #ececec);
  border-radius: var(--radius, 12px);
  box-shadow: var(--shadow, 0 2px 10px rgba(0,0,0,.06));
  padding: 1.4rem 1.25rem 1.1rem;
  text-align: center;

  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 190px;

  transition: transform .18s ease, box-shadow .18s ease;
}
.feature-cards > li:hover,
.tools-grid .tool-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 10px 20px rgba(0,0,0,.08);
}

/* Titles & copy inside cards */
.feature-cards h3,
.tools-grid .tool-card h3{
  margin: 0 0 .45rem;
  font: 600 1.12rem/1.25 "Playfair Display", serif;
  color: var(--ink, #1c2b2b);
}
.feature-cards p,
.tools-grid .tool-card p{
  margin: .2rem 0 1rem;
  font-size: .95rem;
  line-height: 1.45;
  color: var(--muted, #5e6c6c);
}

/* ---------- Buttons inside the cards ---------- */
/* Supports either <a class="Nicebutton"> or <button class="btn"> */
.feature-cards .Nicebutton,
.tools-grid .Nicebutton,
.feature-cards .btn,
.tools-grid .btn{
  align-self: center;
  display: inline-block;
  min-width: 104px;

  border: none;
  border-radius: 9999px;
  padding: .55rem 1.05rem;
  line-height: 1;
  font-weight: 600;
  text-decoration: none;

  background: #2e6b56;             /* Hampton green */
  color: #fff;
  box-shadow: 0 2px 0 rgba(0,0,0,.12);
  transition: transform .15s ease, box-shadow .15s ease, opacity .2s;
}
.feature-cards .Nicebutton:hover,
.tools-grid .Nicebutton:hover,
.feature-cards .btn:hover,
.tools-grid .btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(0,0,0,.14);
}

/* Light background band under hero (optional) */
.section-alt{ background: #fafaf9; }

/* About page – 3-up goals */
.goals-3{
  list-style:none;              /* kill bullets */
  margin:1.25rem auto 3rem;
  padding:0;

  display:grid;
  grid-template-columns:repeat(3, minmax(240px, 1fr));
  gap:1.25rem;

  max-width:960px;              /* centered row of 3 */
}
@media (max-width:900px){ .goals-3{ grid-template-columns:repeat(2, minmax(220px,1fr)); } }
@media (max-width:640px){ .goals-3{ grid-template-columns:1fr; } }

.goals-3 .goal{
  background:#fff;
  border:1px solid #ececec;
  border-radius:12px;
  box-shadow:0 2px 10px rgba(0,0,0,.06);
  padding:1.6rem 1.4rem;
  text-align:center;

  display:flex;
  flex-direction:column;
  justify-content:center;       /* nice vertical balance */
  min-height:180px;

  transition:transform .18s ease, box-shadow .18s ease;
}
.goals-3 .goal:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 20px rgba(0,0,0,.08);
}

.goals-3 .goal h3{
  margin:0 0 .45rem;
  font:700 1.15rem/1.25 "Playfair Display",serif;
  color:#203531;
}
.goals-3 .goal h3::after{
  content:"";
  display:block; width:36px; height:2px;
  margin:.55rem auto 0;
  background:var(--accent, #C6A759);
  border-radius:2px; opacity:.8;
}
.goals-3 .goal p{
  margin:.15rem auto 0;
  max-width:34ch;
  font-size:.95rem; line-height:1.45; color:#5e6c6c;
}

.form-error{
  margin:.6rem 0 0;
  color:#c0392b;
  font-size:.95rem;
}

/* Next Steps mini panel */
.ns-mini .dash-card__title{ font:600 1.2rem/1.25 "Playfair Display",serif; }

.ns-mini__bar{ display:grid; gap:.5rem; margin:.2rem 0 .9rem; }
.ns-mini__meter{
  height:8px; border-radius:999px; background:#eef1e9; overflow:hidden;
  border:1px solid #e6eadf;
}
.ns-mini__meter .fill{
  display:block; height:100%; width:0%;
  background:linear-gradient(90deg,#2e6b56,#4c8f74);
  transition:width .35s ease;
}

.ns-mini__grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap:1rem;
}

.ns-mini__card{
  background:#fff; border:1px solid #ececec; border-radius:14px;
  box-shadow:0 6px 14px rgba(0,0,0,.06);
  padding:0.9rem 0.95rem;
  transition:transform .18s ease, box-shadow .18s ease;
}
.ns-mini__card:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 22px rgba(0,0,0,.08);
}

.ns-mini__head{
  display:flex; align-items:baseline; justify-content:space-between; gap:.75rem;
  margin-bottom:.4rem;
}
.ns-mini__head h4{ margin:0; font-weight:700; font-size:1.05rem; color:#102c28; background-color: white; }

.chips{ display:flex; gap:.35rem; flex-wrap:wrap; }
.chip{
  background:#f4f6ef; border:1px solid #e3e9dc; color:#2a4a43;
  font-weight:600; font-size:.72rem; padding:.16rem .5rem; border-radius:9999px;
}

.ns-mini__tasks{ display:flex; flex-direction:column; gap:.4rem; }
.taskline{
  display:flex; align-items:flex-start; gap:.55rem;
  padding:.25rem 0;
  border-top:1px dashed #edf0e8;
}
.ns-mini__tasks .taskline:first-child{ border-top:0; }

.taskline input[type="checkbox"]{
  appearance:none; width:18px; height:18px; margin-top:.05rem;
  border:1.5px solid #cfd7cb; border-radius:4px; display:grid; place-content:center;
  background:#fff; cursor:pointer; transition:all .2s ease;
}
.taskline input[type="checkbox"]:checked{
  background:#2e6b56; border-color:#2e6b56;
}
.taskline input[type="checkbox"]::before{
  content:""; width:10px; height:10px; transform:scale(0);
  transition:transform .15s ease; background:#fff; border-radius:2px;
}
.taskline input[type="checkbox"]:checked::before{ transform:scale(1); }

.tlabel{ line-height:1.35; }
.tlabel .due{ color:#6b7a7a; font-size:.85rem; margin-left:.15rem; }

.link.sm{ font-size:.9rem; margin-top:.35rem; }

.hg-why--diptych { padding-block: clamp(2rem, 6vw, 5rem); }

.hg-why__grid {
  display: grid;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  align-items: center;
  grid-template-columns: 1fr;
}

@media (min-width: 900px) {
  .hg-why__grid { grid-template-columns: 1.1fr 1fr; }
}

.hg-why__copy h2 {
  font-size: clamp(1.6rem, 3.2vw, 2.25rem);
  line-height: 1.15;
  margin: 0 0 .5rem;
}
.hg-why__copy p {
  max-width: 60ch; line-height: 1.6; margin: 0;
  color: var(--text-muted, #514f48);
}

.hg-why__hero {
  border-radius: 18px; overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
  aspect-ratio: 16 / 10; /* responsive, no clipping */
}
.hg-why__hero img { width: 100%; height: 100%; object-fit: cover; display: block; }

#quickBar, #actionBar { display:flex; flex-wrap:wrap; gap:.5rem; margin:.5rem 0 0; }

.optionButton { padding:.5rem .75rem; border-radius:999px; border:1px solid #ddd; background:#fff; cursor:pointer; }
.optionButton:hover { border-color:#bbb; }

.actionButton { padding:.5rem .9rem; border-radius:999px; border:1px solid #cfd4d8; background:#f7f9fb; cursor:pointer; }
.actionButton.primary { background:#0ea5e9; border-color:#0ea5e9; color:#fff; }
.actionButton.ghost   { background:transparent; }

.ctaButton { display:block; width:100%; max-width:22rem; padding:.9rem 1rem; margin:.35rem 0;
  border-radius:14px; border:0; background:#111827; color:#fff; font-weight:600; cursor:pointer; }
.ctaButton.secondary { background:#0ea5e9; }

.hg-fit{
  max-width: 760px;      /* a bit narrower reads better */
  margin: 4rem auto;     /* centers the block */
  text-align: center;    /* centers heading + paragraphs */
  padding: 0 1rem;       /* safe side padding on mobile */
}

/* keep numbered/bulleted lists left-aligned while the block is centered */
.hg-fit :is(ol, ul){
  display: inline-block;
  text-align: left;
  margin: .5rem auto 0;
  padding-left: 1.25rem;
}

.legal-links{
  display:flex; gap:.75rem; justify-content:center;
}
.legal-links a,
.legal-links a:visited{
  color:#4A6E57; text-decoration:none;
}
.legal-links a:hover{ text-decoration:underline; }

/* === Brand color once === */
:root { --brand-deep: #002E32; }   /* tweak to your exact teal */

/* Header + hero colors must match exactly */
header, .site-header { 
  background: white;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

/* HERO container: wider so the big H1 wraps less */
.hg-hero__inner.container{
  max-width: min(92vw, 1200px);   /* widen from your default container */
  margin-inline: auto;
  padding-block: 28px;            /* gives space so margins can't collapse */
}

/* HERO block: stop margin collapse and match color */
.hg-hero{
  background: var(--brand-deep);
  color: #fff;
  display: flow-root;             /* prevents the H1's top margin from collapsing */
  margin-top: 0 !important;       /* no external seam */
  border-top: 0 !important;
}

/* Headline: big, airy, and less squished */
.hg-hero h1{
  margin: 0 !important;           /* critical to remove the white line */
  font-size: clamp(3rem, 7.5vw, 6rem);
  line-height: 1.08;
  letter-spacing: -0.01em;
  max-width: 32ch;                /* wider line length so fewer breaks */
  margin-inline: auto;            /* center within the wider container */
  text-wrap: balance;             /* nicer breaks (modern browsers) */
}

/* Subtitle & button spacing */
.hg-hero .hg-subtitle{ margin-top: .6rem; }
.hg-hero .btn{ margin-top: 1rem; }

/* Just in case any global divider sneaks in right under the hea*

/* General section spacing */
section {
  margin: 1rem 0;      /* ≈16px top & bottom */
  padding: 0;          /* remove extra padding if not needed */
}

/* Headings inside sections */
section h2, section h3 {
  margin-bottom: 0.5rem;  /* tighter under titles */
}

/* Person cards grid */
.person-card {
  margin: 0.5rem;     /* space between cards */
}

/* Paragraphs inside cards/sections */
.person-card p,
section p {
  margin: 0.25rem 0;  /* small, consistent line spacing */
}

/* ===== BASELINE GRID RESET ===== */
html, body {
  line-height: 1.5;
}

/* Every section: 1–2 finger spacing */
section {
  margin: 2rem 0;   /* ~32px top & bottom */
  padding: 0;       /* no excessive padding */
}

/* Headings inside sections */
section h2, section h3 {
  margin-top: 0;
  margin-bottom: 0.5rem;  /* ~8px below title */
}

/* Paragraphs */
p {
  margin: 0.5rem 0;   /* ~8px above & below */
}

/* ===== GRIDS & CARDS ===== */
.person-card {
  margin: 1rem;               /* ~16px gutters between cards */
  padding: 1rem;              /* consistent inside spacing */
}

.person-card h3 {
  margin: 0 0 0.25rem 0;      /* name to subtitle ~4px */
}

.person-card .small {
  margin-bottom: 0.5rem;      /* subtitle to quote ~8px */
  color: #666;                /* softer grey */
}

/* ===== "What you get" / Features ===== */
.features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;   /* ~16px between items */
}

.features-grid .feature-card {
  padding: 1rem;
  margin: 0;
}

.cta-center{
  display: grid;
  place-items: center;   /* centers both axes */
}

/* anti-squish guards if a flex/grid parent is affecting it */
.cta-center .btn{
  flex: 0 0 auto;        /* don't shrink if inside a flex parent */
  white-space: nowrap;   /* keep text on one line */
  align-self: center;    /* ignore parent stretch */
  justify-self: center;
}
.cta-center, .cta-center .btn { outline: 1px dashed red; }

.left-rail-cta { 
  display: grid; 
  place-items: center; 
  padding: .5rem 0;
}

/* Unsquish: restore .btn sizing inside the left rail only */
.left-rail-cta > a.btn {
  display: inline-flex;          /* keeps intrinsic width/height */
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;                /* don't let flex parents shrink it */
  white-space: nowrap;

  /* restore the original .btn metrics against sidebar overrides */
  padding: 0.55rem 1.75rem !important;
  line-height: 1 !important;
  height: auto !important;
  font: 600 0.95rem/1 var(--inter, 'Inter', sans-serif) !important;
}
.sidebar a.btn.btn--gold,
.btn.btn--gold{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  font: 600 0.95rem/1 var(--inter, 'Inter', sans-serif) !important;
  padding: 0.55rem 1.75rem !important;

  height: auto !important;
  white-space: nowrap !important;
  flex: 0 0 auto !important;   /* don't let flex parents squish it */
}

.hg-drawer-links > a:not(.btn) {
  display: block;
  padding: .5rem 1rem;
  line-height: 1.3;
}

/* 2) Buttons inside the drawer keep base .btn sizing */
.hg-drawer-links .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;      /* prevents vertical squish via wrapping */
  padding: 0.55rem 1.75rem; /* same as your .btn */
  line-height: 1;           /* same as your .btn */
}

/* 3) Center the CTA block without affecting size */
.left-rail-cta { text-align: center; padding: .5rem 0; }

.hg-drawer-links .left-rail-cta .btn {
  display: block;           /* full width like Log In */
  width: 100%;
  text-align: center;
  box-sizing: border-box;

  /* use the larger button metrics so it doesn't feel short */
  padding: .85rem 2rem;
  font: 600 1rem/1 "Instrument Sans", sans-serif;
}

/* optional: remove the temporary debug outline you added */
.cta-center, .cta-center .btn { outline: none; }

/* Chat header — keep title (left) and Finish early (right) on one level */
#chatContainer .chatHead{
  display:flex;
  justify-content:space-between;
  align-items:center;           /* <-- key: vertical centering of text */
  padding:12px 18px 8px;
  gap:12px;
}

/* normalize both sides */
#chatContainer .chatHead__title,
#chatContainer .chatHead a{
  margin:0;
  line-height:1.15;
  display:inline-flex;          /* so the text itself can be centered */
  align-items:center;
}

/* make the link look like plain text (if Nicebutton adds padding) */
#chatContainer .chatHead a.Nicebutton{
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
  text-decoration:underline;
  text-underline-offset:2px;
}

/* (optional) tiny spacing above the progress bar if needed */
#progressContainer{ margin-top:4px; }


/* ——— Next Steps “compact” mode for dashboard ——— */
.ns-mini.compact { margin-top: .75rem; }
.ns-mini .ns-mini__summary { display:flex; align-items:center; gap:.5rem; }
.ns-mini .btn-xs { padding:.35rem .6rem; font-size:.8rem; border-radius:8px; }

/* cap the visual load: show top 3 cards in compact mode */
.ns-mini.compact .plan-grid { grid-template-columns: repeat(3, minmax(260px, 1fr)); gap:1rem; }
@media (max-width: 1100px){ .ns-mini.compact .plan-grid { grid-template-columns: repeat(2, minmax(260px, 1fr)); } }
@media (max-width: 640px) { .ns-mini.compact .plan-grid { grid-template-columns: 1fr; } }

/* hide extra cards until expanded */
.ns-mini.compact .plan-card:nth-child(n+4) { display:none; }

/* tighten cards a touch in compact mode */
.ns-mini.compact .plan-card { min-height: 220px; box-shadow:0 2px 8px rgba(0,0,0,.05); }
.ns-mini.compact .plan-card h3 { font-size:1.02rem; }
.ns-mini.compact .plan-card p { font-size:.92rem; }

/* visual separators to un-clutter surrounding sections */
.progress-row { margin-bottom: 1.25rem; }
.ns-mini { border:1px dashed #ececec; }
.summary-card.side-by-side { margin-top: 1.25rem; }

.finish-early{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.45rem .9rem; border:1px solid rgba(0,0,0,.12);
  border-radius:10px; background:#fff; text-decoration:none;
  font-weight:600; font-size:.9rem; opacity:.9;
  box-shadow:0 2px 6px rgba(0,0,0,.04);
}
.finish-early:hover{ background:#f7faf8; transform:translateY(-1px); box-shadow:0 6px 12px rgba(0,0,0,.08); }