.hub-hero { position:relative; padding:100px 0 70px; color:white; text-align:center; overflow:hidden; isolation:isolate; min-height:380px; }
.hub-hero-bg { position:absolute; inset:0; z-index:-2;
  background: linear-gradient(135deg, rgba(15,40,80,0.85) 0%, rgba(60,90,140,0.85) 100%),
              url('/assets/img/zachody/hero.jpg') center/cover; }
.hub-kicker { display:inline-block; padding:6px 16px; border-radius:20px; background:rgba(255,255,255,0.15); backdrop-filter:blur(10px); font-size:14px; font-weight:600; margin-bottom:18px; }
.hub-hero h1 { font-family:'Playfair Display', serif; font-size:46px; font-weight:900; line-height:1.18; margin:0 0 18px; color:white; text-shadow:0 2px 14px rgba(0,0,0,0.4); }
.hub-sub { font-size:18px; max-width:780px; margin:0 auto 28px; opacity:0.95; line-height:1.55; }
@media (max-width:768px){ .hub-hero h1{font-size:30px;} .hub-sub{font-size:16px;} }
.hub-cta { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.hub-cta-btn { padding:11px 22px; border-radius:10px; background:rgba(255,255,255,0.15); color:white; text-decoration:none; font-weight:600; border:1px solid rgba(255,255,255,0.3); backdrop-filter:blur(8px); }
.hub-cta-btn:hover { background:rgba(255,255,255,0.25); transform:translateY(-2px); }
.hub-cta-btn.primary { background:#fbbf24; color:#1a2a44; border-color:#fbbf24; }

.hub-toc { position:sticky; top:0; background:white; border-bottom:1px solid #e5e9f0; padding:12px 0; z-index:10; font-size:14px; }
.hub-toc .container { display:flex; flex-wrap:wrap; gap:18px; align-items:center; }
.hub-toc a { color:#0a66c2; text-decoration:none; }
.hub-toc a:hover { text-decoration:underline; }

.hub-section { padding:60px 0; }
.hub-section-alt { background:#f7f9fc; }
.hub-section h2 { font-family:'Playfair Display', serif; font-size:34px; font-weight:800; color:#1a2a44; margin:0 0 12px; }
.hub-section-lead { font-size:17px; color:#4a5568; line-height:1.6; margin:0 0 32px; max-width:780px; }

.hub-cal-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:18px; }
.hub-cal-card { background:white; border:1px solid #e5e9f0; border-radius:12px; padding:20px; position:relative; }
.hub-cal-card h3 { font-family:'Playfair Display', serif; font-size:22px; margin:0 0 12px; color:#1a2a44; }
.hub-cal-row { display:flex; justify-content:space-between; padding:6px 0; border-bottom:1px dashed #eef1f6; font-size:14px; }
.hub-cal-row span { color:#7a8599; }
.hub-cal-row strong { color:#1a2a44; }
.hub-cal-badge { display:inline-block; margin-top:10px; padding:3px 10px; border-radius:10px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.5px; }
.hub-cal-badge-przedsezon { background:#d6e4f5; color:#1e40af; }
.hub-cal-badge-wczesny.hub-cal-badge { background:#d1fae5; color:#065f46; }
.hub-cal-badge-szczyt { background:#fee2e2; color:#991b1b; }
.hub-cal-badge-posezon { background:#fef3c7; color:#92400e; }
.hub-cal-badge-zima { background:#e0e7ff; color:#3730a3; }
.hub-cal-desc { font-size:13px; color:#4a5568; line-height:1.55; margin:12px 0 0; }

.hub-table-wrap { overflow-x:auto; margin-bottom:24px; }
.hub-table { width:100%; border-collapse:collapse; background:white; border-radius:10px; overflow:hidden; box-shadow:0 2px 10px rgba(20,40,80,0.06); }
.hub-table th, .hub-table td { padding:12px 14px; text-align:left; border-bottom:1px solid #eef1f6; }
.hub-table th { background:#1a2a44; color:white; font-weight:600; }
.hub-table tbody tr:nth-child(even) { background:#f7f9fc; }
.hub-table tbody tr:hover { background:#eff5fb; }

.hub-tip { background:#fef3c7; border-left:4px solid #fbbf24; padding:16px 20px; border-radius:0 10px 10px 0; margin-bottom:24px; }
.hub-tip h3 { margin:0 0 8px; color:#92400e; font-size:18px; }
.hub-tip ul { margin:0; padding-left:20px; color:#78350f; line-height:1.7; }

.hub-feat-box { background:#dbeafe; border-left:4px solid #0a66c2; padding:18px 22px; border-radius:0 10px 10px 0; }
.hub-feat-box h3 { margin:0 0 8px; color:#1e3a8a; font-size:18px; }
.hub-feat-box p { margin:0 0 10px; color:#1e3a8a; line-height:1.6; }
.hub-feat-cta { display:inline-block; padding:8px 16px; background:#0a66c2; color:white; border-radius:8px; text-decoration:none; font-weight:600; margin-top:6px; }
.hub-feat-cta:hover { background:#1a2a44; }
.hub-feat-cta.center { display:block; max-width:240px; margin:24px auto 0; text-align:center; }

.hub-attractions { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:18px; }
.hub-attr { background:white; padding:18px; border-radius:12px; border:1px solid #e5e9f0; text-align:center; }
.hub-attr span { font-size:34px; display:block; margin-bottom:8px; }
.hub-attr strong { display:block; font-size:16px; color:#1a2a44; margin-bottom:6px; }
.hub-attr p { font-size:13px; color:#5a6878; line-height:1.5; margin:0; }

.hub-map-wrap { border-radius:14px; overflow:hidden; box-shadow:0 6px 18px rgba(20,40,80,0.12); }

.hub-personas { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:20px; }
.hub-persona { background:white; padding:22px; border-radius:14px; border:1px solid #e5e9f0; box-shadow:0 2px 8px rgba(20,40,80,0.04); }
.hub-persona-icon { font-size:38px; display:block; margin-bottom:10px; }
.hub-persona h3 { font-family:'Playfair Display', serif; font-size:20px; margin:0 0 8px; color:#1a2a44; }
.hub-persona p { font-size:14px; color:#4a5568; line-height:1.5; margin:0 0 10px; }
.hub-persona a { color:#0a66c2; font-weight:600; text-decoration:none; font-size:14px; }

.hub-travel { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:20px; }
.hub-travel-card { background:white; padding:22px; border-radius:14px; border:1px solid #e5e9f0; }
.hub-travel-card h3 { margin:0 0 12px; color:#1a2a44; font-family:'Playfair Display', serif; font-size:20px; }
.hub-travel-card ul { padding-left:18px; margin:0 0 10px; color:#4a5568; line-height:1.7; }

.hub-faq { display:flex; flex-direction:column; gap:8px; }
.hub-faq-item { background:white; border:1px solid #e5e9f0; border-radius:10px; overflow:hidden; }
.hub-faq-item summary { padding:14px 18px; cursor:pointer; font-weight:600; color:#1a2a44; font-size:16px; list-style:none; }
.hub-faq-item summary::-webkit-details-marker { display:none; }
.hub-faq-item summary::after { content:'+'; float:right; font-size:22px; color:#0a66c2; transition:transform .2s; }
.hub-faq-item[open] summary::after { content:'−'; }
.hub-faq-item[open] summary { border-bottom:1px solid #eef1f6; background:#f7f9fc; }
.hub-faq-a { padding:14px 18px; color:#4a5568; line-height:1.65; font-size:15px; }

.hub-cta-big { background:linear-gradient(135deg, #1a2a44 0%, #2c3e60 100%); color:white; text-align:center; }
.hub-cta-big h2 { color:white; font-family:'Playfair Display', serif; }
.hub-cta-big p { color:rgba(255,255,255,0.9); font-size:17px; margin:0 0 24px; }
.hub-final-cta { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }