
:root{
  --paper:#fdf8ee; --paper2:#fffdf7; --ink:#33475f; --ink-soft:#5b7186;
  --mary:#3d6fb4; --mary-deep:#2c548c; --sky:#a8c8ec; --sky-soft:#e3eefb;
  --pink:#f6c6d5; --rose:#e58bb1; --gold:#e3ac3f; --sage:#8fae94; --cream:#f7ecd2;
  --green:#58a05c; --blue:#4a90c2; --purple:#9a7bc8; --amber:#cf9a2e; --orange:#e07b39; --red:#d95f5f;
  --radius:20px; --shadow:0 10px 30px rgba(61,111,180,.13); --shadow-sm:0 4px 14px rgba(61,111,180,.10);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{overflow-x:clip}
body{font-family:"Be Vietnam Pro",system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--paper);background-image:radial-gradient(rgba(227,172,63,.07) 1.1px,transparent 1.3px);background-size:22px 22px;color:var(--ink);line-height:1.6;font-size:16px}
img{max-width:100%;display:block}
a{color:var(--mary);text-decoration:none}
button{font-family:inherit;cursor:pointer}
.wrap{max-width:1180px;margin:0 auto;padding:0 18px}
h1,h2,h3{line-height:1.25;color:var(--ink)}
.sec-title{font-size:clamp(1.45rem,3.4vw,2rem);font-weight:800;display:flex;align-items:center;gap:.55rem}
.sec-sub{color:var(--ink-soft);margin-top:.35rem;max-width:640px}
section{padding:52px 0 8px}

