/* ================================================
   Crafty Penguins Dark Theme - Orange Accent
   ================================================ */

@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Space+Mono:wght@400;700&display=swap');

/* ================================================
   CSS VARIABLES - Orange instead of Teal
   ================================================ */
:root {
  --cp-ink: #0a0d14;
  --cp-deep: #0f1422;
  --cp-panel: #141926;
  --cp-border: #1e2740;
  --cp-accent: #f58024;
  --cp-accent-hover: #e06d10;
  --cp-accent-light: rgba(245, 128, 36, 0.1);
  --cp-amber: #ffb830;
  --cp-slate: #8493b8;
  --cp-muted: #4d5a7a;
  --cp-white: #eef1f8;
  --cp-success: #22c55e;
}

/* Base font for whole document (includes Odoo chrome before #wrapwrap). */
body.cp-theme-dark {
  font-family: "Roboto", "Plus Jakarta Sans", system-ui, sans-serif;
}

/* ================================================
   BASE STYLES
   Only apply when body has cp-theme-dark class (actual pages only)
   ================================================ */
body.cp-theme-dark #wrapwrap {
  background-color: var(--cp-ink) !important;
  color: var(--cp-white) !important;
  font-family: 'IBM Plex Sans', sans-serif !important;
  font-size: 16px;
  line-height: 1.6;
}

/* ================================================
   TYPOGRAPHY - Only when cp-theme-dark is active
   ================================================ */
body.cp-theme-dark #wrapwrap h1, body.cp-theme-dark #wrapwrap h2, body.cp-theme-dark #wrapwrap h3,
body.cp-theme-dark #wrapwrap h4, body.cp-theme-dark #wrapwrap h5, body.cp-theme-dark #wrapwrap h6 {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  color: var(--cp-white) !important;
  font-weight: 700;
}

body.cp-theme-dark #wrapwrap h1 { font-size: 2.5rem; line-height: 1.1; }
body.cp-theme-dark #wrapwrap h2 { font-size: 2rem; }
body.cp-theme-dark #wrapwrap h3 { font-size: 1.5rem; }

body.cp-theme-dark #wrapwrap p {
  color: var(--cp-slate) !important;
}

body.cp-theme-dark #wrapwrap a {
  color: var(--cp-accent) !important;
  text-decoration: none;
  transition: color 0.2s;
}

body.cp-theme-dark #wrapwrap a:hover {
  color: var(--cp-accent-hover) !important;
}

/* Site footer only — not mega-menu card <footer class="cp-mega-svc-card__foot"> */
body.cp-theme-dark #wrapwrap footer#bottom a,
body.cp-theme-dark #wrapwrap footer#bottom #footer a {
  color: var(--cp-slate) !important;
  text-decoration: none !important;
}

body.cp-theme-dark #wrapwrap footer#bottom a:hover,
body.cp-theme-dark #wrapwrap footer#bottom #footer a:hover {
  color: var(--cp-accent) !important;
}

/* ================================================
   HEADER / NAVIGATION
   ================================================ */
header#top {
  background: rgba(10, 13, 20, 0.95) !important;
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--cp-border) !important;
  position: sticky;
  top: 0;
  z-index: 1030;
  padding: 0 !important;
}

