:root {
      --teal:       #07666b;
      --teal-mid:   #0a8b92;
      --teal-light: #0eadb5;
      --teal-dark:  #044a4e;
      --teal-xdark: #022e31;
      --gold:       #f5c205;
      --gold-light: #ffd740;
      --gold-dark:  #c99900;
      --bg:         #eef5f5;
      --surface:    #ffffff;
      --text-main:  #1a2e2f;
      --text-muted: #5a7e80;
      --border:     rgba(7,102,107,0.13);
      --shadow-sm:  0 2px 12px rgba(7,102,107,0.08);
      --shadow-md:  0 8px 36px rgba(7,102,107,0.15);
      --shadow-lg:  0 20px 60px rgba(7,102,107,0.2);
      --radius:     20px;
      --radius-sm:  12px;
    }
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body {
      font-family: 'Poppins', sans-serif;
      background: var(--bg);
      color: var(--text-main);
      overflow-x: hidden;
      line-height: 1.6;
    }
    ::selection { background: var(--gold); color: var(--teal-dark); }

    /* ── AMBIENT BACKGROUND ── */
    .bg-canvas { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
    .bg-orb { position: absolute; border-radius: 50%; filter: blur(90px); opacity: 0.16; animation: orbFloat 12s ease-in-out infinite alternate; }
    .bg-orb-1 { width: 520px; height: 520px; background: var(--teal); top: -150px; left: -100px; animation-delay: 0s; }
    .bg-orb-2 { width: 420px; height: 420px; background: var(--gold); top: 40%; right: -120px; animation-delay: -4s; }
    .bg-orb-3 { width: 360px; height: 360px; background: var(--teal-light); bottom: -100px; left: 30%; animation-delay: -8s; }
    @keyframes orbFloat {
      0%   { transform: translate(0,0) scale(1); }
      50%  { transform: translate(30px,-20px) scale(1.06); }
      100% { transform: translate(-20px,30px) scale(0.95); }
    }
    #particleCanvas { position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: 0.45; }

    /* ── TOP NAV ── */
    .top-nav {
      position: sticky; top: 0; z-index: 100;
      background: rgba(4,74,78,0.93);
      backdrop-filter: blur(18px);
      border-bottom: 1px solid rgba(245,194,5,0.22);
      padding: 10px 0;
      box-shadow: 0 4px 28px rgba(2,46,49,0.32);
    }
    .top-nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
    .nav-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; }
    .nav-brand-icon {
      width: 38px; height: 38px;
      background: linear-gradient(135deg, var(--gold), var(--gold-dark));
      border-radius: 10px;
      display: flex; align-items: center; justify-content: center;
      font-size: 16px; color: var(--teal-dark);
      box-shadow: 0 2px 12px rgba(245,194,5,0.45);
    }
    .nav-brand-text { font-family: 'Syne', sans-serif; font-weight: 700; font-size: 14px; color: #fff; line-height: 1.2; }
    .nav-brand-text small { font-size: 10px; color: var(--gold); font-weight: 400; display: block; }
    .nav-links { display: flex; align-items: center; gap: 2px; }
    .nav-link-item { color: rgba(255,255,255,0.72); text-decoration: none; font-size: 13px; font-weight: 500; padding: 6px 14px; border-radius: 50px; transition: all 0.2s; }
    .nav-link-item:hover { color: var(--gold); background: rgba(245,194,5,0.12); }
    .nav-link-item.active { color: var(--gold); background: rgba(245,194,5,0.16); }

    /* ── HERO ── */
    .sitemap-hero { position: relative; z-index: 1; padding: 90px 0 72px; overflow: hidden; }
    .hero-bg-grid {
      position: absolute; inset: 0; pointer-events: none; opacity: 0.035;
      background-image: linear-gradient(var(--teal) 1px, transparent 1px), linear-gradient(90deg, var(--teal) 1px, transparent 1px);
      background-size: 40px 40px;
    }
    .hero-dots {
      position: absolute; inset: 0; pointer-events: none; opacity: 0.06;
      background-image: radial-gradient(circle, var(--teal-dark) 1px, transparent 1px);
      background-size: 24px 24px;
    }
    .hero-badge {
      display: inline-flex; align-items: center; gap: 8px;
      background: rgba(245,194,5,0.12); border: 1px solid rgba(245,194,5,0.4);
      color: var(--gold-dark); font-size: 11px; font-weight: 700;
      letter-spacing: 0.18em; text-transform: uppercase;
      padding: 6px 16px; border-radius: 50px;
      margin-bottom: 22px;
      animation: badgePop 0.6s cubic-bezier(0.34,1.56,0.64,1) both;
    }
    .badge-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 3px rgba(245,194,5,0.2); animation: pulseDot 1.8s ease-in-out infinite; }
    @keyframes badgePop { from { opacity:0; transform:scale(0.7) translateY(10px); } to { opacity:1; transform:scale(1) translateY(0); } }
    @keyframes pulseDot { 0%,100%{ box-shadow: 0 0 0 3px rgba(245,194,5,0.2); } 50%{ box-shadow: 0 0 0 8px rgba(245,194,5,0.06); } }

    .hero-headline {
      font-family: 'Syne', sans-serif; font-weight: 800;
      font-size: clamp(32px, 6vw, 64px);
      color: var(--teal-dark); line-height: 1.05;
      letter-spacing: -0.02em; margin-bottom: 16px;
      animation: heroFadeUp 0.7s 0.1s ease both;
    }
    .hl-accent { color: var(--teal); position: relative; display: inline-block; }
    .hl-accent::after {
      content: ''; position: absolute; bottom: 4px; left: 0; right: 0; height: 4px;
      background: linear-gradient(90deg, var(--gold), var(--gold-light));
      border-radius: 2px; transform: scaleX(0); transform-origin: left;
      animation: underlineGrow 0.6s 0.85s ease forwards;
    }
    @keyframes underlineGrow { to { transform: scaleX(1); } }
    .hl-gold { color: var(--gold-dark); }
    .hero-sub { color: var(--text-muted); font-size: 16px; max-width: 520px; animation: heroFadeUp 0.7s 0.2s ease both; }
    @keyframes heroFadeUp { from { opacity:0; transform:translateY(26px); } to { opacity:1; transform:translateY(0); } }

    .hero-divider-row { display: flex; align-items: center; gap: 14px; margin-top: 28px; animation: heroFadeUp 0.7s 0.35s ease both; }
    .hero-divider-line { flex:1; max-width:60px; height:2px; background:linear-gradient(90deg, var(--gold), transparent); border-radius:1px; }
    .hero-divider-text { font-size:11px; color:var(--text-muted); letter-spacing:0.1em; text-transform:uppercase; }

    /* ── BREADCRUMB ── */
    .sitemap-breadcrumb {
      position: relative; z-index: 1;
      background: rgba(255,255,255,0.82); backdrop-filter: blur(12px);
      border-bottom: 1px solid var(--border); border-top: 1px solid var(--border);
      padding: 11px 0;
    }
    .bc-inner { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text-muted); }
    .bc-inner a { color:var(--teal); text-decoration:none; font-weight:500; transition:color 0.2s; }
    .bc-inner a:hover { color:var(--gold-dark); }
    .bc-sep { opacity:0.4; font-size:10px; }
    .bc-current { font-weight:600; color:var(--text-main); }

    /* ── STATS BAR ── */
    .stats-bar-wrapper { position:relative; z-index:1; padding:40px 0 0; }
    .stats-bar {
      background: linear-gradient(135deg, var(--teal-dark) 0%, var(--teal) 55%, var(--teal-mid) 100%);
      border-radius: 24px; padding: 28px 36px;
      display: flex; flex-wrap: wrap; gap: 0;
      box-shadow: var(--shadow-lg); position: relative; overflow: hidden;
    }
    .stats-bar::before {
      content: ''; position: absolute; top: -40%; right: -5%; width: 320px; height: 320px;
      background: radial-gradient(circle, rgba(245,194,5,0.18) 0%, transparent 70%);
      pointer-events: none;
    }
    .stats-bar::after {
      content: ''; position: absolute; inset: 0;
      background: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='1' cy='1' r='1' fill='rgba(255,255,255,0.04)'/%3E%3C/svg%3E");
      pointer-events: none;
    }
    .stat-item { flex:1; min-width:120px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:10px 20px; position:relative; z-index:1; }
    .stat-item + .stat-item::before { content:''; position:absolute; left:0; top:15%; bottom:15%; width:1px; background:rgba(255,255,255,0.15); }
    .stat-num { font-family:'Poppins',sans-serif; font-weight:800; font-size:42px; color:var(--gold); line-height:1; text-shadow:0 2px 20px rgba(245,194,5,0.4); }
    .stat-label { font-size:12px; color:rgba(255,255,255,0.6); margin-top:5px; text-align:center; }
    .stat-icon-top { font-size:12px; color:rgba(255,255,255,0.3); margin-bottom:5px; }

    /* ── MAIN CONTENT ── */
    .sitemap-main { position:relative; z-index:1; padding:44px 0 10px; }

    /* ── SEARCH ── */
    .search-wrap { position:relative; margin-bottom:30px; }
    .search-bar {
      width:100%; padding:14px 20px 14px 52px;
      border-radius:50px; border:2px solid var(--border);
      background:rgba(255,255,255,0.9); backdrop-filter:blur(12px);
      font-family:'Plus Jakarta Sans',sans-serif; font-size:14px; color:var(--text-main);
      transition:all 0.25s; box-shadow:var(--shadow-sm); outline:none;
    }
    .search-bar:focus { border-color:var(--teal); background:#fff; box-shadow:0 0 0 4px rgba(7,102,107,0.1), var(--shadow-md); }
    .search-bar::placeholder { color:var(--text-muted); }
    .search-icon { position:absolute; left:20px; top:50%; transform:translateY(-50%); color:var(--teal); font-size:15px; pointer-events:none; }
    .search-clear { position:absolute; right:16px; top:50%; transform:translateY(-50%); color:var(--text-muted); cursor:pointer; font-size:13px; opacity:0; transition:opacity 0.2s; background:none; border:none; padding:4px 7px; border-radius:50%; }
    .search-clear.visible { opacity:1; }
    .search-clear:hover { color:var(--teal); background:rgba(7,102,107,0.08); }

    /* ── TOOLBAR ── */
    .section-toolbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; flex-wrap:wrap; gap:10px; }
    .section-label { font-family:'Syne',sans-serif; font-weight:700; font-size:12px; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.1em; }
    .toolbar-actions { display:flex; gap:8px; }
    .toolbar-btn {
      display:inline-flex; align-items:center; gap:6px;
      padding:7px 16px; border-radius:50px;
      border:1.5px solid var(--border); background:rgba(255,255,255,0.85); backdrop-filter:blur(8px);
      color:var(--teal); font-size:12px; font-weight:600; cursor:pointer; transition:all 0.22s;
      font-family:'Plus Jakarta Sans',sans-serif;
    }
    .toolbar-btn:hover { background:var(--teal); color:#fff; border-color:var(--teal); box-shadow:0 4px 16px rgba(7,102,107,0.22); }

    /* ── CARD ── */
    .sm-card {
      background: rgba(255,255,255,0.88);
      backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
      border: 1px solid rgba(255,255,255,0.65);
      border-radius: var(--radius); overflow:hidden;
      margin-bottom: 22px;
      box-shadow: var(--shadow-sm);
      transition: box-shadow 0.35s, transform 0.35s, border-color 0.35s;
      opacity: 0; transform: translateY(30px);
    }
    .sm-card.in-view { animation: cardReveal 0.55s cubic-bezier(0.22,1,0.36,1) forwards; }
    .sm-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-5px); border-color: rgba(7,102,107,0.22); }
    @keyframes cardReveal { to { opacity:1; transform:translateY(0); } }

    /* ── CARD HEADER ── */
    .sm-card-header { display:flex; align-items:center; gap:16px; padding:22px 28px; cursor:pointer; user-select:none; position:relative; overflow:hidden; }
    .sm-card-header::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg, var(--teal-dark) 0%, var(--teal) 60%, var(--teal-mid) 100%); z-index:0; }
    /* shimmer */
    .sm-card-header::after { content:''; position:absolute; top:0; left:-100%; width:55%; height:100%; background:linear-gradient(90deg, transparent, rgba(255,255,255,0.13), transparent); transition:left 0.65s ease; z-index:1; }
    .sm-card-header:hover::after { left:130%; }
    .sm-card-header > * { position:relative; z-index:2; }

    .ch-gold-bar { position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg, var(--gold-dark), var(--gold), var(--gold-light), var(--gold)); background-size:200%; animation:goldShimmer 2.5s linear infinite; z-index:3; }
    @keyframes goldShimmer { 0%{background-position:0%} 100%{background-position:200%} }

    .sm-header-icon { width:48px; height:48px; background:rgba(255,255,255,0.14); border:1px solid rgba(255,255,255,0.22); border-radius:var(--radius-sm); display:flex; align-items:center; justify-content:center; font-size:20px; color:var(--gold); flex-shrink:0; transition:all 0.3s cubic-bezier(0.34,1.56,0.64,1); box-shadow:0 2px 12px rgba(0,0,0,0.15); }
    .sm-card:hover .sm-header-icon { background:rgba(245,194,5,0.25); border-color:rgba(245,194,5,0.42); transform:rotate(-8deg) scale(1.14); box-shadow:0 4px 22px rgba(245,194,5,0.32); }
    .sm-header-title { font-family:'Syne',sans-serif; font-weight:700; font-size:17px; color:#fff; flex:1; text-shadow:0 1px 4px rgba(0,0,0,0.15); }
    .sm-header-count { background:var(--gold); color:var(--teal-dark); font-size:11px; font-weight:800; padding:4px 12px; border-radius:50px; letter-spacing:0.05em; box-shadow:0 2px 10px rgba(245,194,5,0.4); }
    .sm-header-chevron { width:30px; height:30px; background:rgba(255,255,255,0.12); border-radius:50%; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.8); font-size:12px; transition:transform 0.4s cubic-bezier(0.4,0,0.2,1), background 0.2s; flex-shrink:0; }
    .sm-card-header:hover .sm-header-chevron { background:rgba(255,255,255,0.22); }
    .sm-card.collapsed .sm-header-chevron { transform:rotate(-90deg); }

    /* ── CARD BODY ── */
    .sm-card-body { max-height:2200px; overflow:hidden; transition:max-height 0.5s cubic-bezier(0.4,0,0.2,1); }
    .sm-card.collapsed .sm-card-body { max-height:0; }
    .sm-card-body-inner { padding:24px 28px 28px; }

    /* ── SUB DIVIDER ── */
    .sm-sub-divider { display:flex; align-items:center; gap:12px; margin:22px 0 12px; font-family:'Syne',sans-serif; font-size:10.5px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--teal); }
    .sm-sub-divider:first-child { margin-top:0; }
    .sm-sub-divider::before { content:''; width:20px; height:2px; background:linear-gradient(90deg, var(--gold), transparent); border-radius:1px; }
    .sm-sub-divider::after { content:''; flex:1; height:1px; background:linear-gradient(90deg, var(--border), transparent); }

    /* ── NAV PILLS ── */
    .sm-nav-pills { display:flex; flex-wrap:wrap; gap:10px; padding:4px 0; }
    .sm-nav-pill { display:inline-flex; align-items:center; gap:9px; padding:12px 24px; border-radius:50px; background:var(--bg); border:1.5px solid var(--border); color:var(--text-main); text-decoration:none; font-size:14px; font-weight:500; transition:all 0.25s cubic-bezier(0.34,1.56,0.64,1); position:relative; overflow:hidden; }
    .sm-nav-pill::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg, var(--teal), var(--teal-light)); opacity:0; transition:opacity 0.25s; }
    .sm-nav-pill:hover::before { opacity:1; }
    .sm-nav-pill:hover { color:#fff; border-color:transparent; transform:translateY(-3px) scale(1.05); box-shadow:0 8px 26px rgba(7,102,107,0.25); }
    .sm-nav-pill > * { position:relative; z-index:1; }
    .sm-nav-pill i { font-size:14px; color:var(--teal); transition:color 0.25s; }
    .sm-nav-pill:hover i { color:var(--gold); }

    /* ── LINK LIST ── */
    .sm-link-list { list-style:none; display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:6px; }
    .sm-link-list a { display:flex; align-items:center; gap:12px; padding:11px 14px; border-radius:var(--radius-sm); color:var(--text-main); text-decoration:none; font-size:15px; font-weight:400; border:1px solid transparent; transition:all 0.22s; position:relative; overflow:hidden; }
    .sm-link-list a::before { content:''; position:absolute; left:0; top:0; bottom:0; width:0; background:linear-gradient(90deg, rgba(7,102,107,0.07), transparent); transition:width 0.3s ease; }
    .sm-link-list a:hover::before { width:100%; }
    .sm-link-list a:hover { border-color:rgba(7,102,107,0.18); color:var(--teal); transform:translateX(5px); background:rgba(7,102,107,0.04); }
    .sm-link-dot { width:8px; height:8px; border-radius:50%; background:linear-gradient(135deg, var(--gold), var(--gold-dark)); flex-shrink:0; transition:all 0.25s cubic-bezier(0.34,1.56,0.64,1); }
    .sm-link-list a:hover .sm-link-dot { transform:scale(1.6); box-shadow:0 0 0 4px rgba(245,194,5,0.18); }
    .sm-link-text { flex:1; min-width:0; }
    .sm-link-arrow { font-size:10px; color:var(--text-muted); opacity:0; transition:all 0.22s; transform:translateX(-6px); }
    .sm-link-list a:hover .sm-link-arrow { opacity:1; transform:translateX(0); color:var(--teal); }

    /* ── LOCATION GRID ── */
    .sm-location-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:10px; }
    .sm-location-card { display:flex; align-items:center; gap:14px; padding:15px 18px; border-radius:var(--radius-sm); border:1.5px solid var(--border); background:linear-gradient(135deg, rgba(255,255,255,0.95), rgba(244,248,248,0.8)); text-decoration:none; color:var(--text-main); transition:all 0.28s cubic-bezier(0.4,0,0.2,1); position:relative; overflow:hidden; }
    .sm-location-card::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg, rgba(7,102,107,0.05), rgba(7,102,107,0)); opacity:0; transition:opacity 0.28s; }
    .sm-location-card::after { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:linear-gradient(180deg, var(--gold), var(--gold-dark)); transform:scaleY(0); transition:transform 0.28s cubic-bezier(0.34,1.56,0.64,1); border-radius:0 2px 2px 0; }
    .sm-location-card:hover::before { opacity:1; }
    .sm-location-card:hover::after { transform:scaleY(1); }
    .sm-location-card:hover { border-color:rgba(7,102,107,0.26); transform:translateX(6px); box-shadow:0 6px 26px rgba(7,102,107,0.13); color:var(--teal); }
    .sm-loc-icon { width:42px; height:42px; flex-shrink:0; background:linear-gradient(135deg, var(--teal), var(--teal-mid)); border-radius:10px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:15px; transition:all 0.3s cubic-bezier(0.34,1.56,0.64,1); box-shadow:0 4px 14px rgba(7,102,107,0.25); }
    .sm-location-card:hover .sm-loc-icon { background:linear-gradient(135deg, var(--gold-dark), var(--gold)); transform:scale(1.13) rotate(-6deg); box-shadow:0 6px 20px rgba(245,194,5,0.38); }
    .sm-loc-text { flex:1; min-width:0; position:relative; z-index:1; }
    .sm-loc-name { font-size:13px; font-weight:600; line-height:1.4; }
    .sm-loc-region { font-size:11px; color:var(--text-muted); margin-top:2px; display:flex; align-items:center; gap:5px; }
    .sm-loc-region::before { content:''; width:5px; height:5px; border-radius:50%; background:var(--gold); flex-shrink:0; }
    .sm-loc-arrow { font-size:11px; color:var(--text-muted); opacity:0; transform:translateX(-5px); transition:all 0.22s; position:relative; z-index:1; }
    .sm-location-card:hover .sm-loc-arrow { opacity:1; transform:translateX(0); color:var(--teal); }

    /* ── RIPPLE ── */
    .ripple-host { position:relative; overflow:hidden; }
    .ripple { position:absolute; border-radius:50%; transform:scale(0); background:rgba(255,255,255,0.25); animation:rippleAnim 0.55s linear; pointer-events:none; }
    @keyframes rippleAnim { to { transform:scale(3); opacity:0; } }

    /* ── NO RESULTS ── */
    .no-results { text-align:center; padding:44px; color:var(--text-muted); display:none; }
    .no-results i { font-size:40px; margin-bottom:14px; color:rgba(7,102,107,0.15); display:block; }

    /* ── SCROLL TO TOP ── */
    #scrollTopBtn {
      position:fixed; bottom:32px; right:28px; z-index:999;
      width:50px; height:50px;
      background:linear-gradient(135deg, var(--teal), var(--teal-mid));
      border:2px solid var(--gold); border-radius:50%; color:#fff;
      display:flex; align-items:center; justify-content:center;
      font-size:16px; cursor:pointer;
      opacity:0; transform:translateY(16px) scale(0.8);
      transition:opacity 0.3s, transform 0.3s, background 0.2s, box-shadow 0.2s;
      box-shadow:0 6px 26px rgba(7,102,107,0.3);
    }
    #scrollTopBtn.show { opacity:1; transform:translateY(0) scale(1); }
    #scrollTopBtn:hover { background:linear-gradient(135deg, var(--gold-dark), var(--gold)); color:var(--teal-dark); box-shadow:0 8px 30px rgba(245,194,5,0.42); transform:translateY(-4px) scale(1.1); }

    
    /* ── SEARCH HIGHLIGHT ── */
    mark { background:rgba(245,194,5,0.38); color:var(--teal-dark); border-radius:3px; padding:0 2px; }

    /* ── RESPONSIVE ── */
    @media (max-width:768px) {
      .sm-card-header { padding:18px 20px; }
      .sm-card-body-inner { padding:18px 20px 22px; }
      .sm-link-list { grid-template-columns:1fr; }
      .sm-location-grid { grid-template-columns:1fr; }
      .stats-bar { padding:20px 16px; }
      .stat-num { font-size:32px; }
      .stat-item { padding:8px 12px; }
      .nav-links { display:none; }
    }
    @media (max-width:480px) {
      .sm-nav-pills { flex-direction:column; }
      .sm-nav-pill { justify-content:center; }
      .toolbar-actions { width:100%; justify-content:flex-end; }
      .hero-headline { font-size: clamp(26px,9vw,40px); }
    }