:root{
    --bg:#ffffff;
    --bg-soft:#f8f9fa;
    --surface:#ffffff;
    --line:rgba(139,92,246,.15);
    --line-strong:rgba(139,92,246,.35);
    --text:#1a1a2e;
    --text-dim:#475569;
    --accent:#7c3aed;
    --accent-strong:#6d28d9;
    --accent-2:#5b21b6;
    --grad-accent:linear-gradient(120deg,#7c3aed,#6d28d9);
    --focus-ring:#7c3aed;
    --success:#10b981;
    --warning:#f59e0b;
    --danger:#ef4444;
    --radius:22px;
    --shadow-lg:0 25px 50px -12px rgba(0,0,0,.15);
    --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body.main-hub{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family:iransans,Tahoma,Arial,sans-serif;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
}
body.main-hub .row,body.main-hub [class*=col-]{padding:0;margin:0}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
::selection{background:rgba(124,58,237,.2);color:var(--text)}

a:focus-visible,button:focus-visible{
    outline:3px solid var(--focus-ring);
    outline-offset:3px;
    border-radius:8px;
}

.hub-header{
    position:fixed;top:0;left:0;right:0;z-index:100;
    display:flex;align-items:center;justify-content:space-between;
    padding:18px clamp(16px,4vw,56px);
    transition:background .4s var(--ease),box-shadow .4s var(--ease),padding .4s var(--ease);
}
.hub-header.is-scrolled{
    background:rgba(255,255,255,.95);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    box-shadow:0 4px 20px rgba(0,0,0,.08);
    padding-top:12px;padding-bottom:12px;
}
.hub-brand{display:flex;align-items:center;gap:12px}
.hub-brand img{height:44px;width:auto;transition:transform .4s var(--ease)}
.hub-header.is-scrolled .hub-brand img{height:38px}
@media(hover:hover){.hub-brand:hover img{transform:scale(1.06) rotate(-2deg)}}
.hub-brand span{font-size:1.05rem;font-weight:bold;letter-spacing:.02em}
.hub-call{
    display:inline-flex;align-items:center;gap:8px;
    padding:10px 20px;border-radius:999px;
    border:1px solid var(--line-strong);
    background:rgba(124,58,237,.08);
    color:var(--text);font-size:.9rem;
    transition:border-color .3s,background .3s,transform .3s var(--ease);
}
.hub-call svg{width:17px;height:17px;stroke:var(--accent)}
@media(hover:hover){
    .hub-call:hover{border-color:var(--accent);background:rgba(124,58,237,.15);transform:translateY(-2px)}
}

.hero{
    position:relative;min-height:100svh;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;padding:130px 20px 110px;
    background:
        radial-gradient(60% 50% at 80% 10%,rgba(124,58,237,.08),transparent 65%),
        radial-gradient(55% 45% at 15% 85%,rgba(109,40,217,.06),transparent 65%),
        var(--bg);
    overflow:hidden;
}
.hero::before{
    content:"";position:absolute;inset:0;
    background-image:
        linear-gradient(var(--line) 1px,transparent 1px),
        linear-gradient(90deg,var(--line) 1px,transparent 1px);
    background-size:64px 64px;
    mask-image:radial-gradient(75% 65% at 50% 40%,#000 30%,transparent 100%);
    -webkit-mask-image:radial-gradient(75% 65% at 50% 40%,#000 30%,transparent 100%);
    opacity:.4;
}
.hero__blob{
    position:absolute;border-radius:50%;filter:blur(90px);opacity:.6;pointer-events:none;
    animation:blobFloat 12s ease-in-out infinite alternate;
}
.hero__blob--1{width:420px;height:420px;background:rgba(124,58,237,.12);top:-140px;left:-120px}
.hero__blob--2{width:380px;height:380px;background:rgba(109,40,217,.08);bottom:-160px;right:-100px;animation-delay:-6s}
@keyframes blobFloat{
    from{transform:translate(0,0) scale(1)}
    to{transform:translate(36px,26px) scale(1.12)}
}
.hero__inner{position:relative;z-index:2;max-width:900px}
.hero__badge{
    display:inline-flex;align-items:center;gap:8px;
    padding:9px 22px;border-radius:999px;
    border:1px solid rgba(124,58,237,.3);
    background:rgba(124,58,237,.1);
    color:var(--accent);font-size:.85rem;font-weight:bold;
    animation:riseIn .9s var(--ease) both .15s;
}
.hero__badge i{width:8px;height:8px;border-radius:50%;background:var(--accent);
    box-shadow:0 0 0 0 rgba(124,58,237,.5);animation:pulseDot 2s infinite}
@keyframes pulseDot{
    0%{box-shadow:0 0 0 0 rgba(124,58,237,.5)}
    70%{box-shadow:0 0 0 12px rgba(124,58,237,0)}
    100%{box-shadow:0 0 0 0 rgba(124,58,237,0)}
}
.hero__title{
    margin:26px 0 0;font-size:clamp(2.3rem,7vw,4.6rem);
    font-weight:bold;line-height:1.25;color:var(--text);
    animation:riseIn .9s var(--ease) both .3s;
}
.hero__title em{
    font-style:normal;
    background:var(--grad-accent);
    -webkit-background-clip:text;background-clip:text;
    -webkit-text-fill-color:transparent;color:transparent;
}
.hero__desc{
    margin:22px auto 0;max-width:640px;color:var(--text-dim);
    font-size:clamp(.95rem,1.6vw,1.15rem);line-height:2;
    animation:riseIn .9s var(--ease) both .45s;
}
.hero__actions{
    display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:38px;
    animation:riseIn .9s var(--ease) both .6s;
}
.btn-hub{
    display:inline-flex;align-items:center;gap:10px;
    padding:15px 34px;border-radius:999px;
    font-size:1rem;font-weight:bold;
    transition:transform .35s var(--ease),box-shadow .35s var(--ease),filter .35s;
}
.btn-hub--primary{background:var(--grad-accent);color:#ffffff;box-shadow:0 14px 32px -10px rgba(124,58,237,.45)}
@media(hover:hover){
    .btn-hub--primary:hover{transform:translateY(-3px);filter:brightness(1.08);box-shadow:0 20px 42px -12px rgba(139,92,246,.75)}
}
.btn-hub--ghost{border:1px solid var(--line-strong);color:var(--text);background:rgba(124,58,237,.05)}
@media(hover:hover){
    .btn-hub--ghost:hover{transform:translateY(-3px);border-color:var(--accent);background:rgba(124,58,237,.1)}
}
.btn-hub svg{width:18px;height:18px}
.hero__scroll{
    position:absolute;bottom:30px;left:50%;transform:translateX(-50%);
    z-index:2;display:flex;flex-direction:column;align-items:center;gap:10px;
    color:var(--text-dim);font-size:.78rem;
    animation:riseIn 1s var(--ease) both 1s;
}
.hero__mouse{
    width:26px;height:42px;border:2px solid rgba(124,58,237,.4);border-radius:16px;
    position:relative;
}
.hero__mouse::after{
    content:"";position:absolute;top:7px;left:50%;margin-left:-3px;
    width:6px;height:6px;border-radius:50%;background:var(--accent);
    animation:wheelDrop 1.8s ease-in-out infinite;
}
@keyframes wheelDrop{
    0%{opacity:1;transform:translateY(0)}
    70%{opacity:0;transform:translateY(16px)}
    100%{opacity:0;transform:translateY(0)}
}
@keyframes riseIn{
    from{opacity:0;transform:translateY(34px)}
    to{opacity:1;transform:none}
}

.hub-section{position:relative;padding:clamp(70px,10vw,120px) clamp(16px,4vw,56px);scroll-margin-top:70px}
.section-head{text-align:center;max-width:640px;margin:0 auto clamp(40px,6vw,64px)}
.section-head[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease) var(--d,0s),transform .8s var(--ease) var(--d,0s)}
.section-head.in-view{opacity:1;transform:none}
.section-kicker{
    display:inline-block;color:var(--accent);font-size:.85rem;font-weight:bold;
    margin-bottom:12px;
}
.section-title{margin:0;font-size:clamp(1.6rem,3.6vw,2.5rem);font-weight:bold;line-height:1.4}
.section-sub{margin:14px 0 0;color:var(--text-dim);line-height:2}

.dest-grid{
    display:grid;gap:clamp(14px,2vw,24px);
    grid-template-columns:repeat(2,1fr);
    max-width:1280px;margin:0 auto;
}
@media(min-width:992px){.dest-grid{grid-template-columns:repeat(4,1fr)}}
.dest-card{
    position:relative;display:block;
    min-height:min(62vw,340px);border-radius:var(--radius);overflow:hidden;
    isolation:isolate;background:var(--surface);
    box-shadow:var(--shadow-lg);
    opacity:0;transform:translateY(46px) scale(.97);
    transition:opacity .9s var(--ease) var(--d,0s),transform .9s var(--ease) var(--d,0s),
               box-shadow .5s var(--ease);
}
.dest-card.in-view{opacity:1;transform:none}
@media(hover:hover){.dest-card:hover{transform:translateY(-10px)!important;box-shadow:0 25px 60px -15px rgba(124,58,237,.3)}}
.dest-card:focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}
.dest-card__media{position:absolute;inset:0;margin:0}
.dest-card__media img{
    width:100%;height:100%;object-fit:cover;
    transform:scale(1.02);
    transition:transform 1s var(--ease);
}
.dest-card::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(to top,rgba(15,10,30,.88) 0%,rgba(15,10,30,.38) 45%,transparent 75%);
}
.dest-card__content{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:16px 20px;text-align:right}
.dest-card__title{margin:0;font-size:1.05rem;font-weight:bold;color:#ffffff}
.dest-card__desc{margin:6px 0 0;font-size:.82rem;line-height:1.9;color:rgba(255,255,255,.95)}
@media(hover:hover){
    .dest-card:hover .dest-card__media img{transform:scale(1.08)}
}

.perks{
    max-width:1280px;margin:0 auto;
    display:grid;grid-template-columns:repeat(1,1fr);gap:14px;
}
@media(min-width:768px){.perks{grid-template-columns:repeat(3,1fr)}}
.perk{
    display:flex;align-items:center;gap:16px;
    padding:22px 26px;border-radius:18px;
    background:var(--surface);border:1px solid var(--line);
    box-shadow:0 4px 15px rgba(0,0,0,.05);
    opacity:0;transform:translateY(26px);
    transition:opacity .8s var(--ease) var(--d,0s),transform .8s var(--ease) var(--d,0s),border-color .4s,box-shadow .3s;
}
.perk.in-view{opacity:1;transform:none}
@media(hover:hover){.perk:hover{border-color:rgba(124,58,237,.4);box-shadow:0 8px 25px rgba(124,58,237,.1)}}
.perk__icon{
    flex:0 0 52px;height:52px;display:grid;place-items:center;
    border-radius:14px;background:rgba(139,92,246,.14);
}
.perk__icon svg{width:24px;height:24px;stroke:var(--accent)}
.perk h3{margin:0;font-size:1rem;font-weight:bold}
.perk p{margin:5px 0 0;font-size:.83rem;color:var(--text-dim)}

.contact-wrap{
    position:relative;border-radius:calc(var(--radius) + 8px);
    max-width:1280px;margin:0 auto;overflow:hidden;
    background:linear-gradient(150deg,#f8f9fa,#ffffff 60%);
    border:1px solid var(--line);
    padding:clamp(30px,5vw,64px);
    box-shadow:0 10px 40px rgba(0,0,0,.08);
    opacity:0;transform:translateY(40px);
    transition:opacity .9s var(--ease),transform .9s var(--ease);
}
.contact-wrap.in-view{opacity:1;transform:none}
.contact-wrap::before{
    content:"";position:absolute;top:-120px;left:-90px;width:320px;height:320px;border-radius:50%;
    background:radial-gradient(circle,rgba(124,58,237,.1),transparent 70%);pointer-events:none;
}
.contact-grid{display:grid;gap:clamp(26px,4vw,54px);grid-template-columns:1fr}
@media(min-width:900px){.contact-grid{grid-template-columns:1.1fr .9fr;align-items:start}}
.contact-list{display:grid;gap:16px;margin:26px 0 0;padding:0;list-style:none}
.contact-item{
    display:flex;align-items:flex-start;gap:14px;
    padding:16px 18px;border-radius:14px;background:rgba(124,58,237,.03);
    border:1px solid transparent;
    transition:border-color .35s,background .35s,transform .35s var(--ease);
}
@media(hover:hover){.contact-item:hover{border-color:rgba(124,58,237,.3);background:rgba(124,58,237,.06);transform:translateX(-6px)}}
.contact-item svg{flex:0 0 20px;width:20px;height:20px;stroke:var(--accent);margin-top:2px}
.contact-item b{display:block;font-size:.8rem;color:var(--text-dim);font-weight:normal;margin-bottom:4px}
.contact-item span,.contact-item a{direction:ltr;unicode-bidi:embed;font-size:.95rem}
.contact-item a{color:var(--accent);font-weight:bold}
@media(hover:hover){.contact-item a:hover{color:var(--accent-strong);text-decoration:underline}}
.social-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.social-link{
    width:48px;height:48px;display:grid;place-items:center;border-radius:14px;
    background:rgba(124,58,237,.05);border:1px solid var(--line-strong);
    transition:transform .35s var(--ease),background .35s,border-color .35s;
}
.social-link svg{width:21px;height:21px;fill:var(--text-dim);transition:fill .3s}
@media(hover:hover){
    .social-link:hover{transform:translateY(-5px) rotate(4deg);background:rgba(124,58,237,.15);border-color:var(--accent)}
    .social-link:hover svg{fill:var(--accent-strong)}
}

.hub-footer{
    border-top:1px solid var(--line);
    padding:26px clamp(16px,4vw,56px);text-align:center;
    color:var(--text-dim);font-size:.85rem;
    background:var(--bg-soft);
}
.hub-footer b{color:var(--text)}

.hero__desc--secondary{margin-top:14px;font-size:clamp(.88rem,1.4vw,1.02rem)}

.about-body{max-width:860px;margin:0 auto;display:grid;gap:18px}
.about-body p{margin:0;line-height:2.15;text-align:justify;color:var(--text)}
.about-body a{color:var(--accent-strong);font-weight:bold;border-bottom:1px solid var(--line-strong)}
@media(hover:hover){.about-body a:hover{color:var(--accent);border-bottom-color:var(--accent)}}

.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:-64px;right:16px;z-index:300;background:var(--accent-strong);color:#ffffff;padding:12px 24px;border-radius:0 0 14px 14px;font-weight:bold}
.skip-link:focus{top:0}

@media(max-width:480px){
    .hub-brand span{display:none}
    .dest-card{min-height:220px}
    .dest-card__desc{display:none}
}

@media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
    [data-reveal],.dest-card,.perk,.contact-wrap,.section-head{opacity:1!important;transform:none!important}
}
