/* ==========================================================================
   Fortuna Power — Elementor 区块工具类
   这些类通过 Elementor 元素的「高级 → CSS Classes」挂载。
   - 结构性装饰（光晕、卡片顶条、悬停、圆角盒子）用 .fp-* 直接命中，不依赖内部 DOM。
   - 需要覆盖 Elementor 默认样式时（图标、眉标、按钮、Tag），用带 widget 前缀的选择器提高优先级。
   颜色 / 字体 / 内外边距请优先在 Elementor 面板调整。
   ========================================================================== */

/* ---------------------------------------------------------- 眉标（Eyebrow） */
.elementor-widget-heading.fp-eyebrow .elementor-heading-title {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--green-dk);
  background: var(--grad);
  padding: 7px 16px;
  border-radius: 100px;
  line-height: 1.2;
  box-shadow: 0 6px 16px rgba(212, 132, 54, 0.26);
}
.elementor-widget-heading.fp-eyebrow.is-light .elementor-heading-title {
  background: rgba(255, 255, 255, 0.12);
  color: var(--lime);
  border: 1px solid var(--line-w);
  box-shadow: none;
}

/* ---------------------------------------------------------- 按钮（渐变胶囊） */
.elementor-widget-button.fp-btn .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 28px;
  border: 0;
  border-radius: 100px;
  font-weight: 800;
  font-size: 0.95rem;
  line-height: 1;
  transition: 0.2s;
}
.elementor-widget-button.fp-btn-primary .elementor-button {
  background: var(--grad);
  color: var(--green-dk);
  box-shadow: 0 10px 22px rgba(212, 132, 54, 0.3);
}
.elementor-widget-button.fp-btn-primary .elementor-button:hover { transform: translateY(-2px); }
.elementor-widget-button.fp-btn-dark .elementor-button { background: var(--green); color: #fff; }
.elementor-widget-button.fp-btn-dark .elementor-button:hover { background: var(--green-lt); }
.elementor-widget-button.fp-btn-outline .elementor-button {
  background: transparent;
  color: var(--green);
  border: 1.5px solid var(--line);
}
.elementor-widget-button.fp-btn-outline .elementor-button:hover { background: var(--green); color: #fff; border-color: var(--green); }
.elementor-widget-button.fp-btn-light .elementor-button {
  background: transparent;
  color: #fff;
  border: 1.5px solid var(--line-w);
}
.elementor-widget-button.fp-btn-light .elementor-button:hover { background: #fff; color: var(--green); }

/* ---------------------------------------------------------- 深色区块 / 光晕 */
.fp-dark { position: relative; overflow: hidden; }
.fp-dark::before {
  content: "";
  position: absolute;
  top: -180px; right: -140px;
  width: 520px; height: 520px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, rgba(232, 152, 64, 0.26), transparent 70%);
}
.fp-dark > .elementor-container,
.fp-cta > .elementor-container,
.fp-hero > .elementor-container,
.fp-pagehero > .elementor-container { position: relative; z-index: 2; }
.fp-dark > .elementor-element-populated { position: relative; z-index: 2; }

/* 首页 Hero / 内页 Hero 的两处光晕 */
.fp-hero { position: relative; overflow: hidden; }
.fp-hero::before,
.fp-hero::after {
  content: "";
  position: absolute; border-radius: 50%; pointer-events: none;
}
.fp-hero::before {
  top: -170px; right: -130px; width: 520px; height: 520px;
  background: radial-gradient(circle, rgba(232, 152, 64, 0.42), transparent 68%);
}
.fp-hero::after {
  bottom: -220px; left: -150px; width: 460px; height: 460px;
  background: radial-gradient(circle, rgba(217, 225, 88, 0.16), transparent 70%);
}

/* 首页 hero：桌面端「文字 / 图片」各 50%
   （精确定位：含 h1 的那列 + 含图片的那列；≥981px 生效，移动端仍正常堆叠） */
@media (min-width: 981px) {
  body .fp-hero .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-heading h1),
  body .fp-hero .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-image) {
    width: 50% !important;
  }
}

.fp-pagehero { position: relative; overflow: hidden; }
.fp-pagehero::before {
  content: "";
  position: absolute; top: -160px; right: -110px;
  width: 440px; height: 440px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, rgba(232, 152, 64, 0.38), transparent 68%);
}

