/* =========================================================
   Personacare — Nivedita Bhattacharjee, Psychotherapist
   Custom stylesheet (Bootstrap 5 base + bespoke theme)
   ========================================================= */

:root{
  /* Pastel palette */
  --pa-ivory:        #FBF7F1;
  --pa-ivory-deep:    #F4ECE1;
  --pa-cream:        #FFFDFA;
  --pa-sage:         #6E8F72;
  --pa-sage-deep:     #4A6B4D;
  --pa-sage-light:    #DCE6DC;
  --pa-terracotta:    #B98A5E;
  --pa-terracotta-deep:#8B6239;
  --pa-terracotta-light:#EDE0D0;
  --pa-gold:         #BE9B5E;
  --pa-ink:          #3B342E;
  --pa-ink-soft:      #756A60;
  --pa-white:        #ffffff;

  --pa-font-head: 'Fraunces', Georgia, 'Times New Roman', serif;
  --pa-font-body: 'Jost', 'Segoe UI', sans-serif;

  --pa-radius-lg: 28px;
  --pa-radius-md: 18px;
  --pa-radius-sm: 10px;
  --pa-shadow-soft: 0 20px 45px -20px rgba(59, 52, 46, 0.18);
  --pa-shadow-card: 0 12px 30px -14px rgba(59, 52, 46, 0.16);
}

*{ box-sizing: border-box; }

html{ scroll-behavior: smooth; }

body{
  font-family: var(--pa-font-body);
  color: var(--pa-ink);
  background-color: var(--pa-ivory);
  font-size: 1.02rem;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1, h2, h3, h4, .display-font{
  font-family: var(--pa-font-head);
  font-weight: 600;
  color: var(--pa-ink);
  letter-spacing: -0.01em;
}

h1{ font-weight: 500; }

.text-sage{ color: var(--pa-sage-deep) !important; }
.text-terracotta{ color: var(--pa-terracotta-deep) !important; }
.text-gold{ color: var(--pa-gold) !important; }
.text-ink-soft{ color: var(--pa-ink-soft) !important; }
.bg-ivory{ background-color: var(--pa-ivory) !important; }
.bg-ivory-deep{ background-color: var(--pa-ivory-deep) !important; }
.bg-sage-light{ background-color: var(--pa-sage-light) !important; }
.bg-terracotta-light{ background-color: var(--pa-terracotta-light) !important; }
.bg-sage-deep{ background-color: var(--pa-sage-deep) !important; }

.section-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-family: var(--pa-font-body);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color: var(--pa-terracotta-deep);
}
.section-eyebrow::before{
  content:"";
  width:28px; height:1px;
  background: var(--pa-terracotta-deep);
  display:inline-block;
}

.lead-serif{
  font-family: var(--pa-font-head);
  font-weight: 400;
  font-size: 1.35rem;
  line-height: 1.6;
  color: var(--pa-ink);
}

/* =============== BUTTONS =============== */
.btn{ border-radius: 50px; font-family: var(--pa-font-body); font-weight:500; letter-spacing:.02em; padding:.75rem 1.7rem; transition: all .25s ease; }

.btn-persona-primary{
  background: var(--pa-sage-deep);
  color: var(--pa-white);
  border: 1px solid var(--pa-sage-deep);
}
.btn-persona-primary:hover{
  background: var(--pa-ink);
  border-color: var(--pa-ink);
  color: var(--pa-white);
  transform: translateY(-2px);
}

.btn-persona-outline{
  background: transparent;
  border: 1.5px solid var(--pa-ink);
  color: var(--pa-ink);
}
.btn-persona-outline:hover{
  background: var(--pa-ink);
  color: var(--pa-white);
  transform: translateY(-2px);
}

