.cbe-villa {
  --cream: #fbf1e3;
  --cream-deep: #f3dfc4;
  --ink: #4a2915;
  --muted: #9a6a4a;
  --wood: #bf7a37;
  --line: rgba(89, 48, 25, .16);
  --cbe-top-offset: calc(var(--cbe-header-offset,0px) + var(--wp-admin--admin-bar--height,0px));
}
.cbe-villa,
.cbe-villa * { box-sizing: border-box; }
.cbe-villa {
  position: relative;
  width: 100vw;
  max-width: none;
  margin: 0;
  margin-left: calc(50% - 50vw);
  color: var(--ink);
  background: var(--cream);
  font-family: "Noto Sans SC", system-ui, sans-serif;
  /* Clip full-bleed content without creating a scroll container that breaks sticky stages. */
  overflow-x: clip;
}
.cbe-villa a { color: inherit; text-decoration: none; }
.cbe-villa-eyebrow { font-size: 11px; letter-spacing: .26em; font-weight: 700; color: var(--muted); }
.cbe-villa-tour { position: relative; background:linear-gradient(135deg,#fffaf2,#f4dfc4); }
.cbe-villa-stage { position: sticky; top: var(--cbe-top-offset); height: calc(100svh - var(--cbe-top-offset)); display: grid; grid-template-columns: minmax(280px, .8fr) minmax(420px, 1.2fr); gap: 5vw; align-items: center; padding: 56px clamp(24px, 7vw, 110px) 42px; overflow: hidden; }
.cbe-villa-stage::before { content:""; position:absolute; inset:0; background: linear-gradient(90deg, rgba(255,250,242,.78), transparent 55%); pointer-events:none; }
.cbe-villa-copy { position: relative; z-index: 5; max-width: 500px; transition: opacity .24s ease, transform .38s cubic-bezier(.22,.8,.25,1); }
.cbe-villa-copy h2 { margin: 0 0 22px; font-size: clamp(38px, 4.5vw, 70px); line-height: 1.12; letter-spacing: -.045em; }
.cbe-villa-copy h2 span { color:#9a5c2b; }
.cbe-villa-copy h2 .cbe-villa-overview-title { display:inline-block; color:inherit; font-size:.88em; white-space:nowrap; }
.cbe-villa-description { margin:0; font-size: 16px; line-height: 1.9; color: #78533c; }
.cbe-villa-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.cbe-villa-tags span { padding:8px 12px; background:rgba(255,255,255,.58); border:1px solid var(--line); border-radius:99px; font-size:12px; animation:tag-arrive .38s var(--tag-delay,0ms) both cubic-bezier(.22,.8,.25,1); }
@keyframes tag-arrive { from { opacity:0; transform:translateY(9px) scale(.96); } }
.cbe-villa-window { position: relative; z-index: 3; width: min(48vw, 620px); height: min(82vh, 760px); justify-self: center; border-radius: 38px; overflow: hidden; background: rgba(255,255,255,.3); box-shadow: 0 30px 80px rgba(86,47,21,.17); }
.cbe-villa-canvas { position: absolute; inset: 0; overflow: hidden; background: linear-gradient(#f8ead7, #eed3af); perspective:1400px; perspective-origin:50% 50%; }
.cbe-villa-product { position:absolute; width:auto; height:97.4%; aspect-ratio:922 / 1805; left:50%; top:50%; transform-origin:center; transform:translate3d(-50%,-50%,0) scale(1) rotateY(0); transform-style:preserve-3d; transition:transform .12s linear; will-change:transform; }
.cbe-villa-base { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; backface-visibility:hidden; filter:brightness(1.09) saturate(.9) drop-shadow(0 22px 22px rgba(80,42,15,.2)); }
.cbe-villa-product > div { pointer-events:none; }

.cbe-sleeping-cat-effect { position:absolute; z-index:2; left:59.3%; top:25.36%; width:22.25%; height:12.66%; overflow:visible; clip-path:polygon(-9% 0,100% 0,100% 100%,-9% 100%); border-radius:50% 50% 2% 2% / 43% 43% 2% 2%; opacity:0; transform:translateY(8px) scale(.82); filter:blur(5px); transition:opacity .65s ease, transform .9s cubic-bezier(.2,.8,.2,1), filter .75s ease; }
.cbe-villa .cbe-sleeping-cat-effect img { position:absolute; left:-38%; top:15%; width:205% !important; max-width:none !important; height:auto !important; object-fit:contain; }
.cbe-sleep-glow { position:absolute; z-index:-1; inset:24% 8% 5%; border-radius:50%; background:radial-gradient(circle,rgba(255,221,156,.38),transparent 72%); opacity:0; transform:scale(.6); }
[data-scene="rest"] .cbe-sleeping-cat-effect { opacity:1; transform:translateY(0) scale(1); filter:blur(0); transition-delay:.12s; }
[data-scene="rest"] .cbe-sleep-glow { animation:sleep-glow 2.8s .35s ease-out both; }
@keyframes sleep-glow { 0% { opacity:0; transform:scale(.55); } 45% { opacity:.85; } 100% { opacity:.34; transform:scale(1.45); } }

.cbe-feeding-effect { position:absolute; z-index:3; left:53.9%; top:63%; width:11.28%; height:1.33%; opacity:0; transform:translateY(-8px) scale(.9); filter:blur(3px); transition:opacity .5s ease, transform .75s cubic-bezier(.18,.82,.22,1), filter .6s ease; }
.cbe-feeding-effect img { position:absolute; inset:0; width:100%; height:100%; object-fit:fill; clip-path:ellipse(49% 46% at 50% 50%); }
[data-scene="activity"] .cbe-feeding-effect { opacity:1; transform:translateY(0) scale(1); filter:blur(0); transition-delay:.2s; }
.cbe-kibble-drop { position:absolute; z-index:2; top:-55%; width:7%; height:30%; border-radius:48% 52% 46% 54%; background:#d67e11; opacity:0; box-shadow:0 0 0 .45px rgba(103,53,10,.56), 0 1px 1px rgba(92,48,10,.24); }
.cbe-kibble-drop:nth-of-type(1) { left:43%; }
.cbe-kibble-drop:nth-of-type(2) { left:52%; width:6.3%; height:27%; }
.cbe-kibble-drop:nth-of-type(3) { left:61%; width:8%; height:30%; }
[data-scene="activity"] .cbe-kibble-drop { animation:kibble-fall .84s .26s cubic-bezier(.25,.75,.25,1) both; }
[data-scene="activity"] .cbe-kibble-drop:nth-of-type(2) { animation-delay:.38s; }
[data-scene="activity"] .cbe-kibble-drop:nth-of-type(3) { animation-delay:.49s; }
@keyframes kibble-fall { 0% { top:-340%; opacity:0; transform:rotate(0); } 22% { opacity:1; } 84% { opacity:1; } 100% { top:62%; opacity:0; transform:rotate(160deg); } }

.cbe-water-effect { position:absolute; z-index:4; left:68.7%; top:59.1%; width:16.2%; height:5.1%; opacity:1; }
.cbe-fountain-base { position:absolute; left:8%; right:5%; bottom:3%; height:24%; border-radius:50%; background:linear-gradient(180deg,rgba(230,251,255,.9),rgba(92,174,204,.5)); box-shadow:inset 0 1px 2px rgba(255,255,255,.9); }
.cbe-fountain-stem { position:absolute; left:45%; bottom:18%; width:11%; height:48%; border-radius:45% 45% 24% 24%; background:linear-gradient(90deg,#c8edf5,#f5fdff 46%,#8bc5d7); box-shadow:0 1px 3px rgba(40,101,123,.2); }
.cbe-fountain-cap { position:absolute; left:34%; bottom:60%; width:33%; height:10%; border-radius:50%; background:linear-gradient(#f8feff,#b8e4ee); box-shadow:0 1px 2px rgba(50,111,133,.24); }
.cbe-fountain-stream { position:absolute; bottom:23%; width:2.2%; height:39%; border-radius:99px; opacity:.38; transform-origin:50% 0; background:linear-gradient(rgba(255,255,255,.95),rgba(132,221,242,.84),rgba(255,255,255,.15)); filter:drop-shadow(0 0 1px rgba(213,250,255,.8)); }
.cbe-fountain-stream-left { left:39%; width:2.6%; transform:rotate(13deg); }
.cbe-fountain-stream-right { right:38%; width:2.6%; transform:rotate(-13deg); }
.cbe-fountain-stream-front { left:49%; height:42%; }
.cbe-fountain-ripple { position:absolute; left:22%; right:19%; bottom:7%; height:16%; border:1px solid rgba(223,252,255,.72); border-radius:50%; opacity:.42; }
[data-scene="activity"] .cbe-fountain-stream-left { animation:fountain-left 1.05s linear infinite; }
[data-scene="activity"] .cbe-fountain-stream-right { animation:fountain-right 1.05s .14s linear infinite; }
[data-scene="activity"] .cbe-fountain-stream-front { animation:fountain-front .92s .08s linear infinite; }
[data-scene="activity"] .cbe-fountain-ripple { animation:fountain-ripple 1.2s ease-out infinite; }
@keyframes fountain-left { 0%,100% { opacity:.4; transform:rotate(13deg) scaleY(.88); } 50% { opacity:.82; transform:rotate(10deg) scaleY(1.03); } }
@keyframes fountain-right { 0%,100% { opacity:.42; transform:rotate(-13deg) scaleY(.9); } 50% { opacity:.84; transform:rotate(-10deg) scaleY(1.04); } }
@keyframes fountain-front { 0%,100% { opacity:.28; transform:scaleY(.82); } 50% { opacity:.86; transform:scaleY(1.04); } }
@keyframes fountain-ripple { 0% { opacity:.68; transform:scale(.76); } 100% { opacity:0; transform:scale(1.18); } }

.cbe-fresh-effect { position:absolute; z-index:4; left:55%; top:81.43%; width:34%; height:10.86%; overflow:hidden; border-radius:16% 16% 28% 28% / 22% 22% 18% 18%; opacity:0; transition:opacity .45s ease; }
.cbe-fresh-sweep { position:absolute; inset:-45% auto -45% -38%; width:29%; background:linear-gradient(90deg,transparent,rgba(225,255,248,.68),rgba(255,255,255,.88),transparent); transform:skewX(-14deg); opacity:0; }
.cbe-fresh-particle { position:absolute; bottom:18%; width:5px; height:5px; border-radius:50%; background:rgba(226,255,249,.98); box-shadow:0 0 12px rgba(124,244,216,.95); opacity:0; }
.cbe-fresh-particle:nth-of-type(2) { left:23%; }
.cbe-fresh-particle:nth-of-type(3) { left:44%; width:3px; height:3px; }
.cbe-fresh-particle:nth-of-type(4) { left:64%; width:4px; height:4px; }
.cbe-fresh-particle:nth-of-type(5) { left:78%; width:3px; height:3px; }
.cbe-fresh-particle:nth-of-type(6) { left:15%; bottom:34%; width:3px; height:3px; }
.cbe-fresh-particle:nth-of-type(7) { left:34%; bottom:12%; width:4px; height:4px; }
.cbe-fresh-particle:nth-of-type(8) { left:54%; bottom:30%; width:6px; height:6px; }
.cbe-fresh-particle:nth-of-type(9) { left:71%; bottom:8%; width:4px; height:4px; }
.cbe-fresh-particle:nth-of-type(10) { left:87%; bottom:28%; width:3px; height:3px; }
[data-scene="litter"] .cbe-fresh-effect { opacity:1; }
[data-scene="litter"] .cbe-fresh-sweep { animation:fresh-sweep 1.45s .18s cubic-bezier(.22,.72,.2,1) both; }
[data-scene="litter"] .cbe-fresh-particle { animation:fresh-rise 2.4s .45s ease-out infinite; }
[data-scene="litter"] .cbe-fresh-particle:nth-of-type(3) { animation-delay:.8s; }
[data-scene="litter"] .cbe-fresh-particle:nth-of-type(4) { animation-delay:1.15s; }
[data-scene="litter"] .cbe-fresh-particle:nth-of-type(5) { animation-delay:1.5s; }
[data-scene="litter"] .cbe-fresh-particle:nth-of-type(6) { animation-delay:.62s; }
[data-scene="litter"] .cbe-fresh-particle:nth-of-type(7) { animation-delay:1.82s; }
[data-scene="litter"] .cbe-fresh-particle:nth-of-type(8) { animation-delay:1.04s; }
[data-scene="litter"] .cbe-fresh-particle:nth-of-type(9) { animation-delay:2.05s; }
[data-scene="litter"] .cbe-fresh-particle:nth-of-type(10) { animation-delay:1.34s; }
@keyframes fresh-sweep { 0% { left:-38%; opacity:0; } 20% { opacity:1; } 100% { left:112%; opacity:0; } }
@keyframes fresh-rise { 0% { opacity:0; transform:translateY(9px) scale(.65); } 22% { opacity:1; } 72% { opacity:.82; } 100% { opacity:0; transform:translateY(-42px) scale(1.45); } }

.cbe-ventilation-effect { position:absolute; z-index:5; left:4.8%; top:70.5%; width:90.4%; height:17%; opacity:0; transition:opacity .45s ease; }
.cbe-vent-side { position:absolute; top:42%; width:13%; height:32%; }
.cbe-vent-left { left:0; }
.cbe-vent-right { right:0; }
.cbe-vent-side i { position:absolute; width:68%; height:22%; border-top:2px solid rgba(185,250,239,.95); border-radius:50%; filter:drop-shadow(0 0 3px rgba(91,232,208,.82)); opacity:0; }
.cbe-vent-side i:nth-child(1) { top:5%; }
.cbe-vent-side i:nth-child(2) { top:39%; }
.cbe-vent-side i:nth-child(3) { top:73%; }
[data-scene="litter"] .cbe-ventilation-effect { opacity:1; }
[data-scene="litter"] .cbe-vent-left i { animation:airflow-left 1.7s ease-in-out infinite; }
[data-scene="litter"] .cbe-vent-right i { animation:airflow-right 1.7s ease-in-out infinite; }
[data-scene="litter"] .cbe-vent-side i:nth-child(2) { animation-delay:.42s; }
[data-scene="litter"] .cbe-vent-side i:nth-child(3) { animation-delay:.84s; }
@keyframes airflow-left { 0% { opacity:0; transform:translateX(-9px) scaleX(.72); } 38% { opacity:1; } 100% { opacity:0; transform:translateX(22px) scaleX(1.08); } }
@keyframes airflow-right { 0% { opacity:0; transform:translateX(-22px) scaleX(.72); } 38% { opacity:1; } 100% { opacity:0; transform:translateX(9px) scaleX(1.08); } }

.cbe-villa-side-panel { position:absolute; z-index:0; left:94.6%; top:6.09%; width:58.46%; height:89.58%; transform-origin:left center; transform:rotateY(90deg); backface-visibility:hidden; overflow:hidden; border:1px solid rgba(114,65,25,.16); border-radius:0 6px 6px 0; background:url("../images/villa-wood-texture.png") center / 100% 100% no-repeat; box-shadow:inset 2px 0 4px rgba(91,48,17,.08),16px 20px 30px rgba(75,41,18,.16); }
.cbe-side-panel-edge { position:absolute; z-index:2; inset:0 auto 0 0; width:1.4%; background:rgba(104,58,24,.14); }
.cbe-side-vents { position:absolute; z-index:3; left:15%; right:13%; top:20%; height:48%; display:flex; justify-content:space-between; gap:3.4%; padding:5% 4%; }
.cbe-side-vents i { flex:0 0 4.7%; height:100%; border-radius:99px; background:linear-gradient(90deg,#6f3b19,#3f210f 48%,#8d5429); box-shadow:inset 1px 0 2px rgba(255,218,151,.24),0 1px 1px rgba(255,225,168,.2); }

.cbe-comfort-status { position:absolute; z-index:5; left:18%; right:15%; top:5.2%; height:11.5%; display:flex; align-items:center; justify-content:center; gap:7%; padding:3% 7%; border:1px solid rgba(255,255,255,.5); border-radius:99px; background:rgba(255,250,238,.72); box-shadow:0 5px 14px rgba(87,48,20,.16),inset 0 1px rgba(255,255,255,.8); color:#795033; }
.cbe-comfort-halo { position:absolute; inset:-18% -5%; border-radius:99px; border:1px solid rgba(117,225,208,.48); opacity:0; }
.cbe-comfort-dial { position:relative; flex:0 0 auto; width:38px; height:38px; display:grid; place-items:center; border:2px solid #73d8c8; border-radius:50%; background:rgba(255,255,255,.84); box-shadow:0 0 0 4px rgba(115,216,200,.12); }
.cbe-comfort-dial b { font-size:11px; line-height:1; letter-spacing:-.04em; }
.cbe-comfort-dial i { position:absolute; width:4px; height:4px; left:50%; top:-3px; margin-left:-2px; border-radius:50%; background:#25ad98; transform-origin:2px 22px; }
.cbe-comfort-copy { display:flex; flex-direction:column; line-height:1.2; white-space:nowrap; }
.cbe-comfort-copy b { font-size:10px; letter-spacing:.12em; }
.cbe-comfort-copy small { margin-top:4px; font-size:7px; color:#a17050; }
[data-scene="side"] .cbe-comfort-halo { animation:comfort-breathe 2.4s ease-in-out infinite; }
[data-scene="side"] .cbe-comfort-dial i { animation:comfort-orbit 7s linear infinite; }
@keyframes comfort-breathe { 0%,100% { opacity:.08; transform:scale(.94); } 50% { opacity:.72; transform:scale(1.06); } }
@keyframes comfort-orbit { to { transform:rotate(360deg); } }

.cbe-side-purifier { position:absolute; z-index:6; left:12%; right:10%; top:66.5%; height:26.5%; }
.cbe-purifier-body { position:absolute; z-index:3; left:28%; right:28%; top:24%; bottom:0; display:flex; justify-content:center; align-items:flex-end; padding-bottom:9%; border:1px solid rgba(104,92,77,.32); border-radius:20px 20px 13px 13px; background:linear-gradient(145deg,#fffdf8,#e8e3d9); box-shadow:0 8px 18px rgba(72,47,27,.22),inset 2px 1px rgba(255,255,255,.9); color:#769a91; }
.cbe-purifier-body b { font-size:6px; letter-spacing:.18em; font-weight:700; }
.cbe-purifier-grille { position:absolute; left:16%; right:16%; top:10%; height:22%; border-radius:10%; background:repeating-linear-gradient(90deg,#84918e 0 2px,#c8d0cc 2px 4px); box-shadow:inset 0 1px 2px rgba(43,60,57,.32); }
.cbe-purifier-status { position:absolute; left:50%; bottom:25%; width:5px; height:5px; margin-left:-2.5px; border-radius:50%; background:#55d1b7; box-shadow:0 0 7px #56e1c2; }
.cbe-purifier-clean-air { position:absolute; z-index:5; left:32%; right:32%; top:0; height:37%; }
.cbe-purifier-clean-air i { position:absolute; bottom:0; width:5px; height:5px; border-radius:50%; background:rgba(157,244,226,.94); box-shadow:0 0 7px rgba(91,229,202,.86); opacity:0; }
.cbe-purifier-clean-air i:nth-child(1) { left:8%; }
.cbe-purifier-clean-air i:nth-child(2) { left:29%; width:3px; height:3px; }
.cbe-purifier-clean-air i:nth-child(3) { left:49%; }
.cbe-purifier-clean-air i:nth-child(4) { left:68%; width:4px; height:4px; }
.cbe-purifier-clean-air i:nth-child(5) { left:87%; width:3px; height:3px; }
.cbe-purifier-intake { position:absolute; z-index:1; inset:30% 0 8%; }
.cbe-purifier-intake i { position:absolute; width:4px; height:4px; border-radius:50%; background:rgba(111,91,70,.55); opacity:0; }
.cbe-purifier-intake i:nth-child(1) { left:4%; top:25%; }
.cbe-purifier-intake i:nth-child(2) { left:13%; top:62%; width:3px; height:3px; }
.cbe-purifier-intake i:nth-child(3) { right:4%; top:18%; }
.cbe-purifier-intake i:nth-child(4) { right:13%; top:68%; width:3px; height:3px; }
[data-scene="side"] .cbe-purifier-clean-air i { animation:purified-rise 1.9s ease-out infinite; }
[data-scene="side"] .cbe-purifier-clean-air i:nth-child(2) { animation-delay:.36s; }
[data-scene="side"] .cbe-purifier-clean-air i:nth-child(3) { animation-delay:.72s; }
[data-scene="side"] .cbe-purifier-clean-air i:nth-child(4) { animation-delay:1.08s; }
[data-scene="side"] .cbe-purifier-clean-air i:nth-child(5) { animation-delay:1.44s; }
[data-scene="side"] .cbe-purifier-intake i:nth-child(-n+2) { animation:purifier-in-left 1.65s ease-in infinite; }
[data-scene="side"] .cbe-purifier-intake i:nth-child(n+3) { animation:purifier-in-right 1.65s .5s ease-in infinite; }
[data-scene="side"] .cbe-purifier-status { animation:purifier-ready 1.8s ease-in-out infinite; }
@keyframes purified-rise { 0% { opacity:0; transform:translateY(10px) scale(.6); } 25% { opacity:1; } 100% { opacity:0; transform:translateY(-24px) scale(1.2); } }
@keyframes purifier-in-left { 0% { opacity:0; transform:translateX(-4px); } 35% { opacity:.75; } 100% { opacity:0; transform:translateX(42px) scale(.65); } }
@keyframes purifier-in-right { 0% { opacity:0; transform:translateX(4px); } 35% { opacity:.75; } 100% { opacity:0; transform:translateX(-42px) scale(.65); } }
@keyframes purifier-ready { 50% { opacity:.45; box-shadow:0 0 3px #56e1c2; } }
.cbe-villa-progress { position:absolute; right:20px; top:50%; transform:translateY(-50%); z-index:8; display:flex; flex-direction:column; align-items:center; gap:10px; font-size:10px; letter-spacing:.12em; color:#8c6246; }
.cbe-progress-line { height:140px; width:2px; background:rgba(82,46,25,.13); position:relative; overflow:hidden; }
.cbe-progress-line i { position:absolute; inset:0 0 auto; height:0%; background:#7b4320; transition:height .15s linear; }
.cbe-progress-stops { display:flex; flex-direction:column; gap:7px; align-items:flex-end; }
.cbe-progress-stops button { appearance:none; border:0; padding:3px; display:flex; flex-direction:row-reverse; align-items:center; gap:7px; color:inherit; background:transparent; font:inherit; cursor:pointer; }
.cbe-progress-stops button > i { width:6px; height:6px; border:1px solid currentColor; border-radius:50%; background:#f5e4ce; transition:.25s; }
.cbe-progress-stops button > span { opacity:0; transform:translateX(5px); transition:.25s; white-space:nowrap; }
.cbe-progress-stops button:hover > span, .cbe-progress-stops button:focus-visible > span, .cbe-progress-stops button.is-active > span { opacity:1; transform:none; }
.cbe-progress-stops button.is-active > i { transform:scale(1.55); background:#7b4320; box-shadow:0 0 0 4px rgba(123,67,32,.12); }
.cbe-progress-stops button:focus-visible { outline:2px solid #7b4320; outline-offset:2px; border-radius:4px; }
.cbe-villa-step { height: 100svh; position:relative; pointer-events:none; }
.cbe-villa-summary { padding:120px clamp(24px, 8vw, 130px) 56px; background:linear-gradient(145deg,#fff8ef,#f1d8b8); }
.cbe-villa-summary-head { max-width:780px; margin-bottom:54px; }
.cbe-villa-summary h2 { font-size:clamp(42px,6vw,82px); margin:10px 0 18px; letter-spacing:-.05em; }
.cbe-villa-summary-head > p:last-child { font-size:18px; color:#80583d; }
.cbe-villa-summary-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.cbe-villa-summary-grid article { min-height:180px; padding:24px; border-radius:28px; background:rgba(255,255,255,.55); border:1px solid rgba(86,45,21,.1); transition:.3s; }
.cbe-villa-summary-grid article:hover { transform:translateY(-8px); box-shadow:0 24px 50px rgba(93,52,23,.12); }
.cbe-villa-summary-grid i { display:grid; place-items:center; width:50px; height:50px; background:#f3d2a9; border-radius:16px; font-style:normal; font-size:22px; }
.cbe-villa-summary-grid h3 { margin:0 0 10px; font-size:21px; }
.cbe-villa-summary-grid p { margin:0; color:#805b43; line-height:1.8; font-size:14px; }
.back-top { display:inline-block; margin-top:40px; padding:14px 22px; background:var(--ink); color:white; border-radius:99px; }
@media (max-width: 900px) {
  .cbe-villa-stage { grid-template-columns:1fr; padding:28px 18px 24px; align-content:center; gap:22px; }
  .cbe-villa-copy { order:2; text-align:center; margin:auto; }
  .cbe-villa-copy h2 { font-size:34px; }
  .cbe-villa-description { font-size:14px; }
  .cbe-villa-tags { justify-content:center; }
  .cbe-villa-window { order:1; width:min(92vw,520px); height:56vh; }
  .cbe-villa-product { transform-style:flat; }
  .cbe-villa-base { z-index:0; }
  [data-scene="side"] .cbe-villa-product { transform-style:preserve-3d; }
  .cbe-villa-progress { right:8px; }
  .cbe-villa-summary-grid { grid-template-columns:1fr 1fr; }
  .cbe-villa-summary { padding:88px 24px 48px; }
}
@media (max-width: 560px) {
  .cbe-villa-summary-grid { grid-template-columns:1fr; }
  .cbe-villa-summary-grid article { min-height:auto; }
  .cbe-villa-summary { padding:72px 18px 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .cbe-villa *, .cbe-villa *::before, .cbe-villa *::after { animation:none !important; transition:none !important; }
}
