/* Shared primitives. Homepage and booking layouts live in their own files. */
.icon-button { display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--surface); }
.mobile-menu { position:fixed; inset:0 0 auto auto; margin:0; width:min(100%,460px); max-width:100%; max-height:100dvh; min-height:100dvh; padding:24px; border:0; background:var(--canvas); box-shadow:var(--shadow); overflow:auto; }
.mobile-menu::backdrop { background:rgb(10 30 15 / 45%); backdrop-filter:blur(3px); }
.mobile-menu-top { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:26px; }
.mobile-menu nav { display:grid; margin-bottom:28px; }
.mobile-menu nav a { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:14px 0; border-bottom:1px solid var(--line); font-size:30px; letter-spacing:-.04em; }
.mobile-menu>p { margin-top:22px; font-size:14px; }
.image-tag { position:absolute; top:18px; left:18px; padding:6px 12px; border-radius:999px; background:rgb(255 254 251 / 94%); font-size:14px; letter-spacing:.04em; }
.faq-item summary { cursor:pointer; list-style:none; }
.faq-item summary::-webkit-details-marker { display:none; }
.toast { position:fixed; z-index:100; left:50%; bottom:28px; max-width:calc(100% - 36px); padding:13px 22px; border:0; border-radius:12px; background:var(--forest); color:white; font-size:14px; text-align:center; transform:translate(-50%,20px); opacity:0; pointer-events:none; transition:opacity .2s,transform .2s; }
.toast.is-active { opacity:1; transform:translate(-50%,0); }
@media(max-width:599px) {
  .mobile-menu { padding:20px; }
  .mobile-menu nav a { font-size:26px; }
  .toast { bottom:calc(var(--mobile-cta-height,76px) + 16px); font-size:14px; }
}
