/* caret care marketing site: the header, footer, invite dialog and article layout every page shares.
   Matches the WordPress global header (Elementor 6292), footer (266), invite popup (Code Snippets #84) and the
   single-post styling (#108, WPCode 7600). Class names start with ccs- so page styles never collide with them. */
:root { --ccs-navy: #0B1F3A; --ccs-navy-mid: #122848; --ccs-coral: #E8825A; --ccs-teal: #1A8B74; --ccs-footer-link: #2C8A8F; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fff; overflow-x: hidden; }
.ccs-skip { position: absolute; left: -9999px; top: 0; z-index: 100; background: #fff; color: var(--ccs-navy); padding: 10px 16px; }
.ccs-skip:focus { left: 12px; top: 12px; }
main:focus { outline: none; }

/* Header: navy bar, 60px, in the page flow above the hero (as on WordPress). */
.ccs-header { background: var(--ccs-navy); position: relative; z-index: 20; }
.ccs-bar { display: flex; align-items: center; justify-content: space-between; height: 60px; padding: 0 max(20px, env(safe-area-inset-right, 0px)) 0 max(20px, env(safe-area-inset-left, 0px)); max-width: 1240px; margin: 0 auto; box-sizing: border-box; }
.ccs-logo { display: block; width: 142px; line-height: 0; }
.ccs-logo img { width: 142px; height: auto; display: block; }
.ccs-nav { display: flex; align-items: center; }
.ccs-nav a { font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-size: 13.5px; font-weight: 400; color: rgba(255,255,255,0.55); text-decoration: none; padding: 13px 20px; position: relative; transition: color .2s; }
.ccs-nav a:hover, .ccs-nav a[aria-current="page"] { color: #fff; }
.ccs-bar-right { display: flex; align-items: center; gap: 8px; }
.ccs-cta { font-family: 'Inter', system-ui, sans-serif; font-size: 12px; font-weight: 500; letter-spacing: 0.02em; color: #fff !important; background: var(--ccs-coral); border-radius: 10px; padding: 12px 20px; text-decoration: none; white-space: nowrap; line-height: 1.2; }
.ccs-cta:hover { filter: brightness(1.05); }
.ccs-menu { display: none; background: none; border: 0; color: #fff; padding: 10px; cursor: pointer; min-width: 44px; min-height: 44px; }
.ccs-menu svg { width: 24px; height: 24px; display: block; }
.ccs-header a:focus-visible, .ccs-header button:focus-visible, .ccs-footer a:focus-visible { outline: 2px solid #E8832A; outline-offset: 3px; }
@media (max-width: 1024px) {
  .ccs-nav { display: none; position: absolute; top: 60px; left: 0; right: 0; flex-direction: column; align-items: stretch; background: var(--ccs-navy-mid); padding: 8px 0; border-top: 1px solid rgba(255,255,255,0.08); }
  .ccs-nav.open { display: flex; }
  .ccs-nav a { padding: 14px 24px; }
  .ccs-menu { display: block; }
}
@media (max-width: 400px) { .ccs-cta { padding: 10px 12px; } .ccs-logo, .ccs-logo img { width: 118px; } }

/* Footer */
.ccs-footer { background: var(--ccs-navy); color: #fff; }
.ccs-footer-inner { max-width: 1240px; margin: 0 auto; box-sizing: border-box; padding: 28px max(24px, env(safe-area-inset-right, 0px)) 24px max(24px, env(safe-area-inset-left, 0px)); display: grid; grid-template-columns: 1fr auto; gap: 18px 24px; align-items: end; }
.ccs-footer-logo { display: block; width: 203px; grid-column: 1 / -1; padding-left: 30px; line-height: 0; }
.ccs-footer-logo img { width: 203px; height: auto; display: block; }
.ccs-legal { list-style: none; margin: 0; padding: 0 0 0 85px; display: grid; grid-template-columns: repeat(3, max-content); gap: 4px 24px; grid-column: 1 / -1; }
.ccs-legal a { font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-style: italic; font-size: 17px; line-height: 1.6; color: var(--ccs-footer-link); text-decoration: none; }
.ccs-legal a:hover { color: #6FD8BF; }
.ccs-copyright { font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-size: 13px; color: #fff; margin: 0; }
.ccs-linkedin { display: inline-flex; width: 36px; height: 36px; align-items: center; justify-content: center; background: #1477B8; border-radius: 4px; }
.ccs-linkedin svg { width: 18px; height: 18px; fill: #fff; }
@media (max-width: 820px) { .ccs-legal { padding-left: 0; grid-template-columns: repeat(2, max-content); } .ccs-footer-logo { padding-left: 0; } }
@media (max-width: 480px) { .ccs-legal { grid-template-columns: minmax(0, 1fr); } .ccs-legal a { font-size: 15px; } }

/* WordPress fixes the designed pages relied on (Code Snippets #130): sections show at once instead of fading in, and
   How It Works' stage tabs keep their line height. */
.reveal, [class*="reveal-delay"] { opacity: 1 !important; transform: none !important; transition: none !important; animation: none !important; }
.stage-pill { line-height: 1.25 !important; padding-top: 10px; padding-bottom: 10px; height: auto !important; }
.stage-pill .stage-pill-num, .stage-pill .stage-pill-name { display: block; line-height: 1.3 !important; }
.stage-pill .stage-pill-num { margin-bottom: 2px; }
.stage-title { line-height: 1.2 !important; margin-bottom: 16px !important; }

/* Articles (Code Snippets #108, WPCode 7600): Poppins teal headings, Nunito gray body, 820px column. */
.ccs-article { max-width: 820px; margin: 0 auto; padding: 72px 20px 64px; box-sizing: border-box; }
.ccs-article-title { font-family: 'Poppins', sans-serif; font-weight: 400; color: #2c8a8f; font-size: clamp(30px, 3.4vw, 44px); line-height: 1.3; margin: 0 0 28px; }
.ccs-article-body p, .ccs-article-body li { font-family: 'Nunito', sans-serif; font-size: 20px; line-height: 1.6; color: #6b7280; font-weight: 400; }
.ccs-article-body p { margin: 0 0 26px; }
.ccs-article-body ul, .ccs-article-body ol { margin: 0 0 26px; padding-left: 1.4em; }
.ccs-article-body h2 { font-family: 'Poppins', sans-serif; font-weight: 500; color: #2c8a8f; font-size: 26px; line-height: 1.35; margin: 44px 0 14px; }
.ccs-article-body h3 { font-family: 'Poppins', sans-serif; font-weight: 500; color: #14284b; font-size: 21px; line-height: 1.4; margin: 32px 0 10px; }
.ccs-article-body a { color: #2c8a8f; text-decoration: underline; text-underline-offset: 3px; }
.ccs-article-body strong { color: #4b5563; }
.ccs-article-body table { border-collapse: collapse; width: 100%; margin: 0 0 26px; font-family: 'Nunito', sans-serif; font-size: 17px; display: block; overflow-x: auto; }
.ccs-article-body th { color: #14284b; background: #f3f6f8; font-weight: 600; }
.ccs-article-body td { color: #374151; font-weight: 400; }
.ccs-article-body th, .ccs-article-body td { border: 1px solid #dde3e8; padding: 10px 12px; text-align: left; vertical-align: top; }
.ccs-article-body figure { margin: 0 0 26px; }
.ccs-related { border-top: 1px solid #dde3e8; margin-top: 48px; padding-top: 28px; }
.ccs-related h2 { font-family: 'Poppins', sans-serif; font-weight: 500; color: #14284b; font-size: 22px; margin: 0 0 14px; }
.ccs-related ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.ccs-related a { color: #14284b; font-family: 'Poppins', sans-serif; font-size: 20px; line-height: 1.35; font-weight: 600; text-decoration: none; }
.ccs-related a:hover { color: #1a8b74; }
@media (max-width: 600px) { .ccs-article { padding-top: 48px; } .ccs-article-body p, .ccs-article-body li { font-size: 18px; } .ccs-article-body h2 { font-size: 22px; } }

/* Request an invite: the dialog (Code Snippets #84) and the form (Gravity Forms 20). */
.ccs-dialog { position: fixed; inset: 0; margin: auto; height: fit-content; width: min(560px, calc(100vw - 32px)); max-height: calc(100vh - 48px); overflow: auto; border: 0; border-radius: 14px; padding: 28px 28px 20px; box-shadow: 0 20px 60px rgba(0,0,0,.25); background: #fff; color: #1d1d1f; box-sizing: border-box; }
.ccs-dialog::backdrop { background: rgba(17,17,20,.55); }
.ccs-dialog h2 { margin: 0 0 8px; padding-right: 40px; font: 700 1.5rem/1.2 'Plus Jakarta Sans', system-ui, sans-serif; color: #1d1d1f; }
.ccs-dialog .ccs-intro { margin: 0 0 18px; font: 400 .98rem/1.5 'Plus Jakarta Sans', system-ui, sans-serif; color: #3a3a3c; }
.ccs-close { position: absolute; top: 10px; right: 12px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; font-size: 28px; line-height: 1; cursor: pointer; color: #3a3a3c; }
.ccs-close:hover, .ccs-close:focus-visible { background: #f0f0f2; }
@media (max-width: 480px) { .ccs-dialog { padding: 24px 16px 16px; } }
.ccs-form { font-family: 'Plus Jakarta Sans', system-ui, sans-serif; color: #1d1d1f; }
.ccs-form .f { margin: 0 0 16px; border: 0; padding: 0; min-width: 0; }
.ccs-form .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 480px) { .ccs-form .row2 { grid-template-columns: 1fr; } }
.ccs-form label, .ccs-form legend { display: block; font-weight: 600; font-size: 15px; margin: 0 0 6px; padding: 0; }
.ccs-form .req { color: #B4532E; }
.ccs-form .hint { font-size: 13.5px; color: #5A6475; margin: -2px 0 6px; line-height: 1.4; }
.ccs-form input[type=text], .ccs-form input[type=email], .ccs-form select, .ccs-form textarea { width: 100%; box-sizing: border-box; font: 400 16px/1.4 'Plus Jakarta Sans', system-ui, sans-serif; padding: 10px 12px; min-height: 44px; border: 1px solid #C9CED6; border-radius: 8px; background: #fff; color: #1d1d1f; }
.ccs-form textarea { min-height: 90px; resize: vertical; }
.ccs-form input:focus, .ccs-form select:focus, .ccs-form textarea:focus { outline: 2px solid #1A8B74; outline-offset: 1px; border-color: #1A8B74; }
.ccs-form .opt { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: 15px; margin: 0 0 6px; cursor: pointer; line-height: 1.4; }
.ccs-form .opt input { width: 20px; height: 20px; margin: 1px 0 0; flex: none; accent-color: #1A8B74; }
.ccs-form .lic { display: grid; grid-template-columns: 110px 1fr 44px; gap: 8px; margin: 0 0 8px; align-items: center; }
.ccs-form .lic-remove { width: 44px; height: 44px; border: 1px solid #C9CED6; border-radius: 8px; background: #fff; cursor: pointer; font-size: 20px; color: #3a3a3c; }
.ccs-form .lic-add { background: none; border: 0; color: #167560; font: 600 15px 'Plus Jakarta Sans', system-ui, sans-serif; padding: 10px 0; cursor: pointer; min-height: 44px; }
.ccs-form .err { color: #B4532E; font-size: 14px; margin: 6px 0 0; }
.ccs-form [aria-invalid="true"] { border-color: #B4532E !important; }
.ccs-form .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ccs-submit { width: 100%; min-height: 48px; border: 0; border-radius: 8px; background: #1A8B74; color: #fff; font: 600 16px 'Plus Jakarta Sans', system-ui, sans-serif; cursor: pointer; margin-top: 8px; }
.ccs-submit:hover { filter: brightness(1.05); }
.ccs-submit[disabled] { opacity: .7; cursor: progress; }
.ccs-form-status { margin: 12px 0 0; font-size: 15px; line-height: 1.5; color: #B4532E; }
.ccs-done h3 { font: 700 1.25rem/1.3 'Plus Jakarta Sans', system-ui, sans-serif; margin: 0 0 8px; color: #1d1d1f; }
.ccs-done p { font: 400 1rem/1.55 'Plus Jakarta Sans', system-ui, sans-serif; margin: 0 0 10px; color: #3a3a3c; }
.ccs-nl-status { margin-top: 12px; font-size: .95rem; line-height: 1.4; color: #cfd6e4; }
.ccs-nl-status.is-ok { color: #8fd1b0; }
.ccs-nl-status.is-err { color: #f2b8a2; }
