/* ============================================================
   EcoCeylon — Elementor bridge stylesheet
   Maps the original design classes onto Elementor's native widget markup
   so native widgets (button, text-editor, heading, image, container)
   render with the original design. Loaded after design.css.
   ============================================================ */

/* ---- Containers: Elementor adds its own flex; let our classes drive layout ---- */
.elementor-element.hero,
.elementor-element.section,
.elementor-element.services-dark-bg,
.elementor-element.testimonials-bg,
.elementor-element.cta-section,
.elementor-element.trust-strip { width: 100%; }

/* Elementor wraps our container content; keep our own max-width helper working */
.elementor-element.container > .e-con-inner,
.elementor-element.container { max-width: 1180px; margin: 0 auto; padding: 0 24px; }

/* ---- Button widget: our .btn styling targets Elementor's <a.elementor-button> ---- */
.elementor-widget-button.btn-gold .elementor-button,
.elementor-widget-button.btn-wa .elementor-button,
.elementor-widget-button.btn-white .elementor-button,
.elementor-widget-button.btn-primary .elementor-button,
.elementor-widget-button.btn-outline .elementor-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px 30px; border-radius: 60px; font-family: 'Inter', sans-serif;
  font-size: .9rem; font-weight: 600; white-space: nowrap; text-decoration: none;
  border: none; transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
  background-image: none;
}
.elementor-widget-button.btn-lg .elementor-button { padding: 17px 38px; font-size: 1rem; }
.elementor-widget-button.btn-sm .elementor-button { padding: 9px 20px; font-size: .82rem; }

