/*
Theme Name: Mark Davies Financial Adviser
Theme URI: https://example.com/mark-davies-financial-adviser
Author: Elliott / MRDFA
Author URI: https://example.com
Description: Corporate landing-page theme for Mark Davies Financial Adviser Ltd, a whole-of-market advice firm covering residential and commercial mortgages, development finance, bridging loans, life insurance and general insurance. Deep navy, muted gold and white palette, Libre Baskerville headings, PT Sans body text. A deliberately more formal, established counterpart to the Clive sub-brand.
Version: 2.0
Requires at least: 6.0
Requires PHP: 7.4
License: Custom, all rights reserved
Text Domain: mdfa
*/

/* -----------------------------------------
   0. Design tokens
----------------------------------------- */
:root {
  --mdfa-navy: #1B3A6C;
  --mdfa-navy-dark: #122649;
  --mdfa-navy-light: #2C5090;
  --mdfa-gold: #B8912F;
  --mdfa-gold-dark: #8F701F;
  --mdfa-gold-light: #D9C077;
  --mdfa-white: #FFFFFF;
  --mdfa-offwhite: #F5F5F3;
  --mdfa-offwhite-dark: #E5E3DC;
  --mdfa-charcoal: #1B1E22;
  --mdfa-slate: #565C64;

  --font-heading: 'Libre Baskerville', Georgia, 'Times New Roman', serif;
  --font-body: 'PT Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --radius-lg: 4px;
  --radius-md: 3px;
  --radius-sm: 2px;

  --shadow-soft: 0 10px 30px rgba(4, 14, 25, 0.14);
  --max-width: 1100px;
}

/* -----------------------------------------
   1. Reset / base
----------------------------------------- */
* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--mdfa-charcoal);
  background: var(--mdfa-white);
  line-height: 1.7;
  font-size: 17px;
}

img { max-width: 100%; display: block; }

a { color: var(--mdfa-gold-dark); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4 {
  font-family: var(--font-heading);
  color: var(--mdfa-navy);
  line-height: 1.28;
  margin: 0 0 0.55em;
  font-weight: 700;
}

h1 { font-size: 2.5rem; }
h2 { font-size: 1.75rem; }
h3 { font-size: 1.2rem; }

p { margin: 0 0 1.2em; }

.container {
  max-width: var(--max-width);
  margin: 0 auto;
  padding: 0 24px;
}

.rule {
  width: 56px;
  height: 2px;
  background: var(--mdfa-gold);
  border: none;
  margin: 0 0 22px;
}
.rule-center { margin-left: auto; margin-right: auto; }

/* -----------------------------------------
   2. Buttons
----------------------------------------- */
.btn {
  display: inline-block;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.92rem;
  letter-spacing: 0.02em;
  padding: 14px 28px;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.btn:hover { text-decoration: none; }

.btn-primary {
  background: var(--mdfa-gold);
  color: var(--mdfa-navy-dark);
  border-color: var(--mdfa-gold);
}
.btn-primary:hover { background: var(--mdfa-gold-dark); border-color: var(--mdfa-gold-dark); color: var(--mdfa-white); }

.btn-outline {
  background: transparent;
  border-color: rgba(245,245,243,0.45);
  color: var(--mdfa-white);
}
.btn-outline:hover { background: rgba(255,255,255,0.08); border-color: var(--mdfa-white); }

.btn-outline-dark {
  background: transparent;
  border-color: var(--mdfa-navy);
  color: var(--mdfa-navy);
}
.btn-outline-dark:hover { background: var(--mdfa-navy); color: var(--mdfa-white); }

/* -----------------------------------------
   3. Header / nav
----------------------------------------- */
.site-header {
  background: var(--mdfa-white);
  padding: 22px 0;
  position: relative;
  z-index: 50;
  border-bottom: 3px solid var(--mdfa-navy);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.site-logo {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
  color: var(--mdfa-navy);
}
.site-logo:hover { text-decoration: none; }
.site-logo .logo-name {
  font-family: var(--font-heading);
  font-size: 1.32rem;
  font-weight: 700;
  color: var(--mdfa-navy);
  letter-spacing: 0.01em;
}
.site-logo .logo-sub {
  font-family: var(--font-body);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--mdfa-gold-dark);
  margin-top: 3px;
}

.nav-toggle {
  display: none;
  background: none;
  border: none;
  font-size: 1.6rem;
  color: var(--mdfa-navy);
  cursor: pointer;
}

.primary-nav ul {
  list-style: none;
  display: flex;
  gap: 30px;
  margin: 0;
  padding: 0;
  align-items: center;
}
.primary-nav a {
  color: var(--mdfa-navy);
  font-weight: 700;
  font-size: 0.9rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.primary-nav a:hover { color: var(--mdfa-gold-dark); text-decoration: none; }

.nav-cta {
  background: var(--mdfa-navy);
  color: var(--mdfa-white) !important;
  padding: 11px 22px;
  border-radius: var(--radius-sm);
  font-weight: 700;
  border: 1px solid var(--mdfa-navy);
}
.nav-cta:hover { background: var(--mdfa-navy-light); border-color: var(--mdfa-navy-light); text-decoration: none; }

@media (max-width: 820px) {
  .nav-toggle { display: block; }
  .primary-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--mdfa-white);
    box-shadow: var(--shadow-soft);
    padding: 20px 24px 28px;
    border-bottom: 3px solid var(--mdfa-navy);
  }
  .primary-nav.is-open { display: block; }
  .primary-nav ul { flex-direction: column; align-items: flex-start; gap: 18px; }
}

/* -----------------------------------------
   4. Hero
----------------------------------------- */
.hero {
  background: var(--mdfa-navy-dark);
  color: var(--mdfa-offwhite);
  padding: 96px 0 100px;
  border-bottom: 3px solid var(--mdfa-gold);
}
.hero-inner {
  max-width: 760px;
}
.hero .eyebrow { color: var(--mdfa-gold-light); }
.hero h1 { color: var(--mdfa-white); margin-bottom: 0.5em; font-size: 2.7rem; }
.hero p.lede { font-size: 1.14rem; opacity: 0.88; max-width: 620px; line-height: 1.7; }
.hero-actions { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 32px; }

/* -----------------------------------------
   5. Sections / cards
----------------------------------------- */
.section { padding: 88px 0; }
.section-alt { background: var(--mdfa-offwhite); }
.section-header { max-width: 680px; margin-bottom: 46px; }
.section-header.text-center { margin-left: auto; margin-right: auto; text-align: center; }
.section-header .eyebrow {
  display: inline-block;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.74rem;
  font-weight: 700;
  color: var(--mdfa-gold-dark);
  margin-bottom: 14px;
}

.two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
}
@media (max-width: 860px) { .two-col { grid-template-columns: 1fr; } }

