/* Editorial refinement: private-bank restraint with a familiar WordPress feel. */

:root {
  --content: 1200px;
  --radius: 2px;
}

body { line-height: 1.6; }

.site-header {
  min-height: 76px;
  border-bottom: 1px solid #e3dcda;
  box-shadow: none;
  backdrop-filter: none;
}

.header-inner { min-height: 76px; gap: 20px; }
.main-nav a {
  padding: 10px 0 8px;
  color: #55494b;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 0.88rem;
  font-weight: 550;
  letter-spacing: 0;
  border-bottom-width: 1px;
}

.audience-prefix { font-size: 0.72rem; }
.audience-switch { font-size: 0.72rem; font-weight: 650; letter-spacing: 0; }
.language-select { font-weight: 650; letter-spacing: 0.02em; }

.eyebrow {
  margin-bottom: 14px;
  font-size: 0.82rem;
  font-weight: 650;
  letter-spacing: 0.015em;
  line-height: 1.35;
  text-transform: none;
}

.contact-list strong { font-size: 0.82rem; font-weight: 650; letter-spacing: 0.01em; text-transform: none; }
.choice-group > label,
.choice-legend { font-weight: 650; letter-spacing: 0.01em; text-transform: none; }
.portrait-placeholder span,
.waitlist-coupon small { letter-spacing: 0.015em; text-transform: none; }

h1 { margin-bottom: 22px; font-size: clamp(2.75rem, 5.8vw, 5.35rem); letter-spacing: -0.038em; line-height: 1.04; }
h2 { margin-bottom: 20px; font-size: clamp(2rem, 3.8vw, 3.35rem); letter-spacing: -0.028em; line-height: 1.1; }
h3 { font-size: clamp(1.25rem, 1.8vw, 1.6rem); }
.lead { max-width: 720px; font-size: clamp(1.04rem, 1.7vw, 1.22rem); line-height: 1.58; }
.section { padding: clamp(62px, 7vw, 96px) 0; }

.hero-simple,
.institutional-hero { min-height: min(680px, calc(78vh - 76px)); }
.profile-copy { padding: clamp(48px, 6vw, 88px); }
.bio-grid,
.contact-layout { gap: clamp(36px, 6vw, 78px); }

