/* ============================================================
   PS Digital Marketing - native Elementor stylesheet
   Home (2026 design) rebuilt as Elementor containers + widgets.
   Every rule is prefixed with `body .elementor` (specificity 0,2,1) so it
   outranks Elementor's own .e-con.e-flex / .e-con-full.e-flex defaults (0,2,0),
   which otherwise force every container back to flex-column.
   ============================================================ */

/* ---------- page canvas ---------- */
body.psn-page{
  background:#FAF6F1; color:#1B1B1B;
  font-family:'Outfit',system-ui,-apple-system,'Segoe UI',sans-serif;
  overflow-x:hidden; position:relative;
}
body.psn-page::before,
body.psn-page::after{
  content:''; position:absolute; border-radius:50%; pointer-events:none; z-index:0;
}
body.psn-page::before{
  top:-160px; right:-180px; width:760px; height:620px;
  background:radial-gradient(closest-side,rgba(244,203,168,.38),rgba(250,246,241,0));
}
body.psn-page::after{
  top:120px; right:120px; width:520px; height:420px;
  background:radial-gradient(closest-side,rgba(247,224,205,.45),rgba(250,246,241,0));
}

/* ---------- neutralise Elementor container / widget defaults ---------- */
body .elementor .psn{
  --padding-block-start:0; --padding-block-end:0;
  --padding-inline-start:0; --padding-inline-end:0;
  --gap:0px; --row-gap:0px; --column-gap:0px;
  --margin-block-start:0; --margin-block-end:0;
  --margin-inline-start:0; --margin-inline-end:0;
  --width:100%; --min-height:0;
  padding:0; margin:0; position:relative; z-index:1;
}
body .elementor .psn .elementor-widget:not(:last-child){ margin-bottom:0; }
body .elementor .psn p:last-child{ margin-bottom:0; }
body .elementor .psn a{ text-decoration:none; color:inherit; }
body .elementor .psn .elementor-heading-title{ margin:0; font-weight:inherit; font-size:inherit;
  line-height:inherit; letter-spacing:inherit; color:inherit; }
body .elementor .psn .elementor-icon-list-items{ margin:0; padding:0; }
body .elementor .psn .elementor-icon-list-item{ margin:0 !important; padding:0 !important; }
body .elementor .psn .elementor-icon-list-item:after{ display:none !important; }
body .elementor .psn .elementor-icon-list-icon{ display:none !important; }
body .elementor .psn .elementor-icon-list-text{ padding:0 !important; }
body .elementor .psn .elementor-button{ background:none; border-radius:0; padding:0;
  font-family:inherit; box-shadow:none; }
body .elementor .psn .elementor-button-content-wrapper{ display:inline-flex; align-items:center;
  gap:inherit; }
body .elementor .psn .elementor-button-icon{ margin:0 !important; }
body .elementor .psn .elementor-button-text{ flex-grow:0; }

/* ============================================================ HEADER */
body .elementor .psn-header{
  position:sticky; top:0; z-index:60;
  background:rgba(249,246,241,.94); backdrop-filter:blur(14px);
  border-bottom:1px solid #E7E1D5;
}
body .elementor .psn-bar{
  max-width:1320px; margin:0 auto !important; padding:0 40px !important;
  height:78px; display:flex; flex-direction:row; align-items:center; gap:40px;
}
body .elementor .psn-logo{ display:flex; flex-direction:row; align-items:center; gap:12px;
  flex-shrink:0; width:auto; }
