:root{
  --museum-blue:#0057d9;
  --museum-blue-soft:#0057d91a;
  --museum-text:#222;
  --museum-muted:#555;
  --museum-border:#e6e6e6;
  --museum-shadow:0 1px 4px #00000014;
  --museum-shadow-hover:0 4px 12px #00000026;
  --museum-radius:6px;
  --museum-transition:.25s ease;
}

/* Wrapper */
.museum-cards-wrapper{margin:1.6rem auto;font-family:"Work Sans",sans-serif;color:var(--museum-text)}

/* Grid */
.museum-card-grid{display:grid;gap:1.5em;width:100%;max-width:1400px;margin:0 auto}
.museum-card-grid.cols-auto{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.museum-card-grid.cols-1{grid-template-columns:1fr}
.museum-card-grid.cols-2{grid-template-columns:repeat(2,1fr)}
.museum-card-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.museum-card-grid.cols-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px) {
.museum-card-grid.cols-3,.museum-card-grid.cols-4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px) {
.museum-card-grid:not(.cols-1){grid-template-columns:1fr}
}

/* Card */
.museum-card{display:flex;flex-direction:column;background:#fff;border-radius:var(--museum-radius);box-shadow:var(--museum-shadow);overflow:hidden;height:100%;transition:box-shadow var(--museum-transition),transform var(--museum-transition)}
.museum-card:hover{box-shadow:var(--museum-shadow-hover);transform:translateY(-2px)}

/* Link + title */
.museum-card-link{display:flex;flex-direction:column;color:inherit;text-decoration:none}
.museum-card-link,.museum-card-link *{text-decoration:none!important}
.museum-card-link:focus-visible{outline:2px dashed var(--museum-blue);outline-offset:3px}
.museum-card-title{margin:.6em 0 .3em;font-family:"Playfair Display",serif;font-size:clamp(1.45rem,2.2vw,1.7rem);font-weight:700;line-height:1.3;cursor:pointer;transition:color var(--museum-transition);overflow-wrap:break-word;word-break:break-word;hyphens:auto}.museum-card-title .title-sub{font-weight:400;color:var(--museum-muted);display:inline;margin-left:.1em}
.museum-card-link:hover .museum-card-title,.museum-card-link:hover .museum-card-title .title-sub{color:var(--museum-blue)}

/* Image */
.museum-card-thumb{width:100%;overflow:hidden;border-radius:var(--museum-radius) var(--museum-radius) 0 0;background:#f0f0f0;aspect-ratio:4/3;position:relative;flex-shrink:0}
.museum-card-img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit;transition:transform .3s ease-out}
.museum-card:hover .museum-card-img{transform:scale(1.03)}
.td-thumb-caption,.museum-card-caption{font-size:.68rem;color:#6a6a6a!important;text-align:right;margin-top:.4rem;margin-right:.6rem;font-style:italic;flex-shrink:0}
.museum-cards-wrapper.compact .museum-card-caption{display:none}

/* Meta */
.museum-card-meta{padding:0.4em 1em 1.2em;display:flex;flex-direction:column;flex:1}

/* Category pill */
.museum-card-category{display:inline-block;font-size:.65em;font-weight:800;text-transform:uppercase;color:var(--museum-blue);background:var(--museum-blue-soft);padding:.25em .7em;border-radius:999px;transition:background var(--museum-transition),color var(--museum-transition)}
.museum-card-category:hover{background:var(--museum-blue);color:#fff}

/* Excerpt */
.museum-card-excerpt{font-size:1.05rem;line-height:1.4;color:var(--museum-muted);margin-top:.6em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}
@media (max-width:480px) {
.museum-card-excerpt{-webkit-line-clamp:4}
}

/* Compact layout */
.museum-cards-wrapper.compact .museum-card-grid{gap:.4em}
.museum-cards-wrapper.compact .museum-card-grid.cols-1{grid-template-columns:1fr!important}
.museum-cards-wrapper.compact .museum-card-grid.cols-2{grid-template-columns:repeat(2,1fr)!important;gap:.4em 1.5em}
.museum-cards-wrapper.compact .museum-card-grid.cols-2 .museum-card:nth-child(-n+2){border-top:none}
.museum-cards-wrapper.compact .museum-card{display:flex;flex-direction:row;align-items:center;position:relative;background:#fff;border-top:1px solid var(--museum-border);border-radius:var(--museum-radius);box-shadow:none;padding:12px 8px;z-index:0;transition:background .2s ease,box-shadow .2s ease,transform .2s ease}
.museum-cards-wrapper.compact .museum-card:first-child{border-top:none}
.museum-cards-wrapper.compact .museum-card:hover{z-index:2;background:#f8f9fb;transform:translateY(-0.5px);box-shadow:0 2px 6px #0000001f}
.museum-cards-wrapper.compact .museum-card-link{display:flex;flex-direction:row;align-items:center;width:100%}
.museum-cards-wrapper.compact .museum-card-thumb{flex:0 0 auto;width:clamp(90px,24vw,130px);aspect-ratio:5/4;margin-right:1em;border-radius:4px;background:#f0f0f0;overflow:hidden;display:flex;align-items:center;justify-content:center}
.museum-cards-wrapper.compact .museum-card-img{border-radius:4px}
.museum-cards-wrapper.compact .museum-card-meta{flex:1;min-width:0;padding:0;justify-content:center}
.museum-cards-wrapper.compact .museum-card-title{font-size:1.25rem;line-height:1.35;margin:.25em 0;font-weight:600;letter-spacing:-.01em;overflow-wrap:break-word;word-break:break-word;hyphens:auto}
.museum-cards-wrapper.compact .museum-card-excerpt{font-size:1rem;line-height:1.5;margin-top:.2em}
@media (max-width:600px) {
.museum-cards-wrapper.compact .museum-card-excerpt{display:none}
}
.museum-cards-wrapper.compact .museum-card-caption,.museum-cards-wrapper.compact .td-thumb-caption{display:none}

/* Edit link */
.museum-card-edit{text-align:right;margin:.5em}
.museum-card-edit a{font-size:.75em;font-weight:500;color:#fff;text-decoration:none;opacity:0;transition:opacity var(--museum-transition)}
.museum-card:hover .museum-card-edit a{opacity:1;color:#ccc}

/* CTA button */
.museum-card-cta{display:inline-block;margin-top:auto;padding:.45em 1.2em;font-size:.85rem;font-weight:600;color:var(--museum-blue);background:#fff;border:1px solid #0057d94d;border-radius:999px;box-shadow:0 2px 4px #00000014;cursor:pointer;transition:background var(--museum-transition),color var(--museum-transition),box-shadow var(--museum-transition),transform .2s ease}

/* Highlight card */
.museum-card.highlight{position:relative;border-radius:8px;overflow:hidden;box-shadow:0 6px 18px #00000040}
.museum-card.highlight .museum-card-image{position:relative;width:100%;background-size:cover;background-position:center;background-repeat:no-repeat;min-height:350px}
.museum-card.highlight .museum-card-overlay{background:linear-gradient(to top,#00000073 0%,#00000040 30%,#0000 70%)}
.museum-card.highlight .museum-card-content{position:absolute;bottom:12%;left:50%;transform:translateX(-50%);width:90%;text-align:center;color:#fff;z-index:2}
.museum-card.highlight .museum-card-title{font-family:"Playfair Display",serif;font-size:2.2rem!important;line-height:1.2!important;font-weight:700;margin:0 0 .4em;text-shadow:0 2px 6px #00000080;color:#fff!important;display:inline-block;background:#00000073;padding:.15em .25em;border-radius:6px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.museum-card.highlight .museum-card-title .title-sub,.museum-card.highlight .museum-card-tagline,.museum-card.highlight .museum-card-category,.museum-card.highlight .museum-card-cta{color:#fff!important}
.museum-card.highlight .museum-card-tagline{font-family:"Work Sans",sans-serif;font-size:1.2rem;font-weight:600;margin:0;text-shadow:0 1px 4px #0006}
.museum-card.highlight .museum-card-category{background:#0006;padding:2px 6px;border-radius:4px;font-size:.85em}
@media (max-width:768px) {
.museum-card.highlight .museum-card-title{font-size:1.8rem!important;line-height:1.2!important;padding:.1em .4em;color:#fff!important}
.museum-card.highlight .museum-card-tagline{font-size:.95rem}
}

/* Category themes */
.category-castles{--theme:#8b6a2b}
.category-historical{--theme:#6b4f2a}
.category-art-and-design{--theme:#7a1f3d}
.category-science{--theme:#0a5c6b}
.category-family-attractions{--theme:#b36200}
.category-manufacturing{--theme:#3a4f6b}
.category-culture{--theme:#8a3f2f}
.category-zoological{--theme:#2f5d3a}
.category-gardens{--theme:#143c28}
.category-churches{--theme:#2a3d6b}
.category-areas{--theme:#1e2d3a}
.category-personalities{--theme:#222}
.category-festive-traditions{--theme:#b02a2a}
.category-architectural{--theme:#5a5a5a}
.category-food-drink{--theme:#b45f3c}
.category-iconic-products{--theme:#0057d9}
.category-transports{--theme:#004f7c}
.museum-card[class*="category-"]{border-top:3px solid var(--theme,var(--museum-blue))}
.museum-card[class*="category-"]:hover{box-shadow:0 4px 12px color-mix(in srgb,var(--theme,var(--museum-blue)) 25%,transparent)}
.museum-card[class*="category-"]:hover .museum-card-title{color:color-mix(in srgb,var(--theme,var(--museum-blue)) 80%,#000)}
.museum-card[class*="category-"] .museum-card-category{color:var(--theme,var(--museum-blue));background:color-mix(in srgb,var(--theme,var(--museum-blue)) 10%,transparent)}
.museum-card[class*="category-"] .museum-card-category:hover{background:var(--theme,var(--museum-blue));color:#fff}
.museum-card[class*="category-"] .museum-card-cta{color:var(--theme,var(--museum-blue));border-color:color-mix(in srgb,var(--theme,var(--museum-blue)) 30%,transparent)}
.museum-card[class*="category-"] .museum-card-link:hover .museum-card-title,.museum-card[class*="category-"] .museum-card-link:hover .museum-card-title .title-sub{color:color-mix(in srgb,var(--theme,var(--museum-blue)) 80%,#000)}
.museum-card.highlight[class*="category-"] .museum-card-overlay{background:linear-gradient(to top,color-mix(in srgb,var(--theme,var(--museum-blue)) 55%,black) 0%,color-mix(in srgb,var(--theme,var(--museum-blue)) 25%,black) 30%,#0000 70%)}
.museum-cards-wrapper.compact .museum-card[class*="category-"] .museum-card-title{color:var(--theme,var(--museum-blue))}

/* Theme-specific highlight overrides */
.museum-card.highlight.category-personalities .museum-card-overlay{background:linear-gradient(to top,#000000bf 0%,#00000073 30%,#0000 70%)}