@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@1,700&display=swap');
:root {
    --ink:#172022;
    --muted:#687173;
    --lime:#d9ff59;
    --aqua:#0b756d;
    --soft:#f3f6f3;
    --line:#dde3df
}
* {
    box-sizing:border-box
}
body {
    font-family:"DM Sans",sans-serif;
    color:var(--ink);
    background:#fff
}
.navbar {
    min-height:72px
}
.logo {
    font-weight:800;
    font-size:1.45rem;
    letter-spacing:-1px
}
.logo span {
    color:#0d8d82
}
.nav-link {
    font-weight:600;
    color:var(--ink)!important
}
.btn {
    border-radius:100px;
    font-weight:700;
    padding:.7rem 1.25rem
}
.btn-primary {
    background:var(--aqua);
    border-color:var(--aqua)
}
.btn-primary:hover {
    background:#075f59;
    border-color:#075f59
}
.credit-pill {
    background:#eff9d6;
    border-radius:99px;
    padding:.55rem 1rem;
    font-weight:700
}
.min-vh-75 {
    min-height:75vh
}
.hero {
    background:linear-gradient(125deg,#eef8ef 0%,#fbf9ed 70%);
    overflow:hidden
}
.hero h1 {
    font-size:clamp(3.4rem,7vw,6.6rem);
    font-weight:700;
    line-height:.9;
    letter-spacing:-5px
}
.hero h1 em {
    font-family:"Playfair Display";
    color:var(--aqua)
}
.hero .lead {
    max-width:630px;
    color:#4f5c5d;
    margin:2rem 0;
    font-size:1.2rem
}
.eyebrow,.section-head span {
    font-size:.76rem;
    letter-spacing:2.3px;
    font-weight:800;
    color:var(--aqua)
}
.searchbox {
    background:white;
    padding:10px;
    border-radius:18px;
    box-shadow:0 18px 50px #173a3220;
    max-width:620px
}
.searchbox .col-md-7 {
    position:relative
}
.searchbox i {
    position:absolute;
    left:27px;
    top:15px
}
.searchbox input {
    border:0;
    padding-left:40px
}
.trust {
    display:flex;
    gap:2.5rem;
    margin-top:2rem
}
.trust div {
    display:flex;
    flex-direction:column
}
.trust strong {
    font-size:1.3rem
}
.trust span {
    font-size:.76rem;
    color:var(--muted)
}
.hero-art {
    position:relative;
    padding:4rem 0 4rem 3rem
}
.hero-art>img {
    width:100%;
    height:600px;
    object-fit:cover;
    border-radius:240px 240px 32px 32px
}
.float-card {
    position:absolute;
    left:0;
    bottom:90px;
    background:#fff;
    border-radius:18px;
    padding:18px;
    display:flex;
    align-items:center;
    gap:12px;
    box-shadow:0 16px 50px #0002
}
.float-card>i {
    font-size:1.6rem;
    color:var(--aqua)
}
.float-card small {
    display:block;
    color:var(--muted)
}
.section {
    padding:90px 0
}
.section-head {
    display:flex;
    justify-content:space-between;
    align-items:end;
    margin-bottom:36px
}
.section-head h2,.how h2 {
    font-size:2.5rem;
    font-weight:700;
    letter-spacing:-1.5px
}
.section-head a {
    color:var(--aqua);
    font-weight:700;
    text-decoration:none
}
.category-card {
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    gap:14px;
    border:1px solid var(--line);
    border-radius:18px;
    padding:20px;
    text-decoration:none;
    color:var(--ink);
    transition:.2s
}
.category-section{position:relative;z-index:2}
.category-card,.category-see-all{pointer-events:auto!important;cursor:pointer}
.category-see-all{position:relative;z-index:2;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px}
.category-see-all:hover{background:#edf7f3}
.category-card:hover {
    transform:translateY(-3px);
    border-color:var(--aqua)
}
.category-card>i:first-child {
    font-size:1.5rem;
    background:#e9f5db;
    border-radius:12px;
    padding:10px
}
.category-card>i:last-child {
    margin-left:auto
}
.category-card small,.category-card b {
    display:block
}
.category-card small {
    color:var(--muted)
}
.bg-soft {
    background:var(--soft)
}
.venue-card {
    background:white;
    border-radius:20px;
    overflow:hidden;
    border:1px solid var(--line);
    transition:.25s
}
.venue-card:hover {
    transform:translateY(-5px);
    box-shadow:0 18px 40px #263d3420
}
.venue-card a {
    text-decoration:none;
    color:inherit
}
.venue-img {
    height:220px;
    position:relative;
    overflow:hidden
}
.venue-img img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:.4s
}
.venue-card:hover img {
    transform:scale(1.04)
}
.venue-img span {
    position:absolute;
    top:14px;
    left:14px;
    background:var(--lime);
    padding:6px 11px;
    border-radius:99px;
    font-weight:700;
    font-size:.75rem
}
.venue-card h5 {
    margin:0;
    font-weight:700
}
.venue-card p {
    color:var(--muted);
    margin:.5rem 0
}
.venue-card .bi-star-fill,.venue-title .bi-star-fill {
    color:#e7ac00
}
.how {
    padding:100px 0;
    background:var(--ink);
    color:#fff
}
.how p {
    color:#aeb7b8
}
.step {
    width:54px;
    height:54px;
    border:1px solid #546062;
    border-radius:50%;
    display:grid;
    place-items:center;
    margin:0 auto 20px;
    color:var(--lime);
    font-weight:800
}
.footer {
    background:#101718;
    padding:70px 0;
    color:#fff
}
.footer a {
    display:block;
    color:#99a3a4;
    text-decoration:none;
    margin:10px 0
}
.filterbar {
    background:var(--soft);
    padding:16px;
    border-radius:18px
}
.filterbar .form-control,.filterbar .form-select {
    padding:.75rem 1rem;
    border-color:var(--line);
    border-radius:12px
}
.venue-hero {
    height:520px;
    position:relative;
    color:#fff;
    background:#000
}
.venue-hero>img {
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:.65
}
.venue-title {
    position:absolute;
    bottom:50px;
    left:50%;
    transform:translateX(-50%)
}
.venue-title h1 {
    font-size:3.5rem;
    font-weight:700
}
.venue-title>span {
    background:var(--lime);
    color:var(--ink);
    padding:7px 12px;
    border-radius:99px;
    font-weight:800
}
.lead-sm {
    font-size:1.1rem;
    line-height:1.8;
    color:#566164
}
.session {
    display:flex;
    gap:20px;
    align-items:center;
    padding:20px 0;
    border-bottom:1px solid var(--line)
}
.session p {
    margin:0;
    color:var(--muted)
}
.date {
    width:65px;
    border-right:1px solid var(--line)
}
.date span,.date b {
    display:block
}
.info-card {
    border:1px solid var(--line);
    border-radius:18px;
    padding:25px;
    position:sticky;
    top:100px
}
.auth-wrap {
    min-height:75vh;
    display:grid;
    place-items:center;
    background:var(--soft);
    padding:50px 15px
}
.auth-card {
    width:min(480px,100%);
    background:#fff;
    padding:42px;
    border-radius:24px;
    box-shadow:0 20px 60px #263d3415
}
.auth-card h2 {
    font-weight:800;
    margin-top:10px
}
.auth-card label {
    font-weight:700;
    margin:15px 0 6px
}
.auth-card .form-control {
    padding:.8rem;
    border-radius:10px
}
.auth-card a {
    color:var(--aqua);
    font-weight:700
}
.dash-head {
    background:linear-gradient(120deg,#e9f7e9,#f7f8df);
    padding:40px;
    border-radius:24px;
    display:flex;
    justify-content:space-between
}
.dash-head h1 {
    font-size:3rem;
    font-weight:800
}
.balance {
    text-align:center;
    background:#fff;
    padding:20px 35px;
    border-radius:17px
}
.balance span,.balance small,.balance b {
    display:block
}
.balance b {
    font-size:3rem;
    color:var(--aqua)
}
.booking-row {
    display:flex;
    align-items:center;
    gap:20px;
    border:1px solid var(--line);
    border-radius:18px;
    padding:16px;
    margin-bottom:12px
}
.booking-row img {
    width:90px;
    height:75px;
    object-fit:cover;
    border-radius:12px
}
.booking-row p {
    margin:0;
    color:var(--muted)
}
.status {
    font-size:.68rem;
    text-transform:uppercase;
    font-weight:800
}
.status.confirmed {
    color:var(--aqua)
}
.status.cancelled {
    color:#a44
}
.empty {
    text-align:center;
    padding:70px;
    background:var(--soft);
    border-radius:20px
}
.plans {
    background:linear-gradient(#f1f7ec,#fff);
    padding:90px 0
}
.plans h1 {
    font-size:4rem;
    font-weight:800
}
.plan-card {
    background:white;
    border:1px solid var(--line);
    border-radius:24px;
    padding:35px;
    text-align:left;
    position:relative
}
.plan-card.popular {
    border:2px solid var(--aqua);
    transform:translateY(-10px)
}
.plan-card .badge {
    position:absolute;
    top:-13px;
    left:28px;
    background:var(--aqua);
    padding:8px 12px
}
.price {
    font-size:4rem;
    font-weight:800;
    margin:20px 0
}
.price sup {
    font-size:1.4rem
}
.price small {
    font-size:.9rem;
    color:var(--muted)
}
.plan-card ul {
    padding:20px 0;
    list-style:none
}
.plan-card li {
    margin:12px 0
}
.plan-card li i {
    color:var(--aqua);
    margin-right:8px
}
@media(max-width:768px) {
    .hero h1 {
        letter-spacing:-3px
    }
    .hero-art {
        padding:1rem 0 3rem
    }
    .hero-art>img {
        height:420px
    }
    .trust {
        gap:1rem
    }
    .section {
        padding:60px 0
    }
    .venue-hero {
        height:380px
    }
    .venue-title h1 {
        font-size:2.5rem
    }
    .session,.booking-row {
        align-items:flex-start;
        flex-wrap:wrap
    }
    .dash-head {
        flex-direction:column;
        gap:20px
    }
    .balance {
        text-align:left
    }
    .plan-card.popular {
        transform:none
    }
}

/* LinoPass premium public navigation */
.site-nav{min-height:84px;padding:10px 0;background:rgba(255,255,255,.94);border-bottom:1px solid rgba(23,32,34,.08);backdrop-filter:blur(18px);box-shadow:0 8px 28px rgba(22,50,45,.05)}
.site-nav .navbar-brand{min-width:145px}
.site-nav-links{padding:5px;border:1px solid #e7ece9;border-radius:999px;background:#f7f9f7;gap:2px!important}
.site-nav .nav-link{display:flex;align-items:center;gap:7px;padding:9px 13px!important;border-radius:999px;font-size:.82rem!important;transition:background .2s,color .2s}
.site-nav .nav-link i{color:var(--aqua)}
.site-nav .nav-link:hover{background:#fff;box-shadow:0 4px 14px rgba(23,32,34,.08)}
.site-nav .nav-partner-link{background:#eaf5f1}
.site-nav-actions{margin-left:18px}
.nav-login{padding:10px 14px;color:var(--ink);font-size:.88rem;font-weight:800;text-decoration:none;white-space:nowrap}
.nav-join{display:flex;align-items:center;gap:10px;padding:12px 18px;white-space:nowrap}
.nav-join i{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:rgba(255,255,255,.17)}
.site-nav .avatar-btn{width:42px;height:42px;border:0;background:#e9f4f0;color:var(--aqua)}

/* LinoPass discovery workspace */
.market-intro{display:flex;align-items:end;justify-content:space-between;gap:40px;padding:48px max(28px,calc((100vw - 1440px)/2));background:linear-gradient(135deg,#ecf6f0 0%,#f8f6e9 100%)}
.market-intro span,.result-tabs span{color:var(--aqua);font-size:.67rem;font-weight:800;letter-spacing:2px}
.market-intro h1{max-width:720px;margin:8px 0 0;font-size:clamp(2.35rem,4.4vw,4.7rem);font-weight:800;line-height:.98;letter-spacing:-3px}
.market-intro p{max-width:400px;margin:0 0 6px;color:var(--muted);font-size:1.03rem;line-height:1.65}
.market-search{top:84px;padding:18px max(24px,calc((100vw - 1440px)/2));background:rgba(255,255,255,.96);box-shadow:0 15px 35px rgba(23,32,34,.08);backdrop-filter:blur(16px)}
.market-search-top{max-width:1040px;height:68px;padding:6px;border:1px solid #dbe4df;border-radius:21px;background:#fff;box-shadow:0 10px 28px rgba(23,53,47,.08)}
.query-field,.location-field{height:54px;border:0;border-radius:0;background:transparent;padding:0 15px}
.query-field{width:52%;border-right:1px solid var(--line)}
.location-field{width:31%}
.query-field label,.location-field label{display:flex;width:100%;flex-direction:column}
.query-field label small,.location-field label small{margin-bottom:1px;color:#81908c;font-size:.64rem;font-weight:800;letter-spacing:.5px;text-transform:uppercase}
.query-field input,.location-field select{font-size:.92rem;font-weight:700;color:var(--ink)}
.search-field-icon{display:grid;flex:0 0 36px;width:36px;height:36px;place-items:center;border-radius:12px;background:#edf7f3;color:var(--aqua)}
.market-search-top>.btn{display:flex;align-items:center;justify-content:center;gap:10px;height:54px;margin-left:auto;padding:0 20px;border-radius:16px;white-space:nowrap}
.market-search-top>.btn i{display:grid;width:28px;height:28px;place-items:center;border-radius:10px;background:rgba(255,255,255,.16)}
.market-filters{max-width:1100px;padding:13px 0 0;border:0;gap:8px}
.filter-label{display:inline-flex;align-items:center;gap:7px;margin-right:4px;color:#72817d;font-size:.74rem;font-weight:800;text-transform:uppercase}
.market-filters select,.market-filters input,.filter-submit{padding:8px 13px;border-color:#e0e6e3;border-radius:11px;background:#f7f9f7;font-size:.78rem}
.filter-submit{color:var(--aqua)}
.market-filters>a{display:inline-flex;align-items:center;gap:5px;padding:8px 10px;font-size:.78rem;font-weight:700;text-decoration:none}
.market-layout{grid-template-columns:minmax(500px,58%) 1fr;height:calc(100vh - 272px);min-height:680px;gap:16px;padding:16px;background:#edf2ef}
.results-pane,.map-pane{overflow:hidden;border:1px solid #e0e7e3;border-radius:24px;background:#fff;box-shadow:0 12px 32px rgba(29,57,51,.06)}
.results-pane{overflow-y:auto}
.map-pane{position:relative}
.map-pane,#venueMap{min-height:648px;border-radius:24px}
.map-label{position:absolute;z-index:500;top:18px;left:50%;display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid rgba(23,32,34,.1);border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 8px 24px rgba(23,32,34,.14);transform:translateX(-50%);backdrop-filter:blur(10px)}
.map-label>i{color:var(--aqua);font-size:1.1rem}.map-label span{display:flex;flex-direction:column;white-space:nowrap}.map-label b{font-size:.8rem}.map-label small{color:var(--muted);font-size:.63rem}
.result-tabs{padding:24px 26px;border:0;background:rgba(255,255,255,.96);box-shadow:0 8px 22px rgba(29,57,51,.045)}
.result-tabs h2{margin:3px 0 0;font-size:1.55rem;font-weight:800;letter-spacing:-.6px}
.result-tabs em{padding:7px 11px;border-radius:999px;background:#eef6f2;color:var(--aqua);font-size:.72rem;font-weight:800}
.result-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:20px}
.result-card{overflow:hidden;padding:0;border:1px solid #e4e9e6;border-radius:18px;background:#fff;transition:transform .22s,box-shadow .22s}
.result-card:hover{transform:translateY(-3px);box-shadow:0 15px 30px rgba(20,51,45,.11)}
.result-card a{display:block;height:100%}
.result-card img{width:100%;height:145px;border:0;border-radius:0}
.result-card-body{position:relative;padding:16px}
.result-category{color:var(--aqua);font-size:.65rem;font-weight:800;letter-spacing:1px;text-transform:uppercase}
.result-card h3{margin:7px 34px 7px 0;font-size:1.08rem;font-weight:800}
.result-card p{margin:0;color:var(--muted);font-size:.76rem}
.result-card small{display:inline-block;margin-top:13px;padding:6px 9px;border-radius:9px;background:#eff8d9;color:#38573f;font-size:.7rem;font-weight:800}
.result-arrow{position:absolute;right:16px;top:46px;display:grid;width:30px;height:30px;place-items:center;border-radius:10px;background:#f0f4f2;color:var(--ink)}

/* LinoPass membership collection */
.plans-showcase{position:relative;overflow:hidden;padding:90px 0 110px;background:linear-gradient(145deg,#f5f8f4 0%,#edf6f1 48%,#fff8e9 100%)}
.plans-showcase:before{content:"";position:absolute;top:-220px;right:-170px;width:520px;height:520px;border:1px solid rgba(11,117,109,.13);border-radius:50%;box-shadow:0 0 0 80px rgba(11,117,109,.025),0 0 0 160px rgba(11,117,109,.018)}
.plans-heading{position:relative;display:flex;align-items:end;justify-content:space-between;gap:40px;text-align:left}
.plans-heading h1{max-width:820px;margin:12px 0 0;font-size:clamp(3rem,6vw,5.8rem);line-height:.92;letter-spacing:-5px}
.plans-heading-note{display:flex;align-items:flex-start;gap:14px;max-width:360px;padding:20px;border:1px solid rgba(11,117,109,.14);border-radius:18px;background:rgba(255,255,255,.58);backdrop-filter:blur(8px)}
.plans-heading-note>i{display:grid;flex:0 0 42px;width:42px;height:42px;place-items:center;border-radius:13px;background:#dff1e9;color:var(--aqua);font-size:1.1rem}.plans-heading-note p{margin:0;color:var(--muted);font-size:.88rem}.plans-heading-note b{color:var(--ink)}
.plans-grid{position:relative;margin-top:64px}
.plans-showcase .plan-card{overflow:hidden;height:100%;padding:0;border:1px solid rgba(27,59,53,.12);border-radius:26px;background:rgba(255,255,255,.88);box-shadow:0 18px 45px rgba(30,63,56,.08);backdrop-filter:blur(10px);transition:transform .25s,box-shadow .25s}
.plans-showcase .plan-card:hover{transform:translateY(-8px);box-shadow:0 25px 55px rgba(30,63,56,.14)}
.plans-showcase .plan-card.popular{border:0;transform:none;box-shadow:0 22px 60px rgba(11,117,109,.2)}
.plan-card-top{position:relative;min-height:230px;padding:28px;background:#eaf4ef}
.popular .plan-card-top{background:linear-gradient(145deg,#0b756d,#0f9283);color:#fff}
.plan-symbol{display:grid;width:46px;height:46px;margin-bottom:34px;place-items:center;border-radius:15px;background:rgba(255,255,255,.75);color:var(--aqua);font-size:1.2rem}.popular .plan-symbol{background:rgba(255,255,255,.15);color:#fff}
.plans-showcase .plan-card .badge{top:28px;right:26px;left:auto;padding:8px 10px;border-radius:999px;background:#d9ff59;color:#24352f;font-size:.61rem;letter-spacing:.7px}
.plans-showcase .plan-card .badge.bg-danger{top:64px;background:#fff0e6!important;color:#ae4c18}
.plan-label{font-size:.62rem;font-weight:800;letter-spacing:1.5px;opacity:.7}
.plan-card-top h3{margin:6px 0 18px;font-size:1.85rem;font-weight:800}
.plan-credit{display:flex;align-items:center;gap:12px;margin:0}.plan-credit b{font-size:3rem;line-height:.8}.plan-credit span{font-size:.72rem;font-weight:700;line-height:1.25;opacity:.75;text-transform:uppercase}
.plan-card-content{padding:28px;text-align:left}
.plans-showcase .price{margin:4px 0 5px;font-size:3.1rem;letter-spacing:-2px}
.credit-value{margin:0;color:var(--muted);font-size:.76rem}
.plans-showcase .plan-card ul{margin:16px 0;padding:17px 0;border-top:1px solid #e9eeeb;border-bottom:1px solid #e9eeeb}
.plans-showcase .plan-card li{font-size:.84rem}
.plans-showcase .form-select{border-radius:12px;font-size:.8rem}

@media(max-width:1199px){.site-nav .nav-link{padding:9px 9px!important}.site-nav .nav-link i{display:none}.nav-join{padding:12px 14px}.result-list{grid-template-columns:1fr}}
@media(max-width:992px){
    .site-nav-links{margin:18px 0!important;padding:10px;border-radius:18px;align-items:stretch!important}.site-nav .nav-link{padding:11px 13px!important}.site-nav .nav-link i{display:inline-block}.site-nav-actions{margin:0 0 10px}
    .market-intro{align-items:flex-start;flex-direction:column;padding:38px 24px}.market-intro h1{letter-spacing:-2px}.market-search{position:static}.market-layout{height:auto;padding:12px;grid-template-columns:1fr}.map-pane{order:0;height:420px}.map-pane,#venueMap{min-height:420px}.results-pane{overflow:visible}.result-list{grid-template-columns:repeat(2,1fr)}
    .plans-heading{align-items:flex-start;flex-direction:column}.plans-heading h1{letter-spacing:-3px}.plans-heading-note{max-width:100%}
}
@media(max-width:600px){
    .site-nav-actions{align-items:stretch!important;flex-direction:column}.nav-login{text-align:center}.nav-join{justify-content:center}
    .market-search{padding:14px}.market-search-top{height:auto;padding:10px;gap:8px;border-radius:18px}.query-field,.location-field{width:100%;height:58px;border:1px solid #e4e9e6;border-radius:13px}.market-search-top>.btn{width:100%;margin:0}.market-filters{overflow-x:auto;padding-top:10px}.filter-label{display:none}.market-layout{display:flex;flex-direction:column}.map-pane{order:-1;height:330px}.map-pane,#venueMap{min-height:330px}.result-list{grid-template-columns:1fr}.result-card img{height:180px}
    .plans-showcase{padding:65px 0}.plans-heading h1{font-size:3.25rem;letter-spacing:-3px}.plans-grid{margin-top:38px}.plan-card-top{min-height:210px}
}
.portal-body {
    background:#f3f5f4;
    min-height:100vh
}
.portal-side {
    position:fixed;
    inset:0 auto 0 0;
    width:250px;
    background:#121b1c;
    color:#fff;
    padding:28px 22px;
    display:flex;
    flex-direction:column
}
.portal-side>.logo {
    font-size:1.6rem;
    text-decoration:none
}
.portal-side>.logo span {
    color:var(--lime)
}
.portal-side>small {
    color:#778586;
    letter-spacing:2px;
    margin:8px 0 30px
}
.portal-side nav a {
    display:block;
    padding:12px 14px;
    margin:5px 0;
    color:#aab5b5;
    text-decoration:none;
    border-radius:10px
}
.portal-side nav a.active,.portal-side nav a:hover {
    background:#223031;
    color:#fff
}
.portal-side nav i {
    margin-right:10px
}
.portal-user {
    margin-top:auto;
    border-top:1px solid #304041;
    padding-top:20px
}
.portal-user small {
    display:block;
    color:#879494
}
.portal-user button {
    background:none;
    border:0;
    color:#ff8c8c;
    padding:12px 0
}
.portal-main {
    margin-left:250px;
    padding:40px;
    max-width:1700px
}
.portal-head {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:25px
}
.portal-head h1 {
    font-size:2.4rem;
    font-weight:800;
    margin:6px 0
}
.portal-head p {
    color:var(--muted)
}
.metric-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px
}
.metric {
    background:#fff;
    padding:22px;
    border:1px solid var(--line);
    border-radius:18px;
    display:grid;
    grid-template-columns:auto 1fr;
    gap:3px 12px
}
.metric i {
    grid-row:span 2;
    background:#eaf6db;
    color:var(--aqua);
    padding:10px;
    border-radius:11px;
    font-size:1.2rem
}
.metric span {
    color:var(--muted);
    font-size:.82rem
}
.metric b {
    font-size:1.7rem
}
.panel {
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    padding:22px
}
.panel-title {
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:16px
}
.panel-title h4 {
    font-weight:800;
    margin:0
}
.panel-title span {
    background:#f1f4f2;
    border-radius:99px;
    padding:5px 10px;
    font-size:.75rem
}
.admin-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:13px 0;
    border-bottom:1px solid #edf0ee
}
.admin-row:last-child {
    border:0
}
.admin-row small {
    display:block;
    color:var(--muted)
}
.timeline {
    display:flex;
    gap:12px;
    padding:10px 0
}
.timeline>i {
    width:9px;
    height:9px;
    margin-top:6px;
    border-radius:50%;
    background:var(--aqua)
}
.timeline small {
    display:block;
    color:var(--muted)
}
.partner-venue {
    display:flex;
    align-items:center;
    gap:14px;
    padding:14px 0;
    border-bottom:1px solid var(--line)
}
.partner-venue img {
    width:70px;
    height:60px;
    border-radius:10px;
    object-fit:cover
}
.partner-venue h5 {
    margin:4px 0
}
.status.pending {
    color:#ad7900
}
.status.approved {
    color:var(--aqua)
}
.review {
    padding:16px 0;
    border-bottom:1px solid var(--line)
}
.review p {
    margin:6px 0;
    color:var(--muted)
}
@media(max-width:900px) {
    .portal-side {
        position:static;
        width:auto;
        min-height:auto
    }
    .portal-main {
        margin:0;
        padding:22px
    }
    .portal-side nav {
        display:flex
    }
    .portal-user {
        display:none
    }
    .metric-grid {
        grid-template-columns:repeat(2,1fr)
    }
    .portal-head {
        align-items:flex-start;
        gap:12px
    }
}
@media(max-width:520px) {
    .metric-grid {
        grid-template-columns:1fr
    }
    .portal-main {
        padding:15px
    }
}
.navbar>.container {
    max-width:1500px
}
.navbar .navbar-nav {
    align-items:center;
    gap:.4rem
}
.navbar .nav-link {
    font-size:.9rem
}
.avatar-btn {
    width:46px;
    height:46px;
    border-radius:50%;
    border:1px solid #bdd1ff;
    background:#e7f0ff;
    color:#1261dd;
    font-size:1.3rem
}
.footer {
    padding:90px 0 35px
}
.footer-grid {
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:55px
}
.footer h6 {
    font-size:1rem;
    font-weight:800
}
.footer-bottom {
    display:flex;
    justify-content:space-between;
    align-items:end;
    margin-top:75px
}
.store-badges {
    display:flex;
    gap:14px
}
.store-badges span {
    border:1px solid #fff;
    border-radius:6px;
    padding:7px 13px;
    font-size:.58rem;
    line-height:1.05
}
.store-badges i {
    float:left;
    font-size:1.5rem;
    margin-right:7px
}
.store-badges b {
    font-size:.9rem
}
.socials {
    display:flex;
    gap:22px;
    font-size:1.45rem;
    margin-bottom:22px
}
.legal {
    display:flex;
    gap:22px
}
.legal a {
    font-size:.8rem;
    font-weight:700;
    color:#fff;
    margin:0
}
.market-search {
    position:sticky;
    top:72px;
    z-index:500;
    background:#fff;
    border-bottom:1px solid var(--line);
    box-shadow:0 3px 10px #00000008
}
.market-search-top {
    height:74px;
    padding:10px 22px;
    display:flex;
    align-items:center;
    gap:0
}
.query-field,.location-field {
    height:50px;
    border:1px solid #cfd5d2;
    display:flex;
    align-items:center;
    gap:10px;
    padding:0 16px
}
.query-field {
    width:360px;
    border-radius:25px 0 0 25px
}
.location-field {
    width:250px;
    border-left:0;
    border-radius:0 25px 25px 0
}
.query-field input,.location-field select {
    border:0;
    outline:0;
    width:100%;
    background:transparent
}
.market-search-top>.btn {
    margin-left:12px
}
.market-filters {
    display:flex;
    gap:12px;
    align-items:center;
    padding:10px 22px 14px;
    border-top:1px solid #f0f1f0
}
.market-filters select,.market-filters input,.filter-submit {
    border:1px solid #cdd4d0;
    background:#fff;
    border-radius:25px;
    padding:9px 18px;
    font-weight:600
}
.filter-submit {
    color:#1261dd
}
.market-filters>a {
    color:var(--muted)
}
.market-layout {
    display:grid;
    grid-template-columns:minmax(520px,56%) 1fr;
    height:calc(100vh - 216px);
    min-height:650px
}
.results-pane {
    overflow-y:auto;
    background:#fff
}
.map-pane {
    position:relative
}
.map-pane,#venueMap {
    height:100%;
    min-height:650px
}
.result-tabs {
    position:sticky;
    top:0;
    background:#fff;
    z-index:5;
    display:flex;
    gap:30px;
    align-items:center;
    padding:20px 30px;
    border-bottom:1px solid var(--line)
}
.result-tabs b {
    color:#075ef0;
    border-bottom:3px solid #075ef0;
    padding-bottom:16px;
    margin-bottom:-20px
}
.result-tabs em {
    margin-left:auto;
    color:var(--muted);
    font-style:normal
}
.result-list {
    padding:22px 30px
}
.result-card {
    border-bottom:1px solid var(--line);
    padding:16px 0
}
.result-card a {
    display:flex;
    gap:20px;
    color:inherit;
    text-decoration:none
}
.result-card img {
    width:190px;
    height:130px;
    object-fit:cover;
    border-radius:14px
}
.result-card span {
    font-size:.75rem;
    color:var(--aqua);
    font-weight:800;
    text-transform:uppercase
}
.result-card h3 {
    font-size:1.25rem;
    margin:7px 0
}
.result-card p {
    color:var(--muted);
    margin:0 0 10px
}
.no-results {
    padding:55px 10px
}
.no-results>i {
    font-size:2rem;
    color:var(--muted)
}
.no-results h2 {
    font-weight:800;
    margin-top:15px
}
.video-heading {
    display:flex;
    justify-content:space-between;
    align-items:end;
    margin-bottom:30px
}
.video-heading h1 {
    font-size:3.5rem;
    font-weight:800
}
.video-heading p {
    color:var(--muted)
}
.featured-video {
    height:580px;
    display:block;
    position:relative;
    overflow:hidden;
    border-radius:4px;
    color:#fff
}
.featured-video>img {
    width:100%;
    height:100%;
    object-fit:cover
}
.featured-video:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(transparent 40%,#000b)
}
.video-overlay {
    position:absolute;
    inset:auto 25px 25px;
    z-index:2
}
.video-overlay h2 {
    font-weight:800
}
.video-overlay b {
    position:absolute;
    right:0;
    bottom:0;
    background:#000;
    padding:6px 9px;
    border-radius:4px
}
.play {
    width:50px;
    height:50px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#fff;
    color:#000;
    font-size:1.7rem;
    margin-bottom:14px
}
.video-card {
    display:block;
    text-decoration:none;
    color:inherit
}
.video-card>div {
    height:230px;
    position:relative;
    overflow:hidden;
    border-radius:12px
}
.video-card img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:.3s
}
.video-card:hover img {
    transform:scale(1.04)
}
.video-card>div span {
    position:absolute;
    inset:50% auto auto 50%;
    transform:translate(-50%,-50%);
    width:48px;
    height:48px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#fff;
    font-size:1.5rem
}
.video-card>div b {
    position:absolute;
    right:10px;
    bottom:10px;
    background:#000;
    color:#fff;
    padding:4px 7px;
    border-radius:4px
}
.video-card h4 {
    font-weight:800;
    margin:14px 0 4px
}
.video-card p {
    color:var(--muted)
}
.watch-page {
    background:#101718;
    color:#fff;
    padding:55px 0 90px
}
.back-link {
    color:#b9c4c4;
    text-decoration:none
}
.watch-stage {
    height:650px;
    position:relative;
    margin:25px 0;
    background:#000
}
.watch-stage img {
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:.72
}
.watch-stage button {
    position:absolute;
    inset:50% auto auto 50%;
    transform:translate(-50%,-50%);
    width:90px;
    height:90px;
    border:0;
    border-radius:50%;
    font-size:2.8rem
}
.watch-meta {
    display:flex;
    justify-content:space-between;
    align-items:center
}
.watch-meta h1 {
    font-size:3rem;
    font-weight:800
}
.settings-wrap {
    background:#f6f7f6;
    min-height:75vh;
    padding:70px 0
}
.settings-layout {
    display:grid;
    grid-template-columns:220px 1fr;
    gap:50px;
    max-width:1050px
}
.settings-layout aside {
    display:flex;
    flex-direction:column
}
.settings-layout aside h5 {
    font-weight:800
}
.settings-layout aside a {
    padding:10px 0;
    color:var(--muted);
    text-decoration:none
}
.settings-layout aside a.active {
    color:var(--ink);
    font-weight:800
}
.settings-layout main {
    background:#fff;
    border:1px solid var(--line);
    border-radius:20px;
    padding:35px
}
.settings-layout main h1 {
    font-size:2.7rem;
    font-weight:800
}
.current-plan {
    display:flex;
    justify-content:space-between;
    background:#eaf7eb;
    border-radius:18px;
    padding:28px;
    margin:25px 0
}
.current-plan span {
    font-size:.7rem;
    font-weight:800;
    letter-spacing:2px;
    color:var(--aqua)
}
.current-plan h2 {
    font-weight:800;
    margin:8px 0
}
.current-plan .price {
    font-size:2.6rem;
    margin:0
}
.current-plan .price small {
    display:block
}
@media(max-width:992px) {
    .footer-grid {
        grid-template-columns:repeat(2,1fr)
    }
    .footer-bottom {
        align-items:flex-start;
        gap:35px;
        flex-direction:column
    }
    .market-layout {
        grid-template-columns:1fr;
        height:auto
    }
    .map-pane {
        height:430px;
        order:-1
    }
    .results-pane {
        overflow:visible
    }
    .market-search {
        position:static
    }
    .market-search-top {
        height:auto;
        flex-wrap:wrap
    }
    .query-field,.location-field {
        width:50%
    }
    .market-layout {
        min-height:0
    }
    .featured-video {
        height:440px
    }
    .watch-stage {
        height:460px
    }
}
@media(max-width:600px) {
    .footer-grid {
        grid-template-columns:1fr
    }
    .legal {
        flex-wrap:wrap
    }
    .market-search-top {
        gap:8px
    }
    .query-field,.location-field {
        width:100%;
        border:1px solid #cfd5d2;
        border-radius:25px
    }
    .market-filters {
        overflow-x:auto
    }
    .market-filters>* {
        flex:0 0 auto
    }
    .result-list {
        padding:14px
    }
    .result-card img {
        width:120px;
        height:100px
    }
    .video-heading {
        align-items:flex-start;
        flex-direction:column
    }
    .video-heading h1 {
        font-size:2.5rem
    }
    .featured-video {
        height:350px
    }
    .settings-layout {
        grid-template-columns:1fr
    }
    .settings-layout aside {
        display:none
    }
    .settings-layout main {
        padding:22px
    }
    .current-plan {
        flex-direction:column
    }
    .watch-stage {
        height:300px
    }
    .watch-meta {
        align-items:flex-start;
        flex-direction:column;
        gap:20px
    }
}

/* Distinctive LinoPass footer */
.footer{background:#0c2320;padding:42px 0 32px;color:#fff}
.footer a{color:inherit;text-decoration:none;margin:0}
.footer-action-card{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:27px 38px;border-radius:24px;background:linear-gradient(125deg,var(--aqua),#159b82);box-shadow:0 20px 45px rgba(0,0,0,.18)}
.footer-kicker{display:block;margin-bottom:10px;color:#d7fff3;font-size:.72rem;font-weight:800;letter-spacing:2.4px}
.footer-action-card h2{margin:0 0 8px;max-width:650px;font-size:clamp(1.8rem,3vw,3.25rem);font-weight:800;letter-spacing:-1.5px}
.footer-action-card p{max-width:660px;margin:0;color:#e6fff8}
.footer-action-buttons{display:flex;align-items:center;gap:22px;flex-shrink:0}
.footer-action-buttons .btn{padding:14px 20px;border:0;border-radius:999px;font-weight:800}
.footer-action-buttons .btn-light{color:var(--ink)}
.footer-text-link{font-weight:800;white-space:nowrap}
.footer-main{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(0,2.28fr);gap:56px;padding:64px 0 42px}
.footer-brand-panel{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.footer-brand{font-size:1.9rem;font-weight:800;letter-spacing:-1px}
.footer-brand img{display:block;max-width:180px;max-height:58px;object-fit:contain}
.footer-brand-panel p{max-width:280px;margin:0 0 8px;color:#b8cbc6;line-height:1.65}
.footer-brand-panel>span,.footer-contact{color:#d4dfdc;font-size:.9rem}
.footer-language{display:inline-flex;align-items:center;gap:9px;margin-top:10px!important;padding:10px 14px;border:1px solid rgba(255,255,255,.2);border-radius:999px;font-size:.82rem;font-weight:700}
.footer-nav-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.footer-nav-card{min-height:270px;padding:22px 20px;border:1px solid rgba(255,255,255,.09);border-radius:18px;background:rgba(255,255,255,.035)}
.footer-nav-icon{display:grid;width:38px;height:38px;margin-bottom:18px;place-items:center;border-radius:12px;background:rgba(117,232,192,.12);color:#75e8c0}
.footer-nav-card h6{margin-bottom:15px;font-size:.95rem;font-weight:800}
.footer-nav-card a{display:block;width:max-content;max-width:100%;margin:9px 0;color:#aebfbb;font-size:.86rem;transition:color .2s,transform .2s}
.footer-nav-card a:hover{color:#fff;transform:translateX(3px)}
.footer-more-links{display:flex;align-items:center;gap:22px;padding:18px 0;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}
.footer-more-links span{margin-right:auto;color:#78928c;font-size:.72rem;font-weight:800;letter-spacing:1.4px;text-transform:uppercase}
.footer-more-links a{color:#d1ddda;font-size:.85rem;font-weight:700}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:35px;margin-top:0;padding-top:32px}
.store-badges{display:flex;gap:14px}
.store-badges span{display:grid;grid-template-columns:auto 1fr;min-width:145px;padding:9px 13px;border:1px solid rgba(255,255,255,.28);border-radius:12px;line-height:1.05}
.store-badges i{grid-row:1/3;align-self:center;float:none;margin-right:10px;font-size:1.5rem}
.store-badges small{color:#94a9a4;font-size:.57rem}
.store-badges b{font-size:.9rem}
.footer-closing{display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.socials{display:flex;gap:10px;margin:0;font-size:1rem}
.socials a{display:grid;width:36px;height:36px;place-items:center;border-radius:50%;background:rgba(255,255,255,.08)}
.legal{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:16px}
.legal a{color:#fff;font-size:.8rem;font-weight:800}
.footer-closing>small{color:#78928c}

@media(max-width:992px){
    .footer-action-card{align-items:flex-start;flex-direction:column}
    .footer-main{grid-template-columns:1fr}
    .footer-nav-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
    .footer{padding-top:28px}
    .footer-action-card{padding:28px 24px;border-radius:22px}
    .footer-action-buttons{width:100%;align-items:flex-start;flex-direction:column}
    .footer-main{gap:38px;padding:46px 0 34px}
    .footer-nav-grid{grid-template-columns:1fr}
    .footer-nav-card{min-height:0}
    .footer-more-links{align-items:flex-start;flex-wrap:wrap}
    .footer-more-links span{width:100%;margin:0}
    .store-badges{flex-wrap:wrap}
    .footer-closing{align-items:flex-start}
    .legal{justify-content:flex-start}
}
.logo img {
    display:block;
    max-width:160px;
    max-height:48px;
    object-fit:contain
}
.portal-side .logo img {
    max-width:175px;
    max-height:55px
}
.settings-tabs {
    gap:8px
}
.settings-tabs .nav-link {
    border-radius:99px;
    color:var(--ink);
    font-weight:700;
    background:#fff;
    border:1px solid var(--line)
}
.settings-tabs .nav-link.active {
    background:var(--aqua);
    border-color:var(--aqua)
}
.settings-form {
    max-width:1050px
}
.settings-form label {
    display:block;
    font-weight:700;
    margin-bottom:6px
}
.settings-form .form-control,.settings-form .form-select {
    min-height:44px;
    border-radius:10px
}
.branding-upload-card{height:100%;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fbfcfc}
.branding-upload-card>small{display:block;margin-top:6px;font-size:.78rem}
.branding-current-file{display:flex;align-items:center;gap:10px;margin-top:13px;padding-top:13px;border-top:1px solid var(--line)}
.branding-current-file>div{min-width:0;flex:1}
.branding-current-file b,.branding-current-file small{display:block}
.branding-current-file b{font-size:.84rem}
.branding-current-file small{font-size:.72rem;color:var(--muted)}
.branding-preview{width:46px;height:46px;flex:0 0 46px;display:grid;place-items:center;padding:5px;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff}
.branding-preview img{display:block;width:100%;height:100%;object-fit:contain}
.branding-preview-favicon{width:38px;height:38px;flex-basis:38px;padding:4px}
.asset-remove-button{margin:0!important;cursor:pointer}
.asset-remove-button input{position:absolute;opacity:0;pointer-events:none}
.asset-remove-button span{min-height:34px;padding:6px 10px;display:inline-flex;align-items:center;gap:6px;border:1px solid #f0b6bb;border-radius:9px;color:#d92737;background:#fff;font-size:.76rem;font-weight:800;transition:.2s ease}
.asset-remove-button:hover span{border-color:#d92737;background:#fff4f5}
.asset-remove-button input:checked+span{color:#fff;border-color:#d92737;background:#d92737;box-shadow:0 4px 12px rgba(217,39,55,.2)}
@media(max-width:575.98px){.asset-remove-button span{min-height:32px}}
.settings-form .alert {
    font-size:.86rem
}
.cms-hero {
    height:590px;
    position:relative;
    display:flex;
    align-items:end;
    color:#fff;
    background:#101718
}
.cms-hero>img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:.5
}
.cms-hero:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,#071111c9 0%,transparent 75%)
}
.cms-hero .container {
    position:relative;
    z-index:2;
    padding-bottom:75px
}
.cms-hero span {
    font-weight:800;
    letter-spacing:2px;
    font-size:.78rem;
    color:var(--lime)
}
.cms-hero h1 {
    font-size:clamp(3rem,6vw,5.8rem);
    font-weight:800;
    letter-spacing:-3px;
    max-width:850px;
    line-height:.95;
    margin:14px 0 22px
}
.cms-hero p {
    max-width:700px;
    font-size:1.2rem;
    color:#e1e8e7
}
.cms-body {
    padding:90px 0
}
.cms-intro {
    max-width:820px;
    margin-bottom:55px
}
.cms-intro h2 {
    font-size:3rem;
    font-weight:800;
    letter-spacing:-1px;
    margin:10px 0 20px
}
.cms-intro p {
    font-size:1.15rem;
    line-height:1.8;
    color:var(--muted)
}
.cms-features>div>div {
    height:100%;
    padding:30px;
    border:1px solid var(--line);
    border-radius:20px
}
.cms-features i {
    display:grid;
    place-items:center;
    width:54px;
    height:54px;
    border-radius:14px;
    background:#e8f6dc;
    color:var(--aqua);
    font-size:1.5rem
}
.cms-features h3 {
    font-weight:800;
    margin:22px 0 10px
}
.cms-features p {
    color:var(--muted);
    line-height:1.7
}
.lead-section {
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:70px;
    margin-top:70px;
    background:var(--soft);
    padding:55px;
    border-radius:28px
}
.lead-section h2 {
    font-size:2.7rem;
    font-weight:800
}
.lead-section .form-control {
    padding:.85rem 1rem;
    border-radius:11px
}
.calculator {
    padding:45px
}
.calculator h3 {
    font-size:2rem;
    font-weight:800;
    margin-bottom:25px
}
.calculator label {
    font-weight:700;
    margin-bottom:8px
}
.estimate {
    background:#112021;
    color:#fff;
    border-radius:18px;
    padding:30px;
    margin-top:35px;
    display:flex;
    flex-direction:column
}
.estimate b {
    font-size:3.5rem;
    color:var(--lime)
}
.estimate small {
    color:#aeb9b8
}
.api-docs {
    padding:40px
}
.api-docs>div {
    display:grid;
    grid-template-columns:75px 1.2fr 1fr;
    gap:18px;
    padding:17px 0;
    border-bottom:1px solid var(--line)
}
.api-docs code {
    color:var(--aqua);
    font-weight:800
}
.api-docs span {
    color:var(--muted)
}
.article-card {
    height:100%;
    padding:32px;
    background:var(--soft);
    border-radius:20px
}
.article-card>span {
    font-size:.75rem;
    font-weight:800;
    color:var(--aqua)
}
.article-card h3 {
    font-weight:800;
    margin:20px 0 10px
}
.article-card p {
    color:var(--muted);
    min-height:80px
}
.article-card a {
    color:var(--aqua);
    font-weight:800;
    text-decoration:none
}
@media(max-width:768px) {
    .cms-hero {
        height:500px
    }
    .cms-hero h1 {
        letter-spacing:-2px
    }
    .cms-body {
        padding:60px 0
    }
    .cms-intro h2 {
        font-size:2.3rem
    }
    .lead-section {
        grid-template-columns:1fr;
        padding:30px;
        gap:30px
    }
    .api-docs>div {
        grid-template-columns:70px 1fr
    }
    .api-docs span {
        grid-column:2
    }
    .estimate b {
        font-size:2.7rem
    }
}
