:root {
  --engicad-bg: #f6f8f7;
  --engicad-surface: #ffffff;
  --engicad-ink: #1a2528;
  --engicad-muted: #667276;
  --engicad-line: #dce5e2;
  --engicad-primary: #007a5e;
  --engicad-primary-dark: #005c48;
  --engicad-accent: #45b06c;
  color-scheme: light;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  margin: 0;
  background: var(--engicad-bg);
  color: var(--engicad-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  line-height: 1.55;
  overflow-x: hidden;
}

a {
  color: var(--engicad-primary);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

a:hover {
  color: var(--engicad-primary-dark);
}

img,
video,
iframe {
  max-width: 100%;
  height: auto;
}

header,
.o_header_standard,
.o_header_affixed,
.navbar,
nav {
  background: #102023 !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  color: #eaf2f0;
}

.navbar,
.navbar .container,
header .container {
  min-height: 64px;
}

header div,
header ul,
header li,
header span,
header nav,
.o_header_standard div,
.o_header_standard ul,
.o_header_standard li,
.o_header_standard span {
  background-color: transparent !important;
}

.navbar a,
header a,
nav a {
  color: #eaf2f0 !important;
}

.navbar a:hover,
header a:hover,
nav a:hover {
  color: var(--engicad-primary) !important;
}

#wrapwrap,
#wrap,
main,
.oe_structure,
.o_website_animate,
.o_wsale_layout_main {
  background: var(--engicad-surface);
}

.container,
.container-fluid,
section > .row,
.oe_structure > .row {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(18px, 4vw, 40px);
  padding-right: clamp(18px, 4vw, 40px);
}

section,
.s_banner,
.s_text_block,
.s_title,
.s_features_grid,
.s_three_columns,
.s_call_to_action,
.s_picture {
  padding-top: clamp(34px, 6vw, 84px);
  padding-bottom: clamp(34px, 6vw, 84px);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--engicad-ink);
  letter-spacing: 0;
  line-height: 1.14;
  margin-top: 0;
}

h1 {
  font-size: clamp(2rem, 4vw, 4rem);
}

h2 {
  font-size: clamp(1.55rem, 2.6vw, 2.6rem);
}

p,
li,
td,
th,
label,
input,
textarea,
select,
button {
  font-size: 1rem;
}

p,
li {
  color: var(--engicad-muted);
}

.btn,
button,
input[type="submit"],
.o_default_snippet_text .btn {
  border-radius: 6px !important;
  border: 1px solid var(--engicad-primary) !important;
  background: var(--engicad-primary) !important;
  color: #fff !important;
  font-weight: 700;
  min-height: 42px;
  padding: 10px 16px;
}

.btn:hover,
button:hover,
input[type="submit"]:hover {
  background: var(--engicad-primary-dark) !important;
  border-color: var(--engicad-primary-dark) !important;
}

.card,
.o_wsale_product_grid_wrapper,
.s_pricelist_boxed,
.s_card,
.shadow {
  border: 1px solid var(--engicad-line) !important;
  border-radius: 8px !important;
  box-shadow: 0 12px 35px rgba(18, 37, 42, 0.08) !important;
}

table {
  width: 100%;
  border-collapse: collapse;
}

td,
th {
  border-bottom: 1px solid var(--engicad-line);
  padding: 12px;
  text-align: left;
}

footer {
  background: #102023 !important;
  color: #eaf2f0 !important;
}

footer a,
footer p,
footer li {
  color: #eaf2f0 !important;
}

@media (max-width: 720px) {
  .container,
  .container-fluid,
  section > .row,
  .oe_structure > .row {
    padding-left: 16px;
    padding-right: 16px;
  }

  .row {
    display: block;
  }

  section,
  .s_banner,
  .s_text_block,
  .s_title,
  .s_features_grid,
  .s_three_columns,
  .s_call_to_action,
  .s_picture {
    padding-top: 32px;
    padding-bottom: 32px;
  }
}

/* Minimal IA-readable theme: preserve Odoo HTML/content, simplify the visual layer. */
:root {
  --engicad-bg: #f5f8f6;
  --engicad-surface: #ffffff;
  --engicad-ink: #13231f;
  --engicad-muted: #5e6c67;
  --engicad-line: #d9e5df;
  --engicad-primary: #008a5a;
  --engicad-primary-dark: #006f49;
  --engicad-soft: #edf6f1;
  --engicad-header: #0e221d;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  background: var(--engicad-bg) !important;
  color: var(--engicad-ink) !important;
  font-size: 16px;
  line-height: 1.65;
}

header,
.o_header_standard,
.o_header_affixed,
.navbar,
header nav {
  min-height: 92px !important;
  height: 92px !important;
  max-height: 92px !important;
  overflow: hidden !important;
  padding: 0 !important;
  background: var(--engicad-header) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
}

header .container,
.navbar .container,
#o_main_nav,
.o_main_nav {
  min-height: 92px !important;
  height: 92px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  align-items: center !important;
}

header .navbar-nav,
header ul,
header li {
  align-items: center !important;
}

header .oe_structure,
header .oe_structure_solo,
header section,
header section .container {
  display: flex !important;
  align-items: center !important;
  height: 92px !important;
  min-height: 92px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  background: transparent !important;
}

header .btn,
header a.btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-height: 46px !important;
  padding: 12px 18px !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
}

