/* Social Prop V9: ficha visual de proyectos. No modifica el CSS base. */
body.project-gallery-open { overflow: hidden; }
body.project-gallery-open .quick-nav { display:none !important; }
.project-gallery-modal[hidden] { display:none !important; }
.project-gallery-modal { position:fixed; inset:0; z-index:1950; display:grid; place-items:center; padding:22px; }
.project-gallery-shade { position:absolute; inset:0; background:rgba(30,13,50,.72); backdrop-filter:blur(6px); }
.project-gallery-dialog { position:relative; width:min(1160px,100%); max-height:min(880px,calc(100dvh - 44px)); overflow-y:auto; overscroll-behavior:contain; background:#fff; border-radius:24px; box-shadow:0 28px 95px #210c3d60; color:#32253e; }
.pg-head { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:24px 30px 20px; border-bottom:1px solid #efe9f3; }
.pg-kicker { font-size:11px; font-weight:800; letter-spacing:.11em; color:#7637a5; text-transform:uppercase; }
.pg-head h2 { margin:4px 0 2px; font-size:clamp(23px,2.4vw,32px); letter-spacing:-.035em; color:#351d4b; }
.pg-head p { font-size:13px; color:#706779; }
.pg-close {flex:0 0 42px; width:42px; height:42px; display:grid; place-items:center; border:1px solid #e2d7ed; border-radius:50%; background:white; color:#572c7b; cursor:pointer; }
.pg-close .icon { width:19px;height:19px; }
.pg-layout { display:grid; grid-template-columns:minmax(0,1.52fr) minmax(280px,.88fr); gap:25px; padding:24px 30px 30px; }
.pg-media-col { min-width:0; }
.pg-tabs { display:flex; align-items:center; gap:7px; padding-bottom:14px; }
.pg-tab { padding:9px 17px; border:1px solid #ded2e9; border-radius:100px; background:white; color:#725c84; font-size:13px; font-weight:800; cursor:pointer; }
.pg-tab[aria-selected="true"] { background:#602797; border-color:#602797; color:white; }
.pg-tab[hidden] { display:none; }
.pg-tab span { opacity:.82; font-size:12px; }
.pg-viewer { position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; aspect-ratio:1.57/1; border-radius:15px; background:#eee9f2; }
.pg-viewer img { display:block; width:100%; height:100%; object-fit:cover; }
.pg-viewer.is-plan {background:#fff; border:1px solid #eadff0;}
.pg-viewer.is-plan img {object-fit:contain; padding:16px;}
.pg-arrow { position:absolute; top:50%; translate:0 -50%; display:grid; place-items:center; width:40px; height:40px; padding:0; background:#fffef8f1; border:1px solid #e3d9e9; border-radius:50%; color:#592784; cursor:pointer; box-shadow:0 3px 10px #21112930; }
.pg-arrow:disabled {opacity:.3;cursor:default;}
.pg-arrow-left {left:12px;}
.pg-arrow-right {right:12px;}
.pg-arrow .icon {width:20px; height:20px;}
.pg-counter { position:absolute; right:12px; bottom:12px; background:#24142bc9; color:#fff; padding:6px 11px; border-radius:22px; font-size:12px; font-weight:800; }
.pg-caption-row { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:10px 1px; }
.pg-caption-row p { margin:0; font-size:14px; font-weight:800; color:#493958; }
.pg-swipe-hint { font-size:11px; color:#87788e; }
.pg-thumbs { display:flex; gap:9px; overflow-x:auto; overscroll-behavior-x:contain; padding:1px 1px 9px; scrollbar-width:thin; }
.pg-thumb { flex:0 0 104px; height:70px; overflow:hidden; background:#ece6ee; border:3px solid transparent; border-radius:10px; padding:0; cursor:pointer; }
.pg-thumb.is-current { border-color:#602797; }
.pg-thumb img {display:block; width:100%; height:100%; object-fit:cover;}
.pg-media-disclaimer {margin:7px 0 0; font-size:11px; line-height:1.6; color:#786f7d;}
.pg-info { background:#faf8fc; border:1px solid #ede6f1; border-radius:18px; padding:23px; align-self:start; }
.pg-info-kicker {font-size:12px; font-weight:800; color:#753d9f; text-transform:uppercase;letter-spacing:.04em;}
.pg-info h3 {margin:8px 0 18px; font-size:clamp(24px,2.5vw,30px);letter-spacing:-.045em; color:#381850;}
.pg-data-grid {display:grid; grid-template-columns:1fr 1fr; gap:18px 11px; padding:0 0 18px; border-bottom:1px solid #e8dfeb;}
.pg-data-grid div {min-width:0;}
.pg-data-grid small {display:block; margin-bottom:5px; color:#85768c; font-size:11px; font-weight:700;}
.pg-data-grid strong {display:block; font-size:13px; font-weight:800; line-height:1.4;overflow-wrap:anywhere;}
.pg-description { margin:16px 0 8px; color:#615469; font-size:13px; line-height:1.7; }
.pg-conditions {margin:0 0 16px; font-size:11px; line-height:1.65; color:#8b7c91;}
.pg-contact {width:100%; min-height:52px; font-size:13px; justify-content:center; text-align:center;}
.pg-official {display:block; margin-top:13px; padding:8px; font-size:13px; color:#602797; font-weight:800; text-align:center;}
.pg-official:hover {text-decoration:underline;}
.pg-official[hidden] { display:none !important; }
.project-gallery-action {display:flex; justify-content:space-between; align-items:center; gap:8px; padding:11px 14px; min-height:51px; border:0; border-top:1px solid #f1eafa; background:#fff; color:#602797; font-size:13px; font-weight:800; cursor:pointer; text-align:left; width:100%;}
.project-gallery-action:hover {background:#fbf7ff;}
.project-gallery-action .icon { width:17px; height:17px; flex:0 0 17px; }
.project-gallery-action span {color:#92809e; font-size:11px; font-weight:600; white-space:nowrap;}
.hero-gallery-action {display:flex; justify-content:center; gap:8px; width:100%; border:1px solid #dcc8eb; border-radius:9px; color:#602797; background:#fff; min-height:38px; padding:7px; font-size:12px; font-weight:800; cursor:pointer;}
.hero-gallery-action .icon { width:15px; height:15px; }
.hero-gallery-action:hover {background:#f7efff;}
@media(max-width:870px) {
  .project-gallery-dialog {max-height:calc(100dvh - 22px);}
  .project-gallery-modal {padding:11px;}
  .pg-layout { grid-template-columns:1fr; padding:18px 20px 24px; gap:18px; }
  .pg-head {padding:17px 20px;}
  .pg-info {padding:20px;}
}
@media(max-width:560px) {
  .project-gallery-modal {padding:0; align-items:end;}
  .project-gallery-dialog {width:100%; max-height:96dvh; border-radius:22px 22px 0 0; }
  .pg-head { padding:15px 17px 13px; }
  .pg-head h2 {font-size:23px;}
  .pg-head p {font-size:12px;}
  .pg-layout {padding:14px 15px 26px; gap:15px;}
  .pg-viewer {aspect-ratio:1.3/1;}
  .pg-arrow {width:35px;height:35px;}
  .pg-info {padding:17px;}
  .pg-info h3 {font-size:25px;}
  .pg-swipe-hint {font-size:10px;}
  .pg-thumb {flex-basis:86px; height:60px;}
  .pg-data-grid {gap:12px 8px;}
  .project-gallery-action {flex-wrap:wrap;}
}
@media(prefers-reduced-motion:reduce) { .pg-thumbs {scroll-behavior:auto;} }
