/* ============================================================
   Morris Commercial & Investment Real Estate
   Brand stylesheet — Divi 5 child theme
   Loaded on every page; page sections reference these classes.
   ============================================================ */

:root{
  --navy:#273952;
  --navy-deep:#1d2c40;
  --sage:#4D7A75;
  --sage-light:#6E948F;
  --paper:#FAF7F2;
  --paper-warm:#F2ECE2;
  --ink:#22272E;
  --ink-soft:#5A5F66;
  --line:rgba(39,57,82,0.14);
  --line-strong:rgba(39,57,82,0.24);
  --shadow:0 18px 50px -28px rgba(29,44,64,0.45);
}

/* ---------- RESET WITHIN MORRIS SECTIONS ---------- */
.m-scope *{box-sizing:border-box}
.m-scope{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.m-scope img{max-width:100%;display:block}
.m-wrap{max-width:1180px;margin:0 auto;padding:0 32px}

/* Let Morris sections control their own full-bleed background inside Divi */
.m-section{padding:92px 0;position:relative}
.m-section--paper{background:var(--paper)}
.m-section--warm{background:var(--paper-warm)}
.m-section--navy{background:var(--navy);color:var(--paper)}

/* ---------- TYPE ---------- */
.m-eyebrow{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:0.72rem;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--sage);font-weight:500;
}
.m-eyebrow::before{content:"// ";opacity:0.6}
.m-section--navy .m-eyebrow{color:var(--sage-light)}

.m-h1{
  font-family:'Fraunces',Georgia,serif;font-weight:400;
  font-size:clamp(2.6rem,6vw,4.5rem);line-height:1.04;
  letter-spacing:-0.015em;color:var(--navy);margin:26px 0 28px;
}
.m-h1 em{font-style:italic;color:var(--sage)}
.m-section--navy .m-h1{color:var(--paper)}

.m-h2{
  font-family:'Fraunces',Georgia,serif;font-weight:400;
  font-size:clamp(1.9rem,3.8vw,2.8rem);line-height:1.1;
  letter-spacing:-0.01em;color:var(--navy);margin:18px 0 0;
}
.m-h2 em{font-style:italic;color:var(--sage)}
.m-section--navy .m-h2{color:var(--paper)}
.m-section--navy .m-h2 em{color:var(--sage-light)}

.m-h3{
  font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:1.32rem;
  color:var(--navy);margin:14px 0 10px;line-height:1.2;
}
.m-lede{font-size:1.18rem;color:var(--ink-soft);max-width:560px;line-height:1.65}
.m-section--navy .m-lede{color:rgba(250,247,242,0.8)}

.m-sec-head{max-width:640px;margin-bottom:54px}
.m-prose p{font-size:1.04rem;color:var(--ink-soft);line-height:1.75;margin-bottom:20px}
.m-prose p:last-child{margin-bottom:0}
.m-section--navy .m-prose p{color:rgba(250,247,242,0.78)}