main,
#wrap,
#wrapwrap,
.oe_structure,
.o_website_animate {
  background: var(--engicad-bg) !important;
}

main section,
main .o_colored_level,
main .o_cc,
main .o_cc1,
main .o_cc2,
main .o_cc3,
main .o_cc4,
main .o_cc5 {
  background-color: var(--engicad-surface) !important;
  background-image: none !important;
  color: var(--engicad-ink) !important;
}

main section:nth-of-type(even) {
  background-color: var(--engicad-bg) !important;
}

main .container,
main .container-fluid,
main .s_allow_columns {
  max-width: 1120px !important;
}

main section {
  padding-top: clamp(42px, 6vw, 72px) !important;
  padding-bottom: clamp(42px, 6vw, 72px) !important;
  border-bottom: 1px solid rgba(19, 35, 31, 0.06);
}

main section:first-child {
  padding-top: clamp(56px, 8vw, 96px) !important;
  padding-bottom: clamp(42px, 7vw, 76px) !important;
  background: linear-gradient(180deg, #f7fbf8 0%, #ffffff 100%) !important;
}

main h1,
main h2,
main h3,
main h4,
main h5,
main h6,
main p,
main li,
main span,
main strong,
main small,
main font,
main .text-o-color-3,
main .text-white,
main .text-black,
main .text-muted,
main .text-gradient {
  color: inherit !important;
  background-image: none !important;
  -webkit-text-fill-color: currentColor !important;
}

main h1 {
  max-width: 980px;
  margin: 0 auto;
  color: var(--engicad-ink) !important;
  font-size: clamp(2.05rem, 4.2vw, 3.85rem) !important;
  font-weight: 760 !important;
  letter-spacing: 0 !important;
  line-height: 1.05 !important;
}

main section:not(:first-child) h1 {
  max-width: 1080px !important;
  font-size: clamp(2rem, 3.7vw, 3.3rem) !important;
  line-height: 1.08 !important;
}

main h2 {
  color: var(--engicad-ink) !important;
  font-size: clamp(1.45rem, 2.2vw, 2.15rem) !important;
  line-height: 1.18 !important;
  font-weight: 720 !important;
}

main p,
main li,
main .lead {
  color: var(--engicad-muted) !important;
  font-size: clamp(0.98rem, 1.1vw, 1.08rem) !important;
}

main .lead {
  line-height: 1.65 !important;
}

main .o_grid_item,
main .s_card,
main .card,
main .accordion-item,
main .s_timeline_card {
  background: var(--engicad-surface) !important;
  background-image: none !important;
  border: 1px solid var(--engicad-line) !important;
  border-radius: 8px !important;
  box-shadow: 0 12px 34px rgba(22, 47, 39, 0.07) !important;
  color: var(--engicad-ink) !important;
}

main .o_grid_item {
  display: flex !important;
  flex-direction: column !important;
  padding: clamp(22px, 3vw, 34px) !important;
  grid-area: auto !important;
  height: auto !important;
  min-height: 0 !important;
}

main .o_grid_mode {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-auto-rows: auto !important;
  align-items: stretch !important;
  gap: 24px !important;
}

main .s_accordion_image .o_grid_item > .s_accordion,
main .s_accordion_image .o_grid_item > div[data-name="Accordion"] {
  flex: 1 1 auto !important;
}

main .accordion,
main .accordion-flush {
  display: grid !important;
  gap: 10px !important;
  margin-top: 18px !important;
}

main .accordion-item {
  overflow: hidden !important;
  box-shadow: none !important;
}

main .accordion-button {
  background: var(--engicad-soft) !important;
  color: var(--engicad-ink) !important;
  border: 0 !important;
  min-height: auto !important;
  padding: 14px 16px !important;
  box-shadow: none !important;
  cursor: default !important;
  line-height: 1.35 !important;
  text-align: left !important;
}

main .accordion-button::after {
  display: none !important;
}

main .accordion-collapse,
main .accordion-collapse.collapse {
  display: block !important;
  height: auto !important;
  visibility: visible !important;
}

main .accordion-body {
  padding: 0 16px 16px !important;
  background: var(--engicad-soft) !important;
  text-align: left !important;
}

main .accordion-body p {
  margin-bottom: 0 !important;
  text-align: left !important;
}

main .badge,
main .post_link,
main .o_tag {
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

main .o_wblog_read_with_sidebar > .d-flex.flex-column.flex-lg-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 300px) !important;
  gap: 40px !important;
  align-items: start !important;
}

