 :root{ --green:#2E7D32; }

  .py-60{ padding-top:60px; padding-bottom:60px; }

  .contact-title{
    color: var(--green);
    font: 700 40px/56px "Playfair Display", Georgia, serif;
    margin-bottom:.25rem;
  }
  .contact-subtitle{
    color:#11261B;
    font:400 24px/36px "Open Sans", system-ui;
  }
  .contact-subtitle strong{ font-weight:700; }

  .form-ctrl{
    height:55px;
    border:1px solid #565656;
    border-radius:.5rem;
  }
  textarea.form-ctrl{ height:auto; }
  .form-ctrl:focus{
    border-color:#565656;
    box-shadow:none;
  }

  .btn-send{
    background:var(--green);
    color:#fff;
    height:60px;
    font:700 20px/30px "Open Sans", system-ui;
    border-radius:.5rem;
  }
  .btn-send:hover{ filter:brightness(.95); color:#fff; }

  @media (max-width:575.98px){
    .contact-title{ font-size:34px; line-height:46px; }
    .contact-subtitle{ font-size:18px; line-height:28px; }
  }
  :root{
      --green:#2E7D32;
      --gold:#FCCD04;
      --ink:#172432;
      --success:#36B845;
      --panel:#ffffff;
      --panel-soft: rgba(255,255,255,.7);
      --bg:#F2FAE3;
    }

    body{ background: var(--bg); color: var(--ink); }

    .section{ padding-top: 56px; padding-bottom: 40px; background-color: #fff; }
    .section .title{
      color: var(--green);
      font-family: "Playfair Display", Georgia, serif;
      font-weight: 400;
      font-size: 40px;
      margin: 0;
    }
    .section .bar{
      width: 590px; max-width: 100%;
      height: 3px; background: var(--gold);
      border-radius: 999px;
    }

    .location-card{
      background: var(--panel);
      border: 2px solid transparent;
      border-radius: 20px;
      box-shadow: 0 4px 56px rgba(78,96,46,.08);
      transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
      cursor: pointer;
      height: 100%;
    }
    .location-card.soft{ background: var(--panel-soft); box-shadow: none; }
    .location-card.is-active{
      border-color: var(--success);
      box-shadow: 0 0 0 3px rgba(54,184,69,.12);
    }
    .location-card h5{
      font-family: "Playfair Display", Georgia, serif;
      font-weight: 600;
      color: var(--green);
      margin-bottom: .25rem;
      font-size: 24px;
    }
    .location-card .place{
      font: 700 15px/1.6 "Open Sans", system-ui, sans-serif;
      color: rgba(0,0,0,.87);
    }
    .info-line{ display:flex; gap:.5rem; align-items:flex-start; }
    .info-line i{ color: var(--green); line-height: 1.4; margin-top:.1rem; }

    /* Map lớn (desktop) */
    .map-viewer{ display:none; }
    .map-viewer.show{ display:block; }
    .map-frame{
      border: 3px solid var(--success);
      border-radius: 18px;
      overflow:hidden;
      aspect-ratio: 5 / 2;      /* ~1152x460 */
      background:#eaeaea;
      position: relative;
    }
    .map-iframe{
      position:absolute; inset:0; width:100%; height:100%; border:0;
    }

    /* Map nhỏ trong card cho mobile */
    .card-map{ border-radius: 12px; overflow: hidden; border:1px solid rgba(0,0,0,.06); }
    .card-map iframe{ width:100%; height:100%; border:0; display:block; }