.cp-nav {
  position: relative;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.cp-nav__inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 2rem;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

/* Global Hero snippet pages: widen top nav + hero inner column (default .container caps ~1320px). */
body.cp-theme-dark:has(.cp-global-snippet[data-cp-global="shared_hero"]) .cp-nav__inner {
  max-width: min(1560px, 96vw);
}

body.cp-theme-dark .cp-global-snippet[data-cp-global="shared_hero"] > .o_not_editable .container {
  max-width: min(1560px, 96vw) !important;
  width: 100%;
}

.cp-nav__brand {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none !important;
}

.cp-nav__brand img {
  height: 36px;
  width: auto;
  display: block;
}

.cp-nav__links {
  display: flex;
  align-items: center;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  height: 64px;
}

.cp-nav__links > li {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
}

.cp-nav__link {
  font-family: 'Roboto', Helvetica, Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 700;
  color: var(--cp-slate) !important;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  text-decoration: none !important;
  padding: 0 1rem;
  height: 100%;
  display: flex;
  align-items: center;
  white-space: nowrap;
  transition: color 0.2s;
}

.cp-nav__link:hover,
.cp-nav__link:focus {
  color: var(--cp-accent) !important;
}

.cp-nav__chevron {
  font-size: 0.5rem;
  margin-left: 0.4rem;
  transition: transform 0.2s;
}

.cp-nav__cta {
  font-family: 'Roboto', Helvetica, Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  background: var(--cp-accent) !important;
  color: #fff !important;
  text-decoration: none !important;
  padding: 8px 20px;
  border-radius: 3px;
  white-space: nowrap;
  transition: background 0.2s, transform 0.15s;
  flex-shrink: 0;
}

.cp-nav__cta:hover {
  background: var(--cp-accent-hover) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(245, 128, 36, 0.35);
}

/* --- Dropdowns --- */
.cp-nav__dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  min-width: 220px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s, transform 0.2s;
  padding-top: 0;
  z-index: 1040;
}

.cp-nav__has-dropdown:hover > .cp-nav__dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.cp-nav__has-dropdown:hover .cp-nav__chevron {
  transform: rotate(180deg);
}

.cp-nav__dropdown-inner {
  background: var(--cp-panel);
  border: 1px solid var(--cp-border);
  border-radius: 4px;
  padding: 1rem 0;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
  display: flex;
  gap: 2rem;
}

.cp-nav__dropdown-col {
  display: flex;
  flex-direction: column;
  min-width: 180px;
}

.cp-nav__dropdown-heading {
  font-family: 'Roboto', Helvetica, Arial, sans-serif;
  font-size: 0.6rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--cp-accent);
  padding: 0.3rem 1.2rem 0.5rem;
}

.cp-nav__dropdown-link {
  font-family: 'Roboto', Helvetica, Arial, sans-serif;
  font-size: 0.85rem;
  color: var(--cp-slate) !important;
  text-decoration: none !important;
  padding: 0.4rem 1.2rem;
  transition: color 0.15s, background 0.15s;
}

.cp-nav__dropdown-link:hover {
  color: var(--cp-white) !important;
  background: rgba(245, 128, 36, 0.08);
}

/* --- Right section (CTA + user) --- */
.cp-nav__right {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-shrink: 0;
}

.cp-nav__user {
  display: flex;
  align-items: center;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.cp-nav__user-item {
  list-style: none;
}

.cp-nav__user-link {
  font-family: 'Roboto', Helvetica, Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 500;
  color: var(--cp-slate) !important;
  text-decoration: none !important;
  padding: 0.4rem 0.6rem;
  transition: color 0.2s;
  white-space: nowrap;
}

.cp-nav__user-link:hover {
  color: var(--cp-accent) !important;
}

.cp-nav__user .dropdown-menu {
  background: var(--cp-panel);
  border: 1px solid var(--cp-border);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.4);
}

.cp-nav__user .dropdown-menu .dropdown-item {
  color: var(--cp-slate);
  font-size: 0.85rem;
}

.cp-nav__user .dropdown-menu .dropdown-item:hover {
  background: rgba(245, 128, 36, 0.08);
  color: var(--cp-white);
}

/* --- Mobile toggle --- */
.cp-nav__toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
}

.cp-nav__toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--cp-slate);
  border-radius: 1px;
  transition: transform 0.2s, opacity 0.2s;
}

/* --- Mobile drawer --- */
.cp-nav__mobile {
  display: none;
  flex-direction: column;
  background: var(--cp-deep);
  border-top: 1px solid var(--cp-border);
  padding: 1rem 2rem 1.5rem;
}

.cp-nav__mobile.is-open {
  display: flex;
}

.cp-nav__mobile-link {
  font-family: 'Roboto', Helvetica, Arial, sans-serif;
  font-size: 0.75rem;
  color: var(--cp-slate) !important;
  text-decoration: none !important;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.7rem 0;
  border-bottom: 1px solid var(--cp-border);
}

