/* SAFE — site-wide corrections so every page matches the original site exactly.
   Loaded on every page by the SAFE Talks plugin. */

/* ---------- Footer ---------- */
.safe-footer-grid{font-family:Figtree,sans-serif}
.safe-f-brand .elementor-widget-image{width:auto!important;max-width:none!important}
.safe-f-brand .elementor-widget-image img{height:40px!important;width:auto!important;max-width:none!important;display:block}
.safe-f-tagline,.safe-f-tagline p{font-size:14px!important;line-height:20px!important;margin:0}
.safe-f-tagline{margin-top:16px!important}
.safe-f-contact{margin-top:20px!important}
.safe-f-contact .elementor-icon-list-items,.safe-f-links .elementor-icon-list-items{display:flex!important;flex-direction:column;gap:4px}
.safe-f-links .elementor-icon-list-items{gap:8px}
.safe-f-contact .elementor-icon-list-item,.safe-f-links .elementor-icon-list-item{padding:0!important;margin:0!important}
.safe-f-contact .elementor-icon-list-item,.safe-f-contact .elementor-icon-list-item>a,.safe-f-contact .elementor-icon-list-text,
.safe-f-links .elementor-icon-list-item,.safe-f-links .elementor-icon-list-item>a,.safe-f-links .elementor-icon-list-text{font-size:14px!important;line-height:20px!important}
.safe-f-contact .elementor-icon-list-item:after,.safe-f-links .elementor-icon-list-item:after{display:none!important}
.safe-f-links{margin-top:16px!important}
.safe-footer-grid .elementor-widget-heading h2.elementor-heading-title{font-size:18px!important;line-height:28px!important}
.safe-f-social{margin-top:16px!important}
.safe-f-btn{margin-top:24px!important}
.safe-f-btn .elementor-button{font-size:14px!important;line-height:20px!important;padding:10px 16px!important;min-height:40px}
.safe-f-btn .elementor-button-content-wrapper{gap:8px}
.elementor a.safe-f-cst,a.safe-f-cst{padding:0!important;margin-top:24px!important;gap:8px!important}
.safe-f-cst img{height:96px!important;width:auto!important}
.safe-f-cst .elementor-heading-title{font-size:14px!important;line-height:20px!important}
.safe-footer-grid+.e-con .elementor-widget-text-editor,.safe-footer-grid+.e-con .elementor-widget-text-editor p{font-size:12px!important;line-height:16px!important;margin:0!important}
@media (max-width:767px){.safe-footer-grid .elementor-widget-heading h2.elementor-heading-title{font-size:16px!important;line-height:24px!important}}
.safe-f-cst .elementor-widget-heading,.safe-f-cst .elementor-widget-heading .elementor-heading-title{font-size:14px!important;line-height:20px!important}
.safe-f-social .elementor-social-icons-wrapper{--grid-row-gap:8px;--grid-column-gap:8px;row-gap:8px!important}

/* ---------- Text width limits (Elementor's own max-width:100% was winning) ---------- */
.elementor .e-con>.elementor-widget.safe-maxw-672,.safe-maxw-672{max-width:672px!important}
.elementor .e-con>.elementor-widget.safe-maxw-768,.safe-maxw-768{max-width:768px!important}
.safe-page-hero h1.elementor-heading-title,.safe-photo-hero h1.elementor-heading-title{max-width:768px}

/* ---------- Call-to-action band (all pages) ---------- */
.e-con:has(>.safe-cta-title)>.elementor-widget-icon,.e-con:has(>.safe-cta-title)>.elementor-widget-icon .elementor-icon-wrapper{line-height:0!important}
.e-con-inner:has(>.e-con>.safe-cta-title)>.safe-maxw-672{padding:24px 0 0!important;margin:0!important;width:100%!important}
.e-con-inner:has(>.e-con>.safe-cta-title)>.e-con:last-child{padding-top:32px!important;margin:0!important}

/* ---------- Page width: content is 1176px wide like the original (Elementor added the 20px side padding outside the 1256px box) ---------- */
.e-con.e-parent.e-con-boxed,[data-elementor-type=header] .e-con-boxed,[data-elementor-type=footer] .e-con-boxed{--content-width:1176px!important}

