.cms-monuments-wrap,.cms-single-monument{--cms-bg:#efe9dc;--cms-surface:#f7f3eb;--cms-surface-2:#f3eee4;--cms-text:#2f3136;--cms-muted:#66758b;--cms-accent:#0d72d9;--cms-border:rgba(47,49,54,.06);--cms-shadow:0 20px 60px rgba(28,42,59,.06);--cms-shadow-soft:0 8px 28px rgba(28,42,59,.05);color:var(--cms-text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.cms-monuments-wrap{max-width:1220px;margin:0 auto;padding:56px 28px 72px;background:var(--cms-bg);border-radius:34px}
.cms-template-wrap{width:100%}
.cms-single-shell{max-width:1240px;margin:0 auto;padding:48px 24px 90px}
.cms-monuments-kicker{font-size:14px;font-weight:700;letter-spacing:.01em;margin-bottom:16px}
.cms-monuments-heading-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:48px;align-items:start}
.cms-monuments-header h2{font-size:clamp(1.9rem,3vw,2.9rem);line-height:1.08;margin:0;font-weight:800;letter-spacing:-.03em;max-width:8ch}
.cms-single-copy h1{font-size:clamp(2.15rem,3.3vw,3.3rem);line-height:1.02;margin:0;font-weight:800;letter-spacing:-.035em;max-width:10ch}
.cms-monuments-intro,.cms-single-description,.cms-single-address,.cms-single-lead{font-size:1.08rem;line-height:1.85;color:var(--cms-muted)}
.cms-monuments-intro{max-width:34ch;padding-top:8px}
.cms-accent-line{display:inline-block;width:48px;height:3px;background:var(--cms-accent);margin-top:28px;border-radius:999px}
.cms-filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.cms-filter-btn{border:1px solid rgba(47,49,54,.08);background:rgba(255,255,255,.72);color:var(--cms-text);padding:11px 16px;border-radius:999px;cursor:pointer;font-weight:600;transition:.2s ease;box-shadow:var(--cms-shadow-soft)}
.cms-filter-btn.is-active,.cms-filter-btn:hover{background:var(--cms-text);color:#fff}
.cms-monuments-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:34px}
.cms-monument-card{background:rgba(255,255,255,.56);backdrop-filter:blur(8px);border-radius:28px;overflow:hidden;box-shadow:var(--cms-shadow);border:1px solid rgba(255,255,255,.45);transition:transform .25s ease,box-shadow .25s ease}
.cms-monument-card:hover{transform:translateY(-4px);box-shadow:0 26px 70px rgba(28,42,59,.10)}
.cms-monument-link{color:inherit;text-decoration:none;display:block;height:100%}
.cms-monument-image{aspect-ratio:4/3;background:#dcd4c4}
.cms-monument-image img,.cms-single-featured img,.cms-slide img,.cms-gallery-item img{width:100%;height:100%;object-fit:cover;display:block}
.cms-monument-image-placeholder{width:100%;min-height:320px;display:grid;place-items:center;color:var(--cms-muted);background:#e2dccd;border-radius:24px}
.cms-monument-content{padding:22px 22px 24px}
.cms-card-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.cms-card-tags span{display:inline-flex;align-items:center;padding:6px 10px;background:rgba(13,114,217,.08);color:var(--cms-accent);border-radius:999px;font-size:.79rem;font-weight:700}
.cms-card-tags-single{margin:20px 0 14px}
.cms-monument-content h3{margin:0 0 10px;font-size:1.35rem;line-height:1.2;letter-spacing:-.02em}
.cms-monument-content p{margin:0 0 18px;color:var(--cms-muted);line-height:1.7}.cms-read-more{font-weight:700;color:var(--cms-accent)}
.cms-single-hero{display:grid;grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr);gap:46px;align-items:start;margin-bottom:40px}
.cms-single-copy{padding-top:6px}
.cms-single-featured{display:flex;flex-direction:column;gap:24px}
.cms-slider-shell{position:relative;border-radius:34px;overflow:hidden;box-shadow:0 24px 70px rgba(28,42,59,.10);background:#d8d1c2}
.cms-slider{position:relative;overflow:hidden;min-height:460px}
.cms-slider-track{display:flex;transition:transform .45s ease;width:100%}
.cms-slide{flex:0 0 100%;min-height:460px;background:#e3dccd}
.cms-lightbox-trigger{display:block;width:100%;height:100%}
.cms-slider-btn{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:none;border-radius:999px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);color:var(--cms-text);font-size:1.7rem;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,.14);z-index:3}
.cms-slider-prev{left:18px}.cms-slider-next{right:18px}
.cms-slider-dots{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:999px;background:rgba(47,49,54,.28);backdrop-filter:blur(10px);z-index:3}
.cms-slider-dots button{width:6px;height:6px;border-radius:999px;border:none;background:rgba(255,255,255,.48);cursor:pointer;padding:0}
.cms-slider-dots button.is-active{background:#fff;transform:scale(1.15)}
.cms-gallery-section{margin-top:42px}
.cms-gallery-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.cms-gallery-header h2{margin:0;font-size:1.45rem;letter-spacing:-.02em}
.cms-gallery-header span{font-size:.95rem;color:var(--cms-muted)}
.cms-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cms-gallery-item{display:block;border-radius:22px;overflow:hidden;aspect-ratio:1/1;background:#ddd;box-shadow:var(--cms-shadow-soft);transition:transform .25s ease,box-shadow .25s ease}
.cms-gallery-item:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(0,0,0,.10)}
.cms-single-actions{margin-top:28px}
.cms-primary-btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:#fff;background:var(--cms-accent);padding:15px 22px;border-radius:999px;font-weight:700;box-shadow:0 14px 34px rgba(13,114,217,.22)}
.cms-single-section{margin-top:42px;background:rgba(255,255,255,.44);backdrop-filter:blur(10px);border-radius:30px;padding:30px;box-shadow:var(--cms-shadow-soft);border:1px solid rgba(255,255,255,.48)}
.cms-single-section h2{font-size:1.65rem;margin:0 0 18px;letter-spacing:-.02em}
.cms-map-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.cms-map-header a{color:var(--cms-accent);font-weight:700;text-decoration:none}.cms-map-wrap{border-radius:24px;overflow:hidden;box-shadow:var(--cms-shadow-soft)}
.cms-lightbox{position:fixed;inset:0;background:rgba(15,18,25,.92);z-index:99999;display:flex;align-items:center;justify-content:center}
.cms-lightbox[hidden]{display:none!important}
.cms-lightbox-inner{width:min(92vw,1200px);height:min(86vh,900px);display:flex;align-items:center;justify-content:center}
.cms-lightbox-inner img{max-width:100%;max-height:100%;display:block;border-radius:18px}
.cms-lightbox-close,.cms-lightbox-nav{position:absolute;border:none;color:#fff;background:rgba(255,255,255,.12);width:52px;height:52px;border-radius:999px;cursor:pointer;font-size:2rem;line-height:1}
.cms-lightbox-close{top:22px;right:22px}.cms-lightbox-prev{left:22px;top:50%;transform:translateY(-50%)}.cms-lightbox-next{right:22px;top:50%;transform:translateY(-50%)}
body.cms-lightbox-open{overflow:hidden}
@media (max-width:980px){.cms-monuments-heading-grid,.cms-single-hero,.cms-monuments-grid,.cms-gallery-grid{grid-template-columns:1fr}.cms-slider,.cms-slide{min-height:320px}.cms-gallery-header{flex-direction:column;align-items:flex-start}.cms-slider-dots{bottom:14px;padding:6px 10px;gap:6px}.cms-slider-dots button{width:6px;height:6px}.cms-monuments-wrap{padding:34px 18px 48px;border-radius:24px}.cms-single-shell{padding:30px 18px 60px}}
.cms-monument-card.is-large{grid-column:span 2;}


.cms-monument-card{transform:translateY(0) scale(1);will-change:transform,box-shadow}
.cms-monument-card .cms-monument-image img{transition:transform .45s ease,filter .35s ease}
.cms-monument-card:hover{transform:translateY(-6px) scale(1.01);box-shadow:0 28px 72px rgba(28,42,59,.12)}
.cms-monument-card:hover .cms-monument-image img{transform:scale(1.04);filter:saturate(1.02)}
.cms-monument-card .cms-read-more{display:inline-flex;align-items:center;gap:6px;transition:transform .25s ease,opacity .25s ease}
.cms-monument-card:hover .cms-read-more{transform:translateX(4px)}

.cms-monuments-map-shell{max-width:1240px;margin:0 auto;padding:42px 24px 70px}
.cms-monuments-map-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.85fr);gap:28px;align-items:end;margin-bottom:22px}
.cms-monuments-map-header h2{margin:8px 0 0;font-size:clamp(1.9rem,3vw,2.8rem);line-height:1.08;letter-spacing:-.03em}
.cms-monuments-map-copy{color:var(--cms-muted);line-height:1.8;font-size:1.02rem}
.cms-all-monuments-map{border-radius:30px;overflow:hidden;box-shadow:var(--cms-shadow);border:1px solid rgba(255,255,255,.48)}
.cms-map-popup-card{width:220px;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.cms-map-popup-card img{width:100%;height:118px;object-fit:cover;display:block;border-radius:12px;margin-bottom:10px}
.cms-map-popup-card h3{margin:0 0 6px;font-size:1rem;line-height:1.25}
.cms-map-popup-card p{margin:0 0 8px;color:var(--cms-muted);font-size:.9rem;line-height:1.45}
.cms-map-popup-card a{color:var(--cms-accent);text-decoration:none;font-weight:700;font-size:.92rem}
@media (max-width:980px){.cms-monuments-map-header{grid-template-columns:1fr}.cms-monuments-map-shell{padding:30px 18px 60px}}


/* v1.8.0 equal front card image heights */
.cms-monuments-grid{
    align-items:stretch;
}
.cms-monument-card{
    height:100%;
}
.cms-monument-link{
    display:flex;
    flex-direction:column;
}
.cms-monument-image{
    aspect-ratio:auto;
    height:300px;
    min-height:300px;
    max-height:300px;
    overflow:hidden;
}
.cms-monument-content{
    flex:1 1 auto;
}
@media (max-width:980px){
    .cms-monument-image{
        height:260px;
        min-height:260px;
        max-height:260px;
    }
}


/* Admin drag sorting helper */
.wp-list-table .cms-sortable-placeholder td{
    height:56px !important;
    background:#f3f6fb !important;
    border:2px dashed #0d72d9 !important;
}


/* v2.0.0 address styling */
.cms-single-address{
    margin-top:10px;
    font-size:1.05rem;
}
.cms-address-strong{
    font-weight:700;
    display:inline-block;
    margin-top:4px;
}

/* equal slider height */
.cms-slider,
.cms-slide{
    height:520px;
    min-height:520px;
    max-height:520px;
}
.cms-slide img{
    height:100%;
    object-fit:cover;
}
@media (max-width:980px){
    .cms-slider,
    .cms-slide{
        height:340px;
        min-height:340px;
        max-height:340px;
    }
}


/* v2.1.0 featured card height + hover zoom + fade slider */
.cms-monument-card.is-large .cms-monument-image{
    height:75vh;
    min-height:560px;
    max-height:900px;
}
.cms-monument-card .cms-monument-image{
    overflow:hidden;
}
.cms-monument-card .cms-monument-image img{
    transition:transform .6s ease, filter .45s ease;
}
.cms-monument-card:hover .cms-monument-image img{
    transform:scale(1.06);
    filter:saturate(1.05);
}

.cms-slider{
    position:relative;
}
.cms-slider-track{
    display:block !important;
    position:relative;
    width:100%;
    height:100%;
    transform:none !important;
}
.cms-slide{
    position:absolute;
    inset:0;
    opacity:0;
    visibility:hidden;
    transition:opacity .7s ease, visibility .7s ease;
    z-index:1;
}
.cms-slide.is-active{
    opacity:1;
    visibility:visible;
    z-index:2;
}
.cms-slide img{
    transition:transform .7s ease;
}
.cms-slide:hover img{
    transform:scale(1.03);
}

@media (max-width:980px){
    .cms-monument-card.is-large .cms-monument-image{
        height:52vh;
        min-height:360px;
        max-height:520px;
    }
}


/* v2.2.0 detail hero tuning */
.cms-monument-card.is-large .cms-monument-image{
    height:65vh;
    min-height:480px;
    max-height:760px;
}

.cms-single-hero{
    grid-template-columns:minmax(0,1fr) minmax(420px,1fr);
    gap:40px;
    align-items:stretch;
}

.cms-single-copy{
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    height:100%;
    max-width:none;
    width:100%;
}

.cms-single-copy h1{
    font-size:clamp(1.8rem,2.7vw,2.7rem);
    line-height:1.02;
    max-width:none;
    width:100%;
}

.cms-single-lead,
.cms-single-address{
    max-width:none;
    width:100%;
}

@media (max-width:980px){
    .cms-monument-card.is-large .cms-monument-image{
        height:48vh;
        min-height:320px;
        max-height:460px;
    }

    .cms-single-copy h1{
        font-size:clamp(1.7rem,7vw,2.3rem);
    }
}


/* v2.3.0 map messages */
.cms-map-note{
    margin-top:14px;
    color:var(--cms-muted);
    font-size:.95rem;
    line-height:1.6;
}
.cms-map-empty-state{
    background:rgba(255,255,255,.44);
    border:1px solid rgba(255,255,255,.48);
    border-radius:24px;
    padding:22px 24px;
    color:var(--cms-muted);
    line-height:1.7;
    box-shadow:var(--cms-shadow-soft);
}


/* v2.4.0 sortable/admin + map note */
#cms-enable-drag-order,
#cms-save-drag-order{
    vertical-align:middle;
}
.wp-list-table tbody#the-list tr{
    touch-action:none;
}
.wp-list-table .cms-sortable-placeholder td{
    height:56px !important;
    background:#f3f6fb !important;
    border:2px dashed #0d72d9 !important;
}


