.map-page{flex:1 1;padding:40px 20px 60px;background-color:var(--bg-light)}@keyframes map-shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.map-skeleton-layout{pointer-events:none}.map-skeleton-img{width:100%;min-height:520px;border-radius:16px;background:linear-gradient(90deg,#1e293b 25%,#2d3748 50%,#1e293b 75%);background-size:1200px 100%;animation:map-shimmer 1.5s linear infinite}.map-skeleton-info{display:flex;flex-direction:column;gap:.75rem;padding-top:.5rem}.map-sk-line{height:18px;border-radius:8px;background:linear-gradient(90deg,#1e293b 25%,#2d3748 50%,#1e293b 75%);background-size:1200px 100%;animation:map-shimmer 1.5s linear infinite;width:100%}.map-sk-title{height:32px;width:60%;margin-bottom:.5rem}.map-sk-sub{height:18px;width:45%}.map-sk-sub.short{width:30%}.map-container{max-width:1100px;margin:0 auto}.map-back-link{display:inline-block;margin-bottom:1.5rem;color:#92c7a3;text-decoration:none;font-weight:600;font-size:.95rem;transition:all .2s ease;background:none;border:none;padding:0;cursor:pointer}.map-back-link:hover{color:#b4e0c2;transform:translateX(-3px)}.map-layout{display:grid;grid-template-columns:420px 1fr;grid-gap:2.5rem;gap:2.5rem;align-items:start}.map-photo-col{position:-webkit-sticky;position:sticky;top:100px}.map-main-image{position:relative;width:100%;border-radius:18px;overflow:hidden;box-shadow:0 16px 45px rgba(0,0,0,.35);background:#111;aspect-ratio:3/4;border:1px solid rgba(146,199,163,.2)}.map-main-image img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;transition:opacity .25s ease}.map-main-image img.fading{opacity:0}.map-slide-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(13,25,36,.65);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#92c7a3;border:1px solid rgba(146,199,163,.3);border-radius:50%;width:44px;height:44px;font-size:1.6rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10;-webkit-user-select:none;-moz-user-select:none;user-select:none}.map-slide-btn:hover{background:rgba(146,199,163,.9);color:#0d1f14;border-color:#92c7a3}.map-slide-prev{left:12px}.map-slide-next{right:12px}.map-slide-dots{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:10}.map-dot{width:9px;height:9px;border-radius:50%;background:hsla(0,0%,100%,.4);border:none;cursor:pointer;transition:all .25s ease;padding:0}.map-dot.active{background:#92c7a3;transform:scale(1.35);box-shadow:0 0 8px rgba(146,199,163,.6)}.map-info-col{display:flex;flex-direction:column;gap:1.25rem}.map-name{font-family:Georgia,Times New Roman,serif;font-size:2.8rem;font-weight:800;color:var(--text-dark);line-height:1.1;margin:0;letter-spacing:-.01em}.map-availability-card,.map-charges-card,.map-stats-card{background:#1c2a38;border:1px solid rgba(146,199,163,.2);border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.25);transition:border-color .3s ease}.map-availability-card:hover,.map-charges-card:hover,.map-stats-card:hover{border-color:rgba(146,199,163,.35)}.map-stats-card{padding:1.6rem 1.8rem 1.4rem}.map-stats-inner{display:grid;grid-template-columns:1fr auto;grid-gap:3rem;gap:3rem;align-items:start}.map-prices-summary{display:flex;flex-direction:column;gap:.8rem}.map-price-block{display:flex;flex-direction:column;gap:.25rem}.map-price-cat{font-size:.85rem;font-weight:700;color:#92c7a3;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.2rem}.map-price-list{display:flex;flex-direction:column;gap:3px}.map-price-list span{font-size:.88rem;color:hsla(0,0%,100%,.85);font-weight:500}.map-assignment-tags{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding-top:2px}.map-assignment-tags span{font-size:.9rem;font-weight:700;color:hsla(0,0%,100%,.88);white-space:nowrap;text-align:right;line-height:1.7}.map-charges-card{padding:1.4rem 1.6rem 1.6rem}.map-charges-title{font-weight:700;font-size:1.1rem;color:#92c7a3;margin:0 0 .9rem;letter-spacing:.02em}.map-charges-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.5rem;gap:1.5rem}.map-charges-col{display:flex;flex-direction:column;gap:.35rem}.map-charges-cat{font-size:.95rem;font-weight:600;color:hsla(0,0%,100%,.9);margin-bottom:.2rem}.map-charges-item{font-size:.92rem;font-weight:500;color:hsla(0,0%,100%,.78);margin:0;line-height:1.4}.map-additional-charges{margin-top:1rem;padding-top:.8rem;border-top:1px dashed rgba(146,199,163,.25)}.map-availability-card{padding:1.4rem 1.6rem 1.6rem}.map-avail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.map-avail-title{font-weight:700;font-size:1rem;color:hsla(0,0%,100%,.95)}.map-avail-legend{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.map-legend-item{display:flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;color:hsla(0,0%,100%,.75);flex-direction:row-reverse}.map-legend-dot{width:28px;height:10px;border-radius:4px}.map-legend-dot.available{background:#92c7a3}.map-legend-dot.unavailable{background:#5a6a7a}.map-legend-dot.past{background:#2d3748}.map-avail-month{font-size:.88rem;font-weight:800;color:#92c7a3;letter-spacing:.12em;margin:0 0 .8rem}.map-calendar{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.map-cal-head{font-size:.7rem;color:hsla(0,0%,100%,.45);padding-bottom:4px}.map-cal-day,.map-cal-head{font-weight:700;text-align:center}.map-cal-day{border-radius:6px;padding:6px 4px;font-size:.85rem;color:#fff;transition:all .2s ease}.map-cal-available{background:#92c7a3;color:#0d1f14}.map-cal-unavailable{background:#3d5166;color:hsla(0,0%,100%,.7)}.map-cal-past{background:#232d38;color:hsla(0,0%,100%,.35);opacity:.75}.map-cal-today{box-shadow:0 0 0 2px #92c7a3,inset 0 0 0 1px #0d1f14;position:relative;z-index:1}.map-cta{display:flex;justify-content:center}.map-book-btn{display:inline-block;background:#92c7a3;color:#0d1f14;font-weight:800;font-size:1rem;padding:.85rem 2.5rem;border-radius:8px;text-decoration:none;letter-spacing:.04em;box-shadow:0 4px 20px rgba(146,199,163,.3);transition:all .25s ease}.map-book-btn:hover{background:#7ab891;transform:translateY(-2px);box-shadow:0 8px 28px rgba(146,199,163,.45)}.map-portfolio{margin-top:3.5rem;padding-top:3rem;border-top:1px solid rgba(146,199,163,.2)}.map-portfolio-title{font-family:Georgia,Times New Roman,serif;font-size:2rem;font-weight:700;color:var(--text-dark);margin:0 0 1.8rem;letter-spacing:-.01em}.map-portfolio-grid{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:.7rem;gap:.7rem}.map-portfolio-item{position:relative;border-radius:10px;overflow:hidden;cursor:pointer;height:160px;box-shadow:0 4px 14px rgba(0,0,0,.2);border:1px solid rgba(146,199,163,.15);transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease,border-color .35s ease}.map-portfolio-item:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 16px 40px rgba(0,0,0,.3);border-color:#92c7a3}.map-portfolio-item.map-portfolio-active{box-shadow:0 0 0 3px #92c7a3,0 16px 40px rgba(0,0,0,.3);border-color:#92c7a3}.map-portfolio-item img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;transition:transform .45s ease}.map-portfolio-item:hover img{transform:scale(1.06)}.map-portfolio-overlay{position:absolute;inset:0;background:transparent;display:flex;align-items:center;justify-content:center;transition:background .3s ease}.map-portfolio-item:hover .map-portfolio-overlay{background:rgba(13,25,36,.45)}.map-portfolio-overlay span{color:#92c7a3;font-size:1rem;font-weight:700;letter-spacing:3px;text-transform:uppercase;opacity:0;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease}.map-portfolio-item:hover .map-portfolio-overlay span{opacity:1;transform:translateY(0)}.map-not-found{text-align:center;padding:4rem 2rem}.map-not-found h2{font-size:2rem;margin-bottom:2rem;color:var(--text-dark)}@media (max-width:900px){.map-layout{grid-template-columns:1fr}.map-photo-col{position:static}.map-main-image{aspect-ratio:3/4;max-height:520px}.map-name{font-size:2.2rem}.map-portfolio-grid{grid-template-columns:repeat(3,1fr)}.map-stats-inner{grid-template-columns:1fr;gap:1.5rem}}@media (max-width:600px){.map-page{padding:20px 12px 40px}.map-name{font-size:1.8rem}.map-availability-card,.map-charges-card,.map-stats-card{padding:1.2rem}.map-calendar{gap:3px}.map-cal-day{font-size:.75rem;padding:5px 2px}.map-portfolio-grid{grid-template-columns:repeat(2,1fr)}.map-portfolio-title{font-size:1.5rem}}