/* Shared chrome for every page outside the editor. Palette matches the editor sheet. */
:root{
  --paper:#f7f6f2; --paper2:#efede7; --line:#d9d5c9; --ink:#1f2427; --muted:#6b6860;
  --accent:#1f6f63; --accent-ink:#fff; --warn:#a33; --shadow:0 1px 2px rgba(31,36,39,.08), 0 8px 24px rgba(31,36,39,.06);
  --radius:10px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--paper); color:var(--ink); min-height:100vh;
  font:15px/1.55 ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  display:flex; flex-direction:column;
}
a{color:var(--accent)}
h1,h2,h3{line-height:1.2; margin:0 0 .4em}
h1{font-size:clamp(28px,4.4vw,46px); letter-spacing:-.02em}
h2{font-size:22px; letter-spacing:-.01em}
.wrap{width:min(1080px,92vw); margin:0 auto}
.muted{color:var(--muted)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}

/* header */
.site-head{border-bottom:1px solid var(--line); background:var(--paper); position:sticky; top:0; z-index:20}
.site-head .wrap{display:flex; align-items:center; gap:14px; height:60px}
.logo{display:flex; align-items:center; gap:9px; font-weight:700; text-decoration:none; color:var(--ink); letter-spacing:-.01em}
.logo svg{display:block}
.site-head nav{margin-left:auto; display:flex; align-items:center; gap:8px}
.site-head nav a{color:var(--muted); text-decoration:none; padding:7px 10px; border-radius:8px; font-weight:500}
.site-head nav a:hover{background:var(--paper2); color:var(--ink)}

