/* Dotscube theme layer: WordPress / Elementor integration on top of site.css */

body { margin: 0; background: var(--c-page, #fbfaf7); }

.dc-skip-link { position: absolute; left: -9999px; top: 8px; z-index: 100000; padding: 8px 14px; border-radius: 999px; background: #323753; color: #fff; }
.dc-skip-link:focus { left: 8px; }

/* ---------- Elementor: every section container is a full-bleed, zero-gap shell ---------- */
.e-con.dc-section,
.e-con.dc-section > .e-con-inner {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --margin-top: 0px; --margin-bottom: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px; --widgets-spacing: 0px; --widgets-spacing-row: 0px; --widgets-spacing-column: 0px;
  --content-width: 100%; --container-max-width: 100%;
  padding: 0; gap: 0; max-width: 100%;
}
.e-con.dc-section > .elementor-widget,
.e-con.dc-section > .e-con-inner > .elementor-widget { width: 100%; max-width: 100%; margin: 0; }
.dc-section .elementor-widget-html > .elementor-widget-container { margin: 0; padding: 0; }

/* Elementor's unlayered "img { height:auto; border-radius:0 … }" beats the utility layer;
   hand those properties back to the theme's classes. */
html body .dc-root img, html body .dc-section img, html body .elementor .dc-section img {
  height: revert-layer; max-width: revert-layer; border: revert-layer; border-radius: revert-layer; box-shadow: revert-layer;
}
html body .elementor .dc-section a { box-shadow: revert-layer; }

/* ---------- animated sections ---------- */
/* Without JavaScript the copy is shown as a simple list; with it, the React section replaces it. */
[data-dc-island] > .dc-content { max-width: 72rem; margin: 0 auto; padding: 32px 24px; font: 15px/1.6 var(--font-inter, system-ui), sans-serif; color: #323753; }
[data-dc-island] > .dc-content img { max-height: 48px; width: auto; display: inline-block; }
.dc-js [data-dc-island] > .dc-content { display: none; }
[data-dc-island="header"] { position: relative; z-index: 60; }

/* ---------- plain sections ---------- */
.dc-js [data-dc-reveal] {
  opacity: 0; transform: translateY(12px); filter: blur(6px);
  transition: opacity .7s var(--ease-house, cubic-bezier(.22,1,.36,1)) var(--dc-delay, 0ms),
              transform .7s var(--ease-house, cubic-bezier(.22,1,.36,1)) var(--dc-delay, 0ms),
              filter .7s var(--ease-house, cubic-bezier(.22,1,.36,1)) var(--dc-delay, 0ms);
}
.dc-js [data-dc-reveal].is-in { opacity: 1; transform: none; filter: none; }
.elementor-editor-active [data-dc-reveal] { opacity: 1 !important; transform: none !important; filter: none !important; }

.dc-faq-a { transition: height .28s var(--ease-house, ease), opacity .28s ease; }
[data-dc-progress] { transition: width .12s linear; }

.dc-spin-slow { animation: dc-spin 40s linear infinite; }
@keyframes dc-spin { to { transform: rotate(360deg); } }

.dc-cta-sky { background-image: url(../img/cta-sky.svg); background-size: cover; background-position: center bottom; }

@media (prefers-reduced-motion: reduce) {
  .dc-js [data-dc-reveal] { opacity: 1; transform: none; filter: none; transition: none; }
  .dc-spin-slow { animation: none; }
}

/* ---------- WordPress admin bar ---------- */
.admin-bar .dc-landing [data-dc-island="header"] header.fixed,
.admin-bar [data-dc-island="header"] .fixed.top-0 { top: 32px; }
@media (max-width: 782px) {
  .admin-bar [data-dc-island="header"] .fixed.top-0 { top: 46px; }
}

/* ---------- inner pages (posts, legal pages, 404) ---------- */
.dc-simple-header, .dc-simple-footer { border-bottom: 1px solid #e6e3dc; background: #fff; }
.dc-simple-footer { border-top: 1px solid #e6e3dc; border-bottom: 0; margin-top: 64px; font-size: 14px; color: #6b6f85; }
.dc-simple-wrap { max-width: 72rem; margin: 0 auto; padding: 16px 24px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.dc-simple-brand { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-heading, var(--font-rubik), sans-serif); font-weight: 600; font-size: 20px; color: #323753; text-decoration: none; }
.dc-simple-brand img { width: 32px; height: 32px; object-fit: contain; }
.dc-simple-header nav ul { display: flex; gap: 20px; list-style: none; margin: 0; padding: 0; }
.dc-simple-header nav a, .dc-simple-footer a { color: #323753; text-decoration: none; }
.dc-prose { max-width: 46rem; margin: 0 auto; padding: 56px 24px 24px; color: #323753; font: 17px/1.75 var(--font-inter, system-ui), sans-serif; }
.dc-prose h1, .dc-prose h2, .dc-prose h3, .dc-page-title { font-family: var(--font-heading, var(--font-rubik), sans-serif); font-weight: 500; letter-spacing: -0.02em; line-height: 1.15; margin: 1.6em 0 .5em; }
.dc-page-title { font-size: clamp(32px, 5vw, 48px); margin-top: 0; }
.dc-prose p, .dc-prose ul, .dc-prose ol { margin: 0 0 1.1em; }
.dc-prose ul { list-style: disc; padding-left: 1.4em; }
.dc-prose ol { list-style: decimal; padding-left: 1.4em; }
.dc-prose a { color: #0866ff; text-decoration: underline; }
.dc-prose img { max-width: 100%; height: auto; border-radius: 12px; }
.dc-button { display: inline-flex; align-items: center; min-height: 44px; padding: 0 22px; border-radius: 999px; background: #323753; color: #fbfaf7 !important; text-decoration: none !important; font-weight: 500; }
.dc-entry { padding: 24px 0; border-bottom: 1px solid #e6e3dc; }