main #o_wblog_post_content {
  max-width: 100% !important;
  min-width: 0 !important;
  flex-shrink: 1 !important;
}

main #o_wblog_post_sidebar_col {
  width: min(100%, 300px) !important;
  max-width: 300px !important;
  min-width: 0 !important;
  padding-left: 0 !important;
}

main .s_timeline .position-relative.pt-3 {
  max-width: 1120px !important;
  margin: 0 auto !important;
}

main .s_timeline_row {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 24px !important;
  align-items: stretch !important;
  padding-bottom: 0 !important;
}

main .s_timeline_row .o_dot,
main .s_timeline_row .o_dot_line {
  display: none !important;
}

main .s_timeline_content {
  width: 100% !important;
  padding-left: 0 !important;
  display: flex !important;
}

main .s_timeline_card {
  width: 100% !important;
  height: 100% !important;
  text-align: left !important;
}

main .s_timeline_card .card-body {
  padding: 24px !important;
}

main .s_timeline .text-md-end {
  text-align: left !important;
}

main .s_quotes_carousel_wrapper {
  background: var(--engicad-bg) !important;
}

main .s_quotes_carousel .carousel-inner {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
  max-width: 1120px !important;
  margin: 0 auto !important;
  padding: 0 0 8px !important;
  overflow: visible !important;
}

main .s_quotes_carousel .carousel-item {
  display: block !important;
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 1 !important;
  transform: none !important;
}

main .s_quotes_carousel blockquote {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 28px !important;
  border: 1px solid var(--engicad-line) !important;
  border-radius: 8px !important;
  background: var(--engicad-surface) !important;
  box-shadow: 0 12px 34px rgba(22, 47, 39, 0.07) !important;
  text-align: left !important;
}

main .s_quotes_carousel .s_blockquote_line_elt,
main .s_quotes_carousel .s_blockquote_wrap_icon,
main .s_quotes_carousel .carousel-control-prev,
main .s_quotes_carousel .carousel-control-next,
main .s_quotes_carousel .carousel-indicators {
  display: none !important;
}

main .s_quotes_carousel .s_blockquote_quote {
  color: var(--engicad-ink) !important;
  font-size: clamp(1rem, 1.25vw, 1.12rem) !important;
  line-height: 1.65 !important;
  text-align: left !important;
}

main .s_quotes_carousel .s_blockquote_infos {
  align-items: flex-start !important;
  text-align: left !important;
}

main .s_text_image .o_grid_mode {
  align-items: center !important;
}