.cp-nav__mobile-link:hover {
  color: var(--cp-accent) !important;
}

.cp-nav__mobile-cta {
  color: var(--cp-accent) !important;
  font-weight: 700;
  margin-top: 0.5rem;
  border-bottom: none;
}

/* --- Mobile drawer expandable sub-menus (e.g. Who We Are) --- */
.cp-nav__mobile-group {
  display: flex;
  flex-direction: column;
}

.cp-nav__mobile-sub-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: none;
  border: none;
  border-bottom: 1px solid var(--cp-border);
  border-radius: 0;
  -webkit-appearance: none;
  appearance: none;
  text-align: left;
  cursor: pointer;
}

.cp-nav__mobile-group .cp-nav__chevron {
  transition: transform 0.2s;
}

.cp-nav__mobile-group.is-open .cp-nav__chevron {
  transform: rotate(180deg);
}

.cp-nav__mobile-sub {
  display: none;
  flex-direction: column;
  padding-left: 0.9rem;
}

.cp-nav__mobile-group.is-open .cp-nav__mobile-sub {
  display: flex;
}

.cp-nav__mobile-sublink {
  font-family: 'Roboto', Helvetica, Arial, sans-serif;
  font-size: 0.72rem;
  color: var(--cp-slate) !important;
  text-decoration: none !important;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--cp-border);
}

.cp-nav__mobile-sublink:last-child {
  border-bottom: none;
}

.cp-nav__mobile-sublink:hover {
  color: var(--cp-accent) !important;
}

/* --- Responsive --- */
@media (max-width: 991px) {
  .cp-nav__links,
  .cp-nav__right {
    display: none !important;
  }
  .cp-nav__toggle {
    display: flex;
  }
}

/* ================================================
   BUTTONS
   ================================================ */
.btn-primary {
  font-family: 'Space Mono', monospace !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  background: var(--cp-accent) !important;
  border: none !important;
  color: var(--cp-white) !important;
  padding: 12px 28px !important;
  border-radius: 3px !important;
  transition: all 0.2s ease !important;
}

.btn-primary:hover {
  background: var(--cp-accent-hover) !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(245, 128, 36, 0.4);
}

.btn-secondary,
.btn-outline-primary {
  font-family: 'Space Mono', monospace !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  background: transparent !important;
  border: 1px solid var(--cp-accent) !important;
  color: var(--cp-accent) !important;
  padding: 12px 28px !important;
  border-radius: 3px !important;
}

.btn-secondary:hover,
.btn-outline-primary:hover {
  background: rgba(245, 128, 36, 0.1) !important;
}

/* ================================================
   CARDS
   ================================================ */
.card {
  background: var(--cp-panel) !important;
  border: 1px solid var(--cp-border) !important;
  border-radius: 6px !important;
  transition: all 0.3s ease;
}

.card:hover {
  border-color: rgba(245, 128, 36, 0.3) !important;
  transform: translateY(-3px);
}

.card-body {
  padding: 2rem !important;
}

.card-title {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  color: var(--cp-white) !important;
  font-weight: 700 !important;
}

.card-text {
  color: var(--cp-slate) !important;
}

/* ================================================
   SECTIONS & BACKGROUNDS
   ================================================ */
section {
  padding: 80px 0;
}

.bg-light {
  background: var(--cp-deep) !important;
}

.bg-white,
.bg-100,
.bg-200 {
  background: var(--cp-panel) !important;
}

.bg-dark {
  background: var(--cp-ink) !important;
}

.bg-primary {
  background: var(--cp-accent) !important;
}

/* ================================================
   FOOTER (page chrome only — Odoo uses <footer id="bottom">)
   Do not use bare "footer" or mega card footers inherit 60px padding and kill mega_nav.css.
   ================================================ */
#wrapwrap footer#bottom {
  background: var(--cp-deep) !important;
  border-top: 1px solid var(--cp-border) !important;
  padding: 60px 0 40px !important;
}

#wrapwrap footer#bottom #footer {
  background: var(--cp-deep) !important;
  padding: 0 !important;
  border-top: none !important;
}

