/*
Theme Name: Miami Stem Cell
Description: Standalone theme for Miami Stem Cell. Header, footer, single post, blog/category/tag/author/date archives, search results and 404 are Elementor Pro Theme Builder templates (Elementor > Templates > Theme Builder). Archive cards use the "MSC Post Card" loop item.
Version: 4.4
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: miamistemcell
*/

/* ---- global layout guards: no horizontal overflow at any width ---- */
/* Only on body: it propagates to the viewport, so window scrolling (and Elementor sticky) keeps working. */
body { margin: 0; overflow-x: hidden; background: #fff; }
img, video, iframe, embed, object { max-width: 100%; }
.elementor-location-header, .elementor-location-footer { width: 100%; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.screen-reader-text:focus { position: static !important; width: auto; height: auto; clip: auto; padding: 10px 16px; background: #fff; color: #0b3c3d; }

/* ---- classes used inside existing page content (Elementor HTML widgets) ---- */
:root { --msc-green: #0b3c3d; }
.msc-hero{position:relative;background:var(--msc-green);background-image:linear-gradient(rgba(9,22,48,.55),rgba(9,22,48,.55)),url("../../uploads/2025/03/Bg-hero-page.png");background-size:cover;background-position:center bottom;background-repeat:no-repeat;padding:120px 20px 96px;text-align:center;}
.msc-hero h1{color:#fff;font-size:48px;line-height:1.12;margin:0 0 16px;text-transform:uppercase;font-weight:800;letter-spacing:.5px;}
.msc-body{max-width:1200px;margin:0 auto;padding:56px 20px 72px;display:grid;grid-template-columns:1fr 340px;gap:48px;}
@media(max-width:900px){.msc-body{grid-template-columns:1fr;}}
/* CTA pill: never wrap (match original single-line button) */
.msc-cta-button{white-space:nowrap !important;}
/* About page HTML block forces its photo into a fixed frame with object-fit:fill (squashed); crop instead. */
.msc-ab-fda img { object-fit: cover !important; }

/* ---- post content components (pipeline articles) ---- */
.elementor-widget-theme-post-content pre { max-width: 100%; overflow-x: auto; white-space: pre-wrap; }
.elementor-widget-theme-post-content table { width:100%; border-collapse:collapse; margin:28px 0; font-size:15px; line-height:1.55; display:table; }
.elementor-widget-theme-post-content table caption { caption-side:top; text-align:left; font-weight:700; color:#0b3c3d; font-size:18px; margin-bottom:12px; }
.elementor-widget-theme-post-content table th { background:#0b3c3d; color:#fff; text-align:left; padding:14px 16px; font-weight:700; vertical-align:top; border:1px solid #0b3c3d; }
.elementor-widget-theme-post-content table td { padding:14px 16px; border:1px solid #e2e8e7; vertical-align:top; background:#fff; text-align:left; }
.elementor-widget-theme-post-content table tbody tr:nth-child(even) td { background:#f5faf9; }
@media(max-width:640px){
  .elementor-widget-theme-post-content :is(table, thead, tbody, th, td, tr) { display:block; }
  .elementor-widget-theme-post-content thead { display:none; }
  .elementor-widget-theme-post-content td { border:none; border-bottom:1px solid #e2e8e7; }
}
/* Answer capsule (featured-snippet callout) */
.answer-capsule { background:#f0f7f6; border-left:4px solid #0b3c3d; border-radius:8px; padding:20px 24px; margin:24px 0; }
.answer-capsule p { margin:0; color:#123; }

/* ---- fallback layout (only if an Elementor template is disabled): 100% outer, 1200px inner, 20px gutters ---- */
.msc-fb-main { width: 100%; margin: 0; padding: 0; }
.msc-fb-wrap { max-width: 1200px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
.msc-fb-hero { background: var(--msc-green); color: #fff; text-align: center; padding: 65px 0 60px; }
.msc-fb-hero h1 { color: #fff; margin: 0 0 10px; text-transform: uppercase; }
.msc-fb-page { padding-top: 60px; padding-bottom: 80px; }
.msc-fb-title { color: var(--msc-green); }
.msc-fb-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 30px; }
@media (max-width: 1024px) { .msc-fb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .msc-fb-grid { grid-template-columns: 1fr; } }
.msc-fb-card img { width: 100%; height: auto; border-radius: 10px; }
.msc-fb-card h3 a { color: var(--msc-green); text-decoration: none; }
.msc-fb-btn { display: inline-block; background: #f47f56; color: #fff; padding: 14px 30px; border-radius: 40px; text-decoration: none; }

/* ---- converted legacy pages (pages flagged _msc_native by convert-legacy.php) ---- */
body.msc-converted { line-height: 1.7; color: #272626; }
body.msc-converted .elementor-widget-text-editor a:not(.elementor-button) { color: #2f5aae; }
/* Orange-word underline in headings ("swoosh"); drawn in CSS because Elementor strips inline SVG from headings. */
.msc-swoosh { position: relative; display: inline-block; max-width: 100%; }
.msc-swoosh svg { display: none; }
.msc-swoosh::after { content: ""; position: absolute; left: 0; right: 0; top: calc(100% - 8px); height: 14px; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 20' preserveAspectRatio='none'%3E%3Cpath d='M2 15 C 180 10 320 10 498 15' fill='none' stroke='%23095B5E' stroke-width='6' stroke-linecap='round'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }

/* GoHighLevel inline forms: the embed script parks the iframe off-screen until its handshake; show it in place. */
iframe[id^="inline-"][data-form-id] { position: relative !important; left: 0 !important; opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; }
/* Tab list check marks used a Font Awesome glyph (\f058); the webfont isn't loaded (Elementor uses inline SVG icons). */
body.msc-converted .elementor-tab-content li::before { content: "" !important; font-family: inherit !important; width: 15px; height: 15px; top: .3em !important; background: #0B3C3D;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM227.3 387.3l184-184a16 16 0 0 0 0-22.6l-22.6-22.6a16 16 0 0 0-22.6 0L216 308.1l-70.1-70.1a16 16 0 0 0-22.6 0l-22.6 22.6a16 16 0 0 0 0 22.6l104 104a16 16 0 0 0 22.6 0z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM227.3 387.3l184-184a16 16 0 0 0 0-22.6l-22.6-22.6a16 16 0 0 0-22.6 0L216 308.1l-70.1-70.1a16 16 0 0 0-22.6 0l-22.6 22.6a16 16 0 0 0 0 22.6l104 104a16 16 0 0 0 22.6 0z'/%3E%3C/svg%3E") center / contain no-repeat; }