.elementor-widget-button.btn-gold .elementor-button { background: var(--gold); color: var(--forest-dk); box-shadow: 0 4px 14px rgba(212,160,23,.40); }
.elementor-widget-button.btn-gold .elementor-button:hover { background: var(--gold-lt); transform: translateY(-2px); box-shadow: 0 8px 22px rgba(212,160,23,.50); }
.elementor-widget-button.btn-wa .elementor-button { background: #25D366; color: var(--white); box-shadow: 0 4px 14px rgba(37,211,102,.40); }
.elementor-widget-button.btn-wa .elementor-button:hover { background: #1ebe59; transform: translateY(-2px); box-shadow: 0 8px 22px rgba(37,211,102,.50); }
.elementor-widget-button.btn-white .elementor-button { background: var(--white); color: var(--forest); font-weight: 700; box-shadow: 0 4px 14px rgba(0,0,0,.12); }
.elementor-widget-button.btn-white .elementor-button:hover { background: var(--cream); transform: translateY(-2px); }
.elementor-widget-button.btn-primary .elementor-button { background: var(--forest); color: var(--white); box-shadow: 0 4px 14px rgba(44,95,46,.35); }
.elementor-widget-button.btn-primary .elementor-button:hover { background: var(--forest-lt); transform: translateY(-2px); box-shadow: 0 8px 22px rgba(44,95,46,.45); }
.elementor-widget-button.btn-outline .elementor-button { border: 2px solid var(--forest); color: var(--forest); background: transparent; }
.elementor-widget-button.btn-outline .elementor-button:hover { background: var(--forest); color: var(--white); transform: translateY(-2px); }
.elementor-widget-button .elementor-button-content-wrapper { display: contents; }

/* Button rows: keep the flex layout our .hero-btns / .cta-btns expect,
   overriding Elementor's per-widget block wrapping */
.elementor-element.hero-btns, .elementor-element.hero-btns > .e-con-inner,
.elementor-element.cta-btns, .elementor-element.cta-btns > .e-con-inner { display: flex; gap: 14px; flex-wrap: wrap; }
.elementor-element.hero-btns .elementor-widget-button,
.elementor-element.cta-btns .elementor-widget-button { width: auto; }

/* ---- text-editor widget carrying a design class: strip Elementor's <p> reset ---- */
.elementor-widget-text-editor.hero-badge .elementor-widget-container { display: inline-flex; }
.elementor-element.hero-badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(212,160,23,.18); border: 1px solid rgba(212,160,23,.48);
  border-radius: 60px; padding: 6px 16px; margin-bottom: 22px; width: auto;
}
.elementor-element.hero-badge span { font-size: .78rem; font-weight: 600; color: var(--gold-lt); letter-spacing: .08em; }

.elementor-element.hero-sub .elementor-widget-container { font-size: 1.1rem; color: rgba(255,255,255,.82); max-width: 540px; margin-bottom: 34px; }

/* hero stats row */
.elementor-element.hero-stats, .elementor-element.hero-stats > .e-con-inner { display: flex; gap: 36px; flex-wrap: wrap; margin-top: 56px; }
.elementor-element.hero-stat strong { display: block; font-family: 'Playfair Display', serif; font-size: 1.9rem; font-weight: 900; color: var(--gold-lt); }
.elementor-element.hero-stat span { font-size: .82rem; color: rgba(255,255,255,.68); }

/* hero content stacking */
.elementor-element.hero-content, .elementor-element.hero-content > .e-con-inner { position: relative; z-index: 1; max-width: 760px; align-items: flex-start; }

/* ===== Home page sections ===== */

/* section padding + eyebrow already come from design.css on the container class */
.elementor-element.section > .e-con-inner { padding-top: 96px; padding-bottom: 96px; }
.elementor-element.services-dark-bg > .e-con-inner,
.elementor-element.cta-section > .e-con-inner { padding-top: 96px; padding-bottom: 96px; }

/* grids map onto the inner flex container */
.elementor-element.grid-3, .elementor-element.grid-3 > .e-con-inner { display: grid !important; grid-template-columns: repeat(3,1fr); gap: 28px; }
.elementor-element.grid-2, .elementor-element.grid-2 > .e-con-inner { display: grid !important; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.elementor-element.services-grid, .elementor-element.services-grid > .e-con-inner { display: grid !important; grid-template-columns: repeat(3,1fr); gap: 18px; }
.elementor-element.trust-items, .elementor-element.trust-items > .e-con-inner { display: flex !important; gap: 40px; align-items: center; flex-wrap: wrap; justify-content: center; }



/* section-header: eyebrow/heading/text stack; our design.css handles the look,
   just ensure the eyebrow (text-editor) shows as block and centering works */
.elementor-element.section-header { margin-bottom: 52px; }
.elementor-element.section-header.center { text-align: center; }
.elementor-element.section-header .eyebrow .elementor-widget-container,
.elementor-widget-text-editor.eyebrow .elementor-widget-container { display: block; }

/* trust-strip */
.elementor-element.trust-item, .elementor-element.trust-item > .e-con-inner { display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.82); font-size: .88rem; font-weight: 500; }

/* benefit-card: container class already styled by design.css .benefit-card;
   ensure the icon (text-editor) box shows */
.elementor-element.benefit-card > .e-con-inner { display: block; }

/* service-card: image + overlay stack */
.elementor-element.service-card > .e-con-inner { position: relative; }

/* testimonial-card stacking */
.elementor-element.testimonial-card, .elementor-element.testimonial-card > .e-con-inner { display: flex; flex-direction: column; height: 100%; }
.elementor-element.testi-author, .elementor-element.testi-author > .e-con-inner { display: flex; align-items: center; gap: 12px; }

/* about check-list */
.elementor-element.check-list, .elementor-element.check-list > .e-con-inner { display: flex; flex-direction: column; gap: 11px; }
.elementor-element.check-item, .elementor-element.check-item > .e-con-inner { display: flex; align-items: center; gap: 11px; font-size: .93rem; color: var(--text-md); }

/* cta */
.elementor-element.cta-inner, .elementor-element.cta-inner > .e-con-inner { position: relative; z-index: 1; text-align: center; align-items: center; }
.elementor-element.cta-btns, .elementor-element.cta-btns, .elementor-element.cta-btns > .e-con-inner { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* image widget inside cards should fill */
.elementor-element.service-card .elementor-widget-image img,
.elementor-element.about-img-wrap .elementor-widget-image img { display: block; width: 100%; }

/* hero background layer (wrapped in a text-editor widget) */
.elementor-widget-text-editor.hero-bg-wrap { position: absolute; inset: 0; z-index: 0; }
.elementor-widget-text-editor.hero-bg-wrap .elementor-widget-container { position: absolute; inset: 0; }
.elementor-element.hero { position: relative; }
.elementor-element.hero > .e-con-inner { position: relative; z-index: 1; }

/* ensure containers with our section classes don't get Elementor's default max-width that fights ours */
.elementor-element.trust-strip,
.elementor-element.services-dark-bg,
.elementor-element.testimonials-bg,
.elementor-element.cta-section,
.elementor-element.section { width: 100%; max-width: 100%; }

/* eyebrow color inside dark/cta sections handled by design.css; keep block display */
.elementor-widget-text-editor.eyebrow .elementor-widget-container p { margin: 0; }

/* ===== Safety: never leave fade-in content invisible if JS observer doesn't fire ===== */
.elementor-page .fade-in { opacity: 1 !important; transform: none !important; }
.fade-in.visible { opacity: 1; transform: none; }

/* Ensure Elementor canvas pages show full-width content and Astra doesn't constrain */
.elementor-template-canvas .elementor-section-wrap,
.elementor-template-canvas .e-con { width: 100%; }

/* ===== CRITICAL FIX =====
   The original single-page design used `.page{display:none}` with JS showPage()
   to toggle views. WordPress/Astra add the `page` class to <body> and wrappers,
   so that rule hides the whole site. In the multi-page Elementor build there is
   no showPage() system, so force all `.page` elements visible. */
body.page,
.elementor .page,
.elementor-page .page,
.page { display: block !important; }
body.page { display: block !important; }

/* Force row direction on flex rows (override Elementor default column) */
.elementor-element.hero-btns, .elementor-element.hero-btns > .e-con-inner,
.elementor-element.cta-btns, .elementor-element.cta-btns > .e-con-inner,
.elementor-element.hero-stats, .elementor-element.hero-stats > .e-con-inner,
.elementor-element.trust-items, .elementor-element.trust-items > .e-con-inner,
.elementor-element.trust-item, .elementor-element.trust-item > .e-con-inner,
.elementor-element.testi-author, .elementor-element.testi-author > .e-con-inner,
.elementor-element.check-item, .elementor-element.check-item > .e-con-inner {
  display: flex !important; flex-direction: row !important; align-items: center;
}
.elementor-element.hero-btns, .elementor-element.cta-btns { flex-wrap: wrap; gap: 14px; }
.elementor-element.hero-stats { flex-wrap: wrap; gap: 36px; margin-top: 40px; }
.elementor-element.trust-items { flex-wrap: wrap; gap: 40px; justify-content: center; }
.elementor-element.check-list { display: flex !important; flex-direction: column !important; gap: 11px; align-items: flex-start; }
.elementor-element.testimonial-card { display: flex !important; flex-direction: column !important; }
.elementor-element.benefit-card { display: flex !important; flex-direction: column !important; align-items: flex-start; }

/* Fix trust-items: children shouldn't stretch full width */
.elementor-element.trust-items > .elementor-element { width: auto !important; flex: 0 0 auto; }
.elementor-element.trust-item { width: auto !important; }
/* Service cards: equal image height so the 3-col grid rows align */
.elementor-element.service-card .elementor-widget-image img { height: 240px; object-fit: cover; width: 100%; }
.elementor-element.service-card { height: 100%; }
.elementor-element.hero-stats > .elementor-element { width: auto !important; flex: 0 0 auto; }
.elementor-element.hero-btns > .elementor-element, .elementor-element.cta-btns > .elementor-element { width: auto !important; flex: 0 0 auto; }
.elementor-element.testi-author > .elementor-element { width: auto !important; flex: 0 0 auto; }
.elementor-element.check-item > .elementor-element { width: auto !important; flex: 0 0 auto; }

/* Fix double button background: the widget WRAPPER carries .btn-* too and gets
   styled by design.css. Neutralize the wrapper; keep styling only on inner <a>. */
.elementor-widget-button.btn, .elementor-widget-button[class*='btn-'] {
  background: transparent !important; box-shadow: none !important; padding: 0 !important;
  border: none !important; border-radius: 0 !important; transform: none !important;
}
.elementor-widget-button[class*='btn-'] .elementor-button { width: auto; }

/* ===== Service card: layer overlay OVER image (match original design) ===== */
.elementor-element.service-card { position: relative !important; aspect-ratio: 4/3; height: auto !important; border-radius: 16px; overflow: hidden; display: block !important; }
.elementor-element.service-card .elementor-widget-image { position: absolute; inset: 0; margin: 0; }
.elementor-element.service-card .elementor-widget-image .elementor-widget-container,
.elementor-element.service-card .elementor-widget-image figure,
.elementor-element.service-card .elementor-widget-image a { height: 100%; margin:0; }
.elementor-element.service-card .elementor-widget-image img { position:absolute; inset:0; width: 100% !important; height: 100% !important; object-fit: cover; }
.elementor-element.service-overlay { position: absolute !important; inset: 0; z-index: 2; display: flex !important; flex-direction: column !important; justify-content: flex-end; padding: 22px; background: linear-gradient(to top, rgba(26,61,28,.92) 0%, rgba(26,61,28,.18) 55%, transparent 100%); }
.elementor-element.service-overlay > .elementor-element { width: 100% !important; }

/* ===== Hero: center all content within the content box ===== */
.elementor-element.hero-content { margin-left: auto !important; margin-right: auto !important; max-width: 820px; text-align: center; align-items: center !important; }
.elementor-element.hero-content > .elementor-element { margin-left: auto; margin-right: auto; }
.elementor-element.hero-badge { margin-left: auto !important; margin-right: auto !important; }
.elementor-element.hero-content .elementor-heading-title { text-align: center; }
.elementor-element.hero-sub { text-align: center; }
.elementor-element.hero-sub .elementor-widget-container { margin-left: auto; margin-right: auto; }
.elementor-element.hero-btns { justify-content: center !important; }
.elementor-element.hero-stats { justify-content: center !important; }
.elementor-element.hero-stat { text-align: center; }

/* ===== About page components ===== */
.elementor-element.page-hero-inner { max-width: 800px; margin: 0 auto; text-align: center; align-items: center !important; }
.elementor-element.page-hero .elementor-heading-title { text-align:center; }
.elementor-element.page-hero-inner > .elementor-element { margin-left:auto; margin-right:auto; }
.elementor-element.text-center, .elementor-element.text-center .elementor-heading-title { text-align:center; }
.elementor-element.text-center { align-items:center !important; }
.elementor-element.mission-card { display:flex !important; flex-direction:column !important; align-items:center; text-align:center; }
.elementor-element.mission-card .elementor-heading-title { color: var(--white); }
.elementor-element.diff-grid { display:grid !important; grid-template-columns:1fr 1fr; gap:18px; max-width:900px; margin:0 auto; }

.elementor-element.diff-card { display:flex !important; flex-direction:row !important; gap:18px; align-items:flex-start; padding:22px; background:var(--white); border-radius:16px; box-shadow:0 2px 8px rgba(44,95,46,.10); border-left:4px solid var(--forest); }
.elementor-element.diff-card > .elementor-element { width:auto !important; }
.elementor-element.diff-card .diff-num { font-family:'Playfair Display',serif; font-size:2.2rem; font-weight:900; color:var(--sage-lt); line-height:1; }
.elementor-element.team-card { display:flex !important; flex-direction:column !important; background:var(--white); border-radius:16px; overflow:hidden; box-shadow:0 2px 8px rgba(44,95,46,.10); text-align:center; }
.elementor-element.team-card-img { height:230px; overflow:hidden; }
.elementor-element.team-card-img .elementor-widget-image, .elementor-element.team-card-img figure, .elementor-element.team-card-img a { height:100%; margin:0; }
.elementor-element.team-card-img img { width:100% !important; height:100% !important; object-fit:cover; }
.elementor-element.team-card-body { padding:22px; }
.elementor-element.about-story-img img { border-radius:32px; height:420px; object-fit:cover; width:100%; box-shadow:0 6px 24px rgba(44,95,46,.15); }

/* ===== Services page components ===== */
.elementor-element.service-full-card { display:flex !important; flex-direction:column !important; background:var(--white); border-radius:16px; overflow:hidden; box-shadow:0 2px 8px rgba(44,95,46,.10); height:100%; }
.elementor-element.service-full-img { height:210px; overflow:hidden; }
.elementor-element.service-full-img .elementor-widget-image, .elementor-element.service-full-img figure, .elementor-element.service-full-img a { height:100%; margin:0; }
.elementor-element.service-full-img img { width:100% !important; height:100% !important; object-fit:cover; }
.elementor-element.service-full-body { padding:26px; display:flex !important; flex-direction:column !important; align-items:flex-start; }
.elementor-element.how-step { display:flex !important; flex-direction:row !important; gap:18px; align-items:flex-start; padding:26px 0; border-bottom:1px solid var(--cream-dk); }
.elementor-element.how-step > .elementor-element { width:auto !important; }
.elementor-element.how-step .step-num { width:46px; height:46px; border-radius:50%; background:var(--forest); color:var(--white); display:flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-size:1.25rem; font-weight:700; }
.elementor-element.how-img img { border-radius:32px; width:100%; height:540px; object-fit:cover; box-shadow:0 6px 24px rgba(44,95,46,.15); }
.elementor-element.faq-narrow { max-width:760px; }
.elementor-element.faq-item { display:block !important; }
.elementor-element.service-full-body .elementor-widget-button { width:auto; }

/* ===== About page components ===== */
.elementor-element.page-hero { text-align: center; }
.elementor-element.page-hero-inner { max-width: 800px; margin: 0 auto !important; text-align: center; }
.elementor-element.page-hero-inner .elementor-heading-title { color: #fff; text-align:center; }
.elementor-element.page-hero-inner .elementor-widget-text-editor { color: rgba(255,255,255,.82); text-align:center; }
.elementor-element.page-hero-inner .eyebrow .elementor-widget-container { color: var(--gold-lt); }
.elementor-element.text-center { text-align: center; }
.elementor-element.text-center .elementor-heading-title { text-align:center; }
.elementor-element.mission-dark { background: var(--forest-dk); }
.elementor-element.mission-dark, .elementor-element.mission-dark .elementor-heading-title { color: #fff; }
.elementor-element.mission-dark .eyebrow .elementor-widget-container { color: var(--gold-lt); text-align:center; }
.elementor-element.mission-h .elementor-heading-title { color:#fff; max-width:700px; margin:8px auto 0; text-align:center; }
.elementor-element.mission-card { display:flex !important; flex-direction:column !important; align-items:center; text-align:center; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:16px; padding:32px 24px; }
.elementor-element.mission-card .elementor-heading-title { color:#fff; }
.elementor-element.mission-card .mission-icon { font-size:2.4rem; margin-bottom:14px; }
.elementor-element.diff-grid { display:grid !important; grid-template-columns:1fr 1fr; gap:18px; max-width:900px; margin:0 auto; }
.elementor-element.diff-card { display:flex !important; flex-direction:row !important; gap:18px; align-items:flex-start; padding:22px; background:#fff; border-radius:16px; box-shadow:var(--shadow-sm); border-left:4px solid var(--forest); }
.elementor-element.diff-card > .elementor-element { width:auto !important; }
.elementor-element.diff-card .diff-num { font-family:'Playfair Display',serif; font-size:2.2rem; font-weight:900; color:var(--sage-lt); line-height:1; }
.elementor-element.diff-body { flex:1; }
.elementor-element.sec-cream { background: var(--cream-dk); }
.elementor-element.team-card { display:flex !important; flex-direction:column !important; background:#fff; border-radius:16px; overflow:hidden; box-shadow:var(--shadow-sm); text-align:center; }
.elementor-element.team-card-img { height:230px; overflow:hidden; }
.elementor-element.team-card-img img { width:100% !important; height:230px !important; object-fit:cover; }
.elementor-element.team-card-body { padding:22px; }
.elementor-element.team-card-body .team-role { font-size:.83rem; color:var(--sage); font-weight:500; display:block; margin:4px 0 8px; }
.elementor-element.about-story-img img { border-radius:32px; height:420px; object-fit:cover; width:100%; box-shadow:var(--shadow-md); }

/* ===== Services page components ===== */
.elementor-element.service-full-card { display:flex !important; flex-direction:column !important; background:#fff; border-radius:16px; overflow:hidden; box-shadow:var(--shadow-sm); height:100%; }
.elementor-element.service-full-img { height:210px; overflow:hidden; }
.elementor-element.service-full-img img { width:100% !important; height:210px !important; object-fit:cover; }
.elementor-element.service-full-body { display:flex !important; flex-direction:column !important; align-items:flex-start; padding:26px; flex:1; }
.svc-pill { display:inline-block; font-size:.72rem; font-weight:700; letter-spacing:.06em; padding:5px 12px; border-radius:20px; margin-bottom:12px; text-transform:uppercase; }
.svc-pill.pill-gold{background:var(--gold);color:var(--forest-dk)} .svc-pill.pill-river{background:var(--river);color:#fff} .svc-pill.pill-forest{background:var(--forest);color:#fff} .svc-pill.pill-riverdk{background:var(--river-dk);color:#fff} .svc-pill.pill-earth{background:var(--earth);color:#fff} .svc-pill.pill-sage{background:var(--sage);color:#fff}
.sf-list{ list-style:none; padding:0; display:flex; flex-direction:column; gap:7px; margin:0 0 18px; flex:1; width:100%; }
.sf-list .sf{ position:relative; padding-left:22px; font-size:.87rem; color:var(--text-md); }
.sf-list .sf::before{ content:'\2713'; position:absolute; left:0; color:var(--forest-lt); font-weight:700; }
.elementor-element.how-step { display:flex !important; flex-direction:row !important; gap:18px; align-items:flex-start; padding:26px 0; border-bottom:1px solid var(--cream-dk); }
.elementor-element.how-step > .elementor-element { width:auto !important; }
.elementor-element.how-step-body { flex:1; }
.how-step .step-num{ width:46px; height:46px; border-radius:50%; background:var(--forest); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-size:1.25rem; font-weight:700; }
.elementor-element.how-img img{ border-radius:32px; width:100%; height:540px; object-fit:cover; box-shadow:var(--shadow-md); }
.elementor-element.faq-narrow{ max-width:760px; }
.faq-q{ display:flex !important; justify-content:space-between; align-items:center; width:100%; padding:19px 0; cursor:pointer; background:none; border:none; font-family:'Inter',sans-serif; font-weight:600; color:var(--forest-dk); font-size:.97rem; text-align:left; }
.faq-a{ display:none; padding:0 0 18px; font-size:.9rem; color:var(--text-md); line-height:1.7; }
.faq-item.open .faq-a{ display:block; }
.faq-item.open .faq-icon{ transform:rotate(45deg); }
.faq-icon{ font-size:1.1rem; color:var(--forest); transition:transform .3s; margin-left:16px; }

/* ===== Packages page components ===== */
.elementor-element.filter-bar { display:flex !important; flex-direction:row !important; gap:9px; flex-wrap:wrap; justify-content:center; margin-bottom:44px; }
.filter-bar .filter-btn{ padding:9px 20px; border-radius:60px; border:2px solid var(--cream-dk); background:#fff; font-family:'Inter',sans-serif; font-size:.83rem; font-weight:600; color:var(--text-md); cursor:pointer; transition:all .2s; }
.filter-bar .filter-btn:hover{ border-color:var(--forest); color:var(--forest); }
.filter-bar .filter-btn.active{ background:var(--forest); color:#fff; border-color:var(--forest); }
.elementor-element.pkg-grid { display:grid !important; grid-template-columns:repeat(3,1fr); gap:26px; }
.elementor-element.pkg-card { display:flex !important; flex-direction:column !important; background:#fff; border-radius:16px; overflow:hidden; box-shadow:var(--shadow-sm); height:100%; }
.elementor-element.pkg-card.hidden{ display:none !important; }
.elementor-element.pkg-img { position:relative !important; height:210px; overflow:hidden; }
.elementor-element.pkg-img .elementor-widget-image{ position:absolute; inset:0; margin:0; }
.elementor-element.pkg-img img{ position:absolute; inset:0; width:100% !important; height:210px !important; object-fit:cover; }
.elementor-element.pkg-img .elementor-widget-text-editor{ position:relative; z-index:2; }
.pkg-badge{ position:absolute; top:14px; left:14px; background:var(--gold); color:var(--forest-dk); font-size:.68rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; padding:4px 11px; border-radius:20px; z-index:3; }
.pkg-popular{ position:absolute; top:14px; right:14px; background:var(--forest); color:#fff; font-size:.68rem; font-weight:700; padding:4px 11px; border-radius:20px; z-index:3; }
.elementor-element.pkg-body{ display:flex !important; flex-direction:column !important; align-items:flex-start; padding:22px; flex:1; width:100%; }
.pkg-meta{ display:flex; gap:12px; margin-bottom:10px; flex-wrap:wrap; }
.pkg-meta-item{ font-size:.78rem; color:var(--text-lt); }
.pkg-footer{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:auto; width:100%; padding-top:14px; }
.pkg-price strong{ font-family:'Playfair Display',serif; font-size:1.25rem; color:var(--forest); display:block; } .pkg-price small{ font-size:.72rem; color:var(--text-lt); }
.pkg-foot-right{ display:flex; align-items:center; gap:10px; }
.pkg-rating{ display:flex; align-items:center; gap:4px; font-size:.78rem; color:var(--text-lt); } .pkg-rating .star{ color:var(--gold); }
.mb-20 .elementor-widget-container{ margin-bottom:20px; }

/* ===== Contact page components ===== */
.elementor-element.contact-grid{ display:grid !important; grid-template-columns:3fr 2fr; gap:44px; align-items:start; }
.elementor-element.contact-form-card{ display:block !important; background:#fff; border-radius:16px; padding:44px; box-shadow:var(--shadow-md); }
.elementor-element.contact-info-col{ display:flex !important; flex-direction:column !important; gap:18px; }
.elementor-element.info-block{ display:block !important; background:#fff; border-radius:16px; padding:26px; box-shadow:var(--shadow-sm); }
.info-row{ display:flex; align-items:flex-start; gap:11px; margin-bottom:11px; } .info-icon{ color:var(--gold); font-size:.95rem; margin-top:1px; } .info-text{ font-size:.88rem; color:var(--text-md); line-height:1.55; } .info-text strong{ display:block; } .info-text a{ color:var(--forest); text-decoration:none; }
.hours-row{ display:flex; justify-content:space-between; font-size:.88rem; margin-bottom:8px; } .hours-note{ font-size:.82rem; color:var(--sage); margin-top:10px; }
.map-box{ background:linear-gradient(135deg,var(--sage-lt),var(--cream-dk)); border-radius:16px; height:180px; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px; margin-bottom:10px; } .map-icon{ font-size:2rem; color:var(--forest); } .map-label{ font-weight:600; color:var(--forest-dk); }
.contact-social-btns{ display:flex; gap:9px; flex-wrap:wrap; margin-top:4px; }
.form-intro .elementor-widget-container{ margin-bottom:28px; font-size:.93rem; color:var(--text-md); }
.info-block h4, .elementor-element.info-block .elementor-heading-title{ font-size:1rem; margin-bottom:16px; color:var(--forest-dk); }
/* WPForms match design */
.contact-form-card .wpforms-field-label{ font-size:.85rem; font-weight:600; color:var(--forest-dk); }
.contact-form-card input[type=text], .contact-form-card input[type=email], .contact-form-card input[type=tel], .contact-form-card textarea, .contact-form-card select{ border:2px solid var(--cream-dk) !important; border-radius:10px !important; padding:12px 14px !important; font-family:'Inter',sans-serif !important; font-size:.92rem !important; background:#fff !important; }
.contact-form-card input:focus, .contact-form-card textarea:focus, .contact-form-card select:focus{ border-color:var(--forest) !important; outline:none !important; }
.contact-form-card .wpforms-submit{ background:var(--forest) !important; color:#fff !important; border:none !important; border-radius:60px !important; padding:15px 34px !important; font-family:'Inter',sans-serif !important; font-weight:600 !important; font-size:.95rem !important; cursor:pointer; transition:all .25s; }
.contact-form-card .wpforms-submit:hover{ background:var(--forest-lt) !important; transform:translateY(-2px); }

/* ===== Header template (Xpro) ===== */
.elementor-element.site-header-xpro{ background:rgba(248,245,239,.92); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:0 1px 0 rgba(0,0,0,.05); position:sticky; top:0; z-index:900; }
.elementor-element.header-inner{ display:flex !important; flex-direction:row !important; align-items:center; justify-content:space-between; gap:16px; min-height:72px; width:100%; }
.elementor-element.header-inner > .elementor-element{ width:auto !important; flex:0 0 auto; }
.elementor-element.header-nav{ flex:1 1 auto !important; }
.header-logo .logo{ display:flex; align-items:center; gap:11px; font-family:'Playfair Display',serif; font-size:1.2rem; font-weight:700; color:var(--forest-dk); text-decoration:none; }
.header-logo .logo img{ width:44px; height:44px; object-fit:contain; }
.header-logo .logo-name{ line-height:1.15; display:flex; flex-direction:column; }
.header-logo .logo-sub{ font-family:'Inter',sans-serif; font-size:.63rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; color:var(--sage); }
.header-nav{ display:flex !important; flex-direction:row; align-items:center; justify-content:center; gap:2px; }
.header-nav .nav-link{ padding:8px 13px; border-radius:8px; font-size:.88rem; font-weight:500; color:var(--text-md); text-decoration:none; transition:all .2s; white-space:nowrap; }
.header-nav .nav-link:hover{ background:var(--cream-dk); color:var(--forest); }
.elementor-element.header-cta{ flex:0 0 auto; }

/* ===== Footer template (Xpro) ===== */
.elementor-element.site-footer-xpro{ background:var(--forest-dk); padding:70px 0 30px; }
.elementor-element.footer-grid{ display:grid !important; grid-template-columns:2fr 1fr 1fr 1.5fr; gap:44px; margin-bottom:44px; }
.elementor-element.footer-col{ display:block !important; }
.elementor-element.footer-col p, .footer-col p{ font-size:.88rem; color:rgba(255,255,255,.65); line-height:1.75; }
.footer-logo-wrap{ display:flex; align-items:center; gap:11px; margin-bottom:14px; }
.footer-logo-wrap img{ width:42px; height:42px; object-fit:contain; }
.footer-logo-name{ font-family:'Playfair Display',serif; font-size:1.15rem; font-weight:700; color:#fff; }
.footer-tagline{ font-size:.82rem !important; color:var(--gold-lt) !important; font-style:italic; margin-top:10px !important; }
.social-row{ display:flex; gap:9px; margin-top:18px; }
.social-btn{ width:36px; height:36px; border-radius:9px; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; font-size:.88rem; color:rgba(255,255,255,.8); text-decoration:none; transition:all .2s; }
.social-btn:hover{ background:var(--forest); }
.footer-heading{ font-family:'Inter',sans-serif; font-weight:700; font-size:.72rem; letter-spacing:.15em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; }
.footer-nav-links{ display:flex; flex-direction:column; gap:11px; }
.footer-nav-link{ font-size:.88rem; color:rgba(255,255,255,.62); text-decoration:none; transition:color .2s; }
.footer-nav-link:hover{ color:#fff; }
.footer-contact-row{ display:flex; gap:10px; margin-bottom:11px; align-items:flex-start; }
.footer-contact-icon{ color:var(--gold); font-size:.9rem; margin-top:2px; }
.footer-contact-text{ font-size:.88rem; color:rgba(255,255,255,.65); } .footer-contact-text a{ color:rgba(255,255,255,.65); text-decoration:none; } .footer-contact-text a:hover{ color:#fff; }
.elementor-element.footer-bottom{ border-top:1px solid rgba(255,255,255,.1); padding-top:26px; text-align:center; }
.footer-bottom p{ font-size:.82rem; color:rgba(255,255,255,.38); }

/* WA float always visible */
.elementor-element.wa-float-wrap{ position:static; min-height:0; padding:0; }
.wa-float{ position:fixed !important; bottom:26px; right:26px; z-index:999; width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.6rem; text-decoration:none; box-shadow:0 6px 20px rgba(37,211,102,.5); }
.wa-float .wa-tooltip{ position:absolute; right:68px; background:var(--text-dk); color:#fff; font-size:.78rem; font-weight:500; padding:7px 13px; border-radius:8px; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .2s; }
.wa-float:hover .wa-tooltip{ opacity:1; }

/* ============ RESPONSIVE / MOBILE ============ */
@media (max-width:960px){
  .elementor-element.grid-3, .elementor-element.services-grid, .elementor-element.pkg-grid { grid-template-columns:1fr 1fr !important; }
  .elementor-element.footer-grid { grid-template-columns:1fr 1fr !important; }
  .elementor-element.contact-grid { grid-template-columns:1fr !important; }
  .elementor-element.diff-grid { grid-template-columns:1fr !important; }
}
@media (max-width:720px){
  .elementor-element.grid-3, .elementor-element.grid-2, .elementor-element.services-grid, .elementor-element.pkg-grid, .elementor-element.footer-grid, .elementor-element.contact-grid, .elementor-element.diff-grid { grid-template-columns:1fr !important; }
  .elementor-element.header-inner { flex-wrap:wrap; gap:10px; min-height:0; padding:10px 0; }
  .header-nav { flex-wrap:wrap; justify-content:center; width:100%; order:3; }
  .header-nav .nav-link { padding:7px 10px; font-size:.82rem; }
  .elementor-element.header-cta { order:2; }
  .elementor-element.hero { min-height:auto; padding:120px 0 60px; }
  .elementor-element.hero-btns { flex-direction:column !important; align-items:stretch; }
  .elementor-element.hero-btns > .elementor-element { width:100% !important; }
  .elementor-element.hero-stats { gap:20px; justify-content:space-around; }
  .elementor-element.trust-items { flex-direction:column !important; align-items:center; gap:16px; }
  .elementor-element.cta-btns { flex-direction:column !important; align-items:stretch; }
  .elementor-element.cta-btns > .elementor-element { width:100% !important; }
  .elementor-element.how-step { padding:18px 0; }
  .elementor-element.filter-bar { gap:7px; }
  .filter-bar .filter-btn{ padding:7px 14px; font-size:.78rem; }
  .elementor-element.section { padding-left:0; padding-right:0; }
  .elementor-element.contact-form-card { padding:26px; }
}
@media (max-width:480px){
  .header-logo .logo-name{ font-size:1rem; }
  .elementor-element.hero-stats { flex-wrap:wrap; gap:16px; }
  .elementor-element.hero-stat { width:40% !important; }
  .wa-float{ width:52px; height:52px; bottom:18px; right:18px; }
}

/* MOBILE HEADER FIX + width */
@media (max-width:720px){
  .site-header-xpro .header-nav, .site-header-xpro nav, .site-header-xpro .header-cta, .elementor-element.header-cta { display:flex !important; }
  .site-header-xpro .header-nav { display:flex !important; flex-wrap:wrap; justify-content:center; width:100%; gap:2px; }
  .site-header-xpro .header-nav .nav-link { display:inline-block !important; }
  .elementor-element.header-inner { flex-wrap:wrap !important; justify-content:center; gap:10px; padding:12px 0; }
  .elementor-element.header-logo { order:1; }
  .elementor-element.header-nav { order:3; }
  .elementor-element.header-cta { order:2; }
  .site-header-xpro { position:sticky; top:0; }
  .elementor-element.container, .elementor-section.container, .container { max-width:100% !important; padding-left:18px !important; padding-right:18px !important; }
  .e-con-boxed > .e-con-inner, .e-con.e-con-boxed { max-width:100% !important; }
  .elementor-element.e-con-boxed { --container-max-width:100%; }
}
@media (max-width:480px){
  .site-header-xpro .header-nav .nav-link { padding:6px 9px; font-size:.8rem; }
  .elementor-element.container, .container { padding-left:14px !important; padding-right:14px !important; }
}

/* HAMBURGER MENU */
.header-hamburger, .elementor-element.header-hamburger { display:none; }
.eco-mobile-menu-wrap, .eco-mobile-menu { display:none; }
.hamburger{ display:none; flex-direction:column; justify-content:center; gap:5px; width:42px; height:42px; background:none; border:none; cursor:pointer; padding:8px; }
.hamburger span{ display:block; width:24px; height:2px; background:var(--forest-dk); border-radius:2px; transition:all .3s; }
.hamburger.active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hamburger.active span:nth-child(2){ opacity:0; }
.hamburger.active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.eco-mobile-menu{ position:fixed; top:64px; left:0; right:0; background:var(--cream); box-shadow:0 12px 24px rgba(0,0,0,.12); flex-direction:column; padding:16px 24px 24px; gap:4px; z-index:895; transform:translateY(-12px); opacity:0; pointer-events:none; transition:all .28s ease; border-top:1px solid var(--cream-dk); }
.eco-mobile-menu.open{ transform:translateY(0); opacity:1; pointer-events:auto; }
.eco-mm-link{ padding:14px 8px; font-size:1rem; font-weight:600; color:var(--forest-dk); text-decoration:none; border-bottom:1px solid var(--cream-dk); }
.eco-mm-link:hover{ color:var(--forest); }
.eco-mm-cta{ margin-top:14px; text-align:center; }
body.eco-menu-open{ overflow:hidden; }
@media (max-width:720px){
  .header-hamburger, .elementor-element.header-hamburger{ display:block !important; }
  .hamburger{ display:flex !important; }
  .eco-mobile-menu-wrap{ display:block !important; }
  .eco-mobile-menu{ display:flex; }
  .site-header-xpro .header-nav, .elementor-element.header-nav{ display:none !important; }
  .site-header-xpro .header-cta, .elementor-element.header-cta{ display:none !important; }
  .elementor-element.header-inner{ flex-wrap:nowrap !important; justify-content:space-between !important; padding:8px 0; min-height:64px; }
  .elementor-element.header-logo{ order:1; } .elementor-element.header-hamburger{ order:2; }
}

/* XPRO WRAPPER FIX - ensure header wrapper visible everywhere incl mobile */
.xpro-theme-builder-header{ position:sticky !important; top:0; z-index:900; display:block !important; visibility:visible !important; height:auto !important; }
.xpro-theme-builder-header-nav{ display:block !important; }
.xpro-theme-builder-header .elementor-element.site-header-xpro{ position:static !important; }
@media (max-width:720px){
  .xpro-theme-builder-header, .xpro-theme-builder-header-nav, .site-header-xpro{ display:block !important; visibility:visible !important; height:auto !important; min-height:64px; }
  .xpro-theme-builder-header .header-inner{ display:flex !important; }
}

/* HAMBURGER POLISH - remove green box, clean icon */
.header-hamburger, .elementor-element.header-hamburger, .header-hamburger .elementor-widget-container{ background:transparent !important; box-shadow:none !important; padding:0 !important; margin:0 !important; border:none !important; }
.hamburger{ background:transparent !important; border:none !important; box-shadow:none !important; padding:8px !important; width:44px; height:44px; }
.hamburger span{ background:var(--forest-dk) !important; }
.hamburger.active span{ background:var(--forest-dk) !important; }

/* HEADING COLORS FIX - override Elementor default blue with design colors */
.elementor-page .elementor-heading-title, .elementor .elementor-heading-title{ color:var(--text-dk); }
.elementor-element.hero .elementor-heading-title{ color:var(--white) !important; }
.elementor-element.hero .elementor-heading-title em{ color:var(--gold-lt) !important; font-style:normal; }
.elementor-element.page-hero .elementor-heading-title{ color:var(--white) !important; }
.elementor-element.section-header .elementor-heading-title,
.elementor-element.benefit-card .elementor-heading-title,
.elementor-element.diff-card .elementor-heading-title,
.elementor-element.team-card .elementor-heading-title,
.elementor-element.service-full-card .elementor-heading-title,
.elementor-element.how-step .elementor-heading-title,
.elementor-element.pkg-card .elementor-heading-title,
.elementor-element.contact-form-card .elementor-heading-title,
.elementor-element.info-block .elementor-heading-title,
.elementor-element.about-story .elementor-heading-title{ color:var(--forest-dk) !important; }
.elementor-element.services-dark .elementor-heading-title,
.elementor-element.service-card .elementor-heading-title,
.elementor-element.cta-inner .elementor-heading-title,
.elementor-element.cta-section .elementor-heading-title,
.elementor-element.mission-dark .elementor-heading-title,
.elementor-element.mission-card .elementor-heading-title,
.elementor-element.testimonials-dark .elementor-heading-title{ color:var(--white) !important; }
.elementor-element.testimonial-card .elementor-heading-title{ color:var(--forest-dk) !important; }


/* PACKAGES 2-CARD LAYOUT v2 */
.elementor-element.pkg-grid{ display:grid !important; grid-template-columns:repeat(2, minmax(0,1fr)) !important; gap:26px; max-width:800px; margin:0 auto; }
.elementor-element.pkg-grid > .elementor-element.pkg-card{ width:auto !important; max-width:none; }
@media (max-width:720px){ .elementor-element.pkg-grid{ grid-template-columns:1fr !important; max-width:100%; } }






/* TRUST STRIP - final consistent horizontal layout */
.elementor-element.trust-items{ display:flex !important; flex-direction:row !important; flex-wrap:wrap; justify-content:center; align-items:center; gap:22px 44px; width:100%; }
.elementor-element.trust-items > .elementor-element{ flex:0 0 auto; width:auto !important; }
.elementor-element.trust-items > .elementor-element .elementor-widget-container{ display:block; }
.trust-items .trust-item{ display:flex !important; flex-direction:row !important; align-items:center; gap:11px; }
.trust-items .trust-icon{ width:38px; height:38px; border-radius:50%; background:rgba(212,160,23,.18); display:flex; align-items:center; justify-content:center; font-size:1rem; flex-shrink:0; }
.trust-items .trust-icon img.emoji{ width:18px; height:18px; }
.trust-items .trust-label{ color:#ffffff !important; font-size:.9rem; font-weight:600; line-height:1.3; white-space:nowrap; }
.elementor-element.trust-strip, .elementor-element.trust-forest{ background:var(--forest-dk); }
@media (max-width:600px){ .elementor-element.trust-items{ flex-direction:column; gap:16px; } .trust-items .trust-label{ white-space:normal; } }

/* FONT FAMILY + SIZE FIX - match original design typography */
.elementor-page .elementor-heading-title, .elementor .elementor-heading-title, .elementor-widget-heading .elementor-heading-title{ font-family:'Playfair Display', Georgia, serif !important; line-height:1.2; }
.elementor-widget-heading h1.elementor-heading-title{ font-size:clamp(2.1rem,5.5vw,4rem) !important; font-weight:900 !important; }
.elementor-widget-heading h2.elementor-heading-title{ font-size:clamp(1.65rem,3.5vw,2.6rem) !important; font-weight:700 !important; }
.elementor-widget-heading h3.elementor-heading-title{ font-size:clamp(1.05rem,2vw,1.4rem) !important; font-weight:600 !important; }
.elementor-widget-heading h4.elementor-heading-title{ font-size:1.05rem !important; font-weight:600 !important; }
.elementor-page .elementor-widget-text-editor, .elementor-widget-text-editor{ font-family:'Inter', -apple-system, sans-serif !important; line-height:1.65; }
.elementor-widget-text-editor p{ font-family:'Inter', sans-serif !important; }
.elementor-button, .btn{ font-family:'Inter', sans-serif !important; }
.elementor-element.section-header .elementor-widget-text-editor{ font-size:1rem; }

/* CHECK-LIST INLINE FIX - icon beside text on one line */
.elementor-element.check-item .elementor-widget-text-editor .elementor-widget-container{ display:flex !important; flex-direction:row !important; align-items:center; gap:11px; }
.elementor-element.check-item .elementor-widget-container{ display:flex !important; flex-direction:row !important; align-items:center; gap:11px; }
.elementor-element.check-item{ display:flex !important; flex-direction:row !important; align-items:center; }
.check-item .check-icon{ width:22px; height:22px; min-width:22px; border-radius:50%; background:var(--sage-lt); color:var(--forest-dk); display:inline-flex !important; align-items:center; justify-content:center; font-size:.75rem; font-weight:700; flex:0 0 22px; }
.check-item .elementor-widget-container p{ margin:0; display:inline; }
.elementor-element.check-list{ display:flex !important; flex-direction:column !important; gap:13px; align-items:flex-start; }

/* CHECK-LIST SPACING + LEFT ALIGN */
.elementor-element.check-list{ padding-left:0 !important; margin-left:0 !important; list-style:none; align-items:flex-start; }
.elementor-element.check-list > .elementor-element{ padding-left:0 !important; margin-left:0 !important; }
.elementor-element.check-item{ padding-left:0 !important; margin-left:0 !important; }
.elementor-element.check-item .elementor-widget-container{ padding-left:0 !important; }
.elementor-element.check-item .elementor-widget-text-editor .elementor-widget-container,
.elementor-element.check-item .elementor-widget-container{ gap:13px !important; }
.elementor-element.check-list{ gap:14px; }

/* CHECK ICON MARGIN - guarantee space between icon and text */
.elementor-element.check-item .check-icon{ margin-right:12px !important; }

/* DARK SECTION HEADER WHITE - fix invisible heading on dark services section */
.elementor-element.services-dark .elementor-element.section-header .elementor-heading-title,
.elementor-element.services-dark-bg .elementor-element.section-header .elementor-heading-title{ color:#ffffff !important; }
.elementor-element.services-dark .elementor-element.section-header .elementor-widget-text-editor,
.elementor-element.services-dark-bg .elementor-element.section-header .elementor-widget-text-editor{ color:rgba(255,255,255,.78) !important; }

/* SERVICES GRID 2-CARD - center 2 cards on home + services */
.elementor-element.services-grid{ display:grid !important; grid-template-columns:repeat(2, minmax(0,1fr)) !important; gap:26px; max-width:800px; margin:0 auto; }
@media (max-width:720px){ .elementor-element.services-grid{ grid-template-columns:1fr !important; max-width:100%; } }

/* CONTACT FORM LAYOUT - match design */
.contact-form-card .wpforms-field-container{ display:flex; flex-wrap:wrap; gap:0 18px; }
.contact-form-card .wpforms-field{ width:100%; padding:0 0 18px !important; }
.contact-form-card .wpforms-field.wpforms-field-half{ width:calc(50% - 9px); }
.contact-form-card .wpforms-field-name .wpforms-field-row{ display:flex; gap:18px; }
.contact-form-card .wpforms-field-name .wpforms-field-row-block{ flex:1; width:auto !important; }
.contact-form-card .wpforms-field-label{ font-family:'Inter',sans-serif !important; font-size:.85rem !important; font-weight:600 !important; color:var(--forest-dk) !important; margin-bottom:7px !important; }
.contact-form-card .wpforms-required-label{ color:#d33 !important; }
.contact-form-card input[type=text], .contact-form-card input[type=email], .contact-form-card input[type=tel], .contact-form-card textarea, .contact-form-card select{ width:100% !important; border:1px solid var(--cream-dk) !important; border-radius:10px !important; padding:13px 15px !important; font-family:'Inter',sans-serif !important; font-size:.92rem !important; background:#faf8f4 !important; color:var(--text-dk) !important; }
.contact-form-card input:focus, .contact-form-card textarea:focus, .contact-form-card select:focus{ border-color:var(--forest) !important; outline:none !important; background:#fff !important; }
.contact-form-card textarea{ min-height:130px !important; resize:vertical; }
.contact-form-card .wpforms-field-sublabel{ display:none !important; }
.contact-form-card .wpforms-submit-container{ width:100%; padding-top:6px !important; display:flex; gap:14px; flex-wrap:wrap; }
.contact-form-card button.wpforms-submit{ background:var(--forest-dk) !important; color:#fff !important; border:none !important; border-radius:60px !important; padding:15px 32px !important; font-family:'Inter',sans-serif !important; font-weight:600 !important; font-size:.95rem !important; cursor:pointer; transition:all .25s; }
.contact-form-card button.wpforms-submit:hover{ background:var(--forest) !important; transform:translateY(-2px); }
.contact-form-card .wa-instead-btn{ display:inline-flex; align-items:center; gap:8px; background:#25D366 !important; color:#fff !important; border-radius:60px; padding:15px 32px; font-family:'Inter',sans-serif; font-weight:600; font-size:.95rem; text-decoration:none; transition:all .25s; }
.contact-form-card .wa-instead-btn:hover{ background:#1eb855 !important; transform:translateY(-2px); }
@media (max-width:600px){ .contact-form-card .wpforms-field.wpforms-field-half{ width:100%; } .contact-form-card .wpforms-field-name .wpforms-field-row{ flex-direction:column; gap:0; } }

/* FORM BUTTONS EQUAL - same height, aligned */
.contact-form-card .wpforms-submit-container{ display:flex !important; align-items:stretch !important; gap:14px; flex-wrap:wrap; padding-top:8px !important; margin:0 !important; }
.contact-form-card .wpforms-submit-container button.wpforms-submit,
.contact-form-card .wpforms-submit-container .wa-instead-btn{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  height:54px !important; min-height:54px !important; line-height:1 !important;
  padding:0 30px !important; margin:0 !important;
  border-radius:60px !important; border:none !important;
  font-family:'Inter',sans-serif !important; font-weight:600 !important; font-size:.95rem !important;
  box-sizing:border-box !important; white-space:nowrap; text-decoration:none; cursor:pointer;
  transition:all .25s;
}
.contact-form-card .wpforms-submit-container button.wpforms-submit{ background:var(--forest-dk) !important; color:#fff !important; }
.contact-form-card .wpforms-submit-container button.wpforms-submit:hover{ background:var(--forest) !important; transform:translateY(-2px); }
.contact-form-card .wpforms-submit-container .wa-instead-btn{ background:#25D366 !important; color:#fff !important; }
.contact-form-card .wpforms-submit-container .wa-instead-btn:hover{ background:#1eb855 !important; transform:translateY(-2px); }
.contact-form-card .wpforms-submit-spinner{ display:none !important; }
@media (max-width:600px){ .contact-form-card .wpforms-submit-container{ flex-direction:column; } .contact-form-card .wpforms-submit-container button.wpforms-submit, .contact-form-card .wpforms-submit-container .wa-instead-btn{ width:100% !important; } }

/* NAME ROW ALIGN - match other field widths/left edge */
.contact-form-card .wpforms-field-name .wpforms-field-row{ display:flex !important; gap:18px !important; margin:0 !important; }
.contact-form-card .wpforms-field-name .wpforms-field-row-block{ flex:1 1 0 !important; width:auto !important; padding:0 !important; margin:0 !important; float:none !important; }
.contact-form-card .wpforms-field-name .wpforms-field-row-block input{ width:100% !important; }
.contact-form-card .wpforms-field-name{ padding-left:0 !important; padding-right:0 !important; }
.contact-form-card input[type=text], .contact-form-card input[type=email], .contact-form-card select{ height:48px !important; }

/* NAME ROW FIX v2 - kill space-between + fixed widths */
.contact-form-card .wpforms-field-name .wpforms-field-row{ display:flex !important; justify-content:flex-start !important; gap:18px !important; width:100% !important; }
.contact-form-card .wpforms-field-name .wpforms-field-row-block{ flex:1 1 50% !important; width:calc(50% - 9px) !important; max-width:none !important; min-width:0 !important; padding:0 !important; margin:0 !important; float:none !important; display:block !important; }
.contact-form-card .wpforms-field-name .wpforms-field-row-block input{ width:100% !important; box-sizing:border-box !important; }
.contact-form-card .wpforms-field-row-block.wpforms-one-half{ margin-left:0 !important; width:calc(50% - 9px) !important; }

/* BACKGROUND FIXES - match original design */
.elementor-element.cta-section{ background:linear-gradient(135deg, var(--forest-dk) 0%, var(--forest) 60%, var(--river-dk) 100%) !important; }
.elementor-element.cta-section .elementor-heading-title{ color:#fff !important; }
.elementor-element.cta-section .elementor-widget-text-editor{ color:rgba(255,255,255,.82) !important; }
.elementor-element.cta-section .eyebrow .elementor-widget-container{ color:var(--gold-lt) !important; }
.elementor-element.testimonials-bg{ background:var(--cream-dk); }
.elementor-element.trust-strip{ background:var(--forest-dk); }
.elementor-element.services-dark-bg{ background:var(--forest-dk); }

/* PAGE HERO GRADIENTS - per-page like original design */
.page-id-169 .elementor-element.page-hero{ background-image:linear-gradient(135deg, var(--forest-dk), var(--forest)) !important; }
.page-id-172 .elementor-element.page-hero{ background-image:linear-gradient(135deg, var(--forest-dk), var(--river-dk)) !important; }
.page-id-174 .elementor-element.page-hero{ background-image:linear-gradient(135deg, var(--earth), var(--forest)) !important; }
.page-id-176 .elementor-element.page-hero{ background-image:linear-gradient(135deg, var(--river-dk), var(--forest-dk)) !important; }
.elementor-element.page-hero > .elementor-background-overlay{ display:none !important; }
.elementor-element.page-hero{ background-size:cover; background-position:center; }

/* ELEMENTOR LAZY-BG OVERRIDE - Elementor sets 'background:none' on containers nth-of-type(n+4) */
.elementor .e-con.e-parent.cta-section, .elementor-element.e-con.cta-section, body .elementor-element.cta-section{
  background-image:linear-gradient(135deg, var(--forest-dk) 0%, var(--forest) 60%, var(--river-dk) 100%) !important;
  background-color:var(--forest-dk) !important;
}
.elementor .e-con.e-parent.trust-strip, body .elementor-element.trust-strip{ background-color:var(--forest-dk) !important; }
.elementor .e-con.e-parent.services-dark-bg, body .elementor-element.services-dark-bg{ background-color:var(--forest-dk) !important; }
.elementor .e-con.e-parent.testimonials-bg, body .elementor-element.testimonials-bg{ background-color:var(--cream-dk) !important; }
.elementor .e-con.e-parent.sec-cream, body .elementor-element.sec-cream{ background-color:var(--cream-dk) !important; }
.elementor .e-con.e-parent.mission-dark, body .elementor-element.mission-dark{ background-color:var(--forest-dk) !important; }

/* FAQ FOCUS FIX - no green bar on click/focus, match original */
.faq-q, .faq-q:hover, .faq-q:focus, .faq-q:active, .faq-q:focus-visible, .faq-item.open .faq-q{
  background:transparent !important; background-color:transparent !important;
  color:var(--forest-dk) !important;
  border:none !important; box-shadow:none !important; outline:none !important;
  padding:19px 0 !important; margin:0 !important;
  font-family:'Inter',sans-serif !important; font-weight:600 !important; font-size:.97rem !important;
  text-align:left !important; width:100% !important;
  display:flex !important; justify-content:space-between !important; align-items:center !important;
  cursor:pointer;
}
.faq-q:focus-visible{ outline:2px solid var(--sage) !important; outline-offset:2px; }
.faq-item{ border-bottom:1px solid var(--cream-dk); }
.faq-a{ padding:0 0 18px !important; font-size:.9rem !important; color:var(--text-md) !important; line-height:1.7 !important; }
.faq-icon{ font-size:1.1rem !important; color:var(--forest) !important; transition:transform .3s; flex-shrink:0; margin-left:16px; }
.faq-item.open .faq-icon{ transform:rotate(45deg); }

/* HEADER CTA BUTTON SIZE - taller, more prominent */
.elementor-element.header-cta .elementor-button{
  height:48px !important; min-height:48px !important;
  padding:0 26px !important;
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  font-size:.92rem !important; font-weight:600 !important;
  background:var(--forest) !important; color:#fff !important;
  border-radius:60px !important; border:none !important;
  box-shadow:0 4px 14px rgba(44,95,46,.28) !important;
  line-height:1 !important; white-space:nowrap;
  transition:all .25s;
}
.elementor-element.header-cta .elementor-button:hover{ background:var(--forest-dk) !important; transform:translateY(-2px); box-shadow:0 6px 18px rgba(44,95,46,.36) !important; }
.elementor-element.header-cta .elementor-button .elementor-button-text{ display:inline-flex; align-items:center; gap:8px; }
.elementor-element.header-inner{ min-height:80px; }

/* TRUST STRIP FIT ONE ROW - tighter gaps so 4-5 items fit */
.elementor-element.trust-items{ gap:18px 26px !important; justify-content:space-between !important; }
.trust-items .trust-item{ gap:9px !important; }
.trust-items .trust-label{ font-size:.86rem !important; }
.trust-items .trust-icon{ width:34px !important; height:34px !important; }
@media (max-width:900px){ .elementor-element.trust-items{ justify-content:center !important; gap:18px 30px !important; } }

/* FORM FIELD CREAM - match theme light colour */
.contact-form-card input[type=text],
.contact-form-card input[type=email],
.contact-form-card input[type=tel],
.contact-form-card textarea,
.contact-form-card select{
  background:var(--cream) !important;
  border:1px solid var(--cream-dk) !important;
  color:var(--text-dk) !important;
  border-radius:10px !important;
}
.contact-form-card input::placeholder, .contact-form-card textarea::placeholder{ color:var(--text-lt) !important; opacity:1; }
.contact-form-card input:focus,
.contact-form-card textarea:focus,
.contact-form-card select:focus{
  background:#fffdf9 !important;
  border-color:var(--forest) !important;
  box-shadow:0 0 0 3px rgba(44,95,46,.10) !important;
  outline:none !important;
}

/* SVG SOCIAL ICONS */
.social-row{ display:flex; gap:9px; margin-top:18px; flex-wrap:wrap; }
.social-btn{ width:38px; height:38px; border-radius:10px; background:rgba(255,255,255,.08); display:inline-flex !important; align-items:center; justify-content:center; color:rgba(255,255,255,.85) !important; text-decoration:none; transition:all .2s; }
.social-btn svg{ width:18px; height:18px; display:block; fill:currentColor; }
.social-btn:hover{ background:var(--forest); color:#fff !important; transform:translateY(-2px); }
.social-btn[aria-label='Facebook']:hover{ background:#1877F2; }
.social-btn[aria-label='Instagram']:hover{ background:linear-gradient(45deg,#F58529,#DD2A7B,#8134AF); }
.social-btn[aria-label='YouTube']:hover{ background:#FF0000; }
.social-btn[aria-label='WhatsApp']:hover{ background:#25D366; }
.social-btn[aria-label='GetYourGuide']:hover{ background:#FF5533; }
.contact-social-btns{ display:flex; gap:9px; flex-wrap:wrap; margin-top:6px; }
.social-ico-btn{ display:inline-flex !important; align-items:center; gap:7px; }
.social-ico-btn svg{ width:16px; height:16px; flex-shrink:0; fill:currentColor; }