#wrapwrap footer#bottom h5 {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  color: var(--cp-white) !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  margin-bottom: 1.5rem !important;
}

#wrapwrap footer#bottom p {
  color: var(--cp-muted) !important;
  font-size: 0.9rem !important;
  line-height: 1.7 !important;
}

#wrapwrap footer#bottom a {
  color: var(--cp-slate) !important;
  font-size: 0.9rem !important;
}

#wrapwrap footer#bottom a:hover {
  color: var(--cp-accent) !important;
}

#wrapwrap footer#bottom ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

#wrapwrap footer#bottom li {
  margin-bottom: 0.75rem;
}

#wrapwrap footer#bottom .o_footer_copyright,
#wrapwrap footer#bottom .o_footer_copyright_name {
  color: #fff !important;
}

#wrapwrap footer#bottom .o_footer_copyright a,
#wrapwrap footer#bottom .o_footer_copyright_name a {
  color: #fff !important;
}

#wrapwrap footer#bottom .o_footer_copyright a:hover,
#wrapwrap footer#bottom .o_footer_copyright_name a:hover {
  color: var(--cp-accent) !important;
}

/* ================================================
   TEXT UTILITIES - Only when cp-theme-dark is active
   ================================================ */
body.cp-theme-dark #wrapwrap .text-dark {
  color: var(--cp-white) !important;
}

body.cp-theme-dark #wrapwrap .text-muted {
  color: var(--cp-muted) !important;
}

body.cp-theme-dark #wrapwrap .text-secondary {
  color: var(--cp-slate) !important;
}

/* ================================================
   FORMS - Only when cp-theme-dark is active
   ================================================ */
body.cp-theme-dark .form-control,
body.cp-theme-dark input[type="text"],
body.cp-theme-dark input[type="email"],
body.cp-theme-dark input[type="password"],
body.cp-theme-dark input[type="search"],
body.cp-theme-dark textarea,
body.cp-theme-dark select {
  background: var(--cp-panel) !important;
  border: 1px solid var(--cp-border) !important;
  color: var(--cp-white) !important;
  border-radius: 3px !important;
  padding: 12px 16px !important;
}

body.cp-theme-dark .form-control:focus,
body.cp-theme-dark input:focus,
body.cp-theme-dark textarea:focus {
  border-color: var(--cp-accent) !important;
  box-shadow: 0 0 0 3px rgba(245, 128, 36, 0.15) !important;
  outline: none !important;
}

body.cp-theme-dark .form-control::placeholder,
body.cp-theme-dark input::placeholder {
  color: var(--cp-muted) !important;
}

/* ================================================
   BORDERS - Only when cp-theme-dark is active
   ================================================ */
body.cp-theme-dark #wrapwrap .border,
body.cp-theme-dark #wrapwrap .border-top,
body.cp-theme-dark #wrapwrap .border-bottom {
  border-color: var(--cp-border) !important;
}

/* ================================================
   DROPDOWNS - Only when cp-theme-dark is active
   ================================================ */
body.cp-theme-dark #wrapwrap .dropdown-menu,
body.cp-theme-dark .o_frontend_to_backend_nav .dropdown-menu {
  background: var(--cp-panel) !important;
  border: 1px solid var(--cp-border) !important;
  border-radius: 6px !important;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4) !important;
}

body.cp-theme-dark #wrapwrap .dropdown-item,
body.cp-theme-dark .o_frontend_to_backend_nav .dropdown-item {
  color: var(--cp-slate) !important;
  padding: 10px 20px !important;
}

body.cp-theme-dark #wrapwrap .dropdown-item:hover,
body.cp-theme-dark .o_frontend_to_backend_nav .dropdown-item:hover {
  background: var(--cp-border) !important;
  color: var(--cp-accent) !important;
}

/* ================================================
   MODALS - NOT scoped, keep editor modals default
   If you need dark modals on frontend, use a custom class
   ================================================ */

/* ================================================
   LIST CLEANUP - Only when cp-theme-dark is active
   ================================================ */