/* 圆角深色盒子（CTA / 合作面板）*/
.fp-cta { position: relative; overflow: hidden; }
.fp-cta::before {
  content: "";
  position: absolute;
  bottom: -170px; right: -110px;
  width: 400px; height: 400px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, rgba(232, 152, 64, 0.4), transparent 68%);
}

/* ---------------------------------------------------------- 卡片
   .fp-card 可挂在：内层 section（图文卡）、icon-box widget（图标卡）、column。 */
.fp-card {
  position: relative;
  height: 100%;
  transition: box-shadow 0.25s, border-color 0.25s, transform 0.25s;
}
/* 卡片等高：列内纵向排列，卡片撑满列高（不改动列的换行 / 压缩行为） */
body .elementor-column > .elementor-widget-wrap { display: flex; flex-direction: column; }
body .elementor-column > .elementor-widget-wrap > .elementor-widget.fp-card { flex: 1 1 auto; }
body .elementor-widget-wrap > .fp-card,
body .elementor-widget-wrap > .fp-cardimg { width: 100%; flex: 1 1 auto; }
body .elementor-widget.fp-card > .elementor-widget-container { height: 100%; }

/* 列数 ≥4 的栅格：宽度按 border-box 计算并允许换行。
   这样 4×25%（图标卡）正好一行不变；4×50%（如 Home Battery）会自动折成 2 行 ×2 列，
   不再挤在一行导致宽窄不一。仅作用于 4 列及以上的容器，不影响 2 列 / 3 列布局。 */
body .elementor-container:has(> .elementor-column:nth-child(4)) { flex-wrap: wrap; }
body .elementor-container:has(> .elementor-column:nth-child(4)) > .elementor-column { box-sizing: border-box; }
.fp-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: var(--grad);
  z-index: 3;
  border-radius: 24px 24px 0 0;
  pointer-events: none;
}
.fp-card:hover { transform: translateY(-5px); box-shadow: var(--sh); }

/* 图文卡同样有悬停反馈，整站交互一致 */
body .fp-cardimg { transition: box-shadow 0.25s, transform 0.25s; }
body .fp-cardimg:hover { transform: translateY(-5px); box-shadow: var(--sh); }

/* 图片卡：图片需要被卡片圆角裁切 */
.fp-cardimg { overflow: hidden; }
.fp-cardimg .elementor-widget-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }

/* 卡片 / 信息图标：圆角方块 */
.elementor-widget.fp-icon .elementor-icon,
.elementor-widget.fp-card .elementor-icon {
  width: 52px; height: 52px; border-radius: 14px;
  background: var(--green);
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--lime);
}
.elementor-widget.fp-icon .elementor-icon i,
.elementor-widget.fp-card .elementor-icon i { font-size: 24px; }
.elementor-widget.fp-icon .elementor-icon svg,
.elementor-widget.fp-card .elementor-icon svg { width: 26px; height: 26px; }
.elementor-widget.fp-card--dark .elementor-icon { background: rgba(255, 255, 255, 0.1); }

/* ---- 紧凑图标小卡（Home Battery 的 2×2）---- */
body .fp-card.fp-mini { padding: 26px 24px 28px !important; }
body .elementor-widget.fp-mini .elementor-icon {
  width: 44px; height: 44px; border-radius: 12px;
}
body .elementor-widget.fp-mini .elementor-icon i { font-size: 19px; }
body .elementor-widget.fp-mini .elementor-icon svg { width: 22px; height: 22px; }
body .elementor-widget.fp-mini .elementor-icon-box-title { margin-bottom: 4px; }

/* ---- 套餐卡：链接沉底对齐、悬停更明显 ---- */
body .fp-pkg > .elementor-container > .elementor-column > .elementor-widget-wrap {
  display: flex; flex-direction: column; height: 100%;
}
body .fp-pkg .elementor-widget-heading.fp-link { margin-top: auto; padding-top: 14px; }

/* 紧凑信息图标（44px）*/
.elementor-widget.fp-info .elementor-icon {
  width: 44px; height: 44px; border-radius: 12px;
  background: var(--green); color: var(--lime);
  display: inline-flex; align-items: center; justify-content: center;
}
.elementor-widget.fp-info .elementor-icon i { font-size: 20px; }

