/* ============================================================
   City Commercial Realty — Website
   Built on the design-system tokens (../styles.css).
   ============================================================ */

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--ccr-font-sans);
  background:var(--ccr-cream-50);
  color:var(--ccr-ink);
  line-height:var(--ccr-lh-body);
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.container{max-width:var(--ccr-container);margin:0 auto;padding:0 24px}

/* ---- Type helpers ---- */
.display{font-family:var(--ccr-font-display)}
.eyebrow{
  font-family:var(--ccr-font-display);font-size:var(--ccr-fs-eyebrow);font-weight:600;
  letter-spacing:var(--ccr-track-eyebrow);text-transform:uppercase;color:var(--ccr-steel);
  display:inline-flex;align-items:center;gap:12px;
}
.eyebrow.on-navy{color:var(--ccr-steel-300)}
.eyebrow.rule::before{content:"";width:24px;height:2px;background:currentColor;display:inline-block}
h1,h2,h3{font-family:var(--ccr-font-display);font-weight:600;color:var(--ccr-ink);line-height:1.1}
.muted{color:var(--ccr-ink-muted)}

/* ---- Buttons ---- */
.btn{
  font-family:var(--ccr-font-sans);font-weight:600;font-size:15px;letter-spacing:.01em;
  border:1.5px solid transparent;border-radius:var(--ccr-r-md);padding:12px 22px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  transition:background var(--ccr-dur) var(--ccr-ease),color var(--ccr-dur) var(--ccr-ease),border-color var(--ccr-dur) var(--ccr-ease);
}
.btn svg{width:16px;height:16px}
.btn-primary{background:var(--ccr-navy);color:#fff}
.btn-primary:hover{background:var(--ccr-navy-700)}
.btn-steel{background:var(--ccr-steel);color:#fff}
.btn-steel:hover{background:var(--ccr-steel-600)}
.btn-outline{background:transparent;color:var(--ccr-navy);border-color:var(--ccr-navy)}
.btn-outline:hover{background:var(--ccr-navy);color:#fff}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn-ghost:hover{background:rgba(255,255,255,.1)}
.btn-lg{padding:14px 28px;font-size:16px}
.btn-sm{padding:8px 15px;font-size:13px}

/* ---- Badges ---- */
.badge{
  display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;padding:5px 11px;border-radius:var(--ccr-r-pill);border:1px solid transparent;
}
.badge .dot{width:7px;height:7px;border-radius:50%}
.b-lease{background:var(--ccr-navy);color:#fff}
.b-sale{background:var(--ccr-steel);color:#fff}
.b-avail{background:rgba(58,167,88,.12);color:var(--ccr-success-ink);border-color:rgba(58,167,88,.3)}
.b-avail .dot{background:var(--ccr-success)}
.pill-type{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:5px 10px;border-radius:var(--ccr-r-pill);background:var(--ccr-steel);color:#fff}

/* ---- Header ---- */
.site-header{
  position:sticky;top:0;z-index:50;background:var(--ccr-navy);
  display:flex;align-items:center;gap:28px;padding:16px 24px;
}
.site-header .brand{display:flex;align-items:center;gap:12px}
.site-header .brand img{height:28px;width:auto}
.site-header .brand .wm{
  font-family:var(--ccr-font-display);font-weight:500;letter-spacing:var(--ccr-track-wordmark);
  text-transform:uppercase;color:#fff;font-size:15px;
}
.site-nav{display:flex;gap:24px;margin-left:18px}
.site-nav a{color:#dfe4f0;font-size:14.5px;font-weight:500;padding:4px 0;border-bottom:2px solid transparent}
.site-nav a:hover{color:#fff}
.site-nav a.active{color:#fff;border-bottom-color:#fff}
.site-header .cta{margin-left:auto;display:flex;align-items:center;gap:16px}
.site-header .phone{color:#c7cee0;font-size:14px;font-weight:500}
.site-header .menu-btn{display:none;margin-left:auto;background:none;border:none;cursor:pointer;padding:6px}
.site-header .menu-btn svg{width:26px;height:26px;stroke:#fff}

/* ---- Footer ---- */
.site-footer{background:var(--ccr-navy-900);color:#aeb6cd;padding:40px 24px 24px;margin-top:80px}
.site-footer .top{
  max-width:var(--ccr-container);margin:0 auto;display:flex;justify-content:space-between;gap:34px;
  flex-wrap:wrap;padding-bottom:26px;border-bottom:1px solid rgba(255,255,255,.1);
}
.site-footer .brand img{width:240px;max-width:60vw}
.site-footer .brand .wm{font-family:var(--ccr-font-display);font-weight:500;letter-spacing:.02em;text-transform:uppercase;color:#fff;font-size:15px;margin-top:10px}
.site-footer .brand .sub{color:#8e97b4;font-size:13px;margin-top:6px}
.fcols{display:flex;gap:48px;flex-wrap:wrap}
.fcol h5{font-family:var(--ccr-font-display);color:#fff;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;font-weight:500}
.fcol a{display:block;color:#aeb6cd;font-size:13.5px;margin-bottom:7px}
.fcol a:hover{color:#fff}
.site-footer .bottom{
  max-width:var(--ccr-container);margin:0 auto;display:flex;justify-content:space-between;flex-wrap:wrap;
  gap:10px;padding-top:16px;font-size:12.5px;color:#7e87a3;
}

/* ---- Hero ---- */
.hero{
  position:relative;background:linear-gradient(165deg,#1C2A5E 0%,#0E1A44 55%,#08102E 100%);
  overflow:hidden;color:#fff;
}
.hero .sky{position:absolute;right:0;bottom:0;width:58%;max-width:620px;opacity:.4;pointer-events:none}
.hero .inner{position:relative;max-width:600px;padding:84px 0}
.hero h1{color:#fff;font-size:clamp(34px,5vw,52px);line-height:1.05;letter-spacing:-.01em;margin:16px 0}
.hero p{font-size:18px;color:#c7cee0;max-width:48ch;margin-bottom:30px}
.hero .acts{display:flex;gap:14px;flex-wrap:wrap}

/* ---- Stat band ---- */
.statband{background:var(--ccr-navy);border-radius:14px;padding:40px 32px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.statband .stat{position:relative;padding-left:18px}
.statband .stat::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;background:var(--ccr-steel-300);border-radius:2px}
.statband .n{font-family:var(--ccr-font-display);font-weight:600;font-size:40px;color:#fff;line-height:1}
.statband .l{font-size:13px;color:#b9c1d8;margin-top:8px}

/* ---- Section scaffolding ---- */
.section{padding:64px 0}
.section-head{margin-bottom:32px}
.section-head h2{font-size:clamp(26px,3.5vw,34px);margin-top:8px}
.section-head p{color:var(--ccr-ink-muted);font-size:16px;margin-top:8px;max-width:60ch}

/* ---- Cards ---- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.card{
  background:var(--ccr-paper);border:1px solid var(--ccr-line);border-radius:var(--ccr-r-lg);
  box-shadow:var(--ccr-sh-1);overflow:hidden;
  transition:transform .2s var(--ccr-ease),box-shadow .2s var(--ccr-ease);
}
.card.lift:hover{transform:translateY(-3px);box-shadow:var(--ccr-sh-3)}

/* ---- Property card ---- */
.prop .media{position:relative;height:200px;background:linear-gradient(160deg,#1C2A5E,#0E1A44)}
.prop .media image-slot,.prop .media .ph-img{position:absolute;inset:0;width:100%;height:100%}
.prop .media .sky{position:absolute;bottom:0;left:0;width:100%;opacity:.5}
.prop .media .status{position:absolute;top:12px;left:12px}
.prop .media .type{position:absolute;top:12px;right:12px}
.prop .body{padding:18px}
.prop .addr{font-family:var(--ccr-font-display);font-weight:600;font-size:20px;line-height:1.2}
.prop .sub{font-size:13.5px;color:var(--ccr-ink-muted);margin-top:2px}
.prop .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0;padding:14px 0;border-top:1px solid var(--ccr-line);border-bottom:1px solid var(--ccr-line)}
.prop .stats .n{font-family:var(--ccr-font-display);font-weight:600;font-size:17px}
.prop .stats .l{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ccr-ink-muted);margin-top:2px}
.prop .foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.prop .broker{display:flex;align-items:center;gap:9px;font-size:13px}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--ccr-navy);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--ccr-font-display);font-weight:700;font-size:12px;overflow:hidden;flex:0 0 30px}
.prop .broker b{font-weight:600;display:block}
.prop .broker span{color:var(--ccr-ink-muted);font-size:12px}

/* ---- Feature / service cards ---- */
.feature{padding:26px}
.feature .ic{width:44px;height:44px;border-radius:var(--ccr-r-md);background:rgba(58,74,120,.1);display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.feature .ic svg{width:22px;height:22px;stroke:var(--ccr-steel);fill:none;stroke-width:2}
.feature h3{font-size:20px;margin-bottom:8px}
.feature p{font-size:14.5px;color:var(--ccr-ink-muted)}

/* ---- CTA banner ---- */
.cta-banner{
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  background:var(--ccr-steel);color:#fff;border-radius:var(--ccr-r-lg);padding:24px 30px;
}
.cta-banner .t{font-family:var(--ccr-font-display);font-weight:600;font-size:23px}
.cta-banner .s{font-size:14px;opacity:.85;margin-top:2px}

/* ---- Forms ---- */
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.field label .req{color:var(--ccr-rust)}
.input,.select,textarea{
  width:100%;font-family:var(--ccr-font-sans);font-size:15px;color:var(--ccr-ink);background:#fff;
  border:1.5px solid var(--ccr-line);border-radius:var(--ccr-r-md);padding:11px 13px;
  transition:border-color .15s,box-shadow .15s;
}
.input:focus,.select:focus,textarea:focus{outline:none;border-color:var(--ccr-steel);box-shadow:var(--ccr-focus)}
.select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%235A6478' stroke-width='2'><path d='M4 6l4 4 4-4'/></svg>");background-repeat:no-repeat;background-position:right 12px center}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* ---- Page hero (interior) ---- */
.page-hero{background:var(--ccr-navy);color:#fff;padding:56px 0}
.page-hero h1{color:#fff;font-size:clamp(32px,4.5vw,44px);margin:10px 0 6px}
.page-hero p{color:var(--ccr-text-onnavy-muted);font-size:16px;max-width:60ch}

/* ---- Responsive ---- */
@media(max-width:860px){
  .site-nav,.site-header .cta{display:none}
  .site-header .menu-btn{display:block}
  .grid-3{grid-template-columns:repeat(2,1fr)}
  .statband{grid-template-columns:repeat(2,1fr);gap:28px 20px}
}
@media(max-width:600px){
  .grid-3,.grid-2,.two{grid-template-columns:1fr}
  .hero .inner{padding:56px 0}
  .hero .sky{opacity:.25}
  .section{padding:48px 0}
}

/* mobile menu (toggled) */
.mobile-menu{display:none;background:var(--ccr-navy-900);padding:8px 24px 18px}
.mobile-menu.open{display:block}
.mobile-menu a{display:block;color:#dfe4f0;font-size:15px;font-weight:500;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.mobile-menu a:last-child{border-bottom:none}

/* accessibility */
.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--ccr-navy);color:#fff;padding:10px 16px;border-radius:0 0 8px 0;font-family:var(--ccr-font-sans);font-size:14px;text-decoration:none}
.skip-link:focus{left:0}
a:focus-visible,button:focus-visible{outline:2px solid var(--ccr-steel-300);outline-offset:2px}
