.elementor-6 .elementor-element.elementor-element-2569f6c9{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6 .elementor-element.elementor-element-1f57e83e{--display:flex;}.elementor-6 .elementor-element.elementor-element-30619947{--display:flex;}.elementor-6 .elementor-element.elementor-element-125026f3{--display:flex;}/* Start custom CSS for container, class: .elementor-element-2569f6c9 *//* ---------- remove strip above hero ---------- */
.site-header, #masthead, .wp-site-blocks > header, header.wp-block-template-part { display: none !important; }
body, #content, .site-content, .site-main, .entry-content, .elementor { margin-top: 0 !important; padding-top: 0 !important; }
#top { margin-top: 0 !important; }
.e-con { --padding-block-start: 0; }
.elementor-section { padding-top: 0; }/* End custom CSS */
/* Start custom CSS */@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400..600;1,9..144,400..600&family=Nunito+Sans:ital,wght@0,300..800;1,300..800&display=swap');

html { scroll-behavior: smooth; }
html, body { overflow-x: hidden; }
body { margin: 0; background: #FAF5EF; color: #4A3B47; font-family: 'Nunito Sans', sans-serif; }
a { color: #7D5A72; text-decoration: none; }
a:hover { color: #4A3B47; }
h1,h2,h3 { font-family: 'Fraunces', serif; font-weight: 500; }

/* full-bleed sections */
#top, #about, #research, #mission, #talks, #media, #contact { width: 100vw; position: relative; left: 50%; margin-left: -50vw; }

/* headings scale fluidly between phone and desktop */
.cm-h1 { font-size: clamp(34px, 5.5vw, 56px); line-height: 1.08; margin: 0; }
.cm-h2 { font-size: clamp(28px, 4.2vw, 42px); line-height: 1.15; margin: 0; }
.cm-h2s { font-size: clamp(24px, 3.6vw, 36px); line-height: 1.25; margin: 0; }
.cm-lead { font-size: clamp(17px, 2.2vw, 20px); line-height: 1.6; margin: 0; }

.cm-navlink { font-size: 13.5px; font-weight: 700; color: #4A3B47; padding: 7px 12px; border-radius: 999px; }
.cm-navlink:hover { background: #C5B4D4; color: #4A3B47; }
.cm-btn-primary { background: #7D5A72; color: #fff; font-weight: 800; font-size: 16px; padding: 15px 30px; border-radius: 999px; box-shadow: 0 6px 18px rgba(125,90,114,0.35); display: inline-block; }
.cm-btn-primary:hover { background: #4A3B47; color: #fff; }
.cm-btn-secondary { background: #FAF5EF; color: #7D5A72; font-weight: 800; font-size: 16px; padding: 15px 30px; border-radius: 999px; border: 2px solid #7D5A72; display: inline-block; }
.cm-btn-secondary:hover { background: #C5B4D4; color: #4A3B47; }
.cm-card:hover { background: #C5B4D4 !important; }
.cm-chip { display: inline-block; font-size: 11.5px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px; color: #4A3B47; }

/* nav: single row desktop, wraps on small screens, clears admin bar when logged in */
.cm-nav { position: fixed; top: 14px; left: 50%; transform: translateX(-50%); z-index: 9999; display: flex; align-items: center; gap: 2px; background: rgba(250,245,239,0.94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border: 1.5px solid #A6798F; border-radius: 999px; padding: 6px 10px; box-shadow: 0 8px 28px rgba(74,59,71,0.14); max-width: 96vw; flex-wrap: nowrap; white-space: nowrap; width: max-content; box-sizing: border-box; }
body.admin-bar .cm-nav { top: 52px; }

/* layout grids */
.cm-hero-grid { position: relative; max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 56px; align-items: center; }
.cm-hero-text { display: flex; flex-direction: column; gap: 22px; }
.cm-photo-frame { position: relative; width: min(340px, 78vw); aspect-ratio: 34 / 43; border: 2px solid #A6798F; border-radius: 170px 170px 60px 60px / 200px 200px 50px 50px; padding: 10px; background: #FAF5EF; box-sizing: border-box; }
.cm-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; align-items: stretch; }
.cm-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }

/* ---------- tablet (≤1024px) ---------- */
@media (max-width: 1024px) {
  .cm-hero-grid { gap: 36px; }
  .cm-grid3 { gap: 18px; }
  .cm-grid2 { gap: 32px; }
}

/* ---------- small tablet + mobile (≤900px) ---------- */
@media (max-width: 900px) {
  .cm-hero-grid { grid-template-columns: 1fr; text-align: center; }
  .cm-hero-text { align-items: center; }
  .cm-photo-frame { margin: 0 auto; }
  .cm-grid3 { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; width: 100%; }
  .cm-grid2 { grid-template-columns: 1fr; }
}

/* ---------- phone (≤980px nav / ≤767px) ---------- */
@media (max-width: 980px) {
  .cm-nav { flex-wrap: wrap; white-space: normal; width: auto; justify-content: center; border-radius: 32px; top: 10px; }
  body.admin-bar .cm-nav { top: 56px; }
}
@media (max-width: 767px) {
  .cm-navlink { font-size: 12px; padding: 6px 9px; }
  .cm-btn-primary, .cm-btn-secondary { font-size: 15px; padding: 13px 24px; }
}/* End custom CSS */