/* Internal pages keep the existing Elementor/plugin layout and a light base.
   The marketing styles and audio/form scripts load on the front page only. */
html { color-scheme: light; background: #fff; }
body { margin: 0; background: #fff; color: #111; }
body.cube-client-area {
  min-height: 100vh; font-family: Arial, Helvetica, sans-serif;
  font-size: 16px; line-height: 1.5;
}
.cube-client-area .cube-login-card,
.cube-client-area .cube-login-card h2,
.cube-client-area .cube-login-logo-text,
.cube-client-area .cube-login-card label { color: #111; }
.cube-client-area .cube-login-card { background: #fff; box-sizing: border-box; }
.cube-client-area .cube-login-card input[type="text"],
.cube-client-area .cube-login-card input[type="password"] {
  background: #fff; color: #111; -webkit-text-fill-color: #111;
}
.cube-client-area .cube-login-card input[type="submit"] {
  background: #111; color: #fff; -webkit-text-fill-color: #fff;
}
/* Login screen only: full-height pale backdrop, centered card and supplied mark.
   The authenticated customer dashboard does not contain this login wrapper. */
html:has(body.cube-client-area .cube-login-wrapper),
body.cube-client-area:has(.cube-login-wrapper) { background: #f7f7f7; }
.cube-client-area .cube-login-wrapper {
  min-height: 100vh; min-height: 100svh; width: 100%; box-sizing: border-box;
  display: flex; align-items: center; justify-content: center;
  margin: 0; padding: clamp(24px, 4vh, 48px) 20px; background: #f7f7f7;
}
.cube-client-area .cube-login-logo .cube-client-login-logo {
  display: block; width: 76px; height: 76px; max-width: 100%;
  object-fit: contain; margin: 0 auto;
}
/* Visual fallback for a plugin that renders outside standard content filters. */
.cube-client-area .cube-login-wrapper .cube-login-logo-text {
  width: 76px; height: 76px; margin: 0 auto; overflow: hidden;
  text-indent: -9999px; white-space: nowrap;
  background: url('cube-logo-registered-black.png') center / contain no-repeat;
}
@media (max-width: 480px) {
  .cube-client-area .cube-login-wrapper { padding: 24px 16px; }
}
/* Only the default theme template uses this small header/content layout. */
.cube-internal-page > .site-header { background: #fff; border-bottom: 1px solid #e5e5e5; }
.cube-internal-page > .site-header .header-inner {
  max-width: 1120px; margin: auto; padding: 20px 24px;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.cube-internal-page > .site-header .brand { display: inline-flex; }
.cube-internal-page > .site-header .brand img { filter: invert(1); width: 39px; height: 39px; }
.cube-internal-page > .site-header .button {
  background: #111; color: #fff; padding: 12px 18px;
  border-radius: 6px; text-decoration: none; font: 600 14px/1.4 sans-serif;
}
.cube-internal-page > .wp-content-page {
  max-width: 960px; margin: 48px auto; padding: 0 24px;
  font-family: Arial, sans-serif; font-size: 16px; line-height: 1.7;
}
.cube-internal-page > .wp-content-page h1 { font-size: clamp(28px, 5vw, 44px); line-height: 1.2; }
.cube-internal-page > .wp-content-page img { max-width: 100%; height: auto; }
@media (max-width: 480px) {
  .cube-client-area .cube-login-card { box-sizing: border-box; padding: 28px 24px; }
  .cube-internal-page > .site-header .header-inner { padding: 16px 20px; gap: 12px; }
}