/* ---------- BUTTONS ---------- */
.m-actions{display:flex;gap:18px;margin-top:40px;flex-wrap:wrap}
.m-btn{
  display:inline-block;text-decoration:none;font-weight:500;
  font-size:0.9rem;letter-spacing:0.02em;padding:14px 30px;
  border-radius:2px;transition:all .22s;cursor:pointer;border:1px solid transparent;
  font-family:'Inter',sans-serif;
}
.m-btn--primary{background:var(--navy);color:var(--paper)}
.m-btn--primary:hover{background:var(--navy-deep);transform:translateY(-1px)}
.m-btn--ghost{border-color:var(--line-strong);color:var(--navy);background:transparent}
.m-btn--ghost:hover{border-color:var(--navy)}
.m-section--navy .m-btn--primary{background:var(--paper);color:var(--navy)}
.m-section--navy .m-btn--primary:hover{background:#fff}
.m-section--navy .m-btn--ghost{border-color:rgba(250,247,242,0.4);color:var(--paper)}
.m-section--navy .m-btn--ghost:hover{border-color:var(--paper)}

/* ---------- HERO ---------- */
.m-hero{padding:104px 0 88px;overflow:hidden}
.m-hero-inner{position:relative;max-width:780px;z-index:2}
.m-hero .m-lede{font-size:1.2rem;max-width:540px}
.m-hero-meta{
  display:flex;gap:38px;margin-top:64px;flex-wrap:wrap;
  padding-top:30px;border-top:1px solid var(--line);
}
.m-hero-meta div{font-size:0.82rem;color:var(--ink-soft)}
.m-hero-meta strong{
  display:block;font-family:'Fraunces',serif;font-size:1.45rem;
  color:var(--navy);font-weight:500;margin-bottom:2px;
}

/* ---------- SPLIT (firm narrative, ai narrative) ---------- */
.m-split{display:grid;grid-template-columns:0.85fr 1.15fr;gap:64px;align-items:start}
.m-split--reverse{grid-template-columns:1.1fr 0.9fr;align-items:center}

/* ---------- PRACTICE GRID ---------- */
.m-pgrid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:var(--line);border:1px solid var(--line);
}
.m-pcard{background:var(--paper-warm);padding:40px 34px;transition:background .25s}
.m-section--paper .m-pcard{background:var(--paper)}
.m-pcard:hover{background:#fff}
.m-pcard .m-num{
  font-family:'JetBrains Mono',monospace;font-size:0.74rem;
  color:var(--sage);letter-spacing:0.1em;
}
.m-pcard h3{
  font-family:'Fraunces',serif;font-weight:500;font-size:1.32rem;
  color:var(--navy);margin:14px 0 10px;
}
.m-pcard p{font-size:0.94rem;color:var(--ink-soft);line-height:1.62}

/* ---------- AI / CIRE POINTS ---------- */
.m-points{list-style:none;margin:30px 0 0;padding:0}
.m-points li{
  padding:16px 0;border-top:1px solid rgba(250,247,242,0.13);
  display:flex;gap:16px;align-items:baseline;
}
.m-points .k{
  font-family:'JetBrains Mono',monospace;font-size:0.7rem;
  color:var(--sage-light);letter-spacing:0.08em;white-space:nowrap;
  min-width:96px;flex-shrink:0;
}
.m-points .v{font-size:0.94rem;color:rgba(250,247,242,0.9)}
/* points on light background variant */
.m-section--paper .m-points li,.m-section--warm .m-points li{border-top-color:var(--line)}
.m-section--paper .m-points .k,.m-section--warm .m-points .k{color:var(--sage)}
.m-section--paper .m-points .v,.m-section--warm .m-points .v{color:var(--ink-soft)}

/* ---------- AI FEATURE TILES ---------- */
.m-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px}
.m-tile{
  background:var(--paper);border:1px solid var(--line);border-radius:3px;
  padding:32px 28px;transition:transform .25s,box-shadow .25s;
}
.m-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.m-tile .m-num{font-family:'JetBrains Mono',monospace;font-size:0.72rem;color:var(--sage);letter-spacing:0.1em}
.m-tile h3{font-family:'Fraunces',serif;font-weight:500;font-size:1.22rem;color:var(--navy);margin:12px 0 8px}
.m-tile p{font-size:0.92rem;color:var(--ink-soft);line-height:1.62}

/* ---------- TEAM ---------- */
.m-team{display:flex;flex-direction:column}
.m-member{
  display:grid;grid-template-columns:300px 1fr;gap:54px;
  padding:48px 0;border-top:1px solid var(--line);
}
.m-member:last-child{border-bottom:1px solid var(--line)}
.m-member .role{
  font-family:'JetBrains Mono',monospace;font-size:0.68rem;
  color:var(--sage);letter-spacing:0.1em;text-transform:uppercase;line-height:1.6;
}
.m-member .role::before{content:"// ";opacity:0.55}
.m-member h3{
  font-family:'Fraunces',serif;font-weight:500;font-size:1.62rem;
  color:var(--navy);margin:14px 0 6px;line-height:1.1;
}
.m-member .tag{font-style:italic;color:var(--sage);font-size:0.98rem;font-family:'Fraunces',serif}
.m-member-body p{font-size:0.96rem;color:var(--ink-soft);line-height:1.7;margin-bottom:16px}
.m-member-body .creds{
  font-family:'JetBrains Mono',monospace;font-size:0.68rem;
  color:var(--navy);letter-spacing:0.06em;padding-top:18px;margin-top:6px;
  border-top:1px solid var(--line);line-height:1.9;
}
.m-member-body .contact{font-size:0.86rem;color:var(--ink-soft);margin-top:10px}
.m-member-body .contact a{color:var(--sage);text-decoration:none}
.m-member-body .contact a:hover{text-decoration:underline}

