/* Pagini secundare de turism (locație, listă trasee, traseu) — 2026-09-02.
   Se încarcă doar prin @push('head') în:
   tourism/show.blade.php, tourism/routes/index.blade.php, tourism/routes/show.blade.php
   Nu modifică nimic global — .portal-*, .ho-* rămân neatinse pe restul site-ului. */

/* ---------- Hero ---------- */
.portal-page-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border-bottom: 0;
    padding: 54px 0 64px;
    background: linear-gradient(160deg, #071a36 0%, #0b2b52 46%, #0e3a63 100%);
    color: #fff;
}

.portal-page-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image:
        linear-gradient(180deg, rgba(5, 16, 33, .62) 0%, rgba(7, 26, 54, .82) 60%, #071a36 100%),
        linear-gradient(100deg, rgba(167, 8, 136, .26) 0%, rgba(212, 10, 103, .14) 45%, rgba(255, 101, 0, .12) 100%),
        url('/images/deva-cetate-hero.jpg');
    background-size: cover;
    background-position: center;
    opacity: .9;
}

.portal-page-hero::after {
    content: "";
    position: absolute;
    z-index: 0;
    top: -140px;
    right: -90px;
    width: 360px;
    height: 360px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(7, 142, 162, .45) 0%, rgba(7, 142, 162, 0) 70%);
    filter: blur(55px);
    pointer-events: none;
}

.portal-page-hero > .portal-container {
    position: relative;
    z-index: 1;
}

.portal-page-hero .breadcrumbs {
    margin-bottom: 16px;
    color: rgba(255, 255, 255, .6);
}

.portal-page-hero .breadcrumbs a {
    color: rgba(255, 255, 255, .82);
}

.portal-page-hero .breadcrumbs a:hover {
    color: #7ee5e8;
}

.portal-page-hero .portal-kicker {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    padding: 6px 14px;
    background: rgba(255, 255, 255, .08);
    backdrop-filter: blur(10px);
    color: #ffd8ae;
    font-size: 11px;
    letter-spacing: .06em;
}

.portal-page-hero h1 {
    margin-top: 14px;
    background: linear-gradient(95deg, #ffffff 0%, #eaf6ff 60%, #d6f1f2 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    letter-spacing: -.045em;
}

.portal-page-hero p {
    color: #c9d8ea;
    font-size: 15px;
    line-height: 1.7;
}

.portal-page-hero .ho-route-stats span {
    border: 1px solid rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .1);
    backdrop-filter: blur(10px);
    color: #eaf2fb;
}

/* ---------- Content shell ---------- */
.portal-content-section {
    background:
        radial-gradient(720px 320px at 10% 0%, rgba(7, 142, 162, .05), transparent 60%),
        radial-gradient(720px 320px at 90% 10%, rgba(212, 10, 103, .04), transparent 60%),
        #f6f9fc;
}

/* ---------- Cards: detail card, module card ---------- */
.portal-detail-card,
.portal-module-card {
    border-color: #e9eef4;
    border-radius: 22px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .045);
}

.portal-detail-image {
    border-radius: 22px;
    box-shadow: 0 20px 45px rgba(8, 37, 77, .16);
}

.portal-detail-card h2 {
    font-size: 22px;
    letter-spacing: -.02em;
}

a.portal-module-card,
.portal-module-card {
    transition: transform .28s cubic-bezier(.2, .7, .2, 1), border-color .28s ease, box-shadow .28s ease;
}

.portal-module-card:hover {
    transform: translateY(-5px);
    border-color: #d7e3ee;
    box-shadow: 0 22px 44px rgba(8, 37, 77, .13);
}

.ho-module-media img {
    transition: transform .45s cubic-bezier(.2, .7, .2, 1);
}

.portal-module-card > div:not(.ho-module-body) > small,
.ho-module-body .portal-kicker {
    color: #078ea2;
}

.portal-module-card > div:not(.ho-module-body) footer a,
.ho-module-body footer a {
    color: #078ea2;
    font-weight: 800;
}

/* ---------- Article body ---------- */
.article-content a {
    color: #078ea2;
}

.article-content blockquote {
    border-left-color: #078ea2;
    background: #eefafa;
}

/* ---------- Sidebar meta ---------- */
.portal-detail-meta svg {
    color: #078ea2;
}

.portal-detail-aside .portal-detail-card {
    position: relative;
    overflow: hidden;
}

/* ---------- Buttons ---------- */
.portal-gradient-button {
    border-radius: 13px;
    background: linear-gradient(100deg, #a70888 0%, #d40a67 48%, #ff6500 100%);
    box-shadow: 0 10px 24px rgba(212, 10, 103, .28);
}

.portal-gradient-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(212, 10, 103, .36);
}

.ho-outline-button {
    border-radius: 13px;
    border-color: #078ea2;
}

.ho-outline-button:hover {
    transform: translateY(-2px);
    background: #ecfeff;
}

/* ---------- Route mini grid (locuri incluse pe traseu) ---------- */
.ho-route-mini-grid a {
    border-radius: 15px;
    transition: transform .24s ease, border-color .24s ease, box-shadow .24s ease;
}

.ho-route-mini-grid a:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 28px rgba(8, 37, 77, .1);
}

/* ---------- Route timeline (opriri recomandate) ---------- */
.ho-route-timeline::before {
    background: linear-gradient(180deg, #078ea2, #d40a67, #ff6500);
}

.ho-route-timeline li > span {
    background: linear-gradient(100deg, #078ea2, #07966f);
    box-shadow: 0 6px 16px rgba(7, 142, 162, .3);
}

.ho-route-timeline h3 a {
    color: #08254d;
    transition: color .2s ease;
}

.ho-route-timeline h3 a:hover {
    color: #0e7490;
}

/* ---------- Empty state ---------- */
.portal-empty {
    border-radius: 20px;
}

@media (max-width: 900px) {
    .portal-page-hero {
        padding: 36px 0 44px;
    }
}
