/* ======================================
PAGE HERO
====================================== */

.page-hero {
    position:relative;
    overflow:hidden;
    isolation:isolate;
    background:linear-gradient(135deg,#08111f 0%,#0b1629 45%,#101d35 100%);
    border-bottom:1px solid rgba(255,255,255,.08);
}
.page-hero .container {
    position:relative;
    z-index:5;
}
.page-hero-wrapper {
    display:grid;
    grid-template-columns:1.15fr .85fr;
    align-items:center;
    gap:80px;
    min-height:500px;
    padding:140px 0 70px;
}
.page-hero-content {
    position:relative;
    z-index:2;
}
.page-hero-visual {
    position:relative;
    display:flex;
    justify-content:center;
    align-items:center;
    min-height:520px;
}
.page-hero-bg {
    position:absolute;
    inset:0;
    z-index:0;
}
.page-hero-bg::before {
    content:"";
    position:absolute;
    width:700px;
    height:700px;
    right:-220px;
    top:-220px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(14,165,233,.22),transparent 70%);
    filter:none;
    opacity:.5;
}
.page-hero-bg::after {
    content:"";
    position:absolute;
    width:500px;
    height:500px;
    left:-180px;
    bottom:-180px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(37,99,235,.15),transparent 70%);
    filter:none;
    opacity:.4;
}
.page-hero-grid {
    position:absolute;
    inset:0;
    opacity:.04;
    background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px);
    background-size:45px 45px;
    mask-image:linear-gradient(to bottom,rgba(0,0,0,1),transparent);
}
.page-hero-glow {
    position:absolute;
    width:350px;
    height:350px;
    right:8%;
    top:50%;
    transform:translateY(-50%);
    border-radius:50%;
    background:radial-gradient(circle,rgba(56,189,248,.18),transparent 70%);
}
.hero-image {
    position:relative;
    z-index:5;
}
.hero-image img {
    width:100%;
    max-width:420px;
    display:block;
    object-fit:contain;
    filter:drop-shadow(0 25px 45px rgba(0,0,0,.45)) drop-shadow(0 0 35px rgba(56,189,248,.18));
}
.hero-shape {
    position:absolute;
    border-radius:50%;
    border:1px solid rgba(56,189,248,.15);
}
.hero-shape-1 {
    width:360px;
    height:360px;
    animation:none;
}
.hero-shape-2 {
    width:250px;
    height:250px;
    border-style:dashed;
    animation:none;
}
@keyframes rotateOne {
    to {
        transform:rotate(360deg);
    }
}
@keyframes rotateTwo {
    to {
        transform:rotate(-360deg);
    }
}
.page-badge {
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:12px 22px;
    border-radius:50px;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(56,189,248,.18);
    backdrop-filter:none;
    color:#38bdf8;
    font-size:.85rem;
    font-weight:700;
    letter-spacing:.18em;
    text-transform:uppercase;
    transition:.35s;
}
.page-badge:hover {
    border-color:#38bdf8;
    box-shadow:0 0 30px rgba(56,189,248,.18);
}
.page-title {
    position:relative;
    margin:35px 0 25px;
    font-size:clamp(1.5rem,5vw,3.0rem);
    line-height:1.1;
    font-weight:800;
    letter-spacing:1px;
    color:#fff;
}
.page-title::before {
    content:"";
    position:absolute;
    left:-28px;
    top:12px;
    width:4px;
    height:75%;
    border-radius:20px;
    background:linear-gradient( #38bdf8,transparent );
}
.page-titles {
    position:relative;
    margin:35px 0 25px;
    font-size:clamp(1.5rem,5vw,3.0rem);
    line-height:1.1;
    font-weight:800;
    letter-spacing:1px;
    color:#fff;
}
.page-titles::before {
    content:"";
    position:absolute;
    left:-28px;
    top:12px;
    width:4px;
    height:75%;
    border-radius:20px;
    background:linear-gradient( #38bdf8,transparent );
}
.page-description {
    max-width:620px;
    color:rgba(255,255,255,.72);
    font-size:1.05rem;
    line-height:2;
    margin-bottom:35px;
}
.page-breadcrumb {
    display:inline-flex;
    align-items:center;
    gap:14px;
    padding:14px 22px;
    border-radius:16px;
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.08);
    backdrop-filter:none;
    margin-bottom:35px;
}
.page-breadcrumb a {
    display:flex;
    align-items:center;
    gap:8px;
    color:#38bdf8;
    text-decoration:none;
    transition:.35s;
}
.page-breadcrumb a:hover {
    color:#7dd3fc;
}
.page-breadcrumb .separator {
    font-size:.75rem;
    color:rgba(255,255,255,.28);
}
.page-breadcrumb span {
    color:#fff;
    font-weight:500;
}
.hero-visual-bg {
    position:absolute;
    inset:15px;
    border-radius:34px;
    background:linear-gradient( 145deg,rgba(255,255,255,.04),rgba(255,255,255,.01) );
    border:1px solid rgba(255,255,255,.08);
    backdrop-filter:none;
    overflow:hidden;
}
.hero-visual-bg::before {
    content:"";
    position:absolute;
    width:320px;
    height:320px;
    right:-120px;
    top:-120px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(56,189,248,.28),transparent 70%);
    display:none;
}
.hero-visual-bg::after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
    background-size:30px 30px;
    opacity:.25;
}
.hero-image {
    position:relative;
    z-index:10;
    display:flex;
    justify-content:center;
    align-items:flex-end;
    height:100%;
}
.hero-image img {
    width:100%;
    max-width:560px;
    max-height:490px;
    display:block;
    object-fit:contain;
    filter:drop-shadow(0 25px 35px rgba(0,0,0,.35))
}
.hero-visual-bg span {
    position:absolute;
    width:70px;
    height:70px;
    border:1px solid rgba(56,189,248,.12);
    clip-path:polygon( 25% 6%,75% 6%,100% 50%,75% 94%,25% 94%,0 50% );
}
.hero-visual-bg span:nth-child(1) {
    left:30px;
    top:35px;
}
.hero-visual-bg span:nth-child(2) {
    right:40px;
    top:120px;
}
.hero-visual-bg span:nth-child(3) {
    left:80px;
    bottom:50px;
}
.page-bg-title {
    position:absolute;
    top:-5px;
    left:20px;
    font-size:clamp(4rem,8vw,5rem);
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:14px;
    color:#ffffff;
    opacity:.02;
    pointer-events:none;
    user-select:none;
    white-space:nowrap;
    z-index:-1;
}
.page-hero::before {
    content:"";
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:1px;
    background:linear-gradient( 90deg,transparent,rgba(56,189,248,.7),transparent );
}
.page-hero::after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient( 180deg,rgba(255,255,255,.02),transparent 40% );
    pointer-events:none;
}
.hero-bottom-line {
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    height:2px;
    overflow:hidden;
    background:rgba(255,255,255,.05);
}
.hero-bottom-line::before {
    content:"";
    position:absolute;
    width:30%;
    height:100%;
    background:linear-gradient( 90deg,transparent,#38bdf8,transparent );
    animation:heroLine 5s linear infinite;
}
@keyframes heroLine {
    from {
        left:-30%;
    }
    to {
        left:100%;
    }
}
.page-hero-content::after {
    content:"";
    position:absolute;
    width:8px;
    height:8px;
    border-radius:50%;
    background:#38bdf8;
    right:30px;
    top:25px;
    box-shadow:30px 40px #38bdf8,70px 80px #38bdf8,120px 20px #38bdf8;
    opacity:.35;
}
.page-features {
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:28px;
    flex-wrap:nowrap;
}
.feature-item {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:38px;
    padding:0 13px;
    border:1px solid rgba(79,140,255,.18);
    border-radius:12px;
    background:linear-gradient( 135deg,rgba(79,140,255,.09),rgba(79,140,255,.035) );
    color:#cbd8e8;
    font-size:11px;
    font-weight:600;
    letter-spacing:.2px;
    white-space:nowrap;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 5px 18px rgba(0,0,0,.12);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    transition:transform .3s ease,border-color .3s ease,background .3s ease,box-shadow .3s ease;
}
.feature-item i {
    display:flex;
    align-items:center;
    justify-content:center;
    width:20px;
    height:20px;
    color:#69adff;
    font-size:11px;
    border-radius:7px;
    background:rgba(79,140,255,.10);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 10px rgba(79,140,255,.08);
    transition:color .3s ease,background .3s ease;
}
.feature-item:hover {
    transform:translateY(-3px);
    border-color:rgba(79,140,255,.38);
    background:linear-gradient( 135deg,rgba(79,140,255,.15),rgba(79,140,255,.06) );
    box-shadow:0 8px 24px rgba(0,100,220,.14),inset 0 1px 0 rgba(255,255,255,.07);
}
.feature-item:hover i {
    color:#8bc5ff;
    background:rgba(79,140,255,.16);
}
@media(max-width:900px) {
    .page-features {
        gap:8px;
    }
    .feature-item {
        padding:0 11px;
        font-size:10.5px;
    }
}
@media(max-width:600px) {
    .page-features {
        width:100%;
        display:grid;
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:7px;
        margin-top:24px;
    }
    .feature-item {
        width:100%;
        min-width:0;
        min-height:40px;
        padding:0 5px;
        gap:5px;
        border-radius:11px;
        font-size:9px;
        letter-spacing:0;
        white-space:nowrap;
    }
    .feature-item i {
        width:18px;
        height:18px;
        flex:0 0 18px;
        font-size:9px;
        border-radius:6px;
    }
}
@media(max-width:390px) {
    .page-features {
        gap:5px;
    }
    .feature-item {
        min-height:36px;
        padding:0 3px;
        gap:4px;
        font-size:8px;
    }
    .feature-item i {
        width:16px;
        height:16px;
        flex:0 0 16px;
        font-size:8px;
    }
}
@media(max-width:600px) {
    .page-features {
        display:grid;
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:6px;
        width:100%;
    }
    .feature-item {
        width:100%;
        min-width:0;
        box-sizing:border-box;
        min-height:40px;
        padding:0 4px;
        gap:5px;
        overflow:hidden;
    }
    .feature-item span {
        min-width:0;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
    .feature-item i {
        flex:0 0 18px;
    }
}
@media(max-width:390px) {
    .page-features {
        gap:5px;
    }
    .feature-item {
        min-height:36px;
        padding:0 3px;
        gap:4px;
        font-size:8px;
    }
    .feature-item i {
        width:16px;
        height:16px;
        flex:0 0 16px;
        font-size:8px;
    }
    .feature-item span {
        min-width:0;
        max-width:100%;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
}
@keyframes heroAppear {
    from {
        opacity:0;
        transform:translateY(30px);
    }
    to {
        opacity:1;
        transform:none;
    }
}
@media (max-width:1100px) {
    .page-hero-wrapper {
        grid-template-columns:1fr;
        gap:40px;
        padding:80px 0 70px;
        text-align:center;
    }
    .page-hero-content {
        display:flex;
        flex-direction:column;
        align-items:center;
    }
    .page-title::before {
        display:none;
    }
    .page-titles::before {
        display:none;
    }
    .page-description {
        max-width:700px;
    }
    .page-hero-visual {
        min-height:360px;
        order:2;
    }
    .hero-image img {
        max-width:360px;
    }
    .hero-visual-bg {
        inset:30px;
    }
}
@media (max-width:768px) {
    .page-hero-wrapper {
        padding:120px 0 55px;
        gap:30px;
    }
    .page-badge {
        padding:10px 18px;
        font-size:.75rem;
    }
    .page-title {
        font-size:2.8rem;
        margin-top:22px;
    }
    .page-titles {
        font-size:2.8rem;
        margin-top:22px;
    }
    .page-description {
        font-size:.95rem;
        line-height:1.8;
        margin-bottom:28px;
    }
    .page-breadcrumb {
        width:100%;
        justify-content:center;
        flex-wrap:wrap;
        padding:12px 16px;
    }
    .page-hero-visual {
        min-height:300px;
    }
    .hero-image img {
        max-width:300px;
        max-height:220px;
    }
    .hero-visual-bg {
        inset:20px;
        border-radius:30px;
    }
    .hero-shape-1 {
        width:280px;
        height:280px;
    }
    .hero-shape-2 {
        width:190px;
        height:190px;
    }
}
@media (max-width:480px) {
    .page-hero-wrapper {
        padding:95px 0 45px;
    }
    .page-title {
        font-size:2.3rem;
    }
    .page-titles {
        font-size:2.3rem;
    }
    .page-description {
        font-size:.9rem;
        padding:0 10px;
    }
    .page-breadcrumb {
        font-size:.85rem;
        gap:10px;
    }
    .page-hero-visual {
        min-height:250px;
    }
    .hero-image img {
        max-width:250px;
    }
    .hero-visual-bg {
        inset:15px;
    }
    .hero-shape-1 {
        width:220px;
        height:220px;
    }
    .hero-shape-2 {
        width:150px;
        height:150px;
    }
    .page-hero-grid {
        background-size:30px 30px;
    }
    .page-bg-title {
        display:none;
    }
}
