/* Shared landing components for visual themes. The markup stays editable in GrapesJS. */
@font-face{font-family:"VS Social Brands";src:url("../x2panel-assets/webfonts/fa-brands-400.woff2") format("woff2");font-style:normal;font-weight:400;font-display:block}

.vs-platform-chip{border:1px solid rgba(245,229,120,.3);box-shadow:0 10px 30px rgba(58,45,0,.09)}
.vs-platform-mark{font-family:Arial,sans-serif}
.vs-platform-chip:is(.vs-platform-tiktok,.vs-platform-instagram,.vs-platform-facebook,.vs-platform-youtube,.vs-platform-telegram,.vs-platform-spotify,.vs-platform-twitch,.vs-platform-discord,.vs-platform-vimeo,.vs-platform-x,.vs-platform-twitter-x-) .vs-platform-mark{font-size:0}
.vs-platform-chip .vs-platform-mark::before{font-family:"VS Social Brands";font-size:18px;font-weight:400;line-height:1}
.vs-platform-tiktok .vs-platform-mark::before{content:"\e07b"}
.vs-platform-instagram .vs-platform-mark::before{content:"\f16d"}
.vs-platform-facebook .vs-platform-mark::before{content:"\f39e"}
.vs-platform-youtube .vs-platform-mark::before{content:"\f167"}
.vs-platform-telegram .vs-platform-mark::before{content:"\f2c6"}
.vs-platform-spotify .vs-platform-mark::before{content:"\f1bc"}
.vs-platform-twitch .vs-platform-mark::before{content:"\f1e8"}
.vs-platform-discord .vs-platform-mark::before{content:"\f392"}
.vs-platform-vimeo .vs-platform-mark::before{content:"\f40a"}
.vs-platform-x .vs-platform-mark::before,.vs-platform-twitter-x- .vs-platform-mark::before{content:"\e61b"}

