/* One shared visual language for the home and exterior-cleaning pages. */
:root { --ck-ink: #10243d; --ck-muted: #455f74; --ck-blue: #2f70aa; --ck-powder: #edf6fc; --ck-line: #cbdde9; }
.shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.ck-ribbon { background: #10243d; color: #e1edf7; font-size: .8125rem; }
.ck-ribbon .shell { min-height: 34px; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.ck-site-header { position: sticky; top: 0; z-index: 40; padding: 0; border-bottom: 1px solid #dce9f4; background: #fffffff5; backdrop-filter: blur(16px); }
.ck-site-header .header-inner { display: flex; flex-wrap: nowrap; min-height: 82px; gap: 24px; padding-block: 12px; }
.ck-site-header .brand, .ck-site-footer .brand { display: inline-flex; flex: 0 0 auto; gap: 12px; align-items: center; text-decoration: none; }
.ck-site-header .brand-mark, .ck-site-footer .brand-mark { display: grid; place-items: center; flex: 0 0 auto; width: 46px; height: 46px; border-radius: 14px; font-size: 18px; font-weight: 800; color: white; background: linear-gradient(145deg, #74b5e7, #397db9); box-shadow: 0 8px 24px #488cc521; }
.ck-site-header .brand-copy, .ck-site-footer .brand-copy { display: grid; line-height: 1.2; }
.ck-site-header .brand-copy strong, .ck-site-footer .brand-copy strong { font-size: 15px; letter-spacing: -.01em; white-space: nowrap; }
.ck-site-header .brand-copy small, .ck-site-footer .brand-copy small { display: block; margin-top: 5px; color: #536f86; font-size: 12px; letter-spacing: .025em; text-transform: none; }
.ck-site-header .site-nav { display: flex; gap: 22px; align-items: center; margin-left: auto; }
.ck-site-header .site-nav a { padding-block: 10px; color: #43576d; font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.ck-site-header .site-nav a:hover, .ck-site-header .site-nav a[aria-current] { color: #2f70aa; text-decoration: underline; text-underline-offset: 6px; }
.ck-site-header .button-small { display: inline-flex; min-height: 46px; padding: 10px 18px; border: 0; border-radius: 999px; background: #dceefe; color: #10243d; font-size: 14px; font-weight: 700; white-space: nowrap; box-shadow: none; text-decoration: none; }
.ck-site-header .button-small:hover { background: #2f70aa; color: white; }
.ck-menu { margin-left: auto; }
/* A click/keyboard disclosure, not a hover-only menu. */
.ck-services-menu { position: relative; }
.ck-services-menu summary { display: flex; align-items: center; gap: 8px; min-height: 44px; color: #43576d; font-size: 14px; font-weight: 600; cursor: pointer; list-style: none; white-space: nowrap; }
.ck-services-menu summary::-webkit-details-marker { display: none; }
.ck-services-menu summary span { transition: transform .15s ease; }
.ck-services-menu[open] summary span { transform: rotate(180deg); }
.ck-services-menu[open] summary { color: #2f70aa; }
.ck-services-links { position: absolute; top: calc(100% + 8px); left: 0; width: 280px; max-height: calc(100dvh - 120px); overflow-y: auto; padding: 8px; background: #fff; border: 1px solid #dce9f4; border-radius: 14px; box-shadow: 0 16px 40px #10243d20; }
.ck-site-header .ck-services-links a { display: flex; align-items: center; min-height: 46px; padding: 10px 14px; border-radius: 7px; white-space: normal; }
.ck-site-header .ck-services-links a:hover, .ck-site-header .ck-services-links a:focus-visible, .ck-site-header .ck-services-links a[aria-current] { background: #edf6fc; color: #2f70aa; }
.ck-site-header .ck-services-links a:last-child { margin-top: 6px; border-top: 1px solid #dce9f4; border-radius: 0 0 7px 7px; }
@media (prefers-reduced-motion: reduce) { .ck-services-menu summary span { transition: none; } }
.ck-menu > nav { padding: 16px; border-color: #e5edf3; box-shadow: 0 12px 32px #10243d14; }
.ck-menu .ck-mobile-services > summary { justify-content: space-between; min-height: 48px; padding: 12px; border: 0; background: transparent; border-radius: 7px; font-size: 15px; font-weight: 600; }
.ck-mobile-services[open] > summary span { transform: rotate(180deg); }
.ck-mobile-service-links { margin: 0 0 10px 12px; padding-left: 8px; border-left: 2px solid #e4eff7; }
.ck-menu .ck-mobile-service-links a { min-height: 44px; padding: 11px 12px; font-size: 14px; }
.ck-menu .ck-mobile-service-links a[aria-current] { background: #edf6fc; color: #2f70aa; font-weight: 700; }
.ck-menu .ck-mobile-service-links a:last-child { margin-top: 6px; border-top: 1px solid #e5edf3; border-radius: 0; }
.ck-menu > nav > a { min-height: 48px; }
.ck-site-header .ck-menu > nav > a:last-child { margin-top: 16px; padding: 14px 10px; background: #10243d; color: #fff; font-weight: 700; text-align: center; border-radius: 10px; }
.ck-site-header .ck-menu > nav > a:last-child:hover { background: #2f70aa; }
.button { white-space: normal; text-align: center; line-height: 1.4; }
:where(a, summary, button):focus-visible { outline: 3px solid #377fb7; outline-offset: 4px; }
[id] { scroll-margin-top: 104px; }

.ck-site-footer .ck-company-details { margin-top: 16px; }
.ck-site-footer .ck-company-details p { margin: 0; color: #bacbda; font-size: .8125rem; line-height: 1.7; }
.ck-company-details p:first-child { display: flex; flex-wrap: wrap; gap: 2px 16px; margin-bottom: 4px; }
.ck-company-details strong { color: #dbe8f3; font-weight: 600; }
/* Supporting photography shares one treatment; the hero keeps its signature corner. */
.ck-section-intro h2 { margin: 0; color: #10243d; font-size: clamp(32px, 3.8vw, 48px); line-height: 1.12; letter-spacing: -.035em; text-wrap: balance; }
.ck-section-intro > p:not(.eyebrow) { margin: 18px 0 0; color: #455f74; font-size: 1rem; line-height: 1.65; }
.ck-home .faq-section { background: #f5f9fc; }

/* The same compact, personal introduction on both service journeys. */
.ck-team-layout { display: grid; grid-template-columns: .7fr 1.3fr; grid-template-areas: 'portraits title' 'portraits story'; gap: 20px 72px; align-items: start; }
.ck-team-layout .ck-section-intro { grid-area: title; align-self: end; }
.ck-team-portraits { grid-area: portraits; align-self: center; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; width: 100%; max-width: 360px; margin: 8px auto; }
.ck-team-portraits figure { min-width: 0; position: relative; margin: 0; padding: 7px 7px 10px; transform: rotate(-3deg); background: white; box-shadow: 0 10px 26px #2f54721a; }
.ck-team-portraits figure:nth-child(2) { margin-top: 30px; transform: rotate(3deg); }
.ck-team-portraits img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.ck-team-portraits figcaption { padding: 10px 5px 0; color: #10243d; font: italic 1.5rem/1.1 'Newsreader', Georgia, serif; }
.ck-team-story { grid-area: story; max-width: 36rem; }
.ck-team-story p { margin: 0 0 18px; color: #455f74; font-size: 1rem; line-height: 1.65; }

/* A shorter footer: service choices, reassurance and ways to reach the team. */
.ck-site-footer { display: block; padding: 44px 0 22px; background: #0b1d30; color: #c2d2df; text-align: left; }
.ck-footer-main { display: grid; grid-template-columns: 1.3fr .8fr 1fr; gap: 32px; align-items: start; }
.ck-site-footer .brand-copy strong { color: white; }
.ck-site-footer .brand-copy small { color: #bacbda; }
.ck-footer-brand p { max-width: 360px; margin: 18px 0 0; font-size: .875rem; line-height: 1.7; color: #bacbda; }
.ck-footer-nav, .ck-footer-contact { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.ck-site-footer .ck-footer-nav a, .ck-site-footer .ck-footer-contact a { display: inline-block; padding: 9px 0; color: #dbe8f3; font-size: .875rem; line-height: 1.5; text-decoration: none; overflow-wrap: anywhere; }
.ck-site-footer .ck-footer-contact .ck-footer-quote { color: white; font-weight: 700; text-decoration: underline; text-underline-offset: 5px; }
.ck-site-footer a:hover { color: white; text-decoration: underline; text-underline-offset: 5px; }
.ck-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; margin-top: 30px; padding-top: 18px; border-top: 1px solid #ffffff26; }
.ck-footer-bottom p, .ck-footer-bottom a { margin: 0; color: #bacbda; font-size: .8125rem; line-height: 1.6; }
.ck-site-footer :where(a):focus-visible { outline-color: #a9d7fb; }

/* Keep the quote first; make phone/email alternatives easy to scan and tap. */
.ck-footer-contact { min-width: 0; gap: 6px; }
.ck-site-footer .ck-footer-contact .ck-footer-quote { display: inline-flex; align-items: center; min-height: 44px; }
.ck-contact-link, .ck-site-footer .ck-footer-contact .ck-contact-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; max-width: 100%; padding: 8px 0; font-size: .875rem; line-height: 1.5; text-decoration: none; }
.ck-contact-link svg { flex: 0 0 20px; color: #2f70aa; }
.ck-contact-copy { min-width: 0; }
.ck-contact-label, .ck-contact-value { display: block; }
.ck-contact-label { font-size: .75rem; font-weight: 600; }
.ck-contact-value { overflow-wrap: anywhere; }
.ck-site-footer .ck-contact-link svg, .ck-site-footer .ck-contact-label { color: #a9d7fb; }
.ck-contact-link:hover .ck-contact-value { text-decoration: underline; text-underline-offset: 4px; }
.ck-site-footer .ck-contact-link:hover { text-decoration: none; }
.ck-contact-link:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; border-radius: 3px; }
.ck-error-contacts { display: flex; flex-direction: column; align-items: flex-start; width: fit-content; max-width: 100%; margin-inline: auto; gap: 6px; text-align: left; }

/* Small, self-contained social links: no widgets, tracking scripts or icon fonts. */
.ck-social-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; color: #2f70aa; }
.ck-social-links a { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px 12px; border: 1px solid currentColor; border-radius: 10px; color: inherit; font-size: .8125rem; font-weight: 600; line-height: 1.4; text-decoration: none; transition: background-color .15s ease, color .15s ease; }
.ck-social-links svg { flex: 0 0 20px; }
.ck-social-links a:hover { background: #e7f3fc; color: #163f62; text-decoration: none; }
.ck-social-links a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.ck-site-footer .ck-social-links { color: #a9d7fb; }
.ck-site-footer .ck-social-links a { border-color: #a9d7fb40; }
.ck-site-footer .ck-social-links a:hover { background: #a9d7fb14; color: white; text-decoration: none; }
.ck-error-footer .ck-social-links { justify-content: center; margin: 16px 0; }
@media (prefers-reduced-motion: reduce) { .ck-social-links a { transition: none; } }

@media (max-width: 1100px) {
  .ck-site-header .site-nav, .ck-site-header .header-inner > .button { display: none; }
  .ck-site-header .ck-menu { display: block; }
}
@media (max-width: 980px) {
  .ck-ribbon .shell { justify-content: center; }
  .ck-ribbon .shell span:last-child { display: none; }
  .ck-team-layout { grid-template-columns: 1fr; grid-template-areas: 'title' 'portraits' 'story'; gap: 28px; }
  .ck-team-layout .ck-section-intro { text-align: center; }
  .ck-team-layout .eyebrow { justify-content: center; }
  .ck-team-story { margin-inline: auto; }
  .ck-footer-main { grid-template-columns: 1fr 1fr; }
  .ck-footer-brand { grid-column: 1/-1; }
}
@media (max-width: 640px) {
  .shell { width: calc(100% - 32px); }
  .ck-ribbon { display: none; }
  .ck-site-header .header-inner { min-height: 76px; padding-block: 10px; gap: 12px; }
  .ck-site-header .brand-copy small { display: none; }
  .ck-site-header .brand-copy strong { font-size: 14px; }
  .ck-site-header .brand-mark { width: 42px; height: 42px; }
  .ck-team-portraits { max-width: 300px; }
  .ck-site-footer { padding-block: 32px 22px; }
  .ck-footer-main { gap: 20px; grid-template-columns: 1fr; }
  .ck-footer-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
  .ck-footer-contact { border-top: 1px solid #ffffff26; padding-top: 14px; }
  .ck-footer-bottom { margin-top: 22px; gap: 8px; flex-direction: column; }
}

/* Links to the service guide and gallery without lengthening the homepage. */
.ck-menu nav { max-height: calc(100dvh - 110px); overflow-y: auto; }