.card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  background: var(--mdfa-offwhite-dark);
  border: 1px solid var(--mdfa-offwhite-dark);
}
@media (max-width: 900px) { .card-grid { grid-template-columns: 1fr; } }

.service-card {
  background: var(--mdfa-white);
  border-left: 3px solid var(--mdfa-gold);
  padding: 32px 30px;
}
.service-card h3 { margin-bottom: 0.5em; }
.service-card .num {
  display: block;
  font-family: var(--font-heading);
  font-size: 0.85rem;
  color: var(--mdfa-gold-dark);
  margin-bottom: 10px;
  letter-spacing: 0.06em;
}
.service-card p { margin-bottom: 0; color: var(--mdfa-slate); font-size: 0.97rem; }

.trust-block {
  background: var(--mdfa-navy);
  color: var(--mdfa-offwhite);
  padding: 56px 0;
}
.trust-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}
@media (max-width: 860px) { .trust-grid { grid-template-columns: 1fr; } }
.trust-grid .figure {
  font-family: var(--font-heading);
  font-size: 2.1rem;
  color: var(--mdfa-gold-light);
  margin-bottom: 8px;
  display: block;
}
.trust-grid p { margin: 0; opacity: 0.85; font-size: 0.95rem; }

/* -----------------------------------------
   6. Forms
----------------------------------------- */
.form-panel {
  background: var(--mdfa-white);
  border: 1px solid var(--mdfa-offwhite-dark);
  border-top: 3px solid var(--mdfa-gold);
  padding: 40px;
  max-width: 560px;
}
.form-field { margin-bottom: 18px; }
.form-field label {
  display: block;
  font-weight: 700;
  margin-bottom: 6px;
  color: var(--mdfa-navy);
  font-size: 0.88rem;
}
.form-field input,
.form-field textarea,
.form-field select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--mdfa-offwhite-dark);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.98rem;
  background: var(--mdfa-offwhite);
}
.form-field input:focus,
.form-field textarea:focus,
.form-field select:focus {
  outline: 2px solid var(--mdfa-gold);
  outline-offset: 1px;
}
.form-note { font-size: 0.85rem; color: var(--mdfa-slate); margin-top: 10px; }

.form-success {
  background: #E7F1E4;
  border: 1px solid #BFD9B8;
  border-radius: var(--radius-md);
  padding: 18px 22px;
  color: #33502E;
  margin-bottom: 24px;
  font-weight: 600;
}
.form-error {
  background: #FBEAEA;
  border: 1px solid #E9B9B9;
  border-radius: var(--radius-md);
  padding: 18px 22px;
  color: #7A2020;
  margin-bottom: 24px;
  font-weight: 600;
}

.contact-details { margin-top: 32px; }
.contact-details dt { font-weight: 700; color: var(--mdfa-navy); font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.06em; margin-top: 18px; }
.contact-details dd { margin: 4px 0 0; }

/* -----------------------------------------
   7. Footer
----------------------------------------- */
.site-footer {
  background: var(--mdfa-navy-dark);
  color: var(--mdfa-offwhite);
  padding: 50px 0 32px;
  border-top: 3px solid var(--mdfa-gold);
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 32px;
  margin-bottom: 32px;
}
.footer-grid h4 {
  color: var(--mdfa-gold-light);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 14px;
  font-family: var(--font-body);
  font-weight: 700;
}
.footer-grid ul { list-style: none; padding: 0; margin: 0; }
.footer-grid li { margin-bottom: 8px; }
.footer-grid a { color: var(--mdfa-offwhite); opacity: 0.82; }
.footer-grid a:hover { opacity: 1; }
.footer-logo { font-family: var(--font-heading); font-size: 1.25rem; color: var(--mdfa-white); margin-bottom: 10px; display: block; }
.footer-tagline { opacity: 0.75; max-width: 320px; font-size: 0.9rem; }
.footer-legal {
  border-top: 1px solid rgba(255,255,255,0.14);
  padding-top: 22px;
  font-size: 0.8rem;
  opacity: 0.68;
  line-height: 1.65;
}
@media (max-width: 760px) { .footer-grid { grid-template-columns: 1fr; } }

/* -----------------------------------------
   8. Generic page (fallback template, e.g. Privacy Policy)
----------------------------------------- */
.generic-page { padding: 72px 0 88px; }
.generic-page .container { max-width: 740px; }

/* -----------------------------------------
   9. Utility
----------------------------------------- */
.text-center { text-align: center; }
.mt-0 { margin-top: 0; }
.mb-0 { margin-bottom: 0; }