body.cp-theme-dark #wrapwrap nav ul,
body.cp-theme-dark #wrapwrap header ul,
body.cp-theme-dark #wrapwrap footer#bottom ul {
  list-style: none !important;
  padding-left: 0;
}

body.cp-theme-dark #wrapwrap li::marker {
  color: var(--cp-accent);
}

/* ================================================
   SCROLLBAR - Only when cp-theme-dark is active
   ================================================ */
body.cp-theme-dark::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

body.cp-theme-dark::-webkit-scrollbar-track {
  background: var(--cp-ink);
}

body.cp-theme-dark::-webkit-scrollbar-thumb {
  background: var(--cp-border);
  border-radius: 4px;
}

body.cp-theme-dark::-webkit-scrollbar-thumb:hover {
  background: var(--cp-muted);
}

/* ================================================
   SCROLL REVEAL ANIMATIONS
   ================================================ */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Scroll animations - only when cp-theme-dark is active */
body.cp-theme-dark #wrapwrap section:not(.cp-global-snippet) {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

body.cp-theme-dark #wrapwrap section.visible:not(.cp-global-snippet) {
  opacity: 1;
  transform: translateY(0);
}

/* Template preview fix - keep placeholders default color */
.o_website_page_templates_pane .placeholder {
  background: #e9ecef !important;
}

/* Card hover animations - only when cp-theme-dark is active */
body.cp-theme-dark #wrapwrap .card {
  transition: all 0.3s ease;
}

body.cp-theme-dark #wrapwrap .card:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

/* ================================================
   CP BOX SHADOW UTILITIES (avoid inline for Odoo bug)
   ================================================ */
.cp-shadow-lg {
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.4) !important;
}

.cp-shadow-accent {
  box-shadow: 0 10px 30px rgba(245, 128, 36, 0.4) !important;
}

.cp-shadow-sm {
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2) !important;
}

.cp-shadow-glow {
  box-shadow: 0 0 8px rgba(34, 197, 94, 1) !important;
}

.cp-shadow-dark {
  box-shadow: 0 32px 80px rgba(0, 0, 0, 0.6) !important;
}

.cp-shadow-quote {
  box-shadow: 0 8px 30px rgba(245, 128, 36, 0.3) !important;
}

.cp-shadow-btn {
  box-shadow: 0 4px 20px rgba(245, 128, 36, 0.4) !important;
}

/* ================================================
   SINGLE VERTICAL SCROLLBAR
   Odoo: html,body{height:100%}, #wrapwrap{flex column; min-height:100%}.
   website.scss .o_wanim_overflow_xy_hidden applies #wrapwrap{overflow-x:clip!important}
   (scroll animation fix). That pairs with overflow-y:visible → y becomes auto on
   #wrapwrap, so you get document scroll on html AND a second thumb on #wrapwrap.
   Fix: explicit scroll on html only; force #wrapwrap/main overflow visible with
   !important so bundle rules cannot reintroduce a nested scrollport.
   ================================================ */
html:has(body.cp-theme-dark) {
  overflow-x: clip;
  overflow-y: auto;
}
@supports not (overflow: clip) {
  html:has(body.cp-theme-dark) {
    overflow-x: hidden;
    overflow-y: auto;
  }
}

body.cp-theme-dark {
  overflow-x: visible !important;
  overflow-y: visible !important;
}

body.cp-theme-dark #wrapwrap,
body.cp-theme-dark #wrapwrap > main {
  overflow-x: visible !important;
  overflow-y: visible !important;
}

/* ================================================
   ODOO EDITOR - Always visible
   ================================================ */
.o_we_website_top_actions,
.o_website_preview,
.o_web_edit_menu,
.o_edit_website_container,
#oe_main_menu_navbar,
.o_main_navbar,
.o_we_toolbar,
.oe_overlay {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Legal/payment pages: Odoo paints #wrap white under the dark hero. */
#wrap:has(> .cp-legal-hero) {
  background: #0c0e13 !important;
}

#wrap:has(> .cp-legal-hero) .cp-legal-body p {
  color: #e8e3d8 !important;
}