@font-face {
  font-family: "DM Sans";
  src: url("https://mariajosenovillopsicologa.com/wp-content/uploads/yag-mj-fonts-20261009/dm-sans-400.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "DM Sans";
  src: url("https://mariajosenovillopsicologa.com/wp-content/uploads/yag-mj-fonts-20261009/dm-sans-500.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "DM Sans";
  src: url("https://mariajosenovillopsicologa.com/wp-content/uploads/yag-mj-fonts-20261009/dm-sans-600.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "DM Serif Display";
  src: url("https://mariajosenovillopsicologa.com/wp-content/uploads/yag-mj-fonts-20261009/dm-serif-display.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

.mj-practice,
.mj-practice * {
  box-sizing: border-box;
}

.mj-practice {
  --mj-paper: #faf8f5;
  --mj-paper-deep: #f1e4e2;
  --mj-ink: #34362f;
  --mj-muted: #65665e;
  --mj-line: #d9d3cd;
  --mj-accent: #8b4438;
  --mj-accent-hover: #74372f;
  --mj-burgundy: #572337;
  --mj-burgundy-soft: #f1e4e7;
  --mj-success: #335e46;
  --mj-error: #8a2d2d;
  width: 100%;
  min-width: 0;
  min-height: 100dvh;
  overflow-x: clip;
  background: var(--mj-paper);
  color: var(--mj-ink);
  font: 400 16px/1.6 "DM Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  accent-color: var(--mj-accent);
}

.mj-practice ::selection {
  background: var(--mj-burgundy);
  color: #fff;
}

.mj-practice--embed {
  min-height: 0;
  background: transparent;
}

.mj-practice--embed .mj-main {
  width: 100%;
  padding: 0;
}

.mj-practice--embed .mj-embed-title {
  margin: 0 0 10px;
  font: 400 1.65rem/1.15 "DM Serif Display", Georgia, serif;
  letter-spacing: -0.02em;
}

.mj-practice--embed .mj-intro {
  margin-bottom: 22px;
}

.mj-practice--embed .mj-form {
  max-width: none;
  padding: 22px;
}

.mj-practice a {
  color: var(--mj-burgundy);
  text-underline-offset: 0.2em;
}

.mj-practice a:hover {
  color: var(--mj-accent);
}

.mj-practice :focus-visible {
  outline: 3px solid var(--mj-burgundy);
  outline-offset: 3px;
}

.mj-skip-link {
  position: fixed;
  z-index: 100;
  top: 12px;
  left: 12px;
  transform: translateY(-150%);
  padding: 10px 14px;
  background: var(--mj-ink);
  color: #fff !important;
}

.mj-skip-link:focus {
  transform: translateY(0);
}

.mj-header,
.mj-main,
.mj-footer {
  width: min(100% - 40px, 1120px);
  margin-inline: auto;
}

.mj-header {
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid var(--mj-line);
}

.mj-brand {
  display: inline-flex;
  min-height: 44px;
  flex-direction: column;
  justify-content: center;
  color: var(--mj-ink) !important;
  text-decoration: none;
}

.mj-brand__name {
  font-weight: 600;
  line-height: 1.2;
}

.mj-brand__role,
.mj-private-label {
  color: var(--mj-muted);
  font-size: 0.875rem;
}

.mj-private-label {
  padding: 7px 12px;
  border: 1px solid var(--mj-line);
  border-radius: 999px;
}

.mj-header__phone {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  font-weight: 600;
}

.mj-main {
  padding-block: 64px 88px;
}

.mj-page-title {
  max-width: 760px;
  margin: 0 0 18px;
  color: var(--mj-ink);
  font: 400 2.5rem/1.08 "DM Serif Display", Georgia, serif;
  letter-spacing: -0.02em;
}

.mj-practice--portal .mj-page-title,
.mj-practice--auth .mj-page-title {
  font-family: "DM Sans", system-ui, sans-serif;
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.mj-intro,
.mj-portal-intro {
  max-width: 68ch;
  margin-bottom: 34px;
  color: var(--mj-muted);
}

.mj-footer a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.mj-pending-note {
  margin-top: 18px;
  padding: 16px 18px;
  border: 1px solid #d9b8b1;
  border-radius: 12px;
  background: #f8eeeb;
  color: var(--mj-ink);
}

.mj-feedback {
  max-width: 760px;
  margin: 0 0 24px;
  padding: 14px 16px;
  border: 1px solid currentColor;
  border-radius: 12px;
  font-weight: 500;
}

.mj-feedback--success {
  background: #edf4ee;
  color: var(--mj-success);
}

.mj-feedback--error {
  background: #faece9;
  color: var(--mj-error);
}

.mj-form {
  max-width: 840px;
  padding: 30px;
  border: 1px solid var(--mj-line);
  border-radius: 16px;
  background: #fff;
}

.mj-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  margin-bottom: 26px;
}

.mj-field {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.mj-field--wide {
  grid-column: 1 / -1;
}

.mj-field label,
.mj-field legend {
  display: block;
  margin: 0 0 7px;
  color: var(--mj-ink);
  font-weight: 600;
}

.mj-field label span {
  color: var(--mj-muted);
  font-weight: 400;
}

.mj-field input:not([type="checkbox"]):not([type="radio"]),
.mj-field textarea,
.mj-field select {
  display: block;
  width: 100%;
  min-height: 48px;
  padding: 11px 13px;
  border: 1px solid #a9a49d;
  border-radius: 10px;
  background: #fff;
  color: var(--mj-ink);
  font: inherit;
}

.mj-field textarea {
  min-height: 132px;
  resize: vertical;
}

.mj-field select {
  appearance: auto;
}

.mj-field input:hover,
.mj-field textarea:hover {
  border-color: var(--mj-ink);
}

.mj-field input:focus,
.mj-field textarea:focus {
  border-color: var(--mj-burgundy);
}

.mj-choice-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.mj-choice,
.mj-check {
  display: flex !important;
  min-height: 48px;
  align-items: flex-start;
  gap: 11px;
  margin: 0 !important;
  padding: 11px 14px;
  border: 1px solid var(--mj-line);
  border-radius: 12px;
  cursor: pointer;
  font-weight: 400 !important;
}

.mj-choice input,
.mj-check input {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  margin: 2px 0 0;
}

.mj-choice:has(input:checked) {
  border-color: var(--mj-accent);
  background: #f8eeeb;
}

.mj-check {
  max-width: 70ch;
  padding-inline: 0;
  border: 0;
}

.mj-honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.mj-button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 11px 20px;
  border: 1px solid transparent;
  border-radius: 10px;
  font: 600 1rem/1.3 "DM Sans", system-ui, sans-serif;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.mj-button--primary {
  background: var(--mj-accent);
  color: #fff !important;
}

.mj-button--primary:hover {
  background: var(--mj-accent-hover);
  color: #fff;
}

.mj-button--secondary {
  border-color: var(--mj-burgundy);
  background: transparent;
  color: var(--mj-burgundy) !important;
}

.mj-button--secondary:hover {
  background: var(--mj-burgundy-soft);
  color: var(--mj-burgundy) !important;
}

.mj-button:active {
  transform: translateY(1px);
}

.mj-button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.mj-section-nav {
  position: sticky;
  z-index: 5;
  top: 0;
  display: flex;
  gap: 4px;
  margin: 34px 0 52px;
  padding: 6px;
  overflow-x: auto;
  border: 1px solid var(--mj-line);
  border-radius: 12px;
  background: rgba(250, 248, 245, 0.96);
}

.mj-section-nav a {
  min-height: 44px;
  display: inline-flex;
  flex: 1 0 auto;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  border-radius: 8px;
  color: var(--mj-ink);
  font-weight: 600;
  text-decoration: none;
}

.mj-section-nav a:hover {
  background: var(--mj-burgundy-soft);
  color: var(--mj-burgundy);
}

.mj-section {
  scroll-margin-top: 80px;
  padding-block: 12px 68px;
}

.mj-section + .mj-section {
  padding-top: 52px;
  border-top: 1px solid var(--mj-line);
}

.mj-section-heading {
  max-width: 70ch;
  margin-bottom: 24px;
}

.mj-section-heading h2 {
  margin: 0 0 6px;
  font-size: 1.5rem;
  line-height: 1.2;
}

.mj-section-heading p,
.mj-help {
  margin: 0;
  color: var(--mj-muted);
}

.mj-request-list {
  border-top: 1px solid var(--mj-line);
}

.mj-request {
  padding-block: 22px;
  border-bottom: 1px solid var(--mj-line);
}

.mj-request__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.mj-request__head h3 {
  margin: 0;
  font-size: 1.125rem;
}

.mj-status {
  flex: 0 0 auto;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 600;
}

.mj-status--pending {
  background: #f6ead5;
  color: #644716;
}

.mj-status--confirmed {
  background: #dfeee4;
  color: #28533a;
}

.mj-status--contacted {
  background: var(--mj-burgundy-soft);
  color: var(--mj-burgundy);
}

.mj-status--cancelled {
  background: #f3dfdc;
  color: #762f2a;
}

.mj-status--neutral {
  background: #ebe8e4;
  color: var(--mj-ink);
}

.mj-request__details {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin: 16px 0 0;
}

.mj-request__details div {
  min-width: 0;
}

.mj-request__details dt {
  color: var(--mj-muted);
  font-size: 0.875rem;
}

.mj-request__details dd {
  margin: 2px 0 0;
  overflow-wrap: anywhere;
}

.mj-status-form {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px;
  margin-top: 18px;
}

.mj-status-form label {
  width: 100%;
  color: var(--mj-muted);
  font-size: 0.875rem;
}

.mj-status-form select {
  min-width: 180px;
  min-height: 44px;
  padding: 8px 34px 8px 11px;
  border: 1px solid #a9a49d;
  border-radius: 10px;
  background: #fff;
  color: var(--mj-ink);
  font: inherit;
}

.mj-button--small {
  min-height: 44px;
  padding-block: 8px;
}

.mj-empty,
.mj-security-action,
.mj-auth-panel {
  max-width: 760px;
  padding: 26px;
  border-radius: 14px;
  background: var(--mj-paper-deep);
}

.mj-form--compact + .mj-form--compact {
  margin-top: 20px;
}

.mj-consent-form {
  margin-top: 20px;
}

.mj-consent-form .mj-field,
.mj-backup-grid .mj-field,
.mj-note-form .mj-field {
  margin-bottom: 18px;
}

.mj-empty h3,
.mj-empty p,
.mj-security-action p,
.mj-auth-panel > p {
  margin-top: 0;
}

.mj-empty .mj-button,
.mj-security-action .mj-button {
  margin-top: 8px;
}

.mj-input-suffix {
  position: relative;
}

.mj-input-suffix input {
  padding-right: 56px !important;
}

.mj-input-suffix > span {
  position: absolute;
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
  color: var(--mj-muted);
}

.mj-help {
  margin-top: 7px;
  font-size: 0.925rem;
}

.mj-patient-list {
  margin-bottom: 20px;
  border-top: 1px solid var(--mj-line);
}

.mj-patient-row {
  min-height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 4px;
  border-bottom: 1px solid var(--mj-line);
  color: var(--mj-ink) !important;
  text-decoration: none;
}

.mj-patient-row:hover {
  color: var(--mj-burgundy) !important;
}

.mj-patient-row small {
  color: var(--mj-muted);
}

.mj-auth-panel {
  background: #fff;
  border: 1px solid var(--mj-line);
}

.mj-security-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 28px;
}

.mj-backup-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  align-items: start;
}

.mj-backup-grid .mj-form {
  min-width: 0;
  height: 100%;
}

.mj-backup-grid h3 {
  margin: 0 0 8px;
  font-size: 1.125rem;
}

.mj-backup-grid .mj-help {
  margin-bottom: 20px;
}

.mj-record-tools,
.mj-session-history {
  max-width: 840px;
  margin-top: 56px;
  padding-top: 44px;
  border-top: 1px solid var(--mj-line);
}

.mj-record-tools h2,
.mj-session-history h2 {
  margin: 0 0 16px;
  font-size: 1.5rem;
  line-height: 1.2;
}

.mj-note-list {
  margin-bottom: 24px;
  border-top: 1px solid var(--mj-line);
}

.mj-note {
  padding-block: 20px;
  border-bottom: 1px solid var(--mj-line);
}

.mj-note header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 18px;
  color: var(--mj-muted);
  font-size: 0.875rem;
}

.mj-note p {
  max-width: 72ch;
  margin: 10px 0 0;
  overflow-wrap: anywhere;
  white-space: normal;
}

.mj-note-form {
  margin-top: 24px;
}

.mj-steps {
  margin: 0 0 24px;
  padding-left: 24px;
}

.mj-steps li + li {
  margin-top: 8px;
}

.mj-secret {
  margin-bottom: 24px;
  padding: 18px;
  border-radius: 12px;
  background: var(--mj-burgundy-soft);
}

.mj-secret span,
.mj-secret code {
  display: block;
}

.mj-secret span {
  margin-bottom: 6px;
  color: var(--mj-muted);
  font-size: 0.875rem;
}

.mj-secret code {
  overflow-wrap: anywhere;
  color: var(--mj-burgundy);
  font: 600 1rem/1.5 "DM Sans", system-ui, sans-serif;
  letter-spacing: 0.04em;
}

.mj-secret p {
  margin: 9px 0 0;
  color: var(--mj-muted);
}

.mj-form--auth {
  padding: 0;
  border: 0;
}

.mj-form--auth .mj-field {
  max-width: 320px;
  margin-bottom: 18px;
}

.mj-back-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  margin-top: 18px;
}

.mj-footer {
  min-height: 88px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 28px;
  padding-block: 22px;
  border-top: 1px solid var(--mj-line);
  color: var(--mj-muted);
}

@media (max-width: 760px) {
  .mj-main {
    padding-block: 44px 64px;
  }

  .mj-page-title {
    font-size: 2.1rem;
  }

  .mj-form {
    padding: 22px;
  }

  .mj-form-grid,
  .mj-request__details,
  .mj-backup-grid {
    grid-template-columns: 1fr;
  }

  .mj-request__details {
    gap: 10px;
  }
}

@media (max-width: 460px) {
  .mj-header,
  .mj-main,
  .mj-footer {
    width: min(100% - 32px, 1120px);
  }

  .mj-header {
    align-items: flex-start;
    padding-block: 16px;
  }

  .mj-header__phone {
    font-size: 0.9375rem;
  }

  .mj-private-label {
    padding-inline: 9px;
  }

  .mj-form,
  .mj-empty,
  .mj-security-action,
  .mj-auth-panel {
    padding: 18px;
  }

  .mj-choice-row,
  .mj-choice,
  .mj-button {
    width: 100%;
  }

  .mj-request__head {
    align-items: flex-start;
    flex-direction: column;
  }

  .mj-status-form select,
  .mj-status-form .mj-button {
    width: 100%;
  }

  .mj-practice--embed .mj-form {
    padding: 18px;
  }

  .mj-section-nav {
    margin-inline: -16px;
    padding-inline: 16px;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mj-practice *,
  .mj-practice *::before,
  .mj-practice *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* Payment belongs to the approved cream, terracotta and burgundy home. */
.mj-practice--payment .mj-header,.mj-practice--payment .mj-main,.mj-practice--payment .mj-footer{width:min(100% - 80px,1240px)}
.mj-practice--payment .mj-header{min-height:100px}
.mj-practice--payment .mj-brand__name{font:400 1.5rem/1.2 "DM Serif Display",Georgia,serif}
.mj-practice--payment .mj-main{padding-block:64px 48px}
.mj-payment-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(40px,7vw,104px);align-items:start}
.mj-payment-kicker{margin:0 0 24px;font-size:.8125rem;font-weight:600;letter-spacing:.1em}
.mj-payment-intro h1{margin:0 0 28px;font:400 clamp(2.75rem,4.6vw,4.625rem)/1.04 "DM Serif Display",Georgia,serif;letter-spacing:-.035em;text-wrap:balance}
.mj-payment-intro h1 em{font-weight:400;color:var(--mj-accent)}
.mj-payment-lead{margin:0 0 20px;font-size:1.375rem;line-height:1.5}
.mj-payment-description{max-width:40ch;margin:0;color:var(--mj-muted);font-size:1.0625rem}
.mj-payment-professional{display:flex;align-items:center;gap:24px;margin-top:40px}
.mj-payment-professional img{width:104px;height:124px;object-fit:cover;object-position:50% 20%;border-radius:0 0 32px 0;flex-shrink:0}
.mj-payment-professional strong{display:block;font:400 1.375rem/1.25 "DM Serif Display",Georgia,serif}
.mj-payment-professional span{display:block;margin-block:8px;font-size:1rem;color:var(--mj-muted)}
.mj-payment-professional a{display:inline-flex;align-items:center;min-height:44px;font-size:1rem}
.mj-payment-summary{padding:40px;background:var(--mj-burgundy);color:var(--mj-paper);border-radius:0 0 56px 0}
.mj-payment-summary .mj-payment-kicker{color:#e0c5ce;margin-bottom:12px}
.mj-payment-summary h2{margin:0;font:400 1.75rem/1.2 "DM Serif Display",Georgia,serif}
.mj-payment-amount{margin:20px 0 28px;font:400 5rem/1 "DM Serif Display",Georgia,serif;letter-spacing:-.03em}
.mj-payment-amount span{font-size:2.75rem}
.mj-payment-details{margin:0;border-top:1px solid #987180;border-bottom:1px solid #987180}
.mj-payment-details>div{display:flex;justify-content:space-between;gap:16px;padding-block:16px;font-size:1rem}
.mj-payment-details>div+div{border-top:1px solid #987180}
.mj-payment-details dt{color:#e0c5ce}.mj-payment-details dd{margin:0;text-align:right}
.mj-payment-condition{margin:24px 0;font-size:1rem;line-height:1.65}
.mj-practice .mj-payment-button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding:16px 20px;background:var(--mj-paper);color:var(--mj-burgundy)!important;border-radius:4px;border:0;text-decoration:none;font-weight:600;transition:background .18s ease}
.mj-practice .mj-payment-button:hover{background:#f1e4e7}
.mj-practice .mj-payment-button:focus-visible{outline-color:#fff;outline-offset:5px}
.mj-payment-security{display:flex;align-items:center;justify-content:center;gap:10px;margin:20px 0 8px;font-size:1rem}
.mj-payment-security svg{flex-shrink:0}
.mj-payment-fine{margin:0;color:#e0c5ce;font-size:1rem;line-height:1.6;text-align:center}
.mj-payment-support{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:48px;padding-top:28px;border-top:1px solid var(--mj-line)}
.mj-payment-support p{margin:0 0 4px;color:var(--mj-muted);font-size:1rem}
.mj-payment-support a{display:inline-flex;align-items:center;min-height:44px;font-size:1.0625rem}
.mj-practice--payment .mj-footer{padding-block:24px;font-size:1rem}
@media(max-width:850px){.mj-practice--payment .mj-header,.mj-practice--payment .mj-main,.mj-practice--payment .mj-footer{width:calc(100% - 40px)}.mj-payment-layout{grid-template-columns:1fr;gap:20px}.mj-practice--payment .mj-main{padding-block:32px}.mj-payment-intro{display:contents}.mj-payment-intro>.mj-payment-kicker{order:0;margin:0}.mj-payment-intro h1{order:1;margin:0;font-size:clamp(2.75rem,8vw,4rem)}.mj-payment-lead{display:none}.mj-payment-description{order:2}.mj-payment-summary{order:3;padding:32px;max-width:600px}.mj-payment-professional{order:4;margin-top:12px}.mj-payment-support{margin-top:32px}}
@media(max-width:460px){.mj-payment-summary{padding:28px 24px;border-bottom-right-radius:40px}.mj-payment-support{grid-template-columns:1fr;gap:20px}.mj-payment-professional{gap:16px}.mj-payment-professional img{width:80px;height:100px}.mj-payment-professional strong{font-size:1.25rem}.mj-payment-intro h1{font-size:2.875rem}.mj-payment-details>div{gap:12px}.mj-practice--payment .mj-header{min-height:90px}.mj-practice--payment .mj-brand__name{font-size:1.25rem}}
