.lpg-final {
    --cream:#f7f3e9; --paper:#fbf9f4; --green:#294e43;
    --sage:#dce4d5; --terra:#c65f43; --booked:#d99b8c;
    --blocked:#c5c7c8; --change:#f2dca5; --border:#ded8ca;
    --text:#24382f;
    background:var(--cream); color:var(--text);
    padding:clamp(14px,3vw,32px); border-radius:6px;
  }
  .lpg-final * { box-sizing:border-box; }
  .lpg-final h2,.lpg-final h3,.lpg-final h4 {
    color:var(--green); margin-top:0;
  }
  .lpg-final .lpg-heading {
    display:flex; align-items:flex-end; justify-content:space-between;
    gap:18px; flex-wrap:wrap; padding-bottom:20px;
    border-bottom:1px solid var(--border); margin-bottom:26px;
  }
  .lpg-final .lpg-heading h2 {
    font-size:clamp(30px,4vw,40px); margin-bottom:8px;
    font-family:Georgia,"Times New Roman",serif; font-weight:400;
  }
  .lpg-final .lpg-heading p { margin:0; line-height:1.65; }
  .lpg-final .lpg-legend {
    display:flex; flex-wrap:wrap; gap:10px 16px; font-size:13px;
  }
  .lpg-final .lpg-legend span {
    display:inline-flex; align-items:center; gap:7px;
  }
  .lpg-final .lpg-swatch {
    width:15px; height:15px; border-radius:4px; display:inline-block;
  }
  .lpg-final .lpg-property { margin-bottom:36px; }
  .lpg-final .lpg-accommodation {
    display:grid; grid-template-columns:minmax(180px,30%) minmax(0,1fr);
    gap:clamp(20px,3vw,38px); align-items:stretch;
    margin-bottom:18px;
  }
  .lpg-final .lpg-image-holder {
    min-height:230px; height:100%; overflow:hidden;
    border:1px solid var(--border); border-radius:4px;
    background:#e5e0d4; display:flex; align-items:center;
    justify-content:center; color:var(--green);
  }
  .lpg-final .lpg-image-holder img {
    width:100%; height:100%; min-height:230px; object-fit:cover;
    display:block;
  }
  .lpg-final .lpg-image-placeholder {
    text-align:center; padding:20px; font-size:13px; line-height:1.7;
  }
  .lpg-final .lpg-accommodation-copy {
    display:flex; flex-direction:column; justify-content:center;
    padding:8px 0;
  }
  .lpg-final .lpg-accommodation-copy h3 {
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(25px,3vw,32px); font-weight:400;
    line-height:1.2; margin:0 0 8px;
  }
  .lpg-final .lpg-details {
    color:var(--terra); font-size:16px; line-height:1.5;
    margin:0 0 22px;
  }
  .lpg-final .lpg-description {
    font-size:16px; line-height:1.8; margin:0; max-width:570px;
  }
  .lpg-final .lpg-box {
    border:1px solid var(--border); border-radius:7px;
    overflow:hidden; background:var(--paper);
  }
  .lpg-final .lpg-toolbar {
    display:flex; justify-content:space-between; align-items:center;
    gap:10px; padding:12px; background:#f0ebe0;
  }
  .lpg-final .lpg-period {
    font-size:17px; font-weight:600; color:var(--green);
    text-align:center;
  }
  .lpg-final button { cursor:pointer; font:inherit; }
  .lpg-final .lpg-nav {
    min-height:38px; padding:7px 12px; border-radius:5px;
    border:1px solid #8c9d88; background:var(--paper);
    color:var(--green);
  }
  .lpg-final .lpg-nav:disabled { opacity:.35; cursor:not-allowed; }
  .lpg-final .lpg-months {
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px; padding:14px;
  }
  .lpg-final .lpg-month+.lpg-month {
    border-left:1px solid var(--border); padding-left:16px;
  }
  .lpg-final .lpg-month h4 {
    font-family:Georgia,"Times New Roman",serif;
    font-size:17px; margin:0 0 10px;
  }
  .lpg-final .lpg-week,.lpg-final .lpg-grid {
    display:grid; grid-template-columns:repeat(7,minmax(0,1fr));
    gap:2px;
  }
  .lpg-final .lpg-week span {
    text-align:center; font-size:10px; font-weight:600;
    padding-bottom:8px; text-transform:uppercase;
  }
  .lpg-final .lpg-day {
    display:flex; align-items:center; justify-content:center;
    min-width:0; min-height:39px; padding:3px 0;
    border:1px solid #fff; border-radius:2px;
    background:var(--sage); color:#26372d; font-size:13px;
  }
  .lpg-final .lpg-day.booked { background:var(--booked); }
  .lpg-final .lpg-day.blocked { background:var(--blocked); }
  .lpg-final .lpg-day.saturday {
    box-shadow:inset 0 0 0 999px rgba(242,220,165,.82);
  }
  .lpg-final .lpg-day.booked.saturday,
  .lpg-final .lpg-day.blocked.saturday {
    box-shadow:inset 0 0 0 999px rgba(242,220,165,.18);
  }
  .lpg-final .lpg-day.empty {
    background:transparent; border-color:transparent;
  }
  .lpg-final .lpg-footer {
    display:flex; justify-content:space-between; gap:10px;
    padding:10px 14px; background:#f0ebe0;
  }
  .lpg-final .lpg-footer button {
    border:0; background:transparent; color:var(--green);
    padding:5px 0; font-size:13px;
  }
  .lpg-final .lpg-note { font-size:13px; line-height:1.7; }
  .lpg-final button:focus-visible {
    outline:3px solid var(--green); outline-offset:2px;
  }
  @media(max-width:700px) {
    .lpg-final .lpg-accommodation { grid-template-columns:1fr; gap:15px; }
    .lpg-final .lpg-image-holder,
    .lpg-final .lpg-image-holder img { min-height:220px; max-height:300px; }
    .lpg-final .lpg-accommodation-copy { padding:0 2px 8px; }
    .lpg-final .lpg-details { margin-bottom:14px; }
    .lpg-final .lpg-description { font-size:15px; line-height:1.7; }
    .lpg-final .lpg-months { grid-template-columns:1fr; }
    .lpg-final .lpg-month+.lpg-month {
      border-left:0; border-top:1px solid var(--border);
      padding:16px 0 0;
    }
    .lpg-final .lpg-period { font-size:13px; }
    .lpg-final .lpg-day { min-height:35px; font-size:12px; }
  }