/* ---- 联系信息卡（主题短代码 [fortuna_contact_cards] 输出，取值自主题设置）---- */
.fp-info-cards {
  display: grid;
  grid-template-columns: repeat(var(--fp-cols, 2), minmax(0, 1fr));
  gap: 16px;
}
.fp-info-card {
  display: flex; gap: 14px; padding: 20px;
  background: #fff; border: 1px solid var(--line); border-radius: 16px;
}
.fp-info-card .fp-info-ic {
  width: 44px; height: 44px; flex: 0 0 44px; border-radius: 12px;
  background: var(--green); color: var(--lime);
  display: flex; align-items: center; justify-content: center;
}
.fp-info-card .fp-info-ic svg { width: 22px; height: 22px; }
.fp-info-card .fp-info-tx { min-width: 0; }
.fp-info-card b { display: block; font-size: 0.93rem; color: var(--ink); margin-bottom: 2px; }
.fp-info-card .v, .fp-info-card a { font-size: 0.89rem; color: var(--body); }
.fp-info-card a { text-decoration: none; }
.fp-info-card a:hover { color: var(--orange-dk); }

@media (max-width: 640px) {
  .fp-info-cards { grid-template-columns: 1fr; }
}

/* 步序编号（渐变方块）*/
.elementor-widget-heading.fp-num .elementor-heading-title {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 11px;
  background: var(--grad); color: var(--green-dk);
  font-weight: 800; font-size: 0.95rem; line-height: 1;
}

/* 小标签（Tag） */
.elementor-widget-heading.fp-tag .elementor-heading-title {
  display: inline-block;
  font-size: 0.7rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--green-dk); background: var(--grad);
  padding: 5px 12px; border-radius: 100px; line-height: 1.2;
}

/* 文字链接（Learn more →） */
.elementor-widget-heading.fp-link .elementor-heading-title { color: var(--orange-dk); font-weight: 800; font-size: 0.9rem; }
.elementor-widget-heading.fp-link .elementor-heading-title a { color: inherit; transition: 0.15s; }
.elementor-widget-heading.fp-link .elementor-heading-title a:hover { color: var(--orange); }

/* ---------------------------------------------------------- 图片 */
.elementor-widget-image.fp-img-rounded img { border-radius: 24px; }
.elementor-widget-image.fp-img-media img { aspect-ratio: 5 / 4; object-fit: cover; border-radius: 24px; }
.elementor-widget-image.fp-img-hero img { aspect-ratio: 4 / 3.2; object-fit: cover; border-radius: 24px; }

/* ---------------------------------------------------------- 评价 / 头像 / 星级 */
.elementor-widget-heading.fp-stars .elementor-heading-title { color: var(--orange); letter-spacing: 2px; }

/* ---------------------------------------------------------- 大数字 / 合作数字面板 */
.elementor-widget-heading.fp-big .elementor-heading-title { color: var(--orange-lt); line-height: 1; }
.fp-figure {
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid var(--line-w);
  border-radius: 16px;
}

/* ---------------------------------------------------------- 勾选列表 */
.elementor-widget-icon-list.fp-check .elementor-icon-list-icon {
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--grad); color: var(--green-dk);
  display: inline-flex; align-items: center; justify-content: center;
}
.elementor-widget-icon-list.fp-check .elementor-icon-list-icon i { font-size: 10px; }
.elementor-widget-icon-list.fp-check .elementor-icon-list-item { align-items: flex-start; }

