/*
 * Piggy Life — approved visual system for Elementor
 * Content and layout nodes live in Elementor. This file supplies only the
 * exact brand styling, advanced compositions and responsive behaviour.
 */

.piggy-life-site,
.piggy-header,
.piggy-footer,
.piggy-auth {
  --piggy-pink: #ff3fa4;
  --piggy-navy: #0e2244;
  --piggy-mint: #25c9a7;
  --piggy-turquoise: #58d9d2;
  --piggy-lavender: #8a8dff;
  --piggy-gold: #e8b34b;
  --piggy-white: #ffffff;
  --piggy-soft-pink: #fff1f7;
  --piggy-light-pink: #fdecf4;
  --piggy-soft-mint: #f0fbf7;
  --piggy-light-green: #e5f8f1;
  --piggy-soft-lavender: #f3f2ff;
  --piggy-light-lavender: #eceeff;
  --piggy-cream: #fff8ec;
  --piggy-warm-cream: #fff3df;
  --piggy-muted: #64718a;
  --piggy-line: #dfe6ef;
  --piggy-shadow: 0 24px 70px rgba(14, 34, 68, .10);
  --piggy-shadow-sm: 0 12px 34px rgba(14, 34, 68, .08);
  --piggy-radius-sm: 18px;
  --piggy-radius: 28px;
  --piggy-radius-lg: 40px;
  --piggy-container: 1180px;
  --piggy-section-space: clamp(90px, 12vw, 170px);
  color: var(--piggy-navy);
  font-family: Inter, Avenir, "Segoe UI", ui-sans-serif, system-ui, -apple-system, sans-serif;
  font-size: 16px;
  line-height: 1.55;
}

.piggy-life-wordpress { margin: 0; overflow-x: hidden; }
.piggy-life-wordpress .entry-title { display: none; }
.piggy-life-site *, .piggy-header *, .piggy-footer *, .piggy-auth * { box-sizing: border-box; }
.piggy-life-site .elementor-widget { margin: 0; }
.piggy-life-site a, .piggy-header a, .piggy-footer a { text-decoration: none; }
.piggy-life-site :focus-visible, .piggy-header :focus-visible, .piggy-footer :focus-visible {
  outline: 3px solid rgba(255, 63, 164, .3);
  outline-offset: 3px;
}

/* Elementor global text treatments */
.piggy-life-site .piggy-h1 .elementor-heading-title,
.piggy-life-site .piggy-h2 .elementor-heading-title,
.piggy-life-site .piggy-h3 .elementor-heading-title,
.piggy-auth .piggy-h2 .elementor-heading-title {
  color: inherit;
  font-family: inherit;
  font-weight: 820;
  letter-spacing: -.045em;
  line-height: 1.02;
  margin: 0;
}
.piggy-life-site .piggy-h1 .elementor-heading-title { font-size: clamp(58px, 8.7vw, 124px); font-weight: 860; }
.piggy-life-site .piggy-h2 .elementor-heading-title { font-size: clamp(42px, 5.6vw, 76px); }
.piggy-life-site .piggy-h3 .elementor-heading-title { font-size: clamp(23px, 2.4vw, 34px); font-weight: 800; }
.piggy-life-site .piggy-inner-title .elementor-heading-title { font-size: clamp(50px, 7.7vw, 105px); max-width: 1050px; }
.piggy-life-site .piggy-lede { max-width: 680px; }
.piggy-life-site .piggy-lede p { color: var(--piggy-muted); font-size: clamp(18px, 2vw, 23px); line-height: 1.5; margin: 0; }
.piggy-life-site .piggy-body p { color: var(--piggy-muted); margin: 0; }
.piggy-life-site .piggy-tiny p { color: var(--piggy-muted); font-size: 13px; margin: 0; }
.piggy-life-site .piggy-label .elementor-heading-title,
.piggy-life-site .piggy-eyebrow .elementor-heading-title {
  color: inherit; font-size: 12px; font-weight: 850; letter-spacing: .14em; line-height: 1.2; text-transform: uppercase;
}
.piggy-life-site .piggy-eyebrow { display: inline-flex; width: auto; }
.piggy-life-site .piggy-eyebrow > .elementor-widget-container { display: flex; align-items: center; gap: 9px; }
.piggy-life-site .piggy-eyebrow > .elementor-widget-container::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--piggy-pink); flex: 0 0 auto; }
.piggy-life-site .piggy-accent-pink .elementor-heading-title, .piggy-life-site .piggy-accent-pink { color: var(--piggy-pink); }
.piggy-life-site .piggy-number .elementor-heading-title { font-variant-numeric: tabular-nums; letter-spacing: -.055em; }