/* v2.5.0 custom map pin + map filters */
.cms-map-filters{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin:0 0 18px;
}
.cms-map-filter-btn{
    border:1px solid rgba(47,49,54,.08);
    background:rgba(255,255,255,.72);
    color:var(--cms-text);
    padding:10px 15px;
    border-radius:999px;
    cursor:pointer;
    font-weight:600;
    transition:.2s ease;
    box-shadow:var(--cms-shadow-soft);
}
.cms-map-filter-btn.is-active,
.cms-map-filter-btn:hover{
    background:var(--cms-text);
    color:#fff;
}
.cms-custom-pin{
    width:22px;
    height:22px;
    background:linear-gradient(180deg,#0d72d9 0%, #005fcb 100%);
    border:3px solid #fff;
    border-radius:50% 50% 50% 0;
    transform:rotate(-45deg);
    box-shadow:0 10px 20px rgba(13,114,217,.28);
    position:relative;
}
.cms-custom-pin::after{
    content:'';
    position:absolute;
    width:8px;
    height:8px;
    background:#fff;
    border-radius:50%;
    left:4px;
    top:4px;
}


/* v2.6.0 map tuning */
.cms-monuments-map-header{
    grid-template-columns:minmax(0,1fr);
    margin-bottom:18px;
}
.cms-custom-pin{
    width:30px;
    height:30px;
    border-width:4px;
}
.cms-custom-pin::after{
    width:10px;
    height:10px;
    left:6px;
    top:6px;
}
.cms-custom-pin-wrapper{
    background:transparent;
    border:none;
}
.cms-single-openstreet-map,
.cms-all-monuments-map{
    min-height:430px;
}


/* v2.7.0 hover popup styling */
.leaflet-popup-content-wrapper{
    border-radius:18px;
    box-shadow:0 14px 40px rgba(28,42,59,.18);
}
.leaflet-popup-content{
    margin:12px !important;
}
.leaflet-popup-tip{
    box-shadow:none !important;
}
.cms-map-popup-card{
    width:220px;
}
.cms-map-popup-card img{
    border-radius:12px;
}
.cms-map-popup-card h3{
    font-size:1rem;
    margin:0 0 6px;
}


/* v2.7.1 mobile/detail fixes */
.cms-single-hero--stacked{
    grid-template-columns:minmax(0,1fr);
    gap:24px;
    margin-bottom:0;
}
.cms-gallery-section--lead .cms-slider-shell{
    margin-bottom:18px;
}
.cms-single-meta-section{
    display:flex;
    flex-wrap:wrap;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
}
.cms-single-actions-back{
    display:flex;
    justify-content:center;
    margin-top:34px;
}
.cms-back-btn{
    border:none;
    cursor:pointer;
}
@media (max-width:980px){
    .cms-monuments-grid{
        grid-template-columns:1fr !important;
        gap:24px;
    }
    .cms-monument-card.is-large{
        grid-column:span 1 !important;
    }
    .cms-monument-card .cms-monument-image,
    .cms-monument-card.is-large .cms-monument-image{
        height:220px !important;
        min-height:220px !important;
        max-height:220px !important;
    }
    .cms-monument-content{
        padding:22px 22px 24px;
    }
    .cms-single-hero,
    .cms-single-hero--stacked{
        grid-template-columns:1fr !important;
        gap:22px !important;
    }
    .cms-single-copy,
    .cms-single-featured,
    .cms-single-copy h1,
    .cms-single-lead,
    .cms-single-address{
        width:100% !important;
        max-width:100% !important;
        min-width:0;
    }
    .cms-single-copy h1{
        font-size:clamp(1.8rem,8vw,2.4rem) !important;
        word-break:normal;
        overflow-wrap:break-word;
    }
    .cms-slider,
    .cms-slide{
        height:260px !important;
        min-height:260px !important;
        max-height:260px !important;
    }
    .cms-gallery-grid{
        grid-template-columns:1fr !important;
    }
    .cms-single-section{
        padding:22px 18px;
        border-radius:22px;
    }
    .cms-single-openstreet-map,
    .cms-all-monuments-map{
        min-height:300px;
    }
}


/* v2.7.2 single detail order */
.cms-gallery-section--lead .cms-gallery-grid{display:none}
