/* Shared visual layer. Layout and functional integration remain in site.css. */
:root {
  --color-primary: #236454;
  --color-secondary: #202b29;
  --color-accent: #e2b76d;
  --color-bg: #ffffff;
  --color-surface: #f0f5f3;
  --color-text: #26312e;
  --color-muted: #596762;
  --color-border: #d4dfda;
  --color-dark: #142821;
  --color-on-dark: #f6faf7;
  --gradient-primary: linear-gradient(120deg, #236454, #377b67);
  --gradient-dark: linear-gradient(115deg, #142821 10%, #20332e 65%, #293330);
  --cd-ink: var(--color-secondary);
  --cd-text: var(--color-text);
  --cd-muted: var(--color-muted);
  --cd-accent: var(--color-accent);
  --cd-paper: var(--color-surface);
  --cd-border: var(--color-border);
  --cd-dark: var(--color-dark);
  --shadow-card: 0 14px 36px #1428210d;
  --shadow-image: 0 18px 40px #14282117;
}
.cd-section, .cd-hero, .cd-header { color: var(--color-text); letter-spacing: 0; --e-global-color-primary: #202b29; --e-global-color-secondary: #236454; --e-global-color-accent: #e2b76d; --e-global-color-text: #26312e; }
.cd-section { padding: 96px 32px !important; }
.cd-section, .cd-hero, .cd-card, .cd-section [id] { scroll-margin-top: 110px; }
.cd-section > .e-con-inner { gap: 32px !important; }
.cd-section .elementor-heading-title { color: var(--color-secondary); }
.cd-section h2.elementor-heading-title { font-size: 40px; line-height: 1.17; max-width: 880px; text-wrap: balance; }
.cd-section h1.elementor-heading-title { font-size: 52px; line-height: 1.12; max-width: 960px; text-wrap: balance; }
.cd-section p { color: inherit; line-height: 1.8; }
.cd-section > .e-con-inner > .elementor-widget-text-editor:not(.cd-eyebrow):not(.cd-demo) { max-width: 900px; }
.cd-section a:not(.elementor-button) { color: var(--color-primary); text-underline-offset: 5px; }
.cd-eyebrow { display: flex; align-items: center; gap: 12px; color: var(--color-primary); font-size: 12px; font-weight: 700; }
.cd-eyebrow:before { content: ''; width: 32px; height: 2px; flex: 0 0 32px; background: var(--color-accent); }
.cd-emphasis { color: var(--color-primary); }
.cd-light { background: var(--color-surface) !important; }
.cd-dark { background: var(--gradient-dark) var(--color-dark) !important; color: var(--color-on-dark); }
.cd-dark .elementor-widget-text-editor { color: var(--color-on-dark) !important; }
.cd-dark .cd-emphasis { color: var(--color-accent); }
.cd-blueprint { background-image: linear-gradient(#23645406 1px, transparent 1px), linear-gradient(90deg, #23645406 1px, transparent 1px) !important; background-size: 64px 64px !important; background-color: var(--color-surface) !important; border-block: 1px solid var(--color-border); }
.cd-page-intro { background: linear-gradient(115deg, #f0f5f3, #ffffff) !important; border-bottom: 1px solid var(--color-border); }
.cd-page-intro h1:after { content: ''; display: block; width: 72px; height: 4px; margin-top: 30px; background: var(--color-accent); }
.cd-editorial > .e-con-inner { border-top: 1px solid var(--color-border); padding-top: 32px; }
.cd-hero { min-height: 640px; padding: 68px 40px !important; position: relative; isolation: isolate; background-color: var(--color-dark) !important; }
/* A 70% minimum overlay protects text even over the lightest image pixels. */
.cd-hero:before { background: linear-gradient(90deg, #111e19e8 0%, #111e19c7 40%, #111e19b3 85%) !important; opacity: 1 !important; }
.cd-hero:after { content: ''; position: absolute; inset: auto 0 0; height: 22px; background: var(--color-bg); clip-path: polygon(0 100%, 100% 0, 100% 100%); pointer-events: none; }
.cd-hero > .e-con-inner { gap: 24px !important; }
.cd-hero .elementor-heading-title { font-size: 58px !important; line-height: 1.08 !important; max-width: 900px; text-wrap: balance; }
.cd-hero .cd-emphasis { color: var(--color-accent); }
.cd-hero .elementor-widget-text-editor { max-width: 670px !important; font-size: 17px; line-height: 1.65; }
.cd-hero .cd-eyebrow { color: var(--color-on-dark); }
.cd-header { background: #fffffffa; border-bottom-color: var(--color-border); padding: 15px 28px !important; box-shadow: 0 4px 22px #14282106; }
.cd-header .elementor-nav-menu a { color: var(--color-secondary); transition: color .2s ease; }
.cd-header .elementor-nav-menu a:hover, .cd-header .elementor-nav-menu .elementor-item-active { color: var(--color-primary) !important; }
.cd-header .elementor-nav-menu--dropdown a.elementor-item-active,
.cd-header .elementor-nav-menu--dropdown a.highlighted,
.cd-header .elementor-nav-menu--dropdown a:hover,
.cd-header .elementor-nav-menu--dropdown a:focus { background: var(--color-surface) !important; color: var(--color-primary) !important; }
.cd-header .elementor-nav-menu--main .elementor-item:after { background: var(--color-primary); height: 2px; }
.cd-brand .elementor-heading-title { line-height: 1 !important; }
.cd-brand a { display: inline-flex; flex-direction: column; text-decoration: none !important; border-left: 4px solid var(--color-accent); padding-left: 13px; }
.cd-wordmark-small { display: block; font: 600 11px/1.5 Arial, sans-serif; text-transform: uppercase; }
.cd-wordmark-name { display: block; font: 700 34px/1.05 Arial, sans-serif; }
.cd-header .cd-brand { min-width: 156px; }
.cd-section .elementor-button, .cd-hero .elementor-button, .cd-header .elementor-button {
  background: var(--color-primary) !important; color: #fff !important; border: 1px solid transparent; border-radius: 4px !important; padding: 16px 23px; line-height: 1.25;
  box-shadow: 0 5px 14px #1428210d; transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
}
.cd-hero .elementor-button, .cd-dark .elementor-button { background: var(--color-accent) !important; color: var(--color-dark) !important; }
.cd-section .elementor-button:hover, .cd-header .elementor-button:hover { background: var(--color-dark) !important; color: #fff !important; transform: translateY(-2px); box-shadow: 0 8px 20px #14282120; }
.cd-hero .elementor-button:hover, .cd-dark .elementor-button:hover { background: #f1cc8e !important; color: var(--color-dark) !important; transform: translateY(-2px); }
.cd-section .cd-secondary .elementor-button, .cd-hero .cd-secondary .elementor-button { background: transparent !important; box-shadow: none; border-color: currentColor; color: var(--color-primary) !important; }
.cd-hero .cd-secondary .elementor-button { color: #fff !important; }
.cd-dark .cd-secondary .elementor-button { color: var(--color-on-dark) !important; }
.cd-header .cd-header-phone .elementor-button { color: var(--color-secondary) !important; background: transparent !important; box-shadow: none; }
.elementor-button-icon svg { fill: currentColor !important; }
.elementor-button-content-wrapper { gap: 10px; align-items: center; }
.elementor-button-icon { transition: transform .25s ease; }
.elementor-button:hover .elementor-button-icon { transform: translateX(3px); }
.cd-card { background: var(--color-bg); border: 1px solid var(--color-border); border-radius: 6px !important; padding: 22px !important; gap: 18px; box-shadow: var(--shadow-card); transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.cd-card .elementor-heading-title { font-size: 24px !important; }
.cd-card .elementor-widget-image { overflow: hidden; border-radius: 3px; }
.cd-card img { transition: transform .65s ease; }
.cd-card > .elementor-widget-button { margin-top: auto; }
.cd-card .elementor-button { padding: 5px 0; border-radius: 0; color: var(--color-primary) !important; background: transparent !important; box-shadow: none; text-align: left; }
.cd-card .elementor-button:hover { color: var(--color-dark) !important; background: transparent !important; box-shadow: none; }
.cd-card.cd-rule { border-top: 3px solid var(--color-primary); }
.cd-step { border-top: 1px solid var(--color-border); padding-top: 22px !important; }
.cd-step .cd-number { font-size: 42px; line-height: 1; font-weight: 500; color: var(--color-primary); margin-bottom: 10px; }
.cd-step .elementor-heading-title { font-size: 20px !important; }
.cd-section > .e-con-inner > .elementor-widget-image { position: relative; margin: 12px 0; padding: 0 12px 12px 0; }
.cd-section > .e-con-inner > .elementor-widget-image:before { content: ''; position: absolute; inset: 20px 0 0 20px; border: 1px solid var(--color-primary); border-radius: 6px; z-index: 0; }
.cd-section > .e-con-inner > .elementor-widget-image img { position: relative; border-radius: 6px; box-shadow: var(--shadow-image); max-height: 600px; width: 100%; object-fit: cover; }
.cd-section .elementor-widget-theme-post-featured-image img { border-radius: 6px; box-shadow: var(--shadow-image); }
.cd-projects .elementor-post, .elementor-widget-archive-posts .elementor-post { border-bottom: 1px solid var(--color-border); padding-bottom: 26px; }
.cd-projects .elementor-post__thumbnail__link { overflow: hidden; border-radius: 5px; }
.cd-projects .elementor-post__thumbnail img { transition: transform .65s ease; }
.cd-projects .elementor-post__title { line-height: 1.3; }
.cd-projects .elementor-post__title a { color: var(--color-secondary); }
.cd-projects .elementor-post__read-more { color: var(--color-primary) !important; text-underline-offset: 6px; }
.cd-projects .elementor-post__excerpt p,
.elementor-widget-archive-posts .elementor-post__excerpt p { color: var(--color-muted) !important; }
.cd-cta { padding: 88px 32px !important; border-top: 4px solid var(--color-accent); }
.cd-cta > .e-con-inner { border-right: 1px solid #ffffff25; padding-right: 24px; }
.cd-cta .elementor-heading-title { font-size: 42px; }
.cd-footer { background: var(--gradient-dark) var(--color-dark) !important; border-top: 1px solid #ffffff25; padding: 72px 32px 90px !important; }
.cd-footer .cd-grid-4 { padding-bottom: 32px; border-bottom: 1px solid #ffffff25; }
.cd-footer .elementor-heading-title { font-size: 17px !important; }
.cd-footer .cd-wordmark-name { font-size: 40px; }
.cd-footer .elementor-widget-text-editor { color: #dce6e1; }
.cd-footer a { transition: color .2s ease; }
.cd-footer a:hover { color: var(--color-accent) !important; }
.cd-section .elementor-accordion-item { border-color: var(--color-border) !important; }
.cd-section .elementor-tab-title { background: var(--color-surface); transition: background .2s ease; }
.cd-section .elementor-tab-title:hover { background: #e4ede8; }
.cd-section .elementor-tab-title.elementor-active { background: #e4ede8; }
.cd-section .elementor-field:not([type=checkbox]) { border: 1px solid var(--color-border); border-radius: 4px; background: #fff; padding: 13px 15px; color: var(--color-text); }
.cd-section .elementor-field:focus { border-color: var(--color-primary); }
.cd-section .elementor-field-type-submit button { background: var(--color-primary); color: #fff; border-radius: 4px; }
.cd-legal h2.elementor-heading-title { font-size: 27px; margin-top: 14px; }
.cd-legal h1.elementor-heading-title { font-size: 46px; }
.cd-whatsapp { background: var(--color-primary); transition: background .2s ease, transform .2s ease; }
.cd-whatsapp:hover { background: var(--color-dark); }
/* Nodes stay visible until JS opts individual off-screen elements into motion. */
.cd-reveal-pending { opacity: 0; transform: translateY(22px); }
.cd-reveal-image.cd-reveal-pending { transform: translateY(16px) scale(.985); }
.cd-reveal-running { animation: cd-enter .7s cubic-bezier(.22,.61,.36,1) both; animation-delay: var(--cd-delay, 0ms); }
.cd-reveal-image.cd-reveal-running { animation-name: cd-image-enter; }
@keyframes cd-enter { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes cd-image-enter { from { opacity: 0; transform: translateY(16px) scale(.985); } to { opacity: 1; transform: none; } }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .cd-card:hover { transform: translateY(-5px); box-shadow: 0 20px 38px #14282114; border-color: #9fb8aa; }
  .cd-card:hover img { transform: scale(1.035); }
  .cd-projects .elementor-post:hover img { transform: scale(1.03); }
}
@media (min-width:1025px) {
  .cd-editorial > .e-con-inner { display: grid !important; grid-template-columns: 1fr 1.35fr; align-items: start; column-gap: 72px !important; }
  .cd-editorial > .e-con-inner > .elementor-widget-heading { grid-column: 1; }
  .cd-editorial > .e-con-inner > .elementor-widget-text-editor:not(.cd-eyebrow):not(.cd-breadcrumb) { grid-column: 2; grid-row: 1 / span 3; }
  .cd-editorial > .e-con-inner > .cd-eyebrow, .cd-editorial > .e-con-inner > .cd-breadcrumb { grid-column: 1; }
}
@media (max-width:1024px) {
  .cd-section { padding: 68px 26px !important; }
  .cd-section h2.elementor-heading-title { font-size: 34px; }
  .cd-hero { min-height: 600px; padding: 60px 28px !important; }
  .cd-hero .elementor-heading-title { font-size: 46px !important; }
  .cd-header > .e-con-inner { flex-wrap: nowrap !important; }
  .cd-header .elementor-nav-menu--dropdown { box-shadow: 0 14px 20px #14282114; }
}
@media (max-width:767px) {
  .cd-section { padding: 52px 20px !important; }
  .cd-section > .e-con-inner { gap: 24px !important; }
  .cd-section h1.elementor-heading-title { font-size: 34px !important; }
  .cd-section h2.elementor-heading-title { font-size: 29px !important; }
  .cd-hero { min-height: 0; padding: 38px 20px 54px !important; }
  .cd-hero .elementor-heading-title { font-size: 34px !important; line-height: 1.12 !important; }
  .cd-hero .elementor-widget-text-editor { font-size: 15px; line-height: 1.6; }
  .cd-hero .cd-eyebrow { font-size: 10px !important; }
  .cd-hero .cd-eyebrow:before { width: 20px; flex-basis: 20px; }
  .cd-hero > .e-con-inner { gap: 18px !important; }
  .cd-hero:before { background: linear-gradient(90deg, #111e19dd, #111e19b3) !important; }
  .cd-header { padding: 12px 16px !important; }
  .cd-wordmark-name { font-size: 30px; }
  .cd-wordmark-small { font-size: 10px; }
  .cd-card { padding: 20px !important; }
  .cd-cta > .e-con-inner { border-right: 0; padding-right: 0; }
  .cd-footer { padding: 52px 20px 80px !important; }
  .cd-legal h2.elementor-heading-title { font-size: 25px !important; }
  .cd-blueprint { background-image: none !important; }
}
@media (prefers-reduced-motion:reduce) {
  .cd-reveal-pending, .cd-reveal-running { opacity: 1 !important; transform: none !important; animation: none !important; }
}
@media print {
  .cd-reveal-pending, .cd-reveal-running { opacity: 1 !important; transform: none !important; animation: none !important; }
}

