/* =========================================================================
   PUBLIC DESIGN LAYER — درمان‌داده
   صفحات: خانه، ورود/ثبت‌نام، درباره ما، تماس با ما
   -------------------------------------------------------------------------
   این فایل عمداً جدا از app.css نگه داشته شده تا هیچ کلاس مشترکی با پنل‌های
   داشبورد (که ۱۰۰+ صفحه از app.css استفاده می‌کنند) تداخل پیدا نکند. فقط در
   Layout عمومی/سایت و صفحات ورود/ثبت‌نام لود می‌شود.
   زبان بصری: کاغذ گرم + جوهر کاج‌تیره + زعفرانی (به‌جای سبز-آبی شیشه‌ای تکراری)
   عنصر امضا: «کارت نوبت» با لبه‌ی پرفراژه، یادآور بلیت واقعی نوبت‌دهی
   ========================================================================= */

:root{
  --pd-paper: #FAF6EC;
  --pd-paper-deep: #F1E9D6;
  --pd-ink: #14312B;
  --pd-ink-soft: #4C6560;
  --pd-ink-faint: #8AA09A;
  --pd-line: rgba(20,49,43,.14);
  --pd-line-soft: rgba(20,49,43,.08);
  --pd-surface: #FFFFFF;

  --pd-gold: #BD7A1F;
  --pd-gold-deep: #8F5D14;
  --pd-gold-soft: #F0DDB2;
  --pd-gold-mist: #FBF2DF;

  --pd-teal: #0ca678;
  --pd-teal-deep: #077a56;
  --pd-teal-mist: #E8F7F1;

  --pd-clinic: #0b7285;
  --pd-clinic-deep: #095c6b;
  --pd-clinic-mist: #E8F5F7;

  --pd-radius-lg: 28px;
  --pd-radius-md: 18px;
  --pd-radius-sm: 12px;
  --pd-shadow-lg: 0 30px 70px -20px rgba(20,49,43,.22);
  --pd-shadow-md: 0 16px 40px -14px rgba(20,49,43,.18);
  --pd-shadow-sm: 0 4px 14px rgba(20,49,43,.08);
}

.pd-body{
  background: var(--pd-paper);
  color: var(--pd-ink);
}

.pd-container{
  width: 100%;
  max-width: 1220px;
  margin-inline: auto;
  padding-inline: 20px;
}

/* Small helper for numerals to look composed (tabular, no swash) */
.pd-num{ font-variant-numeric: tabular-nums; letter-spacing: 0; }

/* ---------- Editorial kicker (replaces generic icon-pill eyebrow) ------- */
.pd-kicker{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--pd-gold-deep);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .02em;
}
.pd-kicker::before{
  content: "";
  width: 26px;
  height: 2px;
  background: var(--pd-gold);
  border-radius: 2px;
}

/* =========================================================================
   NAV
   ========================================================================= */
.pd-nav{
  position: relative;
  z-index: 5;
  border-bottom: 1px solid var(--pd-line-soft);
}
.pd-nav__inner{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 0;
}
.pd-nav__brand{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--pd-ink);
  text-decoration: none;
}
.pd-nav__brand img{ border-radius: 9px; }
.pd-nav__brand span{
  font-weight: 800;
  font-size: 1.05rem;
  letter-spacing: -.01em;
}
.pd-nav__brand b{ color: var(--pd-gold-deep); font-weight: 800; }

.pd-nav__links{
  display: flex;
  align-items: center;
  gap: 28px;
}
.pd-nav__link{
  position: relative;
  color: var(--pd-ink-soft);
  font-size: .9rem;
  font-weight: 700;
  text-decoration: none;
  padding-bottom: 3px;
}
.pd-nav__link::after{
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  height: 2px;
  background: var(--pd-gold);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .2s ease;
}
.pd-nav__link:hover{ color: var(--pd-ink); }
.pd-nav__link:hover::after{ transform: scaleX(1); }

