/* ZIP STUDIO typography: 8 shared semantic roles. Existing homepage font family,
   palette and sizes are the basis; gallery and detail pages share these tokens. */
:root{
  --zp-font:Pretendard,Arial,sans-serif;
  --zp-display-size:var(--display);
  --zp-page-size:clamp(28px,2.5vw,36px);
  --zp-section-size:var(--heading);
  --zp-subheading-size:var(--title);
  --zp-body-size:var(--body);
  --zp-small-size:var(--small);
  --zp-label-size:var(--small);
  --zp-caption-size:var(--caption);
  --zp-type-display:500 var(--zp-display-size)/1.3 var(--zp-font);
  --zp-type-page:500 var(--zp-page-size)/1.35 var(--zp-font);
  --zp-type-section:500 var(--zp-section-size)/1.3 var(--zp-font);
  --zp-type-subheading:500 var(--zp-subheading-size)/1.4 var(--zp-font);
  --zp-type-body:400 var(--zp-body-size)/1.75 var(--zp-font);
  --zp-type-small:400 var(--zp-small-size)/1.8 var(--zp-font);
  --zp-type-label:400 var(--zp-label-size)/1.5 var(--zp-font);
  --zp-type-caption:500 var(--zp-caption-size)/1.6 var(--zp-font);
  --zp-heading-tracking:-.035em;
  --zp-body-tracking:-.01em;
  --zp-grid-gap:32px;
}
.zp-browser h2{font:var(--zp-type-section);letter-spacing:var(--zp-heading-tracking)}
.zp-filters a{font:var(--zp-type-label);color:var(--muted);border-bottom:1px solid transparent;padding:5px 0;min-height:34px}
.zp-filters a.active,.zp-filters a:hover{color:var(--ink);border-bottom-color:var(--ink)}
.zp-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px var(--zp-grid-gap)}
.zp-project-card{min-width:0;display:block}
.zp-project-image{position:relative;overflow:hidden;background:#e7e7e0;aspect-ratio:3/2}
.zp-project-image img{width:100%;height:100%;object-fit:cover;transition:transform .65s ease}
.zp-project-image>span{position:absolute;right:0;bottom:0;background:var(--paper);width:46px;height:46px;display:grid;place-items:center;font:var(--zp-type-subheading)}
.zp-project-card:hover .zp-project-image img{transform:scale(1.035)}
.zp-project-meta{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-top:18px}
.zp-project-meta h3{font:var(--zp-type-subheading);letter-spacing:var(--zp-heading-tracking)}
.zp-project-meta>span{font:var(--zp-type-caption);letter-spacing:.07em;color:var(--muted);flex-shrink:0}
.zp-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:48px}
.zp-pagination a{min-width:44px;min-height:44px;display:grid;place-items:center;font:var(--zp-type-label);color:var(--muted);border-bottom:1px solid transparent}
.zp-pagination a[aria-current=page]{border-color:var(--ink);color:var(--ink)}
.zp-pagination a:hover{color:var(--blue);border-color:var(--blue)}
.zp-empty-list{font:var(--zp-type-body);padding:45px 0}
.zp-detail{padding-top:42px;padding-bottom:90px}
.zp-back{display:inline-flex;align-items:center;gap:13px;font:var(--zp-type-label);color:var(--muted);margin-bottom:42px;min-height:36px}
.zp-back:hover{color:var(--blue)}
.zp-detail-grid{display:grid;grid-template-columns:minmax(230px,.92fr) minmax(0,2fr);gap:56px;align-items:start}
.zp-introduction{min-width:0}
.zp-hero-photo{display:block;margin-bottom:35px}
.zp-hero-photo img{width:100%;height:auto}
.zp-introduction h1{font:var(--zp-type-page);letter-spacing:var(--zp-heading-tracking);margin:0 0 21px}
.zp-subtitle{font:var(--zp-type-subheading);letter-spacing:var(--zp-heading-tracking);color:var(--ink);margin-bottom:17px}
.zp-intro-copy{font:var(--zp-type-small);letter-spacing:var(--zp-body-tracking);color:var(--muted)}
.zp-intro-copy p{margin:0 0 15px}
.zp-intro-copy h2,.zp-intro-copy h3,.zp-intro-copy h4{font:var(--zp-type-subheading);letter-spacing:var(--zp-heading-tracking);margin:22px 0 12px}
.zp-intro-copy a{text-decoration:underline;text-underline-offset:3px}
.zp-details{display:grid;grid-template-columns:74px 1fr;gap:15px;border-top:1px solid var(--line);margin-top:28px;padding-top:16px;min-height:93px}
.zp-details h2,.zp-floor-plan h2{font:var(--zp-type-caption);letter-spacing:.03em;text-transform:uppercase;color:var(--ink)}
.zp-details dl{margin:0;font:var(--zp-type-caption);color:var(--muted)}
.zp-details dl>div{display:grid;grid-template-columns:1fr 1.3fr;gap:12px;margin-bottom:8px}
.zp-details dd{margin:0}
.zp-details-empty{min-height:55px;display:grid;grid-template-columns:1fr 1fr;gap:18px}
.zp-details-empty span{display:block;min-height:55px}
.zp-floor-plan{margin-top:28px;background:#eeede9;padding:22px}
.zp-floor-plan h2{margin-bottom:22px}
.zp-floor-plan-empty{height:180px}
.zp-floor-plan img{width:100%;height:auto}
.zp-floor-plan a+a{display:block;margin-top:16px}
.zp-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 24px;align-items:start;min-width:0}
.zp-gallery.zp-masonry{display:block;position:relative}
.zp-gallery.zp-masonry .zp-space{position:absolute;top:var(--space-top);left:var(--space-left);width:calc((100% - 24px)/2)}
.zp-space{min-width:0}
.zp-space h2{font:var(--zp-type-subheading);letter-spacing:var(--zp-heading-tracking);margin-bottom:12px}
.zp-space>p{font:var(--zp-type-small);letter-spacing:var(--zp-body-tracking);margin-bottom:20px}
.zp-space-photos{display:grid;gap:10px}
.zp-space-photos a{display:block}
.zp-space-photos img{width:100%;height:auto}
.zp-photo-open{cursor:zoom-in}
.zp-photo-open:focus-visible{outline-offset:3px}
.zp-project-navigation{display:grid;grid-template-columns:1fr 1fr;gap:30px;border-top:1px solid var(--line);margin-top:72px;padding-top:28px}
.zp-project-navigation a{display:flex;flex-direction:column;gap:8px}
.zp-project-navigation a:last-child{text-align:right;align-items:flex-end}
.zp-project-navigation span{font:var(--zp-type-caption);color:var(--muted)}
.zp-project-navigation strong{font:var(--zp-type-subheading);letter-spacing:var(--zp-heading-tracking)}
.zp-lightbox{border:0;padding:56px 22px 22px;background:#f7f6f2;max-width:min(94vw,1600px);max-height:94vh;overflow:auto;color:var(--ink)}
.zp-lightbox::backdrop{background:#0b0d0bd9}
.zp-lightbox>img{max-width:100%;max-height:78vh;width:auto;height:auto;margin:auto;object-fit:contain}
.zp-lightbox-close{position:absolute;right:20px;top:10px;border:0;background:transparent;min-height:40px;padding:5px 8px;font:var(--zp-type-label)}
.zp-lightbox-close span{margin-left:12px}
.zp-lightbox-caption{font:var(--zp-type-small);margin-top:14px;text-align:center}
body.zp-modal-open{overflow:hidden}
body.admin-bar header{top:32px}
@media(max-width:1100px){.zp-detail-grid{gap:30px;grid-template-columns:minmax(210px,.9fr) minmax(0,2fr)}.zp-gallery{gap:32px 18px}.zp-gallery.zp-masonry .zp-space{width:calc((100% - 18px)/2)}}
@media(max-width:900px){.zp-detail-grid{grid-template-columns:minmax(0,1fr);gap:44px}.zp-introduction{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;align-items:start}.zp-hero-photo{grid-column:1/2;grid-row:1/5;margin-bottom:0}.zp-introduction h1,.zp-subtitle,.zp-intro-copy{grid-column:2/3}.zp-details{grid-column:1/2}.zp-floor-plan{grid-column:2/3}.zp-gallery{gap:36px 24px}.zp-gallery.zp-masonry .zp-space{width:calc((100% - 24px)/2)}}
@media(max-width:782px){body.admin-bar header{top:46px}}
@media(max-width:600px){
  :root{--zp-page-size:28px;--zp-subheading-size:18px;--zp-grid-gap:22px}
  .zp-project-grid{grid-template-columns:1fr;gap:32px}
  .zp-project-meta{margin-top:14px;gap:10px}
  .zp-project-meta>span{font:var(--zp-type-caption);letter-spacing:.03em}
  .zp-pagination{margin-top:32px;gap:4px}
  .zp-detail{padding-top:24px;padding-bottom:50px}
  .zp-back{margin-bottom:25px}
  .zp-introduction{display:block}
  .zp-hero-photo{margin-bottom:27px}
  .zp-introduction h1{margin-bottom:17px}
  .zp-details{margin-top:25px}
  .zp-floor-plan{margin-top:22px}
  .zp-floor-plan-empty{height:155px}
  .zp-gallery{grid-template-columns:1fr;gap:38px}
  .zp-gallery.zp-masonry{display:grid;height:auto!important}
  .zp-gallery.zp-masonry .zp-space{position:static;width:auto}
  .zp-space>p{margin-bottom:16px}
  .zp-project-navigation{margin-top:45px;gap:18px}
  .zp-lightbox{padding:52px 12px 16px;max-width:96vw}
}
@media(prefers-reduced-motion:reduce){.zp-project-image img{transition:none}}
