/* Elementor pages: map Elementor containers + native widgets onto the theme design system.
   Class names are set on each element's "CSS Classes" field by scripts/elementor-build.php,
   so editors can restyle a section in Elementor without touching code. */

/* ---------- sections ---------- */
.elementor .e-con.pp-section { --padding-top: 64px; --padding-bottom: 64px; --gap: 20px; }
@media (min-width: 900px) { .elementor .e-con.pp-section { --padding-top: 96px; --padding-bottom: 96px; } }
.elementor .e-con.section--tint { background: var(--c-bg-tint); }
.elementor .e-con.pp-narrow > .e-con-inner { max-width: 820px; }
.elementor .e-con.pp-hero { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
.elementor .e-con.pp-hero .elementor-widget-html, .elementor .e-con.pp-hero .elementor-widget-container { width: 100%; }

/* ---------- headings and text ---------- */
.elementor .section__eyebrow .elementor-heading-title { font: 700 .78rem/1.4 var(--f-body); letter-spacing: .1em; text-transform: uppercase; color: var(--c-primary); margin: 0; }
.elementor .section--tint .section__eyebrow .elementor-heading-title { color: var(--c-primary-dark); }
.elementor .section__title .elementor-heading-title,
.elementor .page-head__title .elementor-heading-title { font-family: var(--f-head); font-weight: var(--w-head); line-height: 1.15; letter-spacing: -.015em; color: var(--c-ink); }
.elementor .section__title .elementor-heading-title { font-size: clamp(1.6rem, 4vw, 2.5rem); }
.elementor .page-head__title .elementor-heading-title { font-size: clamp(2rem, 5vw, 3rem); }
.elementor .section__lede, .elementor .page-head__lede { color: var(--c-ink-soft); font-size: 1.08rem; max-width: 720px; }
.elementor .section__lede p:last-child, .elementor .page-head__lede p:last-child { margin-bottom: 0; }

/* ---------- buttons ---------- */
.elementor .pp-btn .elementor-button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: .7em 1.3em; border-radius: 999px; border: 2px solid transparent; font: 650 .975rem/1.1 var(--f-body); transition: background .2s, color .2s, transform .2s; }
.elementor .pp-btn--primary .elementor-button { background: var(--c-primary); border-color: var(--c-primary); color: var(--c-primary-ink, #fff); }
.elementor .pp-btn--primary .elementor-button:hover { background: var(--c-primary-dark); border-color: var(--c-primary-dark); transform: translateY(-1px); }
.elementor .pp-btn--ghost .elementor-button { background: transparent; color: var(--c-primary); border-color: currentColor; }
.elementor .section--tint .pp-btn--ghost .elementor-button { color: var(--c-primary-dark); }
.elementor .pp-btn--light .elementor-button { background: #fff; color: var(--c-primary-dark); }
.elementor .pp-btn--outline-light .elementor-button { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .8); }
.skin-vanuamed .elementor .pp-btn .elementor-button { border-radius: 6px; }
.elementor .e-con.pp-actions { --flex-direction: row; --flex-wrap: wrap; --gap: 10px; --width: 100%; }
.elementor .e-con.pp-actions > .elementor-widget { width: auto; }

/* ---------- rows: head row, split, steps, trust ---------- */
.elementor .e-con.pp-head-row { --flex-direction: row; --flex-wrap: wrap; --justify-content: space-between; --align-items: flex-end; --gap: 16px; margin-bottom: 12px; }
.elementor .e-con.pp-head-row > .e-con { --width: auto; --gap: 8px; }
.elementor .e-con.pp-head-row > .elementor-widget { width: auto; }

.elementor .e-con.split { --flex-direction: column; --gap: 32px; --align-items: center; }
.elementor .e-con.split > .e-con { --width: 100%; --gap: 16px; }
@media (min-width: 900px) {
	.elementor .e-con.split { --flex-direction: row; --flex-wrap: nowrap; --gap: 64px; }
	.elementor .e-con.split > .e-con { --width: auto; flex: 1 1 0; }
}
.elementor .pp-img img { width: 100%; height: auto; border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.elementor .pp-img--plain img { box-shadow: none; }

.elementor .e-con.steps { --flex-direction: column; --gap: 16px; }
@media (min-width: 900px) { .elementor .e-con.steps:not(.steps--stacked) { --flex-direction: row; --flex-wrap: nowrap; } }
.elementor .e-con.steps > .e-con { --width: auto; flex: 1 1 0; }
.elementor .e-con.steps__item { --gap: 6px; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); --padding-top: 24px; --padding-bottom: 24px; --padding-left: 24px; --padding-right: 24px; }
.elementor .steps__num .elementor-heading-title { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--c-primary); color: var(--c-primary-ink, #fff); font: 800 1rem/1 var(--f-body); }
.skin-vila .elementor .steps__num .elementor-heading-title { background: var(--c-accent); }
.elementor .steps__title .elementor-heading-title { font-family: var(--f-head); font-weight: var(--w-head); font-size: 1.2rem; color: var(--c-ink); }
.elementor .steps__text { color: var(--c-ink-soft); }
.elementor .steps__text p { margin: 0; }

.elementor .e-con.trust { background: var(--c-ink); --padding-top: 28px; --padding-bottom: 28px; }
.skin-vila .elementor .e-con.trust { background: var(--c-accent); }
.skin-vanuamed .elementor .e-con.trust { background: var(--c-bg-tint); }
.elementor .e-con.trust__list { display: grid !important; grid-template-columns: repeat(2, 1fr); gap: 20px; }
@media (min-width: 900px) { .elementor .e-con.trust__list { grid-template-columns: repeat(4, 1fr); } }
.elementor .e-con.trust__list > .e-con { --gap: 2px; }
.elementor .trust__value .elementor-heading-title { font: var(--w-head) clamp(1.6rem, 4vw, 2.3rem)/1 var(--f-head); color: #fff; }
.elementor .trust__label { color: rgba(255, 255, 255, .8); font-size: .9rem; }
.elementor .trust__label p { margin: 0; }
.skin-vanuamed .elementor .trust__value .elementor-heading-title { color: var(--c-primary); }
.skin-vanuamed .elementor .trust__label { color: var(--c-ink-soft); }

/* ---------- FAQ (accordion widget) ---------- */
.elementor .pp-faq .elementor-accordion-item { background: #fff; border: 1px solid var(--c-line) !important; border-radius: var(--radius); margin-bottom: 10px; overflow: hidden; }
.elementor .pp-faq .elementor-tab-title { padding: 18px 20px; font: 700 1rem/1.4 var(--f-body); color: var(--c-ink); border: 0 !important; }
.elementor .pp-faq .elementor-tab-title a { color: inherit; text-decoration: none; }
.elementor .pp-faq .elementor-accordion-icon { color: var(--c-primary); }
.elementor .pp-faq .elementor-tab-content { padding: 0 20px 18px; color: var(--c-ink-soft); border: 0 !important; }
.elementor .pp-faq .elementor-tab-content p { margin: 0; }

/* ---------- CTA band ---------- */
.elementor .e-con.cta-band { background: linear-gradient(120deg, var(--c-primary), var(--c-primary-dark)); --padding-top: 56px; --padding-bottom: 56px; }
.skin-vila .elementor .e-con.cta-band { background: linear-gradient(120deg, #00773a, #0a6f63); }
.skin-vanuamed .elementor .e-con.cta-band { background: var(--c-primary); }
.elementor .e-con.cta-band__inner { --flex-direction: column; --gap: 20px; }
@media (min-width: 900px) { .elementor .e-con.cta-band__inner { --flex-direction: row; --flex-wrap: nowrap; --justify-content: space-between; --align-items: center; } }
.elementor .e-con.cta-band__inner > .e-con { --width: auto; }
.elementor .cta-band__title .elementor-heading-title { color: #fff; font-family: var(--f-head); font-weight: var(--w-head); font-size: clamp(1.5rem, 3.6vw, 2.2rem); line-height: 1.2; }
.elementor .cta-band__text { color: #fff; opacity: .92; }
.elementor .cta-band__text p { margin: 0; }

/* ---------- content pages ---------- */
.elementor .e-con.pp-page-head { --padding-top: 40px; --padding-bottom: 0; --gap: 8px; }
.elementor .e-con.pp-page-body { --padding-top: 24px; --padding-bottom: 72px; }
.elementor .pp-prose { max-width: 760px; font-size: 1.04rem; }

/* ---------- embedded live sections ---------- */
.elementor .elementor-widget-shortcode { width: 100%; }
.supply__grid--embed { display: grid; gap: 24px; }

/* Elementor boxed containers line up exactly with the theme header/footer container. */
.elementor .e-con.e-parent { --container-max-width: calc(var(--container) - 2 * var(--gutter)); --padding-left: var(--gutter); --padding-right: var(--gutter); }
.elementor .e-con.e-parent.pp-hero { --padding-left: 0; --padding-right: 0; }

/* Content pages: tinted title band, text column beside a sticky help card, branded in-text buttons. */
.elementor .e-con.pp-page-head { --padding-top: clamp(40px, 6vw, 72px); --padding-bottom: clamp(32px, 5vw, 56px); background: linear-gradient(180deg, var(--c-bg-tint), color-mix(in srgb, var(--c-bg-tint) 40%, #fff)); border-bottom: 1px solid var(--c-line); }
.elementor .e-con.pp-page-body { --padding-top: clamp(32px, 5vw, 56px); }
.elementor .e-con.pp-page-grid, .elementor .e-con.pp-page-main, .elementor .e-con.pp-page-aside { --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; }
.elementor .e-con.pp-page-grid { --gap: clamp(32px, 5vw, 80px); --align-items: flex-start; --justify-content: space-between; }
.elementor .e-con.pp-page-main { --width: 100%; max-width: 780px; }
.elementor .e-con.pp-page-aside { --width: 100%; }
@media (min-width: 1000px) {
	.elementor .e-con.pp-page-grid { --flex-wrap: nowrap; }
	.elementor .e-con.pp-page-main { flex: 1 1 auto; }
	.elementor .e-con.pp-page-aside { --width: 360px; flex: 0 0 360px; position: sticky; top: calc(var(--header-h) + 24px); }
}
.help-card { padding: 28px; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.help-card__eyebrow { margin: 0 0 6px; color: var(--c-primary-dark); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.help-card__title { margin: 0 0 8px; font: var(--w-head) 1.35rem/1.2 var(--f-head); color: var(--c-ink); }
.help-card__text { color: var(--c-ink-soft); font-size: .95rem; }
.help-card__list { list-style: none; margin: 0 0 20px; padding: 0; border-top: 1px solid var(--c-line); }
.help-card__item { padding: 12px 0 12px 30px; border-bottom: 1px solid var(--c-line); font-weight: 600; font-size: .95rem; background: no-repeat left center / 18px; }
.help-card__item a { color: var(--c-ink); text-decoration: none; }
.help-card__item a:hover { color: var(--c-primary-dark); text-decoration: underline; }
.help-card__item--phone { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234a6274' stroke-width='2'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.help-card__item--whatsapp { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2325d366' d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2z'/%3E%3C/svg%3E"); }
.help-card__item--place { color: var(--c-ink-soft); font-weight: 500; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234a6274' stroke-width='2'%3E%3Cpath d='M12 22s7-6.2 7-12a7 7 0 0 0-14 0c0 5.8 7 12 7 12z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
.help-card__cta { width: 100%; }
.pp-prose .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0; }
.pp-prose .wp-block-button__link { display: inline-flex; align-items: center; min-height: 48px; padding: .7em 1.4em; border-radius: 999px; border: 2px solid var(--c-primary); background: var(--c-primary); color: var(--c-primary-ink); font-weight: 650; text-decoration: none; }
.pp-prose .wp-block-button__link:hover { background: var(--c-primary-dark); border-color: var(--c-primary-dark); color: var(--c-primary-ink); }
.pp-prose .is-style-outline .wp-block-button__link { background: transparent; color: var(--c-primary-dark); }
.pp-prose .is-style-outline .wp-block-button__link:hover { background: var(--c-bg-tint); color: var(--c-primary-dark); }
