/*
Theme Name:   Hello Elementor Child
Theme URI:    https://psysoulogy.com/
Description:  Hello Elementor Child Theme for PSYSOULOGY LLC — hosts the .psy-legal styling for legal documents (Legal Notice, Privacy Policy, Terms, Right of Withdrawal).
Author:       PSYSOULOGY LLC
Author URI:   https://psysoulogy.com/
Template:     hello-elementor
Version:      1.0.0
Text Domain:  hello-elementor-child
*/

/* =========================================================
   PSYSOULOGY — Legal document styling (.psy-legal)
   - Scope: div.psy-legal beats Elementor/theme heading margins
     on SPECIFICITY → no !important needed (update-safe).
   - Insert legal fragments via Elementor HTML widget ONLY
     (the Text editor / TinyMCE strips the wrapper <div>).
   - Palette: FL teal #227874 / #003738 / #91BCBA · Font: Montserrat (local)
   ========================================================= */

div.psy-legal {
  --psy-primary: #227874;
  --psy-dark:    #003738;
  --psy-accent:  #91BCBA;
  --psy-text:    #1d2b2b;
  --psy-muted:   #5a6b6b;
  --psy-line:    #d7e3e2;
  --psy-soft:    #f3f8f7;
  --psy-bg:      #ffffff;

  font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: var(--psy-text);
  background: var(--psy-bg);
  line-height: 1.75;
  font-size: 17px;
  max-width: 860px;
  margin: 0 auto;
  padding: 8px 0 48px;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Headings */
div.psy-legal h1,
div.psy-legal h2,
div.psy-legal h3,
div.psy-legal h4 {
  font-family: "Montserrat", sans-serif;
  color: var(--psy-dark);
  line-height: 1.25;
  margin: 2.2em 0 0.6em;
  font-weight: 700;
}
div.psy-legal h1 {
  font-size: 2.0rem;
  margin-top: 0;
  padding-bottom: 0.4em;
  border-bottom: 3px solid var(--psy-primary);
}
div.psy-legal h2 {
  font-size: 1.45rem;
  color: var(--psy-primary);
}
div.psy-legal h3 { font-size: 1.15rem; }

/* Text */
div.psy-legal p,
div.psy-legal li { margin: 0 0 1em; }
div.psy-legal ul,
div.psy-legal ol { margin: 0 0 1.4em; padding-left: 1.4em; }
div.psy-legal li { margin-bottom: 0.5em; }
div.psy-legal strong { color: var(--psy-dark); }

div.psy-legal a {
  color: var(--psy-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
  word-break: break-word;
}
div.psy-legal a:hover { color: var(--psy-dark); }

div.psy-legal hr {
  border: 0;
  border-top: 1px solid var(--psy-line);
  margin: 2.4em 0;
}

/* Contact / address block */
div.psy-legal address {
  font-style: normal;
  background: var(--psy-soft);
  border-left: 4px solid var(--psy-primary);
  padding: 1em 1.2em;
  margin: 0 0 1.6em;
  border-radius: 4px;
}

/* Tables (processor overview etc.) */
div.psy-legal table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 1.8em;
  font-size: 0.95rem;
}
div.psy-legal th,
div.psy-legal td {
  border: 1px solid var(--psy-line);
  padding: 0.7em 0.9em;
  text-align: left;
  vertical-align: top;
}
div.psy-legal th {
  background: var(--psy-dark);
  color: #fff;
  font-weight: 600;
}
div.psy-legal tr:nth-child(even) td { background: var(--psy-soft); }

/* DRAFT / ENTWURF banner */
div.psy-legal .psy-draft {
  background: #fff4e5;
  border: 1px solid #e0a96d;
  color: #6b4a1f;
  padding: 0.9em 1.1em;
  border-radius: 4px;
  margin: 0 0 1.8em;
  font-size: 0.92rem;
}

/* Model withdrawal form box */
div.psy-legal .psy-form-box {
  border: 1px dashed var(--psy-primary);
  background: #f8fbfb;
  padding: 1.2em 1.4em;
  border-radius: 4px;
  margin: 1.2em 0 1.8em;
}

/* Mobile */
@media (max-width: 600px) {
  div.psy-legal { font-size: 16px; padding: 4px 0 32px; }
  div.psy-legal h1 { font-size: 1.6rem; }
  div.psy-legal h2 { font-size: 1.25rem; }
  div.psy-legal table { font-size: 0.88rem; }
  div.psy-legal th,
  div.psy-legal td { padding: 0.55em 0.6em; }
}