/* TrackPoint 2.0 premium master */
:root{
 --tp2-green:#2b3022;--tp2-green-deep:#202819;--tp2-green-2:#344127;--tp2-ink:#171a16;
 --tp2-muted:#68756f;--tp2-yellow:#ffbd18;--tp2-yellow-2:#eba800;--tp2-cream:#faf8f2;
 --tp2-paper:#fff;--tp2-line:rgba(11,42,34,.11);--tp2-shell:1240px;--tp2-inner:1168px;
 --tp2-radius:16px;--tp2-radius-lg:24px;--tp2-shadow:0 18px 50px rgba(13,43,35,.09);
 --tp2-shadow-strong:0 24px 70px rgba(13,43,35,.15);
}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:#fff}body{margin:0!important;background:#fff!important;color:var(--tp2-ink);font-family:Poppins,Arial,sans-serif;-webkit-font-smoothing:antialiased}.site.grid-container,.site-content,.content-area{max-width:none!important;padding:0!important;margin:0!important}.inside-article{padding:0!important}.tp2-page{width:min(var(--tp2-shell),calc(100% - 40px));max-width:var(--tp2-shell);margin:0 auto;background:var(--tp2-cream);min-height:100vh;overflow:hidden;box-shadow:0 0 54px rgba(14,37,31,.10);border-radius:0}.trackpoint2 h1,.trackpoint2 h2,.trackpoint2 h3{font-family:Bitter,Georgia,'Times New Roman',serif;letter-spacing:-.03em}.screen-reader-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
/* glass navigation */
.tp2-header{position:relative}.tp2-nav{height:82px;display:grid;grid-template-columns:230px 1fr 220px;align-items:center;gap:24px;padding:0 34px;position:absolute;left:0;right:0;top:0;z-index:30;background:linear-gradient(180deg,rgba(7,20,17,.62),rgba(7,20,17,.38));border-bottom:1px solid rgba(255,255,255,.19);backdrop-filter:blur(20px) saturate(145%);-webkit-backdrop-filter:blur(20px) saturate(145%);box-shadow:0 8px 28px rgba(0,0,0,.13)}.tp2-nav.is-solid{position:relative;background:rgba(5,44,35,.96)}.tp2-logo{display:flex;align-items:center;text-decoration:none!important}.tp2-logo img{display:block;width:auto;max-width:205px;max-height:70px;object-fit:contain;filter:drop-shadow(0 2px 10px rgba(0,0,0,.24))}.tp2-menu{display:flex;justify-content:center;align-items:center;gap:30px}.tp2-menu a{color:rgba(255,255,255,.92)!important;text-decoration:none!important;font-weight:650;font-size:14px;position:relative;padding:31px 0 27px;white-space:nowrap}.tp2-menu a:after{content:"";position:absolute;left:50%;right:50%;bottom:19px;height:3px;border-radius:99px;background:var(--tp2-yellow);transition:.2s}.tp2-menu a:hover:after,.tp2-menu a.is-active:after{left:0;right:0}.tp2-account{display:flex;align-items:center;justify-content:flex-end;gap:10px}.tp2-account>a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 15px;border:1px solid rgba(255,255,255,.58);border-radius:10px;color:#fff!important;text-decoration:none!important;font-weight:650;font-size:13px;background:rgba(5,32,26,.18)}.tp2-bell{position:relative;width:42px!important;padding:0!important}.tp2-badge{position:absolute;right:-7px;top:-8px;min-width:18px;height:18px;border-radius:99px;background:var(--tp2-yellow);color:#111;display:grid;place-items:center;font-size:10px;font-weight:900}
/* hero */
.tp2-hero{position:relative;min-height:430px;padding:132px 62px 58px;display:flex;align-items:flex-end;background-image:linear-gradient(90deg,rgba(4,16,13,.88) 0%,rgba(4,16,13,.65) 38%,rgba(4,16,13,.20) 70%,rgba(4,16,13,.10) 100%),linear-gradient(0deg,rgba(3,20,16,.46),transparent 55%),var(--tp2-hero-image,url('../images/hero-bg.png'));background-size:cover;background-position:center 62%;color:#fff}.tp2-hero-copy{position:relative;z-index:2;max-width:700px}.tp2-hero h1{margin:0 0 7px;color:#fff;font-size:60px;line-height:.99;font-weight:800;text-shadow:0 3px 20px rgba(0,0,0,.28)}.tp2-hero h1 strong{color:var(--tp2-yellow);font-weight:inherit}.tp2-hero h2{font-size:22px;color:#fff;margin:0 0 10px}.tp2-hero p{font-size:15.5px;line-height:1.6;color:rgba(255,255,255,.94);max-width:650px;margin:0 0 19px}.tp2-actions{display:flex;flex-wrap:wrap;gap:10px}.tp2-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 20px;border-radius:9px;text-decoration:none!important;font-weight:800;font-size:13px;border:1px solid transparent;transition:.2s ease}.tp2-btn-primary{background:var(--tp2-yellow);color:#111!important;box-shadow:0 8px 22px rgba(255,189,24,.21)}.tp2-btn-primary:hover{background:var(--tp2-yellow-2);transform:translateY(-1px)}.tp2-btn-ghost{background:rgba(4,32,26,.42);border-color:rgba(255,189,24,.78);color:#fff!important;backdrop-filter:blur(10px)}.tp2-infinity{display:flex;align-items:center;gap:9px;margin-top:13px;font-size:12px;font-weight:650;color:#fff}.tp2-infinity span:first-child{font-size:25px;color:var(--tp2-yellow)}
/* home */
.tp2-home{padding-bottom:18px}.tp2-home-inner,.tp2-discovery{width:min(var(--tp2-inner),calc(100% - 36px));margin-left:auto;margin-right:auto}.tp2-discovery{position:relative;z-index:10;margin-top:-28px;background:rgba(255,255,255,.98);border:1px solid rgba(11,42,34,.08);border-radius:21px;padding:16px 18px 17px;box-shadow:var(--tp2-shadow-strong)}.tp2-discovery h2{margin:0 0 10px;font-size:20px;color:#2b3022}.tp2-search-premium{display:grid;grid-template-columns:1.55fr .82fr .72fr 170px;gap:9px}.tp2-search-control{height:48px;border:1px solid rgba(13,50,41,.13);border-radius:10px;background:#fff;display:flex;align-items:center;gap:11px;padding:0 14px;color:#2b3022}.tp2-search-control i{font-size:17px;color:#344127}.tp2-search-control input,.tp2-search-control select{width:100%;height:100%;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;padding:0!important;font:500 12.5px Poppins,sans-serif;color:#5f6857}.tp2-search-control select{appearance:auto}.tp2-search-submit{height:48px;border:0;border-radius:10px;background:var(--tp2-yellow);font:800 13px Poppins,sans-serif;color:#111;display:inline-flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;box-shadow:0 7px 20px rgba(255,189,24,.22)}.tp2-search-submit:hover{background:var(--tp2-yellow-2)}
.tp2-category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:12px}.tp2-category-card{position:relative;min-height:78px;border-radius:13px;overflow:hidden;padding:15px 44px 13px 15px;display:flex;align-items:flex-end;gap:11px;text-decoration:none!important;color:#fff!important;background-size:cover;background-position:center;isolation:isolate;box-shadow:0 7px 22px rgba(13,42,34,.08)}.tp2-category-card:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,24,19,.89),rgba(3,24,19,.47));z-index:-1}.tp2-cat-1{background-image:var(--tp2-membership-image,url('../images/membership.png'));background-position:71% 58%}.tp2-cat-2{background-image:var(--tp2-cta-image,url('../images/cta-bg.png'));background-position:30% 64%}.tp2-cat-3{background-image:var(--tp2-hero-image,url('../images/hero-bg.png'));background-position:10% 70%}.tp2-cat-4{background-image:var(--tp2-cta-image,url('../images/cta-bg.png'));background-position:73% 50%}.tp2-category-icon{font-size:21px;color:var(--tp2-yellow);margin-bottom:2px}.tp2-category-card strong{display:block;font-size:13px;line-height:1.15}.tp2-category-card small{display:block;font-size:9px;line-height:1.35;color:rgba(255,255,255,.78);margin-top:3px}.tp2-card-arrow{position:absolute;right:12px;bottom:13px;width:27px;height:27px;border:1px solid rgba(255,255,255,.68);border-radius:99px;display:grid;place-items:center;font-size:10px}.tp2-category-card:hover{transform:translateY(-2px);box-shadow:0 12px 27px rgba(13,42,34,.14)}
.tp2-inspiration-grid{display:grid;grid-template-columns:1.25fr 1fr 1.15fr;gap:10px;margin-top:10px}.tp2-inspiration-card{min-height:150px;border-radius:15px;overflow:hidden;position:relative;display:flex;align-items:flex-end;text-decoration:none!important;color:#fff!important;background-size:cover;background-position:center;isolation:isolate;box-shadow:0 10px 30px rgba(12,35,29,.10)}.tp2-inspiration-card:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,25,20,.88),rgba(3,25,20,.25)),linear-gradient(0deg,rgba(3,25,20,.55),transparent 65%);z-index:-1}.tp2-insp-sleep{background-image:var(--tp2-membership-image,url('../images/membership.png'));background-position:68% 65%}.tp2-insp-bike{background-image:var(--tp2-hero-image,url('../images/hero-bg.png'));background-position:8% 64%}.tp2-insp-family{background-image:var(--tp2-hero-image,url('../images/hero-bg.png'));background-position:82% 72%}.tp2-inspiration-copy{display:block;padding:18px}.tp2-inspiration-copy strong{font:700 22px/1.05 Bitter,Georgia,serif;display:block}.tp2-inspiration-copy small{display:block;margin-top:7px;font-size:10px;color:rgba(255,255,255,.82)}.tp2-inspiration-copy b{display:inline-flex;align-items:center;gap:7px;margin-top:11px;padding:7px 10px;border-radius:7px;background:var(--tp2-yellow);color:#111;font-size:10px}.tp2-inspiration-card:hover{transform:translateY(-2px)}
.tp2-latest-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.tp2-latest-section{min-width:0}.tp2-home-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 8px}.tp2-home-section-head h2{margin:0;font-size:15px;color:#202819}.tp2-home-section-head a{font-size:9px;font-weight:700;color:#46533a!important;text-decoration:none!important;white-space:nowrap}.tp2-home-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.tp2-home-card{display:block;background:#fff;border:1px solid var(--tp2-line);border-radius:10px;overflow:hidden;text-decoration:none!important;color:inherit!important;box-shadow:0 7px 18px rgba(12,39,31,.05);transition:.2s}.tp2-home-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(12,39,31,.10)}.tp2-home-card img{display:block;width:100%;aspect-ratio:1.55/1;object-fit:cover}.tp2-home-card-copy{display:block;padding:8px}.tp2-home-card-copy strong{display:block;font-size:10.5px;line-height:1.25;color:#202819;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp2-home-card-copy small{display:block;margin-top:4px;color:#7a8172;font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tp2-premium-empty{min-height:112px;border:1px dashed rgba(10,54,43,.18);border-radius:12px;background:linear-gradient(135deg,#fff,#f7f6f0);display:flex;align-items:center;justify-content:center;gap:13px;color:#3c4933}.tp2-premium-empty>i{font-size:26px;color:#a2aa98}.tp2-premium-empty strong{display:block;font-size:12px}.tp2-premium-empty span{display:block;margin-top:3px;font-size:9px;color:#7a8172}
.tp2-how-strip{margin-top:17px;padding:18px 20px;border:1px solid var(--tp2-line);border-radius:15px;background:linear-gradient(105deg,#fff,#f7f8f2);display:grid;grid-template-columns:185px 1fr;align-items:center;gap:20px}.tp2-eyebrow{display:block;font-size:9px;font-weight:850;letter-spacing:.16em;text-transform:uppercase;color:#d69b00;margin-bottom:4px}.tp2-how-strip h2{font-size:25px;margin:0}.tp2-how-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.tp2-how-steps>div{position:relative;text-align:center;padding:0 12px;border-left:1px solid rgba(10,54,43,.10)}.tp2-how-steps b{position:absolute;left:11px;top:-2px;width:20px;height:20px;border-radius:50%;background:var(--tp2-yellow);display:grid;place-items:center;font-size:9px}.tp2-how-steps i{color:var(--tp2-green);font-size:19px;margin-bottom:4px}.tp2-how-steps strong{display:block;font-size:10px}.tp2-how-steps small{display:block;font-size:8px;color:#7b8274;line-height:1.35;margin-top:3px}
.tp2-magazine-premium{margin-top:14px;min-height:170px;padding:28px 28px;border-radius:16px;overflow:hidden;background:linear-gradient(90deg,rgba(4,39,31,.93),rgba(4,39,31,.68) 52%,rgba(4,39,31,.18)),var(--tp2-cta-image,url('../images/cta-bg.png'));background-size:cover;background-position:center 49%;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px;box-shadow:0 12px 30px rgba(9,46,36,.12)}.tp2-magazine-premium .tp2-eyebrow{color:var(--tp2-yellow)}.tp2-magazine-premium h2{font-size:28px;line-height:1.05;color:#fff;margin:0 0 6px}.tp2-magazine-premium p{font-size:10.5px;color:rgba(255,255,255,.82);margin:0}.tp2-magazine-premium .tp2-btn{flex:0 0 auto}
.tp2-bottom-grid{display:grid;grid-template-columns:.86fr 1.14fr;gap:12px;margin-top:14px}.tp2-plus-premium,.tp2-audience-premium{border-radius:15px;overflow:hidden;border:1px solid var(--tp2-line);min-height:208px}.tp2-plus-premium{padding:20px 22px;background:linear-gradient(100deg,rgba(255,215,91,.95),rgba(255,190,24,.84)),var(--tp2-membership-image,url('../images/membership.png'));background-size:cover;background-position:center;color:#202819}.tp2-plus-premium .tp2-eyebrow{color:#46533a}.tp2-plus-premium h2{font-size:23px;line-height:1.05;margin:0 0 10px}.tp2-plus-premium ul{list-style:none;margin:0 0 12px;padding:0;columns:2;column-gap:24px}.tp2-plus-premium li{font-size:9.5px;margin:5px 0;break-inside:avoid}.tp2-plus-premium li:before{content:'✓';font-weight:900;color:var(--tp2-green);margin-right:6px}.tp2-plus-premium a{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border-radius:8px;background:var(--tp2-green);color:#fff!important;text-decoration:none!important;font-size:10px;font-weight:800}.tp2-audience-premium{padding:20px 22px;background:#fff}.tp2-audience-premium .tp2-eyebrow{color:#68725e}.tp2-audience-premium h2{font-size:21px;line-height:1.12;margin:0 0 12px}.tp2-audience-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tp2-audience-list span{display:grid;grid-template-columns:28px 1fr;column-gap:7px;align-items:start}.tp2-audience-list i{grid-row:1/3;font-size:19px;color:var(--tp2-green);margin-top:2px}.tp2-audience-list b{font-size:10px}.tp2-audience-list small{font-size:8px;color:#7a8172}
/* footer */
.tp2-footer{position:relative;margin-top:60px;padding:56px 38px 22px;background:#2b3022;color:#fff}.tp2-footer:before{content:"";position:absolute;left:0;right:0;top:-44px;height:46px;background:linear-gradient(140deg,transparent 0 6%,#2b3022 6% 13%,transparent 13% 16%,#2b3022 16% 24%,transparent 24% 28%,#2b3022 28% 37%,transparent 37% 41%,#2b3022 41% 50%,transparent 50% 55%,#2b3022 55% 66%,transparent 66% 71%,#2b3022 71% 82%,transparent 82% 87%,#2b3022 87% 100%)}.tp2-footer-grid{display:grid;grid-template-columns:1.45fr repeat(4,1fr);gap:30px}.tp2-footer-logo img{max-width:190px;max-height:78px;object-fit:contain}.tp2-footer p{font-size:11px;line-height:1.6;color:rgba(255,255,255,.78)}.tp2-footer h3{font-size:10px;text-transform:uppercase;letter-spacing:.07em;margin:0 0 10px;color:#fff}.tp2-footer a{display:block;color:rgba(255,255,255,.82)!important;text-decoration:none!important;font-size:10px;margin:7px 0}.tp2-footer-quote{font:700 17px/1.28 Bitter,Georgia,serif;color:#fff;margin-top:16px}.tp2-footer-bottom{border-top:1px solid rgba(255,255,255,.13);margin-top:24px;padding-top:14px;display:flex;justify-content:space-between;gap:20px;font-size:9px;color:rgba(255,255,255,.62)}
/* bridge old templates into master */
.tp-archive-wrapper,.tp-dashboard-page,.tp-auth-page,.tp-page-shell,.tp-single-page,.tp-blog-page{max-width:var(--tp2-inner)!important;margin:24px auto!important}.tp-section-container{max-width:var(--tp2-inner)!important}.tp-dashboard-card,.tp-settings-card,.tp-subscription-card,.tp-notifications-panel,.tp-form-card{border-radius:16px!important;border-color:var(--tp2-line)!important;box-shadow:0 8px 24px rgba(12,40,32,.06)!important}.tp-dashboard-sidebar{border-radius:16px!important;background:#fff!important}.tp-dashboard-sidebar a.is-active,.tp-dashboard-sidebar .active{background:#eaf2ed!important;color:var(--tp2-green)!important}.tp-btn-yellow,.directorist-btn-primary,.atbdp_login_btn{background:var(--tp2-yellow)!important;color:#111!important;border-color:var(--tp2-yellow)!important;border-radius:9px!important}.directorist-search-form,.directorist-search-contents,.directorist-advanced-filter{border-radius:14px!important}.directorist-listing-single,.directorist-listing-card{border-radius:14px!important;overflow:hidden!important}
@media(max-width:1050px){.tp2-page{width:100%;border-radius:0}.tp2-nav{grid-template-columns:190px 1fr 165px;padding:0 22px}.tp2-logo img{max-width:175px}.tp2-menu{gap:18px}.tp2-menu a{font-size:12px}.tp2-search-premium{grid-template-columns:1.4fr .8fr .7fr 130px}.tp2-category-card small{display:none}.tp2-home-card-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.tp2-menu{display:none}.tp2-nav{grid-template-columns:1fr auto}.tp2-account{grid-column:2}.tp2-hero{min-height:470px;padding:120px 30px 50px}.tp2-hero h1{font-size:48px}.tp2-search-premium{grid-template-columns:1fr 1fr}.tp2-search-keyword,.tp2-search-submit{grid-column:1/-1}.tp2-category-grid{grid-template-columns:1fr 1fr}.tp2-inspiration-grid,.tp2-latest-pair,.tp2-bottom-grid{grid-template-columns:1fr}.tp2-how-strip{grid-template-columns:1fr}.tp2-how-steps{grid-template-columns:1fr 1fr;gap:15px}.tp2-how-steps>div:nth-child(odd){border-left:0}.tp2-magazine-premium{align-items:flex-start;flex-direction:column}.tp2-footer-grid{grid-template-columns:1fr 1fr}.tp2-footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:560px){.tp2-page{width:100%}.tp2-nav{height:70px;padding:0 16px}.tp2-logo img{max-width:155px}.tp2-account .tp2-label{display:none}.tp2-account>a{padding:0 10px}.tp2-hero{min-height:500px;padding:110px 22px 44px;background-position:64% center}.tp2-hero h1{font-size:42px}.tp2-hero h2{font-size:18px}.tp2-home-inner,.tp2-discovery{width:calc(100% - 20px)}.tp2-discovery{margin-top:-20px;padding:13px}.tp2-search-premium{grid-template-columns:1fr}.tp2-search-keyword,.tp2-search-submit{grid-column:auto}.tp2-category-grid{grid-template-columns:1fr 1fr}.tp2-category-card{min-height:90px;padding:12px}.tp2-category-card small,.tp2-card-arrow{display:none}.tp2-inspiration-grid{grid-template-columns:1fr}.tp2-home-card-grid{grid-template-columns:1fr 1fr}.tp2-how-steps{grid-template-columns:1fr 1fr}.tp2-plus-premium ul{columns:1}.tp2-audience-list{grid-template-columns:1fr}.tp2-footer{padding-left:22px;padding-right:22px}.tp2-footer-grid{grid-template-columns:1fr 1fr}.tp2-footer-bottom{flex-direction:column}.tp2-magazine-premium h2{font-size:24px}}

/* TrackPoint 2.0 alpha 6 – brand green alignment */
.tp2-footer{background:linear-gradient(135deg,#2b3022 0%,#202819 100%)!important;border-radius:0!important;}
.tp2-page{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;}
.tp2-footer-bottom{padding-bottom:2px;}


/* ==========================================================================
   TrackPoint 2.0 alpha 7 – lower homepage premium pass
   ========================================================================== */

/* Empty states: don't let staging/no-data states dominate the homepage. */
.tp2-premium-empty{
    min-height:82px;
    padding:14px 18px;
    justify-content:flex-start;
    background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(248,247,241,.9));
}
.tp2-premium-empty>i{font-size:22px}
.tp2-premium-empty strong{font-size:11px}
.tp2-premium-empty span{font-size:8.5px}

/* Magazine: lower panoramic banner, brighter image, less heavy green veil. */
.tp2-magazine-premium{
    margin-top:16px;
    min-height:138px;
    padding:23px 26px;
    border-radius:14px;
    background:
      linear-gradient(90deg,rgba(32,40,25,.92) 0%,rgba(32,40,25,.68) 48%,rgba(32,40,25,.16) 78%,rgba(32,40,25,.06) 100%),
      var(--tp2-cta-image,url('../images/cta-bg.png'));
    background-size:cover;
    background-position:center 52%;
    box-shadow:0 14px 34px rgba(32,40,25,.12);
}
.tp2-magazine-premium h2{font-size:25px;max-width:560px}
.tp2-magazine-premium p{font-size:9.8px}

/* Three balanced cards under Magazine, matching the approved master. */
.tp2-bottom-trio{
    display:grid;
    grid-template-columns:1.05fr .95fr 1.35fr;
    gap:11px;
    margin-top:12px;
    align-items:stretch;
}
.tp2-how-premium,
.tp2-plus-premium,
.tp2-audience-premium{
    min-height:190px;
    border-radius:14px;
    overflow:hidden;
    border:1px solid var(--tp2-line);
    box-shadow:0 8px 24px rgba(32,40,25,.05);
}
.tp2-how-premium{
    padding:18px 18px 16px;
    background:linear-gradient(145deg,#fff,#f7f7f1);
}
.tp2-how-premium h2{font-size:22px;line-height:1;margin:0 0 15px}
.tp2-how-premium-steps{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px 8px;
}
.tp2-how-premium-steps span{
    position:relative;
    min-height:54px;
    padding:7px 6px 5px 35px;
}
.tp2-how-premium-steps b{
    position:absolute;
    left:0;
    top:4px;
    width:23px;height:23px;border-radius:50%;
    background:var(--tp2-yellow);
    display:grid;place-items:center;
    font-size:9px;color:#171a16;
}
.tp2-how-premium-steps i{
    display:block;
    color:var(--tp2-green);
    font-size:15px;
    margin-bottom:2px;
}
.tp2-how-premium-steps strong{display:block;font-size:9.5px;line-height:1.1}
.tp2-how-premium-steps small{display:block;font-size:7.7px;color:#7b8274;margin-top:2px}

.tp2-plus-premium{
    min-height:190px;
    padding:18px 19px;
    position:relative;
    background:
      linear-gradient(102deg,rgba(255,213,75,.97) 0%,rgba(255,195,26,.91) 56%,rgba(255,185,18,.74) 100%),
      var(--tp2-membership-image,url('../images/membership.png'));
    background-size:cover;
    background-position:64% 58%;
}
.tp2-plus-premium:after{
    content:"";
    position:absolute;
    inset:0 0 0 48%;
    pointer-events:none;
    background:linear-gradient(90deg,transparent,rgba(43,48,34,.09));
}
.tp2-plus-premium>*{position:relative;z-index:1}
.tp2-plus-premium h2{font-size:21px;margin-bottom:9px}
.tp2-plus-premium ul{columns:1;margin-bottom:9px}
.tp2-plus-premium li{font-size:8.6px;margin:3.5px 0}
.tp2-plus-premium a{font-size:9px;padding:8px 11px;background:#2b3022}

.tp2-audience-premium{
    min-height:190px;
    padding:18px 20px;
}
.tp2-audience-premium h2{font-size:18px;line-height:1.1;margin-bottom:12px}
.tp2-audience-list{
    grid-template-columns:1fr 1fr;
    gap:9px 12px;
}
.tp2-audience-list span{grid-template-columns:24px 1fr;column-gap:6px}
.tp2-audience-list i{font-size:16px}
.tp2-audience-list b{font-size:9px}
.tp2-audience-list small{font-size:7.5px;line-height:1.25}

/* Footer: bottle green, compact, straight to the bottom, subtle organic skyline. */
.tp2-footer{
    margin-top:46px;
    padding:38px 36px 16px;
    background:linear-gradient(180deg,#2b3022 0%,#202819 100%)!important;
    border-radius:0!important;
}
.tp2-footer:before{
    top:-30px;
    height:31px;
    background:#2b3022;
    clip-path:polygon(
      0 100%,0 76%,4% 76%,7% 45%,10% 68%,14% 35%,18% 70%,22% 50%,
      27% 73%,31% 41%,36% 66%,40% 37%,45% 72%,50% 47%,55% 69%,
      60% 34%,65% 67%,70% 46%,76% 72%,81% 39%,86% 66%,91% 48%,
      96% 70%,100% 52%,100% 100%
    );
}
.tp2-footer-grid{
    grid-template-columns:1.35fr repeat(4,1fr);
    gap:25px;
    align-items:start;
}
.tp2-footer-brand{padding-right:14px}
.tp2-footer-logo img{max-width:158px;max-height:66px}
.tp2-footer-brand p{margin:8px 0 10px}
.tp2-footer p{font-size:9.5px;line-height:1.55}
.tp2-footer h3{font-size:9px;margin-bottom:8px}
.tp2-footer a{font-size:9px;margin:5px 0}
.tp2-footer-social{display:flex;align-items:center;gap:9px;margin-top:10px}
.tp2-footer-social a{
    width:28px;height:28px;border:1px solid rgba(255,255,255,.18);
    border-radius:50%;display:grid;place-items:center!important;
    margin:0!important;font-size:12px!important;
    color:#fff!important;background:rgba(255,255,255,.035);
}
.tp2-footer-social a:hover{background:rgba(255,255,255,.10)}
.tp2-footer-quote{font-size:15px;margin-top:11px}
.tp2-footer-bottom{margin-top:17px;padding-top:11px;padding-bottom:0;font-size:8px}

/* Inspiration cards: more photography, less green veil. */
.tp2-inspiration-card:before{
    background:
      linear-gradient(90deg,rgba(32,40,25,.78),rgba(32,40,25,.08) 76%),
      linear-gradient(0deg,rgba(32,40,25,.42),transparent 64%);
}
.tp2-inspiration-card{min-height:138px}

/* Responsive */
@media(max-width:820px){
    .tp2-bottom-trio{grid-template-columns:1fr}
    .tp2-footer:before{top:-24px;height:25px}
}
@media(max-width:560px){
    .tp2-bottom-trio{grid-template-columns:1fr}
    .tp2-how-premium-steps{grid-template-columns:1fr 1fr}
    .tp2-footer{padding:32px 22px 14px}
    .tp2-footer-grid{grid-template-columns:1fr 1fr}
    .tp2-footer-brand{grid-column:1/-1}
}


/* ==========================================================================
   TrackPoint 2.0 alpha 8 – responsive desktop scale
   Reference viewports: 1366×768 / 1440×900 / 1920×1080 / 2560×1440
   ========================================================================== */

/*
 * The site is intentionally NOT full-width on large monitors.
 * The shell grows gently from ~1120 px on smaller desktop viewports
 * to a maximum of 1240 px on Full HD/QHD.
 */
:root{
    --tp2-shell:clamp(1120px,72vw,1240px);
    --tp2-inner:calc(var(--tp2-shell) - 72px);
}

/* Keep the page centered with a sensible gutter at every desktop width. */
.tp2-page{
    width:min(var(--tp2-shell),calc(100% - clamp(24px,3vw,48px)));
    max-width:1240px;
}

/* Navigation scales subtly instead of jumping between fixed desktop sizes. */
.tp2-nav{
    height:clamp(70px,4.3vw,78px);
    padding-left:clamp(22px,2.6vw,34px);
    padding-right:clamp(22px,2.6vw,34px);
}
.tp2-logo img{
    width:auto;
    max-width:clamp(160px,12vw,188px);
    max-height:clamp(46px,3.7vw,58px);
}
.tp2-menu{
    gap:clamp(16px,1.65vw,26px);
}
.tp2-menu a{
    font-size:clamp(11px,.72vw,13px);
}
.tp2-account>a{
    min-height:clamp(36px,2.4vw,42px);
    padding-left:clamp(11px,1vw,16px);
    padding-right:clamp(11px,1vw,16px);
    font-size:clamp(10.5px,.68vw,12px);
}

/* Hero: large enough to feel premium, but not oversized on ordinary FHD. */
.tp2-hero{
    min-height:clamp(360px,22.4vw,430px);
    padding:
        clamp(112px,7.2vw,132px)
        clamp(34px,3.25vw,62px)
        clamp(38px,3vw,58px);
}
.tp2-hero-copy{
    max-width:clamp(590px,38vw,700px);
}
.tp2-hero h1{
    font-size:clamp(43px,2.9vw,56px);
    line-height:1;
    margin-bottom:clamp(5px,.45vw,8px);
}
.tp2-hero h2{
    font-size:clamp(18px,1.12vw,21px);
    margin-bottom:clamp(7px,.55vw,10px);
}
.tp2-hero p{
    font-size:clamp(13px,.78vw,15px);
    line-height:1.55;
    max-width:620px;
    margin-bottom:clamp(14px,1vw,19px);
}
.tp2-btn{
    min-height:clamp(41px,2.4vw,46px);
    padding-left:clamp(15px,1vw,20px);
    padding-right:clamp(15px,1vw,20px);
    font-size:clamp(11px,.68vw,13px);
}
.tp2-infinity{
    margin-top:clamp(9px,.75vw,13px);
    font-size:clamp(10px,.62vw,12px);
}

/* Discovery/search section follows the same proportional system. */
.tp2-home-inner,
.tp2-discovery{
    width:min(var(--tp2-inner),calc(100% - clamp(24px,2.4vw,36px)));
}
.tp2-discovery{
    margin-top:clamp(-28px,-1.45vw,-20px);
    border-radius:clamp(16px,1.1vw,21px);
    padding:
        clamp(13px,.85vw,16px)
        clamp(14px,.95vw,18px)
        clamp(14px,.9vw,17px);
}
.tp2-discovery h2{
    font-size:clamp(17px,1.05vw,20px);
    margin-bottom:clamp(8px,.52vw,10px);
}
.tp2-search-premium{
    grid-template-columns:minmax(0,1.55fr) minmax(155px,.82fr) minmax(140px,.72fr) clamp(145px,8.8vw,170px);
    gap:clamp(7px,.48vw,9px);
}
/* Keep the homepage form usable after the fluid desktop grid override. */
@media(max-width:820px){
    .tp2-home .tp2-search-premium{grid-template-columns:repeat(2,minmax(0,1fr))}
    .tp2-home .tp2-search-keyword,
    .tp2-home .tp2-search-submit{grid-column:1/-1}
}
@media(max-width:560px){
    .tp2-home .tp2-search-premium{grid-template-columns:minmax(0,1fr)}
    .tp2-home .tp2-search-keyword,
    .tp2-home .tp2-search-submit{grid-column:auto}
}
.tp2-search-control,
.tp2-search-submit{
    height:clamp(43px,2.5vw,48px);
    border-radius:clamp(8px,.55vw,10px);
}
.tp2-search-control{
    padding-left:clamp(11px,.75vw,14px);
    padding-right:clamp(11px,.75vw,14px);
}
.tp2-search-control input,
.tp2-search-control select{
    font-size:clamp(11px,.66vw,12.5px);
}
.tp2-search-submit{
    font-size:clamp(11px,.68vw,13px);
}

/* Avoid over-tall cards on Full HD while retaining hierarchy on QHD. */
.tp2-category-card{
    min-height:clamp(76px,4.7vw,90px);
}
.tp2-inspiration-card{
    min-height:clamp(120px,7.2vw,138px);
}
.tp2-magazine-premium{
    min-height:clamp(124px,7.2vw,138px);
}
.tp2-magazine-premium h2{
    font-size:clamp(21px,1.3vw,25px);
}
.tp2-bottom-trio{
    gap:clamp(9px,.58vw,11px);
}
.tp2-how-premium,
.tp2-plus-premium,
.tp2-audience-premium{
    min-height:clamp(178px,9.9vw,190px);
}

/* Footer text should not enlarge just because the display is QHD. */
.tp2-footer{
    padding:
        clamp(34px,2vw,38px)
        clamp(26px,1.9vw,36px)
        16px;
}
.tp2-footer-grid{
    gap:clamp(18px,1.3vw,25px);
}
.tp2-footer-logo img{
    max-width:clamp(142px,8.2vw,158px);
}
.tp2-footer p{
    font-size:clamp(8.5px,.50vw,9.5px);
}
.tp2-footer h3,
.tp2-footer a{
    font-size:clamp(8.3px,.48vw,9px);
}

/*
 * Compact desktop profile:
 * 1366/1440 px screens get intentionally smaller typography and vertical rhythm.
 * This is the range where "designed on QHD, huge on FHD/laptop" usually shows up.
 */
@media (min-width:821px) and (max-width:1499px){
    :root{
        --tp2-shell:1120px;
        --tp2-inner:1048px;
    }
    .tp2-hero{
        min-height:360px;
        padding-top:112px;
        padding-bottom:38px;
    }
    .tp2-hero h1{font-size:43px}
    .tp2-hero h2{font-size:18px}
    .tp2-hero p{font-size:13px;max-width:570px}
    .tp2-nav{height:70px}
    .tp2-logo img{max-width:160px;max-height:48px}
    .tp2-menu a{font-size:11px}
    .tp2-btn{min-height:41px;font-size:11px}
    .tp2-discovery{margin-top:-22px}
}

/* Full HD profile – deliberately capped rather than scaling to viewport width. */
@media (min-width:1500px) and (max-width:2199px){
    :root{
        --tp2-shell:1240px;
        --tp2-inner:1168px;
    }
    .tp2-hero h1{font-size:54px}
}

/* QHD/ultrawide: add whitespace outside the shell, not larger UI. */
@media (min-width:2200px){
    :root{
        --tp2-shell:1240px;
        --tp2-inner:1168px;
    }
    .tp2-page{max-width:1240px}
    .tp2-hero h1{font-size:56px}
}

/* Existing tablet/mobile rules below 820 px remain authoritative. */


/* ==========================================================================
   TrackPoint 2.0 alpha 9 – FHD typography readability pass
   Keep cards/layout compact; increase only text that became too small.
   ========================================================================== */

/* Search */
.tp2-search-control input,
.tp2-search-control select{
    font-size:13px;
}
.tp2-search-submit{
    font-size:13px;
}

/* Category strip */
.tp2-category-card strong{
    font-size:14px;
}
.tp2-category-card small{
    font-size:11px;
    line-height:1.3;
}

/* Three inspiration cards */
.tp2-inspiration-copy strong{
    font-size:22px;
}
.tp2-inspiration-copy small{
    font-size:12px;
    line-height:1.35;
}
.tp2-inspiration-copy b{
    font-size:11.5px;
}

/* Section headings and empty states */
.tp2-home-section-head h2,
.tp2-home-section-head strong{
    font-size:16px;
}
.tp2-home-section-head a{
    font-size:11px;
}
.tp2-premium-empty strong{
    font-size:13px;
}
.tp2-premium-empty span{
    font-size:11px;
    line-height:1.35;
}

/* Eyebrows everywhere */
.tp2-eyebrow{
    font-size:10.5px;
    letter-spacing:.14em;
}

/* Magazine */
.tp2-magazine-premium h2{
    font-size:25px;
}
.tp2-magazine-premium p{
    font-size:12px;
    line-height:1.4;
}
.tp2-magazine-premium .tp2-btn{
    font-size:12px;
}

/* Jak na to */
.tp2-how-premium h2{
    font-size:23px;
}
.tp2-how-premium-steps b{
    font-size:10px;
}
.tp2-how-premium-steps strong{
    font-size:12px;
}
.tp2-how-premium-steps small{
    font-size:10.5px;
    line-height:1.3;
}

/* Plus */
.tp2-plus-premium h2{
    font-size:22px;
}
.tp2-plus-premium li{
    font-size:11px;
    line-height:1.35;
}
.tp2-plus-premium a{
    font-size:11.5px;
}

/* Pro koho */
.tp2-audience-premium h2{
    font-size:19px;
}
.tp2-audience-list b{
    font-size:11.5px;
}
.tp2-audience-list small{
    font-size:10.5px;
    line-height:1.3;
}

/* Footer */
.tp2-footer p{
    font-size:11px;
}
.tp2-footer h3{
    font-size:10.5px;
}
.tp2-footer a{
    font-size:10.5px;
}
.tp2-footer-quote{
    font-size:16px;
}
.tp2-footer-bottom{
    font-size:9.5px;
}

/* 1366/1440 desktops: preserve readability; do not shrink text below these floors. */
@media (min-width:821px) and (max-width:1499px){
    .tp2-search-control input,
    .tp2-search-control select{font-size:12.5px}
    .tp2-category-card strong{font-size:13px}
    .tp2-category-card small{font-size:10.5px}
    .tp2-inspiration-copy small{font-size:11px}
    .tp2-home-section-head h2,
    .tp2-home-section-head strong{font-size:15px}
    .tp2-home-section-head a{font-size:10.5px}
    .tp2-premium-empty strong{font-size:12.5px}
    .tp2-premium-empty span{font-size:10.5px}
    .tp2-how-premium-steps strong{font-size:11.5px}
    .tp2-how-premium-steps small{font-size:10px}
    .tp2-plus-premium li{font-size:10.5px}
    .tp2-audience-list b{font-size:11px}
    .tp2-audience-list small{font-size:10px}
    .tp2-footer p{font-size:10.5px}
    .tp2-footer h3,
    .tp2-footer a{font-size:10px}
}

/* Full HD and up: hold these sizes steady instead of scaling down. */
@media (min-width:1500px){
    .tp2-category-card small{font-size:11px}
    .tp2-inspiration-copy small{font-size:12px}
    .tp2-premium-empty span{font-size:11px}
    .tp2-how-premium-steps small{font-size:10.5px}
    .tp2-plus-premium li{font-size:11px}
    .tp2-audience-list small{font-size:10.5px}
}


/* ==========================================================================
   TrackPoint 2.0 alpha 10 – footer typography aligned with TrackPoint 1.0
   ========================================================================== */

.tp2-footer-brand p{
    font-size:15px;
    line-height:1.6;
}
.tp2-footer h3{
    font-size:14px;
    line-height:1.2;
}
.tp2-footer a{
    font-size:14px;
    line-height:1.35;
}
.tp2-footer-quote{
    font-size:19px;
    line-height:1.25;
}
.tp2-footer-bottom{
    font-size:13px;
    line-height:1.4;
}
.tp2-footer-social a{
    font-size:18px!important;
}

/* Keep the official-size footer readable on smaller desktop widths too. */
@media (min-width:821px) and (max-width:1499px){
    .tp2-footer-brand p{font-size:14px}
    .tp2-footer h3{font-size:13px}
    .tp2-footer a{font-size:13px}
    .tp2-footer-quote{font-size:18px}
    .tp2-footer-bottom{font-size:12px}
}


/* ==========================================================================
   TrackPoint 2.0 alpha 11 – footer final desktop pass
   ========================================================================== */

.tp2-footer{
    margin-top:50px;
    padding:50px 42px 20px;
    background:linear-gradient(180deg,#2b3022 0%,#202819 100%)!important;
    border-radius:0!important;
}

/* Low organic silhouette instead of a saw-tooth edge. */
.tp2-footer:before{
    top:-32px;
    height:33px;
    background:#2b3022;
    clip-path:polygon(
        0 100%,0 80%,
        3% 80%,6% 56%,9% 73%,13% 43%,17% 72%,
        21% 58%,25% 76%,29% 48%,34% 71%,38% 51%,
        43% 77%,48% 57%,53% 73%,58% 44%,63% 69%,
        68% 55%,73% 75%,78% 47%,83% 70%,88% 54%,
        93% 73%,97% 59%,100% 68%,100% 100%
    );
}

.tp2-footer-grid{
    grid-template-columns:
        minmax(205px,1.45fr)
        minmax(120px,.85fr)
        minmax(120px,.9fr)
        minmax(145px,1fr)
        minmax(185px,1.2fr);
    gap:clamp(24px,2vw,34px);
    align-items:start;
}

.tp2-footer-brand{
    padding-right:20px;
}

.tp2-footer-logo{
    margin:0 0 10px!important;
}

.tp2-footer-logo img{
    width:auto;
    max-width:176px;
    max-height:74px;
    object-fit:contain;
}

/* Logo asset must stay proportional and visible in both compact containers. */
.tp2-logo,.tp2-footer-logo{overflow:visible!important}
.tp2-logo img,.tp2-footer-logo img{display:block!important;width:auto!important;height:auto!important;object-fit:contain!important;object-position:left center!important;clip-path:none!important}

/* Native Places map: keep real filters reachable on tablet/mobile. */
.tp2-map-static-grid--live .tp2-map-filters>h3{margin:0;padding:14px 16px 8px;color:#273124;font-size:12px}
@media(max-width:900px){.tp2-map-static-grid--live .tp2-map-filters{display:block}.tp2-map-static-grid--live .tp2-map-filters{order:2}}

.tp2-footer-brand p{
    margin:8px 0 15px;
    max-width:250px;
    color:rgba(255,255,255,.84);
    font-size:15px;
    line-height:1.55;
    font-weight:600;
}

.tp2-footer h3{
    margin:3px 0 14px;
    color:#fff;
    font-size:13.5px;
    line-height:1.2;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.065em;
}

.tp2-footer a{
    margin:0 0 9px;
    color:rgba(255,255,255,.78)!important;
    font-size:14px;
    line-height:1.35;
    font-weight:500;
    transition:color .18s ease,transform .18s ease;
}

.tp2-footer a:hover{
    color:#ffb800!important;
    transform:translateX(2px);
}

.tp2-footer-social{
    display:flex;
    gap:10px;
    margin-top:14px;
}

.tp2-footer-social a{
    width:36px;
    height:36px;
    margin:0!important;
    border:1px solid rgba(255,255,255,.2);
    border-radius:50%;
    background:rgba(255,255,255,.04);
    color:#fff!important;
    font-size:17px!important;
    display:grid!important;
    place-items:center!important;
    transform:none!important;
}

.tp2-footer-social a:hover{
    background:#ffb800;
    border-color:#ffb800;
    color:#202819!important;
}

.tp2-footer-quote{
    margin-top:20px;
    color:#fff;
    font:700 19px/1.28 Bitter,Georgia,serif;
    letter-spacing:-.015em;
}

.tp2-footer-bottom{
    margin-top:34px;
    padding:16px 0 0;
    border-top:1px solid rgba(255,255,255,.14);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    color:rgba(255,255,255,.62);
    font-size:13px;
    line-height:1.4;
    font-weight:500;
}

/* Smaller desktop keeps the same visual weight without squeezing columns. */
@media (min-width:821px) and (max-width:1499px){
    .tp2-footer{
        padding:44px 32px 18px;
    }
    .tp2-footer-grid{
        grid-template-columns:
            minmax(190px,1.35fr)
            minmax(105px,.8fr)
            minmax(110px,.85fr)
            minmax(135px,1fr)
            minmax(165px,1.15fr);
        gap:20px;
    }
    .tp2-footer-logo img{max-width:165px}
    .tp2-footer-brand p{font-size:14px}
    .tp2-footer h3{font-size:13px}
    .tp2-footer a{font-size:13px}
    .tp2-footer-quote{font-size:18px}
    .tp2-footer-bottom{font-size:12px}
}

/* Tablet/mobile footer */
@media (max-width:820px){
    .tp2-footer{
        padding:42px 24px 18px;
    }
    .tp2-footer-grid{
        grid-template-columns:1fr 1fr;
        gap:28px 22px;
    }
    .tp2-footer-brand{
        grid-column:1/-1;
        padding-right:0;
    }
    .tp2-footer-brand p{
        max-width:340px;
    }
    .tp2-footer-bottom{
        flex-direction:column;
        align-items:flex-start;
        gap:6px;
    }
}

@media (max-width:560px){
    .tp2-footer-grid{
        grid-template-columns:1fr;
        gap:24px;
    }
    .tp2-footer-brand{
        grid-column:auto;
    }
    .tp2-footer{
        padding-left:20px;
        padding-right:20px;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 12 – three-block premium pass
   ========================================================================== */

.tp2-bottom-trio{
    grid-template-columns:1.02fr 1.05fr 1.38fr;
    gap:14px;
    margin-top:14px;
    align-items:stretch;
}

.tp2-how-premium,
.tp2-plus-premium,
.tp2-audience-premium{
    position:relative;
    min-height:226px;
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 12px 30px rgba(32,40,25,.075);
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}

.tp2-how-premium:hover,
.tp2-plus-premium:hover,
.tp2-audience-premium:hover{
    transform:translateY(-2px);
    box-shadow:0 17px 38px rgba(32,40,25,.105);
}

/* Shared heading treatment */
.tp2-card-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:18px;
}
.tp2-card-heading>div{
    min-width:0;
}
.tp2-card-heading>i{
    flex:0 0 auto;
    width:38px;
    height:38px;
    border-radius:12px;
    display:grid;
    place-items:center;
    font-size:17px;
    color:#2b3022;
    background:rgba(43,48,34,.075);
}
.tp2-card-heading h2{
    margin:4px 0 0;
}

/* HOW */
.tp2-how-premium{
    padding:22px 21px 20px;
    background:
        radial-gradient(circle at 88% 8%,rgba(255,184,0,.08),transparent 32%),
        linear-gradient(145deg,#fff 0%,#f8f8f3 100%);
    border:1px solid rgba(43,48,34,.12);
}
.tp2-how-premium h2{
    font-size:25px;
    line-height:1.02;
}
.tp2-how-premium-steps{
    position:relative;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px 10px;
}
.tp2-how-premium-steps span{
    position:relative;
    min-height:62px;
    padding:8px 6px 7px 42px;
    border-radius:12px;
    background:rgba(255,255,255,.66);
}
.tp2-how-premium-steps b{
    left:8px;
    top:10px;
    width:25px;
    height:25px;
    font-size:10px;
    box-shadow:0 4px 10px rgba(255,184,0,.22);
}
.tp2-how-premium-steps i{
    font-size:16px;
    margin-bottom:4px;
}
.tp2-how-premium-steps strong{
    font-size:12.5px;
    line-height:1.1;
}
.tp2-how-premium-steps small{
    font-size:10.5px;
    line-height:1.25;
    color:#6f7669;
}

/* PLUS */
.tp2-plus-premium{
    padding:22px 22px 20px;
    border:1px solid rgba(161,118,0,.16);
    background:
        linear-gradient(100deg,rgba(255,211,65,.985) 0%,rgba(255,192,22,.92) 58%,rgba(255,177,0,.72) 100%),
        var(--tp2-membership-image,url('../images/membership.png'));
    background-size:cover;
    background-position:68% 58%;
}
.tp2-plus-premium:before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        radial-gradient(circle at 85% 25%,rgba(255,255,255,.18),transparent 27%),
        linear-gradient(180deg,transparent 52%,rgba(43,48,34,.07));
}
.tp2-plus-premium:after{
    opacity:.55;
}
.tp2-plus-premium>*{
    position:relative;
    z-index:2;
}
.tp2-card-heading-plus>i{
    background:#2b3022;
    color:#ffbf17;
    box-shadow:0 8px 18px rgba(43,48,34,.16);
}
.tp2-plus-premium h2{
    font-size:23px;
    line-height:1.02;
}
.tp2-plus-premium ul{
    margin:0 0 13px;
    padding:0;
}
.tp2-plus-premium li{
    position:relative;
    padding-left:18px;
    margin:6px 0;
    font-size:11.5px;
    line-height:1.3;
}
.tp2-plus-premium li:before{
    content:"✓";
    position:absolute;
    left:0;
    top:0;
    color:#2b3022;
    font-weight:900;
}
.tp2-plus-premium a{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-top:auto;
    padding:9px 13px;
    border-radius:9px;
    font-size:11.5px;
    font-weight:800;
    background:#2b3022;
    color:#fff!important;
    box-shadow:0 7px 16px rgba(43,48,34,.16);
}

/* AUDIENCE */
.tp2-audience-premium{
    padding:22px 22px 20px;
    background:
        radial-gradient(circle at 94% 6%,rgba(43,48,34,.055),transparent 32%),
        #fff;
    border:1px solid rgba(43,48,34,.12);
}
.tp2-audience-premium h2{
    max-width:390px;
    font-size:20px;
    line-height:1.12;
}
.tp2-audience-list{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px 13px;
}
.tp2-audience-list span{
    display:grid;
    grid-template-columns:34px 1fr;
    column-gap:9px;
    align-items:center;
    min-height:49px;
    padding:6px 8px;
    border-radius:11px;
    background:#fafaf6;
}
.tp2-audience-list i{
    grid-row:1/3;
    width:30px;
    height:30px;
    border-radius:9px;
    display:grid;
    place-items:center;
    font-size:15px;
    color:#2b3022;
    background:rgba(43,48,34,.07);
}
.tp2-audience-list b{
    align-self:end;
    font-size:11.5px;
    line-height:1.12;
}
.tp2-audience-list small{
    align-self:start;
    font-size:10px;
    line-height:1.22;
    color:#747b6f;
}

/* Desktop safeguards */
@media (min-width:821px) and (max-width:1499px){
    .tp2-bottom-trio{
        grid-template-columns:1fr 1fr 1.28fr;
        gap:12px;
    }
    .tp2-how-premium,
    .tp2-plus-premium,
    .tp2-audience-premium{
        min-height:220px;
        padding:20px 18px 18px;
    }
    .tp2-card-heading{margin-bottom:15px}
    .tp2-card-heading>i{
        width:34px;height:34px;font-size:15px;
    }
    .tp2-how-premium h2{font-size:23px}
    .tp2-plus-premium h2{font-size:21px}
    .tp2-audience-premium h2{font-size:18px}
    .tp2-how-premium-steps span{padding-left:38px}
    .tp2-audience-list{gap:8px 9px}
    .tp2-audience-list span{grid-template-columns:30px 1fr;padding:5px 6px}
}

/* Tablet/mobile */
@media (max-width:820px){
    .tp2-bottom-trio{
        grid-template-columns:1fr;
        gap:14px;
    }
    .tp2-how-premium,
    .tp2-plus-premium,
    .tp2-audience-premium{
        min-height:auto;
    }
}

@media (max-width:560px){
    .tp2-how-premium-steps,
    .tp2-audience-list{
        grid-template-columns:1fr 1fr;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 13 – "Jak na to?" step layout refinement
   Number left, icon + title inline, supportive text below.
   ========================================================================== */

.tp2-how-premium-steps span{
    display:grid;
    grid-template-columns:26px 16px 1fr;
    grid-template-rows:auto auto;
    column-gap:10px;
    row-gap:3px;
    align-items:start;
    min-height:72px;
    padding:11px 12px 10px 12px;
    background:rgba(255,255,255,.78);
    border:1px solid rgba(43,48,34,.06);
}

.tp2-how-premium-steps b{
    position:static;
    grid-column:1;
    grid-row:1 / span 2;
    width:26px;
    height:26px;
    margin-top:1px;
    box-shadow:0 4px 10px rgba(255,184,0,.22);
}

.tp2-how-premium-steps i{
    grid-column:2;
    grid-row:1;
    margin:2px 0 0;
    font-size:15px;
    line-height:1;
    color:#2b3022;
}

.tp2-how-premium-steps strong{
    grid-column:3;
    grid-row:1;
    margin:0;
    font-size:12.5px;
    line-height:1.15;
}

.tp2-how-premium-steps small{
    grid-column:2 / 4;
    grid-row:2;
    margin:0;
    font-size:10px;
    line-height:1.28;
    color:#6f7669;
}

/* Keep readability on narrower desktop widths */
@media (min-width:821px) and (max-width:1499px){
    .tp2-how-premium-steps span{
        min-height:70px;
        padding:10px 10px 9px 10px;
        column-gap:9px;
    }
    .tp2-how-premium-steps strong{
        font-size:12px;
    }
    .tp2-how-premium-steps small{
        font-size:9.7px;
    }
}

/* Mobile/tablet fallback */
@media (max-width:560px){
    .tp2-how-premium-steps span{
        min-height:76px;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 14 – magazine visual pass
   Keep the same full-width layout, improve image richness and composition.
   ========================================================================== */

.tp2-magazine-premium--visual{
    position:relative;
    overflow:hidden;
    min-height:150px;
    padding:24px 26px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:18px;
    background:
      linear-gradient(90deg,rgba(32,40,25,.90) 0%,rgba(32,40,25,.70) 34%,rgba(32,40,25,.28) 60%,rgba(32,40,25,.07) 100%),
      var(--tp2-hero-image,url('../images/hero-bg.png'));
    background-size:cover;
    background-position:center 54%;
    box-shadow:0 14px 34px rgba(32,40,25,.12);
}
.tp2-magazine-premium--visual:before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
      radial-gradient(circle at 78% 20%,rgba(255,188,0,.16),transparent 26%),
      linear-gradient(180deg,rgba(255,255,255,.02),rgba(0,0,0,.08));
    mix-blend-mode:normal;
}
.tp2-magazine-premium--visual:after{
    content:"";
    position:absolute;
    right:22%;
    bottom:-10px;
    width:260px;
    height:120px;
    pointer-events:none;
    background:radial-gradient(ellipse at center,rgba(255,174,0,.16),transparent 68%);
    filter:blur(8px);
    opacity:.55;
}
.tp2-magazine-premium--visual > *{
    position:relative;
    z-index:2;
}
.tp2-magazine-premium--visual .tp2-magazine-copy{
    max-width:610px;
}
.tp2-magazine-premium--visual h2{
    max-width:540px;
    font-size:26px;
    line-height:1.03;
    margin-bottom:6px;
}
.tp2-magazine-premium--visual p{
    max-width:500px;
    font-size:12px;
    color:rgba(255,255,255,.88);
}
.tp2-magazine-premium--visual .tp2-btn{
    white-space:nowrap;
    align-self:center;
    box-shadow:0 10px 22px rgba(0,0,0,.12);
}

/* keep it rich but slightly tighter on smaller desktop */
@media (min-width:821px) and (max-width:1499px){
    .tp2-magazine-premium--visual{
        min-height:144px;
        padding:22px 22px;
        background-position:center 56%;
    }
    .tp2-magazine-premium--visual h2{
        font-size:24px;
        max-width:510px;
    }
    .tp2-magazine-premium--visual p{
        font-size:11px;
        max-width:460px;
    }
    .tp2-magazine-premium--visual:after{
        width:220px;
        height:105px;
        right:18%;
    }
}

@media (max-width:820px){
    .tp2-magazine-premium--visual{
        grid-template-columns:1fr;
        align-items:flex-start;
        gap:14px;
        min-height:165px;
        background-position:center center;
    }
    .tp2-magazine-premium--visual .tp2-btn{
        justify-self:flex-start;
    }
}

@media (max-width:560px){
    .tp2-magazine-premium--visual{
        min-height:176px;
        padding:20px 18px;
    }
    .tp2-magazine-premium--visual h2{
        font-size:22px;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 15 – magazine modifier activation fix
   ========================================================================== */

.tp2-magazine-premium.tp2-magazine-premium--visual{
    background-image:
      linear-gradient(90deg,
        rgba(32,40,25,.94) 0%,
        rgba(32,40,25,.78) 30%,
        rgba(32,40,25,.36) 54%,
        rgba(32,40,25,.10) 78%,
        rgba(32,40,25,.04) 100%
      ),
      var(--tp2-hero-image,url('../images/hero-bg.png')) !important;
    background-size:cover!important;
    background-position:center 58%!important;
    min-height:152px;
}

.tp2-magazine-premium.tp2-magazine-premium--visual > div{
    max-width:600px;
}

.tp2-magazine-premium.tp2-magazine-premium--visual h2{
    max-width:560px;
}

@media (min-width:821px) and (max-width:1499px){
    .tp2-magazine-premium.tp2-magazine-premium--visual{
        background-position:center 60%!important;
        min-height:146px;
    }
}

@media (max-width:820px){
    .tp2-magazine-premium.tp2-magazine-premium--visual{
        background-position:58% center!important;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 16 – latest spots + itineraries premium pass
   ========================================================================== */

.tp2-latest-pair{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
    margin-top:18px;
    align-items:start;
}

.tp2-latest-section{
    min-width:0;
}

.tp2-home-section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:0 0 10px;
    padding:0 2px;
}

.tp2-home-section-head h2{
    margin:0;
    color:#202819;
    font:700 17px/1.2 Bitter,Georgia,serif;
    letter-spacing:-.018em;
}

.tp2-home-section-head a{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#46533a!important;
    font-size:11.5px;
    line-height:1.2;
    font-weight:700;
    text-decoration:none!important;
    white-space:nowrap;
}

.tp2-home-section-head a:hover{
    color:#202819!important;
}

.tp2-home-card-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
}

.tp2-home-card{
    display:block;
    min-width:0;
    overflow:hidden;
    border:1px solid rgba(43,48,34,.11);
    border-radius:12px;
    background:#fff;
    color:inherit!important;
    text-decoration:none!important;
    box-shadow:0 7px 18px rgba(32,40,25,.055);
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}

.tp2-home-card:hover{
    transform:translateY(-2px);
    border-color:rgba(43,48,34,.19);
    box-shadow:0 13px 27px rgba(32,40,25,.10);
}

.tp2-home-card-media{
    position:relative;
    display:block;
    overflow:hidden;
    background:#ebece5;
}

.tp2-home-card-media:after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(180deg,transparent 52%,rgba(32,40,25,.26));
}

.tp2-home-card img{
    display:block;
    width:100%;
    aspect-ratio:1.72/1;
    object-fit:cover;
    transition:transform .25s ease;
}

.tp2-home-card:hover img{
    transform:scale(1.025);
}

.tp2-home-card-type{
    position:absolute;
    left:7px;
    bottom:7px;
    z-index:2;
    display:inline-flex;
    align-items:center;
    gap:4px;
    min-height:21px;
    padding:3px 7px;
    border:1px solid rgba(255,255,255,.24);
    border-radius:999px;
    background:rgba(32,40,25,.78);
    backdrop-filter:blur(7px);
    -webkit-backdrop-filter:blur(7px);
    color:#fff;
    font-size:8px;
    line-height:1;
    font-weight:700;
}

.tp2-home-card-type i{
    color:#ffb800;
    font-size:8px;
}

.tp2-home-card-copy{
    display:block;
    padding:8px 8px 9px;
}

.tp2-home-card-copy strong{
    display:block;
    overflow:hidden;
    color:#202819;
    font-size:12px;
    line-height:1.22;
    font-weight:800;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.tp2-home-card-copy small{
    display:block;
    overflow:hidden;
    margin-top:5px;
    color:#747b6f;
    font-size:9.5px;
    line-height:1.25;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.tp2-home-card-copy small i{
    margin-right:2px;
    color:#6b7660;
}

/* Empty-state should stay quiet and compact on staging / new installs. */
.tp2-premium-empty{
    min-height:88px;
    padding:15px 18px;
    border:1px dashed rgba(43,48,34,.18);
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:13px;
    background:
        radial-gradient(circle at 92% 15%,rgba(255,184,0,.05),transparent 28%),
        linear-gradient(135deg,#fff,#f8f7f1);
    color:#3c4933;
}

.tp2-premium-empty>i{
    flex:0 0 auto;
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:rgba(43,48,34,.06);
    color:#929b89;
    font-size:17px;
}

.tp2-premium-empty strong{
    display:block;
    font-size:12.5px;
    line-height:1.2;
}

.tp2-premium-empty span{
    display:block;
    margin-top:4px;
    color:#7a8172;
    font-size:10.5px;
    line-height:1.3;
}

/* Keep four compact cards on desktop; only collapse when space genuinely runs out. */
@media (min-width:1051px) and (max-width:1499px){
    .tp2-latest-pair{gap:14px}
    .tp2-home-card-grid{gap:7px}
    .tp2-home-section-head h2{font-size:16px}
    .tp2-home-section-head a{font-size:10.5px}
    .tp2-home-card-copy strong{font-size:11.5px}
    .tp2-home-card-copy small{font-size:9px}
}

@media (max-width:1050px){
    .tp2-home-card-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media (max-width:820px){
    .tp2-latest-pair{
        grid-template-columns:1fr;
        gap:20px;
    }
    .tp2-home-card-grid{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
}

@media (max-width:620px){
    .tp2-home-card-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 17 – inspiration cards premium pass
   ========================================================================== */

.tp2-inspiration-grid{
    display:grid;
    grid-template-columns:1.12fr 1.05fr 1.05fr;
    gap:12px;
    margin-top:10px;
}

.tp2-inspiration-card{
    position:relative;
    min-height:154px;
    border-radius:15px;
    overflow:hidden;
    isolation:isolate;
    color:#fff!important;
    text-decoration:none!important;
    background-size:cover;
    background-position:center;
    box-shadow:0 10px 24px rgba(32,40,25,.09);
    transition:transform .2s ease,box-shadow .2s ease;
}

.tp2-inspiration-card:hover{
    transform:translateY(-2px);
    box-shadow:0 16px 34px rgba(32,40,25,.14);
}

.tp2-inspiration-card:before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    background:
        linear-gradient(90deg,
            rgba(25,32,21,.84) 0%,
            rgba(25,32,21,.66) 34%,
            rgba(25,32,21,.24) 66%,
            rgba(25,32,21,.08) 100%
        ),
        linear-gradient(0deg,rgba(20,26,17,.30),transparent 55%);
}

.tp2-inspiration-card:after{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
    border-radius:inherit;
}

.tp2-inspiration-card .tp2-inspiration-copy{
    position:relative;
    z-index:2;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    min-height:154px;
    padding:17px 18px 16px;
    max-width:72%;
}

.tp2-inspiration-card .tp2-inspiration-copy strong{
    display:block;
    margin:0 0 5px;
    color:#fff;
    font:700 23px/1.02 Bitter,Georgia,serif;
    letter-spacing:-.02em;
    text-shadow:0 2px 10px rgba(0,0,0,.16);
}

.tp2-inspiration-card .tp2-inspiration-copy small{
    display:block;
    margin:0 0 12px;
    color:rgba(255,255,255,.86);
    font-size:11.5px;
    line-height:1.34;
    font-weight:500;
}

.tp2-inspiration-card .tp2-inspiration-copy b{
    display:inline-flex;
    align-items:center;
    align-self:flex-start;
    gap:7px;
    min-height:34px;
    padding:8px 11px;
    border-radius:9px;
    background:#ffb800;
    color:#202819;
    font-size:11px;
    line-height:1;
    font-weight:800;
    box-shadow:0 7px 16px rgba(0,0,0,.12);
}

.tp2-inspiration-card .tp2-inspiration-copy b i{
    font-size:10px;
}

/* Individual composition so the cards do not look cloned. */
.tp2-inspiration-card--camp{
    background-position:58% 58%;
}
.tp2-inspiration-card--camp:before{
    background:
        linear-gradient(90deg,rgba(25,32,21,.86) 0%,rgba(25,32,21,.62) 38%,rgba(25,32,21,.12) 76%),
        linear-gradient(0deg,rgba(20,26,17,.30),transparent 58%);
}

.tp2-inspiration-card--bike{
    background-position:center 54%;
}
.tp2-inspiration-card--bike:before{
    background:
        linear-gradient(90deg,rgba(25,32,21,.80) 0%,rgba(25,32,21,.56) 38%,rgba(25,32,21,.08) 76%),
        linear-gradient(0deg,rgba(20,26,17,.26),transparent 58%);
}

.tp2-inspiration-card--family{
    background-position:68% 56%;
}
.tp2-inspiration-card--family:before{
    background:
        linear-gradient(90deg,rgba(25,32,21,.82) 0%,rgba(25,32,21,.60) 36%,rgba(25,32,21,.10) 74%),
        linear-gradient(0deg,rgba(20,26,17,.28),transparent 58%);
}

/* Slightly distinct visual accents */
.tp2-inspiration-card--bike .tp2-inspiration-copy b{
    background:#ffbf17;
}
.tp2-inspiration-card--family .tp2-inspiration-copy b{
    background:#ffc321;
}

/* Smaller desktop */
@media (min-width:821px) and (max-width:1499px){
    .tp2-inspiration-grid{
        gap:10px;
    }
    .tp2-inspiration-card{
        min-height:144px;
    }
    .tp2-inspiration-card .tp2-inspiration-copy{
        min-height:144px;
        padding:15px 16px 14px;
        max-width:74%;
    }
    .tp2-inspiration-card .tp2-inspiration-copy strong{
        font-size:21px;
    }
    .tp2-inspiration-card .tp2-inspiration-copy small{
        font-size:10.8px;
        margin-bottom:10px;
    }
    .tp2-inspiration-card .tp2-inspiration-copy b{
        min-height:32px;
        padding:7px 10px;
        font-size:10.5px;
    }
}

/* Tablet/mobile */
@media (max-width:820px){
    .tp2-inspiration-grid{
        grid-template-columns:1fr;
        gap:12px;
    }
    .tp2-inspiration-card{
        min-height:160px;
    }
    .tp2-inspiration-card .tp2-inspiration-copy{
        min-height:160px;
        max-width:70%;
    }
}

@media (max-width:560px){
    .tp2-inspiration-card .tp2-inspiration-copy{
        max-width:86%;
        padding:16px;
    }
    .tp2-inspiration-card .tp2-inspiration-copy strong{
        font-size:21px;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 18 – map category grid premium pass
   ========================================================================== */

.tp2-category-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-top:12px;
}

.tp2-category-card{
    position:relative;
    min-height:92px;
    padding:15px 44px 14px 15px;
    display:grid;
    grid-template-columns:30px minmax(0,1fr);
    align-items:end;
    column-gap:10px;
    overflow:hidden;
    isolation:isolate;
    border:1px solid rgba(255,255,255,.10);
    border-radius:14px;
    background-size:cover;
    background-position:center;
    color:#fff!important;
    text-decoration:none!important;
    box-shadow:0 9px 23px rgba(32,40,25,.09);
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.tp2-category-card:before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background:
        linear-gradient(90deg,
            rgba(24,31,20,.83) 0%,
            rgba(24,31,20,.59) 48%,
            rgba(24,31,20,.17) 82%,
            rgba(24,31,20,.06) 100%
        ),
        linear-gradient(0deg,rgba(18,24,16,.24),transparent 58%);
}

.tp2-category-card:after{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    pointer-events:none;
    border-radius:inherit;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.055);
}

.tp2-category-card:hover{
    transform:translateY(-2px);
    border-color:rgba(255,255,255,.17);
    box-shadow:0 15px 31px rgba(32,40,25,.14);
}

.tp2-category-icon{
    align-self:center;
    width:30px;
    height:30px;
    display:grid;
    place-items:center;
    margin:0;
    border-radius:9px;
    background:rgba(255,184,0,.10);
    color:#ffb800;
    font-size:19px;
    text-shadow:0 2px 10px rgba(0,0,0,.12);
}

.tp2-category-copy{
    min-width:0;
    align-self:center;
}

.tp2-category-card strong{
    display:block;
    margin:0;
    overflow:hidden;
    color:#fff;
    font-size:14px;
    line-height:1.13;
    font-weight:800;
    text-overflow:ellipsis;
    white-space:nowrap;
    text-shadow:0 2px 9px rgba(0,0,0,.18);
}

.tp2-category-card small{
    display:block;
    margin-top:4px;
    overflow:hidden;
    color:rgba(255,255,255,.82);
    font-size:10.5px;
    line-height:1.28;
    font-weight:500;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.tp2-card-arrow{
    position:absolute;
    right:11px;
    bottom:50%;
    transform:translateY(50%);
    width:29px;
    height:29px;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.58);
    border-radius:50%;
    background:rgba(26,33,23,.28);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
    color:#fff;
    font-size:10px;
    transition:background .18s ease,border-color .18s ease,transform .18s ease;
}

.tp2-category-card:hover .tp2-card-arrow{
    transform:translateY(50%) translateX(2px);
    background:#ffb800;
    border-color:#ffb800;
    color:#202819;
}

/* Different crops and subtle overlays make each card feel intentional. */
.tp2-cat-1{
    background-image:var(--tp2-membership-image,url('../images/membership.png'));
    background-position:69% 58%;
}
.tp2-cat-2{
    background-image:var(--tp2-cta-image,url('../images/cta-bg.png'));
    background-position:31% 61%;
}
.tp2-cat-3{
    background-image:var(--tp2-hero-image,url('../images/hero-bg.png'));
    background-position:10% 69%;
}
.tp2-cat-4{
    background-image:var(--tp2-hero-image,url('../images/hero-bg.png'));
    background-position:76% 62%;
}

.tp2-cat-2:before{
    background:
        linear-gradient(90deg,rgba(24,31,20,.82) 0%,rgba(24,31,20,.55) 48%,rgba(24,31,20,.12) 84%),
        linear-gradient(0deg,rgba(18,24,16,.22),transparent 60%);
}
.tp2-cat-4:before{
    background:
        linear-gradient(90deg,rgba(24,31,20,.80) 0%,rgba(24,31,20,.53) 46%,rgba(24,31,20,.10) 82%),
        linear-gradient(0deg,rgba(18,24,16,.20),transparent 60%);
}

/* Smaller desktop */
@media (min-width:821px) and (max-width:1499px){
    .tp2-category-grid{gap:8px}
    .tp2-category-card{
        min-height:86px;
        padding:13px 40px 12px 13px;
        grid-template-columns:27px minmax(0,1fr);
        column-gap:8px;
    }
    .tp2-category-icon{
        width:27px;
        height:27px;
        font-size:17px;
    }
    .tp2-category-card strong{font-size:13px}
    .tp2-category-card small{font-size:10px}
    .tp2-card-arrow{
        right:9px;
        width:27px;
        height:27px;
    }
}

/* Tablet/mobile */
@media (max-width:820px){
    .tp2-category-grid{
        grid-template-columns:1fr 1fr;
        gap:10px;
    }
    .tp2-category-card{
        min-height:94px;
    }
}

@media (max-width:560px){
    .tp2-category-grid{
        grid-template-columns:1fr 1fr;
        gap:8px;
    }
    .tp2-category-card{
        min-height:90px;
        padding:12px 10px;
        grid-template-columns:26px minmax(0,1fr);
    }
    .tp2-category-icon{
        width:26px;
        height:26px;
        font-size:16px;
    }
    .tp2-category-card strong{
        font-size:12px;
        white-space:normal;
    }
    .tp2-category-card small,
    .tp2-card-arrow{
        display:none;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 19 – hero benefit points row
   ========================================================================== */

/* Legacy single line hidden by new points row */
.tp2-infinity{display:none!important}

.tp2-hero-points{
    display:flex;
    flex-wrap:wrap;
    gap:8px 10px;
    margin-top:14px;
    max-width:1080px;
}

.tp2-hero-point{
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-height:36px;
    padding:8px 12px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:999px;
    background:rgba(6,18,14,.28);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    color:rgba(255,255,255,.95);
    font-size:12px;
    line-height:1.2;
    font-weight:650;
    box-shadow:0 8px 22px rgba(0,0,0,.08);
}

.tp2-hero-point i{
    flex:0 0 auto;
    color:#ffb800;
    font-size:13px;
}

.tp2-hero-point--highlight{
    border-color:rgba(255,191,23,.34);
    background:rgba(24,32,21,.38);
    color:#fff;
}

/* Give hero a little more breathing room for the points row */
.tp2-hero{
    min-height:456px;
    padding-bottom:54px;
}

@media (min-width:821px) and (max-width:1499px){
    .tp2-hero{
        min-height:446px;
        padding-bottom:50px;
    }
    .tp2-hero-points{
        gap:8px;
        max-width:920px;
    }
    .tp2-hero-point{
        min-height:34px;
        padding:7px 11px;
        font-size:11px;
    }
    .tp2-hero-point i{
        font-size:12px;
    }
}

@media (max-width:820px){
    .tp2-hero{
        min-height:470px;
        padding-bottom:44px;
    }
    .tp2-hero-points{
        gap:7px;
        max-width:none;
    }
    .tp2-hero-point{
        min-height:34px;
        padding:7px 10px;
        font-size:10.5px;
    }
}

@media (max-width:560px){
    .tp2-hero-point{
        width:100%;
        justify-content:flex-start;
        border-radius:12px;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 20 – keep hero benefit points on one desktop row
   ========================================================================== */

/* Let the benefits use the full hero width while the copy itself stays readable. */
.tp2-hero-copy{
    width:100%;
    max-width:none;
}
.tp2-hero-copy > h1,
.tp2-hero-copy > h2,
.tp2-hero-copy > p,
.tp2-hero-copy > .tp2-actions{
    max-width:700px;
}

/* Desktop: a single continuous row like the approved reference. */
.tp2-hero-points{
    width:max-content;
    max-width:100%;
    flex-wrap:nowrap;
    gap:8px;
    overflow:visible;
}

.tp2-hero-point{
    flex:0 0 auto;
    min-height:34px;
    padding:7px 10px;
    font-size:11px;
    white-space:nowrap;
}

/* Slightly tighter at 1366/1440 so all five still fit. */
@media (min-width:821px) and (max-width:1499px){
    .tp2-hero-points{
        gap:6px;
    }
    .tp2-hero-point{
        min-height:32px;
        padding:6px 8px;
        gap:6px;
        font-size:10px;
    }
    .tp2-hero-point i{
        font-size:11px;
    }
}

/* Only tablet/mobile may wrap. */
@media (max-width:820px){
    .tp2-hero-points{
        width:100%;
        max-width:100%;
        flex-wrap:wrap;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 21 – Directorist map page pass
   ========================================================================== */

.tp2-map-page{
    width:min(var(--tp2-inner),calc(100% - 36px));
    margin:32px auto 0;
    padding-bottom:18px;
}

.tp2-map-intro{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:34px;
    margin-bottom:18px;
    padding:6px 4px 0;
}

.tp2-map-intro>div:first-child{
    max-width:690px;
}

.tp2-map-intro h1{
    margin:4px 0 8px;
    color:#202819;
    font:700 clamp(38px,2.55vw,48px)/1 Bitter,Georgia,serif;
    letter-spacing:-.035em;
}

.tp2-map-intro p{
    margin:0;
    max-width:670px;
    color:#66705f;
    font-size:14px;
    line-height:1.58;
    font-weight:500;
}

.tp2-map-intro-tags{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:7px;
    max-width:390px;
}

.tp2-map-intro-tags span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:31px;
    padding:6px 10px;
    border:1px solid rgba(43,48,34,.11);
    border-radius:999px;
    background:#fff;
    color:#3d4935;
    font-size:10.5px;
    line-height:1;
    font-weight:700;
    box-shadow:0 4px 13px rgba(32,40,25,.04);
}

.tp2-map-intro-tags i{
    color:#ffb800;
    font-size:11px;
}

.tp2-map-directory{
    padding:0;
    border:1px solid rgba(43,48,34,.10);
    border-radius:18px;
    background:#fff;
    box-shadow:0 14px 38px rgba(32,40,25,.07);
    overflow:hidden;
}

.tp2-map-directorist{
    --directorist-color-primary:#ffb800;
    --directorist-color-success:#344127;
    --directorist-color-dark:#202819;
    --directorist-color-body:#56604f;
    min-height:610px;
    padding:18px;
}

/* Remove Directorist's duplicate large archive title – TrackPoint owns the page title. */
.tp2-map-page .directorist-header-bar__left h2,
.tp2-map-page .directorist-header-bar__left h3,
.tp2-map-page .directorist-header-bar__title,
.tp2-map-page .directorist-listings-header__left .directorist-listings-header__title{
    display:none!important;
}

/* Normalize Directorist container widths inside the TrackPoint shell. */
.tp2-map-page #directorist,
.tp2-map-page .directorist-wrapper,
.tp2-map-page .directorist-container,
.tp2-map-page .directorist-container-fluid,
.tp2-map-page .directorist-archive-contents{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
}

/* Search */
.tp2-map-page .directorist-search-form,
.tp2-map-page .directorist-search-contents,
.tp2-map-page .directorist-search-form-box,
.tp2-map-page .directorist-search-form-wrap{
    width:100%!important;
    margin:0 0 18px!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
}

.tp2-map-page .directorist-search-form__box,
.tp2-map-page .directorist-search-form__inner,
.tp2-map-page .directorist-search-form__top,
.tp2-map-page .directorist-search-contents{
    gap:10px!important;
}

.tp2-map-page .directorist-search-field,
.tp2-map-page .directorist-form-group,
.tp2-map-page .directorist-search-field__input,
.tp2-map-page .directorist-search-field__select{
    border-radius:11px!important;
}

.tp2-map-page input[type="text"],
.tp2-map-page input[type="search"],
.tp2-map-page select,
.tp2-map-page .directorist-form-element,
.tp2-map-page .select2-selection{
    min-height:48px!important;
    border:1px solid rgba(43,48,34,.13)!important;
    border-radius:11px!important;
    background:#fff!important;
    color:#4d5848!important;
    box-shadow:none!important;
    font-size:13px!important;
}

.tp2-map-page input[type="text"]:focus,
.tp2-map-page input[type="search"]:focus,
.tp2-map-page select:focus,
.tp2-map-page .directorist-form-element:focus{
    border-color:rgba(255,184,0,.72)!important;
    box-shadow:0 0 0 3px rgba(255,184,0,.09)!important;
}

.tp2-map-page .directorist-search-form button,
.tp2-map-page .directorist-search-form .directorist-btn{
    min-height:48px!important;
    padding:0 20px!important;
    border:0!important;
    border-radius:10px!important;
    background:#ffb800!important;
    color:#171a16!important;
    font-size:12.5px!important;
    font-weight:800!important;
    box-shadow:0 7px 17px rgba(255,184,0,.16)!important;
}

/* Header row with count, view switcher and sorting */
.tp2-map-page .directorist-listings-header,
.tp2-map-page .directorist-header-bar{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:14px!important;
    margin:0 0 16px!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
}

.tp2-map-page .directorist-listings-header__left,
.tp2-map-page .directorist-header-bar__left{
    color:#525c4d!important;
    font-size:12px!important;
    font-weight:600!important;
}

.tp2-map-page .directorist-listings-header__right,
.tp2-map-page .directorist-header-bar__right{
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
}

/* View controls */
.tp2-map-page .directorist-viewas-dropdown,
.tp2-map-page .directorist-viewas-dropdown__contents,
.tp2-map-page .directorist-viewas{
    gap:7px!important;
}

.tp2-map-page .directorist-viewas-dropdown a,
.tp2-map-page .directorist-viewas a,
.tp2-map-page [class*="viewas"] button,
.tp2-map-page [class*="view-as"] button{
    width:38px!important;
    min-width:38px!important;
    height:38px!important;
    min-height:38px!important;
    padding:0!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    border:1px solid rgba(43,48,34,.09)!important;
    border-radius:9px!important;
    background:#f1f1ed!important;
    color:#4a5544!important;
    box-shadow:none!important;
}

.tp2-map-page .directorist-viewas-dropdown a.active,
.tp2-map-page .directorist-viewas a.active,
.tp2-map-page [class*="viewas"] .active,
.tp2-map-page [class*="view-as"] .active{
    background:#ffb800!important;
    border-color:#ffb800!important;
    color:#202819!important;
}

/* Sort */
.tp2-map-page .directorist-dropdown__toggle,
.tp2-map-page .directorist-sortby-dropdown select,
.tp2-map-page .directorist-listing-sort select{
    min-height:38px!important;
    border:1px solid rgba(43,48,34,.09)!important;
    border-radius:9px!important;
    background:#f1f1ed!important;
    color:#4d5748!important;
    font-size:11.5px!important;
    font-weight:650!important;
}

/* Main Directorist archive: filter sidebar + generous result/map area. */
@media (min-width:901px){
    .tp2-map-page .directorist-archive-contents{
        display:grid!important;
        grid-template-columns:minmax(235px,255px) minmax(0,1fr)!important;
        column-gap:20px!important;
        align-items:start!important;
    }

    .tp2-map-page .directorist-archive-contents > .directorist-advanced-filter,
    .tp2-map-page .directorist-archive-adv-filter{
        grid-column:1!important;
        position:sticky!important;
        top:96px!important;
        width:100%!important;
        max-width:255px!important;
        margin:0!important;
    }

    .tp2-map-page .directorist-archive-contents > :not(.directorist-advanced-filter):not(.directorist-archive-adv-filter){
        min-width:0;
    }
}

/* Sidebar filters */
.tp2-map-page .directorist-advanced-filter,
.tp2-map-page .directorist-archive-adv-filter,
.tp2-map-page .directorist-filter-form{
    padding:0!important;
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:14px!important;
    background:#fbfbf7!important;
    box-shadow:none!important;
    overflow:hidden!important;
}

.tp2-map-page .directorist-advanced-filter__basic,
.tp2-map-page .directorist-advanced-filter__advanced{
    padding:17px!important;
}

.tp2-map-page .directorist-advanced-filter h3,
.tp2-map-page .directorist-advanced-filter h4,
.tp2-map-page .directorist-filter-form h3,
.tp2-map-page .directorist-filter-form h4{
    color:#202819!important;
    font-size:15px!important;
    font-weight:800!important;
}

.tp2-map-page .directorist-form-label,
.tp2-map-page .directorist-form-group__label,
.tp2-map-page .directorist-search-field__label,
.tp2-map-page .directorist-filter-widget__label,
.tp2-map-page .directorist-advanced-filter__form__element__label{
    color:#303b2b!important;
    font-size:11.5px!important;
    font-weight:750!important;
}

.tp2-map-page input[type="checkbox"],
.tp2-map-page input[type="radio"]{
    accent-color:#ffb800;
}

/* Listing cards */
.tp2-map-page .directorist-listing-single,
.tp2-map-page .directorist-listing-card{
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:13px!important;
    background:#fff!important;
    overflow:hidden!important;
    box-shadow:0 8px 22px rgba(32,40,25,.055)!important;
}

.tp2-map-page .directorist-listing-single:hover,
.tp2-map-page .directorist-listing-card:hover{
    box-shadow:0 14px 30px rgba(32,40,25,.09)!important;
}

/* Keep any actual map large enough to be useful. */
.tp2-map-page .directorist-map,
.tp2-map-page .directorist-map-wrapper,
.tp2-map-page .directorist-map-view,
.tp2-map-page .directorist-map-container,
.tp2-map-page #directorist-map,
.tp2-map-page [id*="directorist-map"]{
    min-height:590px!important;
    border-radius:14px!important;
    overflow:hidden!important;
}

/* Empty state */
.tp2-map-page .directorist-empty-listing,
.tp2-map-page .directorist-listing-empty,
.tp2-map-page .directorist-not-found,
.tp2-map-page .directorist-empty-message{
    min-height:280px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:32px!important;
    border:1px dashed rgba(43,48,34,.15)!important;
    border-radius:14px!important;
    background:#fbfbf7!important;
    color:#65705f!important;
    font-size:13px!important;
}

/* Directorist stars – TrackPoint yellow, not default orange. */
.tp2-map-page .directorist-review-meta__star,
.tp2-map-page .directorist-star-rating,
.tp2-map-page .atbd_rated_stars,
.tp2-map-page .directorist-rating{
    --directorist-color-warning:#ffb800;
}

/* Tablet/mobile */
@media (max-width:900px){
    .tp2-map-page{
        margin-top:22px;
    }

    .tp2-map-intro{
        align-items:flex-start;
        flex-direction:column;
        gap:14px;
    }

    .tp2-map-intro-tags{
        justify-content:flex-start;
        max-width:none;
    }

    .tp2-map-directory{
        border-radius:15px;
    }

    .tp2-map-directorist{
        min-height:0;
        padding:14px;
    }

    .tp2-map-page .directorist-advanced-filter,
    .tp2-map-page .directorist-archive-adv-filter{
        position:static!important;
        max-width:none!important;
        margin-bottom:15px!important;
    }

    .tp2-map-page .directorist-map,
    .tp2-map-page .directorist-map-wrapper,
    .tp2-map-page .directorist-map-view,
    .tp2-map-page .directorist-map-container,
    .tp2-map-page #directorist-map,
    .tp2-map-page [id*="directorist-map"]{
        min-height:460px!important;
    }
}

@media (max-width:560px){
    .tp2-map-page{
        width:min(100% - 22px,var(--tp2-inner));
    }

    .tp2-map-intro h1{
        font-size:34px;
    }

    .tp2-map-intro p{
        font-size:12.5px;
    }

    .tp2-map-intro-tags span{
        font-size:9.5px;
    }

    .tp2-map-directorist{
        padding:10px;
    }

    .tp2-map-page .directorist-listings-header,
    .tp2-map-page .directorist-header-bar{
        align-items:flex-start!important;
        flex-direction:column!important;
    }

    .tp2-map-page .directorist-map,
    .tp2-map-page .directorist-map-wrapper,
    .tp2-map-page .directorist-map-view,
    .tp2-map-page .directorist-map-container,
    .tp2-map-page #directorist-map,
    .tp2-map-page [id*="directorist-map"]{
        min-height:390px!important;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 22 – forced visual map template
   ========================================================================== */

.tp2-map-page--visual{
    width:min(var(--tp2-inner),calc(100% - 36px));
    margin:0 auto;
    padding:0 0 18px;
}

.tp2-map-hero{
    position:relative;
    min-height:238px;
    margin:0 auto;
    padding:42px 46px 54px;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:28px;
    border-radius:0 0 24px 24px;
    overflow:hidden;
    background:
        linear-gradient(90deg,rgba(22,27,19,.76) 0%,rgba(22,27,19,.54) 34%,rgba(22,27,19,.14) 70%,rgba(22,27,19,.10) 100%),
        var(--tp2-hero-image,url('../images/hero-bg.png')) center/cover no-repeat;
    box-shadow:0 14px 32px rgba(32,40,25,.10);
}

.tp2-map-hero:before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 78% 24%, rgba(255,184,0,.24), transparent 20%),
        linear-gradient(180deg, rgba(255,255,255,.04), transparent 30%);
    pointer-events:none;
}

.tp2-map-hero-copy,
.tp2-map-signs{
    position:relative;
    z-index:2;
}

.tp2-map-hero-copy{
    max-width:640px;
    padding-top:6px;
}

.tp2-map-kicker{
    display:inline-block;
    margin:0 0 12px;
    color:#ffbf17;
    font-size:15px;
    font-weight:800;
    line-height:1;
    text-transform:uppercase;
    letter-spacing:.12em;
}

.tp2-map-hero-copy h1{
    margin:0 0 10px;
    color:#fff;
    font:700 clamp(48px,4.5vw,72px)/.92 Bitter,Georgia,serif;
    letter-spacing:-.045em;
}

.tp2-map-hero-copy h1 strong{
    color:#ffbf17;
    font-weight:700;
}

.tp2-map-hero-copy p{
    margin:0;
    max-width:580px;
    color:rgba(255,255,255,.92);
    font-size:17px;
    line-height:1.42;
    font-weight:500;
    text-shadow:0 2px 10px rgba(0,0,0,.18);
}

.tp2-map-signs{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:8px;
    margin-top:4px;
}

.tp2-map-signs span{
    display:inline-flex;
    align-items:center;
    min-height:38px;
    padding:7px 14px;
    border-radius:0 10px 10px 0;
    background:rgba(27,35,27,.84);
    color:#eef1ec;
    font-size:15px;
    line-height:1;
    font-weight:700;
    letter-spacing:.03em;
    text-transform:uppercase;
    box-shadow:0 6px 16px rgba(0,0,0,.12);
    position:relative;
}

.tp2-map-signs span:before{
    content:"";
    position:absolute;
    left:-14px;
    top:0;
    bottom:0;
    width:14px;
    background:linear-gradient(180deg,#705321,#5f481d);
    clip-path:polygon(0 0,100% 10%,100% 90%,0 100%);
}

/* Shell under hero */
.tp2-map-directory--visual{
    margin-top:-26px;
    padding:0;
    border:1px solid rgba(43,48,34,.10);
    border-radius:22px;
    background:#fdfcf8;
    box-shadow:0 14px 38px rgba(32,40,25,.08);
    overflow:hidden;
    position:relative;
    z-index:4;
}

.tp2-map-directorist{
    min-height:620px;
    padding:18px 18px 22px;
}

/* Remove duplicate page titles from page content and plugin. */
.tp2-map-page .entry-header,
.tp2-map-page .page-header,
.tp2-map-page .wp-block-post-title,
.tp2-map-page .entry-title,
.tp2-map-page .directorist-header-bar__left h2,
.tp2-map-page .directorist-header-bar__left h3,
.tp2-map-page .directorist-header-bar__title,
.tp2-map-page .directorist-listings-header__left .directorist-listings-header__title{
    display:none!important;
}

/* Search should visually dock below hero like in the mockup. */
.tp2-map-page .directorist-search-form,
.tp2-map-page .directorist-search-contents,
.tp2-map-page .directorist-search-form-box,
.tp2-map-page .directorist-search-form-wrap{
    width:100%!important;
    margin:0 0 14px!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
}

.tp2-map-page .directorist-search-form__box,
.tp2-map-page .directorist-search-form__inner,
.tp2-map-page .directorist-search-form__top,
.tp2-map-page .directorist-search-contents{
    gap:10px!important;
}

.tp2-map-page input[type="text"],
.tp2-map-page input[type="search"],
.tp2-map-page select,
.tp2-map-page .directorist-form-element,
.tp2-map-page .select2-selection{
    min-height:52px!important;
    border:1px solid rgba(52,65,39,.13)!important;
    border-radius:11px!important;
    background:#fff!important;
    color:#465240!important;
    font-size:14px!important;
    box-shadow:none!important;
}

.tp2-map-page input[type="text"]:focus,
.tp2-map-page input[type="search"]:focus,
.tp2-map-page select:focus,
.tp2-map-page .directorist-form-element:focus{
    border-color:rgba(255,184,0,.70)!important;
    box-shadow:0 0 0 4px rgba(255,184,0,.08)!important;
}

.tp2-map-page .directorist-search-form button,
.tp2-map-page .directorist-search-form .directorist-btn{
    min-height:52px!important;
    padding:0 24px!important;
    border:0!important;
    border-radius:11px!important;
    background:#ffb800!important;
    color:#1d2119!important;
    font-size:14px!important;
    font-weight:800!important;
    box-shadow:0 8px 18px rgba(255,184,0,.16)!important;
}

/* Count + controls */
.tp2-map-page .directorist-listings-header,
.tp2-map-page .directorist-header-bar{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:14px!important;
    margin:0 0 14px!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
}

.tp2-map-page .directorist-listings-header__left,
.tp2-map-page .directorist-header-bar__left{
    color:#303b2b!important;
    font-size:13px!important;
    font-weight:700!important;
}

.tp2-map-page .directorist-listings-header__right,
.tp2-map-page .directorist-header-bar__right{
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
}

/* View switch */
.tp2-map-page .directorist-viewas-dropdown a,
.tp2-map-page .directorist-viewas a,
.tp2-map-page [class*="viewas"] button,
.tp2-map-page [class*="view-as"] button{
    width:41px!important;
    min-width:41px!important;
    height:41px!important;
    min-height:41px!important;
    padding:0!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:10px!important;
    background:#f0f0ea!important;
    color:#44503f!important;
    box-shadow:none!important;
}

.tp2-map-page .directorist-viewas-dropdown a.active,
.tp2-map-page .directorist-viewas a.active,
.tp2-map-page [class*="viewas"] .active,
.tp2-map-page [class*="view-as"] .active{
    background:#1f4a2f!important;
    border-color:#1f4a2f!important;
    color:#ffbf17!important;
}

.tp2-map-page .directorist-dropdown__toggle,
.tp2-map-page .directorist-sortby-dropdown select,
.tp2-map-page .directorist-listing-sort select{
    min-height:41px!important;
    padding:0 16px!important;
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:10px!important;
    background:#f7f6f1!important;
    color:#303b2b!important;
    font-size:12.5px!important;
    font-weight:700!important;
}

/* Archive layout */
@media (min-width:901px){
    .tp2-map-page .directorist-archive-contents{
        display:grid!important;
        grid-template-columns:minmax(260px,280px) minmax(0,1fr)!important;
        gap:18px!important;
        align-items:start!important;
    }

    .tp2-map-page .directorist-archive-contents > .directorist-advanced-filter,
    .tp2-map-page .directorist-archive-adv-filter,
    .tp2-map-page .directorist-archive-contents > .directorist-search-sidebar,
    .tp2-map-page .directorist-archive-contents > aside{
        grid-column:1!important;
        position:sticky!important;
        top:94px!important;
        margin:0!important;
        width:100%!important;
        max-width:none!important;
    }

    .tp2-map-page .directorist-archive-contents > :not(.directorist-advanced-filter):not(.directorist-archive-adv-filter):not(.directorist-search-sidebar):not(aside){
        min-width:0!important;
    }
}

/* Filter card */
.tp2-map-page .directorist-advanced-filter,
.tp2-map-page .directorist-archive-adv-filter,
.tp2-map-page .directorist-filter-form,
.tp2-map-page .directorist-search-sidebar,
.tp2-map-page .directorist-sidebar{
    padding:0!important;
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:16px!important;
    background:#fbfaf6!important;
    box-shadow:none!important;
    overflow:hidden!important;
}

.tp2-map-page .directorist-advanced-filter__basic,
.tp2-map-page .directorist-advanced-filter__advanced,
.tp2-map-page .directorist-sidebar > *,
.tp2-map-page .directorist-filter-form > *{
    padding:18px!important;
}

.tp2-map-page .directorist-advanced-filter h3,
.tp2-map-page .directorist-advanced-filter h4,
.tp2-map-page .directorist-filter-form h3,
.tp2-map-page .directorist-filter-form h4,
.tp2-map-page .directorist-search-sidebar h3{
    color:#202819!important;
    font-size:15px!important;
    font-weight:800!important;
}

.tp2-map-page .directorist-form-label,
.tp2-map-page .directorist-form-group__label,
.tp2-map-page .directorist-search-field__label,
.tp2-map-page .directorist-filter-widget__label,
.tp2-map-page .directorist-advanced-filter__form__element__label{
    color:#303b2b!important;
    font-size:12px!important;
    font-weight:800!important;
}

.tp2-map-page input[type="checkbox"],
.tp2-map-page input[type="radio"]{
    accent-color:#ffb800;
}

/* Map surface */
.tp2-map-page .directorist-map,
.tp2-map-page .directorist-map-wrapper,
.tp2-map-page .directorist-map-view,
.tp2-map-page .directorist-map-container,
.tp2-map-page #directorist-map,
.tp2-map-page [id*="directorist-map"],
.tp2-map-page .leaflet-container{
    min-height:690px!important;
    border-radius:16px!important;
    overflow:hidden!important;
}

/* Listing cards if list/grid view is used */
.tp2-map-page .directorist-listing-single,
.tp2-map-page .directorist-listing-card{
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:14px!important;
    background:#fff!important;
    overflow:hidden!important;
    box-shadow:0 8px 22px rgba(32,40,25,.055)!important;
}

/* Empty state */
.tp2-map-page .directorist-empty-listing,
.tp2-map-page .directorist-listing-empty,
.tp2-map-page .directorist-not-found,
.tp2-map-page .directorist-empty-message{
    min-height:280px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:32px!important;
    border:1px dashed rgba(43,48,34,.15)!important;
    border-radius:16px!important;
    background:#fbfbf7!important;
    color:#65705f!important;
    font-size:14px!important;
}

@media (max-width:1100px){
    .tp2-map-hero{
        padding:34px 30px 48px;
    }
    .tp2-map-hero-copy h1{
        font-size:56px;
    }
}

@media (max-width:900px){
    .tp2-map-page--visual{
        width:min(var(--tp2-inner),calc(100% - 22px));
    }
    .tp2-map-hero{
        min-height:0;
        padding:30px 20px 42px;
        border-radius:0 0 18px 18px;
        flex-direction:column;
        gap:18px;
    }
    .tp2-map-hero-copy h1{
        font-size:44px;
    }
    .tp2-map-hero-copy p{
        font-size:15px;
    }
    .tp2-map-signs{
        align-items:flex-start;
        flex-direction:row;
        flex-wrap:wrap;
    }
    .tp2-map-signs span{
        border-radius:10px;
    }
    .tp2-map-signs span:before{
        display:none;
    }
    .tp2-map-directory--visual{
        margin-top:-18px;
        border-radius:18px;
    }
    .tp2-map-directorist{
        min-height:0;
        padding:14px;
    }
    .tp2-map-page .directorist-map,
    .tp2-map-page .directorist-map-wrapper,
    .tp2-map-page .directorist-map-view,
    .tp2-map-page .directorist-map-container,
    .tp2-map-page #directorist-map,
    .tp2-map-page [id*="directorist-map"],
    .tp2-map-page .leaflet-container{
        min-height:480px!important;
    }
}

@media (max-width:560px){
    .tp2-map-hero{
        padding:28px 16px 36px;
    }
    .tp2-map-kicker{
        font-size:11px;
    }
    .tp2-map-hero-copy h1{
        font-size:38px;
    }
    .tp2-map-hero-copy p{
        font-size:13px;
    }
    .tp2-map-directorist{
        padding:10px;
    }
    .tp2-map-page .directorist-listings-header,
    .tp2-map-page .directorist-header-bar{
        align-items:flex-start!important;
        flex-direction:column!important;
    }
    .tp2-map-page .directorist-map,
    .tp2-map-page .directorist-map-wrapper,
    .tp2-map-page .directorist-map-view,
    .tp2-map-page .directorist-map-container,
    .tp2-map-page #directorist-map,
    .tp2-map-page [id*="directorist-map"],
    .tp2-map-page .leaflet-container{
        min-height:390px!important;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 23 – Directorist native layout correction
   ========================================================================== */

/* Search is now rendered separately from the archive output. */
.tp2-map-search{
    position:relative;
    z-index:8;
    margin:0;
    padding:18px 18px 14px;
    background:#fdfcf8;
}

.tp2-map-search .directorist-search-form,
.tp2-map-search .directorist-search-contents,
.tp2-map-search .directorist-search-form-box,
.tp2-map-search .directorist-search-form-wrap{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
}

.tp2-map-search .directorist-search-form__box,
.tp2-map-search .directorist-search-form__inner,
.tp2-map-search .directorist-search-form__top,
.tp2-map-search .directorist-search-contents{
    display:grid!important;
    grid-template-columns:minmax(0,1.65fr) minmax(170px,.8fr) minmax(160px,.75fr) 160px!important;
    gap:10px!important;
    align-items:center!important;
}

.tp2-map-search .directorist-search-field,
.tp2-map-search .directorist-form-group{
    width:100%!important;
    min-width:0!important;
    margin:0!important;
}

.tp2-map-search input[type="text"],
.tp2-map-search input[type="search"],
.tp2-map-search select,
.tp2-map-search .directorist-form-element,
.tp2-map-search .select2-selection{
    width:100%!important;
    min-height:52px!important;
    border:1px solid rgba(43,48,34,.13)!important;
    border-radius:11px!important;
    background:#fff!important;
    color:#465240!important;
    font-size:13px!important;
    box-shadow:none!important;
}

.tp2-map-search button,
.tp2-map-search .directorist-btn{
    width:100%!important;
    min-height:52px!important;
    margin:0!important;
    padding:0 20px!important;
    border:0!important;
    border-radius:11px!important;
    background:#ffb800!important;
    color:#1c2118!important;
    font-size:13px!important;
    font-weight:800!important;
    box-shadow:0 8px 18px rgba(255,184,0,.16)!important;
}

/* The results shortcode must not render a second search block. */
.tp2-map-results > .directorist-search-form,
.tp2-map-results .directorist-search-form-wrap,
.tp2-map-results .directorist-search-form-box,
.tp2-map-results .directorist-search-contents{
    display:none!important;
}

/* Archive controls/content */
.tp2-map-results{
    padding:0 18px 22px;
}

.tp2-map-results #directorist,
.tp2-map-results .directorist-wrapper,
.tp2-map-results .directorist-container,
.tp2-map-results .directorist-container-fluid,
.tp2-map-results .directorist-archive-contents{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
}

/*
 * Directorist archive structure is not a two-column CSS grid.
 * Its own archive uses flex children. Restore that structure and assign
 * TrackPoint widths: first/header = full row, second/filter = 270px,
 * last/map/listings = the remaining width.
 */
@media (min-width:901px){
    .tp2-map-results .directorist-archive-contents{
        display:flex!important;
        flex-wrap:wrap!important;
        align-items:flex-start!important;
        gap:18px!important;
        grid-template-columns:none!important;
    }

    .tp2-map-results .directorist-archive-contents > :first-child{
        width:100%!important;
        flex:0 0 100%!important;
        min-width:0!important;
    }

    .tp2-map-results .directorist-archive-contents > :nth-child(2){
        width:270px!important;
        flex:0 0 270px!important;
        min-width:0!important;
        margin:0!important;
    }

    .tp2-map-results .directorist-archive-contents > :last-child{
        width:auto!important;
        flex:1 1 0!important;
        min-width:0!important;
        margin:0!important;
    }

    .tp2-map-results .directorist-archive-adv-filter.directorist-advanced-filter,
    .tp2-map-results .directorist-advanced-filter,
    .tp2-map-results .directorist-filter-form{
        display:block!important;
        width:100%!important;
        max-width:none!important;
        position:sticky!important;
        top:94px!important;
    }
}

/* Header controls remain a clean row above filter/map. */
.tp2-map-results .directorist-listings-header,
.tp2-map-results .directorist-header-bar{
    width:100%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:14px!important;
    margin:0 0 14px!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
}

.tp2-map-results .directorist-header-found-title{
    width:auto!important;
    margin:0!important;
    color:#303b2b!important;
    font-size:13px!important;
    font-weight:700!important;
}

/* Map: hard reset every width constraint that can inherit from Directorist. */
.tp2-map-results .directorist-map,
.tp2-map-results .directorist-map-wrapper,
.tp2-map-results .directorist-map-view,
.tp2-map-results .directorist-map-container,
.tp2-map-results #directorist-map,
.tp2-map-results [id*="directorist-map"],
.tp2-map-results .leaflet-container,
.tp2-map-results [class*="map-view"]{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:690px!important;
    height:690px!important;
    border-radius:16px!important;
    overflow:hidden!important;
}

/* Any wrapper directly surrounding Leaflet must also fill the content column. */
.tp2-map-results .leaflet-container{
    position:relative!important;
}

/* Filter visual */
.tp2-map-results .directorist-advanced-filter,
.tp2-map-results .directorist-archive-adv-filter,
.tp2-map-results .directorist-filter-form{
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:15px!important;
    background:#fbfaf6!important;
    overflow:hidden!important;
    box-shadow:0 8px 22px rgba(32,40,25,.04)!important;
}

.tp2-map-results .directorist-advanced-filter h3,
.tp2-map-results .directorist-advanced-filter h4,
.tp2-map-results .directorist-filter-form h3,
.tp2-map-results .directorist-filter-form h4{
    color:#202819!important;
    font-size:15px!important;
    font-weight:800!important;
}

.tp2-map-results input[type="checkbox"],
.tp2-map-results input[type="radio"]{
    accent-color:#ffb800;
}

/* Make active Map view green/yellow like the mockup, not black. */
.tp2-map-results .directorist-viewas-dropdown a.active,
.tp2-map-results .directorist-viewas a.active,
.tp2-map-results [class*="viewas"] .active,
.tp2-map-results [class*="view-as"] .active{
    background:#1f4a2f!important;
    border-color:#1f4a2f!important;
    color:#ffbf17!important;
}

/* Smaller screens */
@media (max-width:900px){
    .tp2-map-search .directorist-search-form__box,
    .tp2-map-search .directorist-search-form__inner,
    .tp2-map-search .directorist-search-form__top,
    .tp2-map-search .directorist-search-contents{
        grid-template-columns:1fr 1fr!important;
    }

    .tp2-map-results .directorist-archive-contents{
        display:block!important;
    }

    .tp2-map-results .directorist-archive-contents > *{
        width:100%!important;
        max-width:none!important;
        margin-bottom:14px!important;
    }

    .tp2-map-results .directorist-advanced-filter,
    .tp2-map-results .directorist-archive-adv-filter,
    .tp2-map-results .directorist-filter-form{
        position:static!important;
    }

    .tp2-map-results .directorist-map,
    .tp2-map-results .directorist-map-wrapper,
    .tp2-map-results .directorist-map-view,
    .tp2-map-results .directorist-map-container,
    .tp2-map-results #directorist-map,
    .tp2-map-results [id*="directorist-map"],
    .tp2-map-results .leaflet-container,
    .tp2-map-results [class*="map-view"]{
        min-height:480px!important;
        height:480px!important;
    }
}

@media (max-width:560px){
    .tp2-map-search{
        padding:12px 10px 10px;
    }

    .tp2-map-search .directorist-search-form__box,
    .tp2-map-search .directorist-search-form__inner,
    .tp2-map-search .directorist-search-form__top,
    .tp2-map-search .directorist-search-contents{
        grid-template-columns:1fr!important;
    }

    .tp2-map-results{
        padding:0 10px 14px;
    }

    .tp2-map-results .directorist-map,
    .tp2-map-results .directorist-map-wrapper,
    .tp2-map-results .directorist-map-view,
    .tp2-map-results .directorist-map-container,
    .tp2-map-results #directorist-map,
    .tp2-map-results [id*="directorist-map"],
    .tp2-map-results .leaflet-container,
    .tp2-map-results [class*="map-view"]{
        min-height:390px!important;
        height:390px!important;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 25 – Directorist stability reset
   ========================================================================== */

/*
 * IMPORTANT:
 * Do not impose a custom grid/flex structure on Directorist internals here.
 * Directorist owns its runtime layout. We style surfaces only.
 */

.tp2-map-directory--stable{
    margin-top:-26px;
    position:relative;
    z-index:4;
    padding:0;
    border:1px solid rgba(43,48,34,.10);
    border-radius:22px;
    background:#fdfcf8;
    box-shadow:0 14px 38px rgba(32,40,25,.08);
    overflow:hidden;
}

.tp2-map-directorist--native{
    min-height:620px;
    padding:18px;
}

/* Neutralize alpha 21–24 structural experiments. */
.tp2-map-directorist--native .directorist-archive-contents{
    display:block!important;
    grid-template-columns:none!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
}

.tp2-map-directorist--native .directorist-archive-contents > *{
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    flex:none!important;
    grid-column:auto!important;
    position:static!important;
}

.tp2-map-directorist--native .directorist-advanced-filter,
.tp2-map-directorist--native .directorist-archive-adv-filter,
.tp2-map-directorist--native .directorist-filter-form,
.tp2-map-directorist--native .directorist-search-sidebar,
.tp2-map-directorist--native .directorist-sidebar{
    position:static!important;
    width:auto!important;
    max-width:none!important;
}

/* Let Directorist's own responsive rows/columns work again. */
.tp2-map-directorist--native .directorist-row{
    display:flex!important;
    flex-wrap:wrap!important;
}

.tp2-map-directorist--native [class*="directorist-col-"]{
    position:relative!important;
}

/* Map should fill whichever native Directorist column owns it. */
.tp2-map-directorist--native .directorist-map,
.tp2-map-directorist--native .directorist-map-wrapper,
.tp2-map-directorist--native .directorist-map-view,
.tp2-map-directorist--native .directorist-map-container,
.tp2-map-directorist--native #directorist-map,
.tp2-map-directorist--native [id*="directorist-map"],
.tp2-map-directorist--native .leaflet-container{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:690px!important;
    height:690px!important;
    border-radius:16px!important;
    overflow:hidden!important;
}

/* Surface styling only – no JS/DOM manipulation. */
.tp2-map-directorist--native .directorist-search-form,
.tp2-map-directorist--native .directorist-search-contents,
.tp2-map-directorist--native .directorist-search-form-box{
    width:100%!important;
    margin:0 0 16px!important;
}

.tp2-map-directorist--native input[type="text"],
.tp2-map-directorist--native input[type="search"],
.tp2-map-directorist--native select,
.tp2-map-directorist--native .directorist-form-element,
.tp2-map-directorist--native .select2-selection{
    min-height:50px!important;
    border:1px solid rgba(43,48,34,.13)!important;
    border-radius:11px!important;
    background:#fff!important;
    color:#465240!important;
    box-shadow:none!important;
}

.tp2-map-directorist--native .directorist-btn,
.tp2-map-directorist--native button[type="submit"]{
    border-radius:10px!important;
}

.tp2-map-directorist--native .directorist-advanced-filter,
.tp2-map-directorist--native .directorist-archive-adv-filter,
.tp2-map-directorist--native .directorist-filter-form{
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:15px!important;
    background:#fbfaf6!important;
    box-shadow:0 8px 22px rgba(32,40,25,.04)!important;
}

/* Active map/list/grid view uses TrackPoint brand. */
.tp2-map-directorist--native .directorist-viewas-dropdown a.active,
.tp2-map-directorist--native .directorist-viewas a.active,
.tp2-map-directorist--native [class*="viewas"] .active,
.tp2-map-directorist--native [class*="view-as"] .active{
    background:#1f4a2f!important;
    border-color:#1f4a2f!important;
    color:#ffbf17!important;
}

@media (max-width:900px){
    .tp2-map-directory--stable{
        margin-top:-18px;
        border-radius:18px;
    }

    .tp2-map-directorist--native{
        padding:14px;
    }

    .tp2-map-directorist--native .directorist-map,
    .tp2-map-directorist--native .directorist-map-wrapper,
    .tp2-map-directorist--native .directorist-map-view,
    .tp2-map-directorist--native .directorist-map-container,
    .tp2-map-directorist--native #directorist-map,
    .tp2-map-directorist--native [id*="directorist-map"],
    .tp2-map-directorist--native .leaflet-container{
        min-height:480px!important;
        height:480px!important;
    }
}

@media (max-width:560px){
    .tp2-map-directorist--native{
        padding:10px;
    }

    .tp2-map-directorist--native .directorist-map,
    .tp2-map-directorist--native .directorist-map-wrapper,
    .tp2-map-directorist--native .directorist-map-view,
    .tp2-map-directorist--native .directorist-map-container,
    .tp2-map-directorist--native #directorist-map,
    .tp2-map-directorist--native [id*="directorist-map"],
    .tp2-map-directorist--native .leaflet-container{
        min-height:390px!important;
        height:390px!important;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 26 – map design pass
   ========================================================================== */

/* Correct non-home navigation back to TrackPoint bottle green. */
.tp2-nav.is-solid{
    background:rgba(43,48,34,.97)!important;
    border-bottom:1px solid rgba(255,255,255,.08)!important;
    box-shadow:0 8px 24px rgba(32,40,25,.10)!important;
}

/* Map page gets a slightly glassier header because hero is directly below it. */
body.page-template-template-map .tp2-nav.is-solid,
body.page-id-0 .tp2-nav.is-solid{
    background:rgba(43,48,34,.93)!important;
    backdrop-filter:blur(14px)!important;
    -webkit-backdrop-filter:blur(14px)!important;
}

/* Controlled TrackPoint search bar. */
.tp2-map-searchbar{
    position:relative;
    z-index:8;
    margin:-28px 20px 0;
    padding:14px;
    border:1px solid rgba(43,48,34,.10);
    border-radius:17px;
    background:rgba(255,255,255,.98);
    box-shadow:0 12px 28px rgba(32,40,25,.10);
}

.tp2-map-searchform{
    display:grid;
    grid-template-columns:minmax(0,1.6fr) minmax(190px,.82fr) minmax(175px,.74fr) 165px;
    gap:9px;
    align-items:center;
}

.tp2-map-searchfield{
    min-width:0;
    height:50px;
    display:flex;
    align-items:center;
    gap:10px;
    padding:0 14px;
    border:1px solid rgba(43,48,34,.13);
    border-radius:10px;
    background:#fff;
    color:#344127;
}

.tp2-map-searchfield>i{
    flex:0 0 auto;
    font-size:16px;
    color:#344127;
}

.tp2-map-searchfield input,
.tp2-map-searchfield select{
    width:100%;
    min-width:0;
    height:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    outline:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#596353!important;
    font:500 12.5px/1 Poppins,sans-serif!important;
}

.tp2-map-searchfield input::placeholder{
    color:#7b8375;
    opacity:1;
}

.tp2-map-searchbutton{
    height:50px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:0 20px;
    border:0;
    border-radius:10px;
    background:#ffb800;
    color:#171a16;
    font:800 13px/1 Poppins,sans-serif;
    cursor:pointer;
    box-shadow:0 7px 18px rgba(255,184,0,.18);
    transition:transform .18s ease,background .18s ease;
}

.tp2-map-searchbutton:hover{
    transform:translateY(-1px);
    background:#ffc62f;
}

/* Native Directorist keyword search is redundant now. Hide only its search form. */
.tp2-map-directorist--native > .directorist-search-form,
.tp2-map-directorist--native .directorist-search-form-wrap,
.tp2-map-directorist--native .directorist-search-form-box,
.tp2-map-directorist--native .directorist-search-contents{
    display:none!important;
}

/* Move native results up under our search. */
.tp2-map-directory--stable{
    margin-top:10px!important;
    background:#fdfcf8!important;
}

.tp2-map-directorist--native{
    padding:16px 18px 20px!important;
}

/* Cleaner control row. */
.tp2-map-directorist--native .directorist-listings-header,
.tp2-map-directorist--native .directorist-header-bar{
    margin-bottom:14px!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
}

.tp2-map-directorist--native .directorist-header-found-title,
.tp2-map-directorist--native .directorist-listings-header__left{
    color:#4e5949!important;
    font-size:12.5px!important;
    font-weight:650!important;
}

/* Directorist view controls */
.tp2-map-directorist--native .directorist-viewas-dropdown a,
.tp2-map-directorist--native .directorist-viewas a,
.tp2-map-directorist--native [class*="viewas"] button,
.tp2-map-directorist--native [class*="view-as"] button{
    width:40px!important;
    min-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    padding:0!important;
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:9px!important;
    background:#efefe9!important;
    color:#46513f!important;
    box-shadow:none!important;
}

.tp2-map-directorist--native .directorist-viewas-dropdown a.active,
.tp2-map-directorist--native .directorist-viewas a.active,
.tp2-map-directorist--native [class*="viewas"] .active,
.tp2-map-directorist--native [class*="view-as"] .active{
    background:#274f33!important;
    border-color:#274f33!important;
    color:#ffbf17!important;
}

.tp2-map-directorist--native .directorist-dropdown__toggle,
.tp2-map-directorist--native .directorist-sortby-dropdown select,
.tp2-map-directorist--native .directorist-listing-sort select{
    min-height:40px!important;
    padding:0 14px!important;
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:9px!important;
    background:#f7f6f1!important;
    color:#303b2b!important;
    font-size:11.5px!important;
    font-weight:700!important;
}

/* Filter card closer to the mockup. */
.tp2-map-directorist--native .directorist-advanced-filter,
.tp2-map-directorist--native .directorist-archive-adv-filter,
.tp2-map-directorist--native .directorist-filter-form{
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:15px!important;
    background:#fff!important;
    box-shadow:0 10px 25px rgba(32,40,25,.055)!important;
}

.tp2-map-directorist--native .directorist-advanced-filter h3,
.tp2-map-directorist--native .directorist-advanced-filter h4,
.tp2-map-directorist--native .directorist-filter-form h3,
.tp2-map-directorist--native .directorist-filter-form h4{
    color:#202819!important;
    font-family:Bitter,Georgia,serif!important;
    font-weight:700!important;
}

.tp2-map-directorist--native .directorist-form-label,
.tp2-map-directorist--native .directorist-form-group__label,
.tp2-map-directorist--native .directorist-filter-widget__label{
    color:#303b2b!important;
    font-size:11.5px!important;
    font-weight:750!important;
}

/* Map frame */
.tp2-map-directorist--native .leaflet-container,
.tp2-map-directorist--native [id*="directorist-map"]{
    border:1px solid rgba(43,48,34,.08)!important;
    border-radius:14px!important;
    box-shadow:0 8px 22px rgba(32,40,25,.055)!important;
}

/* Empty-state world map looks better with a warm neutral surround. */
.tp2-map-directorist--native [class*="map"]{
    background-color:#ecebe6;
}

@media (max-width:1050px){
    .tp2-map-searchform{
        grid-template-columns:minmax(0,1.5fr) minmax(160px,.8fr) minmax(150px,.72fr) 145px;
    }
}

@media (max-width:820px){
    .tp2-map-searchbar{
        margin:-20px 12px 0;
    }

    .tp2-map-searchform{
        grid-template-columns:1fr 1fr;
    }

    .tp2-map-searchfield--keyword{
        grid-column:1/-1;
    }
}

@media (max-width:560px){
    .tp2-map-searchbar{
        margin:-14px 8px 0;
        padding:10px;
    }

    .tp2-map-searchform{
        grid-template-columns:1fr;
    }

    .tp2-map-searchfield--keyword{
        grid-column:auto;
    }

    .tp2-map-searchbutton{
        width:100%;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 27 – static map design master
   ========================================================================== */

.tp2-map-page--static .tp2-map-searchbar{
    margin-top:-28px;
}

.tp2-map-static-shell{
    margin-top:12px;
    padding:18px 18px 20px;
    border:1px solid rgba(43,48,34,.10);
    border-radius:18px;
    background:#fdfcf8;
    box-shadow:0 14px 38px rgba(32,40,25,.075);
}

.tp2-map-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-bottom:12px;
}

.tp2-map-toolbar>strong{
    color:#344127;
    font-size:13px;
    font-weight:700;
}

.tp2-map-toolbar-actions{
    display:flex;
    align-items:center;
    gap:7px;
}

.tp2-view-btn,
.tp2-sort-btn{
    min-height:40px;
    border:1px solid rgba(43,48,34,.10);
    border-radius:9px;
    background:#efefe9;
    color:#3e4938;
    font-size:11.5px;
    font-weight:700;
    cursor:pointer;
}

.tp2-view-btn{
    width:40px;
    display:inline-grid;
    place-items:center;
}

.tp2-view-btn span{
    display:none;
}

.tp2-view-btn.is-active{
    width:auto;
    padding:0 14px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:#244d32;
    border-color:#244d32;
    color:#ffbf17;
}

.tp2-view-btn.is-active span{
    display:inline;
}

.tp2-sort-btn{
    padding:0 15px;
    background:#f7f6f1;
    display:inline-flex;
    align-items:center;
    gap:12px;
}

.tp2-map-static-grid{
    display:grid;
    grid-template-columns:265px minmax(0,1fr);
    gap:18px;
    align-items:start;
}

.tp2-map-filters{
    overflow:hidden;
    border:1px solid rgba(43,48,34,.10);
    border-radius:15px;
    background:#fff;
    box-shadow:0 8px 22px rgba(32,40,25,.045);
}

.tp2-filter-head{
    min-height:58px;
    padding:0 16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    border-bottom:1px solid rgba(43,48,34,.10);
}

.tp2-filter-head h2{
    margin:0;
    display:flex;
    align-items:center;
    gap:8px;
    color:#202819;
    font:700 19px/1 Bitter,Georgia,serif;
}

.tp2-filter-head h2 i{
    font-size:14px;
    color:#344127;
}

.tp2-filter-head button{
    padding:0;
    border:0;
    background:transparent;
    color:#485442;
    font-size:10px;
    font-weight:700;
}

.tp2-filter-section{
    padding:15px 16px;
    border-bottom:1px solid rgba(43,48,34,.08);
}

.tp2-filter-section h3{
    margin:0 0 11px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:#273124;
    font-size:11.5px;
    font-weight:800;
}

.tp2-filter-section h3 i{
    font-size:9px;
}

.tp2-filter-row{
    display:flex;
    align-items:center;
    gap:7px;
    min-height:27px;
    color:#44503f;
    font-size:10.5px;
    line-height:1.2;
}

.tp2-filter-row input{
    width:17px;
    height:17px;
    margin:0;
    accent-color:#ffb800;
}

.tp2-stars{
    letter-spacing:.06em;
    color:#ff9800;
    white-space:nowrap;
}

.tp2-stars i{
    color:#e3e4df;
    font-style:normal;
}

.tp2-filter-row small{
    margin-left:auto;
    color:#778073;
    font-size:9px;
}

.tp2-filter-row--text>i{
    width:14px;
    text-align:center;
    color:#344127;
    font-size:10px;
}

.tp2-filter-reset{
    width:100%;
    min-height:42px;
    border:0;
    background:#faf9f4;
    color:#3d4937;
    font-size:10px;
    font-weight:700;
}

.tp2-static-map{
    position:relative;
    min-height:690px;
    overflow:hidden;
    border:1px solid rgba(43,48,34,.08);
    border-radius:15px;
    background:#dce8d8 url('../images/map-static.svg') center/cover no-repeat;
    box-shadow:0 8px 22px rgba(32,40,25,.05);
}

.tp2-map-verified{
    position:absolute;
    left:14px;
    top:14px;
    z-index:5;
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:34px;
    padding:0 12px;
    border-radius:9px;
    background:rgba(255,255,255,.94);
    color:#31402f;
    font-size:10px;
    font-weight:700;
    box-shadow:0 7px 18px rgba(32,40,25,.10);
}

.tp2-map-verified i{
    color:#244d32;
}

.tp2-map-controls{
    position:absolute;
    right:14px;
    top:14px;
    z-index:5;
    display:flex;
    flex-direction:column;
    gap:8px;
}

.tp2-map-controls button{
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    border:1px solid rgba(43,48,34,.10);
    border-radius:9px;
    background:rgba(255,255,255,.96);
    color:#2f3a2b;
    box-shadow:0 6px 14px rgba(32,40,25,.08);
}

.tp2-map-pin{
    position:absolute;
    z-index:3;
    width:38px;
    height:38px;
    transform:translate(-50%,-50%);
    display:grid;
    place-items:center;
    border:0;
    border-radius:50% 50% 50% 7px;
    background:#153d2c;
    color:#fff;
    box-shadow:0 7px 16px rgba(32,40,25,.22);
    rotate:-45deg;
    cursor:pointer;
}

.tp2-map-pin i{
    rotate:45deg;
    font-size:13px;
}

.tp2-map-pin.is-featured{
    background:#ffb800;
    color:#202819;
}

.tp2-map-popup{
    position:absolute;
    right:18%;
    top:43%;
    z-index:6;
    width:250px;
    overflow:hidden;
    border-radius:13px;
    background:#fff;
    box-shadow:0 16px 36px rgba(32,40,25,.22);
}

.tp2-map-popup-image{
    height:100px;
    background:
        linear-gradient(180deg,transparent,rgba(22,30,20,.25)),
        var(--tp2-cta-image,url('../images/cta-bg.png')) center/cover no-repeat;
}

.tp2-map-popup-close{
    position:absolute;
    right:8px;
    top:8px;
    width:27px;
    height:27px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:50%;
    background:#fff;
    color:#202819;
}

.tp2-map-popup-badge{
    position:absolute;
    left:8px;
    top:8px;
    display:inline-flex;
    align-items:center;
    gap:5px;
    min-height:24px;
    padding:0 8px;
    border-radius:999px;
    background:#244d32;
    color:#fff;
    font-size:9px;
    font-weight:700;
}

.tp2-map-popup-badge i{
    color:#ffbf17;
}

.tp2-map-popup-body{
    position:relative;
    padding:10px 11px 12px;
}

.tp2-map-popup-body h3{
    margin:0 0 5px;
    color:#202819;
    font:700 14px/1.15 Bitter,Georgia,serif;
}

.tp2-map-popup-rating{
    display:flex;
    gap:4px;
    margin-bottom:7px;
    color:#ff9800;
    font-size:10px;
    font-weight:800;
}

.tp2-map-popup-rating small{
    color:#7b8376;
    font-weight:600;
}

.tp2-map-popup-icons{
    display:flex;
    gap:8px;
    margin-bottom:6px;
    color:#344127;
    font-size:10px;
}

.tp2-map-popup-body p{
    margin:0;
    color:#6c7568;
    font-size:9.5px;
}

.tp2-map-popup-body>button{
    position:absolute;
    right:10px;
    bottom:10px;
    width:31px;
    height:31px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:50%;
    background:#ffb800;
    color:#202819;
}

.tp2-map-scale{
    position:absolute;
    right:14px;
    bottom:12px;
    display:flex;
    align-items:flex-end;
    gap:6px;
    color:#3d4738;
    font-size:9px;
    font-weight:700;
}

.tp2-map-scale span{
    width:75px;
    height:7px;
    border-left:2px solid #31402f;
    border-right:2px solid #31402f;
    border-bottom:2px solid #31402f;
}

@media (max-width:900px){
    .tp2-map-static-grid{
        grid-template-columns:1fr;
    }

    .tp2-map-filters{
        display:none;
    }

    .tp2-static-map{
        min-height:520px;
    }

    .tp2-map-popup{
        right:12%;
    }
}

@media (max-width:560px){
    .tp2-map-toolbar{
        align-items:flex-start;
        flex-direction:column;
    }

    .tp2-map-toolbar-actions{
        width:100%;
        flex-wrap:wrap;
    }

    .tp2-static-map{
        min-height:430px;
    }

    .tp2-map-popup{
        width:220px;
        right:10px;
        top:48%;
    }

    .tp2-map-verified{
        display:none;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 28 – public itineraries listing pass
   ========================================================================== */

.tp-itinerary-page{
    padding-bottom:48px!important;
    background:#f8f7f2!important;
}

/* Listing hero */
.tp2-iti-hero{
    position:relative;
    min-height:270px;
    margin:0 0 0!important;
    padding:0!important;
    overflow:hidden;
    text-align:left!important;
    border:0!important;
    background:
      linear-gradient(90deg,rgba(31,39,25,.93) 0%,rgba(31,39,25,.72) 43%,rgba(31,39,25,.20) 75%,rgba(31,39,25,.08) 100%),
      var(--tp2-hero-image,url('../images/hero-bg.png')) center 61%/cover no-repeat!important;
    color:#fff;
}

.tp2-iti-hero:after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:radial-gradient(circle at 77% 26%,rgba(255,184,0,.18),transparent 25%);
}

.tp2-iti-hero-inner{
    position:relative;
    z-index:2;
    min-height:270px;
    display:flex!important;
    align-items:center;
    justify-content:space-between;
    gap:40px;
    padding-top:30px!important;
    padding-bottom:46px!important;
}

.tp2-iti-hero-copy{
    max-width:650px;
}

.tp2-iti-hero .tp-iti-eyebrow{
    display:block;
    margin:0 0 9px;
    color:#ffbf17!important;
    font-size:11px!important;
    font-weight:850!important;
    line-height:1!important;
    letter-spacing:.15em!important;
    text-transform:uppercase;
}

.tp2-iti-hero h1{
    margin:0 0 12px!important;
    color:#fff!important;
    font:700 clamp(42px,3.45vw,58px)/.98 Bitter,Georgia,serif!important;
    letter-spacing:-.04em!important;
}

.tp2-iti-hero p{
    max-width:610px!important;
    margin:0!important;
    color:rgba(255,255,255,.88)!important;
    font-size:14px!important;
    line-height:1.55!important;
    font-weight:500;
}

.tp2-iti-hero-points{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    min-width:390px;
}

.tp2-iti-hero-points>span{
    min-height:92px;
    padding:13px 12px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    border:1px solid rgba(255,255,255,.18);
    border-radius:13px;
    background:rgba(30,39,25,.38);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

.tp2-iti-hero-points i{
    margin-bottom:7px;
    color:#ffbf17;
    font-size:16px;
}

.tp2-iti-hero-points b{
    color:#fff;
    font-size:14px;
    line-height:1.15;
}

.tp2-iti-hero-points small{
    margin-top:3px;
    color:rgba(255,255,255,.70);
    font-size:9.5px;
}

/* Container under hero */
.tp-itinerary-page>.tp-section-container{
    position:relative;
    z-index:5;
    margin-top:-26px;
}

/* Filters */
.tp-itinerary-page .tp-advanced-filters{
    display:grid!important;
    grid-template-columns:minmax(0,1.45fr) minmax(180px,.78fr) minmax(160px,.68fr) 150px!important;
    gap:9px!important;
    margin:0 0 24px!important;
    padding:14px!important;
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:17px!important;
    background:rgba(255,255,255,.985)!important;
    box-shadow:0 12px 28px rgba(32,40,25,.09)!important;
}

.tp-itinerary-page .filter-group{
    min-width:0!important;
    height:50px!important;
    padding:0 14px!important;
    display:flex!important;
    align-items:center!important;
    border:1px solid rgba(43,48,34,.12)!important;
    border-radius:10px!important;
    background:#fff!important;
}

.tp-itinerary-page .filter-group.search-group i{
    position:static!important;
    transform:none!important;
    flex:0 0 auto;
    margin:0 9px 0 0!important;
    color:#344127!important;
    font-size:15px!important;
}

.tp-itinerary-page .filter-group input,
.tp-itinerary-page .filter-group select{
    width:100%!important;
    height:48px!important;
    min-height:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    color:#586252!important;
    box-shadow:none!important;
    outline:0!important;
    font:500 12px/1 Poppins,sans-serif!important;
}

.tp-itinerary-page .filter-group.search-group input{
    padding-left:0!important;
}

.tp-itinerary-page .tp-advanced-filters .tp-btn-small{
    width:100%!important;
    height:50px!important;
    min-height:50px!important;
    padding:0 16px!important;
    border:0!important;
    border-radius:10px!important;
    background:#ffb800!important;
    color:#171a16!important;
    font-size:12px!important;
    font-weight:800!important;
    box-shadow:0 7px 18px rgba(255,184,0,.17)!important;
}

/* List heading */
.tp2-iti-list-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin:25px 2px 14px;
}

.tp2-iti-list-head .tp2-eyebrow{
    margin-bottom:3px;
}

.tp2-iti-list-head h2{
    margin:0;
    color:#202819;
    font:700 25px/1.05 Bitter,Georgia,serif;
    letter-spacing:-.025em;
}

.tp2-iti-result-count{
    min-height:29px;
    padding:6px 10px;
    display:inline-flex;
    align-items:center;
    border:1px solid rgba(43,48,34,.10);
    border-radius:999px;
    background:#fff;
    color:#66705f;
    font-size:10px;
    font-weight:700;
}

/* Grid */
.tp-itinerary-page .tp-iti-grid{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:14px!important;
    align-items:stretch!important;
}

.tp-itinerary-page .tp-iti-card{
    min-height:100%;
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:15px!important;
    background:#fff!important;
    box-shadow:0 9px 24px rgba(32,40,25,.055)!important;
    overflow:hidden;
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease!important;
}

.tp-itinerary-page .tp-iti-card:hover{
    transform:translateY(-3px)!important;
    border-color:rgba(255,184,0,.30)!important;
    box-shadow:0 16px 34px rgba(32,40,25,.10)!important;
}

/* Image */
.tp-itinerary-page .tp-iti-img{
    height:178px!important;
    background:#ebece5!important;
}

.tp-itinerary-page .tp-iti-img:after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(180deg,transparent 55%,rgba(25,32,21,.22));
}

.tp-itinerary-page .tp-iti-img img{
    transition:transform .28s ease!important;
}

.tp-itinerary-page .tp-iti-card:hover .tp-iti-img img{
    transform:scale(1.025)!important;
}

/* Type badge */
.tp-itinerary-page .tp-iti-badge{
    top:11px!important;
    left:11px!important;
    min-height:27px;
    padding:5px 9px!important;
    border:1px solid rgba(255,255,255,.18)!important;
    border-radius:8px!important;
    background:rgba(32,40,25,.82)!important;
    backdrop-filter:blur(7px);
    -webkit-backdrop-filter:blur(7px);
    color:#fff!important;
    font-size:9px!important;
    line-height:1!important;
    box-shadow:none!important;
}

.tp-itinerary-page .tp-iti-badge i{
    color:#ffbf17;
}

.tp-itinerary-page .tp-iti-card-verified{
    left:11px!important;
    bottom:10px!important;
    top:auto!important;
    min-height:24px;
    padding:4px 8px!important;
    border-radius:999px!important;
    background:rgba(36,77,50,.90)!important;
    color:#fff!important;
    font-size:8.5px!important;
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
}

.tp-itinerary-page .tp-iti-card-verified i{
    color:#ffbf17!important;
}

/* Save button */
.tp-itinerary-page .tp-heart-btn{
    top:11px!important;
    right:11px!important;
    width:34px!important;
    height:34px!important;
    border:1px solid rgba(43,48,34,.10)!important;
    background:rgba(255,255,255,.94)!important;
    color:#566151!important;
    box-shadow:0 6px 14px rgba(0,0,0,.08)!important;
    font-size:13px!important;
}

/* Card body */
.tp-itinerary-page .tp-iti-body{
    padding:15px 15px 13px!important;
}

.tp-itinerary-page .tp-iti-body h3{
    margin:0 0 7px!important;
    color:#202819!important;
    font:700 18px/1.12 Bitter,Georgia,serif!important;
    letter-spacing:-.018em;
}

.tp-itinerary-page .tp-iti-body p{
    margin:0 0 13px!important;
    color:#6d7668!important;
    font-size:10.5px!important;
    line-height:1.45!important;
}

/* Stats */
.tp-itinerary-page .tp-iti-stats{
    display:grid!important;
    grid-template-columns:repeat(3,1fr)!important;
    gap:0!important;
    padding:10px 8px!important;
    border:1px solid rgba(43,48,34,.08)!important;
    border-radius:10px!important;
    background:#f8f8f3!important;
}

.tp-itinerary-page .stat-item{
    display:grid!important;
    grid-template-columns:20px 1fr!important;
    align-items:center!important;
    gap:5px!important;
    padding:0 7px!important;
    text-align:left!important;
    border-left:1px solid rgba(43,48,34,.08);
}

.tp-itinerary-page .stat-item:first-child{
    border-left:0;
}

.tp-itinerary-page .stat-item i{
    margin:0!important;
    color:#344127!important;
    font-size:12px!important;
}

.tp-itinerary-page .st-info{
    display:block!important;
}

.tp-itinerary-page .st-info strong{
    display:block;
    color:#202819!important;
    font-size:10.5px!important;
    line-height:1.15!important;
}

.tp-itinerary-page .st-info span{
    display:block;
    margin-top:2px;
    color:#858d80!important;
    font-size:7.5px!important;
    line-height:1!important;
    text-transform:uppercase!important;
    letter-spacing:.04em!important;
}

/* Footer */
.tp-itinerary-page .tp-iti-footer{
    min-height:57px;
    padding:10px 15px!important;
    border-top:1px solid rgba(43,48,34,.08)!important;
    background:#fcfbf7!important;
}

.tp-itinerary-page .tp-iti-author{
    gap:8px!important;
    min-width:0;
}

.tp-itinerary-page .tp-iti-author img{
    width:31px!important;
    height:31px!important;
    border:1px solid rgba(43,48,34,.10);
}

.tp-itinerary-page .tp-iti-author-label{
    color:#8a9184!important;
    font-size:7.5px!important;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.tp-itinerary-page .tp-iti-author-line strong{
    max-width:105px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#344127!important;
    font-size:9.5px!important;
}

.tp-itinerary-page .tp-iti-rank-badge{
    font-size:7px!important;
    padding:2px 5px!important;
}

.tp-itinerary-page .tp-iti-footer .tp-btn-small{
    display:inline-flex!important;
    align-items:center!important;
    gap:6px!important;
    color:#344127!important;
    font-size:9.5px!important;
    font-weight:800!important;
    text-decoration:none!important;
}

.tp-itinerary-page .tp-iti-footer .tp-btn-small i{
    color:#ffb800;
}

/* Empty state */
.tp-itinerary-page .tp-iti-empty-state{
    border:1px dashed rgba(43,48,34,.16)!important;
    border-radius:15px!important;
    background:#fff!important;
    box-shadow:none!important;
}

/* Pagination */
.tp-itinerary-page .page-numbers{
    min-width:36px;
    min-height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-right:5px;
    border:1px solid rgba(43,48,34,.10);
    border-radius:9px;
    background:#fff;
    color:#344127;
    text-decoration:none;
    font-size:11px;
    font-weight:700;
}

.tp-itinerary-page .page-numbers.current{
    border-color:#ffb800;
    background:#ffb800;
    color:#202819;
}

/* Responsive */
@media (max-width:1050px){
    .tp2-iti-hero-inner{
        gap:24px;
    }

    .tp2-iti-hero-points{
        min-width:330px;
    }

    .tp-itinerary-page .tp-advanced-filters{
        grid-template-columns:minmax(0,1.35fr) minmax(150px,.72fr) minmax(145px,.66fr) 135px!important;
    }
}

@media (max-width:820px){
    .tp2-iti-hero-inner{
        min-height:0;
        align-items:flex-start;
        flex-direction:column;
        padding-top:36px!important;
        padding-bottom:48px!important;
    }

    .tp2-iti-hero-points{
        width:100%;
        min-width:0;
    }

    .tp-itinerary-page>.tp-section-container{
        margin-top:-20px;
    }

    .tp-itinerary-page .tp-advanced-filters{
        grid-template-columns:1fr 1fr!important;
    }

    .tp-itinerary-page .search-group{
        grid-column:1/-1;
    }

    .tp-itinerary-page .tp-iti-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}

@media (max-width:560px){
    .tp2-iti-hero-points{
        grid-template-columns:1fr 1fr 1fr;
        gap:6px;
    }

    .tp2-iti-hero-points>span{
        min-height:78px;
        padding:10px 8px;
    }

    .tp2-iti-hero-points b{
        font-size:11px;
    }

    .tp2-iti-hero-points small{
        font-size:8px;
    }

    .tp-itinerary-page .tp-advanced-filters{
        grid-template-columns:1fr!important;
    }

    .tp-itinerary-page .search-group{
        grid-column:auto;
    }

    .tp-itinerary-page .tp-iti-grid{
        grid-template-columns:1fr!important;
    }

    .tp2-iti-list-head{
        align-items:flex-start;
        flex-direction:column;
        gap:8px;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 29 – staging itinerary demo cards
   ========================================================================== */

.tp2-demo-note{
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin:0 0 12px 2px;
    padding:6px 9px;
    border:1px solid rgba(43,48,34,.10);
    border-radius:8px;
    background:#fff9e8;
    color:#6f6337;
    font-size:8.5px;
    font-weight:700;
}

.tp2-demo-note i{
    color:#d59a00;
}

.tp2-demo-itinerary-card .tp-iti-img-link{
    display:block;
    width:100%;
    height:100%;
}

.tp2-demo-itinerary-card .tp-iti-img-link img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.tp2-demo-heart{
    cursor:default!important;
}

.tp2-demo-avatar{
    width:31px;
    height:31px;
    flex:0 0 31px;
    display:grid;
    place-items:center;
    border:1px solid rgba(43,48,34,.10);
    border-radius:50%;
    background:#2b3022;
    color:#ffbf17;
    font-size:8.5px;
    font-weight:850;
    letter-spacing:.03em;
}

.tp2-demo-detail{
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    cursor:default!important;
}

.tp2-demo-itinerary-card:nth-child(2n) .tp-iti-img img{
    filter:saturate(.90) contrast(1.03);
}

.tp2-demo-itinerary-card:nth-child(3n) .tp-iti-img img{
    filter:saturate(1.08) brightness(.96);
}


/* ==========================================================================
   TrackPoint 2.0 alpha 30 – itinerary detail + staging admin preview
   ========================================================================== */

.tp-itinerary-page .tp-iti-card-verified.is-preview{
    background:rgba(255,184,0,.92)!important;
    color:#202819!important;
}

.tp-itinerary-page .tp-iti-card-verified.is-preview i{
    color:#202819!important;
}

.tp-itinerary-page .tp-heart-btn.is-preview{
    display:grid;
    place-items:center;
    cursor:default;
    background:rgba(255,255,255,.95)!important;
    color:#344127!important;
}

/* Detail page base */
.tp-itinerary-page .tp-iti-detail-page{
    background:#f8f7f2;
    padding-bottom:52px;
}

/* Cinematic detail hero */
.tp-itinerary-page .tp-iti-detail-hero{
    min-height:395px!important;
    padding:78px 0 44px!important;
    background-position:center 55%!important;
    border:0!important;
}

.tp-itinerary-page .tp-iti-detail-hero:before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    background:
        linear-gradient(90deg,rgba(26,33,22,.88) 0%,rgba(26,33,22,.65) 48%,rgba(26,33,22,.24) 78%,rgba(26,33,22,.10) 100%),
        linear-gradient(0deg,rgba(22,29,19,.62),transparent 55%);
    pointer-events:none;
}

.tp-itinerary-page .tp-iti-detail-hero::after{
    height:4px!important;
    background:#ffb800!important;
}

.tp-itinerary-page .tp-iti-detail-hero .tp-section-container{
    max-width:1168px!important;
    padding-left:24px!important;
    padding-right:24px!important;
}

.tp2-detail-kicker{
    display:block;
    margin:0 0 10px;
    color:#ffbf17;
    font-size:10px;
    font-weight:850;
    line-height:1;
    letter-spacing:.15em;
    text-transform:uppercase;
}

.tp-itinerary-page .tp-iti-detail-hero .tp-iti-badge{
    min-height:27px;
    margin:0 0 13px!important;
    padding:5px 9px!important;
    border:1px solid rgba(255,255,255,.18)!important;
    border-radius:8px!important;
    background:rgba(32,40,25,.60)!important;
    color:#fff!important;
    font-size:9px!important;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

.tp-itinerary-page .tp-iti-detail-hero .tp-iti-badge i{
    color:#ffbf17!important;
}

.tp-itinerary-page .tp-iti-detail-hero h1{
    max-width:790px!important;
    margin:0 0 15px!important;
    color:#fff!important;
    font:700 clamp(38px,4vw,58px)/.98 Bitter,Georgia,serif!important;
    letter-spacing:-.045em!important;
    text-shadow:0 8px 28px rgba(0,0,0,.23)!important;
}

.tp-itinerary-page .tp-iti-detail-summary{
    display:flex!important;
    align-items:center!important;
    flex-wrap:wrap!important;
    gap:7px!important;
    margin:0 0 16px!important;
}

.tp-itinerary-page .tp-iti-detail-summary>span{
    min-height:31px!important;
    padding:0 10px!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:6px!important;
    border:1px solid rgba(255,255,255,.16)!important;
    border-radius:999px!important;
    background:rgba(30,39,25,.38)!important;
    color:rgba(255,255,255,.91)!important;
    font-size:9.5px!important;
    font-weight:700!important;
    backdrop-filter:blur(7px);
    -webkit-backdrop-filter:blur(7px);
}

.tp-itinerary-page .tp-iti-detail-summary>span i{
    color:#ffbf17!important;
}

.tp-itinerary-page .tp-iti-hero-meta{
    gap:12px!important;
    color:rgba(255,255,255,.74)!important;
    font-size:9.5px!important;
}

.tp-itinerary-page .tp-iti-hero-meta>span,
.tp-itinerary-page .tp-iti-hero-meta .author{
    min-height:29px;
    gap:6px!important;
}

.tp-itinerary-page .tp-iti-hero-meta img{
    width:28px!important;
    height:28px!important;
    border:1px solid rgba(255,255,255,.60)!important;
}

.tp-itinerary-page .tp-iti-hero-meta .tp-iti-rank-badge{
    background:rgba(255,184,0,.14)!important;
    color:#ffca38!important;
    border:1px solid rgba(255,184,0,.24)!important;
}

/* Main detail container */
.tp-itinerary-page .tp-iti-detail-page>.tp-section-container{
    max-width:1168px!important;
    padding-left:24px!important;
    padding-right:24px!important;
}

.tp-itinerary-page .tp-back-link{
    margin:19px 0 14px!important;
    gap:7px!important;
    color:#566151!important;
    font-size:9.5px!important;
    font-weight:750!important;
}

.tp-itinerary-page .tp-back-link i{
    color:#ffb800;
}

/* Overview row */
.tp-itinerary-page .tp-iti-top-row{
    grid-template-columns:minmax(0,.94fr) minmax(410px,1.06fr)!important;
    gap:16px!important;
    margin-bottom:16px!important;
}

.tp-itinerary-page .tp-content-box{
    padding:20px!important;
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:15px!important;
    background:#fff!important;
    box-shadow:0 9px 24px rgba(32,40,25,.05)!important;
}

.tp-itinerary-page .tp-content-box h2{
    margin:0 0 11px!important;
    color:#202819!important;
    font:700 20px/1.08 Bitter,Georgia,serif!important;
    letter-spacing:-.022em!important;
}

.tp-itinerary-page .tp-content-box p{
    color:#687264!important;
    font-size:10.5px!important;
    line-height:1.62!important;
}

.tp-itinerary-page .tp-route-note{
    margin-top:13px!important;
    padding:11px 12px!important;
    border:1px solid rgba(255,184,0,.22)!important;
    border-radius:9px!important;
    background:#fffaf0!important;
    color:#606a5b!important;
}

/* Route map */
.tp-itinerary-page .tp-route-map,
.tp-itinerary-page .tp-map-placeholder{
    min-height:250px!important;
    overflow:hidden;
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:11px!important;
    background:#e8ebe2!important;
}

.tp-itinerary-page .tp-route-map{
    height:250px!important;
}

.tp-itinerary-page .tp-route-map-note{
    margin:8px 2px 0!important;
    color:#81897d!important;
    font-size:8.5px!important;
    line-height:1.4!important;
}

.tp-itinerary-page .tp-map-placeholder i{
    margin-bottom:9px!important;
    color:#64715e!important;
    font-size:27px!important;
}

.tp-itinerary-page .tp-map-placeholder p{
    margin:0 0 4px!important;
    color:#344127!important;
    font-size:11px!important;
}

.tp-itinerary-page .tp-map-placeholder span{
    max-width:340px;
    color:#858d80!important;
    font-size:9px!important;
}

/* Main + sidebar */
.tp-itinerary-page .tp-iti-detail-layout{
    grid-template-columns:minmax(0,1fr) 305px!important;
    gap:16px!important;
}

.tp-itinerary-page .tp-sidebar-inner{
    top:84px!important;
    gap:12px!important;
}

/* Timeline */
.tp-itinerary-page .tp-timeline{
    gap:12px!important;
}

.tp-itinerary-page .tp-timeline::before{
    left:17px!important;
    top:16px!important;
    bottom:16px!important;
    width:2px!important;
    background:rgba(52,65,39,.12)!important;
}

.tp-itinerary-page .tp-timeline-item{
    grid-template-columns:36px minmax(0,1fr)!important;
    gap:11px!important;
}

.tp-itinerary-page .tp-timeline-dot{
    width:36px!important;
    height:36px!important;
    border:2px solid #fff!important;
    background:#fff7df!important;
    color:#d99900!important;
    box-shadow:0 5px 13px rgba(32,40,25,.09)!important;
    font-size:10px!important;
}

.tp-itinerary-page .tp-timeline-dot.is-spot{
    background:#edf4e9!important;
    color:#344127!important;
}

.tp-itinerary-page .tp-timeline-content{
    padding:13px 15px!important;
    border:1px solid rgba(43,48,34,.09)!important;
    border-radius:11px!important;
    background:#fbfbf7!important;
}

.tp-itinerary-page .tp-timeline-content h3{
    margin:0 0 5px!important;
    color:#202819!important;
    font:700 13px/1.25 Bitter,Georgia,serif!important;
}

.tp-itinerary-page .tp-timeline-content p{
    margin:0 0 8px!important;
    color:#737c6f!important;
    font-size:9.5px!important;
    line-height:1.5!important;
}

.tp-itinerary-page .tp-stop-location{
    color:#596653!important;
    font-size:8.5px!important;
}

.tp-itinerary-page .spot-label{
    margin-bottom:5px!important;
    padding:4px 7px!important;
    background:#eef3e9!important;
    color:#344127!important;
    font-size:7px!important;
}

.tp-itinerary-page .tp-btn-outline-small{
    min-height:30px!important;
    padding:0 9px!important;
    border-color:rgba(43,48,34,.16)!important;
    border-radius:8px!important;
    background:#fff!important;
    color:#344127!important;
    font-size:8.5px!important;
}

.tp-itinerary-page .tp-btn-outline-small:hover{
    border-color:#ffb800!important;
    background:#ffb800!important;
    color:#202819!important;
}

/* Sidebar stats/actions */
.tp-itinerary-page .tp-iti-stats-card,
.tp-itinerary-page .tp-equipment-card{
    padding:14px!important;
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:14px!important;
    background:#fff!important;
    box-shadow:0 9px 24px rgba(32,40,25,.05)!important;
}

.tp-itinerary-page .stat-grid{
    gap:7px!important;
}

.tp-itinerary-page .stat-box{
    min-height:56px!important;
    gap:8px!important;
    padding:9px!important;
    border:1px solid rgba(43,48,34,.08)!important;
    border-radius:9px!important;
    background:#f8f8f3!important;
}

.tp-itinerary-page .stat-box i{
    width:29px!important;
    height:29px!important;
    min-width:29px!important;
    border-radius:8px!important;
    background:#fff7dd!important;
    color:#c88900!important;
    font-size:10px!important;
}

.tp-itinerary-page .st-txt span{
    margin-bottom:2px!important;
    color:#8a9285!important;
    font-size:6.5px!important;
}

.tp-itinerary-page .st-txt strong{
    color:#273124!important;
    font-size:9.5px!important;
}

.tp-itinerary-page .gpx-download-wrap{
    margin-top:12px!important;
    padding-top:12px!important;
    border-top:1px solid rgba(43,48,34,.08)!important;
}

.tp-itinerary-page .gpx-download-wrap .tp-btn-large,
.tp-itinerary-page .tp-public-save-form .tp-btn-large{
    min-height:42px!important;
    border-radius:9px!important;
    font-size:9px!important;
    font-weight:800!important;
}

.tp-itinerary-page .gpx-download-wrap .tp-btn-yellow{
    background:#ffb800!important;
    color:#202819!important;
}

.tp-itinerary-page .gpx-download-wrap .tp-btn-light{
    border:1px solid rgba(43,48,34,.11)!important;
    background:#f7f7f2!important;
    color:#344127!important;
}

.tp-itinerary-page .gpx-note{
    margin-top:7px!important;
    color:#899185!important;
    font-size:7.5px!important;
    line-height:1.4!important;
}

.tp-itinerary-page .tp-login-secondary-btn{
    margin-top:8px;
    color:#566151!important;
    font-size:8.5px!important;
}

/* Equipment/weather card */
.tp-itinerary-page .tp-weather-card-head{
    gap:8px!important;
    margin-bottom:10px!important;
}

.tp-itinerary-page .tp-weather-card-head h3{
    margin:0!important;
    color:#202819!important;
    font:700 14px/1.1 Bitter,Georgia,serif!important;
}

.tp-itinerary-page .tp-weather-card-head h3 i{
    color:#d99b00!important;
}

.tp-itinerary-page .tp-weather-card-head small{
    display:block;
    margin-top:4px;
    color:#858e80!important;
    font-size:7.5px!important;
    line-height:1.35!important;
}

.tp-itinerary-page .tp-weather-status-pill{
    min-height:23px!important;
    padding:0 7px!important;
    border-radius:999px!important;
    background:#eef3e9!important;
    color:#344127!important;
    font-size:6.5px!important;
}

.tp-itinerary-page .tp-weather-summary-grid{
    grid-template-columns:1fr 1fr!important;
    gap:6px!important;
    margin-bottom:9px!important;
}

.tp-itinerary-page .tp-weather-summary-item{
    padding:8px!important;
    border:1px solid rgba(43,48,34,.08)!important;
    border-radius:8px!important;
    background:#fafaf6!important;
}

.tp-itinerary-page .tp-weather-summary-item span{
    color:#8a9285!important;
    font-size:6.5px!important;
}

.tp-itinerary-page .tp-weather-summary-item strong{
    color:#344127!important;
    font-size:8.5px!important;
}

.tp-itinerary-page .tp-weather-pack-list{
    margin:0!important;
    padding:0!important;
    list-style:none!important;
}

.tp-itinerary-page .tp-weather-pack-list li{
    min-height:28px!important;
    gap:7px!important;
    padding:5px 0!important;
    border-bottom:1px solid rgba(43,48,34,.06)!important;
    color:#626d5e!important;
    font-size:8px!important;
    line-height:1.35!important;
}

.tp-itinerary-page .tp-weather-pack-list li i{
    width:17px;
    color:#54704b!important;
}

.tp-itinerary-page .tp-weather-pack-list li.is-important i{
    color:#c88900!important;
}

.tp-itinerary-page .tp-weather-footer{
    margin-top:8px!important;
    color:#91988d!important;
    font-size:6.8px!important;
    line-height:1.4!important;
}

/* Lock boxes */
.tp-itinerary-page .tp-itinerary-lock-box{
    padding:20px!important;
    border:1px solid rgba(255,184,0,.20)!important;
    border-radius:12px!important;
    background:#fffaf0!important;
    text-align:left!important;
}

.tp-itinerary-page .tp-itinerary-lock-icon{
    width:36px!important;
    height:36px!important;
    margin:0 0 10px!important;
    display:grid!important;
    place-items:center!important;
    border-radius:10px!important;
    background:#ffb800!important;
    color:#202819!important;
    font-size:13px!important;
}

.tp-itinerary-page .tp-itinerary-lock-box h3{
    margin:0 0 7px!important;
    color:#202819!important;
    font:700 15px/1.15 Bitter,Georgia,serif!important;
}

.tp-itinerary-page .tp-itinerary-lock-box p{
    color:#6f776b!important;
    font-size:9px!important;
    line-height:1.5!important;
}

/* Leaflet skin */
.tp-itinerary-page .leaflet-control-zoom a{
    color:#344127!important;
}

.tp-itinerary-page .leaflet-popup-content-wrapper,
.tp-itinerary-page .leaflet-popup-tip{
    background:#fff!important;
    color:#344127!important;
}

/* Responsive detail */
@media (max-width:900px){
    .tp-itinerary-page .tp-iti-detail-hero{
        min-height:345px!important;
    }

    .tp-itinerary-page .tp-iti-top-row,
    .tp-itinerary-page .tp-iti-detail-layout{
        grid-template-columns:1fr!important;
    }

    .tp-itinerary-page .tp-sidebar-inner{
        position:static!important;
    }

    .tp-itinerary-page .tp-iti-stats-card .stat-grid{
        grid-template-columns:repeat(4,minmax(0,1fr))!important;
    }
}

@media (max-width:620px){
    .tp-itinerary-page .tp-iti-detail-hero{
        min-height:320px!important;
        padding:60px 0 32px!important;
    }

    .tp-itinerary-page .tp-iti-detail-hero .tp-section-container,
    .tp-itinerary-page .tp-iti-detail-page>.tp-section-container{
        padding-left:14px!important;
        padding-right:14px!important;
    }

    .tp-itinerary-page .tp-iti-detail-hero h1{
        font-size:36px!important;
    }

    .tp-itinerary-page .tp-iti-hero-meta{
        gap:8px!important;
    }

    .tp-itinerary-page .tp-iti-hero-meta>span:nth-of-type(1){
        display:none!important;
    }

    .tp-itinerary-page .tp-iti-stats-card .stat-grid{
        grid-template-columns:1fr 1fr!important;
    }

    .tp-itinerary-page .tp-content-box{
        padding:15px!important;
    }

    .tp-itinerary-page .tp-timeline-content{
        padding:11px 12px!important;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 31 – itinerary final polish
   ========================================================================== */

/* Slightly tighter listing hero so the actual routes enter the viewport sooner. */
.tp2-iti-hero{
    min-height:248px!important;
}

.tp2-iti-hero-inner{
    min-height:248px!important;
    padding-top:24px!important;
    padding-bottom:40px!important;
}

.tp2-iti-hero h1{
    margin-bottom:10px!important;
}

.tp2-iti-hero p{
    max-width:585px!important;
}

/* Tighter rhythm under hero. */
.tp-itinerary-page .tp-advanced-filters{
    margin-bottom:18px!important;
}

.tp2-iti-list-head{
    margin-top:18px!important;
    margin-bottom:12px!important;
}

/* Cards: stronger route hierarchy, less dead vertical space. */
.tp-itinerary-page .tp-iti-img{
    height:186px!important;
}

.tp-itinerary-page .tp-iti-body{
    padding:14px 15px 12px!important;
}

.tp-itinerary-page .tp-iti-body h3{
    margin-bottom:6px!important;
    font-size:19px!important;
    line-height:1.08!important;
}

.tp-itinerary-page .tp-iti-body p{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    min-height:30px;
    margin-bottom:10px!important;
    font-size:10px!important;
    line-height:1.48!important;
}

.tp-itinerary-page .tp-iti-stats{
    padding:9px 7px!important;
}

.tp-itinerary-page .stat-item{
    padding:0 6px!important;
}

.tp-itinerary-page .tp-iti-footer{
    min-height:54px!important;
    padding:9px 15px!important;
}

/* Existing PHP already supplies hero-bg.png as a fallback cover. Make it look intentional. */
.tp-itinerary-page .tp-iti-img-link{
    position:relative;
    display:block;
    width:100%;
    height:100%;
    overflow:hidden;
}

.tp-itinerary-page .tp-iti-img-link:after{
    content:"";
    position:absolute;
    inset:auto 0 0;
    height:45%;
    pointer-events:none;
    background:linear-gradient(180deg,transparent,rgba(26,33,22,.22));
}

.tp-itinerary-page .tp-iti-img-link img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

/*
 * The production grid stays 3-column once there are 3+ cards.
 * Exactly 2 cards use the full row instead of leaving an empty third column.
 */
@media (min-width:1000px){
    .tp-itinerary-page .tp-iti-grid{
        grid-template-columns:repeat(3,minmax(0,1fr))!important;
    }

    .tp-itinerary-page .tp-iti-grid:has(> .tp-iti-card:first-child:nth-last-child(2)){
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}

/* Tablet/mobile remain deterministic. */
@media (max-width:999px) and (min-width:561px){
    .tp-itinerary-page .tp-iti-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}

@media (max-width:560px){
    .tp-itinerary-page .tp-iti-grid{
        grid-template-columns:1fr!important;
    }

    .tp2-iti-hero{
        min-height:auto!important;
    }

    .tp2-iti-hero-inner{
        min-height:0!important;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 32 – itinerary cards rebuilt
   ========================================================================== */

/*
 * Neutralize the legacy itinerary card flex/stretch rules.
 * Cards are catalogue tiles now: compact, content-sized and centered.
 */
.tp-itinerary-page .tp-iti-grid{
    display:grid!important;
    grid-template-columns:repeat(auto-fit,minmax(300px,360px))!important;
    justify-content:center!important;
    align-items:start!important;
    gap:18px!important;
}

.tp-itinerary-page .tp-iti-card{
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    align-self:start!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:16px!important;
    background:#fff!important;
    box-shadow:0 10px 26px rgba(32,40,25,.065)!important;
}

.tp-itinerary-page .tp-iti-card:hover{
    transform:translateY(-3px)!important;
    box-shadow:0 16px 34px rgba(32,40,25,.11)!important;
}

/* Cover */
.tp-itinerary-page .tp-iti-img{
    position:relative!important;
    flex:0 0 198px!important;
    width:100%!important;
    height:198px!important;
    min-height:198px!important;
    overflow:hidden!important;
    background:#e8eae3!important;
}

.tp-itinerary-page .tp-iti-img-link{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    display:block!important;
}

.tp-itinerary-page .tp-iti-img-link img{
    width:100%!important;
    height:100%!important;
    display:block!important;
    object-fit:cover!important;
    object-position:center!important;
}

.tp-itinerary-page .tp-iti-img:after{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    pointer-events:none!important;
    background:
        linear-gradient(180deg,rgba(20,27,18,.02) 45%,rgba(20,27,18,.34) 100%)!important;
}

.tp-itinerary-page .tp-iti-badge,
.tp-itinerary-page .tp-iti-card-verified,
.tp-itinerary-page .tp-heart-btn,
.tp-itinerary-page .tp-card-save-form{
    z-index:3!important;
}

.tp-itinerary-page .tp-iti-badge{
    top:11px!important;
    left:11px!important;
    bottom:auto!important;
    display:inline-flex!important;
    min-height:25px!important;
    padding:0 8px!important;
    border:1px solid rgba(255,255,255,.18)!important;
    border-radius:999px!important;
    background:rgba(32,40,25,.84)!important;
    color:#fff!important;
    font-size:8.5px!important;
    font-weight:800!important;
    box-shadow:0 5px 13px rgba(0,0,0,.12)!important;
}

.tp-itinerary-page .tp-iti-badge i{
    color:#ffbf17!important;
}

.tp-itinerary-page .tp-iti-card-verified{
    display:inline-flex!important;
    align-items:center!important;
    gap:4px!important;
    left:11px!important;
    bottom:10px!important;
    top:auto!important;
    min-height:23px!important;
    padding:0 8px!important;
    border-radius:999px!important;
    background:rgba(36,77,50,.92)!important;
    color:#fff!important;
    font-size:8px!important;
    font-weight:750!important;
}

.tp-itinerary-page .tp-iti-card-verified i{
    color:#ffbf17!important;
}

.tp-itinerary-page .tp-heart-btn{
    position:absolute!important;
    top:10px!important;
    right:10px!important;
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    min-height:32px!important;
    display:grid!important;
    place-items:center!important;
    padding:0!important;
    border:1px solid rgba(43,48,34,.10)!important;
    border-radius:50%!important;
    background:rgba(255,255,255,.94)!important;
    color:#455240!important;
    font-size:11px!important;
}

/* Body must size to content – this is what removes the giant empty middle area. */
.tp-itinerary-page .tp-iti-body{
    flex:0 0 auto!important;
    display:block!important;
    min-height:0!important;
    padding:14px 14px 13px!important;
    background:#fff!important;
}

.tp-itinerary-page .tp-iti-body h3{
    margin:0 0 6px!important;
    color:#202819!important;
    font:700 18px/1.12 Bitter,Georgia,serif!important;
    letter-spacing:-.02em!important;
}

.tp-itinerary-page .tp-iti-body h3 a{
    display:block;
    color:inherit!important;
    text-decoration:none!important;
}

.tp-itinerary-page .tp-iti-body p{
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
    overflow:hidden!important;
    min-height:30px!important;
    margin:0 0 11px!important;
    color:#70796c!important;
    font-size:9.5px!important;
    line-height:1.5!important;
}

/* Compact statistics strip */
.tp-itinerary-page .tp-iti-stats{
    flex:none!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    border:1px solid rgba(43,48,34,.08)!important;
    border-radius:10px!important;
    background:#f7f7f2!important;
}

.tp-itinerary-page .tp-iti-stats .stat-item{
    min-width:0!important;
    min-height:52px!important;
    padding:8px 6px!important;
    display:grid!important;
    grid-template-columns:18px minmax(0,1fr)!important;
    align-items:center!important;
    justify-content:initial!important;
    gap:5px!important;
    border:0!important;
    border-left:1px solid rgba(43,48,34,.08)!important;
    text-align:left!important;
}

.tp-itinerary-page .tp-iti-stats .stat-item:first-child{
    border-left:0!important;
}

.tp-itinerary-page .tp-iti-stats .stat-item i{
    width:18px!important;
    height:auto!important;
    min-width:18px!important;
    margin:0!important;
    display:block!important;
    background:transparent!important;
    color:#53614d!important;
    font-size:10px!important;
}

.tp-itinerary-page .tp-iti-stats .st-info{
    width:auto!important;
    min-width:0!important;
    display:block!important;
}

.tp-itinerary-page .tp-iti-stats .st-info strong{
    display:block!important;
    overflow:hidden!important;
    color:#283224!important;
    font-size:9.5px!important;
    line-height:1.1!important;
    font-weight:800!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
}

.tp-itinerary-page .tp-iti-stats .st-info span{
    display:block!important;
    margin-top:2px!important;
    color:#899184!important;
    font-size:6.5px!important;
    line-height:1!important;
    font-weight:750!important;
    text-transform:uppercase!important;
    letter-spacing:.045em!important;
}

/* Author/action footer becomes one slim row. */
.tp-itinerary-page .tp-iti-footer{
    flex:0 0 auto!important;
    min-height:56px!important;
    padding:10px 14px!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    border-top:1px solid rgba(43,48,34,.075)!important;
    background:#fbfaf6!important;
}

.tp-itinerary-page .tp-iti-author{
    min-width:0!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:8px!important;
}

.tp-itinerary-page .tp-iti-author>img{
    width:30px!important;
    height:30px!important;
    flex:0 0 30px!important;
    display:block!important;
    border-radius:50%!important;
    object-fit:cover!important;
}

.tp-itinerary-page .tp-iti-author-meta{
    min-width:0!important;
    display:flex!important;
    flex-direction:column!important;
    gap:2px!important;
}

.tp-itinerary-page .tp-iti-author-label{
    display:block!important;
    color:#949b91!important;
    font-size:6.5px!important;
    line-height:1!important;
    font-weight:700!important;
    text-transform:uppercase!important;
    letter-spacing:.05em!important;
}

.tp-itinerary-page .tp-iti-author-line{
    min-width:0!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:5px!important;
}

.tp-itinerary-page .tp-iti-author-line strong{
    max-width:105px!important;
    overflow:hidden!important;
    color:#344127!important;
    font-size:8.5px!important;
    line-height:1.1!important;
    font-weight:800!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
}

.tp-itinerary-page .tp-iti-rank-badge{
    min-height:17px!important;
    padding:0 5px!important;
    display:inline-flex!important;
    align-items:center!important;
    border-radius:999px!important;
    font-size:5.8px!important;
    line-height:1!important;
}

.tp-itinerary-page .tp-iti-footer .tp-btn-small{
    width:auto!important;
    flex:0 0 auto!important;
    padding:0!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:5px!important;
    border:0!important;
    background:transparent!important;
    color:#344127!important;
    font-size:8.5px!important;
    line-height:1!important;
    font-weight:850!important;
    white-space:nowrap!important;
    box-shadow:none!important;
}

.tp-itinerary-page .tp-iti-footer .tp-btn-small i{
    color:#d99a00!important;
    font-size:8px!important;
}

/* Card set spacing */
.tp2-iti-list-head{
    margin-bottom:14px!important;
}

/* Responsive catalogue sizing. */
@media (max-width:820px){
    .tp-itinerary-page .tp-iti-grid{
        grid-template-columns:repeat(auto-fit,minmax(280px,1fr))!important;
        justify-content:stretch!important;
    }
}

@media (max-width:560px){
    .tp-itinerary-page .tp-iti-grid{
        grid-template-columns:1fr!important;
    }

    .tp-itinerary-page .tp-iti-card{
        max-width:none!important;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 33 – global typography baseline
   Homepage body copy is the reference scale for the whole theme.
   ========================================================================== */

:root{
    --tp2-font-base:15.5px;
    --tp2-font-secondary:13px;
    --tp2-font-meta:11px;
    --tp2-line-base:1.6;
}

/* Global readable baseline. */
html{
    font-size:16px;
}

body{
    font-size:var(--tp2-font-base)!important;
    line-height:var(--tp2-line-base)!important;
}

/* Ordinary text throughout TrackPoint 2.0 should match the homepage scale. */
.tp2-page main p,
.tp2-page main ul:not([class]) li,
.tp2-page main ol:not([class]) li,
.tp2-page main .tp2-body-copy,
.tp2-page main .tp2-copy,
.tp2-page main .entry-content>p{
    font-size:var(--tp2-font-base)!important;
    line-height:var(--tp2-line-base)!important;
}

/* Controls should never look like 9px plugin UI. */
.tp2-page main input:not([type="checkbox"]):not([type="radio"]),
.tp2-page main select,
.tp2-page main textarea{
    font-size:var(--tp2-font-secondary)!important;
    line-height:1.4!important;
}

.tp2-page main button,
.tp2-page main .button,
.tp2-page main .tp2-btn,
.tp2-page main [class*="btn"]{
    font-size:var(--tp2-font-secondary);
}

/* Secondary explanatory copy. */
.tp2-page main small,
.tp2-page main .description,
.tp2-page main .helper-text,
.tp2-page main .tp2-secondary-copy{
    font-size:var(--tp2-font-secondary);
    line-height:1.45;
}

/* Global metadata floor – never allow unreadable 6–9px leftovers. */
.tp2-page main [class*="meta"],
.tp2-page main [class*="label"],
.tp2-page main [class*="badge"],
.tp2-page main [class*="eyebrow"],
.tp2-page main [class*="kicker"]{
    font-size:max(var(--tp2-font-meta),1em);
}

/* --------------------------------------------------------------------------
   Itineraries – align all ordinary text with the new theme baseline.
   -------------------------------------------------------------------------- */

.tp-itinerary-page .tp2-iti-hero p{
    font-size:var(--tp2-font-base)!important;
    line-height:1.55!important;
}

.tp-itinerary-page .tp2-iti-hero-points small{
    font-size:var(--tp2-font-meta)!important;
}

.tp-itinerary-page .tp2-iti-hero-points b{
    font-size:var(--tp2-font-secondary)!important;
}

.tp-itinerary-page .tp-advanced-filters input,
.tp-itinerary-page .tp-advanced-filters select,
.tp-itinerary-page .tp-advanced-filters .tp-btn-small{
    font-size:var(--tp2-font-secondary)!important;
}

.tp-itinerary-page .tp2-iti-result-count{
    font-size:var(--tp2-font-meta)!important;
}

.tp-itinerary-page .tp-iti-badge,
.tp-itinerary-page .tp-iti-card-verified{
    font-size:var(--tp2-font-meta)!important;
}

.tp-itinerary-page .tp-iti-body p{
    min-height:42px!important;
    margin-bottom:12px!important;
    font-size:var(--tp2-font-secondary)!important;
    line-height:1.5!important;
}

.tp-itinerary-page .tp-iti-stats .st-info strong{
    font-size:12px!important;
}

.tp-itinerary-page .tp-iti-stats .st-info span{
    font-size:var(--tp2-font-meta)!important;
}

.tp-itinerary-page .tp-iti-author-label{
    font-size:var(--tp2-font-meta)!important;
}

.tp-itinerary-page .tp-iti-author-line strong{
    max-width:135px!important;
    font-size:12px!important;
}

.tp-itinerary-page .tp-iti-rank-badge{
    font-size:var(--tp2-font-meta)!important;
}

.tp-itinerary-page .tp-iti-footer .tp-btn-small{
    font-size:12px!important;
}

/* Detail itinerary */
.tp-itinerary-page .tp-iti-detail-summary>span,
.tp-itinerary-page .tp-iti-hero-meta,
.tp-itinerary-page .tp-back-link{
    font-size:var(--tp2-font-meta)!important;
}

.tp-itinerary-page .tp-content-box p,
.tp-itinerary-page .tp-timeline-content p{
    font-size:var(--tp2-font-secondary)!important;
    line-height:1.55!important;
}

.tp-itinerary-page .tp-stop-location,
.tp-itinerary-page .tp-route-map-note,
.tp-itinerary-page .tp-map-placeholder span,
.tp-itinerary-page .gpx-note,
.tp-itinerary-page .tp-login-secondary-btn,
.tp-itinerary-page .tp-weather-card-head small,
.tp-itinerary-page .tp-weather-footer{
    font-size:var(--tp2-font-meta)!important;
    line-height:1.45!important;
}

.tp-itinerary-page .tp-btn-outline-small,
.tp-itinerary-page .gpx-download-wrap .tp-btn-large,
.tp-itinerary-page .tp-public-save-form .tp-btn-large{
    font-size:12px!important;
}

.tp-itinerary-page .st-txt span,
.tp-itinerary-page .tp-weather-summary-item span{
    font-size:var(--tp2-font-meta)!important;
}

.tp-itinerary-page .st-txt strong,
.tp-itinerary-page .tp-weather-summary-item strong{
    font-size:12px!important;
}

.tp-itinerary-page .tp-weather-pack-list li,
.tp-itinerary-page .tp-itinerary-lock-box p{
    font-size:var(--tp2-font-secondary)!important;
    line-height:1.5!important;
}

/* --------------------------------------------------------------------------
   Map / generic content pages: same readable scale.
   -------------------------------------------------------------------------- */

.tp2-map-page p,
.tp2-map-page .tp2-filter-row,
.tp2-map-page .tp2-map-toolbar,
.tp2-map-page .tp2-map-popup-body p{
    font-size:var(--tp2-font-secondary)!important;
}

.tp2-map-page .tp2-map-searchfield input,
.tp2-map-page .tp2-map-searchfield select,
.tp2-map-page .tp2-map-searchbutton{
    font-size:var(--tp2-font-secondary)!important;
}

.tp2-map-page .tp2-filter-section h3,
.tp2-map-page .tp2-map-popup-rating,
.tp2-map-page .tp2-map-verified{
    font-size:var(--tp2-font-meta)!important;
}

/* --------------------------------------------------------------------------
   Footer – preserve the already approved TrackPoint proportions.
   -------------------------------------------------------------------------- */

.tp2-footer{
    font-size:14px!important;
}

.tp2-footer p,
.tp2-footer a{
    font-size:14px!important;
    line-height:1.5!important;
}

/* Mobile stays readable instead of shrinking typography again. */
@media (max-width:560px){
    :root{
        --tp2-font-base:15px;
        --tp2-font-secondary:13px;
        --tp2-font-meta:11px;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 34 – definitive 3-column itinerary catalogue
   ========================================================================== */

/*
 * Desktop master: three equal catalogue cards.
 * Exactly two cards keep the SAME card width as a three-column row and the
 * whole pair is centered, instead of stretching to 50/50.
 */
@media (min-width:1051px){

    .tp-itinerary-page .tp-iti-grid{
        width:100%!important;
        max-width:none!important;
        margin-left:auto!important;
        margin-right:auto!important;
        display:grid!important;
        grid-template-columns:repeat(3,minmax(0,1fr))!important;
        justify-content:stretch!important;
        align-items:start!important;
        gap:16px!important;
    }

    /* Two real cards: same width as 3-col cards, centered as a group. */
    .tp-itinerary-page .tp-iti-grid:has(> .tp-iti-card:first-child:nth-last-child(2)){
        width:calc((100% - 32px) * 0.6666667 + 16px)!important;
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }

    /* One card: same width as one card in a 3-col row, centered. */
    .tp-itinerary-page .tp-iti-grid:has(> .tp-iti-card:only-child){
        width:calc((100% - 32px) / 3)!important;
        grid-template-columns:1fr!important;
    }

    .tp-itinerary-page .tp-iti-card{
        max-width:none!important;
        min-width:0!important;
        width:100%!important;
    }

    /* 3-column cards need a slightly more compact cover. */
    .tp-itinerary-page .tp-iti-img{
        flex-basis:174px!important;
        height:174px!important;
        min-height:174px!important;
    }

    .tp-itinerary-page .tp-iti-body{
        padding:13px 13px 12px!important;
    }

    .tp-itinerary-page .tp-iti-body h3{
        font-size:17px!important;
    }

    .tp-itinerary-page .tp-iti-body p{
        min-height:39px!important;
        margin-bottom:10px!important;
        font-size:12.5px!important;
    }

    .tp-itinerary-page .tp-iti-stats .stat-item{
        min-height:50px!important;
        padding:7px 5px!important;
        grid-template-columns:17px minmax(0,1fr)!important;
        gap:4px!important;
    }

    .tp-itinerary-page .tp-iti-stats .st-info strong{
        font-size:11.5px!important;
    }

    .tp-itinerary-page .tp-iti-stats .st-info span{
        font-size:10px!important;
    }

    .tp-itinerary-page .tp-iti-footer{
        min-height:55px!important;
        padding:9px 13px!important;
    }

    .tp-itinerary-page .tp-iti-author-line strong{
        max-width:90px!important;
        font-size:11.5px!important;
    }

    .tp-itinerary-page .tp-iti-author-label,
    .tp-itinerary-page .tp-iti-rank-badge{
        font-size:10px!important;
    }

    .tp-itinerary-page .tp-iti-footer .tp-btn-small{
        font-size:11.5px!important;
    }
}

/* Notebook/tablet: two columns. */
@media (max-width:1050px) and (min-width:621px){
    .tp-itinerary-page .tp-iti-grid{
        width:100%!important;
        display:grid!important;
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        justify-content:stretch!important;
        gap:16px!important;
    }

    .tp-itinerary-page .tp-iti-card{
        width:100%!important;
        max-width:none!important;
    }
}

/* Phone: one column. */
@media (max-width:620px){
    .tp-itinerary-page .tp-iti-grid{
        width:100%!important;
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:14px!important;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 35 – itinerary detail rebuilt
   ========================================================================== */

.tp2-detail-section-kicker{
    display:block;
    margin-bottom:5px;
    color:#c88f00;
    font-size:11px!important;
    font-weight:850;
    line-height:1;
    letter-spacing:.13em;
    text-transform:uppercase;
}

/* Overview directly below hero */
.tp2-detail-overview{
    display:grid;
    grid-template-columns:minmax(0,1.25fr) minmax(400px,.75fr);
    gap:18px;
    margin:18px 0;
    padding:20px;
    border:1px solid rgba(43,48,34,.10);
    border-radius:16px;
    background:#fff;
    box-shadow:0 10px 28px rgba(32,40,25,.055);
}

.tp2-detail-overview-main h2,
.tp2-detail-map-head h2,
.tp2-route-points-head h2,
.tp2-itinerary-building h2{
    margin:0;
    color:#202819;
    font:700 24px/1.08 Bitter,Georgia,serif;
    letter-spacing:-.025em;
}

.tp2-detail-description{
    margin:11px 0 0!important;
    color:#626d5e!important;
    font-size:15px!important;
    line-height:1.65!important;
}

.tp2-detail-empty-copy{
    display:flex;
    align-items:flex-start;
    gap:12px;
    margin-top:12px;
    padding:13px 14px;
    border:1px dashed rgba(43,48,34,.14);
    border-radius:11px;
    background:#faf9f4;
}

.tp2-detail-empty-copy>i{
    margin-top:2px;
    color:#c78e00;
    font-size:16px;
}

.tp2-detail-empty-copy div{
    display:flex;
    flex-direction:column;
    gap:4px;
}

.tp2-detail-empty-copy strong{
    color:#344127;
    font-size:13px;
}

.tp2-detail-empty-copy span{
    color:#747e70;
    font-size:12.5px;
    line-height:1.45;
}

.tp2-detail-overview-stats{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}

.tp2-detail-overview-stats>div{
    min-height:72px;
    padding:11px 12px;
    display:grid;
    grid-template-columns:28px minmax(0,1fr);
    grid-template-rows:auto auto;
    align-content:center;
    column-gap:8px;
    border:1px solid rgba(43,48,34,.08);
    border-radius:10px;
    background:#f8f8f3;
}

.tp2-detail-overview-stats i{
    grid-row:1/3;
    align-self:center;
    color:#c78e00;
    font-size:14px;
}

.tp2-detail-overview-stats span{
    color:#8a9285;
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
}

.tp2-detail-overview-stats strong{
    min-width:0;
    overflow:hidden;
    color:#273124;
    font-size:13px;
    text-overflow:ellipsis;
    white-space:nowrap;
}

/* Empty/incomplete itinerary */
.tp2-itinerary-building{
    min-height:155px;
    margin-bottom:18px;
    padding:22px;
    display:grid;
    grid-template-columns:54px minmax(0,1fr) auto;
    align-items:center;
    gap:17px;
    border:1px solid rgba(255,184,0,.22);
    border-radius:16px;
    background:
        radial-gradient(circle at 85% 20%,rgba(255,184,0,.08),transparent 28%),
        #fffaf0;
    box-shadow:0 9px 25px rgba(32,40,25,.045);
}

.tp2-itinerary-building-icon{
    width:54px;
    height:54px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:#ffb800;
    color:#202819;
    font-size:20px;
}

.tp2-itinerary-building-copy p{
    max-width:670px;
    margin:8px 0 0!important;
    color:#687264!important;
    font-size:13px!important;
    line-height:1.55!important;
}

.tp2-itinerary-building-action,
.tp2-route-locked-action{
    min-height:43px;
    padding:0 15px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border-radius:9px;
    background:#2b3022;
    color:#fff!important;
    font-size:12px;
    font-weight:800;
    text-decoration:none!important;
    white-space:nowrap;
}

.tp2-itinerary-building-action i,
.tp2-route-locked-action i{
    color:#ffb800;
}

/* Map card */
.tp2-detail-map-card{
    margin-bottom:18px;
    padding:18px;
    border:1px solid rgba(43,48,34,.10);
    border-radius:16px;
    background:#fff;
    box-shadow:0 9px 25px rgba(32,40,25,.05);
}

.tp2-detail-map-head,
.tp2-route-points-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px;
    margin-bottom:13px;
}

.tp2-detail-map-count,
.tp2-route-points-head>span{
    min-height:30px;
    padding:0 10px;
    display:inline-flex;
    align-items:center;
    gap:6px;
    border:1px solid rgba(43,48,34,.09);
    border-radius:999px;
    background:#f8f8f3;
    color:#566151;
    font-size:11px;
    font-weight:750;
}

.tp2-route-unavailable{
    min-height:175px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    border:1px dashed rgba(43,48,34,.14);
    border-radius:12px;
    background:#f8f8f3;
}

.tp2-route-unavailable>i{
    color:#c78e00;
    font-size:22px;
}

.tp2-route-unavailable div{
    display:flex;
    flex-direction:column;
    gap:4px;
}

.tp2-route-unavailable strong{
    color:#344127;
    font-size:13px;
}

.tp2-route-unavailable span{
    color:#778074;
    font-size:12px;
}

/* Single Plus lock – replaces several duplicated lock cards. */
.tp2-route-locked{
    min-height:178px;
    padding:22px;
    display:grid;
    grid-template-columns:52px minmax(0,1fr) auto;
    align-items:center;
    gap:17px;
    border-radius:13px;
    background:
        linear-gradient(115deg,rgba(43,48,34,.985),rgba(52,65,39,.95)),
        #2b3022;
    color:#fff;
}

.tp2-route-locked-icon{
    width:52px;
    height:52px;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.12);
    border-radius:13px;
    background:rgba(255,184,0,.12);
    color:#ffbf17;
    font-size:18px;
}

.tp2-route-locked-copy .tp2-detail-section-kicker{
    color:#ffbf17;
}

.tp2-route-locked-copy h3{
    margin:0 0 7px;
    color:#fff;
    font:700 21px/1.08 Bitter,Georgia,serif;
}

.tp2-route-locked-copy p{
    max-width:590px;
    margin:0 0 10px!important;
    color:rgba(255,255,255,.74)!important;
    font-size:13px!important;
    line-height:1.5!important;
}

.tp2-route-locked-features{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.tp2-route-locked-features span{
    min-height:27px;
    padding:0 8px;
    display:inline-flex;
    align-items:center;
    gap:5px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:999px;
    background:rgba(255,255,255,.06);
    color:rgba(255,255,255,.86);
    font-size:10px;
    font-weight:700;
}

.tp2-route-locked-features i{
    color:#ffbf17;
}

.tp2-route-locked-action{
    background:#ffb800;
    color:#202819!important;
}

.tp2-route-locked-action i{
    color:#202819;
}

/* Main detail no longer starts with another giant marketing lock. */
.tp2-route-points-card{
    padding:18px!important;
}

.tp2-route-points-head{
    margin-bottom:14px;
}

.tp2-points-empty{
    min-height:115px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    border:1px dashed rgba(43,48,34,.13);
    border-radius:11px;
    background:#faf9f5;
    text-align:center;
}

.tp2-points-empty i{
    margin-bottom:3px;
    color:#c78e00;
    font-size:20px;
}

.tp2-points-empty strong{
    color:#344127;
    font-size:13px;
}

.tp2-points-empty span{
    color:#818a7e;
    font-size:12px;
}

.tp2-points-locked-preview{
    padding:3px 0 0;
}

.tp2-points-locked-row{
    display:grid;
    gap:8px;
}

.tp2-points-locked-row>span.tp2-points-preview-number{
    display:none;
}

.tp2-points-locked-row>div{
    position:relative;
    min-height:54px;
    padding:10px 12px 10px 47px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:3px;
    border:1px solid rgba(43,48,34,.08);
    border-radius:10px;
    background:#f8f8f3;
}

.tp2-points-locked-row>div:before{
    content:"•";
    position:absolute;
    left:14px;
    top:50%;
    width:23px;
    height:23px;
    transform:translateY(-50%);
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#e7eadf;
    color:#344127;
    font-size:14px;
    font-weight:900;
}

.tp2-points-locked-row strong{
    color:#344127;
    font-size:12px;
}

.tp2-points-locked-row div span{
    color:#848c80;
    font-size:11px;
}

.tp2-points-locked-preview>small{
    display:block;
    margin-top:8px;
    color:#838b7f;
    font-size:11px;
}

/* Sidebar no longer needs redundant giant unlock copy. */
.tp-itinerary-page .tp-iti-stats-card{
    overflow:hidden;
}

.tp-itinerary-page .tp-iti-detail-layout{
    margin-top:0!important;
}

/* With no route data, main content gets full visual priority and sidebar stays compact. */
.tp-itinerary-page .tp-iti-detail-layout{
    align-items:start!important;
}

/* Ensure old duplicated lock styles don't visually leak into new layout. */
.tp2-detail-map-card .tp-itinerary-lock-box,
.tp2-route-points-card .tp-itinerary-lock-box{
    display:none!important;
}

@media (max-width:900px){
    .tp2-detail-overview{
        grid-template-columns:1fr;
    }

    .tp2-itinerary-building,
    .tp2-route-locked{
        grid-template-columns:52px minmax(0,1fr);
    }

    .tp2-itinerary-building-action,
    .tp2-route-locked-action{
        grid-column:1/-1;
        justify-self:start;
    }
}

@media (max-width:620px){
    .tp2-detail-overview{
        padding:15px;
    }

    .tp2-detail-overview-stats{
        grid-template-columns:1fr 1fr;
    }

    .tp2-itinerary-building{
        grid-template-columns:45px minmax(0,1fr);
        padding:16px;
    }

    .tp2-itinerary-building-icon,
    .tp2-route-locked-icon{
        width:45px;
        height:45px;
    }

    .tp2-route-locked{
        grid-template-columns:45px minmax(0,1fr);
        padding:16px;
    }

    .tp2-route-locked-features{
        display:grid;
        grid-template-columns:1fr;
    }

    .tp2-detail-map-card{
        padding:14px;
    }

    .tp2-detail-map-head,
    .tp2-route-points-head{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 36 – itinerary hero overlay containment FIX
   ========================================================================== */

/*
 * The detail hero overlay must be clipped to the hero itself.
 * Without an explicit positioning context the absolute ::before layer
 * can resolve against a higher ancestor and darken the whole page.
 */
.tp-itinerary-page .tp-iti-detail-hero{
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
}

.tp-itinerary-page .tp-iti-detail-hero:before{
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    pointer-events:none!important;
}

.tp-itinerary-page .tp-iti-detail-hero:after{
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    z-index:2!important;
    pointer-events:none!important;
}

.tp-itinerary-page .tp-iti-detail-hero>.tp-section-container,
.tp-itinerary-page .tp-iti-detail-hero .tp-section-container{
    position:relative!important;
    z-index:1!important;
}

/* Hard safety: nothing from the hero may visually cover following content. */
.tp-itinerary-page .tp-iti-detail-page,
.tp-itinerary-page .tp-iti-detail-page>.tp-section-container{
    position:relative!important;
    z-index:1!important;
}


/* ==========================================================================
   TrackPoint 2.0 alpha 37 – Magazine listing
   ========================================================================== */

.tp2-magazine-page{
    padding-bottom:54px;
    background:#f8f7f2;
}

.tp2-mag-hero{
    min-height:265px;
    overflow:hidden;
    background:
        linear-gradient(90deg,rgba(31,39,25,.93) 0%,rgba(31,39,25,.70) 48%,rgba(31,39,25,.18) 80%),
        var(--tp2-cta-image,url('../images/cta-bg.png')) center 55%/cover no-repeat;
    color:#fff;
}

.tp2-mag-hero-inner{
    min-height:265px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:42px;
    padding-top:34px!important;
    padding-bottom:34px!important;
}

.tp2-mag-hero-copy{max-width:690px;}

.tp2-mag-kicker{
    display:block;
    margin-bottom:8px;
    color:#ffbf17;
    font-size:11px!important;
    font-weight:850;
    line-height:1;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.tp2-mag-hero h1{
    margin:0 0 11px;
    color:#fff;
    font:700 clamp(44px,3.7vw,60px)/.98 Bitter,Georgia,serif;
    letter-spacing:-.045em;
}

.tp2-mag-hero h1 strong{color:#ffbf17;font-weight:700;}

.tp2-mag-hero p{
    max-width:625px;
    margin:0!important;
    color:rgba(255,255,255,.87)!important;
    font-size:15.5px!important;
    line-height:1.58!important;
}

.tp2-mag-hero-note{
    width:330px;
    padding:16px 17px;
    display:flex;
    align-items:flex-start;
    gap:12px;
    border:1px solid rgba(255,255,255,.16);
    border-radius:14px;
    background:rgba(31,39,25,.34);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}

.tp2-mag-hero-note>i{margin-top:3px;color:#ffbf17;font-size:18px;}
.tp2-mag-hero-note div{display:flex;flex-direction:column;gap:4px;}
.tp2-mag-hero-note strong{color:#fff;font-size:13px;}
.tp2-mag-hero-note span{color:rgba(255,255,255,.73);font-size:12px;line-height:1.45;}

.tp2-mag-content{padding-top:20px!important;}

.tp2-mag-categories{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
    margin:0 0 18px;
}

.tp2-mag-categories a{
    min-height:34px;
    padding:0 12px;
    display:inline-flex;
    align-items:center;
    border:1px solid rgba(43,48,34,.10);
    border-radius:999px;
    background:#fff;
    color:#55604f;
    font-size:12px;
    font-weight:750;
    text-decoration:none;
}

.tp2-mag-categories a:hover,
.tp2-mag-categories a.is-active{
    border-color:#2b3022;
    background:#2b3022;
    color:#fff;
}

.tp2-mag-featured{
    display:grid;
    grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr);
    min-height:355px;
    margin-bottom:30px;
    overflow:hidden;
    border:1px solid rgba(43,48,34,.10);
    border-radius:18px;
    background:#fff;
    box-shadow:0 14px 34px rgba(32,40,25,.075);
}

.tp2-mag-featured-image{
    position:relative;
    min-height:355px;
    display:block;
    background-position:center;
    background-size:cover;
}

.tp2-mag-featured-badge{
    position:absolute;
    left:16px;
    top:16px;
    min-height:28px;
    padding:0 10px;
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    background:rgba(43,48,34,.88);
    color:#fff;
    font-size:11px;
    font-weight:800;
}

.tp2-mag-featured-copy{
    padding:34px 32px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.tp2-mag-featured-copy h2{
    margin:0 0 12px;
    color:#202819;
    font:700 clamp(28px,2.3vw,36px)/1.04 Bitter,Georgia,serif;
    letter-spacing:-.035em;
}

.tp2-mag-featured-copy h2 a,
.tp2-mag-card h3 a{color:inherit;text-decoration:none;}

.tp2-mag-featured-copy p{
    margin:0 0 16px!important;
    color:#687264!important;
    font-size:14px!important;
    line-height:1.62!important;
}

.tp2-mag-featured-meta{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-bottom:17px;
    color:#818a7d;
    font-size:11px;
    font-weight:650;
}

.tp2-mag-featured-meta span{display:inline-flex;align-items:center;gap:5px;}
.tp2-mag-featured-meta i{color:#c78e00;}

.tp2-mag-readmore{
    min-height:40px;
    align-self:flex-start;
    padding:0 14px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    border-radius:9px;
    background:#ffb800;
    color:#202819!important;
    font-size:12px;
    font-weight:850;
    text-decoration:none!important;
}

.tp2-mag-section-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
    margin:0 2px 14px;
}

.tp2-mag-section-head h2{
    margin:0;
    color:#202819;
    font:700 27px/1.05 Bitter,Georgia,serif;
    letter-spacing:-.028em;
}

.tp2-mag-count{
    min-height:30px;
    padding:0 10px;
    display:inline-flex;
    align-items:center;
    border:1px solid rgba(43,48,34,.10);
    border-radius:999px;
    background:#fff;
    color:#6d7769;
    font-size:11px;
    font-weight:750;
}

.tp2-mag-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}

.tp2-mag-card{
    overflow:hidden;
    border:1px solid rgba(43,48,34,.10);
    border-radius:15px;
    background:#fff;
    box-shadow:0 9px 24px rgba(32,40,25,.055);
    transition:transform .2s ease,box-shadow .2s ease;
}

.tp2-mag-card:hover{
    transform:translateY(-3px);
    box-shadow:0 15px 32px rgba(32,40,25,.095);
}

.tp2-mag-card-image{
    position:relative;
    height:190px;
    display:block;
    overflow:hidden;
    background:#e8eae3;
}

.tp2-mag-card-image:after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,transparent 55%,rgba(25,32,21,.22));
    pointer-events:none;
}

.tp2-mag-card-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .25s ease;
}

.tp2-mag-card:hover .tp2-mag-card-image img{transform:scale(1.025);}

.tp2-mag-card-image span{
    position:absolute;
    left:11px;
    bottom:10px;
    z-index:2;
    min-height:25px;
    padding:0 8px;
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    background:rgba(43,48,34,.88);
    color:#fff;
    font-size:10px;
    font-weight:800;
}

.tp2-mag-card-body{padding:14px 15px 15px;}

.tp2-mag-card-meta{
    display:flex;
    gap:10px;
    margin-bottom:8px;
    color:#8a9185;
    font-size:10px;
    font-weight:650;
}

.tp2-mag-card h3{
    margin:0 0 8px;
    color:#202819;
    font:700 18px/1.13 Bitter,Georgia,serif;
    letter-spacing:-.018em;
}

.tp2-mag-card p{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    overflow:hidden;
    min-height:58px;
    margin:0 0 12px!important;
    color:#6f786b!important;
    font-size:13px!important;
    line-height:1.5!important;
}

.tp2-mag-card-link{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#344127!important;
    font-size:12px;
    font-weight:850;
    text-decoration:none!important;
}

.tp2-mag-card-link i{color:#d99a00;font-size:10px;}

.tp2-mag-empty{
    min-height:180px;
    padding:28px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border:1px dashed rgba(43,48,34,.14);
    border-radius:15px;
    background:#fff;
    text-align:center;
}

.tp2-mag-empty>i{margin-bottom:10px;color:#c78e00;font-size:28px;}
.tp2-mag-empty h3{margin:0 0 7px;color:#202819;font:700 18px/1.1 Bitter,Georgia,serif;}
.tp2-mag-empty p{margin:0!important;color:#7c8579!important;font-size:13px!important;}

.tp2-mag-pagination{
    margin-top:24px;
    display:flex;
    justify-content:center;
    gap:6px;
}

.tp2-mag-pagination .page-numbers{
    min-width:36px;
    min-height:36px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(43,48,34,.10);
    border-radius:9px;
    background:#fff;
    color:#344127;
    font-size:12px;
    font-weight:750;
    text-decoration:none;
}

.tp2-mag-pagination .page-numbers.current{
    border-color:#ffb800;
    background:#ffb800;
    color:#202819;
}

@media (max-width:900px){
    .tp2-mag-hero-inner{
        align-items:flex-start;
        flex-direction:column;
        gap:20px;
        padding-top:38px!important;
        padding-bottom:38px!important;
    }

    .tp2-mag-hero-note{width:100%;max-width:540px;}
    .tp2-mag-featured{grid-template-columns:1fr;}
    .tp2-mag-featured-image{min-height:270px;}
    .tp2-mag-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media (max-width:560px){
    .tp2-mag-hero h1{font-size:40px;}
    .tp2-mag-featured-copy{padding:22px 18px;}
    .tp2-mag-featured-image{min-height:220px;}
    .tp2-mag-grid{grid-template-columns:1fr;}

    .tp2-mag-section-head{
        align-items:flex-start;
        flex-direction:column;
        gap:8px;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 38 – Magazine routing fix + visualization alignment
   ========================================================================== */

.tp2-mag-hero{
    min-height:310px!important;
    background:
        linear-gradient(90deg,rgba(28,35,23,.80) 0%,rgba(28,35,23,.47) 48%,rgba(28,35,23,.15) 76%),
        linear-gradient(0deg,rgba(20,28,18,.22),transparent 48%),
        var(--tp2-hero-image,url('../images/hero-bg.png')) center 64%/cover no-repeat!important;
}

.tp2-mag-hero-inner{
    min-height:310px!important;
    padding-top:28px!important;
    padding-bottom:50px!important;
}

.tp2-mag-breadcrumb{
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:18px;
    color:rgba(255,255,255,.86);
    font-size:12px;
    font-weight:650;
}

.tp2-mag-breadcrumb a{
    color:#fff;
    text-decoration:none;
}

.tp2-mag-breadcrumb i{
    color:rgba(255,255,255,.55);
    font-size:8px;
}

.tp2-mag-hero h1{
    margin-bottom:12px!important;
    font-size:clamp(52px,4.4vw,72px)!important;
}

.tp2-mag-hero h1 span{
    color:#ffbf17;
}

.tp2-mag-hero-copy .tp2-mag-kicker{
    display:none;
}

.tp2-mag-hero p{
    max-width:610px!important;
    font-size:15.5px!important;
}

.tp2-mag-hero-note{
    width:330px!important;
    margin-top:50px;
    border:0!important;
    background:rgba(32,40,25,.18)!important;
    transform:rotate(-2deg);
}

.tp2-mag-hero-note strong{
    font-family:Bitter,Georgia,serif;
    font-size:18px!important;
    line-height:1.2;
}

.tp2-mag-hero-note span{
    font-size:11px!important;
}

.tp2-mag-content{
    position:relative;
    z-index:3;
    margin-top:-25px!important;
    padding-top:0!important;
}

.tp2-mag-categories{
    min-height:62px;
    margin:0 0 22px!important;
    padding:10px;
    gap:8px!important;
    flex-wrap:nowrap!important;
    overflow-x:auto;
    border:1px solid rgba(43,48,34,.10);
    border-radius:14px;
    background:rgba(255,255,255,.98);
    box-shadow:0 10px 28px rgba(32,40,25,.09);
    scrollbar-width:none;
}

.tp2-mag-categories::-webkit-scrollbar{
    display:none;
}

.tp2-mag-categories a{
    min-height:40px!important;
    flex:0 0 auto;
    gap:7px;
    padding:0 13px!important;
    border-radius:8px!important;
    font-size:11.5px!important;
}

.tp2-mag-categories a i{
    font-size:13px;
}

.tp2-mag-categories a.is-active{
    background:#153d2c!important;
    border-color:#153d2c!important;
    color:#fff!important;
}

.tp2-mag-categories a.is-active i{
    color:#ffbf17;
}

/* Featured article closer to the approved editorial visualization. */
.tp2-mag-featured{
    grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr)!important;
    min-height:385px!important;
    margin-bottom:26px!important;
    border-radius:13px!important;
}

.tp2-mag-featured-image{
    min-height:385px!important;
}

.tp2-mag-featured-copy{
    padding:30px 30px!important;
}

.tp2-mag-featured-copy h2{
    font-size:36px!important;
}

.tp2-mag-featured-copy p{
    font-size:14px!important;
}

.tp2-mag-featured-meta{
    margin-top:auto;
}

.tp2-mag-readmore{
    align-self:flex-end!important;
    margin-top:-43px;
}

/* Heading/tools */
.tp2-mag-section-tools{
    display:flex;
    align-items:center;
    gap:8px;
}

.tp2-mag-sort{
    min-height:36px;
    padding:0 11px;
    display:inline-flex;
    align-items:center;
    gap:5px;
    border:1px solid rgba(43,48,34,.10);
    border-radius:8px;
    background:#fff;
    color:#5e6959;
    font-size:11px;
}

.tp2-mag-sort strong{
    color:#344127;
}

.tp2-mag-sort i{
    margin-left:6px;
    font-size:8px;
}

/* Editorial cards */
.tp2-mag-grid{
    gap:14px!important;
}

.tp2-mag-card{
    border-radius:11px!important;
}

.tp2-mag-card-image{
    height:176px!important;
}

.tp2-mag-card-body{
    padding:12px 13px 14px!important;
}

.tp2-mag-card-meta{
    order:5;
    margin:11px 0 0!important;
    padding-top:10px;
    border-top:1px solid rgba(43,48,34,.07);
}

.tp2-mag-card h3{
    font-size:17px!important;
}

.tp2-mag-card p{
    min-height:39px!important;
    -webkit-line-clamp:2!important;
    font-size:12.5px!important;
}

.tp2-mag-card-link{
    display:none!important;
}

@media (max-width:900px){
    .tp2-mag-hero{
        min-height:auto!important;
    }

    .tp2-mag-hero-inner{
        min-height:auto!important;
    }

    .tp2-mag-hero-note{
        margin-top:0;
        transform:none;
    }

    .tp2-mag-readmore{
        align-self:flex-start!important;
        margin-top:0;
    }
}

@media (max-width:650px){
    .tp2-mag-content{
        margin-top:-16px!important;
    }

    .tp2-mag-section-tools{
        align-items:flex-start;
        flex-direction:column;
    }

    .tp2-mag-featured-copy h2{
        font-size:29px!important;
    }
}


/* ==========================================================================
   TrackPoint 2.0 alpha 39 – Magazine article detail
   ========================================================================== */

.tp2-article-page{
    background:#f8f7f2;
}

.tp2-article-hero{
    position:relative;
    min-height:455px;
    overflow:hidden;
    background-position:center;
    background-size:cover;
    color:#fff;
}

.tp2-article-hero-inner{
    min-height:455px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding-top:42px!important;
    padding-bottom:50px!important;
}

.tp2-article-breadcrumb{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:28px;
    color:rgba(255,255,255,.75);
    font-size:12px;
    font-weight:650;
}

.tp2-article-breadcrumb a{
    color:#fff;
    text-decoration:none;
}

.tp2-article-breadcrumb i{
    color:rgba(255,255,255,.45);
    font-size:8px;
}

.tp2-article-hero-copy{
    max-width:820px;
}

.tp2-article-category{
    min-height:28px;
    padding:0 10px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-bottom:14px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:999px;
    background:rgba(43,48,34,.72);
    color:#fff;
    font-size:11px;
    font-weight:800;
    backdrop-filter:blur(7px);
    -webkit-backdrop-filter:blur(7px);
}

.tp2-article-category i{
    color:#ffbf17;
}

.tp2-article-hero h1{
    max-width:790px;
    margin:0 0 16px;
    color:#fff;
    font:700 clamp(44px,4.5vw,68px)/.99 Bitter,Georgia,serif;
    letter-spacing:-.045em;
    text-shadow:0 9px 30px rgba(0,0,0,.22);
}

.tp2-article-lead{
    max-width:720px;
    margin:0 0 22px!important;
    color:rgba(255,255,255,.85)!important;
    font-size:16px!important;
    line-height:1.6!important;
}

.tp2-article-author-row{
    display:flex;
    align-items:center;
    gap:10px;
}

.tp2-article-author-row>img{
    width:42px;
    height:42px;
    border:2px solid rgba(255,255,255,.70);
    border-radius:50%;
    object-fit:cover;
}

.tp2-article-author-copy{
    display:flex;
    flex-direction:column;
    gap:3px;
}

.tp2-article-author-copy strong{
    color:#fff;
    font-size:12.5px;
}

.tp2-article-author-copy span{
    display:flex;
    align-items:center;
    gap:7px;
    color:rgba(255,255,255,.70);
    font-size:11px;
}

.tp2-article-author-copy span i{
    width:3px;
    height:3px;
    display:block;
    border-radius:50%;
    background:#ffbf17;
}

/* Content */
.tp2-article-shell{
    padding-top:0!important;
    padding-bottom:45px!important;
}

.tp2-article-content-wrap{
    position:relative;
    max-width:900px;
    margin:-28px auto 0;
    padding:32px 54px 36px;
    border:1px solid rgba(43,48,34,.10);
    border-radius:18px;
    background:#fff;
    box-shadow:0 14px 34px rgba(32,40,25,.075);
}

.tp2-article-body{
    max-width:720px;
    margin:0 auto;
    color:#394335;
}

.tp2-article-body>p,
.tp2-article-body>ul li,
.tp2-article-body>ol li{
    color:#556151!important;
    font-size:16px!important;
    line-height:1.78!important;
}

.tp2-article-body>p{
    margin:0 0 22px!important;
}

.tp2-article-body h2{
    margin:38px 0 13px!important;
    color:#202819!important;
    font:700 31px/1.12 Bitter,Georgia,serif!important;
    letter-spacing:-.028em!important;
}

.tp2-article-body h3{
    margin:30px 0 11px!important;
    color:#273124!important;
    font:700 23px/1.16 Bitter,Georgia,serif!important;
    letter-spacing:-.018em!important;
}

.tp2-article-body h4{
    margin:26px 0 10px!important;
    color:#344127!important;
    font-size:17px!important;
    font-weight:800!important;
}

.tp2-article-body ul,
.tp2-article-body ol{
    margin:0 0 22px!important;
    padding-left:24px!important;
}

.tp2-article-body li{
    margin-bottom:8px!important;
}

.tp2-article-body img{
    max-width:calc(100% + 80px);
    height:auto;
    margin:26px -40px;
    border-radius:13px;
    box-shadow:0 10px 25px rgba(32,40,25,.08);
}

.tp2-article-body figure{
    max-width:calc(100% + 80px);
    margin:28px -40px!important;
}

.tp2-article-body figure img{
    max-width:100%;
    margin:0;
}

.tp2-article-body figcaption{
    margin-top:7px;
    color:#858d80;
    font-size:11px;
    line-height:1.45;
    text-align:center;
}

.tp2-article-body blockquote{
    position:relative;
    margin:30px 0!important;
    padding:20px 22px 20px 54px!important;
    border:0!important;
    border-radius:12px;
    background:#fff8e7;
    color:#344127;
}

.tp2-article-body blockquote:before{
    content:"“";
    position:absolute;
    left:18px;
    top:8px;
    color:#ffb800;
    font:700 44px/1 Bitter,Georgia,serif;
}

.tp2-article-body blockquote p{
    margin:0!important;
    color:#465140!important;
    font:600 17px/1.55 Bitter,Georgia,serif!important;
}

.tp2-article-body a{
    color:#275c37;
    text-decoration-color:rgba(39,92,55,.32);
    text-underline-offset:3px;
}

.tp2-article-body hr{
    margin:34px 0;
    border:0;
    border-top:1px solid rgba(43,48,34,.10);
}

/* Share rail */
.tp2-article-share{
    position:absolute;
    left:-58px;
    top:42px;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:7px;
}

.tp2-article-share>span{
    margin-bottom:2px;
    color:#8b9286;
    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
    writing-mode:vertical-rl;
    transform:rotate(180deg);
}

.tp2-article-share a,
.tp2-article-share button{
    width:34px;
    height:34px;
    padding:0;
    display:grid;
    place-items:center;
    border:1px solid rgba(43,48,34,.11);
    border-radius:50%;
    background:#fff;
    color:#53604e;
    font-size:11px;
    text-decoration:none;
    cursor:pointer;
    transition:.18s ease;
}

.tp2-article-share a:hover,
.tp2-article-share button:hover,
.tp2-article-share button.is-copied{
    border-color:#ffb800;
    background:#ffb800;
    color:#202819;
}

/* Article ending mark */
.tp2-article-end{
    margin-top:38px;
    padding-top:24px;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
    border-top:1px solid rgba(43,48,34,.09);
    text-align:center;
}

.tp2-article-end-mark{
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#2b3022;
    color:#ffbf17;
}

.tp2-article-end p{
    margin:0!important;
    color:#344127!important;
    font:700 17px/1.2 Bitter,Georgia,serif!important;
}

/* Author card */
.tp2-article-author-card{
    max-width:900px;
    min-height:112px;
    margin:16px auto 0;
    padding:16px 18px;
    display:grid;
    grid-template-columns:58px minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    border:1px solid rgba(43,48,34,.09);
    border-radius:14px;
    background:#fff;
}

.tp2-article-author-card>img{
    width:58px;
    height:58px;
    border-radius:50%;
    object-fit:cover;
}

.tp2-article-author-card>div{
    min-width:0;
}

.tp2-article-author-card span{
    display:block;
    margin-bottom:2px;
    color:#949b90;
    font-size:10px;
    font-weight:750;
    text-transform:uppercase;
}

.tp2-article-author-card h3{
    margin:0 0 4px;
    color:#202819;
    font:700 17px/1.1 Bitter,Georgia,serif;
}

.tp2-article-author-card p{
    margin:0!important;
    color:#747d70!important;
    font-size:12px!important;
    line-height:1.45!important;
}

.tp2-article-author-card>a{
    min-height:38px;
    padding:0 12px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    border-radius:8px;
    background:#f4f4ef;
    color:#344127;
    font-size:11px;
    font-weight:800;
    text-decoration:none;
}

.tp2-article-author-card>a i{
    color:#d99a00;
}

/* Related articles */
.tp2-related-section{
    padding:36px 0 52px;
    background:#f1f1eb;
    border-top:1px solid rgba(43,48,34,.07);
}

.tp2-related-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:15px;
}

.tp2-related-head h2{
    margin:0;
    color:#202819;
    font:700 28px/1.05 Bitter,Georgia,serif;
    letter-spacing:-.028em;
}

.tp2-related-head>a{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#344127;
    font-size:12px;
    font-weight:800;
    text-decoration:none;
}

.tp2-related-head>a i{
    color:#d99a00;
}

.tp2-related-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:15px;
}

.tp2-related-card{
    overflow:hidden;
    border:1px solid rgba(43,48,34,.09);
    border-radius:13px;
    background:#fff;
    box-shadow:0 8px 22px rgba(32,40,25,.045);
}

.tp2-related-image{
    position:relative;
    height:175px;
    display:block;
    overflow:hidden;
}

.tp2-related-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.tp2-related-image:after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,transparent 55%,rgba(25,32,21,.26));
}

.tp2-related-image span{
    position:absolute;
    left:10px;
    bottom:9px;
    z-index:2;
    min-height:24px;
    padding:0 8px;
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    background:rgba(43,48,34,.88);
    color:#fff;
    font-size:9.5px;
    font-weight:800;
}

.tp2-related-body{
    padding:12px 13px 13px;
}

.tp2-related-date{
    display:block;
    margin-bottom:6px;
    color:#92998e;
    font-size:10px;
    font-weight:650;
}

.tp2-related-body h3{
    margin:0 0 7px;
    color:#202819;
    font:700 17px/1.15 Bitter,Georgia,serif;
}

.tp2-related-body h3 a{
    color:inherit;
    text-decoration:none;
}

.tp2-related-body p{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    min-height:38px;
    margin:0 0 10px!important;
    color:#737c6f!important;
    font-size:12px!important;
    line-height:1.5!important;
}

.tp2-related-link{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#344127!important;
    font-size:11px;
    font-weight:800;
    text-decoration:none!important;
}

.tp2-related-link i{
    color:#d99a00;
    font-size:9px;
}

@media (max-width:1000px){
    .tp2-article-share{
        position:static;
        margin:0 0 24px;
        flex-direction:row;
        justify-content:flex-start;
    }

    .tp2-article-share>span{
        margin:0 3px 0 0;
        writing-mode:initial;
        transform:none;
    }
}

@media (max-width:800px){
    .tp2-article-hero{
        min-height:395px;
    }

    .tp2-article-hero-inner{
        min-height:395px;
    }

    .tp2-article-content-wrap{
        margin-top:-20px;
        padding:26px 28px 32px;
    }

    .tp2-article-body img,
    .tp2-article-body figure{
        max-width:100%;
        margin-left:0!important;
        margin-right:0!important;
    }

    .tp2-related-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media (max-width:560px){
    .tp2-article-hero{
        min-height:360px;
    }

    .tp2-article-hero-inner{
        min-height:360px;
        padding-top:28px!important;
        padding-bottom:34px!important;
    }

    .tp2-article-breadcrumb{
        margin-bottom:20px;
    }

    .tp2-article-hero h1{
        font-size:38px;
    }

    .tp2-article-lead{
        font-size:14px!important;
    }

    .tp2-article-content-wrap{
        margin-top:-14px;
        padding:22px 17px 28px;
        border-radius:13px;
    }

    .tp2-article-body>p,
    .tp2-article-body>ul li,
    .tp2-article-body>ol li{
        font-size:15px!important;
    }

    .tp2-article-body h2{
        font-size:27px!important;
    }

    .tp2-article-body h3{
        font-size:21px!important;
    }

    .tp2-article-author-card{
        grid-template-columns:48px minmax(0,1fr);
    }

    .tp2-article-author-card>img{
        width:48px;
        height:48px;
    }

    .tp2-article-author-card>a{
        grid-column:1/-1;
        justify-self:start;
    }

    .tp2-related-head{
        align-items:flex-start;
        flex-direction:column;
        gap:8px;
    }

    .tp2-related-grid{
        grid-template-columns:1fr;
    }
}

/* Final native map overrides must follow legacy responsive directory rules. */
@media(max-width:900px){.tp2-map-static-grid--live .tp2-map-filters{display:block;order:2}}

/* alpha66: use the homepage search controls, including native input reset. */
.tp2-map-page .tp2-map-discovery{width:auto;margin:-28px 20px 0}
.tp2-search-premium--map{grid-template-columns:minmax(0,1fr) minmax(190px,.55fr) 170px}
.tp2-search-control{min-width:0}
.tp2-search-control input,.tp2-search-control select{min-width:0;min-height:0;margin:0!important;border-radius:0!important}
.tp2-search-control:focus-within{outline:2px solid #24513d;outline-offset:2px}
.tp2-map-view-switch{display:flex;gap:6px}
.tp2-map-view-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid #e0e7e2;border-radius:10px;background:#fff;color:#344127;font:600 12px Poppins,sans-serif;cursor:pointer}
.tp2-map-view-button[aria-pressed="true"]{background:#24513d;border-color:#24513d;color:#fff}
.tp2-map-view-button:focus-visible{outline:2px solid #d99b00;outline-offset:3px}
.tp2-map-page .tp2-filter-section{padding:18px 20px;border-bottom:0}
.tp2-map-page .tp2-filter-section h3{font-size:12px!important;margin:0 0 12px}
.tp2-map-page .tp2-filter-categories{display:grid;gap:8px}
.tp2-map-page .tp2-filter-row{gap:10px;min-height:30px;line-height:1.4}
.tp2-map-page .tp2-filter-row input{flex:0 0 17px;margin:0}
.tp2-map-page .tp2-filter-head{padding:0 20px}
.tp2-map-page .tp2-filter-group{padding:0 20px}
.tp2-map-page .tp2-filter-group summary{padding:16px 0;list-style:none;display:flex;justify-content:space-between;align-items:center}
.tp2-map-page .tp2-filter-group summary::-webkit-details-marker{display:none}
.tp2-map-page .tp2-filter-group summary::after{content:'+';font-size:17px;font-weight:500}
.tp2-map-page .tp2-filter-group[open] summary::after{content:'−'}
.tp2-map-page .tp2-filter-group__options{gap:8px;padding:0 0 18px}
.tp2-map-page .tp-geo-category-badge{font-weight:600;line-height:1.35}
@media(max-width:820px){.tp2-search-premium--map{grid-template-columns:1fr 1fr}.tp2-search-premium--map .tp2-search-keyword{grid-column:1/-1}.tp2-search-premium--map .tp2-search-submit{grid-column:auto}}
@media(max-width:560px){.tp2-map-page .tp2-map-discovery{margin:-20px 10px 0}.tp2-search-premium--map{grid-template-columns:1fr}.tp2-map-toolbar{gap:12px;flex-wrap:wrap}.tp2-map-view-switch{width:100%}.tp2-map-view-button{flex:1}}
/* Override legacy Directorist rules that also matched native search inputs. */
.tp2-map-page .tp2-search-control input[type="search"],
.tp2-map-page .tp2-search-control select{
    width:100%;height:100%!important;min-height:0!important;margin:0!important;
    padding:0!important;border:0!important;border-radius:0!important;
    background:transparent!important;box-shadow:none!important;outline:0!important;
    color:#5f6857!important;font:500 12.5px Poppins,sans-serif!important;
}
@media(max-width:900px){.tp2-map-page .tp2-map-static-grid--live .tp2-map-filters{display:block;order:0}}

/* alpha67: explicit detail layout, independent of legacy template CSS. */
.tp-itinerary-page .tp-iti-hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px!important;margin-top:24px;padding-top:18px;border-top:1px solid rgba(255,255,255,.18);font-size:12px!important;line-height:1.5}
.tp-itinerary-page .tp-iti-hero-meta .author{display:inline-flex;align-items:center;flex-wrap:wrap;gap:9px!important}
.tp-itinerary-page .tp-iti-hero-meta>span{display:inline-flex;align-items:center;gap:8px!important}
.tp-itinerary-page .tp-iti-hero-meta img{display:block;width:36px!important;height:36px!important;border-radius:50%;object-fit:cover}
.tp-itinerary-page .tp-iti-author-caption{color:rgba(255,255,255,.65);font-size:11px}
.tp-itinerary-page .tp-iti-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 305px!important;gap:20px!important;align-items:start}
.tp-itinerary-page .tp-iti-main-content,.tp-itinerary-page .tp-iti-sidebar{min-width:0}
.tp-itinerary-page .tp-sidebar-inner{display:flex;flex-direction:column;gap:16px}
.tp-itinerary-page .tp-timeline{position:relative;display:flex;flex-direction:column;gap:14px!important}
.tp-itinerary-page .tp-timeline::before{content:'';position:absolute;left:17px;top:18px;bottom:18px;width:2px;background:#e2e8dd}
.tp-itinerary-page .tp-timeline-item{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr)!important;gap:12px!important;align-items:start}
.tp-itinerary-page .tp-timeline-dot{position:relative;z-index:1;display:grid;place-items:center;flex-shrink:0;border-radius:50%}
.tp-itinerary-page .tp-timeline-content{min-width:0;padding:14px 16px!important;background:#fafaf6!important}
.tp-itinerary-page .tp-timeline-content h3{font:700 15px/1.45 Bitter,Georgia,serif!important;margin:0 0 6px!important}
.tp-itinerary-page .tp-timeline-content p{font-size:12px!important;line-height:1.6!important;margin:0!important}
.tp-itinerary-page .stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px!important}
.tp-itinerary-page .stat-box{display:flex;align-items:center;min-width:0;gap:10px!important;padding:12px!important;min-height:72px!important}
.tp-itinerary-page .stat-box i{display:grid;place-items:center;flex-shrink:0}
.tp-itinerary-page .st-txt{display:flex;flex-direction:column;gap:4px;min-width:0}
.tp-itinerary-page .st-txt strong{overflow-wrap:anywhere}

/* Keep the existing primary links reachable on phone and tablet. */
.tp2-menu-toggle{display:none}
@media(max-width:820px){
.tp2-nav{grid-template-columns:minmax(0,1fr) auto auto;gap:8px}
.tp2-nav .tp2-logo{grid-column:1;grid-row:1;min-width:0}
.tp2-nav .tp2-account{grid-column:2;grid-row:1}
.tp2-nav .tp2-menu-toggle{display:inline-flex;align-items:center;justify-content:center;grid-column:3;grid-row:1;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.4);border-radius:12px;background:transparent;color:#fff;cursor:pointer}
.tp2-menu-toggle:focus-visible{outline:2px solid #ffd15b;outline-offset:3px}
.tp2-nav.is-menu-open .tp2-menu{display:flex;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:8px 16px;background:#2b3022;border-top:1px solid rgba(255,255,255,.15);box-shadow:0 10px 20px #17201526}
.tp2-nav.is-menu-open .tp2-menu a{display:flex;align-items:center;min-height:44px;padding:10px 12px;font-size:14px;border-radius:8px;color:#fff}
.tp2-nav.is-menu-open .tp2-menu a::after{display:none}
.tp2-nav.is-menu-open .tp2-menu a.is-active{background:rgba(255,255,255,.08);color:#ffd15b}
.tp2-nav.is-menu-open .tp2-menu a:hover,.tp2-nav.is-menu-open .tp2-menu a:focus-visible{background:rgba(255,255,255,.1)}
}

@media(max-width:900px){.tp-itinerary-page .tp-iti-detail-layout{grid-template-columns:1fr!important}.tp-itinerary-page .tp-sidebar-inner{position:static}.tp-itinerary-page .tp-iti-stats-card .stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:560px){.tp-itinerary-page .tp-iti-hero-meta{gap:12px 18px!important;margin-top:18px}.tp-itinerary-page .tp-iti-hero-meta .author{width:100%}.tp-itinerary-page .tp-iti-stats-card .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

