/* ============================================================
   PRITILATA — Interactive tool styles
   ============================================================ */

/* shared tool shell */
.tool-shell{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:30px;box-shadow:var(--shadow-sm);margin-top:22px;
}
.tool-shell .btn{font-size:.92rem}

/* ---------- PERIOD TRACKER ---------- */
.tk-form{display:grid;gap:16px}
.tk-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tk-field label{display:block;font-size:.82rem;font-weight:600;color:var(--plum);margin-bottom:6px}
.tk-field input{
  width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:11px;
  font-family:'Outfit';font-size:1rem;background:var(--ivory);transition:border .2s;
}
.tk-field input:focus{outline:none;border-color:var(--magenta);background:#fff}
.tk-priv{font-size:.78rem;color:var(--muted);margin-top:-2px}

.tk-hero{display:flex;align-items:center;gap:26px;margin-bottom:22px;flex-wrap:wrap}
.tk-ring{
  --pct:50;flex:none;width:128px;height:128px;border-radius:50%;
  background:conic-gradient(var(--magenta) calc(var(--pct)*1%), var(--pink-soft) 0);
  display:grid;place-items:center;
}
.tk-ring-in{width:96px;height:96px;border-radius:50%;background:#fff;display:grid;place-items:center;text-align:center}
.tk-ring-in b{font-family:'Fraunces',serif;font-size:2rem;color:var(--plum);line-height:1}
.tk-ring-in span{font-size:.7rem;color:var(--muted)}
.tk-hero-txt{flex:1;min-width:200px}
.tk-phase{display:inline-block;font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--magenta);background:var(--pink-soft);padding:4px 12px;border-radius:999px;margin-bottom:8px}
.tk-hero-txt h4{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--plum);margin-bottom:4px}
.tk-hero-txt p{color:var(--muted);font-size:.95rem}
.tk-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.tk-card{background:var(--ivory);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.tk-card span{display:block;font-size:.74rem;color:var(--muted);margin-bottom:4px}
.tk-card b{color:var(--plum);font-size:.96rem}
.tk-note{font-size:.8rem;color:var(--muted);margin-bottom:14px}
.tk-reset{font-size:.86rem}

/* ---------- SELF BREAST-EXAM ---------- */
.bse-home{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.bse-stat{background:var(--ivory);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.bse-stat span{display:block;font-size:.74rem;color:var(--muted);margin-bottom:4px}
.bse-stat b{color:var(--plum);font-size:1rem}
.bse-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.bse-remind{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bse-remind label{font-size:.86rem;color:var(--muted)}
.bse-remind select{padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;font-family:'Outfit';background:var(--ivory)}
.bse-step{background:var(--pink-soft);border-radius:14px;padding:24px;margin:6px 0 14px}
.bse-progress{height:6px;background:#fff;border-radius:999px;overflow:hidden;margin-bottom:14px}
.bse-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--plum),var(--magenta));transition:width .4s var(--ease)}
.bse-count{font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--magenta);margin-bottom:6px}
.bse-step h4{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--plum);margin-bottom:8px}
.bse-step p{color:var(--ink);font-size:.96rem;margin-bottom:18px}
.bse-nav{display:flex;gap:10px}
.bse-note{font-size:.8rem;color:var(--muted)}