.vs-section:has(> .vs-platform-marquee){position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(54px,7vw,105px);border-radius:34px;background-color:#fff100}
.vs-section:has(> .vs-platform-marquee)::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 30% 22% at 5% 55%,rgba(255,255,255,.97),transparent 80%),radial-gradient(ellipse 30% 20% at 98% 52%,rgba(255,255,255,.96),transparent 82%),radial-gradient(ellipse 30% 27% at 50% 100%,rgba(255,255,255,.55),transparent 85%);filter:blur(10px)}
.vs-section:has(> .vs-platform-marquee)>*{position:relative;z-index:1}
.vs-section:has(> .vs-platform-marquee)>.vs-heading{max-width:23ch;margin:0 auto 24px;line-height:1.04;letter-spacing:-.035em;text-align:center}
.vs-section:has(> .vs-platform-marquee)>.vs-text{max-width:46ch;margin:0 auto 34px;text-align:center}
.vs-section:has(> .vs-platform-marquee)>.vs-platform-marquee{width:calc(100% + 80px);max-width:none;margin:18px -40px;mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.vs-section:has(> .vs-platform-marquee)>.vs-platform-marquee:last-child{margin-bottom:0}

.vs-section:has(> .vs-columns .vs-section[data-vs-variant="platform-card"]){position:relative;isolation:isolate;padding-block:55px 45px;border-radius:30px;overflow:hidden}
.vs-section:has(> .vs-columns .vs-section[data-vs-variant="platform-card"])::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 36% 20% at 4% 33%,rgba(255,255,255,.95),transparent 85%),radial-gradient(ellipse 34% 18% at 92% 60%,rgba(255,255,255,.8),transparent 85%),linear-gradient(to bottom,transparent 58%,rgba(255,255,255,.65));filter:blur(8px)}
.vs-section:has(> .vs-columns .vs-section[data-vs-variant="platform-card"])>*{position:relative;z-index:1}
.vs-section:has(> .vs-columns .vs-section[data-vs-variant="platform-card"])>.vs-heading{max-width:24ch;margin:0 auto 14px;text-align:center;line-height:1.1}
.vs-section:has(> .vs-columns .vs-section[data-vs-variant="platform-card"])>.vs-text{max-width:56ch;margin:0 auto 35px;text-align:center}
.vs-section:has(> .vs-columns .vs-section[data-vs-variant="platform-card"])>.vs-columns{align-items:stretch}
.vs-section:has(> .vs-columns .vs-section[data-vs-variant="platform-card"]) .vs-column{display:flex;align-items:stretch}
.vs-section[data-vs-variant="platform-card"]{width:100%;min-width:0;border:0;box-shadow:0 12px 32px rgba(82,70,21,.08);gap:6px;text-align:center}
.vs-section[data-vs-variant="platform-card"][data-vs-brand]:not([data-vs-brand="other"])>.vs-heading:first-child{display:none!important}
.vs-section[data-vs-variant="platform-card"][data-vs-brand]:not([data-vs-brand="other"])::before{content:"";display:grid;place-items:center;flex:none;width:72px;height:72px;margin:7px auto 10px;border-radius:50%;background:#171717;color:#fff;font-family:"VS Social Brands";font-size:35px;font-weight:400;line-height:1}
.vs-section[data-vs-brand="tiktok"]::before{content:"\e07b"!important;background:#080808!important}
.vs-section[data-vs-brand="telegram"]::before{content:"\f2c6"!important;background:#229ed9!important}
.vs-section[data-vs-brand="youtube"]::before{content:"\f167"!important;background:#ff1531!important}
.vs-section[data-vs-brand="facebook"]::before{content:"\f39e"!important;background:#1877f2!important}
.vs-section[data-vs-brand="instagram"]::before{content:"\f16d"!important;background:linear-gradient(135deg,#ffc349,#e33282 55%,#7538c2)!important}
.vs-section[data-vs-brand="spotify"]::before{content:"\f1bc"!important;background:#17c965!important}
.vs-section[data-vs-brand="twitch"]::before{content:"\f1e8"!important;background:#9146ff!important}
.vs-section[data-vs-brand="discord"]::before{content:"\f392"!important;background:#5865f2!important}
.vs-section[data-vs-brand="vimeo"]::before{content:"\f40a"!important;background:#1ab7ea!important}
.vs-section[data-vs-brand="x"]::before{content:"\e61b"!important;background:#151515!important}
.vs-section[data-vs-variant="platform-card"]>.vs-heading{margin:0 0 9px;font-size:clamp(20px,2vw,27px);font-weight:800;color:#111}
.vs-section[data-vs-variant="platform-card"]>.vs-text{max-width:23ch;margin:0 auto 18px;color:#4b4b4b;font-size:14px;line-height:1.6;text-align:center}
.vs-section[data-vs-variant="platform-card"]>.vs-button{margin-top:auto;min-height:43px;border-radius:12px;box-shadow:0 3px 0 rgba(0,0,0,.1);white-space:nowrap}

.vs-section:has(> .vs-columns .vs-smm-metric){--vs-metric-shape-left:linear-gradient(140deg,#ffcf3e,#ffe882);--vs-metric-shape-right:linear-gradient(140deg,#ffcf3e,#ffe882);position:relative;isolation:isolate;overflow:hidden;padding-block:70px 60px;border-radius:28px}
.vs-section:has(> .vs-columns .vs-smm-metric)::before,.vs-section:has(> .vs-columns .vs-smm-metric)::after{content:"";position:absolute;z-index:0;width:190px;height:220px;pointer-events:none;background:linear-gradient(140deg,#ffcf3e,#ffe882);clip-path:polygon(50% 0,100% 29%,100% 72%,50% 100%,0 72%,0 29%);opacity:.78}
.vs-section:has(> .vs-columns .vs-smm-metric)::before{left:-55px;top:48px;transform:rotate(6deg);background:var(--vs-metric-shape-left)}
.vs-section:has(> .vs-columns .vs-smm-metric)::after{right:-55px;bottom:36px;transform:rotate(-9deg);background:var(--vs-metric-shape-right)}
.vs-section:has(> .vs-columns .vs-smm-metric)>*{position:relative;z-index:1}
.vs-section:has(> .vs-columns .vs-smm-metric)>.vs-heading{max-width:24ch;margin:0 auto 35px;text-align:center;line-height:1.1}
.vs-section:has(> .vs-columns .vs-smm-metric)>.vs-columns{max-width:1050px;margin-inline:auto}
.vs-section:has(> .vs-columns .vs-smm-metric) .vs-column{display:flex;align-items:stretch}
.vs-section:has(> .vs-columns .vs-smm-metric) .vs-smm-metric{width:100%;min-height:180px;border:0;border-radius:20px;background:linear-gradient(155deg,rgba(255,255,255,.97),rgba(255,255,255,.78));box-shadow:0 10px 26px rgba(119,94,25,.07)}
.vs-smm-metric .vs-metric-icon{font-size:30px;line-height:1.1}
.vs-section:has(> .vs-columns .vs-smm-metric)>.vs-button{display:flex;width:max-content;margin:25px auto 0}

/* Payment logos are individual image blocks, so each tile remains editable. */
.vs-section[data-vs-variant="payment-methods"]{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));align-items:center;gap:14px;overflow:hidden;box-shadow:0 16px 42px rgba(93,79,23,.07)}
.vs-section[data-vs-variant="payment-methods"]>.vs-heading{grid-column:1/-1;margin:0 0 16px;line-height:1.12;text-align:center}
.vs-section[data-vs-variant="payment-methods"]>.vs-image{display:block;width:100%;max-width:none;height:78px;min-width:0;box-sizing:border-box;object-fit:contain;padding:14px;margin:0;border:1px solid rgba(84,78,52,.12);border-radius:15px;background:#fff;box-shadow:0 5px 16px rgba(66,59,31,.05)}

/* Two image and copy layouts inspired by the supplied payment and dashboard sections. */
.vs-section[data-vs-variant^="feature-media"]{overflow:hidden;color:#fff;background:#11131d}
.vs-section[data-vs-variant^="feature-media"]>.vs-columns{grid-template-columns:minmax(0,1.25fr) minmax(0,.95fr);align-items:center;gap:clamp(25px,4vw,64px)}
.vs-section[data-vs-variant="feature-media-right"]>.vs-columns{grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr)}
.vs-section[data-vs-variant^="feature-media"] .vs-column:has(>.vs-image){display:flex;align-items:center;justify-content:center}
.vs-section[data-vs-variant^="feature-media"] .vs-column>.vs-image{display:block;width:100%;max-width:600px;max-height:520px;object-fit:contain;border-radius:0;filter:drop-shadow(0 18px 30px rgba(0,0,0,.18))}
.vs-section[data-vs-variant^="feature-media"] .vs-column:not(:has(>.vs-image)){display:flex;align-content:center;align-items:center;flex-wrap:wrap;column-gap:12px}
.vs-section[data-vs-variant^="feature-media"] .vs-column>.vs-heading,.vs-section[data-vs-variant^="feature-media"] .vs-column>.vs-text{flex:0 0 100%;max-width:44ch}
.vs-section[data-vs-variant^="feature-media"] .vs-column>.vs-heading{line-height:1.25;letter-spacing:-.025em;color:#fff}
.vs-section[data-vs-variant^="feature-media"] .vs-column>.vs-text{color:#b9bdc9;line-height:1.75}
.vs-section[data-vs-variant^="feature-media"] .vs-column>.vs-divider{flex:0 0 76px;width:76px;height:3px;margin:0 0 26px;border:0;background:#dc1941}
.vs-section[data-vs-variant^="feature-media"] .vs-column>.vs-button{min-height:49px;margin:4px 0 0;border:1px solid rgba(255,255,255,.14);white-space:nowrap}

.vs-section[data-vs-variant="cta-banner"]{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px;overflow:hidden;text-align:center;color:#fff;background:#171822}
.vs-section[data-vs-variant="cta-banner"]>.vs-heading{flex:0 0 100%;max-width:23ch;margin:0 auto 16px;line-height:1.25;color:#fff}
.vs-section[data-vs-variant="cta-banner"]>.vs-button{min-width:158px;margin:0;border:1px solid rgba(255,255,255,.18)}

.vs-youtube-video{position:relative;display:block;width:100%;aspect-ratio:16/9;container-type:inline-size;overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:22px;background:linear-gradient(135deg,#171a27,#2b1833 65%,#601d38);box-shadow:0 22px 55px rgba(7,8,18,.25)}
.vs-youtube-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vs-youtube-video .vs-video-placeholder{min-height:0}
@container(max-width:360px){.vs-youtube-video .vs-video-placeholder{gap:6px;padding:8px;font-size:12px;line-height:1.25}.vs-youtube-video .vs-video-placeholder::before{width:32px;height:32px;font-size:16px}}
.vs-video-placeholder{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:15px;width:100%;height:100%;min-height:0;padding:16px;color:#f6f3f5;font-size:16px;font-weight:700;text-align:center}
.vs-video-placeholder::before{content:"▶";display:grid;place-items:center;width:68px;height:68px;padding-inline-start:4px;border-radius:50%;background:#df1943;color:#fff;font-size:25px;box-shadow:0 12px 35px rgba(224,25,67,.32)}
.vs-editor-canvas:not(.vs-video-preview) .vs-youtube-video iframe{pointer-events:none}
.vs-section[data-vs-variant="video-feature"]{overflow:hidden;text-align:center;color:#fff;background:#11131d}
.vs-section[data-vs-variant="video-feature"]>.vs-heading{max-width:26ch;margin:0 auto 12px;color:#fff}
.vs-section[data-vs-variant="video-feature"]>.vs-text{max-width:54ch;margin:0 auto 30px;color:#c8cad6}
.vs-section[data-vs-variant="video-feature"]>.vs-youtube-video{max-width:980px;margin-inline:auto}

@media(max-width:800px){.vs-section:has(> .vs-platform-marquee){padding-block:48px}.vs-section:has(> .vs-platform-marquee)>.vs-platform-marquee{width:calc(100% + 40px);margin-inline:-20px}.vs-section:has(> .vs-columns .vs-section[data-vs-variant="platform-card"]){padding-block:40px}.vs-section:has(> .vs-columns .vs-smm-metric){padding-block:48px}.vs-section[data-vs-variant="payment-methods"]{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}}
@media(max-width:600px){.vs-section:has(> .vs-platform-marquee)>.vs-heading{font-size:clamp(30px,8vw,42px)!important}.vs-section:has(> .vs-columns .vs-section[data-vs-variant="platform-card"])>.vs-heading,.vs-section:has(> .vs-columns .vs-smm-metric)>.vs-heading{font-size:clamp(28px,7vw,36px)!important}.vs-section[data-vs-variant="platform-card"]{min-height:270px}.vs-section:has(> .vs-columns .vs-smm-metric)::before,.vs-section:has(> .vs-columns .vs-smm-metric)::after{width:105px;height:120px;opacity:.5}.vs-section[data-vs-variant="payment-methods"]{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.vs-section[data-vs-variant="payment-methods"]>.vs-heading{margin-bottom:12px}.vs-section[data-vs-variant="payment-methods"]>.vs-image{height:64px;padding:9px;border-radius:10px}}
@media(max-width:800px){.vs-section[data-vs-variant^="feature-media"]>.vs-columns,.vs-section[data-vs-variant="feature-media-right"]>.vs-columns{grid-template-columns:minmax(0,1fr)}.vs-section[data-vs-variant^="feature-media"] .vs-column>.vs-image{max-width:480px}.vs-section[data-vs-variant^="feature-media"] .vs-column:not(:has(>.vs-image)){justify-content:center;text-align:center}.vs-section[data-vs-variant^="feature-media"] .vs-column>.vs-divider{margin-inline:auto}.vs-section[data-vs-variant^="feature-media"] .vs-column>.vs-heading,.vs-section[data-vs-variant^="feature-media"] .vs-column>.vs-text{max-width:none}}
@media(max-width:600px){.vs-section[data-vs-variant^="feature-media"] .vs-column>.vs-image{max-height:320px}.vs-section[data-vs-variant^="feature-media"] .vs-column>.vs-button{flex:1 1 100%;justify-content:center}.vs-section[data-vs-variant="cta-banner"]>.vs-button{width:100%}.vs-youtube-video{border-radius:14px}.vs-video-placeholder{min-height:190px;font-size:13px}.vs-video-placeholder::before{width:54px;height:54px;font-size:20px}}

/* Preset pictures are editable image blocks. */
.vs-section[data-vs-variant="platform-card"]:has(>.vs-image)::before{display:none!important}
.vs-section[data-vs-variant="platform-card"]>.vs-image{display:block;flex:none;width:82px;height:82px;max-width:82px;margin:0 auto 13px;object-fit:contain;border:0;border-radius:0;background:transparent;box-shadow:none}
.vs-section:has(> .vs-columns .vs-smm-metric) .vs-column:has(>.vs-image){position:relative;display:flex;flex-direction:column}
.vs-section:has(> .vs-columns .vs-smm-metric) .vs-column:has(>.vs-image)>.vs-image{position:absolute;z-index:2;top:16px;left:50%;display:block;width:58px;height:58px;max-width:58px;margin:0;object-fit:contain;transform:translateX(-50%)}
.vs-section:has(> .vs-columns .vs-smm-metric) .vs-column:has(>.vs-image)>.vs-smm-metric{padding-top:78px}
.vs-section:has(> .vs-columns .vs-smm-metric) .vs-column:has(>.vs-image) .vs-metric-icon{display:none}
.vs-section:has(> .vs-columns .vs-smm-metric) .vs-column:has(>.vs-image-link>.vs-image){position:relative;display:flex;flex-direction:column}
.vs-section:has(> .vs-columns .vs-smm-metric) .vs-column:has(>.vs-image-link>.vs-image)>.vs-image-link>.vs-image{position:absolute;z-index:2;top:16px;left:50%;display:block;width:58px;height:58px;max-width:58px;margin:0;object-fit:contain;transform:translateX(-50%)}
.vs-section:has(> .vs-columns .vs-smm-metric) .vs-column:has(>.vs-image-link>.vs-image)>.vs-smm-metric{padding-top:78px}
.vs-section:has(> .vs-columns .vs-smm-metric) .vs-column:has(>.vs-image-link>.vs-image) .vs-metric-icon{display:none}
.vs-image-link{display:contents;pointer-events:auto}.vs-image-link>img{cursor:pointer}.vs-image-link:focus-visible>img{outline:2px solid var(--vs-primary,#4f73f5);outline-offset:3px}
.vs-block-list>.vs-image-link>.vs-image{margin:0 0 20px}.vs-login-showcase>.vs-block-list>.vs-image-link>.vs-image{margin-bottom:28px}.vs-shared-slot .vs-block-list>.vs-image-link>.vs-image{margin:0}
.vs-section>.vs-image-link>.vs-image,.vs-column>.vs-image-link>.vs-image{margin:0 0 16px}.vs-section>.vs-image-link:last-child>.vs-image,.vs-column>.vs-image-link:last-child>.vs-image{margin-bottom:0}
