:root{
  --blush:#f5ddd6;--rose:#e8b4a8;--rose-dk:#c47a6a;--rose-lt:#fceae5;
  --nude:#f9f3ee;--warm:#fff8f4;--choco:#5c3526;--muted:#8a7060;
  --mid:#e2d0c8;--ink:#2d1a10;--success:#6a9e7a;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:#ffffff;color:var(--ink);
  font-family:'Plus Jakarta Sans',sans-serif;
  min-height:100vh;display:flex;flex-direction:column;align-items:center;
  padding:0;overflow-x:hidden;
}

/* ── Navbar ── */
.top-nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:space-between;
  padding:.75rem 2rem;

  /* 3D layered background */
  background:linear-gradient(
    160deg,
    rgba(255,252,250,.97) 0%,
    rgba(252,242,238,.97) 40%,
    rgba(248,234,228,.97) 100%
  );
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);

  /* 3D border + bottom edge highlight */
  border-top:1.5px solid rgba(255,255,255,.95);
  border-bottom:1.5px solid rgba(196,122,106,.2);

  /* Multi-layer 3D shadow stack */

  /* Gloss overlay via pseudo-element */
}
.top-nav::before{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(
    180deg,
    rgba(255,255,255,.55) 0%,
    rgba(255,255,255,.0) 55%
  );
  border-radius:inherit;
  pointer-events:none;
  z-index:0;
}
.top-nav::after{
  content:'';
  position:absolute;
  left:5%;right:5%;
  bottom:-8px;height:8px;
  background:radial-gradient(ellipse at 50% 0%,rgba(92,53,38,.18) 0%,transparent 75%);
  pointer-events:none;
  z-index:-1;
}
.top-nav>*{position:relative;z-index:1;}

/* 3D brand name */
.nav-brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;}
.nav-brand-img{
  width:40px;height:40px;border-radius:10px;object-fit:contain;
}
.nav-brand-name{
  font-family:'Fraunces',serif;font-weight:900;font-size:1.25rem;
  color:var(--choco);letter-spacing:.05em;line-height:1;
  /* 3D text shadow stack */
}
.nav-brand-name em{color:var(--rose-dk);font-style:italic;}

/* nav buttons top-right */
.nav-actions{display:flex;gap:.5rem;align-items:center;}
.nav-btn{
  padding:.48rem 1.15rem;border-radius:10px;
  font-family:'Plus Jakarta Sans',sans-serif;font-size:.82rem;
  font-weight:600;cursor:pointer;
  border:1.5px solid transparent;letter-spacing:.03em;
}
.nav-btn.outline{
  background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(249,237,232,.7));
  border-color:rgba(92,53,38,.22);color:var(--choco);
}
.nav-btn.outline:hover{
  background:var(--blush);border-color:var(--rose);
}
.nav-btn.filled{
  background:linear-gradient(135deg,var(--choco),var(--rose-dk));
  color:white;
}
.nav-btn.filled:hover{
  opacity:.92;
}

/* bg blobs */
.page-bg{display:none;}

/* ── Hero ── */
.hero{
  position:relative;z-index:1;
  display:flex;align-items:center;justify-content:center;
  min-height:100vh;width:100%;max-width:1280px;
  padding:7rem 5rem 4rem;gap:6rem;
  margin:0 auto;
}

/* LEFT — full-size image slider */
.hero-left{
  flex:0 0 580px;position:relative;height:700px;
  display:flex;align-items:center;
}
.hero-slider-wrapper{
  position:relative;width:100%;height:100%;
  display:flex;align-items:center;gap:14px;
}

/* Slider viewport */
.hero-slider-viewport{
  flex:1;height:100%;
  border-radius:28px;overflow:hidden;
  position:relative;
}
.hero-slider-track{
  position:relative;width:100%;height:100%;
}
.hero-slide{
  position:absolute;inset:0;
  opacity:0;visibility:hidden;
  z-index:0;
}
.hero-slide.active{
  opacity:1;visibility:visible;
  z-index:1;
}
.hero-slide img{
  width:100%;height:100%;object-fit:cover;display:block;
}

/* Prev / Next arrows float on left & right of image */
.hero-arrow-left,.hero-arrow-right{
  position:absolute;top:50%;z-index:20;
  width:40px;height:40px;border-radius:50%;
  background:rgba(255,255,255,.95);border:1.5px solid rgba(92,53,38,.18);
  color:var(--choco);font-size:1.2rem;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;line-height:1;
}
.hero-arrow-left{left:-18px;}
.hero-arrow-right{right:34px;}/* offset for dots column */
.hero-arrow-left:hover,.hero-arrow-right:hover{
  background:var(--blush);border-color:var(--rose);
}

/* Dots — vertical strip on the right */
.hero-slide-dots{
  display:flex;flex-direction:column;gap:.55rem;align-items:center;flex-shrink:0;
}
.hero-dot{
  width:8px;height:8px;border-radius:50%;
  background:rgba(92,53,38,.18);cursor:pointer;
}
.hero-dot.active{background:var(--rose-dk);height:26px;border-radius:4px;}

/* gradient overlay at bottom of each slide */
.hero-slide-caption{
  position:absolute;bottom:0;left:0;right:0;
  padding:2.2rem 1.8rem 1.6rem;
  background:linear-gradient(to top,rgba(30,10,5,.72) 0%,transparent 100%);
}
.hero-slide-caption .pin-emoji{
  font-size:1.6rem;margin-bottom:.4rem;display:block;
}
.hero-slide-caption .slide-label{
  font-family:'Fraunces',serif;font-weight:700;font-style:italic;
  font-size:1.15rem;color:#fff;line-height:1.3;
}

