/* ==========================================================================
   Elementor bridge.
   1. Global colours follow dark/light mode. The DocA kit uses fixed colour IDs
      (DocA → Setup → "Apply the design system"), so we can re-point them here.
   2. Utility classes for core Elementor widgets and containers. Add them under
      Advanced → CSS Classes. Every page DocA creates already uses them.
   ========================================================================== */

/* ---------- 1. Global colours in light mode, and inside dark islands ---------- */
html[data-theme="light"] body{
  --e-global-color-text:#0D0D0D; --e-global-color-accent:#4F5E1A;
  --e-global-color-docabg:#FFFFFF; --e-global-color-docaband:#F4F4F2; --e-global-color-docasurf:#F7F7F5; --e-global-color-docaline:#E2E2DE;
  --e-global-color-docadim:#4A4A4A; --e-global-color-docawine:#541641; --e-global-color-docagap:#7A5008;
  --e-global-color-docaeacc:#B5471A; --e-global-color-docarri:#B42318; --e-global-color-docaacp:#1F5A8A;
}
.island,.foot,.ticker,.doca-island{
  --e-global-color-text:#FFFFFF; --e-global-color-accent:#B7D14C; --e-global-color-docabg:#050505; --e-global-color-docadim:#D2D2D2; --e-global-color-docaline:rgba(255,255,255,.2);
}

/* Elementor must never paint its own page background over the tokens. */
body.elementor-page,body[class*="elementor-kit-"]{background:var(--bg);color:var(--fg)}

/* ---------- 2a. Sections (top-level containers) ---------- */
.e-con.doca-band{--padding-top:var(--band);--padding-bottom:var(--band);--padding-left:0px;--padding-right:0px;--gap:0px;--row-gap:0px;--column-gap:0px}
.e-con.doca-band>.e-con-inner{padding-inline:var(--gut);--gap:0px;--row-gap:0px;--column-gap:0px}
.e-con.doca-band.e-con-full{padding-inline:var(--gut)}
.e-con.doca-alt{background-color:var(--bg-2)}
.e-con.doca-tight{--padding-top:48px}
.e-con.doca-narrow>.e-con-inner{max-width:820px}
.e-con.doca-bleed{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--gap:0px;--row-gap:0px}
.e-con.doca-bleed>.elementor-widget,.e-con.doca-band>.e-con-inner>.elementor-widget,.e-con.doca-band>.elementor-widget{width:100%}
/* Rhythm between stacked blocks inside a section. Section heads bring their own spacing. */
.e-con.doca-band>.e-con-inner>.elementor-element:not(:first-child){margin-top:32px}
.e-con.doca-band>.e-con-inner>.elementor-widget-doca-section-head+.elementor-element{margin-top:0}
.e-con.doca-band>.e-con-inner>.elementor-widget-doca-call-status+.elementor-widget-doca-section-head{margin-top:64px}
.e-con.doca-timeline-band{--padding-top:0px}

/* ---------- 2b. Inner layout containers ---------- */
.e-con.doca-grid{align-items:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}
.e-con.doca-grid.doca-top{align-items:start}
.e-con.doca-col{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--gap:0px;--row-gap:0px;justify-content:flex-start}
.e-con.doca-col>.elementor-element{width:100%}
.e-con.doca-col>.elementor-element:not(:first-child){margin-top:18px}
.e-con.doca-figure{position:relative}
.e-con.doca-acts{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;margin-top:32px}
.e-con.doca-mv{margin-top:26px!important}
.e-con.doca-mv>.e-con{padding:20px 22px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line)}
.e-con.doca-mv>.e-con:first-child{border-top:2px solid var(--wine-text)}
.e-con.doca-mv>.e-con:last-child{border-top:2px solid var(--accent-fill)}
.e-con.doca-mv>.e-con>.elementor-element:not(:first-child){margin-top:6px}

