/*
Theme Name: Orchid Point Estates Child
Theme URI: https://orchidpointestates.com
Description: Child theme of GeneratePress for orchidpointestates.com. Holds all custom CSS and PHP for the Orchid Point Estates single-offering marketing site. The design system (colors, type, components) ported from the approved homepage design lives here.
Author: Orchid Point Estates
Template: generatepress
Version: 0.1.0
Text Domain: orchidpoint-child
*/

/* =========================================================================
   ORCHID POINT ESTATES — DESIGN SYSTEM
   Ported from the approved homepage HTML. Every rule below is scoped under
   the body class ".ope" (added site-wide in functions.php) so it can never
   leak into wp-admin, the block editor chrome, or GeneratePress defaults
   we haven't intentionally styled. The homepage body, header, and footer
   markup all render inside <body class="... ope">, so these rules apply
   exactly as they did in the original design.

   Global color tokens live in :root (below) AND are mirrored into the
   GeneratePress global color palette via the Customizer, so the same
   values appear in block-editor color pickers.
   ========================================================================= */

:root{--parchment:#F3EEE1;
    --parchment-2:#EAE2D0;
    --ink:#262019;
    --ink-soft:#55493C;
    --clay:#C1653D;
    --clay-dark:#9C4D2E;
    --moss:#5C6B4C;
    --line:#DCD2BC;
    --white:#FFFFFF;}
.ope *{box-sizing:border-box; margin:0; padding:0;}
.ope{font-family:'Public Sans', sans-serif; color:var(--ink); background:var(--parchment);
    line-height:1.55; -webkit-font-smoothing:antialiased;}
.ope h1,
.ope h2,
.ope h3{font-family:'Fraunces', serif; font-weight:500; color:var(--ink); line-height:1.12;}
.ope em{font-style:italic; color:var(--clay-dark);}
.ope .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
.ope a{color:inherit;}
.ope img{max-width:100%; display:block;}
.ope header{position:sticky; top:0; z-index:50; background:var(--parchment); border-bottom:1px solid var(--line);}
.ope .nav-row{display:flex; align-items:center; justify-content:space-between; height:76px;}
.ope .brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
.ope .brand-mark{width:36px; height:36px; border-radius:50%; background:var(--ink); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.ope .brand-text{font-family:'Fraunces', serif; font-size:19px; font-weight:500; line-height:1.1;}
.ope .brand-text small{display:block; font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.06em; color:var(--ink-soft); text-transform:uppercase; font-weight:400;}
.ope nav ul{list-style:none; display:flex; gap:30px;}
.ope nav a{text-decoration:none; font-size:14px; font-weight:500; color:var(--ink-soft);}
.ope nav a:hover{color:var(--clay-dark);}
.ope .nav-cta{background:var(--ink); color:var(--parchment); text-decoration:none; padding:11px 20px; border-radius:2px;
    font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.03em; text-transform:uppercase; font-weight:500;
    white-space:nowrap;}
.ope .nav-cta:hover{background:var(--clay-dark);}
.ope .hero{padding:64px 0 72px;}
.ope .hero-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
.ope .eyebrow{font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color:var(--moss); margin-bottom:18px; font-weight:500;}
.ope .hero h1{font-size:44px; letter-spacing:-0.01em; margin-bottom:20px;}
.ope .lead{font-size:17px; color:var(--ink-soft); margin-bottom:30px; max-width:46ch;}
.ope .btn-row{display:flex; gap:14px; margin-bottom:38px; flex-wrap:wrap;}
.ope .btn-primary{background:var(--clay); color:var(--white); text-decoration:none; padding:14px 24px; border-radius:2px;
    font-family:'IBM Plex Mono', monospace; font-size:13px; letter-spacing:0.03em; text-transform:uppercase; font-weight:500;}
.ope .btn-primary:hover{background:var(--clay-dark);}
.ope .btn-ghost{border:1px solid var(--ink); color:var(--ink); text-decoration:none; padding:13px 24px; border-radius:2px;
    font-family:'IBM Plex Mono', monospace; font-size:13px; letter-spacing:0.03em; text-transform:uppercase; font-weight:500;}
.ope .btn-ghost:hover{background:var(--ink); color:var(--parchment);}
.ope .hero-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line);}
.ope .hero-stats div{padding:16px 18px 0 0; border-right:1px solid var(--line);}
.ope .hero-stats div:last-child{border-right:none;}
.ope .hero-stats .num{font-family:'IBM Plex Mono', monospace; font-size:22px; font-weight:600; color:var(--clay-dark);}
.ope .hero-stats .lbl{font-size:12px; color:var(--ink-soft); margin-top:4px;}
.ope .map-card{background:var(--white); border:1px solid var(--line); border-radius:4px; padding:20px;}
.ope .map-caption{display:flex; justify-content:space-between; margin-top:14px; font-family:'IBM Plex Mono', monospace; font-size:10.5px; color:var(--ink-soft); letter-spacing:0.03em;}
.ope section{padding:72px 0;}
.ope section:nth-child(even){}
.ope .section-head{max-width:640px; margin-bottom:42px;}
.ope .section-eyebrow{font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color:var(--moss); margin-bottom:12px; font-weight:500;}
.ope .section-head h2{font-size:32px; margin-bottom:12px;}
.ope .section-head p{color:var(--ink-soft); font-size:15.5px;}
.ope .gallery-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; grid-template-rows:auto auto; gap:14px;}
.ope .gallery-item{position:relative; overflow:hidden; border-radius:3px; border:1px solid var(--line); background:var(--parchment-2);}
.ope .gallery-item img{width:100%; height:100%; object-fit:cover; display:block;}
.ope .gallery-item.tall{grid-row:span 2;}
.ope .gallery-item.tall img{min-height:420px;}
.ope .gallery-item.wide{grid-column:1 / -1;}
.ope .gallery-item.wide img{min-height:260px;}
.ope .gallery-item.wide.double{display:flex; gap:14px; background:none; border:none; padding:0;}
.ope .gallery-sub{position:relative; flex:1; overflow:hidden; border-radius:3px; border:1px solid var(--line); background:var(--parchment-2);}
.ope .gallery-sub img{width:100%; height:260px; object-fit:cover; display:block;}
.ope .gallery-item:not(.tall):not(.wide) img{min-height:200px;}
.ope .gallery-cap{position:absolute; left:0; bottom:0; right:0; padding:8px 12px;
    background:linear-gradient(0deg, rgba(38,32,25,0.78), rgba(38,32,25,0));
    color:var(--white); font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.03em;}
