@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght,ital@9..144,380,0;9..144,460,0;9..144,600,0;9..144,460,1&family=Archivo:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --bg:#F7F2E9;
  --bg-card:#FFFDF8;
  --bg-raised:#EFE7D8;
  --ink:#211D1A;
  --ink-soft:#5B5349;
  --ink-faint:#948C7E;
  --rust:#B2542E;
  --rust-dark:#8C3F20;
  --line:rgba(33,29,26,0.14);
  --line-soft:rgba(33,29,26,0.08);
  --shadow:0 20px 44px -24px rgba(33,20,10,0.35);
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:Archivo,sans-serif; font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
.wrap{ max-width:1180px; margin:0 auto; padding:0 28px; }
.eyebrow{ font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:2.5px; text-transform:uppercase; color:var(--rust); }
h1,h2,h3{ font-family:Fraunces,serif; font-weight:460; color:var(--ink); margin:0; line-height:1.12; }
h2{ font-size:clamp(28px,3.6vw,42px); }
h3{ font-size:20px; }
p{ margin:0; color:var(--ink-soft); }
section{ padding:76px 0; }
@media (max-width:700px){ section{ padding:52px 0; } .wrap{ padding:0 20px; } }

/* ---- nav ---- */
.tc-nav{
  position:sticky; top:0; z-index:40; background:rgba(247,242,233,0.92); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line-soft);
}
.tc-nav .row{ display:flex; align-items:center; justify-content:space-between; padding:16px 28px; max-width:1180px; margin:0 auto; }
.tc-brand{ display:flex; align-items:center; gap:12px; }
.tc-mark{ width:34px; height:34px; border-radius:9px; background:var(--rust); color:#FFF7EE; display:flex; align-items:center; justify-content:center; font-family:Fraunces,serif; font-size:18px; }
.tc-wordmark{ font-family:Fraunces,serif; font-size:16px; letter-spacing:2px; text-transform:uppercase; }
.tc-wordmark small{ display:block; font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:1.5px; color:var(--ink-faint); text-transform:uppercase; margin-top:1px; }
.tc-navlinks{ display:flex; gap:30px; font-size:13.5px; }
.tc-navlinks a:hover{ color:var(--rust); }
.tc-nav .phone{ font-family:'IBM Plex Mono',monospace; font-size:12.5px; border:1px solid var(--line); border-radius:30px; padding:8px 16px; }
.tc-navtoggle{ display:none; background:none; border:none; font-size:22px; cursor:pointer; color:var(--ink); }
@media (max-width:820px){ .tc-navlinks{ display:none; } .tc-navtoggle{ display:block; } }

/* ---- hero ---- */
.tc-hero{ position:relative; padding:0; min-height:88vh; display:flex; align-items:flex-end; overflow:hidden; }
.tc-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tc-hero::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(33,20,10,0.15) 0%, rgba(28,18,10,0.15) 40%, rgba(20,13,8,0.86) 100%);
}
.tc-hero-content{ position:relative; z-index:2; padding:64px 28px 56px; max-width:1180px; margin:0 auto; width:100%; }
.tc-hero .eyebrow{ color:#F0C9A8; }
.tc-hero h1{ color:#FFF9F0; font-size:clamp(40px,7vw,84px); letter-spacing:0.5px; margin-top:10px; }
.tc-hero .lede{ color:#E9DFCF; max-width:520px; margin-top:16px; font-size:16.5px; }
.tc-hero-actions{ display:flex; gap:14px; margin-top:30px; flex-wrap:wrap; }
.tc-btn{
  display:inline-block; padding:14px 26px; border-radius:40px; font-family:'IBM Plex Mono',monospace;
  font-size:12px; letter-spacing:1px; text-transform:uppercase; transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.tc-btn-solid{ background:var(--rust); color:#FFF7EE; }
.tc-btn-solid:hover{ background:var(--rust-dark); }
.tc-btn-outline{ border:1px solid rgba(255,247,238,0.5); color:#FFF7EE; }
.tc-btn-outline:hover{ border-color:#FFF7EE; background:rgba(255,247,238,0.1); }

/* ---- intro ---- */
.tc-intro .wrap{ display:grid; grid-template-columns:1.3fr 1fr; gap:60px; align-items:start; }
@media (max-width:820px){ .tc-intro .wrap{ grid-template-columns:1fr; gap:32px; } }
.tc-intro h2{ margin-top:10px; }
.tc-intro p.body{ margin-top:16px; color:var(--ink-soft); font-size:15.5px; }
.tc-stats{ display:flex; flex-direction:column; gap:22px; }
.tc-stats .stat{ border-top:1px solid var(--line); padding-top:14px; }
.tc-stats .v{ font-family:Fraunces,serif; font-size:26px; color:var(--rust); }
.tc-stats .k{ font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:1.2px; text-transform:uppercase; color:var(--ink-faint); margin-top:2px; }

/* ---- residences / floor plans ---- */
.tc-residences{ background:var(--bg-raised); }
.tc-plangrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:40px; }
@media (max-width:900px){ .tc-plangrid{ grid-template-columns:1fr; } }
.tc-plancard{ background:var(--bg-card); border:1px solid var(--line-soft); border-radius:16px; overflow:hidden; box-shadow:var(--shadow); }
.tc-plancard .fp{ background:#FBF8F1; padding:20px; display:flex; align-items:center; justify-content:center; min-height:250px; }
.tc-plancard .fp img{ max-height:250px; width:auto; margin:0 auto; }
.tc-plancard .meta{ padding:22px 24px; border-top:1px solid var(--line-soft); }
.tc-plancard .name{ font-family:Fraunces,serif; font-size:19px; }
.tc-plancard .desc{ font-size:13px; color:var(--ink-soft); margin-top:8px; line-height:1.6; }

/* ---- gallery ---- */
.tc-gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:14px; margin-top:40px; }
.tc-gallery-grid .g-item{ border-radius:12px; overflow:hidden; position:relative; }
.tc-gallery-grid .g-item img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.tc-gallery-grid .g-item:hover img{ transform:scale(1.05); }
.tc-gallery-grid .g-wide{ grid-column:span 2; }
.tc-gallery-grid .g-tall{ grid-row:span 2; }
@media (max-width:900px){ .tc-gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:170px; } .tc-gallery-grid .g-wide{ grid-column:span 2; } .tc-gallery-grid .g-tall{ grid-row:span 1; } }

/* ---- neighborhood ---- */
.tc-neighborhood{ background:var(--ink); color:#F0EAE0; }
.tc-neighborhood .eyebrow{ color:#E3A47B; }
.tc-neighborhood h2{ color:#FFF9F0; margin-top:10px; }
.tc-neighborhood .wrap{ display:grid; grid-template-columns:1.2fr 1fr; gap:56px; align-items:start; }
@media (max-width:820px){ .tc-neighborhood .wrap{ grid-template-columns:1fr; gap:30px; } }
.tc-neighborhood p{ color:#D9CFC0; font-size:15.5px; }
.tc-neighborhood p + p{ margin-top:14px; }
.tc-scorerow{ display:flex; gap:30px; }
.tc-scorerow .stat{ text-align:left; }
.tc-scorerow .v{ font-family:Fraunces,serif; font-size:34px; color:#FFF9F0; }
.tc-scorerow .k{ font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:1.2px; text-transform:uppercase; color:#B8AC98; margin-top:2px; }
.tc-source-note{ margin-top:20px; font-size:11.5px; color:#8A7F6E; }
.tc-amenity-list{ margin-top:24px; display:flex; flex-direction:column; gap:10px; }
.tc-amenity-list .item{ font-size:13.5px; color:#D9CFC0; border-top:1px solid rgba(255,249,240,0.12); padding-top:10px; }
.tc-amenity-list .item b{ color:#F0EAE0; font-weight:500; }

/* ---- leasing / contact ---- */
.tc-leasing .wrap{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:start; }
@media (max-width:820px){ .tc-leasing .wrap{ grid-template-columns:1fr; gap:32px; } }
.tc-field{
  width:100%; padding:14px 16px; border-radius:9px; border:1px solid var(--line); background:var(--bg-card);
  color:var(--ink); font-family:Archivo,sans-serif; font-size:14.5px; margin-bottom:14px;
}
.tc-field:focus{ outline:2px solid var(--rust); outline-offset:1px; }
.tc-consent{ display:flex; gap:10px; align-items:flex-start; font-size:12px; line-height:1.6; color:var(--ink-faint); margin-bottom:18px; }
.tc-consent input{ margin-top:3px; flex:none; width:15px; height:15px; accent-color:var(--rust); }
.tc-consent a{ text-decoration:underline; color:var(--ink-soft); }
.tc-direct h3{ margin-bottom:10px; }
.tc-direct p{ font-size:14.5px; }
.tc-direct .managed-by{ margin-top:20px; padding-top:20px; border-top:1px solid var(--line); font-size:12.5px; color:var(--ink-faint); }
.tc-direct .managed-by a{ color:var(--rust); text-decoration:underline; }

/* ---- footer ---- */
.tc-footer{ background:var(--ink); color:#B8AC98; padding:36px 0; }
.tc-footer .wrap{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; align-items:center; font-size:11.5px; }
.tc-footer a{ color:#D9CFC0; }
.tc-footer a:hover{ color:#FFF9F0; }