/* ---------- 2c. Headings ---------- */
.doca-h .elementor-heading-title{font-family:var(--font-display);font-weight:600;color:var(--fg);letter-spacing:-.018em}
.doca-t-hero .elementor-heading-title{font-size:clamp(40px,6.4vw,84px);line-height:1.02;letter-spacing:-.025em}
.doca-t-page .elementor-heading-title{font-size:clamp(38px,5.4vw,68px);line-height:1.04;letter-spacing:-.022em}
.doca-t-sec .elementor-heading-title{font-size:clamp(30px,3.8vw,50px);line-height:1.08;letter-spacing:-.02em}
.doca-t-acc .elementor-heading-title{font-size:clamp(28px,3.4vw,44px);line-height:1.08;color:var(--accent)}
.doca-t-card .elementor-heading-title{font-size:19px;line-height:1.2}

/* ---------- 2d. Text Editor variants ---------- */
.doca-text p{margin:0}
.doca-text p+p{margin-top:12px}
.doca-lede,.doca-lede p{font-size:clamp(17px,1.5vw,20px);line-height:1.6;color:var(--dim);max-width:62ch}
.doca-lede-lg p{font-size:22px;color:var(--fg)}
.doca-flourish p,.doca-text .flourish{font-style:italic;font-size:17px;color:var(--accent)}
.doca-dim,.doca-dim p{color:var(--dim)}
.doca-meta,.doca-meta p{font-size:14px;color:var(--dim-2)}
.doca-checks ul{list-style:none;margin:8px 0 12px;padding:0;display:grid;gap:14px}
.doca-checks li{position:relative;padding-left:38px;color:var(--dim);font-size:16px}
.doca-checks li strong{display:block;color:var(--fg);font-weight:600;font-size:17px}
.doca-checks li::before{content:'';position:absolute;left:0;top:2px;width:24px;height:24px;border-radius:var(--r-xs);background:var(--accent-fill) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7' fill='none' stroke='%230A0E02' stroke-width='3'/%3E%3C/svg%3E") center/14px no-repeat}
.doca-lnk p{display:flex;flex-wrap:wrap;gap:12px 28px}
.doca-lnk a{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;color:var(--fg);border-bottom:1.5px solid var(--accent-fill);padding-bottom:3px}
.doca-lnk a::after{content:'';width:14px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 17L17 7M9 7h8v8' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 17L17 7M9 7h8v8' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .25s var(--ease)}
.doca-lnk a:hover{color:var(--accent)}.doca-lnk a:hover::after{transform:translate(2px,-2px)}
.doca-quote blockquote{margin:0;padding:0;border:0;font-family:var(--font-display);font-size:clamp(24px,2.6vw,34px);font-weight:500;line-height:1.3;letter-spacing:-.01em;color:var(--fg)}
.doca-prov dl{display:flex;flex-wrap:wrap;gap:14px 40px;padding:18px 0;margin:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.doca-prov dl div{display:flex;flex-direction:column;gap:2px}
.doca-prov dt{font-size:13px;color:var(--dim-2)}.doca-prov dd{margin:0;font-family:var(--font-display);font-size:18px;font-weight:600}
.doca-sign p{color:var(--dim);font-size:14px}.doca-sign strong{display:inline-block;font-family:var(--font-display);font-size:20px;color:var(--fg);margin-bottom:2px}
.doca-panel{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:clamp(22px,3vw,36px)}
.doca-panel h3{font-size:24px;margin:0 0 8px}
.doca-panel p{color:var(--dim)}
.doca-panel .flourish{color:var(--accent);margin-bottom:8px}
.doca-panel .big{font-family:var(--font-display);font-size:26px;font-weight:500;line-height:1.3;color:var(--fg);margin-top:10px}
.doca-panel a{color:var(--accent);font-weight:600}
.doca-panel-link{position:relative;transition:border-color .25s}
.doca-panel-link h3{font-size:30px;margin:8px 0 10px}
.doca-panel-link h3 a{color:var(--fg);text-decoration:none}
.doca-panel-link h3 a::after{content:'';position:absolute;inset:0}
.doca-panel-link:hover{border-color:var(--accent-fill)}
.doca-path ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--line-2)}
.doca-path li{position:relative;padding:0 0 22px 24px;color:var(--dim)}
.doca-path li::before{content:'';position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:6px;background:var(--bg);border:2px solid var(--accent-fill)}
.doca-path li strong{display:block;font-family:var(--font-display);font-size:19px;font-weight:600;color:var(--fg);margin-bottom:6px}
.doca-rowtable table{width:100%;border-collapse:collapse;border-top:1px solid var(--line)}
.doca-rowtable tr{border-bottom:1px solid var(--line)}
.doca-rowtable th,.doca-rowtable td{padding:22px 0;text-align:left;vertical-align:middle;border:0;background:none}
.doca-rowtable th{font-family:var(--font-sans);font-size:19px;font-weight:600;width:34%}
.doca-rowtable td{color:var(--dim)}
.doca-rowtable td:last-child{text-align:right;font-weight:600;color:var(--fg)}
@media(max-width:760px){.doca-rowtable tr{display:grid;padding:16px 0}.doca-rowtable th,.doca-rowtable td{padding:2px 0;width:auto}.doca-rowtable td:last-child{text-align:left}}
.e-con .doca-badge{position:absolute;left:-28px;bottom:48px;width:auto!important;max-width:230px;margin:0!important;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 24px;z-index:2}
.doca-badge p{font-size:15px;line-height:1.4;color:var(--dim)}
.doca-badge strong{display:block;font-family:var(--font-display);font-size:56px;font-weight:700;line-height:.9;color:var(--accent);margin-bottom:6px}
@media(max-width:900px){.e-con .doca-badge{left:12px;bottom:56px}}