/* Slide 1 — rich 24/7 chat caption */
.slide-caption-s1{
  position:absolute;bottom:0;left:0;right:0;
  padding:2.8rem 1.8rem 1.8rem;
  background:linear-gradient(to top,rgba(15,5,2,.85) 0%,rgba(15,5,2,.4) 65%,transparent 100%);
}
.s1-badge{
  display:inline-flex;align-items:center;gap:.45rem;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:50px;
  padding:.28rem .9rem;margin-bottom:.8rem;
}
.s1-badge-dot{
  width:7px;height:7px;border-radius:50%;
  background:#4cde80;
}

.s1-badge-txt{font-size:.68rem;color:rgba(255,255,255,.9);font-weight:600;letter-spacing:.08em;text-transform:uppercase;}
.s1-headline{
  font-family:'Fraunces',serif;font-weight:900;font-style:italic;
  font-size:1.5rem;color:#fff;line-height:1.25;
  margin-bottom:.9rem;
}
.s1-pills{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem;}
.s1-pill{
  display:inline-flex;align-items:center;gap:.35rem;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);
  border-radius:50px;padding:.22rem .75rem;
  font-size:.7rem;color:rgba(255,255,255,.85);font-weight:500;letter-spacing:.02em;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.s1-cta{
  display:inline-flex;align-items:center;gap:.5rem;
  background:linear-gradient(135deg,var(--rose-dk),#a05040);
  color:#fff;border:none;border-radius:50px;
  padding:.6rem 1.4rem;font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.82rem;font-weight:700;cursor:pointer;letter-spacing:.03em;text-decoration:none;
}
.s1-cta:hover{opacity:.88;}

/* RIGHT — text */
.hero-right{flex:0 0 400px;display:flex;flex-direction:column;gap:0;}
.hero-tag{font-size:.7rem;color:var(--muted);letter-spacing:.2em;text-transform:uppercase;margin-bottom:1.2rem;}
.hero-headline{
  font-family:'Fraunces',serif;font-weight:900;font-size:clamp(2.4rem,4vw,3.4rem);
  color:var(--choco);line-height:1.12;margin-bottom:.3rem;
}
.hero-headline em{color:var(--rose-dk);font-style:italic;display:block;}
.hero-dots-unused{display:none;}
.hero-dot{width:10px;height:10px;border-radius:50%;background:rgba(92,53,38,.15);cursor:pointer;}
.hero-dot.active{background:var(--rose-dk);width:28px;border-radius:5px;}
.hero-btns{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;}
.hero-btn-main{
  padding:.9rem 2rem;border-radius:50px;
  background:linear-gradient(160deg,#7a4030,var(--choco));
  color:white;border:none;font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.95rem;font-weight:700;cursor:pointer;letter-spacing:.02em;
  transition:transform .25s cubic-bezier(.22,.68,0,1.3),box-shadow .25s ease;
}
.hero-btn-main:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 24px rgba(92,53,38,.28);
}
.hero-btn-link{
  background:none;border:none;color:var(--choco);font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.9rem;font-weight:500;cursor:pointer;padding:0;
  text-decoration:none;
}
.hero-btn-link:hover{color:var(--rose-dk);}


/* ══ MODAL ══ */
.modal-overlay{
  display:none;position:fixed;inset:0;z-index:300;
  background:rgba(20,10,6,.65);
  align-items:flex-start;justify-content:center;
  padding:1.5rem 1rem;
  overflow-y:auto;
}
.modal-overlay.open{display:flex;}
/* ── Form Panel (full modal) ── */
.modal{
  border-radius:18px;overflow:visible;
  width:min(380px,100%);height:auto;
  position:relative;display:flex;
  margin:auto;flex-shrink:0;
}

/* modal top accent bar */
.modal::before{
  content:'';
  position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--rose-dk),var(--choco),var(--rose));
  z-index:10;border-radius:24px 24px 0 0;
}

/* ── Form Panel ── */
.modal-form{
  flex:1;overflow-y:visible;padding:1.4rem 1.5rem 1.6rem;
  background:rgba(255,252,250,.99);position:relative;
  border-radius:18px;
}

/* wrong password message */
.wrong-msg{
  display:none;
  background:#fff0ee;border:1.5px solid #f5c6c0;border-radius:10px;
  padding:.75rem 1rem;font-size:.78rem;color:#c0392b;
  margin-bottom:.9rem;line-height:1.6;
  display:none;align-items:flex-start;gap:.5rem;
}
.wrong-msg.show{display:flex;}
.modal-close{
  position:absolute;top:1rem;right:1rem;background:rgba(92,53,38,.1);border:1px solid rgba(92,53,38,.18);cursor:pointer;
  font-size:1rem;color:var(--choco);width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  z-index:50;
}
.modal-close:hover{background:var(--blush);color:var(--choco);}


.sub-panel{display:none;}
.sub-panel.active{display:block;}