/* ---------------------------------------------------------- 表单（HTML 区块） */
.fp-form .form-note { font-size: 0.84rem; color: var(--muted); margin-bottom: 20px; }
.fp-form .field { margin-bottom: 16px; }
.fp-form .field label { display: block; font-size: 0.84rem; font-weight: 700; color: var(--green); margin-bottom: 7px; }
.fp-form .field input,
.fp-form .field select,
.fp-form .field textarea {
  width: 100%; padding: 13px 15px; border: 1.5px solid var(--line);
  border-radius: 10px; background: #fff; font-size: 0.95rem; font-family: var(--font);
}
.fp-form .field input:focus,
.fp-form .field select:focus,
.fp-form .field textarea:focus {
  outline: 0; border-color: var(--orange); box-shadow: 0 0 0 4px rgba(232, 152, 64, 0.14);
}
.fp-form .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fp-form .check-line { display: flex; gap: 10px; font-size: 0.83rem; color: var(--muted); margin: 4px 0 18px; }
.fp-form .check-line input { width: 17px; height: 17px; margin-top: 3px; accent-color: var(--orange-dk); flex-shrink: 0; }
.fp-form .btn { width: 100%; }
.fp-form .form-ok { display: none; text-align: center; padding: 30px 10px; }
.fp-form .form-ok.on { display: block; }
.fp-form .saved { margin-top: 20px; padding: 20px; border-radius: 16px; background: #eef4ef; border: 1px dashed rgba(28, 64, 40, 0.25); display: none; }
.fp-form .saved.on { display: block; }
.fp-form .saved .n { font-size: 1.9rem; font-weight: 800; color: var(--green); line-height: 1.1; }
.fp-form .saved .n em { font-style: normal; color: var(--orange-dk); }
.fp-form .saved .t { font-size: 0.85rem; color: var(--muted); margin-top: 6px; }

@media (max-width: 640px) {
  .fp-form .field-row { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------- FAQ 折叠 */
.elementor-widget-accordion.fp-faq .elementor-accordion-item { border-color: var(--line); }
.elementor-widget-accordion.fp-faq .elementor-tab-title { font-weight: 700; }
.elementor-widget-accordion.fp-faq .elementor-accordion-title { color: var(--ink); }

/* ---------------------------------------------------------- 其它 */
.fp-narrow { max-width: 880px; margin-left: auto; margin-right: auto; }
.elementor-widget-text-editor.fp-lead p { font-size: 1.05rem; }
.elementor-widget-text-editor.fp-muted p,
.elementor-widget-text-editor.fp-muted { color: var(--muted); font-size: 0.86rem; }

/* 标题 / 副标题限宽（section 头部）*/
.elementor-widget.fp-head { max-width: 680px; }
.elementor-widget.fp-head.fp-center { margin-left: auto; margin-right: auto; }
.elementor-widget.fp-sub { max-width: 520px; }

/* 评价卡底部（头像 + 姓名 + 身份）*/
.elementor-widget.fp-who p {
  display: flex; align-items: center; gap: 12px; margin: 0;
  padding-top: 18px; border-top: 1px solid var(--line);
}
.elementor-widget.fp-who .av {
  width: 42px; height: 42px; border-radius: 50%;
  background: var(--green); color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 0.85rem; flex-shrink: 0;
}
.elementor-widget.fp-who b { display: block; font-size: 0.92rem; color: var(--ink); }
.elementor-widget.fp-who small { color: var(--muted); font-size: 0.79rem; }

/* ==========================================================================
   统一比例：卡片 / 按钮 / 移动端断点
   ========================================================================== */

/* 卡片内边距：统一 34 / 28 / 30（图文卡 fp-cardimg 除外，图片要满铺） */
body .fp-card,
body .fp-step { padding: 34px 28px 30px !important; }

/* 卡片标题：统一 18px */
body .fp-card .elementor-icon-box-title,
body .fp-card h3.elementor-heading-title,
body .fp-step h3.elementor-heading-title {
  font-size: 18px;
  line-height: 1.3;
}

/* 卡片正文：统一 15px / 1.6 */
body .fp-card .elementor-icon-box-description,
body .fp-card .elementor-widget-text-editor > .elementor-widget-container > p,
body .fp-step .elementor-widget-text-editor > .elementor-widget-container > p {
  font-size: 15px;
  line-height: 1.6;
}

/* 客户评价卡片：内边距更大（.fp-who 为评价卡独有元素，规则更靠后，覆盖上面） */
body .elementor-section:has(.fp-who),
body .elementor-inner-section:has(.fp-who) {
  padding: 40px 32px 36px !important;
}

/* ---- 按钮：统一过渡与悬停 ---- */
.elementor-widget-button.fp-btn .elementor-button {
  transition: background-color 0.2s, color 0.2s, border-color 0.2s, transform 0.2s, box-shadow 0.2s;
}
.elementor-widget-button.fp-btn .elementor-button:hover { transform: translateY(-2px); }
.elementor-widget-button.fp-btn-primary .elementor-button:hover { box-shadow: 0 14px 26px rgba(212, 132, 54, 0.36); }

/* ---- 移动端：断点统一为 ≤980 / ≤640 ---- */
@media (max-width: 980px) {
  body .fp-card,
  body .fp-step { padding: 30px 24px 28px !important; }
}
@media (max-width: 640px) {
  body .fp-card,
  body .fp-step { padding: 26px 22px 24px !important; }
  body .fp-card .elementor-icon-box-title,
  body .fp-card h3.elementor-heading-title,
  body .fp-step h3.elementor-heading-title { font-size: 17px; }
  .elementor-widget-button.fp-btn .elementor-button { padding: 13px 22px; font-size: 0.92rem; }
}

/* ==========================================================================
   区块底色系统：淡橙 / 深绿
   ========================================================================== */

/* 淡橙区块 */
.fp-bg-orange { background-color: #FDF1E3 !important; }

/* ---- 深绿区块：文字统一用品牌橙（卡片内部不受影响）----
   :is(.fp-bg-dark, .fp-dark) —— 同时兼容已上线的旧区块(fp-dark)与新模板(fp-bg-dark)*/
/* 标题 → 品牌橙 #E89840 */
:is(.fp-bg-dark, .fp-dark) .elementor-heading-title,
:is(.fp-bg-dark, .fp-dark) .elementor-icon-box-title { color: #e89840 !important; }
/* 正文 / 段落 → 亮橙 #F2B25E（深绿底上更清晰）*/
:is(.fp-bg-dark, .fp-dark) .elementor-widget-text-editor p,
:is(.fp-bg-dark, .fp-dark) .elementor-widget-text-editor { color: #f2b25e !important; }
:is(.fp-bg-dark, .fp-dark) .elementor-icon-box-description { color: #f2b25e !important; }
/* 勾选列表 */
:is(.fp-bg-dark, .fp-dark) .elementor-icon-list-text { color: #f2b25e !important; }
/* 眉标 → 橙色胶囊 */
:is(.fp-bg-dark, .fp-dark) .fp-eyebrow .elementor-heading-title {
  background: rgba(232, 152, 64, 0.16);
  color: #f2b25e;
  border: 1px solid rgba(242, 178, 94, 0.34);
  box-shadow: none;
}
/* 特殊标题保持自身配色 */
:is(.fp-bg-dark, .fp-dark) .elementor-widget-heading.fp-num .elementor-heading-title,
:is(.fp-bg-dark, .fp-dark) .elementor-widget-heading.fp-tag .elementor-heading-title { color: var(--green-dk) !important; }
:is(.fp-bg-dark, .fp-dark) .elementor-widget-heading.fp-link .elementor-heading-title { color: #f2b25e !important; }
:is(.fp-bg-dark, .fp-dark) .elementor-widget-heading.fp-link .elementor-heading-title a { color: inherit; }

/* 白底卡片内部：恢复深色文字 */
:is(.fp-bg-dark, .fp-dark) .fp-card .elementor-heading-title,
:is(.fp-bg-dark, .fp-dark) .fp-cardimg .elementor-heading-title,
:is(.fp-bg-dark, .fp-dark) .fp-card .elementor-icon-box-title { color: var(--ink) !important; }
:is(.fp-bg-dark, .fp-dark) .fp-card .elementor-widget-text-editor p,
:is(.fp-bg-dark, .fp-dark) .fp-cardimg .elementor-widget-text-editor p,
:is(.fp-bg-dark, .fp-dark) .fp-card .elementor-icon-box-description { color: var(--body) !important; }

/* 深色卡片内部：保持亮白文字（放在最后，覆盖上面）*/
:is(.fp-bg-dark, .fp-dark) .fp-card--dark .elementor-heading-title,
:is(.fp-bg-dark, .fp-dark) .fp-card--dark .elementor-icon-box-title { color: #ffffff !important; }
:is(.fp-bg-dark, .fp-dark) .fp-card--dark .elementor-widget-text-editor p,
:is(.fp-bg-dark, .fp-dark) .fp-card--dark .elementor-icon-box-description { color: rgba(255, 255, 255, 0.82) !important; }