.btn-whatsapp{
  background: #5f8f6a;
  color:#fff;
  border:1px solid #5f8f6a;
  display:inline-flex;
  align-items:center;
  gap:.55rem;
}
.btn-whatsapp:hover{ background:#4c7455; border-color:#4c7455; color:#fff; transform: translateY(-2px); }

.btn-sm-pill{ padding:.45rem 1.1rem; font-size:.85rem; border-radius:50px; }

/* =============== NAVBAR =============== */
.pa-navbar{
  position: sticky; top:0; z-index: 1050;
  background: rgba(251,247,241,0.85);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid transparent;
  transition: all .3s ease;
  padding: .9rem 0;
}
.pa-navbar.scrolled{
  background: rgba(251,247,241,0.97);
  border-bottom: 1px solid #ece2d4;
  box-shadow: 0 6px 24px -18px rgba(0,0,0,.25);
  padding: .55rem 0;
}

.pa-logo{ display:flex; align-items:center; gap:.65rem; text-decoration:none; }
.pa-logo-mark{ width:42px; height:42px; flex-shrink:0; }
.pa-logo-word{ font-family: var(--pa-font-head); font-size:1.5rem; font-weight:600; color: var(--pa-ink); line-height:1; }
.pa-logo-word .accent-A{ color: var(--pa-terracotta-deep); }
.pa-logo-tagline{ font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; color: var(--pa-ink-soft); display:block; margin-top:2px; }

.pa-nav .nav-link{
  font-weight:500;
  color: var(--pa-ink) !important;
  padding: .5rem 1rem !important;
  position:relative;
}
.pa-nav .nav-link.active{ color: var(--pa-terracotta-deep) !important; }
.pa-nav .nav-link::after{
  content:"";
  position:absolute; left:1rem; right:1rem; bottom:.15rem;
  height:2px; background: var(--pa-terracotta-deep);
  transform: scaleX(0); transform-origin:left; transition: transform .25s ease;
}
.pa-nav .nav-link:hover::after,
.pa-nav .nav-link.active::after{ transform: scaleX(1); }

/* =============== HERO =============== */
.pa-hero{
  position: relative;
  padding: 4.5rem 0 5rem;
  overflow: hidden;
}
.pa-hero-blob{
  position:absolute;
  z-index:0;
  opacity:.6;
  filter: blur(2px);
}
.pa-hero .container{ position:relative; z-index:2; }

.pa-hero-badge{
  display:inline-flex; align-items:center; gap:.5rem;
  background: var(--pa-white);
  border:1px solid #ece2d4;
  padding:.4rem .9rem;
  border-radius:50px;
  font-size:.82rem;
  color: var(--pa-ink-soft);
  box-shadow: var(--pa-shadow-card);
}

.pa-hero-visual{
  position:relative;
  border-radius: var(--pa-radius-lg);
  overflow:hidden;
  box-shadow: var(--pa-shadow-soft);
}
.pa-hero-visual img{ width:100%; height:100%; object-fit:cover; display:block; }

.pa-floating-card{
  position:absolute;
  background: var(--pa-white);
  border-radius: var(--pa-radius-md);
  box-shadow: var(--pa-shadow-soft);
  padding: 1rem 1.2rem;
  z-index:3;
}

/* =============== PAGE HEADER (inner pages) =============== */
.pa-page-header{
  padding: 3.2rem 0 3.2rem;
  background: var(--pa-ivory-deep);
  position:relative;
  overflow:hidden;
}

/* =============== CARDS =============== */
.pa-card{
  background: var(--pa-white);
  border-radius: var(--pa-radius-md);
  padding: 2rem 1.8rem;
  height:100%;
  box-shadow: var(--pa-shadow-card);
  border: 1px solid rgba(59,52,46,0.04);
  transition: transform .3s ease, box-shadow .3s ease;
}
.pa-card:hover{ transform: translateY(-6px); box-shadow: var(--pa-shadow-soft); }

.pa-icon-circle{
  width:56px; height:56px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:1.4rem;
  margin-bottom:1.1rem;
}
.pa-icon-circle.sage{ background: var(--pa-sage-light); color: var(--pa-sage-deep); }
.pa-icon-circle.terracotta{ background: var(--pa-terracotta-light); color: var(--pa-terracotta-deep); }
.pa-icon-circle.gold{ background:#f3ead4; color: var(--pa-gold); }

.pa-step-card{
  text-align:center;
  padding: 2.2rem 1.5rem;
}
.pa-step-number{
  font-family: var(--pa-font-head);
  font-size: 2.6rem;
  color: rgba(59,52,46,0.12);
  line-height:1;
  margin-bottom:.4rem;
}

/* Focus / topic pill list */
.pa-pill{
  display:inline-block;
  background: var(--pa-white);
  border:1px solid #ece2d4;
  color: var(--pa-ink);
  padding:.5rem 1.1rem;
  border-radius:50px;
  font-size:.88rem;
  margin:.25rem;
  transition: all .2s ease;
}
.pa-pill:hover{ background: var(--pa-sage-deep); color:#fff; border-color: var(--pa-sage-deep); }

.pa-focus-card{
  background: var(--pa-white);
  border-radius: var(--pa-radius-md);
  padding: 1.6rem 1.5rem;
  height:100%;
  box-shadow: var(--pa-shadow-card);
  display:flex; gap:1rem; align-items:flex-start;
  transition: transform .3s ease, box-shadow .3s ease;
}
.pa-focus-card:hover{ transform: translateY(-4px); box-shadow: var(--pa-shadow-soft); }
.pa-focus-card i{ font-size:1.3rem; color: var(--pa-terracotta-deep); margin-top:.2rem; }

/* Credential badges */
.pa-credential{
  background: var(--pa-white);
  border-radius: var(--pa-radius-md);
  padding: 1.4rem 1.3rem;
  box-shadow: var(--pa-shadow-card);
  height:100%;
}
.pa-credential .num{ font-family: var(--pa-font-head); font-size:2.1rem; color: var(--pa-sage-deep); }

/* Quote block */
.pa-quote{
  position:relative;
  background: var(--pa-sage-deep);
  color: var(--pa-white);
  border-radius: var(--pa-radius-lg);
  padding: 3.2rem 2.5rem;
}
.pa-quote .bi{ font-size:2rem; color: rgba(255,255,255,.5); }
.pa-quote blockquote{ font-family: var(--pa-font-head); font-size:1.5rem; line-height:1.55; font-weight:400; }
.pa-quote figcaption{ opacity:.85; font-size:.95rem; margin-top:1rem; }

/* Photo placeholder (for images pending upload) */
.pa-photo-placeholder{
  min-height: 220px;
  display:flex; align-items:center; justify-content:center;
  border: 2px dashed var(--pa-sage);
  background: var(--pa-sage-light);
}

/* Framed stitching / embroidery quote panel */
.pa-stitch-frame{
  position:relative;
  background:
    radial-gradient(circle at 15% 20%, rgba(74,107,77,0.08), transparent 40%),
    radial-gradient(circle at 85% 80%, rgba(139,98,57,0.08), transparent 40%),
    #FBF4E7;
  border:10px solid var(--pa-gold);
  border-radius: 10px;
  box-shadow: 0 0 0 4px #FFFDFA, 0 0 0 6px var(--pa-terracotta-deep), var(--pa-shadow-soft);
  padding: 3rem 2.4rem;
  text-align:center;
}
.pa-stitch-frame::before{
  content:"";
  position:absolute; inset:14px;
  border:1.5px dashed var(--pa-sage-deep);
  border-radius:4px;
  opacity:.55;
  pointer-events:none;
}
.pa-stitch-corner{ position:absolute; font-size:1.05rem; color:var(--pa-terracotta-deep); opacity:.6; }
.pa-stitch-corner.tl{ top:20px; left:20px; }
.pa-stitch-corner.tr{ top:20px; right:20px; transform:scaleX(-1); }
.pa-stitch-corner.bl{ bottom:20px; left:20px; transform:scaleY(-1); }
.pa-stitch-corner.br{ bottom:20px; right:20px; transform:scale(-1,-1); }
.pa-stitch-icon{ font-size:1.5rem; color: var(--pa-sage-deep); margin-bottom:.9rem; display:inline-block; }
.pa-stitch-text{
  font-family: var(--pa-font-head);
  font-style:italic;
  font-weight:600;
  font-size:1.4rem;
  line-height:1.75;
  color: var(--pa-ink);
  position:relative;
  z-index:1;
}
.pa-stitch-text .accent{ color: var(--pa-terracotta-deep); }

/* Coming soon panel (Selfhood placeholder) */
.pa-coming-soon{
  background: var(--pa-white);
  border-radius: var(--pa-radius-lg);
  padding: 3.5rem 2rem;
  text-align:center;
  box-shadow: var(--pa-shadow-soft);
}
.pa-coming-soon .bi{ font-size:2.4rem; color: var(--pa-sage-deep); margin-bottom:1rem; display:inline-block; }

/* Timeline (session process / how it works) */
.pa-timeline{ position:relative; }
.pa-timeline::before{
  content:"";
  position:absolute; top:0; bottom:0; left:27px;
  width:2px; background: #e3d8c8;
}
.pa-timeline-item{ position:relative; padding-left: 4.2rem; margin-bottom: 2.2rem; }
.pa-timeline-dot{
  position:absolute; left:0; top:0;
  width:56px; height:56px; border-radius:50%;
  background: var(--pa-terracotta-light);
  color: var(--pa-terracotta-deep);
  display:flex; align-items:center; justify-content:center;
  font-size:1.3rem;
  border: 4px solid var(--pa-ivory);
}

/* Video / TED talk cards */
.pa-video-card{
  border-radius: var(--pa-radius-md);
  overflow:hidden;
  box-shadow: var(--pa-shadow-card);
  background: var(--pa-white);
  height:100%;
}
.pa-video-thumb{
  position:relative;
  aspect-ratio: 16/9;
  overflow:hidden;
}
.pa-video-thumb img{ width:100%; height:100%; object-fit:cover; }
.pa-video-play{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  background: rgba(59,52,46,0.25);
  transition: background .25s ease;
}
.pa-video-thumb:hover .pa-video-play{ background: rgba(59,52,46,0.4); }
.pa-video-play span{
  width:64px; height:64px; border-radius:50%;
  background: rgba(255,255,255,.92);
  display:flex; align-items:center; justify-content:center;
  font-size:1.5rem; color: var(--pa-terracotta-deep);
}

/* Publisher / workshop badges */
.pa-publisher-badge{
  background: var(--pa-white);
  border:1px solid #ece2d4;
  border-radius: 50px;
  padding:.6rem 1.3rem;
  font-weight:500;
  font-size:.9rem;
  display:inline-block;
  margin:.25rem;
}

/* Accordion (FAQ) */
.pa-accordion .accordion-item{
  border:none;
  border-bottom:1px solid #ece2d4;
  background: transparent;
}
.pa-accordion .accordion-button{
  background: transparent;
  font-family: var(--pa-font-head);
  font-size:1.1rem;
  font-weight:500;
  color: var(--pa-ink);
  padding: 1.3rem 0;
  box-shadow:none;
}
.pa-accordion .accordion-button:not(.collapsed){ color: var(--pa-terracotta-deep); background:transparent; }
.pa-accordion .accordion-button:focus{ box-shadow:none; }
.pa-accordion .accordion-button::after{ background-size: 1.1rem; }
.pa-accordion .accordion-body{ padding: 0 0 1.5rem; color: var(--pa-ink-soft); }

/* Forms */
.pa-form .form-control, .pa-form .form-select{
  border-radius: var(--pa-radius-sm);
  border:1px solid #e3d8c8;
  padding: .8rem 1rem;
  background: var(--pa-cream);
}
.pa-form .form-control:focus, .pa-form .form-select:focus{
  border-color: var(--pa-sage-deep);
  box-shadow: 0 0 0 .2rem rgba(126,154,128,.15);
  background: var(--pa-white);
}
.pa-form label{ font-weight:500; font-size:.9rem; margin-bottom:.4rem; }
.pa-form-card{
  background: var(--pa-white);
  border-radius: var(--pa-radius-lg);
  padding: 2.5rem;
  box-shadow: var(--pa-shadow-soft);
}

/* Contact info card */
.pa-info-row{ display:flex; gap:1rem; align-items:flex-start; margin-bottom:1.6rem; }
.pa-info-row .pa-icon-circle{ margin-bottom:0; flex-shrink:0; width:48px; height:48px; font-size:1.1rem; }

/* Map placeholder */
.pa-map-box{
  border-radius: var(--pa-radius-lg);
  overflow:hidden;
  box-shadow: var(--pa-shadow-card);
  min-height: 260px;
}

/* CTA band */
.pa-cta-band{
  background: var(--pa-sage-deep);
  color:#fff;
  border-radius: var(--pa-radius-lg);
  padding: 3rem 2.5rem;
  position:relative;
  overflow:hidden;
}
.pa-cta-band h2{ color:#fff; }
.pa-cta-band .btn-persona-outline{ border-color:#fff; color:#fff; }
.pa-cta-band .btn-persona-outline:hover{ background:#fff; color: var(--pa-sage-deep); }

/* Divider motif */
.pa-motif{ width:64px; height:auto; opacity:.85; }

/* Footer */
.pa-footer{
  background: var(--pa-ink);
  color: #ded5c9;
  padding: 4rem 0 1.5rem;
}
.pa-footer a{ color:#ded5c9; text-decoration:none; }
.pa-footer a:hover{ color:#fff; }
.pa-footer h6{ color:#fff; font-family: var(--pa-font-head); letter-spacing:.04em; margin-bottom:1.1rem; }
.pa-footer .pa-logo-word{ color:#fff; }
.pa-footer .pa-logo-tagline{ color:#a89c8c; }
.pa-footer-social a{
  width:38px; height:38px; border-radius:50%;
  border:1px solid #5a4f42;
  display:inline-flex; align-items:center; justify-content:center;
  margin-right:.5rem;
}
.pa-footer-social a:hover{ background: var(--pa-terracotta-deep); border-color: var(--pa-terracotta-deep); }
.pa-footer hr{ border-color:#4a4034; }

/* Scroll reveal */
.reveal{ opacity:0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in-view{ opacity:1; transform:none; }

/* WhatsApp floating button */
.pa-whatsapp-float{
  position:fixed; right:22px; bottom:22px; z-index:1080;
  width:58px; height:58px; border-radius:50%;
  background:#5f8f6a; color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:1.6rem;
  box-shadow: 0 14px 30px -10px rgba(0,0,0,.35);
  transition: transform .25s ease;
}
.pa-whatsapp-float:hover{ transform: scale(1.08); color:#fff; }

/* Back to top */
.pa-back-top{
  position:fixed; right:22px; bottom:90px; z-index:1080;
  width:42px; height:42px; border-radius:50%;
  background: var(--pa-white); color: var(--pa-ink);
  display:flex; align-items:center; justify-content:center;
  box-shadow: var(--pa-shadow-card);
  opacity:0; visibility:hidden; transform: translateY(10px);
  transition: all .3s ease;
}
.pa-back-top.show{ opacity:1; visibility:visible; transform:none; }

/* Utilities */
.rounded-pa-lg{ border-radius: var(--pa-radius-lg) !important; }
.rounded-pa-md{ border-radius: var(--pa-radius-md) !important; }
.section-py{ padding-top: 5.5rem; padding-bottom: 5.5rem; }
.fs-90{ font-size: .9rem; }
.letter-space-wide{ letter-spacing:.12em; }

@media (max-width: 991.98px){
  .section-py{ padding-top: 3.5rem; padding-bottom: 3.5rem; }
  .pa-hero{ padding: 2.5rem 0 3rem; }
  .pa-floating-card{ display:none; }
}

@media (max-width: 575.98px){
  .pa-quote{ padding: 2rem 1.4rem; }
  .pa-cta-band{ padding: 2.2rem 1.4rem; }
}