main .s_text_image .o_grid_item {
  justify-content: center !important;
  text-align: center !important;
}

main .s_text_image .btn-fill-custom.rounded-circle {
  max-width: 100% !important;
  padding: 16px 24px !important;
}

main .s_text_image .btn .h3-fs {
  display: inline !important;
  font-size: clamp(1rem, 1.25vw, 1.14rem) !important;
  line-height: 1.25 !important;
}

main .s_text_image .btn .fa-hand-o-right {
  display: none !important;
}

main .btn,
main button,
main input[type="submit"],
header .btn,
header button,
header a.btn {
  border-radius: 6px !important;
  background: var(--engicad-primary) !important;
  border-color: var(--engicad-primary) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

main .btn:hover,
header .btn:hover,
header a.btn:hover {
  background: var(--engicad-primary-dark) !important;
  border-color: var(--engicad-primary-dark) !important;
}

main .btn-fill-custom.rounded-circle {
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  border-radius: 999px !important;
  padding: 8px 14px !important;
}

main .s_timeline .o_dot,
main .s_timeline .o_dot_line {
  border-color: var(--engicad-primary) !important;
  color: var(--engicad-primary) !important;
}

footer {
  background: var(--engicad-header) !important;
}

footer,
footer section,
footer .container,
footer .row,
footer .o_footer_copyright {
  background: var(--engicad-header) !important;
  color: #eaf2f0 !important;
}

footer .row {
  align-items: center !important;
  row-gap: 20px !important;
}

footer a,
footer span,
footer li,
footer p,
footer .text-muted {
  color: rgba(234, 242, 240, 0.84) !important;
}

footer a:hover {
  color: #ffffff !important;
}

footer .o_footer_logo img {
  max-width: 160px !important;
  margin: 0 !important;
}

footer .list-inline {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px 14px !important;
  margin-left: 0 !important;
}

footer .list-inline-item {
  margin: 0 !important;
}

footer .btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  padding: 12px 18px !important;
}

footer .o_footer_copyright {
  border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
}

@media (max-width: 900px) {
  html,
  body,
  #wrapwrap,
  #wrap,
  main {
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }

  main *,
  main *::before,
  main *::after {
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
  }

  header,
  .o_header_standard,
  .navbar,
  header nav,
  header .container,
  header .oe_structure,
  header .oe_structure_solo,
  header section,
  header section .container,
  .navbar .container,
  #o_main_nav,
  .o_main_nav {
    min-height: 64px !important;
    height: 64px !important;
  }

  main section {
    padding-top: 34px !important;
    padding-bottom: 34px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  main table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    table-layout: fixed !important;
  }

  main th,
  main td {
    min-width: 0 !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  main .o_wblog_read_with_sidebar > .d-flex.flex-column.flex-lg-row {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  main #o_wblog_post_sidebar_col {
    width: 100% !important;
    max-width: 100% !important;
  }

  main .container,
  main .container-fluid,
  main .s_allow_columns,
  main section > .row,
  main .oe_structure > .row {
    width: calc(100vw - 32px) !important;
    max-width: calc(100vw - 32px) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: hidden !important;
  }

  main .row {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  main [class*="col-"],
  main .col {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  main .o_grid_item {
    padding: 20px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  main .o_grid_mode {
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 18px !important;
  }

  main .s_timeline_row,
  main .s_quotes_carousel .carousel-inner {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  footer .row,
  footer .list-inline {
    justify-content: flex-start !important;
    text-align: left !important;
  }

  main h1 {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    hyphens: auto !important;
    font-size: clamp(1.68rem, 7.2vw, 2.18rem) !important;
    line-height: 1.12 !important;
    text-align: center !important;
  }

  main h1 font,
  main h2 font,
  main h3 font {
    display: inline !important;
    max-width: none !important;
  }

  main h2,
  main h3,
  main p,
  main li,
  main .accordion-button,
  main .accordion-body {
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  main .accordion,
  main .accordion-flush,
  main .accordion-item,
  main .accordion-button,
  main .accordion-body {
    width: 100% !important;
    max-width: 100% !important;
  }
}
