:root{
    --door:#0F251A;
    --door-2:#17301F;
    --ivory:#F0EAE3;
    --paper:#E8E0D4;
    --bronze-light:#B29F86;
    --bronze:#917439;
    --bronze-dark:#5C4A24;
    --brick:#A85C3C;
    --stone:#5B5449;
    --line: rgba(15,37,26,0.14);
    --line-light: rgba(240,234,227,0.16);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--ivory);
    color:var(--door);
    font-family:'Inter',sans-serif;
    -webkit-font-smoothing:antialiased;
    position:relative;
  }
  body::before{
    content:'';
    position:fixed; inset:0; z-index:1; pointer-events:none;
    opacity:0.045; mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }
  .reveal{ opacity:0; transform:translateY(28px); transition:opacity 0.9s cubic-bezier(.16,.8,.24,1), transform 0.9s cubic-bezier(.16,.8,.24,1); }
  .reveal.visible{ opacity:1; transform:translateY(0); }
  .reveal-d1{ transition-delay:0.08s; }
  .reveal-d2{ transition-delay:0.16s; }
  .reveal-d3{ transition-delay:0.24s; }
  .reveal-d4{ transition-delay:0.32s; }
  a{color:inherit; text-decoration:none;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
  h1,h2,h3{font-family:'Fraunces',serif; font-weight:500;}
  .bronze-text{ color:var(--bronze-light); }

  /* fanlight motif - reusable */
  .fanlight{ display:block; }
  .fanlight path, .fanlight line, .fanlight circle{ fill:none; stroke-linecap:round; }

  /* NAV */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(240,234,227,0.94);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
    color:var(--door);
  }
  nav{ display:flex; align-items:center; justify-content:space-between; padding:22px 0; }
  .logo{ display:flex; align-items:center; gap:12px; font-family:'Fraunces',serif; font-weight:400; font-size:20px; letter-spacing:3.5px; color:var(--door); text-decoration:none; }
  .logo em{ font-style:italic; }
  .navlinks{display:flex; gap:24px; font-size:13px; letter-spacing:1px; text-transform:uppercase;}
  .navlinks a{position:relative; opacity:0.75; transition:opacity 0.3s; color:var(--door); padding-bottom:4px;}
  .navlinks a::after{
    content:''; position:absolute; left:0; bottom:0; width:100%; height:1px;
    background:var(--bronze); transform:scaleX(0); transform-origin:right;
    transition:transform 0.35s cubic-bezier(.16,.8,.24,1);
  }
  .navlinks a:hover{opacity:1;}
  .navlinks a:hover::after{ transform:scaleX(1); transform-origin:left; }
  .navlinks a.current-page{ opacity:1; color:var(--bronze); }
  .navlinks a.current-page::after{ transform:scaleX(1); background:var(--bronze); }
  .navcta{
    font-size:12px; letter-spacing:1.5px; text-transform:uppercase;
    border:1px solid var(--door); padding:11px 24px; color:var(--door);
    transition:background 0.3s, color 0.3s;
  }
  .navcta:hover{background:var(--door); color:var(--ivory);}
  .nav-right{ display:flex; align-items:center; gap:14px; }


  /* MOBILE NAV TOGGLE */
  .nav-toggle{ display:none; background:none; border:none; cursor:pointer; padding:8px; margin:-8px; }
  .nav-toggle span{ display:block; width:22px; height:1.5px; background:var(--door); margin:5px 0; transition:transform 0.3s ease, opacity 0.3s ease; }
  .nav-toggle.open span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
  .nav-toggle.open span:nth-child(2){ opacity:0; }
  .nav-toggle.open span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

  @media (max-width:860px){
    .nav-toggle{ display:block; }
    nav{ position:relative; flex-wrap:wrap; }
    .navlinks{
      display:none; width:100%; order:3;
      flex-direction:column; align-items:flex-start; gap:0;
      margin-top:20px; border-top:1px solid var(--line);
    }
    .navlinks.open{ display:flex; }
    .navlinks a{ width:100%; padding:16px 2px; border-bottom:1px solid var(--line); }
    .navlinks a::after{ display:none; }
  }

  /* HERO */
  .hero-cta-row{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin:34px 0 44px; }
  .hero-cta{
    display:inline-block; background:var(--door); color:var(--ivory);
    padding:17px 34px; font-size:13px; letter-spacing:1.5px; text-transform:uppercase;
    text-decoration:none; font-weight:500;
    box-shadow:0 14px 30px rgba(15,37,26,0.18);
    transition:background 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
  }
  .hero-cta:hover{ background:var(--bronze); box-shadow:0 16px 36px rgba(145,116,57,0.3); transform:translateY(-1px); }
  .hero-cta-secondary{
    font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--stone);
    text-decoration:underline; text-underline-offset:4px; transition:color 0.3s ease;
  }
  .hero-cta-secondary:hover{ color:var(--bronze); }
  .hero-light{
    background:var(--ivory);
    color:var(--door);
    padding:110px 0 100px;
    position:relative;
    overflow:hidden;
    z-index:2;
  }
  .hero-watermark{
    position:absolute; top:-8%; right:-6%; width:620px; height:auto;
    opacity:0.05; pointer-events:none;
  }
  .brand-lockup{
    display:flex; flex-direction:column; align-items:center; margin-bottom:64px;
    position:relative; z-index:2;
  }
  .eyebrow{
    font-size:11px; letter-spacing:5px; text-transform:uppercase; color:var(--bronze);
    margin-bottom:26px; display:block; text-align:center;
  }
  .hero-light h1{
    font-size:clamp(32px, 5vw, 52px);
    line-height:1.28;
    max-width:800px;
    font-weight:400;
    letter-spacing:0.2px;
    text-align:center;
    margin:0 auto;
    color:var(--door);
  }
  .hero-light h1 em{ font-style:italic; color:var(--bronze); }
  .hero-lede{
    text-align:center; max-width:560px; margin:34px auto 0;
    color:var(--stone); font-size:16px; line-height:1.75; font-weight:400;
  }
  .hero-stats{
    display:flex; justify-content:center; gap:72px;
    margin-top:64px; padding-top:40px; border-top:1px solid var(--line);
  }
  .stat-num{font-family:'Fraunces',serif; font-size:32px; font-weight:500; font-style:italic; color:var(--door);}
  .stat-label{font-size:11px; letter-spacing:1.5px; color:var(--stone); text-transform:uppercase; margin-top:6px; text-align:center;}
  .scroll-cue{
    display:flex; flex-direction:column; align-items:center; gap:10px;
    margin-top:70px; opacity:0.55;
  }
  .scroll-cue .line{ width:1px; height:36px; background:var(--bronze); animation:scrollpulse 2.2s ease-in-out infinite; }
  .scroll-cue span{ font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--stone); }
  @keyframes scrollpulse{ 0%,100%{ opacity:0.3; transform:scaleY(0.7); } 50%{ opacity:1; transform:scaleY(1); } }

  /* LATEST UPDATE BANNER */
  .update-banner{
    background:var(--bronze); border-bottom:1px solid rgba(15,37,26,0.15);
    padding:20px 0;
  }
  .update-banner a{
    display:flex; align-items:center; justify-content:center; gap:16px;
    flex-wrap:wrap; text-align:center; text-decoration:none;
  }
  .update-banner .badge{
    font-family:'Inter',sans-serif; font-size:11px; font-weight:600; letter-spacing:2px;
    color:var(--bronze); background:var(--door); padding:5px 12px; flex-shrink:0;
  }
  .update-banner .headline{
    font-family:'Fraunces',serif; font-style:italic; font-size:16px; color:var(--door);
    transition:opacity 0.3s ease;
  }
  .update-banner .arrow{ color:var(--door); transition:transform 0.3s ease; }
  .update-banner a:hover .headline{ opacity:0.7; }
  .update-banner a:hover .arrow{ transform:translateX(4px); }

  /* MANIFESTO / POSITIONING STATEMENT */
  .manifesto{
    padding:90px 0; text-align:center; border-bottom:1px solid var(--line);
  }
  .manifesto-line{
    font-family:'Fraunces',serif; font-weight:400; font-style:italic;
    font-size:clamp(26px,4.2vw,42px); color:var(--door); line-height:1.5;
  }
  .manifesto-line em{ color:var(--bronze); font-style:italic; }
  .manifesto-rule{ width:60px; height:1px; background:var(--bronze); margin:26px auto 0; }
  .manifesto-sub{ margin-top:26px; font-size:14.5px; color:var(--stone); letter-spacing:0.3px; }

  /* SECTIONS */
  .section{padding:110px 0; border-bottom:1px solid var(--line);}
  .section.dark{background:var(--door); color:var(--ivory); border-bottom:1px solid var(--line-light);}
  .section-head{
    display:flex; justify-content:space-between; align-items:flex-end;
    margin-bottom:64px; gap:40px; flex-wrap:wrap;
  }
  .section-head h2{font-size:clamp(30px,4vw,44px); max-width:600px; line-height:1.2; font-weight:400;}
  .section-head h2 em{font-style:italic;}
  .section-head .desc{max-width:320px; color:var(--stone); font-size:14.5px; line-height:1.7;}
  .section.dark .section-head .desc{color:#A39C8B;}

  /* TESTIMONIALS */
  .testimonial-empty{
    border:1px solid var(--line); background:var(--paper); padding:44px;
    text-align:center; max-width:640px; margin:0 auto;
  }
  .testimonial-empty p{ color:var(--stone); font-size:15px; line-height:1.75; margin:0; }
  .testimonial-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
  .testimonial-card{ background:var(--ivory); padding:40px 34px; }
  .testimonial-card .quote-mark{ font-family:'Fraunces',serif; font-size:56px; font-style:italic; color:var(--bronze-light); line-height:1; margin-bottom:6px; }
  .testimonial-quote{ font-family:'Fraunces',serif; font-style:italic; font-size:17px; color:var(--door); line-height:1.6; margin-bottom:20px; }
  .testimonial-attr{ font-size:12.5px; letter-spacing:1px; text-transform:uppercase; color:var(--stone); }
  @media (max-width:900px){ .testimonial-grid{ grid-template-columns:1fr; } }

  /* THE PRACTICE / bio */
  .practice-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:90px; align-items:start; }
  .practice-grid .lead{font-size:25px; line-height:1.55; font-family:'Fraunces',serif; font-weight:400;}
  .practice-grid .lead em{ font-style:italic; color:var(--brick); }
  .practice-note{
    margin-top:36px; padding-top:28px; border-top:1px solid var(--line);
    font-size:14px; color:var(--stone); line-height:1.75; max-width:400px;
  }
  .practice-note strong{ color:var(--door); font-weight:600; }
  .credentials-list{display:flex; flex-direction:column;}
  .credentials-list .item{
    padding:26px 0; border-top:1px solid var(--line);
    display:flex; justify-content:space-between; gap:30px;
  }
  .credentials-list .item:last-child{border-bottom:1px solid var(--line);}
  .credentials-list .item h4{font-size:14px; font-weight:600; letter-spacing:0.6px; text-transform:uppercase; padding-top:2px;}
  .credentials-list .item p{color:var(--stone); font-size:14px; max-width:300px; text-align:right; line-height:1.6;}
  @media (max-width:860px){
    .practice-grid{grid-template-columns:1fr;}
    .credentials-list .item{flex-direction:column; gap:8px;}
    .credentials-list .item p{text-align:left;}
  }

  /* AREAS */
  .areas{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-light); border:1px solid var(--line-light);}
  #services-teaser .areas{ grid-template-columns:repeat(2,1fr); }
  .area-card{background:var(--door-2); padding:56px; position:relative; transition:background 0.4s ease;}
  .area-card:hover{background:#1E3B29;}
  .area-card h3{font-size:32px; color:var(--ivory); font-weight:400; margin-bottom:16px;}
  .area-card h3 em{font-style:italic; color:var(--bronze-light);}
  .area-card p{color:#B3AD9E; font-size:14.5px; line-height:1.75; max-width:380px;}
  .area-tag{
    display:inline-block; margin-top:24px; font-size:11px; letter-spacing:1.5px;
    color:var(--bronze); text-transform:uppercase; border-top:1px solid var(--line-light); padding-top:18px;
  }
  @media (max-width:900px){ .areas{grid-template-columns:1fr;} }

  /* LISTINGS TEASER */
  .listings{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  .listing{background:var(--ivory); text-decoration:none; color:var(--door); display:block; transition:box-shadow 0.4s ease, transform 0.4s ease;}
  .listing:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(15,37,26,0.1); }
  .listing-img{height:220px; background:linear-gradient(135deg,#d8cdb2,#b8a074); position:relative; overflow:hidden;}
  .listing-img::after{content:''; position:absolute; inset:0; background:repeating-linear-gradient(115deg, rgba(15,37,26,0.05) 0px, rgba(15,37,26,0.05) 1px, transparent 1px, transparent 14px);}
  .listing-body{padding:26px 28px 30px;}
  .listing-price{font-family:'Fraunces',serif; font-size:22px; font-style:italic; margin-bottom:4px;}
  .listing-loc{font-size:12.5px; color:var(--stone); letter-spacing:0.5px; text-transform:uppercase;}
  .listing-meta{display:flex; gap:16px; margin-top:16px; padding-top:16px; border-top:1px solid var(--line); font-size:11.5px; color:var(--stone); letter-spacing:0.5px; text-transform:uppercase;}
  .listings-more{ text-align:center; margin-top:44px; }
  .listings-more a{ font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--bronze); border-bottom:1px solid var(--bronze); padding-bottom:4px; }
  @media (max-width:900px){ .listings{grid-template-columns:1fr;} }

  /* PROCESS */
  .process{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  .step{background:var(--ivory); padding:42px 32px; min-height:260px; display:flex; flex-direction:column; justify-content:space-between; transition:transform 0.4s cubic-bezier(.16,.8,.24,1), box-shadow 0.4s ease;}
  .step:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(15,37,26,0.1); }
  .step .num{font-family:'Fraunces',serif; font-size:15px; font-style:italic; color:var(--brick);}
  .step h4{font-size:19px; margin:24px 0 12px; font-weight:400; font-family:'Fraunces',serif;}
  .step p{font-size:13.5px; color:var(--stone); line-height:1.65;}
  @media (max-width:900px){ .process{grid-template-columns:1fr;} }

  /* SHORT LET */
  .shortlet-band{ background:var(--paper); }
  .shortlet-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:90px; align-items:start; }
  .shortlet-grid .lead{font-size:23px; line-height:1.55; font-family:'Fraunces',serif; font-weight:400;}
  .shortlet-grid .lead em{ font-style:italic; color:var(--bronze); }
  .shortlet-note{
    margin-top:32px; padding-top:24px; border-top:1px solid var(--line);
    font-size:13.5px; color:var(--stone); line-height:1.7; max-width:400px;
  }
  .shortlet-list{ list-style:none; }
  .shortlet-list li{
    padding:16px 0; border-top:1px solid var(--line);
    font-size:14.5px; display:flex; align-items:baseline; gap:12px;
  }
  .shortlet-list li:last-child{ border-bottom:1px solid var(--line); }
  .shortlet-list li::before{ content:'—'; color:var(--bronze); flex-shrink:0; }
  .shortlet-cta{ margin-top:32px; }
  .shortlet-cta a{
    display:inline-block; font-size:12px; letter-spacing:1.5px; text-transform:uppercase;
    border:1px solid var(--door); padding:14px 30px; color:var(--door);
    transition:background 0.3s, color 0.3s;
  }
  .shortlet-cta a:hover{ background:var(--door); color:var(--ivory); }
  @media (max-width:900px){ .shortlet-grid{grid-template-columns:1fr;} }

  /* LISTINGS FILTER */
  .filter-bar{
    display:flex; flex-wrap:wrap; align-items:flex-end; gap:28px;
    padding:28px 0; border-bottom:1px solid var(--line);
  }
  .filter-group{ display:flex; flex-direction:column; gap:8px; }
  .filter-group label{ font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--stone); }
  .filter-group select{
    font-family:'Inter',sans-serif; font-size:14px; color:var(--door);
    background:var(--ivory); border:1px solid var(--line); padding:10px 32px 10px 12px;
    outline:none; cursor:pointer; min-width:170px;
    appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0L5 6L10 0' fill='none' stroke='%23917439' stroke-width='1.4'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 12px center;
  }
  .filter-group select:focus{ border-color:var(--bronze); }
  .filter-reset{
    font-family:'Inter',sans-serif; font-size:12px; letter-spacing:1px; text-transform:uppercase;
    color:var(--bronze); background:none; border:none; cursor:pointer; padding:10px 4px;
    border-bottom:1px solid transparent; transition:border-color 0.3s ease;
  }
  .filter-reset:hover{ border-bottom-color:var(--bronze); }
  .filter-count{ font-size:13px; color:var(--stone); margin:20px 0 6px; }
  .listing.filtered-out{ display:none; }
  @media (max-width:760px){ .filter-bar{ gap:18px; } .filter-group select{ min-width:140px; } }

  /* SHORT-LET PAGE SPECIFIC */
  .page-header{ padding:70px 0 50px; border-bottom:1px solid var(--line); }
  .page-header .eyebrow{ text-align:left; margin-bottom:18px; }
  .page-header h1{ font-family:'Fraunces',serif; font-weight:400; font-size:clamp(34px,5vw,54px); max-width:680px; line-height:1.2; }
  .page-header h1 em{ font-style:italic; color:var(--bronze); }
  .page-header p{ color:var(--stone); max-width:520px; margin-top:20px; font-size:15px; line-height:1.7; }

  .feature-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
  .feature-card{ background:var(--ivory); padding:36px 28px; transition:transform 0.4s cubic-bezier(.16,.8,.24,1), box-shadow 0.4s ease; }
  .feature-card:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(15,37,26,0.1); }
  .feature-card h4{ font-family:'Fraunces',serif; font-weight:400; font-size:19px; margin:18px 0 10px; color:var(--door); }
  .feature-card p{ font-size:13.5px; color:var(--stone); line-height:1.6; }
  .feature-icon{ width:30px; height:30px; stroke:var(--bronze); fill:none; stroke-width:1.5; }
  @media (max-width:900px){ .feature-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:600px){ .feature-grid{grid-template-columns:1fr;} }

  .compliance-box{
    background:var(--paper); border:1px solid var(--line); padding:44px;
  }
  .compliance-box h3{ font-family:'Fraunces',serif; font-weight:400; font-size:22px; margin-bottom:10px; }
  .compliance-box h3 em{ font-style:italic; color:var(--bronze); }
  .compliance-grid{ display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-top:28px; }
  .compliance-grid h5{ font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--bronze); margin-bottom:10px; }
  .compliance-grid p{ font-size:14px; color:#3A362C; line-height:1.75; }
  .compliance-note{ margin-top:32px; padding-top:24px; border-top:1px solid var(--line); font-size:12.5px; color:var(--stone); line-height:1.7; }
  @media (max-width:760px){ .compliance-grid{grid-template-columns:1fr;} }

  /* INSIGHTS FILTER TABS */
  .insight-filter-tabs{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:32px; }
  .insight-filter-tab{
    font-family:'Inter',sans-serif; font-size:12px; letter-spacing:1px; text-transform:uppercase;
    background:none; border:1px solid var(--line); padding:11px 20px; color:var(--stone); cursor:pointer;
    transition:background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
  }
  .insight-filter-tab.active{ background:var(--door); color:var(--ivory); border-color:var(--door); }
  .article-card.filtered-out{ display:none; }

  /* ARTICLE / INSIGHTS CARDS (shared: homepage teaser + insights hub) */
  .article-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
  .article-card{ background:var(--ivory); padding:40px 34px; text-decoration:none; color:var(--door); display:flex; flex-direction:column; transition:transform 0.4s cubic-bezier(.16,.8,.24,1), box-shadow 0.4s ease; border-top:3px solid var(--bronze); }
  .article-card .cat-icon{ width:26px; height:26px; margin-bottom:16px; }
  .article-card[data-category="for-tenants"]{ border-top-color:#917439; }
  .article-card[data-category="for-tenants"] .tag{ color:#917439; }
  .article-card[data-category="for-tenants"] .cat-icon{ stroke:#917439; }
  .article-card[data-category="law-change"]{ border-top-color:#0F251A; }
  .article-card[data-category="law-change"] .tag{ color:#0F251A; }
  .article-card[data-category="law-change"] .cat-icon{ stroke:#0F251A; }
  .article-card[data-category="landlord-advice"]{ border-top-color:#5B5449; }
  .article-card[data-category="landlord-advice"] .tag{ color:#5B5449; }
  .article-card[data-category="landlord-advice"] .cat-icon{ stroke:#5B5449; }
  .article-card[data-category="market"]{ border-top-color:#17301F; }
  .article-card[data-category="market"] .tag{ color:#17301F; }
  .article-card[data-category="market"] .cat-icon{ stroke:#17301F; }
  .article-card[data-category="compliance"]{ border-top-color:#B29F86; }
  .article-card[data-category="compliance"] .tag{ color:#B29F86; }
  .article-card[data-category="compliance"] .cat-icon{ stroke:#B29F86; }
  .article-card[data-category="pricing"]{ border-top-color:#A85C3C; }
  .article-card[data-category="pricing"] .tag{ color:#A85C3C; }
  .article-card[data-category="pricing"] .cat-icon{ stroke:#A85C3C; }
  .article-card:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(15,37,26,0.1); }
  .article-card .tag{ font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--bronze); margin-bottom:16px; }
  .article-card h3{ font-family:'Fraunces',serif; font-weight:400; font-size:24px; line-height:1.3; margin-bottom:14px; }
  .article-card p{ font-size:14px; color:var(--stone); line-height:1.7; flex-grow:1; margin-bottom:20px; }
  .article-card .read{ font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--bronze); margin-top:auto; }
  @media (max-width:900px){ .article-grid{grid-template-columns:1fr;} }

  /* COMPLIANCE STRIP (footer, all pages) */
  .compliance-strip{
    display:flex; flex-wrap:wrap; justify-content:center; gap:10px;
    padding:22px 0; margin-top:10px; border-top:1px solid var(--line-light);
    font-size:12px; color:#8B8677; letter-spacing:0.3px;
  }
  .compliance-strip .dot{ color:var(--bronze); opacity:0.6; }

  /* COMPLIANCE SECTION (Landlords page) */
  .compliance-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
  .compliance-card{ background:var(--ivory); padding:34px 28px; }
  .compliance-card h4{ font-family:'Fraunces',serif; font-weight:400; font-size:19px; margin-bottom:12px; color:var(--door); }
  .compliance-card p{ font-size:13.5px; color:var(--stone); line-height:1.65; }
  @media (max-width:900px){ .compliance-cards{grid-template-columns:1fr 1fr;} }
  @media (max-width:600px){ .compliance-cards{grid-template-columns:1fr;} }

  /* FLOOR PLAN VIEWER */
  .floorplan-section{ padding:46px 0; border-top:1px solid var(--line); }
  .floorplan-section h3{ font-family:'Fraunces',serif; font-weight:400; font-size:22px; margin-bottom:24px; }
  .floorplan-image-wrap{
    border:1px solid var(--line); background:var(--ivory); cursor:pointer;
    max-width:640px; margin:0 auto; overflow:hidden;
  }
  .floorplan-image-wrap img{ width:100%; height:auto; display:block; transition:transform 0.4s ease; }
  .floorplan-image-wrap:hover img{ transform:scale(1.02); }
  .floorplan-note{ text-align:center; font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--stone); margin-top:14px; }


  /* GALLERY LIGHTBOX */
  .lightbox-overlay{
    display:none; position:fixed; inset:0; z-index:500;
    background:rgba(15,37,26,0.94); align-items:center; justify-content:center; padding:40px;
  }
  .lightbox-overlay.open{ display:flex; }
  .lightbox-overlay img{ max-width:100%; max-height:88vh; box-shadow:0 30px 70px rgba(0,0,0,0.5); }
  .lightbox-close{
    position:absolute; top:24px; right:28px; background:none; border:none;
    color:var(--ivory); font-size:32px; line-height:1; cursor:pointer; opacity:0.8;
  }
  .lightbox-close:hover{ opacity:1; }
  .lightbox-nav{
    position:absolute; top:50%; transform:translateY(-50%);
    background:none; border:none; color:var(--ivory); font-size:34px; cursor:pointer; opacity:0.6;
    padding:20px;
  }
  .lightbox-nav:hover{ opacity:1; }
  .lightbox-prev{ left:10px; }
  .lightbox-next{ right:10px; }
  .gallery-img{ position:relative; }
  .gallery-img::after{
    content:'\\2922'; position:absolute; top:10px; right:10px; width:28px; height:28px;
    background:rgba(15,37,26,0.55); color:var(--ivory); border-radius:50%;
    display:flex; align-items:center; justify-content:center; font-size:14px;
    opacity:0; transition:opacity 0.3s ease; pointer-events:none;
  }
  .gallery-img:hover::after{ opacity:1; }

  /* STICKY ENQUIRE BAR + POPUP (property pages) */
  .sticky-enquire-bar{
    position:fixed; left:0; right:0; bottom:0; z-index:150;
    background:var(--door); color:var(--ivory);
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 24px; box-shadow:0 -8px 24px rgba(15,37,26,0.25);
  }
  .sticky-enquire-bar .sb-info{ display:flex; flex-direction:column; }
  .sticky-enquire-bar .sb-name{ font-family:'Fraunces',serif; font-style:italic; font-size:14px; color:var(--ivory); }
  .sticky-enquire-bar .sb-price{ font-size:12px; color:var(--bronze-light); letter-spacing:0.5px; margin-top:2px; }
  .sticky-enquire-btn{
    background:var(--bronze); color:var(--door); border:none; padding:14px 28px;
    font-family:'Inter',sans-serif; font-size:12.5px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase;
    cursor:pointer; box-shadow:0 8px 20px rgba(138,117,72,0.4);
    transition:background 0.3s ease, transform 0.3s ease;
  }
  .sticky-enquire-btn:hover{ background:#9C8558; transform:translateY(-1px); }
  .has-sticky-bar .kastel-bot-toggle{ bottom:88px; }
  @media (max-width:600px){ .sticky-enquire-bar .sb-info{ display:none; } .sticky-enquire-bar{ justify-content:center; } }

  .enquire-popup-overlay{
    display:none; position:fixed; inset:0; z-index:400;
    background:rgba(15,37,26,0.7); align-items:center; justify-content:center; padding:24px;
    overflow-y:auto;
  }
  .enquire-popup-overlay.open{ display:flex; }
  .enquire-popup-card{
    background:var(--ivory); max-width:640px; width:100%; max-height:90vh; overflow-y:auto;
    padding:44px; position:relative; margin:auto;
  }
  .enquire-popup-close{
    position:absolute; top:18px; right:20px; background:none; border:none;
    font-size:26px; color:var(--stone); cursor:pointer; line-height:1;
  }
  .enquire-popup-close:hover{ color:var(--door); }
  .enquire-popup-card h3{ font-family:'Fraunces',serif; font-weight:400; font-style:italic; font-size:24px; margin-bottom:8px; }
  .enquire-popup-card .ep-sub{ color:var(--stone); font-size:14px; margin-bottom:28px; }
  .enquire-popup-success{ display:none; text-align:center; padding:40px 10px; }
  .enquire-popup-success.show{ display:block; }
  .enquire-popup-success h4{ font-family:'Fraunces',serif; font-style:italic; font-weight:400; font-size:22px; margin-bottom:10px; }
  .enquire-popup-success p{ color:var(--stone); font-size:14px; }

  /* CHATBOT WIDGET */
  .kastel-bot-toggle{
    position:fixed; bottom:24px; right:24px; z-index:200;
    width:58px; height:58px; border-radius:50%; background:var(--door);
    border:none; cursor:pointer; box-shadow:0 10px 26px rgba(15,37,26,0.35);
    display:flex; align-items:center; justify-content:center;
    transition:transform 0.3s ease;
  }
  .kastel-bot-toggle:hover{ transform:scale(1.06); }
  .kastel-bot-toggle svg{ width:24px; height:24px; }

  .kastel-bot-panel{
    position:fixed; bottom:96px; right:24px; z-index:200;
    width:340px; max-width:calc(100vw - 40px); max-height:70vh;
    background:var(--ivory); border:1px solid var(--line);
    box-shadow:0 24px 60px rgba(15,37,26,0.3);
    display:none; flex-direction:column; overflow:hidden;
  }
  .kastel-bot-panel.open{ display:flex; }
  .kastel-bot-head{
    background:var(--door); color:var(--ivory); padding:16px 18px;
    display:flex; justify-content:space-between; align-items:center;
  }
  .kastel-bot-head strong{ font-family:'Fraunces',serif; font-weight:400; font-style:italic; font-size:17px; }
  .kastel-bot-head button{ background:none; border:none; color:var(--ivory); font-size:20px; cursor:pointer; line-height:1; opacity:0.7; }
  .kastel-bot-head button:hover{ opacity:1; }
  .kastel-bot-body{ padding:16px 18px; overflow-y:auto; flex-grow:1; }
  .kastel-bot-msg{ font-size:13.5px; line-height:1.6; color:#242018; margin-bottom:14px; }
  .kastel-bot-msg a{ color:var(--bronze); }
  .kastel-bot-quick{
    display:block; width:100%; text-align:left; background:var(--paper);
    border:1px solid var(--line); padding:10px 12px; margin-bottom:8px;
    font-size:12.5px; color:var(--door); cursor:pointer; transition:background 0.25s ease;
  }
  .kastel-bot-quick:hover{ background:#E4DBC5; }
  .kastel-bot-form{ display:none; flex-direction:column; gap:8px; margin-top:10px; }
  .kastel-bot-form.open{ display:flex; }
  .kastel-bot-form input, .kastel-bot-form textarea{
    font-family:'Inter',sans-serif; font-size:13px; padding:9px 10px;
    border:1px solid var(--line); background:#fff; outline:none;
  }
  .kastel-bot-form textarea{ min-height:70px; resize:vertical; }
  .kastel-bot-form button{
    background:var(--door); color:var(--ivory); border:none; padding:11px;
    font-size:12px; letter-spacing:1px; text-transform:uppercase; cursor:pointer;
  }
  .kastel-bot-foot{ padding:10px 18px; border-top:1px solid var(--line); }
  .kastel-bot-foot button{
    width:100%; background:none; border:1px solid var(--bronze); color:var(--bronze);
    padding:10px; font-size:11.5px; letter-spacing:1px; text-transform:uppercase; cursor:pointer;
  }

  /* FORM */
  .enquiry-form{ max-width:640px; }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:22px; }
  .form-field{ display:flex; flex-direction:column; margin-bottom:22px; }
  .form-field label{ font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--stone); margin-bottom:8px; }
  .form-field input, .form-field select, .form-field textarea{
    font-family:'Inter',sans-serif; font-size:15px; color:var(--door);
    background:var(--ivory); border:1px solid var(--line); padding:13px 14px;
    outline:none; transition:border-color 0.3s ease;
  }
  .form-field input:focus, .form-field select:focus, .form-field textarea:focus{ border-color:var(--bronze); }
  .form-field textarea{ resize:vertical; min-height:120px; font-family:'Inter',sans-serif; }
  .radio-group{ display:flex; gap:24px; flex-wrap:wrap; }
  .radio-option{ display:flex; align-items:center; gap:8px; font-size:14px; }
  .radio-option input{ accent-color:var(--bronze); }
  .form-submit{
    font-size:13px; letter-spacing:2px; text-transform:uppercase; color:var(--ivory);
    background:var(--door); border:none; padding:16px 40px; cursor:pointer;
    transition:background 0.3s ease;
  }
  .form-submit:hover{ background:var(--door-2); }
  .form-note{ font-size:12.5px; color:var(--stone); margin-top:20px; line-height:1.7; }
  @media (max-width:600px){ .form-row{grid-template-columns:1fr;} }

  /* CTA */
  .cta-band{
    background:var(--door); color:var(--ivory);
    padding:120px 0; text-align:center;
  }
  .cta-band .eyebrow{color:var(--bronze);}
  .cta-band h2{font-size:clamp(32px,4.8vw,52px); max-width:760px; margin:0 auto; line-height:1.25; font-weight:400;}
  .cta-band h2 em{ font-style:italic; color:var(--bronze-light); }
  .cta-band .btn{
    display:inline-block; margin-top:46px;
    border:1px solid var(--bronze); padding:16px 40px; color:var(--bronze-light);
    font-size:12px; letter-spacing:2px; text-transform:uppercase;
    transition:background 0.35s ease, color 0.35s ease, letter-spacing 0.35s ease, box-shadow 0.35s ease;
  }
  .cta-band .btn:hover{background:var(--bronze); color:var(--door); letter-spacing:3px; box-shadow:0 12px 30px rgba(145,116,57,0.25);}
  .cta-band .btn-group{ display:flex; gap:24px; justify-content:center; align-items:center; margin-top:46px; flex-wrap:wrap; }
  .cta-band .btn-group .btn{ margin-top:0; }
  .cta-band .btn-secondary{
    font-size:12px; letter-spacing:2px; text-transform:uppercase; color:#B3AD9E;
    text-decoration:underline; text-underline-offset:5px; transition:color 0.3s ease;
  }
  .cta-band .btn-secondary:hover{ color:var(--bronze-light); }
  .cta-band .tagline{ margin-top:38px; font-family:'Fraunces',serif; font-style:italic; font-size:17px; color:#8A8577; }

  /* FOOTER */
  footer{padding:80px 0 40px; background:var(--door-2); color:var(--ivory);}
  .foot-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:60px; padding-bottom:56px;}
  .foot-grid h3{font-size:26px; margin-bottom:18px; font-weight:400;}
  .foot-grid h3 em{ font-style:italic; color:var(--bronze-light); }
  .foot-grid p{color:#A9A392; font-size:14px; line-height:1.75; max-width:340px; font-weight:300;}
  .foot-col h5{font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--bronze); margin-bottom:18px;}
  .foot-col a{display:block; font-size:15px; margin-bottom:12px; color:#DAD5C6; font-weight:300;}
  .foot-col a:hover{color:var(--bronze-light);}
  .foot-bottom{
    border-top:1px solid var(--line-light); padding-top:26px;
    display:flex; justify-content:space-between; font-size:11.5px; color:#736D5E; letter-spacing:0.6px; flex-wrap:wrap; gap:10px;
  }
  @media (max-width:860px){ .foot-grid{grid-template-columns:1fr; gap:36px;} }