.publication-grid,
.feature-grid,
.service-grid { gap: 20px; }
.publication-card,
.feature-card,
.service-card { padding: 26px; border-color: #ddd6d3; background: #fff; }
.publication-card p,
.feature-card p,
.service-card p,
.bio-copy p { color: #574e50; }
.scope-note { padding: 26px 30px; border-left-width: 3px; background: #faf7f4; }

.button-link,
.button-secondary,
.form-button {
  min-height: 42px;
  padding: 9px 16px;
  border-radius: 2px;
  font-size: 0.9rem;
  font-weight: 650;
  transition: background 140ms ease, border-color 140ms ease, color 140ms ease;
}
.button-link:hover,
.form-button:hover { transform: none; }

.contact-form { padding: clamp(26px, 4vw, 42px); background: #fff; }
.form-grid { gap: 16px 18px; }
.form-field { gap: 6px; }
.form-field label { font-size: 0.84rem; font-weight: 650; }
.form-field input,
.form-field select,
.form-field textarea { min-height: 46px; padding: 10px 12px; border-color: #cfc7c4; background: #fff; }
.form-field textarea { min-height: 140px; }

.quick-rail { width: 78px; border-color: #ddd6d3; box-shadow: 0 5px 18px rgba(44, 7, 12, 0.08); }
.quick-rail-item { min-height: 70px; gap: 5px; padding: 8px 5px; }
.quick-rail-item svg { width: 19px; height: 19px; }
.quick-rail-item span { max-width: 68px; font-size: 0.63rem; font-weight: 650; line-height: 1.2; }

/* Minimal service pages */
.minimal-hero {
  min-height: 560px;
  display: flex;
  align-items: center;
  color: #fff;
  background:
    linear-gradient(100deg, rgba(44, 7, 12, 0.78), rgba(44, 7, 12, 0.34)),
    url("/sfondo20fmm.webp") center / cover no-repeat;
}
.private-hero {
  background:
    linear-gradient(100deg, rgba(44, 7, 12, 0.72), rgba(44, 7, 12, 0.28)),
    url("/sfondo20fmm.webp") center / cover no-repeat;
}
.minimal-hero .eyebrow { color: var(--gold-light); }
.minimal-hero h1 { max-width: 1100px; }
.single-line-title { white-space: nowrap; font-size: clamp(2.7rem, 5.2vw, 5rem); }
.private-hero-statement {
  max-width: 880px;
  margin: 26px 0 0;
  color: rgba(255,255,255,.92);
  font-size: clamp(1.08rem, 1.8vw, 1.35rem);
  line-height: 1.55;
}
.private-hero-statement strong { font-weight: 750; letter-spacing: .01em; }

.minimal-anchor-section {
  min-height: 360px;
  padding: 72px 0;
  background: #fff;
  border-bottom: 1px solid #eee8e5;
  scroll-margin-top: 92px;
}
.minimal-anchor-section h2 { margin: 0; color: var(--burgundy-900); }

/* About page */
.about-hero { grid-template-columns: minmax(360px, .9fr) minmax(0, 1.1fr); }
.about-media { width: min(100%, 470px); margin-left: auto; }
.about-hero .portrait-frame { position: relative; margin-left: 0; width: 100%; }
.about-hero .portrait-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; z-index: 2; }
.about-partners {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: center;
  gap: 10px;
  margin-top: 14px;
  padding: 14px 0 0;
  border-top: 1px solid rgba(255,255,255,.36);
}
.about-partners-title { grid-column: 1 / -1; color: rgba(255,255,255,.82); font-size: .72rem; font-weight: 650; }
.about-partners a { display: flex; align-items: center; justify-content: center; min-height: 52px; padding: 7px; background: rgba(255,255,255,.92); }
.about-partners img { max-width: 82px; max-height: 34px; object-fit: contain; }
.about-lead { max-width: 760px; }
.credential-professional { margin-bottom: 12px; }
.credential-education { margin-top: 0; color: #62585a; }

.best-interest-term {
  position: relative;
  display: inline-block;
  white-space: nowrap;
}
.best-interest-info {
  width: 21px;
  height: 21px;
  margin-left: 3px;
  padding: 0;
  border: 1px solid currentColor;
  border-radius: 50%;
  background: transparent;
  color: var(--burgundy-700);
  font: 650 12px/19px Georgia, serif;
  vertical-align: .14em;
}
.best-interest-popover {
  position: absolute;
  z-index: 15000;
  left: 0;
  top: calc(100% + 12px);
  width: min(520px, 78vw);
  padding: 24px 28px 22px;
  border: 1px solid #d9cfcc;
  background: #fff;
  color: var(--ink);
  box-shadow: 0 18px 48px rgba(30,15,18,.18);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-4px);
  transition: opacity 120ms ease, transform 120ms ease, visibility 120ms ease;
  white-space: normal;
}
.best-interest-popover.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.best-interest-popover strong { display:block; margin-bottom:10px; color:var(--burgundy-900); font-family:Georgia,"Times New Roman",serif; font-size:1.55rem; font-weight:500; }
.best-interest-copy { display:block; color:#554b4d; font-size:.94rem; line-height:1.62; }
.best-interest-close { display:none; position:absolute; top:8px; right:10px; border:0; background:transparent; color:#65595b; font-size:1.5rem; }

/* Publications */
.publications-before-profile { border-top: 1px solid #e8dfdc; border-bottom: 1px solid #e8dfdc; }
.publication-list { display:grid; gap:0; border-top:1px solid #dcd3d0; }
.publication-entry { display:grid; grid-template-columns: 220px minmax(0,1fr); gap:34px; padding:32px 0; border-bottom:1px solid #dcd3d0; align-items:center; }
.publication-preview { min-height:150px; display:flex; position:relative; align-items:flex-end; overflow:hidden; background:#eee7e2; color:#fff; text-decoration:none; }
.publication-preview img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.publication-preview::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(44,7,12,.78),rgba(44,7,12,.04) 70%); }
.publication-preview span { position:relative; z-index:1; padding:14px 16px; font-size:.78rem; font-weight:650; }
.publication-entry h3 { margin:4px 0 8px; color:var(--burgundy-900); }
.publication-entry p { margin:0 0 8px; color:#625759; }
.publication-source { font-size:.76rem; font-weight:650; }

/* White relationship page / mail-compose form */
.relationship-page { background:#fff; }
.relationship-section { padding: clamp(70px, 8vw, 112px) 0 100px; background:#fff; }
.relationship-wrap { max-width: 1040px; }
.relationship-copy { max-width: 760px; margin-bottom: 42px; }
.relationship-copy h1 { color: var(--burgundy-900); }
.mail-compose-form {
  border: 1px solid #d8d1ce;
  background: #fff;
  box-shadow: 0 8px 24px rgba(44,7,12,.05);
}
.mail-compose-header { border-bottom: 1px solid #ddd6d3; }
.mail-row {
  display: grid;
  grid-template-columns: 92px minmax(0,1fr);
  align-items: center;
  min-height: 54px;
  border-bottom: 1px solid #eee8e5;
}
.mail-row:last-child { border-bottom: 0; }
.mail-label { padding: 0 18px; color:#776b6d; font-size:.82rem; }
.mail-static,
.mail-row input {
  min-width: 0;
  width: 100%;
  min-height: 53px;
  padding: 13px 18px 13px 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
}
.mail-static { display:flex; align-items:center; }
.mail-compose-body textarea {
  width: 100%;
  min-height: 270px;
  padding: 24px 26px;
  border: 0;
  outline: 0;
  resize: vertical;
  color: var(--ink);
  font: inherit;
  line-height: 1.6;
}
.mail-compose-actions {
  display:flex;
  align-items:center;
  gap:18px;
  padding:16px 20px;
  border-top:1px solid #ddd6d3;
  background:#faf8f7;
}
.mail-compose-actions span { color:#766a6c; font-size:.78rem; }

/* Footer: lighter so the dark burgundy logo remains visible */
.site-footer { padding-top:48px; background:#d8d1cc; color:#2f2426; }
.footer-grid { gap:42px; }
.footer-bottom { margin-top:34px; color:#62585a; border-top-color:rgba(59,10,17,.18); }
.footer-brand p,
.footer-regulatory p { color:#5b5052; }
.footer-contact a,
.site-footer a { color:#3b0a11; }
.footer-regulatory h3 { color:#3b0a11; }
.footer-brand img { opacity:1; }
.regulatory-logos { padding:0; background:transparent; gap:18px; }
.regulatory-logos a { min-width:0; background:transparent; }
.regulatory-logos img { max-height:42px; }

.waitlist-coupon { transform:none; border-style:solid; }
.waitlist-coupon.is-visible { animation:none; }

@media (max-width: 1120px) {
  .main-nav { top:76px; }
  .about-hero { grid-template-columns:1fr; }
  .about-media { margin:auto; }
}

@media (max-width: 700px) {
  .best-interest-term { white-space: nowrap; }
  .best-interest-popover {
    position: fixed;
    left: 50%;
    top: 50%;
    width: min(calc(100% - 28px), 520px);
    transform: translate(-50%, -48%);
  }
  .best-interest-popover.is-visible { transform: translate(-50%, -50%); }
  .best-interest-close { display:block; }
}

@media (max-width: 640px) {
  h1 { font-size:clamp(2.55rem,13vw,4rem); }
  h2 { font-size:clamp(1.9rem,10vw,2.8rem); }
  .section { padding:54px 0; }
  .hero-simple,
  .institutional-hero { min-height:560px; }
  .profile-copy { padding:54px 24px; }
  .minimal-hero {
    min-height:500px;
    background:
      linear-gradient(100deg, rgba(44, 7, 12, 0.74), rgba(44, 7, 12, 0.30)),
      url("/sfondo20fmm-smartphone.webp") center / cover no-repeat;
  }
  .single-line-title { white-space:normal; font-size:clamp(2.4rem,11vw,3.4rem); }
  .private-hero-statement { font-size:1rem; }
  .minimal-anchor-section { min-height:300px; padding:56px 0; scroll-margin-top:86px; }
  .publication-entry { grid-template-columns:1fr; gap:18px; }
  .publication-preview { min-height:190px; }
  .about-partners { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .relationship-section { padding:54px 0 72px; }
  .mail-row { grid-template-columns:70px minmax(0,1fr); }
  .mail-label { padding:0 12px; }
  .mail-row input,
  .mail-static { padding-right:12px; }
  .mail-compose-body textarea { min-height:230px; padding:20px; }
  .mail-compose-actions { align-items:flex-start; flex-direction:column; }
}


/* Institutional advisory copy */
.institutional-advisory-copy {
  max-width: 920px;
  margin-top: 34px;
  color: #443a3c;
}
.institutional-advisory-copy > h3 {
  margin: 0 0 14px;
  color: var(--burgundy-900);
  font-size: clamp(1.45rem, 2.3vw, 2rem);
  line-height: 1.2;
}
.institutional-advisory-copy h4 {
  margin: 38px 0 12px;
  color: var(--burgundy-900);
  font-size: clamp(1.08rem, 1.55vw, 1.28rem);
  line-height: 1.3;
}
.institutional-advisory-copy p,
.institutional-advisory-copy li {
  line-height: 1.72;
}
.institutional-advisory-copy p {
  margin: 0 0 16px;
}
.institutional-advisory-copy ul {
  margin: 12px 0 20px;
  padding-left: 1.25rem;
}
.institutional-advisory-copy li + li {
  margin-top: 10px;
}
  
/* Promo opportunities */
.promo-opportunities {
  min-height: 0;
}

.promo-opportunities-wrap {
  max-width: 940px;
}

.promo-offer-list {
  margin-top: 28px;
  border-top: 1px solid #d7cfcc;
}

.promo-offer-item {
  margin: 0;
  border-bottom: 1px solid #d7cfcc;
  background: transparent;
}

.promo-offer-item summary {
  position: relative;
  list-style: none;
  cursor: pointer;
  padding: 21px 48px 21px 0;
  color: #302527;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.08rem, 1.7vw, 1.28rem);
  line-height: 1.4;
}

.promo-offer-item summary::-webkit-details-marker {
  display: none;
}

.promo-offer-item summary::after {
  content: "›";
  position: absolute;
  top: 50%;
  right: 7px;
  color: var(--burgundy-700);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.65rem;
  line-height: 1;
  transform: translateY(-50%);
  transition: transform 150ms ease;
}

.promo-offer-item[open] summary::after {
  transform: translateY(-50%) rotate(90deg);
}

.promo-offer-panel {
  max-width: 830px;
  padding: 0 48px 24px 0;
  color: #584e50;
}

.promo-offer-panel p {
  margin: 0 0 13px;
  font-size: .96rem;
  line-height: 1.72;
}

.promo-offer-panel p:last-child {
  margin-bottom: 0;
}

.promo-note {
  margin: 20px 0 0;
  color: #796d6f;
  font-size: .78rem;
  line-height: 1.55;
}

@media (max-width: 700px) {
  .promo-offer-list {
    margin-top: 20px;
  }

  .promo-offer-item summary {
    padding: 18px 36px 18px 0;
    font-size: 1.04rem;
  }

  .promo-offer-item summary::after {
    right: 2px;
  }

  .promo-offer-panel {
    padding: 0 8px 20px 0;
  }

  .promo-offer-panel p {
    font-size: .93rem;
  }
}


/* Compact service descriptions */
body[data-page="private"] .minimal-anchor-section,
body[data-page="institutional"] .minimal-anchor-section {
  min-height: 0;
  padding: 54px 0;
  border-bottom: 0;
}

.service-summary {
  display: -webkit-box;
  max-width: 880px;
  margin: 16px 0 22px;
  overflow: hidden;
  color: #584e50;
  font-size: 1rem;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.service-more {
  max-width: 920px;
  margin: 0;
  border: 0;
  background: transparent;
}

.service-more summary {
  position: relative;
  display: block;
  width: 100%;
  list-style: none;
  cursor: pointer;
  padding: 18px 48px 18px 0;
  color: #302527;
  font-family: Georgia, "Times New Roman", serif;
  font-size: .86rem;
  font-weight: 400;
  line-height: 1.4;
}

.service-more summary::-webkit-details-marker {
  display: none;
}

.service-more summary::after {
  content: "›";
  position: absolute;
  top: 50%;
  right: 7px;
  color: var(--burgundy-700);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.55rem;
  line-height: 1;
  transform: translateY(-50%);
  transform-origin: center;
  transition: transform 150ms ease;
}

.service-more[open] summary::after {
  transform: translateY(-50%) rotate(90deg);
}

.service-more .institutional-advisory-copy {
  max-width: none;
  margin: 0;
  padding: 2px 48px 24px 0;
  border-top: 0;
}

.service-more .institutional-advisory-copy > h3 {
  margin-top: 0;
}

@media (max-width: 700px) {
  body[data-page="private"] .minimal-anchor-section,
  body[data-page="institutional"] .minimal-anchor-section {
    padding: 42px 0;
  }

  .service-summary {
    margin: 13px 0 18px;
    font-size: .94rem;
    line-height: 1.5;
  }

  .service-more summary {
    padding: 14px 38px 14px 0;
    font-size: .84rem;
  }

  .service-more summary::after {
    right: 2px;
  }

  .service-more .institutional-advisory-copy {
    padding: 2px 8px 20px 0;
  }
}