/* ---------- 2e. Buttons ---------- */
.doca-btn .elementor-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border-radius:var(--r-sm);border:1.5px solid transparent;font-family:var(--font-sans);font-size:16px;font-weight:600;line-height:1;transition:background-color .2s,color .2s,border-color .2s}
.doca-btn-accent .elementor-button{background:var(--accent-fill);color:var(--on-accent)}
.doca-btn-accent .elementor-button:hover,.doca-btn-accent .elementor-button:focus-visible{background:var(--accent-hover);color:var(--on-accent)}
.doca-btn-ghost .elementor-button{background:transparent;border-color:var(--fg);color:var(--fg)}
.doca-btn-ghost .elementor-button:hover,.doca-btn-ghost .elementor-button:focus-visible{background:var(--fg);color:var(--bg)}
.doca-btn-wine .elementor-button{background:var(--wine);color:#FFFFFF}

/* ---------- 2f. Images ---------- */
.doca-img img{width:100%;border-radius:var(--r-lg);object-fit:cover}
.doca-photo img{filter:grayscale(1) contrast(1.06)}
.doca-portrait img{aspect-ratio:4/5}
.doca-square img{aspect-ratio:1/1}
.doca-img figure{margin:0}
.doca-img figcaption,.doca-img .widget-image-caption{margin-top:12px;font-size:14px;color:var(--dim-2);text-align:left}

/* ---------- Editor: never hide content behind reveal animations while editing ---------- */
.elementor-editor-active [data-rev],.elementor-editor-preview [data-rev]{opacity:1!important;transform:none!important}

/* ---------- 2g. Elementor Pro forms: add the class doca-form to the Form widget ---------- */
.doca-form .elementor-field-label{font-size:15px;font-weight:600;color:var(--fg);margin-bottom:7px}
.doca-form .elementor-field-textual,.doca-form select.elementor-field{min-height:50px;padding:0 14px;border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--bg);color:var(--fg);font-size:16px}
.doca-form textarea.elementor-field-textual{padding:12px 14px;min-height:120px}
.doca-form .elementor-field-textual:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 1px var(--focus)}
.doca-form .elementor-button{min-height:50px;padding:0 24px;border-radius:var(--r-sm);background:var(--accent-fill);color:var(--on-accent);font-family:var(--font-sans);font-size:16px;font-weight:600}
.doca-form .elementor-button:hover{background:var(--accent-hover)}
.doca-form .elementor-message{font-size:15px;color:var(--fg)}
.doca-form.doca-panel,.doca-form .elementor-form{border-radius:var(--r-lg)}