/* fields */
.ls-h1{font-family:'Fraunces',serif;font-size:1.15rem;font-weight:700;color:var(--choco);margin-bottom:.2rem;}
.ls-sub{font-size:.68rem;color:var(--muted);margin-bottom:.9rem;line-height:1.65;}
.ls-field{margin-bottom:.65rem;}
.ls-field label{display:block;font-size:.6rem;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);margin-bottom:.3rem;font-weight:500;}
.ls-field input{width:100%;background:var(--nude);border:1px solid rgba(92,53,38,.1);border-radius:8px;padding:.6rem .9rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:.82rem;color:var(--ink);outline:none;}
.ls-field input:focus{border-color:var(--rose-dk);}
.ls-err{font-size:.63rem;color:#c0392b;margin-top:.3rem;min-height:.85em;}
.pass-wrap{position:relative;}
.pass-wrap input{padding-right:2.8rem;}
.eye-btn{position:absolute;right:.85rem;top:50%;background:none;border:none;cursor:pointer;font-size:1rem;color:var(--muted);}
.recovery-hint{font-size:.65rem;color:var(--muted);margin-top:.35rem;}

/* Forgot password */
.forgot-link-row{display:flex;justify-content:flex-end;margin-top:-.4rem;margin-bottom:.85rem;}
.forgot-link{background:none;border:none;color:var(--rose-dk);font-size:.72rem;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;padding:0;text-decoration:underline;}
.forgot-link:hover{color:var(--choco);}

.forgot-box{
  display:none;
  background:linear-gradient(135deg,var(--rose-lt),#fff8f6);
  border:1.5px solid rgba(196,122,106,.28);
  border-radius:10px;padding:.85rem 1rem .75rem;
  margin-bottom:.75rem;
}
.forgot-box.open{display:block;}
.forgot-box-title{
  font-size:.72rem;font-weight:700;color:var(--choco);
  margin-bottom:.75rem;display:flex;align-items:center;gap:.4rem;
  padding-bottom:.5rem;border-bottom:1px solid rgba(196,122,106,.2);
}
.forgot-box .ls-field{margin-bottom:.65rem;}
.forgot-reset-btn{
  width:100%;padding:.58rem;
  background:linear-gradient(135deg,var(--choco),var(--rose-dk));
  color:white;border:none;border-radius:8px;
  font-family:'Plus Jakarta Sans',sans-serif;font-size:.75rem;font-weight:600;
  cursor:pointer;
}
.forgot-reset-btn:hover{opacity:.88;}
.fp-msg{font-size:.72rem;min-height:.9em;margin-top:.55rem;font-weight:500;line-height:1.6;}
.forgot-close-row{text-align:right;margin-top:.6rem;}
.forgot-close-lnk{background:none;border:none;color:var(--muted);font-size:.68rem;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;text-decoration:underline;}
.forgot-close-lnk:hover{color:var(--choco);}

/* wrong msg */

/* T&C */
.ls-tnc{border:1px solid rgba(92,53,38,.1);border-radius:10px;overflow:hidden;margin-bottom:.6rem;}
.ls-tnc.accepted{border-color:#6a9e7a;}
.tnc-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .9rem;background:var(--nude);cursor:pointer;user-select:none;}
.tnc-header:hover{background:var(--blush);}
.tnc-header-txt{font-size:.68rem;font-weight:600;color:var(--choco);}
.tnc-required{font-size:.58rem;color:var(--rose-dk);font-weight:400;}
.tnc-chevron{font-size:.58rem;color:var(--muted);}
.tnc-body{max-height:0;overflow:hidden;background:white;}
.tnc-body.open{max-height:600px;}
.tnc-intro{font-size:.68rem;color:var(--muted);padding:.75rem .9rem .4rem;line-height:1.6;font-style:italic;}
.tnc-list{list-style:none;padding:.2rem .9rem .6rem;display:flex;flex-direction:column;gap:.4rem;}
.tnc-list li{display:flex;align-items:flex-start;gap:.5rem;font-size:.68rem;color:var(--ink);line-height:1.55;}
.tnc-ico{font-size:.85rem;flex-shrink:0;margin-top:.05rem;}
.tnc-crisis{margin:.2rem .9rem .75rem;background:linear-gradient(135deg,#fff8e0,#fff3e8);border:1px solid #f0d888;border-radius:8px;padding:.65rem .8rem;font-size:.63rem;color:#7a5500;line-height:1.75;}
.tnc-check-row{display:flex;align-items:center;gap:.6rem;padding:.6rem .9rem;border-top:1px solid rgba(92,53,38,.08);cursor:pointer;background:var(--nude);}
.tnc-check-row input[type=checkbox]{width:14px;height:14px;accent-color:var(--rose-dk);cursor:pointer;flex-shrink:0;}
.tnc-check-lbl{font-size:.68rem;color:var(--choco);font-weight:500;line-height:1.4;}

/* main button */
.ls-btn{width:100%;margin-top:.4rem;background:linear-gradient(135deg,var(--choco),var(--rose-dk));color:white;border:none;border-radius:10px;padding:.75rem;font-family:'Plus Jakarta Sans',sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;letter-spacing:.02em;}
.ls-btn:hover{opacity:.9;}
.ls-foot{text-align:center;margin-top:.75rem;font-size:.63rem;color:var(--muted);line-height:1.7;}
.ls-link{background:none;border:none;color:var(--rose-dk);font-size:.75rem;cursor:pointer;text-decoration:underline;font-family:'Plus Jakarta Sans',sans-serif;padding:0;}
.ls-link:hover{color:var(--choco);}

/* ── Features Section ── */
body{overflow-y:auto;}
.page-wrap{position:relative;z-index:1;width:100%;}

/* ── About Section ── */
/* ── About / What is Adulting101 — 3D ── */
.about-section{
  width:100%;max-width:1100px;margin:0 auto;
  padding:5rem 3rem 4rem;
  position:relative;z-index:1;
  display:flex;align-items:center;gap:5rem;

  /* 3D floating panel */
  background:linear-gradient(145deg,#fffaf8 0%,#fff5f0 50%,#fdf0ea 100%);
  border-radius:32px;
  border:1.5px solid rgba(255,255,255,.95);
}
.about-section::before{
  content:'';position:absolute;inset:0;border-radius:32px;
  background:linear-gradient(180deg,rgba(255,255,255,.6) 0%,rgba(255,255,255,0) 45%);
  pointer-events:none;z-index:0;
}
.about-section::after{
  content:'';
  position:absolute;left:8%;right:8%;bottom:-18px;height:18px;
  background:radial-gradient(ellipse at 50% 0%,rgba(92,53,38,.18) 0%,transparent 72%);
  pointer-events:none;z-index:-1;
}
.about-section>*{position:relative;z-index:1;}

.about-left{flex:1;position:relative;}
.about-label{
  font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--rose-dk);font-weight:600;margin-bottom:1rem;
}
.about-title{
  font-family:'Fraunces',serif;font-weight:900;
  font-size:clamp(2rem,3.5vw,2.9rem);
  color:var(--choco);line-height:1.14;margin-bottom:.4rem;
  /* 3D stacked text shadow */
}
.about-title em{
  color:var(--rose-dk);font-style:italic;
}
.about-divider{
  width:60px;height:4px;
  background:linear-gradient(90deg,var(--rose-dk),var(--rose));
  border-radius:4px;margin:1.1rem 0 1.4rem;
}
.about-desc{
  font-size:.9rem;color:#6b5a50;line-height:1.9;margin-bottom:1.6rem;max-width:460px;
}
.about-tags{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2rem;}
.about-tag{
  display:inline-flex;align-items:center;gap:.4rem;
  /* 3D layered background */
  background:linear-gradient(160deg,#ffffff 0%,#fdeae4 60%,#f8d8ce 100%);
  border-top:1.5px solid rgba(255,255,255,.95);
  border-left:1.5px solid rgba(255,255,255,.8);
  border-right:1.5px solid rgba(180,100,80,.25);
  border-bottom:2.5px solid rgba(180,100,80,.35);
  border-radius:50px;padding:.38rem 1rem;
  font-size:.72rem;color:var(--choco);font-weight:600;
  /* depth via layered shadows */
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 2px 0 rgba(160,80,60,.18),
    0 4px 8px rgba(92,53,38,.13),
    0 6px 14px rgba(92,53,38,.08);
  /* subtle perspective tilt */
  transform:perspective(300px) rotateX(-4deg) translateZ(0);
  cursor:default;
  position:relative;
  /* gloss overlay */
}
.about-tag::before{
  content:'';
  position:absolute;inset:0;border-radius:50px;
  background:linear-gradient(180deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,0) 55%);
  pointer-events:none;
}
.about-tag:hover{
  transform:perspective(300px) rotateX(-4deg) translateZ(6px) translateY(-2px);
  box-shadow:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 3px 0 rgba(160,80,60,.2),
    0 6px 14px rgba(92,53,38,.18),
    0 10px 22px rgba(92,53,38,.1);
  background:linear-gradient(160deg,#ffffff 0%,#fce0d8 60%,#f5ccc0 100%);
}
.about-cta{
  display:inline-flex;align-items:center;gap:.5rem;
  background:linear-gradient(160deg,#7a4030,var(--choco));
  color:#fff;border:none;border-radius:50px;
  padding:.85rem 1.8rem;font-family:'Plus Jakarta Sans',sans-serif;
  font-size:.88rem;font-weight:700;cursor:pointer;letter-spacing:.03em;
  transition:transform .25s cubic-bezier(.22,.68,0,1.3),box-shadow .25s ease;
}
.about-cta:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 24px rgba(92,53,38,.28);
}
.about-cta:active{transform:translateY(-1px);}

/* Right — 3D stat cards */
.about-right{flex:0 0 340px;display:flex;flex-direction:column;gap:1rem;}
.about-card{
  background:linear-gradient(145deg,#ffffff 0%,#fdf5f1 100%);
  border:1px solid rgba(255,255,255,.95);
  border-radius:18px;padding:1.4rem 1.6rem;
  display:flex;align-items:flex-start;gap:1rem;
  /* 3D card lift */
}
.about-card-icon{
  font-size:1.7rem;flex-shrink:0;
  width:46px;height:46px;border-radius:12px;
  background:linear-gradient(145deg,var(--blush),#fde8e0);
  display:flex;align-items:center;justify-content:center;
}
.about-card-title{
  font-family:'Fraunces',serif;font-size:1rem;font-weight:700;
  color:var(--choco);margin-bottom:.25rem;
}
.about-card-desc{font-size:.73rem;color:#8a7060;line-height:1.7;}
.about-anon-strip{
  background:linear-gradient(135deg,#fdf0ec,#fff7f5);
  border:1.5px solid rgba(196,122,106,.18);
  border-radius:14px;padding:1rem 1.4rem;
  display:flex;align-items:center;gap:.8rem;
  font-size:.75rem;color:var(--choco);font-weight:600;
}
.about-anon-strip .anon-icon{font-size:1.2rem;}

/* ── Footer ── */
.site-footer{
  background:#5c2d1a;color:rgba(255,240,232,.85);
  padding:3.5rem 6rem 0;font-family:'Plus Jakarta Sans',sans-serif;
  width:100%;box-sizing:border-box;
}
.footer-main{
  display:flex;flex-wrap:nowrap;gap:0;align-items:flex-start;
  justify-content:space-between;
  width:100%;
  padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.footer-brand{flex:0 0 260px;padding-right:3rem;border-right:1px solid rgba(255,255,255,.08);margin-right:1rem;}
.footer-logo{
  font-family:'Fraunces',serif;font-weight:900;font-size:2.8rem;
  color:#fff;letter-spacing:-.01em;margin-bottom:.8rem;line-height:1;
  white-space:nowrap;display:flex;align-items:baseline;gap:.35rem;
}
.footer-logo em{color:var(--rose);font-style:italic;font-size:2.8rem;}
.footer-tagline{font-size:.8rem;color:rgba(255,240,232,.6);line-height:1.8;}

.footer-col{flex:1;min-width:150px;padding:0 1rem;}
.footer-col:last-child{flex:1;min-width:180px;padding:0 1rem;}
.footer-col-title{
  font-family:'Fraunces',serif;font-weight:700;font-style:italic;
  font-size:1.05rem;color:#fff;margin-bottom:1.1rem;
}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:.55rem;}
.footer-links a{color:rgba(255,240,232,.65);text-decoration:none;font-size:.8rem;}
.footer-links a:hover{color:#fff;}

.footer-col:last-child{flex:1;}
.footer-contacts{display:flex;flex-direction:column;gap:.9rem;}
.footer-contact-item{display:flex;align-items:flex-start;gap:.75rem;}
.footer-contact-icon{
  width:32px;height:32px;border-radius:8px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);
  display:flex;align-items:center;justify-content:center;
  font-size:.85rem;flex-shrink:0;
}
.footer-contact-label{font-size:.58rem;letter-spacing:.12em;color:rgba(255,240,232,.45);margin-bottom:.15rem;}
.footer-contact-val{font-size:.75rem;color:rgba(255,240,232,.8);text-decoration:none;}
.footer-contact-val:hover{color:#fff;}

.footer-support-mail{
  margin-top:1.4rem;
  padding-top:1.2rem;
  border-top:1px solid rgba(255,255,255,.1);
}
.footer-support-mail .footer-contact-label{
  font-size:.58rem;letter-spacing:.14em;
  color:rgba(255,240,232,.45);margin-bottom:.4rem;
}
.footer-support-mail .footer-contact-val{
  display:flex;align-items:center;gap:.45rem;
  font-size:.78rem;color:rgba(255,240,232,.85);
  text-decoration:none;
  word-break:break-all;
}
.footer-support-mail .footer-contact-val:hover{color:#fff;}
.support-mail-icon{font-size:.9rem;flex-shrink:0;}

/* Footer column groups — side-by-side pairs */
.footer-col-group{
  display:flex;gap:0;flex:2;min-width:280px;
}
.footer-col-group .footer-col{
  flex:1;min-width:120px;padding:0 .8rem;
  border-right:1px solid rgba(255,255,255,.06);
}
.footer-col-group .footer-col:last-child{
  border-right:none;
}

/* Bottom bar */
.footer-bottom{
  width:100%;
  padding:1.4rem 0 1.8rem;
  display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;
}
.footer-bottom-left p{
  font-size:.6rem;color:rgba(255,240,232,.4);letter-spacing:.04em;
  line-height:1.8;margin-bottom:.1rem;
}
.footer-bottom-left a{color:rgba(255,240,232,.55);text-decoration:none;}
.footer-bottom-left a:hover{color:#fff;}
.footer-legal-links{
  display:flex;gap:.7rem;align-items:center;margin-top:.5rem;
  font-size:.58rem;color:rgba(255,240,232,.35);letter-spacing:.08em;
}
.footer-legal-links a{color:rgba(255,240,232,.35);text-decoration:none;}
.footer-legal-links a:hover{color:rgba(255,240,232,.7);}

/* Safe Space Badge */
.safe-space-badge{
  display:inline-flex;align-items:center;gap:.55rem;
  background:linear-gradient(135deg,#c47a6a,#8b4a35);
  color:#fff;border:none;border-radius:50px;
  padding:.7rem 1.4rem;cursor:pointer;flex-shrink:0;
}
.ssb-icon{font-size:1.1rem;}
.ssb-text{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:.88rem;letter-spacing:.03em;}

.features-section{
  padding:5rem 5rem 4rem;
  position:relative;z-index:1;
  max-width:1280px;
  margin:0 auto;
}
.features-label{
  font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--rose-dk);font-weight:600;margin-bottom:1rem;
  text-align:left;
}
.features-title{
  font-family:'Fraunces',serif;font-weight:900;font-size:clamp(2.2rem,5vw,3.4rem);
  color:var(--choco);line-height:1.12;margin-bottom:.1rem;font-style:italic;
  text-align:left;
}
.features-title em{color:var(--choco);font-style:italic;}
.features-divider{width:72px;height:3px;background:var(--rose);border-radius:2px;margin:1.2rem 0 1.4rem;}
.features-desc{font-size:.95rem;color:var(--muted);line-height:1.85;max-width:480px;margin-bottom:3.5rem;text-align:left;}

.features-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;
}
.feat-card{
  background:#fff;border-radius:20px;
  padding:2.2rem 2rem 2rem;position:relative;overflow:hidden;
  border:none;
  box-shadow:
    0 2px 4px rgba(92,53,38,.04),
    0 6px 16px rgba(92,53,38,.08),
    0 20px 40px rgba(92,53,38,.07);
  transition:transform .28s cubic-bezier(.22,.68,0,1.2),
             box-shadow .28s cubic-bezier(.22,.68,0,1.2);
}
.feat-card:hover{
  transform:translateY(-6px) scale(1.012);
  box-shadow:
    0 4px 8px rgba(92,53,38,.05),
    0 12px 28px rgba(92,53,38,.12),
    0 32px 56px rgba(92,53,38,.10);
}
.feat-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:5px;border-radius:20px 20px 0 0;
}
.feat-card.c-rose::before{background:#c47a6a;}
.feat-card.c-blue::before{background:#5b7fa6;}
.feat-card.c-gold::before{background:#a08c3a;}
.feat-card.c-olive::before{background:#7a8c4a;}
.feat-card.c-teal::before{background:#3a8c7a;}
.feat-card.c-maroon::before{background:#6a2030;}

.feat-icon{
  font-size:2.4rem;margin-bottom:1.2rem;display:block;line-height:1;
  transition:transform .28s cubic-bezier(.22,.68,0,1.2);
}
.feat-card:hover .feat-icon{transform:translateY(-6px) scale(1.15);}
.feat-name{
  font-family:'Fraunces',serif;font-size:1.22rem;font-weight:700;font-style:italic;
  color:var(--choco);margin-bottom:.75rem;
}
.feat-body{font-size:.845rem;color:#6b5a50;line-height:1.85;}

/* Therapy Hall mini-rooms */
.th-rooms{
  display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:1.1rem;
}
.th-room{
  display:flex;align-items:center;gap:.45rem;
  background:rgba(106,32,48,.06);border:1px solid rgba(106,32,48,.1);
  border-radius:10px;padding:.38rem .6rem;
  font-size:.72rem;font-weight:600;color:#5c3526;letter-spacing:.01em;
  transition:background .2s,transform .2s;
}
.th-room span:first-child{font-size:1rem;line-height:1;}
.feat-card:hover .th-room{background:rgba(106,32,48,.1);}
.feat-card:hover .th-room:hover{background:rgba(106,32,48,.16);transform:translateY(-2px);}

/* ── Scroll-reveal for features section ── */
.reveal{opacity:0;transform:translateY(36px);transition:opacity .75s ease,transform .75s cubic-bezier(.22,.68,0,1.1);}
.reveal.visible{opacity:1;transform:translateY(0);}

@keyframes gradShift{0%,100%{background-position:0% 50%;}50%{background-position:100% 50%;}}
@keyframes shimmerLine{0%{background-position:-200% center;}100%{background-position:200% center;}}
.quote-banner{
  background:linear-gradient(135deg,#1a0d08 0%,var(--choco) 50%,#7a4535 100%);
  background-size:200% 200%;animation:gradShift 8s ease infinite;
  width:100%;padding:9rem 2rem;text-align:center;position:relative;overflow:hidden;
  perspective:1200px;
}
.quote-banner::before{
  content:'"';position:absolute;top:-5rem;left:50%;transform:translateX(-50%) perspective(400px) rotateX(20deg);
  font-family:'Fraunces',serif;font-size:32rem;color:rgba(255,255,255,.035);
  line-height:1;pointer-events:none;
}
.quote-banner::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 50% 60% at 15% 50%,rgba(232,180,168,.1) 0%,transparent 60%),
    radial-gradient(ellipse 40% 50% at 85% 50%,rgba(196,122,106,.08) 0%,transparent 55%);
}
.qb-canvas{position:absolute;inset:0;pointer-events:none;opacity:.55;}
.qb-content{position:relative;z-index:1;max-width:820px;margin:0 auto;}
.qb-quote{
  font-family:'Fraunces',serif;font-size:clamp(1.9rem,4.8vw,3.4rem);
  font-weight:900;color:#fff;line-height:1.18;max-width:800px;margin:0 auto 1.5rem;
  letter-spacing:-.015em;font-style:normal;position:relative;z-index:1;
  opacity:0;
  transform:perspective(900px) rotateX(20deg) translateY(40px);
  transition:opacity .95s .2s ease,transform .95s .2s cubic-bezier(.22,1,.36,1);
}
.qb-quote.q-visible{opacity:1;transform:perspective(900px) rotateX(0) translateY(0);}
.qb-quote em{
  color:#fff;font-style:normal;font-weight:900;
  background:linear-gradient(90deg,rgba(232,180,168,.0),rgba(232,180,168,.4),rgba(232,180,168,.0));
  background-size:200% 100%;
  -webkit-background-clip:text;background-clip:text;
  animation:shimmerLine 3s 1.5s ease-in-out infinite;
}
.qb-attr{
  font-size:.72rem;color:rgba(255,255,255,.45);letter-spacing:.22em;text-transform:uppercase;
  opacity:0;transition:opacity .8s .85s ease;position:relative;z-index:1;margin-bottom:0;
}
.qb-attr.q-visible{opacity:1;}
.qb-btns{
  display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:3rem;
  opacity:0;transform:perspective(600px) rotateX(14deg) translateY(24px);
  transition:opacity .75s 1.05s ease,transform .75s 1.05s cubic-bezier(.22,1,.36,1);
  position:relative;z-index:1;
}
.qb-btns.q-visible{opacity:1;transform:perspective(600px) rotateX(0) translateY(0);}
.btn-white{background:white;color:var(--choco);border:none;padding:1rem 2.4rem;border-radius:99px;font-family:'Plus Jakarta Sans',sans-serif;font-size:.88rem;font-weight:600;cursor:pointer;transition:all .4s;letter-spacing:.02em;box-shadow:0 4px 18px rgba(0,0,0,.15);}
.btn-white:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 10px 32px rgba(0,0,0,.28);}
.btn-ghost{background:transparent;color:white;border:1.5px solid rgba(255,255,255,.35);padding:1rem 2.4rem;border-radius:99px;font-family:'Plus Jakarta Sans',sans-serif;font-size:.88rem;font-weight:500;cursor:pointer;transition:all .4s;letter-spacing:.02em;}
.btn-ghost:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.7);transform:translateY(-2px);}

.scroll-cue{
  display:flex;flex-direction:column;align-items:center;gap:.4rem;
  margin:2.2rem 0 0;color:var(--muted);font-size:.68rem;letter-spacing:.12em;
  text-transform:uppercase;cursor:pointer;
}
.scroll-cue svg{opacity:.5;}

/* ── Info Modal (T&C / PP / FAQ / Guidelines) ── */
.info-modal-overlay{
  display:none;position:fixed;inset:0;z-index:500;
  background:rgba(20,10,6,.72);
  align-items:flex-start;justify-content:center;
  padding:1.5rem 1rem;overflow-y:auto;
}
.info-modal-overlay.open{display:flex;}
.info-modal{
  background:#fffaf8;border-radius:20px;width:min(600px,100%);
  margin:auto;position:relative;overflow:hidden;
  border:1px solid rgba(196,122,106,.18);
  box-shadow:0 24px 80px rgba(20,10,6,.35);
}
.info-modal::before{
  content:'';position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--rose-dk),var(--choco),var(--rose));
}
.info-modal-head{
  padding:1.4rem 1.6rem 1rem;border-bottom:1px solid rgba(92,53,38,.08);
  display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
}
.info-modal-title{
  font-family:'Fraunces',serif;font-size:1.2rem;font-weight:700;
  color:var(--choco);line-height:1.3;
}
.info-modal-close{
  background:rgba(92,53,38,.1);border:1px solid rgba(92,53,38,.18);
  cursor:pointer;font-size:.9rem;color:var(--choco);
  width:32px;height:32px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.info-modal-close:hover{background:var(--blush);}
.info-modal-body{
  padding:1.4rem 1.6rem 1.8rem;max-height:70vh;overflow-y:auto;
}
.info-modal-body h3{
  font-family:'Fraunces',serif;font-size:.95rem;font-weight:700;
  color:var(--choco);margin:1.2rem 0 .45rem;
}
.info-modal-body h3:first-child{margin-top:0;}
.info-modal-body p{font-size:.8rem;color:#5a4a3a;line-height:1.8;margin-bottom:.6rem;}
.info-modal-body ul{list-style:none;padding:0;margin-bottom:.6rem;display:flex;flex-direction:column;gap:.38rem;}
.info-modal-body ul li{font-size:.8rem;color:#5a4a3a;line-height:1.7;display:flex;align-items:flex-start;gap:.5rem;}
.info-modal-body ul li::before{content:'•';color:var(--rose-dk);font-size:.9rem;flex-shrink:0;margin-top:.05rem;}
.info-modal-body .im-callout{
  background:linear-gradient(135deg,var(--rose-lt),#fff8f6);
  border:1px solid rgba(196,122,106,.22);border-radius:10px;
  padding:.85rem 1rem;font-size:.78rem;color:var(--choco);
  line-height:1.7;margin:1rem 0;
}
.info-modal-body .im-callout strong{color:var(--rose-dk);}
.tnc-links{font-size:.63rem;color:var(--muted);margin-top:.3rem;text-align:center;}
.tnc-links a{color:var(--rose-dk);text-decoration:none;font-size:.63rem;}
.tnc-links a:hover{text-decoration:underline;}

/* ══════════════════════════════════════
   MOBILE RESPONSIVE — ≤768px
══════════════════════════════════════ */
@media (max-width: 768px) {

  /* ── Navbar ── */
  .top-nav {
    padding: .55rem 1rem;
  }
  .nav-brand-name {
    font-size: 1rem;
  }
  .nav-brand-img {
    width: 32px; height: 32px;
  }
  .nav-btn {
    padding: .38rem .85rem;
    font-size: .72rem;
    border-radius: 8px;
  }

  /* ── Hero: stack vertically ── */
  .hero {
    flex-direction: column;
    min-height: unset;
    padding: 5rem 1.1rem 2.5rem;
    gap: 1.8rem;
    align-items: stretch;
  }

  /* Slider — tall vertical, full image visible on mobile */
  .hero-left {
    flex: unset;
    width: 100%;
    height: auto;
  }
  .hero-slider-wrapper {
    gap: 0;
    flex-direction: column;
    align-items: stretch;
  }
  /* aspect-ratio drives the height so full portrait image shows */
  .hero-slider-viewport {
    border-radius: 22px;
    width: 100%;
    height: auto !important;
    flex: unset !important;
    aspect-ratio: 3 / 4.2;
    position: relative;
    overflow: hidden;
  }
  /* track must fill the viewport */
  .hero-slider-track {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }
  /* cover keeps image filling container, centered */
  .hero-slide img {
    object-fit: cover;
    object-position: center center;
    width: 100%;
    height: 100%;
  }
  .hero-arrow-left { left: 8px; width: 34px; height: 34px; font-size: 1.1rem; z-index: 30; }
  .hero-arrow-right { right: 8px; width: 34px; height: 34px; font-size: 1.1rem; z-index: 30; }
  .hero-slide-dots {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: .45rem;
    padding: .65rem 0 0;
    order: 10;
  }
  .hero-dot { width: 7px; height: 7px; border-radius: 50%; }
  .hero-dot.active { width: 22px; height: 7px; border-radius: 4px; }

  /* Slide captions */
  .slide-caption-s1 { padding: 1.6rem 1.1rem 1.2rem; }
  .s1-headline { font-size: 1.05rem; margin-bottom: .6rem; }
  .s1-badge { padding: .2rem .65rem; margin-bottom: .55rem; }
  .s1-badge-txt { font-size: .6rem; }
  .s1-pills { gap: .35rem; margin-bottom: .7rem; }
  .s1-pill { font-size: .62rem; padding: .18rem .6rem; }
  .s1-cta { font-size: .72rem; padding: .5rem 1.1rem; }
  .hero-slide-caption { padding: 1.4rem 1rem 1rem; }
  .hero-slide-caption .pin-emoji { font-size: 1.2rem; }
  .hero-slide-caption .slide-label { font-size: .88rem; }

  /* Hero right text — comes AFTER slider on mobile */
  .hero-right {
    flex: unset;
    width: 100%;
    order: 10;
    text-align: center;
  }
  .hero-tag { font-size: .62rem; margin-bottom: .8rem; }
  .hero-headline {
    font-size: clamp(1.9rem, 7vw, 2.6rem);
    margin-bottom: .2rem;
  }
  .hero-btns {
    margin-top: 1.2rem !important;
    flex-direction: column;
    gap: .85rem;
    align-items: center;
  }
  .hero-btn-main {
    padding: .75rem 1.6rem;
    font-size: .85rem;
    width: 100%;
    text-align: center;
  }
  .hero-btn-link {
    font-size: .82rem;
    text-align: center;
    width: 100%;
    display: block;
  }

  /* ── About Section ── */
  .about-section {
    flex-direction: column;
    gap: 2rem;
    padding: 2.8rem 1.2rem 2.4rem;
    border-radius: 0;
    margin: 0;
  }
  .about-section::after { display: none; }
  .about-left, .about-right { flex: unset; width: 100%; }
  .about-right { flex: 0 0 auto; }
  .about-title { font-size: clamp(1.7rem, 6vw, 2.2rem); }
  .about-desc { font-size: .82rem; margin-bottom: 1.2rem; max-width: 100%; }
  .about-tags { gap: .45rem; }
  .about-tag { font-size: .65rem; padding: .3rem .8rem; }
  .about-cta { padding: .75rem 1.5rem; font-size: .82rem; }
  .about-card { padding: 1rem 1.1rem; border-radius: 14px; }
  .about-card-icon { width: 38px; height: 38px; font-size: 1.3rem; border-radius: 10px; }
  .about-card-title { font-size: .88rem; }
  .about-card-desc { font-size: .7rem; }
  .about-anon-strip { font-size: .7rem; padding: .8rem 1rem; border-radius: 12px; }

  /* ── Features Section ── */
  .features-section {
    padding: 2.5rem 1.1rem 2rem;
  }
  .features-title { font-size: clamp(1.7rem, 6vw, 2.4rem); }
  .features-desc { font-size: .82rem; margin-bottom: 2rem; max-width: 100%; }
  .features-grid {
    grid-template-columns: 1fr;
    gap: 1.1rem;
  }
  .feat-card { padding: 1.4rem 1.2rem 1.3rem; border-radius: 16px; }
  .feat-icon { font-size: 1.9rem; margin-bottom: .8rem; }
  .feat-name { font-size: 1rem; margin-bottom: .55rem; }
  .feat-body { font-size: .78rem; line-height: 1.75; }
  .th-rooms { gap: .4rem; margin-top: .8rem; }
  .th-room { font-size: .65rem; padding: .3rem .5rem; border-radius: 8px; }
  .th-room span:first-child { font-size: .85rem; }

  /* ── Quote Banner ── */
  .quote-banner { padding: 4.5rem 1.4rem; }
  .qb-quote { font-size: clamp(1.4rem, 5.5vw, 2rem); }
  .qb-btns { flex-direction: column; align-items: center; gap: .75rem; margin-top: 2rem; }
  .btn-white, .btn-ghost { padding: .85rem 1.8rem; font-size: .82rem; width: 100%; max-width: 280px; }

  /* ── Footer ── */
  .site-footer { padding: 2.5rem 1.2rem 0; }
  .footer-main {
    flex-direction: column;
    gap: 2rem;
  }
  .footer-brand {
    flex: unset;
    padding-right: 0;
    border-right: none;
    margin-right: 0;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid rgba(255,255,255,.1);
  }
  .footer-logo { font-size: 2rem; }
  .footer-logo em { font-size: 2rem; }
  .footer-tagline { font-size: .75rem; }
  .footer-col { padding: 0; min-width: unset; }
  .footer-col-group { flex-direction: row; gap: 0; width: 100%; min-width: unset; }
  .footer-col-group .footer-col { flex: 1; padding: 0 .75rem 0 0; border-right: none; }
  .footer-col-group .footer-col:last-child { padding: 0 0 0 .75rem; border-left: 1px solid rgba(255,255,255,.08); }
  .footer-col-title { font-size: .9rem; margin-bottom: .8rem; }
  .footer-links a { font-size: .75rem; }
  .footer-contact-val { font-size: .7rem; }
  .footer-bottom {
    flex-direction: column;
    gap: 1rem;
    align-items: flex-start;
    padding: 1.2rem 0 1.5rem;
  }
  .footer-legal-links { flex-wrap: wrap; gap: .5rem; }
  .safe-space-badge { padding: .6rem 1.1rem; }
  .ssb-text { font-size: .78rem; }

  /* ── Modals ── */
  .modal-overlay { padding: .75rem .8rem; align-items: flex-start; }
  .modal { width: 100%; margin: auto; }
  .modal-form { padding: 1.1rem 1.1rem 1.3rem; border-radius: 16px; }
  .ls-h1 { font-size: 1rem; }
  .ls-sub { font-size: .63rem; margin-bottom: .75rem; }
  .ls-field input { font-size: .78rem; padding: .55rem .8rem; }
  .ls-btn { font-size: .78rem; padding: .68rem; }

  /* ── Info Modal ── */
  .info-modal { border-radius: 16px; }
  .info-modal-head { padding: 1.1rem 1.1rem .8rem; }
  .info-modal-body { padding: 1rem 1.1rem 1.4rem; max-height: 75vh; }
}

/* ══ Extra small phones ≤380px ══ */
@media (max-width: 380px) {
  .hero { padding: 4.5rem .85rem 2rem; }
  .hero-left { height: 290px; }
  .hero-headline { font-size: 1.75rem; }
  .about-section { padding: 2.2rem .85rem 2rem; }
  .features-section { padding: 2rem .85rem 1.5rem; }
  .site-footer { padding: 2rem .85rem 0; }
}