*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}:root{--black:#1a1a1a;--dark:#2d2d2d;--mid:#555;--gray:#888;--border:#e5e5e5;--bg:#f7f7f7;--white:#fff;--red:#008482;--red-dk:#006666;--red-lt:#e6f4f4;--green:#1a7a4a}body{font-family:'Source Sans 3',sans-serif;background:var(--white);color:var(--black);font-size:16px;line-height:1.5;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit;font-size:16px}.topbar{background:var(--black);color:#aaa;font-size:.78rem;padding:0 1rem;height:34px;display:flex;align-items:center;justify-content:flex-end;gap:1rem}.topbar a{color:#aaa}.topbar-user{color:#fff;font-weight:600}header{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:200;box-shadow:0 1px 8px rgba(0,0,0,.07)}.header-inner{max-width:1260px;margin:0 auto;padding:0 1rem;height:60px;display:flex;align-items:center;gap:.75rem}.logo{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.logo-mark{width:34px;height:34px;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;border-radius:4px;font-weight:700}.logo-text{font-family:'Source Serif 4',serif;font-size:1.05rem;font-weight:700;line-height:1.1}.logo-text small{display:block;font-size:.6rem;font-weight:400;color:var(--gray);font-family:'Source Sans 3',sans-serif;letter-spacing:.06em;text-transform:uppercase}.main-nav{display:flex}.nav-link{font-size:.875rem;font-weight:500;padding:0 .75rem;height:60px;display:flex;align-items:center;border-bottom:3px solid transparent}.nav-link:hover{color:var(--red);border-bottom-color:var(--red)}.header-actions{margin-left:auto;display:flex;gap:.5rem}.btn-outline,.btn-primary,.submit-main{display:inline-block;border-radius:3px;padding:.55rem 1rem;font-size:.85rem;font-weight:700;cursor:pointer}.btn-outline{border:1.5px solid var(--black);background:#fff}.btn-primary,.submit-main{background:var(--red);color:#fff;border:none}.btn-primary:hover,.submit-main:hover{background:var(--red-dk)}.hero{background:var(--black);padding:2.5rem 1rem 2rem;text-align:center}.hero h1{font-family:'Source Serif 4',serif;font-size:clamp(1.4rem,5vw,2.4rem);color:#fff;margin-bottom:.4rem}.hero p{color:#aaa;font-size:.9rem;margin-bottom:1.5rem}.search-box{max-width:760px;margin:0 auto;background:#fff;border-radius:4px;display:grid;grid-template-columns:1fr 170px 130px;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.3)}.search-box input,.search-box select{border:none;border-right:1px solid var(--border);outline:none;padding:0 1rem;font-size:.95rem;min-height:50px}.search-box button{background:var(--red);color:#fff;border:none;font-weight:700}.listings-layout,.dashboard-wrap,.detail-wrap{max-width:1260px;margin:0 auto;padding:1.5rem 1rem}.listings-count{font-size:1.3rem;font-family:'Source Serif 4',serif;font-weight:700;margin-bottom:1.2rem}.cards-grid{display:flex;flex-direction:column;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:4px;overflow:hidden}.listing-card{background:#fff;display:flex;transition:background .15s}.listing-card:hover{background:#fafafa}.card-img-wrap{width:220px;min-width:220px;min-height:160px;position:relative;overflow:hidden;background:linear-gradient(135deg,#e8e8e8,#d4d4d4);display:flex;align-items:center;justify-content:center;font-size:2.2rem}.card-img-wrap img{width:100%;height:100%;object-fit:cover}.card-badge{position:absolute;top:8px;left:8px;background:var(--red);color:#fff;font-size:.65rem;font-weight:700;padding:.2rem .5rem;border-radius:2px;text-transform:uppercase;letter-spacing:.07em}.card-content{padding:1.1rem 1.2rem;flex:1;min-width:0}.card-location{font-size:.75rem;color:var(--gray);font-weight:500;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.25rem}.card-title{font-family:'Source Serif 4',serif;font-size:1.1rem;font-weight:700;margin-bottom:.2rem}.card-subtitle{font-size:.82rem;color:var(--mid)}.card-meta{margin-top:.9rem;display:flex;align-items:flex-end;justify-content:space-between;gap:.8rem;flex-wrap:wrap}.card-specs{display:flex;gap:1rem;flex-wrap:wrap}.spec{display:flex;flex-direction:column}.spec-val{font-weight:700;font-size:.9rem}.spec-key{font-size:.68rem;color:var(--gray);text-transform:uppercase;letter-spacing:.05em}.card-price{text-align:right;font-family:'Source Serif 4',serif;font-size:1.25rem;font-weight:700}.card-price-unit{font-size:.7rem;color:var(--gray);text-align:right}.empty-state{text-align:center;padding:4rem 1rem;color:var(--gray)}.auth-wrap{min-height:calc(100vh - 94px);background:var(--bg);display:flex;align-items:center;justify-content:center;padding:1.5rem 1rem}.auth-card,.form-section,.sidebar-box{background:#fff;border:1px solid var(--border);border-radius:4px;padding:1.5rem}.auth-card{width:100%;max-width:420px;box-shadow:0 4px 24px rgba(0,0,0,.06)}.auth-card h2,.dashboard-header h2,.detail-title{font-family:'Source Serif 4',serif}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--dark);margin-bottom:.35rem}.form-group input,.form-group select,.form-group textarea{width:100%;border:1.5px solid var(--border);border-radius:3px;padding:.65rem .85rem;outline:none;background:#fff}.form-group textarea{min-height:130px;resize:vertical}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.error{background:var(--red-lt);border:1px solid rgba(200,16,46,.2);border-radius:3px;padding:.7rem .9rem;font-size:.85rem;color:var(--red);margin-bottom:1rem}.dashboard-header{display:flex;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.dash-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:1.5rem;overflow-x:auto}.dash-tab{padding:.75rem 1.2rem;color:var(--mid);border-bottom:2px solid transparent}.dash-tab.active{color:var(--black);border-bottom-color:var(--red);font-weight:700}.manage-table{width:100%;border-collapse:collapse;min-width:680px}.tbl-wrap{overflow-x:auto}.manage-table th{text-align:left;padding:.6rem .8rem;font-size:.72rem;text-transform:uppercase;color:var(--gray);border-bottom:2px solid var(--border);background:var(--bg)}.manage-table td{padding:.85rem .8rem;font-size:.85rem;border-bottom:1px solid var(--border)}.tbl-btn{display:inline-block;border:1px solid var(--border);background:#fff;border-radius:3px;padding:.3rem .65rem;font-size:.75rem;font-weight:600;margin-right:.3rem}.tbl-btn.del{color:var(--red);border-color:rgba(200,16,46,.3)}.status-badge{display:inline-block;padding:.2rem .55rem;border-radius:20px;font-size:.7rem;font-weight:700;text-transform:uppercase}.status-active{background:#e6f4ed;color:var(--green)}.status-draft{background:#f5f5f5;color:var(--gray)}.detail-wrap{display:grid;grid-template-columns:1fr 320px;gap:2.5rem;align-items:start}.detail-hero-img{max-width:1260px;margin:.8rem auto;padding:0 1rem}.detail-hero-img img,.detail-placeholder{width:100%;max-height:420px;object-fit:cover;border-radius:4px;display:block;background:linear-gradient(135deg,#e5e5e5,#d0d0d0)}.detail-placeholder{height:260px;display:flex;align-items:center;justify-content:center;font-size:5rem}.detail-title{font-size:clamp(1.4rem,4vw,2rem);line-height:1.15;margin-bottom:.3rem}.detail-address{font-size:.93rem;color:var(--mid);margin-bottom:1.5rem}.detail-facts{display:flex;flex-wrap:wrap;border:1px solid var(--border);border-radius:4px;overflow:hidden;margin-bottom:2rem}.d-fact{flex:1;min-width:80px;padding:1rem;border-right:1px solid var(--border);text-align:center}.d-fact:last-child{border-right:none}.d-fact-val{font-family:'Source Serif 4',serif;font-size:1.3rem;font-weight:700}.d-fact-key{font-size:.68rem;color:var(--gray);text-transform:uppercase;letter-spacing:.07em}.detail-section h3{font-family:'Source Serif 4',serif;font-size:1.1rem;margin-bottom:.7rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.detail-section p{color:var(--mid);line-height:1.8}.sidebar-box{position:sticky;top:74px}.sidebar-price{font-family:'Source Serif 4',serif;font-size:1.8rem;font-weight:700}.sidebar-price-unit,.muted{font-size:.8rem;color:var(--gray)}.s-row{display:flex;justify-content:space-between;padding:.45rem 0;border-bottom:1px solid #f0f0f0;font-size:.85rem}.contact-avatar{width:42px;height:42px;border-radius:50%;background:var(--black);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;margin-right:.7rem}.contact-person{display:flex;align-items:center;margin:1rem 0}.footer-inner{max-width:1260px;margin:0 auto}footer{background:var(--black);color:#888;padding:2.5rem 1rem 1.5rem;margin-top:3rem;font-size:.8rem}.footer-top{display:flex;gap:2rem;margin-bottom:2rem;flex-wrap:wrap}.footer-col h4{color:#fff;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.8rem}.footer-col a{display:block;color:#888;margin-bottom:.4rem}.footer-bottom{border-top:1px solid #333;padding-top:1.2rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.8rem;color:#666}@media(max-width:640px){.main-nav{display:none}.logo-text small{display:none}.search-box{grid-template-columns:1fr}.search-box input,.search-box select{border-right:none;border-bottom:1px solid var(--border)}.search-box button{min-height:50px}.listing-card{flex-direction:column}.card-img-wrap{width:100%;min-width:unset;height:190px}.card-meta{flex-direction:column;align-items:flex-start}.card-price,.card-price-unit{text-align:left}.detail-wrap{grid-template-columns:1fr}.form-row-2{grid-template-columns:1fr;gap:0}}

/* Image gallery/admin */
.gallery-strip { max-width:1260px; margin:.5rem auto 1rem; padding:0 1rem; display:flex; gap:.5rem; overflow-x:auto; }
.gallery-strip img { width:150px; height:95px; object-fit:cover; border-radius:4px; border:1px solid var(--border); flex:0 0 auto; }
.image-admin-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:.8rem; margin-bottom:1rem; }
.image-admin-item { display:flex; flex-direction:column; gap:.35rem; font-size:.85rem; color:var(--mid); }
.image-admin-item img { width:100%; height:100px; object-fit:cover; border:1px solid var(--border); border-radius:4px; }
.content-page { max-width:860px; margin:0 auto; padding:2.5rem 1rem 4rem; }
.content-page h1 { font-family:'Source Serif 4',serif; font-size:2rem; margin-bottom:1rem; }
.page-content { color:var(--mid); line-height:1.8; }
.page-content h2,.page-content h3,.page-content h4 { color:var(--black); margin:1.3rem 0 .5rem; font-family:'Source Serif 4',serif; }
.page-content p,.page-content ul,.page-content ol { margin-bottom:1rem; }
.page-content ul,.page-content ol { padding-left:1.4rem; }
.admin-page-layout { display:grid; grid-template-columns:240px 1fr; gap:1rem; align-items:start; }
.admin-page-list { border:1px solid var(--border); border-radius:4px; overflow:hidden; background:var(--white); }
.admin-page-list a { display:block; padding:.85rem 1rem; border-bottom:1px solid var(--border); color:var(--dark); }
.admin-page-list a:last-child { border-bottom:none; }
.admin-page-list a.active { background:var(--black); color:white; font-weight:700; }
.success { background:#e6f4ed; color:var(--green); border:1px solid #c7e8d7; border-radius:4px; padding:.8rem 1rem; margin-bottom:1rem; }
.error { background:var(--red-lt); color:var(--red); border:1px solid rgba(200,16,46,.25); border-radius:4px; padding:.8rem 1rem; margin-bottom:1rem; }
@media (max-width:720px){ .admin-page-layout { grid-template-columns:1fr; } }

.gallery-thumb {
  cursor: pointer;
  opacity: .75;
  transition: opacity .2s, border-color .2s, transform .2s;
}

.gallery-thumb:hover,
.gallery-thumb.active {
  opacity: 1;
  border-color: var(--red);
}

.gallery-thumb.active {
  transform: translateY(-2px);
}

.print-button-wrap {
  max-width:1260px;
  margin: 0 auto 1rem;
  padding: 0 1rem;
  text-align: right;
}

.print-images {
  display: none;
}

@media print {
  @page {
    size: A4;
    margin: 12mm;
  }

  .topbar,
  header,
  footer,
  .no-print,
  .sidebar-box a,
  .print-button-wrap {
    display: none !important;
  }

  body {
    font-size: 11pt;
    color: #000;
    background: #fff;
  }

  .detail-wrap {
    display: block;
    max-width: none;
    padding: 0;
  }

  .sidebar-box {
    position: static;
    border: none;
    padding: 0;
    margin-top: 10mm;
  }

  .detail-facts {
    page-break-inside: avoid;
  }

  .detail-section {
    page-break-inside: avoid;
  }

  .print-images {
    display: block;
    page-break-before: always;
  }

  .print-images h2 {
    font-family: 'Source Serif 4', serif;
    font-size: 18pt;
    margin-bottom: 8mm;
  }

  .print-image-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10mm;
  }

  .print-image-item {
    height: 128mm;
    page-break-inside: avoid;
  }

  .print-image-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