/* ---------- Header ---------- */
header{position:sticky;top:0;z-index:1200;background:rgba(255,255,255,.86);-webkit-backdrop-filter:saturate(160%) blur(12px);backdrop-filter:saturate(160%) blur(12px);box-shadow:0 4px 18px rgba(61,111,180,.10);transition:box-shadow .25s ease}
header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);pointer-events:none}
header.scrolled{box-shadow:0 6px 22px rgba(61,111,180,.20)}
.header-in{display:flex;align-items:center;gap:14px;padding-top:12px;padding-bottom:14px;position:relative;z-index:2;transition:padding .25s ease}
header.scrolled .header-in{padding-top:8px;padding-bottom:8px}
.logo{display:flex;align-items:center;gap:11px;font-family:"Playfair Display",serif;font-weight:700;font-size:1.55rem;color:var(--mary-deep);letter-spacing:.2px}
.logo .brand-mark,.foot-brand .brand-mark{width:47px;height:47px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px #fff,0 0 0 5.5px var(--sky),0 8px 18px rgba(61,111,180,.30);flex:none;transition:width .25s ease,height .25s ease}
header.scrolled .logo .brand-mark{width:40px;height:40px}
.logo small{display:block;font-family:"Be Vietnam Pro",sans-serif;font-size:.6rem;font-weight:700;color:var(--rose);letter-spacing:1.6px;margin-top:1px}
nav.main-nav{margin-left:auto;display:flex;gap:4px;align-items:center}
nav.main-nav a{color:var(--ink);font-weight:600;font-size:.95rem;padding:9px 15px;border-radius:999px;transition:background .18s ease,color .18s ease}
nav.main-nav a:hover{background:var(--sky-soft);color:var(--mary-deep)}
nav.main-nav a.active{background:linear-gradient(135deg,var(--mary),#5b8fd0);color:#fff;box-shadow:var(--shadow-sm)}
nav.main-nav a.nav-search{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:38px;height:38px;padding:0;margin-left:4px;color:var(--mary-deep);background:var(--sky-soft)}
nav.main-nav a.nav-search:hover{background:var(--sky);color:var(--mary-deep)}
.ns-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.btn{display:inline-flex;align-items:center;gap:.45rem;border:none;border-radius:999px;padding:11px 22px;font-weight:700;font-size:.95rem;background:linear-gradient(135deg,var(--mary),#5b8fd0);color:#fff;box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.btn.ghost{background:#fff;color:var(--mary-deep);border:2px solid var(--sky)}
.btn.small{padding:8px 16px;font-size:.88rem}
.burger{display:none;margin-left:auto;background:linear-gradient(180deg,#fff,var(--sky-soft));border:2px solid var(--sky);border-radius:50%;width:44px;height:44px;font-size:1.15rem;color:var(--mary-deep);box-shadow:var(--shadow-sm)}
@media(max-width:900px){
  nav.main-nav{display:none;position:absolute;top:calc(100% + 8px);right:14px;left:14px;background:#fff;border:1.5px solid #e3edf9;border-radius:18px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;padding:10px}
  nav.main-nav.open{display:flex;animation:navDrop .22s ease both}
  nav.main-nav a{padding:12px 14px}
  nav.main-nav a.nav-search{width:auto;height:auto;margin-left:0;justify-content:flex-start;background:transparent}
  nav.main-nav a.nav-search:hover{background:var(--sky-soft)}
  .ns-text{position:static;width:auto;height:auto;overflow:visible;clip:auto}
  .burger{display:block}
  .logo small{display:none}
}
@keyframes navDrop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* ---------- Sample ribbon ---------- */
.sample-ribbon{background:linear-gradient(90deg,var(--mary-deep),var(--mary));color:#fdf3d9;text-align:center;font-size:.8rem;font-weight:600;letter-spacing:.3px;padding:6px 12px}
.sample-ribbon span{color:var(--gold)}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#cfe4fa 0%,#e8f1fd 55%,var(--paper) 100%)}
/* Ảnh dồn sang phải để Đức Mẹ (giữa ảnh) không nằm sau chữ; mép trái mờ dần vào nền. */
.hero-bg{position:absolute;top:0;bottom:0;right:0;width:64%;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30%);mask-image:linear-gradient(90deg,transparent 0,#000 30%)}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center top;opacity:.95}
/* Cùng khung với .hero-bg nhưng nằm ngoài, để không bị mask làm mờ. */
.hero-sparks{position:absolute;top:0;bottom:0;right:0;width:64%;pointer-events:none}
.hero-sparks .spark{position:absolute;transform:translate(-50%,-50%);font-size:calc(var(--s,1rem)*1.7);line-height:1;color:#fff;text-shadow:0 0 3px #fff,0 0 9px rgba(255,196,64,1),0 0 20px rgba(255,186,60,.85);animation:spark var(--d,3s) ease-in-out var(--l,0s) infinite}
.hero-sparks .spark.gold{color:#ffd45e}
.hero-sparks .spark.pink{color:#ffc2d8;text-shadow:0 0 3px #fff,0 0 9px rgba(236,120,170,.95),0 0 20px rgba(255,170,205,.8)}
@keyframes spark{0%,100%{opacity:.15;transform:translate(-50%,-50%) scale(.6) rotate(0deg)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.15) rotate(25deg)}}
.hero-veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(253,248,238,.94) 0%,rgba(253,248,238,.8) 40%,rgba(253,248,238,0) 58%)}
.hero-in{position:relative;padding:64px 0 74px;max-width:640px}
.hero h1{font-size:clamp(2rem,5.4vw,3.3rem);font-weight:900;color:var(--mary-deep)}
.hero h1 .hl{color:var(--rose)}
.hero p.lead{margin-top:14px;font-size:clamp(1rem,2.4vw,1.13rem);color:var(--ink)}
.hero-search{margin-top:24px;display:flex;background:#fff;border-radius:999px;padding:6px;box-shadow:var(--shadow);max-width:520px}
.hero-search input{flex:1;border:none;outline:none;font-size:1rem;padding:8px 14px;font-family:inherit;min-width:0;background:transparent}
.hero-stats{margin-top:22px;display:flex;flex-wrap:wrap;gap:9px}
.chip{background:rgba(255,255,255,.85);border:1.5px solid #d9e6f5;border-radius:999px;padding:6px 14px;font-size:.86rem;font-weight:600;color:var(--mary-deep)}
.chip b{color:var(--rose)}
.quick-links{margin-top:14px;font-size:.9rem;color:var(--ink-soft)}
.quick-links a{font-weight:600;text-decoration:underline dotted;text-underline-offset:3px;margin-right:10px}
.twinkle{position:absolute;color:#f2c14e;animation:tw 2.8s ease-in-out infinite;pointer-events:none}
@keyframes tw{0%,100%{opacity:.25;transform:scale(.8) rotate(0deg)}50%{opacity:1;transform:scale(1.15) rotate(20deg)}}
.cloud{position:absolute;opacity:.75;animation:drift 26s linear infinite;pointer-events:none}
@keyframes drift{from{transform:translateX(-30px)}to{transform:translateX(30px)}}
@media(max-width:760px){
  .hero-in{padding:42px 0 52px}
  .hero-bg img{transform:scale(1.6);transform-origin:50% 8%}
}

/* ---------- Map ---------- */
.map-shell{margin-top:22px;background:#fff;border-radius:26px;box-shadow:var(--shadow);padding:10px;border:2px solid #eef3e4}
#map{height:440px;width:100%;border-radius:18px;z-index:1;background:#dcebfb;font-family:inherit;-webkit-tap-highlight-color:transparent}
.map-fallback{position:relative;height:440px;border-radius:18px;overflow:hidden;background:linear-gradient(180deg,#bcd9f7,#dcefff 60%,#eaf6ec)}
.map-fallback .fb-pin{position:absolute;transform:translate(-50%,-100%);background:none;border:none;font-size:0}
.legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.legend .lg{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1.5px solid #e6ddc8;border-radius:999px;padding:5px 13px;font-size:.83rem;font-weight:600}
.dot{width:12px;height:12px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 2px rgba(255,255,255,.65)}
.pin-wrap{background:none;border:none}
.map-pin{width:30px;height:30px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);border:2.5px solid #fff;box-shadow:0 5px 12px rgba(40,70,110,.35);display:grid;place-items:center;animation:pinIn .45s ease both}
.map-pin span{transform:rotate(45deg);color:#fff;font-size:14px;line-height:1}
@keyframes pinIn{from{transform:rotate(-45deg) translateY(-14px) scale(.6);opacity:0}to{transform:rotate(-45deg) translateY(0) scale(1);opacity:1}}
.leaflet-popup-content-wrapper{border-radius:16px;box-shadow:var(--shadow)}
.leaflet-popup-content{margin:0;width:250px!important}
.pop-card{padding:0 0 12px}
.pop-card .pop-img{height:110px;border-radius:16px 16px 0 0;background-size:cover;background-position:center;display:flex;align-items:flex-end;padding:8px}
.pop-card .pop-body{padding:10px 14px 0}
.pop-card h4{font-size:1.02rem;margin-bottom:2px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;overflow-wrap:anywhere}
.pop-card .pop-meta{font-size:.82rem;color:var(--ink-soft);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
.pop-card p{font-size:.86rem;margin:7px 0 10px;color:var(--ink)}
.pop-card p:not(.pop-meta){display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}
/* Leaflet ép màu link xanh, đè lên .btn */
.leaflet-container .pop-card a.btn,.leaflet-container .pop-card a.btn:hover{color:#fff;display:flex;justify-content:center;width:100%}
@media(max-width:760px){#map,.map-fallback{height:330px}.leaflet-popup-content{width:220px!important}}

/* ---------- Badges & cards ---------- */
.badge{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:700;border-radius:999px;padding:4px 11px;color:#fff;white-space:nowrap}
.badge .dot{background:rgba(255,255,255,.9);width:8px;height:8px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;margin-top:24px}
.card{background:var(--paper2);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);border:1.5px solid #f0e7d2;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease;cursor:pointer}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.card-img{height:150px;position:relative;background-size:cover;background-position:center;display:flex;align-items:flex-start;justify-content:space-between;padding:10px}
.card-img:after{content:"";position:absolute;left:0;right:0;bottom:0;height:48%;background:linear-gradient(180deg,rgba(51,71,95,0),rgba(51,71,95,.16));pointer-events:none}
.card-img .year-badge{background:rgba(255,255,255,.94);color:var(--mary-deep);font-weight:800;font-size:.8rem;border-radius:999px;padding:3px 11px;position:relative;z-index:1;box-shadow:var(--shadow-sm)}
.card-img .big-star{position:absolute;right:12px;bottom:6px;font-size:2rem;color:rgba(255,255,255,.55)}
.card-body{padding:15px 17px 17px;display:flex;flex-direction:column;gap:6px;flex:1}
.card-body h3{font-size:1.08rem}
.card-meta{font-size:.83rem;color:var(--ink-soft);font-weight:600}
.card-sum{font-size:.9rem;color:var(--ink);flex:1}
.card-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:6px}
.card-badge{margin-top:10px}
.feat-badge{position:absolute;top:10px;right:10px;background:linear-gradient(135deg,#f7b733,#f08c2e);color:#fff;font-size:.72rem;font-weight:800;padding:4px 10px;border-radius:999px;box-shadow:0 4px 10px rgba(240,140,46,.45);letter-spacing:.02em;z-index:2}
.card-link{font-weight:700;font-size:.9rem;white-space:nowrap;flex:none}
/* Cả thẻ tin bấm được nhờ link kéo giãn; giới hạn trong .article-card để không đụng thẻ nơi. */
.article-card{position:relative}
.article-card .card-link::after{content:"";position:absolute;inset:0}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}
.reveal.in{opacity:1;transform:none}

/* ---------- Warning / labels ---------- */
.warn-box{margin-top:24px;background:linear-gradient(135deg,#fdf1ec,#fdf8ee);border:2px dashed #efb49b;border-radius:26px;padding:26px}
.label-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:22px}
.label-item{background:#fff;border-radius:16px;padding:15px 17px;box-shadow:var(--shadow-sm);display:flex;gap:12px;align-items:flex-start}
.label-item p{font-size:.88rem;color:var(--ink-soft)}
.label-item h4{font-size:.98rem;margin-bottom:2px}

/* ---------- Listing ---------- */
.toolbar{margin-top:22px;background:#fff;border-radius:20px;box-shadow:var(--shadow-sm);padding:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;border:1.5px solid #f0e7d2}
.toolbar label{font-size:.78rem;font-weight:700;color:var(--ink-soft);display:block;margin-bottom:4px}
.toolbar input,.toolbar select{width:100%;border:1.5px solid #dbe4ee;border-radius:12px;padding:10px 12px;font-family:inherit;font-size:.94rem;background:#fff;color:var(--ink);outline:none}
.toolbar input:focus,.toolbar select:focus{border-color:var(--mary)}
.result-count{margin-top:18px;font-weight:600;color:var(--ink-soft)}
.empty-state{margin-top:26px;background:#fff;border:2px dashed #d9e6f5;border-radius:20px;padding:34px;text-align:center;color:var(--ink-soft)}

/* ---------- Detail ---------- */
.detail-hero{border-radius:26px;overflow:hidden;box-shadow:var(--shadow);position:relative;background:#dcebfb}
.detail-hero .dh-img{height:340px;background-size:cover;background-position:center}
.detail-hero .dh-img[data-lightbox-src]{cursor:zoom-in}
.detail-hero .dh-veil{position:absolute;inset:0;background:linear-gradient(180deg,transparent 38%,rgba(38,58,88,.72));pointer-events:none}
.detail-hero .dh-text{position:absolute;left:0;right:0;bottom:0;padding:22px 26px;color:#fff;pointer-events:none}
.dh-zoom{position:absolute;top:14px;right:14px;z-index:2;display:inline-flex;align-items:center;gap:6px;border:none;border-radius:999px;padding:8px 15px;font-size:.85rem;font-weight:700;color:var(--mary-deep);background:rgba(255,255,255,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease}
.dh-zoom:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
@media(max-width:760px){.dh-zoom{padding:8px 11px;font-size:1rem;top:10px;right:10px}.dh-zoom-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}

/* ---------- Lightbox ---------- */
.lightbox{border:none;padding:0;background:transparent;max-width:94vw;max-height:92vh;overflow:visible;margin:auto;color:#fff;text-align:center}
.lightbox::backdrop{background:rgba(20,32,52,.88);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.lightbox[open]{animation:lbZoom .22s ease both}
.lightbox[open]::backdrop{animation:lbFade .22s ease both}
.lightbox img{max-width:94vw;max-height:84vh;object-fit:contain;border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.45);margin:0 auto}
.lightbox img{transition:opacity .2s ease;touch-action:pan-y}
.lightbox.is-loading img{opacity:.25}
.lb-caption{margin-top:10px;font-size:.88rem;color:#fff;text-align:center}
.lb-caption[hidden]{display:none}
.lb-bar[hidden],.lb-nav[hidden],.lb-count[hidden]{display:none}
.lb-bar{display:contents}
.lb-nav{position:absolute;top:50%;z-index:2;width:46px;height:46px;margin-top:-23px;border-radius:50%;border:1.5px solid rgba(255,255,255,.55);background:rgba(20,32,52,.5);color:#fff;font-size:1.7rem;line-height:1;display:grid;place-items:center;padding-bottom:4px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .18s ease,transform .18s ease}
.lb-nav:hover{background:rgba(20,32,52,.75)}
.lb-nav:focus-visible,.lb-close:focus-visible{outline:3px solid #fff;outline-offset:2px}
.lb-prev{left:10px}
.lb-next{right:10px}
.lb-count{position:absolute;top:10px;left:10px;z-index:2;background:rgba(20,32,52,.6);color:#fff;font-size:.8rem;font-weight:600;border-radius:999px;padding:3px 12px}
@media(max-width:760px){
  .lightbox img{max-height:70vh}
  .lb-bar{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:10px}
  .lb-bar[hidden]{display:none}
  .lb-nav{position:static;margin:0;width:40px;height:40px;font-size:1.5rem}
  .lb-count{position:static;background:none;padding:0;font-size:.9rem;min-width:56px}
}
.lb-close{position:absolute;top:-14px;right:-14px;z-index:2;width:38px;height:38px;border-radius:50%;border:none;background:#fff;color:var(--mary-deep);font-size:1rem;font-weight:700;box-shadow:var(--shadow)}
@media(max-width:760px){.lb-close{top:8px;right:8px}}
@keyframes lbZoom{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
@keyframes lbFade{from{opacity:0}to{opacity:1}}
.detail-hero .dh-text h1{color:#fff;font-size:clamp(1.7rem,4.6vw,2.6rem)}
.detail-hero .dh-text .card-meta{color:#dce8f8}
@media(max-width:760px){.detail-hero .dh-img{height:230px}}
.detail-grid{display:grid;grid-template-columns:1fr 330px;gap:24px;margin-top:26px;align-items:start}
@media(max-width:920px){
  .detail-grid{display:flex;flex-direction:column}
  .detail-grid aside{display:contents}
}
.panel{background:#fff;border-radius:20px;box-shadow:var(--shadow-sm);border:1.5px solid #f0e7d2;padding:22px;margin-bottom:20px}
.panel h3{font-size:1.15rem;margin-bottom:10px;display:flex;gap:.5rem;align-items:center}
.panel p,.panel li{font-size:.95rem}
.panel ul{padding-left:20px}
.discern-box{border-radius:16px;padding:16px 18px;font-size:.93rem}
.timeline{position:relative;padding-left:26px}
.timeline:before{content:"";position:absolute;left:8px;top:6px;bottom:6px;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--sky),var(--pink))}
.tl-item{position:relative;padding-bottom:18px}
.tl-item:before{content:"";position:absolute;left:-24px;top:5px;width:13px;height:13px;border-radius:50%;background:#fff;border:3.5px solid var(--mary)}
.tl-item .tl-year{font-weight:800;color:var(--mary-deep)}
/* Kho hình: .photo-wall (trang riêng, masonry) và .gallery (xem trước ở trang chi tiết) dùng chung .pw-item */
.pw-item{display:block;width:100%;padding:0;border:1.5px solid #f0e7d2;border-radius:16px;overflow:hidden;background:#fff;box-shadow:var(--shadow-sm);text-align:left;color:var(--ink);cursor:zoom-in;transition:transform .2s ease,box-shadow .2s ease}
.pw-item:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.pw-item:focus-visible{outline:3px solid var(--mary);outline-offset:2px}
.pw-img{display:block;position:relative;overflow:hidden;background:var(--cream)}
.pw-img img{width:100%;height:auto;min-height:150px;transition:transform .35s ease}
.pw-item:hover .pw-img img{transform:scale(1.03)}
.pw-kind{position:absolute;top:8px;left:8px;background:rgba(255,255,255,.92);color:var(--mary-deep);font-size:.72rem;font-weight:700;border-radius:999px;padding:2px 10px;box-shadow:var(--shadow-sm)}
.pw-cap{display:block;padding:10px 12px 12px;font-size:.84rem;line-height:1.45;background:#fff}
.pw-credit{display:block;margin-top:3px;font-size:.76rem;font-style:italic;color:var(--ink-soft)}
.photo-wall{columns:3 260px;column-gap:16px;margin-top:18px}
.photo-wall .pw-item{margin:0 0 16px;break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid}
@media(max-width:900px){.photo-wall{columns:2}}
@media(max-width:520px){.photo-wall{columns:1}}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.gallery .pw-item{display:flex;flex-direction:column}
.gallery .pw-img img{aspect-ratio:4/3;object-fit:cover;min-height:0}
.gallery .pw-cap{font-size:.76rem;padding:7px 9px 9px}
.gallery .pw-credit{font-size:.7rem}
.pw-item.pw-ph{cursor:default}
.pw-item.pw-ph:hover{transform:none;box-shadow:var(--shadow-sm)}
.pw-ph .pw-img{aspect-ratio:4/3;display:grid;place-items:center;font-size:1.7rem;color:rgba(255,255,255,.85);background:linear-gradient(135deg,#a8c8ec,#f6c6d5)}
@media(max-width:520px){.gallery{grid-template-columns:repeat(2,1fr)}}
.ext-link{display:flex;gap:10px;padding:11px 0;border-bottom:1.5px dashed #eee2c8;align-items:flex-start}
.ext-link:last-child{border-bottom:none}
.ext-link .src{font-size:.76rem;font-weight:700;color:var(--rose);text-transform:uppercase;letter-spacing:.4px}
.crumb{font-size:.88rem;color:var(--ink-soft);margin:20px 0 14px}
.crumb a{font-weight:600}

/* ---------- News strip / footer ---------- */
.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-top:24px}
.type-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.type-chips a{background:#fff;border:1.5px solid #d9e6f5;border-radius:999px;padding:7px 15px;font-size:.88rem;font-weight:600;color:var(--mary-deep);transition:background .18s ease,border-color .18s ease}
.type-chips a:hover{background:var(--sky-soft);border-color:var(--sky)}
.type-chips a.active{background:linear-gradient(135deg,var(--mary),#5b8fd0);border-color:var(--mary);color:#fff}
footer{position:relative;margin-top:90px;background:radial-gradient(rgba(227,172,63,.12) 1.1px,transparent 1.3px) 0 0/22px 22px,linear-gradient(180deg,#2c548c 0%,#1f3d68 100%);padding:34px 0 26px;color:#d6e3f5;font-size:.92rem}
.foot-wave{position:absolute;left:0;top:-59px;width:100%;height:60px;display:block;pointer-events:none}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}
footer h4{color:var(--gold);margin-bottom:10px;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:1.4px}
footer a{display:block;padding:3px 0;color:#d6e3f5}
footer a:hover{color:#fff;text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:4px}
.foot-brand{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.foot-brand .brand-mark{width:42px;height:42px;box-shadow:0 0 0 3px rgba(255,255,255,.9),0 0 0 5.5px var(--gold),0 8px 18px rgba(0,0,0,.25)}
.foot-name{font-family:"Playfair Display",serif;font-weight:700;font-size:1.5rem;color:#fff}
.foot-bottom{margin-top:30px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.foot-bottom a{display:inline;padding:0}
.foot-motto{font-family:"Playfair Display",serif;font-style:italic;font-weight:600;color:#fff}
@media(max-width:700px){.foot-bottom{flex-direction:column;text-align:center}}
.view{display:none}
.view.active{display:block}
@media (prefers-reduced-motion: reduce){
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}

/* ===== Bổ sung cho bản Laravel (phân trang + thân bài viết) ===== */
.pager{display:flex;gap:8px;justify-content:center;align-items:center;margin:30px 0 6px;flex-wrap:wrap}
.pager a,.pager span{min-width:38px;height:38px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:#fff;border:1.5px solid #e6ddf0;color:var(--ink);font-weight:600;text-decoration:none}
.pager a:hover{border-color:var(--mary);color:var(--mary-d)}
.pager .cur{background:var(--mary);border-color:var(--mary);color:#fff}
.pager .dis{opacity:.45}
.article-body p{margin-bottom:12px;line-height:1.75}
.article-body h2,.article-body h3,.article-body h4{margin:26px 0 10px;line-height:1.3}
.article-body h2{font-size:1.5rem;font-weight:800;color:var(--mary-deep)}
.article-body h3{font-size:1.25rem;font-weight:700;color:var(--mary)}
.article-body h4{font-size:1.08rem;font-weight:700;color:var(--ink)}
.article-body ul,.article-body ol{margin:0 0 14px;padding-left:1.6rem;line-height:1.75}
.article-body ul{list-style:disc}
.article-body ol{list-style:decimal}
.article-body li{margin-bottom:4px}
.article-body blockquote{margin:16px 0;padding:12px 18px;border-left:4px solid var(--gold);background:var(--cream);border-radius:0 12px 12px 0;font-style:italic;color:var(--ink-soft)}
.article-body blockquote p:last-child{margin-bottom:0}
.article-body img{max-width:100%;height:auto;border-radius:14px;margin:16px auto;display:block;cursor:zoom-in}
.article-body figure{margin:16px 0}
.article-body figcaption{text-align:center;font-size:.88rem;color:var(--ink-soft);margin-top:-6px}
.article-body a{text-decoration:underline;text-underline-offset:2px}
.article-body hr{border:0;border-top:1.5px solid var(--sky);margin:24px 0}
.article-hero{display:block;width:100%;margin-top:16px;padding:0;border:none;border-radius:16px;overflow:hidden;background:var(--cream);cursor:zoom-in}
.article-hero img{width:100%;max-height:420px;object-fit:cover}
.article-hero:focus-visible{outline:3px solid var(--mary);outline-offset:2px}
.sample-note{background:#fdf6e0;border:1.5px dashed #e3c56a;border-radius:14px;padding:14px 16px;color:#7a6414}

/* Thẻ nhỏ gọn cho khung cảnh báo (thay thẻ đầy đủ quá cao) */
.warn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:20px}
.warn-card{display:flex;align-items:center;gap:12px;background:#fff;border:1.5px solid #f0c9b8;border-radius:16px;padding:10px 12px;text-decoration:none;color:var(--ink);transition:transform .15s ease,box-shadow .15s ease}
.warn-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(179,64,42,.12)}
.warn-thumb{flex:0 0 58px;width:58px;height:58px;border-radius:12px;background-size:cover;background-position:center}
.warn-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.warn-info b{font-size:.98rem}
.warn-info small{color:#7a6a5f;font-size:.8rem}
.warn-go{margin-left:auto;color:#b3402a;font-weight:700;font-size:.85rem;white-space:nowrap}

/* Tinh chỉnh responsive sau vòng review 2026-10-29 */
/* Màn hẹp không đủ chỗ đặt chữ cạnh Đức Mẹ: ảnh thành banner phía trên chữ. */
@media(max-width:920px){
  .hero-bg{position:relative;width:100%;height:clamp(240px,46vw,380px);overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 72%,transparent);mask-image:linear-gradient(180deg,#000 72%,transparent)}
  .hero-veil{display:none}
  .hero-sparks{left:0;bottom:auto;width:100%;height:clamp(240px,46vw,380px)}
  .hero-in{padding-top:6px}
}
.logo .tld,.foot-name .tld{font-weight:400;color:var(--gold)}

/* =====================================================================
   Giao diện 2026-10-31: Đức Mẹ chibi bay, bản đồ, banner trang con,
   trang chi tiết thiết kế lại.
   ===================================================================== */

/* ---------- Đức Mẹ chibi bay ---------- */
.fly-mary{position:absolute;width:var(--fly-size,110px);aspect-ratio:320/376;pointer-events:none;z-index:3}
.fly-mary:before{content:"";position:absolute;inset:8% -6% 4%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,236,170,.75),rgba(255,236,170,.25) 60%,transparent);animation:flyGlow 4.8s ease-in-out infinite;z-index:-1}
.fly-body{display:block;width:100%;height:100%;animation:flyPath 9s ease-in-out infinite}
.fly-body img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 14px rgba(44,84,140,.22))}
.fly-twinkle{position:absolute;color:var(--gold);text-shadow:0 0 8px rgba(255,200,80,.9);line-height:1;animation:flyTwinkle 2.8s ease-in-out infinite}
.fly-twinkle.t1{top:4%;left:-8%;font-size:calc(var(--fly-size,110px)*.15)}
.fly-twinkle.t2{top:40%;right:-12%;font-size:calc(var(--fly-size,110px)*.12);animation-delay:.9s}
.fly-twinkle.t3{bottom:0;left:4%;font-size:calc(var(--fly-size,110px)*.1);animation-delay:1.7s}
.fly-say{position:absolute;right:calc(100% + 6px);top:12%;width:max-content;max-width:210px;background:#fff;color:var(--mary-deep);font-size:.82rem;font-weight:700;line-height:1.35;padding:9px 13px;border-radius:16px 16px 4px 16px;box-shadow:var(--shadow);border:1.5px solid #e3edf9;animation:saySway 9s ease-in-out infinite}
@keyframes flyPath{
  0%{transform:translate(0,0) rotate(-3deg)}
  25%{transform:translate(5px,-11px) rotate(1.5deg)}
  50%{transform:translate(0,-16px) rotate(3deg)}
  75%{transform:translate(-5px,-7px) rotate(-.5deg)}
  100%{transform:translate(0,0) rotate(-3deg)}
}
@keyframes saySway{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes flyGlow{0%,100%{opacity:.55;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}}
@keyframes flyTwinkle{0%,100%{opacity:.2;transform:scale(.7) rotate(0)}50%{opacity:1;transform:scale(1.15) rotate(25deg)}}

/* ---------- Bản đồ ---------- */
.sec-head{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:20px}
.map-guide{position:relative;flex:none;margin:0 10px -26px 0}
.map-guide .fly-say{top:6%}
.map-shell{padding:0;overflow:hidden;border:1.5px solid #e3edf9}
.map-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 14px;background:linear-gradient(180deg,#f6faff,#fff);border-bottom:1.5px solid #eef3fa}
.map-regions{display:flex;gap:6px;flex-wrap:wrap}
.mr-btn{border:1.5px solid #dbe7f6;background:#fff;color:var(--mary-deep);font-weight:600;font-size:.84rem;border-radius:999px;padding:6px 13px;transition:background .18s ease,border-color .18s ease,color .18s ease}
.mr-btn:hover{background:var(--sky-soft);border-color:var(--sky)}
.mr-btn.active{background:linear-gradient(135deg,var(--mary),#5b8fd0);border-color:var(--mary);color:#fff;box-shadow:var(--shadow-sm)}
.map-count{font-size:.84rem;color:var(--ink-soft);white-space:nowrap}
.map-count b{color:var(--mary-deep)}
.map-frame{padding:10px}
#map{height:500px;background:#cfe3f5}
/* Nền OSM dịu lại cho hợp tông pastel của trang (không ảnh hưởng ghim). */
#map .leaflet-tile-pane,.mini-map .leaflet-tile-pane{filter:saturate(.72) brightness(1.04) contrast(.94) sepia(.08)}
.map-pin.is-featured{width:34px;height:34px;box-shadow:0 0 0 4px rgba(255,214,110,.55),0 6px 14px rgba(40,70,110,.38)}
.map-pin.is-featured span{font-size:16px}
.leaflet-marker-icon:hover .map-pin{filter:brightness(1.08)}
.cluster-wrap{background:none;border:none}
.map-cluster{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#fff3cf,#f2c14e 55%,#d99a2b);box-shadow:0 0 0 5px rgba(242,193,78,.32),0 0 0 10px rgba(242,193,78,.14),0 8px 18px rgba(120,80,20,.28);color:#5a3b06;font-weight:900;font-size:.95rem;transition:transform .18s ease}
.map-cluster:hover{transform:scale(1.08)}
.legend .lg{cursor:pointer;font-family:inherit;color:var(--ink);transition:background .18s ease,border-color .18s ease,opacity .18s ease}
.legend .lg b{color:var(--ink-soft);font-weight:700}
.legend .lg[aria-pressed="true"]{border-color:color-mix(in srgb,var(--c) 45%,#fff);background:color-mix(in srgb,var(--c) 9%,#fff)}
.legend .lg[aria-pressed="false"]{opacity:.5;text-decoration:line-through;background:#fff}
.legend .lg[aria-pressed="false"] .dot{background:#c9d2dc!important}
.legend .lg:hover{border-color:var(--c,var(--sky))}
.legend .lg-reset{color:var(--mary-deep);border-style:dashed}
.legend .lg[hidden],.mr-btn[hidden]{display:none}
@media(max-width:760px){
  #map{height:380px}
  .map-guide{display:none}
  .map-bar{padding:10px}
  .map-regions{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -10px;padding:0 10px}
  .map-regions::-webkit-scrollbar{display:none}
  .mr-btn{white-space:nowrap}
}

/* ---------- Banner trang con ---------- */
.page-head{position:relative;overflow:hidden;background:linear-gradient(180deg,#cfe4fa 0%,#e6f0fc 58%,var(--paper) 100%);padding:6px 0 44px}
.page-head.has-overlap{padding-bottom:78px}
.ph-sky{position:absolute;inset:0;pointer-events:none}
.ph-star{position:absolute;color:#fff;font-size:1rem;text-shadow:0 0 6px #fff,0 0 14px rgba(255,196,64,.9);animation:spark 3.4s ease-in-out var(--l,0s) infinite}
.ph-cloud{position:absolute;opacity:.8;animation:drift 30s linear infinite alternate}
.ph-cloud.c1{top:16%;left:52%}
.ph-cloud.c2{top:58%;left:8%;animation-duration:38s}
.ph-in{position:relative;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:150px}
.ph-text{position:relative;z-index:2;max-width:760px}
.page-head .crumb{margin:16px 0 10px}
.ph-title{display:flex;align-items:center;gap:14px;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:900;color:var(--mary-deep);line-height:1.2}
.ph-icon{flex:none;width:58px;height:58px;border-radius:18px;display:grid;place-items:center;font-size:1.7rem;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.55),var(--shadow-sm)}
.ph-title>span:last-child{text-wrap:balance}
.ph-sub{margin-top:10px;color:var(--ink);max-width:640px}
.ph-mary{position:relative;flex:none;margin-right:16px}
.ph-meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:12px;font-size:.88rem;color:var(--ink-soft);font-weight:600}
.ph-type{background:var(--rose);color:#fff;border-radius:999px;padding:2px 11px;font-size:.78rem;letter-spacing:.3px;text-transform:uppercase}
.ph-article .ph-title{font-size:clamp(1.45rem,3.4vw,2.1rem)}
.ph-article .wrap{max-width:856px}
.toolbar-float{position:relative;z-index:3;margin-top:-50px;box-shadow:var(--shadow)}
@media(max-width:760px){
  .ph-in{min-height:0}
  .ph-mary{--fly-size:76px!important;position:absolute;right:0;top:4px;margin:0}
  .ph-mary .fly-say{display:none}
  .ph-text{padding-right:70px}
  .ph-icon{width:46px;height:46px;font-size:1.3rem;border-radius:14px}
}

/* ---------- Danh sách / tin tức / nhãn ---------- */
.result-bar{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px}
.result-bar .result-count{margin:0}
.result-tip{font-size:.88rem;color:var(--ink-soft)}
.result-tip a{font-weight:600}
.empty-state{position:relative;padding-top:24px}
.empty-mary{position:relative;display:block;margin:0 auto 10px}
.label-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;margin-top:4px}
.label-card{position:relative;display:flex;flex-direction:column;gap:8px;background:#fff;border-radius:20px;padding:20px 22px 18px;border:1.5px solid color-mix(in srgb,var(--c) 28%,#fff);box-shadow:var(--shadow-sm);color:var(--ink);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.label-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--c)}
.label-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.lc-name{display:flex;align-items:flex-start;gap:9px;font-weight:800;font-size:1.08rem;color:var(--ink);padding-right:70px}
.lc-name .dot{width:14px;height:14px;margin-top:6px}
.lc-count{position:absolute;top:16px;right:16px;background:color-mix(in srgb,var(--c) 12%,#fff);color:color-mix(in srgb,var(--c) 70%,#223);border-radius:999px;padding:3px 11px;font-size:.8rem}
.lc-desc{font-size:.9rem;color:var(--ink-soft);flex:1}
.lc-go{font-weight:700;font-size:.88rem;color:var(--mary)}
.article-panel{max-width:820px;margin:0 auto;padding:28px clamp(18px,4vw,40px)}
.article-lead{font-size:1.1rem;font-weight:600;color:var(--mary-deep);line-height:1.65;padding-left:16px;border-left:4px solid var(--gold)}
.article-back{max-width:820px;margin:18px auto 0}
.page-head + .wrap .type-chips{margin-top:0}

/* ---------- Trang chi tiết ---------- */
.place-page .detail-hero .dh-img{height:420px}
.detail-hero .dh-veil{background:linear-gradient(180deg,rgba(30,50,80,0) 30%,rgba(30,50,80,.35) 60%,rgba(24,40,66,.86))}
.detail-hero .dh-text{padding:26px 30px}
.detail-hero .dh-text h1{margin-top:10px;text-shadow:0 2px 14px rgba(0,0,0,.25)}
.dh-facts{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.dh-facts li{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;border-radius:999px;padding:5px 12px;font-size:.85rem;font-weight:600}
.sec-nav{position:sticky;top:82px;z-index:900;margin:18px 0 0;background:rgba(253,248,238,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;box-shadow:var(--shadow-sm);border:1.5px solid #efe6d2}
.sec-nav-in{display:flex;gap:4px;padding:6px;overflow-x:auto;scrollbar-width:none}
.sec-nav-in::-webkit-scrollbar{display:none}
.sec-nav a{flex:none;padding:7px 15px;border-radius:999px;font-size:.88rem;font-weight:600;color:var(--ink);white-space:nowrap;transition:background .18s ease,color .18s ease}
.sec-nav a:hover{background:var(--sky-soft);color:var(--mary-deep)}
.sec-nav a.active{background:linear-gradient(135deg,var(--mary),#5b8fd0);color:#fff}
.detail-grid{grid-template-columns:minmax(0,1fr) 340px;gap:26px;margin-top:22px}
.detail-main>section{scroll-margin-top:150px}
.panel-title{display:flex;align-items:center;gap:10px;font-size:1.18rem;font-weight:800;color:var(--ink);margin-bottom:14px}
.pt-ico{flex:none;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;font-size:1.05rem;background:linear-gradient(135deg,#eef5fe,#fdf1f6);box-shadow:inset 0 0 0 1.5px #e6eef9}
.panel-more{margin-top:14px}
.prose p{margin-bottom:12px;line-height:1.75}
.prose p:last-child{margin-bottom:0}
.place-page .discern-box{position:relative;padding:22px 24px;border:1.5px solid color-mix(in srgb,var(--status) 30%,#fff);background:linear-gradient(135deg,color-mix(in srgb,var(--status) 9%,#fff),#fff 70%);overflow:hidden}
.place-page .discern-box:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--status)}
.discern-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.discern-ico{flex:none;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:1.25rem;background:var(--status);box-shadow:0 6px 14px color-mix(in srgb,var(--status) 35%,transparent)}
.discern-kicker{display:block;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft)}
.discern-head h2{font-size:1.3rem;font-weight:800;color:color-mix(in srgb,var(--status) 72%,#1d2b3d)}
.discern-box p{line-height:1.7}
.discern-more{display:inline-block;margin-top:10px;font-weight:700;font-size:.88rem}
.msg-list{list-style:none;padding:0!important;display:grid;gap:10px;counter-reset:msg}
.msg-list li{position:relative;counter-increment:msg;padding:12px 14px 12px 50px;background:linear-gradient(135deg,#fffaf0,#fdf5ff);border:1.5px solid #f3e7cf;border-radius:14px;line-height:1.6}
.msg-list li:before{content:counter(msg);position:absolute;left:12px;top:11px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--gold),#f08c2e);box-shadow:0 3px 8px rgba(227,172,63,.4)}
.timeline{padding-left:30px}
.timeline:before{left:10px}
.tl-item{padding-bottom:20px}
.tl-item:last-child{padding-bottom:0}
.tl-item:before{left:-26px;top:6px}
.tl-item .tl-year{display:inline-block;background:var(--sky-soft);color:var(--mary-deep);border-radius:999px;padding:1px 11px;font-size:.84rem;margin-bottom:4px}
.tl-item p{line-height:1.65}
.pilgrim{background:linear-gradient(135deg,#fff,#f4f9ff)}
.pilgrim>p{line-height:1.75}
.pilgrim-actions{margin-top:14px}
.link-list{display:grid;gap:8px}
.link-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:14px;border:1.5px solid #efe6d2;background:#fffdf8;color:var(--ink);transition:background .18s ease,border-color .18s ease,transform .18s ease}
a.link-row:hover{background:var(--sky-soft);border-color:var(--sky);transform:translateX(3px)}
.link-row b{display:block;font-weight:600;line-height:1.4}
.link-row .src,.ext-link .src{display:block;font-size:.72rem;font-weight:700;color:var(--rose);text-transform:uppercase;letter-spacing:.5px}
.lr-ico{flex:none;font-size:1.15rem}
.lr-go{margin-left:auto;flex:none;color:var(--mary);font-weight:800}
.facts{display:grid;gap:2px}
.fact{display:grid;grid-template-columns:1fr;gap:2px;padding:10px 0;border-bottom:1.5px dashed #eee2c8}
.fact:last-child{border-bottom:none;padding-bottom:0}
.fact dt{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--ink-soft);display:flex;gap:6px;align-items:center}
.fact dd{font-weight:700;color:var(--ink);font-size:.97rem;line-height:1.45}
.fact dd small{font-weight:500;color:var(--ink-soft)}
.loc-card{position:relative;overflow:visible}
.mini-map{height:210px;border-radius:14px;overflow:hidden;background:#dcebfb;z-index:1}
.loc-text{margin-top:10px;font-weight:600;font-size:.92rem}
.loc-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.loc-mary{top:-28px;right:-6px}
@media(max-width:920px){.detail-grid{gap:0}}
@media(min-width:921px){.detail-side{align-self:stretch}.detail-side>.panel:last-child{position:sticky;top:150px}}
.rel-list{display:grid;gap:10px}
.rel-card{display:flex;align-items:center;gap:12px;padding:8px;border-radius:14px;border:1.5px solid #f0e7d2;background:#fffdf8;color:var(--ink);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.rel-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--sky)}
.rel-thumb{flex:none;width:64px;height:64px;border-radius:12px;background:var(--sky-soft) center/cover no-repeat}
.rel-info{display:flex;flex-direction:column;gap:3px;min-width:0}
.rel-info b{font-size:.95rem;line-height:1.3}
.rel-info small{display:flex;align-items:center;gap:6px;color:var(--ink-soft);font-size:.8rem}
.rel-info .dot{width:9px;height:9px}
@media(max-width:760px){
  .place-page .detail-hero .dh-img{height:260px}
  .place-page .detail-hero{background:linear-gradient(180deg,#2c4a74,#1f3a60)}
  .place-page .detail-hero .dh-veil{background:linear-gradient(180deg,transparent 55%,rgba(44,74,116,.9));bottom:auto;height:260px}
  .place-page .detail-hero .dh-text{position:relative;padding:4px 18px 18px}
  .place-page .detail-hero .dh-text h1{font-size:1.65rem}
  .dh-facts li{font-size:.78rem;padding:4px 10px}
  .dh-facts li:nth-child(n+3){display:none}
  .toolbar{grid-template-columns:1fr 1fr;gap:10px;padding:14px}
  .toolbar>div:first-child,.toolbar>div:last-child{grid-column:1/-1}
  .toolbar>div:last-child label{display:none}
  .sec-nav{top:var(--hdr,62px);border-radius:16px}
}

/* ---------- Footer ---------- */
.foot-mary{top:-92px;right:7%}
@media(max-width:700px){.foot-mary{--fly-size:62px!important;top:-74px;right:4%}}