.pd-nav__actions{ display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

.pd-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  font-weight: 750;
  font-size: .86rem;
  padding: .62rem 1.15rem;
  border-radius: 12px;
  border: 1.5px solid transparent;
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease, border-color .15s ease, color .15s ease;
  white-space: nowrap;
}
.pd-btn:hover{ transform: translateY(-1px); }
.pd-btn-ghost{ color: var(--pd-ink-soft); border-color: transparent; }
.pd-btn-ghost:hover{ color: var(--pd-ink); background: var(--pd-line-soft); }
.pd-btn-line{ color: var(--pd-ink); border-color: var(--pd-line); background: transparent; }
.pd-btn-line:hover{ color: var(--pd-ink); border-color: var(--pd-ink-faint); background: #fff; }
.pd-btn-teal{ background: var(--pd-teal); border-color: var(--pd-teal); color: #fff; box-shadow: 0 10px 24px -8px rgba(12,166,120,.55); }
.pd-btn-teal:hover{ background: var(--pd-teal-deep); border-color: var(--pd-teal-deep); color: #fff; }
.pd-btn-clinic{ background: var(--pd-clinic); border-color: var(--pd-clinic); color: #fff; box-shadow: 0 10px 24px -8px rgba(11,114,133,.5); }
.pd-btn-clinic:hover{ background: var(--pd-clinic-deep); border-color: var(--pd-clinic-deep); color: #fff; }
.pd-btn-gold{ background: var(--pd-gold); border-color: var(--pd-gold); color: #fff; box-shadow: 0 10px 24px -8px rgba(189,122,31,.5); }
.pd-btn-gold:hover{ background: var(--pd-gold-deep); border-color: var(--pd-gold-deep); color: #fff; }
.pd-btn-lg{ padding: .85rem 1.5rem; font-size: .92rem; border-radius: 14px; }
.pd-btn:focus-visible{ outline: 3px solid rgba(189,122,31,.4); outline-offset: 2px; }

/* =========================================================================
   HERO
   ========================================================================= */
.pd-hero{
  position: relative;
  overflow: hidden;
  padding: 56px 0 76px;
}
.pd-hero__pulse{
  position: absolute;
  inset-inline: 0;
  top: 46%;
  width: 100%;
  height: 140px;
  opacity: .55;
  pointer-events: none;
  color: var(--pd-line);
  z-index: 0;
}
.pd-hero__inner{
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr);
  gap: 44px;
  align-items: center;
}
.pd-hero__title{
  margin: 18px 0 0;
  font-size: clamp(2.15rem, 4.4vw, 3.55rem);
  font-weight: 850;
  line-height: 1.28;
  letter-spacing: -.03em;
  color: var(--pd-ink);
}
.pd-hero__title em{
  font-style: normal;
  color: var(--pd-teal-deep);
  position: relative;
  white-space: nowrap;
}
.pd-hero__lead{
  max-width: 540px;
  margin: 18px 0 0;
  color: var(--pd-ink-soft);
  font-size: clamp(1rem, 1.5vw, 1.1rem);
  line-height: 1.95;
}

.pd-search{
  margin: 30px 0 0;
  max-width: 620px;
}
.pd-search__fields{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  background: var(--pd-surface);
  border: 1px solid var(--pd-line);
  border-radius: 18px;
  padding: 9px;
  box-shadow: var(--pd-shadow-md);
}
.pd-search__field{
  flex: 1 1 190px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: .55rem .85rem;
  margin: 0;
  border-radius: 12px;
}
.pd-search__field + .pd-search__field{ border-inline-start: 1px solid var(--pd-line-soft); }
.pd-search__field i{ color: var(--pd-teal); font-size: .95rem; }
.pd-search__field input{
  border: 0; outline: none; flex: 1; min-width: 0;
  font: inherit; background: transparent; color: var(--pd-ink);
}
.pd-search__field input::placeholder{ color: var(--pd-ink-faint); }
.pd-search__btn{
  flex: 0 0 auto;
  border-radius: 12px;
  padding: .68rem 1.4rem;
}
@media (max-width: 600px){
  .pd-search__fields{ flex-direction: column; align-items: stretch; }
  .pd-search__field + .pd-search__field{ border-inline-start: 0; border-top: 1px solid var(--pd-line-soft); }
  .pd-search__btn{ width: 100%; }
}

.pd-trust{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 22px;
  margin: 26px 0 0;
  color: var(--pd-ink-soft);
  font-size: .82rem;
}
.pd-trust span{ display: inline-flex; align-items: center; gap: 7px; }
.pd-trust i{ color: var(--pd-teal); }
.pd-trust b{ color: var(--pd-ink); font-weight: 800; }

/* ---------- Signature element: appointment ticket ---------- */
.pd-ticket{
  position: relative;
  width: min(100%, 340px);
  margin-inline-start: auto;
  background: var(--pd-surface);
  border: 1px solid var(--pd-line);
  border-radius: 22px;
  box-shadow: var(--pd-shadow-lg);
  padding: 22px 22px 18px;
  transform: rotate(-2.2deg);
}
.pd-ticket::before{ /* subtle stacked card behind, for depth */
  content: "";
  position: absolute;
  inset: 10px -10px -10px 10px;
  z-index: -1;
  background: var(--pd-gold-mist);
  border: 1px solid var(--pd-gold-soft);
  border-radius: 22px;
  transform: rotate(3.4deg);
}
.pd-ticket__top{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.pd-ticket__label{
  font-size: .72rem;
  font-weight: 800;
  color: var(--pd-ink-faint);
  letter-spacing: .03em;
}
.pd-ticket__status{
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .7rem;
  font-weight: 800;
  color: var(--pd-teal-deep);
  background: var(--pd-teal-mist);
  padding: 4px 10px;
  border-radius: 999px;
}
.pd-ticket__body{ display: flex; align-items: center; gap: 12px; }
.pd-ticket__avatar{
  flex: 0 0 auto;
  width: 46px; height: 46px;
  display: grid; place-items: center;
  border-radius: 14px;
  background: var(--pd-ink);
  color: var(--pd-paper);
  font-size: 1.15rem;
}
.pd-ticket__info strong{ display: block; font-size: .95rem; color: var(--pd-ink); }
.pd-ticket__info span{ display: block; margin-top: 3px; font-size: .76rem; color: var(--pd-ink-soft); }

.pd-ticket__perf{
  position: relative;
  margin: 18px -22px;
  border-top: 2px dashed var(--pd-line);
}
.pd-ticket__perf::before,
.pd-ticket__perf::after{
  content: "";
  position: absolute;
  top: -11px;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--pd-paper);
  border: 1px solid var(--pd-line);
}
.pd-ticket__perf::before{ inset-inline-start: -11px; }
.pd-ticket__perf::after{ inset-inline-end: -11px; }

.pd-ticket__bottom{ display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; }
.pd-ticket__bottom > div span{ display: block; font-size: .68rem; color: var(--pd-ink-faint); margin-bottom: 3px; }
.pd-ticket__bottom > div strong{ font-size: .92rem; color: var(--pd-ink); }
.pd-ticket__code{ display: flex; align-items: flex-end; gap: 2px; height: 24px; }
.pd-ticket__code span{ width: 3px; background: var(--pd-ink); border-radius: 1px; opacity: .55; }
.pd-ticket__code span:nth-child(1){ height: 60%; } .pd-ticket__code span:nth-child(2){ height: 100%; }
.pd-ticket__code span:nth-child(3){ height: 40%; } .pd-ticket__code span:nth-child(4){ height: 80%; }
.pd-ticket__code span:nth-child(5){ height: 55%; } .pd-ticket__code span:nth-child(6){ height: 90%; }
.pd-ticket__code span:nth-child(7){ height: 35%; } .pd-ticket__code span:nth-child(8){ height: 70%; }

@media (max-width: 991px){
  .pd-hero__inner{ grid-template-columns: 1fr; }
  .pd-ticket{ margin-inline: auto; transform: rotate(-1.2deg); }
}
@media (max-width: 600px){
  .pd-hero{ padding: 34px 0 52px; }
}

/* =========================================================================
   ACCESS CARDS (patient / clinic)
   ========================================================================= */
.pd-access{
  margin-top: 46px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 18px;
}
.pd-access-card{
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 26px;
  background: var(--pd-surface);
  border: 1px solid var(--pd-line);
  border-radius: var(--pd-radius-md);
  box-shadow: var(--pd-shadow-sm);
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease;
}
.pd-access-card::before{
  content: "";
  position: absolute;
  inset-inline: 0; top: 0;
  height: 3px;
  background: var(--pd-teal);
}
.pd-access-card--clinic::before{ background: var(--pd-clinic); }
.pd-access-card:hover{ transform: translateY(-3px); box-shadow: var(--pd-shadow-md); }
.pd-access-card__icon{
  width: 46px; height: 46px;
  display: grid; place-items: center;
  border-radius: 14px;
  background: var(--pd-teal-mist);
  color: var(--pd-teal-deep);
  font-size: 1.25rem;
}
.pd-access-card--clinic .pd-access-card__icon{ background: var(--pd-clinic-mist); color: var(--pd-clinic-deep); }
.pd-access-card__kicker{ display: block; margin: 16px 0 4px; font-size: .74rem; font-weight: 800; color: var(--pd-teal-deep); letter-spacing: .02em; }
.pd-access-card--clinic .pd-access-card__kicker{ color: var(--pd-clinic-deep); }
.pd-access-card h2{ margin: 0; font-size: 1.28rem; font-weight: 800; letter-spacing: -.015em; color: var(--pd-ink); }
.pd-access-card p{ margin: 9px 0 20px; color: var(--pd-ink-soft); font-size: .88rem; line-height: 1.85; flex: 1; }
.pd-access-card__buttons{ display: flex; flex-wrap: wrap; gap: 9px; }

@media (max-width: 760px){
  .pd-access{ grid-template-columns: 1fr; }
}

/* =========================================================================
   STATS — dark ledger band (deliberate contrast beat)
   ========================================================================= */
.pd-stats{
  margin-top: 54px;
  background: var(--pd-ink);
  border-radius: var(--pd-radius-md);
  padding: 8px 6px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  box-shadow: var(--pd-shadow-md);
}
.pd-stat{
  padding: 22px 14px;
  text-align: center;
  border-inline-start: 1px solid rgba(255,255,255,.1);
}
.pd-stat:first-child{ border-inline-start: 0; }
.pd-stat strong{
  display: block;
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 850;
  color: var(--pd-gold-soft);
}
.pd-stat span{ display: block; margin-top: 4px; font-size: .78rem; color: rgba(250,246,236,.68); font-weight: 600; }
@media (max-width: 600px){
  .pd-stats{ grid-template-columns: 1fr; }
  .pd-stat{ border-inline-start: 0; border-top: 1px solid rgba(255,255,255,.1); }
  .pd-stat:first-child{ border-top: 0; }
}

/* =========================================================================
   DIRECTORY SECTIONS — light polish scoped to the homepage listings
   (keeps .clinic-card / .directory-grid markup + app.css untouched so the
   patient search-results page, which reuses those same classes, is unaffected)
   ========================================================================= */
.pd-directory{ margin-top: 64px; }
.pd-directory .homepage-section{ margin-top: 56px; }
.pd-directory .section-heading{ align-items: center; margin-bottom: 22px; }
.pd-directory .section-kicker{
  display: inline-flex; align-items: center; gap: 10px;
  color: var(--pd-gold-deep); font-weight: 800; letter-spacing: .02em;
}
.pd-directory .section-kicker::before{ content: ""; width: 22px; height: 2px; background: var(--pd-gold); border-radius: 2px; }
.pd-directory .section-heading h2{ color: var(--pd-ink); font-weight: 850; letter-spacing: -.02em; }
.pd-directory .section-heading > i{ color: var(--pd-gold); }
.pd-directory .clinic-card{ border-radius: 20px; }
.pd-directory .clinic-card__cta{ color: var(--pd-teal-deep); }

/* =========================================================================
   FOOTER
   ========================================================================= */
.pd-footer{
  margin-top: 90px;
  background: var(--pd-ink);
  color: rgba(250,246,236,.72);
}
.pd-footer__inner{ padding: 52px 0 26px; }
.pd-footer__grid{
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  gap: 32px;
}
.pd-footer__brand{
  display: inline-flex; align-items: center; gap: 10px;
  color: #fff; text-decoration: none; font-weight: 800; font-size: 1.02rem;
}
.pd-footer__brand b{ color: var(--pd-gold-soft); }
.pd-footer__desc{ margin: 14px 0 0; max-width: 320px; font-size: .84rem; line-height: 1.95; }
.pd-footer h4{ color: #fff; font-size: .84rem; font-weight: 800; margin: 0 0 16px; }
.pd-footer ul{ list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 11px; }
.pd-footer a{ color: rgba(250,246,236,.72); text-decoration: none; font-size: .85rem; transition: color .15s ease; }
.pd-footer a:hover{ color: var(--pd-gold-soft); }
.pd-footer__bottom{
  margin-top: 40px;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.1);
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px;
  font-size: .78rem; color: rgba(250,246,236,.5);
}
@media (max-width: 760px){
  .pd-footer__grid{ grid-template-columns: 1fr; gap: 26px; }
}

/* =========================================================================
   AUTH SHELL — split layout, replaces glass/orb aesthetic
   ========================================================================= */
.pd-auth-body{ background: var(--pd-surface); }
.pd-auth-shell{ min-height: 100vh; display: grid; grid-template-columns: minmax(0,.86fr) minmax(0,1.14fr); }

.pd-auth-aside{
  position: relative;
  overflow: hidden;
  background: var(--pd-ink);
  color: rgba(250,246,236,.85);
  padding: 40px 44px;
  display: flex;
  flex-direction: column;
}
.pd-auth-aside__pulse{ position: absolute; inset-inline: -5%; bottom: 6%; width: 110%; height: 120px; opacity: .16; color: var(--pd-gold-soft); pointer-events: none; }
.pd-auth-aside__brand{
  position: relative; z-index: 1;
  display: inline-flex; align-items: center; gap: 10px;
  color: #fff; text-decoration: none; font-weight: 800;
}
.pd-auth-aside__brand b{ color: var(--pd-gold-soft); }
.pd-auth-aside__ticket{ position: relative; z-index: 1; margin: 38px 0; }
.pd-auth-aside__ticket .pd-ticket{ width: 100%; transform: rotate(-1.4deg); margin-inline: 0; }
.pd-auth-aside__points{ position: relative; z-index: 1; list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.pd-auth-aside__points li{ display: flex; align-items: flex-start; gap: 10px; font-size: .85rem; line-height: 1.8; }
.pd-auth-aside__points i{ color: var(--pd-gold-soft); margin-top: 3px; flex: 0 0 auto; }
.pd-auth-aside__quote{ position: relative; z-index: 1; margin-top: auto; padding-top: 26px; font-size: .8rem; color: rgba(250,246,236,.5); }

.pd-auth-main{
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  padding: 28px 8vw;
}
.pd-auth-main__topbar{ display: none; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.pd-auth-main__topbar .pd-nav__brand span{ font-size: .95rem; }
.pd-auth-formwrap{ margin: auto 0; padding: 26px 0; }
.pd-auth-foot{ text-align: center; font-size: .72rem; color: var(--pd-ink-faint); padding-top: 18px; }

@media (max-width: 991px){
  .pd-auth-shell{ grid-template-columns: 1fr; }
  .pd-auth-aside{ display: none; }
  .pd-auth-main{ padding: 20px 5vw; }
  .pd-auth-main__topbar{ display: flex; }
}

/* ---- restyle the existing .auth-* component classes to sit inside the new shell ---- */
.auth-panel{
  width: min(100%, 460px);
  margin-inline: auto;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  backdrop-filter: none;
}
.auth-panel--wide{ width: min(100%, 680px); }
.auth-panel__head{ text-align: start; margin-bottom: 26px; }
.auth-panel__icon{
  margin: 0 0 14px;
  width: 52px; height: 52px;
  border-radius: 15px;
  background: var(--pd-teal-mist);
  color: var(--pd-teal-deep);
  font-size: 1.4rem;
}
.auth-panel__head h1{ color: var(--pd-ink); font-weight: 850; letter-spacing: -.02em; }
.auth-panel__head p{ color: var(--pd-ink-soft); }

.auth-form .form-label{ color: var(--pd-ink); }
.auth-form .form-control,
.auth-form .form-select{
  background: var(--pd-paper);
  border: 1.5px solid var(--pd-line);
}
.auth-form .form-control:focus,
.auth-form .form-select:focus{
  background: #fff;
  border-color: var(--pd-teal);
  box-shadow: 0 0 0 4px var(--pd-teal-mist);
}
.auth-form .btn.btn-brand{ background: var(--pd-teal); }
.auth-form .btn.btn-brand:hover{ background: var(--pd-teal-deep); }

.auth-tabs{ background: var(--pd-paper); }
.auth-tabs .nav-link.active{ color: var(--pd-teal-deep); }

.auth-links{ color: var(--pd-ink-soft); }
.auth-links a{ color: var(--pd-teal-deep); }
.auth-back{ color: var(--pd-ink-faint); }
.auth-back:hover{ color: var(--pd-teal-deep); }

.auth-choice{ border-color: var(--pd-line); border-radius: var(--pd-radius-sm); }
.auth-choice:hover{ border-color: var(--pd-teal); }
.auth-choice__icon{ background: var(--pd-teal-mist); color: var(--pd-teal-deep); }

.auth-code{ color: var(--pd-ink); }

/* =========================================================================
   PAGE HERO — shared band for About / Contact
   ========================================================================= */
.pd-page-hero{ padding: 54px 0 10px; }
.pd-page-hero h1{
  margin: 16px 0 0;
  font-size: clamp(1.9rem, 4vw, 2.7rem);
  font-weight: 850;
  letter-spacing: -.025em;
  color: var(--pd-ink);
}
.pd-page-hero p{ max-width: 620px; margin: 14px 0 0; color: var(--pd-ink-soft); font-size: 1.02rem; line-height: 1.9; }

/* ---------- About: pillars ---------- */
.pd-pillars{
  margin: 40px 0 6px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 16px;
}
.pd-pillar{
  padding: 24px;
  background: var(--pd-surface);
  border: 1px solid var(--pd-line);
  border-radius: var(--pd-radius-md);
}
.pd-pillar__icon{
  width: 42px; height: 42px;
  display: grid; place-items: center;
  border-radius: 12px;
  background: var(--pd-gold-mist);
  color: var(--pd-gold-deep);
  font-size: 1.1rem;
  margin-bottom: 14px;
}
.pd-pillar h3{ margin: 0; font-size: 1rem; font-weight: 800; color: var(--pd-ink); }
.pd-pillar p{ margin: 8px 0 0; font-size: .85rem; line-height: 1.85; color: var(--pd-ink-soft); }
@media (max-width: 760px){ .pd-pillars{ grid-template-columns: 1fr; } }

/* ---------- prose wrapper for CMS-provided About content ---------- */
.pd-prose{
  margin-top: 44px;
  background: var(--pd-surface);
  border: 1px solid var(--pd-line);
  border-radius: var(--pd-radius-lg);
  padding: clamp(24px, 5vw, 48px);
  box-shadow: var(--pd-shadow-sm);
  line-height: 2;
  color: var(--pd-ink-soft);
}
.pd-prose h2, .pd-prose h3{ color: var(--pd-ink); }
.pd-prose img{ max-width: 100%; border-radius: 14px; }

/* ---------- CTA band ---------- */
.pd-cta-band{
  margin: 64px 0 0;
  background: var(--pd-ink);
  border-radius: var(--pd-radius-lg);
  padding: clamp(28px, 5vw, 48px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.pd-cta-band::before{
  content: "";
  position: absolute; inset-inline-end: -60px; top: -60px;
  width: 220px; height: 220px; border-radius: 50%;
  background: radial-gradient(circle, rgba(189,122,31,.35), transparent 70%);
}
.pd-cta-band__text{ position: relative; z-index: 1; }
.pd-cta-band h3{ margin: 0; font-size: 1.3rem; font-weight: 800; }
.pd-cta-band p{ margin: 8px 0 0; color: rgba(250,246,236,.68); font-size: .88rem; max-width: 460px; line-height: 1.85; }
.pd-cta-band__actions{ position: relative; z-index: 1; display: flex; gap: 10px; flex-wrap: wrap; }

/* ---------- Empty state ---------- */
.pd-empty{
  margin-top: 40px;
  text-align: center;
  padding: 56px 24px;
  background: var(--pd-surface);
  border: 1px dashed var(--pd-line);
  border-radius: var(--pd-radius-lg);
  color: var(--pd-ink-soft);
}
.pd-empty i{ font-size: 1.9rem; color: var(--pd-gold); display: block; margin-bottom: 12px; }

/* =========================================================================
   CONTACT
   ========================================================================= */
.pd-contact-grid{
  margin-top: 44px;
  display: grid;
  grid-template-columns: minmax(0,.95fr) minmax(0,1.15fr);
  gap: 20px;
  align-items: stretch;
}
.pd-contact-card{
  background: var(--pd-surface);
  border: 1px solid var(--pd-line);
  border-radius: var(--pd-radius-lg);
  padding: clamp(22px, 4vw, 34px);
  box-shadow: var(--pd-shadow-sm);
}
.pd-contact-intro{ color: var(--pd-ink-soft); font-size: .94rem; line-height: 1.95; margin: 0 0 22px; }
.pd-contact-items{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.pd-contact-item{ display: flex; align-items: flex-start; gap: 13px; }
.pd-contact-item__icon{
  flex: 0 0 auto;
  width: 40px; height: 40px;
  display: grid; place-items: center;
  border-radius: 12px;
  background: var(--pd-teal-mist);
  color: var(--pd-teal-deep);
  font-size: 1rem;
}
.pd-contact-item__body{ padding-top: 2px; }
.pd-contact-item__label{ display: block; font-size: .72rem; color: var(--pd-ink-faint); font-weight: 700; }
.pd-contact-item__value{ display: block; margin-top: 2px; font-size: .92rem; font-weight: 700; color: var(--pd-ink); text-decoration: none; }
.pd-contact-item__value:hover{ color: var(--pd-teal-deep); }

.pd-map-panel{
  min-height: 320px;
  border-radius: var(--pd-radius-lg);
  overflow: hidden;
  border: 1px solid var(--pd-line);
  box-shadow: var(--pd-shadow-sm);
}
.pd-map-panel iframe{ width: 100%; height: 100%; min-height: 320px; border: 0; display: block; }
.pd-map-placeholder{
  height: 100%; min-height: 320px;
  display: flex; align-items: center; justify-content: center;
  background: var(--pd-gold-mist);
  color: var(--pd-gold-deep);
  flex-direction: column; gap: 10px; text-align: center; padding: 24px;
}
.pd-map-placeholder i{ font-size: 1.8rem; }
.pd-map-placeholder span{ font-size: .84rem; }

@media (max-width: 900px){
  .pd-contact-grid{ grid-template-columns: 1fr; }
}

/* =========================================================================
   Motion & accessibility
   ========================================================================= */
@media (prefers-reduced-motion: reduce){
  .pd-access-card, .pd-btn, .auth-choice, .pd-nav__link::after{ transition: none !important; }
  .pd-access-card:hover, .pd-btn:hover{ transform: none !important; }
}
.pd-btn:focus-visible, .pd-nav__link:focus-visible{ outline: 3px solid rgba(12,166,120,.4); outline-offset: 2px; }