/* ---------- MACHINE LOCATOR ---------- */
.loc-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:18px}
.loc-head{font-size:.86rem;color:var(--muted);margin-bottom:12px}
.loc-head b{color:var(--plum)}
.loc-item{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;
  background:var(--ivory);border:1.5px solid var(--line);border-radius:12px;padding:13px 15px;margin-bottom:10px;
  font-family:'Outfit';transition:all .25s var(--ease);
}
.loc-item:hover{border-color:var(--magenta);transform:translateX(3px)}
.loc-item.sel{border-color:var(--magenta);background:var(--pink-soft)}
.loc-dot{flex:none;width:10px;height:10px;border-radius:50%;background:#3bbf6f}
.loc-item.coming .loc-dot{background:#c9a227}
.loc-txt{flex:1}
.loc-txt b{display:block;color:var(--plum);font-size:.95rem}
.loc-txt small{color:var(--muted);font-size:.8rem}
.loc-stock{font-size:.72rem;font-weight:600;padding:4px 10px;border-radius:999px;white-space:nowrap}
.loc-stock.active{background:#e3f6ec;color:#1f8a4c}
.loc-stock.coming{background:#fbf2d6;color:#9a7b0a}
.loc-map{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line);min-height:340px}
.loc-map iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
.loc-maplink{position:absolute;right:12px;bottom:12px;background:#fff;color:var(--plum);font-size:.78rem;font-weight:600;padding:7px 12px;border-radius:999px;box-shadow:var(--shadow-sm)}

/* ---------- CHATBOT ---------- */
#cb-root{position:fixed;right:22px;bottom:22px;z-index:200}
#cb-fab{
  display:flex;align-items:center;gap:9px;border:none;cursor:pointer;
  background:linear-gradient(135deg,var(--plum),var(--magenta));color:#fff;
  padding:14px 20px;border-radius:999px;font-family:'Outfit';font-weight:600;font-size:.95rem;
  box-shadow:0 16px 36px -12px rgba(168,34,111,.7);transition:transform .3s var(--ease),opacity .3s;
}
#cb-fab:hover{transform:translateY(-3px)}
#cb-fab.hide{opacity:0;pointer-events:none;transform:scale(.8)}
.cb-fab-ic{font-size:1.15rem}
#cb-panel{
  position:absolute;right:0;bottom:0;width:380px;max-width:calc(100vw - 32px);
  height:560px;max-height:calc(100vh - 100px);background:#fff;border-radius:22px;
  box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;
  opacity:0;transform:translateY(20px) scale(.96);pointer-events:none;
  transition:all .35s var(--ease);border:1px solid var(--line);
}
#cb-panel.open{opacity:1;transform:none;pointer-events:auto}
.cb-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:linear-gradient(135deg,var(--plum),var(--magenta));color:#fff}
.cb-head-id{display:flex;align-items:center;gap:11px}
.cb-ava{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.2);display:grid;place-items:center;font-family:'Fraunces',serif;font-weight:600;font-size:1.1rem}
.cb-head-id b{font-family:'Fraunces',serif;font-size:1.05rem;display:block;line-height:1.1}
.cb-head-id small{font-size:.74rem;opacity:.85}
#cb-close{background:rgba(255,255,255,.15);border:none;color:#fff;width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:.85rem}
#cb-msgs{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:10px;background:var(--ivory)}
.cb-msg{max-width:84%;padding:11px 15px;border-radius:16px;font-size:.92rem;line-height:1.5;animation:cbin .3s var(--ease)}
@keyframes cbin{from{opacity:0;transform:translateY(6px)}}
.cb-msg.bot{background:#fff;border:1px solid var(--line);color:var(--ink);align-self:flex-start;border-bottom-left-radius:5px}
.cb-msg.user{background:linear-gradient(135deg,var(--plum),var(--magenta));color:#fff;align-self:flex-end;border-bottom-right-radius:5px}
.cb-msg.typing{display:flex;gap:4px;align-items:center}
.cb-msg.typing span{width:7px;height:7px;border-radius:50%;background:var(--magenta);opacity:.5;animation:cbdot 1s infinite}
.cb-msg.typing span:nth-child(2){animation-delay:.2s}.cb-msg.typing span:nth-child(3){animation-delay:.4s}
@keyframes cbdot{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}
.cb-quick{display:flex;gap:7px;padding:10px 14px 0;flex-wrap:wrap;background:var(--ivory)}
.cb-quick button{background:#fff;border:1px solid var(--line);color:var(--plum);font-size:.78rem;font-weight:500;padding:7px 13px;border-radius:999px;cursor:pointer;transition:all .2s;font-family:'Outfit'}
.cb-quick button:hover{border-color:var(--magenta);color:var(--magenta)}
.cb-input-row{display:flex;gap:8px;padding:12px 14px;background:var(--ivory)}
.cb-input-row input{flex:1;padding:12px 15px;border:1.5px solid var(--line);border-radius:999px;font-family:'Outfit';font-size:.92rem;background:#fff}
.cb-input-row input:focus{outline:none;border-color:var(--magenta)}
.cb-input-row button{flex:none;width:44px;height:44px;border-radius:50%;border:none;background:var(--plum);color:#fff;cursor:pointer;font-size:1rem;transition:background .2s}
.cb-input-row button:hover{background:var(--magenta)}
.cb-disc{font-size:.7rem;color:var(--muted);text-align:center;padding:0 14px 12px;background:var(--ivory);margin:0}

/* responsive */
@media (max-width:760px){
  .loc-wrap{grid-template-columns:1fr}
  .tk-cards,.bse-home{grid-template-columns:1fr}
  .tk-row{grid-template-columns:1fr}
  #cb-panel{height:70vh}
}

/* ---------- feature links + live tool wrappers ---------- */
.feat-link{
  display:inline-block;margin-top:14px;background:none;border:none;cursor:pointer;
  font-family:'Outfit';font-weight:600;font-size:.9rem;color:var(--magenta);padding:0;transition:gap .2s;
}
.feat-link:hover{color:var(--plum);text-decoration:underline}

.live-tools{display:grid;grid-template-columns:1fr;gap:28px;margin-top:48px}
.live-tool .lt-head{max-width:640px;margin-bottom:8px}
.lt-badge{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,var(--plum),var(--magenta));padding:4px 12px;border-radius:999px;margin-bottom:10px}
.live-tool .lt-head h3{font-family:'Fraunces',serif;font-size:1.7rem;color:var(--plum);margin-bottom:6px}
.live-tool .lt-head p{color:var(--muted)}

.locator-sec{padding:30px 0 110px}

/* ============================================================
   PART 2 TOOLS
   ============================================================ */

/* ---------- CALCULATOR ---------- */
.cl-form{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}
.cl-field label{display:block;font-size:.82rem;font-weight:600;color:var(--plum);margin-bottom:6px}
.cl-field input{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:11px;font-family:'Outfit';font-size:1rem;background:var(--ivory)}
.cl-field input:focus{outline:none;border-color:var(--magenta);background:#fff}
.cl-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}
.cl-card{background:var(--ivory);border:1px solid var(--line);border-radius:14px;padding:20px}
.cl-card.hi{background:linear-gradient(135deg,var(--plum),var(--magenta));border:none;color:#fff}
.cl-card span{display:block;font-size:.78rem;color:var(--muted);margin-bottom:6px}
.cl-card.hi span{color:rgba(255,255,255,.85)}
.cl-card b{font-family:'Fraunces',serif;font-size:1.9rem;color:var(--plum);line-height:1;display:block}
.cl-card.hi b{color:#fff}
.cl-card small{display:block;margin-top:8px;font-size:.78rem;color:var(--muted)}
.cl-card.hi small{color:rgba(255,255,255,.85)}
.cl-note{font-size:.8rem;color:var(--muted)}

/* ---------- QUIZ ---------- */
.qz-progress{height:6px;background:var(--pink-soft);border-radius:999px;overflow:hidden;margin-bottom:14px}
.qz-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--plum),var(--magenta));transition:width .4s var(--ease)}
.qz-count{font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--magenta);margin-bottom:10px}
#qz-body h4{font-family:'Fraunces',serif;font-size:1.4rem;color:var(--plum);margin-bottom:18px;line-height:1.25}
.qz-opts{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.qz-opt{padding:16px;border:1.5px solid var(--line);border-radius:13px;background:var(--ivory);font-family:'Outfit';font-weight:600;font-size:1rem;color:var(--plum);cursor:pointer;transition:all .2s var(--ease)}
.qz-opt:hover:not(:disabled){border-color:var(--magenta);transform:translateY(-2px)}
.qz-opt.right{background:#e3f6ec;border-color:#1f8a4c;color:#1f8a4c}
.qz-opt.wrong{background:#fde8ef;border-color:#c0356f;color:#c0356f}
.qz-exp{margin-top:16px}
.qz-exp:empty{display:none}
.qz-exp{font-size:.95rem;color:var(--muted);line-height:1.55}
.qz-exp b{color:var(--plum);display:block;margin-bottom:4px}
.qz-next{margin-top:16px}
.qz-result{text-align:center;padding:10px 0}
.qz-score-ring{--pct:0;width:120px;height:120px;border-radius:50%;margin:0 auto 18px;background:conic-gradient(var(--magenta) calc(var(--pct)*1%),var(--pink-soft) 0);display:grid;place-items:center}
.qz-score-ring>div{width:90px;height:90px;border-radius:50%;background:#fff;display:grid;place-items:center;text-align:center}
.qz-score-ring b{font-family:'Fraunces',serif;font-size:1.5rem;color:var(--plum);line-height:1}
.qz-score-ring span{font-size:.78rem;color:var(--muted)}
.qz-result h4{font-family:'Fraunces',serif;font-size:1.5rem;color:var(--plum);margin-bottom:8px}
.qz-result p{color:var(--muted);margin-bottom:18px}
.qz-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

/* ---------- DONATION ---------- */
.dn-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.dn-tier{text-align:left;padding:18px;border:1.5px solid var(--line);border-radius:14px;background:var(--ivory);cursor:pointer;transition:all .25s var(--ease);font-family:'Outfit'}
.dn-tier:hover{border-color:var(--magenta);transform:translateY(-3px)}
.dn-tier.sel{border-color:var(--magenta);background:var(--pink-soft)}
.dn-tier b{font-family:'Fraunces',serif;font-size:1.5rem;color:var(--plum);display:block;line-height:1}
.dn-tier span{display:block;font-weight:600;color:var(--magenta);font-size:.9rem;margin:6px 0 4px}
.dn-tier small{color:var(--muted);font-size:.8rem}
.dn-custom{margin-bottom:16px}
.dn-custom label{display:block;font-size:.82rem;font-weight:600;color:var(--plum);margin-bottom:6px}
.dn-custom input{width:100%;max-width:260px;padding:12px 14px;border:1.5px solid var(--line);border-radius:11px;font-family:'Outfit';font-size:1rem;background:var(--ivory)}
.dn-custom input:focus{outline:none;border-color:var(--magenta);background:#fff}
.dn-go{display:inline-flex}
.dn-note{font-size:.8rem;color:var(--muted);margin-top:14px}
.dn-note code{background:var(--pink-soft);padding:1px 6px;border-radius:5px;font-size:.92em}

/* ---------- TRACKER LOGGING ---------- */
#tracker-log{margin-top:18px;border-top:1px solid var(--line);padding-top:18px}
.lg-head{font-family:'Fraunces',serif;font-size:1.15rem;color:var(--plum);margin-bottom:14px;display:flex;justify-content:space-between;align-items:baseline}
.lg-head span{font-family:'Outfit';font-size:.8rem;color:var(--muted);font-weight:500}
.lg-group{margin-bottom:14px}
.lg-group label{display:block;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--magenta);margin-bottom:8px}
.lg-chips{display:flex;flex-wrap:wrap;gap:8px}
.lg-chip{padding:8px 14px;border:1.5px solid var(--line);border-radius:999px;background:var(--ivory);font-family:'Outfit';font-size:.85rem;color:var(--plum);cursor:pointer;transition:all .2s}
.lg-chip:hover{border-color:var(--magenta)}
.lg-chip.on{background:var(--plum);border-color:var(--plum);color:#fff}
.lg-history{margin-top:16px;background:var(--ivory);border-radius:12px;padding:14px 16px}
.lg-history label{display:block;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--magenta);margin-bottom:8px}
.lg-row{display:flex;gap:14px;padding:5px 0;font-size:.9rem;border-bottom:1px solid var(--line)}
.lg-row:last-child{border-bottom:none}
.lg-row b{color:var(--plum);min-width:60px}
.lg-row span{color:var(--muted)}

@media (max-width:760px){
  .cl-form,.cl-cards,.dn-tiers{grid-template-columns:1fr}
  .qz-opts{grid-template-columns:1fr}
}

/* ---------- GRANT BANNER ---------- */
.grant-banner{display:flex;align-items:center;gap:30px;background:linear-gradient(135deg,#fff,var(--pink-soft));border:1px solid var(--line);border-radius:20px;padding:30px 34px;margin-bottom:32px;box-shadow:var(--shadow-sm)}
.grant-amt{flex:none;font-family:'Fraunces',serif;font-weight:700;font-size:4.2rem;color:var(--plum);line-height:.8;display:flex;align-items:flex-start;gap:4px}
.grant-amt span{font-size:2rem;margin-top:6px}
.grant-amt small{font-family:'Outfit';font-size:.9rem;font-weight:600;color:var(--magenta);align-self:flex-end;margin-bottom:8px}
.grant-tag{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,var(--plum),var(--magenta));padding:4px 12px;border-radius:999px;margin-bottom:10px}
.grant-txt h3{font-family:'Fraunces',serif;font-size:1.4rem;color:var(--plum);margin-bottom:6px;line-height:1.2}
.grant-txt p{color:var(--muted);font-size:.96rem}
.awards .grant-banner h3,.awards .grant-txt p{color:var(--plum)}
.awards .grant-banner{background:linear-gradient(135deg,#fff,var(--pink-soft))}

/* ---------- LEARN GRID ---------- */
.learn-sec{padding:30px 0 110px}
.learn-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.learn-col .lt-badge{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,var(--plum),var(--magenta));padding:4px 12px;border-radius:999px;margin-bottom:10px}
.learn-col h3{font-family:'Fraunces',serif;font-size:1.5rem;color:var(--plum);margin-bottom:4px}
.learn-sub{color:var(--muted);font-size:.95rem;margin-bottom:4px}

/* ---------- DONATE SECTION ---------- */
.donate-sec{padding:30px 0 100px;background:linear-gradient(180deg,var(--ivory),var(--cream))}

@media (max-width:880px){
  .learn-grid{grid-template-columns:1fr}
  .grant-banner{flex-direction:column;text-align:center;gap:18px}
  .grant-amt{font-size:3.4rem}
}
