.pm-contact {
  background: #f8f5ed;
  color: #053541;
  padding: 0 24px 64px;
  letter-spacing: 0;
}
.pm-contact-inner { max-width: 920px; margin: auto; }
.pm-contact-hero { position: relative; min-height: 360px; isolation: isolate; }
.pm-contact-banner {
  position: absolute; right: -24px; bottom: 0; width: 70%; height: 100%;
  object-fit: contain; object-position: right bottom; z-index: -1;
  mix-blend-mode: multiply;
}
.pm-contact-copy { padding: 45px 0 35px; }
.pm-contact-accent { display: block; width: 64px; height: 3px; background: #ddb466; margin-bottom: 26px; }
.pm-contact h1 { font: 700 64px/1.02 Georgia, serif; color: #053541; margin: 0 0 24px; letter-spacing: 0; }
.pm-contact-copy p { font-size: 21px; line-height: 1.5; color: #777367; margin: 0; }
.pm-contact-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.pm-contact-actions-guest { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pm-contact-card {
  position: relative; display: flex; flex-direction: column; align-items: center;
  min-height: 210px; padding: 22px 18px 42px; border: 1px solid white;
  border-radius: 30px; color: #053541; text-decoration: none;
  box-shadow: 0 12px 28px #493d2010;
}
.pm-contact-call { background: #e4eeea; }
.pm-contact-chat { background: #f6ecd9; }
.pm-contact-icon { display: grid; place-items: center; width: 68px; height: 68px; border-radius: 50%; background: #bcd9d5; font-size: 32px; margin-bottom: 14px; }
.pm-contact-chat .pm-contact-icon { background: #f1cf91; }
.pm-contact-card h2 { font: 700 28px/1.2 Georgia, serif; color: inherit; margin: 0 0 10px; letter-spacing: 0; text-align: center; }
.pm-contact-number { font-size: 18px; white-space: nowrap; }
.pm-contact-arrow { position: absolute; bottom: 18px; right: 24px; font-size: 21px; }
.pm-contact-card:hover { color: #053541; box-shadow: 0 12px 28px #493d2025; }
.pm-contact-card:focus-visible { outline: 3px solid #056c7a; outline-offset: 4px; }
.pm-contact-hours { display: flex; align-items: center; gap: 26px; margin: 22px 0; padding: 16px 24px; background: #f1ecdf; border-radius: 60px; }
.pm-contact-hours > .fa-clock { font-size: 40px; }
.pm-contact-hours > div { border-left: 1px solid #ccc1ab; padding-left: 26px; }
.pm-contact-hours span { text-transform: uppercase; font-size: 13px; }
.pm-contact-hours p { margin: 5px 0 0; font-size: 21px; color: #053541; }
.pm-contact-hours > .fa-paw { margin-left: auto; color: #b89d72; font-size: 30px; }
.pm-contact-review {
  display: flex; align-items: center; gap: 14px; margin: 18px auto 110px; padding: 14px 20px;
  max-width: 430px; border: 1px solid #eadfc9; border-radius: 18px; background: #fffaf0;
  color: #053541; text-decoration: none; box-shadow: 0 8px 22px #493d2010;
}
.pm-contact-review:hover, .pm-contact-review:focus-visible { color: #053541; box-shadow: 0 10px 26px #493d2025; }
.pm-contact-review-icon { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 38px; border-radius: 50%; background: #f1cf91; color: #795b24; }
.pm-contact-review strong, .pm-contact-review small { display: block; }
.pm-contact-review strong { font: 700 15px/1.3 Georgia, serif; }
.pm-contact-review small { margin-top: 2px; color: #777367; font-size: 12px; }
.pm-contact-review > .fa-arrow-right { margin-left: auto; font-size: 16px; }
body:has(.pm-contact) .main-header { background: #f8f5ed !important; }
body:has(.pm-contact) .bottom-nav { background: #faf8f1; }
body:has(.pm-contact) .bottom-nav .nav-item:last-child { background: #dfebe5; border-radius: 32px; }
@media (max-width: 767px) {
  .pm-contact {
    min-height: calc(100vh - 70px);
    box-sizing: border-box;
    padding: 0 20px 180px;
  }
  .pm-contact-hero { min-height: 260px; }
  .pm-contact-banner { right: -20px; width: 74%; }
  .pm-contact-copy { padding: 32px 0 28px; }
  .pm-contact h1 { font-size: 38px; margin-bottom: 16px; }
  .pm-contact-copy p { font-size: 15px; }
  .pm-contact-accent { width: 36px; margin-bottom: 20px; }
  .pm-contact-actions,
  .pm-contact-actions-guest { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .pm-contact-card { min-height: 150px; padding: 14px 4px 30px; border-radius: 16px; }
  .pm-contact-icon { width: 38px; height: 38px; font-size: 18px; margin-bottom: 9px; }
  .pm-contact-card h2 { font-size: 14px; margin-bottom: 8px; }
  .pm-contact-number { font-size: 10px; }
  .pm-contact-arrow { right: 9px; bottom: 11px; font-size: 16px; }
  .pm-contact-hours { gap: 14px; padding: 14px; margin: 16px 0; }
  .pm-contact-hours > .fa-clock { font-size: 28px; }
  .pm-contact-hours > div { padding-left: 14px; }
  .pm-contact-hours span { font-size: 10px; }
  .pm-contact-hours p { font-size: 14px; }
  .pm-contact-hours > .fa-paw { font-size: 20px; }
  .pm-contact-review { margin: 14px auto 18px; padding: 12px 14px; gap: 10px; }
  .pm-contact-review strong { font-size: 13px; }
  .pm-contact-review small { font-size: 10px; }
}
@media (max-width: 360px) {
  .pm-contact { padding-left: 14px; padding-right: 14px; }
  .pm-contact h1 { font-size: 38px; }
  .pm-contact-card h2 { font-size: 18px; }
  .pm-contact-number { font-size: 12px; }
  .pm-contact-hours { gap: 10px; padding: 14px; }
  .pm-contact-hours p { font-size: 12px; }
}

/* Contact success page */
.pm-contact-success {
  min-height: calc(100vh - 84px);
  display: flex;
  align-items: center;
  padding-top: 48px;
  padding-bottom: 120px;
}
.pm-success-card {
  position: relative;
  max-width: 620px;
  margin: 0 auto;
  padding: 58px 56px 54px;
  overflow: hidden;
  border: 1px solid rgba(11, 79, 138, 0.08);
  border-radius: 30px;
  background: radial-gradient(circle at 100% 0%, rgba(91, 190, 196, 0.14), transparent 32%), linear-gradient(145deg, #fffdf9 0%, #f9f5ec 100%);
  box-shadow: 0 18px 50px rgba(12, 58, 83, 0.1);
  text-align: center;
}
.pm-success-card::after { content: "♡"; position: absolute; right: -18px; bottom: -52px; color: rgba(228, 71, 112, 0.06); font-size: 150px; line-height: 1; transform: rotate(-12deg); }
.pm-success-icon { position: relative; z-index: 1; display: inline-grid; place-items: center; width: 76px; height: 76px; margin-bottom: 24px; border-radius: 50%; background: #d7eeee; color: #064b5b; font-size: 30px; }
.pm-success-card .pm-contact-accent { width: 48px; margin: 0 auto 22px; }
.pm-success-card h1 { position: relative; z-index: 1; margin-bottom: 14px; font-size: 38px; line-height: 1.12; }
.pm-success-card p { position: relative; z-index: 1; max-width: 420px; margin: 0 auto 30px; color: #777367; font-size: 17px; line-height: 1.55; }
.pm-success-link { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 14px; min-height: 50px; padding: 13px 22px; border-radius: 999px; background: #057ba0; color: #fff; font-size: 15px; font-weight: 700; text-decoration: none; box-shadow: 0 10px 24px rgba(5, 123, 160, 0.22); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.pm-success-link:hover, .pm-success-link:focus-visible { color: #fff; transform: translateY(-2px); box-shadow: 0 14px 30px rgba(5, 123, 160, 0.3); }
@media (max-width: 575px) {
  .pm-contact-success { min-height: calc(100vh - 70px); padding-top: 28px; padding-bottom: 110px; }
  .pm-success-card { padding: 42px 24px 38px; border-radius: 24px; }
  .pm-success-card h1 { font-size: 30px; }
  .pm-success-card p { font-size: 15px; }
}
