
    /* =========================================================
       TAPESH / SERVICES V3
       Scoped to .tpw-root
       ========================================================= */
    .tpw-root{
      --tpw-purple:#3b0874;
      --tpw-purple-2:#5d18a5;
      --tpw-purple-3:#7a42bb;
      --tpw-ink:#19092c;
      --tpw-text:#625b6c;
      --tpw-muted:#91899a;
      --tpw-lilac:#a991c3;
      --tpw-lilac-2:#c7b7d8;
      --tpw-lilac-3:#eee8f4;
      --tpw-paper:#fbf9fd;
      --tpw-white:#fff;
      --tpw-line:#ebe4f1;
      --tpw-shadow:0 24px 70px rgba(35,8,62,.10);
      --tpw-max:1380px;
      --tpw-shell:min(var(--tpw-max),calc(100% - 40px));
      font-family:inherit;
      color:var(--tpw-ink);
      background:
        radial-gradient(circle at 12% 2%,rgba(169,145,195,.14),transparent 28%),
        radial-gradient(circle at 88% 24%,rgba(93,24,165,.07),transparent 25%),
        linear-gradient(180deg,#fff 0%,var(--tpw-paper) 42%,#fff 100%);
      overflow:hidden;
      isolation:isolate;
    }

    .tpw-root *,
    .tpw-root *::before,
    .tpw-root *::after{box-sizing:border-box}

    .tpw-root img{display:block;max-width:100%}
    .tpw-root a{text-decoration:none;color:inherit}
    .tpw-root button{font:inherit}
    .tpw-root .tpw-shell{width:var(--tpw-shell);margin-inline:auto}

    /* ---------- shared ---------- */
    .tpw-root .tpw-label{
      display:inline-flex;
      align-items:center;
      gap:9px;
      width:max-content;
      padding:8px 12px;
      border:1px solid rgba(59,8,116,.09);
      border-radius:999px;
      background:rgba(255,255,255,.78);
      color:var(--tpw-purple);
      font-size:13px;
      font-weight:800;
      letter-spacing:-.1px;
      box-shadow:0 8px 30px rgba(35,8,62,.04);
    }

    .tpw-root .tpw-label-dot{
      width:7px;
      height:7px;
      border-radius:50%;
      background:var(--tpw-purple-3);
      box-shadow:0 0 0 5px rgba(122,66,187,.09);
    }

    .tpw-root .tpw-btn{
      min-height:54px;
      padding:0 22px;
      border-radius:16px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      border:1px solid transparent;
      font-size:14px;
      font-weight:800;
      transition:transform .22s ease,box-shadow .22s ease,background .22s ease,border-color .22s ease;
    }
    .tpw-root .tpw-btn:hover{transform:translateY(-2px)}
    .tpw-root .tpw-btn svg{width:18px;height:18px;stroke:currentColor;flex:0 0 auto}

    .tpw-root .tpw-btn-primary{
      color:#fff;
      background:linear-gradient(135deg,var(--tpw-purple),var(--tpw-purple-2));
      box-shadow:0 12px 28px rgba(59,8,116,.18);
    }
    .tpw-root .tpw-btn-primary:hover{
      box-shadow:0 16px 34px rgba(59,8,116,.24);
    }
    .tpw-root .tpw-btn-secondary{
      color:var(--tpw-purple);
      background:#fff;
      border-color:var(--tpw-line);
      box-shadow:0 10px 30px rgba(59,8,116,.05);
    }

    .tpw-root .tpw-section-head{
      display:grid;
      grid-template-columns:1fr auto;
      gap:28px;
      align-items:end;
      margin-bottom:30px;
    }
    .tpw-root .tpw-section-head h2{
      margin:10px 0 0;
      color:var(--tpw-ink);
      font-size:clamp(30px,3.2vw,50px);
      line-height:1.35;
      letter-spacing:-1.1px;
      font-weight:900;
    }
    .tpw-root .tpw-section-head p{
      max-width:560px;
      margin:0;
      color:var(--tpw-text);
      font-size:14.5px;
      line-height:2;
    }

    /* =========================================================
       HERO
       ========================================================= */
    .tpw-root .tpw-hero{
      position:relative;
      padding:88px 0 68px;
      min-height:690px;
      display:flex;
      align-items:center;
    }

    .tpw-root .tpw-ambient{
      position:absolute;
      pointer-events:none;
      border-radius:999px;
      filter:blur(2px);
      opacity:.7;
      z-index:-1;
      will-change:transform;
    }
    .tpw-root .tpw-ambient-a{
      width:330px;
      height:330px;
      right:-135px;
      top:40px;
      background:radial-gradient(circle at 30% 30%,rgba(189,167,215,.38),rgba(89,25,164,.04) 68%,transparent 70%);
      animation:tpw-drift-a 9s ease-in-out infinite alternate;
    }
    .tpw-root .tpw-ambient-b{
      width:240px;
      height:240px;
      left:-80px;
      bottom:10px;
      border:1px solid rgba(122,66,187,.11);
      animation:tpw-drift-b 12s ease-in-out infinite alternate;
    }

    @keyframes tpw-drift-a{
      to{transform:translate3d(-24px,28px,0) rotate(9deg)}
    }
    @keyframes tpw-drift-b{
      to{transform:translate3d(30px,-22px,0) rotate(-10deg)}
    }

    .tpw-root .tpw-hero-grid{
      display:grid;
      grid-template-columns:1.03fr .97fr;
      gap:74px;
      align-items:center;
    }

    .tpw-root .tpw-hero-copy{
      position:relative;
      z-index:2;
    }

    .tpw-root .tpw-hero h1{
      margin:18px 0 0;
      max-width:720px;
      color:var(--tpw-ink);
      font-size:clamp(44px,5.4vw,78px);
      line-height:1.18;
      letter-spacing:-2.5px;
      font-weight:950;
    }
    .tpw-root .tpw-hero h1 .tpw-gradient-word{
      color:transparent;
      background:linear-gradient(125deg,var(--tpw-purple) 0%,var(--tpw-purple-3) 70%,#9270b5 100%);
      -webkit-background-clip:text;
      background-clip:text;
    }

    .tpw-root .tpw-hero-lead{
      max-width:660px;
      margin:24px 0 0;
      color:var(--tpw-text);
      font-size:clamp(16px,1.45vw,20px);
      line-height:2;
      font-weight:600;
    }

    .tpw-root .tpw-hero-actions{
      display:flex;
      flex-wrap:wrap;
      gap:12px;
      margin-top:30px;
    }

    .tpw-root .tpw-mini-stats{
      display:flex;
      flex-wrap:wrap;
      gap:12px;
      margin-top:32px;
    }

    .tpw-root .tpw-mini-stat{
      min-width:160px;
      padding:13px 15px;
      border:1px solid var(--tpw-line);
      border-radius:18px;
      background:rgba(255,255,255,.72);
      box-shadow:0 12px 32px rgba(35,8,62,.045);
    }
    .tpw-root .tpw-mini-stat strong{
      display:block;
      color:var(--tpw-purple);
      font-size:18px;
      line-height:1.4;
    }
    .tpw-root .tpw-mini-stat span{
      display:block;
      margin-top:3px;
      color:var(--tpw-muted);
      font-size:12px;
    }

    /* hero visual */
    .tpw-root .tpw-visual{
      position:relative;
      min-height:560px;
    }

    .tpw-root .tpw-photo-main{
      position:absolute;
      inset:14px 28px 32px 62px;
      overflow:hidden;
      border-radius:42px;
      background:#e9e0ef;
      box-shadow:0 30px 80px rgba(35,8,62,.16);
      transform:rotate(1.5deg);
    }
    .tpw-root .tpw-photo-main::after{
      content:"";
      position:absolute;
      inset:0;
      background:
        linear-gradient(180deg,transparent 52%,rgba(20,6,35,.18)),
        linear-gradient(135deg,rgba(93,24,165,.08),transparent 45%);
      pointer-events:none;
    }
    .tpw-root .tpw-photo-main img{
      width:100%;
      height:100%;
      object-fit:cover;
    }

    .tpw-root .tpw-visual-ring{
      position:absolute;
      width:84%;
      height:84%;
      right:-3%;
      top:-1%;
      border:1px solid rgba(59,8,116,.13);
      border-radius:44px;
      transform:rotate(-5deg);
      z-index:-1;
    }

    .tpw-root .tpw-floating-card{
      position:absolute;
      right:-4px;
      bottom:4px;
      width:min(270px,54%);
      padding:18px;
      border:1px solid rgba(255,255,255,.72);
      border-radius:24px;
      background:rgba(255,255,255,.92);
      box-shadow:0 22px 60px rgba(35,8,62,.15);
      animation:tpw-float 5s ease-in-out infinite;
      z-index:4;
    }

    .tpw-root .tpw-floating-card .tpw-floating-icon{
      width:42px;
      height:42px;
      display:grid;
      place-items:center;
      border-radius:14px;
      color:#fff;
      background:linear-gradient(135deg,var(--tpw-purple),var(--tpw-purple-3));
    }
    .tpw-root .tpw-floating-card svg{width:21px;height:21px;stroke:currentColor}
    .tpw-root .tpw-floating-card strong{
      display:block;
      margin-top:12px;
      color:var(--tpw-ink);
      font-size:15px;
    }
    .tpw-root .tpw-floating-card p{
      margin:5px 0 0;
      color:var(--tpw-text);
      font-size:12px;
      line-height:1.8;
    }

    .tpw-root .tpw-float-thumb{
      position:absolute;
      left:2px;
      top:48px;
      width:116px;
      aspect-ratio:1;
      padding:7px;
      border-radius:34px;
      background:#fff;
      box-shadow:0 18px 50px rgba(35,8,62,.12);
      transform:rotate(-6deg);
      z-index:5;
      animation:tpw-float-alt 6.5s ease-in-out infinite;
    }
    .tpw-root .tpw-float-thumb img{
      width:100%;
      height:100%;
      object-fit:cover;
      border-radius:28px;
    }

    @keyframes tpw-float{
      50%{transform:translateY(-10px) rotate(-.7deg)}
    }
    @keyframes tpw-float-alt{
      50%{transform:translateY(8px) rotate(-2deg)}
    }

    /* =========================================================
       SEO INTRO
       ========================================================= */
    .tpw-root .tpw-intro{
      padding:14px 0 74px;
    }

    .tpw-root .tpw-intro-card{
      position:relative;
      display:grid;
      grid-template-columns:.72fr 1.28fr;
      gap:50px;
      align-items:start;
      padding:38px;
      overflow:hidden;
      border:1px solid var(--tpw-line);
      border-radius:30px;
      background:#fff;
      box-shadow:0 22px 66px rgba(35,8,62,.07);
    }

    .tpw-root .tpw-intro-card::before{
      content:"";
      position:absolute;
      width:220px;
      height:220px;
      right:-120px;
      top:-120px;
      border-radius:50%;
      background:radial-gradient(circle,rgba(169,145,195,.17),transparent 70%);
      pointer-events:none;
    }

    .tpw-root .tpw-intro-title h2{
      margin:12px 0 0;
      color:var(--tpw-ink);
      font-size:clamp(27px,2.5vw,40px);
      line-height:1.45;
      font-weight:900;
      letter-spacing:-.7px;
    }

    .tpw-root .tpw-intro-copy{
      color:var(--tpw-text);
      font-size:15px;
      line-height:2.25;
    }
    .tpw-root .tpw-intro-copy p{margin:0}

    .tpw-root .tpw-details{
      margin-top:12px;
      border-top:1px dashed var(--tpw-line);
      padding-top:16px;
    }
    .tpw-root .tpw-details summary{
      list-style:none;
      width:max-content;
      display:flex;
      align-items:center;
      gap:8px;
      cursor:pointer;
      color:var(--tpw-purple);
      font-size:13px;
      font-weight:900;
      user-select:none;
    }
    .tpw-root .tpw-details summary::-webkit-details-marker{display:none}
    .tpw-root .tpw-details summary::after{
      content:"+";
      width:25px;
      height:25px;
      display:grid;
      place-items:center;
      border-radius:50%;
      background:var(--tpw-lilac-3);
      transition:transform .25s ease;
    }
    .tpw-root .tpw-details[open] summary::after{transform:rotate(45deg)}
    .tpw-root .tpw-details-body{
      padding-top:14px;
      color:var(--tpw-text);
      line-height:2.2;
    }
    .tpw-root .tpw-details-body p + p{margin-top:10px}

    /* =========================================================
       SERVICES — MODERN BENTO
       ========================================================= */
    .tpw-root .tpw-services{
      padding:76px 0 84px;
      content-visibility:auto;
      contain-intrinsic-size:auto 1500px;
    }

    .tpw-root .tpw-bento{
      display:grid;
      grid-template-columns:repeat(12,1fr);
      grid-auto-rows:58px;
      gap:18px;
    }

    .tpw-root .tpw-service{
      --mx:50%;
      --my:50%;
      position:relative;
      overflow:hidden;
      border:1px solid rgba(255,255,255,.58);
      border-radius:var(--tpw-radius,28px);
      background:#241236;
      isolation:isolate;
      box-shadow:0 18px 54px rgba(35,8,62,.10);
      transform:translateZ(0);
      transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease;
    }

    .tpw-root .tpw-service::before{
      content:"";
      position:absolute;
      inset:0;
      z-index:2;
      pointer-events:none;
      opacity:0;
      background:radial-gradient(420px circle at var(--mx) var(--my),rgba(255,255,255,.18),transparent 42%);
      transition:opacity .25s ease;
    }

    .tpw-root .tpw-service:hover{
      transform:translateY(-6px);
      box-shadow:0 28px 74px rgba(35,8,62,.17);
    }
    .tpw-root .tpw-service:hover::before{opacity:1}

    .tpw-root .tpw-service > img{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
      object-fit:cover;
      z-index:-3;
      transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .4s ease;
    }
    .tpw-root .tpw-service:hover > img{transform:scale(1.045)}

    .tpw-root .tpw-service::after{
      content:"";
      position:absolute;
      inset:0;
      z-index:-2;
      background:
        linear-gradient(180deg,rgba(18,5,32,.03) 12%,rgba(18,5,32,.12) 42%,rgba(16,5,29,.90) 100%),
        linear-gradient(135deg,rgba(74,20,132,.10),transparent 46%);
    }

    .tpw-root .tpw-service-top{
      position:absolute;
      inset:18px 18px auto 18px;
      z-index:4;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
    }

    .tpw-root .tpw-service-index{
      width:38px;
      height:38px;
      display:grid;
      place-items:center;
      border:1px solid rgba(255,255,255,.20);
      border-radius:13px;
      color:#fff;
      background:rgba(28,8,50,.44);
      font-size:12px;
      font-weight:900;
    }

    .tpw-root .tpw-service-tag{
      padding:7px 10px;
      border:1px solid rgba(255,255,255,.22);
      border-radius:999px;
      color:rgba(255,255,255,.92);
      background:rgba(27,8,48,.42);
      font-size:11px;
      font-weight:700;
    }

    .tpw-root .tpw-service-content{
      position:absolute;
      right:18px;
      left:18px;
      bottom:18px;
      z-index:4;
      padding:18px;
      border:1px solid rgba(255,255,255,.13);
      border-radius:20px;
      background:linear-gradient(135deg,rgba(36,12,63,.78),rgba(25,8,44,.72));
    }

    .tpw-root .tpw-service h3{
      margin:0;
      color:#fff;
      font-size:clamp(20px,1.55vw,26px);
      line-height:1.45;
      font-weight:900;
      letter-spacing:-.35px;
    }
    .tpw-root .tpw-service p{
      display:-webkit-box;
      -webkit-line-clamp:2;
      -webkit-box-orient:vertical;
      overflow:hidden;
      margin:8px 0 0;
      color:rgba(255,255,255,.74);
      font-size:12.5px;
      line-height:1.9;
    }
    .tpw-root .tpw-service-link{
      margin-top:14px;
      display:inline-flex;
      align-items:center;
      gap:8px;
      color:#fff;
      font-size:12px;
      font-weight:900;
    }
    .tpw-root .tpw-service-link span{
      width:28px;
      height:28px;
      display:grid;
      place-items:center;
      border-radius:9px;
      background:rgba(255,255,255,.12);
      transition:transform .2s ease,background .2s ease;
    }
    .tpw-root .tpw-service:hover .tpw-service-link span{
      transform:translateX(-3px);
      background:rgba(255,255,255,.18);
    }

    /* bento sizing */
    .tpw-root .tpw-card-edu{grid-column:span 6;grid-row:span 7}
    .tpw-root .tpw-card-support{grid-column:span 3;grid-row:span 7}
    .tpw-root .tpw-card-medical{grid-column:span 3;grid-row:span 7}
    .tpw-root .tpw-card-consult{grid-column:span 4;grid-row:span 6}
    .tpw-root .tpw-card-events{grid-column:span 4;grid-row:span 6}
    .tpw-root .tpw-card-camp{grid-column:span 4;grid-row:span 6}
    .tpw-root .tpw-card-crisis{grid-column:span 12;grid-row:span 5}

    .tpw-root .tpw-card-crisis .tpw-service-content{
      max-width:650px;
    }

    /* =========================================================
       VALUES
       ========================================================= */
    .tpw-root .tpw-values{
      padding:6px 0 78px;
      content-visibility:auto;
      contain-intrinsic-size:auto 520px;
    }

    .tpw-root .tpw-values-grid{
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:14px;
    }

    .tpw-root .tpw-value{
      position:relative;
      min-height:190px;
      padding:22px;
      overflow:hidden;
      border:1px solid var(--tpw-line);
      border-radius:24px;
      background:#fff;
      transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
    }
    .tpw-root .tpw-value:hover{
      transform:translateY(-4px);
      border-color:#ddd0e9;
      box-shadow:0 18px 48px rgba(35,8,62,.07);
    }
    .tpw-root .tpw-value::after{
      content:"";
      position:absolute;
      width:110px;
      height:110px;
      left:-40px;
      bottom:-45px;
      border-radius:50%;
      background:radial-gradient(circle,rgba(169,145,195,.18),transparent 70%);
    }
    .tpw-root .tpw-value-icon{
      width:48px;
      height:48px;
      display:grid;
      place-items:center;
      border-radius:15px;
      color:var(--tpw-purple);
      background:var(--tpw-lilac-3);
    }
    .tpw-root .tpw-value-icon svg{width:22px;height:22px;stroke:currentColor}
    .tpw-root .tpw-value h3{
      margin:18px 0 0;
      color:var(--tpw-ink);
      font-size:17px;
      font-weight:900;
    }
    .tpw-root .tpw-value p{
      margin:8px 0 0;
      color:var(--tpw-text);
      font-size:12.5px;
      line-height:1.95;
    }

    /* =========================================================
       CTA
       ========================================================= */
    .tpw-root .tpw-cta{
      padding:0 0 86px;
      content-visibility:auto;
      contain-intrinsic-size:auto 520px;
    }

    .tpw-root .tpw-cta-box{
      position:relative;
      display:grid;
      grid-template-columns:1.12fr .88fr;
      min-height:390px;
      overflow:hidden;
      border-radius:36px;
      background:
        radial-gradient(circle at 20% 20%,rgba(255,255,255,.10),transparent 25%),
        linear-gradient(135deg,#26034e 0%,#4b0d88 54%,#351064 100%);
      box-shadow:0 30px 80px rgba(59,8,116,.20);
    }

    .tpw-root .tpw-cta-copy{
      position:relative;
      z-index:3;
      padding:58px 62px;
      display:flex;
      flex-direction:column;
      justify-content:center;
    }

    .tpw-root .tpw-cta h2{
      margin:0;
      max-width:700px;
      color:#fff;
      font-size:clamp(34px,3.4vw,54px);
      line-height:1.45;
      letter-spacing:-1.2px;
      font-weight:950;
    }
    .tpw-root .tpw-cta p{
      margin:15px 0 0;
      max-width:650px;
      color:rgba(255,255,255,.73);
      font-size:14px;
      line-height:2.05;
    }
    .tpw-root .tpw-cta-actions{
      margin-top:26px;
      display:flex;
      flex-wrap:wrap;
      gap:11px;
    }
    .tpw-root .tpw-cta .tpw-btn-primary{
      background:#fff;
      color:var(--tpw-purple);
      box-shadow:none;
    }
    .tpw-root .tpw-cta .tpw-btn-secondary{
      color:#fff;
      background:rgba(255,255,255,.06);
      border-color:rgba(255,255,255,.22);
      box-shadow:none;
    }

    .tpw-root .tpw-cta-media{
      position:relative;
      overflow:hidden;
      margin:20px 20px 20px 0;
      border-radius:28px;
      background:#1d1230;
    }
    .tpw-root .tpw-cta-media img{
      width:100%;
      height:100%;
      object-fit:cover;
      opacity:.92;
    }
    .tpw-root .tpw-cta-media::after{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(90deg,rgba(51,7,97,.15),transparent 44%);
    }

    /* =========================================================
       REVEAL MOTION
       Content is visible if JS fails.
       ========================================================= */
    .tpw-root.tpw-js .tpw-reveal{
      opacity:0;
      transform:translateY(18px);
      transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1);
    }
    .tpw-root.tpw-js .tpw-reveal.tpw-visible{
      opacity:1;
      transform:none;
    }

    /* ---------- responsive ---------- */
    @media (max-width:1100px){
      .tpw-root{--tpw-shell:min(var(--tpw-max),calc(100% - 32px))}
      .tpw-root .tpw-hero{padding-top:64px;min-height:auto}
      .tpw-root .tpw-hero-grid{gap:42px}
      .tpw-root .tpw-visual{min-height:500px}
      .tpw-root .tpw-photo-main{inset:16px 22px 28px 44px}
      .tpw-root .tpw-bento{grid-auto-rows:54px}
      .tpw-root .tpw-card-edu{grid-column:span 8}
      .tpw-root .tpw-card-support{grid-column:span 4}
      .tpw-root .tpw-card-medical{grid-column:span 4;grid-row:span 6}
      .tpw-root .tpw-card-consult{grid-column:span 4}
      .tpw-root .tpw-card-events{grid-column:span 4}
      .tpw-root .tpw-card-camp{grid-column:span 6}
      .tpw-root .tpw-card-crisis{grid-column:span 6;grid-row:span 6}
      .tpw-root .tpw-values-grid{grid-template-columns:repeat(2,1fr)}
      .tpw-root .tpw-cta-copy{padding:46px}
    }

    @media (max-width:767px){
      .tpw-root{--tpw-shell:min(var(--tpw-max),calc(100% - 24px))}
      .tpw-root .tpw-hero{padding:38px 0 46px}
      .tpw-root .tpw-hero-grid{grid-template-columns:1fr;gap:26px}
      .tpw-root .tpw-hero-copy{text-align:center}
      .tpw-root .tpw-label{margin-inline:auto}
      .tpw-root .tpw-hero h1{
        font-size:40px;
        letter-spacing:-1.2px;
      }
      .tpw-root .tpw-hero-lead{font-size:15px}
      .tpw-root .tpw-hero-actions,
      .tpw-root .tpw-mini-stats{justify-content:center}
      .tpw-root .tpw-mini-stat{min-width:calc(50% - 6px)}
      .tpw-root .tpw-visual{min-height:430px;order:-1}
      .tpw-root .tpw-photo-main{inset:10px 15px 40px 38px;border-radius:30px}
      .tpw-root .tpw-visual-ring{border-radius:30px}
      .tpw-root .tpw-floating-card{width:210px;padding:14px;border-radius:19px}
      .tpw-root .tpw-float-thumb{width:90px;border-radius:26px}
      .tpw-root .tpw-float-thumb img{border-radius:21px}

      .tpw-root .tpw-intro{padding-bottom:50px}
      .tpw-root .tpw-intro-card{
        grid-template-columns:1fr;
        gap:22px;
        padding:24px;
        border-radius:24px;
      }

      .tpw-root .tpw-section-head{
        grid-template-columns:1fr;
        align-items:start;
        gap:12px;
      }
      .tpw-root .tpw-section-head h2{font-size:34px}
      .tpw-root .tpw-services{padding:54px 0}
      .tpw-root .tpw-bento{
        grid-template-columns:1fr;
        grid-auto-rows:auto;
      }
      .tpw-root .tpw-service,
      .tpw-root .tpw-card-edu,
      .tpw-root .tpw-card-support,
      .tpw-root .tpw-card-medical,
      .tpw-root .tpw-card-consult,
      .tpw-root .tpw-card-events,
      .tpw-root .tpw-card-camp,
      .tpw-root .tpw-card-crisis{
        grid-column:auto;
        grid-row:auto;
        min-height:390px;
      }
      .tpw-root .tpw-card-crisis .tpw-service-content{max-width:none}

      .tpw-root .tpw-values-grid{grid-template-columns:1fr}
      .tpw-root .tpw-value{min-height:auto}

      .tpw-root .tpw-cta-box{grid-template-columns:1fr}
      .tpw-root .tpw-cta-copy{text-align:center;padding:36px 24px}
      .tpw-root .tpw-cta-actions{justify-content:center}
      .tpw-root .tpw-cta-media{
        min-height:260px;
        margin:0 18px 18px;
        order:-1;
      }
    }

    @media (prefers-reduced-motion:reduce){
      .tpw-root *,
      .tpw-root *::before,
      .tpw-root *::after{
        scroll-behavior:auto!important;
        animation:none!important;
        transition:none!important;
      }
      .tpw-root.tpw-js .tpw-reveal{opacity:1!important;transform:none!important}
    }
  

/* =========================================================
   Elementor independent-section mode
   Same approved visual, but each section can live separately.
   ========================================================= */
.tpw-root{background:transparent;}
.tpw-root > .tpw-hero{
  background:
    radial-gradient(circle at 12% 2%,rgba(169,145,195,.14),transparent 28%),
    radial-gradient(circle at 88% 24%,rgba(93,24,165,.07),transparent 25%),
    linear-gradient(180deg,#fff 0%,#FBF9FD 100%);
}
.tpw-root > .tpw-intro{background:linear-gradient(180deg,#FBF9FD 0%,#fff 100%);}
.tpw-root > .tpw-services{background:#fff;}
.tpw-root > .tpw-values{background:linear-gradient(180deg,#FBF9FD 0%,#fff 100%);}
.tpw-root > .tpw-cta{background:#fff;}

/* Empty-control states: if content is deleted, no orphan decoration remains. */
.tpw-root .tpw-hero-grid.tpw-hero-no-visual,
.tpw-root .tpw-hero-grid.tpw-hero-no-copy{grid-template-columns:1fr;}
.tpw-root .tpw-hero-grid.tpw-hero-no-visual .tpw-hero-copy{max-width:760px;margin-inline:auto;text-align:center;}
.tpw-root .tpw-hero-grid.tpw-hero-no-visual .tpw-label{margin-inline:auto;}
.tpw-root .tpw-hero-grid.tpw-hero-no-visual .tpw-hero-actions,
.tpw-root .tpw-hero-grid.tpw-hero-no-visual .tpw-mini-stats{justify-content:center;}
.tpw-root .tpw-hero-grid.tpw-hero-no-copy .tpw-visual{width:min(100%,720px);margin-inline:auto;}

.tpw-root .tpw-intro-card.tpw-intro-no-title,
.tpw-root .tpw-intro-card.tpw-intro-no-copy{grid-template-columns:1fr;}
.tpw-root .tpw-intro-card.tpw-intro-no-copy .tpw-intro-title{max-width:760px;}
.tpw-root .tpw-static-more{margin-top:18px;padding-top:18px;border-top:1px dashed var(--tpw-line);}

.tpw-root .tpw-section-head.tpw-head-desc-only,
.tpw-root .tpw-section-head.tpw-head-title-only{grid-template-columns:1fr;}
.tpw-root .tpw-section-head.tpw-head-title-only > div{max-width:760px;}

.tpw-root .tpw-service:not([href]){cursor:default;}
.tpw-root .tpw-service:not([href]):hover .tpw-service-link span{transform:none;}

.tpw-root .tpw-value-icon svg{width:22px;height:22px;stroke:currentColor;}

.tpw-root .tpw-cta-box.tpw-cta-no-media,
.tpw-root .tpw-cta-box.tpw-cta-no-copy{grid-template-columns:1fr;}
.tpw-root .tpw-cta-box.tpw-cta-no-media .tpw-cta-copy{max-width:920px;}
.tpw-root .tpw-cta-box.tpw-cta-no-copy .tpw-cta-media{margin:20px;min-height:350px;}

/* Theme/Elementor global-style shield.
   Scope is stronger than global kit styles, but widget-generated Elementor
   controls still override these defaults because they are output later. */
.tpw-root .tpw-hero h1,
.tpw-root .tpw-intro-title h2,
.tpw-root .tpw-section-head h2,
.tpw-root .tpw-value h3{color:var(--tpw-ink);}
.tpw-root .tpw-hero-lead,
.tpw-root .tpw-intro-copy,
.tpw-root .tpw-section-head p,
.tpw-root .tpw-value p{color:var(--tpw-text);}
.tpw-root .tpw-service h3{color:#fff;}
.tpw-root .tpw-service p{color:rgba(255,255,255,.74);}
.tpw-root .tpw-btn-primary{color:#fff;}
.tpw-root .tpw-btn-secondary{color:var(--tpw-purple);}
.tpw-root .tpw-cta h2{color:#fff;}
.tpw-root .tpw-cta p{color:rgba(255,255,255,.73);}
.tpw-root .tpw-cta .tpw-btn-primary{color:var(--tpw-purple);background:#fff;}
.tpw-root .tpw-cta .tpw-btn-secondary{color:#fff;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.22);}

/* In Elementor editor, content must remain visible even before observer fires. */
body.elementor-editor-active .tpw-root.tpw-js .tpw-reveal,
.elementor-editor-active .tpw-root.tpw-js .tpw-reveal{opacity:1;transform:none;}