/* buttons */
.btn{
  display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line); background:#fff; color:var(--ink);
  padding:9px 15px; border-radius:8px; font:inherit; font-weight:600; cursor:pointer; text-decoration:none; line-height:1.2;
}
.btn:hover{background:var(--paper2)}
.btn.primary{background:var(--accent); border-color:var(--accent); color:var(--accent-ink)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent}
.btn.danger{color:var(--warn); border-color:#e3c9c9; background:#fff}
.btn.danger:hover{background:#fbf1f1}
.btn.sm{padding:5px 10px; font-size:13px}

main{flex:1}
.section{padding:56px 0}

/* landing */
.hero{display:grid; grid-template-columns:1.05fr .95fr; gap:44px; align-items:center; padding:64px 0 40px}
.hero p.lede{font-size:18px; color:var(--muted); max-width:52ch; margin:0 0 26px}
.hero .cta{display:flex; gap:12px; flex-wrap:wrap}
.hero-art{border:1px solid var(--line); border-radius:14px; background:#fff; padding:14px; box-shadow:var(--shadow)}
.hero-art svg{width:100%; height:auto; display:block}
.features{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:20px}
.card h3{margin:0 0 6px; font-size:16px}
.card p{margin:0; color:var(--muted); font-size:14px}
.steps{counter-reset:s; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:22px}
.steps li{list-style:none; background:var(--paper2); border-radius:var(--radius); padding:18px}
.steps li b{display:block; margin-bottom:4px}
.band{background:var(--paper2); border-block:1px solid var(--line)}

/* auth */
.auth{max-width:420px; margin:56px auto; background:#fff; border:1px solid var(--line); border-radius:14px; padding:30px; box-shadow:var(--shadow)}
.auth h1{font-size:26px; margin-bottom:6px}
.auth .sub{color:var(--muted); margin:0 0 22px}
.field{margin-bottom:16px}
.field label{display:block; font-weight:600; font-size:13px; margin-bottom:5px}
.field input{width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:8px; font:inherit; background:var(--paper)}
.field input:focus{outline:2px solid var(--accent); outline-offset:-1px; background:#fff}
.field .help{font-size:12px; color:var(--muted); margin-top:5px}
.field .help ul{margin:4px 0 0; padding-left:16px}
.errors{background:#fbf1f1; border:1px solid #e3c9c9; color:#8a2b2b; border-radius:8px; padding:10px 12px; font-size:13px; margin-bottom:16px}
.errors ul{margin:0; padding-left:18px}
.auth .btn{width:100%; justify-content:center}
.auth .alt{text-align:center; margin:18px 0 0; font-size:14px; color:var(--muted)}

/* dashboard */
.page-head{display:flex; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:24px}
.page-head h1{font-size:30px; margin:0}
.newform{display:flex; gap:8px; margin-left:auto}
.newform input{padding:9px 12px; border:1px solid var(--line); border-radius:8px; font:inherit; min-width:260px; background:#fff}
.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:18px}
.proj{background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column}
.proj .thumb{aspect-ratio:4/3; background:var(--paper2); display:flex; align-items:center; justify-content:center; border-bottom:1px solid var(--line)}
.proj .thumb img{width:100%; height:100%; object-fit:contain; display:block}
.proj .thumb .empty{color:var(--muted); font-size:13px}
.proj .body{padding:14px; display:flex; flex-direction:column; gap:3px; flex:1}
.proj .body a.title{font-weight:700; color:var(--ink); text-decoration:none}
.proj .body a.title:hover{color:var(--accent)}
.proj .meta{font-size:12.5px; color:var(--muted)}
.proj .actions{display:flex; gap:6px; padding:10px 14px; border-top:1px solid var(--line); background:var(--paper)}
.proj .actions form{display:inline}
.empty-state{background:#fff; border:1px dashed var(--line); border-radius:14px; padding:46px; text-align:center; color:var(--muted)}
.messages{list-style:none; padding:0; margin:0 0 18px}
.messages li{background:#eef5f3; border:1px solid #cfe3de; border-radius:8px; padding:9px 13px; font-size:14px}

.site-foot{border-top:1px solid var(--line); padding:24px 0; color:var(--muted); font-size:13px}
.site-foot .wrap{display:flex; gap:12px; flex-wrap:wrap; align-items:center}
.site-foot nav{margin-left:auto; display:flex; gap:14px}

@media (max-width:860px){
  .hero{grid-template-columns:1fr; padding-top:34px}
  .features,.steps{grid-template-columns:1fr}
  .newform{margin-left:0; width:100%}
  .newform input{flex:1; min-width:0}
}

/* ===========================================================================
   Content pages (plot sizes, Vastu, guides). Same palette and rhythm as the
   rest of the site — these are the pages that carry the search traffic, so
   they need to read well on a phone above everything else.
   =========================================================================== */
.skip{position:absolute; left:-9999px; top:0; background:var(--accent); color:#fff; padding:10px 14px; border-radius:0 0 8px 0; z-index:100}
.skip:focus{left:0}

.article{padding:34px 0 64px; max-width:78ch}
.article h1{margin-bottom:.35em}
.article h2{margin:40px 0 12px; font-size:24px}
.article h3{font-size:17px}
.article p{margin:0 0 15px}
.article p.lede{font-size:18px; color:var(--muted); margin-bottom:24px}
.article > .cta{display:flex; gap:12px; flex-wrap:wrap; margin:0 0 30px}
.article a{text-decoration:underline; text-underline-offset:2px}
.article .btn, .article .link-card, .article .plot-card, .crumbs a{text-decoration:none}

/* breadcrumbs */
.crumbs{font-size:13px; color:var(--muted); margin:0 0 18px; display:flex; gap:7px; flex-wrap:wrap; align-items:center}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--accent)}

/* fact strip */
.facts{display:flex; flex-wrap:wrap; gap:10px; margin:0 0 14px; padding:0}
.facts > div{background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:12px 16px; flex:1 1 150px}
.facts dt{font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; margin-bottom:3px}
.facts dd{margin:0; font-weight:700; font-size:15px}

/* tables */
.table-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); background:#fff; margin:0 0 16px}
.table-wrap table{border-collapse:collapse; width:100%; font-size:14.5px; min-width:440px}
.table-wrap th, .table-wrap td{text-align:left; padding:11px 14px; border-bottom:1px solid var(--line); vertical-align:top}
.table-wrap thead th{background:var(--paper2); font-size:12.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); white-space:nowrap}
.table-wrap tbody tr:last-child th, .table-wrap tbody tr:last-child td{border-bottom:0}
.table-wrap tbody th{font-weight:650}
.rnote{display:block; font-weight:400; font-size:12.5px; color:var(--muted); margin-top:3px}

/* lists */
.article ul.tick{list-style:none; padding:0; margin:0 0 16px}
.article ul.tick li{position:relative; padding:0 0 9px 22px}
.article ul.tick li::before{content:"—"; position:absolute; left:0; color:var(--accent); font-weight:700}

/* card grids */
.plot-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px}
.plot-card{display:flex; flex-direction:column; gap:2px; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius); padding:15px 16px; color:var(--ink)}
.plot-card:hover{border-color:var(--accent); box-shadow:var(--shadow)}
.plot-card .dims{font-weight:700; font-size:19px; letter-spacing:-.01em}
.plot-card .area{font-size:13px; color:var(--accent); font-weight:600}
.plot-card .bhk{font-size:12.5px; color:var(--muted)}

.link-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:12px}
.link-grid.wide{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.link-card{display:block; background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:14px 16px; color:var(--ink); font-weight:600; font-size:14.5px}
.link-card:hover{border-color:var(--accent); box-shadow:var(--shadow)}
.link-card.tall{display:flex; flex-direction:column; gap:5px}
.link-card.tall span{font-weight:400; font-size:13px; line-height:1.45}

/* call to action band */
.cta-band{background:var(--paper2); border:1px solid var(--line); border-radius:14px; padding:24px 26px; margin:40px 0}
.cta-band h2{margin:0 0 8px; font-size:20px}
.cta-band p{margin:0 0 16px; color:var(--muted)}
.cta-band .cta{display:flex; gap:10px; flex-wrap:wrap}

/* faq */
.faq details{border:1px solid var(--line); border-radius:var(--radius); background:#fff; margin-bottom:9px}
.faq summary{cursor:pointer; padding:14px 16px; list-style:none; display:flex; align-items:center; gap:8px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; margin-left:auto; color:var(--muted); font-size:19px; line-height:1}
.faq details[open] summary::after{content:"−"}
.faq summary h3{margin:0; font-size:15.5px; font-weight:650}
.faq details p{margin:0; padding:0 16px 15px; color:var(--muted)}

.related .link-grid{margin-top:4px}

/* footer */
.foot-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:26px; padding-bottom:22px; align-items:start}
.foot-grid b{display:block; color:var(--ink); margin-bottom:9px; font-size:13.5px}
.foot-grid a{display:block; color:var(--muted); text-decoration:none; padding:3px 0}
.foot-grid a:hover{color:var(--accent)}
.foot-grid p{margin:0; font-size:13px; line-height:1.5}
.foot-base{border-top:1px solid var(--line); padding-top:16px; font-size:12.5px}
.site-foot{display:block}
.site-foot .wrap{display:block}

@media (max-width:860px){
  .article{padding-top:22px}
  .article h2{font-size:21px; margin-top:32px}
  .foot-grid{grid-template-columns:1fr 1fr; gap:22px}
}
@media (max-width:520px){
  .foot-grid{grid-template-columns:1fr}
  .plot-grid{grid-template-columns:1fr 1fr}
}

/* The nav grew from 2 links to 6. On a phone it becomes its own scrolling row
   under the logo rather than wrapping into an unreadable block. */
@media (max-width:760px){
  .site-head .wrap{height:auto; min-height:54px; padding:8px 0; flex-wrap:wrap; gap:8px}
  .site-head nav{width:100%; margin-left:0; gap:2px; overflow-x:auto; scrollbar-width:none}
  .site-head nav::-webkit-scrollbar{display:none}
  .site-head nav a, .site-head nav .btn{white-space:nowrap; padding:6px 9px; font-size:13.5px}
  .article p.lede{font-size:16.5px}
  .article h1{font-size:30px}
}