/* ---------- CONTACT ---------- */
.m-contact{display:grid;grid-template-columns:0.9fr 1.1fr;gap:64px;align-items:start}
.m-contact-aside .m-h2{margin-top:18px}
.m-contact-aside p{color:var(--ink-soft);font-size:1.05rem;max-width:420px;margin:18px 0 30px}
.m-contact-rows{margin-top:8px;border-top:1px solid var(--line)}
.m-contact-rows .row{padding:16px 0;border-bottom:1px solid var(--line)}
.m-contact-rows .label{
  font-family:'JetBrains Mono',monospace;font-size:0.66rem;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--sage);margin-bottom:5px;
}
.m-contact-rows .val{color:var(--navy);font-size:0.98rem;font-weight:500}
.m-contact-rows .val a{color:var(--navy);text-decoration:none}
.m-contact-rows .val a:hover{color:var(--sage)}

/* ---------- FORM ---------- */
.m-form-card{
  background:var(--paper);border:1px solid var(--line);
  padding:40px;border-radius:3px;box-shadow:var(--shadow);
}
.m-section--warm .m-form-card{background:#fff}
.m-field{margin-bottom:20px}
.m-field.m-field--row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:0}
.m-field.m-field--row .m-field{margin-bottom:20px}
.m-field label{
  display:block;font-family:'JetBrains Mono',monospace;font-size:0.64rem;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;
}
.m-field label .req{color:var(--sage)}
.m-field input,.m-field select,.m-field textarea{
  width:100%;font-family:'Inter',sans-serif;font-size:0.95rem;color:var(--ink);
  background:var(--paper);border:1px solid var(--line-strong);border-radius:2px;
  padding:13px 14px;transition:border-color .2s,box-shadow .2s;
}
.m-section--warm .m-form-card .m-field input,
.m-section--warm .m-form-card .m-field select,
.m-section--warm .m-form-card .m-field textarea{background:var(--paper)}
.m-field textarea{min-height:130px;resize:vertical}
.m-field input:focus,.m-field select:focus,.m-field textarea:focus{
  outline:none;border-color:var(--sage);box-shadow:0 0 0 3px rgba(77,122,117,0.14);
}
.m-form-note{font-size:0.78rem;color:var(--ink-soft);margin-top:6px}
.m-form-actions{display:flex;align-items:center;gap:18px;margin-top:8px;flex-wrap:wrap}
.m-form-status{font-size:0.85rem;font-family:'JetBrains Mono',monospace;letter-spacing:0.03em}
.m-form-status.is-ok{color:var(--sage)}
.m-form-status.is-err{color:#9d3b3b}
.m-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- REVEAL ----------
   Hidden state only applies when JS is active (html.js), so
   visitors without JavaScript always see fully rendered content. */
.js .m-reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.js .m-reveal.in{opacity:1;transform:none}

/* ---------- RESPONSIVE ---------- */
@media (max-width:980px){
  .m-split,.m-split--reverse,.m-contact{grid-template-columns:1fr;gap:40px}
  .m-pgrid,.m-tiles{grid-template-columns:1fr}
  .m-member{grid-template-columns:1fr;gap:20px;padding:38px 0}
  .m-section{padding:72px 0}
  .m-hero{padding:80px 0 68px}
}
@media (max-width:560px){
  .m-wrap{padding:0 22px}
  .m-field.m-field--row{grid-template-columns:1fr;gap:0}
  .m-form-card{padding:28px 22px}
  .m-hero-meta{gap:26px}
}
@media (prefers-reduced-motion:reduce){
  .js .m-reveal{opacity:1;transform:none;transition:none}
  .m-btn:hover,.m-tile:hover{transform:none}
}
