/* site.css — Barcelona overlay on top of blackhorse-child theme */

#ct-concerts > div { display: flex; flex-wrap: wrap; gap: 30px 2%; }
#ct-concerts .ct-col-2 { flex: 0 1 49%; }
#popular-cities .ct-flex { justify-content: center; gap: 12px 32px; flex-wrap: wrap; }
#popular-cities .city { text-align: center; padding: 10px; }
#popular-cities .city img { width: 64px; height: 64px; }

.concert .image { min-height: 200px; background-size: cover; background-position: center; }
.concert .image-container { display: block; overflow: hidden; }
.concert h3.title { margin: 6px 0 4px; font-size: 16px; line-height: 1.3; }
.concert .price { color: #47ae33; font-weight: 600; margin-top: 4px; }

section > .ct-title { text-align: center; padding: 20px 0; }

.ct-sub-header-container .breadcrumb a { color: #47ae33; text-decoration: none; }
.ct-sub-header-container .breadcrumb a:hover { text-decoration: underline; }

.page-content { padding: 20px 20px 60px; }
.page-content .page-body { max-width: 900px; margin: 0 auto 40px; font-size: 16px; line-height: 1.6; color: #333; }
.page-content .page-body p { margin: 0 0 1em; }
.page-content .page-body h2 { font-size: 22px; margin: 32px 0 12px; }
.page-content .page-body h3 { font-size: 18px; margin: 24px 0 8px; }
.page-content .page-body ul, .page-content .page-body ol { padding-left: 20px; margin: 0 0 1em; }
.page-content .page-body a { color: #47ae33; }

#footer-a .footer-a-child.fac-right ul.menu { list-style: none; padding: 0; margin: 0; display: flex; gap: 20px; flex-wrap: wrap; justify-content: flex-end; }
#footer-a .footer-a-child.fac-right ul.menu a { color: inherit; text-decoration: none; }
#footer-a .footer-a-child.fac-right ul.menu a:hover { text-decoration: underline; }
#footer-a .footer-copy { text-align: right; margin: 12px 0 0; color: #aaa; font-size: 12px; }
#footer-a .footer-copy a { color: inherit; }

.ct-navigation ul { list-style: none; padding: 0; margin: 0; display: flex; gap: 24px; }
.ct-navigation a { text-decoration: none; color: #333; text-transform: uppercase; font-size: 13px; letter-spacing: 0.5px; }
.ct-navigation a:hover { color: #47ae33; }

/* Logo claim with inline flag — aligned to menu height */
.ct-logo { display: flex; align-items: center; min-height: 90px; }
.ct-logo a { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; line-height: 1; }
.ct-logo .flag-badge { display: inline-flex; align-items: center; }
.ct-logo .flag-badge svg { display: block; border: 1px solid rgba(0,0,0,0.12); border-radius: 2px; box-shadow: 0 1px 2px rgba(0,0,0,0.08); }
.ct-logo .claim-text { display: flex; flex-direction: column; line-height: 1.1; }
.ct-logo .claim-city { font-size: 20px; font-weight: 700; color: #111; letter-spacing: 0.3px; }
.ct-logo .claim-tag { font-size: 10px; color: #666; letter-spacing: 2px; text-transform: uppercase; margin-top: 3px; }
#footer-a .ct-logo { min-height: 0; }
#footer-a .ct-logo .claim-city { color: #fff; }
#footer-a .ct-logo .claim-tag { color: #aaa; }

/* Restaurant-guide 2-column: liste links, food-photo rechts */
#ct-restaurant-guide .ct-flex { gap: 30px; align-items: flex-start; }
#ct-restaurant-guide .left-box { flex: 1 1 55%; min-width: 0; padding-right: 0; }
#ct-restaurant-guide .right-box { flex: 1 1 45%; max-width: 520px; background: none !important; }
#ct-restaurant-guide .right-box img { width: 100%; height: auto; max-height: 420px; object-fit: cover; border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.08); display: block; }
@media (max-width: 720px) {
    #ct-restaurant-guide .ct-flex { flex-direction: column; }
    #ct-restaurant-guide .right-box { max-width: 100%; }
}

/* Top-10 sights layout (things-to-do page) */
.sights-list { display: flex; flex-direction: column; gap: 40px; margin: 40px 0; }
.sight-card { display: flex; gap: 32px; align-items: flex-start; padding-bottom: 40px; border-bottom: 1px solid #eee; }
.sight-card:last-child { border-bottom: none; }
.sight-image { flex: 0 0 42%; max-width: 420px; }
.sight-image img { width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; border-radius: 4px; background: #f2f2f2; display: block; box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
.sight-image-placeholder { background: repeating-linear-gradient(45deg,#f5f5f5,#f5f5f5 10px,#eee 10px,#eee 20px); border-radius: 4px; min-height: 200px; }
.sight-body { flex: 1; min-width: 0; }
.sight-num { display: inline-block; font-size: 11px; letter-spacing: 3px; color: #47ae33; font-weight: 700; margin-bottom: 6px; }
.sight-name { font-size: 24px; font-weight: 400; color: #222; margin: 0 0 6px; letter-spacing: 0.3px; }
.sight-district { font-size: 12px; color: #888; text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 14px; }
.sight-text { font-size: 15px; line-height: 1.65; color: #333; margin: 0; }
@media (max-width: 720px) {
    .sight-card { flex-direction: column; gap: 16px; }
    .sight-image { flex: 0 0 auto; max-width: 100%; }
}

/* Fixed header offset: push body content down + prevent anchors sliding under header */
html { scroll-padding-top: 100px; }
body { padding-top: 90px; }
#ct-header { background: #fff; }

/* Unify H1 styling on all pages + anchor scroll offset */
h1, .page-h1 { scroll-margin-top: 100px; }
.page-content .page-h1,
#ct-single-page > h1,
main > h1 {
    text-align: center;
    font-size: 32px;
    font-weight: 400;
    letter-spacing: 0.3px;
    color: #222;
    margin: 20px 0 30px;
    padding: 20px 0 10px;
}

.search, #searchform, #searchsubmit, #s, #popup, .mobile_menu_pop, .mobile_menu_tik { display: none !important; }

#ct-slider .ct-carousel > div { padding: 30px 40px; text-align: center; }
#ct-slider h3 { font-size: 26px; margin: 0 0 12px; color: #fff; }
#ct-slider p { font-size: 15px; color: #eee; margin: 0 0 20px; }

@media (max-width: 900px) {
    #ct-concerts .ct-col-2 { flex: 0 1 100%; }
}
@media (max-width: 600px) {
    .ct-navigation ul { gap: 14px; font-size: 12px; }
    #footer-a .footer-a-child.fac-right ul.menu { justify-content: flex-start; }
}

@media print { header, footer, #ct-slider, #popular-cities { display: none; } }

section:empty, section > div.ct-flex:empty { display: none; }

/* Accessible visually-hidden helper for hero label */
.visually-hidden { 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; }

/* Hero as pure image (no overlay text) */
#ct-slider { height: 590px; background-size: cover; background-position: center; background-repeat: no-repeat; }
