:root{
      --sand:#E7DED3;
      --sand-light:#F2EAE0;
      --charcoal:#2F2C28;
      --olive:#6F7A5C;
      --clay:#A9674E;
      --cream:rgba(255,255,255,0.30);
      --cream-strong:rgba(255,255,255,0.45);
      --max: 1080px;
      --radius: 22px;
      --border: 1px solid rgba(47,44,40,0.18);
      --shadow: 0 18px 50px rgba(47,44,40,0.08);
    }

    *{ box-sizing:border-box; }

    html{ scroll-behavior:smooth; }

    body{
      margin:0;
      font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
      background:
        radial-gradient(circle at top left, rgba(255,255,255,0.28), transparent 34%),
        linear-gradient(180deg, var(--sand), var(--sand-light));
      color: var(--charcoal);
      line-height: 1.58;
      letter-spacing: 0.01em;
    }

    a{ color:inherit; }

    .wrap{
      max-width: var(--max);
      margin: 0 auto;
      padding: 32px 20px 70px;
      display: grid;
      gap: 18px;
    }

    header{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 18px;
      padding: 4px 0 10px;
    }

    .brand{
      display:grid;
      gap: 2px;
      text-decoration:none;
      color:inherit;
    }

    .brand-name{
      margin:0;
      font-weight:600;
      letter-spacing:0.16em;
      text-transform:uppercase;
      font-size: clamp(19px, 2.8vw, 27px);
      line-height:1.1;
    }

    .brand-sub{
      margin:0;
      font-size: 11px;
      letter-spacing:0.16em;
      text-transform:uppercase;
      opacity:0.78;
    }

    nav{
      display:flex;
      align-items:center;
      gap: 10px;
      flex-wrap:wrap;
      justify-content:flex-end;
    }

    .navlink{
      text-decoration:none;
      font-size:12px;
      letter-spacing:0.10em;
      text-transform:uppercase;
      opacity:0.82;
      padding: 8px 4px;
    }

    .card{
      border: var(--border);
      background: var(--cream);
      border-radius: var(--radius);
      overflow:hidden;
      box-shadow: var(--shadow);
    }

    .hero-card{
      position:relative;
      min-height: 620px;
      display:grid;
      align-items:end;
      background: rgba(255,255,255,0.18);
    }

    .hero-media{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
      object-fit:cover;
      filter:saturate(0.92) contrast(0.98);
    }

    .hero-card::after{
      content:"";
      position:absolute;
      inset:0;
      background:
        linear-gradient(180deg, rgba(47,44,40,0.10), rgba(47,44,40,0.38)),
        linear-gradient(90deg, rgba(47,44,40,0.42), rgba(47,44,40,0.06));
    }

    .hero-content{
      position:relative;
      z-index:1;
      color:#fffaf3;
      padding: clamp(24px, 5vw, 54px);
      max-width: 760px;
      display:grid;
      gap: 16px;
    }

    .eyebrow,
    .kicker{
      text-transform:uppercase;
      letter-spacing:0.18em;
      font-size: 12px;
      opacity:0.88;
    }

    h1{
      margin:0;
      font-weight:600;
      letter-spacing:-0.035em;
      line-height:0.96;
      font-size: clamp(48px, 8vw, 94px);
    }

    h2{
      margin:0;
      font-weight:600;
      letter-spacing:-0.035em;
      line-height:1.05;
      font-size: clamp(30px, 4.2vw, 54px);
    }

    h3{
      margin:0;
      font-weight:600;
      letter-spacing:-0.02em;
      line-height:1.15;
      font-size: clamp(22px, 2.4vw, 30px);
    }

    p{ margin:0; }

    .lead{
      font-size: clamp(18px, 2.1vw, 24px);
      line-height:1.42;
      max-width: 670px;
    }

    .p{
      font-size: 16px;
      opacity:0.91;
    }

    .muted{ opacity:0.78; }

    .section{
      padding: clamp(24px, 5vw, 52px);
      display:grid;
      gap: 18px;
    }

    .section.center{
      text-align:center;
      justify-items:center;
    }

    .btnrow{
      display:flex;
      gap: 10px;
      flex-wrap:wrap;
      align-items:center;
      padding-top: 4px;
    }

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height: 46px;
      padding: 12px 18px;
      border-radius: 999px;
      border: 1px solid rgba(47,44,40,0.25);
      background: rgba(47,44,40,0.06);
      color: var(--charcoal);
      text-decoration:none;
      font-size: 13px;
      letter-spacing: 0.07em;
      text-transform: uppercase;
      transition: transform 160ms ease, background 160ms ease, border-color 160ms ease;
      white-space:nowrap;
    }

    .btn:hover{
      transform: translateY(-1px);
      background: rgba(47,44,40,0.09);
      border-color: rgba(47,44,40,0.35);
    }

    .hero-content .btn{
      color:#fffaf3;
      border-color:rgba(255,250,243,0.45);
      background:rgba(255,250,243,0.12);
      backdrop-filter: blur(8px);
    }

    .hero-content .btn.primary,
    .btn.primary{
      background:var(--charcoal);
      color:#fffaf3;
      border-color:var(--charcoal);
    }

    .hero-content .btn.primary{
      background:#fffaf3;
      color:var(--charcoal);
      border-color:#fffaf3;
    }

    .grid{
      display:grid;
      gap: 18px;
    }

    @media(min-width: 860px){
      .grid.two{ grid-template-columns: 1fr 1fr; }
      .grid.three{ grid-template-columns: repeat(3, 1fr); }
      .grid.two-left{ grid-template-columns: 0.85fr 1.15fr; }
      .grid.two-right{ grid-template-columns: 1.15fr 0.85fr; }
    }

    .image{
      width:100%;
      min-height: 340px;
      height:100%;
      display:block;
      object-fit: cover;
      background: rgba(255,255,255,0.16);
    }

    .image.short{ min-height:260px; }

    .tile{
      border: var(--border);
      background: var(--cream);
      border-radius: var(--radius);
      padding: 22px;
      display:grid;
      gap: 10px;
      min-height: 210px;
    }

    .quote{
      font-size: clamp(24px, 3.6vw, 44px);
      line-height:1.08;
      letter-spacing:-0.04em;
      max-width: 860px;
    }

    .list{
      display:grid;
      gap: 12px;
      padding: 0;
      margin: 0;
      list-style:none;
    }

    .list li{
      border-top: 1px solid rgba(47,44,40,0.14);
      padding-top: 12px;
      font-size:16px;
      opacity:0.92;
    }

    .divider{
      height:1px;
      background: linear-gradient(90deg, rgba(47,44,40,0), rgba(111,122,92,0.55), rgba(47,44,40,0));
      border-radius:999px;
      margin: 4px 0;
    }

    .location-card{
      background: rgba(47,44,40,0.07);
    }

    footer{
      text-align:center;
      opacity:0.82;
      font-size: 13px;
      margin-top: 10px;
      display:grid;
      gap:12px;
      justify-items:center;
    }

    @media(max-width: 720px){
      header{
        display:grid;
        justify-items:center;
        text-align:center;
      }

      nav{
        justify-content:center;
      }

      .hero-card{
        min-height: 590px;
      }

      .hero-card::after{
        background:
          linear-gradient(180deg, rgba(47,44,40,0.12), rgba(47,44,40,0.50)),
          linear-gradient(90deg, rgba(47,44,40,0.35), rgba(47,44,40,0.12));
      }

      .hero-content{
        padding: 28px 22px;
      }

      .btnrow{
        width:100%;
      }

      .btn{
        flex: 1 1 auto;
      }
    }

    /* Sticky Mobile CTA */
    .mobile-cta{
      position:fixed;
      left:12px;
      right:12px;
      bottom:12px;
      z-index:999;
      display:none;
      grid-template-columns: repeat(3, 1fr);
      gap:10px;
      padding:10px;
      border-radius:20px;
      border:1px solid rgba(47,44,40,0.18);
      background:rgba(255,250,243,0.82);
      backdrop-filter: blur(14px);
      box-shadow: 0 10px 35px rgba(47,44,40,0.12);
    }

    .mobile-cta a{
      min-height:48px;
      display:flex;
      align-items:center;
      justify-content:center;
      border-radius:14px;
      text-decoration:none;
      font-size:11px;
      letter-spacing:0.08em;
      text-transform:uppercase;
      color:var(--charcoal);
      border:1px solid rgba(47,44,40,0.16);
      background:rgba(255,255,255,0.48);
      font-weight:600;
    }

    .mobile-cta a.primary{
      background:var(--charcoal);
      color:#fffaf3;
      border-color:var(--charcoal);
    }

    @media(max-width: 720px){
      .mobile-cta{
        display:grid;
      }

      body{
        padding-bottom:92px;
      }
    }