body .elementor .psn-logo-mark{ font-size:34px; font-weight:800; line-height:.9;
  color:#F2701A; letter-spacing:-.05em; width:auto; }
body .elementor .psn-logo-txt{ display:flex; flex-direction:column; gap:3px; width:auto; }
body .elementor .psn-logo-name{ font-weight:800; font-size:14px; letter-spacing:.02em; color:#0C0C0C; }
body .elementor .psn-logo-sub{ font-weight:600; font-size:8.5px; letter-spacing:.16em; color:#8B8477; }

body .elementor .psn-nav{ margin-left:auto; width:auto; min-width:0; }
body .elementor .psn-nav .elementor-icon-list-items{ display:flex; flex-direction:row;
  align-items:center; gap:28px; }
body .elementor .psn-nav .elementor-icon-list-text{
  font-weight:600; font-size:11.5px; letter-spacing:.1em;
  color:#2A2724; white-space:nowrap; transition:color .2s ease; }
body .elementor .psn-nav a:hover .elementor-icon-list-text{ color:#F2701A; }

body .elementor .psn-cta{ flex-shrink:0; width:auto; }
body .elementor .psn-cta .elementor-button{
  display:inline-flex; align-items:center; gap:9px;
  background:#F2701A; color:#fff; font-weight:700; font-size:11.5px;
  letter-spacing:.1em; padding:14px 24px; border-radius:6px; white-space:nowrap;
  transition:background .2s ease, transform .2s ease; }
body .elementor .psn-cta .elementor-button:hover{ background:#D9600F; transform:translateY(-1px); }

body .elementor .psn-burger{ display:none; width:auto; margin-left:auto; }
body .elementor .psn-burger button{
  width:46px; height:46px; background:transparent; border:1px solid #DDD5C6;
  cursor:pointer; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:5px; }
body .elementor .psn-burger button span{ width:18px; height:1.5px; background:#0C0C0C; display:block; }

/* ============================================================ HERO */
body .elementor .psn-hero{
  max-width:1240px; margin:0 auto !important; padding:26px 20px 0 !important;
  display:grid; grid-template-columns:minmax(0,470px) minmax(0,1fr);
  gap:24px; align-items:center;
}
body .elementor .psn-hero-copy{ display:flex; flex-direction:column; align-items:flex-start; }
body .elementor .psn-badge{
  display:inline-block; width:auto; border:1px solid #F2701A; color:#F2701A;
  border-radius:999px; padding:7px 16px; font-size:11px; font-weight:700;
  letter-spacing:.05em; }
body .elementor .psn-h1{ margin-top:22px; font-size:52px; line-height:1.16; font-weight:700;
  letter-spacing:-1px; }
body .elementor .psn-h1 .psn-accent{ color:#F2701A; }
body .elementor .psn-h1 span{ display:block; }
body .elementor .psn-lead{ margin-top:22px; max-width:360px; font-size:16px; line-height:1.65; color:#5B5B5B; }
body .elementor .psn-hero-actions{ display:flex; flex-direction:row; align-items:center;
  gap:26px; margin-top:30px; width:auto; }
body .elementor .psn-btn-primary{ width:auto; }
body .elementor .psn-btn-primary .elementor-button{
  display:inline-flex; align-items:center; gap:12px; background:#F2701A; color:#fff;
  font-size:14px; font-weight:600; padding:16px 26px; border-radius:10px;
  box-shadow:0 10px 22px rgba(242,112,26,.3);
  transition:transform .2s ease, box-shadow .2s ease; }
body .elementor .psn-btn-primary .elementor-button:hover{
  transform:translateY(-2px); box-shadow:0 14px 28px rgba(242,112,26,.38); }
body .elementor .psn-btn-primary .elementor-button-icon{ transition:transform .25s ease; }
body .elementor .psn-btn-primary .elementor-button:hover .elementor-button-icon{ transform:translateX(4px); }

body .elementor .psn-btn-watch{ width:auto; }
body .elementor .psn-btn-watch .elementor-button{
  display:inline-flex; align-items:center; gap:14px; background:transparent;
  color:#2A2A2A; font-size:15px; font-weight:500; padding:0; }
body .elementor .psn-btn-watch .elementor-button-icon{
  width:40px; height:40px; border-radius:50%; background:#fff;
  box-shadow:0 4px 14px rgba(0,0,0,.08); display:inline-flex; align-items:center;
  justify-content:center; color:#F2701A; font-size:13px; transition:transform .25s ease; }
body .elementor .psn-btn-watch .elementor-button:hover .elementor-button-icon{ transform:scale(1.1); }

body .elementor .psn-hero-art{ position:relative; min-height:360px; display:flex;
  align-items:center; justify-content:flex-end; }

/* ============================================================ LOGO STRIP */
body .elementor .psn-logos{ max-width:1240px; margin:6px auto 0 !important; padding:0 20px !important; }
body .elementor .psn-logos-label{ text-align:center; font-size:11px; font-weight:600;
  letter-spacing:.1em; color:#6B6B6B; margin-bottom:8px; }
body .elementor .psn-logos-grid{
  background:#fff; border:1px solid #F0E6DC; border-radius:14px;
  box-shadow:0 6px 24px rgba(180,140,105,.08);
  display:grid; grid-template-columns:repeat(6,1fr); }
body .elementor .psn-logo-cell{
  display:flex; align-items:center; justify-content:center;
  padding:22px 10px; font-size:21px; font-weight:600; color:#1B1B1B;
  border-right:1px solid #F2EAE1; text-align:center; }
body .elementor .psn-logos-grid > .psn-logo-cell:last-child{ border-right:0; }
body .elementor .psn-logo-cell .elementor-heading-title{ display:inline-flex; align-items:center; gap:8px; }

/* ============================================================ STATS ROW */
body .elementor .psn-stats{ max-width:1240px; margin:0 auto !important; padding:34px 20px 6px !important; }
body .elementor .psn-stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); }
body .elementor .psn-stat{
  display:flex; flex-direction:row; align-items:center; gap:18px;
  justify-content:center; padding:8px 10px !important; border-right:1px solid #EDE2D6; }
body .elementor .psn-stats-grid > .psn-stat:last-child{ border-right:0; }
body .elementor .psn-stat-ico{ font-size:34px; color:#F2701A; width:auto; line-height:1; }
body .elementor .psn-stat-body{ width:auto; }
body .elementor .psn-stat .elementor-counter{ display:block; }
body .elementor .psn-stat .elementor-counter-number-wrapper{
  font-size:28px; font-weight:700; line-height:1.1; color:#1B1B1B;
  justify-content:flex-start; }
body .elementor .psn-stat .elementor-counter-title{
  font-size:13px; color:#5B5B5B; font-weight:400; text-align:left; }
body .elementor .psn-services-label{ font-size:16px; font-weight:600; color:#F2701A;
  text-align:center; margin-top:41px; margin-bottom:-4px; }

/* ============================================================ SERVICE BENTO */
body .elementor .psn-bento{
  max-width:1240px; margin:0 auto !important; padding:26px 20px 0 !important;
  display:grid; grid-template-columns:1.02fr 1.06fr 1fr; gap:18px; align-items:start; }
body .elementor .psn-bento-col{ display:grid; gap:18px; align-content:start; }
body .elementor .psn-card{
  border-radius:16px; padding:22px !important; position:relative; overflow:hidden;
  background:#FBEADC; color:inherit; display:block;
  transition:transform .3s ease, box-shadow .3s ease; }
body .elementor .psn-card:hover{ transform:translateY(-6px); box-shadow:0 18px 40px rgba(180,130,90,.22); }
body .elementor .psn-card-a{ padding-bottom:26px !important; }
body .elementor .psn-card-b{ min-height:230px; }
body .elementor .psn-card-c{
  background:linear-gradient(180deg,#FBE7D6 0%,#F7D3AE 60%,#F0BE8C 100%);
  min-height:478px; }
body .elementor .psn-card-d{ background:#E7E3F8; min-height:224px; }
body .elementor .psn-card-e{ min-height:236px; }
body .elementor .psn-card-head{ display:flex; flex-direction:row; gap:14px;
  align-items:flex-start; position:relative; z-index:3; }
body .elementor .psn-card-ico{
  width:38px; height:38px; min-width:38px; border-radius:10px; background:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  color:#F2701A; font-size:17px; line-height:1; }
body .elementor .psn-card-d .psn-card-ico{ color:#7B5FD6; font-size:16px; }
body .elementor .psn-card-text{ width:auto; }
body .elementor .psn-card-title{ font-size:19px; font-weight:700; line-height:1.25; }
body .elementor .psn-card-desc{ font-size:13px; color:#6A5B50; line-height:1.5; margin-top:4px; }
body .elementor .psn-card-d .psn-card-desc{ color:#5D5670; }

/* ============================================================ ABOUT */
body .elementor .psn-about{
  max-width:1240px; margin:0 auto !important; padding:34px 20px 0 !important;
  display:grid; grid-template-columns:1.05fr 1fr; gap:52px; align-items:center; }
body .elementor .psn-eyebrow{ font-size:16px; font-weight:600; color:#F2701A; }
body .elementor .psn-h2{ margin-top:12px; font-size:40px; line-height:1.2; font-weight:700;
  letter-spacing:-.5px; }
body .elementor .psn-h2 .psn-accent{ color:#F2701A; }
body .elementor .psn-about-copy{ display:flex; flex-direction:column; align-items:flex-start; }
body .elementor .psn-about-text{ margin-top:18px; font-size:15px; line-height:1.75;
  color:#5B5B5B; max-width:400px; }
body .elementor .psn-btn-sm{ width:auto; margin-top:26px; }
body .elementor .psn-btn-sm .elementor-button{
  display:inline-flex; align-items:center; gap:10px; background:#F2701A; color:#fff;
  font-size:13px; font-weight:600; padding:13px 22px; border-radius:8px;
  transition:transform .2s ease; }
body .elementor .psn-btn-sm .elementor-button:hover{ transform:translateY(-2px); }
body .elementor .psn-btn-sm .elementor-button-icon{ transition:transform .25s ease; }
body .elementor .psn-btn-sm .elementor-button:hover .elementor-button-icon{ transform:translateX(4px); }
body .elementor .psn-btn-round .elementor-button{ border-radius:999px; padding:11px 22px; }

/* ============================================================ SKILLS */
body .elementor .psn-skills{
  max-width:1240px; margin:0 auto !important; padding:40px 20px 0 !important;
  display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
body .elementor .psn-h3{ font-size:30px; font-weight:700; letter-spacing:-.4px; }
body .elementor .psn-skills-text{ margin:12px 0 26px; font-size:14px; line-height:1.6;
  color:#5B5B5B; max-width:330px; }
body .elementor .psn-bars{ display:flex; flex-direction:column; gap:20px; }
body .elementor .psn-skillbar .elementor-progress-wrapper{
  height:4px; border-radius:3px; background:#F1E4D7; overflow:visible; }
body .elementor .psn-skillbar .elementor-progress-bar{
  height:4px; border-radius:3px; background:#F2701A; line-height:4px; }
body .elementor .psn-skillbar .elementor-title{
  font-size:14px; font-weight:600; margin-bottom:8px; display:block; }
body .elementor .psn-skillbar .elementor-progress-percentage{
  position:absolute; right:0; top:0; font-size:14px; font-weight:600;
  color:#1B1B1B; padding:0; }
body .elementor .psn-skillbar{ position:relative; }

body .elementor .psn-skill-stats{ display:grid; grid-template-columns:1fr 1fr; row-gap:8px; }
body .elementor .psn-sstat{ display:flex; flex-direction:row; align-items:center; gap:20px; }
body .elementor .psn-sstat-1{ padding:22px 10px 22px 0 !important;
  border-right:1px solid #EDE2D6; border-bottom:1px solid #EDE2D6; }
body .elementor .psn-sstat-2{ padding:22px 0 22px 34px !important; border-bottom:1px solid #EDE2D6; }
body .elementor .psn-sstat-3{ padding:22px 10px 6px 0 !important; border-right:1px solid #EDE2D6; }
body .elementor .psn-sstat-4{ padding:22px 0 6px 34px !important; }
body .elementor .psn-sstat-ico{
  width:64px; height:64px; min-width:64px; border-radius:50%; background:#FBEADC;
  color:#F2701A; display:inline-flex; align-items:center; justify-content:center;
  font-size:26px; line-height:1; }
body .elementor .psn-sstat .elementor-counter-number-wrapper{
  font-size:30px; font-weight:700; color:#F2701A; line-height:1.1;
  justify-content:flex-start; }
body .elementor .psn-sstat .elementor-counter-title{
  font-size:14px; color:#4A4A4A; font-weight:400; text-align:left; }

/* ============================================================ BOARD / LEADERSHIP */
body .elementor .psn-board{
  max-width:1240px; margin:0 auto !important; padding:56px 20px 0 !important;
  text-align:center; }
body .elementor .psn-kicker{ font-size:12px; font-weight:700; letter-spacing:.14em; color:#F2701A; }
body .elementor .psn-h2-c{ margin:12px 0 34px; font-size:42px; font-weight:700; letter-spacing:-.6px; }
body .elementor .psn-h2-c .psn-accent{ color:#F2701A; }
body .elementor .psn-board-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:38px; }
body .elementor .psn-lead-card{
  position:relative; height:232px; border-radius:14px; background:#F2701A;
  overflow:hidden; text-align:left;
  transition:transform .3s ease, box-shadow .3s ease; }
body .elementor .psn-lead-card:hover{ transform:translateY(-6px); box-shadow:0 18px 38px rgba(242,112,26,.28); }
body .elementor .psn-lead-name{ position:absolute; left:14px; bottom:32px; z-index:4;
  font-size:17px; font-weight:600; color:#fff; width:auto; }
body .elementor .psn-lead-role{ position:absolute; left:14px; bottom:14px; z-index:4;
  font-size:12px; font-weight:600; color:#F2701A; width:auto; }
body .elementor .psn-board-note{ margin:26px auto 0; max-width:660px; font-size:14px;
  line-height:1.7; color:#5B5B5B; }

/* ============================================================ BRAND COLLAGE */
body .elementor .psn-brands{ max-width:1240px; margin:0 auto !important; padding:20px 20px 0 !important; }
body .elementor .psn-brands-stage{ position:relative; height:470px; }
body .elementor .psn-brands-copy{
  position:absolute; left:50%; top:236px; transform:translateX(-50%);
  width:430px; max-width:66%; text-align:center; z-index:5;
  display:flex; flex-direction:column; align-items:center; }
body .elementor .psn-pill{ display:inline-block; width:auto; background:#FBE3CE; color:#D45C0C;
  font-size:11px; font-weight:600; padding:5px 14px; border-radius:999px; }
body .elementor .psn-h2-brands{ margin-top:12px; font-size:31px; line-height:1.25;
  font-weight:700; letter-spacing:-.4px; }
body .elementor .psn-h2-brands .psn-accent{ color:#F2701A; }
body .elementor .psn-brands-text{ margin-top:12px; font-size:14px; line-height:1.6; color:#5B5B5B; }
body .elementor .psn-brands-copy .psn-btn-sm{ margin-top:16px; }

/* ============================================================ TEAM */
body .elementor .psn-team{
  max-width:1240px; margin:0 auto !important; padding:56px 20px 0 !important;
  text-align:center; }
body .elementor .psn-team-intro{ margin:0 auto 40px; max-width:560px; font-size:14.5px;
  line-height:1.7; color:#5B5B5B; }
body .elementor .psn-team-grid{ display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:22px; }
body .elementor .psn-team-card{
  background:#fff; border:1px solid #F0E6DC; border-radius:16px; overflow:hidden;
  text-align:center; transition:transform .3s ease, box-shadow .3s ease; }
body .elementor .psn-team-card:hover{ transform:translateY(-6px); box-shadow:0 16px 34px rgba(180,145,110,.18); }
body .elementor .psn-team-photo{ line-height:0; }
body .elementor .psn-team-photo img{
  width:100%; height:180px; object-fit:cover; display:block; background:#F3EDE4; }
body .elementor .psn-team-name{ padding:16px 14px 0; font-size:15.5px; font-weight:600; color:#1A1A1A; }
body .elementor .psn-team-role{ padding:4px 14px 0; font-size:12px; color:#7A7A7A; }
body .elementor .psn-team-links{ padding:12px 14px 18px; }
body .elementor .psn-team-links .elementor-icon-list-items{
  display:flex; flex-direction:row; align-items:center; justify-content:center; gap:10px; }
body .elementor .psn-team-links .elementor-icon-list-text{
  font-size:11px; font-weight:700; letter-spacing:.06em; color:#B0A492;
  transition:color .2s ease; }
body .elementor .psn-team-links a:hover .elementor-icon-list-text{ color:#F2701A; }

/* ============================================================ WORK */
body .elementor .psn-work{
  max-width:1240px; margin:0 auto !important; padding:10px 20px 0 !important;
  text-align:center; }
body .elementor .psn-work-grid{ position:relative; display:grid; grid-template-columns:repeat(3,1fr);
  gap:26px; text-align:left; }
body .elementor .psn-proj{
  background:#FDFAF6; border:1px solid #F1E7DC; border-radius:14px; overflow:hidden;
  transition:transform .3s ease, box-shadow .3s ease; }
body .elementor .psn-proj:hover{ transform:translateY(-6px); box-shadow:0 18px 36px rgba(180,145,110,.2); }
body .elementor .psn-proj-title{ padding:18px 20px 0; font-size:19px; font-weight:600; }
body .elementor .psn-proj-text{ padding:10px 20px 0; font-size:14px; line-height:1.6; color:#5B5B5B; }
body .elementor .psn-proj-link{ padding:16px 20px 22px; width:auto; }
body .elementor .psn-proj-link .elementor-button{
  display:inline-flex; align-items:center; gap:12px; font-size:14px;
  font-weight:500; color:#F2701A; background:transparent; padding:0; }
body .elementor .psn-proj-link .elementor-button-icon{ transition:transform .25s ease; }
body .elementor .psn-proj-link .elementor-button:hover .elementor-button-icon{ transform:translateX(4px); }

/* ============================================================ FOOTER */
body .elementor .psn-footer{ background:#0C0C0C; color:#F9F6F1; padding:84px 40px 30px !important; }
body .elementor .psn-ft-grid{ max-width:1320px; margin:0 auto !important;
  display:grid; grid-template-columns:1.5fr .8fr 1.1fr 1.2fr; gap:56px; }
body .elementor .psn-ft-col{ display:flex; flex-direction:column; gap:18px; align-items:flex-start; }
body .elementor .psn-ft-brand{ gap:26px; }
body .elementor .psn-ft-logo{ display:flex; flex-direction:row; align-items:baseline; gap:14px;
  flex-wrap:wrap; width:auto; }
body .elementor .psn-ft-logo-mark{ font-size:38px; font-weight:800; line-height:.9;
  color:#F2701A; letter-spacing:-.05em; width:auto; }
body .elementor .psn-ft-logo-sub{ font-weight:700; font-size:10px; letter-spacing:.16em;
  color:#F2701A; width:auto; }
body .elementor .psn-ft-about{ font-size:14.5px; line-height:1.65; color:#A8A29A; max-width:290px; }
body .elementor .psn-ft-tag{ font-size:20px; font-weight:600; color:#F2701A; }
body .elementor .psn-ft-h{ font-weight:700; font-size:10.5px; letter-spacing:.16em; color:#F9F6F1; }
body .elementor .psn-ft-links .elementor-icon-list-items{ display:flex; flex-direction:column; gap:13px; }
body .elementor .psn-ft-links .elementor-icon-list-text{ font-size:14.5px; color:#A8A29A;
  transition:color .2s ease; }
body .elementor .psn-ft-links a:hover .elementor-icon-list-text{ color:#F2701A; }
body .elementor .psn-ft-social .elementor-icon-list-items{ display:flex; flex-direction:row; gap:10px; }
body .elementor .psn-ft-social .elementor-icon-list-text{
  width:38px; height:38px; border:1px solid #2E2C28; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:9.5px; font-weight:700; letter-spacing:.06em; color:#A8A29A;
  transition:border-color .2s ease, color .2s ease; }
body .elementor .psn-ft-social a:hover .elementor-icon-list-text{ border-color:#F2701A; color:#F2701A; }
body .elementor .psn-ft-news-h{ margin-top:22px; }
body .elementor .psn-ft-bottom{
  max-width:1320px; margin:62px auto 0 !important; padding-top:26px !important;
  border-top:1px solid #1E1C1A; display:flex; flex-direction:row;
  justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; }
body .elementor .psn-ft-fine{ font-size:10.5px; font-weight:500; letter-spacing:.12em;
  color:#6E6862; width:auto; }

/* ============================================================ RESPONSIVE */
@media (max-width:1024px){
  body .elementor .psn-hero{ grid-template-columns:1fr; }
  body .elementor .psn-bento{ grid-template-columns:1fr 1fr; }
  body .elementor .psn-card-c{ min-height:340px; }
  body .elementor .psn-about,
  body .elementor .psn-skills{ grid-template-columns:1fr; gap:36px; }
  body .elementor .psn-board-grid{ grid-template-columns:repeat(2,1fr); gap:24px; }
  body .elementor .psn-work-grid{ grid-template-columns:1fr 1fr; }
  body .elementor .psn-ft-grid{ grid-template-columns:1fr 1fr; gap:40px; }
  body .elementor .psn-logos-grid{ grid-template-columns:repeat(3,1fr); }
  body .elementor .psn-logo-cell:nth-child(3n){ border-right:0; }
  body .elementor .psn-stats-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:880px){
  body .elementor .psn-bar{ padding:0 20px !important; gap:16px; }
  body .elementor .psn-nav{ display:none; }
  body .elementor .psn-cta{ display:none; }
  body .elementor .psn-burger{ display:block; }
  body .elementor .psn-header.psn-open .psn-nav{
    display:block; position:absolute; left:0; right:0; top:78px; width:auto;
    margin:0; background:#F9F6F1; border-top:1px solid #E7E1D5;
    padding:18px 20px 26px; box-shadow:0 18px 30px rgba(0,0,0,.08); }
  body .elementor .psn-header.psn-open .psn-nav .elementor-icon-list-items{
    flex-direction:column; align-items:stretch; gap:0; }
  body .elementor .psn-header.psn-open .psn-nav .elementor-icon-list-item{
    border-bottom:1px solid #EDE7DB; }
  body .elementor .psn-header.psn-open .psn-nav .elementor-icon-list-item:last-child{ border-bottom:0; }
  body .elementor .psn-header.psn-open .psn-nav .elementor-icon-list-text{
    font-size:13px; padding:15px 4px !important; display:block; }
  body .elementor .psn-header.psn-open .psn-cta{
    display:block; position:absolute; left:20px; right:20px; top:auto;
    margin-top:0; width:auto; }
}
@media (max-width:760px){
  body .elementor .psn-h1{ font-size:38px; }
  body .elementor .psn-h2,
  body .elementor .psn-h2-c{ font-size:30px; }
  body .elementor .psn-h2-brands{ font-size:24px; }
  body .elementor .psn-bento{ grid-template-columns:1fr; }
  body .elementor .psn-card-c{ min-height:300px; }
  body .elementor .psn-board-grid{ grid-template-columns:1fr; }
  body .elementor .psn-work-grid{ grid-template-columns:1fr; }
  body .elementor .psn-ft-grid{ grid-template-columns:1fr; }
  body .elementor .psn-footer{ padding:56px 20px 24px !important; }
  body .elementor .psn-logos-grid{ grid-template-columns:repeat(2,1fr); }
  body .elementor .psn-logo-cell{ border-right:0; border-bottom:1px solid #F2EAE1; font-size:17px; }
  body .elementor .psn-stats-grid{ grid-template-columns:1fr; }
  body .elementor .psn-stat{ border-right:0; border-bottom:1px solid #EDE2D6; }
  body .elementor .psn-skill-stats{ grid-template-columns:1fr; }
  body .elementor .psn-sstat{ border-right:0 !important; padding:18px 0 !important;
    border-bottom:1px solid #EDE2D6; }
  body .elementor .psn-brands-stage{ height:auto; }
  body .elementor .psn-brands-copy{ position:static; transform:none; width:100%; max-width:100%;
    margin-top:24px; }
  body .elementor .psn-hero-actions{ flex-wrap:wrap; gap:16px; }
}

/* ============================================================ ELEMENTOR MARKUP FIX-UPS
   Two things Elementor's own markup does that the design has to undo. */

/* 1. The counter widget prints its title BEFORE the number; the design wants
      the figure first with the label under it. */
body .elementor .psn-stat .elementor-counter,
body .elementor .psn-sstat .elementor-counter{
  display:flex; flex-direction:column-reverse; align-items:flex-start; }

/* 2. Every Elementor widget is position:relative, so the absolutely positioned
      pieces inside an illustration would anchor to the (zero-height) widget box
      instead of the card. Take these HTML widgets out of the positioning chain. */
body .elementor .psn-card-art,
body .elementor .psn-lead-art,
body .elementor .psn-brands-tiles{ position:static; }

/* 3. The work grid's prev/next chips are pure decoration in the original markup;
      as pseudo-elements they stay out of the 3-column grid flow. */
body .elementor .psn-work-grid::before,
body .elementor .psn-work-grid::after{
  content:'90'; position:absolute; top:110px; width:40px; height:40px;
  border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  font-size:16px; cursor:pointer; }
body .elementor .psn-work-grid::before{
  left:-58px; background:#fff; border:1px solid #F0E0CE; color:#F2701A;
  box-shadow:0 4px 12px rgba(0,0,0,.05); }
body .elementor .psn-work-grid::after{
  content:'92'; right:-58px; background:#F2701A; color:#fff;
  box-shadow:0 6px 16px rgba(242,112,26,.3); }
@media (max-width:1400px){
  body .elementor .psn-work-grid::before,
  body .elementor .psn-work-grid::after{ display:none; }
}

/* 4. Astra's global typography sets a serif on every heading widget, and the
      theme leaves button icons filled white (invisible on the light buttons).
      Pull both back to the design's own values. */
body .elementor .psn{ font-family:'Outfit',system-ui,-apple-system,'Segoe UI',sans-serif; }
body .elementor .psn h1, body .elementor .psn h2, body .elementor .psn h3,
body .elementor .psn h4, body .elementor .psn h5, body .elementor .psn h6,
body .elementor .psn p, body .elementor .psn input, body .elementor .psn button,
body .elementor .psn .elementor-heading-title,
body .elementor .psn .elementor-button,
body .elementor .psn .elementor-button-text,
body .elementor .psn .elementor-icon-list-text,
body .elementor .psn .elementor-counter-number-wrapper,
body .elementor .psn .elementor-counter-title,
body .elementor .psn .elementor-progress-percentage,
body .elementor .psn .elementor-title{ font-family:inherit; }
body .elementor .psn .elementor-button-icon svg{ fill:currentColor; }

/* ============================================================ IMAGE SLOTS
   Every illustration on this page is a real Elementor image widget, so each one
   can be swapped from the media library. The rules below give each slot the
   geometry its old hand-drawn version had, so nothing shifts when a photo lands. */
body .elementor .psn-img .elementor-widget-container{ line-height:0; }
body .elementor .psn-img img{ display:block; width:100%; object-fit:cover; }

body .elementor .psn-card-art{ margin-top:20px; }
body .elementor .psn-card-art img{ border-radius:12px; height:132px; }
body .elementor .psn-card-a .psn-card-art img{ height:112px; }
body .elementor .psn-card-b .psn-card-art img{ height:126px; }
body .elementor .psn-card-c .psn-card-art img{ height:340px; }
body .elementor .psn-card-d .psn-card-art img{ height:106px; }
body .elementor .psn-card-e .psn-card-art img{ height:122px; }

body .elementor .psn-about-art img{ border-radius:14px; height:300px; }

/* The project card already clips to its own 14px radius, so the banner is square. */
body .elementor .psn-proj-art img{ height:150px; }

/* Brand collage: one image widget per tile, scattered across the stage. */
body .elementor .psn-brand-tile{
  position:absolute; width:9.2%; min-width:74px; height:148px; padding:14px;
  box-sizing:border-box; background:#fff; border-radius:16px;
  box-shadow:0 8px 26px rgba(184,145,110,.13);
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s ease, box-shadow .3s ease; }
body .elementor .psn-brand-tile:hover{
  transform:translateY(-6px); box-shadow:0 16px 34px rgba(184,145,110,.22); }
body .elementor .psn-brand-tile .elementor-widget-container{ width:100%; height:100%; }
body .elementor .psn-brand-tile img{ height:100%; object-fit:contain; }
body .elementor .psn-brand-1{ left:0.00%; top:42px; }
body .elementor .psn-brand-2{ left:11.35%; top:8px; }
body .elementor .psn-brand-3{ left:22.70%; top:66px; }
body .elementor .psn-brand-4{ left:34.05%; top:26px; }
body .elementor .psn-brand-5{ left:45.40%; top:86px; }
body .elementor .psn-brand-6{ left:56.75%; top:16px; }
body .elementor .psn-brand-7{ left:68.10%; top:70px; }
body .elementor .psn-brand-8{ left:79.45%; top:0px; }
body .elementor .psn-brand-9{ left:90.80%; top:44px; }
body .elementor .psn-brand-10{ left:0.00%; top:212px; }
body .elementor .psn-brand-11{ left:11.35%; top:180px; }
body .elementor .psn-brand-12{ left:79.45%; top:196px; }
body .elementor .psn-brand-13{ left:90.80%; top:232px; }

@media (max-width:1024px){
  body .elementor .psn-card-c .psn-card-art img{ height:210px; }
}
@media (max-width:760px){
  body .elementor .psn-card-c .psn-card-art img{ height:170px; }
  /* Absolute scatter needs a fixed-height stage; on phones the tiles tile. */
  body .elementor .psn-brands-stage{
    display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
  body .elementor .psn-brand-tile{
    position:static; width:auto; min-width:0; height:92px; padding:10px; }
  body .elementor .psn-brands-copy{ grid-column:1 / -1; }
}