.ope #valuation{background:var(--ink);}
.ope .valuation{display:grid; grid-template-columns:auto 1fr auto; gap:40px; align-items:center;}
.ope .seal{width:88px; height:88px; border-radius:50%; border:2px solid var(--parchment); flex-shrink:0;
    display:flex; align-items:center; justify-content:center; text-align:center;
    font-family:'IBM Plex Mono', monospace; font-size:10px; color:var(--parchment); letter-spacing:0.04em; line-height:1.4;}
.ope .valuation h2,
.ope .valuation p{color:var(--parchment);}
.ope .valuation h2{font-size:26px; margin-bottom:8px;}
.ope .valuation p{color:#C9BFA8; font-size:14.5px; max-width:44ch;}
.ope .valuation .btn-primary{background:var(--clay); flex-shrink:0;}
.ope .valuation .btn-primary:hover{background:var(--parchment); color:var(--ink);}
.ope table{width:100%; border-collapse:collapse; font-size:14px;}
.ope thead th{text-align:left; font-family:'IBM Plex Mono', monospace; font-size:11px; text-transform:uppercase;
    letter-spacing:0.05em; color:var(--moss); padding:10px 14px; border-bottom:1px solid var(--ink); font-weight:600;}
.ope tbody td{padding:12px 14px; border-bottom:1px solid var(--line); vertical-align:middle;}
.ope tbody tr:hover{background:var(--parchment-2);}
.ope td.mono,
.ope th.mono{font-family:'IBM Plex Mono', monospace;}
.ope .tag-pill{display:inline-flex; align-items:center; gap:6px; font-family:'IBM Plex Mono', monospace; font-size:11px;
    padding:3px 9px; border-radius:20px; background:var(--parchment-2); color:var(--moss);}
.ope .tag-pill.pending{color:var(--clay-dark); background:#EFDCC9;}
.ope .tag-pill i{width:6px; height:6px; border-radius:50%; background:currentColor; display:inline-block;}
.ope .table-note{margin-top:14px; font-size:13px; color:var(--ink-soft); font-style:italic;}
.ope .plat-callout{margin-top:32px; background:var(--white); border:1px solid var(--line); border-radius:4px;
    padding:24px; display:grid; grid-template-columns:120px 1fr auto; gap:24px; align-items:center;}
.ope .plat-callout img{width:120px; border:1px solid var(--line); border-radius:2px;}
.ope .plat-callout h4{font-size:16px; margin-bottom:6px; font-family:'Public Sans', sans-serif; font-weight:600;}
.ope .plat-callout p{font-size:13.5px; color:var(--ink-soft);}
.ope .plat-callout .btn-ghost{white-space:nowrap;}
@media (max-width:920px){
.ope .plat-callout{grid-template-columns:80px 1fr;}
.ope .plat-callout img{width:80px;}
.ope .plat-callout .btn-ghost{grid-column:1 / -1;}
}
.ope .case-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.ope .case-card{background:var(--white); border:1px solid var(--line); border-radius:4px; padding:26px;}
.ope .case-card.highlight{background:var(--ink); border-color:var(--ink);}
.ope .case-card .idx{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--clay-dark); margin-bottom:12px; letter-spacing:0.03em;}
.ope .case-card.highlight .idx{color:var(--clay);}
.ope .case-card h3{font-size:18px; margin-bottom:10px;}
.ope .case-card.highlight h3{color:var(--parchment);}
.ope .case-card p{font-size:14px; color:var(--ink-soft);}
.ope .case-card.highlight p{color:#C9BFA8;}
.ope .compare-strip{margin-top:28px; background:var(--parchment-2); border:1px solid var(--line); border-radius:4px;
    padding:26px 30px; display:grid; grid-template-columns:1fr auto 1fr; gap:24px; align-items:center;}
.ope .compare-col h4{font-family:'IBM Plex Mono', monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.05em; color:var(--moss); margin-bottom:10px;}
.ope .compare-col .row{display:flex; justify-content:space-between; padding:7px 0; border-bottom:1px solid var(--line); font-size:13.5px;}
.ope .compare-col .row:last-child{border-bottom:none;}
.ope .compare-col .row .v{font-family:'IBM Plex Mono', monospace; font-weight:600; color:var(--clay-dark);}
.ope .compare-vs{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-soft); text-align:center;
    border-left:1px solid var(--line); border-right:1px solid var(--line); padding:0 20px; align-self:stretch;
    display:flex; align-items:center; justify-content:center;}
.ope .compare-note{margin-top:16px; font-size:12.5px; color:var(--ink-soft); font-style:italic;}
.ope .price-hero{background:var(--white); border:1px solid var(--line); border-radius:4px; padding:44px;
    display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap;}
.ope .big-num{font-family:'Fraunces', serif; font-size:52px; font-weight:500; color:var(--clay-dark); line-height:1;}
.ope .big-lbl{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-soft); margin-top:8px; text-transform:uppercase; letter-spacing:0.04em;}
.ope .sub-stats{display:flex; gap:36px;}
.ope .sub-stats .stat .num{font-family:'IBM Plex Mono', monospace; font-size:24px; font-weight:600;}
.ope .sub-stats .stat .lbl{font-size:12px; color:var(--ink-soft); margin-top:4px;}
.ope .steps{display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative;}
.ope .steps::before{content:''; position:absolute; top:20px; left:6%; right:6%; height:1px; background:var(--line);}
.ope .step{padding-right:24px;}
.ope .step-num{width:40px; height:40px; border-radius:50%; background:var(--ink); color:var(--parchment); position:relative; z-index:1;
    display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono', monospace; font-size:14px; margin-bottom:18px;}
.ope .step h3{font-size:16px; margin-bottom:8px;}
.ope .step p{font-size:13.5px; color:var(--ink-soft);}
.ope .faq-item{border-bottom:1px solid var(--line); padding:22px 0;}
.ope .faq-item h3{font-size:16.5px; font-weight:600; font-family:'Public Sans', sans-serif; margin-bottom:8px;}
.ope .faq-item p{font-size:14.5px; color:var(--ink-soft); max-width:70ch;}
.ope .cta-band{background:var(--clay); border-radius:4px; padding:44px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;}
.ope .cta-band h2{color:var(--white); font-size:26px;}
.ope .cta-band .btn-ghost{border-color:var(--white); color:var(--white);}
.ope .cta-band .btn-ghost:hover{background:var(--white); color:var(--clay-dark);}
.ope footer{background:var(--ink); color:var(--parchment); padding:56px 0 30px;}
.ope .foot-grid{display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px; margin-bottom:40px;}
.ope .foot-grid h5{font-family:'IBM Plex Mono', monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.08em; color:#8B9C7A; margin-bottom:14px;}
.ope .foot-grid ul{list-style:none;}
.ope .foot-grid li{margin-bottom:9px; font-size:14px; color:#C9BFA8;}
.ope .foot-grid a{text-decoration:none; color:#C9BFA8;}
.ope .foot-grid a:hover{color:var(--clay);}
.ope .foot-grid p{color:#C9BFA8; font-size:13.5px; max-width:38ch;}
.ope .foot-bottom{border-top:1px solid #3C332A; padding-top:22px; display:flex; justify-content:space-between; font-family:'IBM Plex Mono', monospace; font-size:11px; color:#8B7F6C; flex-wrap:wrap; gap:10px;}
@media (max-width:920px){
.ope nav ul{display:none;}
.ope .hero-grid{grid-template-columns:1fr;}
.ope .gallery-grid{grid-template-columns:1fr 1fr;}
.ope .gallery-item.tall{grid-row:span 1;}
.ope .gallery-item.wide.double{flex-direction:column;}
.ope .case-grid{grid-template-columns:1fr;}
.ope .compare-strip{grid-template-columns:1fr; text-align:left;}
.ope .compare-vs{border:none; padding:10px 0;}
.ope .steps{grid-template-columns:1fr 1fr; row-gap:28px;}
.ope .steps::before{display:none;}
.ope .ledger-row{grid-template-columns:1fr 1fr; row-gap:6px;}
.ope .foot-grid{grid-template-columns:1fr 1fr;}
.ope .cta-band{flex-direction:column; align-items:flex-start;}
.ope .hero h1{font-size:32px;}
.ope .valuation{grid-template-columns:1fr; text-align:left;}
.ope .price-hero{flex-direction:column; align-items:flex-start;}
}
/* --- Mobile hero: tighten the top gap under the sticky header --- */
@media (max-width:920px){
  .ope .hero{padding:28px 0 44px;}
}
<header>
  <div class="wrap nav-row">
    <a href="/" class="brand">
      <span class="brand-mark">
        <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4 20h16M6 20V10l6-5 6 5v10M9 20v-6h6v6" stroke="#F3EEE1" stroke-width="1.4" stroke-linejoin="round"/></svg>
      </span>
      <span class="brand-text">Orchid Point<small>Puriscal, Costa Rica</small></span>
    </a>
    <button class="nav-toggle" aria-label="Open menu" aria-expanded="false" aria-controls="primary-nav">
      <span class="nav-toggle-bar"></span>
      <span class="nav-toggle-bar"></span>
      <span class="nav-toggle-bar"></span>
    </button>
    <nav id="primary-nav">
      <ul>
        <li><a href="/">Home</a></li>
        <li><a href="/lots/">Lots</a></li>
        <li><a href="/blog/">Blog</a></li>
        <li class="nav-inquiry-mobile"><a href="/inquiry/">Fill Out Inquiry Form</a></li>
      </ul>
    </nav>
    <a href="/inquiry/" class="nav-cta">Fill Out Inquiry Form</a>
  </div>
</header>

Update/save the Element.

Stage 1b — CSS

In your child theme style.css, scroll to the very bottom and add this after everything else:

css
/* --- Mobile navigation: hamburger menu --- */
.ope .nav-toggle{display:none;}
.ope .nav-inquiry-mobile{display:none;}

@media (max-width:920px){
  /* Show the hamburger button */
  .ope .nav-toggle{
    display:flex; flex-direction:column; justify-content:center; gap:5px;
    width:44px; height:44px; padding:0; border:none; background:none;
    cursor:pointer; flex-shrink:0;
  }
  .ope .nav-toggle-bar{
    display:block; width:24px; height:2px; background:var(--ink);
    border-radius:2px; transition:transform 0.2s ease, opacity 0.2s ease;
  }
  /* Hide the long inline CTA on mobile — Inquiry moves into the menu */
  .ope .nav-row > .nav-cta{display:none;}

  /* Dropdown panel */
  .ope nav#primary-nav{
    position:absolute; top:76px; left:0; right:0;
    background:var(--parchment); border-bottom:1px solid var(--line);
    display:none;
  }
  .ope nav#primary-nav.is-open{display:block;}
  .ope nav#primary-nav ul{display:block; padding:8px 32px 20px;}
  .ope nav#primary-nav li{border-bottom:1px solid var(--line);}
  .ope nav#primary-nav li:last-child{border-bottom:none;}
  .ope nav#primary-nav a{display:block; padding:16px 0; font-size:16px; color:var(--ink);}

  /* Inquiry item, styled as a button inside the menu */
  .ope .nav-inquiry-mobile{display:block; margin-top:10px; border-bottom:none;}
  .ope .nav-inquiry-mobile a{
    background:var(--clay); color:var(--white); text-align:center;
    border-radius:2px; padding:14px 0;
    font-family:'IBM Plex Mono', monospace; font-size:13px;
    letter-spacing:0.03em; text-transform:uppercase; font-weight:500;
  }
  /* Bars turn into an X when open */
  .ope .nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .ope .nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(2){opacity:0;}
  .ope .nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}
/* --- Prevent horizontal overflow / left-shift on mobile --- */
/* --- Prevent horizontal overflow / left-shift on mobile --- */
/* --- Prevent horizontal overflow / left-shift on mobile --- */
html{overflow-x:clip;}
/* --- Lot ledger: let the wide table scroll sideways in its own box on mobile --- */
@media (max-width:920px){
  .ope table{display:block; overflow-x:auto; white-space:nowrap; -webkit-overflow-scrolling:touch;}
}