/* ---------- Topic cards ---------- */
.safe-tt-img img{width:120px!important;height:120px!important}
@media (max-width:1024px){.safe-tt-img img{width:104px!important;height:104px!important}}
@media (max-width:767px){.safe-tt-img img{width:56px!important;height:56px!important}}
.safe-tt-view,.safe-tt-view .elementor-heading-title{line-height:20px!important}
/* Talks page programme: 3 columns, 24px gaps (homepage keeps 4) */
.safe-topic-filter+.elementor-widget-loop-grid .elementor-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important}
@media (max-width:1024px){.safe-topic-filter+.elementor-widget-loop-grid .elementor-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media (max-width:767px){.safe-topic-filter+.elementor-widget-loop-grid .elementor-grid{grid-template-columns:minmax(0,1fr)!important}}
.safe-topic-filter+.elementor-widget-loop-grid>*:first-child{margin-top:40px!important}

/* ---------- Topic page hero ---------- */
.safe-topic-back{margin-bottom:30px!important}
.e-con:has(>.safe-topic-imagebox){padding:0!important}
.safe-topic-imagebox{flex:0 0 auto!important;width:224px!important;height:224px!important;padding:16px!important;box-sizing:border-box}
.safe-topic-imagebox img{width:192px!important;height:192px!important}
@media (max-width:1024px){.safe-topic-imagebox{width:192px!important;height:192px!important}.safe-topic-imagebox img{width:160px!important;height:160px!important}}
@media (max-width:767px){.safe-topic-imagebox{width:128px!important;height:128px!important}.safe-topic-imagebox img{width:96px!important;height:96px!important}}

/* ---------- Request a talk form (beats the page's own styles, which load later) ---------- */
html body .safe-request-form .elementor-field-label{line-height:26.4px!important}
html body .safe-request-form .elementor-field-group-topics_foundation > .elementor-field-label,html body .safe-request-form .elementor-field-group-topics_indepth > .elementor-field-label,html body .safe-request-form .elementor-field-group-topics_practical > .elementor-field-label,html body .safe-request-form .elementor-field-group-topics_academic > .elementor-field-label{line-height:20px!important}
html body .safe-request-form .elementor-field-group-legend_topics,html body .safe-request-form .elementor-field-group-legend_format{margin-top:42px!important}
html body .safe-request-form .elementor-field-group-legend_about{margin-top:10px!important}
html body .safe-request-form .elementor-field-group-legend_about,html body .safe-request-form .elementor-field-group-legend_topics,html body .safe-request-form .elementor-field-group-legend_format{padding-top:42px!important}
html body .safe-request-form .elementor-field-group-topics_foundation{padding-top:20px!important}
html body .safe-request-form .elementor-field-group-other,html body .safe-request-form .elementor-field-group-details{padding-bottom:40px!important}
@media (max-width:767px){html body .safe-request-form .elementor-field-group-legend_about,html body .safe-request-form .elementor-field-group-legend_topics,html body .safe-request-form .elementor-field-group-legend_format{padding-top:34px!important}html body .safe-request-form .elementor-field-group-other,html body .safe-request-form .elementor-field-group-details{padding-bottom:32px!important}}

/* ---------- Contact page ---------- */
html body .safe-signup-form .elementor-field-label{line-height:26.4px!important}
html body .safe-signup-form textarea.elementor-field-textual{height:102px!important}
html body .safe-signup-form .elementor-field-group-message{padding-bottom:28px!important}
.safe-contact-card .elementor-widget-heading,.safe-contact-card .elementor-heading-title{line-height:26.4px!important}
.safe-contact-grid h3.elementor-heading-title{line-height:18.4px!important}
.safe-contact-grid .safe-card-shadow{padding:32px!important}

/* ---------- Spacing between blocks (exact values, so pages match whether or not they are re-imported) ---------- */
.e-con-inner:has(>.e-con>.safe-cta-title)>.e-con:first-child{margin:0!important}
.e-con:has(>.safe-topic-imagebox){margin:0!important}
.safe-page-hero>.e-con-inner>.e-con:last-child{margin-top:32px!important;padding:0!important}
.safe-hero-btns{margin-top:32px!important;padding:0!important}
.safe-team{margin-top:48px!important}
.page-id-208 .e-con:has(>.safe-placeholder){margin-top:32px!important;padding:0!important}

/* ---------- Resource cards & "Receive updates" banner ---------- */
.safe-res-card .elementor-widget-icon,.safe-res-card .elementor-widget-icon .elementor-icon-wrapper{line-height:0!important}
.safe-res-link,.safe-res-link .elementor-heading-title{line-height:20px!important}
.elementor a.safe-updates-card,a.safe-updates-card{padding:40px!important;align-items:center!important;justify-content:space-between}
.safe-updates-card .elementor-widget-icon,.safe-updates-card .elementor-widget-icon .elementor-icon-wrapper{line-height:0!important}
.safe-updates-pill{width:auto!important;max-width:none!important;flex:0 0 auto!important}
@media (max-width:1024px){.elementor a.safe-updates-card,a.safe-updates-card{padding:32px!important}}
@media (max-width:767px){.elementor a.safe-updates-card,a.safe-updates-card{flex-direction:column!important;align-items:flex-start!important;flex-wrap:nowrap!important}}

/* ---------- Talk cards, link cards, grids, buttons ---------- */
.safe-ut-date .elementor-widget-heading,.safe-ut-register{line-height:0!important}
.safe-ut-date .elementor-heading-title{display:block!important}
.safe-ut-register .elementor-heading-title{display:flex!important}
.safe-link-card .elementor-widget-icon,.safe-link-card .elementor-widget-icon .elementor-icon-wrapper{line-height:0!important}
.safe-link-card .elementor-widget-heading:not(.safe-link-title){line-height:20px!important}
.safe-grid2,.safe-gallery{margin-top:0!important;padding-top:40px!important}
.page-id-309 .e-con:has(>.safe-placeholder){margin-top:0!important;padding-top:24px!important}
.safe-btn:not(.safe-btn--big) .elementor-button{height:40px!important;padding-top:0!important;padding-bottom:0!important;box-sizing:border-box}