/* Buttons remain native Elementor Button widgets */
.piggy-life-site .piggy-button .elementor-button,
.piggy-header .piggy-button .elementor-button,
.piggy-footer .piggy-button .elementor-button,
.piggy-auth .piggy-button .elementor-button {
  align-items: center; border: 1px solid transparent; border-radius: 999px; display: inline-flex; font-family: inherit;
  font-size: 15px; font-weight: 780; justify-content: center; min-height: 50px; padding: 14px 22px;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease;
}
.piggy-life-site .piggy-button .elementor-button:hover,
.piggy-header .piggy-button .elementor-button:hover,
.piggy-auth .piggy-button .elementor-button:hover { transform: translateY(-2px); }
.piggy-life-site .piggy-button-primary .elementor-button,
.piggy-header .piggy-button-primary .elementor-button,
.piggy-auth .piggy-button-primary .elementor-button {
  background: var(--piggy-pink); color: #fff; box-shadow: 0 12px 28px rgba(255, 63, 164, .27);
}
.piggy-life-site .piggy-button-primary .elementor-button:hover,
.piggy-header .piggy-button-primary .elementor-button:hover { box-shadow: 0 17px 35px rgba(255, 63, 164, .34); }
.piggy-life-site .piggy-button-secondary .elementor-button,
.piggy-auth .piggy-button-secondary .elementor-button { background: #fff; border-color: rgba(14, 34, 68, .16); color: var(--piggy-navy); }
.piggy-life-site .piggy-button-dark .elementor-button { background: var(--piggy-navy); color: #fff; }
.piggy-life-site .piggy-button-small .elementor-button, .piggy-header .piggy-button-small .elementor-button { min-height: 43px; padding: 10px 17px; font-size: 14px; }

/* Header / Theme Builder template */
.piggy-header {
  background: transparent; color: var(--piggy-navy); left: 0; padding: 15px 0; position: fixed !important; right: 0; top: 0; transition: .3s ease; width: 100%; z-index: 999;
}
.admin-bar .piggy-header { top: 32px; }
.piggy-header.piggy-header-scrolled { background: rgba(255,255,255,.92); box-shadow: 0 1px 0 rgba(14,34,68,.08); padding: 9px 0; backdrop-filter: blur(16px); }
.piggy-header-inner { align-items: center; display: flex !important; flex-direction: row !important; gap: 24px; justify-content: space-between; margin: auto; max-width: var(--piggy-container); padding-inline: clamp(22px,4vw,56px); width:100% !important; }
.piggy-brand { align-items: center; display: flex !important; flex-direction: row !important; gap: 11px; width: auto !important; }
.piggy-brand-name .elementor-heading-title { color: var(--piggy-navy); font-size: 19px; font-weight: 860; letter-spacing: -.04em; white-space: nowrap; }
.piggy-brand-mark { background: var(--piggy-pink); border-radius: 14px 14px 17px 17px; box-shadow: inset 0 -5px 12px rgba(119,0,65,.12); height: 38px; position: relative; width: 38px !important; }
.piggy-brand-mark::before { border: 3px solid #fff; border-radius: 50%; box-shadow: 13px 0 0 -3px var(--piggy-pink), 13px 0 0 0 #fff; content: ""; height: 9px; left: 9px; position: absolute; top: 11px; width: 9px; }
.piggy-brand-mark::after { background: #fff; border-radius: 0 0 8px 8px; bottom: 8px; content: ""; height: 5px; left: 13px; position: absolute; width: 13px; }
.piggy-nav { align-items: center; display: flex !important; flex-direction: row !important; gap: 25px; justify-content: center; }
.piggy-nav-link .elementor-button { background: transparent !important; border: 0 !important; border-radius: 0 !important; color: var(--piggy-navy) !important; min-height: auto !important; padding: 8px 0 !important; position: relative; box-shadow: none !important; }
.piggy-nav-link .elementor-button::after { background: var(--piggy-pink); bottom: 3px; content: ""; height: 2px; left: 0; position: absolute; right: 100%; transition: .25s; }
.piggy-nav-link .elementor-button:hover::after, .piggy-nav-link.is-current .elementor-button::after { right: 0; }
.piggy-header-actions { align-items: center; display: flex !important; flex-direction: row !important; gap: 11px; width: auto !important; }
.piggy-mobile-toggle { display: none; width: auto !important; }
.piggy-mobile-toggle .elementor-button { align-items:center; background:#fff; border:1px solid var(--piggy-line); border-radius:50%; color:var(--piggy-navy); display:flex; font-size:20px; height:46px; justify-content:center; min-width:46px; padding:0; }
.piggy-mobile-nav { background:#fff; display:none !important; inset:0; padding:110px 28px 35px; position:fixed !important; z-index:998; }
.piggy-mobile-nav.is-open { display:flex !important; }
.piggy-menu-open { overflow:hidden; }
.piggy-mobile-nav .piggy-nav-link .elementor-button { font-size: 30px; font-weight: 820; justify-content:flex-start; }
.piggy-mobile-nav .piggy-nav-link { width:100%; }

/* Page scaffolding */
.piggy-life-site { background: #fff; overflow: clip; }
.piggy-section { padding: var(--piggy-section-space) clamp(22px,4vw,56px); }
.piggy-inner { margin-inline: auto; max-width: var(--piggy-container); width: 100%; }
.piggy-section-head { align-items: end; display: grid !important; grid-template-columns: minmax(0, 1.55fr) minmax(260px, .75fr); gap: 40px; margin: 0 auto 70px; max-width: var(--piggy-container); }
.piggy-section-head .piggy-lede { justify-self:end; }
.piggy-inner-hero { align-items:end; display:flex !important; min-height:68vh; overflow:hidden; padding:175px clamp(22px,4vw,56px) 105px; }
.piggy-inner-hero > .e-con-inner, .piggy-inner-hero > .elementor-element { margin:auto; max-width:var(--piggy-container); width:100%; }
.piggy-bg-pink { background:var(--piggy-soft-pink); }.piggy-bg-mint { background:var(--piggy-soft-mint); }.piggy-bg-lavender { background:var(--piggy-soft-lavender); }

/* Hero */
.piggy-hero { align-items:center; background:linear-gradient(135deg,#fff 24%,var(--piggy-soft-pink) 100%); display:flex !important; min-height:100svh; overflow:hidden; padding:150px clamp(22px,4vw,56px) 95px; position:relative; }
.piggy-hero::after { border:2px solid rgba(14,34,68,.08); border-radius:50%; content:""; height:730px; position:absolute; right:-170px; top:-160px; width:730px; }
.piggy-hero-inner { align-items:center; display:grid !important; gap:35px; grid-template-columns:1.04fr .96fr; margin:auto; max-width:var(--piggy-container); position:relative; width:100%; z-index:2; }
.piggy-hero-copy { align-items:flex-start; display:flex !important; gap:25px; }
.piggy-hero-title .elementor-heading-title span { display:block; }
.piggy-cta-row, .piggy-proof-row { align-items:center; display:flex !important; flex-direction:row !important; flex-wrap:wrap; gap:13px; }
.piggy-proof-row { color:var(--piggy-muted); font-size:13px; gap:22px; margin-top:8px; }
.piggy-proof-dot { background:var(--piggy-mint); border-radius:50%; box-shadow:0 0 0 5px var(--piggy-light-green); height:7px; width:7px !important; }
.piggy-hero-visual { align-items:center; display:flex !important; justify-content:center; min-height:590px; position:relative; }
.piggy-orb { position:absolute !important; border-radius:48% 52% 62% 38%/43% 44% 56% 57%; pointer-events:none; will-change:transform; }
.piggy-orb-pink { background:linear-gradient(145deg,var(--piggy-pink),#ff89c8); box-shadow:0 55px 120px rgba(255,63,164,.25); height:470px; width:470px !important; }
.piggy-orb-mint { background:var(--piggy-turquoise); height:180px; opacity:.75; right:-25px; top:45px; width:180px !important; }
.piggy-orb-lavender { background:var(--piggy-lavender); bottom:25px; height:150px; left:5px; opacity:.7; width:150px !important; }
.piggy-phone-card { background:rgba(255,255,255,.96); border:1px solid rgba(255,255,255,.7); border-radius:40px; box-shadow:0 35px 90px rgba(14,34,68,.2); gap:18px; padding:30px; position:relative; transform:rotate(-2deg); width:min(395px,76%) !important; z-index:2; }
.piggy-phone-top, .piggy-metric-row, .piggy-ui-label, .piggy-goal-foot { align-items:center; display:flex !important; flex-direction:row !important; justify-content:space-between; }
.piggy-avatar { align-items:center; background:linear-gradient(135deg,var(--piggy-lavender),var(--piggy-pink)); border-radius:50%; color:#fff; display:flex !important; font-weight:850; height:40px; justify-content:center; width:40px !important; }
.piggy-balance-value .elementor-heading-title { font-size:37px; font-weight:850; }
.piggy-mini-chart { align-items:end; display:flex !important; flex-direction:row !important; gap:7px; height:86px; }
.piggy-mini-bar { background:var(--piggy-light-pink); border-radius:10px 10px 3px 3px; flex:1; height:var(--bar-height); }
.piggy-mini-bar.piggy-hot { background:var(--piggy-pink); }
.piggy-metric-row { gap:11px; }
.piggy-mini-metric { background:var(--piggy-soft-mint); border-radius:18px; flex:1; padding:15px; }
.piggy-mini-metric:nth-child(2) { background:var(--piggy-soft-lavender); }
.piggy-float-card { background:#fff; border:1px solid rgba(14,34,68,.07); border-radius:22px; box-shadow:var(--piggy-shadow-sm); min-width:180px; padding:18px 20px; position:absolute !important; z-index:5; }
.piggy-health-card { left:-30px; top:70px; }.piggy-available-card { bottom:68px; right:-25px; }.piggy-emergency-card { bottom:8px; left:-25px; }
.piggy-float-value .elementor-heading-title { font-size:22px; font-weight:850; }
.piggy-score-ring { align-items:center; background:conic-gradient(var(--piggy-mint) 78%,var(--piggy-light-green) 0); border-radius:50%; display:flex !important; height:50px; justify-content:center; position:relative; width:50px !important; }
.piggy-score-ring::before { background:#fff; border-radius:50%; content:""; height:37px; position:absolute; width:37px; }
.piggy-score-ring > * { position:relative; z-index:1; }
.piggy-score-ring .elementor-heading-title { font-size:12px; font-weight:850; }

/* Ecosystem marquee */
.piggy-ecosystem { background:#fff; border-bottom:1px solid var(--piggy-line); border-top:1px solid var(--piggy-line); overflow:hidden; }
.piggy-ecosystem-track { align-items:center; animation:piggy-marquee 24s linear infinite; display:flex !important; flex-direction:row !important; width:max-content !important; }
.piggy-ecosystem-set { align-items:center; display:flex !important; flex-direction:row !important; width:max-content !important; }
.piggy-ecosystem-item { align-items:center; display:flex !important; flex-direction:row !important; font-weight:760; gap:12px; padding:27px 34px; white-space:nowrap; width:auto !important; }
.piggy-category-dot { background:var(--dot-color,var(--piggy-pink)); border-radius:4px; height:11px; width:11px !important; }
@keyframes piggy-marquee { to { transform:translateX(-50%); } }

/* Pinned assemble */
.piggy-assemble { background:var(--piggy-navy); color:#fff; min-height:260vh; padding:0; position:relative; }
.piggy-assemble-stage { align-items:center; display:flex !important; justify-content:center; min-height:100vh; overflow:hidden; position:sticky !important; top:0; }
.piggy-assemble-copy { left:50%; position:absolute !important; text-align:center; top:11vh; transform:translateX(-50%); width:min(800px,90%) !important; z-index:3; }
.piggy-assemble-copy .elementor-heading-title { color:#fff; }
.piggy-connect-ring { border:1px solid rgba(255,255,255,.14); border-radius:50%; height:min(75vw,760px); left:50%; position:absolute !important; top:50%; transform:translate(-50%,-50%); width:min(75vw,760px) !important; }
.piggy-assemble-core { align-items:center; background:linear-gradient(145deg,var(--piggy-pink),#d72182); border-radius:46% 54% 50% 50%; box-shadow:0 0 0 35px rgba(255,63,164,.08),0 0 0 70px rgba(255,63,164,.04); color:#fff; display:flex !important; font-size:26px; font-weight:880; height:230px; justify-content:center; position:relative; width:230px !important; z-index:4; }
.piggy-assemble-node { align-items:center; background:#fff; border-radius:18px; box-shadow:0 18px 45px rgba(0,0,0,.25); color:var(--piggy-navy); display:flex !important; flex-direction:row !important; font-weight:750; gap:10px; left:50%; opacity:.18; padding:17px; position:absolute !important; top:50%; transform:translate(-50%,-50%) scale(.7); width:155px !important; }
.piggy-node-icon { align-items:center; background:var(--node-bg,var(--piggy-soft-pink)); border-radius:10px; display:flex !important; height:34px; justify-content:center; width:34px !important; }

/* Dashboard mockup */
.piggy-dashboard-section { background:#fff; }
.piggy-dashboard-frame { background:#f6f7fb; border:1px solid var(--piggy-line); border-radius:34px; box-shadow:0 45px 110px rgba(14,34,68,.14); display:grid !important; grid-template-columns:190px minmax(0,1fr); margin:auto; max-width:var(--piggy-container); min-height:650px; padding:18px; }
.piggy-dashboard-sidebar { background:var(--piggy-navy); border-radius:24px; color:#fff; gap:26px; padding:24px 17px; }
.piggy-side-links { gap:7px; }
.piggy-side-link .elementor-button { background:transparent; color:rgba(255,255,255,.62); justify-content:flex-start; padding:11px; width:100%; }
.piggy-side-link.is-current .elementor-button { background:rgba(255,255,255,.11); color:#fff; }
.piggy-dashboard-main { gap:28px; padding:30px; }
.piggy-dashboard-welcome { align-items:center; display:flex !important; flex-direction:row !important; justify-content:space-between; }
.piggy-dashboard-grid { display:grid !important; gap:15px; grid-template-columns:repeat(12,minmax(0,1fr)); }
.piggy-ui-card { background:#fff; border:1px solid #e9edf3; border-radius:20px; box-shadow:0 5px 16px rgba(14,34,68,.035); gap:9px; padding:22px; }
.piggy-ui-net { grid-column:span 7; }.piggy-ui-score { background:var(--piggy-soft-mint); grid-column:span 5; }.piggy-ui-third { grid-column:span 4; }.piggy-ui-full { grid-column:span 12; }
.piggy-ui-label { color:var(--piggy-muted); font-size:12px; font-weight:750; }
.piggy-ui-value .elementor-heading-title { font-size:34px; font-weight:850; }
.piggy-trend .elementor-heading-title, .piggy-trend p { color:#118b73; font-size:12px; }
.piggy-line-chart { height:85px; margin-top:12px; overflow:hidden; position:relative; }
.piggy-line-chart::before { background:linear-gradient(170deg,transparent 49%,var(--piggy-pink) 50%,var(--piggy-pink) 52%,transparent 53%); content:""; inset:25px -20px -15px; position:absolute; transform:skewY(-5deg); }
.piggy-score-large { align-items:center; background:conic-gradient(var(--piggy-mint) 78%,#d3f2e9 0); border-radius:50%; display:flex !important; height:92px; justify-content:center; width:92px !important; }
.piggy-score-large::before { background:var(--piggy-soft-mint); border-radius:50%; content:""; height:70px; position:absolute; width:70px; }
.piggy-score-large { position:relative; }
.piggy-score-large > * { position:relative; z-index:1; }
.piggy-score-large .elementor-heading-title { font-size:25px; font-weight:850; }
.piggy-score-row { align-items:center; display:flex !important; flex-direction:row !important; gap:16px; }
.piggy-progress { background:#eaeef4; border-radius:999px; height:8px; overflow:hidden; }
.piggy-progress-fill { background:var(--progress-color,var(--piggy-pink)); border-radius:inherit; height:100%; transform-origin:left; width:var(--progress,50%) !important; }
.piggy-status-grid { display:grid !important; font-size:12px; gap:7px; grid-template-columns:1fr 1fr; }
.piggy-ok { color:#16866f; }.piggy-warning { color:#bd7515; }
.piggy-recommendation-banner { align-items:center; background:var(--piggy-navy); color:#fff; display:flex !important; flex-direction:row !important; gap:25px; justify-content:space-between; }
.piggy-recommendation-banner .elementor-heading-title, .piggy-recommendation-banner p { color:#fff; }

/* Recommendations and goals */
.piggy-recommendations { background:var(--piggy-soft-pink); }
.piggy-recommendation-grid { display:grid !important; gap:22px; grid-template-columns:1fr 1fr; margin:auto; max-width:var(--piggy-container); }
.piggy-recommendation-card { background:#fff; border-radius:var(--piggy-radius-lg); box-shadow:var(--piggy-shadow-sm); justify-content:space-between; min-height:340px; padding:38px; }
.piggy-recommendation-card.is-dark { background:var(--piggy-navy); color:#fff; }
.piggy-recommendation-card.is-dark .elementor-heading-title, .piggy-recommendation-card.is-dark p { color:#fff; }
.piggy-recommendation-icon { align-items:center; background:var(--piggy-light-green); border-radius:20px; display:flex !important; font-size:29px; height:65px; justify-content:center; width:65px !important; }
.piggy-recommendation-card.is-dark .piggy-recommendation-icon { background:rgba(255,255,255,.1); }
.piggy-tag { background:var(--piggy-light-pink); border-radius:999px; display:inline-flex; padding:8px 13px; width:auto !important; }
.piggy-recommendation-card.is-dark .piggy-tag { background:rgba(255,255,255,.1); }
.piggy-goal-grid { display:grid !important; gap:18px; grid-template-columns:repeat(3,1fr); margin:auto; max-width:var(--piggy-container); }
.piggy-goal-card { background:var(--goal-bg,var(--piggy-soft-pink)); border-radius:var(--piggy-radius); justify-content:space-between; min-height:315px; padding:30px; transition:transform .3s ease,box-shadow .3s ease; }
.piggy-goal-card:hover { box-shadow:var(--piggy-shadow-sm); transform:translateY(-7px) rotate(-.5deg); }
.piggy-goal-icon { align-items:center; background:#fff; border-radius:18px; display:flex !important; font-size:25px; height:55px; justify-content:center; width:55px !important; }
.piggy-goal-amount .elementor-heading-title { font-size:27px; font-weight:850; }
.piggy-goal-foot { font-size:13px; font-weight:760; }

/* Life stages */
.piggy-life-stages { background:var(--piggy-navy); color:#fff; overflow:hidden; }
.piggy-life-stages .piggy-h2 .elementor-heading-title { color:#fff; }
.piggy-life-rail { overflow:hidden; }
.piggy-life-track { display:flex !important; flex-direction:row !important; gap:18px; padding-right:60px; width:max-content !important; will-change:transform; }
.piggy-life-card { background:var(--stage-bg,var(--piggy-soft-pink)); border-radius:34px; color:var(--piggy-navy); height:440px; justify-content:space-between; padding:32px; width:min(390px,78vw) !important; }
.piggy-life-card .elementor-heading-title { color:var(--piggy-navy); font-size:38px; }
.piggy-stage-number { align-items:center; border:1px solid rgba(14,34,68,.16); border-radius:50%; display:flex !important; height:45px; justify-content:center; width:45px !important; }

/* Privacy and company */
.piggy-privacy-home { background:var(--piggy-soft-mint); }
.piggy-privacy-grid { align-items:center; display:grid !important; gap:80px; grid-template-columns:1fr 1fr; margin:auto; max-width:var(--piggy-container); }
.piggy-privacy-visual { align-items:center; display:flex !important; justify-content:center; min-height:570px; position:relative; }
.piggy-shield { align-items:center; background:var(--piggy-navy); border-radius:48% 48% 50% 50%/20% 20% 65% 65%; box-shadow:0 40px 80px rgba(14,34,68,.2); color:#fff; display:flex !important; height:390px; justify-content:center; position:relative; width:330px !important; }
.piggy-shield::before { border:2px solid rgba(255,255,255,.14); border-radius:inherit; content:""; inset:18px; position:absolute; }
.piggy-lock { align-items:center; background:var(--piggy-pink); border-radius:24px; display:flex !important; font-weight:850; height:86px; justify-content:center; position:relative; width:100px !important; }
.piggy-lock::before { border:13px solid var(--piggy-pink); border-bottom:0; border-radius:40px 40px 0 0; content:""; height:55px; position:absolute; top:-48px; width:56px; }
.piggy-privacy-fact { background:#fff; border-radius:18px; box-shadow:var(--piggy-shadow-sm); font-weight:760; padding:17px 20px; position:absolute !important; width:auto !important; }
.piggy-privacy-fact.is-one { left:0; top:80px; }.piggy-privacy-fact.is-two { bottom:100px; right:-10px; }
.piggy-check-list { gap:17px; margin:32px 0; }
.piggy-check-row { align-items:center; display:flex !important; flex-direction:row !important; font-weight:720; gap:13px; }
.piggy-check-icon { align-items:center; background:#fff; border-radius:50%; color:#15957b; display:flex !important; font-weight:900; height:29px; justify-content:center; width:29px !important; }
.piggy-company-panel { background:linear-gradient(135deg,var(--piggy-navy),#193a70); border-radius:45px; color:#fff; margin:auto; max-width:var(--piggy-container); overflow:hidden; padding:clamp(40px,7vw,90px); position:relative; }
.piggy-company-panel::after { background:var(--piggy-pink); border-radius:50%; content:""; height:420px; position:absolute; right:-220px; top:-220px; width:420px; }
.piggy-company-panel > * { position:relative; z-index:2; }
.piggy-company-panel .elementor-heading-title, .piggy-company-panel p { color:#fff; }
.piggy-benefit-chips { display:flex !important; flex-direction:row !important; flex-wrap:wrap; gap:10px; }
.piggy-benefit-chip { background:rgba(255,255,255,.1); border-radius:999px; padding:10px 15px; width:auto !important; }
.piggy-final-cta { align-items:center; background:var(--piggy-pink); color:#fff; display:flex !important; justify-content:center; min-height:90vh; overflow:hidden; padding:80px 30px; text-align:center; }
.piggy-final-title .elementor-heading-title { color:#fff; font-size:clamp(54px,9vw,130px); font-weight:900; letter-spacing:-.075em; line-height:.87; }
.piggy-final-title .elementor-heading-title span { color:var(--piggy-navy); display:block; }

/* Inner pages */
.piggy-steps { position:relative; }
.piggy-journey-line { background:linear-gradient(var(--piggy-pink),var(--piggy-lavender),var(--piggy-mint)); bottom:0; left:58px; position:absolute !important; top:0; width:3px !important; }
.piggy-step-row { align-items:center; border-top:1px solid var(--piggy-line); display:grid !important; gap:45px; grid-template-columns:120px 1fr 1fr; padding:65px 0; }
.piggy-step-visual { align-items:center; background:var(--step-bg,var(--piggy-soft-pink)); border-radius:35px; display:flex !important; height:260px; justify-content:center; overflow:hidden; }
.piggy-step-visual .elementor-icon { color:var(--piggy-navy); font-size:70px; opacity:.85; }
.piggy-interactive-example { align-items:center; background:var(--piggy-navy); border-radius:42px; color:#fff; display:grid !important; gap:50px; grid-template-columns:.8fr 1.2fr; padding:clamp(32px,6vw,75px); }
.piggy-interactive-example .elementor-heading-title, .piggy-interactive-example p { color:#fff; }
.piggy-connection-list { gap:11px; }
.piggy-connection-row { align-items:center; border:1px solid rgba(255,255,255,.12); border-radius:14px; display:flex !important; flex-direction:row !important; justify-content:space-between; padding:15px 18px; }
.piggy-switch { background:rgba(255,255,255,.18); border:0; border-radius:999px; cursor:pointer; height:25px; padding:3px; position:relative; width:45px !important; }
.piggy-switch::before { background:#fff; border-radius:50%; content:""; display:block; height:19px; transition:.25s; width:19px; }
.piggy-switch.is-on { background:var(--piggy-mint); }.piggy-switch.is-on::before { transform:translateX(20px); }
.piggy-value-grid { display:grid !important; gap:20px; grid-template-columns:1fr 1fr; }
.piggy-value-card { background:var(--piggy-soft-mint); border-radius:32px; padding:35px; }
.piggy-value-card.is-private { background:var(--piggy-soft-pink); }
.piggy-value-list { gap:13px; margin-top:28px; }
.piggy-value-row { align-items:center; display:flex !important; flex-direction:row !important; gap:10px; }
.piggy-value-symbol { align-items:center; background:#fff; border-radius:50%; color:var(--piggy-mint); display:flex !important; font-weight:900; height:25px; justify-content:center; width:25px !important; }
.piggy-value-card.is-private .piggy-value-symbol { color:var(--piggy-pink); }
.piggy-principles { display:grid !important; gap:17px; grid-template-columns:repeat(3,1fr); }
.piggy-principle { border:1px solid var(--piggy-line); border-radius:26px; min-height:260px; padding:30px; }
.piggy-principle-icon { align-items:center; background:var(--piggy-soft-pink); border-radius:17px; display:flex !important; font-size:24px; height:52px; justify-content:center; margin-bottom:48px; width:52px !important; }
.piggy-permission-ui { background:#f7f8fb; border:1px solid var(--piggy-line); border-radius:35px; display:grid !important; gap:20px; grid-template-columns:230px 1fr; padding:25px; }
.piggy-permission-side { background:var(--piggy-navy); border-radius:23px; color:#fff; padding:25px; }
.piggy-permission-side .elementor-heading-title, .piggy-permission-side p { color:#fff; }
.piggy-permission-row { align-items:center; background:#fff; border:1px solid var(--piggy-line); border-radius:17px; display:flex !important; flex-direction:row !important; justify-content:space-between; margin:10px 0; padding:17px; }
.piggy-architecture { background:var(--piggy-navy); border-radius:42px; color:#fff; padding:clamp(34px,6vw,70px); }
.piggy-architecture .elementor-heading-title, .piggy-architecture p { color:#fff; }
.piggy-arch-flow { align-items:center; display:grid !important; gap:18px; grid-template-columns:1fr auto 1fr auto 1fr; margin-top:55px; }
.piggy-arch-node { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); border-radius:24px; padding:25px; text-align:center; }
.piggy-arch-arrow { color:var(--piggy-pink); font-size:28px; width:auto !important; }
.piggy-legal-note { border:1px dashed #c7d0df; border-radius:15px; color:rgba(255,255,255,.62); font-size:13px; margin-top:25px; padding:18px; }

/* Diagnostic */
.piggy-diagnostic-page { background:linear-gradient(145deg,var(--piggy-soft-pink),#fff 45%,var(--piggy-soft-mint)); min-height:100vh; padding:130px 20px 70px; }
.piggy-diagnostic-card { background:#fff; border-radius:38px; box-shadow:var(--piggy-shadow); margin:auto; min-height:560px; padding:clamp(30px,6vw,65px); width:min(760px,100%) !important; }
.piggy-diagnostic-start, .piggy-diagnostic-result { align-items:center; justify-content:center; min-height:430px; text-align:center; }
.piggy-diagnostic-form, .piggy-diagnostic-result { display:none !important; }
.piggy-diagnostic-form.is-active, .piggy-diagnostic-result.is-active { display:flex !important; }
.piggy-diagnostic-progress { align-items:center; display:flex !important; flex-direction:row !important; gap:15px; margin-bottom:55px; }
.piggy-diagnostic-progress .piggy-progress { flex:1; }
.piggy-question-slide { display:none !important; gap:30px; }.piggy-question-slide.is-active { display:flex !important; }
.piggy-question-title .elementor-heading-title { font-size:clamp(31px,5vw,47px); }
.piggy-answer-list { gap:11px; }
.piggy-answer .elementor-button { background:#fff; border:1px solid var(--piggy-line); border-radius:16px; color:var(--piggy-navy); justify-content:space-between; padding:17px 20px; text-align:left; width:100%; }
.piggy-answer .elementor-button:hover { background:var(--piggy-soft-pink); border-color:var(--piggy-pink); transform:translateX(4px); }
.piggy-result-ring { align-items:center; background:conic-gradient(var(--piggy-mint) 78%,var(--piggy-light-green) 0); border-radius:50%; display:flex !important; height:190px; justify-content:center; margin:25px auto; width:190px !important; }
.piggy-result-ring::before { background:#fff; border-radius:50%; content:""; height:150px; position:absolute; width:150px; }
.piggy-result-ring { position:relative; }
.piggy-result-ring > * { position:relative; z-index:1; }
.piggy-result-ring .elementor-heading-title { font-size:29px; font-weight:880; }
.piggy-result-grid { display:grid !important; gap:9px; grid-template-columns:1fr 1fr; margin:30px 0; text-align:left; }
.piggy-result-item { align-items:center; background:#f7f8fb; border-radius:14px; display:flex !important; flex-direction:row !important; font-size:13px; justify-content:space-between; padding:13px 16px; }

/* Dashboard demo page */
.piggy-demo-page { background:#eef1f6; min-height:100vh; padding:95px 18px 18px; }
.piggy-demo-shell { background:#f7f8fb; border-radius:28px; box-shadow:var(--piggy-shadow); display:grid !important; grid-template-columns:240px 1fr; margin:auto; max-width:1450px; min-height:calc(100vh - 115px); overflow:hidden; }
.piggy-demo-sidebar { background:var(--piggy-navy); color:#fff; padding:30px 20px; }
.piggy-demo-nav { gap:5px; margin-top:45px; }
.piggy-demo-tab .elementor-button { background:transparent; color:rgba(255,255,255,.62); justify-content:flex-start; padding:13px; width:100%; }
.piggy-demo-tab.is-active .elementor-button, .piggy-demo-tab .elementor-button:hover { background:rgba(255,255,255,.1); color:#fff; }
.piggy-demo-content { padding:35px; }
.piggy-demo-top { align-items:center; display:flex !important; flex-direction:row !important; justify-content:space-between; margin-bottom:25px; }
.piggy-demo-panel { display:none !important; }.piggy-demo-panel.is-active { display:block !important; }
.piggy-demo-grid { display:grid !important; gap:16px; grid-template-columns:repeat(12,minmax(0,1fr)); }
.piggy-demo-wide { grid-column:span 8; }.piggy-demo-narrow { grid-column:span 4; }.piggy-demo-half { grid-column:span 6; }
.piggy-donut { align-items:center; background:conic-gradient(var(--piggy-pink) 0 44%,var(--piggy-lavender) 44% 70%,var(--piggy-mint) 70% 88%,var(--piggy-gold) 88%); border-radius:50%; display:flex !important; height:105px; justify-content:center; width:105px !important; }
.piggy-donut::after { background:#fff; border-radius:50%; content:""; height:63px; width:63px; }
.piggy-benefit-list { gap:10px; margin-top:15px; }
.piggy-benefit-row { border-bottom:1px solid var(--piggy-line); display:flex !important; flex-direction:row !important; font-size:13px; justify-content:space-between; padding:10px 0; }

/* FAQ */
.piggy-faq { margin:auto; max-width:850px; }
.piggy-faq-item { border-top:1px solid var(--piggy-line); }
.piggy-faq-question { align-items:center; cursor:pointer; display:flex !important; flex-direction:row !important; font-size:19px; font-weight:780; justify-content:space-between; padding:23px 0; }
.piggy-faq-answer { max-height:0; overflow:hidden; transition:max-height .35s ease; }
.piggy-faq-item.is-open .piggy-faq-answer { max-height:220px; }
.piggy-faq-plus { transition:transform .3s ease; width:auto !important; }.piggy-faq-item.is-open .piggy-faq-plus { transform:rotate(45deg); }

/* Header/footer and auth reusable templates */
.piggy-footer { background:#081a36; color:#fff; padding:75px clamp(22px,4vw,56px) 35px; }
.piggy-footer-inner { margin:auto; max-width:var(--piggy-container); }
.piggy-footer-top { display:grid !important; gap:35px; grid-template-columns:1.6fr repeat(4,1fr); }
.piggy-footer .elementor-heading-title { color:#fff; }.piggy-footer p, .piggy-footer a { color:rgba(255,255,255,.62); }
.piggy-footer-links { gap:11px; }.piggy-footer-links .elementor-button { background:transparent; color:rgba(255,255,255,.62); justify-content:flex-start; padding:0; }
.piggy-footer-bottom { border-top:1px solid rgba(255,255,255,.11); color:rgba(255,255,255,.48); display:flex !important; flex-direction:row !important; font-size:12px; justify-content:space-between; margin-top:55px; padding-top:25px; }
.piggy-social { display:flex !important; flex-direction:row !important; gap:8px; }.piggy-social .elementor-icon { align-items:center; border:1px solid rgba(255,255,255,.16); border-radius:50%; color:#fff; display:flex; height:35px; justify-content:center; width:35px; }
.piggy-auth { background:#fff; border-radius:38px; box-shadow:0 35px 100px rgba(0,0,0,.3); display:grid !important; grid-template-columns:.85fr 1.15fr; margin:auto; max-width:930px; overflow:hidden; }
.piggy-auth-art { background:var(--piggy-navy); color:#fff; justify-content:space-between; min-height:650px; overflow:hidden; padding:55px 45px; position:relative; }
.piggy-auth-art::after { background:var(--piggy-pink); border-radius:45% 55%; bottom:-140px; content:""; height:280px; position:absolute; right:-100px; width:280px; }
.piggy-auth-art .elementor-heading-title, .piggy-auth-art p { color:#fff; }
.piggy-auth-form { padding:55px 50px; }
.piggy-auth .elementor-field-group > label { color:var(--piggy-navy); font-size:13px; font-weight:750; }
.piggy-auth .elementor-field { border:1px solid var(--piggy-line); border-radius:13px; min-height:50px; }

/* Animation states */
.piggy-reveal { opacity:0; transform:translateY(35px); transition:opacity .75s ease,transform .75s ease; }
.piggy-reveal.is-visible { opacity:1; transform:none; }
.piggy-stagger > * { opacity:0; transform:translateY(25px); transition:opacity .65s ease,transform .65s ease; }
.piggy-stagger.is-visible > * { opacity:1; transform:none; }
.piggy-stagger.is-visible > *:nth-child(2) { transition-delay:.1s; }.piggy-stagger.is-visible > *:nth-child(3) { transition-delay:.2s; }.piggy-stagger.is-visible > *:nth-child(4) { transition-delay:.3s; }

@media (max-width: 1050px) {
  .piggy-header-nav, .piggy-header-login { display:none !important; }
  .piggy-mobile-toggle { display:block !important; }
  .piggy-hero-inner { grid-template-columns:1fr; }
  .piggy-hero-copy { align-items:center; text-align:center; }
  .piggy-hero-copy .piggy-lede { margin-inline:auto; }.piggy-cta-row,.piggy-proof-row { justify-content:center; }
  .piggy-hero-visual { min-height:520px; }
  .piggy-section-head { display:block !important; }.piggy-section-head .piggy-lede { margin-top:22px; }
  .piggy-privacy-grid { gap:30px; }
  .piggy-dashboard-frame { grid-template-columns:1fr; }.piggy-dashboard-sidebar { display:none !important; }
  .piggy-demo-shell { grid-template-columns:190px 1fr; }.piggy-demo-content { padding:22px; }.piggy-demo-wide,.piggy-demo-narrow { grid-column:span 6; }
}

@media (max-width: 782px) { .admin-bar .piggy-header { top:46px; } }

@media (max-width: 760px) {
  .piggy-life-site .piggy-h1 .elementor-heading-title { font-size:58px; }
  .piggy-section { padding:85px 20px; }.piggy-hero { padding:125px 20px 80px; }.piggy-hero-visual { min-height:470px; }
  .piggy-phone-card { padding:22px; width:79% !important; }.piggy-orb-pink { height:360px; width:360px !important; }
  .piggy-float-card { min-width:140px; padding:12px 14px; }.piggy-health-card { left:0; }.piggy-available-card { right:0; }.piggy-emergency-card { left:5px; }
  .piggy-assemble { min-height:200vh; }.piggy-assemble-copy { top:13vh; }.piggy-connect-ring { height:95vw; width:95vw !important; }
  .piggy-assemble-core { height:175px; width:175px !important; }.piggy-assemble-node { font-size:11px; padding:10px; width:118px !important; }.piggy-node-icon { height:25px; width:25px !important; }
  .piggy-dashboard-frame { padding:8px; }.piggy-dashboard-main { padding:16px; }.piggy-ui-net,.piggy-ui-score,.piggy-ui-third { grid-column:span 12; }.piggy-recommendation-banner { align-items:flex-start; flex-direction:column !important; }
  .piggy-recommendation-grid,.piggy-goal-grid,.piggy-privacy-grid,.piggy-interactive-example,.piggy-value-grid { grid-template-columns:1fr; }
  .piggy-recommendation-card { min-height:300px; padding:28px; }.piggy-privacy-visual { min-height:490px; }.piggy-shield { height:320px; width:260px !important; }
  .piggy-footer-top { grid-template-columns:1fr 1fr; }.piggy-footer-intro { grid-column:span 2; }
  .piggy-step-row { grid-template-columns:60px 1fr; gap:15px; }.piggy-step-visual { grid-column:2; }.piggy-journey-line { left:28px; }
  .piggy-principles { grid-template-columns:1fr; }.piggy-arch-flow { grid-template-columns:1fr; }.piggy-arch-arrow { transform:rotate(90deg); }.piggy-permission-ui { grid-template-columns:1fr; }.piggy-permission-side { display:none !important; }
  .piggy-result-grid { grid-template-columns:1fr; }.piggy-demo-page { padding:80px 0 0; }.piggy-demo-shell { display:block !important; border-radius:0; }.piggy-demo-sidebar { padding:16px; position:sticky; top:0; z-index:4; }.piggy-demo-nav { display:flex !important; flex-direction:row !important; margin-top:15px; overflow:auto; }.piggy-demo-tab { min-width:max-content; }.piggy-demo-content { padding:18px; }.piggy-demo-wide,.piggy-demo-narrow,.piggy-demo-half { grid-column:span 12; }
  .piggy-auth { grid-template-columns:1fr; }.piggy-auth-art { display:none !important; }.piggy-auth-form { padding:48px 25px 30px; }
  .piggy-final-cta { min-height:70vh; }.piggy-final-title .elementor-heading-title { font-size:58px; }
}

@media (max-width: 480px) {
  .piggy-header-start { display:none !important; }.piggy-header-inner { padding-inline:20px; }.piggy-life-site .piggy-h1 .elementor-heading-title { font-size:53px; }
  .piggy-hero-visual { margin-inline:-10px; }.piggy-float-card { font-size:11px; }.piggy-float-value .elementor-heading-title { font-size:17px; }.piggy-phone-card { width:83% !important; }
  .piggy-goal-grid { grid-template-columns:1fr; }.piggy-footer-top { grid-template-columns:1fr; }.piggy-footer-intro { grid-column:auto; }.piggy-footer-bottom { align-items:flex-start; flex-direction:column !important; gap:18px; }
}

@media (prefers-reduced-motion: reduce) {
  .piggy-life-site { scroll-behavior:auto; }
  .piggy-ecosystem-track { animation:none; }
  .piggy-reveal,.piggy-stagger > *,.piggy-assemble-node,.piggy-progress-fill,.piggy-button .elementor-button,.piggy-goal-card { transition:none !important; }
  .piggy-orb,.piggy-life-track { transform:none !important; }
}

/* Editor mode: keep editable pinned/hideable content visible and selectable. */
.elementor-editor-active .piggy-assemble { min-height:auto; }
.elementor-editor-active .piggy-assemble-stage { min-height:900px; position:relative !important; }
.elementor-editor-active .piggy-reveal,.elementor-editor-active .piggy-stagger > * { opacity:1; transform:none; }
.elementor-editor-active .piggy-question-slide,.elementor-editor-active .piggy-demo-panel { display:flex !important; opacity:.55; }
.elementor-editor-active .piggy-question-slide:first-of-type,.elementor-editor-active .piggy-demo-panel:first-of-type { opacity:1; }
