/* Bayit Properties Investment Ltd — site stylesheet.
   Taken from the approved site design (Nov 2026). The hero background
   image lives in assets/hero.jpg; estate photos in assets/*.jpg.
   Menu split: the horizontal menu shows on tablets and computers
   (768px and up); the hamburger panel shows only on phones (under 768px).
   Anchor jumps are instant on purpose — see the comment in the file. */
:root{
        --bg:#f6f4ee;
        --surface:#ffffff;
        --surface-2:#efede3;
        --ink:#182420;
        --muted:#5b6a60;
        --line:#ddd8c9;
        --green:#17603a;
        --green-deep:#0d3d24;
        --green-soft:#e3efe4;
        --red:#a33327;
        --red-deep:#822619;
        --gold:#c99a3a;
        --wa:#1faa55;
        --shadow:0 18px 40px -18px rgba(13,45,28,.28);
        --radius:14px;
      }
      @media (prefers-color-scheme: dark){
        :root{
          --bg:#0e130f;
          --surface:#161d17;
          --surface-2:#1d261e;
          --ink:#ecf2ec;
          --muted:#a5b3a6;
          --line:#2c372c;
          --green:#3fae72;
          --green-deep:#0a2a19;
          --green-soft:#1c2f21;
          --red:#d96a58;
          --red-deep:#b04a3a;
          --gold:#d9ab52;
          --shadow:0 18px 40px -18px rgba(0,0,0,.7);
        }
      }
      /* Anchor jumps are instant on purpose: on a long one-page site a
         smooth-scroll glide over thousands of pixels can be cancelled by
         the next touch and looks exactly like a dead button. A tap must
         land somewhere visibly different, immediately. */
      a, button{ touch-action:manipulation; -webkit-tap-highlight-color:rgba(201,154,58,.22); }
      body{
        margin:0; background:var(--bg); color:var(--ink);
        font-family:"Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
        font-size:16.5px; line-height:1.65;
        -webkit-font-smoothing:antialiased;
      }
      h1,h2,h3,h4,p,ul,ol,figure{ margin:0; }
      ul,ol{ padding:0; list-style:none; }
      img{ max-width:100%; display:block; }
      a{ color:var(--green); }
      button{ font:inherit; cursor:pointer; }
      input,select,textarea{ font:inherit; color:inherit; }
      :focus-visible{ outline:3px solid var(--gold); outline-offset:2px; border-radius:4px; }
      /* Anchored sections clear the sticky header when jumped to */
      section[id], div[id="home"]{ scroll-margin-top:84px; }

      .wrap{ width:min(1180px, 100% - 2.5rem); margin-inline:auto; }
      .section{ padding:4.5rem 0; }
      .section--tight{ padding:3rem 0; }

      /* ---------- Top bar ---------- */
      .topbar{ background:var(--red); color:#fff; font-size:.86rem; }
      .topbar .wrap{ display:flex; flex-wrap:wrap; gap:.35rem 1.6rem; align-items:center; padding:.5rem 0; }
      .topbar a{ color:#fff; text-decoration:none; font-weight:600; }
      .topbar a:hover{ text-decoration:underline; }
      .topbar .tb-item{ display:inline-flex; align-items:center; gap:.45rem; }
      .topbar .tb-right{ margin-left:auto; display:inline-flex; gap:1.6rem; flex-wrap:wrap; }
      .topbar svg{ flex:none; }

      /* ---------- Header / nav ---------- */
      .site-header{
        position:sticky; top:0; z-index:60;
        background:var(--surface); border-bottom:1px solid var(--line);
      }
      .site-header > .wrap{ display:flex; align-items:center; gap:1rem; padding:.7rem 0; }
      .brand{ text-decoration:none; display:flex; align-items:center; gap:.7rem; color:var(--ink); }
      .brand-mark{
        width:46px; height:46px; flex:none; border-radius:10px;
        background:var(--green-deep); color:#fff;
        display:grid; place-items:center;
        font-family:"Sora",sans-serif; font-weight:800; font-size:1.3rem; letter-spacing:.02em;
        border-bottom:4px solid var(--gold);
      }
      .brand-name{ font-family:"Sora",sans-serif; font-weight:800; font-size:1.45rem; letter-spacing:.14em; line-height:1; color:var(--ink); }
      .brand-sub{ font-size:.6rem; font-weight:700; letter-spacing:.24em; color:var(--red); text-transform:uppercase; margin-top:.28rem; }
      .main-nav{ margin-left:auto; display:flex; align-items:center; gap:.25rem; }
      .main-nav a{
        text-decoration:none; color:var(--ink); font-weight:600; font-size:.95rem;
        padding:.55rem .68rem; border-radius:8px; white-space:nowrap;
      }
      .main-nav a:hover{ background:var(--green-soft); }
      /* Career dropdown (desktop): opens on hover or keyboard focus,
         both items are plain anchor links. */
      .nav-drop{ position:relative; }
      .nav-drop > a{ display:inline-flex; align-items:center; gap:.35rem; }
      .drop-panel{
        position:absolute; top:100%; left:0; z-index:70; min-width:292px;
        background:var(--surface); border:1px solid var(--line); border-radius:12px;
        box-shadow:var(--shadow); padding:.45rem; display:none; flex-direction:column;
      }
      .nav-drop:hover .drop-panel, .nav-drop:focus-within .drop-panel{ display:flex; }
      .drop-panel a{ padding:.62rem .8rem; white-space:normal; }
      .btn{
        display:inline-flex; align-items:center; gap:.5rem; text-decoration:none;
        font-weight:700; border-radius:10px; padding:.72rem 1.3rem; border:1px solid transparent;
        transition:transform .15s ease, background .15s ease;
      }
      .btn:active{ transform:translateY(1px); }
      .btn--green{ background:var(--green); color:#fff; }
      .btn--green:hover{ background:var(--green-deep); }
      .btn--red{ background:var(--red); color:#fff; }
      .btn--red:hover{ background:var(--red-deep); }
      .btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
      .btn--ghost:hover{ border-color:var(--green); color:var(--green); }
      .btn--wa{ background:var(--wa); color:#fff; }
      .btn--wa:hover{ filter:brightness(.93); }
      .btn--white{ background:#fff; color:var(--green-deep); }
      .btn--white:hover{ background:var(--green-soft); }
      .btn--nav{ margin-left:.6rem; padding:.6rem 1.05rem; }
      /* Mobile menu: the previous style the owner asked back — a
         hamburger toggle in the header row opening a full-width panel
         of link rows under the header. The toggle is a pure CSS
         checkbox/label pair, so opening and closing need no script and
         cannot be blocked by one; while closed the panel is
         display:none and not rendered at all. Every row is a plain
         anchor with an instant jump; a small guarded enhancement
         closes the panel after a row is tapped, without ever
         preventing the tap's own navigation. */
      .mobile-menu{ display:none; }
      /* Tablets and computers: conventional horizontal menu only.
         The full menu is wide, so on tablet widths (768–1100px) the
         brand and links are tightened to keep everything on one line
         with no hamburger and no sideways scroll. */
      @media (min-width:768px) and (max-width:1100px){
        .site-header > .wrap{ width:min(1180px, 100% - 1rem); gap:.45rem; }
        .brand{ gap:.5rem; }
        .brand-mark{ width:38px; height:38px; font-size:1.1rem; border-radius:8px; }
        .brand-name{ font-size:1.12rem; letter-spacing:.1em; }
        .brand-sub{ font-size:.52rem; letter-spacing:.18em; }
        .main-nav{ gap:.05rem; flex-wrap:nowrap; }
        .main-nav a{ padding:.45rem .38rem; font-size:.84rem; }
        .btn--nav{ margin-left:.3rem; padding:.5rem .7rem; font-size:.84rem; }
        .drop-panel{ left:auto; right:0; }
      }
      /* Phones only: hamburger menu. Below 768px the horizontal menu
         no longer shows and the hamburger panel takes over. */
      @media (max-width:767px){
        .main-nav{ display:none; }
        .mobile-menu{ display:block; }
        .mm-check{ position:absolute; opacity:0; pointer-events:none; }
        .menu-toggle{
          position:absolute; top:.68rem; right:1.25rem; z-index:67;
          width:48px; height:48px; border:1px solid var(--line); border-radius:10px;
          background:var(--surface); color:var(--ink);
          display:grid; place-items:center; cursor:pointer;
        }
        .menu-toggle .mt-close{ display:none; }
        .mm-check:checked ~ .menu-toggle .mt-open{ display:none; }
        .mm-check:checked ~ .menu-toggle .mt-close{ display:block; }
        .mobile-panel{ display:none; }
        .mm-check:checked ~ .mobile-panel{
          display:block; position:absolute; top:100%; left:0; right:0; z-index:66;
          border-top:1px solid var(--line); background:var(--surface);
          box-shadow:0 26px 32px -18px rgba(13,45,28,.35); padding-bottom:1.15rem;
        }
        .mobile-panel a{
          display:flex; justify-content:space-between; align-items:center; gap:1rem;
          text-decoration:none; color:var(--ink); font-weight:600; font-size:1.05rem;
          padding:.95rem .1rem; border-bottom:1px solid var(--line);
        }
        .mobile-panel a .row-arrow{ color:var(--muted); font-weight:400; }
        .mobile-panel .mm-label{
          display:block; font-weight:700; font-size:.78rem; letter-spacing:.15em;
          text-transform:uppercase; color:var(--red); padding:1.05rem .1rem .15rem;
        }
        .mobile-panel a.mm-sub{ padding-left:1.15rem; font-size:1rem; }
        .mm-actions{ display:grid; gap:.6rem; margin-top:1.1rem; }
        .mm-actions .btn{ justify-content:center; }
        .topbar .tb-hours{ display:none; }
        /* With the panel closed the sticky header is just the brand
           row, so anchored sections need only a small clearance. */
        section[id], div[id="home"]{ scroll-margin-top:96px; }
      }

      /* ---------- Hero ---------- */
      .hero{
        position:relative; color:#fff; isolation:isolate;
        background:#0d3d24 url("assets/hero.jpg") center 38%/cover no-repeat;
      }
      .hero::before{
        content:""; position:absolute; inset:0; z-index:-1;
        background:linear-gradient(100deg, rgba(7,32,19,.88) 30%, rgba(7,32,19,.55) 62%, rgba(7,32,19,.28));
      }
      .hero-inner{ padding:6.2rem 0 6.8rem; max-width:720px; }
      .hero-welcome{
        display:inline-flex; align-items:center; gap:.6rem; font-weight:700; letter-spacing:.16em;
        text-transform:uppercase; font-size:.78rem; color:#ffd98a;
      }
      .hero-welcome::before{ content:""; width:34px; height:2px; background:var(--gold); }
      .hero h1{
        font-family:"Sora",sans-serif; font-weight:800; line-height:1.04;
        font-size:clamp(2.6rem, 6.4vw, 4.3rem); margin:1rem 0 .4rem; letter-spacing:-.01em;
      }
      .hero-tag{ font-family:"Sora",sans-serif; font-weight:600; font-size:clamp(1.05rem,2.4vw,1.4rem); color:#eaf4ea; }
      .hero-tag strong{ color:#ffd98a; font-weight:700; }
      .hero p.lede{ margin-top:1.1rem; max-width:56ch; color:#d9e8da; }
      .hero-actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }
      .hero-stats{
        border-top:1px solid rgba(255,255,255,.25); margin-top:3.4rem; padding-top:1.6rem;
        display:grid; grid-template-columns:repeat(4,1fr); gap:1rem;
      }
      .hero-stats b{ display:block; font-family:"Sora",sans-serif; font-size:1.7rem; font-weight:800; color:#fff; line-height:1.1; }
      .hero-stats span{ font-size:.85rem; color:#cfe0d0; }
      @media (max-width:640px){
        .hero-inner{ padding:4rem 0 4.4rem; }
        .hero-stats{ grid-template-columns:repeat(2,1fr); }
      }

      /* ---------- Section heads ---------- */
      .sec-head{ max-width:640px; margin-bottom:2.4rem; }
      .sec-head.center{ margin-inline:auto; text-align:center; }
      .sec-kicker{
        font-weight:700; letter-spacing:.16em; text-transform:uppercase; font-size:.76rem; color:var(--red);
        display:inline-flex; align-items:center; gap:.55rem;
      }
      .sec-kicker::before{ content:""; width:26px; height:2px; background:var(--red); }
      .sec-head.center .sec-kicker::after{ content:""; width:26px; height:2px; background:var(--red); }
      .sec-head h2{ font-family:"Sora",sans-serif; font-weight:700; font-size:clamp(1.75rem,3.6vw,2.45rem); line-height:1.15; margin-top:.6rem; letter-spacing:-.01em; }
      .sec-head p{ color:var(--muted); margin-top:.7rem; }

      /* ---------- About split ---------- */
      .split{ display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
      @media (max-width:860px){ .split{ grid-template-columns:1fr; gap:2rem; } }
      .split-img{ position:relative; }
      .split-img img{ border-radius:var(--radius); box-shadow:var(--shadow); width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
      .exp-badge{
        position:absolute; right:-10px; bottom:22px; background:var(--red); color:#fff;
        border-radius:12px; padding:.9rem 1.15rem; box-shadow:var(--shadow); max-width:210px;
      }
      .exp-badge b{ font-family:"Sora",sans-serif; font-size:1.55rem; display:block; line-height:1; }
      .exp-badge span{ font-size:.82rem; font-weight:600; }
      .split-copy p{ color:var(--muted); }
      .split-copy p + p{ margin-top:1rem; }
      .mv-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1.6rem; }
      @media (max-width:520px){ .mv-grid{ grid-template-columns:1fr; } }
      .mv-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.2rem 1.25rem; }
      .mv-card h3{ font-family:"Sora",sans-serif; font-size:1.02rem; display:flex; gap:.55rem; align-items:center; color:var(--green); }
      .mv-card p{ font-size:.94rem; margin-top:.5rem; }
      .split-actions{ margin-top:1.8rem; display:flex; flex-wrap:wrap; gap:.8rem; }

      /* ---------- Estate cards ---------- */
      .estate-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
      @media (max-width:1000px){ .estate-grid{ grid-template-columns:repeat(2,1fr); } }
      @media (max-width:620px){ .estate-grid{ grid-template-columns:1fr; } }
      .estate-card{
        background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
        overflow:hidden; display:flex; flex-direction:column; box-shadow:0 6px 22px -14px rgba(13,45,28,.25);
        transition:transform .18s ease, box-shadow .18s ease;
      }
      .estate-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
      .estate-card .ec-img{ position:relative; aspect-ratio:16/10; overflow:hidden; display:block; }
      .estate-card .ec-img img{ width:100%; height:100%; object-fit:cover; }
      .estate-card .ec-state{
        position:absolute; top:.8rem; left:.8rem; background:rgba(9,36,20,.85); color:#fff;
        font-size:.74rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
        padding:.32rem .65rem; border-radius:999px;
      }
      .estate-card .ec-body{ padding:1.25rem 1.3rem 1.4rem; display:flex; flex-direction:column; gap:.55rem; flex:1; }
      .estate-card h3{ font-family:"Sora",sans-serif; font-size:1.18rem; line-height:1.3; }
      .ec-loc{ display:flex; gap:.45rem; align-items:flex-start; color:var(--red); font-weight:600; font-size:.92rem; }
      .ec-loc svg{ flex:none; margin-top:.2rem; }
      .estate-card p{ color:var(--muted); font-size:.95rem; flex:1; }
      .estate-card p.ec-loc{ flex:none; }
      .ec-actions{ display:flex; gap:.6rem; margin-top:.7rem; flex-wrap:wrap; }
      .ec-actions .btn{ padding:.58rem 1rem; font-size:.92rem; }
      .price-note{ margin-top:1.6rem; color:var(--muted); font-size:.95rem; text-align:center; }
      .price-note a{ font-weight:700; }

      /* ---------- Why / services / steps ---------- */
      .band{ background:var(--surface-2); }
      .band--green{ background:var(--green-deep); color:#eaf4ea; }
      .band--green .sec-head h2{ color:#fff; }
      .band--green .sec-head p{ color:#c3d8c5; }
      .band--green .sec-kicker{ color:#ffd98a; }
      .band--green .sec-kicker::before,.band--green .sec-kicker::after{ background:var(--gold); }
      .feat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
      .svc-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; }
      @media (max-width:900px){ .feat-grid{ grid-template-columns:1fr; } .svc-grid{ grid-template-columns:1fr; } }
      .feat{
        background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.7rem 1.6rem;
      }
      .band--green .feat{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.16); }
      .feat .f-icon{
        width:52px; height:52px; border-radius:12px; background:var(--green-soft); color:var(--green);
        display:grid; place-items:center; margin-bottom:1.05rem;
      }
      .band--green .f-icon{ background:rgba(255,217,138,.16); color:#ffd98a; }
      .feat h3{ font-family:"Sora",sans-serif; font-size:1.12rem; margin-bottom:.5rem; }
      .feat p{ color:var(--muted); font-size:.96rem; }
      .band--green .feat p{ color:#c3d8c5; }
      .steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; counter-reset:step; }
      @media (max-width:900px){ .steps{ grid-template-columns:1fr; } }
      .step{ position:relative; padding:1.8rem 1.6rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }
      .step .s-num{
        font-family:"Sora",sans-serif; font-weight:800; font-size:2.2rem; color:var(--gold); line-height:1;
      }
      .step h3{ font-family:"Sora",sans-serif; font-size:1.12rem; margin:.7rem 0 .5rem; }
      .step p{ color:var(--muted); font-size:.96rem; }

      /* ---------- Team ---------- */
      .team-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
      @media (max-width:1000px){ .team-grid{ grid-template-columns:repeat(2,1fr); } }
      @media (max-width:540px){ .team-grid{ grid-template-columns:1fr; } }
      .team-card{
        background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
        overflow:hidden; display:flex; flex-direction:column; text-align:center;
        box-shadow:0 6px 22px -14px rgba(13,45,28,.25);
      }
      .team-photo{
        aspect-ratio:1/1; background:var(--surface-2); color:var(--muted);
        display:grid; place-items:center; border-bottom:1px dashed var(--line);
        padding:1.2rem;
      }
      .team-photo-inner{ display:grid; justify-items:center; gap:.7rem; }
      .team-photo .tp-icon{
        width:72px; height:72px; border-radius:50%; background:var(--green-soft); color:var(--green);
        display:grid; place-items:center;
      }
      .team-photo span{ font-size:.8rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
      .team-body{ padding:1.25rem 1.3rem 1.45rem; display:flex; flex-direction:column; gap:.45rem; flex:1; }
      .team-body h3{ font-family:"Sora",sans-serif; font-size:1.08rem; line-height:1.3; }
      .team-role{ color:var(--red); font-weight:700; font-size:.86rem; letter-spacing:.06em; text-transform:uppercase; }
      .team-body p.bio{ color:var(--muted); font-size:.93rem; }

      /* ---------- Testimonials ---------- */
      .testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
      @media (max-width:900px){ .testi-grid{ grid-template-columns:1fr; } }
      .testi-card{
        position:relative; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
        padding:1.7rem 1.6rem; display:flex; flex-direction:column; gap:.6rem;
      }
      .testi-badge{
        align-self:flex-start; background:var(--gold); color:#3d2c00; font-size:.72rem; font-weight:800;
        letter-spacing:.12em; text-transform:uppercase; border-radius:999px; padding:.25rem .7rem;
      }
      .testi-text{ font-size:1.02rem; line-height:1.6; }
      .testi-name{ font-family:"Sora",sans-serif; font-weight:700; }
      .testi-detail{ color:var(--muted); font-size:.9rem; }

      /* ---------- CTA band ---------- */
      .cta-band{
        background:var(--red); color:#fff; border-radius:18px; padding:2.6rem clamp(1.4rem,4vw,3rem);
        display:flex; flex-wrap:wrap; gap:1.6rem; align-items:center; justify-content:space-between;
      }
      .cta-band h2{ font-family:"Sora",sans-serif; font-size:clamp(1.5rem,3vw,2rem); line-height:1.2; max-width:22ch; }
      .cta-band p{ color:#f6dcd6; margin-top:.5rem; max-width:52ch; }
      .cta-band .cta-actions{ display:flex; gap:.8rem; flex-wrap:wrap; }
      .btn--outline-w{ background:transparent; color:#fff; border-color:rgba(255,255,255,.65); }
      .btn--outline-w:hover{ border-color:#fff; background:rgba(255,255,255,.1); }

      /* ---------- Section banners (sub-page heads) ---------- */
      .page-hero{ background:var(--green-deep); color:#fff; padding:3.6rem 0 3.2rem; }
      .page-hero .page-title{ font-family:"Sora",sans-serif; font-weight:800; font-size:clamp(2rem,4.6vw,3rem); line-height:1.1; }
      .page-hero p{ color:#c3d8c5; margin-top:.8rem; max-width:62ch; }
      .crumbs{ font-size:.86rem; color:#9dbfa5; margin-bottom:1rem; display:flex; gap:.5rem; flex-wrap:wrap; }
      .crumbs a{ color:#ffd98a; text-decoration:none; font-weight:600; }
      .crumbs a:hover{ text-decoration:underline; }
      .crumbs--dark{ color:var(--muted); }
      .crumbs--dark a{ color:var(--green); }

      /* ---------- Estate detail ---------- */
      .detail-grid{ display:grid; grid-template-columns:1.5fr 1fr; gap:2.6rem; align-items:start; }
      @media (max-width:900px){ .detail-grid{ grid-template-columns:1fr; } }
      .detail-img{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }
      .detail-img img{ width:100%; aspect-ratio:16/10; object-fit:cover; }
      .detail-copy h2{ font-family:"Sora",sans-serif; font-size:1.3rem; margin:1.8rem 0 .6rem; }
      .detail-copy p{ color:var(--muted); }
      .hood-list{ display:flex; flex-wrap:wrap; gap:.55rem; margin-top:.4rem; }
      .hood-list li{
        background:var(--green-soft); color:var(--ink); border:1px solid var(--line);
        padding:.42rem .8rem; border-radius:999px; font-size:.88rem; font-weight:600;
        display:inline-flex; gap:.4rem; align-items:center;
      }
      .side-card{
        background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
        padding:1.6rem; position:sticky; top:96px; box-shadow:0 6px 22px -14px rgba(13,45,28,.25);
      }
      .side-card h3{ font-family:"Sora",sans-serif; font-size:1.1rem; margin-bottom:.4rem; }
      .side-card p{ color:var(--muted); font-size:.94rem; }
      .side-card .sc-actions{ display:grid; gap:.6rem; margin-top:1.2rem; }
      .side-card .sc-actions .btn{ justify-content:center; }
      .side-card .sc-loc{ margin-top:1.2rem; padding-top:1.1rem; border-top:1px solid var(--line); font-size:.94rem; }

      /* ---------- Forms ---------- */
      .form-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:clamp(1.4rem,3.5vw,2.2rem); box-shadow:0 6px 22px -14px rgba(13,45,28,.25); }
      .form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
      @media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } }
      .field{ display:grid; gap:.4rem; }
      .field.full{ grid-column:1/-1; }
      .field label{ font-weight:600; font-size:.93rem; }
      .field input,.field select,.field textarea{
        padding:.72rem .85rem; border:1px solid var(--line); border-radius:9px; background:var(--bg);
        width:100%;
      }
      .field input:focus,.field select:focus,.field textarea:focus{ border-color:var(--green); outline:2px solid var(--green-soft); }
      .form-note{ font-size:.9rem; color:var(--muted); margin-top:1rem; }
      .form-card .btn{ margin-top:1.3rem; }
      .form-error{ display:none; background:#fdeceb; color:#7c2115; border:1px solid #f3c1ba; border-radius:9px; padding:.7rem .9rem; font-size:.93rem; margin-top:1rem; }
      @media (prefers-color-scheme: dark){ .form-error{ background:#3a1d18; color:#f2b8ac; border-color:#6e352a; } }
      .form-error.show{ display:block; }
      .form-success{ display:none; background:var(--green-soft); border:1px solid var(--green); border-radius:9px; padding:.95rem 1.05rem; margin-top:1rem; }
      .form-success.show{ display:block; }
      .form-success strong{ display:block; font-family:"Sora",sans-serif; font-size:1rem; }
      .form-success p{ color:var(--muted); font-size:.93rem; margin-top:.25rem; }
      .form-success .btn{ margin-top:.8rem; }
      .newsletter .form-success{ grid-column:1/-1; margin-top:0; }
      .direct-actions{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.1rem; padding-top:1.1rem; border-top:1px solid var(--line); }
      .direct-actions .btn{ margin-top:0; }

      /* ---------- Contact ---------- */
      .info-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.3rem; }
      @media (max-width:1000px){ .info-grid{ grid-template-columns:repeat(2,1fr); } }
      @media (max-width:540px){ .info-grid{ grid-template-columns:1fr; } }
      .info-box{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.5rem 1.4rem; }
      .info-box .f-icon{ width:48px; height:48px; border-radius:12px; background:var(--green-soft); color:var(--green); display:grid; place-items:center; margin-bottom:.9rem; }
      .info-box h3{ font-family:"Sora",sans-serif; font-size:1.02rem; margin-bottom:.35rem; }
      .info-box p,.info-box a{ color:var(--muted); font-size:.95rem; }
      .info-box a{ text-decoration:none; font-weight:600; color:var(--green); word-break:break-word; }
      .info-box a:hover{ text-decoration:underline; }
      .address-card{ border-radius:var(--radius); border:1px solid var(--line); background:var(--surface); padding:2rem; height:100%; }
      .address-card h3{ font-family:"Sora",sans-serif; font-size:1.25rem; margin-bottom:.6rem; }
      .address-card p{ color:var(--muted); max-width:55ch; }
      .address-card .btn{ margin-top:1.2rem; margin-right:.5rem; }

      /* ---------- Newsletter ---------- */
      .newsletter{
        background:var(--surface); border:1px solid var(--line); border-radius:18px;
        padding:2.4rem clamp(1.4rem,4vw,2.8rem); display:grid; grid-template-columns:1.2fr 1fr; gap:1.8rem; align-items:center;
      }
      @media (max-width:820px){ .newsletter{ grid-template-columns:1fr; } }
      .newsletter h2{ font-family:"Sora",sans-serif; font-size:1.5rem; line-height:1.25; }
      .newsletter p{ color:var(--muted); margin-top:.5rem; }
      .nl-form{ display:flex; gap:.6rem; }
      .nl-form input{ flex:1; min-width:0; padding:.75rem .9rem; border:1px solid var(--line); border-radius:10px; background:var(--bg); }
      @media (max-width:480px){ .nl-form{ flex-direction:column; } .nl-form .btn{ justify-content:center; } }

      /* ---------- Footer ---------- */
      footer{ background:var(--green-deep); color:#cfe0d0; margin-top:0; }
      .footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:2.2rem; padding:3.4rem 0 2.4rem; }
      @media (max-width:960px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
      @media (max-width:540px){ .footer-grid{ grid-template-columns:1fr; } }
      footer h3{ font-family:"Sora",sans-serif; color:#fff; font-size:1rem; margin-bottom:1rem; }
      footer a{ color:#cfe0d0; text-decoration:none; }
      footer a:hover{ color:#ffd98a; }
      .footer-grid li{ margin-bottom:.55rem; font-size:.95rem; }
      .footer-brand .brand-name{ color:#fff; }
      .footer-brand .brand-sub{ color:#ffd98a; }
      .footer-brand p{ font-size:.95rem; margin-top:1rem; max-width:36ch; }
      .footer-contact li{ display:flex; gap:.55rem; align-items:flex-start; }
      .footer-contact svg{ flex:none; margin-top:.25rem; color:#ffd98a; }
      .footer-bottom{ border-top:1px solid rgba(255,255,255,.16); padding:1.2rem 0 1.5rem; font-size:.88rem; display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; justify-content:space-between; }

      /* ---------- WhatsApp float ---------- */
      .wa-float{
        position:fixed; right:18px; bottom:18px; z-index:70; width:58px; height:58px; border-radius:50%;
        background:var(--wa); color:#fff; display:grid; place-items:center; box-shadow:0 12px 28px -8px rgba(0,0,0,.45);
        text-decoration:none;
      }
      .wa-float:hover{ filter:brightness(.94); }

      .stats-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; margin-top:2.2rem; }
      @media (max-width:700px){ .stats-row{ grid-template-columns:1fr; } }
      .stat-box{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.5rem; text-align:center; }
      .stat-box b{ font-family:"Sora",sans-serif; font-size:2rem; color:var(--green); display:block; line-height:1.1; }
      .stat-box span{ color:var(--muted); font-size:.93rem; font-weight:600; }

      @media (prefers-reduced-motion: reduce){
        .estate-card,.btn{ transition:none; }
      }

/* ---------- Admin area ---------- */
.admin-bar{background:var(--green-deep);color:#fff;padding:.55rem 0;}
.admin-bar .wrap{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center;}
.admin-bar a{color:#ffd98a;font-weight:600;}
.admin-tabs{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.2rem 0;}
.admin-tabs a{padding:.5rem .85rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-weight:600;color:var(--ink);text-decoration:none;}
.admin-tabs a.on{background:var(--green);border-color:var(--green);color:#fff;}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem;margin:0 0 1.1rem;box-shadow:var(--shadow);}
.note{background:var(--green-soft);border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;margin:0 0 1rem;}
.error{background:#fdecea;border:1px solid #e8a49a;color:#7a1f14;border-radius:10px;padding:.8rem 1rem;margin:0 0 1rem;}
.okmsg{background:#e7f5ec;border:1px solid #9fd0ae;color:#0d3d24;border-radius:10px;padding:.8rem 1rem;margin:0 0 1rem;}
.admin-form label{display:block;font-weight:600;margin:.7rem 0 .25rem;}
.admin-form input[type=text],.admin-form input[type=email],.admin-form input[type=tel],.admin-form input[type=password],.admin-form input[type=date],.admin-form select,.admin-form textarea{width:100%;max-width:640px;padding:.6rem .7rem;border:1px solid var(--line);border-radius:8px;font:inherit;background:var(--surface);color:var(--ink);}
.admin-form textarea{min-height:90px;}
table.admin-table{width:100%;border-collapse:collapse;background:var(--surface);}
table.admin-table th,table.admin-table td{border:1px solid var(--line);padding:.55rem .6rem;text-align:left;vertical-align:top;font-size:.92rem;}
table.admin-table th{background:var(--surface-2);}
.btn.secondary{background:var(--surface-2);color:var(--ink);border:1px solid var(--line);}
.btn.danger{background:#a33327;color:#fff;}
.inline-form{display:inline;}
.thumb{max-width:220px;height:auto;border-radius:8px;border:1px solid var(--line);}
.muted{color:var(--muted);font-size:.92rem;}
