/*
Theme Name: Sleep Impressions Divi Child
Theme URI: https://sleepimpressions.com
Description: Divi child theme for Sleep Impressions dental sleep management.
Author: Sleep Impressions
Version: 1.2.1
Template: Divi
Text Domain: sleep-impressions-divi
*/

:root {
  --si-ink: #06223e;
  --si-muted: #3d677d;
  --si-teal: #00c1de;
  --si-teal-dark: #06223e;
  --si-aqua: #d9f6fa;
  --si-cream: #f7fbfc;
  --si-line: #d7e6eb;
  --si-white: #ffffff;
  --si-orange: #f59321;
  --si-shadow: 0 22px 60px rgba(6, 34, 62, .14);
}

@font-face { font-family: "Montserrat Alternates"; src: url("assets/montserrat-alternates-light.ttf") format("truetype"); font-style: normal; font-weight: 300; font-display: swap; }
@font-face { font-family: "Montserrat Alternates"; src: url("assets/montserrat-alternates-regular.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("assets/poppins-regular.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("assets/poppins-bold.ttf") format("truetype"); font-style: normal; font-weight: 700; font-display: swap; }

body { color: #000; font-family: "Poppins", Arial, sans-serif; font-size: 16px; font-weight: 400; line-height: 1.7; }
h1, h2, h3, h4, h5, h6 { color: var(--si-ink); font-family: "Montserrat Alternates", Arial, sans-serif; font-style: normal; font-weight: 400; letter-spacing: -.025em; line-height: 1.1; }
p { color: var(--si-muted); }
a { transition: color .2s ease, transform .2s ease, background-color .2s ease; }

/* Divi header */
#main-header { box-shadow: 0 1px 0 rgba(220, 231, 231, .95); }
#main-header.et-fixed-header { box-shadow: 0 1px 0 rgba(220, 231, 231, .95) !important; }
#logo { content: url("assets/sleep-impressions-logo.png"); max-height: 72%; width: auto; }
#top-menu li { padding-right: 25px; }
#top-menu a { color: var(--si-ink); font-size: 14px; font-weight: 700; }
#top-menu a:hover, #top-menu li.current-menu-item > a { color: var(--si-teal) !important; opacity: 1; }
#top-menu .si-menu-cta > a { background: var(--si-orange); border-radius: 999px; color: white !important; padding: 12px 18px !important; }
#top-menu .si-menu-cta > a:hover { background: #d87910; }
.et_mobile_menu { border-top-color: var(--si-teal); border-radius: 0 0 16px 16px; box-shadow: var(--si-shadow); }
.mobile_menu_bar::before { color: var(--si-teal); }

/* Shared Divi layout primitives */
.si-eyebrow { color: var(--si-teal) !important; font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: 800; letter-spacing: .16em; line-height: 1.35; text-transform: uppercase; }
.si-eyebrow :where(p) { color:inherit; font-family:inherit; font-size:inherit; font-weight:inherit; letter-spacing:inherit; line-height:inherit; text-transform:inherit; }
.si-display h1 { font-size: clamp(54px, 7vw, 92px); padding-bottom: 22px; }
/* Display body defaults are on the native Text inner target below. */
.si-section-title h2 { font-size: clamp(39px, 5vw, 62px); padding-bottom: 14px; }
/* Section-title body defaults are on the native Text inner target below. */
.si-page-title :where(h1) { font-size:var(--si-page-title-default-size,clamp(48px,6.5vw,78px)); font-weight:var(--si-page-title-default-weight,400); line-height:var(--si-page-title-default-leading,1.1); }
.si-page-title h1 { padding-bottom:0; }
.si-page-hero { border-bottom: 1px solid var(--si-line); }
.si-soft-section { background: var(--si-cream); }
.si-dark-section { background: var(--si-ink); }
.si-dark-section h2, .si-dark-section h3, .si-dark-section p { color: white; }
.si-content { color: #334f5a; }
.si-content :where(.et_pb_text_inner) { color:#334f5a; }
.si-content :where(.et_pb_text_inner:has(p)) { color:#3d677d; }
.si-content p { color:inherit; }
.si-content :where(ul,ol) { color:#334f5a; }
/* Mixed legacy preformatted content keeps its original explicit-formatting color. */
:where(.postid-239,.postid-354) .si-content :where(pre) { color:#334f5a; }
.si-content span[style] { color: inherit !important; font-family: inherit !important; font-size: inherit !important; }
.si-content :where(h2) { font-size:34px; }
.si-content h2 { margin-top:1.3em; }
.si-content :where(h3) { font-size:27px; }
.si-content h3 { margin-top:1.2em; }
.si-content a { text-decoration: underline; text-underline-offset: 3px; }
.si-content img { border-radius: 16px; height: auto; }
.si-content hr { border: 0; border-top: 1px solid var(--si-line); margin: 38px 0; }
.si-content iframe { border: 0; border-radius: 16px; max-width: 100%; width: 100%; }

/* Home */
.si-hero { overflow: hidden; }
.si-hero-image img { border-radius: 240px 240px 28px 28px; box-shadow: var(--si-shadow); min-height: 500px; object-fit: cover; }
.si-trust-blurb .et_pb_blurb_container { vertical-align: middle; }
.si-trust-blurb h4 { color:white; font-size:23px; padding-bottom:5px; }
.si-trust-blurb :where(.et_pb_blurb_description) { color:#b7ccce; font-size:13px; }
.si-trust-blurb p { color:inherit; font-size:inherit; }
.si-feature-card { border-radius: 24px; box-shadow: 0 12px 30px rgba(6, 34, 62, .14); min-height: 390px; overflow: hidden; }
.si-feature-card .et_pb_image_wrap, .si-feature-card img { height: 220px; object-fit: cover; width: 100%; }
.si-feature-card .et_pb_blurb_container { padding: 24px; }
/* Feature-card typography defaults are consolidated with its final styling. */
/* Feature-card body typography inherits from its module. */
.si-audience-card { background: #fff; border: 1px solid var(--si-line); border-radius: 24px; min-height: 315px; padding: 36px; }
.si-audience-card:hover { border-color: #a9d3cf; box-shadow: var(--si-shadow); transform: translateY(-5px); }
.si-audience-card h2 { color:#06223e; font-size:32px; }

/* Buttons */
.et_pb_button.et_pb_module.si-primary-button, .si-primary-button .et_pb_button { background: var(--si-orange); border: 0; border-radius: 999px; box-shadow: 0 10px 28px rgba(245, 147, 33, .27); color: white; font-size: 14px; font-weight: 700; padding: 13px 24px; }
.et_pb_button.et_pb_module.si-primary-button:hover, .si-primary-button .et_pb_button:hover { background: #d87910; padding: 13px 24px; transform: translateY(-2px); }
.et_pb_button.et_pb_module.si-outline-button, .si-outline-button .et_pb_button { background: rgba(255,255,255,.6); border: 1px solid #b8cece; border-radius: 999px; color: var(--si-ink); font-size: 14px; font-weight: 800; padding: 12px 23px; }
.et_pb_button.et_pb_module.si-outline-button:hover, .si-outline-button .et_pb_button:hover { padding: 12px 23px; transform: translateY(-2px); }

/* Sidebar callout and cards */
.si-sidebar-card { background: var(--si-cream); border-radius: 22px; padding: 30px; }
/* Sidebar-card title defaults are consolidated with its final styling. */
.si-post-card { border: 1px solid var(--si-line); border-radius: 23px; overflow: hidden; }
.si-post-card .entry-title { font-size: 25px; }
.si-post-card .post-content { padding: 22px; }

/* Native Divi contact module */
.si-contact-form .et_pb_contact_field input,
.si-contact-form .et_pb_contact_field textarea,
.si-contact-form .et_pb_contact_field select { background: white; border: 1px solid #c8d8d8; border-radius: 10px; color: var(--si-ink); padding: 15px; }
.si-contact-form .et_contact_bottom_container { float: none; justify-content: flex-start; margin-top: 18px; }
.si-contact-form .et_pb_contact_submit { background: var(--si-teal); border: 0; border-radius: 999px; color: white; font-weight: 800; }

/* Epworth calculator */
.si-epworth { background: var(--si-cream); border-radius: 22px; padding: 32px; }
.si-epworth fieldset { border: 0; margin: 0; padding: 0; }
.si-epworth legend { color: var(--si-ink); font-family: "Montserrat Alternates", Arial, sans-serif; font-size: 27px; font-weight: 400; line-height: 1.2; margin-bottom: 18px; }
.si-epworth-question { background: white; border: 1px solid var(--si-line); border-radius: 14px; margin: 12px 0; padding: 18px; }
.si-epworth-question > span { color: var(--si-ink); display: block; font-weight: 700; margin-bottom: 12px; }
.si-epworth-options { display: flex; flex-wrap: wrap; gap: 12px; }
.si-epworth-options label { align-items: center; color: var(--si-muted); display: inline-flex; font-size: 13px; gap: 5px; }
.si-epworth button { background: var(--si-orange); border: 0; border-radius: 999px; color: white; cursor: pointer; font-weight: 700; margin-top: 18px; padding: 13px 24px; }
.si-epworth-result { background: var(--si-ink); border-radius: 14px; color: white; display: none; margin-top: 20px; padding: 20px; }
.si-epworth-result.is-visible { display: block; }
.si-epworth-result strong { color: white; font-family: "Montserrat Alternates", Arial, sans-serif; font-size: 27px; font-weight: 400; }
.si-epworth-result p { color: #cfe0e1; margin: 6px 0 0; }

/* Footer */
#main-footer { background: var(--si-ink); }
#footer-widgets .footer-widget a, #footer-info, #footer-info a { color: #dfe8e8; }
#footer-widgets .footer-widget h4 { color: var(--si-teal); font-family: "Poppins", Arial, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
#footer-bottom { background: rgba(0,0,0,.12); }

@media (max-width: 980px) {
  .si-display h1 { font-size: 58px; }
  .si-hero-image img { min-height: 420px; }
}

@media (max-width: 767px) {
  .si-display h1 { font-size: 48px; }
  /* Display body phone size is on the native Text inner target below. */
  /* Page-title typography is consolidated in the final phone rule. */
  .si-section-title h2 { font-size: 39px; }
  .si-hero-image img { border-radius: 180px 180px 24px 24px; min-height: 360px; }
  .si-feature-card { min-height: 0; }
  .si-epworth { padding: 20px; }
  .si-epworth-options { display: grid; grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; transition: none !important; }
}

/* Native Divi 5 layouts. All page/header/footer content remains in the builder. */
.si-native .et_pb_row { width:calc(100% - 40px); max-width:1180px; }
/* Hero desktop padding is saved in native Divi Spacing. */
.si-native .si-hero>.et_pb_row { display:flex; align-items:center; gap:68px; padding:0; }
.si-native .si-hero>.et_pb_row>.et_pb_column { width:calc((100% - 68px)/2); min-width:0; }
:where(.si-native .si-hero>.et_pb_row>.et_pb_column) { margin:0 !important; }
.si-native .si-hero h1 { color:#000; font-size:clamp(58px,7vw,94px); line-height:1.08; }
.si-native .si-hero .si-eyebrow { margin-bottom:22px; }
:where(.si-native) .si-eyebrow { font-family:"Poppins",Arial,sans-serif; }
/* Display body color is on the native Text inner target below. */
.si-native .si-hero-image,.si-native .si-hero-image .et_pb_image_wrap { width:100%; }
.si-native .si-hero-image img { width:100%; height:530px; min-height:0; border-radius:250px 250px 28px 28px; object-fit:cover; }
.si-native .si-hero .et_pb_button_module_wrapper { display:inline-block; }
:where(.si-native .si-hero .et_pb_button_module_wrapper) { margin:0 10px 14px 0 !important; }
/* Button icons now follow each native Divi Button setting. */
.si-native .si-primary-button,.si-native .si-outline-button { font-family:"Poppins",Arial,sans-serif; }
.si-native .si-native-wake-card { position:absolute; left:-40px; bottom:35px; border-radius:18px; padding:18px 22px; background:#fff; box-shadow:0 16px 44px #06223e33; }
:where(.si-native .si-native-wake-card) { margin:0 !important; }
.si-native .si-native-wake-card p { padding:0; }
.si-native .si-native-wake-card small { font-size:11px; color:#3d677d; }
/* Native CTA title colors take precedence over this normal fallback. */
.si-audience-card h2,.si-sidebar-card h2 { color:#06223e !important; }
.si-audience-card :where(.et_pb_promo_description > div) { color:#3d677d; }
.si-audience-card p { color:inherit; }
.si-native .si-feature-card { position:relative; background:#06223e; }
.si-native .si-feature-card .et_pb_main_blurb_image { display:block; margin:0; }
.si-native .si-feature-card .et_pb_blurb_content { max-width:none; }
.si-native .si-feature-card .et_pb_image_wrap,.si-native .si-feature-card img { height:390px; }
.si-native .si-feature-card .et_pb_blurb_container { position:absolute; inset:auto 0 0; padding:65px 24px 24px; background:linear-gradient(transparent,#06223e); }
/* Final feature-card title styling owns typography; title anchors inherit. */
/* Final feature-card body color is supplied on its module. */
.si-native .si-native-header { border-bottom:1px solid #d7e6eb; background:#fff; }
/* Header row padding is saved in native Divi Spacing. */
.si-native .si-native-menu { background:transparent; }
.si-native .si-native-menu .et_pb_menu__logo img { width:auto; height:56px; max-height:56px; }
.si-native-menu :where(.et-menu a) { font-family:"Poppins",Arial,sans-serif; font-size:14px; font-weight:700; color:#06223e; }
.si-native .si-native-menu .si-menu-cta a { border-radius:999px; padding:12px 18px; background:#f59321; color:white !important; }
.si-native .si-native-footer { background:#06223e; }
.si-native-footer :where(.et_pb_text_inner) { color:#9fb5ba; font-size:14px; }
.si-native-footer :where(p) { color:inherit; font-size:inherit; line-height:inherit; }
.si-native .si-native-footer .et_pb_row { padding:0; }
.si-native-footer-links :where(h3) { color:#f0f0f0; font-size:15px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.si-native .si-native-footer-links h3 { margin-bottom:20px; }
.si-native-footer-links :where(.et_pb_text_inner) { line-height:1.5; }
.si-native .si-native-footer-links p { padding-bottom:9px; }
.si-native-footer-links :where(a) { color:#e1e9e9; font-size:13px; }
.si-native .si-native-footer-logo { background:#fff; border-radius:12px; padding:10px 14px; width:185px; }
:where(.si-native .si-native-footer-logo) { margin-bottom:22px !important; }
.si-native .si-native-footer-bottom { border-top:1px solid #ffffff22; margin-top:50px; padding-top:24px; }
.si-native-footer-bottom :where(.et_pb_text_inner) { font-size:11px; }
@media(max-width:980px){
.si-native .si-hero>.et_pb_row { flex-direction:column; gap:48px; }
.si-native .si-hero>.et_pb_row>.et_pb_column { width:100%; }
.si-native .si-hero-image { max-width:560px; margin:auto; }
.si-native .si-native-wake-card { left:12px; }
.si-native .si-native-header .et_pb_column { margin-bottom:0; }
}
@media(max-width:767px){
.si-native .et_pb_row { width:calc(100% - 28px); }
/* Hero phone padding is saved in native Divi Spacing. */
.si-native .si-hero h1 { font-size:clamp(40px,12vw,53px); }
.si-native .si-hero-image img { height:390px; border-radius:190px 190px 24px 24px; }
.si-native .si-hero .et_pb_button_module_wrapper { display:block; }
.si-native .si-native-menu .et_pb_menu__logo img { height:44px; }
}

/* Visual refinements, 8 October 2026. Preserve native Divi content. */
.si-native .si-native-header .et_pb_menu__logo-wrap { transform:none !important; }
.si-native .si-native-menu .et_pb_menu__logo img { width:auto; height:70px; max-height:70px; }
.si-native .si-native-header .et_pb_row { width:calc(100% - 48px); }
:where(.si-native .si-native-header .et_pb_row) { margin-inline:auto !important; }
.si-native .si-hero-image img { object-position:78% center; }
.si-native .et_pb_row:has(> .et_pb_column > .si-feature-card) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.si-native .et_pb_row:has(> .et_pb_column > .si-feature-card) > .et_pb_column { width:auto !important; min-width:0; }
:where(.si-native .et_pb_row:has(> .et_pb_column > .si-feature-card) > .et_pb_column) { margin:0 !important; }
.si-native .si-feature-card { background:#fff; border:1px solid #d7e6eb; border-radius:20px; min-height:0; height:100%; box-shadow:0 10px 28px rgba(6,34,62,.07); transition:transform .2s,box-shadow .2s; }
.si-native .si-feature-card:hover { transform:translateY(-3px); box-shadow:0 16px 36px rgba(6,34,62,.12); }
.si-native .si-feature-card .et_pb_main_blurb_image { line-height:0; }
.si-native .si-feature-card .et_pb_image_wrap { display:block; height:auto; background:#edf7f9; }
.si-native .si-feature-card img { display:block; width:100%; height:auto; aspect-ratio:3.84 / 1; object-fit:contain; }
.si-native .si-feature-card .et_pb_blurb_container { position:static; padding:25px 28px 28px; background:none; text-align:left; }
.si-feature-card h4 { color:#06223e; font-size:21px; font-weight:700; line-height:1.4; letter-spacing:-.025em; }
.si-feature-card :where(h4 a) { color:inherit; font-size:inherit; font-family:inherit; font-weight:inherit; line-height:inherit; letter-spacing:inherit; }
.si-feature-card :where(.et_pb_blurb_description) { color:#3d677d; font-size:14px; }
.si-feature-card p { color:inherit; font-size:inherit; }
.si-native .si-feature-card p { margin-top:10px; }
.si-native .si-feature-card .et_pb_blurb_description p::after { content:'  →'; color:#d87910; font-weight:700; }
/* Sidebar gradients are saved in the native Divi Background controls. */
.si-native .si-sidebar-card { border:1px solid #cfe3e9; border-top:4px solid #f59321; border-radius:22px; padding:32px; box-shadow:0 12px 30px rgba(6,34,62,.06); text-align:left; }
.si-sidebar-card h2 { color:#06223e; font-size:30px; line-height:1.2; }
.si-sidebar-card :where(h2 span) { color:inherit !important; font-size:inherit; line-height:inherit; }
.si-sidebar-card :where(.et_pb_promo_description > div) { color:#3d677d; font-size:15px; line-height:1.8; }
.si-sidebar-card p { color:inherit; font-size:inherit; line-height:inherit; }
.si-sidebar-card :where(p span,p strong) { color:inherit !important; font-size:inherit; line-height:inherit; }
.si-native .si-sidebar-card .et_pb_button { margin-top:22px; white-space:normal; text-align:center; }
:where(.si-native .si-sidebar-card) .et_pb_button { line-height:1.5 !important; }
:where(.si-native) .si-content { font-size:16px; line-height:1.85; }
:where(.si-native) .si-content :where(h2,h3) { line-height:1.25; }
.si-native .si-content li { margin-bottom:12px; }
:where(.si-native) .si-content :where(a) { color:#08647a; }
:where(.si-native .si-featured-image) { margin-bottom:32px !important; }
.si-native .si-featured-image .et_pb_image_wrap { display:block; }
.si-native .si-featured-image img { display:block; width:100%; height:auto; border-radius:18px; }
.si-native .si-page-title h1 { overflow-wrap:break-word; }
@media(max-width:980px){
 .si-native .si-native-menu .et_pb_menu__logo img { height:58px; max-height:58px; }
 .si-native .si-sidebar-card { margin-top:12px; }
}
@media(max-width:767px){
 .si-native .si-native-header .et_pb_row { width:calc(100% - 36px); }
 .si-native .si-native-menu .et_pb_menu__logo img { height:50px; max-height:50px; }
 .si-native .et_pb_row:has(> .et_pb_column > .si-feature-card) { grid-template-columns:1fr; gap:24px; }
 .si-native .si-feature-card .et_pb_blurb_container { padding:22px; }
 .si-feature-card h4 { font-size:20px; }
 .si-native .si-sidebar-card { padding:26px; }
 .si-sidebar-card h2 { font-size:28px; }
 /* Page-title typography is consolidated in the final phone rule. */
}

/* Final article readability and duplicate-title cleanup. */
:where(.si-native) .si-content :where(p) { line-height:inherit; }
/* Temporary safeguard for known legacy paragraph line-height attributes. */
.postid-239.si-native .si-content p[style] { line-height:inherit !important; }
.si-native .si-content .et_pb_text_inner { overflow-wrap:break-word; }
.single.si-native article.et_pb_post:has(.si-page-hero) > .et_post_meta_wrapper:first-child { display:none; }
.single.si-native #main-content > .container:has(.si-page-hero) { padding-top:0; }
.postid-239.si-native .si-content form.cff-form:not(:has(input:not([type="hidden"]),select,textarea,button)) { display:none; }
@media(max-width:767px){ .si-native .si-content img.alignright,.si-native .si-content img.alignleft { float:none; display:block; margin:0 auto 24px; max-width:100%; } }

/* Keep article titles and columns comfortable on phones. */
.single.si-native #main-content > .container:has(.si-page-hero) { width:100%; max-width:1180px; }
@media(max-width:767px){ .si-page-title :where(h1) { font-size:clamp(30px,8vw,40px); line-height:1.2; } }
.si-native .si-post-card { border:0; border-radius:0; overflow:visible; }
.si-native .si-post-card .et_pb_post { border:1px solid #d7e6eb; border-radius:18px; overflow:hidden; box-shadow:0 8px 22px rgba(6,34,62,.05); }


/* Native Text Body controls: preserve the existing home paragraph defaults. */
.si-display :where(.et_pb_text_inner) { color:#49646e; font-size:19px; line-height:1.7; }
.si-section-title :where(.et_pb_text_inner:has(p)) { color:#3d677d; font-size:17px; line-height:1.4; }
.si-native-wake-card :where(.et_pb_text_inner) { color:#06223e; line-height:1.4; }
.si-display p,.si-section-title p,.si-native-wake-card p { color:inherit; font-size:inherit; line-height:inherit; }
@media(max-width:767px){ .si-display :where(.et_pb_text_inner) { font-size:17px; } }
