/*
  SMASS Modular World – Projektwelten v153
  Ziel: helle, architektonische Projekt-Erfahrung innerhalb der dunklen SMASS Markenwelt.
  Keine CAD-/Preisfunktion: Konzeptvisualisierung und mögliche Ausbaustufe.
*/

/* Shared project-world accents */
.smw-projectworld-page{
  --pw-paper:#f4f6ef;
  --pw-paper-2:#e9eee6;
  --pw-ink:#0b1a20;
  --pw-muted:#52636a;
  --pw-line:rgba(11,26,32,.13);
  --pw-card:#ffffff;
  --pw-lime:#a3e635;
  --pw-cyan:#40b9d0;
  --pw-navy:#071827;
}

/* Header/hero remains clearly SMASS */
.smw-projectworld-page .smw-subhero{
  min-height:660px;
  padding-bottom:86px;
}
.smw-projectworld-page .smw-subhero-grid{grid-template-columns:minmax(0,1.08fr) minmax(340px,.58fr);}
.smw-projectworld-page .smw-subhero h1{max-width:920px;}
.smw-projectworld-page .pw-hero-note{
  display:grid;gap:15px;padding:26px;border-radius:28px;border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(180deg,rgba(8,31,47,.82),rgba(5,18,31,.72));
  box-shadow:0 26px 70px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(20px);
}
.pw-hero-note .pw-concept-badge{justify-self:start;}
.pw-hero-note h2{margin:0;color:#fff;font-size:27px;line-height:1.05;letter-spacing:-.04em;}
.pw-hero-note p{margin:0;color:rgba(237,246,251,.72);font-size:14px;line-height:1.6;}
.pw-hero-note ul{list-style:none;padding:0;margin:2px 0 0;display:grid;gap:10px;}
.pw-hero-note li{display:flex;gap:10px;align-items:flex-start;color:rgba(248,252,255,.9);font-size:13px;font-weight:720;line-height:1.45;}
.pw-hero-note li::before{content:"";width:8px;height:8px;border-radius:999px;background:var(--smw-lime);box-shadow:0 0 14px rgba(163,230,53,.58);margin-top:5px;flex:0 0 auto;}

/* Light project experience */
.pw-light-section{position:relative;padding:96px 0;color:var(--pw-ink);background:
  radial-gradient(circle at 12% 8%,rgba(163,230,53,.15),transparent 30rem),
  radial-gradient(circle at 92% 18%,rgba(64,185,208,.12),transparent 32rem),
  linear-gradient(180deg,#f7f8f3 0%,#eef2eb 100%);
}
.pw-light-section::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:rgba(255,255,255,.45);}
.pw-light-section .smw-container{z-index:3;}
.pw-light-section .smw-kicker{color:#507514;}
.pw-light-section .smw-kicker::before{background:#7fb31f;box-shadow:0 0 14px rgba(127,179,31,.35);}
.pw-light-section h2,.pw-light-section h3,.pw-light-section h4{color:var(--pw-ink);text-shadow:none;}
.pw-light-section p{color:var(--pw-muted);}
.pw-project-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px;align-items:end;margin-bottom:34px;}
.pw-project-head h2{margin:0;font-size:clamp(44px,5.3vw,78px);line-height:.96;letter-spacing:-.065em;max-width:900px;}
.pw-project-head p{margin:18px 0 0;max-width:780px;font-size:18px;line-height:1.65;}
.pw-concept-badge{display:inline-flex;align-items:center;gap:9px;min-height:36px;padding:0 14px;border-radius:999px;font-size:11px;font-weight:950;letter-spacing:.13em;text-transform:uppercase;color:#18300b;background:rgba(163,230,53,.86);box-shadow:inset 0 1px 0 rgba(255,255,255,.48);white-space:nowrap;}
.pw-concept-badge::before{content:"";width:7px;height:7px;border-radius:999px;background:#17310b;}
.pw-metrics{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px;}
.pw-metric{display:grid;gap:3px;min-width:132px;padding:13px 15px;border-radius:17px;background:rgba(255,255,255,.68);border:1px solid var(--pw-line);box-shadow:0 12px 30px rgba(32,51,42,.07);}
.pw-metric small{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#75837f;font-weight:900;}
.pw-metric strong{font-size:16px;color:var(--pw-ink);letter-spacing:-.02em;}

.pw-project-shell{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(330px,.72fr);gap:24px;align-items:stretch;}
.pw-canvas-card,.pw-summary-card,.pw-variant-card,.pw-story-card,.pw-future-card{border:1px solid var(--pw-line);background:rgba(255,255,255,.84);box-shadow:0 28px 70px rgba(30,46,38,.10),inset 0 1px 0 rgba(255,255,255,.86);}
.pw-canvas-card{padding:20px;border-radius:32px;overflow:hidden;}
.pw-canvas-top{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:4px 4px 16px;}
.pw-canvas-top strong{font-size:15px;letter-spacing:-.02em;color:var(--pw-ink);}
.pw-canvas-top span{font-size:11px;color:#718079;font-weight:800;}
.pw-map{
  position:relative;min-height:610px;border-radius:25px;overflow:hidden;border:1px solid rgba(54,77,65,.15);
  display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(10,minmax(42px,1fr));gap:8px;padding:34px;
  background-color:#dfe7db;
  background-image:
    linear-gradient(rgba(42,73,53,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(42,73,53,.055) 1px,transparent 1px),
    radial-gradient(circle at 12% 84%,rgba(103,151,76,.22),transparent 15rem),
    radial-gradient(circle at 90% 12%,rgba(64,185,208,.10),transparent 18rem);
  background-size:28px 28px,28px 28px,auto,auto;
}
.pw-map::before{content:"";position:absolute;left:6%;right:6%;top:48%;height:17%;border-radius:999px;background:#c8cec6;transform:rotate(-4deg);box-shadow:inset 0 0 0 1px rgba(62,74,68,.06);}
.pw-map::after{content:"";position:absolute;inset:18px;border:1px dashed rgba(25,55,39,.18);border-radius:22px;pointer-events:none;}
.pw-module{position:relative;z-index:3;display:flex;flex-direction:column;justify-content:flex-end;min-width:0;padding:13px;border-radius:9px 9px 13px 13px;border:1px solid rgba(29,46,37,.18);box-shadow:0 14px 22px rgba(33,53,43,.18),inset 0 1px 0 rgba(255,255,255,.8);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease;}
.pw-module:hover{transform:translateY(-3px);box-shadow:0 20px 32px rgba(33,53,43,.22),inset 0 1px 0 rgba(255,255,255,.8);}
.pw-module::before{content:"";position:absolute;left:8px;right:8px;top:7px;height:5px;border-radius:999px;background:rgba(255,255,255,.72);box-shadow:0 9px 0 rgba(255,255,255,.28);}
.pw-module strong{font-size:12px;line-height:1.15;color:#0b1a20;letter-spacing:-.02em;position:relative;z-index:2;}
.pw-module small{font-size:9px;color:rgba(11,26,32,.64);font-weight:800;margin-top:3px;position:relative;z-index:2;}
.pw-module--housing{background:linear-gradient(145deg,#ffffff,#e9ece6);}
.pw-module--common{background:linear-gradient(145deg,#eef7d9,#dfe8ca);}
.pw-module--service{background:linear-gradient(145deg,#e7f3f5,#cfdfe1);}
.pw-module--tech{background:linear-gradient(145deg,#172c36,#0b1d27);border-color:rgba(8,27,36,.4);}
.pw-module--tech strong,.pw-module--tech small{color:#fff;}.pw-module--tech small{opacity:.66;}
.pw-module--tech::after{content:"";position:absolute;top:20px;left:14px;right:14px;height:20px;background:repeating-linear-gradient(90deg,#294b5a 0 14px,#7bb5c8 14px 16px);border-radius:3px;box-shadow:0 5px 12px rgba(0,0,0,.18);}
.pw-module--housing.a{grid-column:2 / span 3;grid-row:2 / span 2;}
.pw-module--housing.b{grid-column:5 / span 3;grid-row:2 / span 2;}
.pw-module--housing.c{grid-column:2 / span 3;grid-row:7 / span 2;}
.pw-module--housing.d{grid-column:5 / span 3;grid-row:7 / span 2;}
.pw-module--common{grid-column:5 / span 4;grid-row:4 / span 3;}
.pw-module--service{grid-column:9 / span 2;grid-row:3 / span 3;}
.pw-module--tech{grid-column:9 / span 2;grid-row:7 / span 2;}
.pw-map-label{position:absolute;z-index:4;left:38px;bottom:26px;display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.86);border:1px solid rgba(44,65,54,.13);color:#21342b;font-size:10px;font-weight:900;box-shadow:0 10px 20px rgba(30,46,38,.12);}
.pw-map-label::before{content:"";width:8px;height:8px;border-radius:99px;background:#79ad2f;}
.pw-map-gate{position:absolute;z-index:4;right:7%;bottom:11%;display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#071827;color:#fff;font-size:9px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 14px 28px rgba(7,24,39,.22);}
.pw-tree{position:absolute;z-index:2;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#9cc767,#507a3e 72%);box-shadow:0 7px 12px rgba(47,78,42,.20);}
.pw-tree.t1{left:8%;top:16%}.pw-tree.t2{right:7%;top:13%;width:25px;height:25px}.pw-tree.t3{left:13%;bottom:14%;width:24px;height:24px}.pw-tree.t4{right:25%;bottom:10%;width:34px;height:34px}

.pw-summary-card{border-radius:32px;padding:26px;display:flex;flex-direction:column;gap:22px;}
.pw-summary-block{padding-bottom:20px;border-bottom:1px solid var(--pw-line);}
.pw-summary-block:last-child{border-bottom:0;padding-bottom:0;}
.pw-summary-block h3{font-size:18px;margin:0 0 12px;letter-spacing:-.03em;}
.pw-check-list,.pw-future-list{list-style:none;padding:0;margin:0;display:grid;gap:10px;}
.pw-check-list li,.pw-future-list li{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;font-size:13px;line-height:1.46;color:#485b52;font-weight:680;}
.pw-check-list li::before,.pw-future-list li::before{display:grid;place-items:center;width:20px;height:20px;border-radius:7px;font-size:11px;font-weight:1000;}
.pw-check-list li::before{content:"✓";background:#e4f4c8;color:#456c11;}
.pw-future-list li::before{content:"↗";background:#e3f1f4;color:#236b79;}
.pw-disclaimer{margin-top:auto;padding:15px 16px;border-radius:18px;background:#f6f2e4;border:1px solid rgba(143,108,38,.18);color:#6a5b38;font-size:11px;line-height:1.55;font-weight:720;}
.pw-disclaimer strong{display:block;color:#463b23;margin-bottom:4px;font-size:12px;}

/* Variants */
.pw-variants{margin-top:72px;}
.pw-section-title{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);gap:34px;align-items:end;margin-bottom:24px;}
.pw-section-title h2{margin:0;font-size:clamp(38px,4.2vw,60px);line-height:1;letter-spacing:-.055em;}
.pw-section-title p{margin:0;font-size:16px;line-height:1.65;}
.pw-variant-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.pw-variant-card{border-radius:25px;padding:24px;min-height:290px;display:flex;flex-direction:column;}
.pw-variant-card.is-featured{background:linear-gradient(145deg,#f4fbe7,#e5efd3);border-color:rgba(95,135,43,.25);box-shadow:0 28px 70px rgba(55,89,43,.13),inset 0 1px 0 rgba(255,255,255,.9);}
.pw-variant-index{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:#071827;color:#fff;font-size:11px;font-weight:950;letter-spacing:.08em;}
.pw-variant-card.is-featured .pw-variant-index{background:#87bd2b;color:#17300a;}
.pw-variant-card h3{margin:18px 0 8px;font-size:24px;letter-spacing:-.04em;}
.pw-variant-card p{margin:0;font-size:14px;line-height:1.55;}
.pw-variant-card ul{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:9px;}
.pw-variant-card li{font-size:12px;line-height:1.4;color:#4e5f57;font-weight:720;padding-left:16px;position:relative;}
.pw-variant-card li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:#85b934;}
.pw-variant-note{margin-top:auto;padding-top:18px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#76847d;font-weight:900;}

/* Today / future story */
.pw-story-section{padding:88px 0;background:#f8faf6;color:var(--pw-ink);}
.pw-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.pw-story-card{border-radius:30px;padding:30px;}
.pw-story-card h2{margin:10px 0 14px;color:var(--pw-ink);font-size:34px;letter-spacing:-.045em;line-height:1.05;text-shadow:none;}
.pw-story-card p{color:var(--pw-muted);margin:0 0 22px;line-height:1.65;}
.pw-story-card--future{background:linear-gradient(145deg,#e9f2f1,#f6faf8);}
.pw-story-card--today{background:#fff;}
.pw-story-steps{display:grid;gap:10px;}
.pw-story-step{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:center;padding:12px;border-radius:17px;background:rgba(11,26,32,.035);border:1px solid rgba(11,26,32,.07);}
.pw-story-step b{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#071827;color:#fff;font-size:10px;}
.pw-story-step strong{font-size:13px;color:#1b3026;display:block;}.pw-story-step span{font-size:11px;color:#6b7a73;display:block;margin-top:2px;}

/* Provider / dark bridge */
.pw-provider-section{padding:90px 0;position:relative;background:linear-gradient(180deg,#06131f,#03101a);}
.pw-provider-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.72fr);gap:34px;align-items:center;padding:38px;border-radius:34px;border:1px solid rgba(255,255,255,.14);background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.035));box-shadow:0 32px 90px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.08);}
.pw-provider-panel h2{margin:12px 0 16px;color:#fff;font-size:clamp(38px,4.7vw,65px);line-height:.98;letter-spacing:-.06em;}
.pw-provider-panel p{margin:0;color:rgba(230,241,248,.72);font-size:17px;line-height:1.65;max-width:760px;}
.pw-provider-stack{display:grid;gap:10px;}
.pw-provider-role{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center;padding:13px 14px;border-radius:17px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.11);}
.pw-provider-role b{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:rgba(163,230,53,.14);color:var(--smw-lime);font-size:12px;}
.pw-provider-role strong{font-size:13px;color:#fff;display:block}.pw-provider-role span{font-size:11px;color:rgba(230,241,248,.57);display:block;margin-top:2px;}

/* Future worlds */
.pw-future-section{padding:88px 0;background:linear-gradient(180deg,#f4f6ef,#eef2eb);color:var(--pw-ink);}
.pw-future-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px;}
.pw-future-card{position:relative;overflow:hidden;border-radius:24px;padding:22px;min-height:220px;display:flex;flex-direction:column;}
.pw-future-card::before{content:"";position:absolute;right:-35px;top:-44px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(64,185,208,.16),transparent 65%);}
.pw-future-card > *{position:relative;z-index:2;}
.pw-future-card small{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#77847e;font-weight:900;}
.pw-future-card h3{font-size:21px;margin:16px 0 8px;letter-spacing:-.04em;}
.pw-future-card p{font-size:12px;line-height:1.5;margin:0;color:#617068;}
.pw-future-card span{margin-top:auto;display:inline-flex;align-self:flex-start;padding:7px 10px;border-radius:999px;background:#eef3e5;color:#57781f;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.09em;}

/* Homepage light preview: deliberately breaks the all-dark perception */
.pw-home-preview{
  --pw-paper:#f4f6ef;--pw-paper-2:#e9eee6;--pw-ink:#0b1a20;--pw-muted:#52636a;--pw-line:rgba(11,26,32,.13);--pw-card:#ffffff;
  position:relative;padding:84px 0;background:linear-gradient(180deg,#f7f8f3,#edf1e9);color:var(--pw-ink);
}
.pw-home-preview::before,.pw-home-preview::after{content:"";position:absolute;left:0;right:0;height:1px;background:rgba(255,255,255,.22);}
.pw-home-preview::before{top:0}.pw-home-preview::after{bottom:0}
.pw-home-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(520px,1.2fr);gap:46px;align-items:center;}
.pw-home-copy .smw-kicker{color:#52791b;}.pw-home-copy .smw-kicker::before{background:#81b82f;box-shadow:0 0 14px rgba(129,184,47,.3);}
.pw-home-copy h2{margin:10px 0 18px;color:#0b1a20;text-shadow:none;font-size:clamp(42px,4.8vw,68px);line-height:.98;letter-spacing:-.06em;}
.pw-home-copy p{margin:0;color:#586960;font-size:17px;line-height:1.65;max-width:620px;}
.pw-home-copy .smw-actions{margin-top:28px;}
.pw-home-copy .smw-btn-ghost{color:#0b1a20;border-color:rgba(11,26,32,.18);background:rgba(255,255,255,.50);}
.pw-home-demo{position:relative;border:1px solid rgba(24,51,37,.14);border-radius:30px;background:rgba(255,255,255,.78);padding:18px;box-shadow:0 30px 80px rgba(30,50,39,.12);}
.pw-home-demo .pw-map{min-height:420px;padding:24px;grid-template-rows:repeat(10,minmax(30px,1fr));gap:6px;}
.pw-home-demo .pw-module{padding:9px}.pw-home-demo .pw-module strong{font-size:10px}.pw-home-demo .pw-module small{display:none}.pw-home-demo .pw-map-label{left:26px;bottom:20px}.pw-home-demo .pw-map-gate{width:44px;height:44px;font-size:8px;}

/* Provider-page bridge link */
.smw-provider-v152 .pw-provider-world-link{margin-top:18px;padding:16px 18px;border-radius:20px;border:1px solid rgba(163,230,53,.20);background:rgba(163,230,53,.055);}
.smw-provider-v152 .pw-provider-world-link strong{display:block;color:#fff;font-size:14px;margin-bottom:5px;}
.smw-provider-v152 .pw-provider-world-link p{margin:0 0 12px;color:rgba(230,241,248,.66);font-size:12px;line-height:1.55;}
.smw-provider-v152 .pw-provider-world-link a{display:inline-flex;align-items:center;gap:8px;color:var(--smw-lime);font-size:12px;font-weight:950;}

@media(max-width:1100px){
  .smw-projectworld-page .smw-subhero-grid,.pw-project-shell,.pw-provider-panel,.pw-home-grid{grid-template-columns:1fr;}
  .pw-home-grid{gap:28px}.pw-home-demo{max-width:820px}
  .pw-project-head,.pw-section-title{grid-template-columns:1fr;align-items:start}.pw-project-head .pw-concept-badge{justify-self:start}
  .pw-variant-grid{grid-template-columns:1fr 1fr}.pw-variant-card:last-child{grid-column:1 / -1}
  .pw-future-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .smw-projectworld-page .smw-subhero{min-height:auto;padding-bottom:58px}
  .pw-light-section,.pw-story-section,.pw-provider-section,.pw-future-section,.pw-home-preview{padding:58px 0}
  .pw-project-head h2,.pw-home-copy h2{font-size:clamp(38px,12vw,54px)}
  .pw-project-head p,.pw-home-copy p{font-size:15px}
  .pw-metrics{display:grid;grid-template-columns:1fr 1fr}.pw-metric{min-width:0}
  .pw-canvas-card,.pw-summary-card,.pw-story-card{border-radius:24px;padding:18px}
  .pw-map{min-height:430px;padding:18px;gap:5px;grid-template-rows:repeat(10,minmax(30px,1fr));}
  .pw-module{padding:8px;border-radius:7px 7px 10px 10px}.pw-module strong{font-size:9px}.pw-module small{display:none}.pw-module::before{left:5px;right:5px;top:5px;height:3px}
  .pw-map-label{left:20px;bottom:18px;font-size:8px;padding:7px 9px}.pw-map-gate{right:5%;bottom:9%;width:40px;height:40px;font-size:7px}
  .pw-variant-grid,.pw-story-grid,.pw-future-grid{grid-template-columns:1fr}.pw-variant-card:last-child{grid-column:auto}
  .pw-provider-panel{padding:24px;border-radius:26px}.pw-provider-panel h2{font-size:42px}
  .pw-home-demo .pw-map{min-height:360px;padding:16px}
}

/* ===== v153a · visual module assets ===== */
.pw-module{
  padding:0;
  justify-content:flex-end;
  background:rgba(255,255,255,.92);
  isolation:isolate;
}
.pw-module::before,.pw-module--tech::after{display:none!important;}
.pw-module > img{
  position:absolute;z-index:1;inset:3px 4px 31px;width:calc(100% - 8px);height:calc(100% - 34px);
  object-fit:contain;object-position:center bottom;filter:drop-shadow(0 9px 8px rgba(25,46,35,.22));
  transform:scale(1.06);transform-origin:center bottom;pointer-events:none;
}
.pw-module-copy{
  position:relative;z-index:3;display:flex;flex-direction:column;gap:1px;padding:6px 8px 7px;
  background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.96) 34%);
  border-top:1px solid rgba(29,46,37,.10);backdrop-filter:blur(5px);
}
.pw-module strong{font-size:10px;line-height:1.08;color:#0b1a20;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pw-module small{font-size:7px;line-height:1.12;margin:0;color:rgba(11,26,32,.62);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pw-module--housing{background:linear-gradient(145deg,#fbfcf8,#e5ebe1);}
.pw-module--common{background:linear-gradient(145deg,#f5faeb,#e4eccf);}
.pw-module--service{background:linear-gradient(145deg,#f0f8f8,#d8e8e8);}
.pw-module--tech{background:linear-gradient(145deg,#e9eff0,#cbd7d9);border-color:rgba(8,27,36,.22);}
.pw-module--tech strong,.pw-module--tech small{color:#0b1a20;opacity:1;}
.pw-module--access{grid-column:11 / span 2;grid-row:7 / span 2;background:linear-gradient(145deg,#eef4ef,#dce8dd);}
.pw-module--access > img{transform:scale(1.02);}
.pw-map-gate{display:none;}

/* Make the project floor read more like a visual site plan. */
.pw-map::before{left:5%;right:4%;top:49%;height:15%;opacity:.72;}
.pw-module:hover > img{transform:scale(1.11);transition:transform .22s ease;}
.pw-module > img{transition:transform .22s ease;}

/* Homepage compact preview */
.pw-home-demo .pw-module > img{inset:2px 3px 21px;height:calc(100% - 23px);width:calc(100% - 6px);transform:scale(1.10);}
.pw-home-demo .pw-module-copy{padding:4px 6px 5px;}
.pw-home-demo .pw-module strong{font-size:8px;}
.pw-home-demo .pw-module small{display:none;}
.pw-home-demo .pw-module--access{grid-column:11 / span 2;grid-row:7 / span 2;}

/* Provider preview – four replaceable visual product slots */
.smw-provider-v152 .pw-provider-visual-row{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0 8px;}
.smw-provider-v152 .pw-provider-visual-row span{display:grid;grid-template-rows:56px auto;align-items:end;overflow:hidden;border-radius:12px;border:1px solid rgba(255,255,255,.10);background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.025));}
.smw-provider-v152 .pw-provider-visual-row img{width:100%;height:56px;object-fit:contain;padding:4px 3px 0;filter:drop-shadow(0 7px 6px rgba(0,0,0,.34));}
.smw-provider-v152 .pw-provider-visual-row b{display:block;padding:5px 6px 6px;border-top:1px solid rgba(255,255,255,.07);color:#f4f8fb;font-size:8px;line-height:1;text-align:center;}
.smw-provider-v152 .pw-provider-visual-note{display:block;margin:0 0 10px;color:rgba(226,238,245,.48);font-size:9px;line-height:1.4;}

@media(max-width:760px){
  .pw-module > img{inset:2px 3px 22px;height:calc(100% - 24px);width:calc(100% - 6px);transform:scale(1.07);}
  .pw-module-copy{padding:4px 5px 5px;}.pw-module strong{font-size:7px}.pw-module small{display:none}
  .pw-module--access{grid-column:10 / span 3;grid-row:7 / span 2;}
  .smw-provider-v152 .pw-provider-visual-row{grid-template-columns:1fr 1fr;}
  .smw-provider-v152 .pw-provider-visual-row span{grid-template-rows:72px auto;}
  .smw-provider-v152 .pw-provider-visual-row img{height:72px;}
}

/* ===== v153b · interactive project scene ===== */
.pw-project-shell--interactive{grid-template-columns:minmax(0,1.85fr) minmax(330px,.58fr);align-items:start}
.pw-scene-card{border:1px solid var(--pw-line);background:rgba(255,255,255,.84);box-shadow:0 28px 70px rgba(30,46,38,.10);border-radius:32px;padding:18px;overflow:hidden}
.pw-scene{position:relative;overflow:hidden;border-radius:24px;aspect-ratio:2.08/1;background:#dce5d6;border:1px solid rgba(42,65,53,.13)}
.pw-scene-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.pw-scene:hover .pw-scene-bg{transform:scale(1.012)}
.pw-hotspot{position:absolute;z-index:4;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:34px;height:34px;border:0;border-radius:50%;display:grid;place-items:center;background:rgba(163,230,53,.94);color:#143005;font:950 12px/1 inherit;cursor:pointer;box-shadow:0 0 0 5px rgba(255,255,255,.84),0 7px 18px rgba(13,34,19,.26);transition:.18s ease}
.pw-hotspot:hover,.pw-hotspot.is-active{transform:translate(-50%,-50%) scale(1.18);background:#fff;color:#17310b;box-shadow:0 0 0 6px rgba(163,230,53,.85),0 10px 24px rgba(13,34,19,.3)}
.pw-scene-hint{position:absolute;z-index:3;right:18px;bottom:18px;padding:9px 13px;border-radius:999px;background:rgba(7,24,39,.84);color:#fff;font-size:10px;font-weight:900;backdrop-filter:blur(8px)}
.pw-scene-note{margin:12px 2px 0;padding:11px 13px;border-radius:14px;background:#f5f2e7;border:1px solid rgba(122,93,31,.14);color:#675a39;font-size:10px;line-height:1.5}.pw-scene-note strong{color:#3f361f}
.pw-detail-card{position:sticky;top:102px;border-radius:30px;padding:22px;border:1px solid var(--pw-line);background:rgba(255,255,255,.94);box-shadow:0 28px 70px rgba(30,46,38,.11)}
.pw-detail-kicker{font-size:9px;letter-spacing:.13em;text-transform:uppercase;font-weight:950;color:#638922;margin-bottom:14px}
.pw-detail-title{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center}.pw-detail-title>span{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#a3e635;color:#17310b;font-size:15px;font-weight:950}.pw-detail-title h3{margin:0;font-size:22px;letter-spacing:-.04em}.pw-detail-title p{margin:2px 0 0;font-size:12px;color:#66766e}
.pw-detail-image{height:210px;margin:18px 0 15px;border-radius:20px;overflow:hidden;background:linear-gradient(160deg,#f8faf4,#e4ece1);border:1px solid rgba(31,53,40,.09)}.pw-detail-image img{width:100%;height:100%;object-fit:contain;padding:10px;filter:drop-shadow(0 15px 14px rgba(30,50,39,.2))}
.pw-detail-summary{font-size:13px!important;line-height:1.58!important;margin:0 0 15px!important;color:#45574f!important}
.pw-detail-meta{display:grid;margin:0 0 17px;border-top:1px solid var(--pw-line)}.pw-detail-meta div{display:grid;grid-template-columns:80px 1fr;gap:8px;padding:9px 0;border-bottom:1px solid var(--pw-line)}.pw-detail-meta dt{font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#78867f}.pw-detail-meta dd{margin:0;font-size:11px;font-weight:800;color:#263a31}
.pw-detail-link{width:100%;justify-content:center}.pw-detail-card>small{display:block;margin-top:9px;text-align:center;color:#87918c;font-size:8px;font-weight:800}
.pw-module-rail{display:grid;grid-template-columns:repeat(8,minmax(92px,1fr));gap:7px;margin-top:13px}.pw-module-tile{display:grid;grid-template-rows:72px auto;text-decoration:none;overflow:hidden;border-radius:13px;background:#fff;border:1px solid rgba(31,53,40,.1);transition:.18s ease}.pw-module-tile:hover{transform:translateY(-2px);border-color:rgba(115,161,47,.35);box-shadow:0 10px 24px rgba(34,54,43,.1)}.pw-module-tile img{width:100%;height:72px;object-fit:contain;padding:4px}.pw-module-tile span{position:relative;padding:7px 7px 8px;border-top:1px solid rgba(31,53,40,.07);display:grid;gap:1px}.pw-module-tile b{position:absolute;left:6px;top:-14px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#a3e635;color:#17310b;font-size:8px}.pw-module-tile strong{font-size:9px;color:#14261e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pw-module-tile small{font-size:7px;color:#78867f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pw-home-demo--scene{text-decoration:none;display:block}.pw-home-scene{position:relative;overflow:hidden;border-radius:22px;aspect-ratio:2.08/1}.pw-home-scene img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.pw-home-demo--scene:hover .pw-home-scene img{transform:scale(1.025)}.pw-home-scene span{position:absolute;right:16px;bottom:16px;padding:9px 13px;border-radius:999px;background:rgba(7,24,39,.86);color:#fff;font-size:10px;font-weight:950}
.smw-provider-v152 .pw-provider-visual-row a{display:grid;grid-template-rows:82px auto;align-items:end;overflow:hidden;border-radius:13px;border:1px solid rgba(255,255,255,.11);background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.025));text-decoration:none;transition:.18s ease}.smw-provider-v152 .pw-provider-visual-row a:hover{transform:translateY(-2px);border-color:rgba(163,230,53,.28)}.smw-provider-v152 .pw-provider-visual-row a img{width:100%;height:82px;object-fit:contain;padding:5px 4px 0;filter:drop-shadow(0 8px 8px rgba(0,0,0,.34))}.smw-provider-v152 .pw-provider-visual-row a b{display:block;padding:7px 6px;border-top:1px solid rgba(255,255,255,.07);color:#f4f8fb;font-size:9px;text-align:center}
@media(max-width:1100px){.pw-project-shell--interactive{grid-template-columns:1fr}.pw-detail-card{position:relative;top:auto}.pw-module-rail{grid-template-columns:repeat(4,1fr)}}
@media(max-width:760px){.pw-scene{aspect-ratio:1.25/1}.pw-hotspot{width:28px;height:28px;font-size:10px}.pw-module-rail{grid-template-columns:repeat(2,1fr)}.pw-detail-image{height:180px}.pw-home-scene{aspect-ratio:1.45/1}.smw-provider-v152 .pw-provider-visual-row a{grid-template-rows:96px auto}.smw-provider-v152 .pw-provider-visual-row a img{height:96px}}
/* v153b refinement: scene already contains numbered labels, hotspots stay as subtle interactive targets. */
.pw-hotspot{width:22px;height:22px;background:rgba(163,230,53,.84);box-shadow:0 0 0 4px rgba(255,255,255,.7),0 6px 16px rgba(13,34,19,.24)}
.pw-hotspot span{display:none}
.pw-hotspot:hover,.pw-hotspot.is-active{box-shadow:0 0 0 6px rgba(163,230,53,.82),0 9px 22px rgba(13,34,19,.3)}
\n/* ===== v153b2 · hotspot alignment / label readability ===== */
/* The numbered labels are part of the concept image. The clickable target therefore sits on the
   existing green number badge instead of covering the label text. */
.pw-hotspot{
  z-index:4;
  width:36px;
  height:36px;
  background:transparent;
  color:transparent;
  box-shadow:none;
  outline:0;
}
.pw-hotspot::before{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:50%;
  border:2px solid transparent;
  background:transparent;
  box-shadow:none;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.pw-hotspot:hover,
.pw-hotspot.is-active{
  transform:translate(-50%,-50%);
  background:transparent;
  color:transparent;
  box-shadow:none;
}
.pw-hotspot:hover::before,
.pw-hotspot.is-active::before,
.pw-hotspot:focus-visible::before{
  transform:scale(1.08);
  border-color:rgba(111,165,33,.98);
  background:rgba(163,230,53,.08);
  box-shadow:0 0 0 4px rgba(255,255,255,.74),0 0 0 8px rgba(163,230,53,.24),0 8px 18px rgba(13,34,19,.16);
}
@media(max-width:760px){
  .pw-hotspot{width:32px;height:32px}
  .pw-hotspot::before{inset:3px}
}

/* ===== v153b3 · label-wide click target, marker behind info field ===== */
.pw-hotspot{
  left:var(--x);
  top:var(--y);
  width:var(--w);
  height:var(--h);
  transform:none;
  border-radius:15px;
  background:transparent;
  border:1px solid transparent;
  box-shadow:none;
  overflow:visible;
}
.pw-hotspot::before{
  content:"";
  position:absolute;
  left:50%;
  top:100%;
  width:14px;
  height:14px;
  inset:auto;
  transform:translate(-50%,-55%);
  border-radius:50%;
  border:0;
  background:rgba(163,230,53,.72);
  box-shadow:0 0 0 3px rgba(255,255,255,.72),0 4px 10px rgba(13,34,19,.18);
  opacity:.55;
  transition:opacity .18s ease,transform .18s ease,box-shadow .18s ease,background .18s ease;
  pointer-events:none;
}
.pw-hotspot:hover,
.pw-hotspot.is-active,
.pw-hotspot:focus-visible{
  transform:none;
  background:rgba(255,255,255,.035);
  border-color:rgba(118,163,52,.24);
  box-shadow:0 0 0 3px rgba(163,230,53,.10),0 7px 18px rgba(13,34,19,.09);
}
.pw-hotspot:hover::before,
.pw-hotspot.is-active::before,
.pw-hotspot:focus-visible::before{
  transform:translate(-50%,-50%) scale(1.12);
  background:#a3e635;
  opacity:.92;
  box-shadow:0 0 0 4px rgba(255,255,255,.88),0 0 0 7px rgba(163,230,53,.18),0 6px 14px rgba(13,34,19,.18);
}
@media(max-width:760px){
  .pw-hotspot{width:var(--w);height:var(--h);border-radius:10px}
  .pw-hotspot::before{width:11px;height:11px}
}

/* ===== v153b4 · extended labels with right-side anchor ===== */
.pw-hotspot{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  padding:7px 11px 7px 8px;
  min-width:0;
  color:#16231b;
  text-align:left;
  background:rgba(255,255,255,.97);
  border:1px solid rgba(44,73,50,.14);
  border-radius:12px;
  box-shadow:0 8px 22px rgba(26,44,29,.14);
  overflow:hidden;
  cursor:pointer;
  isolation:isolate;
}
.pw-hotspot::before{display:none!important;content:none!important}
.pw-hotspot-no{
  display:grid!important;
  place-items:center;
  width:28px;
  height:28px;
  flex:0 0 28px;
  border-radius:50%;
  background:#a3e635;
  color:#163008;
  font:950 12px/1 inherit;
  box-shadow:none;
}
.pw-hotspot-copy{
  display:flex!important;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  line-height:1.06;
}
.pw-hotspot-copy strong{
  display:block;
  color:#16231b;
  font-size:11.5px;
  font-weight:900;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.pw-hotspot-copy small{
  display:block;
  margin-top:3px;
  color:#617067;
  font-size:8.6px;
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.pw-hotspot-anchor{
  display:block!important;
  width:12px;
  height:12px;
  margin-right:1px;
  border-radius:50%;
  background:rgba(163,230,53,.82);
  box-shadow:0 0 0 3px rgba(163,230,53,.13);
  transition:transform .18s ease,background .18s ease,box-shadow .18s ease;
}
.pw-hotspot:hover,
.pw-hotspot.is-active,
.pw-hotspot:focus-visible{
  background:#fff;
  border-color:rgba(118,163,52,.38);
  box-shadow:0 10px 28px rgba(26,44,29,.18),0 0 0 3px rgba(163,230,53,.10);
}
.pw-hotspot:hover .pw-hotspot-anchor,
.pw-hotspot.is-active .pw-hotspot-anchor,
.pw-hotspot:focus-visible .pw-hotspot-anchor{
  transform:scale(1.18);
  background:#8fd11f;
  box-shadow:0 0 0 4px rgba(163,230,53,.18);
}
@media(max-width:760px){
  .pw-hotspot{
    padding:5px 7px 5px 5px;
    gap:5px;
    border-radius:9px;
  }
  .pw-hotspot-no{width:21px;height:21px;font-size:9px}
  .pw-hotspot-copy strong{font-size:8.5px}
  .pw-hotspot-copy small{font-size:6.5px;margin-top:2px}
  .pw-hotspot-anchor{width:9px;height:9px}
}
/* v153b4 micro-alignment */
.pw-hotspot{justify-items:stretch;font-family:inherit}
.pw-hotspot-no{justify-self:start}
.pw-hotspot-anchor{justify-self:end}


/* ===== v153b5 · full labels + explicit action control ===== */
.pw-hotspot-copy strong,
.pw-hotspot-copy small{
  overflow:visible;
  text-overflow:clip;
  white-space:nowrap;
}
.pw-hotspot-copy strong{
  font-size:11px;
  letter-spacing:-.015em;
}
.pw-hotspot-copy small{
  font-size:8.4px;
}
.pw-hotspot-anchor{
  position:relative;
  display:grid!important;
  place-items:center;
  width:22px;
  height:22px;
  margin-right:0;
  border-radius:50%;
  border:1.5px solid #1a261f;
  background:rgba(255,255,255,.92);
  box-shadow:none;
  transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.pw-hotspot-anchor::after{
  content:"";
  width:10px;
  height:10px;
  border-radius:50%;
  background:#a3e635;
  transition:transform .18s ease,background .18s ease,opacity .18s ease;
}
.pw-hotspot:hover .pw-hotspot-anchor,
.pw-hotspot:focus-visible .pw-hotspot-anchor{
  transform:scale(1.06);
  border-color:#111b15;
  background:#f8fbf4;
  box-shadow:0 0 0 3px rgba(255,255,255,.72),0 0 0 5px rgba(24,38,29,.10);
}
.pw-hotspot:hover .pw-hotspot-anchor::after,
.pw-hotspot:focus-visible .pw-hotspot-anchor::after{
  transform:scale(1.14);
  background:#91d526;
}
.pw-hotspot.is-active .pw-hotspot-anchor{
  transform:scale(1.06);
  border-color:#17231c;
  background:#a3e635;
  box-shadow:0 0 0 3px rgba(255,255,255,.78),0 0 0 5px rgba(23,35,28,.12);
}
.pw-hotspot.is-active .pw-hotspot-anchor::after{
  transform:scale(1.45);
  background:#a3e635;
}
.pw-hotspot.is-active{
  border-color:rgba(26,38,31,.68);
  box-shadow:0 10px 28px rgba(26,44,29,.18),0 0 0 2px rgba(255,255,255,.72),0 0 0 4px rgba(26,38,31,.12);
}
@media(max-width:760px){
  .pw-hotspot-copy strong{font-size:8px;white-space:normal;line-height:1.05}
  .pw-hotspot-copy small{font-size:6.3px;white-space:normal;line-height:1.08}
  .pw-hotspot-anchor{width:16px;height:16px;border-width:1px}
  .pw-hotspot-anchor::after{width:7px;height:7px}
}


/* ===== v153b7 · 20px minimum gap between copy and action marker ===== */
.pw-hotspot{
  grid-template-columns:auto minmax(0,1fr) 38px;
  column-gap:20px;
  padding-right:10px;
}
.pw-hotspot-copy{
  min-width:0;
  padding-right:0;
}
.pw-hotspot-anchor{
  justify-self:end;
  margin-left:0;
}
@media(min-width:761px){
  .pw-hotspot-copy strong,
  .pw-hotspot-copy small{
    white-space:nowrap;
  }
}
@media(max-width:760px){
  .pw-hotspot{
    grid-template-columns:auto minmax(0,1fr) 24px;
    column-gap:6px;
    padding-right:6px;
  }
  .pw-hotspot-copy{padding-right:5px}
}


/* ===== v153b8 · structurally separated action zone ===== */
@media(min-width:761px){
  .pw-hotspot{
    grid-template-columns:44px minmax(0,1fr) 62px;
    column-gap:12px;
    padding:7px 10px 7px 8px;
  }
  .pw-hotspot-copy{
    min-width:0;
    max-width:100%;
    overflow:hidden;
    padding-right:0;
  }
  .pw-hotspot-copy strong,
  .pw-hotspot-copy small{
    display:block;
    max-width:100%;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:clip;
  }
  .pw-hotspot-anchor{
    justify-self:center;
    width:24px;
    height:24px;
    margin:0;
  }
  .pw-hotspot-anchor::before{
    content:"";
    position:absolute;
    left:-20px;
    top:50%;
    width:1px;
    height:30px;
    transform:translateY(-50%);
    background:rgba(22,35,27,.16);
    border-radius:99px;
    pointer-events:none;
  }
}

/* ===== v153b9 · auto-width labels + compact marker spacing ===== */
@media(min-width:761px){
  .pw-hotspot{
    width:max-content!important;
    height:auto!important;
    min-width:0!important;
    max-width:none!important;
    grid-template-columns:auto max-content auto;
    column-gap:0;
    padding:7px 7px 7px 8px;
    overflow:visible;
  }
  .pw-hotspot-copy{
    width:max-content;
    min-width:0;
    max-width:none;
    overflow:visible;
    padding:0;
  }
  .pw-hotspot-copy strong,
  .pw-hotspot-copy small{
    width:auto;
    max-width:none;
    overflow:visible;
    text-overflow:clip;
    white-space:nowrap;
  }
  .pw-hotspot-anchor{
    justify-self:auto;
    width:22px;
    height:22px;
    margin-left:8px;
    margin-right:2px;
  }
  .pw-hotspot-anchor::before{
    display:none!important;
    content:none!important;
  }
}
